28 lines
1.4 KiB
JavaScript
28 lines
1.4 KiB
JavaScript
const { request, clientRequestId } = require('../../utils/api.js')
|
|
|
|
Page({
|
|
data: {
|
|
form: { city: '', contactName: '', contactPhone: '', message: '' },
|
|
clientRequestId: '', applicationNo: '', submitting: false, errorMessage: '',
|
|
},
|
|
onLoad() { this.setData({ clientRequestId: clientRequestId('franchise') }) },
|
|
onInput(event) { const field = event.currentTarget.dataset.field; this.setData({ [`form.${field}`]: event.detail.value }) },
|
|
async submit() {
|
|
const form = this.data.form
|
|
if (!form.city.trim() || !form.contactName.trim() || !/^\+?[0-9 -]{6,20}$/.test(form.contactPhone.trim())) {
|
|
this.setData({ errorMessage: '请填写意向城市、联系人和有效联系电话' }); return
|
|
}
|
|
this.setData({ submitting: true, errorMessage: '' })
|
|
try {
|
|
const response = await request('/franchise-applications', { method: 'POST', data: {
|
|
city: form.city.trim(), contactName: form.contactName.trim(),
|
|
contactPhone: form.contactPhone.trim(), message: form.message.trim(),
|
|
clientRequestId: this.data.clientRequestId,
|
|
} })
|
|
this.setData({ applicationNo: response.data.applicationNo })
|
|
} catch (error) { this.setData({ errorMessage: error.message || '申请提交失败,请稍后重试' }) }
|
|
finally { this.setData({ submitting: false }) }
|
|
},
|
|
backHome() { wx.reLaunch({ url: '/pages/index/index' }) },
|
|
})
|