From 235f0b0e3605082bb2127dc6d87f4a7eef33c6de Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 02 四月 2025 17:14:38 +0800
Subject: [PATCH] 标准库变更联调

---
 src/views/standard/standardLibrary/index.vue |  226 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 149 insertions(+), 77 deletions(-)

diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index 427b2be..dda6e28 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -8,7 +8,8 @@
         </el-col>
         <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
           style="text-align: center; line-height: 30px">
-          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button>
+          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"
+            v-if="!auditId"></el-button>
         </el-col>
       </el-row>
       <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
@@ -36,7 +37,7 @@
               (node.data.children === null ||
                 node.data.children === undefined)
             " :span="2" style="text-align: right">
-              <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
+              <el-button size="mini" type="text" @click.stop="editTreeName(node.data)" v-if="!auditId">
                 <i class="el-icon-edit"></i>
               </el-button>
             </el-col>
@@ -45,7 +46,7 @@
               (node.data.children === null ||
                 node.data.children === undefined)
             " :span="2" style="text-align: right">
-              <el-button size="mini" type="text" @click.stop="remove(node, data)">
+              <el-button size="mini" type="text" @click.stop="remove(node, data)" v-if="!auditId">
                 <i class="el-icon-delete"></i>
               </el-button>
             </el-col>
@@ -57,9 +58,9 @@
       <el-row class="title" style="width: 100%">
         <el-col :span="19" style="font-size: 14px; color: #999"><span>{{
           selectTree
-        }} </span></el-col>
-        <el-col :span="5" style="position: absolute;top: -3px;right: -25px;">
-          <el-button size="small" type="primary" @click="submitReview">鎻愪氦鍙樻洿</el-button>
+            }} </span></el-col>
+        <el-col :span="5" style="position: absolute;top: -3px;right: -25px;" v-if="!auditId && !standardCkeck">
+          <el-button size="small" type="primary" @click="submitReview" :loading="submitReviewLoad">鎻愪氦鍙樻洿</el-button>
           <el-button v-if="isShowCopy" size="small" type="primary" @click="openCopyDia">鎵归噺澶嶅埗</el-button>
         </el-col>
       </el-row>
@@ -83,8 +84,8 @@
           :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true"
           :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%"
           row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect"
-          @selection-change="handleSelectionChange" @select-all="handleAll">
-          <el-table-column type="selection" width="50"> </el-table-column>
+          @selection-change="handleSelectionChange" @select-all="handleAll" :header-cell-class-name="headerCellStyle">
+          <el-table-column type="selection" width="50" :selectable="selectable"> </el-table-column>
           <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
           <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
           <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
@@ -96,7 +97,8 @@
           <el-table-column label="瀹℃牳鐘舵��" min-width="140" prop="checkStatus">
             <template slot-scope="scope">
               <el-tag :type="checkStatusList.find(m => m.value == scope.row.checkStatus).type"
-                v-if="checkStatusList.find(m => m.value == scope.row.checkStatus)" size="small">{{
+                v-if="checkStatusList.find(m => m.value == scope.row.checkStatus) && scope.row.checkStatus !== '' && scope.row.checkStatus !== null"
+                size="small">{{
                   checkStatusList.find(m => m.value == scope.row.checkStatus).label }}</el-tag>
             </template>
           </el-table-column>
@@ -105,7 +107,8 @@
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
-                type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
+                type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"
+                :disabled="!!auditId || standardCkeck"></el-input>
               <span v-else>{{ scope.row.ask }}</span>
             </template>
           </el-table-column>
@@ -115,12 +118,12 @@
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪"
                 size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
-                  "></el-input>
+                  " :disabled="!!auditId || standardCkeck"></el-input>
               <span v-else>{{ scope.row.ask }}</span>
             </template>
           </el-table-column>
           <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
-          <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
+          <!-- <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
             <template slot-scope="scope">
               <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
@@ -131,13 +134,13 @@
               </el-select>
               <span v-else>{{ scope.row.methodS }}</span>
             </template>
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
             <template slot-scope="scope">
               <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
-                ">
+                " :disabled="!!auditId || standardCkeck">
                 <el-option v-for="(a, i) in scope.row.radiusList &&
                   JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
               </el-select>
@@ -150,7 +153,7 @@
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
-                ">
+                " :disabled="!!auditId || standardCkeck">
               </el-input>
               <span v-else>{{ scope.row.price }}</span>
             </template>
@@ -160,7 +163,7 @@
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
-                ">
+                " :disabled="!!auditId || standardCkeck">
               </el-input>
               <span v-else>{{ scope.row.manHour }}</span>
             </template>
@@ -168,7 +171,7 @@
           <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
           <el-table-column label="妯℃澘" prop="templateId" width="200">
             <template slot-scope="scope">
-              <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+              <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) || !!auditId || standardCkeck
                 " filterable size="small" @change="(value) =>
                   upStandardProductListOfTemplate(value, scope.row.id)
                   ">
@@ -177,7 +180,7 @@
             </template>
           </el-table-column>
           <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
-          <el-table-column label="鎿嶄綔" prop="section" width="160">
+          <el-table-column label="鎿嶄綔" prop="section" width="160" v-if="!auditId && !standardCkeck">
             <template slot-scope="scope">
               <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 ">鍖洪棿璁剧疆</el-button>
@@ -275,7 +278,7 @@
     </el-dialog>
     <bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog"
       :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
-      @closeBindPartDialog="closeBindSupplierDensityDialog">
+      @closeBindPartDialog="closeBindSupplierDensityDialog" @refreshList="refreshList">
     </bindSupplierDensityDialogAsk>
     <BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId"
       @refreshList="refreshList"></BatchCopy>
@@ -304,6 +307,8 @@
   selectStandardProductByMethodId,
   selectStandardProductEnumByMethodId,
   productListSubmit,
+  standardProductListRecordRelPage,
+  existCheckingRecord,
 } from "@/api/standard/standardLibrary";
 import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
 import BatchCopy from "./components/BatchCopy.vue";
