ソースを参照

fix: 画像传值递归死循环

ystl_myq 2 ヶ月 前
コミット
2f3ce618fe

+ 16 - 15
src/components/rankTable/draw.vue

@@ -245,7 +245,7 @@ function getValueByKey(obj, key) {
 }
 // 模拟接口数据
 const rawData = ref([]);
-const init = (item, deptNames, names) => {
+const init = async (item, deptNames, names) => {
   rawData.value = item;
   console.log("item", item);
   deptName.value = deptNames;
@@ -259,8 +259,8 @@ const init = (item, deptNames, names) => {
     tabTitle.value = "科室";
   }
   // 初始化
-  createColumns();
-  loadData();
+  await createColumns();
+  await loadData();
 };
 defineExpose({
   init
@@ -511,7 +511,8 @@ const loadData = () => {
   setTimeout(() => {
     gridOptions.data = tableData;
     fileData.value = JSON.parse(JSON.stringify(tableData));
-    if ($route.name != "workerDrak") {
+    console.log("fileData", fileData.value);
+    if ($route.name != "workerDrak" && fileData.value.length > 0) {
       fileData.value[0].ranking = "平均得分";
     }
     gridOptions.loading = false;
@@ -519,17 +520,17 @@ const loadData = () => {
   }, 500);
 };
 
-// 监听年份变化,重新渲染
-watch($prop.rankTableRefList, newVal => {
-  init(newVal.data, newVal.dept, newVal.name);
-  createColumns();
-  loadData();
-  gridRef.value.setMergeCells([
-    // 合并第一行前两列
-    { row: 0, col: 0, rowspan: 1, colspan: 2 },
-    { row: 2, col: 1, rowspan: 0, colspan: 0 }
-  ]);
-});
+// 监听重新渲染 (造成递归死循环修改逻辑)
+// watch($prop.rankTableRefList, newVal => {
+//   init(newVal.data, newVal.dept, newVal.name);
+//   createColumns();
+//   loadData();
+//   gridRef.value.setMergeCells([
+//     // 合并第一行前两列
+//     { row: 0, col: 0, rowspan: 1, colspan: 2 },
+//     { row: 2, col: 1, rowspan: 0, colspan: 0 }
+//   ]);
+// });
 // 导出
 const exportEvent = () => {
   let $grid;

+ 1 - 0
src/views/draw/children/department/componements/seach.vue

@@ -194,6 +194,7 @@ const handClickClear1 = () => {
 };
 const handClickClear2 = () => {
   dataList.deptList = [];
+  dataList.params.assessmentObjectId = "";
 };
 </script>
 

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

@@ -38,9 +38,9 @@ const getChartsListApi = async () => {
       nextTick(() => {
         if (data && data.length > 0) {
           showLength.value = data?.length;
-          rankTableRefList.data = data;
-          rankTableRefList.dept = "科室";
-          rankTableRefList.name = "姓名";
+          if (rankTableRef.value) {
+            rankTableRef.value.init(data, "科室", "姓名");
+          }
         }
       });
     }, 500);
@@ -231,10 +231,7 @@ const loading = ref(false);
         >
           <el-tab-pane label="总览" name="1">
             <div class="flex mr-8">
-              <rankTable
-                ref="rankTableRef"
-                :rankTableRefList="rankTableRefList"
-              />
+              <rankTable ref="rankTableRef" />
             </div>
             <!-- 总得分 -->
             <div class="mt-5 pr-8 w-full h-60">

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

@@ -44,8 +44,11 @@ const getChartsListApi = async () => {
       nextTick(() => {
         if (data && data.length > 0) {
           showLength.value = data.length;
-          rankTableRefList.data = data;
-          rankTableRefList.dept = "医疗组";
+          if (rankTableRef.value) {
+            rankTableRef.value.init(data, "医疗组");
+          }
+          // rankTableRefList.data = data;
+          // rankTableRefList.dept = "医疗组";
           // rankTableRef.value.init(data, "医疗组");
         }
       });

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

@@ -42,9 +42,10 @@ const getChartsListApi = async () => {
       nextTick(() => {
         if (data && data.length > 0) {
           showLength.value = data.length;
-          rankTableRefList.data = data;
-          rankTableRefList.dept = "科室";
-          rankTableRefList.name = "姓名";
+          rankTableRef.value.init(data, "科室", "姓名");
+          // rankTableRefList.data = data;
+          // rankTableRefList.dept = "科室";
+          // rankTableRefList.name = "姓名";
         }
         // console.log("排行榜", rankTableRef.value);
         // if (rankTableRef.value) {