| | |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| | | <a-row> |
| | | <a-col :span="12"> |
| | | <a-form-model-item label="删除标记" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag"> |
| | | <a-input-number v-model="model.delFlag" placeholder="请输入删除标记" style="width: 100%" /> |
| | | <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="产线ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryId"> |
| | | <a-input v-model="model.factoryId" placeholder="请输入产线ID" ></a-input> |
| | | <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="库存地ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="warehouseId"> |
| | | <a-input v-model="model.warehouseId" placeholder="请输入库存地ID" ></a-input> |
| | | <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"> |
| | | <a-form-model-item label="批次号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchNumber"> |
| | | <a-input v-model="model.batchNumber" placeholder="请输入批次号" ></a-input> |
| | | <a-input v-model="model.batchNumber" placeholder="请输入批次号"></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | |
| | | <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"> |
| | | <a-input v-model="model.receiver" placeholder="请输入接收人" ></a-input> |
| | | <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> |
| | |
| | | |
| | | <script> |
| | | |
| | | import { httpAction, getAction } from '@/api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | import { getAction, httpAction } from '@/api/manage' |
| | | |
| | | export default { |
| | | name: 'LswMaterialInboundForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表单禁用 |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | export default { |
| | | name: 'LswMaterialInboundForm', |
| | | components: {}, |
| | | props: { |
| | | //表单禁用 |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | model: {}, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | confirmLoading: false, |
| | | warehouseDictOptions: [], |
| | | materialDictOptions: [], |
| | | validatorRules: { |
| | | originalCode: [ |
| | | { required: true, message: '来源编码是必选项', trigger: 'change' } |
| | | ], |
| | | originalName: [ |
| | | { required: true, message: '来源名称是必选项', trigger: 'change' } |
| | | ], |
| | | warehouseId: [ |
| | | { required: true, message: '线边库是必选项', trigger: 'change' } |
| | | ], |
| | | materialNumber: [ |
| | | { required: true, message: '物料编码是必选项', trigger: 'change' } |
| | | ], |
| | | materialName: [ |
| | | { required: true, message: '物料名称是必选项', trigger: 'change' } |
| | | ], |
| | | batchNumber: [ |
| | | { required: true, message: '批次号是必选项', trigger: 'change' } |
| | | ], |
| | | quantity: [ |
| | | { required: true, message: '入库数量是必选项', trigger: 'change' } |
| | | ] |
| | | }, |
| | | url: { |
| | | 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 |
| | | }, |
| | | data () { |
| | | return { |
| | | model:{ |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | }, |
| | | url: { |
| | | add: "/lswmaterialinbound/lswMaterialInbound/add", |
| | | edit: "/lswmaterialinbound/lswMaterialInbound/edit", |
| | | queryById: "/lswmaterialinbound/lswMaterialInbound/queryById" |
| | | } |
| | | originalCodeDictOptions() { |
| | | return this.warehouseDictOptions.map(warehouse => ({ |
| | | ...warehouse, |
| | | value: warehouse.warehouseCode, |
| | | text: warehouse.warehouseName + '(' + warehouse.warehouseCode + ')' |
| | | })) |
| | | } |
| | | }, |
| | | created() { |
| | | //备份model原始值 |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)) |
| | | }, |
| | | methods: { |
| | | 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) |
| | | }, |
| | | computed: { |
| | | formDisabled(){ |
| | | return this.disabled |
| | | }, |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.visible = true |
| | | }, |
| | | created () { |
| | | //备份model原始值 |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit (record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm () { |
| | | const that = this; |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if(!this.model.id){ |
| | | httpurl+=this.url.add; |
| | | method = 'post'; |
| | | }else{ |
| | | httpurl+=this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl,this.model,method).then((res)=>{ |
| | | if(res.success){ |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | }else{ |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | submitForm() { |
| | | const that = this |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | let httpurl = '' |
| | | let method = '' |
| | | if (!this.model.id) { |
| | | httpurl += this.url.add |
| | | method = 'post' |
| | | } else { |
| | | httpurl += this.url.edit |
| | | method = 'put' |
| | | } |
| | | httpAction(httpurl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message) |
| | | that.$emit('ok') |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | }) |
| | | }, |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |