闫增涛
2024-03-22 88d80c9f40935c6ce7ea51683c6cdc1a80d1997b
packagePersonal/pages/userSetting/index.js
@@ -1,4 +1,6 @@
const app = getApp()
import tool from "../../../assets/js/toolClass.js";
import FormData from '../../../utils/formdata/index.js';
Page({
  /**
@@ -10,6 +12,8 @@
    userInfoBox: false,
    editType: '',
    userInfoForm: {
      icon: '',
      nickName: '',
      phone: '',
      email: '',
      captcha: '',
@@ -49,6 +53,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')
@@ -58,8 +63,8 @@
        if (teacherRole && teacherInfos) {
          defaultUser = {
            ...teacherInfos,
            fullName: teacherInfos.fullName,
            icon: teacherInfos.icon,
            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : teacherInfos.name,
            icon: nickNameData ? JSON.parse(nickNameData.data).icon : WeChatInfo ? WeChatInfo.icon : '',
            userId: res.userId,
            role: 'Teacher',
            roleId: teacherRole.role.id,
@@ -69,16 +74,16 @@
        } else if (WeChatInfo) {
          defaultUser = {
            ...WeChatInfo,
            fullName: WeChatInfo.name,
            icon: WeChatInfo.icon,
            nickName: nickNameData ? JSON.parse(nickNameData.data).nickName : WeChatInfo.name,
            icon: 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
@@ -99,7 +104,8 @@
        userInfoBox: true,
        editType: info,
        "userInfoForm.captcha": "",
        "userInfoForm.code": ""
        "userInfoForm.code": "",
        "userInfoForm.nickName": ''
      });
    }
    this.getImgCapcha()
@@ -110,7 +116,86 @@
      countDown: 0,
    });
  },
  editIconInfo(e) {
    var that = this;
    wx.chooseMedia({
      // count: 1, // 默认9
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath也可以作为img标签的src属性显示图片
        console.log(res.tempFiles[0])
        tool.getFileMd5(res.tempFiles[0]).then((e) => {
          console.log(e, 4)
          let formData = new FormData();
          formData.append('Md5', e);
          formData.append('FileName', e);
          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) {
                console.log(res)
                if (res.statusCode == 200) {
                  resolve(res.data);
                  if (res.data) {
                    that.setData({
                      'userInfoForm.icon': app.config.requestCtx + `/file/GetPreViewImage?md5=` + e,
                    });
                    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,
                        })
                        this.getUserInfo()
                        this.setData({
                          userInfoBox: false,
                        });
                      }
                    })
                  }
                } else {
                  reject('运行时错误,请稍后再试');
                }
              }
            })
          })
        })
      }
    });
  },
  onNameInput(e) {
    this.setData({
      "userInfoForm.nickName": e.detail.value,
    });
  },
  //输入手机号
  onPhoneInput(e) {
    console.log(e)
@@ -247,7 +332,31 @@
  },
  confirmInfo() {
    if (this.data.changeType == 'phone') {
    if (this.data.editType == 'nickName') {
      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') {
      let query = {
        phoneNumber: this.data.userInfoForm.phone,
        phoneCaptcha: this.data.userInfoForm.code