sh-tools 2.3.3 → 2.3.5

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": "sh-tools",
3
- "version": "2.3.3",
3
+ "version": "2.3.5",
4
4
  "description": "基于fetch和xe-utils二次封装,支持宏公式计算",
5
5
  "main": "packages/index.js",
6
6
  "scripts": {
@@ -12,7 +12,7 @@
12
12
  "author": "神秘的sh",
13
13
  "license": "ISC",
14
14
  "dependencies": {
15
- "hot-formula-parser": "^4.0.0",
15
+ "expr-eval": "^2.0.2",
16
16
  "xe-utils": "^3.8.2"
17
17
  },
18
18
  "devDependencies": {
@@ -0,0 +1,5 @@
1
+ import { Parser } from 'expr-eval'
2
+
3
+ const parser = new Parser()
4
+
5
+ export default parser
package/packages/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import http from './api/index'
1
+ import http from './api'
2
+ import utils from './utils'
3
+ import expr from './expr'
2
4
 
3
- import utils from './utils/index'
4
-
5
- export { http, utils }
5
+ export { http, utils, expr }
@@ -1,7 +1,6 @@
1
1
  import XEUtils from 'xe-utils'
2
2
  import stringUtil from './string'
3
- import { Parser } from 'hot-formula-parser'
4
- const formulaParser = new Parser()
3
+ import expParser from '../expr'
5
4
 
6
5
  export default {
7
6
  truncate(num, digits) {
@@ -18,7 +17,7 @@ export default {
18
17
  if (data && XEUtils.isPlainObject(data)) {
19
18
  formula = stringUtil.format(formula, data, true)
20
19
  }
21
- let { result } = formulaParser.parse(formula)
22
- return result
20
+ const expr = expParser.parse(formula)
21
+ return expr.evaluate(data)
23
22
  }
24
23
  }
@@ -8,7 +8,6 @@ const defaultDateFormat = {
8
8
  year: 'yyyy'
9
9
  }
10
10
  const endStrs = ['Id', '_id']
11
- const numberTypes = ['integer', 'number', 'float']
12
11
  const dateReplaceMap = { YYYY: 'yyyy', DD: 'dd', hh: 'HH' }
13
12
 
14
13
  export default {
@@ -159,8 +158,7 @@ export default {
159
158
  // editable: 是否对返回值进行修正 默认 否
160
159
  let rvalue, rtext, rname
161
160
  let { $vUtils } = renderContext
162
- let { min, max, digits, type, multiple, split, options, format, range, nodeKey, labelField, moneyUnit, openValue, openLabel, closeValue, closeLabel, defaultValue, separator } =
163
- renderProps || {}
161
+ let { min, max, digits, type, multiple, split, options, format, range, nodeKey, labelField, openValue, openLabel, closeValue, closeLabel, defaultValue, separator } = renderProps || {}
164
162
  let field = key
165
163
  if (renderName === '$vRowCell') {
166
164
  field = rowData[key + 'field'] || key
@@ -181,9 +179,11 @@ export default {
181
179
  // 自定渲染器进行解析与重新赋值
182
180
  switch (rname) {
183
181
  case '$vInput':
182
+ rtext = format ? $vUtils.format(format, rowData) : rvalue
183
+ break
184
+ case '$vNumber':
184
185
  case '$vMoney':
185
- let isNumberType = rname === '$vMoney' || numberTypes.includes(type)
186
- if (editable && isNumberType && !$vUtils.isNone(value)) {
186
+ if (editable && !$vUtils.isNone(value)) {
187
187
  if ($vUtils.isNumber(+max) && +value > +max) {
188
188
  value = +max
189
189
  } else if ($vUtils.isNumber(+min) && +value < +min) {
@@ -192,16 +192,10 @@ export default {
192
192
  }
193
193
  if (!$vUtils.isNone(value) && type === 'integer') {
194
194
  rvalue = $vUtils.toInteger(value)
195
- } else if (!$vUtils.isNone(value) && numberTypes.includes(type)) {
195
+ } else if (!$vUtils.isNone(value)) {
196
196
  rvalue = $vUtils.truncate(value, digits)
197
197
  }
198
- if (rname === '$vMoney' && !$vUtils.isNone(rvalue)) {
199
- rtext = $vUtils.truncate($vUtils.divide(rvalue, moneyUnit), digits)
200
- } else if (rname === '$vInput' && format) {
201
- rtext = $vUtils.format(format, rowData)
202
- } else {
203
- rtext = rvalue
204
- }
198
+ rtext = rvalue
205
199
  break
206
200
  case '$vTime':
207
201
  format = format ? format.replace(dateReplaceMap, match => dateReplaceMap[match]) : defaultDateFormat[type]