oak-general-business/es/components/address/upsert/index.js

61 lines
1.6 KiB
JavaScript

export default OakComponent({
entity: 'address',
projection: {
id: 1,
name: 1,
phone: 1,
detail: 1,
area: {
id: 1,
name: 1,
parent: {
id: 1,
name: 1,
parent: {
id: 1,
name: 1,
},
},
},
},
isList: false,
formData({ data: address }) {
return {
name: address?.name,
phone: address?.phone,
// areaName: `${address?.area?.parent.parent.name}${address?.area?.parent.name}${address?.area?.name}`,
// provinceName: address?.area?.parent.parent.name,
districtName: address?.area?.name,
area: address?.area,
areaText: address?.area &&
`${address?.area?.parent?.parent?.name}${address?.area?.parent?.name}${address?.area?.name}`,
detail: address?.detail,
};
},
methods: {
setValue(input) {
const { currentTarget, detail } = input;
const { dataset } = currentTarget;
const { value } = detail;
const { attr } = dataset;
this.update({
[attr]: value,
});
},
callAreaPicker() {
this.navigateTo({
url: '/pickers/area',
}, {
depth: 3,
});
},
async confirm() {
await this.execute();
this.navigateBack();
},
reset() {
this.clean();
},
},
});