cloud-web-corejs 1.0.54-dev.390 → 1.0.54-dev.391
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
|
@@ -335,8 +335,8 @@ modules = {
|
|
|
335
335
|
calculateFormula(formula,data){
|
|
336
336
|
return calculateFormula2(formula, data, this)
|
|
337
337
|
},
|
|
338
|
-
baseCalculateFormula(formula){
|
|
339
|
-
return baseCalculateFormula(formula,
|
|
338
|
+
baseCalculateFormula(formula, row){
|
|
339
|
+
return baseCalculateFormula(this,formula, row)
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
}
|
|
@@ -125,8 +125,7 @@ export function calculateFormula(VFR, DSV, formulaJs, formulaFieldRef, changedFi
|
|
|
125
125
|
return formulaValue
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
export function baseCalculateFormula(formulaStr,
|
|
129
|
-
|
|
128
|
+
export function baseCalculateFormula(that,formulaStr, row /* VFR, DSV, formulaJs, formulaFieldRef, changedFieldRef */) {
|
|
130
129
|
if(!formulaStr)return
|
|
131
130
|
let formula = formulaStr;
|
|
132
131
|
let VFR = that.getFormRef();
|
|
@@ -141,7 +140,7 @@ export function baseCalculateFormula(formulaStr, data, that /* VFR, DSV, formula
|
|
|
141
140
|
} */
|
|
142
141
|
}
|
|
143
142
|
|
|
144
|
-
formula = baseReplaceFieldsAndFunctionsOfFormula(VFR, formulaFieldRef,formula) //替换字段值
|
|
143
|
+
formula = baseReplaceFieldsAndFunctionsOfFormula(VFR, formulaFieldRef,formula,row) //替换字段值
|
|
145
144
|
if (!formula) {
|
|
146
145
|
return
|
|
147
146
|
}
|
|
@@ -163,13 +162,18 @@ export function baseCalculateFormula(formulaStr, data, that /* VFR, DSV, formula
|
|
|
163
162
|
return formulaValue
|
|
164
163
|
}
|
|
165
164
|
|
|
165
|
+
|
|
166
|
+
function getFieldKeyName(widget) {
|
|
167
|
+
let o = widget.options.name;
|
|
168
|
+
return (widget.options.keyNameEnabled && widget.options.keyName) || o;
|
|
169
|
+
}
|
|
166
170
|
/**
|
|
167
171
|
* 替换计算公式中的字段值
|
|
168
172
|
* @param VFR
|
|
169
173
|
* @param formulaFieldRef
|
|
170
174
|
* @returns {*}
|
|
171
175
|
*/
|
|
172
|
-
export function baseReplaceFieldsAndFunctionsOfFormula(VFR, formulaFieldRef, formula) {
|
|
176
|
+
export function baseReplaceFieldsAndFunctionsOfFormula(VFR, formulaFieldRef, formula, row) {
|
|
173
177
|
// let formula = formulaFieldRef.field.options.formula
|
|
174
178
|
const matchResult = formula.match(FORMULA_REG_EXP)
|
|
175
179
|
if (!matchResult) {
|
|
@@ -197,15 +201,29 @@ export function baseReplaceFieldsAndFunctionsOfFormula(VFR, formulaFieldRef, for
|
|
|
197
201
|
resultFormula = resultFormula.replace(mi, fieldRef.getValue())
|
|
198
202
|
} else { //getWidgetRef找不到,则可能是子表单字段
|
|
199
203
|
const subFormNameOfField = VFR.getSubFormNameOfWidget(fieldSchema.options.name)
|
|
200
|
-
if (!!formulaFieldRef.subFormItemFlag || formulaFieldRef.tableParam) {
|
|
204
|
+
if (!!formulaFieldRef.subFormItemFlag || formulaFieldRef.tableParam || row) {
|
|
201
205
|
/* 如果当前计算字段是子表单字段,要判断公式中的子表单字段是否和当前计算字段是否属于同一子表单!! */
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
206
|
+
if(row){
|
|
207
|
+
let fieldKeyName = getFieldKeyName(fieldSchema)
|
|
208
|
+
let value = row[fieldKeyName];
|
|
209
|
+
resultFormula = resultFormula.replaceAll(mi, value)
|
|
210
|
+
/*
|
|
211
|
+
let subFormRowId = row._X_ROW_KEY
|
|
212
|
+
fieldRef = VFR.getWidgetRef(fieldSchema.options.name + '_' + subFormRowId)
|
|
213
|
+
if (!!fieldRef) {
|
|
214
|
+
let value = fieldRef.getValue();
|
|
215
|
+
resultFormula = resultFormula.replaceAll(mi, value)
|
|
216
|
+
} else {
|
|
217
|
+
de
|
|
218
|
+
quitFlag = true
|
|
219
|
+
console.error('Field not found: ' + fieldSchema.options.label)
|
|
220
|
+
} */
|
|
221
|
+
}else if (subFormNameOfField === formulaFieldRef?.parentWidget?.options?.name) {
|
|
205
222
|
let subFormRowId = formulaFieldRef.tableParam.row._X_ROW_KEY
|
|
206
223
|
fieldRef = VFR.getWidgetRef(fieldSchema.options.name + '_' + subFormRowId)
|
|
207
224
|
if (!!fieldRef) {
|
|
208
|
-
|
|
225
|
+
let value = fieldRef.getValue();
|
|
226
|
+
resultFormula = resultFormula.replaceAll(mi, value)
|
|
209
227
|
} else {
|
|
210
228
|
quitFlag = true
|
|
211
229
|
console.error('Field not found: ' + fieldSchema.options.label)
|