From e95ca9ef89c79fbff8f0d1394311f5f18d653cdd Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期五, 18 十月 2024 16:49:49 +0800
Subject: [PATCH] 动态表头

---
 src/views/fysp/evaluation/components/precheck/components/CompCheckSource.vue |  212 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 137 insertions(+), 75 deletions(-)

diff --git a/src/views/fysp/evaluation/components/precheck/components/CompCheckSource.vue b/src/views/fysp/evaluation/components/precheck/components/CompCheckSource.vue
index 3456d9c..33c01fb 100644
--- a/src/views/fysp/evaluation/components/precheck/components/CompCheckSource.vue
+++ b/src/views/fysp/evaluation/components/precheck/components/CompCheckSource.vue
@@ -5,48 +5,54 @@
       <el-text size="small" type="info">妫�鏌ヨ瘎浼版墍闇�鏁版嵁婧愭槸鍚﹀畬鏁�</el-text>
     </template>
     <FormCol>
-      <el-form-item align="middle" v-for="(v, i) in checkResults" :key="i">
-        <el-col :span="14">
-          <el-row align="middle">
-            <el-text size="default" :class="v.required ? 'required' : 'not-required'">*</el-text>
-            <el-text size="default" class="m-l-4">{{ v.name }}</el-text>
-          </el-row>
-        </el-col>
-        <el-col :span="5">
-          <el-row align="middle">
-            <el-space>
-              <template v-if="v.loading">
-                <el-icon class="is-loading"><Loading /></el-icon>
-                <el-text size="default" type="default">妫�鏌ヤ腑...</el-text>
-              </template>
-              <template v-else-if="v.pass == true">
-                <el-icon color="var(--el-color-success)"><Check /></el-icon>
-                <el-text size="default" type="success">閫氳繃</el-text>
-              </template>
-              <template v-else-if="v.pass == false">
-                <el-icon color="var(--el-color-danger)"><Close /></el-icon>
-                <el-text size="default" type="danger">缂哄け</el-text>
-              </template>
-              <template v-else>
-                <el-icon color="var(--el-color-warning)"><Warning /></el-icon>
-                <el-text size="default" type="warning">鏆傜暐杩�</el-text>
-              </template>
-            </el-space>
-          </el-row>
-        </el-col>
-        <el-col :span="5">
-          <el-button
-            v-if="!v.pass"
-            type="primary"
-            size="small"
-            @click="goto(v.path)"
-            :disabled="v.path == ''"
-          >
-            鍘诲畬鍠�
-            <el-icon class="m-l-4"><Right /></el-icon>
-          </el-button>
-        </el-col>
-      </el-form-item>
+      <template v-for="(v, i) in checkResults" :key="i">
+        <el-row class="h-small" align="middle">
+          <el-col :span="14">
+            <el-row align="middle">
+              <el-text size="default" :class="v.required ? 'required' : 'not-required'">*</el-text>
+              <el-text size="default" class="m-l-4">{{ v.name }}</el-text>
+            </el-row>
+          </el-col>
+          <el-col :span="5">
+            <el-row align="middle">
+              <el-space>
+                <template v-if="v.loading">
+                  <el-icon class="is-loading"><Loading /></el-icon>
+                  <el-text size="default" type="default">妫�鏌ヤ腑...</el-text>
+                </template>
+                <template v-else-if="v.pass == true">
+                  <el-icon color="var(--el-color-success)"><Check /></el-icon>
+                  <el-text size="default" type="success">閫氳繃</el-text>
+                </template>
+                <template v-else-if="v.pass == false">
+                  <el-icon color="var(--el-color-danger)"><Close /></el-icon>
+                  <el-text size="default" type="danger">缂哄け</el-text>
+                </template>
+                <template v-else>
+                  <el-icon color="var(--el-color-warning)"><Warning /></el-icon>
+                  <el-text size="default" type="warning">鏆傜暐杩�</el-text>
+                </template>
+              </el-space>
+            </el-row>
+          </el-col>
+          <el-col :span="5">
+            <el-button
+              v-show="!v.loading"
+              :type="v.pass ? '' : 'danger'"
+              size="small"
+              @click="goto(v.path)"
+              :disabled="v.path == ''"
+            >
+              {{ v.pass ? '鍘讳慨鏀�' : '鍘诲畬鍠�' }}
+              <el-icon class="m-l-4"><Right /></el-icon>
+            </el-button>
+          </el-col>
+        </el-row>
+        <el-row align="middle" class="m-b-16">
+          <el-text size="small" class="not-required">*</el-text>
+          <el-text size="small" class="m-l-4 color-i">{{ v.des }}</el-text>
+        </el-row>
+      </template>
     </FormCol>
     <template #footer>
       <el-row justify="space-around">
