<template>
|
<app-page-form v-bind="pageFormProps" v-loading="appStore.getLoading('getEntity')">
|
<base-info v-bind="baseInfoProps"/>
|
<workbook-table v-bind="workbookTableProps"/>
|
<joint-table v-bind="jointTableProps"/>
|
<filter-table v-bind="filterTableProps"/>
|
</app-page-form>
|
</template>
|
|
<script setup>
|
|
import BaseInfo from './BaseInfo';
|
import WorkbookTable from './WorkbookTable';
|
import FilterTable from './FilterTable';
|
import JointTable from './JointTable';
|
import {closeTab} from '@/utils/iframe.js';
|
import {useAppStore, useEntityStore} from "@/store/modules";
|
import {convertFilter} from "@/utils/filter.js";
|
|
const entityStore = useEntityStore();
|
const appStore = useAppStore();
|
|
const router = useRouter();
|
|
const baseInfoRef = ref();
|
|
const baseInfoProps = {
|
ref: baseInfoRef,
|
}
|
|
const params = router.currentRoute.value.query;
|
|
const onReset = async () => {
|
if (params.id) {
|
const [plan, join] = await Promise.all([
|
entityStore.getEntity({
|
dataName: "pkg_plan",
|
filter: convertFilter({
|
andEqParams: {
|
id: params.id
|
}
|
})
|
}),
|
entityStore.getEntity({
|
dataName: "pkg_plan_joins",
|
filter: convertFilter({
|
andEqParams: {
|
id: params.id
|
}
|
})
|
}),
|
]);
|
const {fee_model_plan, fee_model_workbook} = plan.data;
|
const {fee_model_filter, fee_model_joint} = join.data;
|
|
await nextTick();
|
baseInfoRef.value.onSetData(fee_model_plan);
|
workbookTableRef.value.onSetData(fee_model_workbook);
|
filterTableRef.value.onSetData(fee_model_filter);
|
jointTableRef.value.onSetData(fee_model_joint);
|
return;
|
}
|
baseInfoRef.value.onSetData({});
|
workbookTableRef.value.onSetData([]);
|
filterTableRef.value.onSetData([]);
|
jointTableRef.value.onSetData([]);
|
|
}
|
|
onMounted(async () => {
|
await onReset();
|
});
|
|
const workbookTableRef = ref();
|
|
const workbookTableProps = {
|
ref: workbookTableRef,
|
}
|
|
const jointTableRef = ref();
|
|
const jointTableProps = {
|
ref: jointTableRef,
|
subOpenDialog(row) {
|
row.bookList = workbookTableRef.value.onGetData();
|
}
|
};
|
|
|
const filterTableRef = ref();
|
|
const filterTableProps = {
|
ref: filterTableRef,
|
subOpenDialog(row) {
|
row.bookList = workbookTableRef.value.onGetData();
|
}
|
}
|
|
const pageFormProps = {
|
subClose() {
|
closeTab();
|
},
|
async subSubmit() {
|
const fee_model_plan = await baseInfoRef.value.onGetData();
|
const fee_model_workbook = await workbookTableRef.value.onGetData();
|
const fee_model_filter = await filterTableRef.value.onGetData();
|
const fee_model_joint = await jointTableRef.value.onGetData();
|
const {data} = await entityStore.saveEntity({
|
dataName: 'pkg_plan',
|
data: {
|
fee_model_plan,
|
fee_model_workbook
|
}
|
});
|
const planKeys = Object.keys(data.fee_model_plan);
|
await entityStore.saveEntity({
|
dataName: 'pkg_plan_joins',
|
data: {
|
fee_model_plan: Object.fromEntries(planKeys.map(key => [key, data.fee_model_plan[key] || ''])),
|
fee_model_filter,
|
fee_model_joint
|
}
|
});
|
closeTab();
|
},
|
async subReset() {
|
await onReset();
|
},
|
}
|
|
</script>
|