当前位置: 首页> 教育> 培训 > 平度做网站公司_discuz安装_百度竞价广告怎么投放_b站推广引流最佳方法

平度做网站公司_discuz安装_百度竞价广告怎么投放_b站推广引流最佳方法

时间:2025/7/11 11:59:14来源:https://blog.csdn.net/LQlove1/article/details/147012646 浏览次数:0次
平度做网站公司_discuz安装_百度竞价广告怎么投放_b站推广引流最佳方法

文章目录

    • 源码:
    • 一、页面级
      • 1.1、路由守卫
      • 1.2、动态路由
    • 二、按钮级别
      • 2.1、通过v-if来判断
      • 2.2、通过组件包裹的方式来判断
      • 2.3、通过自定义指令的方式
    • 三、接口级别

源码:

https://gitee.com/liu-qiang-yyds/sysPermission

一、页面级

1.1、路由守卫

	前端可以通过路由守卫来判断用户是否对某一个页面有权限,从而阻止用户进入页面。

1.2、动态路由

	根据用户的权限返回对应拥有权限的路由表,然后去循环注册路由。

二、按钮级别

2.1、通过v-if来判断

通过最简单的办法v-if条件判断

2.2、通过组件包裹的方式来判断

包裹组件

<template><slot v-if="hasPermission"></slot>
</template><script setup>
import { ref, computed, onMounted, onUnmounted } from 'vue';
import eventBus from '../eventBus'; 
// 定义props
const props = defineProps({permission: {type: String,required: true,},
});
// 用户权限列表
const userPermissions = ref(['sys:user:add','sys:user:edit','sys:user:del']);
// 监听事件
const handleUserChanged = (permissions) => {userPermissions.value = permissions;// console.log(userPermissions.value);};
// 组件挂载时注册事件监听
onMounted(() => {eventBus.on('user-changed', handleUserChanged);
});// 组件卸载时移除事件监听
onUnmounted(() => {eventBus.off('user-changed', handleUserChanged);
});
// 计算属性:判断是否有权限
const hasPermission = computed(() => userPermissions.value.includes(props.permission));</script>

使用

 	<Permission :permission="'sys:user:add'"><el-button type="primary">添加</el-button></Permission><Permission :permission="'sys:user:edit'"><el-button type="success">修改</el-button></Permission><Permission :permission="'sys:user:del'"><el-button type="danger">删除</el-button></Permission>

2.3、通过自定义指令的方式

自定义组件

import { usePermissionStore } from '../store/permissionStore';
export default{created(el, binding, vnode, prevNode) {// 在绑定元素的attribute或事件监听器被应用之前调用},mounted(el, binding, vnode, prevNode) {const permissionStore = usePermissionStore();const {permissions} = permissionStoreconsole.log(permissions,'123');// 在绑定元素的父组件被挂载后调用if(!permissions.includes(binding.value)){el.parentNode.removeChild(el);}},updated(el, binding, vnode, prevNode) {// 在包含组件的VNode及其子组件的VNode更新后调用}}

使用

<el-button v-auth="'sys:user:add'" type="primary">添加</el-button><el-button v-auth="'sys:user:edit'"  type="success">修改</el-button><el-button v-auth="'sys:user:del'"  type="danger">删除</el-button>

三、接口级别

	后端可以写一个接口白名单,白名单的接口对应着权限的级别,前端用户的级别小于这个接口的级别,就通过中间件返回给前端一个权限不足的信息
关键字:平度做网站公司_discuz安装_百度竞价广告怎么投放_b站推广引流最佳方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: