From 9aa6fe72192ec6b5160a127070002fde1765115b Mon Sep 17 00:00:00 2001
From: lixiangyu <lixiangyu@xalxzn.com>
Date: 星期二, 09 九月 2025 17:55:30 +0800
Subject: [PATCH] feat(cms): 选择刀具库存替代刀具信息

---
 src/views/cms/modules/CuttingReceiveModal.vue |  211 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 118 insertions(+), 93 deletions(-)

diff --git a/src/views/cms/modules/CuttingReceiveModal.vue b/src/views/cms/modules/CuttingReceiveModal.vue
index d6e3212..75531e4 100644
--- a/src/views/cms/modules/CuttingReceiveModal.vue
+++ b/src/views/cms/modules/CuttingReceiveModal.vue
@@ -3,7 +3,7 @@
     <a-spin :spinning="confirmLoading">
       <a-form :form="form">
         <a-row style="width: 100%">
-           <a-col :span="24 / 2">
+          <a-col :span="24 / 2">
             <a-form-item label="棰嗙敤浜�" :labelCol="labelCol" :wrapperCol="wrapperCol">
               <j-search-select-tag
                 :disabled="disableSubmit"
@@ -26,12 +26,13 @@
         <a-row style="width: 100%">
           <a-col :span="24">
             <a-form-item label="棰嗙敤璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}">
-              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ラ鐢ㄨ鏄�" v-decorator="['receiveComment', validatorRules.receiveComment]" />
+              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ラ鐢ㄨ鏄�"
+                          v-decorator="['receiveComment', validatorRules.receiveComment]" />
             </a-form-item>
           </a-col>
         </a-row>
         <a-row style="width: 100%">
-           <a-col :span="24 / 2">
+          <a-col :span="24 / 2">
             <a-form-item label="纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol">
               <j-search-select-tag
                 :disabled="disableSubmit"
@@ -54,14 +55,16 @@
         <a-row style="width: 100%">
           <a-col :span="24">
             <a-form-item label="纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}">
-              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�" v-decorator="['confirmComment', validatorRules.confirmComment]" />
+              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ョ‘璁ゆ剰瑙�"
+                          v-decorator="['confirmComment', validatorRules.confirmComment]" />
             </a-form-item>
           </a-col>
         </a-row>
-         <a-row style="width: 100%">
-           <a-col :span="24 / 2">
+        <a-row style="width: 100%">
+          <a-col :span="24 / 2">
             <a-form-item label="鏄惁浼氬綊杩�" :labelCol="labelCol" :wrapperCol="wrapperCol">
-              <a-input :disabled="disableSubmit"  placeholder="璇疯緭鍏ユ槸鍚︿細褰掕繕" v-decorator="['returnFlag', validatorRules.returnFlag]" ></a-input>
+              <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ユ槸鍚︿細褰掕繕"
+                       v-decorator="['returnFlag', validatorRules.returnFlag]"></a-input>
             </a-form-item>
           </a-col>
           <a-col :span="24 / 2">
@@ -77,12 +80,13 @@
         <a-row style="width: 100%">
           <a-col :span="24">
             <a-form-item label="褰掕繕璇存槑" :labelCol="{span:3}" :wrapperCol="{span:21}">
-              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樿鏄�" v-decorator="['returnComment', validatorRules.returnComment]" />
+              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樿鏄�"
+                          v-decorator="['returnComment', validatorRules.returnComment]" />
             </a-form-item>
           </a-col>
         </a-row>
-         <a-row style="width: 100%">
-           <a-col :span="24 / 2">
+        <a-row style="width: 100%">
+          <a-col :span="24 / 2">
             <a-form-item label="褰掕繕纭浜�" :labelCol="labelCol" :wrapperCol="wrapperCol">
               <j-search-select-tag
                 :disabled="disableSubmit"
@@ -102,18 +106,17 @@
             </a-form-item>
           </a-col>
         </a-row>
-         <a-row style="width: 100%">
+        <a-row style="width: 100%">
           <a-col :span="24">
             <a-form-item label="褰掕繕纭鎰忚" :labelCol="{span:3}" :wrapperCol="{span:21}">
-              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樼‘璁ゆ剰瑙�" v-decorator="['returnConfirmComment', validatorRules.returnConfirmComment]" />
+              <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ綊杩樼‘璁ゆ剰瑙�"
+                          v-decorator="['returnConfirmComment', validatorRules.returnConfirmComment]" />
             </a-form-item>
           </a-col>
         </a-row>
       </a-form>
     </a-spin>
-    <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()"
-      >閫夋嫨鍒�鍏�</a-button
-    >
+    <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()">閫夋嫨鍒�鍏�</a-button>
     <a-table
       ref="table"
       bordered
