yiming
2024-04-28 04acf6421dded7b6f6eef9d2cf41d0b4a0e8dd0d
packagePersonal/pages/userSetting/index.js
@@ -10,7 +10,7 @@
  data: {
    userInfo: {},
    defaultAvatarUrl: 'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png',
    userInfoBox: false,
    editType: '',
    userInfoForm: {
      icon: '',
@@ -24,6 +24,9 @@
    emailError: false,
    imgCode: '',
    countDown: 0,
    mailCountDown: 0,
    userInfoBox: false,
    height: '', //屏幕高度
  },
  /**
@@ -46,7 +49,15 @@
   * 生命周期函数--监听页面显示
   */
  onShow() {
    var that = this;
    // 动态获取屏幕高度
    wx.getSystemInfo({
      success: (result) => {
        that.setData({
          height: result.windowHeight
        });
      },
    })
  },
  // 获取登录用户身份
  getUserInfo() {
@@ -64,8 +75,8 @@
        if (teacherRole && teacherInfos) {
          defaultUser = {
            ...teacherInfos,
            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : teacherInfos.name,
            icon: nickNameData ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon,
            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : WeChatInfo ? WeChatInfo.name : '',
            icon: nickNameData ? JSON.parse(nickNameData.data).icon : WeChatInfo ? WeChatInfo.icon : '',
            userId: res.userId,
            role: 'Teacher',
            roleId: teacherRole.role.id,
@@ -75,8 +86,8 @@
        } else if (WeChatInfo) {
          defaultUser = {
            ...WeChatInfo,
            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name,
            icon: JSON.parse(nickNameData.data).icon ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon,
            nickName: nickNameData && JSON.parse(nickNameData.data).nickName ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name,
            icon: nickNameData && JSON.parse(nickNameData.data).icon ? JSON.parse(nickNameData.data).icon : WeChatInfo.icon,
            userId: res.userId,
            phoneNumber: phoneInfo?.credential,
            Email: emailInfo?.credential
@@ -107,7 +118,7 @@
        editType: info,
        "userInfoForm.captcha": "",
        "userInfoForm.code": "",
        "userInfoForm.nickName": ''
        "userInfoForm.nickName": this.data.userInfo.nickName,
      });
    }
    this.getImgCapcha()
@@ -116,6 +127,7 @@
    this.setData({
      userInfoBox: e.detail.visible,
      countDown: 0,
      mailCountDown:0
    });
  },
  editIconInfo(e) {
@@ -207,11 +219,17 @@
    const {
      phoneError
    } = this.data;
    const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value);
    if (phoneError === isPhoneNumber) {
    if (e.detail.value) {
      const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value);
      if (phoneError === isPhoneNumber) {
        this.setData({
          phoneError: !isPhoneNumber,
          "userInfoForm.phone": e.detail.value,
        });
      }
    } else {
      this.setData({
        phoneError: !isPhoneNumber,
        "userInfoForm.phone": e.detail.value,
        phoneError: false,
      });
    }
  },
@@ -220,11 +238,19 @@
    const {
      emailError
    } = this.data;
    const isPhoneNumber = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(e.detail.value);
    if (emailError === isPhoneNumber) {
    if (e.detail.value) {
      const isPhoneNumber = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(e.detail.value);
      if (emailError === isPhoneNumber) {
        this.setData({
          emailError: !isPhoneNumber,
        });
      }
      this.setData({
        emailError: !isPhoneNumber,
        "userInfoForm.email": e.detail.value,
      });
    } else {
      this.setData({
        emailError: false,
      });
    }
  },
@@ -287,14 +313,14 @@
  getSecond(time) {
    let timer = null
    if (!timer) {
      let countDown = time;
      this.setData({
        countDown: time,
      });
      let conut = this.data.countDown;
      timer = setInterval(() => {
        countDown--
        conut--
        this.setData({
          countDown: countDown,
          countDown: conut,
        });
        if (this.data.countDow == 0) {
          clearInterval(timer)
@@ -320,7 +346,7 @@
              duration: 1000
            })
            // 开启短信验证倒计时
            this.getSecond(60)
            this.getSecondEmail(60)
          } else {
            wx.showToast({
              title: '邮箱验证码发送失败',
@@ -338,9 +364,35 @@
      })
    }
  },
  getSecondEmail(time) {
    if (this.data.mailCountDown <= 0) {
      this.setData({
        mailCountDown: time,
      });
      let timer = setInterval(() => {
        let count = this.data.mailCountDown - 1;
        this.setData({
          mailCountDown: count,
        });
        if (count === 0) {
          clearInterval(timer);
        }
      }, 1000);
    }
  },
  confirmInfo() {
    if (this.data.editType == 'nickName') {
      if (!this.data.userInfoForm.nickName) {
        wx.showToast({
          title: '请输入昵称',
          icon: 'none',
          duration: 1000
        })
        return false;
      }
      let userTypeInfo = {
        "requests": [{
          data: JSON.stringify({
@@ -366,6 +418,22 @@
      })
    } else if (this.data.editType == 'phone') {
      if (!this.data.userInfoForm.phone) {
        wx.showToast({
          title: '请输入手机号',
          icon: 'none',
          duration: 1000
        })
        return false;
      }
      if (!this.data.userInfoForm.code) {
        wx.showToast({
          title: '请输入验证码',
          icon: 'none',
          duration: 1000
        })
        return false;
      }
      let query = {
        phoneNumber: this.data.userInfoForm.phone,
        phoneCaptcha: this.data.userInfoForm.code
@@ -397,6 +465,22 @@
        }
      })
    } else if (this.data.editType == 'email') {
      if (!this.data.userInfoForm.email) {
        wx.showToast({
          title: '请输入邮箱',
          icon: 'none',
          duration: 1000
        })
        return false;
      }
      if (!this.data.userInfoForm.code) {
        wx.showToast({
          title: '请输入验证码',
          icon: 'none',
          duration: 1000
        })
        return false;
      }
      let query = {
        eMail: this.data.userInfoForm.email,
        captcha: this.data.userInfoForm.code