Forráskód Böngészése

fix: 检验方法性能评审记录表列表渲染优化

johnsen 8 hónapja
szülő
commit
0dcaa0ee4c
1 módosított fájl, 64 hozzáadás és 72 törlés
  1. 64 72
      src/views/business/testMethod/review.vue

+ 64 - 72
src/views/business/testMethod/review.vue

@@ -18,7 +18,6 @@
     </div>
     </div>
     <el-table
     <el-table
       ref="reviewTable"
       ref="reviewTable"
-      :key="tableKey"
       :data="currentPageData"
       :data="currentPageData"
       border
       border
       stripe
       stripe
@@ -55,7 +54,7 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
-    
+
     <!-- 分页控件 -->
     <!-- 分页控件 -->
     <el-pagination
     <el-pagination
       v-if="pagination.total >= 0"
       v-if="pagination.total >= 0"
@@ -66,9 +65,9 @@
       :total="pagination.total"
       :total="pagination.total"
       @size-change="handleSizeChange"
       @size-change="handleSizeChange"
       @current-change="handleCurrentChange"
       @current-change="handleCurrentChange"
-      style="margin-top: 15px; text-align: left;"
+      style="margin-top: 15px; text-align: left"
     />
     />
-    
+
     <reviewDialog
     <reviewDialog
       v-if="dialogFormVisibles"
       v-if="dialogFormVisibles"
       :visidial="dialogFormVisibles"
       :visidial="dialogFormVisibles"
