Browse Source

fix: 1.1版本bug修复

haifeng.zhang 5 tháng trước cách đây
mục cha
commit
438e93e912

+ 17 - 22
src/views/indexData/components/addDialog.vue

@@ -2,8 +2,7 @@
 import { reactive, ref } from "vue";
 import { ElMessage } from "element-plus";
 import { postListTree } from "@/api/department";
-import { getQuotaPageList } from "@/api/indexDefine";
-import { addListApi } from "@/api/indexData";
+import { addListApi, getPageList } from "@/api/indexData";
 import { postOrganizationUserPage } from "@/api/userSetting";
 import dayjs from "dayjs";
 
@@ -45,7 +44,7 @@ const open = () => {
     specificTime: ""
   });
   visible.value = true;
-  getQuotaPageListApi();
+  getPageListApi();
   getIndustryListApi();
 };
 defineExpose({
@@ -66,18 +65,16 @@ const querySearch = (queryString: string, cb: any) => {
 };
 const createFilter = (queryString: string) => {
   return restaurant => {
-    return restaurant.name.indexOf(queryString) === 0;
+    return restaurant.sourceValue.indexOf(queryString) === 0;
   };
 };
-const getQuotaPageListApi = async () => {
-  const { code, data, msg } = await getQuotaPageList({
+const getPageListApi = async () => {
+  const { code, data, msg } = await getPageList({
     pageNumber: 1,
     pageSize: 99999,
-    orderField: "updateTime",
-    param: null,
-    categoryName: null,
-    statue: null,
-    orderType: null
+    sourceValue: "",
+    deptName: "",
+    userName: ""
   });
   if (code == 200) {
     if (data.records && data.records.length) {
@@ -85,8 +82,6 @@ const getQuotaPageListApi = async () => {
     } else {
       restaurants.value = [];
     }
-  } else {
-    ElMessage.error(msg);
   }
 };
 
@@ -111,6 +106,8 @@ const handleNodeDeptClick = data => {
 // 员工名称
 const userSelect = ref([]);
 const handleDept = async val => {
+  form.userId = "";
+  form.userName = "";
   const { code, data, msg } = await postOrganizationUserPage({
     pageNumber: 1,
     pageSize: 99999,
@@ -120,8 +117,6 @@ const handleDept = async val => {
   });
   if (code == 200) {
     userSelect.value = data.records;
-  } else {
-    ElMessage.error(msg);
   }
 };
 const handleUser = val => {
@@ -133,13 +128,16 @@ const handleUser = val => {
 };
 
 // 保存
+const saveLoading = ref(false);
 const addSave = async () => {
   ruleFormRef.value.validate(async (valid: boolean) => {
     if (valid) {
+      saveLoading.value = true;
       if (form.specificTime) {
         form.specificTime = dayjs(form.specificTime).format("YYYY-MM-DD");
       }
       const { code, msg } = await addListApi(form);
+      saveLoading.value = false;
       if (code === 200) {
         ElMessage({
           message: "添加成功",
@@ -147,11 +145,6 @@ const addSave = async () => {
         });
         close();
         emit("updateDialog");
-      } else {
-        ElMessage({
-          message: msg,
-          type: "error"
-        });
       }
     }
   });
@@ -178,7 +171,7 @@ const addSave = async () => {
         <el-form-item label="指标名称" prop="sourceValue">
           <el-autocomplete
             v-model="form.sourceValue"
-            value-key="name"
+            value-key="sourceValue"
             :fetch-suggestions="querySearch"
             :trigger-on-focus="false"
             clearable
@@ -246,7 +239,9 @@ const addSave = async () => {
     <template #footer>
       <div class="dialog-footer">
         <el-button @click="close">取消</el-button>
-        <el-button type="primary" @click="addSave">保存</el-button>
+        <el-button type="primary" :loading="saveLoading" @click="addSave"
+          >保存</el-button
+        >
       </div>
     </template>
   </el-dialog>

+ 19 - 26
src/views/indexData/components/editDrawer.vue

@@ -2,8 +2,7 @@
 import { ref, reactive, onMounted } from "vue";
 import { ElMessage, ElMessageBox } from "element-plus";
 import type { DrawerProps, FormProps } from "element-plus";
-import { getQuotaPageList } from "@/api/indexDefine";
-import { editListApi } from "@/api/indexData";
+import { editListApi, getPageList } from "@/api/indexData";
 import { postListTree } from "@/api/department";
 import { postOrganizationUserPage } from "@/api/userSetting";
 import dayjs from "dayjs";
@@ -30,14 +29,13 @@ const formLabelAlign = reactive({
 });
 const rules = reactive<FormProps["rules"]>({
   sourceValue: [{ required: true, message: "请输入指标名称", trigger: "blur" }],
-  define: { required: true, message: "请输入指标定义", trigger: "blur" },
-  caliber: { required: true, message: "请输入指标口径", trigger: "blur" },
-  statue: { required: true, message: "请选择指标状态", trigger: "blur" }
+  deptCode: [{ required: true, message: "请选择部门名称", trigger: "change" }],
+  specificTime: [{ required: true, message: "请选择日期", trigger: "change" }]
 });
 
 // 抽屉逻辑
 const open = row => {
-  getQuotaPageListApi();
+  getPageListApi();
   getIndustryListApi();
   Object.assign(formLabelAlign, row);
   if (row.deptCode) {
@@ -92,8 +90,6 @@ const confirmClick = () => {
         disabledShow.value = true;
         drawer.value = false;
         emit("updateDialog");
-      } else {
-        ElMessage.error(msg);
       }
     }
   });
@@ -109,18 +105,16 @@ const querySearch = (queryString: string, cb: any) => {
 };
 const createFilter = (queryString: string) => {
   return restaurant => {
-    return restaurant.name.indexOf(queryString) === 0;
+    return restaurant.sourceValue.indexOf(queryString) === 0;
   };
 };
-const getQuotaPageListApi = async () => {
-  const { code, data, msg } = await getQuotaPageList({
+const getPageListApi = async () => {
+  const { code, data, msg } = await getPageList({
     pageNumber: 1,
     pageSize: 99999,
-    orderField: "updateTime",
-    param: null,
-    categoryName: null,
-    statue: null,
-    orderType: null
+    sourceValue: "",
+    deptName: "",
+    userName: ""
   });
   if (code == 200) {
     if (data.records && data.records.length) {
@@ -128,8 +122,6 @@ const getQuotaPageListApi = async () => {
     } else {
       restaurants.value = [];
     }
-  } else {
-    ElMessage.error(msg);
   }
 };
 
@@ -154,6 +146,8 @@ const handleNodeDeptClick = data => {
 // 员工名称
 const userSelect = ref([]);
 const handleDept = async val => {
+  formLabelAlign.userId = "";
+  formLabelAlign.userName = "";
   const { code, data, msg } = await postOrganizationUserPage({
     pageNumber: 1,
     pageSize: 99999,
@@ -163,8 +157,6 @@ const handleDept = async val => {
   });
   if (code == 200) {
     userSelect.value = data.records;
-  } else {
-    ElMessage.error(msg);
   }
 };
 const handleUser = val => {
@@ -202,12 +194,12 @@ const handleUser = val => {
             >
               <el-autocomplete
                 v-model="formLabelAlign.sourceValue"
-                value-key="name"
+                value-key="sourceValue"
                 :fetch-suggestions="querySearch"
                 :trigger-on-focus="false"
                 clearable
                 placeholder="请输入"
-                :disabled="disabledShow"
+                disabled
                 style="width: 100%"
               />
             </el-form-item>
@@ -228,6 +220,7 @@ const handleUser = val => {
               <el-select
                 v-model="formLabelAlign.userId"
                 :disabled="disabledShow"
+                clearable
                 filterable
                 placeholder="请选择"
                 @change="handleUser"
@@ -243,7 +236,7 @@ const handleUser = val => {
             <el-form-item label="分子" label-position="top">
               <el-input
                 v-model="formLabelAlign.numerator"
-                :disabled="disabledShow"
+                disabled
                 autocomplete="off"
                 placeholder="请输入"
               />
@@ -251,7 +244,7 @@ const handleUser = val => {
             <el-form-item label="分母" label-position="top">
               <el-input
                 v-model="formLabelAlign.denominator"
-                :disabled="disabledShow"
+                disabled
                 autocomplete="off"
                 placeholder="请输入"
               />
@@ -259,7 +252,7 @@ const handleUser = val => {
             <el-form-item label="值" label-position="top">
               <el-input
                 v-model="formLabelAlign.dataValue"
-                :disabled="disabledShow"
+                disabled
                 autocomplete="off"
                 placeholder="请输入"
               />
@@ -271,7 +264,7 @@ const handleUser = val => {
             >
               <el-date-picker
                 v-model="formLabelAlign.specificTime"
-                :disabled="disabledShow"
+                disabled
                 type="date"
                 placeholder="请选择日期"
               />

+ 16 - 20
src/views/indexData/components/indexImport.vue

@@ -6,6 +6,7 @@ import { ref } from "vue";
 import { uploadData } from "@/api/indexData";
 import { ElMessage } from "element-plus";
 import { useRouter } from "vue-router";
+import { da } from "element-plus/es/locale/index.mjs";
 const $router = useRouter();
 const emit = defineEmits(["handleImport"]);
 const fileDocument = ref<File | null>(null); // 存储文件
@@ -19,28 +20,23 @@ const uploadFile = async () => {
     return;
   }
 
-  try {
-    const formData = new FormData();
-    // 将生成的文件添加到 FormData 中
-    formData.append("file", fileDocument.value);
-    // 调用 API 上传文件
-    const { data } = await uploadData(formData);
-    if (data.code === 200) {
-      // 根据后端返回的 code 判断是否成功
-      ElMessage.success("文件上传并导入成功");
-      // 重置上传状态
-      backDefine();
-      $router.push("/indexData/index");
-    } else {
-      ElMessage.error(data.msg);
-    }
-  } catch (error) {
-    ElMessage.error("上传失败,请重试");
+  const formData = new FormData();
+  // 将生成的文件添加到 FormData 中
+  formData.append("file", fileDocument.value);
+  // 调用 API 上传文件
+  const { data } = await uploadData(formData);
+  if (data.code === 200) {
+    // 根据后端返回的 code 判断是否成功
+    ElMessage.success("文件上传并导入成功");
+    // 重置上传状态
+    backDefine("success");
+  } else {
+    ElMessage.error(data.msg);
   }
 };
 
-const backDefine = () => {
-  emit("handleImport");
+const backDefine = (type = "") => {
+  emit("handleImport", type);
 };
 
 // 处理文件上传并解析 Excel 内容
@@ -89,7 +85,7 @@ const handleUploadChange = async (file: File) => {
           </div>
         </div>
         <div class="float-right">
-          <el-button @click="backDefine">取消</el-button>
+          <el-button @click="backDefine('close')">取消</el-button>
           <el-button type="primary" @click="uploadFile">确认</el-button>
         </div>
         <p class="h-11 no-select">.</p>

+ 8 - 4
src/views/indexData/index.vue

@@ -2,7 +2,7 @@
  * @Author: zhanghaifeng
  * @Date: 2025-01-03 13:57:58
  * @LastEditors: zhanghaifeng
- * @LastEditTime: 2025-01-08 11:01:19
+ * @LastEditTime: 2025-01-13 17:33:44
  * @Description: 指标数据
  * @FilePath: /hospital-project/src/views/indexData/index.vue
 -->
@@ -55,8 +55,11 @@ onMounted(() => {
 
 // 批量导入
 const sizeImport = ref(false);
-const bulkImport = () => {
+const bulkImport = (type = "") => {
   sizeImport.value = !sizeImport.value;
+  if (type && type === "success") {
+    handleCurrentChange(1);
+  }
 };
 
 // 添加
@@ -73,7 +76,7 @@ const setEdit = row => {
 
 // 删除
 const setDelete = row => {
-  ElMessageBox.confirm("确定要继续删除这项数据吗?", "数据删除后将无法恢复", {
+  ElMessageBox.confirm("数据删除后将无法恢复", "确定要继续删除这项数据吗?", {
     confirmButtonText: "确认",
     cancelButtonText: "取消",
     type: "warning"
@@ -147,7 +150,8 @@ const showLogs = row => {
             prop="sourceValue"
             label="指标名称"
             fixed
-            width="150"
+            width="200"
+            show-overflow-tooltip
           />
           <el-table-column prop="deptName" label="部门名称" width="200" />
           <el-table-column prop="userName" label="员工名称" />