Commit b1a3c8dd authored by 曹泽华's avatar 曹泽华

数据治理-数据标准版本管理

parent 9d1f59b3
......@@ -684,6 +684,33 @@ export const DataStandardRoute: AppRouteRecordRaw = {
icon: '',
},
},
{
path: 'referenceDocument/versionContrast.vue',
name: 'versionContrast1',
component: () => import('@/views/dataStandards/referenceDocument/versionContrast.vue'),
meta: {
title: '引用文档对比',
icon: '',
},
},
{
path: 'namingDictionary/versionContrast.vue',
name: 'versionContrast2',
component: () => import('@/views/dataStandards/namingDictionary/versionContrast.vue'),
meta: {
title: '命名字典对比',
icon: '',
},
},
{
path: 'namingDictionary/domain/versionContrast.vue',
name: 'versionContrast3',
component: () => import('@/views/dataStandards/namingDictionary/domain/versionContrast.vue'),
meta: {
title: '域对比',
icon: '',
},
},
],
};
......
......@@ -112,7 +112,7 @@
function contrastButton() {
closeModal();
router.push({
path: '/dataStandards/basicStandards/basicStandardsContrast',
path: '/dataStandards/referenceDocument/versionContrast',
query: {
businessId: route.query.businessId,
},
......
<template>
<PageWrapper :title="title" class="content-padding" contentBackground @back="goBack">
<!-- <div class="relatedRelationships_module">-->
<!-- <BasicTable @register="registerTable1">-->
<!-- <template #toolbar>-->
<!-- <a-button type="primary" @click="createQualityButton">创建质量规则</a-button>-->
<!-- <a-button type="primary" @click="lookQualityButton">查看质量规则</a-button>-->
<!-- <a-button type="primary" @click="referenceTemplateButton">引用模版</a-button>-->
<!-- </template>-->
<!-- <template #bodyCell="{ column, record }">-->
<!-- <template v-if="column.key === 'action'">-->
<!-- <TableAction-->
<!-- :actions="[-->
<!-- {-->
<!-- //解绑-->
<!-- icon: 'ant-design:link-outlined',-->
<!-- onClick: unbindButton.bind(null, record),-->
<!-- },-->
<!-- ]"-->
<!-- />-->
<!-- </template>-->
<!-- </template>-->
<!-- <template #dataSource="{ text, record }">-->
<!-- <span v-for="(item, index) in text" :key="index">-->
<!-- {{ item.icon }}-->
<!-- </span>-->
<!-- </template>-->
<!-- </BasicTable>-->
<!-- <BasicTable @register="registerTable2">-->
<!-- <template #toolbar>-->
<!-- <a-button type="primary" @click="referenceFileButton">引用文档</a-button>-->
<!-- </template>-->
<!-- <template #bodyCell="{ column, record }">-->
<!-- <template v-if="column.key === 'action'">-->
<!-- <TableAction-->
<!-- :actions="[-->
<!-- {-->
<!-- //解绑-->
<!-- icon: 'ant-design:link-outlined',-->
<!-- onClick: unbindButton.bind(null, record),-->
<!-- },-->
<!-- ]"-->
<!-- />-->
<!-- </template>-->
<!-- </template>-->
<!-- </BasicTable>-->
<div class="relatedRelationships_module">
<BasicTable @register="registerTable1">
<template #toolbar>
<a-button type="primary" @click="createQualityButton">创建质量规则</a-button>
<a-button type="primary" @click="lookQualityButton">查看质量规则</a-button>
<a-button type="primary" @click="referenceTemplateButton">引用模版</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
//解绑
icon: 'ant-design:link-outlined',
onClick: unbindButton.bind(null, record),
},
]"
/>
</template>
</template>
<template #dataSource="{ text, record }">
<span v-for="(item, index) in text" :key="index">
{{ item.icon }}
</span>
</template>
</BasicTable>
<BasicTable @register="registerTable2">
<template #toolbar>
<a-button type="primary" @click="referenceFileButton">引用文档</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
//解绑
icon: 'ant-design:link-outlined',
onClick: unbindButton.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
<BasicTable @register="registerTable3">
<template #toolbar>
<a-button type="primary" @click="referenceBasicStandardsButton">引用标准</a-button>
......@@ -62,62 +62,62 @@
</template>
</template>
</BasicTable>
<!-- <BasicTable @register="registerTable4">-->
<!-- <template #toolbar>-->
<!-- <a-button type="primary" @click="referencePublicCodeButton">引用公共代码</a-button>-->
<!-- </template>-->
<!-- <template #bodyCell="{ column, record }">-->
<!-- <template v-if="column.key === 'action'">-->
<!-- <TableAction-->
<!-- :actions="[-->
<!-- {-->
<!-- //解绑-->
<!-- icon: 'ant-design:link-outlined',-->
<!-- onClick: unbindButton.bind(null, record),-->
<!-- },-->
<!-- ]"-->
<!-- />-->
<!-- </template>-->
<!-- </template>-->
<!-- </BasicTable>-->
<!-- <BasicTable @register="registerTable5">-->
<!-- <template #toolbar>-->
<!-- <a-button type="primary" @click="referenceIndicatorStandardsButton">引用标准</a-button>-->
<!-- </template>-->
<!-- <template #bodyCell="{ column, record }">-->
<!-- <template v-if="column.key === 'action'">-->
<!-- <TableAction-->
<!-- :actions="[-->
<!-- {-->
<!-- //解绑-->
<!-- icon: 'ant-design:link-outlined',-->
<!-- onClick: unbindButton.bind(null, record),-->
<!-- },-->
<!-- ]"-->
<!-- />-->
<!-- </template>-->
<!-- </template>-->
<!-- </BasicTable>-->
<!-- <BasicTable @register="registerTable6">-->
<!-- <template #toolbar>-->
<!-- <a-button type="primary" @click="recommendMetaDataButton">智能推荐元数据</a-button>-->
<!-- <a-button type="primary" @click="referenceMetaDataButton">关联元数据</a-button>-->
<!-- </template>-->
<!-- <template #bodyCell="{ column, record }">-->
<!-- <template v-if="column.key === 'action'">-->
<!-- <TableAction-->
<!-- :actions="[-->
<!-- {-->
<!-- //解绑-->
<!-- icon: 'ant-design:link-outlined',-->
<!-- onClick: unbindButton.bind(null, record),-->
<!-- },-->
<!-- ]"-->
<!-- />-->
<!-- </template>-->
<!-- </template>-->
<!-- </BasicTable>-->
<!-- </div>-->
<BasicTable @register="registerTable4">
<template #toolbar>
<a-button type="primary" @click="referencePublicCodeButton">引用公共代码</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
//解绑
icon: 'ant-design:link-outlined',
onClick: unbindButton.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
<BasicTable @register="registerTable5">
<template #toolbar>
<a-button type="primary" @click="referenceIndicatorStandardsButton">引用标准</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
//解绑
icon: 'ant-design:link-outlined',
onClick: unbindButton.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
<BasicTable @register="registerTable6">
<template #toolbar>
<a-button type="primary" @click="recommendMetaDataButton">智能推荐元数据</a-button>
<a-button type="primary" @click="referenceMetaDataButton">关联元数据</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
//解绑
icon: 'ant-design:link-outlined',
onClick: unbindButton.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
</div>
<!-- 引用模版 弹窗-->
<RelatedQualityModal @register="registerRelatedQualityModal" />
<!-- 引用基础标准 弹窗-->
......
<template>
<PageWrapper title="版本对比" contentFullHeight contentBackground contentClass="flex">
<template #footer>
<div style="display: flex; justify-content: flex-end; padding-bottom: 10px">
<a-button style="margin-right: 5px" type="primary" @click="startContrast">开始对比</a-button>
<a-button style="margin-right: 5px" type="primary" @click="endContrast">结束对比</a-button>
</div>
</template>
<div class="w-1/2 xl:w-1/2 pl-4">
<div style="display: flex;justify-content: space-between; align-items: center;margin-bottom: 10px;margin-left: 12px">
<div style="margin-top: 10px;display: flex;font-weight: bold;font-size: 20px;margin-left: 10px">
<Icon icon="ion:layers-outline" :size="25" :color="'#1091FE'" />
{{title}}
<div style="font-size: 15px;padding-left: 10px;padding-left: 50px">
<div>
版本<Select
v-model:value="optionValue"
show-search
placeholder="请选择版本"
style="width: 200px;margin-left: 10px"
:options="options"
@change="handleChange"
></Select>
</div>
</div>
</div>
</div>
<div>
<BasicForm @register="registerLeftForm">
<template #businessRule="{ model, field }">
<span style="color: red" v-if="startContrastFlag">{{model.businessRule}}</span>
<span style="color: black" v-else>{{model.businessRule}}</span>
</template>
</BasicForm>
</div>
</div>
<div class="w-1/2 xl:w-1/2">
<div style="display: flex;justify-content: space-between; align-items: center;margin-bottom: 10px;margin-left: 12px">
<div style="margin-top: 10px;display: flex;font-weight: bold;font-size: 20px;margin-left: 10px">
<Icon icon="ion:layers-outline" :size="25" :color="'#1091FE'" />
{{title}}
<div style="font-size: 15px;padding-left: 10px;padding-left: 50px">
<div>
版本<Select
v-model:value="optionValue1"
show-search
placeholder="请选择版本"
style="width: 200px;margin-left: 10px"
:options="options1"
@change="handleChange"
></Select>
</div>
</div>
</div>
</div>
<div>
<BasicForm @register="registerRightForm">
<template #businessRule="{ model, field }">
<span style="color: red" v-if="startContrastFlag">{{model.businessRule}}</span>
<span style="color: black" v-else>{{model.businessRule}}</span>
</template>
</BasicForm>
</div>
</div>
</PageWrapper>
</template>
<script lang="ts" setup>
import { BasicTable, useTable } from '@/components/Table';
import { PageWrapper } from '@/components/Page';
import {contrastSchema} from './referenceDocument.data';
import {leftContrastData,rightContrastData} from '@/views/dataStandards/basicStandards/basicStandardsData';
import { useMessage } from '@/hooks/web/useMessage';
import { BasicForm, useForm } from '@/components/Form';
import {onMounted,ref} from "vue";
import { Select } from 'ant-design-vue';
import Icon from '@/components/Icon/Icon.vue';
import {router} from "@/router";
import { useRoute,onBeforeRouteLeave } from 'vue-router';
defineOptions({ name: 'Metadata' });
const route = useRoute();
const title = ref('标准文件A')
const startContrastFlag = ref(false)
const options = ref<any>([
{ value: 'V1', label: 'V1' },
{ value: 'V2', label: 'V2' },
{ value: 'V3', label: 'V3' },
]);
const options1 = ref<any>([
{ value: 'V1', label: 'V1' },
{ value: 'V2', label: 'V2' },
{ value: 'V3', label: 'V3' },
]);
const optionValue = ref('')
const optionValue1 = ref('')
const { createMessage } = useMessage();
const [registerLeftForm,{setFieldsValue:setLeftFieldsValue}] = useForm({
labelWidth: 100,
schemas: contrastSchema,
showActionButtonGroup: false,
});
const [registerRightForm,{setFieldsValue:setRightFieldsValue}] = useForm({
labelWidth: 100,
schemas: contrastSchema,
showActionButtonGroup: false,
});
/**开始对比*/
function startContrast() {
createMessage.info('开始对比');
startContrastFlag.value = true
}
/**结束对比*/
function endContrast() {
createMessage.info('结束对比');
router.go(-1);
// startContrastFlag.value = false
// router.push({
// path: '/dataStandards/basicStandards/detailStandard',
// query: {
// businessId:route.query.businessId,
// },
// });
}
onMounted(() => {
optionValue.value = 'V3'
optionValue1.value = 'V1'
setLeftFieldsValue({
...leftContrastData[0],
})
setRightFieldsValue({
...rightContrastData[0],
})
});
</script>
<template>
<PageWrapper title="版本对比" contentFullHeight contentBackground contentClass="flex">
<template #footer>
<div style="display: flex; justify-content: flex-end; padding-bottom: 10px">
<a-button style="margin-right: 5px" type="primary" @click="startContrast">开始对比</a-button>
<a-button style="margin-right: 5px" type="primary" @click="endContrast">结束对比</a-button>
</div>
</template>
<div class="w-1/2 xl:w-1/2 pl-4">
<div style="display: flex;justify-content: space-between; align-items: center;margin-bottom: 10px;margin-left: 12px">
<div style="margin-top: 10px;display: flex;font-weight: bold;font-size: 20px;margin-left: 10px">
<Icon icon="ion:layers-outline" :size="25" :color="'#1091FE'" />
{{title}}
<div style="font-size: 15px;padding-left: 10px;padding-left: 50px">
<div>
版本<Select
v-model:value="optionValue"
show-search
placeholder="请选择版本"
style="width: 200px;margin-left: 10px"
:options="options"
@change="handleChange"
></Select>
</div>
</div>
</div>
</div>
<div>
<BasicForm @register="registerLeftForm">
<template #businessRule="{ model, field }">
<span style="color: red" v-if="startContrastFlag">{{model.businessRule}}</span>
<span style="color: black" v-else>{{model.businessRule}}</span>
</template>
</BasicForm>
</div>
</div>
<div class="w-1/2 xl:w-1/2">
<div style="display: flex;justify-content: space-between; align-items: center;margin-bottom: 10px;margin-left: 12px">
<div style="margin-top: 10px;display: flex;font-weight: bold;font-size: 20px;margin-left: 10px">
<Icon icon="ion:layers-outline" :size="25" :color="'#1091FE'" />
{{title}}
<div style="font-size: 15px;padding-left: 10px;padding-left: 50px">
<div>
版本<Select
v-model:value="optionValue1"
show-search
placeholder="请选择版本"
style="width: 200px;margin-left: 10px"
:options="options1"
@change="handleChange"
></Select>
</div>
</div>
</div>
</div>
<div>
<BasicForm @register="registerRightForm">
<template #businessRule="{ model, field }">
<span style="color: red" v-if="startContrastFlag">{{model.businessRule}}</span>
<span style="color: black" v-else>{{model.businessRule}}</span>
</template>
</BasicForm>
</div>
</div>
</PageWrapper>
</template>
<script lang="ts" setup>
import { BasicTable, useTable } from '@/components/Table';
import { PageWrapper } from '@/components/Page';
import {contrastSchema} from './referenceDocument.data';
import {leftContrastData,rightContrastData} from '@/views/dataStandards/basicStandards/basicStandardsData';
import { useMessage } from '@/hooks/web/useMessage';
import { BasicForm, useForm } from '@/components/Form';
import {onMounted,ref} from "vue";
import { Select } from 'ant-design-vue';
import Icon from '@/components/Icon/Icon.vue';
import {router} from "@/router";
import { useRoute,onBeforeRouteLeave } from 'vue-router';
defineOptions({ name: 'Metadata' });
const route = useRoute();
const title = ref('标准文件A')
const startContrastFlag = ref(false)
const options = ref<any>([
{ value: 'V1', label: 'V1' },
{ value: 'V2', label: 'V2' },
{ value: 'V3', label: 'V3' },
]);
const options1 = ref<any>([
{ value: 'V1', label: 'V1' },
{ value: 'V2', label: 'V2' },
{ value: 'V3', label: 'V3' },
]);
const optionValue = ref('')
const optionValue1 = ref('')
const { createMessage } = useMessage();
const [registerLeftForm,{setFieldsValue:setLeftFieldsValue}] = useForm({
labelWidth: 100,
schemas: contrastSchema,
showActionButtonGroup: false,
});
const [registerRightForm,{setFieldsValue:setRightFieldsValue}] = useForm({
labelWidth: 100,
schemas: contrastSchema,
showActionButtonGroup: false,
});
/**开始对比*/
function startContrast() {
createMessage.info('开始对比');
startContrastFlag.value = true
}
/**结束对比*/
function endContrast() {
createMessage.info('结束对比');
router.go(-1);
// startContrastFlag.value = false
// router.push({
// path: '/dataStandards/basicStandards/detailStandard',
// query: {
// businessId:route.query.businessId,
// },
// });
}
onMounted(() => {
optionValue.value = 'V3'
optionValue1.value = 'V1'
setLeftFieldsValue({
...leftContrastData[0],
})
setRightFieldsValue({
...rightContrastData[0],
})
});
</script>
......@@ -209,10 +209,7 @@
/**基本标准对比*/
function contrastButton(record) {
router.push({
path: '/dataStandards/basicStandards/basicStandardsContrast',
query: {
businessId: 201,
},
path: '/dataStandards/referenceDocument/versionContrast',
});
}
......
......@@ -34,7 +34,7 @@ export const tableList: any[] = [
flag: '已发布',
group: '默认工作组',
},
]
];
export const treeDataList = [
{
......@@ -48,7 +48,7 @@ export const treeDataList = [
{ label: '数据中台工作区03', value: 5 },
],
},
]
];
export const treeDataListPath = [
{
label: '主体管理',
......@@ -60,7 +60,7 @@ export const treeDataListPath = [
{ label: '指标工作区', businessId: 5 },
],
},
]
];
export const treeDataListTwo = [
{
label: '默认工作组',
......@@ -72,7 +72,7 @@ export const treeDataListTwo = [
{ label: '默认工作组04', businessId: 5 },
],
},
]
];
export const options = [
{
value: '标准数据',
......@@ -81,13 +81,10 @@ export const options = [
{
value: '引用文档元模型',
label: '引用文档元模型',
children: [
],
children: [],
},
],
},
];
export const tableListTwo: any[] = [
{
......@@ -95,4 +92,31 @@ export const tableListTwo: any[] = [
name: '某领域办公办文格式撰写标准',
type: 'DOCX',
},
]
];
/**对比左侧数据*/
export const leftContrastData: any[] = [
{
valueOne: '标准文件管理',
valueTwo: 'REF000023',
valueThree: '标准文件A',
valueFour: '-',
valueFive: '某部队',
valueSix: '202304',
valueSeven: '2023001',
valueEight: '-',
},
];
export const rightContrastData: any[] = [
{
valueOne: '标准文件管理',
valueTwo: 'REF000023',
valueThree: '标准文件A',
valueFour: '-',
valueFive: '某部队',
valueSix: '202308',
valueSeven: '2023001',
valueEight: '-',
},
];
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