You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

381 lines
11 KiB

  1. //公共参数
  2. let tableTags = 'role_data';
  3. let currentRow;//当前的行
  4. //var audioElement = document.createElement('audio');
  5. //audioElement.setAttribute('src', '/out_file/classic.mp3');
  6. //初始化
  7. $(function(){
  8. roleTableInit();
  9. });
  10. //初始化表格
  11. function roleTableInit(){
  12. $('#'+tableTags).bootstrapTable({
  13. url: '/user/getRoleDataByCon', //请求后台的URL(*)
  14. method: 'post', //请求方式(*)
  15. //contentType:'application/x-www-form-urlencoded',
  16. contentType:'application/json;charset=utf-8',
  17. toolbar: '#toolbar', //工具按钮用哪个容器
  18. striped: true, //是否显示行间隔色
  19. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  20. pagination: false, //是否显示分页(*)
  21. sortable: false, //是否启用排序
  22. sortOrder: "asc", //排序方式
  23. queryParamsType : "undefined", //排序方式
  24. queryParams: function queryParams(params) { //设置查询参数
  25. var param = {
  26. roleName : $("#search_rolename").val(),
  27. status: $("#search_status").val()
  28. };
  29. return JSON.stringify(param);
  30. },
  31. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  32. pageNumber: 1, //初始化加载第一页,默认第一页
  33. pageSize: 10, //每页的记录行数(*)
  34. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  35. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  36. searchTimeOut:1000,
  37. // : true,
  38. showColumns: false, //是否显示所有的列
  39. showRefresh: false, //是否显示刷新按钮
  40. minimumCountColumns: 2, //最少允许的列数
  41. clickToSelect: true, //是否启用点击选中行
  42. singleSelect: true,
  43. height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  44. uniqueId: "id", //每一行的唯一标识,一般为主键列
  45. // showToggle: true, //是否显示详细视图和列表视图的切换按钮
  46. cardView: false, //是否显示详细视图
  47. detailView: false, //是否显示父子表
  48. columns: [/*{
  49. checkbox: true
  50. },*/{
  51. field: 'roleName',
  52. title: '角色名称'
  53. },{
  54. field: 'roleDesc',
  55. title: '角色描述'
  56. },{
  57. field: 'status',
  58. title: '状态',
  59. formatter:function(value,row){
  60. if(value=="Y"){
  61. return "启用";
  62. }else if(value=="N"){
  63. return "禁用";
  64. }else if (value=="D"){
  65. return "删除"
  66. }
  67. },
  68. cellStyle: function(){
  69. return {css:{"text-align":"center"}}
  70. },
  71. },{
  72. field: 'createdBy',
  73. title: '创建人',
  74. },{
  75. field: 'createdDate',
  76. title: '创建时间',
  77. formatter : function(value, row){
  78. if(null == value || "" == value){
  79. return null
  80. }else{
  81. return value.substring(0, 19);
  82. }
  83. }
  84. }],
  85. onLoadSuccess: function (data){
  86. //调用自定义按钮的控制类
  87. customerBtnControl(tableTags, null, null)
  88. },
  89. onClickRow: function(row, $element){
  90. $('.check_back').removeClass('check_back');
  91. $($element).addClass('check_back');
  92. currentRow = row;
  93. //状态判断
  94. let statusCode = null;
  95. if("D" == row.status){
  96. statusCode = "deleted";
  97. }
  98. //调用自定义按钮的控制类
  99. customerBtnControl(tableTags, row, statusCode);
  100. },
  101. onDblClickRow: function(row, $element, field){
  102. currentRow = row;
  103. },
  104. //>>>>>>>>>>>>>>导出excel表格设置
  105. showExport: false, //是否显示导出按钮(此方法是自己写的目的是判断终端是电脑还是手机,电脑则返回true,手机返回falsee,手机不显示按钮)
  106. exportDataType: "basic", //basic', 'all', 'selected'.
  107. exportTypes:['excel','xlsx'], //导出类型
  108. exportButton: $('#download_button'), //为按钮btn_export 绑定导出事件 自定义导出按钮(可以不用)
  109. exportOptions:{
  110. ignoreColumn: [8,8], //忽略某一列的索引
  111. fileName: '角色信息维护', //文件名称设置
  112. worksheetName: '角色信息维护', //表格工作区名称
  113. tableName: '角色信息维护',
  114. excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
  115. //onMsoNumberFormat: DoOnMsoNumberFormat
  116. }
  117. //导出excel表格设置<<<<<<<<<<<<<<<<
  118. });
  119. }
  120. //播放音乐声音
  121. //function playAudio(){
  122. // /*var audio = document.getElementById("play");
  123. // audio.play();*/
  124. // audioElement.play();
  125. //}
  126. //添加角色
  127. function addRoleModal(){
  128. //清空数据
  129. clear();
  130. //显示隐藏的数据
  131. $("#role_modal").modal();
  132. }
  133. //角色编辑
  134. function editRoleModal(){
  135. //清空数据
  136. clear();
  137. //初始化参数
  138. $("#add_role_name").val(currentRow.roleName);
  139. $("#add_role_desc").val(currentRow.roleDesc);
  140. $("#role_id").val(currentRow.id);
  141. $("#add_role_status").val(currentRow.status);
  142. //显示隐藏的数据
  143. $("#role_modal").modal();
  144. }
  145. //角色的更新和新增
  146. function saveRole(){
  147. var roleNname = $.trim($("#add_role_name").val());
  148. var roleDesc = $.trim($("#add_role_desc").val());
  149. var id = $("#add_role_id").val();
  150. if (name=="") {
  151. layer.msg("角色名称不能为空!");
  152. return false;
  153. }
  154. layer.load(2);
  155. /**
  156. * 保存数据
  157. */
  158. $.ajax({
  159. url: "/user/saveRole",
  160. type:"POST",
  161. data:$('#role_form').serialize(),// 你的formid
  162. dataType:"JSON",
  163. success: function (data) {
  164. layer.closeAll('loading');
  165. if (data.success) {
  166. layer.msg(data.msg);
  167. clear();
  168. $("#role_cancel").click();
  169. $('#role_data').bootstrapTable('refresh');
  170. }else{
  171. layer.msg(data.msg);
  172. }
  173. },
  174. error: function(data) {
  175. var responseText = data.responseText;
  176. var json_str = JSON.parse(responseText);
  177. var status = json_str.status;
  178. var message = json_str.message;
  179. //判断是否是session超时
  180. if(403==status){
  181. layer.alert(message,function(){
  182. window.parent.subCallBackReload();
  183. });
  184. }
  185. layer.closeAll('loading');
  186. }
  187. })
  188. }
  189. //处理搜索,刷新table
  190. function searchPage(){
  191. $('#role_data').bootstrapTable('refresh');
  192. }
  193. //清除输入内容
  194. function clear(){
  195. //初始化信息
  196. $("#add_role_name").val("");
  197. var createdBy = $('#current_username').val();
  198. var site = $('#current_site').val();
  199. $('#created_by').val(createdBy);
  200. $('#updated_by').val(createdBy);
  201. $('#role_site').val(site);
  202. $("#add_role_desc").val("");
  203. $("#role_id").val("0");
  204. $("#role_status").val("Y");
  205. }
  206. //删除角色确认
  207. function delRoleModal(){
  208. layer.confirm('确定要删除选中角色!', {
  209. btn : [ '确定', '取消' ]
  210. // 按钮
  211. }, function() {
  212. delRoleById(currentRow);
  213. }, function() {
  214. });
  215. }
  216. //删除角色操作
  217. function delRoleById(row){
  218. $.ajax({
  219. url:"/user/delRoleById",
  220. contentType:'application/json;charset=utf-8',
  221. type:"POST",
  222. data:JSON.stringify({"id": row.id, "deletedBy": $("#current_username").val(), status: 'D'}),
  223. dataType:"JSON",
  224. success: function (data) {
  225. layer.closeAll('loading');
  226. if (data.success) {
  227. layer.msg(data.msg);
  228. $('#role_data').bootstrapTable('refresh');
  229. }else{
  230. layer.msg(data.msg);
  231. }
  232. },
  233. error: function(data) {
  234. var responseText = data.responseText;
  235. var json_str = JSON.parse(responseText);
  236. var status = json_str.status;
  237. var message = json_str.message;
  238. //判断是否是session超时
  239. if(403==status){
  240. layer.alert(message,function(){
  241. window.parent.subCallBackReload();
  242. });
  243. }
  244. layer.closeAll('loading');
  245. }
  246. });
  247. }
  248. //角色授权
  249. function authModal(){
  250. $("#authr_role_name").text(currentRow.roleName);
  251. $("#auth_role_id").val(currentRow.id);
  252. treeInit(currentRow.id);
  253. $("#auth_modal").modal();
  254. }
  255. //加载树形表格
  256. function treeInit(roleId){
  257. var setting = {
  258. check: {
  259. enable: true
  260. },
  261. simpleData: {
  262. enable: true,
  263. idKey:"id",
  264. idPKey:"pId",
  265. rootPId : 0
  266. }
  267. };
  268. $.ajax({
  269. url:"/user/getTreeDataByRoleId",
  270. type: "POST",
  271. data: {"roleId" : roleId},
  272. dataType: "JSON",
  273. success: function (data) {
  274. layer.closeAll('loading');
  275. if (data.success) {
  276. $.fn.zTree.init($("#tree"), setting, data.rows);
  277. }else{
  278. layer.msg(data.msg);
  279. }
  280. },
  281. error: function(data) {
  282. var responseText = data.responseText;
  283. var json_str = JSON.parse(responseText);
  284. var status = json_str.status;
  285. var message = json_str.message;
  286. //判断是否是session超时
  287. if(403==status){
  288. layer.alert(message,function(){
  289. window.parent.subCallBackReload();
  290. });
  291. }
  292. layer.closeAll('loading');
  293. }
  294. });
  295. }
  296. //保存权限
  297. function saveAuth(){
  298. var roleId = $("#auth_role_id").val();
  299. var treeObj=$.fn.zTree.getZTreeObj("tree");
  300. var nodes=treeObj.getCheckedNodes(true);
  301. var values = [];
  302. for(var i=0;i<nodes.length;i++){
  303. values.push(nodes[i].id);
  304. }
  305. $.ajax({
  306. url:"/user/saveRoleResource",
  307. type:"post",
  308. data:{"roleId" : roleId,
  309. "auths" : values.join(','),
  310. "username": $('#current_username').val()},
  311. dataType:"json",
  312. success: function (data) {
  313. layer.closeAll('loading');
  314. if (data.success) {
  315. layer.msg(data.msg);
  316. clear();
  317. $("#auth_cancel").click();
  318. }else{
  319. layer.msg(data.msg);
  320. }
  321. },
  322. error: function(data) {
  323. var responseText = data.responseText;
  324. var json_str = JSON.parse(responseText);
  325. var status = json_str.status;
  326. var message = json_str.message;
  327. //判断是否是session超时
  328. if(403==status){
  329. layer.alert(message,function(){
  330. window.parent.subCallBackReload();
  331. });
  332. }
  333. layer.closeAll('loading');
  334. }
  335. });
  336. }
  337. //菜单重载
  338. function initMenus(){
  339. $.ajax({
  340. url: "/user/initMenus",
  341. type:"POST",
  342. async: false,
  343. data: {},
  344. dataType:"JSON",
  345. success: function (data) {
  346. layer.closeAll('loading');
  347. if (data.success) {
  348. layer.msg(data.msg);
  349. }
  350. },
  351. error: function(data) {
  352. var responseText = data.responseText;
  353. var json_str = JSON.parse(responseText);
  354. var status = json_str.status;
  355. var message = json_str.message;
  356. //判断是否是session超时
  357. if(403==status){
  358. layer.alert(message,function(){
  359. window.parent.subCallBackReload();
  360. });
  361. }
  362. layer.closeAll('loading');
  363. }
  364. });
  365. }