kts-component-invoice-operate 3.2.155 → 3.2.157

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 (31) hide show
  1. package/dist/Invoice/InvoiceController/index.d.ts +2 -0
  2. package/dist/Invoice/index.d.ts +2 -0
  3. package/dist/Invoice/ui/digtal/StakeFarmerholder/index.d.ts +20 -0
  4. package/dist/index.esm.js +806 -226
  5. package/dist/index.js +806 -226
  6. package/docs-dist/umi.css +1 -1
  7. package/docs-dist/umi.js +1 -1
  8. package/package.json +1 -1
  9. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +1 -0
  10. package/src/Invoice/InvoiceController/index.ts +2 -0
  11. package/src/Invoice/_test/children/index.tsx +12 -0
  12. package/src/Invoice/index.tsx +4 -0
  13. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +3 -2
  14. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Expand/index.tsx +10 -6
  15. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/dist/index.js +32 -0
  16. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +12 -1
  17. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +19 -5
  18. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +0 -1
  19. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +6 -8
  20. package/src/Invoice/ui/digtal/StakeFarmerholder/index.less +100 -0
  21. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +398 -0
  22. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowDown.svg +3 -0
  23. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/arrowUp.svg +3 -0
  24. package/src/Invoice/ui/digtal/StakeFarmerholder/svg/plus.svg +12 -0
  25. package/docs-dist/static/I001.4ff48f20.svg +0 -1
  26. package/docs-dist/static/I002.38b94da1.svg +0 -1
  27. /package/docs-dist/static/{arrowDown.22c7885c.svg → arrowDown.a1cbf0d8.svg} +0 -0
  28. /package/docs-dist/static/{arrowUp.d707a3e4.svg → arrowUp.4c482054.svg} +0 -0
  29. /package/docs-dist/static/{fork.43eb4ffa.svg → fork.5431267d.svg} +0 -0
  30. /package/docs-dist/static/{plus.384f41d9.svg → plus.44013ce3.svg} +0 -0
  31. /package/docs-dist/static/{plus.0e60e9ea.svg → plus.4fd1af30.svg} +0 -0
@@ -0,0 +1,398 @@
1
+
2
+ import React from 'react';
3
+ import Icon from '@ant-design/icons';
4
+ import { decorator } from "grey-react-box";
5
+ import { Form } from "kts-components-antd-x3";
6
+ import { AutoComplete, Button, Checkbox, Col, Input, InputProps, Row, Tooltip } from 'kts-xui'
7
+ import { CheckboxChangeEvent } from 'kts-components-antd-x4/lib/checkbox';
8
+ import { FormComponentProps } from "kts-components-antd-x3/lib/form";
9
+ import { WrappedFormUtils } from 'kts-components-antd-x3/lib/form/Form';
10
+ import { ReactComponent as ArrowUpSvg } from './svg/arrowUp.svg';
11
+ import { ReactComponent as ArrowDownSvg } from './svg/arrowDown.svg';
12
+ import { ReactComponent as PlusSvg } from './svg/plus.svg'
13
+ import InvoiceController from "../../../InvoiceController";
14
+ import Invoice from "../../..";
15
+ import './index.less';
16
+ import classNames from 'classnames';
17
+
18
+ const RULES = {
19
+ companyName: (label: string) => [
20
+ { required: true, message: `${label}必填` },
21
+ { max: 100, message: `${label}内容超长` }
22
+ ],
23
+ taxId: (label: string) => [
24
+ { max: 20, message: `${label}内容超长` },
25
+ { pattern: /^([a-zA-Z0-9])*$/g, message: `${label}仅能数字、英文` }
26
+ ],
27
+ buyerTelPhone: (label: string) => [
28
+ { max: 100, message: `${label}内容超长` },
29
+ { pattern: /^[0-9\s\-\+]+$/g, message: `${label}仅能数字、空格、-、+` }
30
+ ],
31
+ sellerTelPhone: (label: string) => [
32
+ { required: true, message: `${label}必填` },
33
+ { max: 100, message: `${label}内容超长` },
34
+ { pattern: /^[0-9\s\-\+]+$/g, message: `${label}仅能数字、空格、-、+` }
35
+ ],
36
+ bankName: (label: string) => [
37
+ { max: 100, message: `${label}内容超长` }
38
+ ],
39
+ bankAccount: (label: string) => [
40
+ { max: 100, message: `${label}内容超长` },
41
+ { pattern: /^([0-9a-zA-Z-\s])*$/g, message: `${label}仅能数字、字母、-、空格` }
42
+ ]
43
+ }
44
+
45
+ const formatCompanyName = (e: any) => {
46
+ const value = e?.target?.value;
47
+ if (value) {
48
+ return value.replace('(', '(').replace(')', ')').replace(' ', '');
49
+ }
50
+ }
51
+
52
+ export interface IStakeholder {
53
+
54
+ /** 是否显示导入按钮 */
55
+ isShowImportButton?: boolean;
56
+
57
+ /** 点击了 */
58
+ onClickImportButton?: (e: InvoiceController) => void
59
+
60
+ /** 查看当前可用授信额度 */
61
+ lineCredit?: React.ReactNode;
62
+
63
+ /** 票种类型 */
64
+ isVatNormal?: boolean;
65
+
66
+ /** 是否可以选择自然人 */
67
+ isNaturalPerson?: boolean;
68
+
69
+ /** 是否展开 */
70
+ isExpand?: boolean;
71
+ }
72
+
73
+ /** 农产品干系人 */
74
+ export default decorator<IStakeholder, IStakeholder & FormComponentProps>(Form.create())(props => {
75
+
76
+ const { form, isShowImportButton, onClickImportButton, isVatNormal = false } = props;
77
+
78
+ const [isExpand, setExpand] = React.useState(typeof props.isExpand === 'boolean' ? props.isExpand : true);
79
+
80
+ const { getFieldDecorator } = form;
81
+
82
+ const controller = Invoice.useInvoiceController();
83
+
84
+ const model = controller.useMemo(s => s.model, []);
85
+
86
+ const disableds = controller.useMemo(s => s.stakeholder.disableds || [], []);
87
+
88
+ const rulesMap = controller.useMemo(s => s.stakeholder.rulesMap || {}, []);
89
+
90
+ const readOnly = React.useMemo(() => {
91
+ if (model === 'readOnly') return true;
92
+ if (model === 'prefab') return true;
93
+ return false;
94
+ }, [model]);
95
+
96
+ const onExpand = React.useCallback(() => { setExpand(e => !e) }, []);
97
+
98
+ const isReadOnly = React.useCallback(field => readOnly || disableds.indexOf(field) >= 0, [disableds, readOnly]);
99
+
100
+ const getRules = React.useCallback((field, defaultRules) => {
101
+ if (isReadOnly(field)) return [];
102
+ return rulesMap[field] || defaultRules;
103
+ }, [rulesMap, isReadOnly, isReadOnly]);
104
+
105
+ controller.useForm('stakeholder', form);
106
+
107
+ // props.isExpand 变化的时候更新
108
+ React.useEffect(() => {
109
+ setExpand(typeof props.isExpand === 'boolean' ? props.isExpand : true);
110
+ }, [props.isExpand])
111
+
112
+ return (
113
+ <div className={classNames("kts-invoice-operate-invoice-digtal-stakeholder", { readOnly: readOnly })} >
114
+ <div>
115
+ {'销售方信息'.split('').map(e => <span>{e}</span>)}
116
+ {
117
+ !readOnly &&
118
+ <Icon
119
+ className="digtal-stakeholder-expand-button"
120
+ component={isExpand ? ArrowUpSvg : ArrowDownSvg}
121
+ onClick={onExpand}
122
+ />
123
+ }
124
+ </div>
125
+ <div>
126
+ <div style={{ marginTop: 20 }} className='natural-person-flag' >
127
+ {
128
+ props.isNaturalPerson === true &&
129
+ <Form.Item colon={false}>
130
+ {getFieldDecorator('naturalPersonFlag', {
131
+ })(
132
+ <NaturalPersonFlag readOnly={isReadOnly('naturalPersonFlag')} />
133
+ )}
134
+ </Form.Item>
135
+ }
136
+ </div>
137
+ <Form className="digtal-stakeholder-form" >
138
+ <Row gutter={[16, 0]}>
139
+ <Col span={24} >
140
+ <Form.Item label='名称' colon={false}>
141
+ {getFieldDecorator('supplierName', {
142
+ rules: getRules('supplierName', RULES.companyName('销售方名称')),
143
+ getValueFromEvent: formatCompanyName
144
+ })(<MyInput readOnly={isReadOnly('supplierName')} placeholder="请输入名称" autoComplete="off" />)}
145
+ </Form.Item>
146
+ </Col>
147
+
148
+ <Col span={24} >
149
+ <Form.Item label='统一社会信用代码/纳税人识别号' colon={false}>
150
+ {getFieldDecorator('supplierTaxId', {
151
+ rules: getRules('supplierTaxId', [{ required: true, message: '销售方纳税人识别号必填' }, ...RULES.taxId('销售方纳税人识别号')])
152
+ })(<MyInput readOnly={isReadOnly('supplierTaxId')} placeholder="请输入统一社会信用代码/纳税人识别号" autoComplete="off" />)}
153
+ </Form.Item>
154
+ </Col>
155
+
156
+ <Col span={12} style={{ display: isExpand ? undefined : 'none' }} >
157
+ <Form.Item label='销售方地址' colon={false}>
158
+ {getFieldDecorator('sellerAddress', {
159
+ rules: getRules('sellerAddress', [{ max: 300, message: '销售方地址内容超长' }])
160
+ })(<MyInput readOnly={isReadOnly('sellerAddress')} placeholder="请输入销售方地址" autoComplete="off" />)}
161
+ </Form.Item>
162
+ </Col>
163
+
164
+ <Col span={12} style={{ display: isExpand ? undefined : 'none' }} >
165
+ <Form.Item label='电话' colon={false} className='telephone' >
166
+ {getFieldDecorator('sellerPhone', {
167
+ rules: getRules('sellerPhone', RULES.sellerTelPhone('销售方电话'))
168
+ })(<MyInput readOnly={isReadOnly('sellerPhone')} placeholder="请输入电话" autoComplete="off" />)}
169
+ </Form.Item>
170
+ </Col>
171
+
172
+ <Col span={12} style={{ display: isExpand ? undefined : 'none' }} >
173
+ <Form.Item label='销售方开户银行' colon={false}>
174
+ {getFieldDecorator('sellerBank', {
175
+ rules: getRules('sellerBank', RULES.bankName('销售方开户银行'))
176
+ })(<MyInput readOnly={isReadOnly('sellerBank')} placeholder="请输入销售方开户银行" autoComplete="off" />)}
177
+ </Form.Item>
178
+ </Col>
179
+
180
+ <Col span={12} style={{ display: isExpand ? undefined : 'none' }} >
181
+ <Form.Item label='银行账号' colon={false}>
182
+ {getFieldDecorator('sellerAccount', {
183
+ rules: getRules('sellerAccount', RULES.bankAccount('销售方银行账号'))
184
+ })(<MyInput readOnly={isReadOnly('sellerAccount')} placeholder="请输入银行账号" autoComplete="off" />)}
185
+ </Form.Item>
186
+ </Col>
187
+ </Row>
188
+ </Form>
189
+ </div>
190
+ <div>
191
+ {'购买方信息'.split('').map(e => <span>{e}</span>)}
192
+ {
193
+ !readOnly &&
194
+ <Icon
195
+ className="digtal-stakeholder-expand-button"
196
+ component={isExpand ? ArrowUpSvg : ArrowDownSvg}
197
+ onClick={onExpand}
198
+ />
199
+ }
200
+ </div>
201
+ <div>
202
+ {
203
+ !readOnly && props.lineCredit &&
204
+ <div style={{ marginTop: 20 }} >
205
+ <Tooltip trigger="click" title={props.lineCredit} >
206
+ <Button type="link" style={{ padding: `0px 8px` }} >查看当前可用授信额度</Button>
207
+ </Tooltip>
208
+ </div>
209
+ }
210
+
211
+ <Form className="digtal-stakeholder-form" >
212
+ <Row gutter={[16, 0]}>
213
+ <Col span={24} >
214
+ <Form.Item label='名称' colon={false}>
215
+ {getFieldDecorator('buyerName', {
216
+ rules: getRules('buyerName', RULES.companyName('购买方名称')),
217
+ })(
218
+ <BuyerNameInput
219
+ myform={form}
220
+ fieldName='buyerName'
221
+ readOnly={isReadOnly('buyerName')}
222
+ placeholder="请输入名称"
223
+ autoComplete="off"
224
+ suffix={
225
+ isShowImportButton === true &&
226
+ <Button
227
+ type='link'
228
+ style={{ padding: 0, width: 20, height: '100%' }}
229
+ icon={<Icon component={PlusSvg} />}
230
+ onClick={() => { onClickImportButton && onClickImportButton(controller) }}
231
+ />
232
+ }
233
+ />
234
+ )}
235
+ </Form.Item>
236
+ </Col>
237
+
238
+ <Col span={24} >
239
+ <Form.Item label='统一社会信用代码/纳税人识别号' colon={false}>
240
+ {getFieldDecorator('buyerTaxId', {
241
+ rules: getRules('buyerTaxId', [{ required: !isVatNormal, message: '购买方纳税人识别号必填' }, ...RULES.taxId('购买方纳税人识别号')])
242
+ })(
243
+ <BuyerNameInput
244
+ myform={form}
245
+ fieldName='buyerTaxId'
246
+ readOnly={isReadOnly('buyerTaxId')}
247
+ placeholder="请输入统一社会信用代码/纳税人识别号"
248
+ autoComplete="off"
249
+ />
250
+ )}
251
+ </Form.Item>
252
+ </Col>
253
+
254
+ <Col span={14} style={{ display: isExpand ? undefined : 'none' }} >
255
+ <Form.Item label='购买方地址' colon={false}>
256
+ {getFieldDecorator('buyerAddress', {
257
+ rules: getRules('buyerAddress', [{ max: 100, message: '购买方地址内容超长' }])
258
+ })(<MyInput readOnly={isReadOnly('buyerAddress')} placeholder="请输入购买方地址" autoComplete="off" />)}
259
+ </Form.Item>
260
+ </Col>
261
+
262
+ <Col span={10} style={{ display: isExpand ? undefined : 'none' }} >
263
+ <Form.Item label='电话' colon={false} className='telephone'>
264
+ {getFieldDecorator('buyerPhone', {
265
+ rules: getRules('buyerPhone', RULES.buyerTelPhone('购买方电话'))
266
+ })(<MyInput readOnly={isReadOnly('buyerPhone')} placeholder="请输入电话" autoComplete="off" />)}
267
+ </Form.Item>
268
+ </Col>
269
+
270
+ <Col span={14} style={{ display: isExpand ? undefined : 'none' }} >
271
+ <Form.Item label='购买方开户银行' colon={false}>
272
+ {getFieldDecorator('buyerBank', {
273
+ rules: getRules('buyerBank', RULES.bankName('购买方开户银行'))
274
+ })(<MyInput readOnly={isReadOnly('buyerBank')} placeholder="请输入购买方开户银行" autoComplete="off" />)}
275
+ </Form.Item>
276
+ </Col>
277
+
278
+ <Col span={10} style={{ display: isExpand ? undefined : 'none' }} >
279
+ <Form.Item label='银行账号' colon={false}>
280
+ {getFieldDecorator('buyerAccount', {
281
+ rules: getRules('buyerAccount', RULES.bankAccount('购买方银行账号'))
282
+ })(<MyInput readOnly={isReadOnly('buyerAccount')} placeholder="请输入银行账号" autoComplete="off" />)}
283
+ </Form.Item>
284
+ </Col>
285
+ </Row>
286
+ </Form>
287
+ </div>
288
+
289
+ </div>
290
+ )
291
+ })
292
+
293
+ function NaturalPersonFlag(props: {
294
+ // NATURAL("自然人"), COMPANY("非自然人");
295
+ value?: 'COMPANY' | 'NATURAL',
296
+ onChange?: (e: 'COMPANY' | 'NATURAL') => void
297
+ readOnly?: boolean;
298
+ }) {
299
+
300
+ const [value, setValue] = React.useState(props.value || 'COMPANY');
301
+
302
+ const onChange = React.useCallback((e: CheckboxChangeEvent) => {
303
+ if (props.readOnly) return;
304
+ setValue(e.target.checked ? 'NATURAL' : 'COMPANY');
305
+ props.onChange && props.onChange(e.target.checked ? 'NATURAL' : 'COMPANY');
306
+ }, [props.onChange, props.readOnly])
307
+
308
+ React.useEffect(() => {
309
+ setValue(props.value || 'COMPANY')
310
+ }, [props.value])
311
+
312
+ return (
313
+ <Checkbox
314
+ disabled={props.readOnly}
315
+ checked={value === 'NATURAL'}
316
+ onChange={onChange}
317
+ >
318
+ 是否开票给自然人
319
+ </Checkbox>
320
+ )
321
+ }
322
+
323
+ function BuyerNameInput(props: InputProps & { fieldName: string; myform: WrappedFormUtils<any> }) {
324
+
325
+ const { fieldName, myform: form } = props;
326
+
327
+ const controller = Invoice.useInvoiceController();
328
+
329
+ const rootElement = controller.useMemo(s => s.rootElement, []);
330
+
331
+ const autoComplete = controller.useMemo(s => s.autoComplete, [])
332
+
333
+ const [options, setOptions] = React.useState<any[]>([])
334
+
335
+ const onChangeAutoComplete = React.useCallback(value => {
336
+ const record = options.filter(e => e[fieldName] === value)[0] as any;
337
+ if (!record || !form) return;
338
+
339
+ form.setFieldsValue(record);
340
+ setOptions([])
341
+ }, [options, fieldName, form])
342
+
343
+ const onSearch = React.useCallback(async (searchText: string) => {
344
+ await Discontinue.start();
345
+ try {
346
+ if (fieldName === 'buyerName') {
347
+ if (autoComplete.onBuyerNameSearch) {
348
+ setOptions(await autoComplete.onBuyerNameSearch(searchText));
349
+ }
350
+ } else if (fieldName === 'buyerTaxId') {
351
+ if (autoComplete.onBuyerTaxIdSearch) {
352
+ setOptions(await autoComplete.onBuyerTaxIdSearch(searchText));
353
+ }
354
+ }
355
+
356
+ } catch (error) {
357
+ setOptions([]);
358
+ throw error;
359
+ }
360
+ }, [autoComplete.onBuyerNameSearch, fieldName])
361
+
362
+ if (props.readOnly) return <span className='digtal-stakeholder-form-text'>{props.value}</span>;
363
+
364
+ return (
365
+ <AutoComplete
366
+ onSearch={onSearch}
367
+ options={options.map(e => ({ value: e[fieldName] }))}
368
+ onChange={onChangeAutoComplete}
369
+ value={props.value}
370
+ getPopupContainer={() => rootElement || document.body}
371
+ style={{ width: '100%' }}
372
+ >
373
+ <Input {...props} style={{ width: '100%', ...props.style }} />
374
+ </AutoComplete>
375
+ )
376
+ }
377
+
378
+ class MyInput extends React.Component<InputProps> {
379
+ render() {
380
+ const props = this.props;
381
+ if (props.readOnly) {
382
+ return <span className='digtal-stakeholder-form-text'>{props.value}</span>
383
+ } else {
384
+ return <Input {...props} />
385
+ }
386
+ }
387
+ }
388
+
389
+ class Discontinue {
390
+
391
+ private static timer: any;
392
+
393
+ static start = (interval = 200) => new Promise<void>(resolve => {
394
+ clearTimeout(Discontinue.timer);
395
+ Discontinue.timer = setTimeout(resolve, interval);
396
+ })
397
+ }
398
+
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13" fill="none">
2
+ <path d="M2.94338 4.42663C3.03458 4.42662 3.12571 4.46481 3.19459 4.54096L5.99164 7.6327L8.78868 4.54096C8.92463 4.39067 9.14733 4.38824 9.28606 4.53554C9.4248 4.68285 9.42705 4.92408 9.29107 5.07437L6.24283 8.44378C6.17667 8.5169 6.08613 8.55811 5.99164 8.55811C5.89714 8.55811 5.80659 8.5169 5.74044 8.44378L2.69221 5.07437C2.55623 4.92408 2.55849 4.68285 2.69722 4.53554C2.76567 4.46287 2.85455 4.42665 2.94338 4.42663Z"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" fill="none">
2
+ <path d="M9.55662 8.57337C9.46542 8.57338 9.37429 8.53519 9.30541 8.45904L6.50836 5.3673L3.71132 8.45904C3.57537 8.60933 3.35267 8.61176 3.21394 8.46446C3.0752 8.31715 3.07295 8.07592 3.20893 7.92563L6.25717 4.55622C6.32333 4.4831 6.41387 4.44189 6.50836 4.44189C6.60286 4.44189 6.69341 4.4831 6.75956 4.55622L9.80779 7.92563C9.94377 8.07592 9.94151 8.31715 9.80278 8.46446C9.73433 8.53713 9.64545 8.57335 9.55662 8.57337Z"/>
3
+ </svg>
@@ -0,0 +1,12 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="15" viewBox="0 0 16 15" fill="none">
2
+ <g clip-path="url(#clip0_715_360)">
3
+ <path d="M8 14.5312C4.11687 14.5312 0.96875 11.3831 0.96875 7.5C0.96875 3.61687 4.11687 0.46875 8 0.46875C11.8831 0.46875 15.0312 3.61687 15.0312 7.5C15.0312 11.3831 11.8831 14.5312 8 14.5312ZM8 13.5938C11.3656 13.5938 14.0938 10.8656 14.0938 7.5C14.0938 4.13438 11.3656 1.40625 8 1.40625C4.63438 1.40625 1.90625 4.13438 1.90625 7.5C1.90625 10.8656 4.63438 13.5938 8 13.5938Z"/>
4
+ <path d="M4.25 7.96875C4.12568 7.96875 4.00645 7.91936 3.91854 7.83146C3.83064 7.74355 3.78125 7.62432 3.78125 7.5C3.78125 7.37568 3.83064 7.25645 3.91854 7.16854C4.00645 7.08064 4.12568 7.03125 4.25 7.03125H11.75C11.8743 7.03125 11.9935 7.08064 12.0815 7.16854C12.1694 7.25645 12.2188 7.37568 12.2188 7.5C12.2188 7.62432 12.1694 7.74355 12.0815 7.83146C11.9935 7.91936 11.8743 7.96875 11.75 7.96875H4.25Z"/>
5
+ <path d="M7.53125 3.75C7.53125 3.62568 7.58064 3.50645 7.66854 3.41854C7.75645 3.33064 7.87568 3.28125 8 3.28125C8.12432 3.28125 8.24355 3.33064 8.33146 3.41854C8.41936 3.50645 8.46875 3.62568 8.46875 3.75V11.25C8.46875 11.3743 8.41936 11.4935 8.33146 11.5815C8.24355 11.6694 8.12432 11.7188 8 11.7188C7.87568 11.7188 7.75645 11.6694 7.66854 11.5815C7.58064 11.4935 7.53125 11.3743 7.53125 11.25V3.75Z"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_715_360">
9
+ <rect width="15" height="15" transform="translate(0.5)"/>
10
+ </clipPath>
11
+ </defs>
12
+ </svg>
@@ -1 +0,0 @@
1
- <svg t="1719031046892" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5456" width="200" height="200"><path d="M879.9725037 997.08776297H146.45475555c-67.23508148 0-122.2125037-54.97742222-122.2125037-122.21250372V141.23614815c0-67.23508148 54.97742222-122.2125037 122.2125037-122.2125037h733.63911112c67.23508148 0 122.2125037 54.97742222 122.2125037 122.2125037V874.87525925c0 67.11371852-54.97742222 122.2125037-122.33386667 122.21250372zM146.45475555 80.06921482c-36.65161482 0-61.16693333 24.39395555-61.16693333 61.16693333V874.87525925c0 36.65161482 24.39395555 61.16693333 61.16693333 61.16693334h733.63911112c36.65161482 0 61.16693333-24.39395555 61.16693333-61.16693334V141.23614815c0-36.65161482-24.39395555-61.16693333-61.16693333-61.16693333H146.45475555z m0 0" p-id="5457"></path><path d="M757.76 538.57848889h-489.09274075c-18.32580741 0-30.58346667-12.25765925-30.58346666-30.58346667s12.25765925-30.58346667 30.58346666-30.58346667h489.09274075c18.32580741 0 30.58346667 12.25765925 30.58346667 30.58346667s-12.25765925 30.58346667-30.58346667 30.58346667z m0 0" p-id="5458"></path><path d="M513.21362963 783.12485925c-18.32580741 0-30.58346667-12.25765925-30.58346666-30.58346666v-489.09274074c0-18.32580741 12.25765925-30.58346667 30.58346666-30.58346667s30.58346667 12.25765925 30.58346667 30.58346667v489.09274074c0 18.32580741-12.25765925 30.58346667-30.58346667 30.58346666z m0 0" p-id="5459"></path></svg>
@@ -1 +0,0 @@
1
- <svg t="1719031078613" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5605" width="200" height="200"><path d="M879.9725037 997.08776297H146.45475555c-67.23508148 0-122.2125037-54.97742222-122.2125037-122.21250372V141.23614815c0-67.23508148 54.97742222-122.2125037 122.2125037-122.2125037h733.63911112c67.23508148 0 122.2125037 54.97742222 122.2125037 122.2125037V874.87525925c0 67.11371852-54.97742222 122.2125037-122.33386667 122.21250372zM146.45475555 80.06921482c-36.65161482 0-61.16693333 24.39395555-61.16693333 61.16693333V874.87525925c0 36.65161482 24.39395555 61.16693333 61.16693333 61.16693334h733.63911112c36.65161482 0 61.16693333-24.39395555 61.16693333-61.16693334V141.23614815c0-36.65161482-24.39395555-61.16693333-61.16693333-61.16693333H146.45475555z m0 0" p-id="5606"></path><path d="M757.76 538.57848889h-489.09274075c-18.32580741 0-30.58346667-12.25765925-30.58346666-30.58346667s12.25765925-30.58346667 30.58346666-30.58346667h489.09274075c18.32580741 0 30.58346667 12.25765925 30.58346667 30.58346667s-12.25765925 30.58346667-30.58346667 30.58346667z m0 0" p-id="5607"></path></svg>