123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- const app = getApp()
- const utils = require("../../utils/util.js")
- Page({
- data: {
- selectedTag: '',
- showCustomInput: false,
- customTagLength: 0,
- showDrawer: false,
- showPreview: false,
- // 是否可以切换水务公司
- isChange: true,
- // 新增数据
- waterCompany: '',
- waterCompanyList: app.globalData.waterCompanys,
- //当前用户的默认水务公司的下标
- waterCompanyIndex: [0],
- waterCompanyId: app.globalData.launchPara,
- showWaterCompanyPicker: false,
-
- huHao: '',
- huMing: '',
- customTag: '',
- tagLength: 0,
- showQueryMethods: false,
- // 水站联系方式
- phoneQueryList: [
- ],
- // 户号预览图地址
- ylt: '',
- isBinding: false // 添加一个标记,表示是否正在绑定中
- },
- selectTag: function(e) {
- const tag = e.currentTarget.dataset.tag;
- this.setData({
- selectedTag: tag,
- showCustomInput: tag === '自定义',
- customTag: tag === '自定义' ? '' : tag,
- tagLength: 0 // 重置计数器
- });
- },
- onCustomInput(e) {
- const value = e.detail.value;
- this.setData({
- customTagLength: value.length,
- customTag: value
- });
- },
- // 显示抽屉
- showDrawer() {
- this.setData({
- showDrawer: true
- });
- },
- // 隐藏抽屉
- hideDrawer() {
- this.setData({
- showDrawer: false
- });
- },
- // 拨打电话
- makePhoneCall(e) {
- const phone = e.currentTarget.dataset.phone;
- wx.makePhoneCall({
- phoneNumber: phone
- });
- },
- // 修改预览图片方法
- previewImage: function() {
- this.setData({
- showPreview: true
- });
- },
- // 关闭预览
- closePreview: function() {
- this.setData({
- showPreview: false
- });
- },
- // 防止点击图片内容时关闭预览
- preventBubble: function() {
- return;
- },
- // 显示水站公司选择器
- showWaterCompanyPicker: function() {
-
- this.setData({
- showWaterCompanyPicker: true,
- waterCompanyIndex: this.data.waterCompanyIndex
- });
- },
- // 隐藏水站公司选择器
- hideWaterCompanyPicker: function() {
- this.setData({
- showWaterCompanyPicker: false
- });
- },
- // 水站公司选择变化
- onWaterCompanyChange: function(e) {
-
- this.setData({
- waterCompanyIndex: e.detail.value
- });
- },
- // 确认水站公司选择
- confirmWaterCompany: function(e) {
- const index = this.data.waterCompanyIndex[0];
- this.setData({
- waterCompanyIndex: this.data.waterCompanyIndex,
- waterCompany: this.data.waterCompanyList[index].name,
- showWaterCompanyPicker: false,
- phoneQueryList: this.data.waterCompanyList[index].businessPoint.map((data,index)=>{
- return {
- id: index+1,
- name: index+1+'、'+data.address,
- phone: data.contactphone,
- time: data.worktime
- }
- }),
- ylt:app.globalData.imgPreviewUrl+"pagePart/"+this.data.waterCompanyList[index].swCompanyInfo.overduenoticeimage.split("-;-")[0]
-
- });
- },
- // 户号输入
- onHuHaoInput: function(e) {
- // 使用正则表达式去除非数字字符
- const value = e.detail.value.replace(/[^\d]/g, '');
- // 更新输入框的值
- this.setData({
- huHao: value
- });
- },
- // 户名输入
- onHuMingInput: function(e) {
- // 使用正则表达式去除所有空格
- const value = e.detail.value.replace(/\s/g, '');
- this.setData({
- huMing: value
- });
- },
- // 确认绑定
- confirmBinding: function() {
- // 如果已经在处理绑定请求,则直接返回
- if (this.data.isBinding) {
- return;
- }
- // 设置绑定状态为true,防止重复点击
- this.setData({
- isBinding: true
- });
- // 验证必填字段
- if (!this.data.waterCompany) {
- wx.showToast({
- title: '请选择水站公司',
- icon: 'none'
- });
- this.setData({ isBinding: false }); // 重置状态
- return;
- }
- if (!this.data.huHao) {
- wx.showToast({
- title: '请输入户号',
- icon: 'none'
- });
- this.setData({ isBinding: false }); // 重置状态
- return;
- }
- if (!this.data.huMing) {
- wx.showToast({
- title: '请输入户名',
- icon: 'none'
- });
- this.setData({ isBinding: false }); // 重置状态
- return;
- }
- // 获取最终的标签值
- let finalTag = this.data.selectedTag;
- // debugger
- if (this.data.selectedTag === '自定义') {
- finalTag = this.data.customTag || ''; // 使用用户输入的自定义标签
- }
-
- // 如果选择了自定义但没有输入内容,提示用户
- if (this.data.selectedTag === '自定义' && !this.data.customTag) {
- wx.showToast({
- title: '请输入自定义标签名称',
- icon: 'none'
- });
- this.setData({ isBinding: false }); // 重置状态
- return;
- }
-
- // 构建保存的数据对象
- const bindingData = {
- bindWaterCompany: this.data.waterCompanyList[this.data.waterCompanyIndex[0]].id,
- accountNum: this.data.huHao,
- accountName: this.data.huMing,
- groupType: finalTag, // 使用处理后的标签值
- openId: app.globalData.userWxInfo.openid,
- otherDsKey: (app.globalData.bindAccountInfo||[]).map(data=>data.dsKey)
- };
- // debugger
- // 提交数据
- wx.showLoading({
- title: '绑定中...',
- });
- const that = this; // 保存this引用
- // 调用绑定接口
- wx.request({
- url: app.globalData.interfaceUrls.accountBind,
- method: 'POST',
- data: bindingData,
- header: {
- 'content-type': 'application/json', // 默认值
- 'token':app.globalData.userWxInfo.token,
- 'source':"wc",
- '!SAAS_LOGIN_TOKEN_!':this.data.waterCompanyList[this.data.waterCompanyIndex[0]].id
- },
- success (res) {
- wx.hideLoading();
- let apiReturnData=res.data
- if(apiReturnData.code=='200'){
- wx.hideLoading();
- utils.simleInfo('绑定成功')
- app.globalData.currentAccountInfo=apiReturnData.data[0];
- setTimeout(function(){
- app.globalData.refresh=1;
- wx.switchTab({
- url: '/pages/homepage/homepage',
- });
- },2000)
- }else{
- wx.showToast({
- title: apiReturnData.msg,
- icon: 'error',
- duration: 2000
- })
- wx.hideLoading();
- that.setData({ isBinding: false }); // 重置绑定状态
- }
- },
- fail(error) {
- wx.hideLoading()
- utils.simleInfo('登录失败,请稍后再试')
- that.setData({ isBinding: false }); // 重置绑定状态
- }
- })
- },
- onLoad: function() {
- // 延迟设置导航栏,确保页面已完全加载
- setTimeout(() => {
- wx.setNavigationBarTitle({
- title: '户号绑定'
- });
- wx.setNavigationBarColor({
- frontColor: '#ffffff',
- backgroundColor: '#0066FF'
- });
- }, 100);
- if(app.globalData.launchPara){
- this.setData({
- waterCompanyIndex:[app.globalData.waterCompanys.findIndex(data=>data.id==app.globalData.launchPara)],
- waterCompany: app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].name,
- isChange:false,
- phoneQueryList: app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].businessPoint.map((data,index)=>{
- return {
- id: index+1,
- name: data.address,
- phone: data.contactphone,
- time: data.worktime
- }
- }),
- ylt:app.globalData.imgPreviewUrl+
- app.globalData.currentAccountInfo.dsId+"?fileId="
- +app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].swCompanyInfo.overduenoticeimage.split("-;-")[1]
- });
- }
- },
- /**
- * 返回上一页
- */
- goBack: function () {
- wx.navigateBack();
- },
- onTagInput: function(e) {
- let value = e.detail.value;
-
- // 如果超过4个字符,截取前4个字符
- if (value.length > 4) {
- value = value.slice(0, 4);
- }
-
- this.setData({
- tagLength: value.length,
- customTag: value
- });
- },
- showQueryMethodsModal() {
- this.setData({
- showQueryMethods: true
- });
- },
- closeQueryMethods() {
- this.setData({
- showQueryMethods: false
- });
- }
- });
|