当前位置: 首页 > wzjs >正文

thinkphp做的上线网站公司策划推广

thinkphp做的上线网站,公司策划推广,东莞网站制作及推广价格,青海西宁高端网站建设文章目录 一、权限管理整体思路二、路由权限实现三、按钮级权限指令实现四、注意事项五、完整流程图解 一、权限管理整体思路 在后台管理系统中,权限控制通常分为: 路由权限: 控制用户能否进入特定页面按钮权限: 控制页面内操作…

文章目录

  • 一、权限管理整体思路
  • 二、路由权限实现
  • 三、按钮级权限指令实现
  • 四、注意事项
  • 五、完整流程图解

一、权限管理整体思路

在后台管理系统中,权限控制通常分为:

  1. 路由权限: 控制用户能否进入特定页面
  2. 按钮权限: 控制页面内操作按钮的显示/隐藏
  3. 菜单权限: 根据权限动态生成侧边栏菜单

采用以下技术方案:

  • 动态路由: 通过接口获取权限列表,过滤出有权限得路由
  • 自定义指令: 实现按钮级权限控制
  • 递归组件: 生成动态菜单

二、路由权限实现

1.定义路由结构

// router/index.js
const constantRoutes = [{path: '/login',component: () => import('@/views/login'),hidden: true},{path: '/404',component: () => import('@/views/404'),hidden: true}
]const asyncRoutes = [{path: '/user',component: Layout,meta: { title: '用户管理', permission: ['admin'] },children: [{path: 'list',component: () => import('@/views/user/list'),meta: { title: '用户列表', permission: ['admin'] }}]},// ...其他路由
]

2.路由过滤逻辑

// utils/permission.js
export function filterRoutes(routes, permissions) {return routes.filter(route => {if (route.meta?.permission) {return route.meta.permission.some(p => permissions.includes(p))}return true}).map(route => {if (route.children) {route.children = filterRoutes(route.children, permissions)}return route})
}

3.动态注册路由

// store/modules/permission.js
actions: {generateRoutes({ commit }, permissions) {return new Promise(resolve => {let accessedRoutes = filterRoutes(asyncRoutes, permissions)// 添加404兜底accessedRoutes.push({ path: '*', redirect: '/404', hidden: true })commit('SET_ROUTES', accessedRoutes)resolve(accessedRoutes)})}
}// 登录后调用
const permissionList = ['admin'] // 从接口获取
const accessRoutes = await store.dispatch('permission/generateRoutes', permissionList)
router.addRoutes(accessRoutes)

三、按钮级权限指令实现

1.创建自定义指令

// directives/permission.js
export default {inserted(el, binding, vnode) {const { value } = bindingconst permissions = store.getters.permissionsif (value && value instanceof Array) {const hasPermission = permissions.some(p => value.includes(p))if (!hasPermission) {el.parentNode && el.parentNode.removeChild(el)}} else {throw new Error('权限值需为数组格式,例如 v-permission="[\'admin\']"')}}
}

2.全局注册指令

// main.js
import permission from './directives/permission'
Vue.directive('permission', permission)

3.使用示例

<template><el-button v-permission="['admin']">删除用户</el-button>
</template>

四、注意事项

1.路由匹配规则: 建议使用 name 作为权限标识,比 path 更稳定
2.404处理: 动态路由需最后添加404页面
3.页面刷新: 需在 Vuex 持久化存储权限数据
4.按钮隐藏方式: 推荐直接移除 DOM 而非隐藏,避免通过开发者工具修改
5.后端校验: 前端控制仅为体验优化,关键接口必须后端校验

五、完整流程图解

用户登录 → 获取权限列表 → 过滤路由 → 动态注册路由 → 生成菜单↓存储权限到Vuex → 按钮指令校验
http://www.dtcms.com/wzjs/145663.html

相关文章:

  • 网络设计的原则有哪些seo是怎么优化
  • 网站是公司域名是个人可以如何推广公司网站
  • 建设机械网站方案设计aso优化重要吗
  • wordpress 3.9.2seo服务指什么意思
  • 松江品划做网站公司武汉网站推广优化
  • 陕西省建设监理协会官方网站黑河seo
  • 建设一个商务网站的步骤搜索引擎提交入口网址
  • 广告品牌设计机构网站织梦模板百度推广是什么意思
  • 祁阳做网站怎样做市场营销策划
  • 做拆分盘网站沈阳关键字优化公司
  • 做游戏代练去那个网站东莞关键词自动排名
  • 工程公司资质等级长沙seo关键词排名优化
  • 山东饰品行业网站开发找网络公司做推广费用
  • 网站建设最难的部分世界十大网站排名出炉
  • 上海做网站哪家好百度推广页面投放
  • 建筑网站网页设计怎么做神马搜索排名seo
  • 论企业网站建设的好处的文献软文广告案例分析
  • 厦门市政府网站建设培训平台
  • 大连建设工程有限公司seo的中文含义是什么意思
  • 500强企业网站有哪些友情链接检查
  • 做图片推广的网站软文通
  • ps网站子页怎么做的360优化大师安卓手机版下载安装
  • 有手机网站了还要微网站吗企业培训内容
  • 百度上怎么做网站镇江网站seo
  • 企业网站建设方案详细方案磁力宝
  • 装修免费设计软件网络seo公司
  • 网站后台怎么换图片百度推广系统营销平台
  • 做网站卖资料口碑营销推广
  • 十堰响应式网站建设如何学会推广和营销
  • 同一个ip的网站做链接有用网络营销的成功案例