• 页面


    js

    // pages/profile/profile.js
    import {
      request
    } from "../../request/index.js"
    
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        isAuth: false, //是否授权
        userInfo: {}, //用户信息
        useId: ''
      },
      // 获取授权
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        const myAuth = wx.getStorageSync('isAuth')
        if (myAuth) {
          const myUser = wx.getStorageSync('userinfo')
          this.setData({
            isAuth: myAuth,
            userInfo: JSON.parse(myUser)
          })
        }
    
      },
    
      getUserProfile(e) {
        // 推荐使用wx.getUserProfile获取用户信息,
        // 开发者每次通过该接口获取用户个人信息均需用户确认,
        // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
        const _that = this
        wx.getUserProfile({
          desc: '“获取你的昵称、头像', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
          success: (res) => {
            console.log(res.userInfo, 'res')
            let userN = res.userInfo.nickName
            let userIN = res.userInfo
            wx.request({
              url: 'http://localhost:3000/users/login',
              data: {
                username: userN
              },
              method: 'POST',
              header: {
                'content-type': 'application/json' // 默认值
              },
              success: function (result) {
              //  console.log(result.data.status, 'res.status');
                if (result.data.status === 400) {
                  wx.showToast({
                    title: '请先注册',
                    icon: 'error'
                  })
                } else {
                  const myID = result.data.body.data.ID
                  _that.setData({
                    useId: myID
                  })
                  wx.setStorageSync('userId', myID)
                  _that.setData({
                    userInfo: res.userInfo,
                    isAuth: true
                  })
                  wx.setStorageSync('userinfo', JSON.stringify(userIN))
                  wx.setStorageSync('isAuth', _that.data.isAuth)
                }
    
              },
              fail: function (res) {
                console.log(".....fail.....");
    
              }
            })
    
          },
          fail: function (res) {
            console.log(".....fail.....");
    
          }
        })
    
      },
      exit() {
        wx.showModal({
          content: "确定退出吗"
        }).then(res => {
          if (res.confirm) {
            console.log("用户点击了确定");
            if (this.data.isAuth) {
              this.setData({
                isAuth: false,
                userInfo: {}
              })
              //清空登录的缓存
              wx.setStorageSync('userinfo', null)
              wx.setStorageSync('isAuth', false)
              wx.setStorageSync('userId', null)
            }
          } else if (res.cancel) {
            console.log("用户点击了取消");
          }
        })
      },
      goToFeeback() {
        wx.navigateTo({
          url: '/pages/feeback/feeback'
        })
      },
      goToMyFav() {
        if (this.data.isAuth) {
          wx.navigateTo({
            url: '/pages/myCollection/myCollection',
          })
        } else {
          wx.showToast({
            title: "请先登录",
            icon: 'error'
          })
        }
      },
      goToLogout() {
        wx.navigateTo({
          url: '/pages/login/login',
        })
      },
      goToMyInfo() {
        if (this.data.isAuth) {
          wx.navigateTo({
            url: '/pages/myInfo/myInfo',
          })
        } else {
          wx.showToast({
            title: "请先登录",
            icon: 'error'
          })
        }
    
      }
    })
    

      wxml

    <!--pages/profile/profile.wxml-->
    
    <view>
      <image class='background' src="/image/bg.jpg" mode="widthFix"></image>
      <!-- 游客 -->
         <!-- 登录前 --> 
      <view class="{{isAuth?'profile_none':'profile_header'}}">
        <image src="/image/my.png" mode="heightFix"></image>
        <view  class="profile_login" bindtap="getUserProfile">登录</view>
      </view>
       <!-- 登录后 --> 
      <view class="{{isAuth?'profile_header':'profile_none'}}">
        <image src="{{userInfo.avatarUrl}}" mode="heightFix"></image>
        <view class="{{isAuth?'profile_hello':'profile_none'}}">
          <!-- <view>你好</view> -->
          <view>{{userInfo.nickName}}</view>
        </view>
      </view>
      <!-- 其他功能 -->
      <view class="profile_container">
        <view bindtap="goToMyFav">
          <image src="/image/fav.png" mode="heightFix"></image>
          <view>我的收藏</view>
        </view>
        <view bindtap="goToMyInfo">
          <image src="/image/my_exp.png" mode="heightFix"></image>
          <view>我的资料</view>
        </view>
    
      </view>
    
      <view class="profile_more">
        <view class="profile_more_connact">
          <view>联系我们</view>
          <view>888-888-8888</view>
        </view>
        <view class="profile_more_connact">
          <view>使用反馈</view>
          <image src="/image/right.png" mode="heightFix" bindtap="goToFeeback"></image>
        </view>
        <view class="profile_more_connact">
          <view>关于我们</view>
          <!-- <image src="/image/right.png" mode="heightFix"></image> -->
        </view>
      </view>
    
      <!-- 注销 -->
    
      <view class="{{isAuth?'profile_leave':'profile_none'}}"  bindtap="exit">
        <view>退出登录</view>
        <image src="/image/leave.png" mode="widthFix"></image>
      </view>
    
      <view  class="{{isAuth?'profile_none':'profile_leave'}}" bindtap="goToLogout">
        <view>注册账号</view>
        <image src="/image/register.png" mode="widthFix"></image>
      </view>
    
    </view>
    

      

  • 相关阅读:
    剑指Offer 07 重建二叉树
    剑指Offer 06 从尾到头打印链表
    剑指Offer 05 替换空格
    剑指Offer 04 二维数组中的查找
    剑指Offer 03 数组中重复的数字
    leetcode518
    leetcode474
    leetcode376
    leetcode646
    leetcode213
  • 原文地址:https://www.cnblogs.com/wmlcn/p/16182668.html
Copyright © 2020-2023  润新知