doway-coms 2.10.19 → 2.10.21

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 (87) hide show
  1. package/.browserslistrc +2 -2
  2. package/README.md +28 -28
  3. package/dist/css/chunk-vendors.7f83d8f9.css +8 -0
  4. package/dist/css/index.7946d50b.css +1 -0
  5. package/dist/favicon.ico +0 -0
  6. package/dist/js/chunk-vendors.28fda91d.js +340 -0
  7. package/dist/js/index.49bc6add.js +2 -0
  8. package/lib/doway-coms.common.js +120397 -0
  9. package/lib/doway-coms.css +1 -0
  10. package/lib/doway-coms.umd.js +120407 -0
  11. package/lib/doway-coms.umd.min.js +328 -0
  12. package/package.json +54 -54
  13. package/packages/AuditsList/index.js +7 -7
  14. package/packages/AuditsList/src/index.vue +315 -315
  15. package/packages/BaseButton/index.js +7 -7
  16. package/packages/BaseButton/src/index.vue +242 -242
  17. package/packages/BaseCheckbox/index.js +7 -7
  18. package/packages/BaseCheckbox/src/index.vue +134 -134
  19. package/packages/BaseDate/index.js +7 -7
  20. package/packages/BaseDate/src/index.vue +197 -197
  21. package/packages/BaseDateMonth/index.js +7 -7
  22. package/packages/BaseDateMonth/src/index.vue +163 -163
  23. package/packages/BaseDateWeek/index.js +7 -7
  24. package/packages/BaseDateWeek/src/index.vue +163 -163
  25. package/packages/BaseDatetime/index.js +7 -7
  26. package/packages/BaseDatetime/src/index.vue +196 -196
  27. package/packages/BaseFileGroup/index.js +7 -7
  28. package/packages/BaseFileGroup/src/index.vue +724 -724
  29. package/packages/BaseForm/index.js +7 -7
  30. package/packages/BaseForm/src/index.vue +754 -754
  31. package/packages/BaseGantt/index.js +9 -9
  32. package/packages/BaseGantt/src/index.vue +617 -617
  33. package/packages/BaseGrid/index.js +9 -9
  34. package/packages/BaseGrid/src/SeqSetting.vue +278 -278
  35. package/packages/BaseGrid/src/index.vue +3866 -3866
  36. package/packages/BaseGridAdjust/index.js +9 -9
  37. package/packages/BaseGridAdjust/src/index.vue +482 -482
  38. package/packages/BaseInput/index.js +7 -7
  39. package/packages/BaseInput/src/index.vue +164 -164
  40. package/packages/BaseIntervalInput/index.js +7 -7
  41. package/packages/BaseIntervalInput/src/index.vue +310 -310
  42. package/packages/BaseKanbanEmpty/index.js +7 -7
  43. package/packages/BaseKanbanEmpty/src/index.vue +176 -176
  44. package/packages/BaseNumberInput/index.js +7 -7
  45. package/packages/BaseNumberInput/src/index.vue +290 -290
  46. package/packages/BasePagination/index.js +7 -7
  47. package/packages/BasePagination/src/index.vue +91 -91
  48. package/packages/BasePictureCard/index.js +7 -7
  49. package/packages/BasePictureCard/src/index.vue +580 -580
  50. package/packages/BasePrintPreview/index.js +7 -7
  51. package/packages/BasePrintPreview/src/index.vue +150 -150
  52. package/packages/BasePulldown/index.js +7 -7
  53. package/packages/BasePulldown/src/index.vue +1359 -1359
  54. package/packages/BaseSearch/index.js +7 -7
  55. package/packages/BaseSearch/src/index.vue +935 -935
  56. package/packages/BaseSelect/index.js +7 -7
  57. package/packages/BaseSelect/src/index.vue +155 -155
  58. package/packages/BaseSelectMulti/index.js +7 -7
  59. package/packages/BaseSelectMulti/src/index.vue +148 -148
  60. package/packages/BaseTextArea/index.js +7 -7
  61. package/packages/BaseTextArea/src/index.vue +178 -178
  62. package/packages/BaseTime/index.js +7 -7
  63. package/packages/BaseTime/src/index.vue +166 -166
  64. package/packages/BaseTool/index.js +7 -7
  65. package/packages/BaseTool/src/index.vue +353 -353
  66. package/packages/BaseToolStatus/index.js +7 -7
  67. package/packages/BaseToolStatus/src/ApprovalPersonsGroup.vue +41 -41
  68. package/packages/BaseToolStatus/src/index.vue +439 -439
  69. package/packages/BaseTreeSelect/index.js +8 -8
  70. package/packages/BaseTreeSelect/src/index.vue +437 -437
  71. package/packages/LeaveAMessage/index.js +7 -7
  72. package/packages/LeaveAMessage/src/index.vue +601 -601
  73. package/packages/index.js +194 -194
  74. package/packages/styles/default.css +78 -78
  75. package/packages/styles/default.less +91 -91
  76. package/packages/utils/api.js +106 -106
  77. package/packages/utils/auth.js +38 -38
  78. package/packages/utils/common.js +636 -636
  79. package/packages/utils/dom.js +181 -181
  80. package/packages/utils/enum.js +86 -86
  81. package/packages/utils/filters.js +485 -485
  82. package/packages/utils/gridFormat.js +66 -66
  83. package/packages/utils/msg.js +84 -84
  84. package/packages/utils/patchFiles.js +44 -44
  85. package/packages/utils/request.js +181 -181
  86. package/packages/utils/store.js +332 -325
  87. package/vue.config.js +59 -59
