Commit c9188a82 authored by chenjiahao's avatar chenjiahao

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

parent 13b6cb6a
......@@ -9,11 +9,21 @@ type CheckedType = boolean | string | number;
export const columns: BasicColumn[] = [
{
title: '名称',
title: '质量主体名称',
dataIndex: 'fileName',
width: 150,
slots: { customRender: 'fileName' },
},
{
title: '描述',
dataIndex: 'descripe',
width: 150,
},
{
title: '创建者',
dataIndex: 'holder',
width: 150,
},
{
title: '创建时间',
dataIndex: 'createDate',
......@@ -24,11 +34,6 @@ export const columns: BasicColumn[] = [
dataIndex: 'updateDate',
width: 150,
},
{
title: '拥有者',
dataIndex: 'holder',
width: 150,
},
{
title: '原始主体',
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[] = [
},
];
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[] = [
{
age: 23,
......
......@@ -18,6 +18,10 @@
label: '复制',
onClick: copyButton.bind(null, record),
},
{
label: '关联',
onClick: handleOpenAssociationModal.bind(null, record),
},
{
label: '属性',
onClick: handleEdit.bind(null, record),
......@@ -52,6 +56,7 @@
<CreateMainBodyModal @register="registerCreateCreateMainBodyModal" @success="handleSuccess" />
<MainBodyEdit @register="registerMainBodyEditModal" />
<StorageManageModal @register="registerStorageManageModal" />
<AssociationRulesModal @register="registerAssociationModal" />
</PageWrapper>
</template>
<script lang="ts" setup>
......@@ -80,6 +85,7 @@
import CreateMainBodyModal from '@/views/dataQuality/agentClass/mainBody/createMainBodyModal.vue';
import MainBodyEdit from '@/views/dataQuality/agentClass/mainBody/mainBodyEdit.vue';
import StorageManageModal from '@/views/dataQuality/agentClass/mainBody/storageManageModal.vue';
import AssociationRulesModal from '@/views/dataQuality/agentClass/mainBody/associationRulesModal.vue';
defineOptions({ name: 'AccountManagement' });
const { createMessage, createConfirm } = useMessage();
......@@ -93,6 +99,7 @@
const [registerCreateFileModal, { openModal: openCreateFileModal }] = useModal(); // 新建文件夹弹窗
const [registerMainBodyEditModal, { openModal: openMainBodyEditModal }] = useModal(); // 质量主体编辑
const [registerStorageManageModal, { openModal: openStorageManageModal }] = useModal(); // 存储管理弹窗
const [registerAssociationModal, { openModal: OpenAssociationModal }] = useModal(); // 关联规则弹窗
const searchInfo = reactive<Recordable>({});
const tableData = ref([]);
const [
......@@ -252,6 +259,12 @@
});
}
function handleOpenAssociationModal(record: Recordable) {
OpenAssociationModal(true, {
record,
});
}
/** 删除按钮*/
function handleDelete(record: Recordable) {
tableData.value.splice(
......
......@@ -67,7 +67,9 @@
</div>
</a-tab-pane>
<a-tab-pane key="4" tab="关联规则">
<div v-if="page === '4'"> </div>
<div v-if="page === '4'">
<BasicTable @register="registerAssociationRulesTable" />
</div>
</a-tab-pane>
</Tabs>
</div>
......@@ -89,11 +91,13 @@
infoData,
reviewData,
TreeData,
associationRulesData,
} from '@/views/dataQuality/agentClass/mainBody/dataQualityMainBodyData';
const { createMessage } = useMessage();
const page = ref('1');
const tableData = ref(infoData);
const associationData = ref(associationRulesData);
const title = ref('');
const sql = ref('');
let changeAble = ref(false);
......@@ -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() {
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