@steedos/steedos-plugin-schema-builder 2.2.50 → 2.2.51-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/package.json +3 -49
  2. package/webapp/package.json +59 -0
  3. package/src/objects.action.js +0 -5
  4. package/src/objects.object.yml +0 -6
  5. package/webapp/src/custom.d.ts +0 -33
  6. package/webapp/src/g6/behavior/activate-relations/index.tsx +0 -160
  7. package/webapp/src/g6/behavior/darg/index.tsx +0 -146
  8. package/webapp/src/g6/behavior/index.tsx +0 -5
  9. package/webapp/src/g6/model/editor-background.png +0 -0
  10. package/webapp/src/g6/model/index.tsx +0 -574
  11. package/webapp/src/g6/model/model-node.tsx +0 -1080
  12. package/webapp/src/g6/model/model.scss +0 -163
  13. package/webapp/src/g6/model/toolbar.tsx +0 -360
  14. package/webapp/src/g6/shape/base-sharp/index.tsx +0 -19
  15. package/webapp/src/g6/shape/index.tsx +0 -0
  16. package/webapp/src/g6/util/graph.tsx +0 -60
  17. package/webapp/src/g6/util/hooks.tsx +0 -26
  18. package/webapp/src/g6/util/index.tsx +0 -20
  19. package/webapp/src/g6/util/intel.ts +0 -7
  20. package/webapp/src/hook/index.tsx +0 -47
  21. package/webapp/src/index.tsx +0 -25
  22. package/webapp/src/page/dva-model/index.tsx +0 -70
  23. package/webapp/src/page/dva-model/reducer/arrange.tsx +0 -16
  24. package/webapp/src/page/dva-model/reducer/index.tsx +0 -7
  25. package/webapp/src/page/dva-model/reducer/init.tsx +0 -61
  26. package/webapp/src/page/dva-model/reducer/model.tsx +0 -126
  27. package/webapp/src/page/dva-model/reducer/on-expand.tsx +0 -27
  28. package/webapp/src/page/dva-model/style.tsx +0 -88
  29. package/webapp/src/page/hooks/callback.tsx +0 -54
  30. package/webapp/src/page/hooks/fullscreen.tsx +0 -34
  31. package/webapp/src/page/hooks/pagehooks.tsx +0 -127
  32. package/webapp/src/page/hooks/resize.tsx +0 -20
  33. package/webapp/src/page/index.tsx +0 -393
  34. package/webapp/src/page/model-navi/index.tsx +0 -329
  35. package/webapp/src/page/model-navi/style.scss +0 -111
  36. package/webapp/src/page/util/index.tsx +0 -234
  37. package/webapp/src/page/util/layout-nodes/index.tsx +0 -185
  38. package/webapp/src/pdm/index.tsx +0 -50
  39. package/webapp/src/pdm/pdm-json/index.js +0 -224
  40. package/webapp/src/pdm/pdm-json/removeDiacritics.js +0 -96
  41. package/webapp/src/pdm/util.ts +0 -60
  42. package/webapp/src/style.less +0 -14
  43. package/webapp/src/tree/index.tsx +0 -46
  44. package/webapp/src/tree/style.scss +0 -26
  45. package/webapp/src/type/field.tsx +0 -10
  46. package/webapp/src/type/index.tsx +0 -3
  47. package/webapp/src/type/model.tsx +0 -12
  48. package/webapp/src/type/module.tsx +0 -4
  49. package/webapp/test/g6-test/mock/model-test.ts +0 -3620
  50. package/webapp/test/g6-test/mock/module-test.ts +0 -14
  51. package/webapp/test/g6-test/mock/steedos-test.ts +0 -86
  52. package/webapp/test/index.tsx +0 -66
  53. package/webapp/test/testg6.tsx +0 -126
  54. package/webapp/test/unstated/index.tsx +0 -19
  55. package/webapp/tsconfig.json +0 -27
