kts-components-document-access-point 1.3.25 → 1.3.26

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