kts-component-invoice-operate 3.2.83 → 3.2.84

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/index.esm.js CHANGED
@@ -14825,63 +14825,41 @@ function useSalesDiscount() {
14825
14825
  var selectedGoodIndex = controller.useMemo(function (s) {
14826
14826
  return s.goodsListState.selectedGoodIndex;
14827
14827
  }, []);
14828
- var goodsMap = controller.useMemo(function (s) {
14829
- return s.goodsListState.goodsMap;
14828
+ var goodsList = controller.useMemo(function (s) {
14829
+ return s.goodsListState.goodsList;
14830
14830
  }, []);
14831
14831
  var isSalesDiscount = controller.useMemo(function (s) {
14832
14832
  return s.goodsListState.isSalesDiscount;
14833
14833
  }, []);
14834
14834
  var onClick = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
14835
- var selectedGood, content, concession, _content, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
14836
-
14835
+ var selectedGood, concessions, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
14837
14836
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
14838
14837
  while (1) {
14839
14838
  switch (_context3.prev = _context3.next) {
14840
14839
  case 0:
14841
- selectedGood = selectedGoodIndex.map(function (e) {
14842
- return goodsMap.get(e);
14843
- });
14844
-
14845
- if (!(selectedGood.filter(function (e) {
14846
- return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折扣行 || (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.被折扣行;
14847
- }).length > 0)) {
14848
- _context3.next = 5;
14849
- break;
14850
- }
14851
-
14852
- content = '不能选择折扣行和被折扣行';
14853
- message.error({
14854
- content: content,
14855
- key: content
14840
+ selectedGood = goodsList.filter(function (e) {
14841
+ return e.lineAttribute === LineAttributeType$1.折让行 || e.lineAttribute === LineAttributeType$1.正常;
14856
14842
  });
14857
- return _context3.abrupt("return");
14858
-
14859
- case 5:
14860
14843
  /** 折让行 */
14861
- concession = selectedGood.filter(function (e) {
14862
- return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
14863
- })[0];
14864
14844
 
14865
- if (concession) {
14866
- _context3.next = 10;
14867
- break;
14868
- }
14869
-
14870
- _content = '未选择折让行';
14871
- message.error({
14872
- content: _content,
14873
- key: _content
14845
+ concessions = selectedGood.filter(function (e) {
14846
+ return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
14874
14847
  });
14875
- return _context3.abrupt("return");
14876
-
14877
- case 10:
14878
14848
  /** 准备添加折扣的货物列表 */
14849
+
14879
14850
  discountGood = selectedGood.filter(function (e) {
14880
14851
  return (e === null || e === void 0 ? void 0 : e.lineAttribute) !== LineAttributeType$1.折让行;
14881
14852
  });
14882
14853
  /** 折扣总金额 */
14883
14854
 
14884
- totalDiscoline = chain$1(bignumber(-1 * (concession.lineAmountIncludeTax || 0)));
14855
+ totalDiscoline = function () {
14856
+ var sum = chain$1(bignumber(0));
14857
+ concessions.forEach(function (e) {
14858
+ sum = sum.add(bignumber(-1 * (e.lineAmountIncludeTax || 0)));
14859
+ });
14860
+ return sum;
14861
+ }();
14862
+
14885
14863
  discolinesSum = chain$1(bignumber(0));
14886
14864
  /** 总金额 */
14887
14865
 
@@ -14911,38 +14889,40 @@ function useSalesDiscount() {
14911
14889
 
14912
14890
  i = 0;
14913
14891
 
14914
- case 17:
14892
+ case 9:
14915
14893
  if (!(i < discolines.length)) {
14916
- _context3.next = 25;
14894
+ _context3.next = 17;
14917
14895
  break;
14918
14896
  }
14919
14897
 
14920
14898
  if (!surplus.smaller(0.01).done()) {
14921
- _context3.next = 20;
14899
+ _context3.next = 12;
14922
14900
  break;
14923
14901
  }
14924
14902
 
14925
- return _context3.abrupt("break", 25);
14903
+ return _context3.abrupt("break", 17);
14926
14904
 
14927
- case 20:
14905
+ case 12:
14928
14906
  discolines[i] = chain$1(bignumber(discolines[i])).add(bignumber(0.01)).done().toNumber();
14929
14907
  surplus = surplus.subtract(bignumber(0.01));
14930
14908
 
14931
- case 22:
14909
+ case 14:
14932
14910
  i++;
14933
- _context3.next = 17;
14911
+ _context3.next = 9;
14934
14912
  break;
14935
14913
 
14936
- case 25:
14937
- _context3.next = 27;
14914
+ case 17:
14915
+ _context3.next = 19;
14938
14916
  return controller.run( /*#__PURE__*/function () {
14939
14917
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(s) {
14940
14918
  return _regeneratorRuntime().wrap(function _callee$(_context) {
14941
14919
  while (1) {
14942
14920
  switch (_context.prev = _context.next) {
14943
14921
  case 0:
14944
- s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
14945
- return e.$index !== concession.$index;
14922
+ concessions.forEach(function (concession) {
14923
+ s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
14924
+ return e.$index !== concession.$index;
14925
+ });
14946
14926
  });
14947
14927
 
14948
14928
  case 1:
@@ -14958,8 +14938,8 @@ function useSalesDiscount() {
14958
14938
  };
14959
14939
  }());
14960
14940
 
14961
- case 27:
14962
- _context3.next = 29;
14941
+ case 19:
14942
+ _context3.next = 21;
14963
14943
  return controller.run( /*#__PURE__*/function () {
14964
14944
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(s) {
14965
14945
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
@@ -14981,8 +14961,8 @@ function useSalesDiscount() {
14981
14961
  };
14982
14962
  }());
14983
14963
 
14984
- case 29:
14985
- _context3.next = 31;
14964
+ case 21:
14965
+ _context3.next = 23;
14986
14966
  return controller.addGoodDiscountV2(discolines.map(function (e, i) {
14987
14967
  var _discountGood$i;
14988
14968
 
@@ -14992,20 +14972,25 @@ function useSalesDiscount() {
14992
14972
  };
14993
14973
  }));
14994
14974
 
14995
- case 31:
14975
+ case 23:
14996
14976
  case "end":
14997
14977
  return _context3.stop();
14998
14978
  }
14999
14979
  }
15000
14980
  }, _callee3);
15001
- })), [controller, selectedGoodIndex, goodsMap]);
14981
+ })), [controller, selectedGoodIndex, goodsList]);
14982
+ var disabled = React.useMemo(function () {
14983
+ return goodsList.filter(function (e) {
14984
+ return e.lineAttribute === LineAttributeType$1.折让行;
14985
+ }).length <= 0;
14986
+ }, [goodsList]);
15002
14987
  var button = React.useMemo(function () {
15003
14988
  if (!isSalesDiscount) return React.createElement(React.Fragment, null);
15004
14989
  return React.createElement(Button, {
15005
14990
  onClick: onClick,
15006
- disabled: selectedGoodIndex.length <= 1
14991
+ disabled: disabled
15007
14992
  }, "\u9500\u552E\u6298\u8BA9");
15008
- }, [selectedGoodIndex.length, isSalesDiscount]);
14993
+ }, [selectedGoodIndex.length, isSalesDiscount, disabled]);
15009
14994
  return {
15010
14995
  /** 按钮 */
15011
14996
  button: button
package/dist/index.js CHANGED
@@ -14835,63 +14835,41 @@ function useSalesDiscount() {
14835
14835
  var selectedGoodIndex = controller.useMemo(function (s) {
14836
14836
  return s.goodsListState.selectedGoodIndex;
14837
14837
  }, []);
14838
- var goodsMap = controller.useMemo(function (s) {
14839
- return s.goodsListState.goodsMap;
14838
+ var goodsList = controller.useMemo(function (s) {
14839
+ return s.goodsListState.goodsList;
14840
14840
  }, []);
14841
14841
  var isSalesDiscount = controller.useMemo(function (s) {
14842
14842
  return s.goodsListState.isSalesDiscount;
14843
14843
  }, []);
14844
14844
  var onClick = React__default['default'].useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
14845
- var selectedGood, content, concession, _content, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
14846
-
14845
+ var selectedGood, concessions, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
14847
14846
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
14848
14847
  while (1) {
14849
14848
  switch (_context3.prev = _context3.next) {
14850
14849
  case 0:
14851
- selectedGood = selectedGoodIndex.map(function (e) {
14852
- return goodsMap.get(e);
14853
- });
14854
-
14855
- if (!(selectedGood.filter(function (e) {
14856
- return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折扣行 || (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.被折扣行;
14857
- }).length > 0)) {
14858
- _context3.next = 5;
14859
- break;
14860
- }
14861
-
14862
- content = '不能选择折扣行和被折扣行';
14863
- ktsComponentsAntdX3.message.error({
14864
- content: content,
14865
- key: content
14850
+ selectedGood = goodsList.filter(function (e) {
14851
+ return e.lineAttribute === LineAttributeType$1.折让行 || e.lineAttribute === LineAttributeType$1.正常;
14866
14852
  });
14867
- return _context3.abrupt("return");
14868
-
14869
- case 5:
14870
14853
  /** 折让行 */
14871
- concession = selectedGood.filter(function (e) {
14872
- return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
14873
- })[0];
14874
14854
 
14875
- if (concession) {
14876
- _context3.next = 10;
14877
- break;
14878
- }
14879
-
14880
- _content = '未选择折让行';
14881
- ktsComponentsAntdX3.message.error({
14882
- content: _content,
14883
- key: _content
14855
+ concessions = selectedGood.filter(function (e) {
14856
+ return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
14884
14857
  });
14885
- return _context3.abrupt("return");
14886
-
14887
- case 10:
14888
14858
  /** 准备添加折扣的货物列表 */
14859
+
14889
14860
  discountGood = selectedGood.filter(function (e) {
14890
14861
  return (e === null || e === void 0 ? void 0 : e.lineAttribute) !== LineAttributeType$1.折让行;
14891
14862
  });
14892
14863
  /** 折扣总金额 */
14893
14864
 
14894
- totalDiscoline = mathjs.chain(mathjs.bignumber(-1 * (concession.lineAmountIncludeTax || 0)));
14865
+ totalDiscoline = function () {
14866
+ var sum = mathjs.chain(mathjs.bignumber(0));
14867
+ concessions.forEach(function (e) {
14868
+ sum = sum.add(mathjs.bignumber(-1 * (e.lineAmountIncludeTax || 0)));
14869
+ });
14870
+ return sum;
14871
+ }();
14872
+
14895
14873
  discolinesSum = mathjs.chain(mathjs.bignumber(0));
14896
14874
  /** 总金额 */
14897
14875
 
@@ -14921,38 +14899,40 @@ function useSalesDiscount() {
14921
14899
 
14922
14900
  i = 0;
14923
14901
 
14924
- case 17:
14902
+ case 9:
14925
14903
  if (!(i < discolines.length)) {
14926
- _context3.next = 25;
14904
+ _context3.next = 17;
14927
14905
  break;
14928
14906
  }
14929
14907
 
14930
14908
  if (!surplus.smaller(0.01).done()) {
14931
- _context3.next = 20;
14909
+ _context3.next = 12;
14932
14910
  break;
14933
14911
  }
14934
14912
 
14935
- return _context3.abrupt("break", 25);
14913
+ return _context3.abrupt("break", 17);
14936
14914
 
14937
- case 20:
14915
+ case 12:
14938
14916
  discolines[i] = mathjs.chain(mathjs.bignumber(discolines[i])).add(mathjs.bignumber(0.01)).done().toNumber();
14939
14917
  surplus = surplus.subtract(mathjs.bignumber(0.01));
14940
14918
 
14941
- case 22:
14919
+ case 14:
14942
14920
  i++;
14943
- _context3.next = 17;
14921
+ _context3.next = 9;
14944
14922
  break;
14945
14923
 
14946
- case 25:
14947
- _context3.next = 27;
14924
+ case 17:
14925
+ _context3.next = 19;
14948
14926
  return controller.run( /*#__PURE__*/function () {
14949
14927
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(s) {
14950
14928
  return _regeneratorRuntime().wrap(function _callee$(_context) {
14951
14929
  while (1) {
14952
14930
  switch (_context.prev = _context.next) {
14953
14931
  case 0:
14954
- s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
14955
- return e.$index !== concession.$index;
14932
+ concessions.forEach(function (concession) {
14933
+ s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
14934
+ return e.$index !== concession.$index;
14935
+ });
14956
14936
  });
14957
14937
 
14958
14938
  case 1:
@@ -14968,8 +14948,8 @@ function useSalesDiscount() {
14968
14948
  };
14969
14949
  }());
14970
14950
 
14971
- case 27:
14972
- _context3.next = 29;
14951
+ case 19:
14952
+ _context3.next = 21;
14973
14953
  return controller.run( /*#__PURE__*/function () {
14974
14954
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(s) {
14975
14955
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
@@ -14991,8 +14971,8 @@ function useSalesDiscount() {
14991
14971
  };
14992
14972
  }());
14993
14973
 
14994
- case 29:
14995
- _context3.next = 31;
14974
+ case 21:
14975
+ _context3.next = 23;
14996
14976
  return controller.addGoodDiscountV2(discolines.map(function (e, i) {
14997
14977
  var _discountGood$i;
14998
14978
 
@@ -15002,20 +14982,25 @@ function useSalesDiscount() {
15002
14982
  };
15003
14983
  }));
15004
14984
 
15005
- case 31:
14985
+ case 23:
15006
14986
  case "end":
15007
14987
  return _context3.stop();
15008
14988
  }
15009
14989
  }
15010
14990
  }, _callee3);
15011
- })), [controller, selectedGoodIndex, goodsMap]);
14991
+ })), [controller, selectedGoodIndex, goodsList]);
14992
+ var disabled = React__default['default'].useMemo(function () {
14993
+ return goodsList.filter(function (e) {
14994
+ return e.lineAttribute === LineAttributeType$1.折让行;
14995
+ }).length <= 0;
14996
+ }, [goodsList]);
15012
14997
  var button = React__default['default'].useMemo(function () {
15013
14998
  if (!isSalesDiscount) return React__default['default'].createElement(React__default['default'].Fragment, null);
15014
14999
  return React__default['default'].createElement(ktsComponentsAntdX3.Button, {
15015
15000
  onClick: onClick,
15016
- disabled: selectedGoodIndex.length <= 1
15001
+ disabled: disabled
15017
15002
  }, "\u9500\u552E\u6298\u8BA9");
15018
- }, [selectedGoodIndex.length, isSalesDiscount]);
15003
+ }, [selectedGoodIndex.length, isSalesDiscount, disabled]);
15019
15004
  return {
15020
15005
  /** 按钮 */
15021
15006
  button: button
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kts-component-invoice-operate",
3
- "version": "3.2.83",
3
+ "version": "3.2.84",
4
4
  "scripts": {
5
5
  "dev": "dumi dev",
6
6
  "start": "dumi dev",
@@ -65,6 +65,7 @@ class MyController1 extends Invoice.InvoiceController {
65
65
  super()
66
66
  this.state.model = 'default'
67
67
  this.state.goodsListState.isMergeDetails = true;
68
+ this.state.goodsListState.isSalesDiscount = true;
68
69
  this.state.goodsListState.drag.isStart = true;
69
70
  this.state.goodsListState.columnshide = [];
70
71
  }
@@ -92,6 +93,7 @@ class MyController2 extends Invoice.InvoiceController {
92
93
  super()
93
94
  this.state.model = 'prefab'
94
95
  this.state.goodsListState.isMergeDetails = true;
96
+ this.state.goodsListState.isSalesDiscount = true;
95
97
  this.state.goodsListState.drag.isStart = true;
96
98
  this.state.goodsListState.columnshide = [];
97
99
  }
@@ -155,7 +157,8 @@ const lines: any[] = [
155
157
  "favouredPolicyName": null,
156
158
  "zeroTaxRateFlag": null,
157
159
  "referenceLines": null,
158
- "version": 0
160
+ "version": 0,
161
+ taxAmount:1
159
162
  },
160
163
  {
161
164
  "serialNumber": "1714491422279110656",
@@ -179,7 +182,8 @@ const lines: any[] = [
179
182
  "favouredPolicyName": null,
180
183
  "zeroTaxRateFlag": null,
181
184
  "referenceLines": null,
182
- "version": 0
185
+ "version": 0,
186
+ taxAmount:1
183
187
  },
184
188
  {
185
189
  "serialNumber": "1714491422279110656",
@@ -203,7 +207,58 @@ const lines: any[] = [
203
207
  "favouredPolicyName": null,
204
208
  "zeroTaxRateFlag": null,
205
209
  "referenceLines": null,
206
- "version": 0
210
+ "version": 0,
211
+ taxAmount:1
212
+ },
213
+ {
214
+ "serialNumber": "1714491422279110656",
215
+ "lineNumber": 3,
216
+ "taxCode": "3070401000000000000",
217
+ "taxName": "信息技术服务",
218
+ "specification": null,
219
+ "itemName": "技术服务费",
220
+ "itemCode": null,
221
+ "unit": "套",
222
+ "quantity": 1,
223
+ "taxRate": 0.06,
224
+ "priceExcludeTax": 2,
225
+ "priceIncludeTax": 2.12,
226
+ "amountTax": 0.12,
227
+ "lineAmountExcludeTax": 5,
228
+ "lineAmountIncludeTax": 5.3,
229
+ "lineAttribute": LineAttributeType.折让行,
230
+ "discountGroup": null,
231
+ "favouredPolicyMark": false,
232
+ "favouredPolicyName": null,
233
+ "zeroTaxRateFlag": null,
234
+ "referenceLines": null,
235
+ "version": 0,
236
+ taxAmount:1
237
+ },
238
+ {
239
+ "serialNumber": "1714491422279110656",
240
+ "lineNumber": 3,
241
+ "taxCode": "3070401000000000000",
242
+ "taxName": "信息技术服务",
243
+ "specification": null,
244
+ "itemName": "技术服务费",
245
+ "itemCode": null,
246
+ "unit": "套",
247
+ "quantity": 1,
248
+ "taxRate": 0.06,
249
+ "priceExcludeTax": 2,
250
+ "priceIncludeTax": 2.12,
251
+ "amountTax": 0.12,
252
+ "lineAmountExcludeTax": 5,
253
+ "lineAmountIncludeTax": 5.3,
254
+ "lineAttribute": LineAttributeType.折让行,
255
+ "discountGroup": null,
256
+ "favouredPolicyMark": false,
257
+ "favouredPolicyName": null,
258
+ "zeroTaxRateFlag": null,
259
+ "referenceLines": null,
260
+ "version": 0,
261
+ taxAmount:1
207
262
  }
208
263
  ]
209
264
 
@@ -40,7 +40,7 @@ export default () => {
40
40
  await controller.pipeline(async s => {
41
41
  const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
42
42
 
43
- s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e=>!seeGoodsIndex.some(t => e === t));
43
+ s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => !seeGoodsIndex.some(t => e === t));
44
44
  })()
45
45
  } else {
46
46
  await controller.pipeline(async s => {
@@ -84,12 +84,15 @@ export default () => {
84
84
  await controller.pipeline(async s => {
85
85
  s.goodsListState.selectedGoodIndex.forEach($index => {
86
86
  const goods = s.goodsListState.goodsMap.get($index);
87
+
88
+
87
89
  if (!goods || (goods.lineAttribute !== LineAttributeType.折扣行 && goods.lineAttribute !== LineAttributeType.被折扣行)) return;
88
90
 
89
91
  // 数组位置
90
92
  let t = s.goodsListState.goodsList.indexOf(goods);
91
93
  goods.lineAttribute === LineAttributeType.折扣行 ? t-- : t++;
92
94
  const i = s.goodsListState.goodsList[t].$index;
95
+
93
96
  if (selected) {
94
97
  if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, i];
95
98
  } else {
@@ -12,32 +12,25 @@ export default function useSalesDiscount() {
12
12
 
13
13
  const selectedGoodIndex = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
14
14
 
15
- const goodsMap = controller.useMemo(s => s.goodsListState.goodsMap, []);
15
+ const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
16
16
 
17
17
  const isSalesDiscount = controller.useMemo(s => s.goodsListState.isSalesDiscount, []);
18
18
 
19
19
  const onClick = React.useCallback(async () => {
20
- const selectedGood = selectedGoodIndex.map(e => goodsMap.get(e));
21
-
22
- if (selectedGood.filter(e => e?.lineAttribute === LineAttributeType.折扣行 || e?.lineAttribute === LineAttributeType.被折扣行).length > 0) {
23
- const content = '不能选择折扣行和被折扣行';
24
- message.error({ content, key: content });
25
- return;
26
- }
20
+ const selectedGood = goodsList.filter(e => e.lineAttribute === LineAttributeType.折让行 || e.lineAttribute === LineAttributeType.正常);
27
21
 
28
22
  /** 折让行 */
29
- const concession = selectedGood.filter(e => e?.lineAttribute === LineAttributeType.折让行)[0];
30
- if (!concession) {
31
- const content = '未选择折让行';
32
- message.error({ content, key: content })
33
- return;
34
- }
23
+ const concessions = selectedGood.filter(e => e?.lineAttribute === LineAttributeType.折让行);
35
24
 
36
25
  /** 准备添加折扣的货物列表 */
37
26
  const discountGood = selectedGood.filter(e => e?.lineAttribute !== LineAttributeType.折让行);
38
27
 
39
28
  /** 折扣总金额 */
40
- const totalDiscoline = chain(bignumber(-1 * (concession.lineAmountIncludeTax || 0)));
29
+ const totalDiscoline = (() => {
30
+ let sum = chain(bignumber(0));
31
+ concessions.forEach(e => { sum = sum.add(bignumber(-1 * (e.lineAmountIncludeTax || 0))) })
32
+ return sum;
33
+ })()
41
34
 
42
35
  let discolinesSum = chain(bignumber(0));
43
36
 
@@ -79,7 +72,11 @@ export default function useSalesDiscount() {
79
72
  }
80
73
 
81
74
  // 清楚折让行
82
- await controller.run(async s => { s.goodsListState.goodsList = s.goodsListState.goodsList.filter(e => e.$index !== concession.$index) })
75
+ await controller.run(async s => {
76
+ concessions.forEach(concession => {
77
+ s.goodsListState.goodsList = s.goodsListState.goodsList.filter(e => e.$index !== concession.$index)
78
+ })
79
+ })
83
80
  await controller.run(async s => { s.goodsListState.selectedGoodIndex = [] });
84
81
 
85
82
  // 给一组货物添加折扣行
@@ -89,19 +86,21 @@ export default function useSalesDiscount() {
89
86
  discolineAmountunt: e as number,
90
87
  }
91
88
  }))
92
- }, [controller, selectedGoodIndex, goodsMap])
89
+ }, [controller, selectedGoodIndex, goodsList])
90
+
91
+ const disabled = React.useMemo(() => goodsList.filter(e => e.lineAttribute === LineAttributeType.折让行).length <= 0, [goodsList])
93
92
 
94
93
  const button = React.useMemo(() => {
95
94
  if (!isSalesDiscount) return <></>;
96
95
  return (
97
96
  <Button
98
97
  onClick={onClick}
99
- disabled={selectedGoodIndex.length <= 1}
98
+ disabled={disabled}
100
99
  >
101
100
  销售折让
102
101
  </Button>
103
102
  )
104
- }, [selectedGoodIndex.length, isSalesDiscount])
103
+ }, [selectedGoodIndex.length, isSalesDiscount, disabled])
105
104
 
106
105
  return {
107
106
  /** 按钮 */