From 729b38ccaa1439af3f23b8457a6ec2271d1e9c1a Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期四, 04 九月 2025 23:19:19 +0800
Subject: [PATCH] art: 热处理入库

---
 src/views/lsw/modules/LswMaterialInboundModal.vue |    4 
 src/views/lsw/LswMaterialInboundList.vue          |  129 ++++++++-----------------
 src/views/lsw/modules/LswMaterialInboundForm.vue  |  149 ++++++++++++++++-------------
 3 files changed, 130 insertions(+), 152 deletions(-)

diff --git a/src/views/lsw/LswMaterialInboundList.vue b/src/views/lsw/LswMaterialInboundList.vue
index c5ca76e..a9e30c3 100644
--- a/src/views/lsw/LswMaterialInboundList.vue
+++ b/src/views/lsw/LswMaterialInboundList.vue
@@ -5,6 +5,17 @@
       <a-form layout="inline" @keyup.enter.native="searchQuery" >
         <a-row :gutter="24">
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="绾胯竟搴�">
+              <j-dict-select-tag placeholder="璇烽�夋嫨绾胯竟搴�" v-model="queryParam.warehouseId"
+                                 dictCode="base_line_side_warehouse,warehouse_name,id,del_flag=0 and warehouse_status='1'"></j-dict-select-tag>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="鍏ュ簱绫诲瀷">
+              <j-dict-select-tag placeholder="璇烽�夋嫨鍏ュ簱绫诲瀷" v-model="queryParam.inboundCategory" dictCode="material_inbound_category"></j-dict-select-tag>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <a-form-item label="鐗╂枡缂栫爜">
               <j-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></j-input>
             </a-form-item>
@@ -22,7 +33,7 @@
           <a-col :xl="6" :lg="7" :md="8" :sm="24">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
+              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
             </span>
           </a-col>
         </a-row>
@@ -32,22 +43,16 @@
 
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
     <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
-      </a-dropdown>
+      <a-button @click="handleAdd('HEAT_TREATMENT_INBOUND')" type="primary" icon="plus">鐑鐞嗗叆搴�</a-button>
+      <a-button @click="handleAdd('SMALL_INNER_RING')" type="primary" icon="plus">灏忓唴鍦堝叆搴�</a-button>
+      <a-button @click="handleAdd('MATERIAL_INNER_TRANSFER')" type="primary" icon="plus">鍐呴儴璋冩嫧</a-button>
     </div>
-
     <!-- table鍖哄煙-begin -->
     <div>
       <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
         <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
         <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
       </div>
-
       <a-table
         ref="table"
         size="middle"
@@ -61,46 +66,11 @@
         :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
         class="j-table-force-nowrap"
         @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text,record">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
-          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            涓嬭浇
-          </a-button>
-        </template>
-
         <span slot="action" slot-scope="text, record">
           <a @click="handleEdit(record)">缂栬緫</a>
-
           <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleDetail(record)">璇︽儏</a>
-              </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
-                  <a>鍒犻櫎</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
+          <a @click="handleDetail(record)">璇︽儏</a>
         </span>
-
       </a-table>
     </div>
 
@@ -137,12 +107,17 @@
             }
           },
           {
-            title:'浜х嚎',
+            title:'鏉ユ簮缂栫爜',
             align:"center",
-            dataIndex: 'factoryId_dictText'
+            dataIndex: 'originalCode'
           },
           {
-            title:'搴撳瓨鍦�',
+            title:'鏉ユ簮鍚嶇О',
+            align:"center",
+            dataIndex: 'originalName'
+          },
+          {
+            title:'绾胯竟搴�',
             align:"center",
             dataIndex: 'warehouseId_dictText'
           },
@@ -167,60 +142,44 @@
             dataIndex: 'quantity'
           },
           {
-            title:'鎺ユ敹浜�',
+            title:'鍏ュ簱绫诲瀷',
+            align:"center",
+            dataIndex: 'inboundCategory_dictText'
+          },
+          {
+            title:'鍏ュ簱浜�',
             align:"center",
             dataIndex: 'receiver'
           },
           {
-            title:'鎺ユ敹鏃堕棿',
+            title:'鍏ュ簱鏃堕棿',
             align:"center",
             dataIndex: 'receiveTime'
           },
