美的项目前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

191 lines
5.6 KiB

<template>
<a-spin :spinning="confirmLoading">
<div v-show="modalVisible">
<div class="table-operator">
<w-button
@click="submitForm"
:disabled="head && head.id && head.status !== '000' && head.status !== '090'"
v-has="'MergerReqs:save'"
type="primary"
>
保存
</w-button>
<w-button
@click="handleTransfer"
v-has="'MergerReqs:transfer'"
:disabled="btnDisabled"
type="primary"
>
转派
</w-button>
<w-button
@click="handleGrouping"
v-has="'MergerReqs:group'"
:disabled="btnDisabled"
type="primary"
>
提交归类
</w-button>
<w-button
@click="splitHandle"
v-has="'MergerReqs:split'"
:disabled="btnDisabled"
type="primary"
>
拆单
</w-button>
<w-button @click="close()" type="primary"> 关闭 </w-button>
</div>
<a-collapse v-model="activeKey">
<a-collapse-panel key="1" header="表头信息">
<MergerReqsModalForm ref="realForm" :disabled="disableSubmit" @close="close" @getHeadId="getHeadId" />
</a-collapse-panel>
<a-collapse-panel key="2" header="表体信息">
<MergerReqsModalBody
ref="MergerReqsModalBody"
:head="head"
@openBodyForm="openBodyForm"
@openBodyData="openBodyData"
@modalFormClose="modalFormClose"
/>
</a-collapse-panel>
</a-collapse>
</div>
<MergerReqsModalBodyForm ref="MergerReqsModalBodyForm" :head="head" @close="closeBodyForm" />
<MergerReqsModalBodyData ref="MergerReqsModalBodyData" :head="head" @close="closeBodyForm" />
<MergerReqsModalTransfer ref="MergerReqsModalTransfer" @close="modalFormClose" />
</a-spin>
</template>
<script>
import MergerReqsModalBody from './MergerReqsModalBody.vue';
import MergerReqsModalBodyData from './MergerReqsModalBodyData.vue';
import MergerReqsModalBodyForm from './MergerReqsModalBodyForm.vue';
import MergerReqsModalForm from './MergerReqsModalForm.vue';
import MergerReqsModalTransfer from './MergerReqsModalTransfer.vue';
import { getAction } from '@/api/manage';
export default {
name: 'MergerReqsModal',
components: {
MergerReqsModalForm,
MergerReqsModalBody,
MergerReqsModalBodyForm,
MergerReqsModalBodyData,
MergerReqsModalTransfer,
},
data() {
return {
title: '',
width: 800,
modalVisible: false,
activeKey: ['1', '2'],
disableSubmit: false,
confirmLoading: false,
head: {},
};
},
computed: {
btnDisabled() {
// 需求单状态不满足暂存/归类驳回.按钮禁用
return !(this.head.status === '000' || this.head.status === '090');
},
},
methods: {
splitHandle() {
this.$refs.MergerReqsModalBody.splitHandle();
},
add() {
this.modalVisible = true;
this.head = {};
this.$nextTick(() => {
this.$refs.realForm.add();
this.$refs.MergerReqsModalBody.add();
});
},
edit(record) {
this.modalVisible = true;
this.head = record;
this.disableSubmit = record.id && record.status !== '000' && record.status !== '090';
this.$nextTick(() => {
this.$refs.realForm.edit(record);
this.$refs.MergerReqsModalBody.edit(record);
});
},
submitForm() {
this.$refs.realForm.submitForm();
},
close() {
this.modalVisible = false;
this.$refs.MergerReqsModalBody.dataSource = [];
this.$emit('close');
},
/* 打开表体的表单 */
openBodyForm(mode, record) {
this.modalVisible = false;
if (mode === 'add') {
this.$refs.MergerReqsModalBodyForm.add();
} else {
this.$refs.MergerReqsModalBodyForm.edit(record);
}
},
/* 关闭表体的表单、及关闭数据拆分合并的页面 */
closeBodyForm() {
this.modalVisible = true;
this.$refs.MergerReqsModalBody.searchQuery();
},
/* 打开数据拆分合并的页面 */
openBodyData(mode, record) {
this.modalVisible = false;
if (mode === 'split') {
this.$refs.MergerReqsModalBodyData.split(record);
} else {
this.$refs.MergerReqsModalBodyData.merge(record);
}
},
/* 表头新增时 表体会收不到head参数 */
getHeadId() {
this.head = this.$refs.realForm.model;
},
/* 转派 */
handleTransfer() {
this.$nextTick(() => {
this.$refs.MergerReqsModalTransfer.start(this.head.id);
});
},
modalFormClose() {
getAction('/merger/mergerReqsHead/queryById', { id: this.head.id })
.then((res) => {
if (res.success) {
this.$set(this, 'head', res.result);
this.$refs.realForm.edit(res.result);
} else {
this.$message.warning(res.message);
}
})
.finally(() => {
this.confirmLoading = false;
});
},
/* 提交归类 */
handleGrouping() {
const that = this;
that.$confirm({
content: '确认是否提交归类?',
onOk: function () {
that.confirmLoading = true;
getAction('/merger/mergerReqsHead/submitMerge', { ids: that.head.id }).then((res) => {
if (res.success) {
that.$message.success(res.message);
that.modalFormClose();
} else {
that.$message.warning(res.message);
that.confirmLoading = false;
}
});
},
});
},
},
};
</script>