fix readonly formula values

pull/423/head
Pete Matsyburka 10 months ago
parent 97ecdf2ff0
commit fe3e8fba3e

@ -15,7 +15,7 @@
/> />
<FieldAreas <FieldAreas
:steps="readonlyConditionalFields.map((e) => [e])" :steps="readonlyConditionalFields.map((e) => [e])"
:values="readonlyConditionalFields.reduce((acc, f) => { acc[f.uuid] = (values[f.uuid] || f.default_value); return acc }, {})" :values="readonlyConditionalFieldValues"
:submitter="submitter" :submitter="submitter"
:attachments-index="attachmentsIndex" :attachments-index="attachmentsIndex"
:submittable="false" :submittable="false"
@ -23,6 +23,7 @@
<FormulaFieldAreas <FormulaFieldAreas
v-if="formulaFields.length" v-if="formulaFields.length"
:fields="formulaFields" :fields="formulaFields"
:readonly-values="readonlyConditionalFieldValues"
:values="values" :values="values"
/> />
<Teleport <Teleport
@ -857,6 +858,13 @@ export default {
isMobile () { isMobile () {
return /android|iphone|ipad/i.test(navigator.userAgent) return /android|iphone|ipad/i.test(navigator.userAgent)
}, },
readonlyConditionalFieldValues () {
return this.readonlyConditionalFields.reduce((acc, f) => {
acc[f.uuid] = (this.values[f.uuid] || f.default_value)
return acc
}, {})
},
attachmentConditionsIndex () { attachmentConditionsIndex () {
return this.schema.reduce((acc, item) => { return this.schema.reduce((acc, item) => {
if (item.conditions?.length) { if (item.conditions?.length) {

@ -38,6 +38,11 @@ export default {
required: false, required: false,
default: () => [] default: () => []
}, },
readonlyValues: {
type: Object,
required: false,
default: () => ({})
},
values: { values: {
type: Object, type: Object,
required: false, required: false,
@ -87,7 +92,7 @@ export default {
}, },
calculateFormula (field) { calculateFormula (field) {
const transformedFormula = field.preferences.formula.replace(/{{(.*?)}}/g, (match, uuid) => { const transformedFormula = field.preferences.formula.replace(/{{(.*?)}}/g, (match, uuid) => {
return this.values[uuid] || 0.0 return this.readonlyValues[uuid] || this.values[uuid] || 0.0
}) })
return this.math.evaluate(transformedFormula.toLowerCase()) return this.math.evaluate(transformedFormula.toLowerCase())

Loading…
Cancel
Save