-          // {
-          //   title: '鎿嶄綔',
-          //   dataIndex: 'action',
-          //   align:"center",
-          //   fixed:"right",
-          //   width:147,
-          //   scopedSlots: { customRender: 'action' }
-          // }
+          {
+            title: '鎿嶄綔',
+            dataIndex: 'action',
+            align:"center",
+            fixed:"right",
+            width:147,
+            scopedSlots: { customRender: 'action' }
+          }
         ],
         url: {
-          list: "/lswmaterialinbound/lswMaterialInbound/list",
-          delete: "/lswmaterialinbound/lswMaterialInbound/delete",
-          deleteBatch: "/lswmaterialinbound/lswMaterialInbound/deleteBatch",
-          exportXlsUrl: "/lswmaterialinbound/lswMaterialInbound/exportXls",
-          importExcelUrl: "lswmaterialinbound/lswMaterialInbound/importExcel",
+          list: "/lsw/materialInbound/list",
         },
-        dictOptions:{},
-        superFieldList:[],
       }
     },
     created() {
-    this.getSuperFieldList();
     },
     computed: {
-      importExcelUrl: function(){
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      },
     },
     methods: {
-      initDictConfig(){
-
+      handleAdd(inboundCategory) {
+        this.$refs.modalForm.add(inboundCategory);
+        this.$refs.modalForm.title = "鏂板";
+        this.$refs.modalForm.disableSubmit = false;
       },
-      getSuperFieldList(){
-        let fieldList=[];
-        fieldList.push({type:'int',value:'delFlag',text:'鍒犻櫎鏍囪',dictCode:''})
-        fieldList.push({type:'string',value:'factoryId',text:'浜х嚎ID',dictCode:''})
-        fieldList.push({type:'string',value:'warehouseId',text:'搴撳瓨鍦癐D',dictCode:''})
-        fieldList.push({type:'string',value:'materialNumber',text:'鐗╂枡缂栫爜',dictCode:''})
-        fieldList.push({type:'string',value:'materialName',text:'鐗╂枡鍚嶇О',dictCode:''})
-        fieldList.push({type:'string',value:'batchNumber',text:'鎵规鍙�',dictCode:''})
-        fieldList.push({type:'int',value:'quantity',text:'鍏ュ簱鏁伴噺',dictCode:''})
-        fieldList.push({type:'string',value:'receiver',text:'鎺ユ敹浜�',dictCode:''})
-        fieldList.push({type:'datetime',value:'receiveTime',text:'鎺ユ敹鏃堕棿'})
-        this.superFieldList = fieldList
-      }
     }
   }
 </script>
diff --git a/src/views/lsw/modules/LswMaterialInboundForm.vue b/src/views/lsw/modules/LswMaterialInboundForm.vue
index eb3dc18..15c5f74 100644
--- a/src/views/lsw/modules/LswMaterialInboundForm.vue
+++ b/src/views/lsw/modules/LswMaterialInboundForm.vue
@@ -3,40 +3,25 @@
     <j-form-container :disabled="formDisabled">
       <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
         <a-row>
-          <a-form-model-item label="浜х嚎" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId">
-            <a-row :gutter="24">
-              <a-col :span="24">
-                <a-form-item
-                  :labelCol="labelCol"
-                  :wrapperCol="wrapperCol"
-                  label=""
-                >
-                  <j-select-factory
-                    :disabled="disabled"
-                    v-model="model.factoryId"
-                    :multi="true"
-                    @back="backFactoryInfo"
-                    :backProduction="true"
-                    :treeProductOpera="true"
-                  ></j-select-factory>
-                </a-form-item>
-              </a-col>
-            </a-row>
-          </a-form-model-item>
           <a-col :span="12">
