fix: update and reset value in triggerOnChange method
This commit is contained in:
parent
fdca27bb81
commit
7d79cbf5bd
@ -509,8 +509,7 @@ const deleteRows = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fieldChange(value, field, row) {
|
function fieldChange(value, field, row) {
|
||||||
row[field.fieldname] = value
|
triggerOnChange(field.fieldname, value, row)
|
||||||
triggerOnChange(field.fieldname, row)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDefaultValue(defaultValue, fieldtype) {
|
function getDefaultValue(defaultValue, fieldtype) {
|
||||||
|
|||||||
@ -332,12 +332,10 @@ const getPlaceholder = (field) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fieldChange(value, df) {
|
function fieldChange(value, df) {
|
||||||
data.value[df.fieldname] = value
|
|
||||||
|
|
||||||
if (isGridRow) {
|
if (isGridRow) {
|
||||||
triggerOnChange(df.fieldname, data.value)
|
triggerOnChange(df.fieldname, value, data.value)
|
||||||
} else {
|
} else {
|
||||||
triggerOnChange(df.fieldname)
|
triggerOnChange(df.fieldname, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -489,9 +489,7 @@ function parsedField(field) {
|
|||||||
async function fieldChange(value, df) {
|
async function fieldChange(value, df) {
|
||||||
if (props.preview) return
|
if (props.preview) return
|
||||||
|
|
||||||
document.doc[df.fieldname] = value
|
await triggerOnChange(df.fieldname, value)
|
||||||
|
|
||||||
await triggerOnChange(df.fieldname)
|
|
||||||
|
|
||||||
document.save.submit(null, {
|
document.save.submit(null, {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
|
|||||||
@ -117,20 +117,26 @@ export function useDocument(doctype, docname) {
|
|||||||
await trigger(handler)
|
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 () {
|
const handler = async function () {
|
||||||
|
this.value = value
|
||||||
|
this.oldValue = oldValue
|
||||||
if (row) {
|
if (row) {
|
||||||
this.currentRowIdx = row.idx
|
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 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) {
|
async function triggerOnRowAdd(row) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user