Commit 08287687 authored by chenjiahao's avatar chenjiahao

Merge remote-tracking branch 'origin/master'

parents b3a314ed b67b9067
<template> <template>
<PageWrapper title="实体关系图" contentBackground headerSticky> <PageWrapper title="实体关系图" contentBackground headerSticky>
<template #extra> <template #extra>
<RadioButtonGroup :options="options" v-model:value="selectRadio" /> <RadioButtonGroup v-if="!isEdit" :options="options" v-model:value="selectRadio" />
<a-button type="primary">刷新</a-button> <a-button type="primary">刷新</a-button>
<a-button type="primary">全屏</a-button> <a-button type="primary">全屏</a-button>
<a-button type="primary" v-if="isEdit">保存坐标</a-button>
</template> </template>
<template #footer> <template #footer>
<div style="display: flex"> <div style="display: flex">
...@@ -22,8 +23,9 @@ ...@@ -22,8 +23,9 @@
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { RadioButtonGroup } from '@/components/Form'; import { RadioButtonGroup } from '@/components/Form';
import { BasicTree } from '@/components/Tree'; import { BasicTree } from '@/components/Tree';
import { ref } from 'vue'; import {defineProps, ref} from 'vue';
import { chartTreeData } from './chart.data'; import { chartTreeData } from './chart.data';
import {useRoute} from "vue-router";
// const options = [ // const options = [
// { // {
...@@ -35,6 +37,9 @@ ...@@ -35,6 +37,9 @@
// value: '当前模型实体', // value: '当前模型实体',
// }, // },
// ]; // ];
const route = useRoute();
const isEdit = route.query.isEdit;
const selectRadio = ref('全部实体'); const selectRadio = ref('全部实体');
const options = ['全部实体', '当前模型实体']; const options = ['全部实体', '当前模型实体'];
</script> </script>
......
...@@ -4,7 +4,6 @@ export const entityFormSchema = [ ...@@ -4,7 +4,6 @@ export const entityFormSchema = [
{ {
field: 'name', field: 'name',
label: '实体名称', label: '实体名称',
required: true,
slot: 'name', slot: 'name',
component: 'Input', component: 'Input',
colProps: { span: 12 }, colProps: { span: 12 },
......
...@@ -3,28 +3,32 @@ ...@@ -3,28 +3,32 @@
<span class="table-title" style="font-size: 18px; margin: 12px 10px 0">实体关联关系</span> <span class="table-title" style="font-size: 18px; margin: 12px 10px 0">实体关联关系</span>
<BasicTable @register="registerTable" :searchInfo="searchInfo"> <BasicTable @register="registerTable" :searchInfo="searchInfo">
<template #toolbar> <template #toolbar>
<a-button type="primary" @click="handleConnectionModel">关联</a-button> <a-button v-if="isEdit" type="primary" @click="handleConnectionModel">关联</a-button>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
:actions="[ :actions="
{ isEdit
// 编辑 ? [
icon: 'clarity:note-edit-line', {
onClick: handleConnectionEditModel.bind(null, record), // 编辑
}, icon: 'clarity:note-edit-line',
{ onClick: handleConnectionEditModel.bind(null, record),
// 删除 },
icon: 'ant-design:delete-outlined', {
popConfirm: { // 删除
title: '是否确认删除', icon: 'ant-design:delete-outlined',
placement: 'left', popConfirm: {
confirm: handleRemove.bind(null, record), title: '是否确认删除',
}, placement: 'left',
color: 'error', confirm: handleRemove.bind(null, record),
}, },
]" color: 'error',
},
]
: []
"
/> />
</template> </template>
</template> </template>
...@@ -33,7 +37,7 @@ ...@@ -33,7 +37,7 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref } from 'vue'; import { reactive, onMounted, ref, defineProps } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { useRoute, onBeforeRouteLeave } from 'vue-router'; import { useRoute, onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
...@@ -41,13 +45,18 @@ ...@@ -41,13 +45,18 @@
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import { import {
entityConnectionTable, entityConnectionTable,
propertyFormSchema propertyFormSchema,
} from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/enetity.data'; } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/enetity.data';
import { entityConnectionData } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/entityData'; import { entityConnectionData } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/entityData';
import EntityConnectionModel from './entityConnectionModel.vue'; import EntityConnectionModel from './entityConnectionModel.vue';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
defineOptions({ name: 'AccountManagement' }); const { isEdit } = defineProps({
isEdit: {
type: String,
default: '',
},
});
const { createMessage, createConfirm } = useMessage(); const { createMessage, createConfirm } = useMessage();
const filterStore = useFilterStore(); const filterStore = useFilterStore();
const route = useRoute(); const route = useRoute();
......
...@@ -5,31 +5,43 @@ ...@@ -5,31 +5,43 @@
<a-button v-if="isEdit" type="primary" @click="handleSubmit">保存</a-button> <a-button v-if="isEdit" type="primary" @click="handleSubmit">保存</a-button>
<a-button v-if="isEdit" @click="handleCancel">取消</a-button> <a-button v-if="isEdit" @click="handleCancel">取消</a-button>
</template> </template>
<div class="table-title" style="font-size: 18px; margin: 12px 10px 0">基本信息</div> <Descriptions title="基本信息" style="margin: 10px 12px" :column="2">
<BasicForm @register="registerForm"> <Descriptions.Item label="实体名称">{{ infoData.name }}</Descriptions.Item>
<template #name="{ model, field }"> <Descriptions.Item label="实体描述">{{ infoData.txt }}</Descriptions.Item>
<a-input v-if="isEdit" placeholder="请输入实体名称" v-model:value="model[field]" /> <Descriptions.Item label="实体英文名">{{ infoData.engName }}</Descriptions.Item>
<span v-else>{{ infoData[field] }}</span> <Descriptions.Item label="资产责任人">{{ infoData.person }}</Descriptions.Item>
</template> <Descriptions.Item label="所属部门">{{ infoData.deptName }}</Descriptions.Item>
<template #txt="{ model, field }"> </Descriptions>
<a-input v-if="isEdit" placeholder="请输入实体描述" v-model:value="model[field]" /> <!-- <div class="table-title" style="font-size: 18px; margin: 12px 10px 0">基本信息</div>-->
<span v-else>{{ infoData[field] }}</span> <!-- <BasicForm @register="registerForm">-->
</template> <!-- <template #name="{ model, field }">-->
<template #engName="{ model, field }"> <!-- <a-input v-if="isEdit" placeholder="请输入实体名称" v-model:value="model[field]" />-->
<a-input v-if="isEdit" placeholder="请输入实体英文名" v-model:value="model[field]" /> <!-- <span v-else>{{ infoData[field] }}</span>-->
<span v-else>{{ infoData[field] }}</span> <!-- </template>-->
</template> <!-- <template #txt="{ model, field }">-->
<template #person="{ model, field }"> <!-- <a-input v-if="isEdit" placeholder="请输入实体描述" v-model:value="model[field]" />-->
<a-input v-if="isEdit" placeholder="请输入资产责任人" v-model:value="model[field]" /> <!-- <span v-else>{{ infoData[field] }}</span>-->
<span v-else>{{ infoData[field] }}</span> <!-- </template>-->
</template> <!-- <template #engName="{ model, field }">-->
<template #deptName="{ model, field }"> <!-- <a-input v-if="isEdit" placeholder="请输入实体英文名" v-model:value="model[field]" />-->
<TreeSelect v-if="isEdit" placeholder="请输入资产责任人" :treeData="treeData" v-model:value="model[field]" /> <!-- <span v-else>{{ infoData[field] }}</span>-->
<span v-else>{{ infoData[field] }}</span> <!-- </template>-->
</template> <!-- <template #person="{ model, field }">-->
</BasicForm> <!-- <a-input v-if="isEdit" placeholder="请输入资产责任人" v-model:value="model[field]" />-->
<Property /> <!-- <span v-else>{{ infoData[field] }}</span>-->
<EntityConnection /> <!-- </template>-->
<!-- <template #deptName="{ model, field }">-->
<!-- <TreeSelect-->
<!-- v-if="isEdit"-->
<!-- placeholder="请输入资产责任人"-->
<!-- :treeData="treeData"-->
<!-- v-model:value="model[field]"-->
<!-- />-->
<!-- <span v-else>{{ infoData[field] }}</span>-->
<!-- </template>-->
<!-- </BasicForm>-->
<Property :isEdit="isEdit" />
<EntityConnection :isEdit="isEdit" />
</PageWrapper> </PageWrapper>
</template> </template>
...@@ -41,11 +53,12 @@ ...@@ -41,11 +53,12 @@
import BasicForm from '@/components/Form/src/BasicForm.vue'; import BasicForm from '@/components/Form/src/BasicForm.vue';
import { useForm } from '@/components/Form'; import { useForm } from '@/components/Form';
import { TreeSelect } from 'ant-design-vue'; import { TreeSelect } from 'ant-design-vue';
import { Descriptions } from 'ant-design-vue';
import { import {
entityFormSchema, entityFormSchema,
treeData, treeData,
} from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/enetity.data'; } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/entityDetail/enetity.data';
import {onMounted, ref} from "vue"; import { onMounted, ref } from 'vue';
const route = useRoute(); const route = useRoute();
let infoData = route.query; let infoData = route.query;
...@@ -63,15 +76,16 @@ ...@@ -63,15 +76,16 @@
isEdit.value = false; isEdit.value = false;
} }
//初始化表单 //初始化表单
const [registerForm, { setFieldsValue, getFieldsValue, updateSchema, resetFields, validate }] = useForm({ const [registerForm, { setFieldsValue, getFieldsValue, updateSchema, resetFields, validate }] =
labelWidth: 100, useForm({
baseColProps: { lg: 12, md: 24 }, labelWidth: 100,
schemas: entityFormSchema, baseColProps: { lg: 12, md: 24 },
showActionButtonGroup: false, schemas: entityFormSchema,
actionColOptions: { showActionButtonGroup: false,
span: 23, actionColOptions: {
}, span: 23,
}); },
});
onMounted(() => { onMounted(() => {
setFieldsValue(infoData); setFieldsValue(infoData);
}); });
......
...@@ -3,8 +3,14 @@ ...@@ -3,8 +3,14 @@
<span class="table-title" style="font-size: 18px; margin: 12px 10px 0">属性</span> <span class="table-title" style="font-size: 18px; margin: 12px 10px 0">属性</span>
<BasicTable @register="registerTable" :searchInfo="searchInfo"> <BasicTable @register="registerTable" :searchInfo="searchInfo">
<template #toolbar> <template #toolbar>
<a-button type="primary" @click="handleDelete"><DeleteTwoTone />批量删除</a-button> <a-button
<a-button type="primary" @click="handlePropertyModel" type="primary"
v-if="isEdit"
:disabled="getRowSelection().selectedRowKeys <= 0"
@click="handleDelete"
><DeleteTwoTone />批量删除</a-button
>
<a-button v-if="isEdit" type="primary" @click="handlePropertyModel"
><PlusCircleTwoTone />新建属性</a-button ><PlusCircleTwoTone />新建属性</a-button
> >
</template> </template>
...@@ -21,21 +27,25 @@ ...@@ -21,21 +27,25 @@
</template> </template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<TableAction <TableAction
:actions="[ :actions="
{ isEdit
icon: 'clarity:note-edit-line', ? [
onClick: handlePropertyEditModel.bind(null, record), {
}, icon: 'clarity:note-edit-line',
{ onClick: handlePropertyEditModel.bind(null, record),
icon: 'ant-design:delete-outlined', },
popConfirm: { {
title: '是否确认删除', icon: 'ant-design:delete-outlined',
placement: 'left', popConfirm: {
confirm: handleRemove.bind(null, record), title: '是否确认删除',
}, placement: 'left',
color: 'error', confirm: handleRemove.bind(null, record),
}, },
]" color: 'error',
},
]
: []
"
/> />
</template> </template>
</template> </template>
...@@ -44,10 +54,10 @@ ...@@ -44,10 +54,10 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref } from 'vue'; import { reactive, onMounted, ref, defineProps } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { useRoute, onBeforeRouteLeave } from 'vue-router'; import { useRoute, onBeforeRouteLeave } from 'vue-router';
import {entityConnectionFormSchema, propertyFormSchema, propertyTable} from './enetity.data'; import { propertyFormSchema, propertyTable } from './enetity.data';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { TreeData } from '@/views/dataWarehousePlanning/logicalModel/modelData'; import { TreeData } from '@/views/dataWarehousePlanning/logicalModel/modelData';
import { crossData } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'; import { crossData } from '@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData';
...@@ -57,7 +67,12 @@ ...@@ -57,7 +67,12 @@
import PropertyModel from './propertyModel.vue'; import PropertyModel from './propertyModel.vue';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
defineOptions({ name: 'AccountManagement' }); const { isEdit } = defineProps({
isEdit: {
type: String,
default: '',
},
});
const { createMessage, createConfirm } = useMessage(); const { createMessage, createConfirm } = useMessage();
const filterStore = useFilterStore(); const filterStore = useFilterStore();
const route = useRoute(); const route = useRoute();
......
...@@ -4,7 +4,13 @@ ...@@ -4,7 +4,13 @@
<BasicTable @register="registerTable" :searchInfo="searchInfo"> <BasicTable @register="registerTable" :searchInfo="searchInfo">
<template #toolbar> <template #toolbar>
<a-button type="primary" v-if="editFlag" @click="handleChart">编辑ER图</a-button> <a-button type="primary" v-if="editFlag" @click="handleChart">编辑ER图</a-button>
<a-button type="primary" :disabled="getRowSelection().selectedRowKeys <=0" v-if="editFlag" @click="handleDelete">批量删除</a-button> <a-button
type="primary"
:disabled="getRowSelection().selectedRowKeys <= 0"
v-if="editFlag"
@click="handleDelete"
>批量删除</a-button
>
<a-button type="primary" v-if="editFlag" @click="handleEntityModel">新建实体</a-button> <a-button type="primary" v-if="editFlag" @click="handleEntityModel">新建实体</a-button>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
...@@ -45,7 +51,7 @@ ...@@ -45,7 +51,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref, defineProps } from 'vue'; import { reactive, onMounted, ref, defineProps } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import {useRoute, onBeforeRouteLeave, useRouter} from 'vue-router'; import { useRoute, onBeforeRouteLeave, useRouter } from 'vue-router';
import { entityColumns, entityFormSchema } from './model.data'; import { entityColumns, entityFormSchema } from './model.data';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { TreeData } from '@/views/dataWarehousePlanning/logicalModel/modelData'; import { TreeData } from '@/views/dataWarehousePlanning/logicalModel/modelData';
...@@ -53,6 +59,7 @@ ...@@ -53,6 +59,7 @@
import EntityModel from './entityModel.vue'; import EntityModel from './entityModel.vue';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
const { push } = useRouter(); const { push } = useRouter();
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
...@@ -153,6 +160,9 @@ ...@@ -153,6 +160,9 @@
function handleChart() { function handleChart() {
push({ push({
path: '/dataWarehousePlanning/logicalModel/ERchart', path: '/dataWarehousePlanning/logicalModel/ERchart',
query: {
isEdit: true,
},
}); });
} }
......
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, onMounted, ref, nextTick } from 'vue'; import { reactive, ref } from 'vue';
import { Descriptions, Tabs, Select } from 'ant-design-vue'; import { Select } from 'ant-design-vue';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import Detail from './detail.vue'; import Detail from './detail.vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
......
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