kts-components-document-access-point 2.0.0 → 2.0.2
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/dist/DocumentsList/DocumentsListController/DocumentsListControllerState/index.d.ts +4 -0
- package/dist/index.esm.js +540 -476
- package/dist/index.js +592 -528
- package/package.json +4 -4
- package/src/DocumentWhiteList/control/actions/blacklist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/checkclient/index.ts +4 -1
- package/src/DocumentWhiteList/control/actions/didilist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/enableblacklist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/enablelist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/enablewhitelist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/synclist/index.ts +3 -0
- package/src/DocumentWhiteList/control/actions/whitelist/index.ts +3 -0
- package/src/DocumentWhiteList/ui/pageheader/BlackHeader.tsx +87 -10
- package/src/DocumentWhiteList/ui/pageheader/WhiteHeader.tsx +89 -9
- package/src/DocumentsEdit/ui/EditRule/ui/RuleForm/fn/algorithmFormComponent/index.tsx +1 -1
- package/src/DocumentsList/DocumentsListController/DocumentsListControllerState/index.ts +4 -0
- package/src/DocumentsList/ui/PageHeader/SendHeader.tsx +107 -168
- package/src/DocumentsList/ui/PageHeader/index.tsx +150 -213
- package/src/DocumentsList/ui/RuleTable/index.tsx +7 -3
- package/dist/DocumentWhiteList/ui/UnifiedSearch/index.d.ts +0 -11
- package/src/DocumentWhiteList/ui/UnifiedSearch/index.scss +0 -119
- package/src/DocumentWhiteList/ui/UnifiedSearch/index.tsx +0 -146
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import React, { useRef, useState, useEffect, useMemo, useCallback } from 'react';
|
|
2
2
|
import { Radio, Button, Dropdown, PageHeaderFoot } from 'kts-xui';
|
|
3
3
|
import { Menu } from 'kts-components-antd-x4';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { Search as SearchXui, searchUnFormat, ISearchItemProps } from 'kts-xui';
|
|
5
|
+
import { Select as SearchSelect } from 'kts-xui';
|
|
6
|
+
import { Select, DatePicker, Radio as AntRadio, Checkbox } from 'antd';
|
|
6
7
|
import Main from '../../';
|
|
7
8
|
import ModalComfirm from '../ModalComfirm'
|
|
8
9
|
import { DocumentsService } from "../../../";
|
|
9
10
|
import _ from 'lodash';
|
|
10
11
|
import { useHistory } from 'react-router-dom';
|
|
11
12
|
import moment from 'moment';
|
|
12
|
-
import { Search as SearchXui, searchFormat, searchUnFormat, ISearchItemProps } from 'kts-xui';
|
|
13
|
-
import { Select as SearchSelect, DatePicker } from 'kts-xui';
|
|
14
|
-
import { Select } from 'antd';
|
|
15
|
-
const { SubMenu } = Menu;
|
|
16
|
-
const { Option } = Select;
|
|
17
13
|
const { RangePicker } = DatePicker;
|
|
18
|
-
|
|
14
|
+
const { Group: RadioGroup } = AntRadio;
|
|
15
|
+
const { Group: CheckboxGroup } = Checkbox;
|
|
16
|
+
const { SubMenu } = Menu;
|
|
19
17
|
export default () => {
|
|
20
18
|
const history = useHistory();
|
|
21
19
|
const controller = Main.useController();
|
|
@@ -24,17 +22,90 @@ export default () => {
|
|
|
24
22
|
const selectedRowKey = controller.useMemo(s => s.selectedRowKey, [])
|
|
25
23
|
const params = controller.useMemo(s => s.params, [])
|
|
26
24
|
const visible = controller.useMemo(s => s.visible, []);
|
|
27
|
-
const [profileEnum,
|
|
25
|
+
const [profileEnum, setProfileEnum] = useState<any[]>([]);
|
|
28
26
|
const ktsRef = useRef(null);
|
|
29
27
|
const [didlist, setDidList] = useState([]);//我司对应DID
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
(async () => {
|
|
30
|
+
const res = await DocumentsService.instance.service?.call({ url: '/participant/listBySubjectId', data: {}, type: 'get' }) as any;
|
|
31
|
+
if(!res){
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (res.res) {
|
|
35
|
+
setDidList(res.res);
|
|
36
|
+
}
|
|
37
|
+
})()
|
|
38
|
+
}, []);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
(async () => {
|
|
41
|
+
const res = await DocumentsService.instance.service?.call({ url: '/schema/config/getDefaultTypeList', data: {}, type: 'get' }) as any;
|
|
42
|
+
if(!res){
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (res.err) {
|
|
46
|
+
return false;
|
|
47
|
+
} else {
|
|
48
|
+
const list = res.res.map((item: any) => {
|
|
49
|
+
return { ...item, label: item.name, value: item.value }
|
|
50
|
+
})
|
|
51
|
+
setBill(list);
|
|
52
|
+
}
|
|
53
|
+
})()
|
|
54
|
+
}, []);
|
|
55
|
+
const onSearchFormSubmit = React.useCallback((value) => {
|
|
56
|
+
value = {
|
|
57
|
+
...value,
|
|
58
|
+
typeList: value['typeList'] && [value['typeList']],
|
|
59
|
+
beginCreateTime: value['beginCreateTime'] && moment(value['beginCreateTime']).format('YYYY-MM-DD 00:00:00'),
|
|
60
|
+
endCreateTime: value['endCreateTime'] && moment(value['endCreateTime']).format('YYYY-MM-DD 23:59:59'),
|
|
61
|
+
beginSendTime: value['beginSendTime'] && moment(value['beginSendTime']).format('YYYY-MM-DD 00:00:00'),
|
|
62
|
+
endSendTime: value['endSendTime'] && moment(value['endSendTime']).format('YYYY-MM-DD 23:59:59'),
|
|
63
|
+
pageNum: 1,
|
|
64
|
+
pageSize: 10
|
|
65
|
+
}
|
|
66
|
+
controller.pipeline(async s => {
|
|
67
|
+
s.params = value;
|
|
68
|
+
})()
|
|
69
|
+
}, [controller])
|
|
30
70
|
|
|
71
|
+
// 处理单据大类变化
|
|
72
|
+
const handleTypeChange = useCallback((value: any) => {
|
|
73
|
+
const target: any = billEnum.find((item: any) => item.value === value);
|
|
74
|
+
const newProfileEnum = target?.profileList?.map((item: any) => ({
|
|
75
|
+
label: item.name,
|
|
76
|
+
value: item.value,
|
|
77
|
+
})) || [];
|
|
78
|
+
setProfileEnum(newProfileEnum);
|
|
79
|
+
form?.setFieldsValue({ profile: undefined });
|
|
80
|
+
}, [billEnum, controller]);
|
|
81
|
+
|
|
82
|
+
const switchType = React.useCallback((e) => {
|
|
83
|
+
controller.pipeline(async s => {
|
|
84
|
+
s.type = e.target.value;
|
|
85
|
+
s.params = { pageNum: 1, pageSize: 10 }
|
|
86
|
+
history.push({ pathname: '/rulelist', state: { type: e.target.value } })
|
|
87
|
+
})()
|
|
88
|
+
// 切换类型时也清空单据子类的值并重新创建表单
|
|
89
|
+
setProfileEnum([]);
|
|
90
|
+
}, [])
|
|
91
|
+
const handleCancel = React.useCallback(() => {
|
|
92
|
+
controller.pipeline(async s => {
|
|
93
|
+
s.visible = false;
|
|
94
|
+
})()
|
|
95
|
+
}, []);
|
|
96
|
+
const batchSend = React.useCallback(() => {
|
|
97
|
+
controller.pipeline(async s => {
|
|
98
|
+
s.visible = true;
|
|
99
|
+
})()
|
|
100
|
+
}, [controller]);
|
|
31
101
|
// 动态生成 formItems
|
|
32
102
|
const formItems: ISearchItemProps[] = useMemo(() => {
|
|
33
|
-
const items: ISearchItemProps[] = [];
|
|
34
103
|
const didEnum = didlist.map((item: any) => {
|
|
35
104
|
return { label: item.remarkName + ':' + item.participantId, value: item.participantId };
|
|
36
105
|
});
|
|
37
106
|
|
|
107
|
+
const items: ISearchItemProps[] = [];
|
|
108
|
+
|
|
38
109
|
if (type === 1) {
|
|
39
110
|
// 配置名称
|
|
40
111
|
items.push({
|
|
@@ -48,28 +119,22 @@ export default () => {
|
|
|
48
119
|
name: "type",
|
|
49
120
|
label: "单据大类",
|
|
50
121
|
children: (
|
|
51
|
-
<SearchSelect className="underline" allowClear={
|
|
52
|
-
{billEnum.map((item: any) => (
|
|
53
|
-
<Option key={item.value} value={item.value}>
|
|
54
|
-
{item.label}
|
|
55
|
-
</Option>
|
|
56
|
-
))}
|
|
57
|
-
</SearchSelect>
|
|
122
|
+
<SearchSelect className={"underline"} allowClear onChange={handleTypeChange} options={billEnum} />
|
|
58
123
|
),
|
|
59
124
|
});
|
|
60
125
|
|
|
61
126
|
// 单据子类
|
|
62
127
|
items.push({
|
|
63
|
-
name:
|
|
64
|
-
label:
|
|
128
|
+
name: 'profile',
|
|
129
|
+
label: '单据子类',
|
|
130
|
+
hidden: profileEnum.length === 0,
|
|
65
131
|
children: (
|
|
66
|
-
<SearchSelect
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
</SearchSelect>
|
|
132
|
+
<SearchSelect
|
|
133
|
+
key={`profile-${params?.type || 'none'}`}
|
|
134
|
+
className={"underline"}
|
|
135
|
+
allowClear
|
|
136
|
+
options={profileEnum}
|
|
137
|
+
/>
|
|
73
138
|
),
|
|
74
139
|
});
|
|
75
140
|
|
|
@@ -78,10 +143,12 @@ export default () => {
|
|
|
78
143
|
name: "attributionList",
|
|
79
144
|
label: "收发角色",
|
|
80
145
|
children: (
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
146
|
+
<CheckboxGroup
|
|
147
|
+
options={[
|
|
148
|
+
{ label: "发送方", value: 1 },
|
|
149
|
+
{ label: "接收方", value: 2 }
|
|
150
|
+
]}
|
|
151
|
+
/>
|
|
85
152
|
),
|
|
86
153
|
});
|
|
87
154
|
|
|
@@ -89,28 +156,14 @@ export default () => {
|
|
|
89
156
|
items.push({
|
|
90
157
|
name: "createTime",
|
|
91
158
|
label: "创建时间",
|
|
92
|
-
children:
|
|
93
|
-
<RangePicker
|
|
94
|
-
style={{ width: "100%" }}
|
|
95
|
-
format="YYYY-MM-DD"
|
|
96
|
-
placeholder={["开始时间", "结束时间"]}
|
|
97
|
-
className="underline-datepicker"
|
|
98
|
-
/>
|
|
99
|
-
),
|
|
159
|
+
children: <RangePicker className={"underline-datepicker"} />,
|
|
100
160
|
});
|
|
101
161
|
|
|
102
162
|
// 更新时间
|
|
103
163
|
items.push({
|
|
104
164
|
name: "sendTime",
|
|
105
165
|
label: "更新时间",
|
|
106
|
-
children:
|
|
107
|
-
<RangePicker
|
|
108
|
-
style={{ width: "100%" }}
|
|
109
|
-
format="YYYY-MM-DD"
|
|
110
|
-
placeholder={["开始时间", "结束时间"]}
|
|
111
|
-
className="underline-datepicker"
|
|
112
|
-
/>
|
|
113
|
-
),
|
|
166
|
+
children: <RangePicker className={"underline-datepicker"} />,
|
|
114
167
|
});
|
|
115
168
|
} else if (type === 2) {
|
|
116
169
|
// 配置名称
|
|
@@ -125,11 +178,15 @@ export default () => {
|
|
|
125
178
|
name: "effectStatus",
|
|
126
179
|
label: "使用标识",
|
|
127
180
|
children: (
|
|
128
|
-
<
|
|
129
|
-
<
|
|
130
|
-
<
|
|
131
|
-
</
|
|
181
|
+
<RadioGroup>
|
|
182
|
+
<AntRadio value={0}>已失效</AntRadio>
|
|
183
|
+
<AntRadio value={1}>使用中</AntRadio>
|
|
184
|
+
</RadioGroup>
|
|
132
185
|
),
|
|
186
|
+
// options: [
|
|
187
|
+
// { label: '已失效', value: 0 },
|
|
188
|
+
// { label: '使用中', value: 1 },
|
|
189
|
+
// ],
|
|
133
190
|
});
|
|
134
191
|
|
|
135
192
|
// 我的收发角色
|
|
@@ -137,11 +194,15 @@ export default () => {
|
|
|
137
194
|
name: "attribution",
|
|
138
195
|
label: "我的收发角色",
|
|
139
196
|
children: (
|
|
140
|
-
<
|
|
141
|
-
<
|
|
142
|
-
<
|
|
143
|
-
</
|
|
197
|
+
<RadioGroup>
|
|
198
|
+
<AntRadio value={1}>发送方</AntRadio>
|
|
199
|
+
<AntRadio value={2}>接收方</AntRadio>
|
|
200
|
+
</RadioGroup>
|
|
144
201
|
),
|
|
202
|
+
// options: [
|
|
203
|
+
// { label: '发送方', value: 1 },
|
|
204
|
+
// { label: '接收方', value: 2 },
|
|
205
|
+
// ],
|
|
145
206
|
});
|
|
146
207
|
|
|
147
208
|
// 我司对应DID
|
|
@@ -149,13 +210,7 @@ export default () => {
|
|
|
149
210
|
name: "senderParticipantId",
|
|
150
211
|
label: "我司对应DID",
|
|
151
212
|
children: (
|
|
152
|
-
<SearchSelect className="underline" allowClear={
|
|
153
|
-
{didEnum.map((item: any) => (
|
|
154
|
-
<Option key={item.value} value={item.value}>
|
|
155
|
-
{item.label}
|
|
156
|
-
</Option>
|
|
157
|
-
))}
|
|
158
|
-
</SearchSelect>
|
|
213
|
+
<SearchSelect className="underline" allowClear options={didEnum} />
|
|
159
214
|
),
|
|
160
215
|
});
|
|
161
216
|
|
|
@@ -178,28 +233,21 @@ export default () => {
|
|
|
178
233
|
name: "type",
|
|
179
234
|
label: "单据大类",
|
|
180
235
|
children: (
|
|
181
|
-
<SearchSelect className="underline" allowClear={
|
|
182
|
-
{billEnum.map((item: any) => (
|
|
183
|
-
<Option key={item.value} value={item.value}>
|
|
184
|
-
{item.label}
|
|
185
|
-
</Option>
|
|
186
|
-
))}
|
|
187
|
-
</SearchSelect>
|
|
236
|
+
<SearchSelect className={"underline"} allowClear onChange={handleTypeChange} options={billEnum} />
|
|
188
237
|
),
|
|
189
238
|
});
|
|
190
239
|
|
|
191
240
|
// 单据子类
|
|
192
241
|
items.push({
|
|
193
|
-
name:
|
|
194
|
-
label:
|
|
242
|
+
name: 'profile',
|
|
243
|
+
label: '单据子类',
|
|
244
|
+
hidden: profileEnum.length === 0,
|
|
195
245
|
children: (
|
|
196
|
-
<SearchSelect
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
))}
|
|
202
|
-
</SearchSelect>
|
|
246
|
+
<SearchSelect
|
|
247
|
+
className={"underline"}
|
|
248
|
+
allowClear
|
|
249
|
+
options={profileEnum}
|
|
250
|
+
/>
|
|
203
251
|
),
|
|
204
252
|
});
|
|
205
253
|
|
|
@@ -207,159 +255,40 @@ export default () => {
|
|
|
207
255
|
items.push({
|
|
208
256
|
name: "createTime",
|
|
209
257
|
label: "发布时间",
|
|
210
|
-
children:
|
|
211
|
-
<RangePicker
|
|
212
|
-
style={{ width: "100%" }}
|
|
213
|
-
format="YYYY-MM-DD"
|
|
214
|
-
placeholder={["开始时间", "结束时间"]}
|
|
215
|
-
className="underline-datepicker"
|
|
216
|
-
/>
|
|
217
|
-
),
|
|
258
|
+
children: <RangePicker className={"underline-datepicker"} />,
|
|
218
259
|
});
|
|
219
260
|
}
|
|
220
261
|
|
|
221
262
|
return items;
|
|
222
|
-
}, [billEnum, type,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const res = await DocumentsService.instance.service?.call({ url: '/participant/listBySubjectId', data: {}, type: 'get' }) as any;
|
|
227
|
-
if (res.res) {
|
|
228
|
-
setDidList(res.res);
|
|
229
|
-
}
|
|
230
|
-
})()
|
|
231
|
-
}, []);
|
|
232
|
-
|
|
233
|
-
// 处理单据子类的动态更新
|
|
234
|
-
useEffect(() => {
|
|
235
|
-
const selectedType = (params as any).type;
|
|
236
|
-
if (selectedType) {
|
|
237
|
-
const target: any = billEnum.find((item: any) => item.value === selectedType);
|
|
238
|
-
if (target && target.profileList) {
|
|
239
|
-
const list = target.profileList.map((item: any) => {
|
|
240
|
-
return {
|
|
241
|
-
label: item.name,
|
|
242
|
-
value: item.value
|
|
243
|
-
}
|
|
244
|
-
})
|
|
245
|
-
setProfile(list);
|
|
246
|
-
} else {
|
|
247
|
-
setProfile([])
|
|
248
|
-
}
|
|
249
|
-
} else {
|
|
250
|
-
setProfile([])
|
|
251
|
-
}
|
|
252
|
-
}, [billEnum, params]);
|
|
253
|
-
|
|
254
|
-
useEffect(() => {
|
|
255
|
-
(async () => {
|
|
256
|
-
const res = await DocumentsService.instance.service?.call({ url: '/schema/config/getDefaultTypeList', data: {}, type: 'get' }) as any;
|
|
257
|
-
if (res.err) {
|
|
258
|
-
return false;
|
|
259
|
-
} else {
|
|
260
|
-
const list = res.res.map((item: any) => {
|
|
261
|
-
return { ...item, label: item.name, value: item.value }
|
|
262
|
-
})
|
|
263
|
-
setBill(list);
|
|
264
|
-
}
|
|
265
|
-
})()
|
|
266
|
-
}, []);
|
|
267
|
-
const onSearchFormSubmit = React.useCallback((value) => {
|
|
268
|
-
value = {
|
|
269
|
-
...value,
|
|
270
|
-
typeList: value['typeList'] && [value['typeList']],
|
|
271
|
-
beginCreateTime: value['beginCreateTime'] && moment(value['beginCreateTime']).format('YYYY-MM-DD 00:00:00'),
|
|
272
|
-
endCreateTime: value['endCreateTime'] && moment(value['endCreateTime']).format('YYYY-MM-DD 23:59:59'),
|
|
273
|
-
beginSendTime: value['beginSendTime'] && moment(value['beginSendTime']).format('YYYY-MM-DD 00:00:00'),
|
|
274
|
-
endSendTime: value['endSendTime'] && moment(value['endSendTime']).format('YYYY-MM-DD 23:59:59'),
|
|
275
|
-
pageNum: 1,
|
|
276
|
-
pageSize: 10
|
|
277
|
-
}
|
|
278
|
-
controller.pipeline(async s => {
|
|
279
|
-
s.params = value;
|
|
280
|
-
})()
|
|
281
|
-
}, [controller])
|
|
282
|
-
|
|
263
|
+
}, [billEnum, type, didlist, profileEnum]);
|
|
264
|
+
const onCreateType = useCallback((category, record?) => {
|
|
265
|
+
history.push({ pathname: `/rule`, search: `?type=config&profile=${record && record.value || ''}&billtype=${category}` })
|
|
266
|
+
}, [])
|
|
283
267
|
// 创建搜索组件
|
|
284
|
-
const { search,
|
|
268
|
+
const { search, inventory, form } = SearchXui.useCreate({
|
|
285
269
|
labelCol: 9,
|
|
286
270
|
onSubmit: (e) => {
|
|
287
|
-
|
|
288
|
-
...e,
|
|
289
|
-
beginCreateTime: e.createTime && e.createTime[0] ? e.createTime[0].format('YYYY-MM-DD 00:00:00') : undefined,
|
|
290
|
-
endCreateTime: e.createTime && e.createTime[1] ? e.createTime[1].format('YYYY-MM-DD 23:59:59') : undefined,
|
|
291
|
-
beginSendTime: e.sendTime && e.sendTime[0] ? e.sendTime[0].format('YYYY-MM-DD 00:00:00') : undefined,
|
|
292
|
-
endSendTime: e.sendTime && e.sendTime[1] ? e.sendTime[1].format('YYYY-MM-DD 23:59:59') : undefined,
|
|
293
|
-
pageNum: 1,
|
|
294
|
-
pageSize: 10
|
|
295
|
-
};
|
|
296
|
-
// 移除原始的日期字段
|
|
297
|
-
delete processedValues.createTime;
|
|
298
|
-
delete processedValues.sendTime;
|
|
299
|
-
onSearchFormSubmit(processedValues);
|
|
271
|
+
onSearchFormSubmit(e);
|
|
300
272
|
},
|
|
301
273
|
values: React.useMemo(() => {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
const paramsAny = params as any;
|
|
305
|
-
if (paramsAny.beginCreateTime && paramsAny.endCreateTime) {
|
|
306
|
-
convertedValues.createTime = [paramsAny.beginCreateTime, paramsAny.endCreateTime];
|
|
307
|
-
}
|
|
308
|
-
if (paramsAny.beginSendTime && paramsAny.endSendTime) {
|
|
309
|
-
convertedValues.sendTime = [paramsAny.beginSendTime, paramsAny.endSendTime];
|
|
310
|
-
}
|
|
311
|
-
return searchUnFormat(convertedValues, formItems);
|
|
312
|
-
}, [params, formItems]),
|
|
274
|
+
return searchUnFormat(params, formItems);
|
|
275
|
+
}, [params, formItems]),
|
|
313
276
|
formItems,
|
|
314
277
|
});
|
|
315
278
|
|
|
316
|
-
useEffect(() => {
|
|
317
|
-
const convertedValues = { ...params } as any;
|
|
318
|
-
const paramsAny = params as any;
|
|
319
|
-
if (paramsAny.beginCreateTime && paramsAny.endCreateTime) {
|
|
320
|
-
convertedValues.createTime = [paramsAny.beginCreateTime, paramsAny.endCreateTime];
|
|
321
|
-
}
|
|
322
|
-
if (paramsAny.beginSendTime && paramsAny.endSendTime) {
|
|
323
|
-
convertedValues.sendTime = [paramsAny.beginSendTime, paramsAny.endSendTime];
|
|
324
|
-
}
|
|
325
|
-
setSearchValues(searchUnFormat(convertedValues, formItems));
|
|
326
|
-
}, [formItems, params, setSearchValues]);
|
|
327
|
-
|
|
328
|
-
const switchType = React.useCallback((e) => {
|
|
329
|
-
controller.pipeline(async s => {
|
|
330
|
-
s.type = e.target.value;
|
|
331
|
-
s.params = { pageNum: 1, pageSize: 10 }
|
|
332
|
-
history.push({ pathname: '/rulelist', state: { type: e.target.value } })
|
|
333
|
-
})()
|
|
334
|
-
}, [])
|
|
335
|
-
const handleCancel = React.useCallback(() => {
|
|
336
|
-
controller.pipeline(async s => {
|
|
337
|
-
s.visible = false;
|
|
338
|
-
})()
|
|
339
|
-
}, []);
|
|
340
|
-
const batchSend = React.useCallback(() => {
|
|
341
|
-
controller.pipeline(async s => {
|
|
342
|
-
s.visible = true;
|
|
343
|
-
})()
|
|
344
|
-
}, [controller]);
|
|
345
|
-
const onCreateType = useCallback((category, record?) => {
|
|
346
|
-
history.push({ pathname: `/rule`, search: `?type=config&profile=${record && record.value || ''}&billtype=${category}` })
|
|
347
|
-
}, [])
|
|
348
279
|
const topExpand = useCallback(() => {
|
|
349
280
|
return (
|
|
350
|
-
<div style={{
|
|
351
|
-
|
|
352
|
-
<
|
|
353
|
-
<
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
<div style={{ flex: 1 }}>
|
|
358
|
-
{search}
|
|
281
|
+
<div style={{ width: "100%" }}>
|
|
282
|
+
<div className={'unifiedSearch'}>
|
|
283
|
+
<div style={{ display: "flex", alignItems: "flex-start", gap: "16px", padding: '10px 0px' }}>
|
|
284
|
+
<div style={{ flex: 1 }}>{search}</div>
|
|
285
|
+
</div>
|
|
286
|
+
{/* 搜索条件标签 */}
|
|
287
|
+
{inventory}
|
|
359
288
|
</div>
|
|
360
289
|
</div>
|
|
361
290
|
);
|
|
362
|
-
}, [type, search]);
|
|
291
|
+
}, [type, search, inventory]);
|
|
363
292
|
const menu = useMemo(() => {
|
|
364
293
|
return (
|
|
365
294
|
<Menu>
|
|
@@ -394,6 +323,13 @@ export default () => {
|
|
|
394
323
|
</Menu>);
|
|
395
324
|
}, [billEnum]);
|
|
396
325
|
return (
|
|
326
|
+
<>
|
|
327
|
+
<div style={{padding:"16px 20px", borderBottom: "1px solid rgb(240, 240, 240)" }}>
|
|
328
|
+
<Radio.Group value={type} onChange={switchType}>
|
|
329
|
+
<Radio.Button value={1} style={{whiteSpace:'nowrap'}}>单据校验规则配置</Radio.Button>
|
|
330
|
+
<Radio.Button value={2} style={{whiteSpace:'nowrap'}}>发布记录</Radio.Button>
|
|
331
|
+
</Radio.Group>
|
|
332
|
+
</div>
|
|
397
333
|
<div style={{ flex: 'none', position: 'relative', zIndex: 1 }}>
|
|
398
334
|
<PageHeaderFoot
|
|
399
335
|
expandLeft={topExpand()}
|
|
@@ -409,5 +345,6 @@ export default () => {
|
|
|
409
345
|
visible && <ModalComfirm handleCancel={handleCancel} list={selectedRowKey} />
|
|
410
346
|
}
|
|
411
347
|
</div>
|
|
348
|
+
</>
|
|
412
349
|
);
|
|
413
350
|
};
|
|
@@ -22,7 +22,9 @@ export default function validaterule(props: any) {
|
|
|
22
22
|
const res = await DocumentsService.instance.service?.call({
|
|
23
23
|
url: '/schema/config/queryConfigSchemaPage', data: params, type: 'post'
|
|
24
24
|
}) as any;
|
|
25
|
-
|
|
25
|
+
if(!res){
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
26
28
|
if (res.err) {
|
|
27
29
|
return false;
|
|
28
30
|
}
|
|
@@ -33,9 +35,11 @@ export default function validaterule(props: any) {
|
|
|
33
35
|
})()
|
|
34
36
|
}, [params]);
|
|
35
37
|
useEffect(() => {
|
|
36
|
-
(async () => {
|
|
37
|
-
|
|
38
|
+
(async () => {
|
|
38
39
|
const res = await DocumentsService.instance.service?.call({ url: '/schema/config/getDefaultTypeList', data: {}, type: 'get' }) as any;
|
|
40
|
+
if(!res){
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
39
43
|
if (res.err) {
|
|
40
44
|
return false;
|
|
41
45
|
} else {
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
interface UnifiedSearchProps {
|
|
3
|
-
searchFormSubmit: (values: any) => void;
|
|
4
|
-
searchValues: any;
|
|
5
|
-
right?: any;
|
|
6
|
-
onRefresh?: () => void;
|
|
7
|
-
didlist?: any[];
|
|
8
|
-
labelCol?: number;
|
|
9
|
-
}
|
|
10
|
-
export default function UnifiedSearch(props: UnifiedSearchProps): React.JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
// UnifiedSearch 组件样式 - 控件只有下边框
|
|
2
|
-
.unifiedSearch {
|
|
3
|
-
:global(.ktsAntX-xui-page-header-foot){
|
|
4
|
-
box-shadow: none !important;
|
|
5
|
-
}
|
|
6
|
-
:global(.ktsAntX-xui-page-header-foot::after) {
|
|
7
|
-
box-shadow: none !important;
|
|
8
|
-
}
|
|
9
|
-
:global(.ktsAntX-xui-page-header-foot .ktsAntX-xui-page-header-operate) {
|
|
10
|
-
border: none !important;
|
|
11
|
-
}
|
|
12
|
-
:global(.ktsAntX-xui-page-header-operate){
|
|
13
|
-
padding: 0px !important;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// 按钮容器样式
|
|
18
|
-
.btnBox {
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: row;
|
|
21
|
-
align-items: flex-start;
|
|
22
|
-
justify-content: flex-end;
|
|
23
|
-
flex: 1;
|
|
24
|
-
margin-top: 13px;
|
|
25
|
-
.btn {
|
|
26
|
-
height:30px;
|
|
27
|
-
line-height: 30px;
|
|
28
|
-
background-color:rgba(0,116,255,1);
|
|
29
|
-
border-radius:15px;
|
|
30
|
-
border:1px solid rgba(0,116,255,1);
|
|
31
|
-
font-size:12px;
|
|
32
|
-
color: #FFFFFF;
|
|
33
|
-
padding: 0px 28px;
|
|
34
|
-
cursor: pointer;
|
|
35
|
-
margin-left: 10px;
|
|
36
|
-
word-break: keep-all;
|
|
37
|
-
}
|
|
38
|
-
.moreBtn {
|
|
39
|
-
height:30px;
|
|
40
|
-
line-height: 30px;
|
|
41
|
-
background-color: #ffffff;
|
|
42
|
-
border-radius:15px;
|
|
43
|
-
border:1px solid #0074FF;
|
|
44
|
-
font-size:12px;
|
|
45
|
-
color: #0074FF;
|
|
46
|
-
padding: 0px 28px;
|
|
47
|
-
cursor: pointer;
|
|
48
|
-
margin-left: 10px;
|
|
49
|
-
word-break: keep-all;
|
|
50
|
-
}
|
|
51
|
-
.moreBtn:hover {
|
|
52
|
-
background-color: rgba(0, 116, 255, 0.2);
|
|
53
|
-
}
|
|
54
|
-
.refreshBtn {
|
|
55
|
-
padding: 0 18px;
|
|
56
|
-
justify-content: center;
|
|
57
|
-
align-items: center;
|
|
58
|
-
display: inline-flex;
|
|
59
|
-
.refreshIcon {
|
|
60
|
-
height: 18px;
|
|
61
|
-
width: 18px;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// 全局样式 - 所有输入框只显示下边框
|
|
67
|
-
:global(.underline-datepicker) {
|
|
68
|
-
:global(.ant-input){
|
|
69
|
-
border: none !important;
|
|
70
|
-
border-bottom: 1px solid #d9d9d9 !important;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
:global(.underline){
|
|
74
|
-
:global(.ktsAntX-select-selector){
|
|
75
|
-
border: none !important;
|
|
76
|
-
border-bottom: 1px solid #d9d9d9 !important;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// kts-xui 组件全局样式覆盖 - 只显示下边框
|
|
80
|
-
:global(.ktsAntX-xui-input .ant-input) {
|
|
81
|
-
border: none !important;
|
|
82
|
-
border-bottom: 1px solid #d9d9d9 !important;
|
|
83
|
-
border-radius: 0 !important;
|
|
84
|
-
box-shadow: none !important;
|
|
85
|
-
background: transparent !important;
|
|
86
|
-
outline: none !important;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
:global(.ktsAntX-xui-input .ant-input:focus),
|
|
90
|
-
:global(.ktsAntX-xui-input .ant-input:hover) {
|
|
91
|
-
border-bottom: 1px solid #40a9ff !important;
|
|
92
|
-
box-shadow: none !important;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
:global(.ktsAntX-xui-input .ant-input:focus) {
|
|
96
|
-
border-bottom: 1px solid #1890ff !important;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
:global(.ktsAntX-xui-select .ant-select-selector) {
|
|
100
|
-
border: none !important;
|
|
101
|
-
border-bottom: 1px solid #d9d9d9 !important;
|
|
102
|
-
border-radius: 0 !important;
|
|
103
|
-
box-shadow: none !important;
|
|
104
|
-
background: transparent !important;
|
|
105
|
-
outline: none !important;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
:global(.ktsAntX-xui-select .ant-select-selector:hover) {
|
|
109
|
-
border-bottom: 1px solid #40a9ff !important;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
:global(.ktsAntX-xui-select.ant-select-focused .ant-select-selector) {
|
|
113
|
-
border-bottom: 1px solid #1890ff !important;
|
|
114
|
-
box-shadow: none !important;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
:global(.ktsAntX-xui-select .ant-select-arrow) {
|
|
118
|
-
color: #666;
|
|
119
|
-
}
|