kts-component-invoice-operate 3.2.228-fuling → 3.2.229

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 (34) hide show
  1. package/README.md +4 -0
  2. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.d.ts +1 -0
  3. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.d.ts +2 -0
  4. package/dist/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.d.ts +2 -0
  5. package/dist/Invoice/ui/default/GoodsList/index.d.ts +1 -0
  6. package/dist/Invoice/ui/default/GoodsList/ui/AddRowButton/index.d.ts +1 -1
  7. package/dist/Invoice/ui/digtal/GoodsList/index.d.ts +1 -0
  8. package/dist/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.d.ts +4 -1
  9. package/dist/index.esm.js +707 -251
  10. package/dist/index.js +706 -250
  11. package/package.json +1 -1
  12. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +1 -1
  13. package/src/Invoice/Invoice-digtal/_test/realEstateInfo/index.tsx +69 -7
  14. package/src/Invoice/Invoice-digtal/index.md +2 -9
  15. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +2 -0
  16. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +3 -0
  17. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +3 -0
  18. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +2 -2
  19. package/src/Invoice/_test/deduction/index.tsx +28 -6
  20. package/src/Invoice/index.md +4 -4
  21. package/src/Invoice/ui/default/GoodsList/index.tsx +3 -1
  22. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +8 -1
  23. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +4 -1
  24. package/src/Invoice/ui/digtal/Architecture/index.tsx +1 -1
  25. package/src/Invoice/ui/digtal/FreightList/index.tsx +1 -1
  26. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +37 -23
  27. package/src/Invoice/ui/digtal/GoodsList/index.tsx +3 -1
  28. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +20 -10
  29. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +11 -6
  30. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +5 -2
  31. package/src/Invoice/ui/digtal/RealEstateInfo/index.less +7 -0
  32. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +363 -104
  33. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +7 -6
  34. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +22 -4
@@ -1,11 +1,11 @@
1
1
 
2
- import React from "react";
2
+ import React, { useEffect } from "react";
3
3
  import { decorator } from 'grey-react-box';
4
- import { Form } from 'kts-components-antd-x3';
4
+ import { Form, message } from 'kts-components-antd-x3';
5
5
  import { FormComponentProps } from 'kts-components-antd-x3/lib/form';
6
6
  import Invoice from '../../..';
7
7
  import './index.less';
