瀏覽代碼

fix: 可视化-多条件

ystl_myq 6 月之前
父節點
當前提交
75c993ee4f

二進制
dist.zip


+ 92 - 18
src/components/rankTable/draw.vue

@@ -25,6 +25,7 @@
 <el-table-column prop="allScore" label="总得分" fixed width="150" />
 </el-table> -->
   <vxe-table
+    v-if="$route.name != 'workerDrak'"
     border
     show-overflow
     style="width: 100%"
@@ -35,16 +36,12 @@
     <vxe-column field="index" title="排名" width="80" fixed="left">
       <template #default="scope">
         <div
-          v-if="
-            scope._rowIndex == 0 &&
-            $route.name != 'workerDrak' &&
-            $route.name != 'workerRank'
-          "
+          v-if="scope._rowIndex == 0"
           class="text-center text-sm font-extrabold text-[#000000] pt-4"
         >
           平均得分
         </div>
-        <div v-if="scope._rowIndex > 2" class="diamond">
+        <div v-if="scope._rowIndex > imgIndex" class="diamond">
           {{ scope.row.ranking }}
         </div>
         <div v-else class="text-center">
@@ -73,27 +70,87 @@
       title="姓名"
       width="100"
     />
-    <div v-for="(ita, itk) in tableData" :key="itk">
-      <!-- <vxe-column field="deptName" :title="deptName" width="150" /> -->
-      <div v-for="item in ita.dimensionList" :key="item.dimId">
-        <div v-for="it in item.quotaList" :key="it.quotaId">
-          <vxe-colgroup :title="`${item.dimName}(${item.soreRate}%)`">
+    <template v-for="(ita, itk) in tableData" :key="itk">
+      <template v-for="item in ita.dimensionList" :key="item.dimId">
+        <vxe-colgroup
+          :title="`${item.dimName}(${soreRate(item.soreRate)}%)`"
+          width="150"
+        >
+          <template v-for="it in item.quotaList" :key="it.quotaId">
             <vxe-column
               :field="it.quotaScore"
-              :title="`${it.quotaName}(${it.quotaWeight}%)`"
+              :title="`${it.quotaName}(${soreRate(it.quotaWeight)}%)`"
               width="150"
             />
-          </vxe-colgroup>
-          <vxe-column field="totalSore" title="总分" width="150" />
+          </template>
+        </vxe-colgroup>
+        <vxe-column field="totalSore" title="总分" width="150" />
+      </template>
+    </template>
+    <vxe-column field="allScore" title="总得分" fixed="right" width="150" />
+  </vxe-table>
+  <vxe-table
+    v-else
+    border
+    show-overflow
+    style="width: 100%"
+    height="400"
+    :data="tableData"
+  >
+    <vxe-column field="index" title="排名" width="80" fixed="left">
+      <template #default="scope">
+        <div v-if="scope._rowIndex > 2" class="diamond">
+          {{ scope.row.ranking }}
         </div>
-      </div>
-    </div>
+        <div v-else class="text-center">
+          <img :src="RANK_IMG[scope.row.ranking - 1]" alt="" />
+        </div>
+      </template>
+    </vxe-column>
+    <vxe-column
+      v-if="$route.name == 'workerDrak' || $route.name == 'workerRank'"
+      field="deptName"
+      :title="deptName"
+      fixed="left"
+      width="150"
+    />
+    <vxe-column
+      v-else
+      field="assessmentObjectName"
+      :title="deptName"
+      fixed="left"
+      width="150"
+    />
+    <vxe-column
+      v-if="$route.name == 'workerDrak' || $route.name == 'workerRank'"
+      field="assessmentObjectName"
+      fixed="left"
+      title="姓名"
+      width="100"
+    />
+    <template v-for="(ita, itk) in tableData" :key="itk">
+      <template v-for="item in ita.dimensionList" :key="item.dimId">
+        <vxe-colgroup
+          :title="`${item.dimName}(${soreRate(item.soreRate)}%)`"
+          width="150"
+        >
+          <template v-for="it in item.quotaList" :key="it.quotaId">
+            <vxe-column
+              :field="it.quotaScore"
+              :title="`${it.quotaName}(${soreRate(it.quotaWeight)}%)`"
+              width="150"
+            />
+          </template>
+        </vxe-colgroup>
+        <vxe-column field="totalSore" title="总分" width="150" />
+      </template>
+    </template>
     <vxe-column field="allScore" title="总得分" fixed="right" width="150" />
   </vxe-table>
 </template>
 
 <script lang="ts" setup>
