kts-component-invoice-operate 3.2.226 → 3.2.228

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 (63) hide show
  1. package/dist/Invoice/Invoice-digtal/_test/pay/index.d.ts +4 -0
  2. package/dist/Invoice/InvoiceController/InvoiceControllerState/PayListState/IColumnsReplenish/index.d.ts +6 -0
  3. package/dist/Invoice/InvoiceController/InvoiceControllerState/PayListState/IGood/index.d.ts +12 -0
  4. package/dist/Invoice/InvoiceController/InvoiceControllerState/PayListState/ImportGoods/index.d.ts +21 -0
  5. package/dist/Invoice/InvoiceController/InvoiceControllerState/PayListState/index.d.ts +31 -0
  6. package/dist/Invoice/InvoiceController/InvoiceControllerState/index.d.ts +2 -0
  7. package/dist/Invoice/InvoiceController/fns/addPay.d.ts +6 -0
  8. package/dist/Invoice/InvoiceController/fns/delPay.d.ts +6 -0
  9. package/dist/Invoice/InvoiceController/fns/saveEditPay.d.ts +6 -0
  10. package/dist/Invoice/InvoiceController/fns/setEditPay.d.ts +6 -0
  11. package/dist/Invoice/InvoiceController/fns/setPay.d.ts +6 -0
  12. package/dist/Invoice/InvoiceController/index.d.ts +6 -0
  13. package/dist/Invoice/index.d.ts +2 -0
  14. package/dist/Invoice/ui/digtal/PayList/hook/useColumns/index.d.ts +3 -0
  15. package/dist/Invoice/ui/digtal/PayList/hook/useColumns/ui/TitleText/index.d.ts +8 -0
  16. package/dist/Invoice/ui/digtal/PayList/hook/useOnRow/index.d.ts +8 -0
  17. package/dist/Invoice/ui/digtal/PayList/hook/useRowSelection/index.d.ts +8 -0
  18. package/dist/Invoice/ui/digtal/PayList/hook/useWindowClick/index.d.ts +5 -0
  19. package/dist/Invoice/ui/digtal/PayList/index.d.ts +18 -0
  20. package/dist/Invoice/ui/digtal/PayList/ui/AddRowButton/index.d.ts +3 -0
  21. package/dist/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useDelRowButton/index.d.ts +6 -0
  22. package/dist/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useEmptyRefill/index.d.ts +6 -0
  23. package/dist/Invoice/ui/digtal/PayList/ui/TableRow/index.d.ts +3 -0
  24. package/dist/Invoice/ui/digtal/PayList/ui/TableVirtual/index.d.ts +4 -0
  25. package/dist/index.esm.js +8044 -5555
  26. package/dist/index.js +8044 -5555
  27. package/package.json +1 -1
  28. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +40 -8
  29. package/src/Invoice/Invoice-digtal/_test/freight/index.tsx +23 -17
  30. package/src/Invoice/Invoice-digtal/_test/pay/index.tsx +14637 -0
  31. package/src/Invoice/Invoice-digtal/index.md +7 -6
  32. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +11 -0
  33. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/IColumnsReplenish/index.ts +10 -0
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/IGood/index.ts +35 -0
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/ImportGoods/index.ts +81 -0
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/PayListState/index.ts +40 -0
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +3 -0
  38. package/src/Invoice/InvoiceController/fns/addPay.ts +11 -0
  39. package/src/Invoice/InvoiceController/fns/delPay.ts +38 -0
  40. package/src/Invoice/InvoiceController/fns/saveEditPay.ts +23 -0
  41. package/src/Invoice/InvoiceController/fns/setEditPay.ts +16 -0
  42. package/src/Invoice/InvoiceController/fns/setPay.ts +11 -0
  43. package/src/Invoice/InvoiceController/index.ts +21 -0
  44. package/src/Invoice/index.tsx +3 -0
  45. package/src/Invoice/tools/useToGenerateId/index.ts +2 -0
  46. package/src/Invoice/ui/digtal/PayList/hook/useColumns/dist/index.js +616 -0
  47. package/src/Invoice/ui/digtal/PayList/hook/useColumns/index.tsx +168 -0
  48. package/src/Invoice/ui/digtal/PayList/hook/useColumns/ui/TitleText/index.tsx +20 -0
  49. package/src/Invoice/ui/digtal/PayList/hook/useOnRow/index.tsx +37 -0
  50. package/src/Invoice/ui/digtal/PayList/hook/useRowSelection/index.tsx +120 -0
  51. package/src/Invoice/ui/digtal/PayList/hook/useWindowClick/index.tsx +19 -0
  52. package/src/Invoice/ui/digtal/PayList/index.less +73 -0
  53. package/src/Invoice/ui/digtal/PayList/index.tsx +132 -0
  54. package/src/Invoice/ui/digtal/PayList/ui/AddRowButton/index.tsx +75 -0
  55. package/src/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -0
  56. package/src/Invoice/ui/digtal/PayList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +37 -0
  57. package/src/Invoice/ui/digtal/PayList/ui/TableRow/index.less +29 -0
  58. package/src/Invoice/ui/digtal/PayList/ui/TableRow/index.tsx +21 -0
  59. package/src/Invoice/ui/digtal/PayList/ui/TableVirtual/index.less +39 -0
  60. package/src/Invoice/ui/digtal/PayList/ui/TableVirtual/index.tsx +109 -0
  61. package/src/Invoice/ui/digtal/RealEstateInfo/index.tsx +2 -2
  62. package/src/Invoice/ui/digtal/StakeFarmerholder/index.less +1 -1
  63. package/src/Invoice/ui/digtal/StakeFarmerholder/index.tsx +523 -202
