|
@@ -17,7 +17,7 @@ import type {
|
|
|
TopicAreaInfo,
|
|
|
} from "@/type";
|
|
|
import { uuid } from "@/utils";
|
|
|
-import { RelationLineType, RelationType } from "@/enum";
|
|
|
+import { DataType, RelationLineType, RelationType } from "@/enum";
|
|
|
import { render } from "./renderer";
|
|
|
import { useSessionStorageState } from "ahooks";
|
|
|
|
|
@@ -34,10 +34,8 @@ export default function erModel() {
|
|
|
const [project, setProjectInfo] = useState<ProjectInfo>({
|
|
|
id: "1",
|
|
|
name: "项目1",
|
|
|
- folderId: "root",
|
|
|
- creationTime: "2024-12-12 12:12:12",
|
|
|
- creatorUser: "管理员",
|
|
|
- lastModificationTime: "2024-12-12 12:12:12",
|
|
|
+ directory: "",
|
|
|
+ type: 3,
|
|
|
description: "模型描述",
|
|
|
isTemplate: false,
|
|
|
industry: "互联网",
|
|
@@ -45,8 +43,9 @@ export default function erModel() {
|
|
|
tables: [],
|
|
|
relations: [],
|
|
|
topicAreas: [],
|
|
|
- remarks: [],
|
|
|
+ remarkInfos: [],
|
|
|
history: [],
|
|
|
+ todos: [],
|
|
|
setting: {
|
|
|
showMenu: true,
|
|
|
showSidebar: true,
|
|
@@ -120,11 +119,12 @@ export default function erModel() {
|
|
|
* 初始化画布
|
|
|
* @param container
|
|
|
*/
|
|
|
- const initGraph = (container: HTMLElement) => {
|
|
|
+ const initGraph = (container: HTMLElement, width?: number, height?: number) => {
|
|
|
+ console.log(container.clientWidth, container.clientHeight);
|
|
|
const instance = new Graph({
|
|
|
container,
|
|
|
- width: document.documentElement.clientWidth,
|
|
|
- height: document.documentElement.clientHeight,
|
|
|
+ width: width || document.documentElement.clientWidth,
|
|
|
+ height: height || document.documentElement.clientHeight,
|
|
|
autoResize: true,
|
|
|
async: false,
|
|
|
mousewheel: {
|
|
@@ -298,14 +298,11 @@ export default function erModel() {
|
|
|
aliasName: "newtable",
|
|
|
creationTime: "",
|
|
|
creatorUserId: "",
|
|
|
- displayOrder: 1,
|
|
|
+ displayOrder: true,
|
|
|
id: tableId,
|
|
|
isDeleted: false,
|
|
|
langDescription: "",
|
|
|
langName: "",
|
|
|
- name: "",
|
|
|
- cn_name: "新建表",
|
|
|
- en_name: "new table",
|
|
|
parentBusinessTableId: parentId || "",
|
|
|
schemaName: "new_table",
|
|
|
type: 1,
|
|
@@ -320,38 +317,32 @@ export default function erModel() {
|
|
|
},
|
|
|
tableColumnList: [
|
|
|
{
|
|
|
- aggregateEnable: false,
|
|
|
- businessTableId: tableId,
|
|
|
- charset: "",
|
|
|
- defaultValue: "",
|
|
|
- displayEnable: false,
|
|
|
- displayOrder: 1,
|
|
|
- groupByEnable: false,
|
|
|
id: columnId,
|
|
|
- isAggregateEnable: false,
|
|
|
- isDisplayEnable: false,
|
|
|
- isGroupByEnable: false,
|
|
|
- isLinkEnable: false,
|
|
|
- isOrderByEnable: false,
|
|
|
- isPreDefined: true,
|
|
|
- isRequired: true,
|
|
|
- isUnique: false,
|
|
|
- isWhereEnable: false,
|
|
|
- langName: "120d5c4e-a5d8-4d49-b5f5-492feb37e6c6",
|
|
|
- linkEnable: false,
|
|
|
- maxLength: 50,
|
|
|
- name: "Id",
|
|
|
- orderByEnable: false,
|
|
|
- preDefined: true,
|
|
|
+ schemaName: "",
|
|
|
+ type: DataType.Nvarchar,
|
|
|
+ maxLength: 100,
|
|
|
precision: 0,
|
|
|
- required: true,
|
|
|
scale: 0,
|
|
|
- schemaName: "id",
|
|
|
- type: 2,
|
|
|
- unique: false,
|
|
|
- whereEnable: false,
|
|
|
- cn_name: "id",
|
|
|
- en_name: "id",
|
|
|
+ isRequired: false,
|
|
|
+ isUnique: false,
|
|
|
+ isPreDefined: false,
|
|
|
+ defaultValue: "",
|
|
|
+ displayOrder: false,
|
|
|
+ businessTableId: tableId,
|
|
|
+ memo: '',
|
|
|
+ alignment: '',
|
|
|
+ isDisplayEnable: true,
|
|
|
+ isLinkEnable: false,
|
|
|
+ isWhereEnable: false,
|
|
|
+ isOrderByEnable: false,
|
|
|
+ isGroupByEnable: false,
|
|
|
+ isAggregateEnable: false,
|
|
|
+ whereInputType: '',
|
|
|
+ whereInputContent: '',
|
|
|
+ alterId: '',
|
|
|
+ temp_rename: '',
|
|
|
+ charset: '',
|
|
|
+ orderChar: ''
|
|
|
},
|
|
|
],
|
|
|
};
|
|
@@ -467,7 +458,7 @@ export default function erModel() {
|
|
|
const newRemark = {
|
|
|
isRemark: true,
|
|
|
id: remarkId,
|
|
|
- name: "备注_" + (project.remarks.length + 1),
|
|
|
+ name: "备注_" + (project.remarkInfos.length + 1),
|
|
|
text: "",
|
|
|
style: {
|
|
|
x: 300,
|
|
@@ -479,7 +470,7 @@ export default function erModel() {
|
|
|
};
|
|
|
setProject({
|
|
|
...project,
|
|
|
- remarks: [...project.remarks, newRemark],
|
|
|
+ remarkInfos: [...project.remarkInfos, newRemark],
|
|
|
});
|
|
|
};
|
|
|
|
|
@@ -489,7 +480,7 @@ export default function erModel() {
|
|
|
const updateRemark = (remark: RemarkInfo) => {
|
|
|
setProject((state) => ({
|
|
|
...(state || {}),
|
|
|
- remarks: state.remarks.map((item) => {
|
|
|
+ remarks: state.remarkInfos.map((item) => {
|
|
|
if (item.id === remark.id) {
|
|
|
return remark;
|
|
|
}
|
|
@@ -505,7 +496,7 @@ export default function erModel() {
|
|
|
const deleteRemark = (remarkId: string) => {
|
|
|
setProject({
|
|
|
...project,
|
|
|
- remarks: project.remarks.filter((item) => item.id !== remarkId),
|
|
|
+ remarkInfos: project.remarkInfos.filter((item) => item.id !== remarkId),
|
|
|
});
|
|
|
graphRef.current?.removeCell(remarkId);
|
|
|
};
|
|
@@ -633,7 +624,7 @@ export default function erModel() {
|
|
|
tables: [],
|
|
|
relations: [],
|
|
|
topicAreas: [],
|
|
|
- remarks: [],
|
|
|
+ remarkInfos: [],
|
|
|
},
|
|
|
true,
|
|
|
true
|
|
@@ -681,7 +672,7 @@ export default function erModel() {
|
|
|
if (data?.isRemark) {
|
|
|
setProject({
|
|
|
...project,
|
|
|
- remarks: project.remarks.filter((item) => item.id !== cell.id),
|
|
|
+ remarkInfos: project.remarkInfos.filter((item) => item.id !== cell.id),
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -763,7 +754,7 @@ export default function erModel() {
|
|
|
};
|
|
|
setProject({
|
|
|
...project,
|
|
|
- remarks: [...project.remarks, newRemark],
|
|
|
+ remarkInfos: [...project.remarkInfos, newRemark],
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -793,7 +784,7 @@ export default function erModel() {
|
|
|
if (data?.isRemark) {
|
|
|
setProject({
|
|
|
...project,
|
|
|
- remarks: project.remarks.filter((item) => item.id !== cell[0].id),
|
|
|
+ remarkInfos: project.remarkInfos.filter((item) => item.id !== cell[0].id),
|
|
|
});
|
|
|
}
|
|
|
}
|