Files
LinHelp/miniapp/miniprogram/pages/address/index.js
2026-07-07 16:38:13 +08:00

65 lines
1.5 KiB
JavaScript

const { listAddresses, createAddress, setDefaultAddress } = require('../../api/addressApi')
const { setField } = require('../../utils/request')
Page({
data: {
addresses: [],
submitting: false,
form: {
contactName: '',
phone: '',
building: '',
room: '',
detail: '',
default: false
}
},
onLoad() {
this.load()
},
load() {
return listAddresses()
.then((addresses) => this.setData({ addresses: addresses || [] }))
.catch((error) => wx.showToast({ title: error.message, icon: 'none' }))
},
onFieldInput(event) {
setField(this, event)
},
submit() {
if (this.data.submitting) {
return
}
this.setData({ submitting: true })
createAddress(this.data.form)
.then(() => {
wx.showToast({ title: '已保存' })
this.setData({
form: {
contactName: '',
phone: '',
building: '',
room: '',
detail: '',
default: false
}
})
return this.load()
})
.catch((error) => wx.showToast({ title: error.message, icon: 'none' }))
.finally(() => this.setData({ submitting: false }))
},
setDefault(event) {
setDefaultAddress(event.currentTarget.dataset.id)
.then(() => {
wx.showToast({ title: '已设默认' })
return this.load()
})
.catch((error) => wx.showToast({ title: error.message, icon: 'none' }))
}
})