<template>
|
<a-modal :title="title" :visible="visible" :fullScreen="true" :width="1200" @ok="handleOk" @cancel="handleCancel">
|
<a-spin :spinning="confirmLoading">
|
<a-form :form="form">
|
<a-row style="width: 100%">
|
<a-col :span="24 / 2">
|
<a-form-item label="领用人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<j-search-select-tag
|
:disabled="disableSubmit"
|
placeholder="请选择领用人"
|
v-decorator="['receiver', { rules: [{ required: true, message: '请选择领用人' }] }]"
|
dict="sys_user,realname,id,del_flag=0"
|
/>
|
</a-form-item>
|
</a-col>
|
<a-col :span="24 / 2">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="领用日期">
|
<a-date-picker
|
:disabled="disableSubmit"
|
style="width: 100%"
|
v-decorator="['receiveTime', validatorRules.receiveTime]"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24">
|
<a-form-item label="领用说明" :labelCol="{span:3}" :wrapperCol="{span:21}">
|
<a-textarea :disabled="disableSubmit" placeholder="请输入领用说明" v-decorator="['receiveComment', validatorRules.receiveComment]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24 / 2">
|
<a-form-item label="确认人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<j-search-select-tag
|
:disabled="disableSubmit"
|
placeholder="请选择确认人"
|
v-decorator="['confirmer', { rules: [{ required: false, message: '请选择确认人' }] }]"
|
dict="sys_user,realname,id,del_flag=0"
|
/>
|
</a-form-item>
|
</a-col>
|
<a-col :span="24 / 2">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="确认日期">
|
<a-date-picker
|
:disabled="disableSubmit"
|
style="width: 100%"
|
v-decorator="['confirmTime', validatorRules.confirmTime]"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24">
|
<a-form-item label="确认意见" :labelCol="{span:3}" :wrapperCol="{span:21}">
|
<a-textarea :disabled="disableSubmit" placeholder="请输入确认意见" v-decorator="['confirmComment', validatorRules.confirmComment]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24 / 2">
|
<a-form-item label="是否会归还" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-input :disabled="disableSubmit" placeholder="请输入是否会归还" v-decorator="['returnFlag', validatorRules.returnFlag]" ></a-input>
|
</a-form-item>
|
</a-col>
|
<a-col :span="24 / 2">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="归还日期">
|
<a-date-picker
|
:disabled="disableSubmit"
|
style="width: 100%"
|
v-decorator="['returnTime', validatorRules.returnTime]"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24">
|
<a-form-item label="归还说明" :labelCol="{span:3}" :wrapperCol="{span:21}">
|
<a-textarea :disabled="disableSubmit" placeholder="请输入归还说明" v-decorator="['returnComment', validatorRules.returnComment]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24 / 2">
|
<a-form-item label="归还确认人" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<j-search-select-tag
|
:disabled="disableSubmit"
|
placeholder="请选择归还确认人"
|
v-decorator="['returnConfirmer', { rules: [{ required: false, message: '请选择归还确认人' }] }]"
|
dict="sys_user,realname,id,del_flag=0"
|
/>
|
</a-form-item>
|
</a-col>
|
<a-col :span="24 / 2">
|
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="归还确认日期">
|
<a-date-picker
|
:disabled="disableSubmit"
|
style="width: 100%"
|
v-decorator="['returnConfirmTime', validatorRules.returnConfirmTime]"
|
/>
|
</a-form-item>
|
</a-col>
|
</a-row>
|
<a-row style="width: 100%">
|
<a-col :span="24">
|
<a-form-item label="归还确认意见" :labelCol="{span:3}" :wrapperCol="{span:21}">
|
<a-textarea :disabled="disableSubmit" placeholder="请输入归还确认意见" v-decorator="['returnConfirmComment', validatorRules.returnConfirmComment]" />
|
</a-form-item>
|
</a-col>
|
</a-row>
|
</a-form>
|
</a-spin>
|
<a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()"
|
>选择刀具</a-button
|
>
|
<a-table
|
ref="table"
|
bordered
|
size="middle"
|
rowKey="id"
|
:columns="columns"
|
:dataSource="dataSource"
|
:pagination="ipagination"
|
:loading="loading"
|
>
|
<template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index">
|
<div :key="col.dataIndex">
|
<a-input-number
|
v-if="col.dataIndex == 'receiveNumber'"
|
:value="text"
|
@change="(e) => handleChange(e, record.key, col, index)"
|
:min="1"
|
/>
|
</div>
|
</template>
|
<span slot="action" slot-scope="text, record, index">
|
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record, index)">
|
<a>删除</a>
|
</a-popconfirm>
|
</span>
|
</a-table>
|
<template slot="footer" v-if="disableSubmit == false">
|
<a-button :style="{ marginRight: '8px' }" @click="handleCancel">关闭</a-button>
|
<a-button @click="handleOk" type="primary">提交</a-button>
|
</template>
|
|
<template slot="footer" v-if="disableSubmit == true">
|
<a-button :style="{ marginRight: '8px' }" @click="handleCancel">关闭</a-button>
|
</template>
|
<j-select-tooling-modal ref="toolingModalForm" @ok="modalFormOk"></j-select-tooling-modal>
|
</a-modal>
|
</template>
|
|
<script>
|
|
import pick from 'lodash.pick'
|
import JSelectToolingModal from './JSelectToolingModal'
|
import moment from 'moment'
|
import { getAction, postAction, requestPut } from '@/api/manage'
|
import JDictSelectTag from '@/components/dict/JDictSelectTag'
|
import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
|
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
|
import { filterObj } from '@/utils/util'
|
import store from '@/store/'
|
export default {
|
name: 'CuttingInboundModal',
|
components: {
|
JSelectToolingModal,
|
JMultiSelectTag,
|
JDictSelectTag,
|
store,
|
moment,
|
},
|
data () {
|
return {
|
/* 分页参数 */
|
ipagination: {
|
current: 1,
|
pageSize: 10,
|
pageSizeOptions: ['10', '20', '30'],
|
showTotal: (total, range) => {
|
return range[0] + '-' + range[1] + ' 共' + total + '条'
|
},
|
showQuickJumper: true,
|
showSizeChanger: true,
|
total: 0,
|
},
|
title:'新增',
|
visible: false,
|
selectedRowKeys: {},
|
model: {},
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 6 },
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 18 },
|
},
|
confirmLoading: false,
|
loading: false,
|
form: this.$form.createForm(this),
|
dataSource: [],
|
param: {},
|
validatorRules: {
|
},
|
columns: [
|
{
|
title: '#',
|
dataIndex: '',
|
key: 'rowIndex',
|
width: 50,
|
align: 'center',
|
customRender: function (t, r, index) {
|
return parseInt(index) + 1
|
},
|
},
|
{
|
title: '刀具编码',
|
align: 'center',
|
dataIndex: 'cuttingCode',
|
width: 150,
|
},
|
{
|
title: '刀具名称',
|
align: 'center',
|
dataIndex: 'cuttingName',
|
},
|
{
|
title: '操作',
|
dataIndex: 'action',
|
align: 'center',
|
scopedSlots: { customRender: 'action' },
|
},
|
],
|
url: {
|
add: '/cms/cuttingReceive/add',
|
detailList: '/cms/cuttingInbound/detailList',
|
},
|
orderId:'',
|
disableSubmit:false
|
}
|
},
|
methods: {
|
modalFormOk(){
|
|
},
|
getQueryParams() {
|
this.param.pageNo = this.ipagination.current
|
this.param.pageSize = this.ipagination.pageSize
|
return filterObj(this.param)
|
},
|
add() {
|
let receiver = store.getters.userInfo.id
|
let receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
this.edit({ receiver: receiver, receiveTime: receiveTime })
|
},
|
edit(record) {
|
record.receiver = store.getters.userInfo.id
|
record.receiveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
this.form.resetFields()
|
this.model = Object.assign({}, record)
|
this.visible = true
|
this.disableSubmit = false
|
if (record.id) {
|
this.orderId = record.id
|
this.detailList(this.orderId)
|
}
|
this.$nextTick(() => {
|
this.form.setFieldsValue(
|
pick(this.model, 'receiver', 'receiveTime', 'receiveComment', 'confirmer', 'confirmTime', 'confirmComment')
|
)
|
})
|
},
|
handleDelete(record, index) {
|
this.dataSource.splice(index, 1)
|
},
|
handleChange(value, key, column, index) {
|
//let t = (this.ipaginationm.current - 1) * this.ipaginationm.pageSize + index
|
const temp = [...this.dataSource]
|
const target = temp.filter((item) => key === item.key)[index]
|
if (target) {
|
target[column.dataIndex] = value
|
this.dataSource = temp
|
}
|
},
|
selectTooling: function () {
|
let ids = []
|
for (let i = 0; i < this.dataSource.length; i++) {
|
ids.push(this.dataSource[i].cuttingId)
|
}
|
this.$refs.toolingModalForm.showModal(ids)
|
this.$refs.toolingModalForm.title = '选择刀具'
|
this.$refs.toolingModalForm.disableSubmit = false
|
},
|
detailList(orderId) {
|
this.param.orderId = orderId
|
getAction(this.url.detailList, this.getQueryParams()).then((res) => {
|
if (res.success) {
|
this.dataSource = res.result
|
}
|
})
|
},
|
filterOption(input, option) {
|
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
},
|
handleOk() {
|
if (this.dataSource.length == 0) {
|
this.$message.error('请先选择入库刀具')
|
return
|
}
|
const that = this
|
// 触发表单验证
|
this.form.validateFields((err, values) => {
|
if (!err) {
|
that.confirmLoading = true
|
let formData = Object.assign(this.model, values)
|
formData.detailData = this.dataSource
|
postAction(that.url.add, formData)
|
.then((res) => {
|
if (res.success) {
|
that.$message.success('领用成功')
|
that.$emit('ok', new Date())
|
} else {
|
that.$message.warning(res.message)
|
}
|
})
|
.finally(() => {
|
that.confirmLoading = false
|
that.close()
|
})
|
}
|
})
|
},
|
handleCancel() {
|
this.close()
|
},
|
close() {
|
this.$emit('close')
|
this.dataSource = []
|
this.visible = false
|
this.disableSubmit = false
|
},
|
},
|
mounted() {
|
this.$bus.$on('selectionRows', (data) => {
|
//getCurrSelected 事件 接收组件传递的参数
|
for (let i = 0; i < data.length; i++) {
|
this.dataSource.push({
|
cuttingId: data[i].id,
|
cuttingCode: data[i].cuttingCode,
|
cuttingName: data[i].cuttingName
|
})
|
}
|
})
|
},
|
}
|
</script>
|