From 9f571972ce45d45facd8ca667376e2d4c99da3af Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 07 四月 2025 13:22:06 +0800
Subject: [PATCH] 原辅料下单修改

---
 src/views/structural/capabilityAndLaboratory/capability/index.vue |  435 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 291 insertions(+), 144 deletions(-)

diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue
index 1bb6202..f184385 100644
--- a/src/views/structural/capabilityAndLaboratory/capability/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -9,11 +9,9 @@
           </el-radio-group>
         </el-col>
         <el-col :span="12" style="text-align: right;">
-          <el-upload v-if="radio === 0" ref='upload1'
-                     style="display: inline;margin-right: 8px"
-                     :action="uploadAction1"
-                     :before-upload="beforeUpload1" :headers="token" :on-error="onError1"
-                     :on-success="handleSuccessUp" :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'>
+          <el-upload v-if="radio === 0" ref='upload1' style="display: inline;margin-right: 8px" :action="uploadAction1"
+            :before-upload="beforeUpload1" :headers="token" :on-error="onError1" :on-success="handleSuccessUp1"
+            :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'>
             <el-button size="small" type="primary">瀵煎叆</el-button>
           </el-upload>
           <el-button size="small" type="primary" v-if="radio === 1" @click="uploadDia = true">瀵煎叆</el-button>
@@ -23,19 +21,19 @@
     </div>
     <div>
       <el-form :model="itemParameterForm" ref="itemParameterForm" size="small" :inline="true">
-        <el-form-item label="妫�楠岄」" prop="inspectionItem" v-if="radio===0">
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable
-                    v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()">
+        <el-form-item label="妫�楠岄」" prop="inspectionItem" v-if="radio === 0">
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="itemParameterForm.inspectionItem"
+            @keyup.enter.native="refreshTable()">
           </el-input>
         </el-form-item>
-        <el-form-item label="妫�楠屽瓙椤�" prop="inspectionItemSubclass" v-if="radio===0">
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable
-                    v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()">
+        <el-form-item label="妫�楠屽瓙椤�" prop="inspectionItemSubclass" v-if="radio === 0">
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="itemParameterForm.inspectionItemSubclass"
+            @keyup.enter.native="refreshTable()">
           </el-input>
         </el-form-item>
         <el-form-item label="妫�楠屽璞�" prop="sample">
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable
-                    v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()">
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="itemParameterForm.sample"
+            @keyup.enter.native="refreshTable()">
           </el-input>
         </el-form-item>
         <el-form-item>
@@ -43,23 +41,22 @@
           <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button>
         </el-form-item>
       </el-form>
-<!--      妫�楠岄」鐩弬鏁拌〃鏍�-->
-      <div class="table" v-if="radio===0">
-        <lims-table :tableData="tableData" :column="column" key="tableData"
-                    @pagination="pagination" :height="'calc(100vh - 290px)'"
-                    :page="page" :tableLoading="tableLoading"></lims-table>
+      <!--      妫�楠岄」鐩弬鏁拌〃鏍�-->
+      <div class="table" v-if="radio === 0">
+        <lims-table :tableData="tableData" :column="column" key="tableData" @pagination="pagination"
+          :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table>
       </div>
-<!--      妫�楠屽璞¤〃鏍�-->
-      <div class="table" v-if="radio===1">
+      <!--      妫�楠屽璞¤〃鏍�-->
+      <div class="table" v-if="radio === 1">
         <lims-table :tableData="testObjectTableData" :column="testObjectColumn" key="testObjectTableData"
-                    @pagination="pagination" :height="'calc(100vh - 290px)'"
-                    :page="testObjectPage" :tableLoading="tableLoading"></lims-table>
+          @pagination="pagination" :height="'calc(100vh - 290px)'" :page="testObjectPage"
+          :tableLoading="tableLoading"></lims-table>
       </div>
     </div>
     <!--浜у搧缁存姢寮规-->
     <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="900px">
