Commit ea8681e5 authored by LiXuyang's avatar LiXuyang

文件加载-改

parent cf586fd1
import {FormSchema} from "@/components/Form";
import {BasicColumn} from "@/components/Table";
import {InputProps} from "ant-design-vue";
import { FormSchema } from '@/components/Form';
import { BasicColumn } from '@/components/Table';
import { InputProps } from 'ant-design-vue';
export const fileUploadSchema: FormSchema[] = [
{
......@@ -294,7 +294,19 @@ export const dataSourceFieldFormSchema: FormSchema[] = [
show: ({ model }) => {
return model.createTable === '是';
},
component: 'Input',
component: 'Select',
componentProps: {
options: [
{
label: 'Table1',
value: 'Table1',
},
{
label: 'Table2',
value: 'Table2',
},
],
},
},
];
export const dataSourceTableColumn: BasicColumn[] = [
......@@ -344,7 +356,23 @@ export const dataSourceSqlFormSchema: FormSchema[] = [
{
label: '表类型',
field: 'type',
component: 'Input',
component: 'Select',
componentProps: {
options: [
{
label: 'TEXT',
value: 'TEXT',
},
{
label: 'ORC',
value: 'ORC',
},
{
label: 'TORC',
value: 'TORC',
},
],
},
},
{
field: '',
......@@ -398,11 +426,17 @@ export const dataSourceSqlFormSchema: FormSchema[] = [
field: '',
slot: 'title3',
},
{
field: 'otherConfigType',
component: 'Select',
defaultValue: '表注释',
show: false,
},
{
field: 'otherConfig',
slot: 'otherConfig',
},
]
];
export const showLogFormSchema: FormSchema[] = [
{
field: 'tableName',
......
<template>
<PageWrapper :title="modelName" contentBackground headerSticky>
<PageWrapper class="content-padding" :title="modelName" contentBackground headerSticky @back="goBack">
<template #extra>
<a-button type="primary">跳转运维</a-button>
<a-button :disabled="isDebug" type="primary" @click="handleSave">保存</a-button>
<a-button v-if="!isDebug" type="primary" @click="handleDebug">调试</a-button>
<a-button v-else type="primary" @click="handleExitDebug">退出调试</a-button>
<a-button :disabled="isDebug || !isUpload" type="primary">运行</a-button>
<a-button :disabled="!isSave || isDebug" type="primary" @click="handlePublish">发布</a-button>
<a-button type="primary" @click="handleGobalDeply">全局配置</a-button>
<a-button type="primary" @click="handleParameterConfiguration">参数配置</a-button>
<a-button type="primary">版本管理</a-button>
<!-- <a-button type="primary" @click="handleVersionManagement">版本管理</a-button>-->
</template>
<template #footer>
<Tabs v-model:activeKey="activeKey">
<TabPane key="1" tab="源端配置">
......@@ -363,6 +375,10 @@
<ClearConfigurationModal @register="registerClearConfigurationModal" />
<BatchScaleNameMappingModal @register="registerBatchScaleNameMappingModal" />
<AddDataConversionRuleModal @register="registerAddRuleModal" />
<SaveModal @register="registerSaveModal" @success="handleSaveSuccess" />
<GlobalOptionsModal @register="registerGlobalOptionsModal" />
<DataOptionsModal @register="registerDataOptionsModal" />
<VersionManageModal @register="registerVersionManageModal" />
</PageWrapper>
</template>
......@@ -439,7 +455,99 @@
import ClearConfigurationModal from '@/views/dataIntegration/dataLoading/dataEntryLake/ClearConfigurationModal.vue';
import BatchScaleNameMappingModal from '@/views/dataIntegration/dataLoading/dataEntryLake/BatchScaleNameMappingModal.vue';
import AddDataConversionRuleModal from '@/views/dataIntegration/dataLoading/fileLoading/addDataConversionRuleModal.vue';
import { router } from '@/router';
import SaveModal from '@/views/dataIntegration/dataLoading/dataEntryLake/saveModal.vue';
import GlobalOptionsModal from '@/views/dataIntegration/dataLoading/dataEntryLake/globalOptionsModal.vue';
import DataOptionsModal from '@/views/dataIntegration/dataLoading/dataEntryLake/dataOptionsModal.vue';
import VersionManageModal from '@/views/dataIntegration/dataLoading/dataEntryLake/versionManageModal.vue';
const [registerSaveModal, { openModal: openSaveModal }] = useModal();
const [registerGlobalOptionsModal, { openModal: openGlobalOptionsModal }] = useModal();
const [registerDataOptionsModal, { openModal: openDataOptionsModal }] = useModal();
const [registerVersionManageModal, { openModal: openVersionManageModal }] = useModal();
const isSave = ref(false);
async function handleSave() {
createMessage.success('保存成功');
isSave.value = true;
}
function goBack() {
router.back();
}
const isDebug = ref(false);
function handleDebug() {
isDebug.value = true;
activeKey.value = '4';
tabularPresentationTable.value = [
{
businessId: '1',
ownershipTableId: '1',
sourceTable: 'table_1',
targetTable: 'test_table_1_obs',
tableType: 'ORC',
areaType: '无',
partitionKey: '-',
debuggingResult: '成功',
},
{
businessId: '1',
ownershipTableId: '1',
sourceTable: 'auto_catalog_hdfs_file_1.txt',
targetTable: 'yesy',
tableType: 'ORC',
areaType: '无',
partitionKey: '-',
debuggingResult: '成功',
},
{
businessId: '1',
ownershipTableId: '1',
sourceTable: 'customer_details',
targetTable: 'yesy',
tableType: 'ORC',
areaType: '无',
partitionKey: '-',
debuggingResult: '成功',
},
{
businessId: '1',
ownershipTableId: '1',
sourceTable: 'order_history',
targetTable: 'yesy',
tableType: 'ORC',
areaType: '无',
partitionKey: '-',
debuggingResult: '成功',
},
];
reloadTabularPresentationTable();
}
function handleExitDebug() {
isDebug.value = false;
}
function handlePublish() {
openSaveModal(true, {
title: '发布新版本',
});
}
const isUpload = ref(false);
function handleSaveSuccess() {
isUpload.value = true
}
function handleGobalDeply() {
openGlobalOptionsModal(true, {
title: '数据加载全局配置',
});
}
function handleParameterConfiguration() {
openDataOptionsModal(true, {
title: '数据加载参数配置',
});
}
function handleVersionManagement() {
openVersionManageModal(true, {
title: '版本管理',
});
}
const key = ref('');
const activeKey = ref('1');
const modelName = ref('文件离线加载');
......
......@@ -7,59 +7,69 @@
@ok="handleSubmit"
>
<BasicForm @register="registerForm">
<template #checkFrequency="{ field,model,}">
<Input style="width: 180px;"
v-model:value="model[field]" placeholder="请输入"/>
<Select style="width: 180px;margin-left: 20px" placeholder="请选择"
v-model:value="model['checkFrequencys']" :options="timeList"/>
<template #checkFrequency="{ field, model }">
<Input style="width: 180px" v-model:value="model[field]" placeholder="请输入" />
<Select
style="width: 180px; margin-left: 20px"
placeholder="请选择"
v-model:value="model['checkFrequencys']"
:options="timeList"
/>
</template>
<template #triggerType="{ field,fields,model }">
<RadioGroup v-model:value="model[field]" :options="triggerTypeOptions"
style="margin: 5px 15px 0 0"/>
<template #triggerType="{ field, fields, model }">
<RadioGroup
v-model:value="model[field]"
:options="triggerTypeOptions"
style="margin: 5px 15px 0 0"
/>
<div v-if="model[field] === '文件到达'" style="margin: 25px 0 0 0">
<Alert
type="info"
:message="
'①任务流发布后,监听程序将按照检查频率一直监听文件系统的文件夹路径下的' +
'所有的资源的变化(新增、更新),每次变动均会触发任务流的执行\n'"
'所有的资源的变化(新增、更新),每次变动均会触发任务流的执行\n'
"
:style="{ whiteSpace: 'pre-line' }"
/>
<div style="display: flex;margin:25px 0 0 -80px;">
<div style="width: 100px;">文件系统源</div>
<Select :options="fileSystemSourceOptions"></Select>
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">文件系统源</div>
<Select :options="fileSystemSourceOptions" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">文件路径</div>
<Input.Group>
<FormItemRest>
<Input style="width: 400px"/>
<Input style="width: 400px" />
</FormItemRest>
<FormItemRest>
<a-button style="width: 85px">浏览</a-button>
</FormItemRest>
</Input.Group>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">目标对象</div>
<Input.Group>
<FormItemRest>
<Select style="width: 200px" :options="targetObject"/>
<Select style="width: 200px" :options="targetObject" />
</FormItemRest>
<FormItemRest>
<Input style="width: 285px"/>
<Input style="width: 285px" />
</FormItemRest>
</Input.Group>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">超时设置</div>
<Checkbox style="margin-left: -15px">超时失败</Checkbox>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="width: 100px">保存结果</div>
<!-- <CheckboxGroup :options="saveResult" style="width: 180px"/>-->
<RadioGroup v-model:value="model[fields]" :options="saveResult" style="width: 180px"/>
<Select style="width: 200px" :options="saveResultName"/>
<Select style="width: 200px" :options="saveResultObject"/>
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">报存结果</div>
<div>
<Checkbox v-model:checked="model[fields]" style="width: 60px">
保存
</Checkbox>
</div>
<Select v-if="model[fields]" style="width: 160px" :options="saveResultName" />
<Select v-if="model[fields]" style="width: 160px" :options="saveResultObject" />
</div>
</div>
<div v-if="model[field] === 'SQL结果检查'" style="margin: 25px 0 0 0">
......@@ -67,35 +77,43 @@
type="info"
:message="
'①任务流发布后,监听程序将按照检查频率定期执行SQL判断结果是否符合预' +
'期,若在当时时间窗口已满足,则当前窗口内将不再监听\n'"
'期,若在当时时间窗口已满足,则当前窗口内将不再监听\n'
"
:style="{ whiteSpace: 'pre-line' }"
/>
<div style="display: flex;margin:25px 0 0 -80px;">
<div style="width: 100px;">开始时间</div>
<TimePicker style="width: 100%;"/>
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">开始时间</div>
<TimePicker style="width: 100%" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">滚动时间窗口</div>
<Input style="width: 320px;"/>
<Select style="width: 180px;" :options="timeList"/>
<Input style="width: 320px" />
<Select style="width: 180px" :options="timeList" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">超时设置</div>
<Checkbox style="margin-left: -15px">超时失败</Checkbox>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">连接</div>
<Select :options="JDBCData"/>
<Select :options="JDBCData" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">SQL</div>
<Textarea rows="6" placeholder="事件满足取决于当前sql返回结果是否为空,若无返回结果则判断事件条件未达成:此处支持引用任务流参数、工作区参数、全局参数"/>
<Textarea
rows="6"
placeholder="事件满足取决于当前sql返回结果是否为空,若无返回结果则判断事件条件未达成:此处支持引用任务流参数、工作区参数、全局参数"
/>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">报存结果</div>
<RadioGroup v-model:value="model[fields]" :options="saveResult" style="width: 180px"/>
<Select style="width: 200px" :options="saveResultName"/>
<Select style="width: 200px" :options="saveResultObject"/>
<div>
<Checkbox v-model:checked="model[fields]" style="width: 60px">
保存
</Checkbox>
</div>
<Select v-if="model[fields]" style="width: 160px" :options="saveResultName" />
<Select v-if="model[fields]" style="width: 160px" :options="saveResultObject" />
</div>
</div>
<div v-if="model[field] === '脚本自定义'" style="margin: 25px 0 0 0">
......@@ -103,25 +121,26 @@
type="info"
:message="
'①任务流发布后,监听程序将按照检查频率定期执行脚本判断结果是否复合预' +
'期,若在当前时间窗口已满足,则当前窗口内将不在监听\n'"
'期,若在当前时间窗口已满足,则当前窗口内将不在监听\n'
"
:style="{ whiteSpace: 'pre-line' }"
/>
<div style="display: flex;margin:25px 0 0 -80px;">
<div style="width: 100px;">开始时间</div>
<TimePicker style="width: 100%;"/>
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">开始时间</div>
<TimePicker style="width: 100%" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">滚动时间窗口</div>
<Input style="width: 320px;"/>
<Select style="width: 180px;" :options="timeList"/>
<Input style="width: 320px" />
<Select style="width: 180px" :options="timeList" />
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">超时设置</div>
<Checkbox style="margin-left: -15px">超时失败</Checkbox>
</div>
<div style="display: flex;margin:25px 0 0 -80px">
<div style="display: flex; margin: 25px 0 0 -80px">
<div style="width: 100px">脚本内容</div>
<Textarea rows="6" placeholder="脚本运行成功,即满足,因此判断逻辑由用户确定"/>
<Textarea rows="6" placeholder="脚本运行成功,即满足,因此判断逻辑由用户确定" />
</div>
</div>
</template>
......@@ -129,127 +148,127 @@
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, unref, reactive} from 'vue';
import {BasicModal, useModalInner} from '@/components/Modal';
import {BasicForm, useForm} from "@/components/Form";
import {defineEvent} from "@/views/taskScheduling/taskFlowDesign/design.data";
import {
FormItemRest,
Input,
Select,
RadioGroup,
Alert,
Textarea,
Checkbox,
CheckboxGroup,
TimePicker
} from "ant-design-vue";
import Icon from "@/components/Icon/Icon.vue";
import { ref, unref, reactive } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { defineEvent } from '@/views/taskScheduling/taskFlowDesign/design.data';
import {
FormItemRest,
Input,
Select,
RadioGroup,
Alert,
Textarea,
Checkbox,
CheckboxGroup,
TimePicker,
} from 'ant-design-vue';
import Icon from '@/components/Icon/Icon.vue';
const getTitle = '定义事件';
const getTitle = '定义事件';
//初始化弹框
const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
setModalProps({
confirmLoading: false,
okText: '确定',
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({
confirmLoading: false,
okText: '确定',
});
await resetFields();
});
//初始化列表
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 120,
schemas: defineEvent,
showActionButtonGroup: false,
actionColOptions: {
span: 24,
},
});
await resetFields();
});
//初始化列表
const [registerForm, {setFieldsValue, updateSchema, resetFields, validate}] = useForm({
labelWidth: 120,
schemas: defineEvent,
showActionButtonGroup: false,
actionColOptions: {
span: 24,
},
});
const triggerTypeOptions = [
{
label: '文件到达',
value: '文件到达',
},
{
label: 'SQL结果检查',
value: 'SQL结果检查',
},
{
label: '脚本自定义',
value: '脚本自定义',
},
];
const fileSystemSourceOptions = [
{
label: 'HDFS',
value: 'HDFS',
},
{
label: 'FTP',
value: 'FTP',
},
{
label: 'SFTP',
value: 'SFTP',
},
];
const targetObject = [
{
label: '资源名称',
value: '资源名称',
},
{
label: '文件全称',
value: '文件全称',
},
];
const saveResult = [
{
label: '保存',
value: '保存',
},
{
label: '不保存',
value: '不保存',
},
];
const saveResultName = [
{
label: '任务流参数',
value: '任务流参数',
},
{
label: '全局参数',
value: '全局参数',
},
{
label: '工作区参数',
value: '工作区参数',
},
];
const saveResultObject = [
{
label: 'test1',
value: 'test1',
},
{
label: 'test2',
value: 'test2',
},
];
const timeList = [
{ value: '1', label: '小时'},
const triggerTypeOptions = [
{
label: '文件到达',
value: '文件到达',
},
{
label: 'SQL结果检查',
value: 'SQL结果检查',
},
{
label: '脚本自定义',
value: '脚本自定义',
},
];
const fileSystemSourceOptions = [
{
label: 'HDFS',
value: 'HDFS',
},
{
label: 'FTP',
value: 'FTP',
},
{
label: 'SFTP',
value: 'SFTP',
},
];
const targetObject = [
{
label: '资源名称',
value: '资源名称',
},
{
label: '文件全称',
value: '文件全称',
},
];
const saveResult = [
{
label: '保存',
value: '保存',
},
{
label: '不保存',
value: '不保存',
},
];
const saveResultName = [
{
label: '任务流参数',
value: '任务流参数',
},
{
label: '全局参数',
value: '全局参数',
},
{
label: '工作区参数',
value: '工作区参数',
},
];
const saveResultObject = [
{
label: 'test1',
value: 'test1',
},
{
label: 'test2',
value: 'test2',
},
];
const timeList = [
{ value: '1', label: '小时' },
{ value: '2', label: '分钟' },
{ value: '3', label: '秒' },
];
const JDBCData = [
{ value: '1', label: '192.168.11.3'},
{ value: '2', label: '192.168.96.3' },
{ value: '3', label: '192.168.1.32' },
];
/**确定按钮*/
async function handleSubmit() {
closeModal();
}
const JDBCData = [
{ value: '1', label: '192.168.11.3' },
{ value: '2', label: '192.168.96.3' },
{ value: '3', label: '192.168.1.32' },
];
/**确定按钮*/
async function handleSubmit() {
closeModal();
}
</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