@@ -124,16 +127,16 @@
       :pagination="ipagination"
       :loading="loading"
     >
-      <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index">
+      <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index" >
         <div :key="col.dataIndex">
-         <a-input
-                    :value="text"
-                    :disabled="disableSubmit"
-                    v-if="col.dataIndex == 'workpieceMaterial'"
-                    @change="(e)=>handleChange(e.target.value, record.key, col, index)"
-                  />
-                  <a-input-number
-            v-if="col.dataIndex == 'usedLife'"
+          <a-input
+            :value="text"
+            :disabled="disableSubmit"
+            v-if="col.dataIndex === 'workpieceMaterial'"
+            @change="(e)=>handleChange(e.target.value, record.key, col, index)"
+          />
+          <a-input-number
+            v-if="col.dataIndex === 'usedLife'"
             :value="text"
             @change="(e) => handleChange(e, record.key, col, index)"
             :min="1"
@@ -154,33 +157,37 @@
     <template slot="footer" v-if="disableSubmit == true">
       <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button>
     </template>
-    <j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal>
+    <j-select-inventory-modal ref="inventoryModalForm" @ok="modalFormOk"></j-select-inventory-modal>
+<!--    <j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal>-->
   </a-modal>
 </template>
 
 <script>
 
-  import pick from 'lodash.pick'
-  import JSelectToolingModal from './JSelectToolingModal'
-  import moment from 'moment'
-  import { getAction, postAction, requestPut } from '@/api/manage'
-  import JDictSelectTag from '@/components/dict/JDictSelectTag'
-  import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
-  import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
-  import { filterObj } from '@/utils/util'
-  import store from '@/store/'
-  export default {
-    name: 'CuttingInboundModal',
-    components: {
+import pick from 'lodash.pick'
+import JSelectToolingModal from './JSelectToolingModal'
+import moment from 'moment'
+import { getAction, postAction, requestPut } from '@/api/manage'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
+import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
+import { filterObj } from '@/utils/util'
+import store from '@/store/'
+import JSelectInventoryModal from '@views/cms/modules/JSelectInventoryModal.vue'
+
+export default {
+  name: 'CuttingInboundModal',
+  components: {
     JSelectToolingModal,
+    JSelectInventoryModal,
     JMultiSelectTag,
     JDictSelectTag,
     store,
-    moment,
+    moment
   },
-    data () {
-      return {
-         /* 鍒嗛〉鍙傛暟 */
+  data() {
+    return {
+      /* 鍒嗛〉鍙傛暟 */
       ipagination: {
         current: 1,
         pageSize: 10,
@@ -190,27 +197,26 @@
         },
         showQuickJumper: true,
         showSizeChanger: true,
-        total: 0,
+        total: 0
       },
-      title:'鏂板',
-         visible: false,
-         selectedRowKeys: {},
+      title: '鏂板',
+      visible: false,
+      selectedRowKeys: {},
       model: {},
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 6 },
+        sm: { span: 6 }
       },
       wrapperCol: {
         xs: { span: 24 },
-        sm: { span: 18 },
+        sm: { span: 18 }
       },
       confirmLoading: false,
       loading: false,
       form: this.$form.createForm(this),
       dataSource: [],
       param: {},
-      validatorRules: {
-      },
+      validatorRules: {},
       columns: [
         {
           title: '#',
@@ -218,59 +224,58 @@
           key: 'rowIndex',
           width: 50,
           align: 'center',
-          customRender: function (t, r, index) {
+          customRender: function(t, r, index) {
             return parseInt(index) + 1
-          },
+          }
         },
         {
           title: '鍒�鍏风紪鐮�',
           align: 'center',
           dataIndex: 'cuttingCode',
-          width: 150,
+          width: 150
         },
         {
           title: '鍒�鍏峰悕绉�',
           align: 'center',
-          dataIndex: 'cuttingName',
+          dataIndex: 'cuttingName'
         },
         {
           title: '宸ヤ欢鏉愯川',
           align: 'center',
           dataIndex: 'workpieceMaterial',
-          scopedSlots: { customRender: 'workpieceMaterial' },
-
+          scopedSlots: { customRender: 'workpieceMaterial' }
         },
         {
           title: '浣跨敤瀵垮懡',
           align: 'center',
           dataIndex: 'usedLife',
-          scopedSlots: { customRender: 'usedLife' },
+          scopedSlots: { customRender: 'usedLife' }
         },
         {
           title: '鎿嶄綔',
           dataIndex: 'action',
           align: 'center',
-          scopedSlots: { customRender: 'action' },
-        },
+          scopedSlots: { customRender: 'action' }
+        }
       ],
       url: {
         add: '/cms/cuttingReceive/add',
-        detailList: '/cms/cuttingReceive/detailList',
+        detailList: '/cms/cuttingReceive/detailList'
       },
-      orderId:'',
-      disableSubmit:false
-      }
-    },
-    methods: {
-      modalFormOk(){
+      orderId: '',
+      disableSubmit: false
+    }
+  },
+  methods: {
+    modalFormOk() {
 
-      },
-       getQueryParams() {
+    },
+    getQueryParams() {
       this.param.pageNo = this.ipagination.current
       this.param.pageSize = this.ipagination.pageSize
       return filterObj(this.param)
     },
-      add() {
+    add() {
       let receiver = store.getters.userInfo.id
       let receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
       this.edit({ receiver: receiver, receiveTime: receiveTime })
@@ -293,7 +298,7 @@
         )
       })
     },
-     handleDelete(record, index) {
+    handleDelete(record, index) {
       this.dataSource.splice(index, 1)
     },
     handleChange(value, key, column, index) {
@@ -305,14 +310,20 @@
         this.dataSource = temp
       }
     },
-    selectTooling: function () {
+    selectTooling: function() {
       let ids = []
       for (let i = 0; i < this.dataSource.length; i++) {
-        ids.push(this.dataSource[i].cuttingId)
+        ids.push(this.dataSource[i].inventoryId)
+        console.log('褰撳墠鏁版嵁婧�:', this.dataSource)
       }
-      this.$refs.toolingModalForm.showModal(ids)
-      this.$refs.toolingModalForm.title = '閫夋嫨鍒�鍏�'
-      this.$refs.toolingModalForm.disableSubmit = false
+      // this.$refs.toolingModalForm.showModal(ids)
+      // this.$refs.toolingModalForm.title = '閫夋嫨鍒�鍏�'
+      // this.$refs.toolingModalForm.disableSubmit = false
+
+      this.$refs.inventoryModalForm.showModal(ids)
+      this.$refs.inventoryModalForm.title = '閫夋嫨鍒�鍏�'
+      this.$refs.inventoryModalForm.disableSubmit = false
+
     },
     detailList(orderId) {
       this.param.orderId = orderId
@@ -337,19 +348,30 @@
           that.confirmLoading = true
           let formData = Object.assign(this.model, values)
           formData.detailData = this.dataSource
-          postAction(that.url.add, formData)
-            .then((res) => {
-              if (res.success) {
-                that.$message.success('棰嗙敤鎴愬姛')
-                that.$emit('ok', new Date())
-              } else {
-                that.$message.warning(res.message)
-              }
-            })
-            .finally(() => {
-              that.confirmLoading = false
-              that.close()
-            })
+
+          // 娣诲姞鏇存柊搴撳瓨鐘舵�佺殑閫昏緫
+          const inventoryIds = this.dataSource.map(item => item.inventoryId)
+          const updateInventoryStatus = inventoryIds.length > 0 ?
+            //闇�瑕佸啓涓�涓洿鏂板簱瀛樼姸鎬佺殑鎺ュ彛鍦ㄥ悗绔紙杩樻病鍐�25/9/9锛�
+            postAction('/cms/inventory/updateStatus', {
+              ids: inventoryIds,
+              status: '寰呭嚭搴�' //璁句负寰呭嚭搴�
+            }) : Promise.resolve()
+          updateInventoryStatus.then(() => {
+            return postAction(that.url.add, formData)
+          }).then((res) => {
+                if (res.success) {
+                  that.$message.success('棰嗙敤鎴愬姛')
+                  that.$emit('ok', new Date())
+                } else {
+                  that.$message.warning(res.message)
+                }
+              }).catch((error) => {
+                that.$message.error('鎿嶄綔澶辫触: ' + error.message)
+              }).finally(() => {
+                that.confirmLoading = false
+                that.close()
+              })
         }
       })
     },
@@ -361,19 +383,22 @@
       this.dataSource = []
       this.visible = false
       this.disableSubmit = false
-    },
-    },
-    mounted() {
+    }
+  },
+  mounted() {
     this.$bus.$on('selectionRows', (data) => {
+      console.log('鎺ユ敹鍒扮殑閫夋嫨鏁版嵁:', data)
       //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟
       for (let i = 0; i < data.length; i++) {
         this.dataSource.push({
-          cuttingId: data[i].id,
+          inventoryId: data[i].id,
           cuttingCode: data[i].cuttingCode,
-          cuttingName: data[i].cuttingName
+          cuttingName: data[i].cuttingName,
+          cuttingId: data[i].cuttingId
         })
       }
+      console.log('鏇存柊鍚庣殑鏁版嵁婧�:', this.dataSource)
     })
-  },
   }
+}
 </script>
\ No newline at end of file

--
Gitblit v1.9.3