<template>
|
<app-dialog-form
|
v-bind="dialogFormProps"
|
v-loading="appStore.getLoading('entityset')"
|
>
|
<app-form-fields v-bind="formFieldsProps">
|
</app-form-fields>
|
</app-dialog-form>
|
</template>
|
|
<script setup>
|
|
import {useI18n} from 'vue-i18n';
|
|
const {t} = useI18n();
|
|
import {meta} from "@/hooks";
|
|
const {useMetaData} = meta;
|
|
import {useEntityStore, useAppStore} from '@/store/modules';
|
|
const [, , fields] = useMetaData(
|
'fee_model_band_group',
|
async () => {
|
}
|
);
|
|
const entityStore = useEntityStore();
|
const appStore = useAppStore();
|
|
const dialogFormRef = ref();
|
const formFieldsRef = ref();
|
|
const props = defineProps({
|
subReload: {
|
type: Function,
|
default: () => {
|
}
|
},
|
});
|
|
const formFieldsProps = {
|
ref: formFieldsRef,
|
fields
|
}
|
|
const dialogFormProps = {
|
title: '',
|
ref: dialogFormRef,
|
subSubmit: async () => {
|
const data = await formFieldsRef.value.onValidate();
|
const {id} = formFieldsRef.value.getDefaultModel();
|
|
await entityStore.saveEntity({
|
dataName: 'fee_model_band_group',
|
data: {
|
fee_model_band_group: {
|
...(id ? {id} : {}),
|
...data,
|
}
|
}
|
});
|
props.subReload(Boolean(!id));
|
},
|
subReset: async () => {
|
formFieldsRef.value.onReset();
|
}
|
};
|
const onOpen = async (row) => {
|
dialogFormProps.title = t(row.id ? 'common.dialog.title.edit' : 'common.dialog.title.add');
|
dialogFormRef.value.$forceUpdate(dialogFormProps);
|
dialogFormRef.value.onOpen();
|
|
await nextTick();
|
formFieldsProps.fields = fields;
|
formFieldsRef.value.$forceUpdate(formFieldsProps);
|
formFieldsRef.value.setDefaultModel(row);
|
}
|
|
defineExpose({
|
onOpen,
|
});
|
|
</script>
|