Commit 0a007e12 authored by LiXuyang's avatar LiXuyang

文件离线加载

parent cc6afbd8
......@@ -621,6 +621,15 @@ export const DataStandardRoute: AppRouteRecordRaw = {
icon: '',
},
},
{
path: 'labelDropInspection/labelOperation',
name: 'labelOperation',
component: () => import('@/views/dataStandards/labelDropInspection/labelOperation/index.vue'),
meta: {
title: '任务运维',
icon: '',
},
},
{
path: 'labelDropInspection/labelReport',
name: 'labelReport',
......
......@@ -294,19 +294,7 @@ export const dataSourceFieldFormSchema: FormSchema[] = [
show: ({ model }) => {
return model.createTable === '是';
},
component: 'Select',
componentProps: {
options: [
{
label: 'Table1',
value: 'Table1',
},
{
label: 'Table2',
value: 'Table2',
},
],
},
component: 'Input',
},
];
export const dataSourceTableColumn: BasicColumn[] = [
......@@ -400,6 +388,30 @@ export const dataSourceSqlFormSchema: FormSchema[] = [
],
},
},
{
label: '分区键',
field: 'areaKey',
show: ({ model }) => {
return model.area !== '无';
},
slot: 'areaKey',
},
{
label: '分区范围',
field: 'areaRange',
show: ({ model }) => {
return model.area === '范围分区';
},
slot: 'areaRange',
},
{
label: '分区间隔',
field: 'areaSpace',
show: ({ model }) => {
return model.area === '范围分区';
},
component: 'Input',
},
{
field: '',
slot: 'title2',
......@@ -422,6 +434,22 @@ export const dataSourceSqlFormSchema: FormSchema[] = [
],
},
},
{
label: '分桶键',
field: 'bucketKey',
component: 'Input',
show: ({ model }) => {
return model.bucket === '是';
},
},
{
label: '分桶个数',
field: 'bucketNum',
show: ({ model }) => {
return model.bucket === '是';
},
slot: 'bucketNum',
},
{
field: '',
slot: 'title3',
......@@ -851,3 +879,22 @@ export const headGlobalConfigSchema: FormSchema[] = [
colProps: { lg: 24, md: 24 },
},
];
export const runOptionsColumns: BasicColumn[] = [
{
title: '参数名称',
dataIndex: 'name',
width: 120,
},
{
title: '参数类型',
dataIndex: 'type',
width: 120,
},
{
title: '参数值',
dataIndex: 'data',
width: 120,
edit: true,
editable: true,
},
];
......@@ -96,3 +96,25 @@ export const mappingRuleConfigurationTableList = [
ruleContent: "自定义规则:field1 != 'axxc'",
},
];
export const runOptionsData: any[] = [
{
name: 'tdt.job.cleaning',
type: '服务参数',
data: 'true',
},
{
name: 'tdt.jdbc.mapper.size',
type: '服务参数',
data: '1024',
},
{
name: 'tdt.job.mapper.count',
type: '服务参数',
data: 'true',
},
{
name: 'tdt.strict.mode',
type: '服务参数',
data: 'false',
},
];
<template>
<BasicModal
width="55%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<BasicTable @register="registerTable" />
</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, useTable } from '@/components/Table';
import { runOptionsColumns } from '@/views/dataIntegration/dataLoading/fileLoading/file.data';
import { runOptionsData } from '@/views/dataIntegration/dataLoading/fileLoading/fileData';
defineOptions({ name: 'KnowledgeModal' });
let isDebug = false;
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const title = ref();
const tableData = ref([]);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerTable, { reload }] = useTable({
api: async () => {
const response = {
pageNum: '1',
pageSize: '10',
pages: '1',
total: tableData.value.length,
code: '',
message: '',
data: [],
};
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
data = tableData.value;
return { ...response, data: data };
},
pagination: false,
columns: runOptionsColumns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
showIndexColumn: false,
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
await reload();
setModalProps({ confirmLoading: false });
isDebug = data.isDebug;
title.value = data.title;
});
async function handleSubmit() {
closeModal();
emit('success', {
isDebug: isDebug,
});
}
onMounted(() => {
tableData.value = runOptionsData;
});
</script>
<template>
<PageWrapper dense contentFullHeight fixedHeight>
<template #headerContent>
<div class="header">
<div class="title"> 所有数据质量任务 </div>
<Select
mode="multiple"
:max-tag-count="1"
class="select"
v-model:value="queryParams.searchArea"
:options="searchOptions"
/>
</div>
</template>
<template #footer>
<div class="search">
<div class="query">
<RadioGroup class="group" v-model:value="queryParams.timeType">
<RadioButton class="button" value="调度时间">调度时间</RadioButton>
<RadioButton class="button" value="执行时间">执行时间</RadioButton>
</RadioGroup>
<Select class="select" v-model:value="queryParams.days" :options="daysOptions" />
<div class="label">发布状态</div>
<Select
class="select"
v-model:value="queryParams.uploadStatus"
:options="uploadStatusOptions"
/>
<div class="label">检查结果</div>
<Select class="select" v-model:value="queryParams.result" :options="resultOptions" />
<div class="label">执行模式</div>
<Select class="select" v-model:value="queryParams.runType" :options="runTypeOptions" />
</div>
<div class="extra">
<a-button class="refresh"><SyncOutlined />刷新</a-button>
</div>
</div>
<div class="h-tabs">
<div class="tab-chart"></div>
<div
class="tab-txt"
:class="{ active: checked === index }"
@click="handleTabs(index)"
v-for="(item, index) in headList"
:key="item"
>
<div class="txt-num">
{{ item.num }}
</div>
<div class="txt-des">
<Icon v-if="item.icon" :icon="item.icon" class="des-icon" />
<span class="des-span">
{{ item.des }}
</span>
</div>
</div>
</div>
<div class="detail">
<div class="table">
<div class="column">
<Checkbox class="checkBox" />
<Icon class="icon" />
<div class="txt">
<div class="title">
</div>
<div class="des">
</div>
</div>
<div class="type">
</div>
<div class="num">
</div>
</div>
</div>
</div>
</template>
</PageWrapper>
</template>
<script lang="ts" setup>
import { Select, RadioGroup, RadioButton, Checkbox } from 'ant-design-vue';
import { SyncOutlined } from '@ant-design/icons-vue';
import {
searchOptions,
daysOptions,
uploadStatusOptions,
resultOptions,
runTypeOptions,
headList,
} from './operationData';
import PageWrapper from '@/components/Page/src/PageWrapper.vue';
import { ref } from 'vue';
import Icon from '@/components/Icon/Icon.vue';
import BasicTable from '@/components/Table/src/BasicTable.vue';
import { useTable } from '@/components/Table';
import { tableListtab1 } from '@/views/auditLog/mock';
import { columns, searchFormSchema } from '@/views/auditLog/audi.data';
// 初始化
const queryParams = ref({
searchArea: [],
timeType: '调度时间',
days: '最近30d',
uploadStatus: '全部',
result: '不限',
runType: '全部',
});
const checked = ref(0);
// 数据
/**
* 方法
*/
// 选中tab标签类型
function handleTabs(index) {
checked.value = index;
// 更新数据
}
/**
* 列表
*/
</script>
<style scoped>
.header {
display: flex;
gap: 10px;
.title {
font-size: 18px;
}
.select {
width: 250px;
}
}
.search {
display: flex;
.query {
display: flex;
gap: 10px;
flex: 1;
.group {
.button {
}
}
.select {
width: 120px;
}
.label {
width: 60px;
display: flex;
align-items: center;
}
}
.extra {
.refresh {
}
}
}
.h-tabs {
display: flex;
justify-content: center;
gap: 20px;
margin: 20px 0;
.tab-chart {
width: 200px;
height: 100px;
}
.tab-txt {
width: 160px;
padding: 10px 0 10px 15px;
cursor: pointer;
.txt-num {
font-size: 20px;
font-weight: bolder;
}
.txt-des {
margin-top: 10px;
}
}
.active {
background-color: #f4f7fb;
border-bottom: 2px solid #319ffd;
}
}
</style>
export const searchOptions = [
{
label: '个人工作区',
value: '个人工作区',
},
{
label: '共享工作区',
value: '共享工作区',
},
];
export const daysOptions = [
{
label: '最近30d',
value: '最近30d',
},
{
label: '最近7d',
value: '最近7d',
},
];
export const uploadStatusOptions = [
{
label: '全部',
value: '全部',
},
{
label: '成功',
value: '成功',
},
{
label: '运行中',
value: '运行中',
},
{
label: '失败',
value: '失败',
},
{
label: '等待',
value: '等待',
},
];
export const resultOptions = [
{
label: '不限',
value: '不限',
},
{
label: '合格',
value: '合格',
},
{
label: '不合格',
value: '不合格',
},
];
export const runTypeOptions = [
{
label: '全部',
value: '全部',
},
{
label: '重跑',
value: '重跑',
},
{
label: '手动执行',
value: '手动执行',
},
];
export const headList = [
{
num: 29,
des: '执行成功',
},
{
num: 10,
des: '成功',
icon: 'ant-design:check-circle-outlined',
},
{
num: 0,
des: '运行中',
icon: 'ant-design:check-circle-outlined',
},
{
num: 19,
des: '失败',
icon: 'ant-design:check-circle-outlined',
},
{
num: 0,
des: '等待',
icon: 'ant-design:check-circle-outlined',
},
];
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