From b1187d1141a17fea3a7c184db73f232ca9877a85 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 15 二月 2025 15:41:39 +0800
Subject: [PATCH] 能力范围-零件绑定联调

---
 src/components/capability/bindPartDialog.vue |  136 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 105 insertions(+), 31 deletions(-)

diff --git a/src/components/capability/bindPartDialog.vue b/src/components/capability/bindPartDialog.vue
index 8b876a3..011bffa 100644
--- a/src/components/capability/bindPartDialog.vue
+++ b/src/components/capability/bindPartDialog.vue
@@ -7,7 +7,7 @@
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="$emit('closeBindPartDialog')">鍙� 娑�</el-button>
-        <el-button type="primary" @click="addBindPart" :loading="addBindLoad">鏂� 澧�</el-button>
+        <el-button type="primary" @click="addBindPart('add')" :loading="addBindLoad">鏂� 澧�</el-button>
       </span>
     </el-dialog>
     <el-dialog :title="dialogTitle" :visible.sync="addBindPartDialog" width="400px" @close="closeBindPartDialog"
@@ -20,10 +20,10 @@
           <el-form-item label="闆朵欢鍙凤細" prop="partNo">
             <el-input v-model="bindPartData.partNo" size="small"></el-input>
           </el-form-item>
-          <el-form-item label="棰滆壊锛�">
+          <el-form-item label="棰滆壊锛�" prop="color">
             <el-input v-model="bindPartData.color" size="small"></el-input>
           </el-form-item>
-          <el-form-item label="鑹叉爣锛�">
+          <el-form-item label="鑹叉爣锛�" prop="colorCode">
             <el-input v-model="bindPartData.colorCode" size="small"></el-input>
           </el-form-item>
         </el-form>
@@ -38,7 +38,13 @@
 
 <script>
 import limsTable from "@/components/Table/lims-table.vue";
-import {selectByProductId, selectByTestObjectId} from "@/api/structural/structureTestObjectPart";
+import {
+  addProductPart,
+  addTestObjectPart, deleteProductPart, deleteTestObjectPart,
+  selectByProductId,
+  selectByTestObjectId, updateProductPart, updateTestObjectPart
+} from "@/api/structural/structureTestObjectPart";
+import {delProduct} from "@/api/structural/capability";
 
 export default {
   name: "bindPartDialog",
@@ -63,6 +69,7 @@
     return {
       isShow: this.bindPartDialog,
       dialogTitle: '鏂板闆朵欢缁戝畾',
+      operationType: '',
       tableData: [],
       tableLoading: false,
       column: [
@@ -78,7 +85,7 @@
               name: '缂栬緫',
               type: 'text',
               clickFun: (row) => {
-                this.editForm(row);
+                this.addBindPart('edit', row);
               },
             },
             {
@@ -149,29 +156,34 @@
       this.tableLoading = true
       // 鏍规嵁绫诲瀷鍒ゆ柇鏄楠屽璞¢浂浠剁粦瀹氳繕鏄骇鍝佺淮鎶ら浂浠剁粦瀹�
       if (this.type === 0) {
-        selectByTestObjectId(this.currentRow.id).then(res => {
+        selectByTestObjectId({id: this.currentRow.id}).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
-            this.tableData = res.data
-            this.page.total = res.total
+            this.tableData = res.data.records
+            this.page.total = res.data.total
           }
         }).catch(err => {
           this.tableLoading = false
         })
       } else {
-        selectByProductId(this.currentRow.id).then(res => {
+        selectByProductId({id: this.currentRow.id}).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
-            this.tableData = res.data
-            this.page.total = res.total
+            this.tableData = res.data.records
+            this.page.total = res.data.total
           }
         }).catch(err => {
           this.tableLoading = false
         })
       }
     },
-    addBindPart () {
+    addBindPart (type, row) {
       this.addBindPartDialog = true
+      this.dialogTitle = type === 'add' ? '鏂板闆朵欢缁戝畾' : '淇敼闆朵欢缁戝畾'
+      this.operationType = type
+      if (type === 'edit') {
+        this.bindPartData = row
+      }
     },
     // 鎻愪氦闆朵欢缁戝畾
     submitBind () {
@@ -190,33 +202,95 @@
             partNo: this.bindPartData.partNo,
           }
           this.bindLoad = true
-          if (this.type === 0) {
-
+          if (this.operationType === 'add') {
+            if (this.type === 0) {
+              addTestObjectPart(params).then(res => {
+                if (res.code === 200) {
+                  this.resetForm('bindPartData')
+                  this.addBindPartDialog = false
+                  this.$message.success('鏂板鎴愬姛')
+                  this.getList()
+                }
+              }).catch(err => {
+                this.bindLoad = false
+                console.log(err)
+              })
+            } else {
+              addProductPart(params).then(res => {
+                if (res.code === 200) {
+                  this.resetForm('bindPartData')
+                  this.addBindPartDialog = false
+                  this.$message.success('鏂板鎴愬姛')
+                  this.getList()
+                }
+              }).catch(err => {
+                this.bindLoad = false
+                console.log(err)
+              })
+            }
+          } else {
+            if (this.type === 0) {
+              updateTestObjectPart(params).then(res => {
+                if (res.code === 200) {
+                  this.resetForm('bindPartData')
+                  this.addBindPartDialog = false
+                  this.$message.success('淇敼鎴愬姛')
+                  this.getList()
+                }
+              }).catch(err => {
+                this.bindLoad = false
+                console.log(err)
+              })
+            } else {
+              updateProductPart(params).then(res => {
+                if (res.code === 200) {
+                  this.resetForm('bindPartData')
+                  this.addBindPartDialog = false
+                  this.$message.success('淇敼鎴愬姛')
+                  this.getList()
+                }
+              }).catch(err => {
+                this.bindLoad = false
+                console.log(err)
+              })
+            }
           }
-          this.$axios.post(url, params, {
-            headers: {
-              'Content-Type': 'application/json'
-            }
-          }).then(res => {
-            this.bindLoad = false
-            if (res.code === 200) {
-              this.$refs['bindPartData'].resetFields();
-              this.addBindPartDialog = false
-              this.$message.success('鎿嶄綔鎴愬姛')
-              this.getList()
-            }
-          }).catch(err => {
-            this.bindLoad = false
-            console.log(err)
-          })
         } else {
           console.log('error submit!!');
           return false;
         }
       })
     },
+    delete (row) {
+      this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        if (this.type === 0) {
+          deleteTestObjectPart({id:row.id}).then(res => {
+            if (res.code === 200) {
+              this.$message.success('鍒犻櫎鎴愬姛')
+              this.getList();
+            }
+          })
+        } else {
+          deleteProductPart({id:row.id}).then(res => {
+            if (res.code === 200) {
+              this.$message.success('鍒犻櫎鎴愬姛')
+              this.getList();
+            }
+          })
+        }
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      })
+    },
     closeBindPartDialog () {
-      this.$refs['bindPartData'].resetFields();
+      this.resetForm('bindPartData')
       this.addBindPartDialog = false
     },
   },

--
Gitblit v1.9.3