gm-printer 10.23.0 → 10.25.0-beta.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-printer",
3
- "version": "10.23.0",
3
+ "version": "10.25.0-beta.0",
4
4
  "description": "diy printer",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -455,6 +455,12 @@ class EditorField extends React.Component {
455
455
  <Flex>{i18next.t('合计栏打印金额')}:</Flex>
456
456
  <Flex style={{ marginLeft: 57 }}>
457
457
  {subtotalRadioList.map(fields => {
458
+ // 兼容
459
+ let subtotalFields = subtotal?.fields?.[0].valueField
460
+ if (subtotalFields === 'total_item_price')
461
+ subtotalFields = '下单金额'
462
+ if (subtotalFields === 'real_item_price')
463
+ subtotalFields = '出库金额'
458
464
  return (
459
465
  <Radio
460
466
  style={{ marginLeft: 5 }}
@@ -462,7 +468,7 @@ class EditorField extends React.Component {
462
468
  value={fields.value}
463
469
  key={fields.id}
464
470
  inputName='subtotalRadio'
465
- checked={subtotal?.fields?.[0].valueField === fields.id}
471
+ checked={subtotalFields === fields.id}
466
472
  radioChecked={() => editStore.subtotalRadioCheck(fields)}
467
473
  />
468
474
  )
@@ -533,6 +539,21 @@ class EditorField extends React.Component {
533
539
  onChange={this.handleOverallOrderStyleChange}
534
540
  />
535
541
  </Flex>
542
+ <Flex style={{ marginLeft: 57 }}>
543
+ {subtotalRadioList.map((fields, i) => {
544
+ return (
545
+ <Radio
546
+ style={{ marginLeft: 5 }}
547
+ id={`${fields.id}${i}`}
548
+ value={fields.value}
549
+ key={fields.id}
550
+ inputName='overallOrderRadio'
551
+ checked={overallOrder?.fields?.[0]?.valueField === fields.id}
552
+ radioChecked={() => editStore.setOverallOrderValueField(fields)}
553
+ />
554
+ )
555
+ })}
556
+ </Flex>
536
557
  <EditorSubtotalCheck
537
558
  subtotalCheckDisabled
538
559
  subtotalChecked={overallOrderNeedUpperCase}
@@ -1193,7 +1193,7 @@ class EditorStore {
1193
1193
  fields: [
1194
1194
  {
1195
1195
  name: '每页合计:',
1196
- valueField: 'real_item_price',
1196
+ valueField: '出库金额',
1197
1197
  colSpan: colSpanLength
1198
1198
  }
1199
1199
  ]
@@ -1342,6 +1342,19 @@ class EditorStore {
1342
1342
  }
1343
1343
  }
1344
1344
 
1345
+ // 整单合计金额单选设置
1346
+ @action.bound
1347
+ setOverallOrderValueField({ id }) {
1348
+ if (this.selectedRegion) {
1349
+ this.overallOrderShow = !this.overallOrderShow
1350
+ const arr = this.selectedRegion.split('.')
1351
+ const overallOrderConfig = this.config.contents[arr[2]]?.overallOrder
1352
+ const oldValueField = overallOrderConfig.fields?.[0]
1353
+ this.config.contents[arr[2]]?.overallOrder &&
1354
+ set(oldValueField, { valueField: id })
1355
+ }
1356
+ }
1357
+
1345
1358
  // 整单合计设置大写金额
1346
1359
  @action.bound
1347
1360
  setOverallOrderUpperCase() {
@@ -3,22 +3,27 @@ import i18next from '../../locales'
3
3
  /**
4
4
  * 每页合计设置单选按钮
5
5
  * id的值是用来计算每页的金额总数,不要轻易随便改
6
- * id值暂时使用_origin的值,可优化改为{{列.xxxx}}的值,改起来有代价,先不改
7
6
  */
7
+ // 整单合计和每页合计栏都使用的这个
8
8
  const subtotalRadioList = [
9
9
  {
10
10
  value: i18next.t('下单金额'),
11
- id: 'total_item_price'
11
+ id: '下单金额'
12
12
  },
13
13
  {
14
14
  value: i18next.t('出库金额'),
15
- id: 'real_item_price'
15
+ id: '出库金额'
16
+ },
17
+ {
18
+ value: i18next.t('实际金额'),
19
+ id: '实际金额'
16
20
  }
17
21
  ]
18
22
 
19
23
  const accountRadioList = {
20
- total_item_price: i18next.t('下单金额'),
21
- real_item_price: i18next.t('出库金额')
24
+ 下单金额: i18next.t('下单金额'),
25
+ 出库金额: i18next.t('出库金额'),
26
+ 实际金额: i18next.t('实际金额')
22
27
  }
23
28
 
24
29
  export { subtotalRadioList, accountRadioList }
@@ -30,10 +30,11 @@ const SubtotalTr = props => {
30
30
  isUpperCaseBefore, // 决定小写金额是否在前
31
31
  isUpperLowerCaseSeparate, // 决定大小写金额是否分开在两端
32
32
  style,
33
+
33
34
  fields = [
34
35
  {
35
36
  name: i18next.t('每页合计:'),
36
- valueField: 'real_item_price'
37
+ valueField: '出库金额'
37
38
  }
38
39
  ],
39
40
  displayName = false // 是否展示字段名
@@ -68,6 +69,30 @@ const SubtotalTr = props => {
68
69
  ).toFixed(2)
69
70
  }
70
71
 
72
+ // 计算合计
73
+ const sumData2 = (list, field) => {
74
+ // 兼容之前
75
+ if (field === 'total_item_price') field = '下单金额'
76
+ if (field === 'real_item_price') field = '出库金额'
77
+ if (field === 'settle_money2') field = '结算金额'
78
+ if (field === 'total_money2') field = '金额'
79
+ return _.reduce(
80
+ list,
81
+ (a, b) => {
82
+ let result = a
83
+ result = a.plus(b[field] || 0)
84
+ if (b?.[field + MULTI_SUFFIX]) {
85
+ result = result.plus(b?.[field + MULTI_SUFFIX])
86
+ }
87
+ if (b?.[field + MULTI_SUFFIX3]) {
88
+ result = result.plus(b?.[field + MULTI_SUFFIX3])
89
+ }
90
+ return result
91
+ },
92
+ Big(0)
93
+ ).toFixed(2)
94
+ }
95
+
71
96
  const getData = field => {
72
97
  const data = printerStore.data.common
73
98
  return data?.[field] ?? ''
@@ -82,7 +107,7 @@ const SubtotalTr = props => {
82
107
  const sum = {}
83
108
 
84
109
  _.each(fields, v => {
85
- sum[v.name] = sumData(list, v.valueField)
110
+ sum[v.name] = sumData2(list, v.valueField)
86
111
  })
87
112
  let subtotalStr = ''
88
113
  for (const name in sum) {
@@ -140,7 +165,7 @@ const SubtotalTr = props => {
140
165
  {item.type === 'useSummarize'
141
166
  ? getData(item.valueField)
142
167
  : index === 0
143
- ? sumData(list, item.valueField)
168
+ ? sumData2(list, item.valueField)
144
169
  : ''}
145
170
  {/* {index === 0 ? sumData(list, item.valueField) : ''} */}
146
171
  </span>
@@ -151,7 +176,9 @@ const SubtotalTr = props => {
151
176
  coverDigit2Uppercase(getData(item.valueField))
152
177
  : index === 0
153
178
  ? '大写:' +
154
- coverDigit2Uppercase(sumData(list, item.valueField))
179
+ coverDigit2Uppercase(
180
+ sumData2(list, item.valueField)
181
+ )
155
182
  : ''}
156
183
  </span>
157
184
  )}