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

---
 src/views/lsw/modules/LswMaterialInboundForm.vue |  149 ++++++++++++++++++++++++++++---------------------
 1 files changed, 84 insertions(+), 65 deletions(-)

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;
+      }
     }
   }
 }

--
Gitblit v1.9.3