fix: update and reset value in triggerOnChange method
(cherry picked from commit 7d79cbf5bdd664e76fb90b994d0d4f5c257c0ed0)
This commit is contained in:
parent
1c7ea0b44b
commit
b0474e8764
@ -509,8 +509,7 @@ const deleteRows = () => {
|
||||
}
|
||||
|
||||
function fieldChange(value, field, row) {
|
||||
row[field.fieldname] = value
|
||||
triggerOnChange(field.fieldname, row)
|
||||
triggerOnChange(field.fieldname, value, row)
|
||||
}
|
||||
|
||||
function getDefaultValue(defaultValue, fieldtype) {
|
||||
|
||||
@ -332,12 +332,10 @@ const getPlaceholder = (field) => {
|
||||
}
|
||||
|
||||
function fieldChange(value, df) {
|
||||
data.value[df.fieldname] = value
|
||||
|
||||
if (isGridRow) {
|
||||
triggerOnChange(df.fieldname, data.value)
|
||||
triggerOnChange(df.fieldname, value, data.value)
|
||||
} else {
|
||||
triggerOnChange(df.fieldname)
|
||||
triggerOnChange(df.fieldname, value)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -489,9 +489,7 @@ function parsedField(field) {
|
||||
async function fieldChange(value, df) {
|
||||
if (props.preview) return
|
||||
|
||||
document.doc[df.fieldname] = value
|
||||
|
||||
await triggerOnChange(df.fieldname)
|
||||
await triggerOnChange(df.fieldname, value)
|
||||
|
||||
document.save.submit(null, {
|
||||
onSuccess: () => {
|
||||
|
||||
@ -117,20 +117,26 @@ export function useDocument(doctype, docname) {
|
||||
await trigger(handler)
|
||||
}
|
||||
|
||||
async function triggerOnChange(fieldname, row) {
|
||||
async function triggerOnChange(fieldname, value, row) {
|
||||
const oldValue = documentsCache[doctype][docname || ''].doc[fieldname]
|
||||
documentsCache[doctype][docname || ''].doc[fieldname] = value
|
||||
|
||||
const handler = async function () {
|
||||
this.value = value
|
||||
this.oldValue = oldValue
|
||||
if (row) {
|
||||
this.currentRowIdx = row.idx
|
||||
this.value = row[fieldname]
|
||||
this.oldValue = getOldValue(fieldname, row)
|
||||
} else {
|
||||
this.value = documentsCache[doctype][docname || ''].doc[fieldname]
|
||||
this.oldValue = getOldValue(fieldname)
|
||||
}
|
||||
await this[fieldname]?.()
|
||||
}
|
||||
|
||||
await trigger(handler, row)
|
||||
try {
|
||||
await trigger(handler, row)
|
||||
} catch (error) {
|
||||
documentsCache[doctype][docname || ''].doc[fieldname] = oldValue
|
||||
console.error(handler)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
async function triggerOnRowAdd(row) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user