<template>
|
<app-tab-wrapper v-bind="tabWrapperProps">
|
<template #[tab.name]="scope" v-for="tab in tabWrapperProps.tabList" :key="tab.name">
|
<settle-table v-bind="settleTableProps" :options="tab"/>
|
</template>
|
</app-tab-wrapper>
|
<agree-dialog v-bind="agreeDialogProps"/>
|
<reject-dialog v-bind="rejectDialogProps"/>
|
</template>
|
|
|
<script setup>
|
|
import RejectDialog from './RejectDialog';
|
import AgreeDialog from './AgreeDialog';
|
import SettleTable from './SettleTable';
|
|
const rejectDialogRef = ref();
|
const agreeDialogRef = ref();
|
const settleTableRef = ref();
|
|
const tabWrapperRef = ref();
|
|
const props = defineProps({
|
subActive: {
|
type: Function,
|
default: () => {
|
}
|
}
|
});
|
|
|
const tabWrapperProps = {
|
ref: tabWrapperRef,
|
tabList: [
|
{name: 'fee_book_general', label: '结算汇总', dataName: 'fee_book_general', filter: "and status = 'finance'"},
|
{
|
name: 'fee_book_twice_apply',
|
label: '二次议价申请',
|
dataName: 'fee_book_twice_apply',
|
filter: "and data_type = 'settle' and status = 'finance'"
|
},
|
{
|
name: 'fee_working_p002',
|
label: '二次议价明细',
|
dataName: 'fee_working_p002',
|
filter: ""
|
},
|
{
|
name: 'fee_book_inventory',
|
label: '库存补偿申请',
|
dataName: 'fee_book_inventory',
|
filter: "and data_type = 'settle' and status = 'finance'"
|
},
|
{
|
name: 'fee_working_p004',
|
label: '库存补偿明细',
|
dataName: 'fee_working_p003',
|
filter: ""
|
},
|
{
|
name: 'fee_book_markup_province1',
|
label: '流向补偿-按省份',
|
dataName: 'fee_book_markup_province',
|
filter: "and type = 'province_offline' and data_type = 'settle' and status = 'finance'"
|
},
|
{
|
name: 'fee_working_p006',
|
label: '流向补偿-按省份明细',
|
dataName: 'fee_working_p005',
|
filter: ""
|
},
|
{
|
name: 'fee_book_markup_province2',
|
label: '流向补偿-按终端',
|
dataName: 'fee_book_markup_province',
|
filter: "and type = 'customer' and data_type = 'settle' and status = 'finance'"
|
},
|
{
|
name: 'fee_working_p008',
|
label: '流向补偿-按终端明细',
|
dataName: 'fee_working_p007',
|
filter: ""
|
}
|
],
|
subActive(active) {
|
props.subActive({active, selection: []});
|
}
|
};
|
|
const settleTableProps = {
|
ref: settleTableRef,
|
subSelection(selection) {
|
props.subActive({selection})
|
}
|
}
|
|
const agreeDialogProps = {
|
ref: agreeDialogRef,
|
subReload() {
|
settleTableRef.value.onReload();
|
props.subActive({selection: []});
|
settleTableRef.value.setSelected([]);
|
}
|
}
|
|
const rejectDialogProps = {
|
ref: rejectDialogRef,
|
subReload() {
|
settleTableRef.value.onReload();
|
props.subActive({selection: []});
|
settleTableRef.value.setSelected([]);
|
}
|
}
|
|
const onAgree = async (selection) => {
|
agreeDialogRef.value.onOpen(selection);
|
}
|
|
const onReject = async (selection) => {
|
rejectDialogRef.value.onOpen(selection);
|
}
|
|
defineExpose({
|
/**
|
* 初始化
|
*/
|
onAgree,
|
onReject
|
});
|
|
</script>
|