Commit 3b562f9e authored by LiXuyang's avatar LiXuyang

逻辑模型设计-编辑-修改

parent ad8bb037
...@@ -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();
......
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