From 9e1c79907d54bad69ee70e06a5ee6379c838094e Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期六, 06 九月 2025 17:48:18 +0800 Subject: [PATCH] art: 热处理外协入库、小内圈外协入库、物料调拨 --- src/views/lsw/modules/LswMaterialInboundForm.vue | 185 +++++++++++++++++++++++++++++---------------- 1 files changed, 118 insertions(+), 67 deletions(-) diff --git a/src/views/lsw/modules/LswMaterialInboundForm.vue b/src/views/lsw/modules/LswMaterialInboundForm.vue index eb3dc18..a20e449 100644 --- a/src/views/lsw/modules/LswMaterialInboundForm.vue +++ b/src/views/lsw/modules/LswMaterialInboundForm.vue @@ -3,40 +3,34 @@ <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" + v-if="model.inboundCategory !== 'MATERIAL_INNER_TRANSFER'"> + <a-input v-model="model.originalCode" placeholder="璇疯緭鍏ユ潵婧愮紪鐮�"></a-input> + </a-form-model-item> + <a-form-model-item label="鏉ユ簮绾胯竟搴�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalCode" + v-else> + <j-search-select-tag v-model="model.originalCode" placeholder="璇烽�夋嫨绾胯竟搴�" + :dict-options="originalCodeDictOptions" + @change="originalCodeSelectChange"></j-search-select-tag> + </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 +43,21 @@ <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,22 +68,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 - }, + components: {}, props: { //琛ㄥ崟绂佺敤 disabled: { @@ -104,12 +93,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' } @@ -122,24 +116,27 @@ ], 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' } } }, computed: { formDisabled() { return this.disabled + }, + originalCodeDictOptions() { + return this.warehouseDictOptions.map(warehouse => ({ + ...warehouse, + value: warehouse.warehouseCode, + text: warehouse.warehouseName + '(' + warehouse.warehouseCode + ')' + })) } }, created() { @@ -147,14 +144,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,OUTERFLANGE,INNERFLANG,HEATTREATMENT') + this.loadMaterialDictOptions('OUTER_FLANGE,INNER_FLANGE,STEEL_BALL,BLANK,COMPONENTS') + } + this.modelDefault.inboundCategory = inboundCategory this.edit(this.modelDefault) }, edit(record) { @@ -189,6 +192,54 @@ } }) + }, + 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 + '(' + material.materialName + ')' + })) + } + }) + }, + 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 + } + }, + originalCodeSelectChange(value) { + let warehouse = this.originalCodeDictOptions.find(option => option.value === value) + if (warehouse) { + this.model.originalName = warehouse.warehouseName + } else { + this.model.originalName = undefined + } } } } -- Gitblit v1.9.3