diff --git a/frontend/src/components/Controls/Grid.vue b/frontend/src/components/Controls/Grid.vue index 7a14049a..7f879bd2 100644 --- a/frontend/src/components/Controls/Grid.vue +++ b/frontend/src/components/Controls/Grid.vue @@ -104,13 +104,14 @@ ['Link', 'Dynamic Link'].includes(field.fieldtype) " class="text-sm text-ink-gray-8" - v-model="row[field.fieldname]" + :value="row[field.fieldname]" :doctype=" field.fieldtype == 'Link' ? field.options : row[field.options] " :filters="field.filters" + @change="(v) => fieldChange(v, field, row)" /> @@ -148,23 +149,26 @@ class="cursor-pointer duration-300" v-model="row[field.fieldname]" :disabled="!gridSettings.editable_grid" + @change="(e) => fieldChange(e.target.checked, field, row)" /> - + + + + @@ -265,6 +297,7 @@ import EditIcon from '@/components/Icons/EditIcon.vue' import Link from '@/components/Controls/Link.vue' import UserAvatar from '@/components/UserAvatar.vue' import { getRandom, getFormat, isTouchScreenDevice } from '@/utils' +import { flt } from '@/utils/numberFormat.js' import { usersStore } from '@/stores/users' import { getMeta } from '@/stores/meta' import { @@ -276,7 +309,7 @@ import { Tooltip, } from 'frappe-ui' import Draggable from 'vuedraggable' -import { ref, reactive, computed } from 'vue' +import { ref, reactive, computed, inject } from 'vue' const props = defineProps({ label: { @@ -293,9 +326,17 @@ const props = defineProps({ }, }) -const { getGridViewSettings, getFields, getGridSettings } = getMeta( - props.doctype, -) +const triggerOnChange = inject('triggerOnChange') +const fieldname = inject('fieldname') + +const { + getGridViewSettings, + getFields, + getFormattedPercent, + getFormattedFloat, + getFormattedCurrency, + getGridSettings, +} = getMeta(props.doctype) getMeta(props.parentDoctype) const { getUser } = usersStore() @@ -382,6 +423,15 @@ const deleteRows = () => { showRowList.value.pop() selectedRows.clear() } + +function fieldChange(value, field, row) { + row[field.fieldname] = value + triggerOnChange(field.fieldname, { + fieldname: fieldname, + dt: props.doctype, + dn: row.name, + }) +}