| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

考勤管理系统之用户角色及权限管理的设计

平***苏

贡献于2022-03-04

字数:18791








考勤理系统户角色权限理设计实现






考勤理系统户角色权限设计实现


互联网信息技术急速发展新时代基微信程序二维码定位等功设计利二维码定位功进行签考勤理系统考勤理员设置签点范围系统提供导出理户考勤信息功请假申请功假期理功等文重点讲述该系统户角色权限设计实现权限模块系统权限进行设计实现redis缓存优化系统增强系统性
关键词:考勤理系统户角色权限设计Redis















Design and Implementation of User Role and Authority in Time Attendance Management System

Abstract
In the new era of rapid development of Internet information technology based on the WeChat applet's QR code and positioning functions we have designed an attendance management system that can use the QR code and positioning functions to check in And the scope and the system provides the function of exporting and managing user's attendance information leave application function vacation management function etc This article focuses on the design and implementation of the system's user roles and permissions that is the permission module which designs and implements system permissions optimizes the system using redis cache and enhances system performance
Keywords Time and Attendance Management SystemDesign of user roles and permissionsRedis















目 录


1 前言 6
2相关技术介绍 6
21 前端技术介绍 7
22 Java介绍 8
23 台项目架构介绍 8
24 技术架构图 10
3系统介绍 10
31 系统设计功结构 10
32 系统模块介绍 12
321权限理模块 12
322考勤统计模块 12
323审批模块 13
33 系统例图 14
4权限模块设计实现 14
41 权限模块设计 14
42 权限模块实现 16
5测试 20
51 登录功测试 20
52 角色增删改查功测试 21
53 员工增删改查功测试 22
53 角色户权限控制测试 23
6微信程序界面 25
7结 27
附录1 28











1 前言
考勤理系统基微信程序二维码定位等功实现公司进行考勤理系统系统支持二维码定位口令签什选择微信程序呢仅仅微信户量微信程序便捷需重新载软件占存等优点托微信程序便捷应环境开发考勤理系统考勤理系统分成程序端web端程序端公司员工考勤web端支持考勤数统计审批流程理考勤规设置公司员工理考勤理系统分成权限理模块考勤统计模块审批模块三模块文重点研究考勤理系统权限理模块具体分析系统中户角色权限关系进行梳理设计程中前端实现进行交融页面查权限进行抽取单独建立路表权限页面进行划分分关联应页面具体设计实现文面部分出
2相关技术介绍
21 前端技术介绍
需求引入需第三方库VueMVVM模式框架MVVMModelViewViewModel数层dom层(户界面层)中间层(处理数界面)MVVM模式提供数双绑定分离视图(View)模型(Model)降低代码耦合提高重性Vuejs20版引入虚拟DOM初始渲染速度幅度提升降低存消耗Vue官方甚React做实验结果出Vue渲染优React年Vuejs越越国Vuejs已Reactjs更
VuerouterVuejs 官方路理器适构建SPA(单页应程序)SPA传统应程序区传统应程序切换页面会重新请求服务器获取新完整页面SPA会第次请求加载页面次请求 仅仅获取必数然 页面中js解析获取数 展示页面中SPA核心:更新视图重新请求页面样产生缺点果端做服务器渲染会导致单页面应爬取数SEO友VuerouterSPA路路质建立起URL页面间映射关系Vue说建立URL组件间映射关系Vuerouter实现SPA路时提供两种方式:hash模式history模式hash模式 URL hash 模拟完整 URL URL 改变时页面会重新加载history模式利 historypushState API 完成 URL 跳转须重新加载页面
VuexVuejs官方状态理模式处理项目庞时组件数量变遇需组件享状态时处理组件中转态抽离全局单例模式理组件树构成巨视图’树位置组件获取状态者触发行Vuex通定义隔离状态理中种概念通强制规维持视图状态间独立性代码变更结构化更易维护Vuex基思想Vuex思想鉴FluxReduxThe Elm ArchitectureVuex专门Vuejs设计状态理库利 Vuejs 细粒度数响应机制进行高效状态更新
iView套基 Vuejs 开源 UI 组件库服务 PC 界面中台产品Iview时火款Vuejs组件库iView组件功较丰富UI界面漂亮组件API友灵活iView方面做越越
Axios基PromiseHTTP库PromiseES2016特性Promise异步函数ES6推出广泛Axios正式基Promise实现Http库底层XMLHttpRequestsPromise做封装Axios发布众推崇
微信程序需载安装直接应快捷户量
22 Java介绍
项目台Java开发Java现世界数编程语言受欢迎门面象语言够跨台运行考虑操作系统样子程序员专心考虑业务逻辑实现担心台运行兼容性支持泛型Java广泛应企业开发移动应开发然现移动端开发语言kotlin门语言运行java虚拟机门语言诞生1991年JamesGosling等开发初名称做Oak1994年更名Java说名字Java咖啡Java带垃圾处理机制C语言C++样需程序员身担心垃圾回收造成存泄漏Java运行Java虚拟机台关Java作门编程语言语法严谨完善异常处理机制Java编写出程序安全健壮性强移植跨台Java成世界流行语言Java发展数众许Java编写调简单功强稳定库许问题时社区中容易找答案Java先代码编译字节码程序Jvm解释运行需台部署Java环境便担心成Java次编译处运行宣传口号
23 台项目架构介绍
项目采JavaEE三层架构分展示层业务逻辑层数控制层帮助开发员更容易关注某层必担心部分项目开发环节进行解耦中展示层户交互接受户数返回处理结果户项目中展示层Springmvc框架框架目封装许底层操作外提供简单接口方便程序员进行开发提高程序员开发效率SpringMVC框架种够帮助实现种基JavaMVC设计模式轻量级框架现受欢迎web层框架取代前struts2SpringMVC想MVC添加Spring特色IOC赖反转功时应程序高度解耦学SpringMVC程中知道SpringMVC基原生WEB开发中DispatcherServlet设计Struts2基filter设计SpringMVC着清晰模块划分模块着独立功分前端控制器请求处理映射器处理器适配器验证器表单象命令象视图解析器处理器页面控制器SpringMVC易扩展定义组件等方式扩展需求身业务定义部分逻辑
Dao层mybatisPlus框架该框架中国进行开发基mybatis相Mybatis增强工具修改mybatis逻辑没mybatis身进行修改基础进行增强拓展帮助简化开发提高开发效率Mybatis非常优秀持久层框架完全避免JDBC代码懂设置参数处理返回结果帮动映射结果pojo框架种设计模式面试中常问点非常值学
整台SpringBoot框架进行控制反转赖注入spring现Java开发台中流框架甚说现学Java学SpringSpring官网提供Java台开发套框架开源框架2003年兴起Netflix开源发布现Netflix提供微服务架构站式解决方案然项目没采微服务架构SpringBoot相Spring次拓展Spring肯定知道部署环境编码程中需配置量配置文件整合新框架时需新框架添加配置文件时非常繁琐Springboot简化程新框架引入需pom文件中添加应starter启动器做点方式惯配置原理许配置默认惯方式配置满足需求时根需求进行更改添加新配置采JavaConfig方式注解进行注入简化部署开发程必样创建量xml文件配置文件需applicationyml者applicationpropertiesspringboot嵌入Tomcat必载配置Tomcat服务器
项目maven进行构建springboot身赖maven导入赖
SpringSecurity理权限Spring搭建环境中整合SpringSecurity非常方便Spring Secutrity功强完善
NoSql非关系型数库Redis作缓存存储权限等信息常常变更信息存入缓存减少数库查询带性损耗
24 技术架构图

