imatrix-ui 0.2.6-up → 0.2.7-up
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/README.md +7 -7
- package/index.html +13 -13
- package/lib/super-ui.css +1 -1
- package/lib/super-ui.js +2724 -1932
- package/lib/super-ui.umd.cjs +24 -24
- package/package.json +1 -1
- package/packages/IntervalSelection/index.js +6 -6
- package/packages/IntervalSelection/src/quarterScope.vue +405 -405
- package/packages/IntervalSelection/src/sectionDate.vue +475 -475
- package/packages/breadcrumb/index.js +6 -6
- package/packages/breadcrumb/src/breadcrumb.vue +81 -81
- package/packages/department-tree/index.js +6 -6
- package/packages/department-tree/src/department-tree.vue +113 -113
- package/packages/department-tree-inline/index.js +6 -6
- package/packages/department-tree-inline/src/department-multi-tree-inline.vue +472 -472
- package/packages/department-tree-inline/src/department-single-tree-inline.vue +340 -340
- package/packages/department-tree-inline/src/department-tree-inline.vue +86 -86
- package/packages/department-tree-inline/src/department-tree-service.js +344 -344
- package/packages/department-tree-inline/src/search-result.vue +235 -235
- package/packages/department-user-tree/index.js +6 -6
- package/packages/department-user-tree/src/department-user-multiple-tree.vue +129 -129
- package/packages/department-user-tree/src/department-user-single-tree.vue +94 -94
- package/packages/department-user-tree/src/department-user-tree.vue +114 -114
- package/packages/department-user-tree-inline/index.js +9 -9
- package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +731 -731
- package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +334 -334
- package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -87
- package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -309
- package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +179 -179
- package/packages/department-user-tree-inline/src/search-result.vue +273 -273
- package/packages/directives/prevent-reclick.js +22 -22
- package/packages/dynamic-source-select/index.js +6 -6
- package/packages/dynamic-source-select/src/dynamic-source-select-service.js +106 -106
- package/packages/dynamic-source-select/src/dynamic-source-select.vue +675 -675
- package/packages/dynamic-source-select/src/events.js +78 -78
- package/packages/fs-preview/index.js +6 -6
- package/packages/fs-preview/src/fs-preview.vue +287 -287
- package/packages/fs-upload/index.js +6 -6
- package/packages/fs-upload/src/fs-upload-multi.vue +443 -443
- package/packages/fs-upload/src/fs-upload-single.vue +353 -353
- package/packages/fs-upload/src/fs-upload.vue +191 -191
- package/packages/fs-upload/src/see-big-picture.vue +67 -67
- package/packages/fs-upload-list/index.js +6 -6
- package/packages/fs-upload-list/src/fs-upload-list.vue +372 -372
- package/packages/hamburger/index.js +6 -6
- package/packages/hamburger/src/hamburger.vue +40 -40
- package/packages/index.js +123 -123
- package/packages/multipart-upload/index.js +6 -6
- package/packages/multipart-upload/src/index.vue +66 -66
- package/packages/multipart-upload/src/multipart-upload-form.vue +377 -377
- package/packages/multipart-upload/src/multipart-upload-list.vue +517 -517
- package/packages/organization-input/index.js +6 -6
- package/packages/organization-input/src/organization-input.vue +583 -583
- package/packages/plugins/export-data-new.js +623 -623
- package/packages/plugins/export-data.js +431 -431
- package/packages/plugins/index.js +15 -15
- package/packages/plugins/public-method.js +47 -47
- package/packages/remove-department/index.js +6 -6
- package/packages/remove-department/src/remove-department.vue +200 -200
- package/packages/remove-department/src/remove-dept-service.js +31 -31
- package/packages/remove-user/index.js +6 -6
- package/packages/remove-user/src/remove-user-service.js +31 -31
- package/packages/remove-user/src/remove-user.vue +226 -226
- package/packages/remove-workgroup/index.js +6 -6
- package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -31
- package/packages/remove-workgroup/src/remove-workgroup.vue +183 -183
- package/packages/rich-editor/index.js +7 -7
- package/packages/rich-editor/index.vue +297 -297
- package/packages/rich-editor/langs/zh-Hans.js +438 -438
- package/packages/rich-editor/viewer.vue +105 -105
- package/packages/scan-code-input/index.js +6 -6
- package/packages/scan-code-input/src/events.js +34 -34
- package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -140
- package/packages/scan-code-input/src/scan-code-input.vue +132 -132
- package/packages/secret-info/index.js +7 -7
- package/packages/secret-info/index.vue +100 -100
- package/packages/super-grid/index.js +7 -7
- package/packages/super-grid/src/apis.js +1092 -1092
- package/packages/super-grid/src/columns-config.vue +427 -427
- package/packages/super-grid/src/custom-formatter.js +394 -394
- package/packages/super-grid/src/eventBus.js +2 -2
- package/packages/super-grid/src/events.js +56 -56
- package/packages/super-grid/src/formValidatorUtil.js +300 -300
- package/packages/super-grid/src/formatter.js +196 -196
- package/packages/super-grid/src/group-column.vue +99 -99
- package/packages/super-grid/src/header-context-menu.vue +82 -82
- package/packages/super-grid/src/index-column.vue +69 -69
- package/packages/super-grid/src/public-methods.js +30 -30
- package/packages/super-grid/src/row-operation.vue +193 -193
- package/packages/super-grid/src/search-button.vue +74 -74
- package/packages/super-grid/src/search-condition-input.vue +73 -73
- package/packages/super-grid/src/search-condition-list.vue +68 -68
- package/packages/super-grid/src/search-form-advancedQuery.vue +819 -819
- package/packages/super-grid/src/search-form-dialog.vue +77 -77
- package/packages/super-grid/src/search-form-item.vue +495 -495
- package/packages/super-grid/src/search-form-number.vue +111 -111
- package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -239
- package/packages/super-grid/src/search-form.vue +762 -762
- package/packages/super-grid/src/search-methods.js +592 -592
- package/packages/super-grid/src/selection-column.vue +46 -46
- package/packages/super-grid/src/store.js +3 -3
- package/packages/super-grid/src/super-grid-service.js +728 -728
- package/packages/super-grid/src/super-grid.vue +3011 -3011
- package/packages/super-grid/src/utils.js +880 -880
- package/packages/super-grid/src/view-image-dialog.vue +176 -176
- package/packages/super-nine-grid/index.js +7 -7
- package/packages/super-nine-grid/src/apis.js +108 -108
- package/packages/super-nine-grid/src/custom-formatter.js +73 -73
- package/packages/super-nine-grid/src/formatter.js +134 -134
- package/packages/super-nine-grid/src/search-form-number.vue +35 -35
- package/packages/super-nine-grid/src/search-form.vue +700 -700
- package/packages/super-nine-grid/src/search-methods.js +151 -151
- package/packages/super-nine-grid/src/store.js +3 -3
- package/packages/super-nine-grid/src/super-grid-service.js +107 -107
- package/packages/svg-icon/index.js +6 -6
- package/packages/svg-icon/src/svg-icon.vue +43 -43
- package/packages/utils/date-util.js +292 -292
- package/packages/utils/dom.js +227 -227
- package/packages/utils/gogocodeTransfer.js +59 -59
- package/packages/utils/memory-cache-utils.js +117 -117
- package/packages/utils/utils.js +180 -180
- package/packages/utils/value-set.js +97 -97
- package/packages/valid-code/index.js +7 -7
- package/packages/valid-code/src/valid-code.vue +104 -104
- package/packages/workflow-button/index.js +6 -6
- package/packages/workflow-button/src/workflow-button.vue +550 -550
- package/packages/workflow-history-list/index.js +6 -6
- package/packages/workflow-history-list/src/api.js +7 -7
- package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
- package/packages/workgroup-tree/index.js +6 -6
- package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
- package/packages/workgroup-tree-inline/index.js +6 -6
- package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
- package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
- package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
- package/packages/workgroup-user-tree/index.js +6 -6
- package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
- package/packages/workgroup-user-tree-inline/index.js +9 -9
- package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
- package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
- package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
- package/packages/year-range-picker/index.js +6 -6
- package/packages/year-range-picker/src/year-range-picker.vue +53 -53
- package/src/api/sso-service.js +172 -172
- package/src/api/tab.js +36 -36
- package/src/api/user-service.js +11 -11
- package/src/directives/permission/index.js +13 -13
- package/src/directives/permission/permission.js +20 -20
- package/src/i18n/langs/cn.js +259 -259
- package/src/i18n/langs/en.js +269 -269
- package/src/index.js +93 -93
- package/src/plugins.js +18 -18
- package/src/router/index.js +8 -26
- package/src/store/getters.js +15 -15
- package/src/store/index.js +19 -19
- package/src/store/modules/app.js +54 -54
- package/src/store/modules/tab-content.js +36 -36
- package/src/store/modules/user.js +285 -285
- package/src/utils/auth.js +61 -61
- package/src/utils/calculator/calculator-factory-wf.js +558 -558
- package/src/utils/calculator/calculator-factory.js +145 -145
- package/src/utils/calculator/calculator-util.js +166 -166
- package/src/utils/eventBus.js +2 -2
- package/src/utils/iconUtils.js +28 -28
- package/src/utils/index.js +102 -102
- package/src/utils/jump-page-utils.js +824 -824
- package/src/utils/menu.js +19 -19
- package/src/utils/permission.js +31 -31
- package/src/utils/permissionAuth.js +96 -96
- package/src/utils/range-selector.js +188 -188
- package/src/utils/request.js +269 -269
- package/src/utils/restful-interface-utils.js +57 -57
- package/src/utils/util.js +703 -703
- package/src/utils/validate.js +34 -34
- package/src/utils/watermark.js +108 -108
- package/src/utils/workflow-util.js +93 -93
- package/src/views/404.vue +248 -248
- package/src/views/dsc-component/Sidebar/Item.vue +84 -84
- package/src/views/dsc-component/Sidebar/Link.vue +38 -38
- package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
- package/src/views/dsc-component/Sidebar/index.vue +229 -229
- package/src/views/dsc-component/tabs/tab-content.vue +203 -203
- package/src/views/error-page/401.vue +106 -106
- package/src/views/error-page/404.vue +248 -248
- package/src/views/layout/EmptyLayout.vue +3 -3
- package/src/views/layout/Layout.vue +81 -81
- package/src/views/layout/NewLayout.vue +18 -18
- package/src/views/layout/components/AppMain.vue +39 -39
- package/src/views/layout/components/Breadcrumb/index.vue +158 -158
- package/src/views/layout/components/Menubar/Item.vue +79 -79
- package/src/views/layout/components/Menubar/Link.vue +38 -38
- package/src/views/layout/components/Menubar/index.vue +210 -210
- package/src/views/layout/components/Sidebar/Item.vue +53 -53
- package/src/views/layout/components/Sidebar/Link.vue +38 -38
- package/src/views/layout/components/Sidebar/index.vue +141 -141
- package/src/views/layout/components/iframe-page.vue +38 -38
- package/src/views/layout/components/index.js +4 -4
- package/src/views/layout/components/tabs/tab-content.vue +207 -207
- package/src/views/layout/mixin/ResizeHandler.js +41 -41
- package/src/views/layout/tab-content-iframe-index.vue +38 -38
- package/src/views/layout/tab-content-index.vue +93 -93
- package/src/views/login/authredirect.vue +10 -10
- package/src/views/login/index.vue +296 -296
- package/src/views/login/update-password.vue +243 -243
- package/src/views/redirect/index.vue +14 -14
- package/src/views/wf-history/tache-subprocess-history.vue +45 -45
|
@@ -1,558 +1,558 @@
|
|
|
1
|
-
class CalculatorFactoryWf {
|
|
2
|
-
constructor() {
|
|
3
|
-
if (new.target === CalculatorFactoryWf) {
|
|
4
|
-
throw new Error('抽象类不能实例化!')
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* 空值时相等的处理
|
|
9
|
-
* @param leftVale
|
|
10
|
-
* @param operator
|
|
11
|
-
* @param rightValue
|
|
12
|
-
* @return
|
|
13
|
-
*/
|
|
14
|
-
isEQEmptyValue(leftVale, operator, rightValue) {
|
|
15
|
-
const EQ = 'operator.number.eq'
|
|
16
|
-
const textEq = 'operator.text.eq'
|
|
17
|
-
const CONTAINS = 'operator.text.contain'
|
|
18
|
-
return (
|
|
19
|
-
(leftVale === undefined || leftVale === null || leftVale + '' === '') &&
|
|
20
|
-
(rightValue === undefined ||
|
|
21
|
-
rightValue === null ||
|
|
22
|
-
rightValue + '' === '') &&
|
|
23
|
-
(operator === EQ || operator === textEq || operator === CONTAINS)
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
class AmountCalculator extends CalculatorFactoryWf {
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
|
-
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
32
|
-
* @param dataType 数据类型
|
|
33
|
-
* @return
|
|
34
|
-
*/
|
|
35
|
-
constructor(subExpression) {
|
|
36
|
-
super()
|
|
37
|
-
const NLT = 'operator.number.ge'
|
|
38
|
-
const NMT = 'operator.number.le'
|
|
39
|
-
const GT = 'operator.number.gt'
|
|
40
|
-
const LT = 'operator.number.lt'
|
|
41
|
-
const NET = 'operator.number.ne'
|
|
42
|
-
const EQ = 'operator.number.eq'
|
|
43
|
-
const textNet = 'operator.text.neq'
|
|
44
|
-
const textEq = 'operator.text.eq'
|
|
45
|
-
if (subExpression.indexOf(NLT) > 0) {
|
|
46
|
-
const operator = NLT
|
|
47
|
-
const leftOperand = subExpression
|
|
48
|
-
.substring(0, subExpression.indexOf(operator))
|
|
49
|
-
.trim()
|
|
50
|
-
const rightOperand = subExpression
|
|
51
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
52
|
-
.trim()
|
|
53
|
-
const preOperand = Number(leftOperand)
|
|
54
|
-
const value = Number(rightOperand)
|
|
55
|
-
if (preOperand === null) {
|
|
56
|
-
this.result = false
|
|
57
|
-
} else {
|
|
58
|
-
this.result = preOperand >= value
|
|
59
|
-
}
|
|
60
|
-
} else if (subExpression.indexOf(NMT) > 0) {
|
|
61
|
-
const operator = NMT
|
|
62
|
-
const leftOperand = subExpression
|
|
63
|
-
.substring(0, subExpression.indexOf(operator))
|
|
64
|
-
.trim()
|
|
65
|
-
const rightOperand = subExpression
|
|
66
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
67
|
-
.trim()
|
|
68
|
-
const preOperand = Number(leftOperand)
|
|
69
|
-
const value = Number(rightOperand)
|
|
70
|
-
if (preOperand === null) {
|
|
71
|
-
this.result = false
|
|
72
|
-
} else {
|
|
73
|
-
this.result = preOperand <= value
|
|
74
|
-
}
|
|
75
|
-
} else if (subExpression.indexOf(GT) > 0) {
|
|
76
|
-
const operator = GT
|
|
77
|
-
const leftOperand = subExpression
|
|
78
|
-
.substring(0, subExpression.indexOf(operator))
|
|
79
|
-
.trim()
|
|
80
|
-
const rightOperand = subExpression
|
|
81
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
82
|
-
.trim()
|
|
83
|
-
const preOperand = Number(leftOperand)
|
|
84
|
-
const value = Number(rightOperand)
|
|
85
|
-
if (preOperand === null) {
|
|
86
|
-
this.result = false
|
|
87
|
-
} else {
|
|
88
|
-
this.result = preOperand > value
|
|
89
|
-
}
|
|
90
|
-
} else if (subExpression.indexOf(LT) > 0) {
|
|
91
|
-
const operator = LT
|
|
92
|
-
const leftOperand = subExpression
|
|
93
|
-
.substring(0, subExpression.indexOf(operator))
|
|
94
|
-
.trim()
|
|
95
|
-
const rightOperand = subExpression
|
|
96
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
97
|
-
.trim()
|
|
98
|
-
const preOperand = Number(leftOperand)
|
|
99
|
-
const value = Number(rightOperand)
|
|
100
|
-
if (preOperand === null) {
|
|
101
|
-
this.result = false
|
|
102
|
-
} else {
|
|
103
|
-
this.result = preOperand < value
|
|
104
|
-
}
|
|
105
|
-
} else if (
|
|
106
|
-
subExpression.indexOf(NET) > 0 ||
|
|
107
|
-
subExpression.indexOf(textNet) > 0
|
|
108
|
-
) {
|
|
109
|
-
let operator = NET
|
|
110
|
-
if (subExpression.indexOf(textNet) > 0) {
|
|
111
|
-
operator = textNet
|
|
112
|
-
}
|
|
113
|
-
const leftOperand = subExpression
|
|
114
|
-
.substring(0, subExpression.indexOf(operator))
|
|
115
|
-
.trim()
|
|
116
|
-
const rightOperand = subExpression
|
|
117
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
118
|
-
.trim()
|
|
119
|
-
const preOperand = Number(leftOperand)
|
|
120
|
-
const value = Number(rightOperand)
|
|
121
|
-
if (preOperand === null) {
|
|
122
|
-
this.result = false
|
|
123
|
-
} else {
|
|
124
|
-
this.result = preOperand !== value
|
|
125
|
-
}
|
|
126
|
-
} else if (
|
|
127
|
-
subExpression.indexOf(EQ) > 0 ||
|
|
128
|
-
subExpression.indexOf(textEq) > 0
|
|
129
|
-
) {
|
|
130
|
-
let operator = EQ
|
|
131
|
-
if (subExpression.indexOf(textEq) > 0) {
|
|
132
|
-
operator = textEq
|
|
133
|
-
}
|
|
134
|
-
const leftOperand = subExpression
|
|
135
|
-
.substring(0, subExpression.indexOf(operator))
|
|
136
|
-
.trim()
|
|
137
|
-
const rightOperand = subExpression
|
|
138
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
139
|
-
.trim()
|
|
140
|
-
const preOperand = Number(leftOperand)
|
|
141
|
-
const value = Number(rightOperand)
|
|
142
|
-
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
143
|
-
this.result = true
|
|
144
|
-
} else if (preOperand === null) {
|
|
145
|
-
this.result = false
|
|
146
|
-
} else {
|
|
147
|
-
this.result = preOperand === value
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
class NumberCalculator extends CalculatorFactoryWf {
|
|
154
|
-
/**
|
|
155
|
-
*
|
|
156
|
-
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
157
|
-
* @param dataType 数据类型
|
|
158
|
-
* @return
|
|
159
|
-
*/
|
|
160
|
-
constructor(subExpression) {
|
|
161
|
-
super()
|
|
162
|
-
const NLT = 'operator.number.ge'
|
|
163
|
-
const NMT = 'operator.number.le'
|
|
164
|
-
const GT = 'operator.number.gt'
|
|
165
|
-
const LT = 'operator.number.lt'
|
|
166
|
-
const NET = 'operator.number.ne'
|
|
167
|
-
const EQ = 'operator.number.eq'
|
|
168
|
-
const textNet = 'operator.text.neq'
|
|
169
|
-
const textEq = 'operator.text.eq'
|
|
170
|
-
if (subExpression.indexOf(NLT) > 0) {
|
|
171
|
-
const operator = NLT
|
|
172
|
-
let leftOperand = subExpression
|
|
173
|
-
.substring(0, subExpression.indexOf(operator))
|
|
174
|
-
.trim()
|
|
175
|
-
let rightOperand = subExpression
|
|
176
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
177
|
-
.trim()
|
|
178
|
-
if (!leftOperand) {
|
|
179
|
-
leftOperand = '0'
|
|
180
|
-
}
|
|
181
|
-
if (!rightOperand) {
|
|
182
|
-
rightOperand = '0'
|
|
183
|
-
} else {
|
|
184
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
185
|
-
}
|
|
186
|
-
const preOperand = Number(leftOperand)
|
|
187
|
-
const value = Number(rightOperand)
|
|
188
|
-
if (preOperand === null) {
|
|
189
|
-
this.result = false
|
|
190
|
-
} else {
|
|
191
|
-
this.result = preOperand >= value
|
|
192
|
-
}
|
|
193
|
-
} else if (subExpression.indexOf(NMT) > 0) {
|
|
194
|
-
const operator = NMT
|
|
195
|
-
let leftOperand = subExpression
|
|
196
|
-
.substring(0, subExpression.indexOf(operator))
|
|
197
|
-
.trim()
|
|
198
|
-
let rightOperand = subExpression
|
|
199
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
200
|
-
.trim()
|
|
201
|
-
if (!leftOperand) {
|
|
202
|
-
leftOperand = '0'
|
|
203
|
-
}
|
|
204
|
-
if (!rightOperand) {
|
|
205
|
-
rightOperand = '0'
|
|
206
|
-
} else {
|
|
207
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
208
|
-
}
|
|
209
|
-
const preOperand = Number(leftOperand)
|
|
210
|
-
const value = Number(rightOperand)
|
|
211
|
-
if (preOperand === null) {
|
|
212
|
-
this.result = false
|
|
213
|
-
} else {
|
|
214
|
-
this.result = preOperand <= value
|
|
215
|
-
}
|
|
216
|
-
} else if (subExpression.indexOf(GT) > 0) {
|
|
217
|
-
const operator = GT
|
|
218
|
-
let leftOperand = subExpression
|
|
219
|
-
.substring(0, subExpression.indexOf(operator))
|
|
220
|
-
.trim()
|
|
221
|
-
let rightOperand = subExpression
|
|
222
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
223
|
-
.trim()
|
|
224
|
-
if (!leftOperand) {
|
|
225
|
-
leftOperand = '0'
|
|
226
|
-
}
|
|
227
|
-
if (!rightOperand) {
|
|
228
|
-
rightOperand = '0'
|
|
229
|
-
} else {
|
|
230
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
231
|
-
}
|
|
232
|
-
const preOperand = Number(leftOperand)
|
|
233
|
-
const value = Number(rightOperand)
|
|
234
|
-
if (preOperand === null) {
|
|
235
|
-
this.result = false
|
|
236
|
-
} else {
|
|
237
|
-
this.result = preOperand > value
|
|
238
|
-
}
|
|
239
|
-
} else if (subExpression.indexOf(LT) > 0) {
|
|
240
|
-
const operator = LT
|
|
241
|
-
let leftOperand = subExpression
|
|
242
|
-
.substring(0, subExpression.indexOf(operator))
|
|
243
|
-
.trim()
|
|
244
|
-
let rightOperand = subExpression
|
|
245
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
246
|
-
.trim()
|
|
247
|
-
if (!leftOperand) {
|
|
248
|
-
leftOperand = '0'
|
|
249
|
-
}
|
|
250
|
-
if (!rightOperand) {
|
|
251
|
-
rightOperand = '0'
|
|
252
|
-
} else {
|
|
253
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
254
|
-
}
|
|
255
|
-
const preOperand = Number(leftOperand)
|
|
256
|
-
const value = Number(rightOperand)
|
|
257
|
-
if (preOperand === null) {
|
|
258
|
-
this.result = false
|
|
259
|
-
} else {
|
|
260
|
-
this.result = preOperand < value
|
|
261
|
-
}
|
|
262
|
-
} else if (
|
|
263
|
-
subExpression.indexOf(NET) > 0 ||
|
|
264
|
-
subExpression.indexOf(textNet) > 0
|
|
265
|
-
) {
|
|
266
|
-
let operator = NET
|
|
267
|
-
if (subExpression.indexOf(textNet) > 0) {
|
|
268
|
-
operator = textNet
|
|
269
|
-
}
|
|
270
|
-
let leftOperand = subExpression
|
|
271
|
-
.substring(0, subExpression.indexOf(operator))
|
|
272
|
-
.trim()
|
|
273
|
-
let rightOperand = subExpression
|
|
274
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
275
|
-
.trim()
|
|
276
|
-
if (!leftOperand) {
|
|
277
|
-
leftOperand = '0'
|
|
278
|
-
}
|
|
279
|
-
if (!rightOperand) {
|
|
280
|
-
rightOperand = '0'
|
|
281
|
-
} else {
|
|
282
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
283
|
-
}
|
|
284
|
-
const preOperand = Number(leftOperand)
|
|
285
|
-
const value = Number(rightOperand)
|
|
286
|
-
if (preOperand === null) {
|
|
287
|
-
this.result = false
|
|
288
|
-
} else {
|
|
289
|
-
this.result = preOperand !== value
|
|
290
|
-
}
|
|
291
|
-
} else if (
|
|
292
|
-
subExpression.indexOf(EQ) > 0 ||
|
|
293
|
-
subExpression.indexOf(textEq) > 0
|
|
294
|
-
) {
|
|
295
|
-
let operator = EQ
|
|
296
|
-
if (subExpression.indexOf(textEq) > 0) {
|
|
297
|
-
operator = textEq
|
|
298
|
-
}
|
|
299
|
-
let leftOperand = subExpression
|
|
300
|
-
.substring(0, subExpression.indexOf(operator))
|
|
301
|
-
.trim()
|
|
302
|
-
let rightOperand = subExpression
|
|
303
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
304
|
-
.trim()
|
|
305
|
-
if (!leftOperand) {
|
|
306
|
-
leftOperand = '0'
|
|
307
|
-
}
|
|
308
|
-
if (!rightOperand) {
|
|
309
|
-
rightOperand = '0'
|
|
310
|
-
} else {
|
|
311
|
-
rightOperand = rightOperand.replaceAll("'", '')
|
|
312
|
-
}
|
|
313
|
-
const preOperand = Number(leftOperand)
|
|
314
|
-
const value = Number(rightOperand)
|
|
315
|
-
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
316
|
-
this.result = true
|
|
317
|
-
} else if (preOperand === null) {
|
|
318
|
-
this.result = false
|
|
319
|
-
} else {
|
|
320
|
-
this.result = preOperand === value
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
class DateCalculator extends CalculatorFactoryWf {
|
|
327
|
-
/**
|
|
328
|
-
*
|
|
329
|
-
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
330
|
-
* @param dataType 数据类型
|
|
331
|
-
* @return
|
|
332
|
-
*/
|
|
333
|
-
constructor(subExpression, dataType) {
|
|
334
|
-
super()
|
|
335
|
-
const NLT = 'operator.date.ge'
|
|
336
|
-
const NGT = 'operator.date.le'
|
|
337
|
-
const GT = 'operator.date.gt'
|
|
338
|
-
const LT = 'operator.date.lt'
|
|
339
|
-
const NET = 'operator.date.ne'
|
|
340
|
-
const EQ = 'operator.date.et'
|
|
341
|
-
if (subExpression.indexOf(NLT) > 0) {
|
|
342
|
-
const operator = NLT
|
|
343
|
-
let leftOperand = subExpression
|
|
344
|
-
.substring(0, subExpression.indexOf(operator))
|
|
345
|
-
.trim()
|
|
346
|
-
let rightOperand = subExpression
|
|
347
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
348
|
-
.trim()
|
|
349
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
350
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
351
|
-
}
|
|
352
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
353
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
354
|
-
}
|
|
355
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
356
|
-
const value = new Date(rightOperand).getTime()
|
|
357
|
-
if (preOperand === null) {
|
|
358
|
-
this.result = false
|
|
359
|
-
} else {
|
|
360
|
-
this.result = preOperand >= value
|
|
361
|
-
}
|
|
362
|
-
} else if (subExpression.indexOf(NGT) > 0) {
|
|
363
|
-
const operator = NGT
|
|
364
|
-
let leftOperand = subExpression
|
|
365
|
-
.substring(0, subExpression.indexOf(operator))
|
|
366
|
-
.trim()
|
|
367
|
-
let rightOperand = subExpression
|
|
368
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
369
|
-
.trim()
|
|
370
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
371
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
372
|
-
}
|
|
373
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
374
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
375
|
-
}
|
|
376
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
377
|
-
const value = new Date(rightOperand).getTime()
|
|
378
|
-
if (preOperand === null) {
|
|
379
|
-
this.result = false
|
|
380
|
-
} else {
|
|
381
|
-
this.result = preOperand <= value
|
|
382
|
-
}
|
|
383
|
-
} else if (subExpression.indexOf(GT) > 0) {
|
|
384
|
-
const operator = GT
|
|
385
|
-
let leftOperand = subExpression
|
|
386
|
-
.substring(0, subExpression.indexOf(operator))
|
|
387
|
-
.trim()
|
|
388
|
-
let rightOperand = subExpression
|
|
389
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
390
|
-
.trim()
|
|
391
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
392
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
393
|
-
}
|
|
394
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
395
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
396
|
-
}
|
|
397
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
398
|
-
const value = new Date(rightOperand).getTime()
|
|
399
|
-
if (preOperand === null) {
|
|
400
|
-
this.result = false
|
|
401
|
-
} else {
|
|
402
|
-
this.result = preOperand > value
|
|
403
|
-
}
|
|
404
|
-
} else if (subExpression.indexOf(LT) > 0) {
|
|
405
|
-
const operator = LT
|
|
406
|
-
let leftOperand = subExpression
|
|
407
|
-
.substring(0, subExpression.indexOf(operator))
|
|
408
|
-
.trim()
|
|
409
|
-
let rightOperand = subExpression
|
|
410
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
411
|
-
.trim()
|
|
412
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
413
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
414
|
-
}
|
|
415
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
416
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
417
|
-
}
|
|
418
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
419
|
-
const value = new Date(rightOperand).getTime()
|
|
420
|
-
if (preOperand === null) {
|
|
421
|
-
this.result = false
|
|
422
|
-
} else {
|
|
423
|
-
this.result = preOperand < value
|
|
424
|
-
}
|
|
425
|
-
} else if (subExpression.indexOf(NET) > 0) {
|
|
426
|
-
const operator = NET
|
|
427
|
-
let leftOperand = subExpression
|
|
428
|
-
.substring(0, subExpression.indexOf(operator))
|
|
429
|
-
.trim()
|
|
430
|
-
let rightOperand = subExpression
|
|
431
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
432
|
-
.trim()
|
|
433
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
434
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
435
|
-
}
|
|
436
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
437
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
438
|
-
}
|
|
439
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
440
|
-
const value = new Date(rightOperand).getTime()
|
|
441
|
-
if (preOperand === null) {
|
|
442
|
-
this.result = false
|
|
443
|
-
} else {
|
|
444
|
-
this.result = preOperand !== value
|
|
445
|
-
}
|
|
446
|
-
} else if (subExpression.indexOf(EQ) > 0) {
|
|
447
|
-
const operator = EQ
|
|
448
|
-
let leftOperand = subExpression
|
|
449
|
-
.substring(0, subExpression.indexOf(operator))
|
|
450
|
-
.trim()
|
|
451
|
-
let rightOperand = subExpression
|
|
452
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
453
|
-
.trim()
|
|
454
|
-
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
455
|
-
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
456
|
-
}
|
|
457
|
-
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
458
|
-
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
459
|
-
}
|
|
460
|
-
const preOperand = new Date(leftOperand).getTime()
|
|
461
|
-
const value = new Date(rightOperand).getTime()
|
|
462
|
-
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
463
|
-
this.result = true
|
|
464
|
-
} else if (preOperand === null) {
|
|
465
|
-
this.result = false
|
|
466
|
-
} else {
|
|
467
|
-
this.result = preOperand === value
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
class TextCalculator extends CalculatorFactoryWf {
|
|
473
|
-
constructor(subExpression) {
|
|
474
|
-
super()
|
|
475
|
-
const NET = 'operator.text.neq'
|
|
476
|
-
const EQ = 'operator.text.eq'
|
|
477
|
-
const NOT_CONTAINS = 'operator.text.contain.not'
|
|
478
|
-
const CONTAINS = 'operator.text.contain'
|
|
479
|
-
if (subExpression.indexOf(NET) > 0) {
|
|
480
|
-
const operator = NET
|
|
481
|
-
const leftOperand = subExpression
|
|
482
|
-
.substring(0, subExpression.indexOf(operator))
|
|
483
|
-
.trim()
|
|
484
|
-
const rightOperand = subExpression
|
|
485
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
486
|
-
.trim()
|
|
487
|
-
if (leftOperand === null) {
|
|
488
|
-
this.result = false
|
|
489
|
-
} else {
|
|
490
|
-
this.result = leftOperand !== rightOperand
|
|
491
|
-
}
|
|
492
|
-
} else if (subExpression.indexOf(EQ) > 0) {
|
|
493
|
-
const operator = EQ
|
|
494
|
-
const leftOperand = subExpression
|
|
495
|
-
.substring(0, subExpression.indexOf(operator))
|
|
496
|
-
.trim()
|
|
497
|
-
const rightOperand = subExpression
|
|
498
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
499
|
-
.trim()
|
|
500
|
-
if (this.isEQEmptyValue(leftOperand, operator, rightOperand)) {
|
|
501
|
-
this.result = true
|
|
502
|
-
} else if (leftOperand === null) {
|
|
503
|
-
this.result = false
|
|
504
|
-
} else {
|
|
505
|
-
this.result = leftOperand === rightOperand
|
|
506
|
-
}
|
|
507
|
-
} else if (subExpression.indexOf(NOT_CONTAINS) > 0) {
|
|
508
|
-
const operator = NOT_CONTAINS
|
|
509
|
-
const leftOperand = subExpression
|
|
510
|
-
.substring(0, subExpression.indexOf(operator))
|
|
511
|
-
.trim()
|
|
512
|
-
const rightOperand = subExpression
|
|
513
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
514
|
-
.trim()
|
|
515
|
-
if (leftOperand === null) {
|
|
516
|
-
this.result = false
|
|
517
|
-
} else {
|
|
518
|
-
this.result = !leftOperand.includes(rightOperand)
|
|
519
|
-
}
|
|
520
|
-
} else if (subExpression.indexOf(CONTAINS) > 0) {
|
|
521
|
-
const operator = CONTAINS
|
|
522
|
-
const leftOperand = subExpression
|
|
523
|
-
.substring(0, subExpression.indexOf(operator))
|
|
524
|
-
.trim()
|
|
525
|
-
const rightOperand = subExpression
|
|
526
|
-
.substring(subExpression.indexOf(operator) + operator.length)
|
|
527
|
-
.trim()
|
|
528
|
-
if (this.isEQEmptyValue(leftOperand, operator, rightOperand)) {
|
|
529
|
-
this.result = true
|
|
530
|
-
} else if (leftOperand === null) {
|
|
531
|
-
this.result = false
|
|
532
|
-
} else {
|
|
533
|
-
this.result = leftOperand.includes(rightOperand)
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
export function getAbstractUserFactoryWf(dataType) {
|
|
540
|
-
switch (dataType) {
|
|
541
|
-
case 'TEXT':
|
|
542
|
-
return TextCalculator
|
|
543
|
-
case 'DOUBLE':
|
|
544
|
-
return AmountCalculator
|
|
545
|
-
case 'FLOAT':
|
|
546
|
-
return AmountCalculator
|
|
547
|
-
case 'INTEGER':
|
|
548
|
-
return NumberCalculator
|
|
549
|
-
case 'LONG':
|
|
550
|
-
return NumberCalculator
|
|
551
|
-
case 'DATE':
|
|
552
|
-
return DateCalculator
|
|
553
|
-
case 'TIME':
|
|
554
|
-
return DateCalculator
|
|
555
|
-
default:
|
|
556
|
-
return TextCalculator
|
|
557
|
-
}
|
|
558
|
-
}
|
|
1
|
+
class CalculatorFactoryWf {
|
|
2
|
+
constructor() {
|
|
3
|
+
if (new.target === CalculatorFactoryWf) {
|
|
4
|
+
throw new Error('抽象类不能实例化!')
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 空值时相等的处理
|
|
9
|
+
* @param leftVale
|
|
10
|
+
* @param operator
|
|
11
|
+
* @param rightValue
|
|
12
|
+
* @return
|
|
13
|
+
*/
|
|
14
|
+
isEQEmptyValue(leftVale, operator, rightValue) {
|
|
15
|
+
const EQ = 'operator.number.eq'
|
|
16
|
+
const textEq = 'operator.text.eq'
|
|
17
|
+
const CONTAINS = 'operator.text.contain'
|
|
18
|
+
return (
|
|
19
|
+
(leftVale === undefined || leftVale === null || leftVale + '' === '') &&
|
|
20
|
+
(rightValue === undefined ||
|
|
21
|
+
rightValue === null ||
|
|
22
|
+
rightValue + '' === '') &&
|
|
23
|
+
(operator === EQ || operator === textEq || operator === CONTAINS)
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
class AmountCalculator extends CalculatorFactoryWf {
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
32
|
+
* @param dataType 数据类型
|
|
33
|
+
* @return
|
|
34
|
+
*/
|
|
35
|
+
constructor(subExpression) {
|
|
36
|
+
super()
|
|
37
|
+
const NLT = 'operator.number.ge'
|
|
38
|
+
const NMT = 'operator.number.le'
|
|
39
|
+
const GT = 'operator.number.gt'
|
|
40
|
+
const LT = 'operator.number.lt'
|
|
41
|
+
const NET = 'operator.number.ne'
|
|
42
|
+
const EQ = 'operator.number.eq'
|
|
43
|
+
const textNet = 'operator.text.neq'
|
|
44
|
+
const textEq = 'operator.text.eq'
|
|
45
|
+
if (subExpression.indexOf(NLT) > 0) {
|
|
46
|
+
const operator = NLT
|
|
47
|
+
const leftOperand = subExpression
|
|
48
|
+
.substring(0, subExpression.indexOf(operator))
|
|
49
|
+
.trim()
|
|
50
|
+
const rightOperand = subExpression
|
|
51
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
52
|
+
.trim()
|
|
53
|
+
const preOperand = Number(leftOperand)
|
|
54
|
+
const value = Number(rightOperand)
|
|
55
|
+
if (preOperand === null) {
|
|
56
|
+
this.result = false
|
|
57
|
+
} else {
|
|
58
|
+
this.result = preOperand >= value
|
|
59
|
+
}
|
|
60
|
+
} else if (subExpression.indexOf(NMT) > 0) {
|
|
61
|
+
const operator = NMT
|
|
62
|
+
const leftOperand = subExpression
|
|
63
|
+
.substring(0, subExpression.indexOf(operator))
|
|
64
|
+
.trim()
|
|
65
|
+
const rightOperand = subExpression
|
|
66
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
67
|
+
.trim()
|
|
68
|
+
const preOperand = Number(leftOperand)
|
|
69
|
+
const value = Number(rightOperand)
|
|
70
|
+
if (preOperand === null) {
|
|
71
|
+
this.result = false
|
|
72
|
+
} else {
|
|
73
|
+
this.result = preOperand <= value
|
|
74
|
+
}
|
|
75
|
+
} else if (subExpression.indexOf(GT) > 0) {
|
|
76
|
+
const operator = GT
|
|
77
|
+
const leftOperand = subExpression
|
|
78
|
+
.substring(0, subExpression.indexOf(operator))
|
|
79
|
+
.trim()
|
|
80
|
+
const rightOperand = subExpression
|
|
81
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
82
|
+
.trim()
|
|
83
|
+
const preOperand = Number(leftOperand)
|
|
84
|
+
const value = Number(rightOperand)
|
|
85
|
+
if (preOperand === null) {
|
|
86
|
+
this.result = false
|
|
87
|
+
} else {
|
|
88
|
+
this.result = preOperand > value
|
|
89
|
+
}
|
|
90
|
+
} else if (subExpression.indexOf(LT) > 0) {
|
|
91
|
+
const operator = LT
|
|
92
|
+
const leftOperand = subExpression
|
|
93
|
+
.substring(0, subExpression.indexOf(operator))
|
|
94
|
+
.trim()
|
|
95
|
+
const rightOperand = subExpression
|
|
96
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
97
|
+
.trim()
|
|
98
|
+
const preOperand = Number(leftOperand)
|
|
99
|
+
const value = Number(rightOperand)
|
|
100
|
+
if (preOperand === null) {
|
|
101
|
+
this.result = false
|
|
102
|
+
} else {
|
|
103
|
+
this.result = preOperand < value
|
|
104
|
+
}
|
|
105
|
+
} else if (
|
|
106
|
+
subExpression.indexOf(NET) > 0 ||
|
|
107
|
+
subExpression.indexOf(textNet) > 0
|
|
108
|
+
) {
|
|
109
|
+
let operator = NET
|
|
110
|
+
if (subExpression.indexOf(textNet) > 0) {
|
|
111
|
+
operator = textNet
|
|
112
|
+
}
|
|
113
|
+
const leftOperand = subExpression
|
|
114
|
+
.substring(0, subExpression.indexOf(operator))
|
|
115
|
+
.trim()
|
|
116
|
+
const rightOperand = subExpression
|
|
117
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
118
|
+
.trim()
|
|
119
|
+
const preOperand = Number(leftOperand)
|
|
120
|
+
const value = Number(rightOperand)
|
|
121
|
+
if (preOperand === null) {
|
|
122
|
+
this.result = false
|
|
123
|
+
} else {
|
|
124
|
+
this.result = preOperand !== value
|
|
125
|
+
}
|
|
126
|
+
} else if (
|
|
127
|
+
subExpression.indexOf(EQ) > 0 ||
|
|
128
|
+
subExpression.indexOf(textEq) > 0
|
|
129
|
+
) {
|
|
130
|
+
let operator = EQ
|
|
131
|
+
if (subExpression.indexOf(textEq) > 0) {
|
|
132
|
+
operator = textEq
|
|
133
|
+
}
|
|
134
|
+
const leftOperand = subExpression
|
|
135
|
+
.substring(0, subExpression.indexOf(operator))
|
|
136
|
+
.trim()
|
|
137
|
+
const rightOperand = subExpression
|
|
138
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
139
|
+
.trim()
|
|
140
|
+
const preOperand = Number(leftOperand)
|
|
141
|
+
const value = Number(rightOperand)
|
|
142
|
+
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
143
|
+
this.result = true
|
|
144
|
+
} else if (preOperand === null) {
|
|
145
|
+
this.result = false
|
|
146
|
+
} else {
|
|
147
|
+
this.result = preOperand === value
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
class NumberCalculator extends CalculatorFactoryWf {
|
|
154
|
+
/**
|
|
155
|
+
*
|
|
156
|
+
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
157
|
+
* @param dataType 数据类型
|
|
158
|
+
* @return
|
|
159
|
+
*/
|
|
160
|
+
constructor(subExpression) {
|
|
161
|
+
super()
|
|
162
|
+
const NLT = 'operator.number.ge'
|
|
163
|
+
const NMT = 'operator.number.le'
|
|
164
|
+
const GT = 'operator.number.gt'
|
|
165
|
+
const LT = 'operator.number.lt'
|
|
166
|
+
const NET = 'operator.number.ne'
|
|
167
|
+
const EQ = 'operator.number.eq'
|
|
168
|
+
const textNet = 'operator.text.neq'
|
|
169
|
+
const textEq = 'operator.text.eq'
|
|
170
|
+
if (subExpression.indexOf(NLT) > 0) {
|
|
171
|
+
const operator = NLT
|
|
172
|
+
let leftOperand = subExpression
|
|
173
|
+
.substring(0, subExpression.indexOf(operator))
|
|
174
|
+
.trim()
|
|
175
|
+
let rightOperand = subExpression
|
|
176
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
177
|
+
.trim()
|
|
178
|
+
if (!leftOperand) {
|
|
179
|
+
leftOperand = '0'
|
|
180
|
+
}
|
|
181
|
+
if (!rightOperand) {
|
|
182
|
+
rightOperand = '0'
|
|
183
|
+
} else {
|
|
184
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
185
|
+
}
|
|
186
|
+
const preOperand = Number(leftOperand)
|
|
187
|
+
const value = Number(rightOperand)
|
|
188
|
+
if (preOperand === null) {
|
|
189
|
+
this.result = false
|
|
190
|
+
} else {
|
|
191
|
+
this.result = preOperand >= value
|
|
192
|
+
}
|
|
193
|
+
} else if (subExpression.indexOf(NMT) > 0) {
|
|
194
|
+
const operator = NMT
|
|
195
|
+
let leftOperand = subExpression
|
|
196
|
+
.substring(0, subExpression.indexOf(operator))
|
|
197
|
+
.trim()
|
|
198
|
+
let rightOperand = subExpression
|
|
199
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
200
|
+
.trim()
|
|
201
|
+
if (!leftOperand) {
|
|
202
|
+
leftOperand = '0'
|
|
203
|
+
}
|
|
204
|
+
if (!rightOperand) {
|
|
205
|
+
rightOperand = '0'
|
|
206
|
+
} else {
|
|
207
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
208
|
+
}
|
|
209
|
+
const preOperand = Number(leftOperand)
|
|
210
|
+
const value = Number(rightOperand)
|
|
211
|
+
if (preOperand === null) {
|
|
212
|
+
this.result = false
|
|
213
|
+
} else {
|
|
214
|
+
this.result = preOperand <= value
|
|
215
|
+
}
|
|
216
|
+
} else if (subExpression.indexOf(GT) > 0) {
|
|
217
|
+
const operator = GT
|
|
218
|
+
let leftOperand = subExpression
|
|
219
|
+
.substring(0, subExpression.indexOf(operator))
|
|
220
|
+
.trim()
|
|
221
|
+
let rightOperand = subExpression
|
|
222
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
223
|
+
.trim()
|
|
224
|
+
if (!leftOperand) {
|
|
225
|
+
leftOperand = '0'
|
|
226
|
+
}
|
|
227
|
+
if (!rightOperand) {
|
|
228
|
+
rightOperand = '0'
|
|
229
|
+
} else {
|
|
230
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
231
|
+
}
|
|
232
|
+
const preOperand = Number(leftOperand)
|
|
233
|
+
const value = Number(rightOperand)
|
|
234
|
+
if (preOperand === null) {
|
|
235
|
+
this.result = false
|
|
236
|
+
} else {
|
|
237
|
+
this.result = preOperand > value
|
|
238
|
+
}
|
|
239
|
+
} else if (subExpression.indexOf(LT) > 0) {
|
|
240
|
+
const operator = LT
|
|
241
|
+
let leftOperand = subExpression
|
|
242
|
+
.substring(0, subExpression.indexOf(operator))
|
|
243
|
+
.trim()
|
|
244
|
+
let rightOperand = subExpression
|
|
245
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
246
|
+
.trim()
|
|
247
|
+
if (!leftOperand) {
|
|
248
|
+
leftOperand = '0'
|
|
249
|
+
}
|
|
250
|
+
if (!rightOperand) {
|
|
251
|
+
rightOperand = '0'
|
|
252
|
+
} else {
|
|
253
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
254
|
+
}
|
|
255
|
+
const preOperand = Number(leftOperand)
|
|
256
|
+
const value = Number(rightOperand)
|
|
257
|
+
if (preOperand === null) {
|
|
258
|
+
this.result = false
|
|
259
|
+
} else {
|
|
260
|
+
this.result = preOperand < value
|
|
261
|
+
}
|
|
262
|
+
} else if (
|
|
263
|
+
subExpression.indexOf(NET) > 0 ||
|
|
264
|
+
subExpression.indexOf(textNet) > 0
|
|
265
|
+
) {
|
|
266
|
+
let operator = NET
|
|
267
|
+
if (subExpression.indexOf(textNet) > 0) {
|
|
268
|
+
operator = textNet
|
|
269
|
+
}
|
|
270
|
+
let leftOperand = subExpression
|
|
271
|
+
.substring(0, subExpression.indexOf(operator))
|
|
272
|
+
.trim()
|
|
273
|
+
let rightOperand = subExpression
|
|
274
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
275
|
+
.trim()
|
|
276
|
+
if (!leftOperand) {
|
|
277
|
+
leftOperand = '0'
|
|
278
|
+
}
|
|
279
|
+
if (!rightOperand) {
|
|
280
|
+
rightOperand = '0'
|
|
281
|
+
} else {
|
|
282
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
283
|
+
}
|
|
284
|
+
const preOperand = Number(leftOperand)
|
|
285
|
+
const value = Number(rightOperand)
|
|
286
|
+
if (preOperand === null) {
|
|
287
|
+
this.result = false
|
|
288
|
+
} else {
|
|
289
|
+
this.result = preOperand !== value
|
|
290
|
+
}
|
|
291
|
+
} else if (
|
|
292
|
+
subExpression.indexOf(EQ) > 0 ||
|
|
293
|
+
subExpression.indexOf(textEq) > 0
|
|
294
|
+
) {
|
|
295
|
+
let operator = EQ
|
|
296
|
+
if (subExpression.indexOf(textEq) > 0) {
|
|
297
|
+
operator = textEq
|
|
298
|
+
}
|
|
299
|
+
let leftOperand = subExpression
|
|
300
|
+
.substring(0, subExpression.indexOf(operator))
|
|
301
|
+
.trim()
|
|
302
|
+
let rightOperand = subExpression
|
|
303
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
304
|
+
.trim()
|
|
305
|
+
if (!leftOperand) {
|
|
306
|
+
leftOperand = '0'
|
|
307
|
+
}
|
|
308
|
+
if (!rightOperand) {
|
|
309
|
+
rightOperand = '0'
|
|
310
|
+
} else {
|
|
311
|
+
rightOperand = rightOperand.replaceAll("'", '')
|
|
312
|
+
}
|
|
313
|
+
const preOperand = Number(leftOperand)
|
|
314
|
+
const value = Number(rightOperand)
|
|
315
|
+
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
316
|
+
this.result = true
|
|
317
|
+
} else if (preOperand === null) {
|
|
318
|
+
this.result = false
|
|
319
|
+
} else {
|
|
320
|
+
this.result = preOperand === value
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
class DateCalculator extends CalculatorFactoryWf {
|
|
327
|
+
/**
|
|
328
|
+
*
|
|
329
|
+
* @param subExpression 二元逻辑表达式 例如:2.5 operator.text.eq.not 2.5
|
|
330
|
+
* @param dataType 数据类型
|
|
331
|
+
* @return
|
|
332
|
+
*/
|
|
333
|
+
constructor(subExpression, dataType) {
|
|
334
|
+
super()
|
|
335
|
+
const NLT = 'operator.date.ge'
|
|
336
|
+
const NGT = 'operator.date.le'
|
|
337
|
+
const GT = 'operator.date.gt'
|
|
338
|
+
const LT = 'operator.date.lt'
|
|
339
|
+
const NET = 'operator.date.ne'
|
|
340
|
+
const EQ = 'operator.date.et'
|
|
341
|
+
if (subExpression.indexOf(NLT) > 0) {
|
|
342
|
+
const operator = NLT
|
|
343
|
+
let leftOperand = subExpression
|
|
344
|
+
.substring(0, subExpression.indexOf(operator))
|
|
345
|
+
.trim()
|
|
346
|
+
let rightOperand = subExpression
|
|
347
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
348
|
+
.trim()
|
|
349
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
350
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
351
|
+
}
|
|
352
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
353
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
354
|
+
}
|
|
355
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
356
|
+
const value = new Date(rightOperand).getTime()
|
|
357
|
+
if (preOperand === null) {
|
|
358
|
+
this.result = false
|
|
359
|
+
} else {
|
|
360
|
+
this.result = preOperand >= value
|
|
361
|
+
}
|
|
362
|
+
} else if (subExpression.indexOf(NGT) > 0) {
|
|
363
|
+
const operator = NGT
|
|
364
|
+
let leftOperand = subExpression
|
|
365
|
+
.substring(0, subExpression.indexOf(operator))
|
|
366
|
+
.trim()
|
|
367
|
+
let rightOperand = subExpression
|
|
368
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
369
|
+
.trim()
|
|
370
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
371
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
372
|
+
}
|
|
373
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
374
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
375
|
+
}
|
|
376
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
377
|
+
const value = new Date(rightOperand).getTime()
|
|
378
|
+
if (preOperand === null) {
|
|
379
|
+
this.result = false
|
|
380
|
+
} else {
|
|
381
|
+
this.result = preOperand <= value
|
|
382
|
+
}
|
|
383
|
+
} else if (subExpression.indexOf(GT) > 0) {
|
|
384
|
+
const operator = GT
|
|
385
|
+
let leftOperand = subExpression
|
|
386
|
+
.substring(0, subExpression.indexOf(operator))
|
|
387
|
+
.trim()
|
|
388
|
+
let rightOperand = subExpression
|
|
389
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
390
|
+
.trim()
|
|
391
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
392
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
393
|
+
}
|
|
394
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
395
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
396
|
+
}
|
|
397
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
398
|
+
const value = new Date(rightOperand).getTime()
|
|
399
|
+
if (preOperand === null) {
|
|
400
|
+
this.result = false
|
|
401
|
+
} else {
|
|
402
|
+
this.result = preOperand > value
|
|
403
|
+
}
|
|
404
|
+
} else if (subExpression.indexOf(LT) > 0) {
|
|
405
|
+
const operator = LT
|
|
406
|
+
let leftOperand = subExpression
|
|
407
|
+
.substring(0, subExpression.indexOf(operator))
|
|
408
|
+
.trim()
|
|
409
|
+
let rightOperand = subExpression
|
|
410
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
411
|
+
.trim()
|
|
412
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
413
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
414
|
+
}
|
|
415
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
416
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
417
|
+
}
|
|
418
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
419
|
+
const value = new Date(rightOperand).getTime()
|
|
420
|
+
if (preOperand === null) {
|
|
421
|
+
this.result = false
|
|
422
|
+
} else {
|
|
423
|
+
this.result = preOperand < value
|
|
424
|
+
}
|
|
425
|
+
} else if (subExpression.indexOf(NET) > 0) {
|
|
426
|
+
const operator = NET
|
|
427
|
+
let leftOperand = subExpression
|
|
428
|
+
.substring(0, subExpression.indexOf(operator))
|
|
429
|
+
.trim()
|
|
430
|
+
let rightOperand = subExpression
|
|
431
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
432
|
+
.trim()
|
|
433
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
434
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
435
|
+
}
|
|
436
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
437
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
438
|
+
}
|
|
439
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
440
|
+
const value = new Date(rightOperand).getTime()
|
|
441
|
+
if (preOperand === null) {
|
|
442
|
+
this.result = false
|
|
443
|
+
} else {
|
|
444
|
+
this.result = preOperand !== value
|
|
445
|
+
}
|
|
446
|
+
} else if (subExpression.indexOf(EQ) > 0) {
|
|
447
|
+
const operator = EQ
|
|
448
|
+
let leftOperand = subExpression
|
|
449
|
+
.substring(0, subExpression.indexOf(operator))
|
|
450
|
+
.trim()
|
|
451
|
+
let rightOperand = subExpression
|
|
452
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
453
|
+
.trim()
|
|
454
|
+
if (dataType && dataType === 'DATE' && leftOperand.indexOf(':') > 0) {
|
|
455
|
+
leftOperand = leftOperand.substring(0, leftOperand.indexOf(':'))
|
|
456
|
+
}
|
|
457
|
+
if (dataType && dataType === 'DATE' && rightOperand.indexOf(':') > 0) {
|
|
458
|
+
rightOperand = rightOperand.substring(0, rightOperand.indexOf(':'))
|
|
459
|
+
}
|
|
460
|
+
const preOperand = new Date(leftOperand).getTime()
|
|
461
|
+
const value = new Date(rightOperand).getTime()
|
|
462
|
+
if (this.isEQEmptyValue(preOperand, operator, value)) {
|
|
463
|
+
this.result = true
|
|
464
|
+
} else if (preOperand === null) {
|
|
465
|
+
this.result = false
|
|
466
|
+
} else {
|
|
467
|
+
this.result = preOperand === value
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
class TextCalculator extends CalculatorFactoryWf {
|
|
473
|
+
constructor(subExpression) {
|
|
474
|
+
super()
|
|
475
|
+
const NET = 'operator.text.neq'
|
|
476
|
+
const EQ = 'operator.text.eq'
|
|
477
|
+
const NOT_CONTAINS = 'operator.text.contain.not'
|
|
478
|
+
const CONTAINS = 'operator.text.contain'
|
|
479
|
+
if (subExpression.indexOf(NET) > 0) {
|
|
480
|
+
const operator = NET
|
|
481
|
+
const leftOperand = subExpression
|
|
482
|
+
.substring(0, subExpression.indexOf(operator))
|
|
483
|
+
.trim()
|
|
484
|
+
const rightOperand = subExpression
|
|
485
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
486
|
+
.trim()
|
|
487
|
+
if (leftOperand === null) {
|
|
488
|
+
this.result = false
|
|
489
|
+
} else {
|
|
490
|
+
this.result = leftOperand !== rightOperand
|
|
491
|
+
}
|
|
492
|
+
} else if (subExpression.indexOf(EQ) > 0) {
|
|
493
|
+
const operator = EQ
|
|
494
|
+
const leftOperand = subExpression
|
|
495
|
+
.substring(0, subExpression.indexOf(operator))
|
|
496
|
+
.trim()
|
|
497
|
+
const rightOperand = subExpression
|
|
498
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
499
|
+
.trim()
|
|
500
|
+
if (this.isEQEmptyValue(leftOperand, operator, rightOperand)) {
|
|
501
|
+
this.result = true
|
|
502
|
+
} else if (leftOperand === null) {
|
|
503
|
+
this.result = false
|
|
504
|
+
} else {
|
|
505
|
+
this.result = leftOperand === rightOperand
|
|
506
|
+
}
|
|
507
|
+
} else if (subExpression.indexOf(NOT_CONTAINS) > 0) {
|
|
508
|
+
const operator = NOT_CONTAINS
|
|
509
|
+
const leftOperand = subExpression
|
|
510
|
+
.substring(0, subExpression.indexOf(operator))
|
|
511
|
+
.trim()
|
|
512
|
+
const rightOperand = subExpression
|
|
513
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
514
|
+
.trim()
|
|
515
|
+
if (leftOperand === null) {
|
|
516
|
+
this.result = false
|
|
517
|
+
} else {
|
|
518
|
+
this.result = !leftOperand.includes(rightOperand)
|
|
519
|
+
}
|
|
520
|
+
} else if (subExpression.indexOf(CONTAINS) > 0) {
|
|
521
|
+
const operator = CONTAINS
|
|
522
|
+
const leftOperand = subExpression
|
|
523
|
+
.substring(0, subExpression.indexOf(operator))
|
|
524
|
+
.trim()
|
|
525
|
+
const rightOperand = subExpression
|
|
526
|
+
.substring(subExpression.indexOf(operator) + operator.length)
|
|
527
|
+
.trim()
|
|
528
|
+
if (this.isEQEmptyValue(leftOperand, operator, rightOperand)) {
|
|
529
|
+
this.result = true
|
|
530
|
+
} else if (leftOperand === null) {
|
|
531
|
+
this.result = false
|
|
532
|
+
} else {
|
|
533
|
+
this.result = leftOperand.includes(rightOperand)
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export function getAbstractUserFactoryWf(dataType) {
|
|
540
|
+
switch (dataType) {
|
|
541
|
+
case 'TEXT':
|
|
542
|
+
return TextCalculator
|
|
543
|
+
case 'DOUBLE':
|
|
544
|
+
return AmountCalculator
|
|
545
|
+
case 'FLOAT':
|
|
546
|
+
return AmountCalculator
|
|
547
|
+
case 'INTEGER':
|
|
548
|
+
return NumberCalculator
|
|
549
|
+
case 'LONG':
|
|
550
|
+
return NumberCalculator
|
|
551
|
+
case 'DATE':
|
|
552
|
+
return DateCalculator
|
|
553
|
+
case 'TIME':
|
|
554
|
+
return DateCalculator
|
|
555
|
+
default:
|
|
556
|
+
return TextCalculator
|
|
557
|
+
}
|
|
558
|
+
}
|