-      <lims-table :tableData="productData" :column="productColumn" height="460"
-                  :page="productPage" :tableLoading="productableLoading"></lims-table>
+      <lims-table :tableData="productData" :column="productColumn" height="460" @pagination="productPagination"
+        :page="productPage" :tableLoading="productableLoading"></lims-table>
       <span slot="footer" class="dialog-footer">
         <el-button @click="diaProduct = false">鍙� 娑�</el-button>
         <el-button type="primary" @click="editProduct('add')" :loading="productLoad">鏂� 澧�</el-button>
@@ -67,7 +64,8 @@
     </el-dialog>
     <!--浜у搧缁存姢缂栬緫-->
     <el-dialog title="鎿嶄綔浜у搧缁存姢" :visible.sync="productEditDia" width="400px">
-      <el-form :model="productEditForm" ref="productEditForm" :rules="productRules" label-position="right" label-width="100px">
+      <el-form :model="productEditForm" ref="productEditForm" :rules="productRules" label-position="right"
+        label-width="100px">
         <el-form-item label="浜у搧鍚嶇О" prop="name">
           <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="productEditForm.name"></el-input>
         </el-form-item>
@@ -83,11 +81,9 @@
     </el-dialog>
     <el-dialog :visible.sync="uploadDia" title="鏁版嵁瀵煎叆" width="500px">
       <div style="margin: 0 auto;">
-        <el-upload ref="upload" :action="uploadAction"
-                   :auto-upload="false" :file-list="fileList"
-                   :headers="token" :limit="1"
-                   :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
-                   name="file">
+        <el-upload ref="upload" :action="uploadAction" :auto-upload="false" :file-list="fileList" :headers="token"
+          :limit="1" :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
+          name="file">
           <i class="el-icon-upload"></i>
           <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
         </el-upload>
@@ -100,14 +96,27 @@
     <!--妫�楠岄」鐩弬鏁�-缂栬緫寮规-->
     <EditForm ref="editForm" @refreshList="refreshList1"></EditForm>
     <testObjectEditForm ref="testObjectEditForm" @refreshList="refreshList"></testObjectEditForm>
-    <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog"
-                    :currentRow="currentRow"
-                    :type="type"
-                    @closeBindPartDialog="closeBindPartDialog"></BindPartDialog>
-    <BindSupplierDensityDialog v-if="bindSupplierDensityDialog"
-                               :bindSupplierDensityDialog="bindSupplierDensityDialog"
-                               :currentRow="currentSupplierDensityRow"
-                               @closeBindPartDialog="closeBindSupplierDensityDialog"></BindSupplierDensityDialog>
+    <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" :currentRow="currentRow" :type="type"
+      @closeBindPartDialog="closeBindPartDialog" :currentObj="currentObj">
+    </BindPartDialog>
+    <BindSupplierDensityDialog v-if="bindSupplierDensityDialog" :bindSupplierDensityDialog="bindSupplierDensityDialog"
+      :currentRow="currentSupplierDensityRow" @closeBindPartDialog="closeBindSupplierDensityDialog">
+    </BindSupplierDensityDialog>
+    <el-dialog title="杞﹂棿缁戝畾" :visible.sync="workshopVisible" width="400px">
+      <el-form :model="workshopForm" ref="workshopForm" :rules="workshopRules" label-position="right"
+        label-width="100px">
+        <el-form-item label="杞﹂棿鍚嶇О" prop="workShopId">
+          <el-select v-model="workshopForm.workShopId" placeholder="璇烽�夋嫨" size="small">
+            <el-option v-for="item in workshopList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="workshopVisible = false">鍙� 娑�</el-button>
+        <el-button :loading="uploading" type="primary" @click="submitWorkshop">纭� 璁�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -117,15 +126,17 @@
 import {
   addProduct,
   delItemParameter, delProduct, delTestObject, selectItemParameterList, selectProductListByObjectId,
-  selectTestObjectList, upProduct,
+  selectTestObjectList, upProduct, updateWorkShop, updateObjectWorkShop
 } from "@/api/structural/capability";
 import limsTable from "@/components/Table/lims-table.vue";
 import EditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue";
 import testObjectEditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue";