图21前端技术架构图

图22端技术架构图
3系统介绍
31 系统设计功结构
考勤理系统户进行考勤理生成考勤统计信息理者提供户考勤信息方便公司理根理者想法考勤方式方便户提供微信程序端进行考勤
考勤理系统功菜单分:
首页:根角色进入显示普通户签查数台理权限户查系统情况天考勤情况签等
角色理:超级理员编辑系统角色权限者增删角色
公司理部门理:公司理员理公司部门
公司理员工理:理系统户拥权限户新增户删角色者编辑户部门角色
考勤理考勤方式设置:拥权限户业面设置公司考勤方式设置修改方式具体参数重页面显示考勤二维码方
考勤理假期设置:拥权限户页面公司调整假期设置
审核:申请流程进行中需审核事件会里显示页面查审核记录者某抄送审核
申请请假申请:需请假时需页面填写信息进行申请
申请补卡申请:忘记卡者某情况需补卡时候需页面填写信息进行申请
考勤记录考勤记录:拥权限户页面查系统户考勤记录提供数分析数导出等功
考勤记录考勤记录:显示户考勤记录
考勤记录考勤统计:图表显示考勤统计信息
中心修改密码:户修改密码页面


图31系统功结构图

32 系统模块介绍
321权限理模块
权限理模块什权限理呢户显示页面操作限制理户菜单进入菜单页数进行操作等控制理简单说登录户根户信息显示具备权限菜单进入页面根户信息显示具备权限信息根户信息页面显示具备权限操作钮调台接口服务器先根户信息判断否应权限句话概括说户访问访问授权资源少权限理应十分广泛权限理模块需具备功
①路菜单理:登录户菜单进行控制户登录应授权菜单
②页面显示理:登录户菜单进行控制户登录应授权信息
③操作钮理:登录户菜单进行控制户登录应操作授权操作钮
④角色权限理:理角色编辑角色权限
⑤户角色理:编辑户角色
322考勤统计模块
考勤理系统中考勤统计模块出便利性安全性考虑前端选择相应滤条件显示方式条件交端端考勤数服务器MySql数库中取出端进行分析封装加密返回前端浏览器显示前端根数动态显示表格者更加直观清晰明图表
考勤理系统中考勤数统计模块具体应该实现功:
①户验证功:登录户具相应权限展示考勤数户观分析
②网络交互功:浏览器通服务台暴露接口http协议服务端发送请求实现浏览器服务器间交互数传输
③考勤数查询功:前端提供滤条件排序条件台根户指定条件查询相应数封装加密返回前端前端够根户需方式展示数表格显示生成直观图表者导出数仅查询某员工详细数够查询某批员工数
④统计功:根户需求统计段时间某部门等条件需求定条件方式统计数返回前端统计结果根户需求展示数者导出数excel文件保证统计数准确性
⑤分析功:根户需条件数定算法进行分析展示户迟次数日期变化趋势果户相应需求量实现相应数分析功
323审批模块
审批模块考勤理系统中较重模块审批模块提供申请功流程审批功审批模块请假申请补卡申请审核功组成
①请假申请功:需请假时需进行请假申请请假类型限制请假类型包括限年假事假病假调休产假等通审批方成功请假
②补卡申请功:忘记班时间卡时月限额中进行补卡申请通审核方补卡成功
③审核功:面介绍功中会部分流程需特定户进行审批户审批审核功通者通流程走应户时申请进行操作
33 系统例图

