oak-general-business/app/pages/address/upsert/index.ts

56 lines
1.5 KiB
TypeScript

export default OakPage({
path: 'address:upsert',
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: async ({ data: address }) => ({
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: any) {
const { dataset, value } = this.resolveInput(input);
this.setUpdateData(dataset!.attr, value);
},
callAreaPicker() {
this.callPicker('area', {
depth: 3,
});
},
async confirm() {
await this.execute(this.props.oakId ? 'update' : 'create');
if (this.props.oakFrom === 'address:list') {
this.navigateBack();
}
},
reset() {
this.resetUpdateData();
},
},
});