<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/index.js';
|
|
const [, , fields] = useMetaData(
|
'sys_interface',
|
async ({fieldsTools}) => {
|
await fieldsTools.selectEntitySet('source_name', 'sys_interface_source', 'name', 'code')
|
}
|
);
|
|
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();
|
data.source_code = data.source_name;
|
const {id, monitor_id} = formFieldsRef.value.getDefaultModel();
|
|
await entityStore.saveEntity({
|
dataName: 'sys_interface',
|
data: {
|
'sys_interface': {
|
...(id ? {id} : {}),
|
monitor_id,
|
...data
|
}
|
}
|
});
|
props.subReload(Boolean(!id));
|
},
|
subReset: async () => {
|
formFieldsRef.value.onReset();
|
}
|
};
|
const onOpen = async (row) => {
|
row.source_name = row.source_code;
|
|
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>
|