From 3baf9a943cdf11d4cdfb52b3756458529d0dcf2a Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期四, 21 三月 2024 14:35:01 +0800
Subject: [PATCH] Merge refs/remotes/origin/master into refs/heads/master

---
 packagePersonal/pages/userSetting/index.js |  306 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 291 insertions(+), 15 deletions(-)

diff --git a/packagePersonal/pages/userSetting/index.js b/packagePersonal/pages/userSetting/index.js
index 110615f..48c0a70 100644
--- a/packagePersonal/pages/userSetting/index.js
+++ b/packagePersonal/pages/userSetting/index.js
@@ -1,18 +1,33 @@
-// packagePersonal/pages/userSetting/index.js
+const app = getApp()
 Page({
 
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-
+    userInfo: {},
+    defaultAvatarUrl: 'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png',
+    userInfoBox: false,
+    editType: '',
+    userInfoForm: {
+      phone: '',
+      email: '',
+      captcha: '',
+      code: '',
+    },
+    phoneError: false,
+    emailError: false,
+    imgCode: '',
+    countDown: 0,
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
-  onLoad(options) {
-
+  onLoad() {
+    if (wx.getStorageSync(app.config.tokenKey)) {
+      this.getUserInfo()
+    }
   },
 
   /**
@@ -28,21 +43,282 @@
   onShow() {
 
   },
-
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
-   */
-  onHide() {
-
+  // 鑾峰彇鐧诲綍鐢ㄦ埛韬唤
+  getUserInfo() {
+    app.MG.identity.getCurrentAppUser().then(res => {
+      // 鐢ㄦ埛淇℃伅浼樺厛绾э細鏁欏笀璁よ瘉 > 寰俊 > 瀛︾敓锛堟敞鍐屾椂榛樿锛�
+      if (res) {
+        let defaultUser = {};
+        let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher')
+        let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo')
+        let secretData = res.secretList.find(i => i.type == 'LoginNameAndPassword')
+        let WeChatInfo = res.infoList.find((item) => item.type === "WeChat");
+        let phoneInfo = res.secretList.find((item) => item.type == 'MobilePhone')
+        let emailInfo = res.secretList.find((item) => item.type == 'EMail')
+        if (teacherRole && teacherInfos) {
+          defaultUser = {
+            ...teacherInfos,
+            fullName: teacherInfos.fullName,
+            icon: teacherInfos.icon,
+            userId: res.userId,
+            role: 'Teacher',
+            roleId: teacherRole.role.id,
+            phoneNumber: phoneInfo?.credential,
+            Email: emailInfo ? emailInfo.credential : JSON.parse(teacherInfos.data).email
+          }
+        } else if (WeChatInfo) {
+          defaultUser = {
+            ...WeChatInfo,
+            fullName: WeChatInfo.name,
+            icon: WeChatInfo.icon,
+            userId: res.userId,
+            phoneNumber: phoneInfo?.credential,
+            Email: emailInfo?.credential
+          }
+        } else if (secretData) {
+          defaultUser = {
+            fullName: secretData.credential,
+            icon: "",
+            userId: res.userId,
+            phoneNumber: phoneInfo?.credential,
+            Email: emailInfo?.credential
+          }
+        }
+        this.setData({
+          userInfo: defaultUser
+        })
+      }
+    });
+  },
+  //淇敼鐢ㄦ埛绫诲瀷
+  editUserInfo(e) {
+    console.log(e)
+    let { info } = e.currentTarget.dataset
+    if (!this.data.userInfoBox) {
+      this.setData({
+        userInfoBox: true,
+        editType: info,
+        "userInfoForm.captcha": "",
+        "userInfoForm.code": ""
+      });
+    }
+    this.getImgCapcha()
+  },
+  onVisibleChange(e) {
+    this.setData({
+      userInfoBox: e.detail.visible,
+      countDown: 0,
+    });
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
-   */
-  onUnload() {
-
+  //杈撳叆鎵嬫満鍙�
+  onPhoneInput(e) {
+    console.log(e)
+    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) {
+      this.setData({
+        phoneError: !isPhoneNumber,
+        "userInfoForm.phone": e.detail.value,
+      });
+    }
   },
 
+  onEmailInput(e) {
+    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) {
+      this.setData({
+        emailError: !isPhoneNumber,
+        "userInfoForm.email": e.detail.value,
+      });
+    }
+  },
+
+  getImgCapcha() {
+    app.MG.identity.getImgCode().then((res) => {
+      this.setData({
+        imgCode: 'data:image/png;base64,' + res,
+      });
+    })
+  },
+  //鍥惧舰楠岃瘉鐮�
+  onCaptchaInput(e) {
+    this.setData({
+      "userInfoForm.captcha": e.detail.value,
+    });
+  },
+
+  //鐭俊閭楠岃瘉鐮�
+  onCodeInput(e) {
+    this.setData({
+      "userInfoForm.code": e.detail.value,
+    });
+  },
+
+  getPhoneCode() {
+    if (this.data.userInfoForm.phone && this.data.userInfoForm.captcha) {
+      app.MG.identity
+        .getPhoneCode({
+          phoneNumber: this.data.userInfoForm.phone,
+          imageCaptcha: this.data.userInfoForm.captcha,
+          appRefCode: app.config.appRefCode
+        })
+        .then((res) => {
+          if (res == '楠岃瘉鐮佸彂閫佹垚鍔�') {
+            wx.showToast({
+              title: res,
+              icon: 'none',
+              duration: 1000
+            })
+            // 寮�鍚煭淇¢獙璇佸�掕鏃�
+            this.getSecond(60)
+          } else {
+            wx.showToast({
+              title: res,
+              icon: 'none',
+              duration: 1000
+            })
+            this.getImgCapcha()
+          }
+        })
+    } else {
+      wx.showToast({
+        title: '璇峰~鍐欐墜鏈哄彿鎴栧浘褰㈤獙璇佺爜',
+        icon: 'none',
+        duration: 1000
+      })
+    }
+  },
+  getSecond(time) {
+    let timer = null
+    if (!timer) {
+      let countDown = time;
+      this.setData({
+        countDown: time,
+      });
+      timer = setInterval(() => {
+        countDown--
+        this.setData({
+          countDown: countDown,
+        });
+        if (this.data.countDow == 0) {
+          clearInterval(timer)
+          timer = null
+        }
+      }, 1000)
+    }
+  },
+
+  getEmailCode() {
+    console.log(this.data.userInfoForm.email)
+    if (this.data.userInfoForm.email && this.data.userInfoForm.captcha) {
+      app.MG.identity
+        .getEmailCode({
+          sendEmail: this.data.userInfoForm.email,
+          captcha: this.data.userInfoForm.captcha,
+          appRefCode: app.config.appRefCode
+        })
+        .then((res) => {
+          if (res == true) {
+            wx.showToast({
+              title: '楠岃瘉鐮佸凡鍙戦��',
+              icon: 'none',
+              duration: 1000
+            })
+            // 寮�鍚煭淇¢獙璇佸�掕鏃�
+            this.getSecond(60)
+          } else {
+            wx.showToast({
+              title: '閭楠岃瘉鐮佸彂閫佸け璐�',
+              icon: 'none',
+              duration: 1000
+            })
+            this.getImgCapcha()
+          }
+        })
+    } else {
+      wx.showToast({
+        title: '璇峰~鍐欓偖绠辨垨鍥惧舰楠岃瘉鐮�',
+        icon: 'none',
+        duration: 1000
+      })
+    }
+  },
+
+  confirmInfo() {
+    if (this.data.changeType == 'phone') {
+      let query = {
+        phoneNumber: this.data.userInfoForm.phone,
+        phoneCaptcha: this.data.userInfoForm.code
+      }
+      app.MG.identity.userSetPhoneNumber(query).then((res) => {
+        if (res == '楠岃瘉鐮佽繃鏈熸垨閿欒') {
+          wx.showToast({
+            title: res + ',璇风◢鍚庨噸璇�',
+            icon: 'none',
+            duration: 1000
+          })
+        } else if (res == '姝ゆ墜鏈哄彿鐮佸凡琚叾瀹冭处鍙风粦瀹�') {
+          wx.showToast({
+            title: res + ',璇锋洿鎹㈠叾浠栨墜鏈哄彿銆�',
+            icon: 'none',
+            duration: 1000
+          })
+        } else {
+          wx.showToast({
+            title: res,
+            icon: 'none',
+            duration: 1000
+          })
+
+          this.setData({
+            userInfoBox: false,
+          });
+          this.getUserInfo()
+        }
+      })
+    } else if (this.data.editType == 'email') {
+      let query = {
+        eMail: this.data.userInfoForm.email,
+        captcha: this.data.userInfoForm.code
+      }
+
+      app.MG.identity.bindingEmail(query).then((res) => {
+        if (res == '楠岃瘉鐮佽繃鏈�') {
+          wx.showToast({
+            title: res + ',璇风◢鍚庨噸璇曘��',
+            icon: 'none',
+            duration: 1000
+          })
+        } else if (res == '姝ら偖绠卞凡琚叾瀹冭处鍙风粦瀹�') {
+          wx.showToast({
+            title: res + ',璇锋洿鎹㈠叾浠栭偖绠便��',
+            icon: 'none',
+            duration: 1000
+          })
+
+        } else if (res == '楠岃瘉鐮佹棤鏁�') {
+          wx.showToast({
+            title: res,
+            icon: 'none',
+            duration: 1000
+          })
+        } else {
+          wx.showToast({
+            title: res,
+            icon: 'none',
+            duration: 1000
+          })
+          this.setData({
+            userInfoBox: false,
+          });
+          this.getUserInfo()
+        }
+      })
+    }
+
+  },
   /**
    * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
    */

--
Gitblit v1.9.1