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

72 lines
1.7 KiB
JavaScript

const { calculateExpressFeeCent, createExpressOrder } = require('../../api/expressApi')
const { listAddresses } = require('../../api/addressApi')
const { setField } = require('../../utils/request')
Page({
data: {
addresses: [],
addressIndex: 0,
feeCent: 300,
submitting: false,
form: {
expressCompany: '',
pickupCode: '',
pickupAddress: '',
receiverPhone: '',
addressId: null,
packageCount: 1,
remark: ''
}
},
onLoad() {
listAddresses()
.then((addresses) => {
this.setData({
addresses: addresses || [],
'form.addressId': addresses && addresses[0] ? addresses[0].id : null
})
})
.catch(() => {})
},
onFieldInput(event) {
setField(this, event)
},
onAddressChange(event) {
const index = Number(event.detail.value)
const address = this.data.addresses[index]
this.setData({
addressIndex: index,
'form.addressId': address ? address.id : null
})
},
onPackageCountChange(event) {
const packageCount = Number(event.detail.value || 1)
this.setData({
'form.packageCount': packageCount,
feeCent: calculateExpressFeeCent(packageCount)
})
},
submit() {
if (this.data.submitting) {
return
}
if (!this.data.form.addressId) {
wx.showToast({ title: '请先添加地址', icon: 'none' })
return
}
this.setData({ submitting: true })
createExpressOrder(this.data.form)
.then(() => {
wx.showToast({ title: '已提交' })
wx.navigateTo({ url: '/pages/orders/index' })
})
.catch((error) => wx.showToast({ title: error.message, icon: 'none' }))
.finally(() => this.setData({ submitting: false }))
}
})