@@ -1,14 +0,0 @@
1
- export default [
2
- {
3
- name: '金融',
4
- key: '金融',
5
- },
6
- {
7
- name: 'ERP',
8
- key: 'ERP',
9
- },
10
- {
11
- name: '汽修',
12
- key: 'T9engSQ',
13
- },
14
- ]
@@ -1,86 +0,0 @@
1
- import { IModel, IModule } from '../../../src/type'
2
-
3
- export type models = {
4
- value : model[]
5
- }
6
-
7
- export type model = {
8
- fields: Record<string, field>
9
- label: string,
10
- name: string ,
11
- is_system: boolean
12
- }
13
-
14
- export type field = {
15
- label: string,
16
- name: string,
17
- type : string, //lookup
18
- is_system: boolean,
19
- is_enable: boolean,
20
- reference_to: string
21
- required: boolean
22
- }
23
-
24
- export type ItoErd = (models: models)=> IModel[]
25
-
26
- const FIELDTYPEMAP:any = {
27
- boolean: '勾选框',
28
- currency: '金额',
29
- date: '日期',
30
- datetime: '日期时间',
31
- email: '邮件地址',
32
- html: 'Html文本',
33
- lookup: '相关表',
34
- master_detail: '主表/子表',
35
- number: '数值',
36
- password: '密码',
37
- select: '选择框',
38
- text: '文本',
39
- textarea: '长文本',
40
- url: '网址',
41
- autonumber: '自动编号'
42
- }
43
- const getFieldTypeLabel = function(type: string){
44
- let lable = FIELDTYPEMAP[type];
45
- return lable ? lable: type
46
- }
47
-
48
- export const toERDModels : ItoErd = (models: models) =>{
49
-
50
- return models?.value.map(v => {
51
- return {
52
- fields : Object.entries(v.fields).filter(([_,v]) => !v.is_system ).map(([_,v])=> {
53
- let relationModel = v.reference_to && v.reference_to === 'users'? 'space_users' : v.reference_to
54
- return {
55
- type : getFieldTypeLabel(v.type),
56
- key: v.name,
57
- originalKey: v.name,
58
- name: v.label,
59
- typeMeta: relationModel && {
60
- type:'Relation',
61
- relationModel: relationModel
62
- },
63
- required: v.required
64
-
65
- }
66
- }),
67
- key: v.name,
68
- name: v.label,
69
- moduleKey : v.is_system ? "system" :"business",
70
- originalKey: v.name,
71
- type: ""
72
- }
73
- })
74
- }
75
-
76
- export type toModules = ()=> IModule[]
77
-
78
- export const toModules = () => {
79
- return [{
80
- key :'system',
81
- name:'系统'
82
- },{
83
- key :'business',
84
- name:'业务'
85
- }]
86
- }
@@ -1,66 +0,0 @@
1
- // import dva from 'dva'
2
- import React, { useMemo, useCallback } from 'react'
3
- import { useRequest } from 'ahooks';
4
- import { Skeleton, message } from 'antd'
5
- import Page , { DvaModel } from '../src'
6
- // import getAllModelsTest from './g6-test/mock/model-test'
7
- // import getAllModulesTest from './g6-test/mock/module-test'
8
- import { toModules, toERDModels } from './g6-test/mock/steedos-test'
9
-
10
-
11
- import init from './unstated'
12
-
13
- const ErdPdmPage = (props) => {
14
- var href = new URL(window.location.href);
15
- var foo = href.pathname.split('/schema-builder');
16
- var ROOT_URL_PATH_PREFIX = '';
17
- if(foo.length > 1){
18
- ROOT_URL_PATH_PREFIX = foo[0];
19
- }
20
- const { data, error, loading } = useRequest(ROOT_URL_PATH_PREFIX+'/api/v4/objects/schema/erd');
21
- // alert(JSON.stringify(data))
22
- const { getModels, getModules } = useMemo(() => ({
23
- getModels: async () => ({ res: toERDModels(data) }),
24
- getModules: async () => ({ res: toModules() }),
25
- // getModels: async () => ({ res: getAllModelsTest }),
26
- // getModules: async () => ({ res: getAllModulesTest }),
27
- }), [data])
28
-
29
- if(error?.message === 'Unauthorized') {
30
- // alert(window.location.href)
31
- message.error('请登录');
32
- window.location.href = ROOT_URL_PATH_PREFIX+'/accounts/a/#/login?redirect_uri='+ encodeURI(window.location.href)
33
- } else {
34
- if(error) message.error(error.message);
35
- }
36
-
37
-
38
- const openModelFun = useCallback((args)=>{
39
- window.open(`${ROOT_URL_PATH_PREFIX}/app/admin/objects/view/${args.model}`,'model')
40
- } , [])
41
-
42
- if(!data) return <Skeleton avatar active paragraph={{ rows: 20 }} >{error?.message}</Skeleton>
43
- return (
44
- <Page {...props}
45
- getModels={getModels}
46
- getModules={getModules}
47
- modelEditFun={openModelFun}
48
- isFullScreen
49
- />
50
- )
51
- }
52
- // alert()
53
- // // 创建应用
54
- // const app = dva()
55
- // app.model(DvaModel({namespace: 'erd'}) as any)
56
- // // 注册视图
57
- // app.router(() => (
58
- // <div>
59
- // <ErdPdmPage />
60
- // </div>
61
- // ))
62
- // // 启动应用
63
- // app.start('#app')
64
- init(ErdPdmPage)
65
- // document.appendChild(new HTMLDivElement({}))
66
- // import './testg6'
@@ -1,126 +0,0 @@
1
- import G6 from '@antv/g6';
2
- /**
3
- * 演示如何响应节点某一区域上的点击事件
4
- * by 长哲
5
- */
6
-
7
- const GRAPH_CONTAINER = 'app1';
8
-
9
- // 注册自定义节点
10
- G6.registerNode(
11
- 'customNode',
12
- {
13
- // 绘制节点
14
- drawShape: function drawShape(cfg, group) {
15
- const shapeType = this.shapeType;
16
- const style = Object.assign({}, this.getShapeStyle(cfg), {
17
- x: 0,
18
- y: 0,
19
- r: 50,
20
- });
21
- const shape = group.addShape(shapeType, {
22
- attrs: style,
23
- name: 'key-shape',
24
- });
25
- // 绘制节点里面的小圆。点击这个小圆会显示tooltip
26
- group.addShape('circle', {
27
- attrs: {
28
- x: 0,
29
- y: -30,
30
- r: 10,
31
- fill: '#096dd9',
32
- cursor: 'pointer',
33
- },
34
- name: 'circle-shape',
35
- });
36
- return shape;
37
- },
38
- },
39
- 'circle',
40
- );
41
-
42
- const data = {
43
- nodes: [
44
- {
45
- id: 'node1',
46
- x: 100,
47
- y: 150,
48
- label: 'node1',
49
- size: 100,
50
- type: 'customNode',
51
- },
52
- {
53
- id: 'node2',
54
- x: 300,
55
- y: 150,
56
- label: 'node2',
57
- size: 100,
58
- type: 'customNode',
59
- },
60
- ],
61
- edges: [
62
- {
63
- source: 'node1',
64
- target: 'node2',
65
- },
66
- ],
67
- };
68
-
69
- const width = 500;
70
- const height = document.getElementById('app1')!.scrollHeight || 500;
71
- const graph = new G6.Graph({
72
- container: GRAPH_CONTAINER,
73
- width,
74
- height,
75
- modes: {
76
- default: [
77
- {
78
- type: 'drag-node',
79
- enableDelegate: true
80
- },
81
- ],
82
- },
83
- defaultNode: {
84
- style: {
85
- fill: '#DEE9FF',
86
- stroke: '#5B8FF9',
87
- },
88
- labelCfg: {
89
- style: {
90
- fontSize: 12,
91
- },
92
- },
93
- },
94
- defaultEdge: {
95
- style: {
96
- stroke: '#e2e2e2',
97
- },
98
- },
99
- nodeStateStyles: {
100
- selected: {
101
- stroke: 'red'
102
- }
103
- }
104
- });
105
-
106
- graph.data(data);
107
- graph.render();
108
-
109
- // 节点上的点击事件
110
- graph.on('node:click', function(event) {
111
- const { item } = event;
112
- graph.setItemState(item, 'selected', true)
113
- });
114
-
115
- graph.on('circle-shape:click', evt => {
116
- const { item } = evt
117
- graph.updateItem(item, {
118
- label: '点击了圆',
119
- labelCfg: {
120
- style: {
121
- fill: '#003a8c',
122
- fontSize: 16,
123
- },
124
- },
125
- });
126
- })
@@ -1,19 +0,0 @@
1
- import React, { useReducer } from 'react'
2
- import ReactDom from 'react-dom'
3
- import { PageModel } from '../../src/hook'
4
-
5
- const PageComp = () => {
6
- const { state } = PageModel.useContainer()
7
- return <div>{JSON.stringify(state)}</div>
8
- }
9
-
10
- const PageRender = (PageCompp = PageComp) =>
11
- <PageModel.Provider>
12
- <PageCompp />
13
- </PageModel.Provider>
14
-
15
-
16
- export default (PageCompp) => {
17
- ReactDom.render(PageRender(PageCompp), document.getElementById("app"))
18
- }
19
-
@@ -1,27 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "esnext",
4
- "target": "es2018",
5
- "lib": ["dom", "es6"],
6
- "moduleResolution": "node",
7
- "importHelpers": true,
8
- "jsx": "react",
9
- "esModuleInterop": true,
10
- "experimentalDecorators": true,
11
- "sourceMap": true,
12
- "baseUrl": ".",
13
- "allowSyntheticDefaultImports": true,
14
- "resolveJsonModule": true,
15
- "noImplicitAny": true,
16
- "noUnusedParameters": true,
17
- "noUnusedLocals": true,
18
- "downlevelIteration": true,
19
- "emitDecoratorMetadata": true,
20
- "allowUnreachableCode": true,
21
- "strictNullChecks": true,
22
- "forceConsistentCasingInFileNames": true,
23
- "isolatedModules":false,
24
- "preserveSymlinks":true
25
- }
26
-
27
- }