图32系统例图
4权限模块设计实现
41 权限模块设计
考勤理系统户角色权限设计事实户权限关系分离解耦户应权限十果新户需权限设置话重复性表设计处理中间加入角色表角色表设计更加灵活处理权限户间关系角色公司岗位需求划分出权限集合样户直接角色做关联降低耦合公司新增工作岗位时新增岗位需权限现角色新增角色关联需特定权限系统户角色权限设计时考虑技术权限做新设计权限页面做划分页面菜单提取出形成菜单表根Vuerouter路参数做详细设计具体详细设计面出页面具体权限形成权限表菜单表做外键关联
确定户表角色表菜单表权限表该考虑关系显然户角色关系角色菜单关系角色权限关系确定关系中间表设计结合关系现确定表sys_user(户表)sys_role(角色表)sys_menu(菜单表)sys_permission(权限表)sys_user_role(户角色表)sys_role_menu(角色菜单表)sys_role_permission(角色权限表) 户角色表户角色关系进行转换户角色表户表角色表成关系理角色菜单表角色权限表样转换关系建表实体类ER图:

图41ER图
sys_menu(菜单表)设计结合前端技术vuerouter路库前端路进行控制sys_menu(菜单表)字段idnameredirecttitlehide_in_menucomponentparent_idchildren_idsorticon菜单表前端菜单路进行控制中name作路路名称生成链接路径设计redirect作路重定title应页面标题hide_in_menu设置应菜单页面左侧菜单栏显示component存放应页面前端文件位置(url)parent_idchildren_id辨明应父级菜单子菜单sort做菜单排序icon存放应菜单图标余表做详细说明
户登录前前端注册登录404等页面做路拦截未登录访问做默认跳转登录页户登录动态注册路没权限页面旧没法跳转样话户权限做理避免户直接路做操作跳转没权限页面
42 权限模块实现
权限模块说重户出现越权访问情况什越权访问情况呢访问某没权限资源例:户a权限中没b页面权限通某种情况成功访问b页面越权访问种理种系统中利Vuerouter动态路注册实现页面理设计方面已详细讲表设计里详细讲具体实现吧首先户未登录情况注册登录页404页面Vuerouter全局守卫做路拦截
if (token && toname LOGIN_PAGE_NAME) {
next({
name LOGIN_PAGE_NAME
})
} else if (token && toname LOGIN_PAGE_NAME) {
next()
} else if (token && toname LOGIN_PAGE_NAME) {
next({
name confighomeName
})
} else {
if (storestateuserhasGetInfo) {
initRouters(store)
next()
} else {
storedispatch('getUserInfo')then(() > {
initRouters(store)
next()
})catch(() > {
setToken('')
next({
name LOGIN_PAGE_NAME
})
})
}
}
面Vuerouter登录拦截实现中tokencookies保存判断户否登录給端做身份验证全局守卫中拦截做次判断未登录跳转页面登录页进行拦截跳转登录页未登陆跳转页面登录页放行已登录跳转页面登录页进行拦截跳转台页然户否获取信息做判断storeVuex全局状态理器判断没加载户信息加载直接进行初始化路没加载户信息先加载户信息初始化路防止户信息加载失败出现问题出现异常时清空token户跳转登录页Vuerouter全局守卫概实现
List menusFromRoles roleServicegetMenusFromRoles(roleSet)
HashMap menuMap new HashMap<>()
while (true) {
HashSet parentIds new HashSet<>(menusFromRolessize())
for (Menu menusFromRole menusFromRoles) {
Integer parentId menusFromRolegetParentId()
parentIdsadd(parentId)
String name menusFromRolegetName()
int i nameindexOf(_)
if (i 0)
menusFromRolesetPath()
else
menusFromRolesetPath( + name)
String s JSONObjecttoJSONString(menusFromRole)
JSONObject jsonObject JSONObjectparseObject(s)
jsonObjectremove(childrenId)
jsonObjectremove(parentId)
JSONObject metaObject new JSONObject()
metaObjectput(title jsonObjectremove(title))
metaObjectput(hideInMenu jsonObjectremove(hideInMenu))
metaObjectput(icon jsonObjectremove(icon))
jsonObjectput(meta metaObject)
JSONArray jsonArray menuMapget(parentId)
if (jsonArray null) {
jsonArray new JSONArray()
menuMapput(parentId jsonArray)
}
jsonArrayadd(jsonObject)
}
if (parentIdssize() 1 && parentIdscontains(0))
break
QueryWrapper queryWrapper new QueryWrapper<>()
queryWrapperin(id parentIds)
menusFromRoles menuServicelist(queryWrapper)
}
JSONArray jsonArray menuMapremove(0)
if (jsonArray null)
return ResultVOsuccess()
LinkedList list new LinkedList<>()
for (Object o jsonArray) {
JSONObject jsonObject (JSONObject) o
listadd(jsonObject)
}
while (listsize() 0) {
JSONObject jsonObject listpoll()
JSONArray array menuMapremove(jsonObjectgetIntValue(id))
if (array null)
for (Object o array) {
JSONObject jsonObject1 (JSONObject) o
listadd(jsonObject1)
}
jsonObjectput(children array)
jsonObjectremove(id)
}
return ResultVOsuccess(jsonArraytoJSONString())
方代码处理菜单表根户角色返回访问路表首先户角色查找应路表获取层路信息获取路信息进行处理首先循环层路信息进行处理处理数信息根parentId信息存hashMap键应值Array信息里然根parentId应路信息循环处理prentId长度包含0时退出循环获取出路信息先判断数长度果级菜单长度0需继续处理直接返回结果0需继续处理继续子菜单放应位置处理完成数概格式面样:
{
path
name _home
redirect 'home'
meta {
title '首页'
hideInMenu false
icon 'mdhome'
}
componentviewshomeindexvue
children [{
path 'home'
name 'home'
meta {
title '首页'
hideInMenu false
icon 'mdhome'
}
component viewstestindexvue
}]
}
前端数需次进行处理前端路数结构端传数点点区区component里样封装工具函数进行处理
const backendMenusToRouters (menus) > {
let routers []
forEach(menus (menu) > {
let route backendMenuToRoute(menu)
if (menuchildren && menuchildrenlength 0) {
routechildren backendMenusToRouters(menuchildren)
}
routerspush(route)
})
return routers
}
const backendMenuToRoute (menu) > {
let route Objectassign({} menu)
routecomponent (resolve) > require([`@{menucomponent}`] resolve)
return route
}
成功处理路树处理路方法放Vuex中进行理然Vuerouter全局守卫initRouters()函数中判断否已注册路注册直接跳转没注册进行路注册样成功理户权限防止户出现越权访问情况样处理次页面需重新访问数库会频繁访问数库影响系统性种情况引入Redis户数进行缓存户第次访问系统登录调获取路信息接口时获取户路信息Redis户路信息进行存储样户需路信息时需重新查询数直接Redis中取出路信息样提升系统性
页面具体权限Vuerouter全局守卫中页面渲染时进行处理判断权限容户没操作权限直接渲染出样户操作没权限容
户登录进行页面跳转会首先进入Vuerouter全局守卫进行判断请求接口获取户信息路信息表处理获取路信息进行注册路信息表然通通守卫成功进入页面页面渲染时判断应户否拥权限进行渲染没权限渲染应节点样实现权限理会出现越权访问情况
5测试
51 登录功测试

