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

天津市做公司网站的公司效果图网站源码

天津市做公司网站的公司,效果图网站源码,注册公司网站需要多少钱,东莞网站排名优化报价Java JavaScript 前后端协同实现按钮权限控制 在后台管理系统中,不同用户根据角色和数据状态应展示不同的操作按钮,比如编辑、删除、审批、提交等操作。本文将介绍一种通过 Java 后端生成按钮权限 JSON,前端通过 jQuery 解析控制按钮显示的…

Java + JavaScript 前后端协同实现按钮权限控制

在后台管理系统中,不同用户根据角色和数据状态应展示不同的操作按钮,比如编辑、删除、审批、提交等操作。本文将介绍一种通过 Java 后端生成按钮权限 JSON,前端通过 jQuery 解析控制按钮显示的通用方案。

一、功能场景说明

用户访问列表页时,每条记录根据:
当前登录用户角色(省/市/区县)
数据的审核状态(未提交、已提交、审核通过等)
是否本人创建数据
来判断是否显示 编辑 / 删除 / 提交 / 审批 / 撤销 / 变更 / 不同意审批 / 查看详情 等按钮。

二、后端实现步骤(Java)

  1. 定义按钮权限字段
    在实体类中新增字段用于存储按钮权限的 JSON 串:
/** 按钮权限 JSON */
private String buttonJson;
  1. 按照角色和状态生成按钮权限 Map
public static Map<String, Boolean> getChangeButtonMap(Admin user, int checkStatus, boolean isMyData) {Map<String, Boolean> buttons = new HashMap<>();Integer cityId = user.getCityId();boolean isProvince = cityId == null || cityId == 130000 || cityId == 139901;boolean isCity = false;boolean isDistrict = false;if (!isProvince && cityId != null) {if (cityId % 100 == 0) {isCity = true;} else {isDistrict = true;}}// 默认所有按钮为 falsebuttons.put("btn-edit", false);buttons.put("btn-submit", false);buttons.put("btn-delete", false);buttons.put("btn-revoke", false);buttons.put("btn-approve", false);buttons.put("btn-reject", false);buttons.put("btn-change", false);buttons.put("btn-detail", true); // 详情始终可见// 按角色分配权限if (cityId == 130000) { // 超级管理员全部权限buttons.replaceAll((k, v) -> true);} else if (isProvince || isCity) {buttons.put("btn-approve", true);} else if (isDistrict) {if (checkStatus == 0) {buttons.put("btn-delete", true);}}return buttons;
}
  1. 在列表处理逻辑中注入权限 JSON
ObjectMapper objectMapper = new ObjectMapper();for (UnitChange reg : list) {boolean isMyData = reg.getCreateBy() != null && reg.getCreateBy().equals(adminId);Map<String, Boolean> buttons = getChangeButtonMap(admin, reg.getCheckStatus(), isMyData);try {String buttonJson = objectMapper.writeValueAsString(buttons);reg.setButtonJson(buttonJson);} catch (JsonProcessingException e) {e.printStackTrace();}
}

三、前端实现步骤(JavaScript + HTML)

  1. HTML 渲染模板绑定权限数据
    每一行记录的操作按钮区域(假设是一个 )绑定 data-buttons 属性,并将权限 JSON 输出:
    td 上面要加 属性 , a标签中也要加上属性
<td class="td-manage" data-buttons='${revoke.buttonJson}'><a class="btn-submit" title="提交" href="javascript:;" onclick="changeStatusSingle(${revoke.id}, 1)" class="ml-5" style="text-decoration:none"><input  class="btn btn-primary radius" type="button"  value="提交"></a><a class="btn-approve" title="审批" href="javascript:;" onclick="changeStatusSingle(${revoke.id}, 2)" class="ml-5" style="text-decoration:none"><input  class="btn btn-warning radius" type="button"  value="审批"></a><a class="btn-delete" title="删除" href="javascript:;" onclick="del(${revoke.id})" class="ml-5" style="text-decoration:none"><input  class="	btn btn-danger radius" type="button"  value="删除"></a>
</td>

注意: class 必须以 btn-xxx 命名,和后端 JSON 的 key 保持一致!

  1. jQuery 处理按钮显示隐藏逻辑
    javascript
$(function () {$('.td-manage').each(function () {var $td = $(this);var buttons = {};try {buttons = JSON.parse($td.attr('data-buttons'));} catch (e) {console.error("按钮权限 JSON 解析失败", e);}// 遍历每一个按钮权限,根据布尔值决定是否隐藏$.each(buttons, function (key, value) {if (!value) {$td.find('.' + key).hide();}});});
});

四、效果与优势

✅ 不同用户登录看到的按钮不同

✅ 审核状态改变后页面按钮自动更新(需刷新)

✅ 权限计算逻辑集中在后端,前端只负责渲染

✅ 可扩展性强:只需添加按钮标识即可扩展新功能

五、注意事项

项目 要求
JSON Key 命名 必须与按钮类名一致,如 “btn-submit” 对应
JSON 输出格式 推荐使用 Jackson 的 ObjectMapper.writeValueAsString()
前端 class 使用 每个按钮用独立 class 包装,不能共用 class
安全性 前端控制仅作展示限制,后端仍需权限校验

http://www.dtcms.com/a/547798.html

相关文章:

  • 比较好网站搭建公司php个人网站
  • 做淘宝美工和网站设计那个好成品人和精品人的区别在哪约
  • 杭州有实力的网站开发赣州企业网站建设推广
  • 用dw做的个人网站邢台专业做网站费用
  • 网站推广专员面试谷歌三件套下载
  • 苏州行业网站建设报价asp网站配色
  • 网站开发设计思想报告wordpress销售
  • 做网站南京专业的龙岗网站建设
  • 网站开发需要有什么证书工作总结写作
  • 深圳h5响应式网站建设晋江网站建设报价
  • 学院的网站建设的意义作品展示的网站
  • 第1063章 自己做视频网站陕西网站建设公司电话
  • 站酷的网址网页小游戏在线玩知乎
  • 做网站一定需要icp么企业品牌策划排行榜
  • 网站互联互联网舆情监测系统
  • 自助建站网站如何下载wordpress
  • 有没有专门招代理的网站上海网站公司建设
  • 如何建立属于自己的网站潍坊知名网站建设
  • 青岛网络建站公司用自己的计算机做服务器建网站
  • 新网站为什么做的这么难罗湖实惠的网站建设费用
  • 给我一个网站图片网站设计和平面设计
  • 网站建设需要准备什么建网站做站长怎么赚钱
  • 个人网站 平台有没有专门做网站的
  • 做网站要分几部分完成在线看国内永久免费crm
  • dw做网站简单首页wordpress js加载位置
  • 怎么创建网站详细流程seo公司中国
  • 学做网站需要什么软件o2o商城系统
  • 巫山网站建设3小时网站建设平台
  • 代做毕设要注册答疑网站萍乡企业网站制作
  • php做网站标题加链接传动设备 技术支持 东莞网站建设