-import { computed, reactive, ref } from "vue";
+import { computed, reactive, ref, onMounted } from "vue";
 import rank1 from "@/assets/rank/rank1.png";
 import rank2 from "@/assets/rank/rank2.png";
 import rank3 from "@/assets/rank/rank3.png";
@@ -116,14 +173,31 @@ const averageData = averageSore => {
     });
   }
 };
+const imgIndex = ref();
+onMounted(() => {
+  if ($route.name != "workerDrak" || $route.name != "workerRank") {
+    imgIndex.value = 3;
+  } else {
+    imgIndex.value = 2;
+  }
+});
 const init = (item, deptNames, names) => {
   tableData.value = item;
   deptName.value = deptNames;
   name.value = names;
-  averageData(item.averageSore);
+  if ($route.name != "workerDrak") {
+    averageData(item.averageSore);
+  }
   console.log("item111", item);
   console.log("tableData", tableData.value);
 };
+const soreRate = row => {
+  if (row) {
+    return row;
+  } else {
+    return 0;
+  }
+};
 defineExpose({
   init
 });

+ 30 - 23
src/components/rankTable/index.vue

@@ -10,11 +10,7 @@
     <vxe-column field="index" title="排名" width="80" fixed="left">
       <template #default="scope">
         <div
-          v-if="
-            scope._rowIndex == 0 &&
-            $route.name != 'workerDrak' &&
-            $route.name != 'workerRank'
-          "
+          v-if="scope._rowIndex == 0"
           class="text-center text-sm font-extrabold text-[#000000] pt-4"
         >
           平均得分
@@ -48,21 +44,23 @@
       title="姓名"
       width="100"
     />
-    <div v-for="(ita, itk) in tableData" :key="itk">
-      <!-- <vxe-column field="deptName" :title="deptName" width="150" /> -->
-      <div v-for="item in ita.dimensionList" :key="item.dimId">
-        <div v-for="it in item.quotaList" :key="it.quotaId">
-          <vxe-colgroup :title="`${item.dimName}(${item.soreRate}%)`">
+    <template v-for="(ita, itk) in tableData" :key="itk">
+      <template v-for="item in ita.dimensionList" :key="item.dimId">
+        <vxe-colgroup
+          :title="`${item.dimName}(${soreRate(item.soreRate)}%)`"
+          width="150"
+        >
+          <template v-for="it in item.quotaList" :key="it.quotaId">
             <vxe-column
               :field="it.quotaScore"
-              :title="`${it.quotaName}(${it.quotaWeight}%)`"
+              :title="`${it.quotaName}(${soreRate(it.quotaWeight)}%)`"
               width="150"
             />
-          </vxe-colgroup>
-          <vxe-column field="totalSore" title="总分" width="150" />
-        </div>
-      </div>
-    </div>
+          </template>
+        </vxe-colgroup>
+        <vxe-column field="totalSore" title="总分" width="150" />
+      </template>
+    </template>
     <vxe-column field="allScore" title="总得分" fixed="right" width="150" />
   </vxe-table>
 </template>