测试考勤理系统户登录否正常户输入时否会进行验证户密码户名输入错误时否会提示户名密码数库验证致时否成功登录系统
表51登录功测试例
例描述
测试考勤理系统登录功否正常
前置条件
存正确户名密码登录页面正常加载
操作步骤
输入数
预期结果
实际结果
输入正确户名密码
户名:test
密码:123456
登录成功跳转首页
登录成功跳转首页
输入错误户名正确密码
户名:head
密码:123456
登录失败弹出弹窗户名密码错误
登录失败弹出弹窗户名密码错误
输入正确户名错误密码
户名:test
密码:12345678
登录失败弹出弹窗户名密码错误
登录失败弹出弹窗户名密码错误


图51测试登录功
52 角色增删改查功测试
测试考勤理系统中角色新增删修改查询

表52角色增删改查功测试例
例描述
测试考勤理系统角色增删改查功否正常
前置条件
存正确角色权限台页正常加载角色理页面正常加载
操作步骤
输入数
预期结果
实际结果
点击角色理菜单钮

角色理页面正常加载出现默认分页查询结果
角色理页面正常加载出现默认分页查询结果
输入角色名点击查询钮
角色名:test
返回角色名中带test数
返回角色名中带test数
点击新增钮弹窗中输入角色名描述点击新增钮
角色名:test2
描述:测试数
弹出弹窗提示新增角色成功关闭弹窗
弹出弹窗提示新增角色成功关闭弹窗
鼠标移动需删角色面点击显示出确认

