Commit c9188a82 authored by chenjiahao's avatar chenjiahao

数据质量-主体类-质量主体-存储管理

parent 13b6cb6a
...@@ -9,11 +9,21 @@ type CheckedType = boolean | string | number; ...@@ -9,11 +9,21 @@ type CheckedType = boolean | string | number;
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
{ {
title: '名称', title: '质量主体名称',
dataIndex: 'fileName', dataIndex: 'fileName',
width: 150, width: 150,
slots: { customRender: 'fileName' }, slots: { customRender: 'fileName' },
}, },
{
title: '描述',
dataIndex: 'descripe',
width: 150,
},
{
title: '创建者',
dataIndex: 'holder',
width: 150,
},
{ {
title: '创建时间', title: '创建时间',
dataIndex: 'createDate', dataIndex: 'createDate',
...@@ -24,11 +34,6 @@ export const columns: BasicColumn[] = [ ...@@ -24,11 +34,6 @@ export const columns: BasicColumn[] = [
dataIndex: 'updateDate', dataIndex: 'updateDate',
width: 150, width: 150,
}, },
{
title: '拥有者',
dataIndex: 'holder',
width: 150,
},
{ {
title: '原始主体', title: '原始主体',
dataIndex: 'originalPrincipal', dataIndex: 'originalPrincipal',
......
<template>
<BasicModal
v-bind="$attrs"
width="50%"
@register="registerModal"
:title="getTitle"
@ok="handleSubmit"
minHeight="50"
>
<BasicTable @register="registerAssociationRulesTable" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, computed } from 'vue';
import { BasicTable, FormSchema, useTable } from '@/components/Table';
import { BasicModal, useModalInner } from '@/components/Modal';
import { associationRulesData } from '@/views/dataQuality/agentClass/mainBody/dataQualityMainBodyData';
defineOptions({ name: 'AccountModal' });
const associationData = ref(associationRulesData);
const associationRulesColumns: { dataIndex: string; width: number; title: string }[] = [
{
title: '规则名称',
dataIndex: 'ruleName',
width: 120,
},
{
title: '质量模板',
dataIndex: 'template',
width: 120,
},
{
title: '关联字段',
dataIndex: 'keyField',
width: 120,
// edit: true,
},
{
title: '规则描述',
dataIndex: 'described',
width: 120,
},
];
const associationSearchFormSchema: FormSchema[] = [
{
field: 'ruleName',
label: '',
componentProps: {
placeholder: '搜索字段',
},
component: 'Input',
colProps: { span: 5 },
},
];
const [registerAssociationRulesTable] = useTable({
api: async () => {
const response = {
pageNum: '1',
pageSize: '10',
pages: '1',
total: associationData.value.length,
code: '',
message: '',
data: [],
};
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
data = associationData.value.filter((item) => item.parentId !== 0);
return { ...response, data: data };
},
// dataSource: infoData,
columns: associationRulesColumns,
useSearchForm: true,
pagination: false,
formConfig: {
labelWidth: 120,
schemas: associationSearchFormSchema,
autoSubmitOnEnter: true,
},
showIndexColumn: false,
scroll: { y: 400 },
handleSearchInfoFn(info) {
associationData.value = associationRulesData.filter((item) =>
item.ruleName.includes(info.ruleName),
);
// console.log('info', info);
// console.log('tableData', tableData.value);
return info;
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async () => {
setModalProps({ confirmLoading: false });
});
const getTitle = computed(() => '查看关联质量规则');
async function handleSubmit() {
closeModal();
}
</script>
...@@ -383,6 +383,33 @@ export const infoData: any[] = [ ...@@ -383,6 +383,33 @@ export const infoData: any[] = [
}, },
]; ];
export const associationRulesData: any[] = [
{
ruleName: '最低成绩',
template: '学生成绩校验',
keyField: 'score',
described: '最低成绩不能低于60',
},
{
ruleName: '青少年',
template: '年龄限制',
keyField: 'age',
described: '年龄小于18',
},
{
ruleName: '规则1',
template: '质量模板1',
keyField: 'cloums1',
described: '规则描述1',
},
{
ruleName: '规则2',
template: '质量模板2',
keyField: 'cloums2',
described: '规则描述2',
},
];
export const reviewData: any[] = [ export const reviewData: any[] = [
{ {
age: 23, age: 23,
......
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
label: '复制', label: '复制',
onClick: copyButton.bind(null, record), onClick: copyButton.bind(null, record),
}, },
{
label: '关联',
onClick: handleOpenAssociationModal.bind(null, record),
},
{ {
label: '属性', label: '属性',
onClick: handleEdit.bind(null, record), onClick: handleEdit.bind(null, record),
...@@ -52,6 +56,7 @@ ...@@ -52,6 +56,7 @@
<CreateMainBodyModal @register="registerCreateCreateMainBodyModal" @success="handleSuccess" /> <CreateMainBodyModal @register="registerCreateCreateMainBodyModal" @success="handleSuccess" />
<MainBodyEdit @register="registerMainBodyEditModal" /> <MainBodyEdit @register="registerMainBodyEditModal" />
<StorageManageModal @register="registerStorageManageModal" /> <StorageManageModal @register="registerStorageManageModal" />
<AssociationRulesModal @register="registerAssociationModal" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -80,6 +85,7 @@ ...@@ -80,6 +85,7 @@
import CreateMainBodyModal from '@/views/dataQuality/agentClass/mainBody/createMainBodyModal.vue'; import CreateMainBodyModal from '@/views/dataQuality/agentClass/mainBody/createMainBodyModal.vue';
import MainBodyEdit from '@/views/dataQuality/agentClass/mainBody/mainBodyEdit.vue'; import MainBodyEdit from '@/views/dataQuality/agentClass/mainBody/mainBodyEdit.vue';
import StorageManageModal from '@/views/dataQuality/agentClass/mainBody/storageManageModal.vue'; import StorageManageModal from '@/views/dataQuality/agentClass/mainBody/storageManageModal.vue';
import AssociationRulesModal from '@/views/dataQuality/agentClass/mainBody/associationRulesModal.vue';
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage, createConfirm } = useMessage(); const { createMessage, createConfirm } = useMessage();
...@@ -93,6 +99,7 @@ ...@@ -93,6 +99,7 @@
const [registerCreateFileModal, { openModal: openCreateFileModal }] = useModal(); // 新建文件夹弹窗 const [registerCreateFileModal, { openModal: openCreateFileModal }] = useModal(); // 新建文件夹弹窗
const [registerMainBodyEditModal, { openModal: openMainBodyEditModal }] = useModal(); // 质量主体编辑 const [registerMainBodyEditModal, { openModal: openMainBodyEditModal }] = useModal(); // 质量主体编辑
const [registerStorageManageModal, { openModal: openStorageManageModal }] = useModal(); // 存储管理弹窗 const [registerStorageManageModal, { openModal: openStorageManageModal }] = useModal(); // 存储管理弹窗
const [registerAssociationModal, { openModal: OpenAssociationModal }] = useModal(); // 关联规则弹窗
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [ const [
...@@ -252,6 +259,12 @@ ...@@ -252,6 +259,12 @@
}); });
} }
function handleOpenAssociationModal(record: Recordable) {
OpenAssociationModal(true, {
record,
});
}
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
tableData.value.splice( tableData.value.splice(
......
...@@ -67,7 +67,9 @@ ...@@ -67,7 +67,9 @@
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="4" tab="关联规则"> <a-tab-pane key="4" tab="关联规则">
<div v-if="page === '4'"> </div> <div v-if="page === '4'">
<BasicTable @register="registerAssociationRulesTable" />
</div>
</a-tab-pane> </a-tab-pane>
</Tabs> </Tabs>
</div> </div>
...@@ -89,11 +91,13 @@ ...@@ -89,11 +91,13 @@
infoData, infoData,
reviewData, reviewData,
TreeData, TreeData,
associationRulesData,
} from '@/views/dataQuality/agentClass/mainBody/dataQualityMainBodyData'; } from '@/views/dataQuality/agentClass/mainBody/dataQualityMainBodyData';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const page = ref('1'); const page = ref('1');
const tableData = ref(infoData); const tableData = ref(infoData);
const associationData = ref(associationRulesData);
const title = ref(''); const title = ref('');
const sql = ref(''); const sql = ref('');
let changeAble = ref(false); let changeAble = ref(false);
...@@ -314,6 +318,76 @@ ...@@ -314,6 +318,76 @@
}, },
]); ]);
}); });
const associationRulesColumns: { dataIndex: string; width: number; title: string }[] = [
{
title: '规则名称',
dataIndex: 'ruleName',
width: 120,
},
{
title: '质量模板',
dataIndex: 'template',
width: 120,
},
{
title: '关联字段',
dataIndex: 'keyField',
width: 120,
// edit: true,
},
{
title: '规则描述',
dataIndex: 'described',
width: 120,
},
];
const associationSearchFormSchema: FormSchema[] = [
{
field: 'ruleName',
label: '',
componentProps: {
placeholder: '搜索字段',
},
component: 'Input',
colProps: { span: 5 },
},
];
const [registerAssociationRulesTable] = useTable({
api: async () => {
const response = {
pageNum: '1',
pageSize: '10',
pages: '1',
total: associationData.value.length,
code: '',
message: '',
data: [],
};
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
data = associationData.value.filter((item) => item.parentId !== 0);
return { ...response, data: data };
},
// dataSource: infoData,
columns: associationRulesColumns,
useSearchForm: true,
pagination: false,
formConfig: {
labelWidth: 120,
schemas: associationSearchFormSchema,
autoSubmitOnEnter: true,
},
showIndexColumn: false,
scroll: { y: 400 },
handleSearchInfoFn(info) {
associationData.value = associationRulesData.filter((item) =>
item.ruleName.includes(info.ruleName),
);
// console.log('info', info);
// console.log('tableData', tableData.value);
return info;
},
});
function handleCancel() { function handleCancel() {
changeAble.value = false; changeAble.value = false;
......
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