<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 {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, key: 'materialCode' }, { title: '物料名称', dataIndex: 'materialName', width: 96, key: 'materialName' }, { title: '物料规格', dataIndex: 'materialSpec', width: 96, key: 'materialSpec' }, { title: '库存状态', dataIndex: 'inventoryStatus', key: 'inventoryStatus', width: 96, }, { title: '批次', dataIndex: 'batch', key: 'batch' }, { title: '可收数量', dataIndex: 'qty', width: 80, key: 'qty' }, { title: '收货数量', dataIndex: 'action', scopedSlots: {customRender: 'action'}, } ], confirmLoading: false, validatorRules: { containerCode: [ {required: true, message: '请输入容器编码!'}, ], }, url: { add: "/receipt/receiveHeader/receiving", edit: "/receipt/receiptHeader/editReceiptDetail", } } }, created() { //备份model原始值 console.log("created"); this.modelDefault = JSON.parse(JSON.stringify(this.model)); this.searchReceive(); }, methods: { add() { console.log("add 1"); this.edit(this.modelDefault); this.model.inventoryStatus = "good"; }, edit(record) { console.log("edit 1"); 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; }) }, 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'; 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'); } else { that.$message.warning(res.message); } }).finally(() => { that.confirmLoading = false; that.close(); }) } else { return false } }) }, handleCancel() { this.close() }, } } </script>