弹出弹窗提示删成功刷新前分页查询
弹出弹窗提示删成功刷新前分页查询
鼠标移动需删前页条角色面点击显示出确认

弹出弹窗提示删成功动跳转前页分页查询
弹出弹窗提示删成功动跳转前页分页查询
点击修改权限弹窗中修改前角色权限修改点击保存钮

弹出弹窗提示修改成功
弹出弹窗提示修改成功


图52测试角色增删改查功
53 员工增删改查功测试
测试考勤理系统员工新增修改查询删功

表53员工增删改查功测试例
例描述
测试考勤理系统员工增删改查功否正常
前置条件
存正确角色权限台页正常加载员工理页面正常加载
操作步骤
输入数
预期结果
实际结果
点击员工理菜单钮

员工理页面正常加载出现默认分页查询结果
员工理页面正常加载出现默认分页查询结果
点击分页中钮2

页面重新查询页面加载出查询结果第二页
页面重新查询页面加载出查询结果第二页
输入户名点击查询钮
户名:test
返回户名中带test数
返回户名中带test数
输入姓名点击查询钮
姓名:test
返回姓名中带test数
返回姓名中带test数
输入手机号点击查询钮
手机号:132
返回手机号中带132数
返回手机号中带132数
拉选择部门test点击查询

返回部门test数
返回部门test数
点击新增钮弹窗中输入新增员工信息点击新增
姓名:test3
户名:test3
工号:test003
手机号:132322343334
部门选择test
角色选择ROLE_1
弹出弹窗提示新增成功刷新前查询结果
弹出弹窗提示新增成功刷新前查询结果
点击修改钮修改户test3信息点击保存
手机号:13123728323
部门选择test1
角色选择ROLE_2
弹出弹窗提示保存成功刷新前查询结果
弹出弹窗提示保存成功刷新前查询结果
鼠标移动需删户面点击显示出确认

弹出弹窗提示删成功刷新前分页查询
弹出弹窗提示删成功刷新前分页查询
鼠标移动需删前页户面点击显示出确认

弹出弹窗提示删成功动跳转前页分页查询
弹出弹窗提示删成功动跳转前页分页查询


图53测试员工增删改查功
53 角色户权限控制测试
测试考勤理系统拥角色户登录菜单权限理否越权访问

表54户权限控制测试例
例描述
测试考勤理系统拥角色台菜单权限操作权限否受控
前置条件
存正确角色权限台页正常加载拥分拥角色户账号(test账号拥页面权限test2拥部分页面权限拥户理页面编辑权限test3拥户理页面权限没编辑权限)
操作步骤
输入数
预期结果
实际结果
输入test户账号密码点击页面查否正常
户名:test
密码:123456
台页面正常显示菜单栏正常显示
员工理页面正常加载出现默认分页查询结果
输入test2户账号密码查页面否正常显示尝试越权访问角色理页面
户名:test2
密码:passwd
址栏输入:role
台页面正常菜单栏正常越权访问角色理页面出现404页面
台页面正常菜单栏正常越权访问角色理页面出现404页面
输入test3户账号密码查页面员工理页面否编辑
户名:test3
密码:123456
台页面正常菜单栏正常员工理页面没新增修改删等钮
台页面正常菜单栏正常员工理页面没新增修改删等钮


图54 test户登录员工理页面

图55 test2户登录员工理页面

图56 test3户登录员工理页面
测试通率:100
6微信程序界面
微信程序端员工进行签手机端程序便捷

图61 微信程序员工登录页面

图62微信程序员工页

图63微信程序位置签

图64微信程序口令签

7结
考勤理系统权限理模块已出具体设计实现方案进行测试考勤理系统权限理结合技术做具体实现确定实现权限理模块时候需确定应技术考虑应设计实现充分结合技术设计数库实体类样更实现前端展示户权限做控制
时实现时考虑服务器优化Redis 做优化解决频繁请求服务器数库造成太压力问题
考勤理系统公司考勤微信程序签户更便捷


参考文献
[1]林磊骆建彬邓宪等理信息系统中基角色权限控制[J]计算机应研究2002(6)8284

附录1
程序源代码