@@ -80,11 +86,28 @@
     loading: true,
     pass: false,
     path: _path,
+    des: '',
     async fetch() {
       this.loading = true;
       setTimeout(async () => {
-        this.pass = await _fetch();
-        this.loading = false;
+        if (_fetch != undefined) {
+          _fetch()
+            .then((res) => {
+              this.pass = res ? res.pass : undefined;
+              this.des = res ? res.des : undefined;
+            })
+            .catch(() => {
+              this.pass = false;
+              this.des = '缃戠粶閾炬帴閿欒';
+            })
+            .finally(() => {
+              this.loading = false;
+            });
+        } else {
+          this.pass = undefined;
+          this.des = undefined;
+          this.loading = false;
+        }
       }, 1000);
     }
   };
@@ -98,7 +121,7 @@
     // 姝ラ涓嬫爣
     modelValue: Number
   },
-  emits: ['update:modelValue'],
+  emits: ['update:modelValue', 'change'],
   data() {
     return {
       areaInfo: {},
@@ -114,7 +137,19 @@
               ...this.areaInfo
             };
             return evaluateApi.fetchEvaluationRule(param).then((res) => {
-              return res.data.length > 0;
+              const pass = res.data.length > 0;
+              let des = '';
+              if (pass) {
+                res.data.forEach((e) => {
+                  if (des != '') {
+                    des += '銆�';
+                  }
+                  des += `銆�${e.rulename}銆媊;
+                });
+              } else {
+                des = '鏈壘鍒扮浉鍏宠瘎浼拌鍒欒〃';
+              }
+              return { pass, des };
             });
           },
           true
@@ -122,36 +157,60 @@
         // 鍖哄煙鑼冨洿鍐呯殑鐩戠浠诲姟鏄惁瀛樺湪
         baseCheckItem('鐜板満鐩戠宸℃煡鎬讳换鍔�', '', () => {
           return taskApi.fetchTopTasks(this.areaInfo).then((res) => {
-            return res.data.length > 0;
+            const pass = res.data.length > 0;
+            let des = '';
+            if (pass) {
+              res.data.forEach((e) => {
+                if (des != '') {
+                  des += '銆�';
+                }
+                des += e.name;
+              });
+            } else {
+              des = '鏈壘鍒扮浉鍏冲贰鏌ユ�讳换鍔�';
+            }
+            return { pass, des };
           });
         }),
         // 鍖哄煙鑼冨洿鍐呯殑鐩戞祴鏁版嵁鏄惁瀛樺湪銆佹暟鎹椂闂磋法搴︽槸鍚﹀畬鏁淬�佹暟鎹殑鍒濇鍒嗘瀽鏄惁瀹屾垚
-        baseCheckItem('鐜板満鐩戞祴鏁版嵁', '', () => {}),
+        baseCheckItem('鐜板満鐩戞祴鏁版嵁', ''),
         // 鍖哄煙鑼冨洿鍐呯殑姣忎釜鐩戠鐐逛綅涓庣洃娴嬩华鍣ㄧ殑鍖归厤璁板綍鏄惁瀛樺湪锛岀己澶辨儏鍐电瓑
         baseCheckItem('鐩戠鐐逛綅涓庣洃娴嬬偣鍖归厤', '', () => {
-          userMapApi.fetchDeviceMap(this.areaInfo).then((res) => {
-            return res.data.length > 0;
+          return userMapApi.fetchDeviceMap(this.areaInfo).then((res) => {
+            const pass = res.data.length > 0;
+            let des = '';
+            if (pass) {
+              des = `鎵惧埌鍖归厤璁板綍鍏�${res.data.length}鏉;
+            } else {
+              des = '鏈壘鍒扮浉鍏冲尮閰嶈褰�';
+            }
+            return { pass, des };
           });
         }),
         // 鍖哄煙鑼冨洿鍐呯殑鐩戠闂閰嶇疆琛ㄦ槸鍚﹀瓨鍦�
         baseCheckItem('鐜板満鐩戠闂绫诲瀷', '', () => {
-          const param = { 
+          const param = {
             cityCode: this.areaInfo.citycode,
             districtCode: this.areaInfo.districtcode,
             sceneTypeId: this.areaInfo.scensetypeid
-          }
-          problemApi.fetchProblemType(param).then((res) => {
-            return res.length > 0;
+          };
+          return problemApi.fetchProblemType(param).then((res) => {
+            const pass = res.length > 0;
+            let des = '';
+            if (pass) {
+              des = `鎵惧埌闂绫诲瀷鍏�${res.length}鏉;
+            } else {
+              des = '鏈壘鍒扮浉鍏抽棶棰樼被鍨�';
+            }
+            return { pass, des };
           });
         }),
+        // complaintApi.fetchComplaints();
         // 鍖哄煙鑼冨洿鍐呯殑淇¤鎶曡瘔璁板綍鏄惁瀛樺湪锛屽彲闅忔椂琛ュ厖
-        baseCheckItem('淇¤鎶曡瘔', '', () => {
-          complaintApi.fetchComplaints();
-        }),
+        baseCheckItem('淇¤鎶曡瘔', ''),
+        // complaintApi.fetchPunishment();
         // 鍖哄煙鑼冨洿鍐呯殑琛屾斂澶勭綒璁板綍鏄惁瀛樺湪锛屽彲闅忔椂琛ュ厖
-        baseCheckItem('琛屾斂澶勭綒', '', () => {
-          complaintApi.fetchPunishment();
-        })
+        baseCheckItem('琛屾斂澶勭綒', '')
       ]
     };
   },
@@ -175,6 +234,7 @@
   methods: {
     // 璺宠浆涓嬩竴姝�
     nextStep() {
+      this.$emit('change', this.checkResults);
       this.$emit('update:modelValue', this.modelValue + 1);
     },
     // 璺宠浆涓婁竴姝�
@@ -189,21 +249,23 @@
     },
     // 寮�濮嬫鏌ヤ换鍔�
     startCheck(value) {
-      const v = value.value
-      this.areaInfo = {
-        provincecode: v._locations.pCode,
-        provincename: v._locations.pName,
-        citycode: v._locations.cCode,
-        cityname: v._locations.cName,
-        districtcode: v._locations.dCode,
-        districtname: v._locations.dName,
-        towncode: v._locations.tCode,
-        townname: v._locations.tName,
-        starttime: v.time,
-        scensetypeid: v._scenetype.value,
-        online: true,
-        sourceType: v.sourceType,
-      };
+      // const v = value.value;
+      // this.areaInfo = {
+      //   provincecode: v._locations.pCode,
+      //   provincename: v._locations.pName,
+      //   citycode: v._locations.cCode,
+      //   cityname: v._locations.cName,
+      //   districtcode: v._locations.dCode,
+      //   districtname: v._locations.dName,
+      //   towncode: v._locations.tCode,
+      //   townname: v._locations.tName,
+      //   starttime: this.$fm.formatYMDH(v.time),
+      //   scensetypeid: v._scenetype.value,
+      //   online: true,
+      //   sourceType: v.sourceType
+      // };
+      this.areaInfo = value;
+
       this.checkResults.forEach((e) => {
         e.fetch();
       });

--
Gitblit v1.9.3