qingcheng-xiaochengxu/pages/personCenter/bindBankCard/bindBankCard.js

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() {},
});