uniapp小程序开发,判断跳转页面是否需要登录方法封装
方法工具,放置在 tool.js文件中
/*** @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),})
}
使用
import { goToPage} from '@/utils/tool'goToPage('/pages/personal/index', null, { needLogin: true })