**
* 系统菜单 服务实现类
*
@Service
public class MenuServiceImpl extends ServiceImpl implements MenuService {
@Autowired
private RoleService roleService
@Autowired
private MenuService menuService

@Override
public ResultVO getMenuFromRole() {
HashSet authorities (HashSet) SecurityAuthUtilgetCurrentUser()getAuthorities()
Set roleSet new HashSet<>()
for (GrantedAuthority authority authorities) {
roleSetadd(authoritygetAuthority())
}
List menusFromRoles roleServicelistMenusFromRoles(roleSet)
HashMap menuMap new HashMap<>()
while (true) {
HashSet parentIds new HashSet<>(menusFromRolessize())
for (Menu menusFromRole menusFromRoles) {
Integer parentId menusFromRolegetParentId()
parentIdsadd(parentId)
String name menusFromRolegetName()
int i nameindexOf(_)
if (i 0)
menusFromRolesetPath()
else
menusFromRolesetPath( + name)
String s JSONObjecttoJSONString(menusFromRole)
JSONObject jsonObject JSONObjectparseObject(s)
jsonObjectremove(childrenId)
jsonObjectremove(parentId)
JSONObject metaObject new JSONObject()
metaObjectput(title jsonObjectremove(title))
metaObjectput(hideInMenu jsonObjectremove(hideInMenu))
metaObjectput(icon jsonObjectremove(icon))
jsonObjectput(meta metaObject)
JSONArray jsonArray menuMapget(parentId)
if (jsonArray null) {
jsonArray new JSONArray()
menuMapput(parentId jsonArray)
}
jsonArrayadd(jsonObject)
}
if (parentIdssize() 1 && parentIdscontains(0))
break
QueryWrapper queryWrapper new QueryWrapper<>()
queryWrapperin(id parentIds)
menusFromRoles menuServicelist(queryWrapper)
}
JSONArray jsonArray menuMapremove(0)
if (jsonArray null)
return ResultVOsuccess()
LinkedList list new LinkedList<>()
for (Object o jsonArray) {
JSONObject jsonObject (JSONObject) o
listadd(jsonObject)
}
while (listsize() 0) {
JSONObject jsonObject listpoll()
JSONArray array menuMapremove(jsonObjectgetIntValue(id))
if (array null)
for (Object o array) {
JSONObject jsonObject1 (JSONObject) o
listadd(jsonObject1)
}
jsonObjectput(children array)
jsonObjectremove(id)
}
return ResultVOsuccess(jsonArraytoJSONString())
}
}
***vuerouter****
import Vue from vue
import VueRouter from vuerouter
import store from '@store'
import View from 'viewdesign'
import routes from routers
import {getTokensetToken} from '@libsutil'
import config from '@config'
Vueuse(VueRouter)

const router new VueRouter({
routes
mode 'history'
})
const LOGIN_PAGE_NAME 'login'
初始化路
const initRouters (storetonext) > {
登录已
if (storestateuserhasGetInfo) {
路加载
if (storestateapphasGetRouter && storestateapprouters && storestateapprouterslength > 0) {
} else {
加载路
storedispatch('getRouters')then(routes > {
路重置404放
routeraddRoutes(routes)
routeraddRoutes([{
path *
redirect page404
}])
})catch(()>{
})finally(() > {
})
}
}
}
routerbeforeEach((to from next) > {
ViewLoadingBarstart()
const token getToken()
if (token && toname LOGIN_PAGE_NAME) {
未登录跳转页面登录页
next({
name LOGIN_PAGE_NAME 跳转登录页
})
} else if (token && toname LOGIN_PAGE_NAME) {
未登陆跳转页面登录页
next() 跳转
} else if (token && toname LOGIN_PAGE_NAME) {
已登录跳转页面登录页
next({
name confighomeName 跳转homeName页
})
} else {
if (storestateuserhasGetInfo) {
initRouters(store)
next()
} else {
storedispatch('getUserInfo')then(() > {
initRouters(storetonext)
next()
})catch(() > {
setToken('')
next({
name LOGIN_PAGE_NAME
})
})
}
}
})
routerafterEach((to) > {
ViewLoadingBarfinish()
windowscrollTo(0 0)
})

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 60 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

考勤管理系统课程设计

考勤管理系统课程设计一、背景 2二、可行性分析 22.1技术可行性 22.2 经济可行性 22.3 操作可行性 22.4结论意见 3三、需求分析 33.1功能需求 33.2 性能需求 33.3 全局分析 43.4系统现状 43.5系统功能结构 53.6系统业务流程图 53.7系统数据流程图 63.8数据字典 6四、总体设计 74.1数据库 74.2系统窗口 8

z***u 2年前 上传420   0

IkaoQin考勤管理系统

IkaoQin考勤管理系统使用手册北京分形科技 目录一 简介 31 系统简介 32 主要特点 33 主要功能 3二 快速上手 41 初次使用 41.1 登录系统 41.2 公司信息设定 41.3 公司参数设定 51.4 增加部署 51.5 增加职务 61.6 增加员工 71.8 新增公司节假日信息 81.9 增加班次 91.10

郭***林 2年前 上传369   0

职工考勤管理系统说明书软件项目开发课程设计

******************* 实践教学 ******************* XX大学 计算机与通信学院 20XX年秋季学期 软件开发综合训练课程设计 题 目: 职工考勤管理系统 专业班级: 计算机科学与技术班 姓 名:

文***享 5年前 上传1519   0

课堂考勤管理系统设计与实现毕业论文