@@ -88,12 +86,12 @@ onMounted(() => {
   cellTable();
 });
 const cellTable = () => {
-  if ($route.name == "workerDrak" || $route.name == "workerRank") {
-    mergeCells.value = [
-      { row: 0, col: 0, rowspan: 1, colspan: 3 },
-      { row: 2, col: 1, rowspan: 1, colspan: 3 }
-    ];
-  }
+  // if ($route.name == "workerRank") {
+  //   mergeCells.value = [
+  //     { row: 0, col: 0, rowspan: 1, colspan: 3 },
+  //     { row: 2, col: 1, rowspan: 1, colspan: 3 }
+  //   ];
+  // }
   if ($route.name == "healthDrank" || $route.name == "healthRank") {
     tabTitle.value = "医疗组";
   } else {
@@ -114,10 +112,19 @@ const init = (item, deptNames, names) => {
   tableData.value = item;
   deptName.value = deptNames;
   name.value = names;
-  averageData(item.averageSore);
+  if ($route.name != "workerDrak") {
+    averageData(item.averageSore);
+  }
   console.log("tableData.value", tableData.value);
   console.log("deptName.value", item);
 };
+const soreRate = row => {
+  if (row) {
+    return row;
+  } else {
+    return 0;
+  }
+};
 defineExpose({
   init
 });

+ 24 - 12
src/views/draw/children/department/componements/seach.vue

@@ -79,10 +79,14 @@ const handClickInit1 = value => {
     init.assessmentName = selectedItem.name;
     getTemplateInfoListApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    0
+  );
 };
 const handClickInit2 = value => {
   if (value) {
@@ -92,10 +96,14 @@ const handClickInit2 = value => {
     init.assessmentModelName = selectedItem.assessmentModelName;
     userPageWhitOrganizationApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    0
+  );
 };
 const handClickInit3 = value => {
   if (value) {
@@ -106,10 +114,14 @@ const handClickInit3 = value => {
     init.deptName = value.deptName;
   }
 
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    1
+  );
 };
 </script>
 

+ 7 - 4
src/views/draw/children/department/departmentDrank.vue

@@ -90,13 +90,16 @@ const getPersonDimensionChartsRankingApi = async (
     }
   }
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
+
   setTimeout(() => {
     nextTick(() => {
-      getPersonDimensionChartsRankingApi();
-      getChartsListApi();
+      if (Number(type)) {
+        getPersonDimensionChartsListApi();
+        getPersonDimensionChartsRankingApi();
+        getChartsListApi();
+      }
       barDimEchartsRef.value.init(seachParams.value, 1);
     });
   }, 500);

+ 12 - 8
src/views/draw/children/department/departmentRank.vue

@@ -17,20 +17,24 @@ const getPersonDimensionChartsListApi = async () => {
   });
 
   if (code == 200) {
-    console.log("data", data);
     if (data.length > 0) {
       lengthData.value = data.length;
-      console.log("lengthData.value", lengthData.value);
-      nextTick(() => {
-        rankTableRef.value.init(data, "科室", "姓名");
-      });
-      setTimeout(() => {}, 500);
+
+      setTimeout(() => {
+        nextTick(() => {
+          rankTableRef.value.init(data, "科室", "姓名");
+        });
+      }, 500);
     }
   }
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
+  console.log(111111, type);
+  console.log(111111, item);
+  if (type) {
+    getPersonDimensionChartsListApi();
+  }
 };
 </script>
 

+ 32 - 16
src/views/draw/children/head/componements/seach.vue

@@ -65,8 +65,12 @@ const postListTreeApi = async () => {
 };
 postListTreeApi();
 // 科主任
-const getLeaderListApi = async () => {
-  const { data, code } = await getLeaderList();
+const getLeaderListApi = async selectedItem => {
+  const { data, code } = await getUserListObjectByModelId({
+    modelId: selectedItem.assessmentModelId,
+    assessmentId: selectedItem.assessmentId,
+    type: 3
+  });
   if (code === 200) {
     dataList.leaderList = data;
   }
@@ -89,7 +93,8 @@ const handClickInit1 = value => {
   $emit("handClick", {
     ...dataList.params,
     ...init
-  });
+  }),
+    "0";
 };
 const handClickInit2 = value => {
   if (value) {
@@ -97,21 +102,32 @@ const handClickInit2 = value => {
       item => item.assessmentModelId === value
     );
     init.assessmentModelName = selectedItem.assessmentModelName;
+    getLeaderListApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "0"
+  );
 };
 const handClickInit3 = value => {
   if (value) {
-    const selectedItem = dataList.teplist.find(item => item.userCode === value);
-    init.assessmentObjectName = selectedItem.realName;
+    const selectedItem = dataList.leaderList.find(
+      item => item.assessmentObjectId === value
+    );
+    init.assessmentObjectName = selectedItem.assessmentObjectName;
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "1"
+  );
 };
 </script>
 
@@ -181,9 +197,9 @@ const handClickInit3 = value => {
           >
             <el-option
               v-for="item in dataList.leaderList"
-              :key="item.userCode"
-              :label="item.realName"
-              :value="item.userCode"
+              :key="item.assessmentObjectId"
+              :label="item.assessmentObjectName"
+              :value="item.assessmentObjectId"
             />
           </el-select>
         </div>

+ 6 - 4
src/views/draw/children/head/headDrank.vue

@@ -87,11 +87,13 @@ const getPersonDimensionChartsRankingApi = async (
     }
   }
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
-  getPersonDimensionChartsRankingApi();
-  getChartsListApi();
+  if (Number(type)) {
+    getPersonDimensionChartsListApi();
+    getPersonDimensionChartsRankingApi();
+    getChartsListApi();
+  }
   barDimEchartsRef.value.init(seachParams.value, 0);
 };
 // 维度表格

