Преглед на файлове

fix:账户修改报故,图片上传修改,用户退出登录后登录其它账号异常

lupeng преди 11 месеца
родител
ревизия
a46f69caf9

+ 10 - 5
src/components/Upload/SingleUpload.vue

@@ -38,13 +38,18 @@ const props = defineProps({
 const emit = defineEmits(["update:modelValue", "finished"]);
 const imgUrl = useVModel(props, "modelValue", emit);
 const photoSource = ref<string>();
-
-watch(
-  () => props.modelValue,
-  (newVal) => {
+/*onMounted(() => {
+  if(imgUrl.value!=null&&imgUrl.value!=''){
     photoSource.value = import.meta.env.VITE_APP_UPLOAD_URL + props.modelValue;
   }
-);
+
+});*/
+watchEffect(() => {
+  /*if (props.modelValue != null && props.modelValue != "") {
+    photoSource.value = import.meta.env.VITE_APP_UPLOAD_URL + props.modelValue;
+  }*/
+  photoSource.value = props.modelValue;
+});
 
 /**
  * 自定义图片上传

+ 1 - 0
src/store/modules/user.ts

@@ -67,6 +67,7 @@ export const useUserStore = defineStore("user", () => {
     return new Promise<void>((resolve, reject) => {
       logoutApi()
         .then(() => {
+          isGetAuth.value = false;
           localStorage.setItem("token", "");
           // location.reload(); // 清空路由
           resolve();

+ 45 - 12
src/views/pro/traceability/components/faultCom.vue

@@ -8,15 +8,14 @@
       :data="data"
       :option="option"
       v-model:page="page"
+      @row-update="updateRow"
+    />
+    <CommonTable
+      ref="ctableRef"
+      tableTitle="人员选择"
+      tableType="USERS"
+      @selected-sure="onSelectedFinish"
     />
-    <!-- <el-collapse accordion>
-      <el-collapse-item
-        :title="item.opName"
-        :name="item.id"
-        v-for="item in data"
-        :key="item.id"
-      />
-    </el-collapse> -->
   </div>
 </template>
 <script setup>
@@ -24,7 +23,11 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
-import { useCommonStoreHook, useDictionaryStore } from "@/store";
+import {
+  useCommonStoreHook,
+  useDictionaryStore,
+  useUserStoreHook,
+} from "@/store";
 
 // 数据字典相关
 const { dicts } = useDictionaryStore();
@@ -54,9 +57,18 @@ const refreshTra = (row) => {
   commonConfig.value.params = { seqNo: row.seqNo };
   dataList();
 };
+const userStore = useUserStoreHook();
+const onSelectedFinish = (selectValue) => {
+  form.value.creator = selectValue.userName;
+};
 defineExpose({ refreshTra });
-onMounted(() => {});
-
+onMounted(() => {
+  if (userStore.user.userId === 10000) {
+    option.value.menu = true;
+    option.value.editBtn = true;
+  }
+});
+const ctableRef = ref(null);
 option.value = Object.assign(option.value, {
   selection: false,
   border: true,
@@ -66,6 +78,8 @@ option.value = Object.assign(option.value, {
   align: "center",
   labelWidth: 100,
   addBtn: false,
+  viewBtn: false,
+  delBtn: false,
   menu: false,
   header: false,
   column: [
@@ -73,6 +87,7 @@ option.value = Object.assign(option.value, {
       label: "冻结状态",
       prop: "state",
       dicData: dicts.escalation_fault_state,
+      display: false,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -82,31 +97,49 @@ option.value = Object.assign(option.value, {
       label: "报故人",
       prop: "creator",
       search: false,
+      click: ({ value, column }) => {
+        ctableRef.value.startSelect();
+      },
+      rules: [
+        {
+          required: true,
+          message: "请选择上传人员",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "报故工位",
       prop: "stationName",
       search: false,
+      display: false,
     },
     {
       label: "报故时间",
       prop: "created",
       search: false,
+      format: "YYYY-MM-DD HH:mm:ss",
+      valueFormat: "YYYY-MM-DD HH:mm:ss",
+      type: "datetime",
     },
     {
       label: "处理结果",
       prop: "currentState",
       dicData: dicts.fault_current_state,
+      type: "select",
       props: {
         label: "dictLabel",
         value: "dictValue",
       },
+      display: false,
       search: false,
     },
     {
       label: "备注",
-      prop: "standard",
+      prop: "remark",
       search: false,
+      type: "textarea",
+      span: 24,
     },
   ],
 });

+ 60 - 26
src/views/pro/traceability/components/mediaCom.vue

@@ -1,6 +1,7 @@
 <!-- 报故记录 -->
 <template>
   <div class="mainContentBox">
+    <img src="" />
     <avue-crud
       ref="crudRef2"
       v-model:search="search"
@@ -8,25 +9,34 @@
       :data="data"
       :option="option"
       v-model:page="page"
+      @row-update="updateRow"
     >
-      <template #menu="{row,index,type}">
-        <el-button @click="openDialog(row)"
-                   icon="el-icon-link"
-                   text
-                   type="primary"
-        >查看</el-button>
+      <template #menu="{ row, index, type }">
+        <el-button
+          @click="openDialog(row)"
+          icon="el-icon-link"
+          text
+          type="primary"
+          >查看</el-button
+        >
       </template>
       <template #filePath-form="scope">
         <single-upload v-model="form.filePath" />
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="60%"
-        @close="dialog.visible = false"
-    ><el-image :src="url" fit="none" />
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="60%"
+      @close="dialog.visible = false"
+      ><el-image :src="url" fit="none" />
     </el-dialog>
+    <CommonTable
+      ref="ctableRef"
+      tableTitle="人员选择"
+      tableType="USERS"
+      @selected-sure="onSelectedFinish"
+    />
   </div>
 </template>
 <script setup>
@@ -34,16 +44,20 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
-import {useCommonStoreHook, useDictionaryStore, useUserStoreHook} from "@/store";
+import {
+  useCommonStoreHook,
+  useDictionaryStore,
+  useUserStoreHook,
+} from "@/store";
 import SingleUpload from "@/components/Upload/SingleUpload.vue";
-
+const ctableRef = ref(null);
 // 数据字典相关
 const { dicts } = useDictionaryStore();
 const dialog = reactive({
   title: "图片预览",
   visible: false,
 });
-const url = ref(null)
+const url = ref(null);
 // 传入一个url,后面不带/
 const {
   form,
@@ -64,10 +78,10 @@ const { selectionChange, multipleDelete } = Methords; //选中和批量删除事
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const openDialog = (row) =>{
-  dialog.visible = true
-  url.value =  import.meta.env.VITE_APP_UPLOAD_URL + row.filePath
-}
+const openDialog = (row) => {
+  dialog.visible = true;
+  url.value = import.meta.env.VITE_APP_UPLOAD_URL + row.filePath;
+};
 const refreshTra = (row) => {
   commonConfig.value.params = { seqNo: row.seqNo };
   dataList();
@@ -75,12 +89,13 @@ const refreshTra = (row) => {
 const userStore = useUserStoreHook();
 defineExpose({ refreshTra });
 onMounted(() => {
-  if(userStore.user.userId===10000){
+  if (userStore.user.userId === 10000) {
     option.value.editBtn = true;
-
   }
 });
-
+const onSelectedFinish = (selectValue) => {
+  form.value.creator = selectValue.userName;
+};
 option.value = Object.assign(option.value, {
   selection: false,
   border: true,
@@ -93,7 +108,7 @@ option.value = Object.assign(option.value, {
   menu: true,
   editBtn: false,
   delBtn: false,
-  viewBtn:false,
+  viewBtn: false,
   header: false,
   column: [
     {
@@ -105,22 +120,41 @@ option.value = Object.assign(option.value, {
     {
       label: "上传人员",
       prop: "creator",
+      span: 16,
       search: false,
+      click: ({ value, column }) => {
+        ctableRef.value.startSelect();
+      },
+      rules: [
+        {
+          required: true,
+          message: "请选择上传人员",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "上传时间",
       prop: "created",
       search: false,
-      format: 'YYYY-MM-DD HH:mm:ss',
-      valueFormat: 'YYYY-MM-DD HH:mm:ss',
+      span: 16,
+      format: "YYYY-MM-DD HH:mm:ss",
+      valueFormat: "YYYY-MM-DD HH:mm:ss",
       type: "datetime",
     },
     {
-      label: "图上传",
+      label: "图上传",
       prop: "filePath",
-      span: 24,
+      span: 16,
       slot: true,
       hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请上传图片",
+          trigger: "blur",
+        },
+      ],
     },
   ],
 });

+ 7 - 0
vite.config.ts

@@ -66,6 +66,13 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
           rewrite: (path) =>
             path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
         },
+        "/jgfile": {
+          changeOrigin: true,
+          // 接口地址
+          target: env.VITE_APP_UPLOAD_URL,
+          rewrite: (path) =>
+            path.replace(new RegExp("^" + env.VITE_APP_UPLOAD_URL + "/jgfile")),
+        },
       },
     },
     plugins: [