课堂考勤管理系统设计与实现毕业论文摘要本设计是以Visual Studio 2010作为开发平台,C#作为开发语言,结合SQL server 2008数据库开发设计的课堂考勤管理系统。该系统的目标是统计学生的考勤与请假信息。系统功能特点是围绕管理员、教师、学生三类用户设计,主要实现的功能:查询功能,旷课、请假信息的录入功能,考勤信息的统计功能,通报报表的查询以及用户信息的添加、修改和删除的功

文***享 4年前 上传577   0

数据库课程设计公司或单位员工考勤管理系统

目录1 概述 11.1设计背景 11.2研究目的 11.3理论基础的分析 21.4预期结果和意义 22 需求分析 22.1功能需求 22.2数据流图 32.3功能模块图 42.4系统数据流程图 43 概念结构设计 53.1 局部E-R图 53.2 整体E-R图 84 逻辑结构设计 94.1 关系模式 94.2数据关系图 95 物理结构设计 105.1存储记录结

文***享 6个月前 上传209   0

毕业设计管理系统的设计与实现

毕业设计管理系统的设计与实现 摘 要 随着Internet的飞速发展及互联网的普及,计算机已广泛用于政府、军事、科研、商业等部门,连接到千家万户,利用计算机实现毕业设计管理势在必行。 目前高校基本都采用网站的形式管理学生的毕业设计。 本文系统地介绍了毕业设计管理系统的工作原理、实现技术及系统架构方案。从而论述了一个毕业设计管理系统的设计原理、设计思想及具体的实现过程,对

山***1 5年前 上传2639   0

设计质量管理系统

设计质量管理系统〈设计师标准手册〉销售管理部目 录前 言第一章 设计人员工作标准一、 咨询标准二、 签单工作流程三、 签约标准四、 设计、报价标准五、 设计制图标准第二章 设计审核人员工作标准一、 设计审核部门工作内容二、 设计师工作质量考核方法三、 设计文件审核流程图前 言装饰工程有限责任公司〔以下简称“

天***猩 6天前 上传72   0

学校用户登记和操作权限管理制度

学校用户登记和操作权限管理制度1、校园网的所有服务器、主干交换机及其他系统主要设备由网络技术员负责管理,任何人不得擅自操作网络设备,修改网络参数和服务期等。2、信息中心分配给各部门的上传下载口令,各单位信息管理员应予以保护,如因保护不善而造成的不良后果由各单位信息管理员本人承担。3、对于校园网内各主要网络设备,信息中心应当正确分配权限,并加严密的口令予以保护,口令应定期修改,任何非系

是***忘 2年前 上传426   0

考勤管理系统的假期管理标准范文

考勤管理系统的假期管理标准范文  病假管理  员工因病或非因公负伤不能工作,在诊治期间,必须持县级及以上公立医院病假证明等有关材料,到所在单位办理请假手续,经批准后,方可休病假并按病假考勤。  (一)员工在工作时间需要去医院就诊,应事先请假,并经班长和车间级及以上领导批准后,就医时间在半天内的,可凭门诊收费单据或医药费报销单据按病假考勤;超过半天的凭医院病假证明考勤。  (二)员工在家患

平***7 2年前 上传253   0

银行账户管理系统(c++课程设计)

 2015-2016学年第二学期 面向对象程序设计(c++)大作业说明书学院名称: 计算机与信息工程学院 班级名称: 计算机科学与技术(对口) 学生姓名: 学 号: 题 目: 银行账户管理系统

文***品 3年前 上传729   0

管理人员的职责和权限

一、设备管理员〔计量管理员〕的职责和权限1、负责设备、设施添置、自制设备的设计和制造,负责工装夹具的设计和制造。负责设备、设施的安装、调试、日常的管理和检查,维修保养的检查、监督和控制工作。2、检查、监督设备操作人员正确、合理的使用设备、设施;对一些操作比拟复杂的设备和价值较高的、精密度较高的设备负责编制?设备操作规程?,检查、监督操作人员必须严格按照?设备操作规程?的规定,使用好设备。3

天***猩 3天前 上传41   0

权限管理制度

权限管理制度第一条、对系统内用户ID(包括增加、修改用户ID)的权限分配原则是:既要有科学依据,又不能任意分配,同时必须使用户ID既满足业务需求,又不能超越职责范围。第二条、对系统内用户ID的权限分配,首先必须在系统内现有的角色模板(普通角色和具体角色)的基础上进行,将相应的具体角色赋予用户ID。第三条、在系统内现有的角色模板不能满足用户ID的业务需求,需在系统内创建新的角色时,必须由

上***9 3年前 上传586   0

考勤管理

 修 订 记 录 版次 修 订 内 容 修订日期 01 新发行 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19

y***u 14年前 上传18671   0

软件项目管理之学生管理系统课程设计

 课程设计课程名称:软件项目管理 设计题目:学生管理系统项目工作计划 学 院:信息工程与自动化学院 专 业:计算机科学与技术 年 级:2008级 学生姓名:

