Commit c5048e2f authored by 罗林杰's avatar 罗林杰

修改元数据

parent deee7f81
...@@ -702,3 +702,88 @@ export const physicsSchema: FormSchema[] = [ ...@@ -702,3 +702,88 @@ export const physicsSchema: FormSchema[] = [
required: true, required: true,
}, },
]; ];
export const versionFormSchema: FormSchema[] = [
{
field: 'versionName',
label: '版本名称',
component: 'Input',
colProps: { span: 8 },
},
];
export const versionColumns: BasicColumn[] = [
{
title: '版本ID',
dataIndex: 'versionId',
width: 120,
},
{
title: '版本名称',
dataIndex: 'name',
width: 120,
},
{
title: '提交者',
dataIndex: 'user',
width: 120,
},
{
title: '提交时间',
dataIndex: 'date',
width: 120,
},
{
title: '备注',
dataIndex: 'remark',
width: 120,
},
];
export const versionSchema: DescItem[] = [
{
field: 'dataSource',
label: '数据源',
},
{
field: 'type',
label: '资产类型',
},
{
field: 'owner',
label: '拥有者',
},
{
field: 'createTime',
label: '版本生成时间',
},
];
export const structureColumns: BasicColumn[] = [
{
title: '列名',
dataIndex: 'name',
width: 120,
},
{
title: '字段类型',
dataIndex: 'partitionKey',
width: 120,
},
{
title: '长度',
dataIndex: 'length',
width: 120,
},
{
title: '精度',
dataIndex: 'precision',
width: 120,
},
{
title: '可空',
dataIndex: 'isNull',
width: 120,
},
{
title: '注释',
dataIndex: 'remark',
width: 120,
},
];
...@@ -933,3 +933,96 @@ export const physicsData: any[] = [ ...@@ -933,3 +933,96 @@ export const physicsData: any[] = [
user: '王五', user: '王五',
}, },
]; ];
export const versionData: any[] = [
{
versionId: '1',
name: 'V1',
user: '张三',
date: '2023-01-10',
remark: '首次版本发布',
},
{
versionId: '2',
name: 'V2',
user: '李四',
date: '2023-02-15',
remark: '修复已知bug,优化用户体验',
},
{
versionId: '3',
name: 'V3',
user: '王五',
date: '2023-03-22',
remark: '增加数据分析模块',
},
{
versionId: '4',
name: 'V4',
user: '赵六',
date: '2023-05-08',
remark: '提高系统响应速度',
},
{
versionId: '5',
name: 'V5',
user: '孙七',
date: '2023-07-12',
remark: '优化用户界面设计',
},
];
export const versionDetailData = {
dataSource: 'Inceptor',
type: 'MySQL',
owner: '张三',
createTime: '2023-06-14 10:04:04',
};
export const structureData: any[] = [
{
name: 'id',
partitionKey: 'INT',
length: '11',
precision: 'null',
isNull: 'NO',
remark: '主键',
},
{
name: 'username',
partitionKey: 'VARCHAR',
length: '50',
precision: 'null',
isNull: 'YES',
remark: '用户名',
},
{
name: 'email',
partitionKey: 'VARCHAR',
length: '100',
precision: 'null',
isNull: 'YES',
remark: '邮箱地址',
},
{
name: 'age',
partitionKey: 'INT',
length: '3',
precision: 'null',
isNull: 'YES',
remark: '年龄',
},
{
name: 'create_time',
partitionKey: 'DATETIME',
length: 'null',
precision: 'null',
isNull: 'NO',
remark: '创建时间',
},
{
name: 'update_time',
partitionKey: 'DATETIME',
length: 'null',
precision: 'null',
isNull: 'YES',
remark: '更新时间',
},
];
<template> <template>
<BasicModal <BasicModal
width="55%" width="40%"
v-bind="$attrs" v-bind="$attrs"
@register="registerModal" @register="registerModal"
:title="title" :title="title"
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
}, },
pagination: false, pagination: false,
columns: recommendColumns, columns: recommendColumns,
useSearchForm: true, useSearchForm: false,
showTableSetting: false, showTableSetting: false,
bordered: true, bordered: true,
showIndexColumn: false, showIndexColumn: false,
......
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
<a-button style="margin-right: 5px" type="primary" @click="handleNew">刷新</a-button> <a-button style="margin-right: 5px" type="primary" @click="handleNew">刷新</a-button>
<a-button style="margin-right: 5px" type="primary" @click="handleNew">导出</a-button> <a-button style="margin-right: 5px" type="primary" @click="handleNew">导出</a-button>
<a-button style="margin-right: 5px" type="primary" @click="handleNew">血缘分析</a-button> <a-button style="margin-right: 5px" type="primary" @click="handleNew">血缘分析</a-button>
<a-button style="margin-right: 5px" type="primary" @click="handleNew">版本管理</a-button> <a-button style="margin-right: 5px" type="primary" @click="handleVersion"
>版本管理</a-button
>
</div> </div>
<Tabs v-model:activeKey="page" size="large"> <Tabs v-model:activeKey="page" size="large">
<a-tab-pane key="1" tab="概览"> <a-tab-pane key="1" tab="概览">
...@@ -108,6 +110,7 @@ ...@@ -108,6 +110,7 @@
<recommendModal @register="registerRecommendModal" /> <recommendModal @register="registerRecommendModal" />
<quotationModal @register="registerQuotationModal" /> <quotationModal @register="registerQuotationModal" />
<physicsModal @register="registerPhysicsModal" /> <physicsModal @register="registerPhysicsModal" />
<versionModal @register="registerVersionModal" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { BasicTable, TableAction, useTable } from '@/components/Table'; import { BasicTable, TableAction, useTable } from '@/components/Table';
...@@ -149,6 +152,7 @@ ...@@ -149,6 +152,7 @@
import recommendModal from './recommendModal.vue'; import recommendModal from './recommendModal.vue';
import quotationModal from './quotationModal.vue'; import quotationModal from './quotationModal.vue';
import physicsModal from './physicsModal.vue'; import physicsModal from './physicsModal.vue';
import versionModal from './versionModal.vue';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const page = ref('1'); const page = ref('1');
...@@ -158,6 +162,7 @@ ...@@ -158,6 +162,7 @@
const [registerRecommendModal, { openModal: openRecommendModal }] = useModal(); const [registerRecommendModal, { openModal: openRecommendModal }] = useModal();
const [registerQuotationModal, { openModal: openQuotationModal }] = useModal(); const [registerQuotationModal, { openModal: openQuotationModal }] = useModal();
const [registerPhysicsModal, { openModal: openPhysicsModal }] = useModal(); const [registerPhysicsModal, { openModal: openPhysicsModal }] = useModal();
const [registerVersionModal, { openModal: openVersionModal }] = useModal();
const [registerTable, { reload, getForm }] = useTable({ const [registerTable, { reload, getForm }] = useTable({
api: async () => { api: async () => {
const response = { const response = {
...@@ -282,6 +287,11 @@ ...@@ -282,6 +287,11 @@
title: '生成物理模型', title: '生成物理模型',
}); });
} }
function handleVersion() {
openVersionModal(true, {
title: '版本管理',
});
}
function handleEdit() { function handleEdit() {
createMessage.success('解绑成功'); createMessage.success('解绑成功');
} }
......
<template>
<BasicModal
v-bind="$attrs"
width="60%"
@register="registerDbModal"
title="版本详情"
:showOkBtn="false"
>
<Description
size="middle"
title="基本属性"
:bordered="false"
:column="3"
:data="versionDetailData"
:schema="versionSchema"
/>
<Description size="middle" title="表结构" :bordered="false" />
<BasicTable @register="registerStructureTable" />
</BasicModal>
</template>
<script setup lang="ts">
import BasicModal from '@/components/Modal/src/BasicModal.vue';
import { ref } from 'vue';
import { structureColumns, versionSchema } from '@/views/metadata/data';
import { dbData, structureData, versionDetailData } from '@/views/metadata/metadataData';
import { Description } from '@/components/Description';
import { useModalInner } from '@/components/Modal';
import { BasicTable, useTable } from '@/components/Table';
const tableData = ref([]);
const title = ref('');
const tableTitle = ref('');
const [registerDbModal, { closeModal }] = useModalInner(async (data) => {
title.value = data.workSpaceName;
tableTitle.value = data.name;
tableData.value = dbData;
});
const [registerStructureTable] = useTable({
dataSource: structureData,
columns: structureColumns,
pagination: false,
showIndexColumn: false,
scroll: { y: 300 },
});
</script>
<style scoped lang="less"></style>
<template>
<BasicModal
width="60%"
v-bind="$attrs"
@register="registerModal"
:title="title"
@ok="handleSubmit"
>
<BasicTable @register="registerTable">
<template #bodyCell="{ column }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
label: '提交',
onClick: handleEdit.bind(null),
},
{
label: '查看',
onClick: handleDetail.bind(null),
},
{
color: 'error',
label: '删除',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null),
},
},
]"
/>
</template>
</template>
</BasicTable>
</BasicModal>
<versionDetailModal @register="registerVersionDetailModal" />
</template>
<script lang="ts" setup>
import { onMounted, ref } from 'vue';
import { BasicModal, useModal, useModalInner } from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import { BasicTable, TableAction, useTable } from '@/components/Table';
import { versionColumns, versionFormSchema } from '@/views/metadata/data';
import { versionData } from '@/views/metadata/metadataData';
import versionDetailModal from './versionDetailModal.vue';
defineOptions({ name: 'KnowledgeModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const title = ref();
const tableData = ref([]);
const [registerVersionDetailModal, { openModal: openVersionDetailModal }] = useModal();
const [registerTable, { reload }] = useTable({
api: async () => {
const response = {
pageNum: '1',
pageSize: '10',
pages: '1',
total: tableData.value.length,
code: '',
message: '',
data: [],
};
var data = [];
data = tableData.value;
return { ...response, data: data };
},
formConfig: {
labelWidth: 120,
schemas: versionFormSchema,
autoSubmitOnEnter: true,
},
columns: versionColumns,
useSearchForm: true,
showTableSetting: false,
bordered: true,
showIndexColumn: false,
actionColumn: {
width: 150,
title: '操作',
dataIndex: 'action',
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
await reload();
setModalProps({ confirmLoading: false });
title.value = data.title;
});
async function handleSubmit() {
closeModal();
createMessage.success('提交成功');
}
function handleDetail() {
openVersionDetailModal(true, {
title: '版本详情',
});
}
function handleEdit() {
createMessage.success('提交成功');
}
function handleDelete() {
createMessage.success('删除成功');
}
onMounted(() => {
tableData.value = versionData;
});
</script>
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