<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="containerCode"> <a-input v-model="model.containerCode" placeholder="请输入容器编码" style="width: 100%" /> </a-form-model-item> </a-col> </a-row> </a-form-model> </a-spin> <a-table ref="table" rowKey="id" size="middle" :columns="columns" :dataSource="dataSource" :pagination="false"> <span slot="action" slot-scope="text, record"> <a-input-number placeholder="" v-model="record.taskQty" :value="text" /> </span> </a-table> </j-modal> </template> <script> import { httpAction } from '@/api/manage' import { mixinDevice } from '@/utils/mixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { filterMultiDictText } from '@/components/dict/JDictSelectUtil' import { validateDuplicateValue } from '@/utils/util' import { searchMaterialByCode } from '@/api/api' import { listReceiveByReceiptId } from '@/api/api' export default { name: 'ReceiveModal', components: {}, props: { mainId: { type: String, required: false, default: '' } }, data() { return { title: '操作', width: 800, visible: false, materialList: {}, querySource: {}, dataSource: [], model: {}, labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 } }, columns: [ { title: '物料编码', dataIndex: 'materialCode', align: 'center', width: 124 }, { title: '物料名称', dataIndex: 'materialName', align: 'center', width: 96 }, { title: '物料规格', dataIndex: 'materialSpec', align: 'center', width: 96 }, { title: '库存状态', dataIndex: 'inventoryStatus', align: 'center', width: 96 }, { title: '批次', dataIndex: 'batch', align: 'center' }, { title: '可收数量', dataIndex: 'qty', align: 'center', width: 80 }, { title: '收货数量', dataIndex: 'action', align: 'center', key: 'action', scopedSlots: { customRender: 'action' } } ], confirmLoading: false, validatorRules: { containerCode: [{ required: true, message: '请输入容器编码!' }] }, dictOptions: {}, superFieldList:[], url: { add: '/receipt/receiveHeader/receiving', edit: '/receipt/receiptHeader/editReceiptDetail' } } }, created() { //备份model原始值 // this.searchReceive() this.getSuperFieldList() // this.modelDefault = JSON.parse(JSON.stringify(this.model)) }, methods: { // add() { // this.edit(this.modelDefault) // this.model.inventoryStatus = 'good' // }, edit(record) { this.model = Object.assign({}, record) this.visible = true this.searchReceive() }, // show(record) { // this.model = Object.assign({}, record) // this.visible = true // }, close() { this.$emit('close') this.visible = false this.$refs.form.clearValidate() }, searchReceive() { const that = this that.querySource.receiptCode = that.model.code listReceiveByReceiptId(that.querySource).then(res => { that.dataSource = res.result }) }, initDictConfig() {}, getSuperFieldList() { let fieldList = [] fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'}) this.superFieldList = fieldList }, handleOk() { console.log('handleOk') const that = this // 触发表单验证 this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = true let httpurl = '' let method = '' httpurl += this.url.add method = 'post' if (this.dataSource[0] == null) { that.confirmLoading = false that.$message.warning('入库单没有详情!') return } this.dataSource[0].containerCode = this.model.containerCode httpAction(httpurl, this.dataSource, method) .then(res => { if (res.success) { that.$message.success(res.message) that.$emit('ok') that.close() } else { that.$message.warning(res.message) } }) .finally(() => { that.confirmLoading = false }) } else { return false } }) }, handleCancel() { this.close() } } } </script>