@@ -117,6 +116,7 @@ export default {
       selectEditchange: false,
       selectEditchange: false,
       statData: [],
       statData: [],
       first,
       first,
+      allPlayData: [],
       second,
       second,
       maxHeight: '600px',
       maxHeight: '600px',
       jianYanFangFaNameCache: {},
       jianYanFangFaNameCache: {},
@@ -144,31 +144,22 @@ export default {
     },
     },
     getJianYanFangFaName() {
     getJianYanFangFaName() {
       return (jianYanFangFa) => {
       return (jianYanFangFa) => {
-        if (!this.jianYanFangFaNameCache[jianYanFangFa]) {
-          this.loadJianYanFangFaName(jianYanFangFa)
-        }
-        return this.jianYanFangFaNameCache[jianYanFangFa] || ''
-      }
-    },
-    getProjectAndMethod() {
-      return (xiangMuFangFa) => {
-        if (!this.projectAndMethodNameCache[xiangMuFangFa]) {
-          this.loadProjectAndMethodName(xiangMuFangFa)
-        }
-        return this.projectAndMethodNameCache[xiangMuFangFa] || ''
+        const item = this.allPlayData.find((t) => t.id_ === jianYanFangFa)
+        // console.log('item===>', item)
+        return item ? item.fang_fa_ming_chen : ''
       }
       }
     }
     }
   },
   },
   watch: {
   watch: {
     formData: {
     formData: {
       handler(val) {
       handler(val) {
-          // 如果是内部更新触发的,则忽略
+        // 如果是内部更新触发的,则忽略
         if (this.isInternalUpdate) {
         if (this.isInternalUpdate) {
-          this.isInternalUpdate = false;
-          return;
+          this.isInternalUpdate = false
+          return
         }
         }
-        
-        this.isExternalUpdate = true;
+
+        this.isExternalUpdate = true
         if (val.lieBiaoShuJu) {
         if (val.lieBiaoShuJu) {
           if (this.isFirst) {
           if (this.isFirst) {
             this.statData = JSON.parse(val.lieBiaoShuJu)
             this.statData = JSON.parse(val.lieBiaoShuJu)
@@ -176,7 +167,11 @@ export default {
             this.isFirst = false
             this.isFirst = false
           }
           }
         }
         }
-        if(val.jyffxnpsjlzb && val.jyffxnpsjlzb.length && val.jyffxnpsjlzb.length>0){
+        if (
+          val.jyffxnpsjlzb &&
+          val.jyffxnpsjlzb.length &&
+          val.jyffxnpsjlzb.length > 0
+        ) {
           this.statData = val.jyffxnpsjlzb.map((item) => ({
           this.statData = val.jyffxnpsjlzb.map((item) => ({
             id: '',
             id: '',
             parentId: '',
             parentId: '',
@@ -193,19 +188,19 @@ export default {
             pingShenNeiRong: item.pingShenNeiRong,
             pingShenNeiRong: item.pingShenNeiRong,
             pingShenJieLun: item.pingShenJieLun,
             pingShenJieLun: item.pingShenJieLun,
             faXianDeWenTi: item.faXianDeWenTi,
             faXianDeWenTi: item.faXianDeWenTi,
-            pinShen1:item.pingShenNeiRong,
-            xiangMuFangFa:item.xiangMuYuFangFa,
-            shiJi:item.shiJiJiPiHao,
+            pinShen1: item.pingShenNeiRong,
+            xiangMuFangFa: item.xiangMuYuFangFa,
+            shiJi: item.shiJiJiPiHao,
             yangzheng: item.shangCiYanZhengXi,
             yangzheng: item.shangCiYanZhengXi,
-            jieLun:item.pingShenJieLun,
+            jieLun: item.pingShenJieLun,
             faXianWenTi: item.faXianDeWenTi
             faXianWenTi: item.faXianDeWenTi
           }))
           }))
           this.pagination.total = this.statData.length // 更新总条数
           this.pagination.total = this.statData.length // 更新总条数
         }
         }
         //this.isExternalUpdate = false;
         //this.isExternalUpdate = false;
         this.$nextTick(() => {
         this.$nextTick(() => {
-          this.isExternalUpdate = false;
-        });
+          this.isExternalUpdate = false
+        })
       },
       },
       immediate: true,
       immediate: true,
       deep: true
       deep: true
@@ -225,7 +220,7 @@ export default {
       handler(val) {
       handler(val) {
         // 如果是外部更新触发的,则不需要$emit
         // 如果是外部更新触发的,则不需要$emit
         if (this.isExternalUpdate) {
         if (this.isExternalUpdate) {
-          return;
+          return
         }
         }
         const t = val.map((item) => ({
         const t = val.map((item) => ({
           id: '',
           id: '',
@@ -247,7 +242,7 @@ export default {
         this.pagination.total = val.length // 更新总条数
         this.pagination.total = val.length // 更新总条数
 
 
         // 标记这是内部更新,避免formData的watch再次触发
         // 标记这是内部更新,避免formData的watch再次触发
-        this.isInternalUpdate = true;
+        this.isInternalUpdate = true
         this.$emit('change-data', 'lieBiaoShuJu', JSON.stringify(val))
         this.$emit('change-data', 'lieBiaoShuJu', JSON.stringify(val))
         this.$emit('change-data', 'jyffxnpsjlzb', t)
         this.$emit('change-data', 'jyffxnpsjlzb', t)
       },
       },
@@ -255,13 +250,14 @@ export default {
     }
     }
   },
   },
   created() {
   created() {
+    this.getAllPlayData()
     // 初始化时加载所有需要的数据
     // 初始化时加载所有需要的数据
-    if (this.statData && this.statData.length > 0) {
-      this.statData.forEach((row) => {
-        this.loadJianYanFangFaName(row.jianYanFangFa)
-        this.loadProjectAndMethodName(row.xiangMuFangFa)
-      })
-    }
+    // if (this.statData && this.statData.length > 0) {
+    //   this.statData.forEach((row) => {
+    //     this.loadJianYanFangFaName(row.jianYanFangFa)
+    //     this.loadProjectAndMethodName(row.xiangMuFangFa)
+    //   })
+    // }
   },
   },
   methods: {
   methods: {
     // 每页条数改变
     // 每页条数改变
@@ -275,19 +271,14 @@ export default {
       this.pagination.currentPage = val
       this.pagination.currentPage = val
       this.refreshTable()
       this.refreshTable()
     },
     },
-    async loadJianYanFangFaName(jianYanFangFa) {
-      try {
-        const methodName = await this.jian(jianYanFangFa)
-        this.jianYanFangFaNameCache[jianYanFangFa] = methodName
-        this.refreshTable()
-      } catch (error) {
-        console.error('Error fetching data:', error)
-      }
+    loadJianYanFangFaName(jianYanFangFa) {
+      return this.jian(jianYanFangFa)
     },
     },
     refreshTable() {
     refreshTable() {
       this.tableKey++
       this.tableKey++
     },
     },
     async loadProjectAndMethodName(xiangMuFangFa) {
     async loadProjectAndMethodName(xiangMuFangFa) {
+      console.log('xiangMuFangFa===>', xiangMuFangFa)
       try {
       try {
         const methodName = await this.xiang(xiangMuFangFa)
         const methodName = await this.xiang(xiangMuFangFa)
         this.projectAndMethodNameCache[xiangMuFangFa] = methodName
         this.projectAndMethodNameCache[xiangMuFangFa] = methodName
@@ -318,33 +309,31 @@ export default {
       }
       }
       this.loadJianYanFangFaName(obj.jianYanFangFa)
       this.loadJianYanFangFaName(obj.jianYanFangFa)
       this.loadProjectAndMethodName(obj.xiangMuFangFa)
       this.loadProjectAndMethodName(obj.xiangMuFangFa)
-      
+
       // 添加或修改数据后,可能需要调整分页
       // 添加或修改数据后,可能需要调整分页
-      const totalPages = Math.ceil(this.statData.length / this.pagination.pageSize)
+      const totalPages = Math.ceil(
+        this.statData.length / this.pagination.pageSize
+      )
       if (this.pagination.currentPage > totalPages) {
       if (this.pagination.currentPage > totalPages) {
         this.pagination.currentPage = totalPages
         this.pagination.currentPage = totalPages
       }
       }
     },
     },
-    async jian(val) {
-      try {
-        const response = await this.$common.request('query', {
-          key: 'getBzffglbById',
-          params: [val]
-        })
-        const a =
-          response.variables.data[0] &&
-          response.variables.data[0].fang_fa_ming_chen
-        return a
-      } catch (error) {
-        console.error('Error fetching data:', error)
-        throw error
-      }
+    async getAllPlayData() {
+      const response = await this.$common.request('query', {
+        key: 'getBzffglbById1',
+        params: [null]
+      })
+      this.allPlayData = response.variables.data
+    },
+    jian(val) {
+      const item = this.allPlayData.find((t) => t.id_ === val)
+      return item ? item.fang_fa_ming_chen : ''
     },
     },
     async xiang(val) {
     async xiang(val) {
       try {
       try {
         const response = await this.$common.request('query', {
         const response = await this.$common.request('query', {
-          key: 'getNlfwbById',
-          params: [val]
+          key: 'getNlfwbById1',
+          params: [null]
         })
         })
         const a =
         const a =
           response.variables.data[0] &&
           response.variables.data[0] &&
@@ -366,26 +355,29 @@ export default {
         })
         })
         return
         return
       }
       }
-      
+
       // 删除选中的数据
       // 删除选中的数据
       this.statData = this.statData.filter(
       this.statData = this.statData.filter(
         (item) => !this.multipleSelection.includes(item)
         (item) => !this.multipleSelection.includes(item)
       )
       )
-      
+
       // 删除后调整分页
       // 删除后调整分页
-      const totalPages = Math.ceil(this.statData.length / this.pagination.pageSize)
+      const totalPages = Math.ceil(
+        this.statData.length / this.pagination.pageSize
+      )
       if (this.pagination.currentPage > totalPages && totalPages > 0) {
       if (this.pagination.currentPage > totalPages && totalPages > 0) {
         this.pagination.currentPage = totalPages
         this.pagination.currentPage = totalPages
       } else if (totalPages === 0) {
       } else if (totalPages === 0) {
         this.pagination.currentPage = 1
         this.pagination.currentPage = 1
       }
       }
-      
+
       this.multipleSelection = []
       this.multipleSelection = []
     },
     },
     handleEdit(row, index) {
     handleEdit(row, index) {
       // 计算实际在statData中的索引
       // 计算实际在statData中的索引
-      const actualIndex = (this.pagination.currentPage - 1) * this.pagination.pageSize + index
-      
+      const actualIndex =
+        (this.pagination.currentPage - 1) * this.pagination.pageSize + index
+
       // 编辑操作
       // 编辑操作
       this.selectEditchange = true
       this.selectEditchange = true
       this.selectEditData = row
       this.selectEditData = row
@@ -430,9 +422,9 @@ export default {
     width: 100%;
     width: 100%;
     text-align: right;
     text-align: right;
     background-color: azure !important; /* 背景颜色 */
     background-color: azure !important; /* 背景颜色 */
-    border-top: 1px solid #EBEEF5;
-    border-left: 1px solid #EBEEF5;
-    border-right: 1px solid #EBEEF5;
+    border-top: 1px solid #ebeef5;
+    border-left: 1px solid #ebeef5;
+    border-right: 1px solid #ebeef5;
     margin-bottom: 0;
     margin-bottom: 0;
   }
   }
   ::v-deep .blue-header .el-table__header th {
   ::v-deep .blue-header .el-table__header th {
@@ -465,4 +457,4 @@ export default {
     border-radius: 8px;
     border-radius: 8px;
   }
   }
 }
 }
-</style>
+</style>