小白的 uniapp 日常(登录)

  1. 首先需要明白登录部分的逻辑(基于已经点击登录按钮的条件下)
    1. 需要验证账号密码等是否不为空
      1. 如果为空提示
      2. 如果不为空那么执行下一阶段
    2. 需要判断账号密码是否已注册
      1. 如果未注册提示 并跳转到注册界面
      2. 如果已注册 执行下一步
        1. 需要判断账号密码是否正确
        2. 如果正确那么执行下一阶段
    3. 需要判断用户是否有权登录
      1. 如果无权登录提示 并刷新登录界面
      2. 如果可以登录那么执行下一阶段
    4. 需要判断本地缓存是否有信息
      1. 如果没有信息 执行下一阶段
      2. 如果有信息
        1. 判断信息是否为现在登录角色信息
          1. 如果不是 那么清除本地缓存 并执行下一阶段
          2. 如果是 那么执行6.2
    5. 需要获取当前信息并记录到本地缓存
      1. 获取当前时间
      2. 获取当前位置
      3. 获取用户权限信息
        1. 根据用户权限 进行首页渲染 不同权限角色首页不同
      4. 获取用户首页信息
        1. 根据用户权限进行分权渲染
    6. 判断验证码是否正确
      1. 需要从后端获取验证码图片渲染到登录页面
      2. 需要根据用户输入的验证码进行判断
        1. 如果不对 提示 并刷新验证码
        2. 如果正确 进行页面跳转 执行登录
  2. 其次需要明白需要跟后端交互的逻辑
    1. 需要向后端传递什么参数
      1. 账号
      2. 密码
      3. 等等
    2. 需要从后端获取什么参数
      1. token
      2. 首页信息
      3. 等等
    3. 需要向后端要接口
      1. 验证码接口
      2. 首页信息接口
      3. 等等
  3. 下面是部分代码展示
doLogin() {
        login(this.userName, this.passWord, this.code, this.uuid).then(res => {
          uni.setStorageSync('token', res.token);
          setTimeout(function() {
            uni.hideLoading();
          }, 200);
          this.doGetUserInfo();
        }).catch(err => {
          uni.showToast({
            title: err,
            duration: 2000
          });
        });
      },
          
doGetUserInfo() {
        getUserInfo().then(res => {
          //清空原始用户数据
          uni.removeStorage("userRole");
          uni.removeStorage("userRoleName");
          uni.removeStorage("user");
          //判断用户角色,更新信息,然后登陆到首页
          if (res.roles.indexOf("inspector") >= 0) {
            uni.setStorageSync("userRole", "inspector");
            uni.setStorageSync("userRoleName","管理员");
            uni.setStorageSync("user", res.user);
            setTimeout(function() {
              uni.hideLoading();
            }, 200);
            uni.reLaunch({
              url: './index'
            });
            uni.showToast({
              title: '登陆成功',
              duration: 2000
            });
          } else if (res.roles.indexOf("disposal") >= 0) {
            uni.setStorageSync("userRole", "disposal");
            uni.setStorageSync("userRoleName", "管理员");
            uni.setStorageSync('user', res.user);
            setTimeout(function() {
              uni.hideLoading();
            }, 200);
            uni.reLaunch({
              url: './index'
            });
            uni.showToast({
              title: '登陆成功',
              duration: 2000
            });
          } else {
            uni.showToast({
              title: '登陆失败,用户没有权限!',
              duration: 2000
            });
          }
        });
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值