<template> <j-modal :title="title" :width="width" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen @ok="handleOk" @cancel="handleCancel" cancelText="关闭" > <a-spin :spinning="confirmLoading"> <a-form-model ref="form" :model="model" :rules="validatorRules"> <a-row> <a-col :span="24"> <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode"> <a-input v-model="model.materialCode" placeholder="请输入物料编码" style="width: 100%" /> </a-form-model-item> </a-col> <a-col :span="24"> <a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName"> <a-input v-model="model.materialName" placeholder="请输入物料名称" style="width: 100%" /> </a-form-model-item> </a-col> <a-col :span="24"> <a-form-model-item label="可出数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty"> <a-input-number v-model="model.qty" placeholder="请输入可出数量" style="width: 100%" /> </a-form-model-item> </a-col> <a-col :span="24"> <a-form-model-item label="出库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskQty"> <a-input-number v-model="model.taskQty" placeholder="请输入出库数量" style="width: 100%" /> </a-form-model-item> </a-col> </a-row> </a-form-model> </a-spin> <!-- table区域-begin --> <div> <a-table ref="table" rowKey="id" size="middle" bordered class="j-table-force-nowrap" :scroll="{x:true}" :columns="columns" :dataSource="dataSource" :pagination="false" :loading="loading" > <span slot="action" slot-scope="text, record"> <a-button @click="combine(record)" type="primary">配盘</a-button> </span> </a-table> </div> </j-modal> </template> <script> import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { httpAction } from '@/api/manage' import { validateDuplicateValue } from '@/utils/util' import { searchMaterialByCode, getInventoryFromShipmentDetail } from '@/api/api' import { listShipmentByShipmentDetailId, combination } from '@/api/api' import { filterObj } from '@/utils/util' import { deleteAction, getAction, downFile, getFileAccessHttpUrl } from '@/api/manage' export default { name: 'ShipmentDetailCombineModal', components: { JeecgListMixin }, props: { mainId: { type: String, required: false, default: '' } }, data() { return { title: '操作', width: 1000, /* 分页参数 */ ipagination: { current: 1, pageSize: 100, pageSizeOptions: ['10', '20', '30'], showTotal: (total, range) => { return range[0] + '-' + range[1] + ' 共' + total + '条' }, showQuickJumper: true, showSizeChanger: true, total: 0 }, /* 数据源 */ dataSource: [], queryParam: {}, combineParam: {}, shipmentParam: {}, visible: false, materialList: {}, querySource: {}, /* 筛选参数 */ filters: {}, /* table加载状态 */ loading: false, /* table选中keys*/ selectedRowKeys: [], /* table选中records*/ selectionRows: [], /* 查询折叠 */ toggleSearchStatus: false, /* 高级查询条件生效状态 */ superQueryFlag: false, /* 高级查询条件 */ superQueryParams: '', /** 高级查询拼接方式 */ superQueryMatchType: 'and', model: {}, labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 } }, // 表头 columns: [ { title: '容器编码', align: 'center', dataIndex: 'containerCode' }, { title: '库位编码', align: 'center', dataIndex: 'locationCode' }, { title: '物料编码', align: 'center', dataIndex: 'materialCode' }, { title: '物料名称', align: 'center', dataIndex: 'materialName' }, { title: '库存数量', align: 'center', dataIndex: 'qty' }, { title: '锁定数量', align: 'center', dataIndex: 'taskQty' }, { title: '库存状态', align: 'center', dataIndex: 'inventoryStatus' }, { title: '批次', align: 'center', dataIndex: 'batch' }, { title: '创建人', align: 'center', dataIndex: 'createBy' }, { title: '创建日期', align: 'center', dataIndex: 'createTime' }, { title: '操作', dataIndex: 'action', align: 'center', fixed: 'right', width: 147, scopedSlots: { customRender: 'action' } } ], confirmLoading: false, validatorRules: {}, url: { add: '/shipment/shipmentHeader/addShipmentDetail', edit: '/shipment/shipmentHeader/editShipmentDetail', list: '/shipment/shipmentCombination/getInventoryFromShipmentDetail' } } }, created() { //备份model原始值 this.modelDefault = JSON.parse(JSON.stringify(this.model)) this.searchMaterial() }, methods: { getSuperFieldList() { let fieldList = [] fieldList.push({ type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status' }) this.superFieldList = fieldList }, add() { this.edit(this.modelDefault) this.model.inventoryStatus = 'good' }, edit(record) { // this.model = Object.assign({}, record); this.shipmentParam = record this.searchShipment() }, close() { this.$emit('close') this.visible = false this.$refs.form.clearValidate() }, combine(record) { const that = this that.querySource = record this.combineParam.shipmentDetailID = this.model.id this.combineParam.inventoryDetailID = record.id this.combineParam.shipQty = this.model.taskQty combination(this.combineParam).then(res => { if (res.success) { // this.model = res.result; this.$message.success(res.message) this.searchShipment() } else { this.$message.warning(res.message) } }) }, searchShipment() { const that = this that.querySource = this.shipmentParam listShipmentByShipmentDetailId(that.querySource).then(res => { if (res.success) { this.model = res.result this.visible = true this.searchInventory(that.querySource) } else { this.$message.warning(res.message) } }) }, searchInventory(record) { const that = this that.querySource = record console.log('searchInventory') // getInventoryFromShipmentDetail(that.querySource).then((res) => { // this.dataSource = res.result; // }); this.searchQuery() }, searchQuery() { this.loadData(1) // 点击查询清空列表选中行 // https://gitee.com/jeecg/jeecg-boot/issues/I4KTU1 // this.selectedRowKeys = [] // this.selectionRows = [] }, loadData(arg) { if (!this.url.list) { this.$message.error('请设置url.list属性!') return } //加载数据 若传入参数1则加载第一页的内容 if (arg === 1) { this.ipagination.current = 1 } var params = this.getQueryParams() //查询条件 this.loading = true getAction(this.url.list, params) .then(res => { if (res.success) { //update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ this.dataSource = res.result.records || res.result if (res.result.total) { this.ipagination.total = res.result.total } else { this.ipagination.total = 0 } //update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------ } else { this.$message.warning(res.message) } }) .finally(() => { this.loading = false }) }, getQueryField() { //TODO 字段权限控制 var str = 'id,' this.columns.forEach(function(value) { str += ',' + value.dataIndex }) return str }, getQueryParams() { //获取查询条件 let sqp = {} if (this.superQueryParams) { sqp['superQueryParams'] = encodeURI(this.superQueryParams) sqp['superQueryMatchType'] = this.superQueryMatchType } this.queryParam.id = this.model.id var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters) param.field = this.getQueryField() param.pageNo = this.ipagination.current param.pageSize = this.ipagination.pageSize return filterObj(param) }, handleOk() { const that = this that.close() // 触发表单验证 // 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'; // } // this.model['shipmentId'] = this.mainId // 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; // that.close(); // }) // }else{ // return false // } // }) }, handleCancel() { this.close() }, searchMaterial() { const that = this that.querySource.materialCode = that.model.materialCode console.log('model.materialCode:' + that.model.materialCode) searchMaterialByCode(that.querySource).then(res => { that.materialList = res.result }) } } } </script>