8
- import { Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
8
+ import { Button, Cascader, Col, DatePicker, Input, Row, Select } from "kts-components-antd-x4";
9
9
  import moment from "moment";
10
10
 
11
11
  const { RangePicker } = DatePicker;
@@ -36,110 +36,219 @@ export default decorator<RealEstateInfoProps, FormComponentProps & RealEstateInf
36
36
 
37
37
  const readOnly = React.useMemo(() => model === 'readOnly', [model]);
38
38
 
39
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
40
+ //outcome-104 任务 https://wiki.dev.kingxunlian.com/pages/viewpage.action?pageId=180355189
41
+ //商品和服务税收分类合并编码为“3040502020200000000”时,视为停车费业务,针对停车费业务,蓝字发票增加以下判断:
42
+ // 单位必须为“平方米”;
43
+ // 项目名称必须为“车辆停放服务”;
44
+ // 车牌号必填,最多支持填写3个车牌号;除该场景车牌号必须为空;
45
+ // 租赁期起止格式必须为“yyyy-MM-dd HH:mm(租赁期起)”+“空格”+“yyyy-MM-dd HH:mm(租赁期止)。
46
+ const isParkFee = React.useCallback((taxClassificationCode?: string) => {
47
+ if (taxClassificationCode === '3040502020200000000') {
48
+ return true
49
+ } else {
50
+ return false;
51
+ }
52
+ }, [])
53
+
54
+ const indexRef = React.useRef<any>([]);
55
+ useEffect(() => {
56
+ const dd = goodsList?.reduce((acc: any, cur: any) => {
57
+ if (cur.lineAttribute !== 1) {
58
+ acc.push(cur.$index)
59
+ }
60
+ return acc
61
+ }, [])
62
+ indexRef.current = dd;
63
+ }, [goodsList, indexRef])
39
64
  // 注册 form
65
+
40
66
  controller.useForm('realEstateInfo', form);
67
+ const getList = () => {
68
+ const decrease = indexRef.current.length > goodsList.length
69
+ if (decrease) {
70
+ //已删行列表
71
+ const diff = indexRef.current.filter((item: any) => !goodsList.find(i => i.$index === item));
72
+
73
+ const formData: any[] = form.getFieldValue('realEstateDataDto');
74
+ if (Array.isArray(formData) && diff.length > 0) {
41
75
 
76
+ const newForm = formData?.filter(item => !diff.find((i: any) => i === item.$index));
77
+
78
+ form.setFieldsValue({
79
+ realEstateDataDto: newForm
80
+ });
81
+ } else {
82
+ form.setFieldsValue({
83
+ realEstateDataDto: undefined
84
+ });
85
+ }
86
+ }
87
+ return goodsList.filter(item => item.lineAttribute !== 1).map((item, index) => {
88
+ if (item.lineAttribute !== 1) {
89
+ const isParkFeeItem = isParkFee(item.taxClassificationCode)
90
+ return <Row gutter={[17, 0]} >
91
+ <Col span={6} >
92
+ <Form.Item style={{ display: 'none' }}>
93
+ {getFieldDecorator(`realEstateDataDto[${index}].$index`, {
94
+ initialValue: item.$index,
95
+ })(
96
+ <Input />
97
+ )}
98
+ </Form.Item>
99
+ <Form.Item label='不动产地址'>
100
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateAddress`, {
101
+ rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
102
+ })(
103
+ readOnly
104
+ ? (<MyArrString />)
105
+ : (<Cascader
106
+ style={{ width: '100%' }}
107
+ options={props.realEstateAddressOptions}
108
+ fieldNames={props.realEstateAddressFieldNames}
109
+ placeholder="请选择省市区县"
110
+ />)
111
+ )}
112
+ </Form.Item>
113
+ </Col>
114
+ <Col span={6} >
115
+ <Form.Item label='详细地址' >
116
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateDetailedAddress`, {
117
+ rules: readOnly ? [] : [
118
+ { required: true, message: '请输入详细地址' },
119
+ { max: 120, message: '详细地址最多120个字符' },
120
+ {
121
+ validator: async (_, value, callback) => {
122
+ const pattern = /街|路|村|乡|镇|道|巷|号/;
123
+ if (pattern.test(value)) {
124
+ callback()
125
+ } else {
126
+ callback('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词')
127
+ }
128
+ }
129
+ }
130
+ ]
131
+ })(
132
+ readOnly
133
+ ? <MyDiv />
134
+ : <Input autoComplete='off' placeholder="请输入详细地址" />
135
+ )}
136
+ </Form.Item>
137
+ </Col>
138
+ {!isParkFeeItem &&
139
+ <Col span={6} >
140
+ <Form.Item label='租赁期起止' >
141
+ {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
142
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
143
+ })(
144
+ readOnly
145
+ ? <MyArrMoment />
146
+ : <RangePicker style={{ width: '100%' }} />
147
+ )}
148
+ </Form.Item>
149
+ </Col>}
150
+ {isParkFeeItem &&
151
+ <Col span={6} >
152
+ <Form.Item label='租赁期起止' >
153
+ {getFieldDecorator(`realEstateDataDto[${index}].leaseTerm`, {
154
+ rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
155
+ })(
156
+ readOnly
157
+ ? <MyArrMomentTime />
158
+ : <RangePicker style={{ width: '100%' }} showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" />
159
+ )}
160
+ </Form.Item>
161
+ </Col>
162
+ }
163
+ <Col span={6} >
164
+ <Form.Item label='跨地(市)标志' >
165
+ {getFieldDecorator(`realEstateDataDto[${index}].crossCitiesSign`, {
166
+ rules: readOnly ? [] : [
167
+ { required: true, message: '请选择跨地(市)标志' }
168
+ ]
169
+ })(
170
+ readOnly
171
+ ? <MyNY />
172
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
173
+ <Select.Option value='Y'>是</Select.Option>
174
+ <Select.Option value='N'>否</Select.Option>
175
+ </Select>
176
+ )}
177
+ </Form.Item>
178
+ </Col>
179
+ <Col span={6} >
180
+ <Form.Item label='产权证书/不动产权证号' >
181
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateNumber`, {
182
+ rules: readOnly ? [] : [
183
+ { required: true, message: '请输入证书编号,若没有证书填写“无”' },
184
+ { max: 40, message: '证书编号最多40个字符' },
185
+ ]
186
+ })(
187
+ readOnly
188
+ ? <MyDiv />
189
+ : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
190
+ )}
191
+ </Form.Item>
192
+ </Col>
193
+ {!isParkFeeItem &&
194
+ <Col span={6} >
195
+ <Form.Item label='面积单位' >
196
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
197
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
198
+ })(
199
+ readOnly
200
+ ? <MyDiv />
201
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
202
+ <Select.Option value="平方千米">平方千米</Select.Option>
203
+ <Select.Option value="平方米">平方米</Select.Option>
204
+ <Select.Option value="公顷">公顷</Select.Option>
205
+ <Select.Option value="亩">亩</Select.Option>
206
+ <Select.Option value="h㎡">h㎡</Select.Option>
207
+ <Select.Option value="k㎡">k㎡</Select.Option>
208
+ <Select.Option value="㎡">㎡</Select.Option>
209
+ </Select>
210
+ )}
211
+ </Form.Item>
212
+ </Col>
213
+ }
214
+ {isParkFeeItem &&
215
+ <Col span={6} >
216
+ <Form.Item label='面积单位' >
217
+ {getFieldDecorator(`realEstateDataDto[${index}].realEstateUnit`, {
218
+ rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
219
+ })(
220
+ readOnly
221
+ ? <MyDiv />
222
+ : <Select placeholder='请选择' style={{ width: '100%' }} >
223
+ <Select.Option value="平方米">平方米</Select.Option>
224
+ </Select>
225
+ )}
226
+ </Form.Item>
227
+ </Col>
228
+ }
229
+ {isParkFeeItem &&
230
+ <LicensePlateNumber form={form} index={index} cd={item.cd} readOnly={readOnly} />
231
+ // <Col span={6} >
232
+ // <Form.Item label='车牌号' >
233
+ // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
234
+ // rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
235
+ // })(
236
+ // readOnly
237
+ // ? <MyDiv />
238
+ // : <LicensePlateNumber form={form}/>
239
+ // )}
240
+ // </Form.Item>
241
+ // </Col>
242
+ }
243
+ </Row>
244
+ }
245
+ })
246
+ }
42
247
  return (
43
248
  <div className="kts-invoice-operate-real-estate-info-digtal">
44
- <div className='real-estate-info-digtal-label' >特殊信息-不动产经营租赁服务</div>
45
- <Row gutter={[17, 0]}>
46
- <Col span={6} >
47
- <Form.Item label='不动产地址' >
48
- {getFieldDecorator('realEstateAddress', {
49
- rules: readOnly ? [] : [{ required: true, message: '请选择不动产地址' }]
50
- })(
51
- readOnly
52
- ? (<MyArrString />)
53
- : (<Cascader
54
- style={{ width: '100%' }}
55
- options={props.realEstateAddressOptions}
56
- fieldNames={props.realEstateAddressFieldNames}
57
- placeholder="请选择省市区县"
58
- />)
59
- )}
60
- </Form.Item>
61
- </Col>
62
- <Col span={6} >
63
- <Form.Item label='详细地址' >
64
- {getFieldDecorator('realEstateDetailedAddress', {
65
- rules: readOnly ? [] : [
66
- { required: true, message: '请输入详细地址' },
67
- { max: 120, message: '详细地址最多120个字符' },
68
- {
69
- validator: (_, value) => {
70
- const pattern = /街|路|村|乡|镇|道|巷|号/;
71
- return pattern.test(value) ? Promise.resolve() : Promise.reject('地址必须包含“街”、“路”、“村”、“乡”、“镇”、“道”、“巷”、“号”等任意一个关键词');
72
- }
73
- }
74
- ]
75
- })(
76
- readOnly
77
- ? <MyDiv />
78
- : <Input autoComplete='off' placeholder="请输入详细地址" />
79
- )}
80
- </Form.Item>
81
- </Col>
82
- <Col span={6} >
83
- <Form.Item label='租赁期起止' >
84
- {getFieldDecorator('leaseTerm', {
85
- rules: readOnly ? [] : [{ required: true, message: '请输入租赁期' }]
86
- })(
87
- readOnly
88
- ? <MyArrMoment />
89
- : <RangePicker style={{ width: '100%' }} />
90
- )}
91
- </Form.Item>
92
- </Col>
93
- <Col span={6} >
94
- <Form.Item label='跨地(市)标志' >
95
- {getFieldDecorator('crossCitiesSign', {
96
- rules: readOnly ? [] : [
97
- { required: true, message: '请选择跨地(市)标志' }
98
- ]
99
- })(
100
- readOnly
101
- ? <MyNY />
102
- : <Select placeholder='请选择' style={{ width: '100%' }} >
103
- <Select.Option value='Y'>是</Select.Option>
104
- <Select.Option value='N'>否</Select.Option>
105
- </Select>
106
- )}
107
- </Form.Item>
108
- </Col>
109
- <Col span={6} >
110
- <Form.Item label='产权证书/不动产权证号' >
111
- {getFieldDecorator('realEstateNumber', {
112
- rules: readOnly ? [] : [
113
- { required: true, message: '请输入证书编号,若没有证书填写“无”' },
114
- { max: 40, message: '证书编号最多40个字符' },
115
- ]
116
- })(
117
- readOnly
118
- ? <MyDiv />
119
- : <Input autoComplete='off' placeholder="请输入证书编号,若没有证书填写“无”" />
120
- )}
121
- </Form.Item>
122
- </Col>
123
- <Col span={6} >
124
- <Form.Item label='面积单位' >
125
- {getFieldDecorator('realEstateUnit', {
126
- rules: readOnly ? [] : [{ required: true, message: '请选择面积单位' }]
127
- })(
128
- readOnly
129
- ? <MyDiv />
130
- : <Select placeholder='请选择' style={{ width: '100%' }} >
131
- <Select.Option value="平方千米">平方千米</Select.Option>
132
- <Select.Option value="平方米">平方米</Select.Option>
133
- <Select.Option value="公顷">公顷</Select.Option>
134
- <Select.Option value="亩">亩</Select.Option>
135
- <Select.Option value="h㎡">h㎡</Select.Option>
136
- <Select.Option value="k㎡">k㎡</Select.Option>
137
- <Select.Option value="㎡">㎡</Select.Option>
138
- </Select>
139
- )}
140
- </Form.Item>
141
- </Col>
142
- </Row>
249
+ <div className='real-estate-info-digtal-label' >特定信息-不动产经营租赁服务</div>
250
+ {getList()}
251
+
143
252
  </div>
144
253
  )
145
254
  })
@@ -172,12 +281,23 @@ class MyArrMoment extends React.Component<{ value?: moment.Moment[], style?: Rea
172
281
  <div style={this.props.style}>
173
282
  <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD')}</span>
174
283
  <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
175
- <span>{moment.isMoment(value[1]) && value[0].format('YYYY-MM-DD')}</span>
284
+ <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD')}</span>
285
+ </div>
286
+ )
287
+ }
288
+ }
289
+ class MyArrMomentTime extends React.Component<{ value?: moment.Moment[], style?: React.CSSProperties }> {
290
+ render(): React.ReactNode {
291
+ const { value = [] } = this.props
292
+ return (
293
+ <div style={this.props.style}>
294
+ <span>{moment.isMoment(value[0]) && value[0].format('YYYY-MM-DD HH:mm')}</span>
295
+ <span style={{ color: '#9F603D', fontWeight: 600 }} > - </span>
296
+ <span>{moment.isMoment(value[1]) && value[1].format('YYYY-MM-DD HH:mm')}</span>
176
297
  </div>
177
298
  )
178
299
  }
179
300
  }
180
-
181
301
  class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSProperties }> {
182
302
  render(): React.ReactNode {
183
303
  return (
@@ -189,4 +309,143 @@ class MyNY extends React.Component<{ value?: 'Y' | 'N', style?: React.CSSPropert
189
309
  )
190
310
  }
191
311
  }
312
+ interface PriceInputProps {
313
+ // value?: string[];
314
+ // style?: React.CSSProperties
315
+ // onChange?: (value: string[]) => void;
316
+ form: any,
317
+ index: number
318
+ cd?: number
319
+ readOnly: boolean
320
+ }
321
+ const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
322
+
323
+ const { form, readOnly } = props;
324
+
325
+ const { getFieldDecorator } = form;
326
+ const licenceLimit = 3; // 最多支持填写3个车牌号
327
+ const formData: any[] = form.getFieldValue('realEstateDataDto');
328
+ const [value, setVal] = React.useState(new Array(props.cd || 1).fill(''));
329
+ const cd = React.useMemo(() => formData[props.index]?.cd, [formData[props.index]?.cd])
330
+ // useEffect(() => {
331
+ // if (cd) {
332
+ // const dd = value.concat(new Array(cd.length-1).fill(''))
333
+ // setVal(dd);
334
+ // }
335
+ // }, [cd])
336
+ const onAdd = () => {
337
+ if (value.length < licenceLimit) {
338
+ setVal([...value, '']);
339
+ }else{
340
+ message.warn('最多支持填写3个车牌号')
341
+ }
342
+ }
343
+ // 删除车牌号
344
+ const onDelete = () => {
345
+ if (value.length > 0) {
346
+ const dd = value.slice(0, -1)
347
+ setVal(dd);
348
+ }
349
+ }
350
+
351
+ return <>
352
+ {
353
+ value.length > 0 && value.map((item: string[], key: number) => {
354
+
355
+ return <Col span={6} ><Form.Item label='车牌号' key={key}>
356
+ {getFieldDecorator(`realEstateDataDto[${props.index}].cphList[${key}]`, {
357
+ rules: readOnly ? [] : [{ required: true, message: '请输入车牌号,最多20位' }]
358
+ })(
359
+ readOnly
360
+ ? <MyDiv /> :
361
+ <Input style={{ width: '100%' }} maxLength={20} autoComplete='off' placeholder="请输入车牌号" />
362
+ )}
363
+ </Form.Item>
364
+ </Col>
365
+ })
366
+
367
+
368
+ }
369
+ {/* <Col span={6} style={{ display: 'none' }}><Form.Item label='长度' >
370
+ {getFieldDecorator(`realEstateDataDto[${props.index}].cd`, {
371
+
372
+ })(
373
+ <Select />
374
+ )}
375
+ </Form.Item>
376
+ </Col> */}
377
+ {!readOnly &&
378
+ <Col span={6} >
379
+ <Form.Item >
380
+ <div style={{ color: 'white' }}>1</div>
381
+ <a style={{ marginRight: 10 }} onClick={onAdd}>添加车牌号</a>
382
+ {value.length > 1 && <a onClick={onDelete}>删除</a>}
383
+ </Form.Item>
384
+ </Col>
385
+ }
386
+ </>
387
+ }
388
+
389
+
390
+ // const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
391
+
392
+ // const { form } = props;
393
+
394
+ // const { getFieldDecorator } = form;
395
+ // const licenceLimit = 3; // 最多支持填写3个车牌号
396
+ // // const { value = [] } = this.props;
397
+ // const [value, setVal] = React.useState(props.value || ['']);
398
+ // // const newArr = value.filter(e => !!e);
399
+ // const newArrLength = value.length;
400
+ // console.log(value, newArrLength)
401
+ // // 新增车牌号
402
+ // const onAdd = () => {
403
+ // if (newArrLength < licenceLimit) {
404
+ // setVal([...value, '']);
405
+ // props.onChange?.([...value, ''])
406
+ // }
407
+ // }
408
+ // // 删除车牌号
409
+ // const onDelete = () => {
410
+ // if (newArrLength > 0) {
411
+ // const dd = value.slice(0, -1)
412
+ // setVal(dd);
413
+ // props.onChange?.(dd)
414
+ // }
415
+ // }
416
+ // const onInputChange = (e: React.ChangeEvent<HTMLInputElement>, index: number) => {
417
+ // console.log(e.target.value);
418
+ // const dd = value.map((item, i) => {
419
+ // if (i === index) {
420
+ // return e.target.value
421
+ // }
422
+ // return item
423
+ // })
424
+ // setVal(dd);
425
+ // props.onChange?.(dd)
426
+
427
+
428
+ // }
429
+ // return (
430
+
431
+ // <>
432
+ // {newArrLength > 0 && value.map((item, index) => {
433
+ // return
434
+ // <Form.Item label='车牌号' >
435
+ // {getFieldDecorator(`realEstateDataDto[${index}].licensePlateNumber`, {
436
+ // rules: [{ required: true, }]
437
+ // })(
438
+ // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
439
+ // )}
440
+ // </Form.Item>
441
+ // // <Col span={6} >
442
+ // // <Input onChange={(e) => { onInputChange(e, index) }} key={index} style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
443
+ // // </Col>
444
+ // })}
445
+
446
+ // <Button type="link" onClick={onAdd}>添加车牌号</Button>
447
+ // {newArrLength > 1 && <Button type="link" onClick={onDelete}>删除</Button>}
448
+ // </>
192
449
 
450
+ // )
451
+ // }
@@ -30,7 +30,7 @@ const RULES = {
30
30
  { pattern: /^[0-9\s\-\+]+$/g, message: `${label}仅能数字、空格、-、+` }
31
31
  ],
32
32
  sellerTelPhone: (label: string) => [
33
-
33
+
34
34
  { max: 100, message: `${label}内容超长` },
35
35
  { pattern: /^[0-9\s\-\+]+$/g, message: `${label}仅能数字、空格、-、+` }
36
36
  ],
@@ -468,19 +468,19 @@ function BuyerNameInput(props: InputProps & { fieldName: string; myform: Wrapped
468
468
  const onSearch = React.useCallback(async (searchText: string) => {
469
469
  await Discontinue.start();
470
470
  try {
471
- if (fieldName === 'buyerName' ) {
471
+ if (fieldName === 'buyerName') {
472
472
  if (autoComplete.onBuyerNameSearch) {
473
473
  setOptions(await autoComplete.onBuyerNameSearch(searchText));
474
474
  }
475
- } else if (fieldName === 'buyerTaxId' ) {
475
+ } else if (fieldName === 'buyerTaxId') {
476
476
  if (autoComplete.onBuyerTaxIdSearch) {
477
477
  setOptions(await autoComplete.onBuyerTaxIdSearch(searchText));
478
478
  }
479
- }else if(fieldName === 'supplierName'){
479
+ } else if (fieldName === 'supplierName') {
480
480
  if (autoComplete.onSupplierNameSearch) {
481
481
  setOptions(await autoComplete.onSupplierNameSearch(searchText));
482
482
  }
483
- }else if(fieldName === 'supplierTaxId'){
483
+ } else if (fieldName === 'supplierTaxId') {
484
484
  if (autoComplete.onSupplierTaxIdSearch) {
485
485
  setOptions(await autoComplete.onSupplierTaxIdSearch(searchText));
486
486
  }
@@ -544,6 +544,7 @@ class NationalSelect extends React.Component<any> {
544
544
  render() {
545
545
  const props = this.props;
546
546
  const option = [
547
+ { value: "156", label: "中国" },
547
548
  { value: "004", label: "阿富汗" },
548
549
  { value: "008", label: "阿尔巴尼亚" },
549
550
  { value: "010", label: "南极洲" },
@@ -587,7 +588,7 @@ class NationalSelect extends React.Component<any> {
587
588
  { value: "144", label: "斯里兰卡" },
588
589
  { value: "148", label: "乍得" },
589
590
  { value: "152", label: "智利" },
590
- { value: "156", label: "中国" },
591
+
591
592
  { value: "158", label: "中国台湾" },
592
593
  { value: "162", label: "圣诞岛" },
593
594
  { value: "166", label: "科科斯(基林)群岛" },
@@ -200,7 +200,7 @@ export default decorator<IStakeholder, IStakeholder & FormComponentProps>(Form.c
200
200
  </Form.Item>
201
201
  </Col>
202
202
 
203
- <Col span={10+riskspanW} style={{ display: isExpand ? undefined : 'none' }} >
203
+ <Col span={10+leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
204
204
  <Form.Item label='购买方地址' colon={false}>
205
205
  {getFieldDecorator('buyerAddress', {
206
206
  rules: getRules('buyerAddress', [{ max: 100, message: '购买方地址内容超长' }])
@@ -208,13 +208,22 @@ export default decorator<IStakeholder, IStakeholder & FormComponentProps>(Form.c
208
208
  </Form.Item>
209
209
  </Col>
210
210
 
211
- <Col span={10+riskspanW} style={{ display: isExpand ? undefined : 'none' }} >
211
+ <Col span={10+leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
212
212
  <Form.Item label='电话' colon={false} className='telephone'>
213
213
  {getFieldDecorator('buyerPhone', {
214
214
  rules: getRules('buyerPhone', RULES.buyerTelPhone('购买方电话'))
215
215
  })(<MyInput readOnly={isReadOnly('buyerPhone')} placeholder="请输入电话" autoComplete="off" />)}
216
216
  </Form.Item>
217
217
  </Col>
218
+ {(props.leqi) &&
219
+ <Col span={4} style={{ display: isExpand ? undefined : 'none' }}>
220
+ <Form.Item colon={false}>
221
+ {getFieldDecorator('buyerAddressPhoneFlag', {
222
+ valuePropName: 'checked',
223
+ })(<Checkbox onChange={props?.invoiceMarkCallback} disabled={isReadOnly('buyerAddressPhoneFlag')} style={{whiteSpace:'nowrap'}}>是否展示</Checkbox>)}
224
+ </Form.Item>
225
+ </Col>
226
+ }
218
227
  <Col span={10 + leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
219
228
  <Form.Item label='购买方开户银行' colon={false}>
220
229
  {getFieldDecorator('buyerBank', {
@@ -281,7 +290,7 @@ export default decorator<IStakeholder, IStakeholder & FormComponentProps>(Form.c
281
290
  </Form.Item>
282
291
  </Col>
283
292
 
284
- <Col span={10+riskspanW} style={{ display: isExpand ? undefined : 'none' }} >
293
+ <Col span={10+leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
285
294
  <Form.Item label='销售方地址' colon={false}>
286
295
  {getFieldDecorator('sellerAddress', {
287
296
  rules: getRules('sellerAddress', [{ max: 300, message: '销售方地址内容超长' }])
@@ -289,13 +298,22 @@ export default decorator<IStakeholder, IStakeholder & FormComponentProps>(Form.c
289
298
  </Form.Item>
290
299
  </Col>
291
300
 
292
- <Col span={10+riskspanW} style={{ display: isExpand ? undefined : 'none' }} >
301
+ <Col span={10+leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
293
302
  <Form.Item label='电话' colon={false} className='telephone' >
294
303
  {getFieldDecorator('sellerPhone', {
295
304
  rules: getRules('sellerPhone', RULES.sellerTelPhone('销售方电话'))
296
305
  })(<MyInput readOnly={isReadOnly('sellerPhone')} placeholder="请输入电话" autoComplete="off" />)}
297
306
  </Form.Item>
298
307
  </Col>
308
+ {(props.leqi) &&
309
+ <Col span={4} style={{ display: isExpand ? undefined : 'none' }}>
310
+ <Form.Item colon={false}>
311
+ {getFieldDecorator('sellerAddressPhoneFlag', {
312
+ valuePropName: 'checked',
313
+ })(<Checkbox onChange={props?.invoiceMarkCallback} disabled={isReadOnly('sellerAddressPhoneFlag')} style={{whiteSpace:'nowrap'}}>是否展示</Checkbox>)}
314
+ </Form.Item>
315
+ </Col>
316
+ }
299
317
  <Col span={10 + leqispanW} style={{ display: isExpand ? undefined : 'none' }} >
300
318
  <Form.Item label='销售方开户银行' colon={false}>
301
319
  {getFieldDecorator('sellerBank', {