<template>
|
<app-dialog-form
|
v-bind="dialogFormProps"
|
v-loading="appStore.getLoading('entityset')"
|
>
|
<app-form-fields v-bind="formFieldsProps"/>
|
<app-collapse-form title="排序片段">
|
<app-monaco-sql v-bind="monacoSqlProps"/>
|
</app-collapse-form>
|
</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';
|
|
import * as tools from '@/utils/tools.js';
|
|
const entityStore = useEntityStore();
|
const appStore = useAppStore();
|
|
const dialogFormRef = ref();
|
const formFieldsRef = ref();
|
|
const props = defineProps({
|
subSubmit: {
|
type: Function,
|
default: () => {
|
}
|
},
|
});
|
|
const [columns, filters, fields] = useMetaData('fee_model_workbook');
|
|
const monacoSqlRef = ref();
|
|
const monacoSqlProps = {
|
ref: monacoSqlRef,
|
}
|
|
let rowEdit;
|
|
|
const formFieldsProps = {
|
ref: formFieldsRef,
|
fields
|
}
|
|
const dialogFormProps = {
|
title: '',
|
ref: dialogFormRef,
|
subSubmit: async () => {
|
const data = await formFieldsRef.value.onValidate();
|
const {id} = await formFieldsRef.value.getDefaultModel();
|
|
data.id = id || tools.uuid();
|
data.orderby_segment = monacoSqlRef.value.getValue();
|
props.subSubmit(data);
|
},
|
subReset: async () => {
|
formFieldsRef.value.onReset();
|
monacoSqlRef.value.init({sql: rowEdit.orderby_segment || ''});
|
}
|
};
|
const onOpen = async (row) => {
|
rowEdit = row;
|
dialogFormProps.title = t(row.id ? 'common.dialog.title.edit' : 'common.dialog.title.add');
|
dialogFormRef.value.$forceUpdate(dialogFormProps)
|
dialogFormRef.value.onOpen();
|
|
await nextTick();
|
formFieldsRef.value.setDefaultModel(row);
|
monacoSqlRef.value.init({sql: row.orderby_segment || ''});
|
}
|
|
defineExpose({
|
onOpen,
|
});
|
|
</script>
|