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.
Files changed (123) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +4 -4
  3. package/.prettierignore +7 -7
  4. package/.prettierrc +11 -11
  5. package/.umirc.ts +11 -11
  6. package/README.md +3 -3
  7. package/dist/index.esm.js +28 -8
  8. package/dist/index.js +28 -8
  9. package/docs/index.md +3 -3
  10. package/index.html +12 -12
  11. package/package.json +56 -56
  12. package/src/DocumentWhiteList/___demo___/base/index.tsx +7 -7
  13. package/src/DocumentWhiteList/___demo___/setService/index.tsx +23 -23
  14. package/src/DocumentWhiteList/control/actions/addblack/index.ts +14 -14
  15. package/src/DocumentWhiteList/control/actions/addwhite/index.ts +14 -14
  16. package/src/DocumentWhiteList/control/actions/blacklist/index.ts +22 -22
  17. package/src/DocumentWhiteList/control/actions/checkclient/index.ts +14 -14
  18. package/src/DocumentWhiteList/control/actions/demo/index.ts +4 -4
  19. package/src/DocumentWhiteList/control/actions/didilist/index.ts +18 -18
  20. package/src/DocumentWhiteList/control/actions/enableblacklist/index.ts +17 -17
  21. package/src/DocumentWhiteList/control/actions/enablelist/index.ts +18 -18
  22. package/src/DocumentWhiteList/control/actions/enablewhitelist/index.ts +17 -17
  23. package/src/DocumentWhiteList/control/actions/getmode/index.ts +14 -14
  24. package/src/DocumentWhiteList/control/actions/setmode/index.ts +14 -14
  25. package/src/DocumentWhiteList/control/actions/synclist/index.ts +19 -19
  26. package/src/DocumentWhiteList/control/actions/whitelist/index.ts +22 -22
  27. package/src/DocumentWhiteList/control/index.tsx +42 -42
  28. package/src/DocumentWhiteList/control/state/index.ts +47 -47
  29. package/src/DocumentWhiteList/index.md +5 -5
  30. package/src/DocumentWhiteList/index.tsx +40 -40
  31. package/src/DocumentWhiteList/interface/index.ts +30 -30
  32. package/src/DocumentWhiteList/ui/clientmodal/index.tsx +190 -190
  33. package/src/DocumentWhiteList/ui/main/black.tsx +132 -132
  34. package/src/DocumentWhiteList/ui/main/index.tsx +49 -49
  35. package/src/DocumentWhiteList/ui/main/switchmode.tsx +52 -52
  36. package/src/DocumentWhiteList/ui/main/white.tsx +120 -120
  37. package/src/DocumentWhiteList/ui/pageheader/BlackHeader.tsx +143 -143
  38. package/src/DocumentWhiteList/ui/pageheader/WhiteHeader.tsx +152 -152
  39. package/src/DocumentWhiteList/ui/pageui/index.tsx +64 -64
  40. package/src/DocumentWhiteList/ui/whitemodal/index.tsx +146 -146
  41. package/src/DocumentWhiteList/util/ConfigEnum.ts +8 -8
  42. package/src/DocumentsCont/___demo___/base/index.tsx +7 -7
  43. package/src/DocumentsCont/___demo___/setService/index.tsx +25 -25
  44. package/src/DocumentsCont/index.md +9 -9
  45. package/src/DocumentsCont/index.tsx +54 -51
  46. package/src/DocumentsDemo/Controller/index.tsx +14 -14
  47. package/src/DocumentsDemo/Controller/whitelist.ts +22 -22
  48. package/src/DocumentsDemo/Text.tsx +22 -22
  49. package/src/DocumentsDemo/___demo___/base/index.tsx +7 -7
  50. package/src/DocumentsDemo/index.md +6 -6
  51. package/src/DocumentsDemo/index.tsx +38 -38
  52. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/IProperties/index.ts +69 -69
  53. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/IRules/index.ts +18 -18
  54. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/ISchema/index.ts +14 -14
  55. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/PropertyTableState/index.ts +12 -12
  56. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/RuleState/index.ts +336 -336
  57. package/src/DocumentsEdit/DocumentsEditController/DocumentsEditControllerState/index.ts +51 -51
  58. package/src/DocumentsEdit/DocumentsEditController/actions/addProperties/index.ts +37 -37
  59. package/src/DocumentsEdit/DocumentsEditController/actions/delProperties/index.ts +48 -48
  60. package/src/DocumentsEdit/DocumentsEditController/actions/editProperties/index.ts +93 -79
  61. package/src/DocumentsEdit/DocumentsEditController/index.tsx +21 -21
  62. package/src/DocumentsEdit/___demo___/conventional/index.tsx +10 -10
  63. package/src/DocumentsEdit/___demo___/monitor/index.tsx +1421 -1421
  64. package/src/DocumentsEdit/___demo___/readOnly/index.tsx +16 -16
  65. package/src/DocumentsEdit/constant/propertyColumns/index.tsx +65 -65
  66. package/src/DocumentsEdit/index.less +45 -45
  67. package/src/DocumentsEdit/index.md +10 -10
  68. package/src/DocumentsEdit/index.tsx +117 -117
  69. package/src/DocumentsEdit/tools/index.ts +88 -88
  70. package/src/DocumentsEdit/ui/AddPropertyButton/index.tsx +238 -238
  71. package/src/DocumentsEdit/ui/Breadcrumb/index.tsx +51 -51
  72. package/src/DocumentsEdit/ui/EditProperty/index.tsx +290 -290
  73. package/src/DocumentsEdit/ui/EditRule/index.tsx +156 -156
  74. package/src/DocumentsEdit/ui/EditRule/ui/AddRuleButton/index.tsx +49 -49
  75. package/src/DocumentsEdit/ui/EditRule/ui/DelRuleButton/index.tsx +31 -31
  76. package/src/DocumentsEdit/ui/EditRule/ui/RuleForm/fn/algorithmFormComponent/index.tsx +142 -142
  77. package/src/DocumentsEdit/ui/EditRule/ui/RuleForm/index.tsx +154 -154
  78. package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/index.less +4 -4
  79. package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/index.tsx +70 -70
  80. package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/AddChildPropertyButton/index.tsx +34 -34
  81. package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/AddRuleButton/index.tsx +64 -64
  82. package/src/DocumentsEdit/ui/PropertyTable/hooks/useTableProps/ui/EditPropertyButton/index.tsx +31 -31
  83. package/src/DocumentsEdit/ui/PropertyTable/index.less +19 -19
  84. package/src/DocumentsEdit/ui/PropertyTable/index.tsx +18 -18
  85. package/src/DocumentsEdit/ui/RefPropertyButton/index.tsx +121 -121
  86. package/src/DocumentsList/DocumentsListController/DocumentsListControllerState/index.ts +55 -55
  87. package/src/DocumentsList/DocumentsListController/actions/demo/index.ts +4 -4
  88. package/src/DocumentsList/DocumentsListController/actions/typelist/index.ts +15 -15
  89. package/src/DocumentsList/DocumentsListController/index.tsx +16 -16
  90. package/src/DocumentsList/___demo___/list/index.tsx +4 -4
  91. package/src/DocumentsList/index.less +22 -22
  92. package/src/DocumentsList/index.md +3 -3
  93. package/src/DocumentsList/index.tsx +46 -46
  94. package/src/DocumentsList/ui/ModalComfirm/index.tsx +94 -92
  95. package/src/DocumentsList/ui/PageHeader/SendHeader.tsx +230 -230
  96. package/src/DocumentsList/ui/PageHeader/index.tsx +325 -325
  97. package/src/DocumentsList/ui/PageUI/index.tsx +65 -65
  98. package/src/DocumentsList/ui/RuleTable/index.tsx +163 -163
  99. package/src/DocumentsList/ui/sendlist/index.tsx +151 -151
  100. package/src/DocumentsList/util/ConfigEnum.ts +11 -11
  101. package/src/DocumentsRule/control/actions/batchsend/index.ts +13 -13
  102. package/src/DocumentsRule/control/actions/configsave/index.ts +14 -14
  103. package/src/DocumentsRule/control/actions/configupdate/index.ts +13 -13
  104. package/src/DocumentsRule/control/actions/getconfigbyid/index.ts +14 -14
  105. package/src/DocumentsRule/control/actions/getrecordbyid/index.ts +14 -14
  106. package/src/DocumentsRule/control/actions/gettemplate/index.ts +15 -15
  107. package/src/DocumentsRule/control/actions/listbysubjectid/index.ts +13 -13
  108. package/src/DocumentsRule/control/actions/typelist/index.ts +13 -13
  109. package/src/DocumentsRule/control/index.tsx +30 -30
  110. package/src/DocumentsRule/control/state/index.ts +42 -42
  111. package/src/DocumentsRule/index.md +1 -1
  112. package/src/DocumentsRule/index.tsx +25 -25
  113. package/src/DocumentsRule/interface/index.ts +28 -28
  114. package/src/DocumentsRule/ui/main/index.tsx +362 -362
  115. package/src/DocumentsService/index.ts +18 -18
  116. package/src/index.ts +9 -9
  117. package/tsconfig.json +29 -29
  118. package/typings.d.ts +3 -3
  119. package/docs-dist/404.html +0 -38
  120. package/docs-dist/index.html +0 -38
  121. package/docs-dist/static/icon.050945f2.svg +0 -1
  122. package/docs-dist/umi.css +0 -11
  123. package/docs-dist/umi.js +0 -1