文***享 1年前 上传407   0

基于JAVA WEB的考勤系统设计与实现

基于 JAVA WEB 的考勤系统设计和实现Design and Implementation of Attendance System Based on JAVA WEB摘要科技的发展,带动一系列产业的升级和创新;网络技术的不断更新迭代,冲击着人们的日常生活状态。人们越来越想更方便记录自身企业的考勤情况。但企业部门的多样化,给人们在传统考勤统计中带来了很大

平***苏 11个月前 上传364   0

C语言课程设计学生考勤系统

设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施:1、 初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、 建立一个文件,将每条记录信息写入文件中并能显示于

文***品 2年前 上传527   0

角色与场景设计

 角色与场景设计 一、课程介绍 角色结构与比例 写实的感染力 角色的组合关系 色彩设定 角度与透视 动漫场景分析 动漫场景创作 角色骨骼与肌肉 角色头部设计 角色表情设计 角色毛发设计 角色四肢设计 角色服装设计 角色动作设计 夸张与变形   一、动画造型设计浅析 1、动画造型的手段     造型设计是将动画的角色设计为可视的形象,使每一个角

l***e 5年前 上传2459   0

图书馆管理系统概要设计

图书馆管理系统概要设计引言1.1 编写目的由前面的需求分析,得出了系统的基本需求,和基本的数据流图,要实现整个系统,需要对用户的需求进行设计,概要设计主要是利用比较抽象的语言对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,实现对系统的初步设计。1.2 项目背景根据XX学校希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进

文***品 1年前 上传368   0

仓库管理系统的设计与实现

1 绪论随着社会经济的不断进展,各个企业也面临着各种机遇和挑战。为了能够在这个信息化的时代连续进展下去,就必需紧跟上时代的脚步。随着网络技术的不断进展, 现代物流技术也在不断的更换代。传统的人工记载的办公方法已经无法满足很多企业的需要,因此,每个企业都需要一个自动化的仓库治理系统。仓库是每个企业都必需慎重治理的地方,由于货物是企业最根本的本钱,只有很好地治理好自己

7***2 1年前 上传277   0

超市管理系统的设计与分析

网络和超市的大规模发展以及迅速发展的趋势,许多行业需要用到软件开发技术和工具。各种管理系统已成为行业发展不可或缺的重要功能。每一种管理系统都为该行业的发展和扩大提供了基础设施和竞争平台,同时也为经济的发展带来了很多益处。

爱***享 3年前 上传966   0

电子公文管理系统设计与实现

电子公文管理系统设计与实现  1 引言   公文是政府军队等各类部门请示汇报、命令下达等工作中的重要部分。传统的公文归档以纸质原件为主,存放在档案局等部门,当归档公文数目逐渐增多时,公文的查找就存在效率较低等缺点。尤其是当用户记不清楚公文的具体年份、标题等内容时,在纸质归档公文中进行基于内容的模糊查询几乎无法实现。另外,纸质公文的管理、维护、防腐等,也需要大量的人力物力支持。   随

D***H 9年前 上传830   0

双汇物流管理系统的设计与实现

世纪的前十年是我国物流行业飞速开展的十年,伴随着网络购物的指数性增长,以及城市化商业的迅速开展,物流公司如雨后春笋般崛起,三通一达、德邦、中外运等都已经开展成全国规模型物流企业,然而随着市场的不断饱和,客户日益个性化的物流需求,以及运输本钱的不断升高,各物流企业必须要整合自身资源,提供个性化的差异性效劳

0***狗 2年前 上传786   0

餐饮管理系统的设计与实现

 题 目 餐饮管理系统的设计与实现 学生姓名 焦诚 学号 1121024048 所在学院 数学与计算机科学学院 专业班级 信息管理与信息系统1102班 指导教师

郭***林 2年前 上传697   0

餐饮管理系统的设计与实现

摘 要1.背景目的:随着我国经济发展和人民生活水平显著提高,全社会对餐饮业的需求量也越来越大;伴随着消费的持续增长,餐饮行业已经成为现代社会中发展最快的行业之一。要想在激烈的市场竞争中生存,就必须在经营管理、餐饮服务等方面提高管理意识。如何用先进的管理手段,提高餐饮企业的管理水平,是每一个经营者所面临的重要课题。2.方法:笔者通过查阅文献和实际调查,首先对餐饮管理系统进行了概述,接着分析

平***苏 3年前 上传975   0

酒店管理系统的设计与实现

 酒店管理系统的设计与实现 摘 要 随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不断扩大,给酒店业计算机应用带来了蓬勃发展的机遇。采用全新的计算机网络和管理系统,将成为提高酒店管理效率,改善服务水准的重要手段之一。所以城市酒店入住信息管理系统是酒店经营不可缺少的现代工具。 B/S结构的酒店管理系统共实现了8个主要的功能模块:用户信息维护、

z***u 5年前 上传1723   0