Commit 9937e0c5 authored by chenjiahao's avatar chenjiahao

Merge remote-tracking branch 'origin/master'

parents 0ee0c91b 1ee13cad
<template>
<PageWrapper class="content-padding" contentBackground @back="goBack">
<template #headerContent>
<div class="modal_top">
<div style="display: flex; gap: 5px; align-items: center">
<span v-if="isEdit === 'false'">查看版本</span>
<Select
v-if="isEdit === 'false'"
v-model:value="version"
style="width: 120px"
:options="versionOptions"
/>
<a-button v-if="isEdit === 'false'" @click="handleRollback">回滚</a-button>
<a-button v-if="isEdit === 'false'" @click="goBack">退出查看</a-button>
</div>
<Icon
icon="ep:arrow-left-bold"
:size="20"
style="margin-right: 5px"
:color="'#a3a7b1'"
@click="goBack"
/>
<div>
<Icon icon="iconoir:db" :size="40" :color="'#9064e9'" />
</div>
<div>
<div class="title">数据入湖-准实时</div>
<div class="path">数据加载/数据入湖</div>
</div>
<div class="buttonGroup">
<a-button :disabled="isEdit !== 'true'" type="primary" @click="handleOperation"
>跳转运维</a-button
>
<a-button :disabled="isEdit !== 'true'" type="primary" @click="handleSave">保存</a-button>
<a-button
:disabled="isEdit !== 'true'"
v-if="isEdit !== 'debug'"
type="primary"
@click="handleDebug"
>调试</a-button
>
<a-button v-if="isEdit === 'debug'" type="primary" @click="handleExitDebug"
>退出调试</a-button
>
<a-button
:disabled="isRun === 'false' || isEdit !== 'true'"
type="primary"
@click="handleRun"
>运行</a-button
>
<a-button
:disabled="isSave === 'false' || isEdit !== 'true'"
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" @click="handleVersionManagement">版本管理</a-button>
</div>
</div>
</template>
<div>
<Tabs v-model:activeKey="key" type="card">
<TabPane key="1" tab="源端配置">
......@@ -132,9 +192,7 @@
<template #HDFSpath="{ field, model }">
<div style="display: flex">
<AInput v-model:value="model.HDFSpath" :disabled="!model.HDFSDataSource" />
<a-button @click="handleGetHDFSpath" type="primary">
浏览
</a-button>
<a-button @click="handleGetHDFSpath" type="primary"> 浏览 </a-button>
</div>
</template>
<template #divider="{ field, model }">
......@@ -178,9 +236,14 @@
</Tabs>
</div>
<!-- 源端配置-left-获取元数据按钮-弹窗 -->
<GetMetadataModal @setFlag="setFlag" @register="registerGetMetadataModal" />
<GetMetadataModal @set-flag="setFlag" @register="registerGetMetadataModal" />
<AddDataConversionRuleModal @register="registerAddRuleModal" />
<ViewLogModal @register="registerViewLogsModal" />
<SaveModal @register="registerSaveModal" @success="handleSaveSuccess" />
<VersionManageModal @register="registerVersionManageModal" />
<RunOptionsModal @register="registerRunOptionsModal" />
<DataOptionsModal @register="registerDataOptionsModal" />
<GlobalOptionsModal @register="registerGlobalOptionsModal" />
</PageWrapper>
</template>
<script lang="ts" setup>
......@@ -221,6 +284,13 @@
showTableFormSchema,
} from '@/views/dataIntegration/dataLoading/fileLoading/file.data';
import ViewLogModal from '@/views/dataIntegration/dataLoading/dataEntryLake/ViewLogModal.vue';
import RunOptionsModal from '@/views/dataIntegration/dataLoading/dataEntryLake/runOptionsModal.vue';
import SaveModal from '@/views/dataIntegration/dataLoading/dataEntryLake/saveModal.vue';
import VersionManageModal from '@/views/dataIntegration/dataLoading/dataEntryLake/versionManageModal.vue';
import GlobalOptionsModal
from "@/views/dataIntegration/dataLoading/dataEntryLake/globalOptionsModal.vue";
import DataOptionsModal
from "@/views/dataIntegration/dataLoading/dataEntryLake/dataOptionsModal.vue";
const route = useRoute();
const emit = defineEmits(['success', 'register']);
......@@ -229,11 +299,30 @@
let notCustomSQLTable = ref(notCustomSQLTableList);
let mappingRuleConfigurationTable = ref(mappingRuleConfigurationTableList);
let mappingRuleConfiguration = ref(mappingRuleConfigurationColumns);
let tabularPresentationTable = ref(tabularPresentationTableList);
let sql = ref('SELECT * FROM user_info,customer_details,order_history,product_inventory');
let metadataAcquisitionModeFlag = ref(1);
let isParsingSQL = ref(false);
const selectKey = ref('0');
const isEdit = ref(true);
const isSave = ref('false');
const isRun = ref('false');
const key = ref('1');
const version = ref('V1');
const versionOptions = [
{
label: 'V1',
value: 'V1',
},
{
label: 'V2',
value: 'V2',
},
{
label: 'V3',
value: 'V4',
},
];
function setFlag(flag) {
metadataAcquisitionModeFlag.value = flag;
......@@ -318,6 +407,11 @@
},
});
const [registerSaveModal, { openModal: openSaveModal }] = useModal();
const [registerVersionManageModal, { openModal: openVersionManageModal }] = useModal();
const [registerRunOptionsModal, { openModal: openRunOptionsModal }] = useModal();
const [registerDataOptionsModal, { openModal: openDataOptionsModal }] = useModal();
const [registerGlobalOptionsModal, { openModal: openGlobalOptionsModal }] = useModal();
const [registerGetMetadataModal, { openModal: openGetMetadataModal }] = useModal();
const [registerAddRuleModal, { openModal: openAddRuleModal }] = useModal();
......@@ -492,6 +586,7 @@
setFieldsValue({
sourceDataTableName: 'user_info,customer_details,order_history,product_inventory',
});
isEdit.value = route.query.isEdit;
});
// 删除节点
......@@ -569,13 +664,104 @@
}
await submitSourceSideConfiguration();
createMessage.success('保存成功');
router.back();
isSave.value = 'true';
} catch (error) {
console.error('保存失败:', error);
createMessage.error('表单校验未通过,请检查输入');
}
}
function handleExitDebug() {
isEdit.value = 'true';
}
function handleRollback() {
createConfirm({
iconType: 'warning',
title: '确认回滚吗?',
content: '是否确认进行回滚?',
onOk() {
createMessage.success('回滚成功!');
router.back();
},
});
}
function handleParameterConfiguration() {
openDataOptionsModal(true, {
title: '参数配置',
});
}
function handleGobalDeply() {
openGlobalOptionsModal(true, {
title: '全局配置',
});
}
function handleRun() {
openRunOptionsModal(true, {
title: '参数列表',
});
}
function handlePublish() {
openSaveModal(true, {
title: '发布新版本',
});
}
function handleVersionManagement() {
openVersionManageModal(true, {
title: '版本管理',
});
}
function handleSaveSuccess() {
isRun.value = 'true';
}
function handleDebug() {
isEdit.value = 'debug';
key.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();
}
/**left表单-获取元数据按钮 */
function handleGetMetadata() {
openGetMetadataModal(true);
......@@ -610,20 +796,11 @@
function handleViewLogs() {
openViewLogsModal(true);
}
/**列表展示-列表1*/
let tabularPresentationTable = ref(tabularPresentationTableList);
const [
registerTabularPresentationTable,
{ reload: reloadTabularPresentationTable, getDataSource: getTabularPresentationDataSource },
] = useTable({
api: async (params) => {
tabularPresentationTable.value = tabularPresentationTableList.filter(
(item) =>
item.sourceTable.includes(params.tableName) ||
item.targetTable.includes(params.tableName) ||
params.tableName === undefined,
);
const response = {
pageNu: '1',
pageSize: '5',
......
......@@ -49,7 +49,7 @@
/**确定按钮*/
const { createMessage } = useMessage();
async function handleSubmit() {
createMessage.success('版本发布成功');
createMessage.success('版本发布成功');
closeModal();
emit('setUploadFlag', true);
}
......
......@@ -15,16 +15,27 @@
<div>
<span style="font-size: 16px">{{ item.version }}</span>
<span style="margin-left: 5px; flex: 1">{{ item.time }}</span>
<div>
<span>{{ item.createdBy }}</span>
</div>
</div>
<div>
{{ item.createdBy }}
<FileSearchOutlined style="font-size: 18px" @click="handleDetail(item)" />
<RollbackOutlined style="font-size: 18px" @click="handleRollback(item)" />
<Tooltip placement="top" title="查看详情">
<FileSearchOutlined
class="right-button"
style="margin-top: 15px"
@click="handleDetail(item)"
/>
</Tooltip>
<Tooltip placement="top" title="回滚">
<RollbackOutlined
class="right-button"
style="margin: 15px 10px 0 10px"
@click="handleRollback(item)"
/>
</Tooltip>
</div>
</div>
<div>
<span>{{ item.remark }}</span>
</div>
</div>
</template>
</BasicTree>
......@@ -35,7 +46,7 @@
<SearchOutlined />
</template>
</Input>
<div style="display: flex">
<div style="display: flex; margin: 15px 0">
<Select v-model:value="type" style="width: 100%" :options="typeOptions" />
<SyncOutlined style="font-size: 18px" />
</div>
......@@ -79,7 +90,7 @@
SyncOutlined,
} from '@ant-design/icons-vue';
import Icon from '@/components/Icon/Icon.vue';
import { Select, Tabs, TabPane, Input, List } from 'ant-design-vue';
import { Select, Tabs, TabPane, Input, List, Tooltip } from 'ant-design-vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicTree, TreeActionItem, ContextMenuItem } from '@/components/Tree';
import { BasicForm, useForm } from '@/components/Form';
......@@ -122,28 +133,20 @@
value: '所有任务类型',
},
{
label: 'SLA明细信息',
value: 'SLA明细信息',
},
{
label: 'sla沟通指标实时统计-视图',
value: 'sla沟通指标实时统计-视图',
label: '数据加载',
value: '数据加载',
},
{
label: '全量加载',
value: '全量加载',
label: '数据同步',
value: '数据同步',
},
{
label: 'sla升级频次指标实时统计-临时视图',
value: 'sla升级频次指标实时统计-临时视图',
label: '嵌套任务流',
value: '嵌套任务流',
},
{
label: 'sla分组件指标实时统计-临时视图',
value: 'sla分组件指标实时统计-临时视图',
},
{
label: '未解决严重sla明细',
value: '未解决严重sla明细',
label: 'SQL任务',
value: 'SQL任务',
},
];
const type = ref('所有任务类型');
......@@ -183,3 +186,11 @@
closeModal();
}
</script>
<style scoped>
.right-button {
font-size: 18px;
}
.right-button:hover {
color: #0581ff;
}
</style>
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