fix: show formatted percent, currency & float in grid
(cherry picked from commit 5228755f7f9fe7477d21a8860d89f28c2b302088)
This commit is contained in:
parent
0d7bbafad4
commit
c485f5a0d2
@ -185,6 +185,35 @@
|
|||||||
:value="row[field.fieldname]"
|
:value="row[field.fieldname]"
|
||||||
@change="fieldChange($event.target.value, field, row)"
|
@change="fieldChange($event.target.value, field, row)"
|
||||||
/>
|
/>
|
||||||
|
<FormControl
|
||||||
|
v-else-if="field.fieldtype === 'Float'"
|
||||||
|
class="[&_input]:text-right"
|
||||||
|
type="text"
|
||||||
|
variant="outline"
|
||||||
|
:value="getFormattedFloat(field.fieldname, row)"
|
||||||
|
:disabled="Boolean(field.read_only)"
|
||||||
|
@change="row[field.fieldname] = flt($event.target.value)"
|
||||||
|
/>
|
||||||
|
<FormControl
|
||||||
|
v-else-if="field.fieldtype === 'Percent'"
|
||||||
|
class="[&_input]:text-right"
|
||||||
|
type="text"
|
||||||
|
variant="outline"
|
||||||
|
:value="getFormattedPercent(field.fieldname, row)"
|
||||||
|
:disabled="Boolean(field.read_only)"
|
||||||
|
@change="row[field.fieldname] = flt($event.target.value)"
|
||||||
|
/>
|
||||||
|
<FormControl
|
||||||
|
v-else-if="field.fieldtype === 'Currency'"
|
||||||
|
class="[&_input]:text-right"
|
||||||
|
type="text"
|
||||||
|
variant="outline"
|
||||||
|
:value="
|
||||||
|
getFormattedCurrency(field.fieldname, row, parentDoc)
|
||||||
|
"
|
||||||
|
:disabled="Boolean(field.read_only)"
|
||||||
|
@change="row[field.fieldname] = flt($event.target.value)"
|
||||||
|
/>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-else-if="field.fieldtype === 'Select'"
|
v-else-if="field.fieldtype === 'Select'"
|
||||||
class="text-sm text-ink-gray-8"
|
class="text-sm text-ink-gray-8"
|
||||||
@ -350,6 +379,7 @@ getMeta(props.parentDoctype)
|
|||||||
const { getUser } = usersStore()
|
const { getUser } = usersStore()
|
||||||
|
|
||||||
const rows = defineModel()
|
const rows = defineModel()
|
||||||
|
const parentDoc = defineModel('parent')
|
||||||
const showRowList = ref(new Array(rows.value?.length || []).fill(false))
|
const showRowList = ref(new Array(rows.value?.length || []).fill(false))
|
||||||
const selectedRows = reactive(new Set())
|
const selectedRows = reactive(new Set())
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
<Grid
|
<Grid
|
||||||
v-else-if="field.fieldtype === 'Table'"
|
v-else-if="field.fieldtype === 'Table'"
|
||||||
v-model="data[field.fieldname]"
|
v-model="data[field.fieldname]"
|
||||||
|
v-model:parent="data"
|
||||||
:doctype="field.options"
|
:doctype="field.options"
|
||||||
:parentDoctype="doctype"
|
:parentDoctype="doctype"
|
||||||
:parentFieldname="field.fieldname"
|
:parentFieldname="field.fieldname"
|
||||||
|
|||||||
@ -39,7 +39,7 @@ export function getMeta(doctype) {
|
|||||||
return formatNumber(doc[fieldname], '', precision)
|
return formatNumber(doc[fieldname], '', precision)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFormattedCurrency(fieldname, doc) {
|
function getFormattedCurrency(fieldname, doc, parentDoc = null) {
|
||||||
let currency = window.sysdefaults.currency || 'USD'
|
let currency = window.sysdefaults.currency || 'USD'
|
||||||
let df = doctypeMeta[doctype]?.fields.find((f) => f.fieldname == fieldname)
|
let df = doctypeMeta[doctype]?.fields.find((f) => f.fieldname == fieldname)
|
||||||
let precision = df?.precision || null
|
let precision = df?.precision || null
|
||||||
@ -47,8 +47,11 @@ export function getMeta(doctype) {
|
|||||||
if (df && df.options) {
|
if (df && df.options) {
|
||||||
if (df.options.indexOf(':') != -1) {
|
if (df.options.indexOf(':') != -1) {
|
||||||
currency = currency
|
currency = currency
|
||||||
|
// TODO: Handle this case
|
||||||
} else if (doc && doc[df.options]) {
|
} else if (doc && doc[df.options]) {
|
||||||
currency = doc[df.options]
|
currency = doc[df.options]
|
||||||
|
} else if (parentDoc && parentDoc[df.options]) {
|
||||||
|
currency = parentDoc[df.options]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user