@@ -371,7 +376,6 @@
       inspectionItem: null,
       inspectionItemSubclass: null,
       sonLaboratory: null,
-      token: null,
       fileList: [],
       uploading: false,
       isEquipment: true,
@@ -399,10 +403,14 @@
           label: '宸叉洿鏂�',
           type: 'success'
         },
-      ]
+      ],
+      submitReviewLoad: false,
+      auditId: null,//鏍囧噯鍙樻洿璁板綍ID
+      standardCkeck: false,//褰撳墠鏄惁鏈夋鍦ㄥ鏍哥殑鍙樻洿
     };
   },
   mounted() {
+    this.existCheckingRecord()
     this.selectEnumByCategoryForFactory();
     this.selectStandardTreeList();
     this.obtainItemParameterList();
@@ -412,11 +420,27 @@
     this.selectEnumByCategoryForsampleType();
     this.getStandardTemplate();
     this.selectStandardMethodsSec();
-    this.token = {
-      token: sessionStorage.getItem("token"),
-    };
+    if (this.$route.query && this.$route.query.auditId) {
+      let {
+        auditId
+      } = this.$route.query
+      this.auditId = auditId
+    } else {
+      this.auditId = null
+    }
   },
   methods: {
+    // 鏍囧噯搴撳彉鏇存椂绂佺敤鍏ㄩ��
+    headerCellStyle({ columnIndex }) {
+      if (columnIndex === 0 && (this.auditId || this.standardCkeck)) {
+        return 'disable-select-all';
+      }
+      return '';
+    },
+    // 鏍囧噯搴撳彉鏇存椂绂佺敤澶氶��
+    selectable(row, index) {
+      return !this.auditId && !this.standardCkeck;
+    },
     // 鎷栨嫿鏃跺垽瀹氱洰鏍囪妭鐐硅兘鍚﹁鏀剧疆
     // 'prev'銆�'inner' 鍜� 'next'锛屽墠銆佹彃鍏ャ�佸悗
     allowDrop(draggingNode, dropNode, type) {
@@ -840,45 +864,65 @@
       this.currentPage = 1;
       this.tableLoad2 = true;
       this.standardId = row.id;
-      selectStandardProductListByMethodId({
-        id: row.id,
-        tree: this.selectTree,
-        page: this.currentPage,
-      }).then((res) => {
-        this.productList = res.data.productList;
-        this.total = res.data.total;
-        setTimeout(() => {
-          this.productList.forEach((a) => {
-            if (a.state == 1) this.toggleSelection(a);
-          });
-        }, 300);
-        this.tableLoad2 = false;
-        const tree = this.selectTree.split(" - ");
-        // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴�
-        if (tree.length === 4) {
-          const name = tree[3] + "[4]";
-          this.hasChildWithId(this.list, name);
-          if (
-            this.isHaveChildren.children &&
-            this.isHaveChildren.children.length > 0
-          ) {
+      if (this.auditId) {
+        // 鏍囧噯搴撳彉鏇寸殑妫�楠岄」鏌ヨ
+        standardProductListRecordRelPage({
+          standardMethodListId: row.id,
+          tree: this.selectTree,
+          standardProductListUpdateRecordId: this.auditId,
+        }).then((res) => {
+          this.productList = res.data.productList;
+          this.total = res.data.total;
+          setTimeout(() => {
+            this.productList.forEach((a) => {
+              if (a.state == 1) this.toggleSelection(a);
+            });
+          }, 300);
+          this.tableLoad2 = false;
+        });
+      } else {
+        // 姝e父鎯呭喌涓嬬殑鏍囧噯鏌ヨ
+        selectStandardProductListByMethodId({
+          id: row.id,
+          tree: this.selectTree,
+          page: this.currentPage,
+        }).then((res) => {
+          this.productList = res.data.productList;
+          this.total = res.data.total;
+          setTimeout(() => {
+            this.productList.forEach((a) => {
+              if (a.state == 1) this.toggleSelection(a);
+            });
+          }, 300);
+          this.tableLoad2 = false;
+          const tree = this.selectTree.split(" - ");
+          // 閫夋嫨鏈�鍚庝竴灞傛爲鎵嶅彲浠ユ嫋鎷芥帓搴�
+          if (tree.length === 4) {
+            const name = tree[3] + "[4]";
+            this.hasChildWithId(this.list, name);
+            if (
+              this.isHaveChildren.children &&
+              this.isHaveChildren.children.length > 0
+            ) {
+              if (this.sortTable) {
+                this.sortTable.destroy();
+                this.sortTable = null;
+              }
+              return;
+            }
+          } else if (tree.length < 4) {
             if (this.sortTable) {
               this.sortTable.destroy();
               this.sortTable = null;
             }
             return;
           }
-        } else if (tree.length < 4) {
-          if (this.sortTable) {
-            this.sortTable.destroy();
-            this.sortTable = null;
-          }
-          return;
-        }
-        this.$nextTick(() => {
-          this.rowDrop(row.id);
+          this.$nextTick(() => {
+            this.rowDrop(row.id);
+          });
         });
-      });
+      }
+
     },
     toggleSelection(row) {
       this.$refs.productTable.toggleRowSelection(row, true);
@@ -1050,6 +1094,7 @@
           this.sectionLoad = false;
           this.$message.success("宸蹭繚瀛�");
           this.sectionUpDia = false;
+          this.refreshList()
         });
       } else {
         upStandardProducts({
@@ -1095,19 +1140,36 @@
     handleCurrentChange(val) {
       this.currentPage = val;
       this.tableLoad2 = true;
-      selectStandardProductListByMethodId({
-        id: this.standardId,
-        tree: this.selectTree,
-        page: val,
-      }).then((res) => {
-        this.productList = res.data.productList;
-        setTimeout(() => {
-          this.productList.forEach((a) => {
-            if (a.state == 1) this.toggleSelection(a);
-          });
-        }, 200);
-        this.tableLoad2 = false;
-      });
+      if (this.auditId) {
+        // 鏍囧噯搴撳彉鏇存煡璇
+        standardProductListRecordRelPage({
+          standardMethodListId: this.standardId,
+          tree: this.selectTree,
+          standardProductListUpdateRecordId: this.auditId,
+        }).then((res) => {
+          this.productList = res.data.productList;
+          setTimeout(() => {
+            this.productList.forEach((a) => {
+              if (a.state == 1) this.toggleSelection(a);
+            });
+          }, 200);
+          this.tableLoad2 = false;
+        });
+      } else {
+        selectStandardProductListByMethodId({
+          id: this.standardId,
+          tree: this.selectTree,
+          page: val,
+        }).then((res) => {
+          this.productList = res.data.productList;
+          setTimeout(() => {
+            this.productList.forEach((a) => {
+              if (a.state == 1) this.toggleSelection(a);
+            });
+          }, 200);
+          this.tableLoad2 = false;
+        });
+      }
     },
     openCopyDia() {
       this.batchCopyDia = true;
@@ -1214,21 +1276,26 @@
           return true;
         }
       }).then(({ value }) => {
+        this.submitReviewLoad = true
         productListSubmit({
           remark: value
         }).then(res => {
+          this.submitReviewLoad = false
           this.selectsStandardMethodByFLSSM();
+          this.existCheckingRecord()
+          this.refreshList()
+          this.$refs.productTable.doLayout()
+        }).catch(err => {
+          this.submitReviewLoad = false
         })
-        // this.$message({
-        //   type: 'success',
-        //   message: '浣犵殑閭鏄�: ' + value
-        // });
       }).catch(() => {
-        // this.$message({
-        //   type: 'info',
-        //   message: '鍙栨秷杈撳叆'
-        // });
       });
+    },
+    // 鑾峰彇褰撳墠鏈夋病鏈夋鍦ㄥ鏍哥殑鍙樻洿
+    existCheckingRecord() {
+      existCheckingRecord().then(res => {
+        this.standardCkeck = res.data
+      })
     }
   },
 };
@@ -1415,4 +1482,9 @@
   align-items: center;
   justify-content: center;
 }
+
+/* 闅愯棌鍏ㄩ�夊閫夋 */
+>>>.disable-select-all .el-checkbox {
+  display: none !important;
+}
 </style>

--
Gitblit v1.9.3