jiangping
2024-07-29 d9a89d83c2048a964f16ca179feb2b7f21b9d33a
wechat_staff/pages/login/index.js
@@ -1,4 +1,10 @@
// pages/auth/auth.js
import {
  sendSms,
  getDictData,
  getWxMiniPhone,
  loginByPhone,
  bindingOpenid
} from '../../api/index'
Page({
  /**
@@ -10,20 +16,97 @@
    status: '0', // 标识
    countDown: 0,
    phone: '',
    password: '',
    code: '',
    showModal: false,
    activeHtml: '',
  },
  getCode() {
    let countDown = this.data.countDown
    if(countDown > 0) return
    this.setData({ countDown: 60 })
    let timer = setInterval(() => {
      let countDown = this.data.countDown
      if(countDown === 0){
        return clearInterval(timer)
    if (countDown > 0) return
    const {
      phone
    } = this.data
    if (!phone || phone.length != 11) {
      return wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      })
    }
    sendSms({
      phone
    }).then(res => {
      wx.showToast({
        title: '验证码发送成功',
        icon: 'none'
      })
      this.setData({
        countDown: 60
      })
      let timer = setInterval(() => {
        let countDown = this.data.countDown
        if (countDown === 0) {
          return clearInterval(timer)
        }
        countDown--
        this.setData({
          countDown
        })
      }, 1000)
    })
  },
  handleJudge(e) {
    const flag = e.currentTarget.dataset.flag
    console.log(e);
    this.setData({ agreementFalg: flag, showModal: false })
  },
  loginPhone() {
    const {
      code,
      phone
    } = this.data
    loginByPhone({
      code,
      phone
    }).then(res => {
      if (res.data && res.data.token) {
        wx.login({
          timeout: 5000,
          success: (loginRes) =>  {
            if (loginRes.code) {
              this.bindingOpenid(loginRes.code, res.data.token)
            }
          }
        })
        if(res.data.phone){
          res.data.users.phone = res.data.phone || res.data.users.phone
        }
        wx.setStorageSync('member', res.data.users)
        wx.setStorageSync('token', res.data.token)
        wx.showToast({
          title: '登录成功',
        })
        setTimeout(() => {
          wx.switchTab({
            url: '/pages/index/index',
          })
        }, 300)
      }else{
        wx.showToast({
          title: '你还不是该系统用户,请联系相关管理员注册',
        })
      }
      countDown --
      this.setData({ countDown })
    }, 1000)
    })
  },
  changeStatus() {
    if (!this.data.agreementFalg) {
      return wx.showToast({
        title: '请先阅读并同意相关协议',
        icon: 'none'
      })
    }
    this.setData({
      status: '1'
    })
  },
  agreementChange(e) {
    this.setData({
@@ -33,7 +116,93 @@
  onLoad(options) {
    var app = getApp().globalData
    this.setData({
      primary: app.primary
      primary: app.primary,
      bottomLift: app.bottomLift
    })
    this.initData()
  },
  getPhoneNumber(e) {
    const data = {
      ...e.detail
    }
    getWxMiniPhone({
      encryptedData: data.encryptedData,
      iv: data.iv,
      sessionKey: wx.getStorageSync('sessionKey'),
    }).then(res => {
      if (res.data && res.data.token) {
        wx.login({
          timeout: 5000,
          success: (loginRes) =>  {
            if (loginRes.code) {
              this.bindingOpenid(loginRes.code, res.data.token)
            }
          }
        })
        if(res.data.phone){
          res.data.users.phone = res.data.phone || res.data.users.phone
        }
        wx.setStorageSync('member', res.data.users)
        wx.setStorageSync('token', res.data.token)
        wx.switchTab({
          url: '/pages/index/index',
        })
      }else{
        wx.showToast({
          title: '你还不是该系统用户,请联系相关管理员注册',
        })
      }
    })
  },
  bindingOpenid(code, token) {
    bindingOpenid({code, token})
  },
  loginIn() {
    const {
      agreementFalg
    } = this.data
    if (!agreementFalg) return wx.showToast({
      title: '请先阅读并同意相关协议',
      icon: 'none',
      duration: 2000
    })
  },
  onOpen(e) {
    const {
      serviceHtml,
      privacyHtml
    } = this.data
    const {
      index
    } = e.target.dataset
    let activeHtml = index == '0' ? serviceHtml : privacyHtml
    this.setData({
      activeHtml,
      showModal: true
    })
  },
  onClose() {
    this.setData({
      showModal: false
    })
  },
  initData() {
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label: 'SERVER_AGREEMENT'
    }).then(res => {
      this.setData({
        serviceHtml: res.data.code
      })
    })
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label: 'PRIVACY_AGREEMENT'
    }).then(res => {
      this.setData({
        privacyHtml: res.data.code
      })
    })
  },