268 lines
6.5 KiB
JavaScript
268 lines
6.5 KiB
JavaScript
import { baseUrl } from "../../../request"
|
|
|
|
// pages/personCenter/bindBankCard/bindBankCard.js
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
id: 0, // 账户ID
|
|
cardHolder: '', // 持卡人
|
|
idCardNumber: '', // 身份证号
|
|
phoneNumber: '', // 手机号
|
|
bankCardNumber: '', // 银行卡号
|
|
bankName: '', // 开户银行
|
|
isUpdate: false, // 是否更新
|
|
},
|
|
|
|
|
|
/**
|
|
* 更新按钮点击事件
|
|
*/
|
|
updateInfo() {
|
|
if (this.validateForm()) {
|
|
// 构建请求体
|
|
const requestData = {
|
|
id: this.data.id,
|
|
cardHolder: this.data.cardHolder,
|
|
idCardNumber: this.data.idCardNumber,
|
|
phoneNumber: this.data.phoneNumber,
|
|
bankCardNumber: this.data.bankCardNumber,
|
|
openBank: this.data.bankName, // 添加开户银行字段
|
|
};
|
|
|
|
// 发送请求到后台接口
|
|
wx.request({
|
|
url: baseUrl + '/userAccount/update', // 替换成实际接口地址
|
|
method: 'POST',
|
|
header: {
|
|
Authorization: wx.getStorageSync('token')
|
|
},
|
|
data: requestData,
|
|
success(res) {
|
|
// console.log('后端返回---->',res.data);
|
|
// 成功的回调
|
|
wx.showToast({
|
|
title: '更新成功',
|
|
icon: 'success',
|
|
});
|
|
// 这里可以跳转到其他页面
|
|
wx.navigateTo({
|
|
url: '/pages/personCenter/withdrawalAccount/withdrawalAccount',
|
|
});
|
|
},
|
|
fail(err) {
|
|
// 失败的回调
|
|
wx.showToast({
|
|
title: '绑定失败,请重试',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
// 获取当前账户信息
|
|
getAccountInfo() {
|
|
wx.request({
|
|
url: baseUrl + '/userAccount/queryById', // 替换为你的后端接口
|
|
method: 'POST',
|
|
header: {
|
|
Authorization: wx.getStorageSync('token'),
|
|
},
|
|
success: (res) => {
|
|
// console.log('当前账户是---->',res.data.data);
|
|
if (res.data.code === 1) {
|
|
this.setData({
|
|
id: res.data.data.id,
|
|
cardHolder: res.data.data.cardHolder,
|
|
idCardNumber: res.data.data.idCardNumber,
|
|
phoneNumber: res.data.data.phoneNumber,
|
|
bankCardNumber: res.data.data.bankCardNumber,
|
|
bankName: res.data.data.openBank
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: '获取数据失败',
|
|
icon: 'none'
|
|
});
|
|
}
|
|
},
|
|
fail: () => {
|
|
wx.showToast({
|
|
title: '请求失败',
|
|
icon: 'none'
|
|
});
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 处理输入框的变化
|
|
*/
|
|
handleInputChange(e) {
|
|
const { field } = e.target.dataset; // 获取字段名
|
|
this.setData({
|
|
[field]: e.detail.value, // 动态更新输入框数据
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 验证表单
|
|
*/
|
|
validateForm() {
|
|
const { cardHolder, idCardNumber, phoneNumber, bankCardNumber, bankName } = this.data;
|
|
|
|
// 检查必填字段是否为空
|
|
if (!cardHolder || !idCardNumber || !phoneNumber || !bankCardNumber || !bankName) {
|
|
wx.showToast({
|
|
title: '用户信息不全',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
// 检查手机号是否为 11 位且只包含数字
|
|
const phonePattern = /^[0-9]{11}$/;
|
|
if (!phonePattern.test(phoneNumber)) {
|
|
wx.showToast({
|
|
title: '手机号必须是 11 位数字',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
// 检查身份证号是否为 18 位且只包含数字
|
|
const idCardPattern = /^[0-9]{18}$/;
|
|
if (!idCardPattern.test(idCardNumber)) {
|
|
wx.showToast({
|
|
title: '身份证号必须是 18 位数字',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
// 检查银行卡号是否为 16 位且只包含数字
|
|
const bankCardPattern = /^[0-9]{16}$/;
|
|
if (!bankCardPattern.test(bankCardNumber)) {
|
|
wx.showToast({
|
|
title: '银行卡号必须是 16 位数字',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
// 检查持卡人不能是纯数字
|
|
const cardHolderPattern = /^\d+$/;
|
|
if (cardHolderPattern.test(cardHolder)) {
|
|
wx.showToast({
|
|
title: '持卡人姓名不能是数字',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
// 检查开户银行不能包含字母或数字,只能是中文
|
|
const bankNamePattern = /^[\u4e00-\u9fa5]+$/; // 只允许中文字符
|
|
if (!bankNamePattern.test(bankName)) {
|
|
wx.showToast({
|
|
title: '开户银行只能包含中文字符',
|
|
icon: 'none',
|
|
});
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
},
|
|
|
|
/**
|
|
* 保存按钮点击事件
|
|
*/
|
|
saveInfo() {
|
|
if (this.validateForm()) {
|
|
// 构建请求体
|
|
const requestData = {
|
|
cardHolder: this.data.cardHolder,
|
|
idCardNumber: this.data.idCardNumber,
|
|
phoneNumber: this.data.phoneNumber,
|
|
bankCardNumber: this.data.bankCardNumber,
|
|
openBank: this.data.bankName, // 添加开户银行字段
|
|
};
|
|
|
|
// 发送请求到后台接口
|
|
wx.request({
|
|
url: baseUrl + '/userAccount/add', // 替换成实际接口地址
|
|
method: 'POST',
|
|
header: {
|
|
Authorization: wx.getStorageSync('token')
|
|
},
|
|
data: requestData,
|
|
success(res) {
|
|
console.log('后端返回---->',res.data);
|
|
// 成功的回调
|
|
wx.showToast({
|
|
title: '绑定成功',
|
|
icon: 'success',
|
|
});
|
|
// 这里可以跳转到其他页面
|
|
wx.navigateTo({
|
|
url: '/pages/personCenter/withdrawal/withdrawal',
|
|
});
|
|
},
|
|
fail(err) {
|
|
// 失败的回调
|
|
wx.showToast({
|
|
title: '绑定失败,请重试',
|
|
icon: 'none',
|
|
});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
// console.log('---->',options.isUpdate);
|
|
this.getAccountInfo()
|
|
this.setData({
|
|
isUpdate: options.isUpdate
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {},
|
|
}); |