@@ -0,0 +1,37 @@
1
+
2
+ import Invoice from '../../../../../../..';
3
+ import { Button, Popconfirm } from "kts-xui"
4
+ import React from "react"
5
+
6
+ /** 清空重填 */
7
+ export default () => {
8
+
9
+ const controller = Invoice.useInvoiceController();
10
+
11
+ const model = controller.useMemo(s => s.model, []);
12
+
13
+ const confirm = React.useCallback(() => {
14
+ controller.run(async s => {
15
+ s.payListState.goodsList = [];
16
+ s.payListState.goodsMap = new Map();
17
+ s.payListState.selectedGoodIndex = [];
18
+ })
19
+ }, [controller])
20
+
21
+ const button = React.useMemo(() => {
22
+ if (model === 'readOnly') return <></>;
23
+ if (model === 'prefab') return <></>;
24
+ return (
25
+ <Popconfirm
26
+ title="将要清空所有项目信息,是否继续"
27
+ onConfirm={confirm}
28
+ okText="确定"
29
+ cancelText="取消"
30
+ >
31
+ <Button size='small' >清空重填</Button>
32
+ </Popconfirm>
33
+ )
34
+ }, [model, confirm])
35
+
36
+ return { button }
37
+ }
@@ -0,0 +1,29 @@
1
+ .kts-invoice-operate-goods-list-itemName-drag-container-u {
2
+ position: relative;
3
+
4
+ &::after {
5
+ content : " ";
6
+ width : 100%;
7
+ height : 2px;
8
+ background: #0074ff;
9
+ position : absolute;
10
+ left : 0;
11
+ top : 0;
12
+ z-index : 9999;
13
+ }
14
+ }
15
+
16
+ .kts-invoice-operate-goods-list-itemName-drag-container-d {
17
+ position: relative;
18
+
19
+ &::after {
20
+ content : " ";
21
+ width : 100%;
22
+ height : 2px;
23
+ background: #0074ff;
24
+ position : absolute;
25
+ left : 0;
26
+ bottom : 0;
27
+ z-index : 9999;
28
+ }
29
+ }
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import Invoice from '../../../../..';
3
+ import { LineAttributeType } from '../../../../../InvoiceController'
4
+ import classnames from 'classnames'
5
+ import './index.less'
6
+
7
+ export default function TableRow(props: any) {
8
+
9
+ const rowKey = props['data-row-key']
10
+
11
+
12
+
13
+
14
+ return <tr
15
+ {...props}
16
+ className={classnames(
17
+ props.className,
18
+ )}
19
+ />
20
+
21
+ }
@@ -0,0 +1,39 @@
1
+ .kts-invoice-operate-goods-table-virtual {
2
+
3
+ .ktsAntX-table-body {
4
+ height: 280px;
5
+ }
6
+
7
+ .ktsAntX-table.ktsAntX-table-bordered>.ktsAntX-table-container>.ktsAntX-table-header>table>thead>tr>th {
8
+ padding : 0 10px;
9
+ height : 32px;
10
+ background: #f4f4f4;
11
+ }
12
+
13
+ .ktsAntX-table.ktsAntX-table-bordered>.ktsAntX-table-container>.ktsAntX-table-body>table>tbody>tr>td {
14
+ padding: 0;
15
+ height : 32px;
16
+ }
17
+
18
+ .ktsAntX-table .ktsAntX-table-body {
19
+ position: relative;
20
+ }
21
+
22
+ .ktsAntX-table .ktsAntX-table-body>table {
23
+ position: absolute;
24
+ left : 0;
25
+ top : 0;
26
+ }
27
+
28
+ .ktsAntX-table .ktsAntX-table-tbody {
29
+ position: relative;
30
+ }
31
+
32
+ .ktsAntX-checkbox-wrapper .ktsAntX-checkbox-inner {
33
+ width : 16px;
34
+ height : 16px;
35
+ border : 1px solid #d9d9d9;
36
+ border-radius: 2px;
37
+ top : 1px;
38
+ }
39
+ }
@@ -0,0 +1,109 @@
1
+
2
+ import React from "react";
3
+ import { TableManual, TableProps } from "kts-xui";
4
+ import { Table } from 'kts-components-antd-x4-v4';
5
+ import './index.less';
6
+
7
+ export default function <T extends object = any>(props: TableProps<T>) {
8
+
9
+ const [self, setSelf] = React.useState<HTMLSpanElement | null>(null);
10
+
11
+ const tableBody = React.useMemo(() => {
12
+ if (!self) return;
13
+ return self.querySelector('.ktsAntX-table-body') as HTMLDivElement;
14
+ }, [self]);
15
+
16
+ /** 显示指针 */
17
+ const [pointer, setPointer] = React.useState(0);
18
+
19
+ /** 行高 */
20
+ const rowHeight = React.useMemo(() => {
21
+ if (!self) return 50;
22
+
23
+ const td = self.querySelector('.ktsAntX-table-tbody .ktsAntX-table-row');
24
+ if (!td) return 50;
25
+
26
+ return td.clientHeight;
27
+ }, [self, props.dataSource]);
28
+
29
+ /** 间隔容器 */
30
+ const placeholder = React.useMemo(() => {
31
+ if (!self || !tableBody) return;
32
+ let placeholder = tableBody.querySelector('.table-virtual-placeholder') as HTMLDivElement;
33
+ if (!placeholder) {
34
+ placeholder = document.createElement('div');
35
+ placeholder.className = 'table-virtual-placeholder';
36
+ tableBody.appendChild(placeholder);
37
+ }
38
+ return placeholder;
39
+ }, [self, tableBody]);
40
+
41
+ // 设置占位dom的搞
42
+ const placeholderHeight = React.useMemo(() => {
43
+ if (!self || !rowHeight || !props.dataSource || !placeholder) return;
44
+ const placeholderHeight = rowHeight * props.dataSource.length;
45
+ placeholder.style.height = `${placeholderHeight}px`;
46
+ return placeholderHeight;
47
+ }, [self, rowHeight, props.dataSource, placeholder]);
48
+
49
+ /** 可以容纳的行数 */
50
+ const rowSize = React.useMemo(() => {
51
+ if (!tableBody! || !rowHeight) return 0;
52
+ return Math.ceil(tableBody.clientHeight / rowHeight);
53
+ }, [tableBody, rowHeight, placeholderHeight]);
54
+
55
+ // 计算渲染的行
56
+ const dataSource = React.useMemo(() => {
57
+ if (!props.dataSource) return [];
58
+ if (props.dataSource.length < 10) return props.dataSource;
59
+
60
+ if (!rowSize) return [props.dataSource[0]];
61
+ return props.dataSource?.slice(pointer, pointer + 2 * rowSize);
62
+ }, [props.dataSource, pointer, rowSize]);
63
+
64
+ // 监听滚动
65
+ React.useEffect(() => {
66
+ if (!self || !placeholder || !props.dataSource || !rowHeight || !tableBody || props.dataSource.length < 10)
67
+ return;
68
+
69
+ const onScroll = () => {
70
+ if (!props.dataSource || !tableBody) return;
71
+ setPointer(Math.floor((props.dataSource.length - rowSize) * (tableBody.scrollTop / (placeholder.clientHeight - tableBody.clientHeight))));
72
+ };
73
+ onScroll();
74
+
75
+ tableBody.addEventListener('scroll', onScroll);
76
+ return () => {
77
+ tableBody.removeEventListener('scroll', onScroll);
78
+ };
79
+ }, [self, placeholder, props.dataSource, rowHeight, rowSize]);
80
+
81
+ // 移动列表
82
+ React.useEffect(() => {
83
+ if (!self) return;
84
+
85
+ const table = self.querySelector('.ktsAntX-table .ktsAntX-table-body>table') as HTMLDivElement;
86
+ if (!table) return;
87
+
88
+ table.style.top = `${pointer * rowHeight}px`;
89
+ }, [pointer, self, rowHeight]);
90
+
91
+ React.useEffect(() => {
92
+ if (!self) return;
93
+ const cont = self.querySelector('.kts-invoice-operate-goods-table-virtual .ktsAntX-table-body');
94
+ if (!cont) return;
95
+
96
+ cont.scrollTop = 0;
97
+ }, [props.dataSource?.length])
98
+
99
+ return (
100
+ <span className="kts-invoice-operate-goods-table-virtual" ref={(e) => { setSelf(e) }} >
101
+ <TableManual
102
+ {...props}
103
+ dataSource={dataSource}
104
+ // 新版本Table会有输入框无法连续输入的问题,先兼容老版本
105
+ tableComponent={Table as any}
106
+ />
107
+ </span>
108
+ )
109
+ }
@@ -354,11 +354,11 @@ const LicensePlateNumber: React.FC<PriceInputProps> = (props) => {
354
354
 
355
355
  return <Col span={6} ><Form.Item label='车牌号' key={key}>
356
356
  {getFieldDecorator(`realEstateDataDto[${props.index}].cphList[${key}]`, {
357
- rules: readOnly ? [] : [{ required: true, message: '请输入车牌号' }]
357
+ rules: readOnly ? [] : [{ required: true, message: '请输入车牌号,最多20位' }]
358
358
  })(
359
359
  readOnly
360
360
  ? <MyDiv /> :
361
- <Input style={{ width: '100%' }} autoComplete='off' placeholder="请输入车牌号" />
361
+ <Input style={{ width: '100%' }} maxLength={20} autoComplete='off' placeholder="请输入车牌号" />
362
362
  )}
363
363
  </Form.Item>
364
364
  </Col>
@@ -1,4 +1,4 @@
1
- .kts-invoice-operate-invoice-digtal-stakeholder {
1
+ .kts-invoice-operate-invoice-digtal-stakeholder,.kts-invoice-operate-invoice-digtal-payinfo {
2
2
 
3
3
  display: flex;
4
4