This commit is contained in:
Iruka 2024-09-18 12:50:53 +08:00
parent c53e5b0f70
commit 671e99bfc3
4 changed files with 180 additions and 0 deletions

60
plugins/auth.js Normal file
View File

@ -0,0 +1,60 @@
import store from '@/store'
function authPermission(permission) {
const all_permission = "*:*:*"
const permissions = store.getters && store.getters.permissions
if (permission && permission.length > 0) {
return permissions.some(v => {
return all_permission === v || v === permission
})
} else {
return false
}
}
function authRole(role) {
const super_admin = "admin"
const roles = store.getters && store.getters.roles
if (role && role.length > 0) {
return roles.some(v => {
return super_admin === v || v === role
})
} else {
return false
}
}
export default {
// 验证用户是否具备某权限
hasPermi(permission) {
return authPermission(permission)
},
// 验证用户是否含有指定权限,只需包含其中一个
hasPermiOr(permissions) {
return permissions.some(item => {
return authPermission(item)
})
},
// 验证用户是否含有指定权限,必须全部拥有
hasPermiAnd(permissions) {
return permissions.every(item => {
return authPermission(item)
})
},
// 验证用户是否具备某角色
hasRole(role) {
return authRole(role)
},
// 验证用户是否含有指定角色,只需包含其中一个
hasRoleOr(roles) {
return roles.some(item => {
return authRole(item)
})
},
// 验证用户是否含有指定角色,必须全部拥有
hasRoleAnd(roles) {
return roles.every(item => {
return authRole(item)
})
}
}

10
plugins/index.js Normal file
View File

@ -0,0 +1,10 @@
import tab from './tab'
import auth from './auth'
import modal from './modal'
const plugins = {
tab,
auth,
modal
}
export default plugins

80
plugins/modal.js Normal file
View File

@ -0,0 +1,80 @@
export default {
// 消息提示
msg(text) {
uni.showToast({
title: text,
icon: 'none',
duration: 3000
})
},
// 错误消息
msgError(text) {
uni.showToast({
title: text,
icon: 'none',
duration: 3000
})
},
// 成功消息
msgSuccess(text) {
uni.showToast({
title: text,
icon: 'none',
duration: 3000
})
},
// 隐藏消息
hideMsg(text) {
uni.hideToast()
},
// 弹出提示
alert(text) {
uni.showModal({
title: '提示',
content: text,
showCancel: false
})
},
// 确认窗体
confirm(text) {
return new Promise((resolve, reject) => {
uni.showModal({
title: '系统提示',
content: text,
cancelText: '取消',
confirmText: '确定',
success: function(res) {
if (res.confirm) {
resolve(res.confirm)
}
if(res.cancel){
reject(res.cancel);
}
}
})
})
},
// 提示信息
showToast(option) {
if (typeof option === "object") {
uni.showToast(option)
} else {
uni.showToast({
title: option,
icon: "none",
duration: 2500
})
}
},
// 打开遮罩层
loading(text) {
uni.showLoading({
title: text,
icon: 'none'
})
},
// 关闭遮罩层
closeLoading() {
uni.hideLoading()
}
}

30
plugins/tab.js Normal file
View File

@ -0,0 +1,30 @@
export default {
// 关闭所有页面,打开到应用内的某个页面
reLaunch(url) {
return uni.reLaunch({
url: url
})
},
// 跳转到tabBar页面并关闭其他所有非tabBar页面
switchTab(url) {
return uni.switchTab({
url: url
})
},
// 关闭当前页面,跳转到应用内的某个页面
redirectTo(url) {
return uni.redirectTo({
url: url
})
},
// 保留当前页面,跳转到应用内的某个页面
navigateTo(url) {
return uni.navigateTo({
url: url
})
},
// 关闭当前页面,返回上一页面或多级页面
navigateBack() {
return uni.navigateBack()
}
}