kts-components-document-access-point 1.4.2 → 1.4.5
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.
- package/.editorconfig +16 -16
- package/.fatherrc.ts +4 -4
- package/.prettierignore +7 -7
- package/.prettierrc +11 -11
- package/.umirc.ts +11 -11
- package/README.md +3 -3
- package/dist/index.esm.js +28 -8
- package/dist/index.js +28 -8
- package/docs/index.md +3 -3
- package/index.html +12 -12
- package/package.json +56 -56
- package/src/DocumentWhiteList/___demo___/base/index.tsx +7 -7
- package/src/DocumentWhiteList/___demo___/setService/index.tsx +23 -23
- package/src/DocumentWhiteList/control/actions/addblack/index.ts +14 -14
- package/src/DocumentWhiteList/control/actions/addwhite/index.ts +14 -14
- package/src/DocumentWhiteList/control/actions/blacklist/index.ts +22 -22
- package/src/DocumentWhiteList/control/actions/checkclient/index.ts +14 -14
- package/src/DocumentWhiteList/control/actions/demo/index.ts +4 -4
- package/src/DocumentWhiteList/control/actions/didilist/index.ts +18 -18
- package/src/DocumentWhiteList/control/actions/enableblacklist/index.ts +17 -17
- package/src/DocumentWhiteList/control/actions/enablelist/index.ts +18 -18
- package/src/DocumentWhiteList/control/actions/enablewhitelist/index.ts +17 -17
- package/src/DocumentWhiteList/control/actions/getmode/index.ts +14 -14
- package/src/DocumentWhiteList/control/actions/setmode/index.ts +14 -14
- package/src/DocumentWhiteList/control/actions/synclist/index.ts +19 -19
- package/src/DocumentWhiteList/control/actions/whitelist/index.ts +22 -22
- package/src/DocumentWhiteList/control/index.tsx +42 -42
- package/src/DocumentWhiteList/control/state/index.ts +47 -47
- package/src/DocumentWhiteList/index.md +5 -5
- package/src/DocumentWhiteList/index.tsx +40 -40
- package/src/DocumentWhiteList/interface/index.ts +30 -30
- package/src/DocumentWhiteList/ui/clientmodal/index.tsx +190 -190
- package/src/DocumentWhiteList/ui/main/black.tsx +132 -132
- package/src/DocumentWhiteList/ui/main/index.tsx +49 -49
- package/src/DocumentWhiteList/ui/main/switchmode.tsx +52 -52
- package/src/DocumentWhiteList/ui/main/white.tsx +120 -120
- package/src/DocumentWhiteList/ui/pageheader/BlackHeader.tsx +143 -143
- package/src/DocumentWhiteList/ui/pageheader/WhiteHeader.tsx +152 -152
- package/src/DocumentWhiteList/ui/pageui/index.tsx +64 -64
- package/src/DocumentWhiteList/ui/whitemodal/index.tsx +146 -146
- package/src/DocumentWhiteList/util/ConfigEnum.ts +8 -8
- package/src/DocumentsCont/___demo___/base/index.tsx +7 -7
- package/src/DocumentsCont/___demo___/setService/index.tsx +25 -25
- package/src/DocumentsCont/index.md +9 -9
- package/src/DocumentsCont/index.tsx +54 -51
- package/src/DocumentsDemo/Controller/index.tsx +14 -14
- package/src/DocumentsDemo/Controller/whitelist.ts +22 -22
- package/src/DocumentsDemo/Text.tsx +22 -22
- package/src/DocumentsDemo/___demo___/base/index.tsx +7 -7
- package/src/DocumentsDemo/index.md +6 -6
- package/src/DocumentsDemo/index.tsx +38 -38
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/IProperties/index.ts +69 -69
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/IRules/index.ts +18 -18
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/ISchema/index.ts +14 -14
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/PropertyTableState/index.ts +12 -12
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/RuleState/index.ts +336 -336
- package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/index.ts +51 -51
- package/src/DocumentsEdit/DocumentsEditController/actions/addProperties/index.ts +37 -37
- package/src/DocumentsEdit/DocumentsEditController/actions/delProperties/index.ts +48 -48
- package/src/DocumentsEdit/DocumentsEditController/actions/editProperties/index.ts +93 -79
- package/src/DocumentsEdit/DocumentsEditController/index.tsx +21 -21
- package/src/DocumentsEdit/___demo___/conventional/index.tsx +10 -10
- package/src/DocumentsEdit/___demo___/monitor/index.tsx +1421 -1421
- package/src/DocumentsEdit/___demo___/readOnly/index.tsx +16 -16
- package/src/DocumentsEdit/constant/propertyColumns/index.tsx +65 -65
- package/src/DocumentsEdit/index.less +45 -45
- package/src/DocumentsEdit/index.md +10 -10
- package/src/DocumentsEdit/index.tsx +117 -117
- package/src/DocumentsEdit/tools/index.ts +88 -88
- package/src/DocumentsEdit/ui/AddPropertyButton/index.tsx +238 -238
- package/src/DocumentsEdit/ui/Breadcrumb/index.tsx +51 -51
- package/src/DocumentsEdit/ui/EditProperty/index.tsx +290 -290
- package/src/DocumentsEdit/ui/EditRule/index.tsx +156 -156
- package/src/DocumentsEdit/ui/EditRule/ui/AddRuleButton/index.tsx +49 -49
- package/src/DocumentsEdit/ui/EditRule/ui/DelRuleButton/index.tsx +31 -31
- package/src/DocumentsEdit/ui/EditRule/ui/RuleForm/fn/algorithmFormComponent/index.tsx +142 -142
- package/src/DocumentsEdit/ui/EditRule/ui/RuleForm/index.tsx +154 -154
- package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/index.less +4 -4
- package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/index.tsx +70 -70
- package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/AddChildPropertyButton/index.tsx +34 -34
- package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/AddRuleButton/index.tsx +64 -64
- package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/EditPropertyButton/index.tsx +31 -31
- package/src/DocumentsEdit/ui/PropertyTable/index.less +19 -19
- package/src/DocumentsEdit/ui/PropertyTable/index.tsx +18 -18
- package/src/DocumentsEdit/ui/RefPropertyButton/index.tsx +121 -121
- package/src/DocumentsList/DocumentsListController/DocumentsListControllerState/index.ts +55 -55
- package/src/DocumentsList/DocumentsListController/actions/demo/index.ts +4 -4
- package/src/DocumentsList/DocumentsListController/actions/typelist/index.ts +15 -15
- package/src/DocumentsList/DocumentsListController/index.tsx +16 -16
- package/src/DocumentsList/___demo___/list/index.tsx +4 -4
- package/src/DocumentsList/index.less +22 -22
- package/src/DocumentsList/index.md +3 -3
- package/src/DocumentsList/index.tsx +46 -46
- package/src/DocumentsList/ui/ModalComfirm/index.tsx +94 -92
- package/src/DocumentsList/ui/PageHeader/SendHeader.tsx +230 -230
- package/src/DocumentsList/ui/PageHeader/index.tsx +325 -325
- package/src/DocumentsList/ui/PageUI/index.tsx +65 -65
- package/src/DocumentsList/ui/RuleTable/index.tsx +163 -163
- package/src/DocumentsList/ui/sendlist/index.tsx +151 -151
- package/src/DocumentsList/util/ConfigEnum.ts +11 -11
- package/src/DocumentsRule/control/actions/batchsend/index.ts +13 -13
- package/src/DocumentsRule/control/actions/configsave/index.ts +14 -14
- package/src/DocumentsRule/control/actions/configupdate/index.ts +13 -13
- package/src/DocumentsRule/control/actions/getconfigbyid/index.ts +14 -14
- package/src/DocumentsRule/control/actions/getrecordbyid/index.ts +14 -14
- package/src/DocumentsRule/control/actions/gettemplate/index.ts +15 -15
- package/src/DocumentsRule/control/actions/listbysubjectid/index.ts +13 -13
- package/src/DocumentsRule/control/actions/typelist/index.ts +13 -13
- package/src/DocumentsRule/control/index.tsx +30 -30
- package/src/DocumentsRule/control/state/index.ts +42 -42
- package/src/DocumentsRule/index.md +1 -1
- package/src/DocumentsRule/index.tsx +25 -25
- package/src/DocumentsRule/interface/index.ts +28 -28
- package/src/DocumentsRule/ui/main/index.tsx +362 -362
- package/src/DocumentsService/index.ts +18 -18
- package/src/index.ts +9 -9
- package/tsconfig.json +29 -29
- package/typings.d.ts +3 -3
- package/docs-dist/404.html +0 -38
- package/docs-dist/index.html +0 -38
- package/docs-dist/static/icon.050945f2.svg +0 -1
- package/docs-dist/umi.css +0 -11
- package/docs-dist/umi.js +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
import { Switch } from 'kts-components-antd-x4';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { DocumentsEdit } from '../../../';
|
|
5
|
-
|
|
6
|
-
export default () => {
|
|
7
|
-
|
|
8
|
-
const [readOnly, setReadOnly] = React.useState(false)
|
|
9
|
-
|
|
10
|
-
return (
|
|
11
|
-
<>
|
|
12
|
-
<Switch style={{}} onChange={e => { setReadOnly(e) }} />
|
|
13
|
-
<DocumentsEdit readOnly={readOnly} />
|
|
14
|
-
</>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
1
|
+
|
|
2
|
+
import { Switch } from 'kts-components-antd-x4';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { DocumentsEdit } from '../../../';
|
|
5
|
+
|
|
6
|
+
export default () => {
|
|
7
|
+
|
|
8
|
+
const [readOnly, setReadOnly] = React.useState(false)
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<>
|
|
12
|
+
<Switch style={{}} onChange={e => { setReadOnly(e) }} />
|
|
13
|
+
<DocumentsEdit readOnly={readOnly} />
|
|
14
|
+
</>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
import React from "react";
|
|
3
|
-
import IProperties from "../../DocumentsEditController/DocumentsEditControllerState/IProperties";
|
|
4
|
-
import { ColumnType } from "kts-components-antd-x4/lib/table";
|
|
5
|
-
import * as tools from "../../tools";
|
|
6
|
-
|
|
7
|
-
const propertyColumns: ColumnType<any>[] = [
|
|
8
|
-
{
|
|
9
|
-
title: '字段名称',
|
|
10
|
-
render: (_, v) => {
|
|
11
|
-
return <MySpan>{v.value.$name}</MySpan>;
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
title: '显示名称',
|
|
16
|
-
render: (_, v) => {
|
|
17
|
-
return <MySpan>{v.value.alias}</MySpan>;
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
title: '描述',
|
|
22
|
-
render: (_, v) => {
|
|
23
|
-
return <MySpan>{v.value.detailed}</MySpan>;
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
title: '是否必填',
|
|
28
|
-
width: 80,
|
|
29
|
-
render: (_, v) => {
|
|
30
|
-
return <MySpan>{v.required.indexOf(v.value.$name) >= 0 ? '是' : '否'}</MySpan>;
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
title: '形式',
|
|
35
|
-
render: (_, v) => {
|
|
36
|
-
return <MySpan>{tools.getTypeName(tools.initType(v.ref))}</MySpan>;
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
title: '是否已添加校验规则',
|
|
41
|
-
key: 'isRules',
|
|
42
|
-
width: 130,
|
|
43
|
-
render: (_, v) => {
|
|
44
|
-
return <MySpan>{v.ref.rules ? v.ref.rules.length > 0 ? '是' : '否' : '否'}</MySpan>;
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
class MySpan extends React.Component {
|
|
50
|
-
render() {
|
|
51
|
-
return (
|
|
52
|
-
<span style={{ padding: '0 8px' }}>
|
|
53
|
-
{this.props.children}
|
|
54
|
-
</span>
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default propertyColumns.map((e, i) => {
|
|
60
|
-
return {
|
|
61
|
-
key: `default${i}`,
|
|
62
|
-
ellipsis: { showTitle: false },
|
|
63
|
-
...e,
|
|
64
|
-
}
|
|
65
|
-
}) as ColumnType<any>[];
|
|
1
|
+
|
|
2
|
+
import React from "react";
|
|
3
|
+
import IProperties from "../../DocumentsEditController/DocumentsEditControllerState/IProperties";
|
|
4
|
+
import { ColumnType } from "kts-components-antd-x4/lib/table";
|
|
5
|
+
import * as tools from "../../tools";
|
|
6
|
+
|
|
7
|
+
const propertyColumns: ColumnType<any>[] = [
|
|
8
|
+
{
|
|
9
|
+
title: '字段名称',
|
|
10
|
+
render: (_, v) => {
|
|
11
|
+
return <MySpan>{v.value.$name}</MySpan>;
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
title: '显示名称',
|
|
16
|
+
render: (_, v) => {
|
|
17
|
+
return <MySpan>{v.value.alias}</MySpan>;
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: '描述',
|
|
22
|
+
render: (_, v) => {
|
|
23
|
+
return <MySpan>{v.value.detailed}</MySpan>;
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
title: '是否必填',
|
|
28
|
+
width: 80,
|
|
29
|
+
render: (_, v) => {
|
|
30
|
+
return <MySpan>{v.required.indexOf(v.value.$name) >= 0 ? '是' : '否'}</MySpan>;
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: '形式',
|
|
35
|
+
render: (_, v) => {
|
|
36
|
+
return <MySpan>{tools.getTypeName(tools.initType(v.ref))}</MySpan>;
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: '是否已添加校验规则',
|
|
41
|
+
key: 'isRules',
|
|
42
|
+
width: 130,
|
|
43
|
+
render: (_, v) => {
|
|
44
|
+
return <MySpan>{v.ref.rules ? v.ref.rules.length > 0 ? '是' : '否' : '否'}</MySpan>;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
class MySpan extends React.Component {
|
|
50
|
+
render() {
|
|
51
|
+
return (
|
|
52
|
+
<span style={{ padding: '0 8px' }}>
|
|
53
|
+
{this.props.children}
|
|
54
|
+
</span>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default propertyColumns.map((e, i) => {
|
|
60
|
+
return {
|
|
61
|
+
key: `default${i}`,
|
|
62
|
+
ellipsis: { showTitle: false },
|
|
63
|
+
...e,
|
|
64
|
+
}
|
|
65
|
+
}) as ColumnType<any>[];
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
.kts-documents-edit {
|
|
2
|
-
|
|
3
|
-
// min-height: 600px;
|
|
4
|
-
height: 100%;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
|
|
8
|
-
.kts-documents-edit-head {
|
|
9
|
-
display: flex;
|
|
10
|
-
margin-bottom: 10px;
|
|
11
|
-
|
|
12
|
-
.ktsAntX-space-item:first-child {
|
|
13
|
-
flex: 1;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.kts-documents-edit-property {
|
|
18
|
-
flex: 1;
|
|
19
|
-
overflow: auto;
|
|
20
|
-
|
|
21
|
-
.ktsAntX-table,
|
|
22
|
-
.ktsAntX-spin-container,
|
|
23
|
-
.ktsAntX-spin-nested-loading,
|
|
24
|
-
.ktsAntX-table-wrapper{
|
|
25
|
-
height: 100%;
|
|
26
|
-
overflow: auto;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.ktsAntX-table-container{
|
|
30
|
-
height: 100%;
|
|
31
|
-
overflow: auto;
|
|
32
|
-
display: flex;
|
|
33
|
-
flex-direction: column;
|
|
34
|
-
|
|
35
|
-
.ktsAntX-table-header{
|
|
36
|
-
flex: none;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.ktsAntX-table-body{
|
|
40
|
-
flex: 1;
|
|
41
|
-
overflow: auto;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
1
|
+
.kts-documents-edit {
|
|
2
|
+
|
|
3
|
+
// min-height: 600px;
|
|
4
|
+
height: 100%;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
|
|
8
|
+
.kts-documents-edit-head {
|
|
9
|
+
display: flex;
|
|
10
|
+
margin-bottom: 10px;
|
|
11
|
+
|
|
12
|
+
.ktsAntX-space-item:first-child {
|
|
13
|
+
flex: 1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.kts-documents-edit-property {
|
|
18
|
+
flex: 1;
|
|
19
|
+
overflow: auto;
|
|
20
|
+
|
|
21
|
+
.ktsAntX-table,
|
|
22
|
+
.ktsAntX-spin-container,
|
|
23
|
+
.ktsAntX-spin-nested-loading,
|
|
24
|
+
.ktsAntX-table-wrapper{
|
|
25
|
+
height: 100%;
|
|
26
|
+
overflow: auto;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.ktsAntX-table-container{
|
|
30
|
+
height: 100%;
|
|
31
|
+
overflow: auto;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
|
|
35
|
+
.ktsAntX-table-header{
|
|
36
|
+
flex: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.ktsAntX-table-body{
|
|
40
|
+
flex: 1;
|
|
41
|
+
overflow: auto;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# DocumentsEdit
|
|
2
|
-
|
|
3
|
-
## 普通使用
|
|
4
|
-
<code src="./___demo___/conventional/index.tsx" ></code>
|
|
5
|
-
|
|
6
|
-
## 监听问题编号 和 导入数据
|
|
7
|
-
<code src="./___demo___/monitor/index.tsx" ></code>
|
|
8
|
-
|
|
9
|
-
## 只读模式
|
|
10
|
-
<code src="./___demo___/readOnly/index.tsx" ></code>
|
|
1
|
+
# DocumentsEdit
|
|
2
|
+
|
|
3
|
+
## 普通使用
|
|
4
|
+
<code src="./___demo___/conventional/index.tsx" ></code>
|
|
5
|
+
|
|
6
|
+
## 监听问题编号 和 导入数据
|
|
7
|
+
<code src="./___demo___/monitor/index.tsx" ></code>
|
|
8
|
+
|
|
9
|
+
## 只读模式
|
|
10
|
+
<code src="./___demo___/readOnly/index.tsx" ></code>
|
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Space } from 'kts-components-antd-x4'
|
|
3
|
-
import DocumentsEditController from './DocumentsEditController';
|
|
4
|
-
import ISchema from './DocumentsEditController/DocumentsEditControllerState/ISchema';
|
|
5
|
-
import DocumentsEditControllerState from './DocumentsEditController/DocumentsEditControllerState';
|
|
6
|
-
import Breadcrumb from './ui/Breadcrumb';
|
|
7
|
-
import AddPropertyButton from './ui/AddPropertyButton';
|
|
8
|
-
// import RefPropertyButton from './ui/RefPropertyButton';
|
|
9
|
-
import PropertyTable from './ui/PropertyTable';
|
|
10
|
-
import EditProperty from './ui/EditProperty';
|
|
11
|
-
import EditRule from './ui/EditRule';
|
|
12
|
-
import './index.less';
|
|
13
|
-
|
|
14
|
-
export { default as DocumentsEditControllerState } from './DocumentsEditController/DocumentsEditControllerState';
|
|
15
|
-
|
|
16
|
-
/** 发票组件的上下文 */
|
|
17
|
-
export const DocumentsEditContext = React.createContext<DocumentsEditController>(undefined as any);
|
|
18
|
-
|
|
19
|
-
export interface IDocumentsEdit {
|
|
20
|
-
|
|
21
|
-
/** 默认文档数据,第一次渲染生效 */
|
|
22
|
-
schema?: ISchema;
|
|
23
|
-
|
|
24
|
-
/** 控制器 */
|
|
25
|
-
controller?: DocumentsEditController;
|
|
26
|
-
|
|
27
|
-
/** 文档改变时候 */
|
|
28
|
-
onChange?: (schema: ISchema) => void;
|
|
29
|
-
|
|
30
|
-
/** 只读 */
|
|
31
|
-
readOnly?: boolean;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export default class DocumentsEdit extends React.Component<IDocumentsEdit> {
|
|
35
|
-
|
|
36
|
-
/** 控制器 */
|
|
37
|
-
static DocumentsEditController = DocumentsEditController;
|
|
38
|
-
|
|
39
|
-
/** 控制器 */
|
|
40
|
-
static DocumentsEditControllerState = DocumentsEditControllerState;
|
|
41
|
-
|
|
42
|
-
/** 创建文档对象 */
|
|
43
|
-
static createSchema = (title: string) => ({
|
|
44
|
-
"$schema": "",
|
|
45
|
-
"$id": "",
|
|
46
|
-
"$createTime": 0,
|
|
47
|
-
"$count": 0,
|
|
48
|
-
"$name": "schema",
|
|
49
|
-
"type": "object",
|
|
50
|
-
"title": title,
|
|
51
|
-
"definitions": {}
|
|
52
|
-
} as ISchema)
|
|
53
|
-
|
|
54
|
-
/** 获取控制器钩子 */
|
|
55
|
-
static useDocumentsEditController = () => React.useContext(DocumentsEditContext);
|
|
56
|
-
|
|
57
|
-
render = () => <Main {...this.props} />
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const Main = (props: IDocumentsEdit) => {
|
|
61
|
-
|
|
62
|
-
const controller = React.useMemo(() => props.controller || new DocumentsEditController(new DocumentsEditControllerState(props.schema)), [props.controller]);
|
|
63
|
-
|
|
64
|
-
const schema = controller.useMemo(s => s.schema, []);
|
|
65
|
-
|
|
66
|
-
React.useEffect(() => {
|
|
67
|
-
controller.pipeline(async s => {
|
|
68
|
-
s.propertyTableState.current = s.schema;
|
|
69
|
-
s.breadcrumbState = [];
|
|
70
|
-
})()
|
|
71
|
-
}, [controller])
|
|
72
|
-
|
|
73
|
-
// props的文档数据是否改变 更新控制器数据
|
|
74
|
-
React.useEffect(() => {
|
|
75
|
-
controller.pipeline(async s => {
|
|
76
|
-
if (props.schema && s.schema !== props.schema) {
|
|
77
|
-
s.schema = props.schema;
|
|
78
|
-
s.propertyTableState.current = s.schema;
|
|
79
|
-
s.breadcrumbState = [];
|
|
80
|
-
}
|
|
81
|
-
})()
|
|
82
|
-
}, [controller, props.schema])
|
|
83
|
-
|
|
84
|
-
// 文档数据改变时候 并且 props 没有改变,调用onChange
|
|
85
|
-
React.useEffect(() => {
|
|
86
|
-
(async () => {
|
|
87
|
-
await controller.wait();
|
|
88
|
-
await controller.pipeline(async s => {
|
|
89
|
-
if (s.schema === props.schema) return;
|
|
90
|
-
if (s.schema && props.onChange) { props.onChange(s.schema); }
|
|
91
|
-
})()
|
|
92
|
-
})()
|
|
93
|
-
}, [controller, schema, props.schema, props.onChange])
|
|
94
|
-
|
|
95
|
-
// 更新只读状态
|
|
96
|
-
React.useEffect(() => {
|
|
97
|
-
controller.pipeline(async s => {
|
|
98
|
-
s.readOnly = !!props.readOnly;
|
|
99
|
-
})()
|
|
100
|
-
}, [props.readOnly, controller])
|
|
101
|
-
|
|
102
|
-
return (
|
|
103
|
-
<DocumentsEditContext.Provider value={controller}>
|
|
104
|
-
<div className="kts-documents-edit" >
|
|
105
|
-
<Space className="kts-documents-edit-head">
|
|
106
|
-
<Breadcrumb />
|
|
107
|
-
<AddPropertyButton />
|
|
108
|
-
{/* <RefPropertyButton /> */}
|
|
109
|
-
</Space>
|
|
110
|
-
<div className="kts-documents-edit-property">
|
|
111
|
-
<PropertyTable />
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
<EditProperty />
|
|
115
|
-
<EditRule />
|
|
116
|
-
</DocumentsEditContext.Provider>
|
|
117
|
-
);
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Space } from 'kts-components-antd-x4'
|
|
3
|
+
import DocumentsEditController from './DocumentsEditController';
|
|
4
|
+
import ISchema from './DocumentsEditController/DocumentsEditControllerState/ISchema';
|
|
5
|
+
import DocumentsEditControllerState from './DocumentsEditController/DocumentsEditControllerState';
|
|
6
|
+
import Breadcrumb from './ui/Breadcrumb';
|
|
7
|
+
import AddPropertyButton from './ui/AddPropertyButton';
|
|
8
|
+
// import RefPropertyButton from './ui/RefPropertyButton';
|
|
9
|
+
import PropertyTable from './ui/PropertyTable';
|
|
10
|
+
import EditProperty from './ui/EditProperty';
|
|
11
|
+
import EditRule from './ui/EditRule';
|
|
12
|
+
import './index.less';
|
|
13
|
+
|
|
14
|
+
export { default as DocumentsEditControllerState } from './DocumentsEditController/DocumentsEditControllerState';
|
|
15
|
+
|
|
16
|
+
/** 发票组件的上下文 */
|
|
17
|
+
export const DocumentsEditContext = React.createContext<DocumentsEditController>(undefined as any);
|
|
18
|
+
|
|
19
|
+
export interface IDocumentsEdit {
|
|
20
|
+
|
|
21
|
+
/** 默认文档数据,第一次渲染生效 */
|
|
22
|
+
schema?: ISchema;
|
|
23
|
+
|
|
24
|
+
/** 控制器 */
|
|
25
|
+
controller?: DocumentsEditController;
|
|
26
|
+
|
|
27
|
+
/** 文档改变时候 */
|
|
28
|
+
onChange?: (schema: ISchema) => void;
|
|
29
|
+
|
|
30
|
+
/** 只读 */
|
|
31
|
+
readOnly?: boolean;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default class DocumentsEdit extends React.Component<IDocumentsEdit> {
|
|
35
|
+
|
|
36
|
+
/** 控制器 */
|
|
37
|
+
static DocumentsEditController = DocumentsEditController;
|
|
38
|
+
|
|
39
|
+
/** 控制器 */
|
|
40
|
+
static DocumentsEditControllerState = DocumentsEditControllerState;
|
|
41
|
+
|
|
42
|
+
/** 创建文档对象 */
|
|
43
|
+
static createSchema = (title: string) => ({
|
|
44
|
+
"$schema": "",
|
|
45
|
+
"$id": "",
|
|
46
|
+
"$createTime": 0,
|
|
47
|
+
"$count": 0,
|
|
48
|
+
"$name": "schema",
|
|
49
|
+
"type": "object",
|
|
50
|
+
"title": title,
|
|
51
|
+
"definitions": {}
|
|
52
|
+
} as ISchema)
|
|
53
|
+
|
|
54
|
+
/** 获取控制器钩子 */
|
|
55
|
+
static useDocumentsEditController = () => React.useContext(DocumentsEditContext);
|
|
56
|
+
|
|
57
|
+
render = () => <Main {...this.props} />
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const Main = (props: IDocumentsEdit) => {
|
|
61
|
+
|
|
62
|
+
const controller = React.useMemo(() => props.controller || new DocumentsEditController(new DocumentsEditControllerState(props.schema)), [props.controller]);
|
|
63
|
+
|
|
64
|
+
const schema = controller.useMemo(s => s.schema, []);
|
|
65
|
+
|
|
66
|
+
React.useEffect(() => {
|
|
67
|
+
controller.pipeline(async s => {
|
|
68
|
+
s.propertyTableState.current = s.schema;
|
|
69
|
+
s.breadcrumbState = [];
|
|
70
|
+
})()
|
|
71
|
+
}, [controller])
|
|
72
|
+
|
|
73
|
+
// props的文档数据是否改变 更新控制器数据
|
|
74
|
+
React.useEffect(() => {
|
|
75
|
+
controller.pipeline(async s => {
|
|
76
|
+
if (props.schema && s.schema !== props.schema) {
|
|
77
|
+
s.schema = props.schema;
|
|
78
|
+
s.propertyTableState.current = s.schema;
|
|
79
|
+
s.breadcrumbState = [];
|
|
80
|
+
}
|
|
81
|
+
})()
|
|
82
|
+
}, [controller, props.schema])
|
|
83
|
+
|
|
84
|
+
// 文档数据改变时候 并且 props 没有改变,调用onChange
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
(async () => {
|
|
87
|
+
await controller.wait();
|
|
88
|
+
await controller.pipeline(async s => {
|
|
89
|
+
if (s.schema === props.schema) return;
|
|
90
|
+
if (s.schema && props.onChange) { props.onChange(s.schema); }
|
|
91
|
+
})()
|
|
92
|
+
})()
|
|
93
|
+
}, [controller, schema, props.schema, props.onChange])
|
|
94
|
+
|
|
95
|
+
// 更新只读状态
|
|
96
|
+
React.useEffect(() => {
|
|
97
|
+
controller.pipeline(async s => {
|
|
98
|
+
s.readOnly = !!props.readOnly;
|
|
99
|
+
})()
|
|
100
|
+
}, [props.readOnly, controller])
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<DocumentsEditContext.Provider value={controller}>
|
|
104
|
+
<div className="kts-documents-edit" >
|
|
105
|
+
<Space className="kts-documents-edit-head">
|
|
106
|
+
<Breadcrumb />
|
|
107
|
+
<AddPropertyButton />
|
|
108
|
+
{/* <RefPropertyButton /> */}
|
|
109
|
+
</Space>
|
|
110
|
+
<div className="kts-documents-edit-property">
|
|
111
|
+
<PropertyTable />
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<EditProperty />
|
|
115
|
+
<EditRule />
|
|
116
|
+
</DocumentsEditContext.Provider>
|
|
117
|
+
);
|
|
118
118
|
};
|