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