-            <a-form-model-item label="搴撳瓨鍦�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouseId">
-              <j-search-select-tag v-model="model.warehouseId" placeholder="璇烽�夋嫨搴撳瓨鍦�"
-                                   dict="base_line_side_warehouse,warehouse_name,id"></j-search-select-tag>
+            <a-form-model-item label="鏉ユ簮缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalCode">
+              <a-input v-model="model.originalCode" placeholder="璇疯緭鍏ユ潵婧愮紪鐮�"></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="鏉ユ簮鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalName">
+              <a-input v-model="model.originalName" placeholder="璇疯緭鍏ユ潵婧愬悕绉�"></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="绾胯竟搴�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouseId">
+              <j-search-select-tag v-model="model.warehouseId" placeholder="璇烽�夋嫨绾胯竟搴�"
+                                   :dict-options="warehouseDictOptions" @change="warehouseSelectChange"></j-search-select-tag>
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
             <a-form-model-item label="鐗╂枡缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialNumber">
-              <a-input v-model="model.materialNumber" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"></a-input>
-            </a-form-model-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
-              <a-input v-model="model.materialName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"></a-input>
+              <j-search-select-tag :dict-options="materialDictOptions" v-model="model.materialNumber" placeholder="璇烽�夋嫨鐗╂枡缂栫爜" @change="materialSelectChange"></j-search-select-tag>
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
@@ -49,15 +34,20 @@
               <a-input-number v-model="model.quantity" placeholder="璇疯緭鍏ュ叆搴撴暟閲�" style="width: 100%" />
             </a-form-model-item>
           </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+    <j-form-container disabled>
+      <a-form-model ref="form1" :model="model" slot="detail">
+        <a-row>
           <a-col :span="12">
-            <a-form-model-item label="鎺ユ敹浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiver">
-              <j-select-user-by-dep v-model="model.receiver" placeholder="璇疯緭鍏ユ帴鏀朵汉"></j-select-user-by-dep>
+            <a-form-model-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
+              <a-input v-model="model.materialName"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :span="12">
-            <a-form-model-item label="鎺ユ敹鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiveTime">
-              <j-date placeholder="璇烽�夋嫨鎺ユ敹鏃堕棿" v-model="model.receiveTime" :show-time="true"
-                      date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+            <a-form-model-item label="鍏ュ簱绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inboundCategory">
+              <j-search-select-tag v-model="model.inboundCategory" dict="material_inbound_category"></j-search-select-tag>
             </a-form-model-item>
           </a-col>
         </a-row>
@@ -68,21 +58,11 @@
 
 <script>
 
