From ccda9ec2fe70d8f51ef184eafc04b78d22dfbabd Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期三, 26 六月 2024 15:02:28 +0800
Subject: [PATCH] 小程序,教材,课程

---
 packagePersonal/pages/userSetting/index.js |  464 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 456 insertions(+), 8 deletions(-)

diff --git a/packagePersonal/pages/userSetting/index.js b/packagePersonal/pages/userSetting/index.js
index 3f131a4..7329d10 100644
--- a/packagePersonal/pages/userSetting/index.js
+++ b/packagePersonal/pages/userSetting/index.js
@@ -1,4 +1,7 @@
 const app = getApp()
+import SparkMD5 from 'spark-md5'
+import tool from "../../../assets/js/toolClass.js";
+import FormData from '../../../utils/formdata/index.js';
 Page({
 
   /**
@@ -7,7 +10,23 @@
   data: {
     userInfo: {},
     defaultAvatarUrl: 'https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png',
-    visible: false
+
+    editType: '',
+    userInfoForm: {
+      icon: '',
+      nickName: '',
+      phone: '',
+      email: '',
+      captcha: '',
+      code: '',
+    },
+    phoneError: false,
+    emailError: false,
+    imgCode: '',
+    countDown: 0,
+    mailCountDown: 0,
+    userInfoBox: false,
+    height: '', //灞忓箷楂樺害
   },
 
   /**
@@ -30,7 +49,15 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
   onShow() {
-
+    var that = this;
+    // 鍔ㄦ�佽幏鍙栧睆骞曢珮搴�
+    wx.getSystemInfo({
+      success: (result) => {
+        that.setData({
+          height: result.windowHeight
+        });
+      },
+    })
   },
   // 鑾峰彇鐧诲綍鐢ㄦ埛韬唤
   getUserInfo() {
@@ -38,6 +65,7 @@
       // 鐢ㄦ埛淇℃伅浼樺厛绾э細鏁欏笀璁よ瘉 > 寰俊 > 瀛︾敓锛堟敞鍐屾椂榛樿锛�
       if (res) {
         let defaultUser = {};
+        let nickNameData = res.infoList.find((item) => item.type == 'nickName')
         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')
@@ -47,8 +75,8 @@
         if (teacherRole && teacherInfos) {
           defaultUser = {
             ...teacherInfos,
-            fullName: teacherInfos.fullName,
-            icon: teacherInfos.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,
@@ -58,16 +86,16 @@
         } else if (WeChatInfo) {
           defaultUser = {
             ...WeChatInfo,
-            fullName: WeChatInfo.name,
-            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
           }
         } else if (secretData) {
           defaultUser = {
-            fullName: secretData.credential,
-            icon: "",
+            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : secretData.credential,
+            icon: JSON.parse(nickNameData.data).icon ? JSON.parse(nickNameData.data).icon : '',
             userId: res.userId,
             phoneNumber: phoneInfo?.credential,
             Email: emailInfo?.credential
@@ -79,7 +107,427 @@
       }
     });
   },
+  //淇敼鐢ㄦ埛绫诲瀷
+  editUserInfo(e) {
+    let {
+      info
+    } = e.currentTarget.dataset
+    if (!this.data.userInfoBox) {
+      this.setData({
+        userInfoBox: true,
+        editType: info,
+        "userInfoForm.captcha": "",
+        "userInfoForm.code": "",
+        "userInfoForm.nickName": this.data.userInfo.nickName,
+      });
+    }
+    this.getImgCapcha()
+  },
+  onVisibleChange(e) {
+    this.setData({
+      userInfoBox: e.detail.visible,
+      countDown: 0,
+      mailCountDown: 0
+    });
+  },
+  editIconInfo(e) {
+    var that = this;
+    wx.chooseMedia({
+      count: 1, // 榛樿9
+      sizeType: ['original', 'compressed'], // 鍙互鎸囧畾鏄師鍥捐繕鏄帇缂╁浘锛岄粯璁や簩鑰呴兘鏈�
+      sourceType: ['album', 'camera'], // 鍙互鎸囧畾鏉ユ簮鏄浉鍐岃繕鏄浉鏈猴紝榛樿浜岃�呴兘鏈�
+      success: function (res) {
+        wx.getFileSystemManager().readFile({
+          filePath: res.tempFiles[0].tempFilePath, //閫夋嫨鍥剧墖杩斿洖鐨勭浉瀵硅矾寰�
+          // encoding: 'binary', //缂栫爜鏍煎紡
+          success: ress => {
+            //鎴愬姛鐨勫洖璋�
+            let spark = new SparkMD5.ArrayBuffer();
+            spark.append(ress.data);
+            let md5 = spark.end(false);
+            let formData = new FormData();
+            formData.append('Md5', md5);
+            formData.append('FileName', md5);
+            formData.append('FileType', res.tempFiles[0].fileType);
+            formData.appendFile("file", res.tempFiles[0].tempFilePath);
+            const data = formData.getData();
+            let _token = wx.getStorageSync(app.config.tokenKey);
+            let header = {};
+            if (_token == null) {
+              header["Authorization"] = `Basic ${Base64.encode(website.clientId + ":" + website.clientSecret)}`;
+            } else {
+              header["Authorization"] = `Bearer ` + _token;
+            }
+            new Promise((resolve, reject) => {
+              wx.request({
+                url: app.config.requestCtx + '/file/api/ApiUpload',
+                method: 'POST',
+                header: {
+                  'content-type': data.contentType,
+                  ...header
+                },
+                data: data.buffer,
+                success(res) {
+                  if (res.statusCode == 200) {
+                    resolve(res.data);
+                    if (res.data) {
+                      that.setData({
+                        'userInfoForm.icon': app.config.requestCtx + `/file/GetPreViewImage?md5=` + md5,
+                      });
+                      let userTypeInfo = {
+                        "requests": [{
+                          data: JSON.stringify({
+                            nickName: that.data.userInfo.nickName,
+                            icon: that.data.userInfoForm.icon
+                          }),
+                          name: '鐢ㄦ埛鏄电О澶村儚',
+                          type: 'nickName'
+                        }]
+                      }
+                      app.MG.identity.setAppUserInfo(userTypeInfo).then((res) => {
+                        if (res) {
+                          wx.showToast({
+                            title: "淇敼鎴愬姛",
+                            icon: 'success',
+                            duration: 1000,
+                          })
+                          that.getUserInfo()
+                          that.setData({
+                            userInfoBox: false,
+                          });
+                        }
+                      })
+                    }
+                  } else {
+                    reject('杩愯鏃堕敊璇�,璇风◢鍚庡啀璇�');
+                  }
+                }
+              })
+            })
+          }
+        })
+      }
+    });
+  },
+  onNameInput(e) {
+    this.setData({
+      "userInfoForm.nickName": e.detail.value,
+    });
+  },
+  //杈撳叆鎵嬫満鍙�
+  onPhoneInput(e) {
+    const {
+      phoneError
+    } = this.data;
+    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: false,
+      });
+    }
+  },
 
+  onEmailInput(e) {
+    const {
+      emailError
+    } = this.data;
+    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({
+        "userInfoForm.email": e.detail.value,
+      });
+    } else {
+      this.setData({
+        emailError: false,
+      });
+    }
+  },
+
+  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.countDown > 0) return false
+    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) {
+      this.setData({
+        countDown: time,
+      });
+      let conut = this.data.countDown;
+      timer = setInterval(() => {
+        conut--
+        this.setData({
+          countDown: conut,
+        });
+        if (this.data.countDow == 0) {
+          clearInterval(timer)
+          timer = null
+        }
+      }, 1000)
+    }
+  },
+
+  getEmailCode() {
+    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.getSecondEmail(60)
+          } else {
+            wx.showToast({
+              title: '閭楠岃瘉鐮佸彂閫佸け璐�',
+              icon: 'none',
+              duration: 1000
+            })
+            this.getImgCapcha()
+          }
+        })
+    } else {
+      wx.showToast({
+        title: '璇峰~鍐欓偖绠辨垨鍥惧舰楠岃瘉鐮�',
+        icon: 'none',
+        duration: 1000
+      })
+    }
+  },
+  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({
+            nickName: this.data.userInfoForm.nickName,
+            icon: this.data.userInfo.icon
+          }),
+          name: '鐢ㄦ埛鏄电О澶村儚',
+          type: 'nickName'
+        }]
+      }
+      app.MG.identity.setAppUserInfo(userTypeInfo).then((res) => {
+        if (res) {
+          wx.showToast({
+            title: "淇敼鎴愬姛",
+            icon: 'success',
+            duration: 1000,
+          })
+          this.getUserInfo()
+          this.setData({
+            userInfoBox: false,
+          });
+        }
+      })
+
+    } 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
+      }
+      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') {
+      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
+      }
+
+      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()
+        }
+      })
+    }
+
+  },
+
+  onCloseProtocol() {
+    this.setData({
+      userInfoBox: false,
+    });
+  },
   /**
    * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
    */

--
Gitblit v1.9.1