kts-component-invoice-operate 3.2.90 → 3.2.91
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/.dumi/theme/builtins/API.tsx +66 -66
- package/.editorconfig +16 -16
- package/.fatherrc.ts +4 -4
- package/.prettierignore +7 -7
- package/.prettierrc +11 -11
- package/.umirc.ts +8 -8
- package/README.md +9 -9
- package/dist/index.esm.js +594 -566
- package/dist/index.js +594 -566
- package/docs/index.md +5 -5
- package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
- package/docs-dist/static/arrowUp.4c482054.svg +2 -2
- package/docs-dist/static/fork.5431267d.svg +11 -11
- package/docs-dist/static/plus.44013ce3.svg +11 -11
- package/docs-dist/static/plus.4fd1af30.svg +11 -11
- package/index.html +12 -12
- package/package.json +61 -61
- package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +38 -38
- package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
- package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
- package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +470 -470
- package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +17 -17
- package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +20 -20
- package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
- package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +42 -42
- package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
- package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
- package/src/Invoice/Invoice-digtal/index.md +30 -30
- package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +95 -95
- package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +17 -17
- package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +78 -78
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
- package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +113 -113
- package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
- package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +65 -65
- package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
- package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
- package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +85 -85
- package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
- package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
- package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
- package/src/Invoice/InvoiceController/fns/mergeDetails.ts +165 -165
- package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +28 -28
- package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
- package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
- package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
- package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
- package/src/Invoice/InvoiceController/index.ts +77 -77
- package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
- package/src/Invoice/_test/deduction/index.tsx +935 -935
- package/src/Invoice/_test/draft/index.tsx +40 -40
- package/src/Invoice/_test/easiest/index.tsx +5 -5
- package/src/Invoice/_test/endowCode/index.tsx +1155 -1155
- package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
- package/src/Invoice/_test/importBuyer/index.tsx +74 -74
- package/src/Invoice/_test/importGoods/index.tsx +1078 -516
- package/src/Invoice/_test/invoiceType/index.tsx +59 -59
- package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
- package/src/Invoice/_test/replaceHead/index.tsx +22 -22
- package/src/Invoice/_test/retrieveData/index.tsx +22 -22
- package/src/Invoice/_test/seller/index.tsx +28 -28
- package/src/Invoice/_test/setDataSource/index.tsx +66 -66
- package/src/Invoice/_test/unit/index.tsx +19 -19
- package/src/Invoice/index.less +29 -29
- package/src/Invoice/index.md +53 -53
- package/src/Invoice/index.tsx +167 -167
- package/src/Invoice/tools/calculate/index.ts +112 -112
- package/src/Invoice/tools/coolingFn/index.ts +17 -17
- package/src/Invoice/tools/evaluate/index.ts +7 -7
- package/src/Invoice/tools/idGenerator/index.ts +2 -2
- package/src/Invoice/tools/itemName/index.ts +55 -55
- package/src/Invoice/tools/lazyFn/index.ts +19 -19
- package/src/Invoice/tools/mounting/index.ts +13 -13
- package/src/Invoice/tools/strringFn/index.ts +40 -40
- package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
- package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
- package/src/Invoice/ui/default/Buyer/index.less +219 -219
- package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
- package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
- package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
- package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
- package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +543 -543
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +533 -533
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +686 -686
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +47 -47
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +75 -75
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
- package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
- package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
- package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
- package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +114 -114
- package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
- package/src/Invoice/ui/default/GoodsList/index.less +179 -179
- package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
- package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +88 -88
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
- package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
- package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
- package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
- package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
- package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +113 -113
- package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +28 -28
- package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +57 -57
- package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
- package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
- package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
- package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
- package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
- package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
- package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +201 -201
- package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
- package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
- package/src/Invoice/ui/default/Seller/index.less +113 -113
- package/src/Invoice/ui/default/Seller/index.tsx +98 -98
- package/src/Invoice/ui/default/Sign/index.less +14 -14
- package/src/Invoice/ui/default/Sign/index.tsx +71 -71
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +519 -519
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +648 -648
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +50 -50
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
- package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
- package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
- package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
- package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
- package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
- package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
- package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +65 -65
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +339 -339
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +35 -35
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
- package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
- package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
- package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
- package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
- package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
- package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +99 -99
- package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
- package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
- package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +53 -53
- package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
- package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
- package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.less +44 -44
- package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
- package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
- package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
- package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
- package/src/Invoice/ui/digtal/Sign/index.less +48 -48
- package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
- package/src/Invoice/ui/digtal/Stakeholder/index.less +75 -75
- package/src/Invoice/ui/digtal/Stakeholder/index.tsx +394 -394
- package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
- package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
- package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
- package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
- package/src/InvoiceTypeModal/index.less +7 -7
- package/src/InvoiceTypeModal/index.md +5 -5
- package/src/InvoiceTypeModal/index.tsx +153 -153
- package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +177 -177
- package/src/TaxClassificationCodeModal/index.md +6 -6
- package/src/TaxClassificationCodeModal/index.tsx +74 -67
- package/src/index.ts +12 -12
- package/tsconfig.json +31 -31
- package/typings.d.ts +3 -3
- package/yarn.e.lock +14331 -14331
|
@@ -1,54 +1,54 @@
|
|
|
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
|
-
const controller = Invoice.useInvoiceController();
|
|
12
|
-
|
|
13
|
-
const goodsMap = controller.useMemo(s => s.goodsListState.goodsMap, [])
|
|
14
|
-
|
|
15
|
-
/** 当前拖动中的货品索引 */
|
|
16
|
-
const site = controller.useMemo(s => s.goodsListState.drag.site, [])
|
|
17
|
-
|
|
18
|
-
const current = controller.useMemo(s => s.goodsListState.drag.current, [])
|
|
19
|
-
|
|
20
|
-
const container = controller.useMemo(s => s.goodsListState.drag.container, [])
|
|
21
|
-
|
|
22
|
-
const discount = React.useMemo(() => {
|
|
23
|
-
const i = goodsMap.get(rowKey);
|
|
24
|
-
if (!i) return undefined;
|
|
25
|
-
|
|
26
|
-
if (i.lineAttribute === LineAttributeType.折扣行) {
|
|
27
|
-
return 'kts-invoice-operate-goods-be-discount'
|
|
28
|
-
} else if (i.lineAttribute === LineAttributeType.被折扣行) {
|
|
29
|
-
return 'kts-invoice-operate-goods-discount'
|
|
30
|
-
} else {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
}, [rowKey, goodsMap])
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return rowKey === current && current
|
|
37
|
-
? (
|
|
38
|
-
<tr style={{ height: 50, position: 'relative' }} >
|
|
39
|
-
<div style={{ height: 0.5, width: '100%', background: '#E6E6E6', position: 'absolute', bottom: 0 }} />
|
|
40
|
-
</tr>
|
|
41
|
-
) : (
|
|
42
|
-
// <tr {...props} className={classnames(props.className, discount, (rowKey === container && current) ? 'kts-invoice-operate-goods-list-itemName-drag-container' : '')} />
|
|
43
|
-
<tr
|
|
44
|
-
{...props}
|
|
45
|
-
className={classnames(
|
|
46
|
-
props.className,
|
|
47
|
-
discount,
|
|
48
|
-
(rowKey === container && current)
|
|
49
|
-
? 'kts-invoice-operate-goods-list-itemName-drag-container-' + site
|
|
50
|
-
: undefined
|
|
51
|
-
)}
|
|
52
|
-
/>
|
|
53
|
-
)
|
|
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
|
+
const controller = Invoice.useInvoiceController();
|
|
12
|
+
|
|
13
|
+
const goodsMap = controller.useMemo(s => s.goodsListState.goodsMap, [])
|
|
14
|
+
|
|
15
|
+
/** 当前拖动中的货品索引 */
|
|
16
|
+
const site = controller.useMemo(s => s.goodsListState.drag.site, [])
|
|
17
|
+
|
|
18
|
+
const current = controller.useMemo(s => s.goodsListState.drag.current, [])
|
|
19
|
+
|
|
20
|
+
const container = controller.useMemo(s => s.goodsListState.drag.container, [])
|
|
21
|
+
|
|
22
|
+
const discount = React.useMemo(() => {
|
|
23
|
+
const i = goodsMap.get(rowKey);
|
|
24
|
+
if (!i) return undefined;
|
|
25
|
+
|
|
26
|
+
if (i.lineAttribute === LineAttributeType.折扣行) {
|
|
27
|
+
return 'kts-invoice-operate-goods-be-discount'
|
|
28
|
+
} else if (i.lineAttribute === LineAttributeType.被折扣行) {
|
|
29
|
+
return 'kts-invoice-operate-goods-discount'
|
|
30
|
+
} else {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}, [rowKey, goodsMap])
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
return rowKey === current && current
|
|
37
|
+
? (
|
|
38
|
+
<tr style={{ height: 50, position: 'relative' }} >
|
|
39
|
+
<div style={{ height: 0.5, width: '100%', background: '#E6E6E6', position: 'absolute', bottom: 0 }} />
|
|
40
|
+
</tr>
|
|
41
|
+
) : (
|
|
42
|
+
// <tr {...props} className={classnames(props.className, discount, (rowKey === container && current) ? 'kts-invoice-operate-goods-list-itemName-drag-container' : '')} />
|
|
43
|
+
<tr
|
|
44
|
+
{...props}
|
|
45
|
+
className={classnames(
|
|
46
|
+
props.className,
|
|
47
|
+
discount,
|
|
48
|
+
(rowKey === container && current)
|
|
49
|
+
? 'kts-invoice-operate-goods-list-itemName-drag-container-' + site
|
|
50
|
+
: undefined
|
|
51
|
+
)}
|
|
52
|
+
/>
|
|
53
|
+
)
|
|
54
54
|
}
|
|
@@ -1,39 +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
|
-
}
|
|
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
39
|
}
|
|
@@ -1,109 +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
|
-
)
|
|
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
109
|
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
.kts-invoice-operate-goods-table-virtual {
|
|
2
|
-
.ktsAnt3x-table-placeholder {
|
|
3
|
-
position: absolute;
|
|
4
|
-
top: 50px;
|
|
5
|
-
left: 0;
|
|
6
|
-
width: 100%;
|
|
7
|
-
border: none;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.ktsAnt3x-table {
|
|
11
|
-
font-size: 12px;
|
|
12
|
-
border: none;
|
|
13
|
-
border-radius: 0;
|
|
14
|
-
|
|
15
|
-
.ktsAnt3x-table-content {
|
|
16
|
-
border-right: none;
|
|
17
|
-
|
|
18
|
-
.ktsAnt3x-table-body {
|
|
19
|
-
margin: 0;
|
|
20
|
-
|
|
21
|
-
table {
|
|
22
|
-
position: absolute;
|
|
23
|
-
top: 0;
|
|
24
|
-
left: 0;
|
|
25
|
-
border-bottom: 1px solid #e8e8e8;
|
|
26
|
-
|
|
27
|
-
tr {
|
|
28
|
-
height: 32px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
tr:hover {
|
|
32
|
-
td{
|
|
33
|
-
background: none;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.ktsAnt3x-table-thead>tr {
|
|
41
|
-
background-color: #f6f7f9;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
.kts-invoice-operate-goods-table-virtual {
|
|
2
|
+
.ktsAnt3x-table-placeholder {
|
|
3
|
+
position: absolute;
|
|
4
|
+
top: 50px;
|
|
5
|
+
left: 0;
|
|
6
|
+
width: 100%;
|
|
7
|
+
border: none;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ktsAnt3x-table {
|
|
11
|
+
font-size: 12px;
|
|
12
|
+
border: none;
|
|
13
|
+
border-radius: 0;
|
|
14
|
+
|
|
15
|
+
.ktsAnt3x-table-content {
|
|
16
|
+
border-right: none;
|
|
17
|
+
|
|
18
|
+
.ktsAnt3x-table-body {
|
|
19
|
+
margin: 0;
|
|
20
|
+
|
|
21
|
+
table {
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
border-bottom: 1px solid #e8e8e8;
|
|
26
|
+
|
|
27
|
+
tr {
|
|
28
|
+
height: 32px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
tr:hover {
|
|
32
|
+
td{
|
|
33
|
+
background: none;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.ktsAnt3x-table-thead>tr {
|
|
41
|
+
background-color: #f6f7f9;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|