+ 24 - 12
src/views/draw/children/health/componements/seach.vue

@@ -69,10 +69,14 @@ const handClickInit1 = value => {
     init.assessmentName = selectedItem.name;
     getTemplateInfoListApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "0"
+  );
 };
 const handClickInit2 = value => {
   if (value) {
@@ -82,10 +86,14 @@ const handClickInit2 = value => {
     init.assessmentModelName = selectedItem.assessmentModelName;
     postPageGroupApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "0"
+  );
 };
 const handClickInit3 = value => {
   if (value) {
@@ -94,10 +102,14 @@ const handClickInit3 = value => {
     );
     init.assessmentObjectName = selectedItem.assessmentObjectName;
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "1"
+  );
 };
 </script>
 

+ 7 - 5
src/views/draw/children/health/healthDrank.vue

@@ -89,11 +89,13 @@ const getPersonDimensionChartsRankingApi = async (
     }
   }
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
-  // getPersonDimensionChartsRankingApi();
-  // getChartsListApi();
+  if (Number(type)) {
+    getPersonDimensionChartsListApi();
+    getPersonDimensionChartsRankingApi();
+    getChartsListApi();
+  }
   barDimEchartsRef.value.init(seachParams.value, 0);
 };
 // 维度表格
@@ -122,7 +124,7 @@ const fullBig = (item: any) => {
   <div class="w-[100%]">
     <div class="w-[100%]">
       <seachData @handClick="init" />
-      <div v-if="showLength.length > 0">
+      <div v-if="showLength > 0">
         <div class="flex mr-2">
           <radar ref="radarRef" />
         </div>

+ 32 - 16
src/views/draw/children/worker/componements/seach.vue

@@ -83,10 +83,14 @@ const handClickInit1 = value => {
     init.assessmentName = selectedItem.name;
     getTemplateInfoListApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "0"
+  );
 };
 const handClickInit2 = value => {
   if (value) {
@@ -97,10 +101,14 @@ const handClickInit2 = value => {
     userPageWhitOrganizationApi(selectedItem);
     postListTreeApi(selectedItem);
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "0"
+  );
 };
 const handClickInit3 = value => {
   if (value) {
@@ -110,10 +118,14 @@ const handClickInit3 = value => {
     init.deptName = selectedItem.assessmentObjectName;
     // init.deptName = value.deptName;
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "1"
+  );
 };
 const handClickInit4 = value => {
   if (value) {
@@ -122,10 +134,14 @@ const handClickInit4 = value => {
     );
     init.assessmentObjectName = selectedItem.assessmentObjectName;
   }
-  $emit("handClick", {
-    ...dataList.params,
-    ...init
-  });
+  $emit(
+    "handClick",
+    {
+      ...dataList.params,
+      ...init
+    },
+    "1"
+  );
 };
 </script>
 

+ 8 - 4
src/views/draw/children/worker/workerDrak.vue

@@ -88,11 +88,15 @@ const getPersonDimensionChartsRankingApi = async (
     }
   }
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
-  getPersonDimensionChartsRankingApi();
-  getChartsListApi();
+  console.log("type", type);
+  console.log("type", typeof type);
+  if (Number(type)) {
+    getPersonDimensionChartsListApi();
+    getPersonDimensionChartsRankingApi();
+    getChartsListApi();
+  }
   barDimEchartsRef.value.init(seachParams.value, 0);
 };
 // 维度表格

+ 5 - 3
src/views/draw/children/worker/workerRank.vue