@@ -1,363 +1,363 @@
1
- import React, { useCallback, useEffect, useState, useMemo } from 'react';
2
- import DocumentsEdit from '../../../DocumentsEdit';
3
- import { Button, message, Modal, Radio, Form, Input, Select, } from 'kts-xui';
4
- import { Card, Row, Col, PageHeader, Tooltip } from 'kts-components-antd-x4';
5
- import { useHistory } from 'react-router-dom';
6
- import qs from 'query-string';
7
- import Main from '../..';
8
- const { confirm } = Modal;
9
- export default function Rule(props: any) {
10
- const controller = Main.useController();
11
- const [billEnum, setBill] = useState([]);
12
- const [profileEnum, setProfile] = useState([]);
13
- const [schema, setSchema] = useState<any>();
14
- const [record, setRecord] = useState<any>({});
15
- const [form] = Form.useForm();
16
- const [visible, setVisible] = useState(false);
17
- const [targetId, setTarget] = useState();
18
- const [targetList, setList] = useState<any[]>([]);
19
- const [loading] = controller.useRuning(controller.configupdate,controller.configsave)
20
- // const [status, setStatus] = useState(0);
21
- // const [first, setFirst] = useState(true);
22
- const [hasChange, setChange] = useState(false);
23
- const history = useHistory() as any;
24
- const search = history.location.search && qs.parse(history.location.search);
25
- const id = search && search.id;
26
- const type = search && search.type;
27
- const queryType = search && search.billtype;
28
- const profile = search && search.profile;
29
- const disabled = type === 'record' ? true : false;
30
- useEffect(() => {
31
- const target: any = billEnum.find((item: any) => item.value === queryType);
32
- if (target) {
33
- const list = target.profileList && target.profileList.map((item: any) => {
34
- return {
35
- label: item.name,
36
- value: item.value
37
- }
38
- })
39
- setProfile(list);
40
- }
41
- }, [billEnum]);
42
- /**
43
- * 获取schema
44
- */
45
- useEffect(() => {
46
- (async () => {
47
- if (!id) {
48
- return false;
49
- }
50
- // const url = type === 'config' ? '/dap/web/schema/config/getConfigOneById' : '/dap/web/schema/config/getRecordOneById'
51
- const res = type === 'config' ? await controller.getconfigbyid({ id }) : await controller.getrecordbyid({ id });
52
- // const res = await DocumentsService.instance.service?.call({ url, data: { id }, type: 'get' }) as any;
53
- if (res.err) {
54
- return false;
55
- } else {
56
- setRecord(res.res)
57
- setSchema(JSON.parse(res.res.schemaContent));
58
- form.setFieldsValue(res.res);
59
- }
60
- })()
61
- }, [])
62
- /**
63
- * 获取默认模板
64
- */
65
- useEffect(() => {
66
- (async () => {
67
- if (id) {
68
- return false;
69
- }
70
- const res = await controller.gettemplate({ type: queryType, profile });
71
- // const res = await DocumentsService.instance.service?.call({ url: '/dap/web/schema/config/getDefaultTypeTemplate', data: { type: queryType, profile }, type: 'get' }) as any;
72
- if (res.err) {
73
- return false;
74
- } else {
75
- setSchema(res.res);
76
- }
77
- })()
78
- }, [])
79
-
80
- useEffect(() => {
81
- (async () => {
82
- const res = await controller.typelist({});
83
- // const res = await DocumentsService.instance.service?.call({ url: '/dap/web/schema/config/getDefaultTypeList', data: null, type: 'get' }) as any;
84
- if (res.err) {
85
- return false;
86
- } else {
87
- const list = res.res.map((item: any) => {
88
- return { ...item, label: item.name, value: item.value }
89
- })
90
- setBill(list);
91
- }
92
- })()
93
- }, []);
94
-
95
- const handleCancel = useCallback(() => {
96
- setVisible(false);
97
- }, [])
98
- // const autoSave = useCallback(() => {
99
- // (async () => {
100
- // // let url = '/schema/config/save';
101
- // let data: any = { ...schema };
102
- // const formValue = form.getFieldsValue();
103
- // let res;
104
- // if (record && record.id) {
105
- // // url = '/schema/config/update';
106
- // data = { ...record, schemaContent: JSON.stringify(data), ...formValue }
107
- // res = await controller.configupdate(data);
108
- // } else {
109
- // data = { schemaContent: JSON.stringify(data), ...formValue }
110
- // res = await controller.configsave(data);
111
- // }
112
- // // const res = await DocumentsService.instance.service?.call({ url, data, type: 'post' }) as any;
113
- // if (res.err) {
114
- // return false;
115
- // } else {
116
- // if (res.res) {
117
- // message.success('保存成功');
118
- // setChange(false);
119
- // setRecord(res.res);
120
- // }
121
- // }
122
- // })()
123
- // }, [record, schema]);
124
- // useEffect(() => {
125
- // if (status !== 0 && !disabled && first === false) {
126
- // autoSave();
127
- // }
128
- // }, [schema, status, first])
129
- // const onFinish = useCallback(() => {
130
- // setStatus(new Date().getTime());
131
- // }, []);
132
- // const onFinishFailed = useCallback(() => {
133
- // setStatus(0);
134
- // }, []);
135
- /**
136
- * 手动保存
137
- */
138
-
139
-
140
-
141
-
142
- const onSave = useCallback((publish: boolean = false) => {
143
- (async () => {
144
- form.validateFields().then(async (values: any) => {
145
- let data: any = { ...schema };
146
- // const formValue = form.getFieldsValue();
147
- let res;
148
- if (record && record.id) {
149
- data = { ...record, schemaContent: JSON.stringify(data), ...values }
150
- res = await controller.configupdate(data);
151
- } else {
152
- data = { schemaContent: JSON.stringify(data), ...values }
153
- res = await controller.configsave(data);
154
- }
155
- if (res.err) {
156
- message.error('保存失败');
157
- return false;
158
- } else {
159
- if (res.res) {
160
- message.success('保存成功');
161
- setChange(false);
162
- setRecord(res.res);
163
- if (publish) {
164
- onSendCheck();
165
-
166
- } else {
167
- history.push({ pathname: `/rulelist`, state: { type: 1 } })
168
- }
169
- }
170
- }
171
- }).catch((errorInfo: any) => {
172
- message.error('请输入必填内容!');
173
- });
174
-
175
- })()
176
- }, [record, schema]);
177
- /**
178
- * 保存并发布
179
- */
180
- const onSendCheck = useCallback(() => {
181
- (async () => {
182
- const res = await controller.listbysubjectid({});
183
- if (res.res) {
184
- setVisible(true);
185
- setList(res.res);
186
-
187
- }
188
- })()
189
- }, []);
190
- const handleOk = useCallback(() => {
191
- (async () => {
192
- const note = targetList.find(item => item.participantId === targetId)
193
- const data = {
194
- ...record,
195
- senderParticipantId: targetId,
196
- privateList: [],
197
- sendPublic: true,
198
- senderParticipantNote: note && note.remarkName
199
- }
200
- const res = await controller.batchsend([data]);
201
- if (res.res) {
202
- message.success('操作成功');
203
- handleCancel()
204
- history.push({ pathname: `/rulelist`, state: { type: 2 } })
205
- }
206
- })()
207
- }, [targetId, record]);
208
- const targetSelect = useCallback((e) => {
209
- setTarget(e.target.value);
210
- }, []);
211
- const radioStyle = useMemo(() => {
212
- return {
213
- alignItems: 'center',
214
- marginBottom: 10,
215
- lineHeight: 1.2
216
- };
217
- }, [])
218
- const updateSchema = useCallback((e) => {
219
- // setFirst(false);
220
- setSchema(e);
221
- setChange(true);
222
- }, [])
223
- const onQuit = useCallback(() => {
224
- if (hasChange) {
225
- confirm({
226
- title: '您当前有内容未保存,是否退出?',
227
- onOk: () => {
228
- goBack();
229
- }
230
- });
231
- } else {
232
- goBack();
233
- }
234
- }, [hasChange]);
235
- const goBack = useCallback(() => {
236
- if (type === 'record') {
237
- history.push({ pathname: `/rulelist`, state: { type: 2 } })
238
- } else {
239
- history.push({ pathname: `/rulelist`, state: { type: 1 } })
240
- }
241
- }, []);
242
- return <div style={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
243
- <div style={{ display: 'flex', flex: 'none', }}>
244
- <PageHeader
245
- style={{ flex: 1 }}
246
- title="配置"
247
- extra={[
248
- <Button loading={loading} key="2" style={{ display: type === 'record' ? 'none' : '' }} onClick={() => { onSave(); }}>保存</Button>,
249
- <Button loading={loading} key="3" style={{ display: type === 'record' ? 'none' : '' }} onClick={() => { onSave(true); }}>保存并发布</Button>,
250
- <Button key="1" type="primary" onClick={onQuit}>
251
- 退出
252
- </Button>,
253
- ]}
254
- />
255
- </div>
256
- <Card style={{ flex: 1, height: '100%', overflow: 'auto' }} bodyStyle={{ display: 'flex', height: '100%', flexDirection: 'column', }}>
257
- <Form
258
- style={{ flex: 'none' }}
259
- name="basic"
260
- form={form}
261
- // onFinish={onFinish}
262
- // onFinishFailed={onFinishFailed}
263
- onValuesChange={() => {
264
- // setFirst(false);
265
- setChange(true);
266
- }}
267
- labelCol={{ span: 8 }}
268
- wrapperCol={{ span: 16 }}
269
- initialValues={{ remember: true }}
270
- >
271
- <Row>
272
- <Col span={8}>
273
- <Form.Item
274
- label="配置名称"
275
- name="configName"
276
- rules={[{ required: true, message: '请输入必填项' }]}
277
- >
278
- <Input disabled={disabled} />
279
- </Form.Item>
280
- </Col>
281
- <Col span={8}>
282
- <Form.Item
283
- label="单据类型"
284
- name="type"
285
- rules={[{ required: true, message: '请输入必填项' }]}
286
- initialValue={queryType}
287
- >
288
- <Select disabled={true} >
289
- {billEnum && billEnum.map((item: any, key) => {
290
- return <Select.Option value={item.value} key={key}>{item.label}</Select.Option>
291
- })}
292
- </Select >
293
- </Form.Item>
294
- </Col>
295
- <Col span={8}>
296
- <Form.Item
297
- label="我的收发角色"
298
- name="attribution"
299
- rules={[{ required: true, message: '请输入必填项' }]}
300
- >
301
- <Select disabled={disabled}>
302
- <Select.Option value={1} key={1}>发送方</Select.Option>
303
- <Select.Option value={2} key={2}>接收方</Select.Option>
304
- <Select.Option value={3} key={3}>接收方,发送方</Select.Option>
305
- </Select >
306
- </Form.Item>
307
- </Col>
308
- </Row>
309
- {profile &&
310
- <Row>
311
- <Col span={8}>
312
- <Form.Item
313
- label="单据子类"
314
- name="profile"
315
- rules={[{ required: true, message: '请输入必填项' }]}
316
- initialValue={profile}
317
- >
318
- <Select disabled={true}>
319
- {profileEnum && profileEnum.map((item: any, key) => {
320
- return <Select.Option value={item.value} key={key}>{item.label}</Select.Option>
321
- })}
322
- </Select >
323
- </Form.Item>
324
- </Col>
325
- </Row>
326
- }
327
- </Form>
328
- <div style={{ flex: 1, overflow: 'auto', height: '100%' }}>
329
- {schema && <DocumentsEdit readOnly={type === 'record' ? true : false} schema={schema} onChange={updateSchema} />}
330
- </div>
331
- </Card>
332
- <Modal
333
- title="请选择我司对应DID"
334
- visible={visible}
335
- onOk={handleOk}
336
- onCancel={handleCancel}
337
- >
338
- <Radio.Group onChange={targetSelect} value={targetId}>
339
- {targetList.map((item: any, key) => {
340
- return <Radio style={radioStyle as any} key={key} value={item.participantId}>
341
-
342
- <div style={{ display: 'flex', flexDirection: 'column', alignContent: 'flex-start' }}>
343
- <span>{item.remarkName}</span>
344
- <span style={{ maxWidth: 460, overflow: 'hidden', textOverflow: 'ellipsis', display: 'block' }}>{item.participantId}</span>
345
- </div>
346
- </Radio>
347
- })}
348
- </Radio.Group>
349
- </Modal>
350
- </div>
351
- }
352
-
353
-
354
- const throttle = function (fn: (...per: any[]) => any, interval: number = 500) {
355
- let _timer: any;
356
- return (...args: any[]) => {
357
- clearTimeout(_timer);
358
- _timer = setTimeout(() => {
359
- _timer = null;
360
- return fn.apply(null, args);
361
- }, interval);
362
- }
1
+ import React, { useCallback, useEffect, useState, useMemo } from 'react';
2
+ import DocumentsEdit from '../../../DocumentsEdit';
3
+ import { Button, message, Modal, Radio, Form, Input, Select, } from 'kts-xui';
4
+ import { Card, Row, Col, PageHeader, Tooltip } from 'kts-components-antd-x4';
5
+ import { useHistory } from 'react-router-dom';
6
+ import qs from 'query-string';
7
+ import Main from '../..';
8
+ const { confirm } = Modal;
9
+ export default function Rule(props: any) {
10
+ const controller = Main.useController();
11
+ const [billEnum, setBill] = useState([]);
12
+ const [profileEnum, setProfile] = useState([]);
13
+ const [schema, setSchema] = useState<any>();
14
+ const [record, setRecord] = useState<any>({});
15
+ const [form] = Form.useForm();
16
+ const [visible, setVisible] = useState(false);
17
+ const [targetId, setTarget] = useState();
18
+ const [targetList, setList] = useState<any[]>([]);
19
+ const [loading] = controller.useRuning(controller.configupdate,controller.configsave)
20
+ // const [status, setStatus] = useState(0);
21
+ // const [first, setFirst] = useState(true);
22
+ const [hasChange, setChange] = useState(false);
23
+ const history = useHistory() as any;
24
+ const search = history.location.search && qs.parse(history.location.search);
25
+ const id = search && search.id;
26
+ const type = search && search.type;
27
+ const queryType = search && search.billtype;
28
+ const profile = search && search.profile;
29
+ const disabled = type === 'record' ? true : false;
30
+ useEffect(() => {
31
+ const target: any = billEnum.find((item: any) => item.value === queryType);
32
+ if (target) {
33
+ const list = target.profileList && target.profileList.map((item: any) => {
34
+ return {
35
+ label: item.name,
36
+ value: item.value
37
+ }
38
+ })
39
+ setProfile(list);
40
+ }
41
+ }, [billEnum]);
42
+ /**
43
+ * 获取schema
44
+ */
45
+ useEffect(() => {
46
+ (async () => {
47
+ if (!id) {
48
+ return false;
49
+ }
50
+ // const url = type === 'config' ? '/dap/web/schema/config/getConfigOneById' : '/dap/web/schema/config/getRecordOneById'
51
+ const res = type === 'config' ? await controller.getconfigbyid({ id }) : await controller.getrecordbyid({ id });
52
+ // const res = await DocumentsService.instance.service?.call({ url, data: { id }, type: 'get' }) as any;
53
+ if (res.err) {
54
+ return false;
55
+ } else {
56
+ setRecord(res.res)
57
+ setSchema(JSON.parse(res.res.schemaContent));
58
+ form.setFieldsValue(res.res);
59
+ }
60
+ })()
61
+ }, [])
62
+ /**
63
+ * 获取默认模板
64
+ */
65
+ useEffect(() => {
66
+ (async () => {
67
+ if (id) {
68
+ return false;
69
+ }
70
+ const res = await controller.gettemplate({ type: queryType, profile });
71
+ // const res = await DocumentsService.instance.service?.call({ url: '/dap/web/schema/config/getDefaultTypeTemplate', data: { type: queryType, profile }, type: 'get' }) as any;
72
+ if (res.err) {
73
+ return false;
74
+ } else {
75
+ setSchema(res.res);
76
+ }
77
+ })()
78
+ }, [])
79
+
80
+ useEffect(() => {
81
+ (async () => {
82
+ const res = await controller.typelist({});
83
+ // const res = await DocumentsService.instance.service?.call({ url: '/dap/web/schema/config/getDefaultTypeList', data: null, type: 'get' }) as any;
84
+ if (res.err) {
85
+ return false;
86
+ } else {
87
+ const list = res.res.map((item: any) => {
88
+ return { ...item, label: item.name, value: item.value }
89
+ })
90
+ setBill(list);
91
+ }
92
+ })()
93
+ }, []);
94
+
95
+ const handleCancel = useCallback(() => {
96
+ setVisible(false);
97
+ }, [])
98
+ // const autoSave = useCallback(() => {
99
+ // (async () => {
100
+ // // let url = '/schema/config/save';
101
+ // let data: any = { ...schema };
102
+ // const formValue = form.getFieldsValue();
103
+ // let res;
104
+ // if (record && record.id) {
105
+ // // url = '/schema/config/update';
106
+ // data = { ...record, schemaContent: JSON.stringify(data), ...formValue }
107
+ // res = await controller.configupdate(data);
108
+ // } else {
109
+ // data = { schemaContent: JSON.stringify(data), ...formValue }
110
+ // res = await controller.configsave(data);
111
+ // }
112
+ // // const res = await DocumentsService.instance.service?.call({ url, data, type: 'post' }) as any;
113
+ // if (res.err) {
114
+ // return false;
115
+ // } else {
116
+ // if (res.res) {
117
+ // message.success('保存成功');
118
+ // setChange(false);
119
+ // setRecord(res.res);
120
+ // }
121
+ // }
122
+ // })()
123
+ // }, [record, schema]);
124
+ // useEffect(() => {
125
+ // if (status !== 0 && !disabled && first === false) {
126
+ // autoSave();
127
+ // }
128
+ // }, [schema, status, first])
129
+ // const onFinish = useCallback(() => {
130
+ // setStatus(new Date().getTime());
131
+ // }, []);
132
+ // const onFinishFailed = useCallback(() => {
133
+ // setStatus(0);
134
+ // }, []);
135
+ /**
136
+ * 手动保存
137
+ */
138
+
139
+
140
+
141
+
142
+ const onSave = useCallback((publish: boolean = false) => {
143
+ (async () => {
144
+ form.validateFields().then(async (values: any) => {
145
+ let data: any = { ...schema };
146
+ // const formValue = form.getFieldsValue();
147
+ let res;
148
+ if (record && record.id) {
149
+ data = { ...record, schemaContent: JSON.stringify(data), ...values }
150
+ res = await controller.configupdate(data);
151
+ } else {
152
+ data = { schemaContent: JSON.stringify(data), ...values }
153
+ res = await controller.configsave(data);
154
+ }
155
+ if (res.err) {
156
+ message.error('保存失败');
157
+ return false;
158
+ } else {
159
+ if (res.res) {
160
+ message.success('保存成功');
161
+ setChange(false);
162
+ setRecord(res.res);
163
+ if (publish) {
164
+ onSendCheck();
165
+
166
+ } else {
167
+ history.push({ pathname: `/rulelist`, state: { type: 1 } })
168
+ }
169
+ }
170
+ }
171
+ }).catch((errorInfo: any) => {
172
+ message.error('请输入必填内容!');
173
+ });
174
+
175
+ })()
176
+ }, [record, schema]);
177
+ /**
178
+ * 保存并发布
179
+ */
180
+ const onSendCheck = useCallback(() => {
181
+ (async () => {
182
+ const res = await controller.listbysubjectid({});
183
+ if (res.res) {
184
+ setVisible(true);
185
+ setList(res.res);
186
+
187
+ }
188
+ })()
189
+ }, []);
190
+ const handleOk = useCallback(() => {
191
+ (async () => {
192
+ const note = targetList.find(item => item.participantId === targetId)
193
+ const data = {
194
+ ...record,
195
+ senderParticipantId: targetId,
196
+ privateList: [],
197
+ sendPublic: true,
198
+ senderParticipantNote: note && note.remarkName
199
+ }
200
+ const res = await controller.batchsend([data]);
201
+ if (res.res) {
202
+ message.success('操作成功');
203
+ handleCancel()
204
+ history.push({ pathname: `/rulelist`, state: { type: 2 } })
205
+ }
206
+ })()
207
+ }, [targetId, record]);
208
+ const targetSelect = useCallback((e) => {
209
+ setTarget(e.target.value);
210
+ }, []);
211
+ const radioStyle = useMemo(() => {
212
+ return {
213
+ alignItems: 'center',
214
+ marginBottom: 10,
215
+ lineHeight: 1.2
216
+ };
217
+ }, [])
218
+ const updateSchema = useCallback((e) => {
219
+ // setFirst(false);
220
+ setSchema(e);
221
+ setChange(true);
222
+ }, [])
223
+ const onQuit = useCallback(() => {
224
+ if (hasChange) {
225
+ confirm({
226
+ title: '您当前有内容未保存,是否退出?',
227
+ onOk: () => {
228
+ goBack();
229
+ }
230
+ });
231
+ } else {
232
+ goBack();
233
+ }
234
+ }, [hasChange]);
235
+ const goBack = useCallback(() => {
236
+ if (type === 'record') {
237
+ history.push({ pathname: `/rulelist`, state: { type: 2 } })
238
+ } else {
239
+ history.push({ pathname: `/rulelist`, state: { type: 1 } })
240
+ }
241
+ }, []);
242
+ return <div style={{ height: '100%', display: 'flex', flexDirection: 'column' }}>
243
+ <div style={{ display: 'flex', flex: 'none', }}>
244
+ <PageHeader
245
+ style={{ flex: 1 }}
246
+ title="配置"
247
+ extra={[
248
+ <Button loading={loading} key="2" style={{ display: type === 'record' ? 'none' : '' }} onClick={() => { onSave(); }}>保存</Button>,
249
+ <Button loading={loading} key="3" style={{ display: type === 'record' ? 'none' : '' }} onClick={() => { onSave(true); }}>保存并发布</Button>,
250
+ <Button key="1" type="primary" onClick={onQuit}>
251
+ 退出
252
+ </Button>,
253
+ ]}
254
+ />
255
+ </div>
256
+ <Card style={{ flex: 1, height: '100%', overflow: 'auto' }} bodyStyle={{ display: 'flex', height: '100%', flexDirection: 'column', }}>
257
+ <Form
258
+ style={{ flex: 'none' }}
259
+ name="basic"
260
+ form={form}
261
+ // onFinish={onFinish}
262
+ // onFinishFailed={onFinishFailed}
263
+ onValuesChange={() => {
264
+ // setFirst(false);
265
+ setChange(true);
266
+ }}
267
+ labelCol={{ span: 8 }}
268
+ wrapperCol={{ span: 16 }}
269
+ initialValues={{ remember: true }}
270
+ >
271
+ <Row>
272
+ <Col span={8}>
273
+ <Form.Item
274
+ label="配置名称"
275
+ name="configName"
276
+ rules={[{ required: true, message: '请输入必填项' }]}
277
+ >
278
+ <Input disabled={disabled} />
279
+ </Form.Item>
280
+ </Col>
281
+ <Col span={8}>
282
+ <Form.Item
283
+ label="单据类型"
284
+ name="type"
285
+ rules={[{ required: true, message: '请输入必填项' }]}
286
+ initialValue={queryType}
287
+ >
288
+ <Select disabled={true} >
289
+ {billEnum && billEnum.map((item: any, key) => {
290
+ return <Select.Option value={item.value} key={key}>{item.label}</Select.Option>
291
+ })}
292
+ </Select >
293
+ </Form.Item>
294
+ </Col>
295
+ <Col span={8}>
296
+ <Form.Item
297
+ label="我的收发角色"
298
+ name="attribution"
299
+ rules={[{ required: true, message: '请输入必填项' }]}
300
+ >
301
+ <Select disabled={disabled}>
302
+ <Select.Option value={1} key={1}>发送方</Select.Option>
303
+ <Select.Option value={2} key={2}>接收方</Select.Option>
304
+ <Select.Option value={3} key={3}>接收方,发送方</Select.Option>
305
+ </Select >
306
+ </Form.Item>
307
+ </Col>
308
+ </Row>
309
+ {profile &&
310
+ <Row>
311
+ <Col span={8}>
312
+ <Form.Item
313
+ label="单据子类"
314
+ name="profile"
315
+ rules={[{ required: true, message: '请输入必填项' }]}
316
+ initialValue={profile}
317
+ >
318
+ <Select disabled={true}>
319
+ {profileEnum && profileEnum.map((item: any, key) => {
320
+ return <Select.Option value={item.value} key={key}>{item.label}</Select.Option>
321
+ })}
322
+ </Select >
323
+ </Form.Item>
324
+ </Col>
325
+ </Row>
326
+ }
327
+ </Form>
328
+ <div style={{ flex: 1, overflow: 'auto', height: '100%' }}>
329
+ {schema && <DocumentsEdit readOnly={type === 'record' ? true : false} schema={schema} onChange={updateSchema} />}
330
+ </div>
331
+ </Card>
332
+ <Modal
333
+ title="请选择我司对应DID"
334
+ visible={visible}
335
+ onOk={handleOk}
336
+ onCancel={handleCancel}
337
+ >
338
+ <Radio.Group onChange={targetSelect} value={targetId}>
339
+ {targetList.map((item: any, key) => {
340
+ return <Radio style={radioStyle as any} key={key} value={item.participantId}>
341
+
342
+ <div style={{ display: 'flex', flexDirection: 'column', alignContent: 'flex-start' }}>
343
+ <span>{item.remarkName}</span>
344
+ <span style={{ maxWidth: 460, overflow: 'hidden', textOverflow: 'ellipsis', display: 'block' }}>{item.participantId}</span>
345
+ </div>
346
+ </Radio>
347
+ })}
348
+ </Radio.Group>
349
+ </Modal>
350
+ </div>
351
+ }
352
+
353
+
354
+ const throttle = function (fn: (...per: any[]) => any, interval: number = 500) {
355
+ let _timer: any;
356
+ return (...args: any[]) => {
357
+ clearTimeout(_timer);
358
+ _timer = setTimeout(() => {
359
+ _timer = null;
360
+ return fn.apply(null, args);
361
+ }, interval);
362
+ }
363
363
  }