@@ -1,181 +1,181 @@
1
- import XEUtils from 'xe-utils'
2
-
3
- export const browse = XEUtils.browse()
4
- const reClsMap = {}
5
-
6
- function getClsRE (cls) {
7
- if (!reClsMap[cls]) {
8
- reClsMap[cls] = new RegExp(`(?:^|\\s)${cls}(?!\\S)`, 'g')
9
- }
10
- return reClsMap[cls]
11
- }
12
-
13
- function getNodeOffset (elem, container, rest) {
14
- if (elem) {
15
- const parentElem = elem.parentNode
16
- rest.top += elem.offsetTop
17
- rest.left += elem.offsetLeft
18
- if (parentElem && parentElem !== document.documentElement && parentElem !== document.body) {
19
- rest.top -= parentElem.scrollTop
20
- rest.left -= parentElem.scrollLeft
21
- }
22
- if (container && (elem === container || elem.offsetParent === container) ? 0 : elem.offsetParent) {
23
- return getNodeOffset(elem.offsetParent, container, rest)
24
- }
25
- }
26
- return rest
27
- }
28
-
29
- function isScale (val) {
30
- return val && /^\d+%$/.test(val)
31
- }
32
-
33
- function hasClass (elem, cls) {
34
- return elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls))
35
- }
36
-
37
- function removeClass (elem, cls) {
38
- if (elem && hasClass(elem, cls)) {
39
- elem.className = elem.className.replace(getClsRE(cls), '')
40
- }
41
- }
42
-
43
- function getDomNode () {
44
- const documentElement = document.documentElement
45
- const bodyElem = document.body
46
- return {
47
- scrollTop: documentElement.scrollTop || bodyElem.scrollTop,
48
- scrollLeft: documentElement.scrollLeft || bodyElem.scrollLeft,
49
- visibleHeight: documentElement.clientHeight + 80 || bodyElem.clientHeight + 80,
50
- visibleWidth: documentElement.clientWidth + 80 || bodyElem.clientWidth + 80
51
- }
52
- }
53
-
54
- export function getOffsetHeight (elem) {
55
- return elem ? elem.offsetHeight : 0
56
- }
57
-
58
- export function getPaddingTopBottomSize (elem) {
59
- if (elem) {
60
- const computedStyle = getComputedStyle(elem)
61
- const paddingTop = XEUtils.toNumber(computedStyle.paddingTop)
62
- const paddingBottom = XEUtils.toNumber(computedStyle.paddingBottom)
63
- return paddingTop + paddingBottom
64
- }
65
- return 0
66
- }
67
-
68
- export function setScrollTop (elem, scrollTop) {
69
- if (elem) {
70
- elem.scrollTop = scrollTop
71
- }
72
- }
73
-
74
- export function setScrollLeft (elem, scrollLeft) {
75
- if (elem) {
76
- elem.scrollLeft = scrollLeft
77
- }
78
- }
79
-
80
- // export function setScrollLeftAndTop (elem, scrollLeft, scrollTop) {
81
- // if (elem) {
82
- // elem.scrollLeft = scrollLeft
83
- // elem.scrollTop = scrollTop
84
- // }
85
- // }
86
-
87
- function isNodeElement (elem) {
88
- return elem && elem.nodeType === 1
89
- }
90
-
91
- export const DomTools = {
92
- browse,
93
- isPx (val) {
94
- return val && /^\d+(px)?$/.test(val)
95
- },
96
- isScale,
97
- hasClass,
98
- removeClass,
99
- addClass (elem, cls) {
100
- if (elem && !hasClass(elem, cls)) {
101
- removeClass(elem, cls)
102
- elem.className = `${elem.className} ${cls}`
103
- }
104
- },
105
- updateCellTitle (overflowElem, column) {
106
- const content = column.type === 'html' ? overflowElem.innerText : overflowElem.textContent
107
- if (overflowElem.getAttribute('title') !== content) {
108
- overflowElem.setAttribute('title', content)
109
- }
110
- },
111
- getDomNode,
112
- /**
113
- * 检查触发源是否属于目标节点
114
- */
115
- getEventTargetNode (evnt, container, queryCls, queryMethod) {
116
- let targetElem
117
- let target =
118
- evnt.target.shadowRoot && evnt.composed
119
- ? evnt.composedPath()[0] || evnt.target
120
- : evnt.target
121
- while (target && target.nodeType && target !== document) {
122
- if (queryCls && hasClass(target, queryCls) && (!queryMethod || queryMethod(target))) {
123
- targetElem = target
124
- } else if (target === container) {
125
- return { flag: queryCls ? !!targetElem : true, container, targetElem: targetElem }
126
- }
127
- target = target.parentNode
128
- }
129
- return { flag: false }
130
- },
131
- /**
132
- * 获取元素相对于 document 的位置
133
- */
134
- getOffsetPos (elem, container) {
135
- return getNodeOffset(elem, container, { left: 0, top: 0 })
136
- },
137
- getAbsolutePos (elem) {
138
- const bounding = elem.getBoundingClientRect()
139
- const boundingTop = bounding.top
140
- const boundingLeft = bounding.left
141
- const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode()
142
- return { boundingTop, top: scrollTop + boundingTop, boundingLeft, left: scrollLeft + boundingLeft, visibleHeight, visibleWidth }
143
- },
144
- scrollToView (elem) {
145
- const scrollIntoViewIfNeeded = 'scrollIntoViewIfNeeded'
146
- const scrollIntoView = 'scrollIntoView'
147
- if (elem) {
148
- if (elem[scrollIntoViewIfNeeded]) {
149
- elem[scrollIntoViewIfNeeded]()
150
- } else if (elem[scrollIntoView]) {
151
- elem[scrollIntoView]()
152
- }
153
- }
154
- },
155
- triggerEvent (targetElem, type) {
156
- if (targetElem) {
157
- targetElem.dispatchEvent(new Event(type))
158
- }
159
- },
160
- calcHeight ($xetable, key) {
161
- const val = $xetable[key]
162
- let num = 0
163
- if (val) {
164
- if (val === 'auto') {
165
- num = $xetable.parentHeight
166
- } else {
167
- const excludeHeight = $xetable.getExcludeHeight()
168
- if (isScale(val)) {
169
- num = Math.floor((XEUtils.toInteger(val) || 1) / 100 * $xetable.parentHeight)
170
- } else {
171
- num = XEUtils.toNumber(val)
172
- }
173
- num = Math.max(40, num - excludeHeight)
174
- }
175
- }
176
- return num
177
- },
178
- isNodeElement
179
- }
180
-
181
- export default DomTools
1
+ import XEUtils from 'xe-utils'
2
+
3
+ export const browse = XEUtils.browse()
4
+ const reClsMap = {}
5
+
6
+ function getClsRE (cls) {
7
+ if (!reClsMap[cls]) {
8
+ reClsMap[cls] = new RegExp(`(?:^|\\s)${cls}(?!\\S)`, 'g')
9
+ }
10
+ return reClsMap[cls]
11
+ }
12
+
13
+ function getNodeOffset (elem, container, rest) {
14
+ if (elem) {
15
+ const parentElem = elem.parentNode
16
+ rest.top += elem.offsetTop
17
+ rest.left += elem.offsetLeft
18
+ if (parentElem && parentElem !== document.documentElement && parentElem !== document.body) {
19
+ rest.top -= parentElem.scrollTop
20
+ rest.left -= parentElem.scrollLeft
21
+ }
22
+ if (container && (elem === container || elem.offsetParent === container) ? 0 : elem.offsetParent) {
23
+ return getNodeOffset(elem.offsetParent, container, rest)
24
+ }
25
+ }
26
+ return rest
27
+ }
28
+
29
+ function isScale (val) {
30
+ return val && /^\d+%$/.test(val)
31
+ }
32
+
33
+ function hasClass (elem, cls) {
34
+ return elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls))
35
+ }
36
+
37
+ function removeClass (elem, cls) {
38
+ if (elem && hasClass(elem, cls)) {
39
+ elem.className = elem.className.replace(getClsRE(cls), '')
40
+ }
41
+ }
42
+
43
+ function getDomNode () {
44
+ const documentElement = document.documentElement
45
+ const bodyElem = document.body
46
+ return {
47
+ scrollTop: documentElement.scrollTop || bodyElem.scrollTop,
48
+ scrollLeft: documentElement.scrollLeft || bodyElem.scrollLeft,
49
+ visibleHeight: documentElement.clientHeight + 80 || bodyElem.clientHeight + 80,
50
+ visibleWidth: documentElement.clientWidth + 80 || bodyElem.clientWidth + 80
51
+ }
52
+ }
53
+
54
+ export function getOffsetHeight (elem) {
55
+ return elem ? elem.offsetHeight : 0
56
+ }
57
+
58
+ export function getPaddingTopBottomSize (elem) {
59
+ if (elem) {
60
+ const computedStyle = getComputedStyle(elem)
61
+ const paddingTop = XEUtils.toNumber(computedStyle.paddingTop)
62
+ const paddingBottom = XEUtils.toNumber(computedStyle.paddingBottom)
63
+ return paddingTop + paddingBottom
64
+ }
65
+ return 0
66
+ }
67
+
68
+ export function setScrollTop (elem, scrollTop) {
69
+ if (elem) {
70
+ elem.scrollTop = scrollTop
71
+ }
72
+ }
73
+
74
+ export function setScrollLeft (elem, scrollLeft) {
75
+ if (elem) {
76
+ elem.scrollLeft = scrollLeft
77
+ }
78
+ }
79
+
80
+ // export function setScrollLeftAndTop (elem, scrollLeft, scrollTop) {
81
+ // if (elem) {
82
+ // elem.scrollLeft = scrollLeft
83
+ // elem.scrollTop = scrollTop
84
+ // }
85
+ // }
86
+
87
+ function isNodeElement (elem) {
88
+ return elem && elem.nodeType === 1
89
+ }
90
+
91
+ export const DomTools = {
92
+ browse,
93
+ isPx (val) {
94
+ return val && /^\d+(px)?$/.test(val)
95
+ },
96
+ isScale,
97
+ hasClass,
98
+ removeClass,
99
+ addClass (elem, cls) {
100
+ if (elem && !hasClass(elem, cls)) {
101
+ removeClass(elem, cls)
102
+ elem.className = `${elem.className} ${cls}`
103
+ }
104
+ },
105
+ updateCellTitle (overflowElem, column) {
106
+ const content = column.type === 'html' ? overflowElem.innerText : overflowElem.textContent
107
+ if (overflowElem.getAttribute('title') !== content) {
108
+ overflowElem.setAttribute('title', content)
109
+ }
110
+ },
111
+ getDomNode,
112
+ /**
113
+ * 检查触发源是否属于目标节点
114
+ */
115
+ getEventTargetNode (evnt, container, queryCls, queryMethod) {
116
+ let targetElem
117
+ let target =
118
+ evnt.target.shadowRoot && evnt.composed
119
+ ? evnt.composedPath()[0] || evnt.target
120
+ : evnt.target
121
+ while (target && target.nodeType && target !== document) {
122
+ if (queryCls && hasClass(target, queryCls) && (!queryMethod || queryMethod(target))) {
123
+ targetElem = target
124
+ } else if (target === container) {
125
+ return { flag: queryCls ? !!targetElem : true, container, targetElem: targetElem }
126
+ }
127
+ target = target.parentNode
128
+ }
129
+ return { flag: false }
130
+ },
131
+ /**
132
+ * 获取元素相对于 document 的位置
133
+ */
134
+ getOffsetPos (elem, container) {
135
+ return getNodeOffset(elem, container, { left: 0, top: 0 })
136
+ },
137
+ getAbsolutePos (elem) {
138
+ const bounding = elem.getBoundingClientRect()
139
+ const boundingTop = bounding.top
140
+ const boundingLeft = bounding.left
141
+ const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode()
142
+ return { boundingTop, top: scrollTop + boundingTop, boundingLeft, left: scrollLeft + boundingLeft, visibleHeight, visibleWidth }
143
+ },
144
+ scrollToView (elem) {
145
+ const scrollIntoViewIfNeeded = 'scrollIntoViewIfNeeded'
146
+ const scrollIntoView = 'scrollIntoView'
147
+ if (elem) {
148
+ if (elem[scrollIntoViewIfNeeded]) {
149
+ elem[scrollIntoViewIfNeeded]()
150
+ } else if (elem[scrollIntoView]) {
151
+ elem[scrollIntoView]()
152
+ }
153
+ }
154
+ },
155
+ triggerEvent (targetElem, type) {
156
+ if (targetElem) {
157
+ targetElem.dispatchEvent(new Event(type))
158
+ }
159
+ },
160
+ calcHeight ($xetable, key) {
161
+ const val = $xetable[key]
162
+ let num = 0
163
+ if (val) {
164
+ if (val === 'auto') {
165
+ num = $xetable.parentHeight
166
+ } else {
167
+ const excludeHeight = $xetable.getExcludeHeight()
168
+ if (isScale(val)) {
169
+ num = Math.floor((XEUtils.toInteger(val) || 1) / 100 * $xetable.parentHeight)
170
+ } else {
171
+ num = XEUtils.toNumber(val)
172
+ }
173
+ num = Math.max(40, num - excludeHeight)
174
+ }
175
+ }
176
+ return num
177
+ },
178
+ isNodeElement
179
+ }
180
+
181
+ export default DomTools
@@ -1,87 +1,87 @@
1
- export const sysRowState = {
2
- view: 0,
3
- add: 1,
4
- update: 2,
5
- delete: 3
6
- }
7
- export const sysFormState = {
8
- add: 'add',
9
- edit: 'edit',
10
- view: 'view',
11
- done: 10000
12
- }
13
- export const calendarViewType = {
14
- day: 'day',
15
- week: 'week',
16
- month: 'month'
17
- }
18
- export const industryVersion = {
19
- paper:'paper'//纸箱行业
20
- }
21
- export const controlType = {
22
- text: 'text',
23
- number: 'number', // 数字输入
24
- textarea: 'textarea',
25
- numberrange: 'numberrange',
26
- drop: 'drop',
27
- popup: 'popup',
28
- date: 'date',
29
- datetime: 'datetime',
30
- timeFrame: 'timeFrame',
31
- time: 'time',
32
- longtime: 'longtime',
33
- checkbox: 'checkbox',
34
- dropmulti: 'dropmulti',
35
- tabledelete: 'tabledelete',
36
- tableadd: 'tableadd',
37
- searchfilter: 'searchfilter',
38
- max: 'max',
39
- min: 'min',
40
- sum: 'sum',
41
- svg: 'svg',
42
- dropdict: 'dropdict',
43
- dropobjectstatus: 'dropobjectstatus',
44
- dropmultidict: 'dropmultidict',
45
- dropmultiobjectstatus: 'dropmultiobjectstatus',
46
- daterange: 'daterange',
47
- image: 'image',
48
- pulldown: 'pulldown',
49
- operation: 'operation',
50
- custombutton: 'custombutton',
51
- pager_button: 'pager_button',
52
- select: 'select',
53
- customCell: 'customCell',
54
- remotedropmulti: 'remotedropmulti',
55
- interval: 'interval',
56
- customRadio: 'customRadio',
57
- operationDefault: 'operationDefault',
58
- dateweek: 'dateweek',
59
- datemonth: 'datemonth',
60
- x_axis: 'x_axis',
61
- y_axis: 'y_axis',
62
- series: 'series',
63
- treeSelect: 'treeSelect',
64
- multiSelect: 'multiSelect'
65
- }
66
- export const dataType = {
67
- frame: 'frame',
68
- grid: 'grid',
69
- gridselect: 'gridselect',
70
- piccard: 'piccard'
71
- }
72
- export const sysActionType = {
73
- matSale: '200',
74
- flutTypMat: '201',
75
- artMat: '300',
76
- docNumInventoryTrans: '310' // 订单号跳转库存事务查询
77
- }
78
-
79
- export const moduleCodeEnum = {
80
- custMatViewInfo: 'custMatViewInfo' //客户物料详情
81
- }
82
- export const dictCodeEnum = {
83
- UOM: 'UOM', //单位
84
- MaterialType: 'MaterialType', //物料类型
85
- TaxRate: 'TaxRate' //税率
86
- }
1
+ export const sysRowState = {
2
+ view: 0,
3
+ add: 1,
4
+ update: 2,
5
+ delete: 3
6
+ }
7
+ export const sysFormState = {
8
+ add: 'add',
9
+ edit: 'edit',
10
+ view: 'view',
11
+ done: 10000
12
+ }
13
+ export const calendarViewType = {
14
+ day: 'day',
15
+ week: 'week',
16
+ month: 'month'
17
+ }
18
+ export const industryVersion = {
19
+ paper:'paper'//纸箱行业
20
+ }
21
+ export const controlType = {
22
+ text: 'text',
23
+ number: 'number', // 数字输入
24
+ textarea: 'textarea',
25
+ numberrange: 'numberrange',
26
+ drop: 'drop',
27
+ popup: 'popup',
28
+ date: 'date',
29
+ datetime: 'datetime',
30
+ timeFrame: 'timeFrame',
31
+ time: 'time',
32
+ longtime: 'longtime',
33
+ checkbox: 'checkbox',
34
+ dropmulti: 'dropmulti',
35
+ tabledelete: 'tabledelete',
36
+ tableadd: 'tableadd',
37
+ searchfilter: 'searchfilter',
38
+ max: 'max',
39
+ min: 'min',
40
+ sum: 'sum',
41
+ svg: 'svg',
42
+ dropdict: 'dropdict',
43
+ dropobjectstatus: 'dropobjectstatus',
44
+ dropmultidict: 'dropmultidict',
45
+ dropmultiobjectstatus: 'dropmultiobjectstatus',
46
+ daterange: 'daterange',
47
+ image: 'image',
48
+ pulldown: 'pulldown',
49
+ operation: 'operation',
50
+ custombutton: 'custombutton',
51
+ pager_button: 'pager_button',
52
+ select: 'select',
53
+ customCell: 'customCell',
54
+ remotedropmulti: 'remotedropmulti',
55
+ interval: 'interval',
56
+ customRadio: 'customRadio',
57
+ operationDefault: 'operationDefault',
58
+ dateweek: 'dateweek',
59
+ datemonth: 'datemonth',
60
+ x_axis: 'x_axis',
61
+ y_axis: 'y_axis',
62
+ series: 'series',
63
+ treeSelect: 'treeSelect',
64
+ multiSelect: 'multiSelect'
65
+ }
66
+ export const dataType = {
67
+ frame: 'frame',
68
+ grid: 'grid',
69
+ gridselect: 'gridselect',
70
+ piccard: 'piccard'
71
+ }
72
+ export const sysActionType = {
73
+ matSale: '200',
74
+ flutTypMat: '201',
75
+ artMat: '300',
76
+ docNumInventoryTrans: '310' // 订单号跳转库存事务查询
77
+ }
78
+
79
+ export const moduleCodeEnum = {
80
+ custMatViewInfo: 'custMatViewInfo' //客户物料详情
81
+ }
82
+ export const dictCodeEnum = {
83
+ UOM: 'UOM', //单位
84
+ MaterialType: 'MaterialType', //物料类型
85
+ TaxRate: 'TaxRate' //税率
86
+ }
87
87