@@ -5,7 +5,7 @@ defineOptions({
 import rankTableDraw from "@/components/rankTable/index.vue";
 import { getPersonDimensionChartsList, getChartsList } from "@/api/draw";
 import seachData from "./componements/seach.vue";
-import { ref } from "vue";
+import { ref, nextTick } from "vue";
 const rankTableRef = ref();
 const seachParams = ref();
 const lengthData = ref();
@@ -28,9 +28,11 @@ const getPersonDimensionChartsListApi = async () => {
 
   // console.log(res);
 };
-const init = item => {
+const init = (item, type) => {
   seachParams.value = item;
-  getPersonDimensionChartsListApi();
+  if (Number(type)) {
+    getPersonDimensionChartsListApi();
+  }
 };
 </script>
 

+ 15 - 0
src/views/evaluate/children/change/components/newAdd.vue

@@ -410,6 +410,17 @@ const editClosedEvent = ({ row, column }) => {
     postUpdateApi();
   }
 };
+// 列表行拖拽
+const columnConfig = reactive({
+  useKey: true
+});
+const resultEvent = () => {
+  const $table = tableRef.value;
+  if ($table) {
+    const { visibleData } = $table.getTableData();
+    console.log(visibleData);
+  }
+};
 </script>
 
 <template>
@@ -554,11 +565,14 @@ const editClosedEvent = ({ row, column }) => {
               :edit-config="editConfig"
               :data="item.tableData"
               max-height="250"
+              :row-config="rowConfig"
+              :column-config="columnConfig"
               @edit-closed="editClosedEvent"
             >
               <vxe-column
                 field="indName"
                 fixed
+                drag-sort
                 title="指标名称"
                 :edit-render="{ name: 'input' }"
               />
@@ -567,6 +581,7 @@ const editClosedEvent = ({ row, column }) => {
                 field="remark"
                 title="指标说明"
                 :edit-render="{ name: 'input' }"
+                drag-sort
               />
               <vxe-column
                 v-if="item.showScoreRule"

+ 91 - 0
src/views/evaluate/children/change/components/settingIndexDrawer.vue

@@ -19,6 +19,21 @@ import type { DrawerProps, FormItemProps, FormProps } from "element-plus";
 // const itemLabelPosition = ref<FormItemProps["labelPosition"]>("");
 const drawer = ref(false);
 const disabledValue = ref(true);
+const GONG_SHI = ["完成值", "目标值", "门槛值", "挑战值", "增幅", "降幅"];
+// 判断 score 字符串是否包含 GONG_SHI 中的关键字
+function containsKeywordInScore(score, keywordss) {
+  // 确保 score 是字符串,keywords 是数组
+  if (score && typeof score == "string") {
+    const cleanedScore = score.replace(/[\s\-]/g, ""); // 去除空格和破折号
+    const cleanedKeywords = keywordss.map(keyword =>
+      keyword.replace(/[\s\-]/g, "")
+    );
+    return cleanedKeywords.some(keyword => cleanedScore.includes(keyword));
+    // 遍历 keywords 数组,检查 score 是否包含其中的任何一个关键字
+  } else {
+    return false;
+  }
+}
 const direction = ref<DrawerProps["direction"]>("rtl");
 const formLabelAlign = reactive({
   name: "",
@@ -89,6 +104,42 @@ const postUpdateApi = async () => {
     params.formula = {
       noConditionFormula: ""
     };
+    // 判断是公式还是数字
+    if (containsKeywordInScore(addmanyChange.outerConditionValue, GONG_SHI)) {
+      addmanyChange.outerConditionValueExpress =
+        addmanyChange.outerConditionValue;
+    }
+    addmanyChange.innerConditionExpression.map(inn => {
+      if (containsKeywordInScore(inn.startValue, GONG_SHI)) {
+        inn.startExpress = inn.startValue;
+      }
+      if (containsKeywordInScore(inn.endValue, GONG_SHI)) {
+        inn.endExpress = inn.endValue;
+      }
+      if (containsKeywordInScore(inn.innerScore, GONG_SHI)) {
+        inn.innerScoreExpress = inn.innerScore;
+      }
+      if (
+        containsKeywordInScore(
+          inn.scoreRuleMoreInnerVO[0].innerConditionValue,
+          GONG_SHI
+        )
+      ) {
+        inn.scoreRuleMoreInnerVO[0].innerConditionValueExpress =
+          inn.scoreRuleMoreInnerVO[0].innerConditionValue;
+      }
+      inn.scoreRuleMoreInnerVO[0].scoreRules.map(isc => {
+        if (containsKeywordInScore(isc.score, GONG_SHI)) {
+          isc.scoreExpress = isc.score;
+        }
+        if (containsKeywordInScore(isc.startValue, GONG_SHI)) {
+          isc.startExpress = isc.startValue;
+        }
+        if (containsKeywordInScore(isc.endValue, GONG_SHI)) {
+          isc.endExpress = isc.endValue;
+        }
+      });
+    });
     params.formula.noConditionFormula = JSON.stringify(addmanyChange);
     params.formula = JSON.stringify(params.formula);
   }
@@ -316,6 +367,7 @@ const open = row => {
   });
   Object.assign(addmanyChange, {
     outerConditionValue: "",
+    outerConditionValueExpress: "",
     innerConditionExpression: [
       {
         startValue: null,
@@ -323,6 +375,8 @@ const open = row => {
         select: null,
         comparisonStart: null,
         comparisonEnd: null,
+        innerScore: null,
+        innerScoreExpress: null,
         scoreRuleMoreInnerVO: []
       }
     ]
@@ -417,6 +471,7 @@ const count = item => {
 // 多条件公式
 const addmanyChange = reactive({
   outerConditionValue: "",
+  outerConditionValueExpress: "",
   innerConditionExpression: [
     {
       startValue: null,
@@ -424,6 +479,8 @@ const addmanyChange = reactive({
       select: null,
       comparisonStart: null,
       comparisonEnd: null,
+      innerScore: null,
+      innerScoreExpress: null,
       scoreRuleMoreInnerVO: [
         // {
         //   innerConditionValue: null,
@@ -447,11 +504,15 @@ const addItemFormulaList = (item, index) => {
   addmanyChange.innerConditionExpression[index].scoreRuleMoreInnerVO = [
     {
       innerConditionValue: null,
+      innerConditionValueExpress: null,
       scoreRules: [
         {
           score: null,
+          scoreExpress: null,
           startValue: null,
+          startExpress: null,
           endValue: null,
+          endExpress: null,
           select: null,
           comparisonStart: null,
           comparisonEnd: null
@@ -459,6 +520,7 @@ const addItemFormulaList = (item, index) => {
       ]
     }
   ];
+  addmanyChange.innerConditionExpression[index].innerScore = "";
 };
 
 const deleteItem = index => {
@@ -504,11 +566,13 @@ const addItemDataList = (
   ].scoreRuleMoreInnerVO[0].scoreRules.push({
     select: null,
     score: null,
+    scoreExpress: null,
     startValue: itemList.endValue,
     endValue: null,
     comparisonStart: itemList.comparisonEnd,
     comparisonEnd: null
   });
+  addmanyChange.innerConditionExpression[index].innerScore = "";
 };
 // 多条件公式验证
 const keywords = ["目标值", "完成值", "挑战值", "增幅", "降幅"];
@@ -583,6 +647,9 @@ const countNoConditionFormula4 = (item, index, indexList) => {
     index
   ].scoreRuleMoreInnerVO[0].scoreRules[indexList].score = item;
 };
+const countNoConditionFormulaInnerScore = (item, index, indexList) => {
+  addmanyChange.innerConditionExpression[index].innerScore = item;
+};
 
 // 转换函数 --- 人员
 const convertDepartmentDataRecursive_Person = data => {
@@ -951,6 +1018,30 @@ const handleRreeSelect = () => {
                               style="width: 80px"
                             />
                           </div>
+                          <el-text v-if="item.scoreRuleMoreInnerVO.length == 0"
+                            >得分 =
+                          </el-text>
+                          <el-input
+                            v-if="
+                              index + 1 ==
+                                addmanyChange.innerConditionExpression.length &&
+                              index >= 1
+                            "
+                            disabled
+                            class="ml-2 mr-5"
+                            style="width: 100px"
+                          />
+                          <div v-else>
+                            <jishuanqi
+                              v-if="item.scoreRuleMoreInnerVO.length == 0"
+                              ref="jishuanqiRef"
+                              :index="index"
+                              :outerConditionValue="item.innerScore"
+                              class="ml-2 mr-6"
+                              style="width: 100px"
+                              @handClick="countNoConditionFormulaInnerScore"
+                            />
+                          </div>
                           <el-text type="danger" @click="deleteItem(index)">
                             <el-icon>
                               <Delete />

+ 43 - 6
src/views/evaluate/children/change/manage.vue

@@ -138,18 +138,55 @@ const saveCopy = async () => {
           style="width: 100%"
           @row-click="handleRowClick"
         >
-          <el-table-column prop="name" label="考核名称" width="300" fixed />
-          <el-table-column prop="cycle" label="周期" />
-          <el-table-column prop="cycleValue" label="执行期" />
-          <el-table-column prop="name" label="考核模板" width="250" />
+          <el-table-column prop="name" label="考核名称" width="300" fixed>
+            <template #default="{ row }">
+              <div @click="setEdit(row)">
+                {{ row.name }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="cycle" label="周期">
+            <template #default="{ row }">
+              <div @click="setEdit(row)">
+                {{ row.cycle }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="cycleValue" label="执行期">
+            <template #default="{ row }">
+              <div @click="setEdit(row)">
+                {{ row.cycleValue }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="assessmentModelNameList"
+            label="考核模板"
+            width="250"
+          >
+            <template #default="{ row }">
+              <div @click="setEdit(row)">
+                {{ row.assessmentModelNameList }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column prop="assessmentStatus" label="状态">
             <template #default="{ row }">
-              <el-tag :type="getStateType(row.assessmentStatus)">
+              <el-tag
+                :type="getStateType(row.assessmentStatus)"
+                @click="setEdit(row)"
+              >
                 {{ assessmentStatus(row.assessmentStatus) }}
               </el-tag>
             </template>
           </el-table-column>
-          <el-table-column prop="createUser" label="创建人" />
+          <el-table-column prop="createUser" label="创建人">
+            <template #default="{ row }">
+              <div @click="setEdit(row)">
+                {{ row.createUser }}
+              </div>
+            </template>
+          </el-table-column>
           <el-table-column prop="updateTime" label="更新时间" sortable>
             <template #default="{ row }">
               <div v-if="row.updateTime">

+ 0 - 1
src/views/evaluate/children/change/mould/manageObject.vue

@@ -566,7 +566,6 @@ const addPerson = async () => {
           show-overflow
           :edit-config="editConfig"
           :data="initParams.Indexlist"
-          max-height="250"
           @edit-closed="editClosedEvent"
           @selection-change="changeSelection"
         >

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

@@ -20,14 +20,16 @@ const form = reactive({
   source: "",
   statue: null
 });
-const sourceList = ref([]);
+const sourceDataList = ref([]);
 const getQuotaSourceListApi = async () => {
   const { data, code } = await getQuotaSourceList();
+  console.log("1112132", data);
   if (code == 200) {
-    sourceList.value = data;
+    sourceDataList.value = data;
   }
 };
 onMounted(() => {
+  getQuotaSourceListApi();
   getSelectDictListtApi();
   getFromSelectDictListtApi();
 });
@@ -70,6 +72,7 @@ const save = () => {
   addQuotaApi();
 };
 const open = () => {
+  console.log(1111);
   getQuotaSourceListApi();
   // 打开弹框
   Object.assign(form, {
@@ -152,7 +155,7 @@ const handleClose = (done: () => void) => {
         <el-form-item label="来源">
           <el-select v-model="form.source" placeholder="请选择">
             <el-option
-              v-for="item in sourceList"
+              v-for="item in sourceDataList"
               :key="item.id"
               :label="item.sourceValue"
               :value="item.sourceValue"

+ 14 - 4
src/views/indexDefine/children/components/editDrawer.vue

@@ -80,12 +80,22 @@ function confirmClick() {
 }
 const open = row => {
   Object.assign(formLabelAlign, row);
+  getQuotaSourceListApi();
   drawer.value = true;
 };
 // 编辑
 const editClick = () => {
   disabledShow.value = false;
 };
+// 来源
+const sourceDataList = ref([]);
+const getQuotaSourceListApi = async () => {
+  const { data, code } = await getQuotaSourceList();
+  console.log("1112132", data);
+  if (code == 200) {
+    sourceDataList.value = data;
+  }
+};
 defineExpose({
   open
 });
@@ -152,10 +162,10 @@ defineExpose({
                 placeholder="请选择来源"
               >
                 <el-option
-                  v-for="(item, index) in selectFrom"
-                  :key="index"
-                  :label="item.dictValue"
-                  :value="item.dictValue"
+                  v-for="item in sourceDataList"
+                  :key="item.id"
+                  :label="item.sourceValue"
+                  :value="item.sourceValue"
               /></el-select>
             </el-form-item>
             <el-form-item label="状态" label-position="top" prop="statue">

+ 1 - 1
src/views/indexDefine/children/define.vue

@@ -262,7 +262,7 @@ const formattedTime = time => {
         </div>
       </div>
       <div class="mt-8">
-        <el-table :data="params.records" style="width: 100%">
+        <el-table :data="params.records" style="z-index: 0; width: 100%">
           <el-table-column
             prop="id"
             label="指标编号"