jeecg培训第一课(代码生成与权限分配)
问题描述:进口部要完成一票进口报关单的增删改查,操作员张三登录只能增删改张三的报关单,操作员李四登录只能增删改李四的报关单,
部门主管王五登录能查看张三和李四的报关单,但不能修改删除。操作员能提交报关单至领导审批,部门主管能审批报关单。
已知条件:报关单主体信息(dec_main):进口日期(ie_date),合同协议号(contr_no),报关单号(entry_id),申报单位(agent_name),业务编号(client_no),收货人(trade_name),
收货人手机号(phone) ,邮箱(email);报关单表体商品信息(dec_list):商品编码(goods_code),商品中文名(goods_name),商品申报要素(goods_comment),数量(qty),
外键(fid)。其中主体和表体是一对多关系。
附加要求:业务状态包含待提交,待审核,已审核,审核不通过,默认待提交;收货人手机号是手机校验必填,邮箱是邮箱校验不必填,商品的数量是数量校验不必填;
部门主管无需看到收货人手机号与邮箱信息。
解决方案:1.启动项目并用admin登录。
2.在系统管理---->数据字典里,添加新的数据字典业务状态decstate,在查看类型里分别添加4个子类型待提交(1),待审核(2),已审核(3),审核不通过(4)。
3.在在线开发------>online表单里创建表单,表名为dec_main,表类型为主表,增加数据库字段(默认的10个字段不需要修改),同时流程状态默认值赋1 ,在页面属性里,进口日期
的控件类型选择日期格式,在校验字典里,所属部门的字典Table填写t_s_depart,字典Code填写id,字典Text填写departname,流程状态的字典code输入decstate,同时手机
号码的验证规则为手机号码校验必填选中,邮箱的验证规则为电子邮件。
提交表单确定并同步数据库。
4.在在线开发------>online表单里创建表单,表名为dec_list,表类型为附表,增加数据库字段,在外键里,增加外键字段的主表名(dec_main),主表字段(id)属性,提交表单确定并同步数据库。
5.在在线开发里,选中表名为dec_main的记录,然后选则按钮代码生成生成代码拷贝到项目里。
6.代码调整
6.1 新增提交审核功能
<t:dgToolBar title="提交审核" icon="icon-redo" url="decMainController.do?submitcheck" funname="submitcheck"></t:dgToolBar>
其他title为名字,icon为图标样式,可查看链接地址https://www.cnblogs.com/xujiating/p/12023617.html,url为后台的路径,funname为前端js方法。
6.2新增审核功能同上
6.3界面权限设置:
在webpage--->com-jeecg-decmain的decMainList界面里,将收货人手机号和邮箱嵌在t:hasPermission标签下,代码如下:
<t:hasPermission code="phone_email">
<t:dgCol title="收货人手机号" field="phone" queryMode="single" width="120"></t:dgCol>
<t:dgCol title="邮箱" field="email" queryMode="single" width="120"></t:dgCol>
</t:hasPermission>
同时将删除,录入,编辑,查看,提交审核,审核加个operationCode属性
<t:dgToolBar title="录入" icon="icon-add" url="decMainController.do?goAdd" operationCode="add" funname="add" width="100%" height="100%">
</t:dgToolBar>
在webpage--->com-jeecg-decmain的decMain-update界面里,将收货人手机号和邮箱嵌在t:hasPermission标签下,代码同上。
6.在系统管理----菜单管理里新增菜单进口业务,在进口业务里新增子菜单业务查询,配置菜单地址decMainController.do?list,同时新增页面控件权限录入(add),编辑(update),删除(delete),
查看(detail),提交审核(submitcheck),审核(check);在里面新增权限菜单,路径为decMainController.do?datagrid,同时新增数据权限只能看到自己的createBy等于#{sys_user_code},
能看到本部门及以下的sysOrgCode模糊#{sys_org_code};新增业务查询查看权限菜单,路径为decMainController.do?goUpdate,同时新增页面控件名称看到手机号和邮箱(phone_email);
详细对应规则https://www.cnblogs.com/xujiating/p/11981875.html
7.在系统管理----->角色管理里新增两个角色,进口操作员和进口管理员,其中,进口操作员分配进口业务---业务查询的录入,编辑,删除,提交审核功能,进口业务----业务查询权限的只能
看到自己的功能;进口管理员分配进口业务---业务查询的查看功能,进口业务----业务查询权限的登录人看到下级的功能。
8.在系统管理---->组织机构管理里,新增进口部,同时在系统管理---->用户管理里,新增用户张三,李四,王五,张三,李四的角色是进口操作员,王五的角色是进口管理员,部门同属进口部。
博主微信xjt199561,欢迎技术交流!
jeecg培训第一课(代码生成与权限分配)的更多相关文章
- linux 用户创建、管理、权限分配
(1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...
- Magento学习第一课——目录结构介绍
Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...
- NeHe OpenGL教程 第一课:OpenGL窗口
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- umask默认权限分配
umask默认权限分配的命令 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好 ...
- python学习第一课要点记录
写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...
- 【Linux探索之旅】开宗明义+第一部分第一课:什么是Linux?
内容简介 1.课程大纲 2.第一部分第一课:什么是Linux? 3.第一部分第二课预告:下载Linux,免费的噢! 开宗明义 我们总听到别人说:Linux挺复杂的,是给那些追求逼格的程序员用的.咱 ...
- 【C语言探索之旅】 第二部分第一课:模块化编程
内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- 使用Mongodb+Shiro+SpringMVC实现动态权限分配
此次的文档只对Mongodb整合Shiro并且实现动态权限分配做整理,其它的内容以后会补上. 第一步.创建在web.xml中配置 Spring .Shiro shiroFilter 过滤器是用来将请求 ...
- [Spark内核] 第31课:Spark资源调度分配内幕天机彻底解密:Driver在Cluster模式下的启动、两种不同的资源调度方式源码彻底解析、资源调度内幕总结
本課主題 Master 资源调度的源码鉴赏 [引言部份:你希望读者看完这篇博客后有那些启发.学到什么样的知识点] 更新中...... 资源调度管理 任务调度与资源是通过 DAGScheduler.Ta ...
随机推荐
- fatal: Authentication failed for 'http://git
git pull 出现 fatal: Authentication failed for 'http://git... git config --system --unset credential.h ...
- 在ubuntu中安装minicom时出现device /dev/tty8 is locked解决办法
未正常关闭minicom yesaidu@ywf-ubuntu: ~$ ls /var/lock LCK..ttyS0 subsys yesaidu@ywf-ubuntu: ~$ kill 0 ye ...
- 小程序的基本概念-生命周期(组件 wxml)
一.组件生命周期:一个组件从创建开始到使用中最后被销毁的过程 ---onLoad事件:组件(创建成功并且加载完成)触发一次 (1)当此事件触发发送请求获取数据 (2)获取其他组件传递数据(option ...
- Unity - Cinemachine实现相机抖动
普通相机抖动脚本较易实现,但在使用cinemachine相机下,其Transform组件不可被代码改变,那么Cinemachine的相机抖动如何实现呢?本文结合实际项目,对实现相机抖动的三大步骤进行系 ...
- hdu 2444 The Accomodation of Students (判断二分图,最大匹配)
The Accomodation of StudentsTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- 力扣(LeetCode)字符串中的单词数 个人题解
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符. 请注意,你可以假定字符串里不包括任何不可打印的字符. 示例: 输入: "Hello, my name is John" ...
- 如何在后台封装el-tree所需要的数据格式
背景 最近遇到了一个分层级展示指标的需求,前端使用el-tree树形组件,要求按官方文档的格式提供数据. 数据格式: id: 1, label: '一级 1', children: id: 4, la ...
- vue使用talkIngData统计
上篇刚使用了百度统计,由于后端同事没有找到百度统计的api,于是就找了个talkingData平台... 平台地址 依旧是先注册 进入应用统计分析 创建应用 获得appid 在vue中埋点 1.in ...
- 01-MongoDB数据库基础
一.MongoDB数据库基础 1.MongoDB数据库介绍 什么是MongoDB? MongoDB是非关系型数据库中的一种,是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情 ...
- 读写分离很难吗?springboot结合aop简单就实现了
目录 前言 环境部署 开始项目 注意 參考: 前言 入职新公司到现在也有一个月了,完成了手头的工作,前几天终于有时间研究下公司旧项目的代码.在研究代码的过程中,发现项目里用到了Spring Aop来实 ...