-import { httpAction, getAction } from '@/api/manage'
-import { validateDuplicateValue } from '@/utils/util'
-import JDate from '@/components/jeecg/JDate'
-import pick from 'lodash.pick'
-import moment from 'moment'
-import { duplicateCheck } from '@/api/api'//閲嶅鏍¢獙
-import JTreeDict from '@/components/jeecg/JTreeDict'//鍒嗙被瀛楀吀鏍戝舰涓嬫媺缁勪欢
-import JSelectFactory from '../../../../src/components/jeecgbiz/JSelectFactory.vue'
+import { getAction, httpAction } from '@/api/manage'
 
 export default {
   name: 'LswMaterialInboundForm',
   components: {
-    JDate,
-    JTreeDict,
-    JSelectFactory
   },
   props: {
     //琛ㄥ崟绂佺敤
@@ -104,12 +84,17 @@
         sm: { span: 16 }
       },
       confirmLoading: false,
+      warehouseDictOptions: [],
+      materialDictOptions: [],
       validatorRules: {
-        factoryId: [
-          { required: true, message: '浜х嚎鏄繀閫夐」', trigger: 'change' }
+        originalCode: [
+          { required: true, message: '鏉ユ簮缂栫爜鏄繀閫夐」', trigger: 'change' }
+        ],
+        originalName: [
+          { required: true, message: '鏉ユ簮鍚嶇О鏄繀閫夐」', trigger: 'change' }
         ],
         warehouseId: [
-          { required: true, message: '搴撳瓨鍦版槸蹇呴�夐」', trigger: 'change' }
+          { required: true, message: '绾胯竟搴撴槸蹇呴�夐」', trigger: 'change' }
         ],
         materialNumber: [
           { required: true, message: '鐗╂枡缂栫爜鏄繀閫夐」', trigger: 'change' }
@@ -123,17 +108,13 @@
         quantity: [
           { required: true, message: '鍏ュ簱鏁伴噺鏄繀閫夐」', trigger: 'change' }
         ],
-        receiver: [
-          { required: true, message: '鎺ユ敹浜烘槸蹇呴�夐」', trigger: 'change' }
-        ],
-        receiveTime: [
-          { required: true, message: '鎺ユ敹鏃堕棿鏄繀閫夐」', trigger: 'change' }
-        ]
       },
       url: {
-        add: '/lswmaterialinbound/lswMaterialInbound/add',
-        edit: '/lswmaterialinbound/lswMaterialInbound/edit',
-        queryById: '/lswmaterialinbound/lswMaterialInbound/queryById'
+        add: '/lsw/materialInbound/add',
+        edit: '/lsw/materialInbound/edit',
+        queryById: '/lsw/materialInbound/queryById',
+        queryByProductionType: '/base/lineSideWarehouse/queryByProductionType',
+        queryByMaterialCategory: '/lsw/lswMaterial/queryByMaterialCategory',
       }
     }
   },
@@ -147,14 +128,20 @@
     this.modelDefault = JSON.parse(JSON.stringify(this.model))
   },
   methods: {
-    backFactoryInfo(info) {
-      this.model.factoryIds = this.model.factoryId
-      this.nextFactoryOptions = info.map((item, index, arr) => {
-        let c = { label: item.text, value: item.value + '' }
-        return c
-      })
-    },
-    add() {
+    add(inboundCategory) {
+      this.warehouseDictOptions = [];
+      this.materialDictOptions = [];
+      if(inboundCategory === 'HEAT_TREATMENT_INBOUND') {
+        this.loadWarehouseDictOptions('OUTERFLANGE,INNERFLANGE');
+        this.loadMaterialDictOptions('BLANK');
+      }else if(inboundCategory === 'SMALL_INNER_RING') {
+        this.loadWarehouseDictOptions('ASSEMBLE');
+        this.loadMaterialDictOptions('SMALL_INNER_RING');
+      } else if(inboundCategory === 'MATERIAL_INNER_TRANSFER') {
+        this.loadWarehouseDictOptions('ASSEMBLE');
+        this.loadMaterialDictOptions('STEEL_BALL');
+      }
+      this.modelDefault.inboundCategory = inboundCategory;
       this.edit(this.modelDefault)
     },
     edit(record) {
@@ -189,6 +176,38 @@
         }
 
       })
+    },
+    loadWarehouseDictOptions(productionType) {
+      let params = {productionType : productionType}
+      getAction(this.url.queryByProductionType, params).then(res => {
+        if(res.success) {
+          this.warehouseDictOptions = res.result.map(warehouse => ({...warehouse, value : warehouse.id, text: warehouse.warehouseName + '(' + warehouse.warehouseCode+')'}));
+        }
+      })
+    },
+    loadMaterialDictOptions(materialCategory) {
+      let params = {materialCategory : materialCategory}
+      getAction(this.url.queryByMaterialCategory, params).then(res => {
+        if(res.success) {
+          this.materialDictOptions = res.result.map(material => ({...material, value : material.materialNumber, text: material.materialNumber}));
+        }
+      })
+    },
+    warehouseSelectChange(value) {
+      let warehouse = this.warehouseDictOptions.find(option => option.value === value)
+      if(warehouse) {
+        this.model.factoryId = warehouse.factoryId
+      }else {
+        this.model.factoryId = undefined;
+      }
+    },
+    materialSelectChange(value) {
+      let material = this.materialDictOptions.find(option => option.value === value)
+      if(material) {
+        this.model.materialName = material.materialName
+      }else {
+        this.model.materialName = undefined;
+      }
     }
   }
 }
diff --git a/src/views/lsw/modules/LswMaterialInboundModal.vue b/src/views/lsw/modules/LswMaterialInboundModal.vue
index 45eb4f4..348d409 100644
--- a/src/views/lsw/modules/LswMaterialInboundModal.vue
+++ b/src/views/lsw/modules/LswMaterialInboundModal.vue
@@ -29,10 +29,10 @@
       }
     },
     methods: {
-      add () {
+      add (inboundCategory) {
         this.visible=true
         this.$nextTick(()=>{
-          this.$refs.realForm.add();
+          this.$refs.realForm.add(inboundCategory);
         })
       },
       edit (record) {

--
Gitblit v1.9.3