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.

598 lines
17 KiB

  1. //公共参数
  2. let tableTags = "user_data";//表格的id
  3. let currentRow;//临时的参数行
  4. //初始化
  5. $(function(){
  6. //初始化车间信息
  7. userTableInit();
  8. //初始化工厂
  9. initSiteChoose();
  10. s();
  11. });
  12. //初始化表格
  13. function userTableInit(){
  14. $('#'+ tableTags).bootstrapTable({
  15. url: '/user/getUserDataByCon', //请求后台的URL(*)
  16. method: 'post', //请求方式(*)
  17. //contentType:'application/x-www-form-urlencoded',
  18. contentType:'application/json;charset=utf-8',
  19. toolbar: '#toolbar', //工具按钮用哪个容器
  20. striped: true, //是否显示行间隔色
  21. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  22. pagination: false, //是否显示分页(*)
  23. sortable: false, //是否启用排序
  24. sortOrder: "asc", //排序方式
  25. queryParamsType : "undefined", //排序方式
  26. queryParams: function queryParams(params) { //设置查询参数
  27. var param = {
  28. username : $("#search_username").val(),
  29. display : $("#search_display").val(),
  30. status : $("#search_status").val()
  31. };
  32. return JSON.stringify(param);
  33. },
  34. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  35. pageNumber: 1, //初始化加载第一页,默认第一页
  36. pageSize: 10, //每页的记录行数(*)
  37. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  38. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  39. searchTimeOut:1000,
  40. // : true,
  41. showColumns: false, //是否显示所有的列
  42. showRefresh: false, //是否显示刷新按钮
  43. minimumCountColumns: 2, //最少允许的列数
  44. clickToSelect: true, //是否启用点击选中行
  45. singleSelect: false,
  46. height: 400, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  47. uniqueId: "id", //每一行的唯一标识,一般为主键列
  48. // showToggle: true, //是否显示详细视图和列表视图的切换按钮
  49. cardView: false, //是否显示详细视图
  50. detailView: false, //是否显示父子表
  51. columns: [/*{
  52. checkbox: true
  53. },*/{
  54. field: 'username',
  55. title: '账号'
  56. },{
  57. field: 'display',
  58. title: '姓名'
  59. },{
  60. field: 'createdBy',
  61. title: '创建人'
  62. },{
  63. field: 'createdDate',
  64. title: '创建时间',
  65. formatter : function(value, row){
  66. if(null == value || "" == value){
  67. return null
  68. }else{
  69. return value.substring(0, 19);
  70. }
  71. }
  72. },{
  73. field: 'status',
  74. title: '状态',
  75. formatter : function(value, row, index){
  76. if('Y' == value){
  77. return '启用';
  78. }else{
  79. return '禁用';
  80. }
  81. }
  82. }],
  83. onClickRow: function(row, $element){
  84. $('.check_back').removeClass('check_back');
  85. $($element).addClass('check_back');
  86. currentRow = row;
  87. //状态判断
  88. let statusCode = null;
  89. if("D" == row.status){
  90. statusCode = "deleted";
  91. }
  92. //调用自定义按钮的控制类
  93. customerBtnControl(tableTags, row, statusCode);
  94. },
  95. onLoadSuccess: function (data){
  96. //调用自定义按钮的控制类
  97. customerBtnControl(tableTags, null, null)
  98. },
  99. onDblClickRow: function(row, $element, field){
  100. currentRow = row;
  101. },
  102. //>>>>>>>>>>>>>>导出excel表格设置
  103. showExport: false, //是否显示导出按钮(此方法是自己写的目的是判断终端是电脑还是手机,电脑则返回true,手机返回falsee,手机不显示按钮)
  104. exportDataType: "basic", //basic', 'all', 'selected'.
  105. exportTypes:['excel','xlsx'], //导出类型
  106. exportButton: $('#download_button'), //为按钮btn_export 绑定导出事件 自定义导出按钮(可以不用)
  107. exportOptions:{
  108. ignoreColumn: [8,8], //忽略某一列的索引
  109. fileName: '用户信息维护表', //文件名称设置
  110. worksheetName: '用户信息维护表', //表格工作区名称
  111. tableName: '用户信息维护表',
  112. excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
  113. onMsoNumberFormat: DoOnMsoNumberFormat
  114. }
  115. //导出excel表格设置<<<<<<<<<<<<<<<<
  116. });
  117. }
  118. //格式化数字
  119. function DoOnMsoNumberFormat(cell, row, col) {
  120. var result = "";
  121. if (row > 0 && col == 0)
  122. result = "\\@";
  123. return result;
  124. }
  125. function editPasswordPage(){
  126. $("#first_password").val("");
  127. $("#confirm_password").val("");
  128. $("#user_password").modal();
  129. }
  130. //修改密码
  131. function savePassword(){
  132. var first_password = $.trim($("#first_password").val());
  133. var confirm_password = $.trim($("#confirm_password").val());
  134. if(first_password==""){
  135. layer.msg("密码不能为空!");
  136. return false;
  137. }
  138. if(confirm_password==""){
  139. layer.msg("确认密码不能为空!");
  140. return false;
  141. }
  142. if(confirm_password!=first_password){
  143. layer.msg("确认密码和密码必须相同!");
  144. return false;
  145. }
  146. $.ajax({
  147. url: "/user/uodatasetpassword",
  148. type:"POST",
  149. data:{"id": currentRow.id,
  150. "password": first_password,
  151. "confirmpassword": confirm_password
  152. },// 你的formid
  153. dataType:"JSON",
  154. success: function (data) {
  155. if (data.success) {
  156. layer.msg(data.msg);
  157. $("#password_cancel").click();
  158. if (data.success==true){
  159. window.location.href="/login";
  160. }
  161. }else{
  162. layer.msg(data.msg);
  163. }
  164. },
  165. error: function(data) {
  166. var responseText = data.responseText;
  167. var json_str = JSON.parse(responseText);
  168. var status = json_str.status;
  169. var message = json_str.message;
  170. //判断是否是session超时
  171. if(403==status){
  172. layer.alert(message,function(){
  173. window.location.href="/login";
  174. });
  175. }
  176. layer.closeAll('loading');
  177. }
  178. });
  179. }
  180. //初始化工厂用于选择
  181. function initSiteChoose(){
  182. $.ajax({
  183. url: "/base/getsite",
  184. type: "POST",
  185. data: {},// 你的formid
  186. dataType:"JSON",
  187. success: function (data) {
  188. layer.closeAll('loading');
  189. if (data.success) {
  190. var rows = data.rows
  191. var siteTags = '';
  192. for(var i = 0; i< rows.length; i++){
  193. siteTags += '<option value="'+rows[i].siteID+'">'+rows[i].siteID+'-'+rows[i].siteName+'</option>';
  194. }
  195. $("#user_site").html(siteTags);
  196. }else{
  197. layer.msg(data.msg);
  198. }
  199. },
  200. error: function(data) {
  201. var responseText = data.responseText;
  202. var json_str = JSON.parse(responseText);
  203. var status = json_str.status;
  204. var message = json_str.message;
  205. //判断是否是session超时
  206. if(403==status){
  207. layer.alert(message,function(){
  208. window.parent.subCallBackReload();
  209. });
  210. }
  211. layer.closeAll('loading');
  212. }
  213. })
  214. }
  215. //添加角色
  216. function addModal(){
  217. clear();
  218. //显示隐藏的数据
  219. $("#user_modal").modal();
  220. }
  221. //角色编辑
  222. function editUserModal(){
  223. //初始化参数
  224. f2()
  225. $("#usernames").val(currentRow.username);
  226. $("#displays").val(currentRow.display);
  227. $("#ids").val(currentRow.id);
  228. $("#user_statuss").val(currentRow.status);
  229. $("#user_sites").val(currentRow.site);
  230. $("#user_mailboxs").val(currentRow.mailbox);
  231. //显示隐藏的数据
  232. $("#user_modalNo1").modal();
  233. }
  234. function f2() {
  235. $("#usernames").val("");
  236. $("#displays").val("");
  237. $("#ids").val("");
  238. $("#user_statuss").val("");
  239. $("#user_sites").change("");
  240. $("#user_mailboxs").val("");
  241. //显示隐藏的数据
  242. }
  243. //初始化工厂用于选择
  244. function s() {
  245. $.ajax({
  246. url: "/base/getsite",
  247. type: "POST",
  248. data: {},// 你的formid
  249. dataType:"JSON",
  250. success: function (data) {
  251. layer.closeAll('loading');
  252. if (data.success) {
  253. var rows = data.rows
  254. var siteTags = '';
  255. for(var i = 0; i< rows.length; i++){
  256. siteTags += '<option value="'+rows[i].siteID+'">'+rows[i].siteID+'-'+rows[i].siteName+'</option>';
  257. }
  258. $("#user_sites").html(siteTags);
  259. }else{
  260. layer.msg(data.msg);
  261. }
  262. },
  263. error: function(data) {
  264. var responseText = data.responseText;
  265. var json_str = JSON.parse(responseText);
  266. var status = json_str.status;
  267. var message = json_str.message;
  268. //判断是否是session超时
  269. if(403==status){
  270. layer.alert(message,function(){
  271. window.parent.subCallBackReload();
  272. });
  273. }
  274. layer.closeAll('loading');
  275. }
  276. })
  277. }
  278. function saveUsers(){
  279. var username = $.trim($("#usernames").val());
  280. var display = $.trim($("#displays").val());
  281. var id = $("#ids").val();
  282. var site = $('#user_sites').val();
  283. var mailbox= $('#user_mailboxs').val();
  284. var updatedBy=$('#current_username').val();
  285. if (username == "") {
  286. layer.msg("请输入用户账号!");
  287. return false;
  288. }
  289. if (display == "") {
  290. layer.msg("请输入用户名称!");
  291. return false;
  292. }
  293. if (site == "") {
  294. layer.msg("请选择工厂编号!");
  295. return false;
  296. }
  297. /**
  298. * 保存数据
  299. */
  300. $.ajax({
  301. url: "/user/updateusermapper",
  302. type:"POST",
  303. data:{"username":username,"display":display,"id":id,"site":site,"mailbox":mailbox,"updatedBy":updatedBy},// 你的formid
  304. dataType: "json",
  305. success: function (data) {
  306. layer.closeAll('loading');
  307. if (data.success) {
  308. layer.msg(data.msg);
  309. $("#user_cancels").click();
  310. $('#user_data').bootstrapTable('refresh');
  311. }else{
  312. layer.msg(data.msg);
  313. }
  314. },
  315. error: function(data) {
  316. var responseText = data.responseText;
  317. var json_str = JSON.parse(responseText);
  318. var status = json_str.status;
  319. var message = json_str.message;
  320. //判断是否是session超时
  321. if(403==status){
  322. layer.alert(message,function(){
  323. window.parent.subCallBackReload();
  324. });
  325. }
  326. layer.closeAll('loading');
  327. }
  328. })
  329. }
  330. function f() {
  331. $('#auth_modalsd').modal();
  332. }
  333. function f1() {
  334. var password=$('#passsss').val();
  335. if (password==''){
  336. layer.msg("密码为空!");
  337. return false;
  338. }
  339. $.ajax({
  340. url: "/user/updateuserpasswordid",
  341. type:"POST",
  342. data:{"id":currentRow.id,"password":password},// 你的formid
  343. dataType: "json",
  344. success: function (data) {
  345. layer.closeAll('loading');
  346. if (data.success) {
  347. layer.msg(data.msg);
  348. $("#auth_cancelsd").click();
  349. $('#user_data').bootstrapTable('refresh');
  350. }else{
  351. layer.msg(data.msg);
  352. }
  353. },
  354. error: function(data) {
  355. var responseText = data.responseText;
  356. var json_str = JSON.parse(responseText);
  357. var status = json_str.status;
  358. var message = json_str.message;
  359. //判断是否是session超时
  360. if(403==status){
  361. layer.alert(message,function(){
  362. window.parent.subCallBackReload();
  363. });
  364. }
  365. layer.closeAll('loading');
  366. }
  367. })
  368. }
  369. //用户的更新和新增
  370. function saveUser(){
  371. var username = $.trim($("#username").val());
  372. var display = $.trim($("#display").val());
  373. var id = $("#id").val();
  374. var site = $('#user_site').val();
  375. var mailbox= $('#user_mailbox').val();
  376. if (username == "") {
  377. layer.msg("请输入用户账号!");
  378. return false;
  379. }
  380. if (display == "") {
  381. layer.msg("请输入用户名称!");
  382. return false;
  383. }
  384. if (site == "") {
  385. layer.msg("请选择工厂编号!");
  386. return false;
  387. }
  388. /**
  389. * 保存数据
  390. */
  391. $.ajax({
  392. url: "/user/saveUser",
  393. type:"POST",
  394. data:$('#user_form').serialize(),// 你的formid
  395. dataType:"JSON",
  396. success: function (data) {
  397. layer.closeAll('loading');
  398. if (data.success) {
  399. layer.msg(data.msg);
  400. $("#user_cancel").click();
  401. $('#user_data').bootstrapTable('refresh');
  402. }else{
  403. layer.msg(data.msg);
  404. }
  405. },
  406. error: function(data) {
  407. var responseText = data.responseText;
  408. var json_str = JSON.parse(responseText);
  409. var status = json_str.status;
  410. var message = json_str.message;
  411. //判断是否是session超时
  412. if(403==status){
  413. layer.alert(message,function(){
  414. window.parent.subCallBackReload();
  415. });
  416. }
  417. layer.closeAll('loading');
  418. }
  419. })
  420. }
  421. //处理搜索,刷新table
  422. function search(){
  423. $('#user_data').bootstrapTable('refresh');
  424. }
  425. //清除输入内容
  426. function clear(){
  427. //初始化信息
  428. $("#username").val("");
  429. $("#display").val("");
  430. $("#password").val("");
  431. var createdBy = $('#current_username').val();
  432. var site = $('#current_site').val();
  433. $('#created_by').val(createdBy);
  434. $('#updated_by').val(createdBy);
  435. $("#user_site option:first").prop("selected", 'selected');
  436. $("#user_department option:first").prop("selected", 'selected');
  437. $("#business_category option:first").prop("selected", 'selected');
  438. $("#shift_class option:first").prop("selected", 'selected');
  439. $("#id").val("0");
  440. $("#user_status").val("Y");
  441. $("#user_mailbox").val("");
  442. }
  443. //删除用户确认
  444. function delUserModal(){
  445. layer.confirm('确定要删除选中用户!', {
  446. btn : [ '确定', '取消' ]
  447. // 按钮
  448. }, function() {
  449. delUserById(currentRow);
  450. }, function() {
  451. });
  452. }
  453. //删除角色操作
  454. function delUserById(row){
  455. $.ajax({
  456. url:"/user/delUserById",
  457. type:"POST",
  458. contentType: 'application/json;charset=utf-8',
  459. data:JSON.stringify({"id": row.id, "username": row.username,
  460. "updatedBy":$('#current_username').val(), "status": 'D'}),
  461. dataType:"JSON",
  462. success: function (data) {
  463. layer.closeAll('loading');
  464. if (data.success) {
  465. layer.msg(data.msg);
  466. $('#user_data').bootstrapTable('refresh');
  467. }else{
  468. layer.msg(data.msg);
  469. }
  470. },
  471. error: function(data) {
  472. var responseText = data.responseText;
  473. var json_str = JSON.parse(responseText);
  474. var status = json_str.status;
  475. var message = json_str.message;
  476. //判断是否是session超时
  477. if(403==status){
  478. layer.alert(message,function(){
  479. window.parent.subCallBackReload();
  480. });
  481. }
  482. layer.closeAll('loading');
  483. }
  484. });
  485. }
  486. //角色授权
  487. function authModal(){
  488. $("#authr_user_display").text(currentRow.display);
  489. $("#auth_user_name").val(currentRow.username);
  490. treeInit(currentRow.username);
  491. $("#auth_modal").modal();
  492. }
  493. //加载树形表格
  494. function treeInit(username){
  495. var setting = {
  496. check: {
  497. enable: true
  498. },
  499. simpleData: {
  500. enable: true,
  501. idKey:"id",
  502. idPKey:"pId",
  503. rootPId : 0
  504. }
  505. };
  506. //加载树结构
  507. $.ajax({
  508. url:"/user/getTreeDataByUsername",
  509. type: "POST",
  510. data: {"username": username},
  511. dataType: "JSON",
  512. success: function (data) {
  513. layer.closeAll('loading');
  514. if (data.success) {
  515. $.fn.zTree.init($("#tree"), setting, data.rows);
  516. }else{
  517. layer.msg(data.msg);
  518. }
  519. },
  520. error: function(data) {
  521. var responseText = data.responseText;
  522. var json_str = JSON.parse(responseText);
  523. var status = json_str.status;
  524. var message = json_str.message;
  525. //判断是否是session超时
  526. if(403==status){
  527. layer.alert(message,function(){
  528. window.parent.subCallBackReload();
  529. });
  530. }
  531. layer.closeAll('loading');
  532. }
  533. });
  534. }
  535. //保存权限
  536. function saveAuth(){
  537. var username = $("#auth_user_name").val();
  538. var treeObj=$.fn.zTree.getZTreeObj("tree");
  539. var nodes=treeObj.getCheckedNodes(true);
  540. var values = [];
  541. for(var i=0;i<nodes.length;i++){
  542. values.push(nodes[i].id);
  543. }
  544. $.ajax({
  545. url: "/user/saveUserRole",
  546. type: "post",
  547. data: {"username": username,
  548. "auths": values.join(','),
  549. "account": $("#current_username").val()},
  550. dataType: "json",
  551. success: function (data) {
  552. layer.closeAll('loading');
  553. if (data.success) {
  554. layer.msg(data.msg);
  555. $("#auth_cancel").click();
  556. }else{
  557. layer.msg(data.msg);
  558. }
  559. },
  560. error: function(data) {
  561. var responseText = data.responseText;
  562. var json_str = JSON.parse(responseText);
  563. var status = json_str.status;
  564. var message = json_str.message;
  565. //判断是否是session超时
  566. if(403==status){
  567. layer.alert(message,function(){
  568. window.parent.subCallBackReload();
  569. });
  570. }
  571. layer.closeAll('loading');
  572. }
  573. })
  574. }