Browse Source

fix: 解决云效BUG

haifeng.zhang 2 weeks ago
parent
commit
c9eba98160

+ 7 - 1
src/views/draw/children/department/departmentRank.vue

@@ -140,7 +140,13 @@ const toDetail = (row: any = {}) => {
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column prop="deptName" label="科室" min-width="150" />
+        <el-table-column prop="deptName" label="科室" min-width="150">
+          <template #default="{ row }">
+            <el-button type="primary" link @click="toDetail(row)">
+              {{ row.deptName }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="score"
           label="实际得分"

+ 7 - 1
src/views/draw/children/head/headRank.vue

@@ -140,7 +140,13 @@ const toDetail = (row: any = {}) => {
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column prop="deptName" label="科室" min-width="150" />
+        <el-table-column prop="deptName" label="科室" min-width="150">
+          <template #default="{ row }">
+            <el-button type="primary" link @click="toDetail(row)">
+              {{ row.deptName }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="score"
           label="实际得分"

+ 7 - 1
src/views/draw/children/health/healthRank.vue

@@ -140,7 +140,13 @@ const toDetail = (row: any = {}) => {
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column prop="groupName" label="医疗组" min-width="150" />
+        <el-table-column prop="groupName" label="医疗组" min-width="150">
+          <template #default="{ row }">
+            <el-button type="primary" link @click="toDetail(row)">
+              {{ row.groupName }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="score"
           label="实际得分"

+ 7 - 1
src/views/draw/children/worker/workerRank.vue

@@ -141,7 +141,13 @@ const toDetail = (row: any = {}) => {
           </template>
         </el-table-column>
         <el-table-column prop="deptName" label="科室" min-width="150" />
-        <el-table-column prop="userName" label="员工" min-width="150" />
+        <el-table-column prop="userName" label="员工" min-width="150">
+          <template #default="{ row }">
+            <el-button type="primary" link @click="toDetail(row)">
+              {{ row.userName }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="score"
           label="实际得分"

+ 7 - 2
src/views/evaluate/children/change/components/newAdd.vue

@@ -35,6 +35,8 @@ import {
   postUpdate
 } from "@/api/templateInfo";
 import importIndex from "./importIndex.vue";
+import { formulaParamsChange } from "@/utils/business";
+
 const router = useRouter();
 const route = useRoute();
 const formRef = ref();
@@ -341,7 +343,9 @@ const onUpdate = (e: DraggableEvent) => {};
 
 const postUpdateApi = async row => {
   // indexOf.indName = indexOf.name
-  const { code, msg } = await postUpdate(row);
+  const params = { ...row };
+
+  const { code, msg } = await postUpdate(params);
   if (code == 200) {
     // getListByApi();
     ElMessage.success("编辑成功");
@@ -373,6 +377,7 @@ const indexOf = reactive({
   scoreValue: 0,
   formula: "",
   formulaType: 0,
+  formulaParams: [],
   order: 0,
   indName: ""
 });
@@ -391,7 +396,7 @@ const editClosedEvent = ({ row, column }) => {
   const $table = tableVxeRef.value;
   if ($table) {
     Object.assign(indexOf, row);
-    console.log("indexOf", indexOf);
+    console.log("indexOf", indexOf, row);
     postUpdateApi(row);
   }
 };

+ 22 - 14
src/views/evaluate/children/change/components/settingIndexDrawer.vue

@@ -16,7 +16,7 @@ import {
   treeDept
 } from "@/api/department";
 import type { DrawerProps, FormItemProps, FormProps } from "element-plus";
-import { formulaParamsChange } from "@/utils/business";
+import { formulaParamsChange, echoParamsChange } from "@/utils/business";
 // const itemLabelPosition = ref<FormItemProps["labelPosition"]>("");
 const drawer = ref(false);
 const disabledValue = ref(true);
@@ -87,24 +87,31 @@ const getIndexInfoApi = async id => {
     } else {
       params.personList = "";
     }
-    if (isValidJSON(data.formula)) {
-      if (params.formulaType == 0) {
-        params.formula = isValidJSON(data.formula);
-      } else if (params.formulaType == 1) {
-        let aa = JSON.parse(data.formula);
-        let bb = JSON.parse(aa.noConditionFormula);
-        Object.assign(addmanyChange, bb);
-      }
+    if (!data.formulaType) {
+      params.formulaType = 0;
     }
+    if (data.formulaType === 0) {
+      params.formula = {
+        noConditionFormula: params.formula
+      };
+    } else if (data.formulaType === 1) {
+      Object.assign(addmanyChange, echoParamsChange(data.formulaParams));
+    }
+    // if (isValidJSON(data.formula)) {
+    //   if (params.formulaType == 0) {
+    //     params.formula = isValidJSON(data.formula);
+    //   } else if (params.formulaType == 1) {
+    //     let aa = JSON.parse(data.formula);
+    //     let bb = JSON.parse(aa.noConditionFormula);
+    //     Object.assign(addmanyChange, bb);
+    //   }
+    // }
     if (!data.formula) {
       params.formula = {
         noConditionFormula: ""
       };
     } else {
     }
-    if (!data.formulaType) {
-      params.formulaType = 0;
-    }
   } else {
     ElMessage.error(msg);
   }
@@ -113,7 +120,7 @@ const $emit = defineEmits(["refresh"]);
 // 更新指标
 const postUpdateApi = async () => {
   if (params.formulaType == 0) {
-    params.formula = JSON.stringify(params.formula);
+    params.formula = params.formula.noConditionFormula;
   } else {
     params.formula = {
       noConditionFormula: ""
@@ -155,7 +162,8 @@ const postUpdateApi = async () => {
       });
     });
     params.formula.noConditionFormula = JSON.stringify(addmanyChange);
-    params.formula = JSON.stringify(params.formula);
+    delete params.formula;
+    params.formulaParams = formulaParamsChange(addmanyChange);
   }
   const { msg, code } = await postUpdate(params);
   if (code === 200) {

+ 15 - 1
src/views/evaluate/children/change/manage/addExam.vue

@@ -95,6 +95,20 @@ const saveDepartment = () => {
         ElMessage.error("请选择考核周期的具体时间");
         return false;
       }
+      if (form.listArr && form.listArr.length) {
+        const hasList = form.listArr.filter(
+          el => el.idList && el.idList.length
+        );
+        const hasModels = form.listArr.filter(el => el.assessmentModelId);
+        if (hasList.length < form.listArr.length) {
+          ElMessage.error("请选择被考核对象");
+          return false;
+        }
+        if (hasModels.length < form.listArr.length) {
+          ElMessage.error("请选择考核模板");
+          return false;
+        }
+      }
       console.log("考核周期", form.listArr);
       form.assessmentObjectList = transformArrayFormat(form.listArr);
       if (timeType.value == "月度") {
@@ -432,7 +446,7 @@ const idList = ref([]);
             <el-radio value="季度" size="large">季度</el-radio>
             <el-radio value="半年" size="large">半年</el-radio>
             <el-radio value="年度" size="large">年度</el-radio>
-            <el-radio value="日期" size="large">日期</el-radio>
+            <!-- <el-radio value="日期" size="large">日期</el-radio> -->
           </el-radio-group>
           <el-date-picker
             v-if="

+ 11 - 1
src/views/indexData/components/addDialog.vue

@@ -145,7 +145,7 @@ const addSave = async () => {
     if (valid) {
       saveLoading.value = true;
       if (form.specificTime) {
-        form.specificTime = dayjs(form.specificTime).format("YYYY-MM-DD");
+        form.specificTime = dayjs(form.specificTime).valueOf();
         form.sourceTime = dayjs(form.specificTime).valueOf();
       }
       const { code, msg } = await addListApi(form);
@@ -161,6 +161,15 @@ const addSave = async () => {
     }
   });
 };
+
+// 数据时间,只能选每月第一天
+const disabledFirstDayOfMonth = time => {
+  const date = new Date(time);
+  // 获取当前月的第一天
+  const firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
+  // 检查选择的日期是否是当前月的第一天
+  return !(date.getTime() === firstDayOfMonth.getTime());
+};
 </script>
 
 <template>
@@ -244,6 +253,7 @@ const addSave = async () => {
             v-model="form.specificTime"
             type="date"
             placeholder="请选择日期"
+            :disabled-date="disabledFirstDayOfMonth"
           />
         </el-form-item>
       </el-form>

+ 13 - 4
src/views/indexData/components/editDrawer.vue

@@ -79,11 +79,10 @@ const confirmClick = () => {
     if (valid) {
       saveLoading.value = true;
       if (formLabelAlign.specificTime) {
-        formLabelAlign.specificTime = dayjs(formLabelAlign.specificTime).format(
-          "YYYY-MM-DD"
-        );
+        formLabelAlign.specificTime = dayjs(
+          formLabelAlign.specificTime
+        ).valueOf();
       }
-      console.log("formLabelAlign", formLabelAlign, "formLabelAlign.userId");
       const { code, msg } = await editListApi({ ...formLabelAlign });
       saveLoading.value = false;
       if (code === 200) {
@@ -176,6 +175,15 @@ const handleUser = val => {
     formLabelAlign.userId = "";
   }
 };
+
+// 数据时间,只能选每月第一天
+const disabledFirstDayOfMonth = time => {
+  const date = new Date(time);
+  // 获取当前月的第一天
+  const firstDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1);
+  // 检查选择的日期是否是当前月的第一天
+  return !(date.getTime() === firstDayOfMonth.getTime());
+};
 </script>
 
 <template>
@@ -277,6 +285,7 @@ const handleUser = val => {
                 :disabled="disabledShow"
                 type="date"
                 placeholder="请选择日期"
+                :disabled-date="disabledFirstDayOfMonth"
               />
             </el-form-item>
           </el-form>

+ 6 - 1
src/views/indexDefine/children/components/dialog.vue

@@ -153,7 +153,12 @@ const handleClose = (done: () => void) => {
           />
         </el-form-item>
         <el-form-item label="来源">
-          <el-select v-model="form.source" placeholder="请选择" clearable>
+          <el-select
+            v-model="form.source"
+            placeholder="请选择"
+            clearable
+            filterable
+          >
             <el-option
               v-for="item in sourceDataList"
               :key="item.id"

+ 1 - 0
src/views/indexDefine/children/components/editDrawer.vue

@@ -160,6 +160,7 @@ defineExpose({
                 v-model="formLabelAlign.source"
                 :disabled="disabledShow"
                 clearable
+                filterable
                 placeholder="请选择来源"
               >
                 <el-option