Commit 7086d3ff authored by 罗林杰's avatar 罗林杰

修改全局配置和参数配置

parent f15c3347
......@@ -241,10 +241,10 @@ export const DataTransformationRuleFormSchema: FormSchema[] = [
component: 'Select',
componentProps: {
options: [
{label: 'table_1', value: 'table_1'},
{label: 'table_2', value: 'table_2'},
{label: 'table_3', value: 'table_3'},
{label: 'table_4', value: 'table_4'},
{ label: 'table_1', value: 'table_1' },
{ label: 'table_2', value: 'table_2' },
{ label: 'table_3', value: 'table_3' },
{ label: 'table_4', value: 'table_4' },
],
},
required: true,
......@@ -420,10 +420,10 @@ export const SingleTableFieldMappingRuleFormSchema: FormSchema[] = [
component: 'Select',
componentProps: {
options: [
{label: 'table_1', value: 'table_1'},
{label: 'table_2', value: 'table_2'},
{label: 'table_3', value: 'table_3'},
{label: 'table_4', value: 'table_4'},
{ label: 'table_1', value: 'table_1' },
{ label: 'table_2', value: 'table_2' },
{ label: 'table_3', value: 'table_3' },
{ label: 'table_4', value: 'table_4' },
],
},
required: true,
......@@ -434,3 +434,186 @@ export const SingleTableFieldMappingRuleFormSchema: FormSchema[] = [
slot: 'mappingTable',
},
];
export const recommendColumns: BasicColumn[] = [
{
title: '参数名',
dataIndex: 'name',
editable: true,
edit: true,
width: 120,
},
{
title: '表达式',
dataIndex: 'expression',
editable: true,
edit: true,
width: 120,
},
{
title: '参数类型',
dataIndex: 'type',
editable: true,
edit: true,
editComponent: 'Select',
editComponentProps: {
options: [
{ label: '写入端引擎参数', value: '1' },
{ label: '服务参数', value: '2' },
{ label: '普通参数', value: '3' },
],
},
width: 120,
},
];
export const globalOptionsSchema: FormSchema[] = [
{
field: 'name',
label: '名称',
component: 'Input',
componentProps: {
readonly: true,
style: {
border: 'none',
backgroundColor: 'transparent',
},
},
defaultValue: 'TDT1',
colProps: { lg: 24, md: 24 },
},
{
field: 'remark',
label: '描述',
component: 'InputTextArea',
colProps: { lg: 24, md: 24 },
},
{
field: 'period',
label: '调度周期',
component: 'Select',
componentProps: {
options: [
{ label: 'Cron表达式', value: '1' },
{ label: '每天一次', value: '2' },
{ label: '无周期', value: '3' },
],
},
colProps: { lg: 24, md: 24 },
},
{
field: 'cron',
label: 'Cron表达式',
component: 'Input',
colProps: { lg: 24, md: 24 },
ifShow: ({ model }) => model.period === '1',
},
{
field: 'periodTime',
label: '调度时间',
component: 'TimePicker',
colProps: { lg: 24, md: 24 },
ifShow: ({ model }) => model.period === '2',
},
{
field: 'timeoutType',
component: 'Checkbox',
label: '超时取消',
componentProps: ({ formModel, formActionType }) => ({
onChange: () => {
const flag = formModel.timeoutType;
formActionType.updateSchema([{ field: 'minute', ifShow: flag }]);
},
}),
renderComponentContent: '开启',
colProps: { lg: 12, md: 12 },
},
{
field: 'minute',
label: '分钟',
component: 'InputNumber',
componentProps: {
min: 0,
max: 1000,
},
ifShow: false,
labelWidth: 40,
colProps: { lg: 12, md: 12 },
},
{
field: 'DDLOption',
component: 'Checkbox',
label: 'DDL变化策略配置',
componentProps: ({ formModel, formActionType }) => ({
onChange: () => {
const flag = formModel.DDLOption;
formActionType.updateSchema([{ field: 'isDeleteTable', ifShow: flag }]);
formActionType.updateSchema([{ field: 'isDeleteTableField', ifShow: flag }]);
formActionType.updateSchema([{ field: 'addTableField', ifShow: flag }]);
formActionType.updateSchema([{ field: 'changeTableField', ifShow: flag }]);
formActionType.updateSchema([{ field: 'globalOptionsAlert', ifShow: flag }]);
},
}),
renderComponentContent: '开启',
colProps: { lg: 24, md: 24 },
},
{
field: 'globalOptionsAlert',
slot: 'globalOptionsAlert',
ifShow: false,
colProps: { lg: 24, md: 24 },
},
{
field: 'isDeleteTable',
label: '源端数据表被删除',
component: 'RadioGroup',
defaultValue: '1',
ifShow: false,
componentProps: {
options: [{ label: '取消运行子任务', value: '1' }],
},
colProps: { lg: 24, md: 24 },
},
{
field: 'isDeleteTableField',
label: '源端数据表字段被删除',
component: 'RadioGroup',
defaultValue: '1',
ifShow: false,
componentProps: {
options: [
{ label: '取消运行子任务', value: '1' },
{ label: '取消运行子任务并不能影响任务结果', value: '2' },
{ label: '空值填充', value: '3' },
],
},
colProps: { lg: 24, md: 24 },
},
{
field: 'addTableField',
label: '源端数据表新增字段',
component: 'RadioGroup',
defaultValue: '1',
ifShow: false,
componentProps: {
options: [
{ label: '取消运行子任务', value: '1' },
{ label: '取消运行子任务并不能影响任务结果', value: '2' },
{ label: '忽略新增字段', value: '3' },
{ label: '自动更新', value: '4' },
],
},
colProps: { lg: 24, md: 24 },
},
{
field: 'changeTableField',
label: '源端数据表字段或类型变更',
component: 'RadioGroup',
defaultValue: '1',
ifShow: false,
componentProps: {
options: [{ label: '取消运行子任务', value: '1' }],
},
colProps: { lg: 24, md: 24 },
},
];
<template>
<BasicModal
width="40%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="addProperty()">添加参数</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
color: 'error',
icon: 'ant-design:delete-outlined',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
},
},
]"
/>
</template>
</template>
</BasicTable>
</BasicModal>
</template>
<script lang="ts" setup>
import { onMounted, ref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import { BasicTable, TableAction, useTable } from '@/components/Table';
import { recommendColumns } from './dataEntry.data';
defineOptions({ name: 'KnowledgeModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const title = ref();
const n = ref(1000);
const tableData = ref([]);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerTable, { reload }] = useTable({
api: async () => {
const response = {
pageNum: '1',
pageSize: '10',
pages: '1',
total: tableData.value.length,
code: '',
message: '',
data: [],
};
let data = [];
data = tableData.value;
return { ...response, data: data };
},
pagination: false,
columns: recommendColumns,
useSearchForm: false,
actionColumn: {
width: 50,
title: '操作',
dataIndex: 'action',
},
scroll: {
y: 300,
},
editRow: true,
showTableSetting: false,
bordered: true,
showIndexColumn: false,
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
tableData.value = [];
await reload();
setModalProps({ confirmLoading: false });
title.value = data.title;
});
async function handleSubmit() {
closeModal();
createMessage.success('提交成功');
}
/**新增属性*/
function addProperty() {
const data = {
businessId: n.value + 1,
name: '',
expression: '',
type: '',
};
tableData.value.push(data);
n.value++;
reload();
}
/** 删除按钮*/
function handleDelete(record: Recordable) {
tableData.value.splice(
tableData.value.findIndex((item) => item.businessId === record.businessId),
1,
);
createMessage.success('删除成功!');
reload();
}
onMounted(() => {});
</script>
......@@ -189,6 +189,8 @@
<GetMetadataModal @register="registerGetMetadataModal" />
<DeplysModal @register="registerDeplysModal" />
<AddDataConversionRuleModal @register="registerAddRuleModal" />
<DataOptionsModal @register="registerDataOptionsModal" />
<GlobalOptionsModal @register="registerGlobalOptionsModal" />
</PageWrapper>
</template>
<script lang="ts" setup>
......@@ -220,6 +222,8 @@
import DeplysModal from '@/views/dataIntegration/dataLoading/dataEntryLake/DeplysModal.vue';
import CodeEditor from '@/components/CodeEditor/src/CodeEditor.vue';
import AddDataConversionRuleModal from '@/views/dataIntegration/dataLoading/dataEntryLake/addDataConversionRuleModal.vue';
import DataOptionsModal from '@/views/dataIntegration/dataLoading/dataEntryLake/dataOptionsModal.vue';
import GlobalOptionsModal from '@/views/dataIntegration/dataLoading/dataEntryLake/globalOptionsModal.vue';
const route = useRoute();
const emit = defineEmits(['success', 'register']);
......@@ -500,6 +504,8 @@
const [registerGetMetadataModal, { openModal: openGetMetadataModal }] = useModal();
const [registerDeplysModal, { openModal: openDeplysModal }] = useModal();
const [registerAddRuleModal, { openModal: openAddRuleModal }] = useModal();
const [registerDataOptionsModal, { openModal: openDataOptionsModal }] = useModal();
const [registerGlobalOptionsModal, { openModal: openGlobalOptionsModal }] = useModal();
const [
registerSourceSideConfigurationForm,
......@@ -745,6 +751,16 @@
function handleAddRule() {
openAddRuleModal();
}
function handleParameterConfiguration() {
openDataOptionsModal(true, {
title: '数据加载参数配置',
});
}
function handleGobalDeply() {
openGlobalOptionsModal(true, {
title: '数据加载全局配置',
});
}
function handleConversion(record) {
createMessage.success('数据转换成功' + record.fieldType);
......
<template>
<BasicModal
width="30%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<BasicForm @register="registerForm">
<template #globalOptionsAlert>
<Alert
show-icon
style="font-size: 12px"
message="自定义SQL模式和数据出湖(tdh的数据到第三方数据库(mysql等))无法支持DDL变更处理且不会发变更通知。"
type="info"
/>
</template>
</BasicForm>
</BasicModal>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import { BasicForm, useForm } from '@/components/Form';
import { globalOptionsSchema } from '@/views/dataIntegration/dataLoading/dataEntryLake/dataEntry.data';
import {Alert} from "ant-design-vue";
defineOptions({ name: 'KnowledgeModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const title = ref();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { resetFields }] = useForm({
labelAlign: 'left',
labelWidth: 180,
baseColProps: { lg: 12, md: 24 },
schemas: globalOptionsSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
await resetFields();
setModalProps({ confirmLoading: false });
title.value = data.title;
});
async function handleSubmit() {
closeModal();
createMessage.success('提交成功');
await resetFields();
}
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment