uniapp小程序开发,判断跳转页面是否需要登录方法封装

方法工具,放置在 tool.js文件中

javascript 复制代码
/**
 * @params { Object } params 路由参数
 * @desc 将路由参数拼接成字符串
 */
export function queryStr(params) {
  const paramsArr = []
  if (params) {
    for (const k in params) {
      const str = `${k}=${params[k]}`
      paramsArr.push(str)
    }
  }
  let paramsStr = ''
  if (paramsArr.length > 0) {
    paramsStr += '?'
    paramsStr += paramsArr.join('&')
  }
  return paramsStr
}
/**
 * @path { String } 跳转路径
 * @data { Object } 路由参数
 * @permission { Object } 是否校验登录态
 * @desc 路由跳转登录态校验、参数拼接
 */
export function goToPage(path: string, data, permission: { needLogin: boolean; msg?: string }) {
  const user = uni.getStorageSync('user')
  let userInfo = {}
  if (user) {
    userInfo = JSON.parse(user)?.userInfo
  }
  // console.log('用户登录信息userInfo:', userInfo)
  const { needLogin, msg } = permission || {}
  if (!userInfo?.agentId && needLogin) {
    uni.showModal({
      title: '温馨提示',
      content: msg || '您需要登录后才能进行下一步操作,是否去登录',
      cancelText: '取消',
      confirmText: '去登录',
      success: function (res) {
        if (res.confirm) {
          uni.navigateTo({
            url: '/pages/login/index',
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      },
    })
    return
  }
  uni.navigateTo({
    url: path + queryStr(data),
  })
}

使用

javascript 复制代码
import { goToPage} from '@/utils/tool'

goToPage('/pages/personal/index', null, { needLogin: true })
相关推荐
xingpanvip5 分钟前
星盘接口开发文档:组合三限盘接口指南
android·开发语言·前端·python·php·lua
阿拉丁的梦15 分钟前
blender最好的多通道吸色工具(拾取纹理颜色排除灯光)
前端·html
吴声子夜歌16 分钟前
Vue3——脚手架Vite
前端·javascript·vue.js·vite
摘星编程17 分钟前
当AI开始学会“使用工具“——从ReAct到MCP,大模型如何获得真正的行动力
前端·人工智能·react.js
无忧.芙桃18 分钟前
现代C++讲解之变量模板,泛型lambda,函数返回类型推导的使用
开发语言·c++·visualstudio
light blue bird25 分钟前
设备数据变化上传图表数据汇总组件
大数据·前端·信息可视化
2501_9181269132 分钟前
开源祭祖网页index
前端·开源·html
云起SAAS40 分钟前
私域直播系统UniApp源码 多商户商城+直播带货 微信小程序+H5+安卓iOS
android·微信小程序·uni-app·私域直播系统
格林威41 分钟前
工业视觉检测:两大主流异常检测开源框架深度对比(PatchCore vs SPADE)
开发语言·人工智能·深度学习·数码相机·计算机视觉·视觉检测·工业相机
threelab44 分钟前
Three.js 3D 饼图效果 | 三维可视化 / AI 提示词
javascript·人工智能·3d