-import {getToken} from "@/utils/auth";
-
+import { getToken } from "@/utils/auth";
+import { obtainItemParameterList } from '@/api/structural/laboratoryScope'
+import { selectWorkShop } from "@/api/structural/workshop.js"
 export default {
-  components: {limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog},
+  name: 'Capability',
+  components: { limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog },
   data() {
     return {
       uploadAction: process.env.VUE_APP_BASE_API + '/capacityScope/importExcel',
@@ -133,24 +144,24 @@
       tableData: [],
       tableLoading: false,
       column: [
-        {label: '妫�楠岄」', prop: 'inspectionItem'},
-        {label: '妫�楠岄」EN', prop: 'inspectionItemEn'},
-        {label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass'},
-        {label: '妫�楠屽瓙椤笶N', prop: 'inspectionItemSubclassEn'},
-        {label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass'},
-        {label: '妫�楠岄」鍒嗙被EN', prop: 'inspectionItemClassEn'},
-        {label: '妫�楠屽璞�', prop: 'sample'},
-        {label: '鍗曚环(鍏�)', prop: 'price'},
-        {label: '璇曢獙瀹�', prop: 'sonLaboratory'},
-        {label: '瑕佹眰鎻忚堪', prop: 'askTell'},
-        {label: '瑕佹眰鍊�', prop: 'ask'},
-        {label: '璁¢噺鍗曚綅', prop: 'unit'},
-        {label: '宸ユ椂(H)', prop: 'manHour'},
-        {label: '棰勮鏃堕棿(H)', prop: 'manDay'},
-        {label: '宸ユ椂鍒嗙粍', prop: 'manHourGroup'},
-        {label: '鍒涘缓鏃堕棿', prop: 'createTime'},
-        {label: '淇敼鏃堕棿', prop: 'updateTime'},
-        {label: '鏉′欢', prop: 'radiusList'},
+        { label: '妫�楠岄」', prop: 'inspectionItem' },
+        { label: '妫�楠岄」EN', prop: 'inspectionItemEn' },
+        { label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass' },
+        { label: '妫�楠屽瓙椤笶N', prop: 'inspectionItemSubclassEn' },
+        { label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass' },
+        { label: '妫�楠岄」鍒嗙被EN', prop: 'inspectionItemClassEn' },
+        { label: '妫�楠屽璞�', prop: 'sample' },
+        { label: '鍗曚环(鍏�)', prop: 'price' },
+        { label: '璇曢獙瀹�', prop: 'sonLaboratory' },
+        { label: '瑕佹眰鎻忚堪', prop: 'askTell' },
+        { label: '瑕佹眰鍊�', prop: 'ask' },
+        // { label: '璇曢獙鏉′欢', prop: 'radiusList' },
+        { label: '璁¢噺鍗曚綅', prop: 'unit' },
+        { label: '宸ユ椂(H)', prop: 'manHour' },
+        { label: '棰勮鏃堕棿(H)', prop: 'manDay' },
+        { label: '宸ユ椂鍒嗙粍', prop: 'manHourGroup' },
+        { label: '鍒涘缓鏃堕棿', prop: 'createTime' },
+        { label: '淇敼鏃堕棿', prop: 'updateTime' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -175,9 +186,9 @@
         }
       ],
       page: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       testObjectTableData: [],
       testObjectColumn: [
@@ -187,17 +198,23 @@
           prop: 'laboratoryId',
           minWidth: '130',
           formatData: (params) => {
-            if (params == 1) {
-              return '瑁呭鐢电紗璇曢獙瀹�'
-            } else if (params == 5) {
-              return '閫氫俊浜у搧瀹為獙瀹�'
-            } else if (params == 6) {
-              return '鐢靛姏浜у搧瀹為獙瀹�'
-            } else if (params == 8) {
-              return '鍌ㄨ兘浜у搧瀹為獙瀹�'
+            let index = this.laboratoryList.findIndex(item => item.value == params)
+            if (index > -1) {
+              return this.laboratoryList[index].label
             } else {
-              return '灏勯绾跨紗瀹為獙瀹�'
+              return null
             }
+            // if (params == 1) {
+            //   return '瑁呭鐢电紗璇曢獙瀹�'
+            // } else if (params == 5) {
+            //   return '閫氫俊浜у搧瀹為獙瀹�'
+            // } else if (params == 6) {
+            //   return '鐢靛姏浜у搧瀹為獙瀹�'
+            // } else if (params == 8) {
+            //   return '鍌ㄨ兘浜у搧瀹為獙瀹�'
+            // } else {
+            //   return '灏勯绾跨紗瀹為獙瀹�'
+            // }
           },
           formatType: (params) => {
             if (params == 1) {
@@ -209,38 +226,29 @@
             } else if (params == 8) {
               return 'danger'
             } else {
-              return ''
+              return null
             }
           }
         },
-        {label: '妫�楠屽璞�', prop: 'specimenName'},
-        {label: '妫�楠屽璞N', prop: 'specimenNameEn'},
-        {label: '浜у搧', prop: 'product'},
-        {label: '瀵硅薄浠e彿', prop: 'code'},
-        {label: '瀵硅薄绫诲瀷', prop: 'objectType',
+        { label: '妫�楠屽璞�', prop: 'specimenName' },
+        { label: '妫�楠屽璞N', prop: 'specimenNameEn' },
+        { label: '浜у搧', prop: 'product' },
+        // { label: '瀵硅薄浠e彿', prop: 'code' },
+        {
+          label: '瀵硅薄绫诲瀷', prop: 'objectType',
           dataType: 'tag',
           formatData: (params) => {
-            if (params == 1) {
-              return '鍘熸潗鏂�'
-            } else if (params == 2) {
-              return '鎴愬搧'
-            } else {
-              return '杈呮潗'
+            let obj = this.productClassification.find(m => params == m.value)
+            if (obj) {
+              return obj.label
             }
           },
-          formatType: (params) => {
-            if (params == 1) {
-              return 'success'
-            } else if (params == 2) {
-              return 'info'
-            } else {
-              return 'warning'
-            }
-          }},
-        {label: '鍒涘缓浜�', prop: 'createUserName'},
-        {label: '鏇存柊浜�', prop: 'updateUserName'},
-        {label: '鍒涘缓鏃堕棿', prop: 'createTime'},
-        {label: '鏇存柊鏃堕棿', prop: 'updateTime'},
+        },
+        { label: '杞﹂棿鍚嶇О', prop: 'workShopName' },
+        { label: '鍒涘缓浜�', prop: 'createUserName' },
+        { label: '鏇存柊浜�', prop: 'updateUserName' },
+        { label: '鍒涘缓鏃堕棿', prop: 'createTime' },
+        { label: '鏇存柊鏃堕棿', prop: 'updateTime' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -274,14 +282,27 @@
               clickFun: (row) => {
                 this.bindPartFirst(row);
               },
+              disabled: (row) => {
+                return row.product
+              }
+            },
+            {
+              name: '杞﹂棿缁戝畾',
+              type: 'text',
+              clickFun: (row) => {
+                this.bindWokshop1(row);
+              },
+              disabled: (row) => {
+                return row.objectType != '鍘熻緟鏉�' && row.objectType != '鍖呮潗'
+              }
             },
           ]
         }
       ],
       testObjectPage: {
-        total:0,
-        size:10,
-        current:0
+        total: 0,
+        size: 10,
+        current: 0
       },
       addOrUpdate: '',
       tree: null,
@@ -295,8 +316,9 @@
       productLoad: false,
       diaProduct: false,
       productColumn: [
-        {label: '浜у搧鍚嶇О', prop: 'name'},
-        {label: '浜у搧鍚嶇ОEN', prop: 'nameEn'},
+        { label: '浜у搧鍚嶇О', prop: 'name' },
+        { label: '浜у搧鍚嶇ОEN', prop: 'nameEn' },
+        // { label: '杞﹂棿鍚嶇О', prop: 'workShopName' },
         {
           dataType: 'action',
           label: '鎿嶄綔',
@@ -322,21 +344,35 @@
                 this.bindPartSecond(row);
               },
             },
-            {
-              name: '鍘傚瀵嗗害缁戝畾',
-              type: 'text',
-              clickFun: (row) => {
-                this.bindSupplierDensitySecond(row);
-              },
-            },
+            // {
+            //   name: '杞﹂棿缁戝畾',
+            //   type: 'text',
+            //   clickFun: (row) => {
+            //     this.bindWokshop(row);
+            //   },
+            //   showHide: (row) => {
+            //     if (this.currentObj.objectType != '鍘熻緟鏉�' && row.objectType != '鍖呮潗') {
+            //       return false
+            //     } else {
+            //       return true
+            //     }
+            //   }
+            // },
+            // {
+            //   name: '鍘傚瀵嗗害缁戝畾',
+            //   type: 'text',
+            //   clickFun: (row) => {
+            //     this.bindSupplierDensitySecond(row);
+            //   },
+            // },
           ]
         }
       ],
       productData: [],
       productPage: {
-        total:0,
-        size:10,
-        current:0,
+        total: 0,
+        size: 10,
+        current: 1,
         layout: 'total, prev, pager, next'
       },
       productableLoading: false,
@@ -355,17 +391,32 @@
       },
       uploadDia: false,
       fileList: [],
-      token: {Authorization: "Bearer " + getToken()},
+      token: { Authorization: "Bearer " + getToken() },
       uploading: false,
       currentRow: {}, // 閫夋嫨闆朵欢缁戝畾鏈潯鏁版嵁鐨勪俊鎭�
       currentSupplierDensityRow: {}, // 閫夋嫨闆朵欢缁戝畾鏈潯鏁版嵁鐨勪俊鎭�
       bindSupplierDensityDialog: false,
       bindPartDialog: false,
-      type: null,  // 闆朵欢缁戝畾鐨勭被鍨�--0锛氭楠屽璞★紝1锛氫骇鍝佺淮鎶�
+      type: null,  // 闆朵欢缁戝畾鐨勭被鍨�--0锛氭楠屽璞★紝1锛氫骇鍝佺淮鎶�,
+      laboratoryList: [],
+      productClassification: [],//浜у搧绫诲瀷
+      currentObj: {},//褰撳墠瀵硅薄
+      currentProduct: {},//褰撳墠浜у搧
+      workshopVisible: false,
+      workshopForm: {},
+      workshopRules: {
+        workShopId: [{ required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' }]
+      },
+      workshopList: [],//杞﹂棿鍒楄〃
     }
   },
   created() {
+    this.getItemParameterList()
     this.refreshTable()
+    this.getDicts("product_classification").then((response) => {
+      this.productClassification = this.dictToValue(response.data);
+    });
+    this.selectWorkShop()
   },
   computed: {
     title() {
@@ -373,6 +424,11 @@
     }
   },
   methods: {
+    selectWorkShop() {
+      selectWorkShop({ size: -1, current: -1 }).then(res => {
+        this.workshopList = res.data.records
+      })
+    },
     submitUpload() {
       if (this.$refs.upload.uploadFiles.length === 0) {
         this.$message.error('鏈�夋嫨鏂囦欢')
@@ -385,8 +441,8 @@
       this.$refs.upload.clearFiles()
       this.uploadDia = false
       this.uploading = false
-      if (response.code === 201) {
-        this.$message.error(response.message)
+      if (response.code !== 200) {
+        this.$message.error(response.msg)
         return
       }
       this.$message.success('涓婁紶鎴愬姛')
@@ -421,25 +477,25 @@
         return true;
       }
     },
-    handleSuccessUp (response, file, fileList) {
-      this.$refs.upload.clearFiles()
-      if (response.code === 201) {
-        this.$message.error(response.message)
+    handleSuccessUp1(response, file, fileList) {
+      this.$refs.upload1.clearFiles()
+      if (response.code !== 200) {
+        this.$message.error(response.msg)
         return
       }
       this.$message.success('涓婁紶鎴愬姛')
       this.refreshTable()
     },
-    refreshList () {
+    refreshList() {
       this.refreshTable()
     },
-    refreshList1 () {
+    refreshList1() {
       this.refreshTable()
     },
     refreshTable() {
       this.tableLoading = true
       if (this.radio === 0) {
-        selectItemParameterList({...this.page, ...this.itemParameterForm}).then(res => {
+        selectItemParameterList({ ...this.page, ...this.itemParameterForm }).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
             this.tableData = res.data.records
@@ -449,7 +505,7 @@
           this.tableLoading = false
         })
       } else {
-        selectTestObjectList({...this.testObjectPage, ...this.itemParameterForm}).then(res => {
+        selectTestObjectList({ ...this.testObjectPage, ...this.itemParameterForm }).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
             this.testObjectTableData = res.data.records
@@ -461,11 +517,16 @@
       }
     },
     refresh() {
+      this.itemParameterForm = {
+        inspectionItem: null,
+        inspectionItemSubclass: null,
+        sample: null
+      }
       this.resetForm('itemParameterForm')
       this.page.current = 1
       this.refreshTable()
     },
-    pagination (page) {
+    pagination(page) {
       this.page.size = page.limit
       this.refreshTable()
     },
@@ -478,17 +539,17 @@
       }
     },
     // 妫�楠岄」鐩弬鏁�-鎵撳紑淇敼寮规
-    editForm (row) {
+    editForm(row) {
       this.$refs.editForm.openDia('edit', row)
     },
     // 妫�楠岄」鐩弬鏁�-鍒犻櫎
-    delete (row) {
+    delete(row) {
       this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        delItemParameter({id:row.id}).then(res => {
+        delItemParameter({ id: row.id }).then(res => {
           if (res.code === 200) {
             this.$message.success('鍒犻櫎鎴愬姛')
             this.refreshTable();
@@ -502,17 +563,17 @@
       })
     },
     // 妫�楠屽璞�-鎵撳紑淇敼寮规
-    editTestObjectForm (row) {
+    editTestObjectForm(row) {
       this.$refs.testObjectEditForm.openDia('edit', row)
     },
     // 妫�楠岄」鐩弬鏁�-鍒犻櫎
-    deleteTest (row) {
+    deleteTest(row) {
       this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        delTestObject({id:row.id}).then(res => {
+        delTestObject({ id: row.id }).then(res => {
           if (res.code === 200) {
             this.$message.success('鍒犻櫎鎴愬姛')
             this.refreshTable();
@@ -527,16 +588,28 @@
     },
     // 浜у搧缁存姢
     upProduct(row) {
+      this.currentObj = row;
+      // if (this.currentObj.objectType == '鍘熻緟鏉�') {
+      //   if (this.productColumn.length < 4) {
+      //     this.productColumn.splice(2, 0, { label: '杞﹂棿鍚嶇О', prop: 'workShopName' })
+      //   }
+      // } else {
+      //   if (this.productColumn.length == 4) {
+      //     this.productColumn.splice(2, 1)
+      //   }
+      // }
       this.diaProduct = true
       this.objectId = row.id
+      this.productPage.current = 1
       this.getProductList(row)
     },
-    getProductList () {
+    // 鏌ヨ浜у搧缁存姢鍒楄〃鏁版嵁
+    getProductList() {
       const params = {
         objectId: this.objectId,
       }
       this.productableLoading = true
-      selectProductListByObjectId({...params, ...this.productPage}).then(res => {
+      selectProductListByObjectId({ ...params, ...this.productPage }).then(res => {
         this.productableLoading = false
         this.productData = res.data.records
         this.productPage.total = res.data.total
@@ -544,8 +617,13 @@
         this.productableLoading = false
       })
     },
+    // 浜у搧缁存姢鍒楄〃鍒嗛〉
+    productPagination(page) {
+      this.productPage.current = page.page
+      this.getProductList()
+    },
     // 浜у搧缁存姢-鏂板-缂栬緫
-    editProduct (type, row) {
+    editProduct(type, row) {
       this.productEditDia = true
       this.operationType = type
       if (type === 'edit') {
@@ -553,7 +631,7 @@
       }
     },
     // 鎻愪氦浜у搧缁存姢淇敼
-    submitProduct () {
+    submitProduct() {
       this.$refs['productEditForm'].validate((valid) => {
         if (valid) {
           this.uploading = true
@@ -589,13 +667,13 @@
       this.productEditDia = false
     },
     // 浜у搧缁存姢-鍒犻櫎
-    deleteProduct (row) {
+    deleteProduct(row) {
       this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        delProduct({id:row.id}).then(res => {
+        delProduct({ id: row.id }).then(res => {
           if (res.code === 200) {
             this.$message.success('鍒犻櫎鎴愬姛')
             this.getProductList();
@@ -609,33 +687,102 @@
       })
     },
     // 闆朵欢缁戝畾
-    bindPartFirst (row) {
+    bindPartFirst(row) {
       this.bindPart(row, 0)
     },
-    bindPartSecond (row) {
+    bindPartSecond(row) {
       this.bindPart(row, 1)
     },
+    // 浜у搧-杞﹂棿缁戝畾
+    bindWokshop(row) {
+      this.workshopForm.workShopId = row.workShopId
+      this.currentProduct = row;
+      this.workshopVisible = true
+    },
+    // 瀵硅薄-杞﹂棿缁戝畾
+    bindWokshop1(row) {
+      this.$set(this.workshopForm, 'workShopId', row.workShopId)
+      this.currentProduct = {};
+      this.currentObj = row;
+      this.workshopVisible = true
+    },
     // 鍘傚瀵嗗害缁戝畾
-    bindSupplierDensitySecond (row) {
+    bindSupplierDensitySecond(row) {
       this.bindSupplierDensity(row)
     },
     // 鎵撳紑鍘傚瀵嗗害缁戝畾寮规
-    bindSupplierDensity (row) {
+    bindSupplierDensity(row) {
       this.currentSupplierDensityRow = row
       this.bindSupplierDensityDialog = true
     },
     // 鎵撳紑闆朵欢缁戝畾寮规
-    bindPart (row, index) {
+    bindPart(row, index) {
+      if (index == 0) {
+        this.currentObj = row
+      }
       this.type = index
       this.currentRow = row
       this.bindPartDialog = true
     },
-    closeBindPartDialog () {
+    closeBindPartDialog() {
       this.bindPartDialog = false
     },
-    closeBindSupplierDensityDialog () {
+    closeBindSupplierDensityDialog() {
       this.bindSupplierDensityDialog = false
     },
+    getItemParameterList() {
+      obtainItemParameterList().then(res => {
+        let data = []
+        res.data.forEach(a => {
+          data.push({
+            label: a.laboratoryName,
+            value: a.id
+          })
+        })
+        this.laboratoryList = data
+      })
+    },
+    // 缁戝畾杞﹂棿
+    submitWorkshop() {
+      this.$refs['workshopForm'].validate((valid) => {
+        if (valid) {
+          this.uploading = true
+          if (this.currentProduct.id) {
+            // 浜у搧缁戝畾杞﹂棿
+            updateWorkShop({
+              id: this.currentProduct.id ? this.currentProduct.id : null,
+              workShopId: this.workshopForm.workShopId,
+              workShopName: this.workshopList.find(m => m.id == this.workshopForm.workShopId).name,
+            }).then(res => {
+              this.uploading = false
+              if (res.code === 200) {
+                this.$message.success('缁戝畾鎴愬姛')
+                this.getProductList();
+                this.workshopVisible = false
+              }
+            }).catch(err => {
+              this.uploading = false
+            })
+          } else {
+            // 瀵硅薄缁戝畾杞﹂棿
+            updateObjectWorkShop({
+              id: this.currentObj.id ? this.currentObj.id : null,
+              workShopId: this.workshopForm.workShopId,
+              workShopName: this.workshopList.find(m => m.id == this.workshopForm.workShopId).name,
+            }).then(res => {
+              this.uploading = false
+              if (res.code === 200) {
+                this.$message.success('缁戝畾鎴愬姛')
+                this.refreshTable()
+                this.workshopVisible = false
+              }
+            }).catch(err => {
+              this.uploading = false
+            })
+          }
+        }
+      })
+    }
   }
 }
 </script>

--
Gitblit v1.9.3