Commit 5267ff3c authored by liwei's avatar liwei

元模型4个模块修改

parent 1e9f78db
...@@ -176,8 +176,8 @@ export const ModelRoute: AppRouteRecordRaw = { ...@@ -176,8 +176,8 @@ export const ModelRoute: AppRouteRecordRaw = {
}, },
}, },
{ {
path: 'logicModel/EditRowTable', path: 'logicModels/EditRowTable',
name: 'logicModel', name: 'logicModels',
component: () => import('@/views/metaModel/logicModel/EditRowTable.vue'), component: () => import('@/views/metaModel/logicModel/EditRowTable.vue'),
meta: { meta: {
title: '编辑逻辑模型', title: '编辑逻辑模型',
......
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
/** 取消*/ /** 取消*/
function cancel() { function cancel() {
go('/metaModel/physicsModel/index'); go('/metaModel/knowledgeModel/index');
} }
/** 删除按钮*/ /** 删除按钮*/
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
// 页面左侧点击返回链接时的操作 // 页面左侧点击返回链接时的操作
function goBack() { function goBack() {
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页 // 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
go('/metaModel/physicsModel/index'); go('/metaModel/knowledgeModel/index');
} }
</script> </script>
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
} }
function handleSelect(keys) { function handleSelect(keys) {
// emit('select', keys[0]); emit('select', keys[0]);
if (keys[0] >= 200) { if (keys[0] >= 200) {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
......
<template>
<BasicModal width="50%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicTable @register="registerTable1" class="height" style="height: 200px;">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="表信息" allowClear></a-input>
</template>
</BasicTable>
<BasicTable @register="registerTable2" class="height">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="列信息" allowClear></a-input>
</template>
</BasicTable>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive, onMounted} from 'vue';
import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import {useTable,BasicTable} from "@/components/Table";
import {dataSetColumns} from "@/views/metaModel/knowledgeModel/model.data";
import {setColumnData,setTableData} from '@/views/metaModel/knowledgeModel/modelData.ts'
import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage';
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const tableData = ref([])
const columnTableData = ref([])
const go = useGo();
const getTitle = computed(() => ('映射配置'));
const [registerTable1, { reload1 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: tableData.value.length,
code:'',
message:'',
data: [],
};
return { ...response, data: tableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
const [registerTable2, { reload2 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: columnTableData.value.length,
code:'',
message:'',
data: columnTableData.value,
};
return { ...response, data: columnTableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
});
/**确定按钮*/
async function handleSubmit() {
createMessage.success('保存成功!')
closeModal()
}
onMounted(() => {
tableData.value = setTableData
columnTableData.value = setColumnData
});
</script>
<style>
</style>
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
</template> </template>
</BasicTable> </BasicTable>
<ModelModal @register="registerModal" @success="handleSuccess" /> <ModelModal @register="registerModal" @success="handleSuccess" />
<MoveModelModal @register="registerMoveModel" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -50,6 +51,7 @@ ...@@ -50,6 +51,7 @@
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { TreeData } from '@/views/metaModel/knowledgeModel/modelData'; import { TreeData } from '@/views/metaModel/knowledgeModel/modelData';
import {router} from "@/router"; import {router} from "@/router";
import MoveModelModal from "@/views/metaModel/knowledgeModel/moveModel.vue";
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
...@@ -57,8 +59,7 @@ ...@@ -57,8 +59,7 @@
const route = useRoute(); const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerAddUserModal, { openModal: addUserModal }] = useModal(); const [registerMoveModel, { openModal: openMoveModelModal }] = useModal();
const [registerMoveUser, { openModal: openMoveUserModal }] = useModal();
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [ const [
...@@ -67,21 +68,24 @@ ...@@ -67,21 +68,24 @@
] = useTable({ ] = useTable({
title: '', title: '',
api: async (params) => { api: async (params) => {
console.log('params:', params); var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
if (params.modelId == undefined || params.modelId == ''){
data = tableData.value.filter((item) => item.businessId >= 200);
}else if (params.modelId >= 200){
data = tableData.value.filter((item) => item.businessId == params.modelId);
}else {
data = tableData.value.filter((item) => item.parentId == params.modelId);
}
const response = { const response = {
pageNu: '1', pageNu: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: tableData.value.length, total: data.length,
code: '', code: '',
message: '', message: '',
data: [], data: [],
}; };
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var data = [];
data = tableData.value.filter((item) => item.businessId !== 100);
return { ...response, data: data }; return { ...response, data: data };
}, },
rowKey: 'businessId', rowKey: 'businessId',
...@@ -97,6 +101,7 @@ ...@@ -97,6 +101,7 @@
}, },
useSearchForm: true, useSearchForm: true,
showTableSetting: false, showTableSetting: false,
showIndexColumn: false,
bordered: true, bordered: true,
handleSearchInfoFn(info) { handleSearchInfoFn(info) {
return info; return info;
...@@ -112,6 +117,7 @@ ...@@ -112,6 +117,7 @@
function handleCreateModel() { function handleCreateModel() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建元模型'
}); });
} }
...@@ -119,12 +125,13 @@ ...@@ -119,12 +125,13 @@
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建文件夹'
}); });
} }
/** 移动按钮*/ /** 移动按钮*/
function handleMove(record: Recordable) { function handleMove(record: Recordable) {
openMoveUserModal(true, { openMoveModelModal(true, {
record, record,
isMove: true, isMove: true,
}); });
...@@ -132,9 +139,9 @@ ...@@ -132,9 +139,9 @@
/** 编辑按钮*/ /** 编辑按钮*/
function handleEdit(record: Recordable) { function handleEdit(record: Recordable) {
openModal(true, { router.push({
record, path: '/metaModel/knowledgeModel/EditRowTable',
isUpdate: true, query: {},
}); });
} }
...@@ -198,7 +205,7 @@ ...@@ -198,7 +205,7 @@
username: params.username, username: params.username,
flag: params.flag, flag: params.flag,
}); });
searchInfo.institutionId = params.institutionId; searchInfo.modelId = params.modelId;
} }
} }
}); });
......
...@@ -30,6 +30,49 @@ export const columns: BasicColumn[] = [ ...@@ -30,6 +30,49 @@ export const columns: BasicColumn[] = [
width: 150, width: 150,
}, },
]; ];
export const dataSetColumns: BasicColumn[] = [
{
title: '元数据',
dataIndex: 'orginalData',
width: 150,
},
{
title: '物理模型',
dataIndex: 'physicsModel',
width: 150,
editable: true,
edit: true,
editComponent:'Select',
editComponentProps: {
options: [
{
label: '表名',
value: '1',
},
{
label: '中文名',
value: '2',
},
{
label: '列名',
value: '3',
},
{
label: '列中文名',
value: '4',
},
{
label: '英文名',
value: '5',
},
{
label: '列英文名',
value: '6',
},
],
},
},
];
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
field: 'name', field: 'name',
...@@ -57,7 +100,7 @@ export const modelFormSchema: any[] = [ ...@@ -57,7 +100,7 @@ export const modelFormSchema: any[] = [
required: true, required: true,
}, },
{ {
field: 'name', field: 'modelName',
label: '元模型名称', label: '元模型名称',
component: 'Input', component: 'Input',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
...@@ -68,18 +111,62 @@ export const modelFormSchema: any[] = [ ...@@ -68,18 +111,62 @@ export const modelFormSchema: any[] = [
}, },
], ],
}, },
{
field: 'type',
label: '数据资产类型',
component: 'Select',
colProps: { lg: 24, md: 24 },
componentProps: {
options:[
{
label: 'ArgoDB表',
value: 'ArgoDB',
},
{
label: 'DB2表',
value: 'DB2',
},
{
label: '达梦数据库表',
value: '达梦',
},
{
label: 'Hana表',
value: 'Hana',
},
{
label: 'Inceptor表',
value: 'Inceptor',
},
{
label: 'KunDB表',
value: 'KunDB',
},
{
label: 'MySQL表',
value: 'MySQL',
},
]
},
rules: [
{
required: true,
message: '请输入数据资产类型',
},
],
},
]; ];
/**移动*/ /**移动*/
export const MoveFormSchema: any[] = [ export const MoveFormSchema: any[] = [
{ {
field: 'institutionId', field: 'modelId',
label: '所属机构', label: '路径',
component: 'TreeSelect', component: 'TreeSelect',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
componentProps: { componentProps: {
fieldNames: { fieldNames: {
label: 'institutionName', label: 'modelName',
value: 'businessId', value: 'businessId',
}, },
getPopupContainer: () => document.body, getPopupContainer: () => document.body,
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
v-bind="$attrs" v-bind="$attrs"
@register="registerModal" @register="registerModal"
:title="getTitle" :title="getTitle"
@ok="handleSubmit"
> >
<PageWrapper title="" class="content-padding" contentBackground> <PageWrapper title="" class="content-padding" contentBackground>
<template #footer> <template #footer>
...@@ -134,13 +133,14 @@ ...@@ -134,13 +133,14 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<DetailSetModal @register="registerSetModal" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { ref, computed, onMounted } from 'vue'; import { ref, computed, onMounted } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { router } from '@/router'; import { router } from '@/router';
import { useTable, BasicTable } from '@/components/Table'; import { useTable, BasicTable } from '@/components/Table';
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
} from '@/views/metaModel/knowledgeModel/modelData'; } from '@/views/metaModel/knowledgeModel/modelData';
import Icon from '@/components/Icon/Icon.vue'; import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import DetailSetModal from './detailSetModal.vue';
defineOptions({ name: 'ModelModal' }); defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
const areaTableData = ref([]); const areaTableData = ref([]);
const go = useGo(); const go = useGo();
const getTitle = computed(() => 'Inceptor元模型'); const getTitle = computed(() => 'Inceptor元模型');
const [registerSetModal, { openModal:setModal }] = useModal();
const [registerTable1, { reload1, getForm1 }] = useTable({ const [registerTable1, { reload1, getForm1 }] = useTable({
title: '', title: '',
api: async () => { api: async () => {
...@@ -179,7 +180,6 @@ ...@@ -179,7 +180,6 @@
message: '', message: '',
data: [], data: [],
}; };
console.log('tableData.value:', tableData.value);
return { ...response, data: tableData.value }; return { ...response, data: tableData.value };
}, },
columns, columns,
...@@ -274,15 +274,6 @@ ...@@ -274,15 +274,6 @@
setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false }); setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false });
}); });
/**确定按钮*/
async function handleSubmit() {
router.push({
path: '/metaModel/physicsModel/EditRowTable',
query: {},
});
closeModal();
}
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
createMessage.success('删除成功!'); createMessage.success('删除成功!');
...@@ -290,12 +281,14 @@ ...@@ -290,12 +281,14 @@
/** 配置按钮*/ /** 配置按钮*/
function handleSetButton() { function handleSetButton() {
console.log('1111'); setModal(true, {
isUpdate: false,
});
} }
/** 修改按钮*/ /** 修改按钮*/
function handleUpdateButton() { function handleUpdateButton() {
go('/metaModel/physicsModel/editRowTable'); go('/metaModel/knowledgeModel/editRowTable');
} }
onMounted(() => { onMounted(() => {
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
const isUpdate = ref(true); const isUpdate = ref(true);
const isMove = ref(false); const isMove = ref(false);
const rowId = ref(''); const rowId = ref('');
const getTitle = computed(() => title.value);
const title = ref('')
//获取接口数据并放在下拉框里(这里是打开了一个弹框) //获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单 //初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({ const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
...@@ -42,12 +44,24 @@ ...@@ -42,12 +44,24 @@
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove; isMove.value = !!data?.isMove;
title.value = data.title
if (unref(isUpdate)) { if (unref(isUpdate)) {
// 获取行数据的id const formData = {
rowId.value = data.record.businessId; modelId: data.record.businessId,
modelName: data.record.modelName,
type: data.record.type
}
// 塞值 // 塞值
setFieldsValue({ setFieldsValue({
...data.record, ...formData,
});
}else {
const formData = {
modelId: '100',
}
// 塞值
setFieldsValue({
...formData,
}); });
} }
...@@ -63,7 +77,6 @@ ...@@ -63,7 +77,6 @@
]); ]);
}); });
const getTitle = computed(() => '新建元模型');
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
...@@ -96,11 +109,14 @@ ...@@ -96,11 +109,14 @@
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
const values = await validate(); const values = await validate();
router.push({ if (title.value == '新建元模型'){
path: '/metaModel/knowledgeModel/EditRowTable', router.push({
query: {}, path: '/metaModel/knowledgeModel/EditRowTable',
}); query: {},
});
}else {
createMessage.success('新增成功')
}
closeModal(); closeModal();
} }
</script> </script>
<template>
<BasicModal width="40%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { modelFormSchema, MoveFormSchema} from './model.data';
import { useMessage } from '@/hooks/web/useMessage';
import { TreeData } from "@/views/metaModel/knowledgeModel/modelData";
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const isMove = ref(false);
const rowId = ref('');
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: MoveFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
const formData = {
modelId: data.record.businessId
}
// 塞值
setFieldsValue({
...formData,
});
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema([
{
field: 'modelId',
componentProps: {
treeData: treeList
},
},
]);
});
const getTitle = computed(() => ('移动'));
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项
const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组
return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
/**确定按钮*/
async function handleSubmit() {
createMessage.success('修改成功');
closeModal()
}
</script>
...@@ -36,92 +36,90 @@ ...@@ -36,92 +36,90 @@
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted } from 'vue'; import { reactive, onMounted } from 'vue';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import AddTypeModal from './addTypeModal.vue';
import AddTypeModal from './addTypeModal.vue'; import ColumnTable from './ColumnTable.vue';
import ColumnTable from './ColumnTable.vue'; import AreaTable from './AreaTable.vue';
import AreaTable from './AreaTable.vue'; import Table from './Table.vue';
import Table from './Table.vue'; import BucketTable from './BucketTable.vue';
import BucketTable from './BucketTable.vue';
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const filterStore = useFilterStore(); const route = useRoute();
const route = useRoute(); const go = useGo();
const go = useGo(); const [registerModal, { openModal }] = useModal();
const [registerModal, { openModal }] = useModal(); const [registerTableModal, { openModal: openTableModal }] = useModal();
const [registerTableModal, { openModal: openTableModal }] = useModal(); const [registerAreaTableModal, { openModal: openAreaTableModal }] = useModal();
const [registerAreaTableModal, { openModal: openAreaTableModal }] = useModal(); const [registerColumnTableModal, { openModal: openColumnTableModal }] = useModal();
const [registerColumnTableModal, { openModal: openColumnTableModal }] = useModal(); const [registerBucketTableModal, { openModal: openBucketTableModal }] = useModal();
const [registerBucketTableModal, { openModal: openBucketTableModal }] = useModal(); const [registerAddUserModal, { openModal: addUserModal }] = useModal();
const [registerAddUserModal, { openModal: addUserModal }] = useModal(); const [registerMoveUser, { openModal: openMoveUserModal }] = useModal();
const [registerMoveUser, { openModal: openMoveUserModal }] = useModal(); const searchInfo = reactive<Recordable>({});
const searchInfo = reactive<Recordable>({});
/** 新增元模型*/ /** 新增元模型*/
function handleCreateModel() { function handleCreateModel() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
}); });
} }
/** 新增文件夹*/ /** 新增文件夹*/
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
}); });
} }
/** 编辑按钮*/ /** 编辑按钮*/
function handleEdit(record: Recordable) { function handleEdit(record: Recordable) {
openModal(true, { openModal(true, {
record, record,
isUpdate: true, isUpdate: true,
}); });
} }
/** 保存*/ /** 保存*/
function save() { function save() {
createMessage.success('保存成功!'); createMessage.success('保存成功!');
} }
/** 添加类别*/ /** 添加类别*/
function handleCreateType() { function handleCreateType() {
openModal(true, {}); openModal(true, {});
} }
/** 取消*/ /** 取消*/
function cancel() { function cancel() {
go('/metaModel/physicsModel/index'); go('/metaModel/logicModel/index');
} }
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
createMessage.success('删除成功!'); createMessage.success('删除成功!');
} }
/** 新增/编辑成功*/ /** 新增/编辑成功*/
function handleSuccess({ isUpdate, values }) {} function handleSuccess({ isUpdate, values }) {}
onMounted(() => {}); onMounted(() => {});
// 页面左侧点击返回链接时的操作 // 页面左侧点击返回链接时的操作
function goBack() { function goBack() {
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页 // 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
go('/metaModel/physicsModel/index'); go('/metaModel/logicModel/index');
} }
</script> </script>
<style> <style>
.height { .height {
.ant-table-container { .ant-table-container {
.ant-table-body { .ant-table-body {
min-height: 800px; min-height: 800px;
}
} }
} }
}
</style> </style>
...@@ -71,7 +71,7 @@ function handleTree(data, id, parentId, children, rootId) { ...@@ -71,7 +71,7 @@ function handleTree(data, id, parentId, children, rootId) {
} }
function handleSelect(keys) { function handleSelect(keys) {
// emit('select', keys[0]); emit('select', keys[0]);
if (keys[0] >= 200) { if (keys[0] >= 200) {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
......
<template>
<BasicModal width="50%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicTable @register="registerTable1" class="height" style="height: 300px;">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="表信息" allowClear></a-input>
</template>
</BasicTable>
<BasicTable @register="registerTable2" class="height" style="height: 300px;">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="列信息" allowClear></a-input>
</template>
</BasicTable>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive, onMounted} from 'vue';
import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import {useTable,BasicTable} from "@/components/Table";
import {dataSetColumns} from "@/views/metaModel/logicModel/model.data";
import {setColumnData,setTableData} from '@/views/metaModel/logicModel/modelData.ts'
import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage';
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const tableData = ref([])
const columnTableData = ref([])
const go = useGo();
const getTitle = computed(() => ('映射配置'));
const [registerTable1, { reload1 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: tableData.value.length,
code:'',
message:'',
data: [],
};
return { ...response, data: tableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
const [registerTable2, { reload2 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: columnTableData.value.length,
code:'',
message:'',
data: columnTableData.value,
};
return { ...response, data: columnTableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
});
/**确定按钮*/
async function handleSubmit() {
createMessage.success('保存成功!')
closeModal()
}
onMounted(() => {
tableData.value = setTableData
columnTableData.value = setColumnData
});
</script>
<style>
</style>
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
</template> </template>
</BasicTable> </BasicTable>
<ModelModal @register="registerModal" @success="handleSuccess" /> <ModelModal @register="registerModal" @success="handleSuccess" />
<MoveModelModal @register="registerMoveModel" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -49,6 +50,8 @@ ...@@ -49,6 +50,8 @@
import { useRoute, onBeforeRouteLeave } from 'vue-router'; import { useRoute, onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { TreeData } from '@/views/metaModel/logicModel/modelData'; import { TreeData } from '@/views/metaModel/logicModel/modelData';
import MoveModelModal from "@/views/metaModel/logicModel/moveModel.vue";
import {router} from "@/router";
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
...@@ -56,8 +59,7 @@ ...@@ -56,8 +59,7 @@
const route = useRoute(); const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerAddUserModal, { openModal: addUserModal }] = useModal(); const [registerMoveModel, { openModal: openMoveModelModal }] = useModal();
const [registerMoveUser, { openModal: openMoveUserModal }] = useModal();
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [ const [
...@@ -66,21 +68,24 @@ ...@@ -66,21 +68,24 @@
] = useTable({ ] = useTable({
title: '', title: '',
api: async (params) => { api: async (params) => {
console.log('params:', params); var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
if (params.modelId == undefined || params.modelId == ''){
data = tableData.value.filter((item) => item.businessId >= 200);
}else if (params.modelId >= 200){
data = tableData.value.filter((item) => item.businessId == params.modelId);
}else {
data = tableData.value.filter((item) => item.parentId == params.modelId);
}
const response = { const response = {
pageNu: '1', pageNu: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: tableData.value.length, total: data.length,
code: '', code: '',
message: '', message: '',
data: [], data: [],
}; };
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var data = [];
data = tableData.value.filter((item) => item.businessId !== 100);
return { ...response, data: data }; return { ...response, data: data };
}, },
rowKey: 'businessId', rowKey: 'businessId',
...@@ -96,6 +101,7 @@ ...@@ -96,6 +101,7 @@
}, },
useSearchForm: true, useSearchForm: true,
showTableSetting: false, showTableSetting: false,
showIndexColumn: false,
bordered: true, bordered: true,
handleSearchInfoFn(info) { handleSearchInfoFn(info) {
return info; return info;
...@@ -111,6 +117,7 @@ ...@@ -111,6 +117,7 @@
function handleCreateModel() { function handleCreateModel() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建元模型'
}); });
} }
...@@ -118,12 +125,13 @@ ...@@ -118,12 +125,13 @@
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建文件夹'
}); });
} }
/** 移动按钮*/ /** 移动按钮*/
function handleMove(record: Recordable) { function handleMove(record: Recordable) {
openMoveUserModal(true, { openMoveModelModal(true, {
record, record,
isMove: true, isMove: true,
}); });
...@@ -131,9 +139,9 @@ ...@@ -131,9 +139,9 @@
/** 编辑按钮*/ /** 编辑按钮*/
function handleEdit(record: Recordable) { function handleEdit(record: Recordable) {
openModal(true, { router.push({
record, path: '/metaModel/logicModels/EditRowTable',
isUpdate: true, query: {},
}); });
} }
...@@ -197,7 +205,7 @@ ...@@ -197,7 +205,7 @@
username: params.username, username: params.username,
flag: params.flag, flag: params.flag,
}); });
searchInfo.institutionId = params.institutionId; searchInfo.modelId = params.modelId;
} }
} }
}); });
......
...@@ -57,7 +57,7 @@ export const modelFormSchema: any[] = [ ...@@ -57,7 +57,7 @@ export const modelFormSchema: any[] = [
required: true, required: true,
}, },
{ {
field: 'name', field: 'modelName',
label: '元模型名称', label: '元模型名称',
component: 'Input', component: 'Input',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
...@@ -68,18 +68,62 @@ export const modelFormSchema: any[] = [ ...@@ -68,18 +68,62 @@ export const modelFormSchema: any[] = [
}, },
], ],
}, },
{
field: 'type',
label: '数据资产类型',
component: 'Select',
colProps: { lg: 24, md: 24 },
componentProps: {
options:[
{
label: 'ArgoDB表',
value: 'ArgoDB',
},
{
label: 'DB2表',
value: 'DB2',
},
{
label: '达梦数据库表',
value: '达梦',
},
{
label: 'Hana表',
value: 'Hana',
},
{
label: 'Inceptor表',
value: 'Inceptor',
},
{
label: 'KunDB表',
value: 'KunDB',
},
{
label: 'MySQL表',
value: 'MySQL',
},
]
},
rules: [
{
required: true,
message: '请输入数据资产类型',
},
],
},
]; ];
/**移动*/ /**移动*/
export const MoveFormSchema: any[] = [ export const MoveFormSchema: any[] = [
{ {
field: 'institutionId', field: 'modelId',
label: '所属机构', label: '路径',
component: 'TreeSelect', component: 'TreeSelect',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
componentProps: { componentProps: {
fieldNames: { fieldNames: {
label: 'institutionName', label: 'modelName',
value: 'businessId', value: 'businessId',
}, },
getPopupContainer: () => document.body, getPopupContainer: () => document.body,
...@@ -87,3 +131,63 @@ export const MoveFormSchema: any[] = [ ...@@ -87,3 +131,63 @@ export const MoveFormSchema: any[] = [
required: true, required: true,
}, },
]; ];
export const dataSetColumns: BasicColumn[] = [
{
title: '元数据',
dataIndex: 'orginalData',
width: 150,
},
{
title: '物理模型',
dataIndex: 'physicsModel',
width: 150,
editable: true,
edit: true,
editComponent:'Select',
editComponentProps: {
options: [
{
label: '表名',
value: '1',
},
{
label: '中文名',
value: '2',
},
{
label: '列名',
value: '3',
},
{
label: '列中文名',
value: '4',
},
{
label: '英文名',
value: '5',
},
{
label: '列英文名',
value: '6',
},
{
label: '实体英文名',
value: '7',
},
{
label: '实体名称',
value: '8',
},
{
label: '属性描述',
value: '9',
},
{
label: '实体描述',
value: '10',
},
],
},
},
];
This diff is collapsed.
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
v-bind="$attrs" v-bind="$attrs"
@register="registerModal" @register="registerModal"
:title="getTitle" :title="getTitle"
@ok="handleSubmit"
> >
<PageWrapper title="" class="content-padding" contentBackground> <PageWrapper title="" class="content-padding" contentBackground>
<template #footer> <template #footer>
...@@ -48,7 +47,7 @@ ...@@ -48,7 +47,7 @@
</template> </template>
<BasicTable @register="registerTable1" class="height"> <BasicTable @register="registerTable1" class="height">
<template #toolbar> <template #toolbar>
<a-input style="width: 200px; margin-right: auto" default-value="信息" allowClear /> <a-input style="width: 200px; margin-right: auto" default-value="基本信息" allowClear />
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
...@@ -70,7 +69,7 @@ ...@@ -70,7 +69,7 @@
</BasicTable> </BasicTable>
<BasicTable @register="registerTable2" class="height"> <BasicTable @register="registerTable2" class="height">
<template #toolbar> <template #toolbar>
<a-input style="width: 200px; margin-right: auto" default-value="分桶信息" allowClear /> <a-input style="width: 200px; margin-right: auto" default-value="实体信息" allowClear />
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
...@@ -134,13 +133,14 @@ ...@@ -134,13 +133,14 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<DetailSetModal @register="registerSetModal" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { ref, computed, onMounted } from 'vue'; import { ref, computed, onMounted } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { router } from '@/router'; import { router } from '@/router';
import { useTable, BasicTable } from '@/components/Table'; import { useTable, BasicTable } from '@/components/Table';
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
} from '@/views/metaModel/logicModel/modelData'; } from '@/views/metaModel/logicModel/modelData';
import Icon from '@/components/Icon/Icon.vue'; import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import DetailSetModal from './detailSetModal.vue';
defineOptions({ name: 'ModelModal' }); defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
const areaTableData = ref([]); const areaTableData = ref([]);
const go = useGo(); const go = useGo();
const getTitle = computed(() => 'Inceptor元模型'); const getTitle = computed(() => 'Inceptor元模型');
const [registerSetModal, { openModal:setModal }] = useModal();
const [registerTable1, { reload1, getForm1 }] = useTable({ const [registerTable1, { reload1, getForm1 }] = useTable({
title: '', title: '',
api: async () => { api: async () => {
...@@ -179,7 +180,6 @@ ...@@ -179,7 +180,6 @@
message: '', message: '',
data: [], data: [],
}; };
console.log('tableData.value:', tableData.value);
return { ...response, data: tableData.value }; return { ...response, data: tableData.value };
}, },
columns, columns,
...@@ -274,15 +274,6 @@ ...@@ -274,15 +274,6 @@
setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false }); setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false });
}); });
/**确定按钮*/
async function handleSubmit() {
router.push({
path: '/metaModel/physicsModel/EditRowTable',
query: {},
});
closeModal();
}
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
createMessage.success('删除成功!'); createMessage.success('删除成功!');
...@@ -290,12 +281,14 @@ ...@@ -290,12 +281,14 @@
/** 配置按钮*/ /** 配置按钮*/
function handleSetButton() { function handleSetButton() {
console.log('1111'); setModal(true, {
isUpdate: false,
});
} }
/** 修改按钮*/ /** 修改按钮*/
function handleUpdateButton() { function handleUpdateButton() {
go('/metaModel/physicsModel/editRowTable'); go('/metaModel/logicModels/EditRowTable');
} }
onMounted(() => { onMounted(() => {
......
...@@ -10,97 +10,109 @@ ...@@ -10,97 +10,109 @@
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, computed, unref } from 'vue'; import { ref, computed, unref } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import { modelFormSchema } from './model.data'; import { modelFormSchema } from './model.data';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { TreeData } from '@/views/metaModel/logicModel/modelData'; import { TreeData } from '@/views/metaModel/logicModel/modelData';
import { router } from '@/router'; import { router } from '@/router';
defineOptions({ name: 'ModelModal' }); defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const isUpdate = ref(true); const isUpdate = ref(true);
const isMove = ref(false); const rowId = ref('');
const rowId = ref(''); const title = ref('')
//获取接口数据并放在下拉框里(这里是打开了一个弹框) const getTitle = computed(() => title.value);
//初始化表单 //获取接口数据并放在下拉框里(这里是打开了一个弹框)
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({ //初始化表单
labelWidth: 100, const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
baseColProps: { lg: 12, md: 24 }, labelWidth: 100,
schemas: modelFormSchema, baseColProps: { lg: 12, md: 24 },
showActionButtonGroup: false, schemas: modelFormSchema,
actionColOptions: { showActionButtonGroup: false,
span: 23, actionColOptions: {
}, span: 23,
}); },
//初始化弹框 });
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { //初始化弹框
resetFields(); const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
setModalProps({ confirmLoading: false }); resetFields();
isUpdate.value = !!data?.isUpdate; setModalProps({ confirmLoading: false });
isMove.value = !!data?.isMove; isUpdate.value = !!data?.isUpdate;
if (unref(isUpdate)) { title.value = data.title
// 获取行数据的id if (unref(isUpdate)) {
rowId.value = data.record.businessId; const formData = {
// 塞值 modelId: data.record.businessId,
setFieldsValue({ modelName: data.record.modelName,
...data.record, type: data.record.type
}); }
// 塞值
setFieldsValue({
...formData,
});
}else {
const formData = {
modelId: '100',
} }
// 塞值
setFieldsValue({
...formData,
});
}
const treeList = handleTree(TreeData, 'businessId', undefined, undefined, undefined); const treeList = handleTree(TreeData, 'businessId', undefined, undefined, undefined);
console.log('treeList', treeList); updateSchema([
updateSchema([ {
{ field: 'modelId',
field: 'modelId', componentProps: {
componentProps: { treeData: treeList,
treeData: treeList,
},
}, },
]); },
}); ]);
});
const getTitle = computed(() => '新建元模型');
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
parentId = parentId || 'parentId'; parentId = parentId || 'parentId';
children = children || 'children'; children = children || 'children';
rootId = rootId =
rootId || rootId ||
Math.min.apply( Math.min.apply(
Math, Math,
data.map((item) => { data.map((item) => {
return item[parentId]; return item[parentId];
}), }),
) || ) ||
0; 0;
// 对源数据深度克隆 // 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data)); const cloneData = JSON.parse(JSON.stringify(data));
// 循环所有项 // 循环所有项
const treeData = cloneData.filter((father) => { const treeData = cloneData.filter((father) => {
const branchArr = cloneData.filter((child) => { const branchArr = cloneData.filter((child) => {
// 返回每一项的子级数组 // 返回每一项的子级数组
return father[id] === child[parentId]; return father[id] === child[parentId];
});
branchArr.length > 0 ? (father.children = branchArr) : '';
// 返回第一层
return father[parentId] === rootId;
}); });
return treeData !== '' ? treeData : data; branchArr.length > 0 ? (father.children = branchArr) : '';
} // 返回第一层
return father[parentId] === rootId;
});
return treeData !== '' ? treeData : data;
}
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
const values = await validate(); const values = await validate();
router.push({ if (title.value == '新建元模型'){
path: '/metaModel/logicModel/EditRowTable', // router.push({
query: {}, // path: '/metaModel/logicModel/EditRowTable',
}); // query: {},
// });
closeModal(); }else {
} createMessage.success('新增成功')
}
closeModal();
}
</script> </script>
<template>
<BasicModal width="40%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import {modelFormSchema, MoveFormSchema} from './model.data';
import { useMessage } from '@/hooks/web/useMessage';
import { TreeData } from "@/views/metaModel/logicModel/modelData";
defineOptions({ name: 'ModelModal' });
const getTitle = computed(() => ('移动'));
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const isMove = ref(false);
const rowId = ref('');
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: MoveFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove;
const formData = {
modelId: data.record.businessId
}
// 塞值
setFieldsValue({
...formData,
});
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema([
{
field: 'modelId',
componentProps: {
treeData: treeList
},
},
]);
});
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项
const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组
return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
/**确定按钮*/
async function handleSubmit() {
createMessage.success('修改成功');
closeModal()
}
</script>
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
} }
function handleSelect(keys) { function handleSelect(keys) {
// emit('select', keys[0]); emit('select', keys[0]);
if (keys[0] >= 200){ if (keys[0] >= 200){
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
......
...@@ -47,10 +47,11 @@ ...@@ -47,10 +47,11 @@
import ModelModal from './modelModal.vue'; import ModelModal from './modelModal.vue';
import { columns, searchFormSchema } from './model.data'; import { columns, searchFormSchema } from './model.data';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import { useRoute,onBeforeRouteLeave } from 'vue-router'; import { useRoute } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import {TreeData} from "@/views/metaModel/physicsModel/modelData"; import { TreeData } from "@/views/metaModel/physicsModel/modelData";
import MoveModelModal from "@/views/metaModel/physicsModel/moveModel.vue"; import MoveModelModal from "@/views/metaModel/physicsModel/moveModel.vue";
import {router} from "@/router";
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
...@@ -58,16 +59,21 @@ ...@@ -58,16 +59,21 @@
const route = useRoute(); const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerAddUserModal, { openModal:addUserModal }] = useModal();
const [registerMoveModel, { openModal: openMoveModelModal }] = useModal(); const [registerMoveModel, { openModal: openMoveModelModal }] = useModal();
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]) const tableData = ref([])
const [registerTable, { reload, updateTableDataRecord, getSearchInfo,getForm,getRowSelection }] = useTable({ const [registerTable, { reload, updateTableDataRecord, getSearchInfo,getForm,getRowSelection }] = useTable({
title: '', title: '',
api: async (params) => { api: async (params) => {
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var data = []; var data = [];
data = tableData.value.filter((item) => item.businessId >= 200); //按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
if (params.modelId == undefined || params.modelId == ''){
data = tableData.value.filter((item) => item.businessId >= 200);
}else if (params.modelId >= 200){
data = tableData.value.filter((item) => item.businessId == params.modelId);
}else {
data = tableData.value.filter((item) => item.parentId == params.modelId);
}
const response = { const response = {
pageNu: "1", pageNu: "1",
pageSize: "10", pageSize: "10",
...@@ -108,6 +114,7 @@ ...@@ -108,6 +114,7 @@
function handleCreateModel() { function handleCreateModel() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建元模型'
}); });
} }
...@@ -115,6 +122,7 @@ ...@@ -115,6 +122,7 @@
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建文件夹'
}); });
} }
...@@ -129,9 +137,10 @@ ...@@ -129,9 +137,10 @@
/** 编辑按钮*/ /** 编辑按钮*/
function handleEdit(record: Recordable) { function handleEdit(record: Recordable) {
openModal(true, { router.push({
record, path: '/metaModel/physicsModel/EditRowTable',
isUpdate: true, query: {
},
}); });
} }
......
...@@ -163,20 +163,32 @@ export const modelFormSchema: any[] = [ ...@@ -163,20 +163,32 @@ export const modelFormSchema: any[] = [
componentProps: { componentProps: {
options:[ options:[
{ {
label: 'Inceptor表', label: 'ArgoDB表',
value: 'Inceptor', value: 'ArgoDB',
},
{
label: 'MySQL表',
value: 'MySQL',
}, },
{ {
label: 'DB2表', label: 'DB2表',
value: 'DB2', value: 'DB2',
}, },
{ {
label: 'ArgoDB表', label: '达梦数据库表',
value: 'ArgoDB', value: '达梦',
},
{
label: 'Hana表',
value: 'Hana',
},
{
label: 'Inceptor表',
value: 'Inceptor',
},
{
label: 'KunDB表',
value: 'KunDB',
},
{
label: 'MySQL表',
value: 'MySQL',
}, },
] ]
}, },
...@@ -193,7 +205,7 @@ export const modelFormSchema: any[] = [ ...@@ -193,7 +205,7 @@ export const modelFormSchema: any[] = [
export const MoveFormSchema: any[] = [ export const MoveFormSchema: any[] = [
{ {
field: 'modelId', field: 'modelId',
label: '所属机构', label: '路径',
component: 'TreeSelect', component: 'TreeSelect',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
componentProps: { componentProps: {
......
...@@ -20,7 +20,6 @@ export const TreeData: any[] = [ ...@@ -20,7 +20,6 @@ export const TreeData: any[] = [
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
"updateDate": "2024-10-24 10:04:04", "updateDate": "2024-10-24 10:04:04",
// "children" : [ ],
"type" : 'MySQL' "type" : 'MySQL'
}, },
{ {
...@@ -32,7 +31,6 @@ export const TreeData: any[] = [ ...@@ -32,7 +31,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100", "ancestors" : "0,100",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -48,7 +46,6 @@ export const TreeData: any[] = [ ...@@ -48,7 +46,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100", "ancestors" : "0,100",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -63,7 +60,6 @@ export const TreeData: any[] = [ ...@@ -63,7 +60,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100", "ancestors" : "0,100",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'DB2', "type" : 'DB2',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -78,7 +74,6 @@ export const TreeData: any[] = [ ...@@ -78,7 +74,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100,101", "ancestors" : "0,100,101",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -93,7 +88,6 @@ export const TreeData: any[] = [ ...@@ -93,7 +88,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100,101", "ancestors" : "0,100,101",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'ArgoDB', "type" : 'ArgoDB',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -108,7 +102,6 @@ export const TreeData: any[] = [ ...@@ -108,7 +102,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100,102", "ancestors" : "0,100,102",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -123,7 +116,6 @@ export const TreeData: any[] = [ ...@@ -123,7 +116,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100,102", "ancestors" : "0,100,102",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
...@@ -138,7 +130,6 @@ export const TreeData: any[] = [ ...@@ -138,7 +130,6 @@ export const TreeData: any[] = [
"code:": "002", "code:": "002",
"ancestors" : "0,100,103", "ancestors" : "0,100,103",
"orderNum" : 1, "orderNum" : 1,
// "children" : [ ],
"type" : 'MySQL', "type" : 'MySQL',
"holder":"admin", "holder":"admin",
"createDate": "2024-10-24 10:04:04", "createDate": "2024-10-24 10:04:04",
......
<template> <template>
<BasicModal width="80%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit"> <BasicModal width="80%" v-bind="$attrs" @register="registerModal" :title="getTitle">
<PageWrapper <PageWrapper
title="" title=""
class="content-padding" class="content-padding"
...@@ -73,6 +73,7 @@ const bucketTableData = ref([]) ...@@ -73,6 +73,7 @@ const bucketTableData = ref([])
const areaTableData = ref([]) const areaTableData = ref([])
const go = useGo(); const go = useGo();
const getTitle = computed(() => ('Inceptor元模型')); const getTitle = computed(() => ('Inceptor元模型'));
const [registerSetModal, { openModal:setModal }] = useModal();
const [registerTable1, { reload1,getForm1 }] = useTable({ const [registerTable1, { reload1,getForm1 }] = useTable({
title: '', title: '',
api: async (params) => { api: async (params) => {
...@@ -159,16 +160,8 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data ...@@ -159,16 +160,8 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
setModalProps({ confirmLoading: false,showCancelBtn: false,showOkBtn:false }); setModalProps({ confirmLoading: false,showCancelBtn: false,showOkBtn:false });
}); });
const [registerSetModal, { openModal:setModal }] = useModal();
/**确定按钮*/
async function handleSubmit() {
router.push({
path: '/metaModel/physicsModel/EditRowTable',
query: {},
});
closeModal()
}
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
......
...@@ -19,8 +19,8 @@ import {router} from "@/router"; ...@@ -19,8 +19,8 @@ import {router} from "@/router";
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const isUpdate = ref(true); const isUpdate = ref(true);
const isMove = ref(false);
const rowId = ref(''); const rowId = ref('');
const title = ref('')
//获取接口数据并放在下拉框里(这里是打开了一个弹框) //获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单 //初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({ const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
...@@ -36,9 +36,8 @@ import {router} from "@/router"; ...@@ -36,9 +36,8 @@ import {router} from "@/router";
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields(); resetFields();
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; title.value = data.title
isMove.value = !!data?.isMove; isUpdate.value = data.isUpdate
console.log('data',data)
if (unref(isUpdate)) { if (unref(isUpdate)) {
// 获取行数据的id // 获取行数据的id
rowId.value = data.record.businessId; rowId.value = data.record.businessId;
...@@ -73,7 +72,7 @@ import {router} from "@/router"; ...@@ -73,7 +72,7 @@ import {router} from "@/router";
]); ]);
}); });
const getTitle = computed(() => ('新建元模型')); const getTitle = computed(() => (title.value));
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id' id = id || 'id'
...@@ -98,12 +97,15 @@ import {router} from "@/router"; ...@@ -98,12 +97,15 @@ import {router} from "@/router";
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
// const values = await validate(); // const values = await validate();
// router.push({ if (title.value == '新建元模型'){
// path: '/metaModel/physicsModel/EditRowTable', router.push({
// query: { path: '/metaModel/physicsModel/EditRowTable',
// }, query: {
// }); },
createMessage.success('修改成功'); });
}else {
createMessage.success('新增成功')
}
closeModal() closeModal()
} }
......
...@@ -5,91 +5,79 @@ ...@@ -5,91 +5,79 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue'; import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import {modelFormSchema, MoveFormSchema} from './model.data'; import { modelFormSchema, MoveFormSchema} from './model.data';
import { getDeptList } from '@/api/system/dept/dept'; import { useMessage } from '@/hooks/web/useMessage';
import {addUserApi,UserDetailApi,UserUpdataApi} from '@/api/system/user/user' import { TreeData } from "@/views/metaModel/physicsModel/modelData";
import { encryptTwo } from '../../../../src/utils/jsencrypt.js'
import { useMessage } from '@/hooks/web/useMessage';
import {TreeData} from "@/views/metaModel/physicsModel/modelData";
import {router} from "@/router";
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']); defineOptions({ name: 'ModelModal' });
const { createMessage } = useMessage(); const emit = defineEmits(['success', 'register']);
const isUpdate = ref(true); const { createMessage } = useMessage();
const isMove = ref(false); const isUpdate = ref(true);
const rowId = ref(''); const isMove = ref(false);
//获取接口数据并放在下拉框里(这里是打开了一个弹框) const rowId = ref('');
//初始化表单 //获取接口数据并放在下拉框里(这里是打开了一个弹框)
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({ //初始化表单
labelWidth: 100, const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
baseColProps: { lg: 12, md: 24 }, labelWidth: 100,
schemas: MoveFormSchema, baseColProps: { lg: 12, md: 24 },
showActionButtonGroup: false, schemas: MoveFormSchema,
actionColOptions: { showActionButtonGroup: false,
span: 23, actionColOptions: {
}, span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
const formData = {
modelId: data.record.businessId
}
// 塞值
setFieldsValue({
...formData,
}); });
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove;
const formData = {
modelId: data.record.businessId
}
// 塞值
setFieldsValue({
...formData,
});
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined) const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema([ updateSchema([
{ {
field: 'modelId', field: 'modelId',
componentProps: { componentProps: {
treeData: treeList treeData: treeList
},
}, },
]); },
}); ]);
});
const getTitle = computed(() => ('移动')); const getTitle = computed(() => ('移动'));
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id' id = id || 'id'
parentId = parentId || 'parentId' parentId = parentId || 'parentId'
children = children || 'children' children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0 rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆 // 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data)) const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项 // 循环所有项
const treeData = cloneData.filter(father => { const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => { const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组 // 返回每一项的子级数组
return father[id] === child[parentId] return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
}) })
return treeData !== '' ? treeData : data branchArr.length > 0 ? father.children = branchArr : ''
} // 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
// const values = await validate(); createMessage.success('修改成功');
// router.push({ closeModal()
// path: '/metaModel/physicsModel/EditRowTable', }
// query: {
// },
// });
createMessage.success('修改成功');
closeModal()
}
</script> </script>
...@@ -97,7 +97,7 @@ function handleCreateType() { ...@@ -97,7 +97,7 @@ function handleCreateType() {
/** 取消*/ /** 取消*/
function cancel() { function cancel() {
go('/metaModel/physicsModel/index'); go('/metaModel/standardModel/index');
} }
/** 删除按钮*/ /** 删除按钮*/
...@@ -112,7 +112,7 @@ onMounted(() => {}); ...@@ -112,7 +112,7 @@ onMounted(() => {});
// 页面左侧点击返回链接时的操作 // 页面左侧点击返回链接时的操作
function goBack() { function goBack() {
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页 // 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
go('/metaModel/physicsModel/index'); go('/metaModel/standardModel/index');
} }
</script> </script>
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
} }
function handleSelect(keys) { function handleSelect(keys) {
// emit('select', keys[0]); emit('select', keys[0]);
if (keys[0] >= 200) { if (keys[0] >= 200) {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
......
<template>
<BasicModal width="50%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicTable @register="registerTable1" class="height" style="height: 200px;">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="表信息" allowClear></a-input>
</template>
</BasicTable>
<BasicTable @register="registerTable2" class="height">
<template #toolbar>
<a-input style="width: 200px;margin-right: auto" default-value="列信息" allowClear></a-input>
</template>
</BasicTable>
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive, onMounted} from 'vue';
import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage';
import {useTable,BasicTable} from "@/components/Table";
import {dataSetColumns} from "@/views/metaModel/standardModel/model.data";
import {setColumnData,setTableData} from '@/views/metaModel/standardModel/modelData.ts'
import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage';
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const tableData = ref([])
const columnTableData = ref([])
const go = useGo();
const getTitle = computed(() => ('映射配置'));
const [registerTable1, { reload1 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: tableData.value.length,
code:'',
message:'',
data: [],
};
return { ...response, data: tableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
const [registerTable2, { reload2 }] = useTable({
title: '',
api: async (params) => {
const response = {
pageNu: "1",
pageSize: "10",
pages: "1",
total: columnTableData.value.length,
code:'',
message:'',
data: columnTableData.value,
};
return { ...response, data: columnTableData.value };
},
columns:dataSetColumns,
showTableSetting: false,
showIndexColumn: false,
pagination: false,
bordered: true,
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
});
/**确定按钮*/
async function handleSubmit() {
createMessage.success('保存成功!')
closeModal()
}
onMounted(() => {
tableData.value = setTableData
columnTableData.value = setColumnData
});
</script>
<style>
</style>
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
</template> </template>
</BasicTable> </BasicTable>
<ModelModal @register="registerModal" @success="handleSuccess" /> <ModelModal @register="registerModal" @success="handleSuccess" />
<MoveModelModal @register="registerMoveModel" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
...@@ -49,6 +50,8 @@ ...@@ -49,6 +50,8 @@
import { useRoute, onBeforeRouteLeave } from 'vue-router'; import { useRoute, onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { TreeData } from '@/views/metaModel/standardModel/modelData'; import { TreeData } from '@/views/metaModel/standardModel/modelData';
import MoveModelModal from "@/views/metaModel/standardModel/moveModel.vue";
import {router} from "@/router";
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
...@@ -56,8 +59,7 @@ ...@@ -56,8 +59,7 @@
const route = useRoute(); const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerAddUserModal, { openModal: addUserModal }] = useModal(); const [registerMoveModel, { openModal: openMoveModelModal }] = useModal();
const [registerMoveUser, { openModal: openMoveUserModal }] = useModal();
const searchInfo = reactive<Recordable>({}); const searchInfo = reactive<Recordable>({});
const tableData = ref([]); const tableData = ref([]);
const [ const [
...@@ -66,21 +68,24 @@ ...@@ -66,21 +68,24 @@
] = useTable({ ] = useTable({
title: '', title: '',
api: async (params) => { api: async (params) => {
console.log('params:', params); var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
if (params.modelId == undefined || params.modelId == ''){
data = tableData.value.filter((item) => item.businessId >= 200);
}else if (params.modelId >= 200){
data = tableData.value.filter((item) => item.businessId == params.modelId);
}else {
data = tableData.value.filter((item) => item.parentId == params.modelId);
}
const response = { const response = {
pageNu: '1', pageNu: '1',
pageSize: '10', pageSize: '10',
pages: '1', pages: '1',
total: tableData.value.length, total: data.length,
code: '', code: '',
message: '', message: '',
data: [], data: [],
}; };
//过滤data中的数据,取出等于params.deptId的数据
var data = [];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var data = [];
data = tableData.value.filter((item) => item.businessId !== 100);
return { ...response, data: data }; return { ...response, data: data };
}, },
rowKey: 'businessId', rowKey: 'businessId',
...@@ -96,6 +101,7 @@ ...@@ -96,6 +101,7 @@
}, },
useSearchForm: true, useSearchForm: true,
showTableSetting: false, showTableSetting: false,
showIndexColumn: false,
bordered: true, bordered: true,
handleSearchInfoFn(info) { handleSearchInfoFn(info) {
return info; return info;
...@@ -111,6 +117,7 @@ ...@@ -111,6 +117,7 @@
function handleCreateModel() { function handleCreateModel() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建元模型'
}); });
} }
...@@ -118,12 +125,13 @@ ...@@ -118,12 +125,13 @@
function handleCreateFile() { function handleCreateFile() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
title:'新建文件夹'
}); });
} }
/** 移动按钮*/ /** 移动按钮*/
function handleMove(record: Recordable) { function handleMove(record: Recordable) {
openMoveUserModal(true, { openMoveModelModal(true, {
record, record,
isMove: true, isMove: true,
}); });
...@@ -131,9 +139,9 @@ ...@@ -131,9 +139,9 @@
/** 编辑按钮*/ /** 编辑按钮*/
function handleEdit(record: Recordable) { function handleEdit(record: Recordable) {
openModal(true, { router.push({
record, path: '/metaModel/standardModel/EditRowTable',
isUpdate: true, query: {},
}); });
} }
......
...@@ -57,7 +57,7 @@ export const modelFormSchema: any[] = [ ...@@ -57,7 +57,7 @@ export const modelFormSchema: any[] = [
required: true, required: true,
}, },
{ {
field: 'name', field: 'modelName',
label: '元模型名称', label: '元模型名称',
component: 'Input', component: 'Input',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
...@@ -69,29 +69,41 @@ export const modelFormSchema: any[] = [ ...@@ -69,29 +69,41 @@ export const modelFormSchema: any[] = [
], ],
}, },
{ {
field: 'username', field: 'type',
label: '数据资产类型', label: '数据资产类型',
component: 'Select', component: 'Select',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
componentProps: { componentProps: {
options: [ options:[
{ {
label: 'Inceptor表', label: 'ArgoDB表',
value: 'Inceptor', value: 'ArgoDB',
},
{
label: 'MySQL表',
value: 'MySQL',
}, },
{ {
label: 'DB2表', label: 'DB2表',
value: 'DB2', value: 'DB2',
}, },
{ {
label: 'ArgoDB表', label: '达梦数据库表',
value: 'ArgoDB', value: '达梦',
}, },
], {
label: 'Hana表',
value: 'Hana',
},
{
label: 'Inceptor表',
value: 'Inceptor',
},
{
label: 'KunDB表',
value: 'KunDB',
},
{
label: 'MySQL表',
value: 'MySQL',
},
]
}, },
rules: [ rules: [
{ {
...@@ -105,13 +117,13 @@ export const modelFormSchema: any[] = [ ...@@ -105,13 +117,13 @@ export const modelFormSchema: any[] = [
/**移动*/ /**移动*/
export const MoveFormSchema: any[] = [ export const MoveFormSchema: any[] = [
{ {
field: 'institutionId', field: 'modelId',
label: '所属机构', label: '路径',
component: 'TreeSelect', component: 'TreeSelect',
colProps: { lg: 24, md: 24 }, colProps: { lg: 24, md: 24 },
componentProps: { componentProps: {
fieldNames: { fieldNames: {
label: 'institutionName', label: 'modelName',
value: 'businessId', value: 'businessId',
}, },
getPopupContainer: () => document.body, getPopupContainer: () => document.body,
...@@ -119,3 +131,46 @@ export const MoveFormSchema: any[] = [ ...@@ -119,3 +131,46 @@ export const MoveFormSchema: any[] = [
required: true, required: true,
}, },
]; ];
export const dataSetColumns: BasicColumn[] = [
{
title: '元数据',
dataIndex: 'orginalData',
width: 150,
},
{
title: '物理模型',
dataIndex: 'physicsModel',
width: 150,
editable: true,
edit: true,
editComponent:'Select',
editComponentProps: {
options: [
{
label: '表名',
value: '1',
},
{
label: '中文名',
value: '2',
},
{
label: '列名',
value: '3',
},
{
label: '列中文名',
value: '4',
},
{
label: '英文名',
value: '5',
},
{
label: '列英文名',
value: '6',
},
],
},
},
];
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
v-bind="$attrs" v-bind="$attrs"
@register="registerModal" @register="registerModal"
:title="getTitle" :title="getTitle"
@ok="handleSubmit"
> >
<PageWrapper title="" class="content-padding" contentBackground> <PageWrapper title="" class="content-padding" contentBackground>
<template #footer> <template #footer>
...@@ -134,13 +133,14 @@ ...@@ -134,13 +133,14 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<DetailSetModal @register="registerSetModal" @success="handleSuccess" />
</PageWrapper> </PageWrapper>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { ref, computed, onMounted } from 'vue'; import { ref, computed, onMounted } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import {BasicModal, useModal, useModalInner} from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { router } from '@/router'; import { router } from '@/router';
import { useTable, BasicTable } from '@/components/Table'; import { useTable, BasicTable } from '@/components/Table';
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
} from '@/views/metaModel/standardModel/modelData'; } from '@/views/metaModel/standardModel/modelData';
import Icon from '@/components/Icon/Icon.vue'; import Icon from '@/components/Icon/Icon.vue';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import DetailSetModal from './detailSetModal.vue';
defineOptions({ name: 'ModelModal' }); defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
const areaTableData = ref([]); const areaTableData = ref([]);
const go = useGo(); const go = useGo();
const getTitle = computed(() => 'Inceptor元模型'); const getTitle = computed(() => 'Inceptor元模型');
const [registerSetModal, { openModal:setModal }] = useModal();
const [registerTable1, { reload1, getForm1 }] = useTable({ const [registerTable1, { reload1, getForm1 }] = useTable({
title: '', title: '',
api: async () => { api: async () => {
...@@ -274,14 +275,6 @@ ...@@ -274,14 +275,6 @@
setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false }); setModalProps({ confirmLoading: false, showCancelBtn: false, showOkBtn: false });
}); });
/**确定按钮*/
async function handleSubmit() {
router.push({
path: '/metaModel/physicsModel/EditRowTable',
query: {},
});
closeModal();
}
/** 删除按钮*/ /** 删除按钮*/
function handleDelete(record: Recordable) { function handleDelete(record: Recordable) {
...@@ -290,12 +283,14 @@ ...@@ -290,12 +283,14 @@
/** 配置按钮*/ /** 配置按钮*/
function handleSetButton() { function handleSetButton() {
console.log('1111'); setModal(true, {
isUpdate: false,
});
} }
/** 修改按钮*/ /** 修改按钮*/
function handleUpdateButton() { function handleUpdateButton() {
go('/metaModel/physicsModel/editRowTable'); go('/metaModel/standardModel/editRowTable');
} }
onMounted(() => { onMounted(() => {
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
const isUpdate = ref(true); const isUpdate = ref(true);
const isMove = ref(false); const isMove = ref(false);
const rowId = ref(''); const rowId = ref('');
const title = ref('')
const getTitle = computed(() => title.value);
//获取接口数据并放在下拉框里(这里是打开了一个弹框) //获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单 //初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({ const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
...@@ -42,17 +44,30 @@ ...@@ -42,17 +44,30 @@
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove; isMove.value = !!data?.isMove;
title.value = data.title
if (unref(isUpdate)) { if (unref(isUpdate)) {
// 获取行数据的id // 获取行数据的id
rowId.value = data.record.businessId; rowId.value = data.record.businessId;
const formData = {
modelId: data.record.businessId,
modelName: data.record.modelName,
type: data.record.type
}
// 塞值 // 塞值
setFieldsValue({ setFieldsValue({
...data.record, ...formData,
});
}else {
const formData = {
modelId: '100',
}
// 塞值
setFieldsValue({
...formData,
}); });
} }
const treeList = handleTree(TreeData, 'businessId', undefined, undefined, undefined); const treeList = handleTree(TreeData, 'businessId', undefined, undefined, undefined);
console.log('treeList', treeList);
updateSchema([ updateSchema([
{ {
field: 'modelId', field: 'modelId',
...@@ -63,7 +78,6 @@ ...@@ -63,7 +78,6 @@
]); ]);
}); });
const getTitle = computed(() => '新建元模型');
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
...@@ -96,11 +110,14 @@ ...@@ -96,11 +110,14 @@
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
const values = await validate(); const values = await validate();
router.push({ if (title.value == '新建元模型'){
path: '/metaModel/standardModel/EditRowTable', router.push({
query: {}, path: '/metaModel/standardModel/EditRowTable',
}); query: {},
});
}else {
createMessage.success('新增成功')
}
closeModal(); closeModal();
} }
</script> </script>
<template>
<BasicModal width="40%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
<BasicForm @register="registerForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form';
import { modelFormSchema, MoveFormSchema} from './model.data';
import { useMessage } from '@/hooks/web/useMessage';
import { TreeData } from "@/views/metaModel/standardModel/modelData";
defineOptions({ name: 'ModelModal' });
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const isMove = ref(false);
const rowId = ref('');
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
baseColProps: { lg: 12, md: 24 },
schemas: MoveFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 23,
},
});
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
const formData = {
modelId: data.record.businessId
}
// 塞值
setFieldsValue({
...formData,
});
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined)
updateSchema([
{
field: 'modelId',
componentProps: {
treeData: treeList
},
},
]);
});
const getTitle = computed(() => ('移动'));
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0
// 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
// 循环所有项
const treeData = cloneData.filter(father => {
const branchArr = cloneData.filter(child => {
// 返回每一项的子级数组
return father[id] === child[parentId]
})
branchArr.length > 0 ? father.children = branchArr : ''
// 返回第一层
return father[parentId] === rootId
})
return treeData !== '' ? treeData : data
}
/**确定按钮*/
async function handleSubmit() {
createMessage.success('修改成功');
closeModal()
}
</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