方法工具,放置在 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 })