mirror of
https://github.com/frappe/books.git
synced 2025-01-12 19:06:38 +00:00
Input Description & Dynamic Labels
This commit is contained in:
parent
2a1673dfe3
commit
82fb95debc
@ -49,6 +49,7 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.setLabelOptions();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getDocField(fieldname) {
|
getDocField(fieldname) {
|
||||||
@ -72,6 +73,13 @@ export default {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
setLabelOptions() {
|
||||||
|
this.fields.forEach(field => {
|
||||||
|
if (field.labelOption) {
|
||||||
|
field.labelOption = field.labelOption(this.doc);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
updateDoc(fieldname, value) {
|
updateDoc(fieldname, value) {
|
||||||
this.doc.set(fieldname, value);
|
this.doc.set(fieldname, value);
|
||||||
this.$emit('updateDoc', {
|
this.$emit('updateDoc', {
|
||||||
|
@ -61,16 +61,38 @@ export default {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
getChildrenElement(h) {
|
getChildrenElement(h) {
|
||||||
return [this.getLabelElement(h), this.getInputElement(h)];
|
return [
|
||||||
|
this.getLabelElement(h),
|
||||||
|
this.getInputElement(h),
|
||||||
|
this.getDescriptionElement(h)
|
||||||
|
];
|
||||||
},
|
},
|
||||||
getLabelElement(h) {
|
getLabelElement(h) {
|
||||||
|
const hasLabelOptions = Boolean(this.docfield.labelOption);
|
||||||
|
let label = this.docfield.label;
|
||||||
|
|
||||||
|
if (hasLabelOptions) {
|
||||||
|
const replaceableKeys = Object.keys(this.docfield.labelOption);
|
||||||
|
for (let key of replaceableKeys) {
|
||||||
|
label = label.replace(key.toString(), this.docfield.labelOption[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return h('label', {
|
return h('label', {
|
||||||
class: [this.labelClass, 'text-muted'],
|
class: [this.labelClass, 'text-muted'],
|
||||||
attrs: {
|
attrs: {
|
||||||
for: this.id
|
for: this.id
|
||||||
},
|
},
|
||||||
domProps: {
|
domProps: {
|
||||||
textContent: this.docfield.label
|
textContent: label
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getDescriptionElement(h) {
|
||||||
|
return h('small', {
|
||||||
|
class: ['form-text', 'text-muted'],
|
||||||
|
domProps: {
|
||||||
|
textContent: this.docfield.description || ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user