userManager.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. var zdata = [];
  2. var dept_tree = null;
  3. var edittype = "add";
  4. var UserMap = new HashMap()
  5. var cols = [{
  6. width: 10,
  7. text: '序号',
  8. type: 'number',
  9. flex: false,
  10. colClass: 'text-center'
  11. }, {
  12. width: 30,
  13. text: '账号',
  14. type: 'string',
  15. flex: false,
  16. colClass: 'text-center'
  17. }, {
  18. width: 30,
  19. text: '姓名',
  20. type: 'string',
  21. flex: false,
  22. sort: 'down',
  23. colClass: 'text-center'
  24. }, {
  25. width: 40,
  26. text: '工号',
  27. type: 'string',
  28. flex: true,
  29. colClass: 'text-center'
  30. }, {
  31. width: 80,
  32. text: '手机号',
  33. type: 'string',
  34. flex: false,
  35. sort: 'down',
  36. colClass: 'text-center'
  37. }, {
  38. width: 150,
  39. text: '角色',
  40. type: 'string',
  41. flex: true,
  42. colClass: 'text-center'
  43. }, {
  44. width: 200,
  45. text: '操作',
  46. type: 'string',
  47. flex: true,
  48. colClass: 'text-center'
  49. }];
  50. var roles = [];
  51. $(document).ready(function() {
  52. getJob();
  53. // $("#main_content_title").html("用户管理")
  54. $('#dashboard').dashboard({ draggable: true });
  55. var zTreeObj;
  56. var zNodes = [];
  57. dept_tree = $.fn.zTree.init($("#department_tree"), {}, zNodes);
  58. getDept();
  59. $("#user_add").on("click", function() {
  60. var nodedata = dept_tree.getSelectedNodes();
  61. edittype = "add"
  62. loadUserData(nodedata)
  63. $('#addUserModal').modal('show')
  64. })
  65. RoleGetALLNoData(function(data) {
  66. roles = [];
  67. for (var i = 0; i < data.length; i++) {
  68. var m = data[i];
  69. var zdataItem = {};
  70. zdataItem["id"] = m.id;
  71. zdataItem["title"] = m.des;
  72. roles.push(zdataItem);
  73. }
  74. }, function(error) {
  75. });
  76. $("#dept_add").on("click", function() {
  77. var nodedata = dept_tree.getSelectedNodes();
  78. edittype = "add"
  79. loadData(nodedata)
  80. $('#addModal').modal('show')
  81. })
  82. $("#dept_edit").on("click", function() {
  83. //获取选中的节点
  84. var nodedata = dept_tree.getSelectedNodes();
  85. if (nodedata.length < 1) {
  86. layer.msg('请先选择部门!', {
  87. time: 2000, //20s后自动关闭
  88. });
  89. return;
  90. }
  91. edittype = "edit"
  92. loadData(nodedata)
  93. $('#addModal').modal('show');
  94. });
  95. $("#dept_delete").on("click", function() {
  96. //获取选中的节点
  97. var nodedata = dept_tree.getSelectedNodes();
  98. if (nodedata.length < 1) {
  99. layer.msg('请先选择部门!', {
  100. time: 2000, //20s后自动关闭
  101. });
  102. return;
  103. }
  104. layer.confirm('您确定要删除该部门?', {
  105. offset: "auto",
  106. shade: 0,
  107. btn: ['确定'] //按钮
  108. }, function() {
  109. deleteItem4CallBack(function() {
  110. DeptDelete(nodedata[0].id, function(data) {
  111. layer.msg('删除成功!', {
  112. time: 2000, //20s后自动关闭
  113. });
  114. dept_tree.removeNode(nodedata[0]);
  115. }, function(error) {});
  116. });
  117. });
  118. });
  119. $('.datatable').datatable({
  120. checkable: false,
  121. sortable: false,
  122. data: {
  123. cols: cols,
  124. rows: []
  125. }
  126. });
  127. $('.datatable').on('click', 'button', function() {
  128. if (this.name == "user_edit") {
  129. edittype = "edit"
  130. var user = UserMap.get(parseInt(this.id));
  131. loadUserData(user)
  132. $('#addUserModal').modal('show')
  133. }
  134. if (this.name == "user_delete") {
  135. var offset = "auto";
  136. var userId = this.id;
  137. var user = UserMap.get(parseInt(userId));
  138. layer.confirm('您确定要删除 "' + user.truename + '" ?', {
  139. offset: offset,
  140. shade: 0,
  141. btn: ['确定', '取消'] //按钮
  142. }, function() {
  143. UserDelete({ "id": userId }, function(data) {
  144. layer.msg('用户删除成功!', {
  145. time: 2000, //20s后自动关闭
  146. }, function() {
  147. var nodedata = dept_tree.getSelectedNodes();
  148. updateUser(nodedata[0].id)
  149. });
  150. },
  151. function(error) {
  152. })
  153. }, function(index) {
  154. layer.close(index);
  155. });
  156. }
  157. if (this.name == "user_tansfer") {
  158. var user = UserMap.get(parseInt(this.id));
  159. var id = this.id;
  160. scoreLayer = showPopup4Common('选择目标收费站', function() {
  161. transferFs(id);
  162. }, ['400px', '200px'], '#transfer_div');
  163. setFeSelect("#tansferFsList", user.organid);
  164. }
  165. });
  166. });
  167. function transferFs(id) {
  168. var dept = $("#tansferFsList").val();
  169. if (dept) {
  170. var parm = {
  171. "id": id,
  172. "organid": dept
  173. };
  174. UserUpdate(parm, function(data) {
  175. layer.msg('转站成功!', {
  176. time: 2000, //20s后自动关闭
  177. }, function() {
  178. $('#addUserModal').modal('hide')
  179. updateUser(dept_selectinput.value)
  180. });
  181. }, function(error) {
  182. });
  183. } else {
  184. layer.msg('请选择转移部门!', {
  185. time: 2000, //20s后自动关闭
  186. });
  187. }
  188. }
  189. function getDept() {
  190. function zTreeOnRename(event, treeId, treeNode, isCancel) {
  191. alert(treeNode.tId + ", " + treeNode.name);
  192. }
  193. // function zTreeBeforeDrop(treeId, treeNodes, targetNode, moveType) {
  194. // return !(targetNode == null || (moveType != "inner" && !targetNode.parentTId));
  195. // };
  196. function zTreeOnRemove(event, treeId, treeNode) {
  197. alert(treeNode.tId + ", " + treeNode.name);
  198. }
  199. function zTreeOnClick(event, treeId, treeNode) {
  200. updateUser(treeNode.id)
  201. };
  202. var setting = {
  203. data: {
  204. simpleData: {
  205. enable: true,
  206. idKey: "id",
  207. pIdKey: "pId",
  208. rootPId: null
  209. }
  210. },
  211. view: { //表示tree的显示状态
  212. selectMulti: false //表示禁止多选
  213. },
  214. check: { //表示tree的节点在点击时的相关设置
  215. enable: false, //是否显示radio/checkbox
  216. chkStyle: "checkbox", //值为checkbox或者radio表示
  217. checkboxType: { p: "", s: "" }, //表示父子节点的联动效果
  218. radioType: "level" //设置tree的分组
  219. },
  220. callback: {
  221. onRename: zTreeOnRename,
  222. // beforeDrop: zTreeBeforeDrop,
  223. onRemove: zTreeOnRemove,
  224. onClick: zTreeOnClick
  225. },
  226. edit: {
  227. enable: true,
  228. drag: {
  229. autoExpandTrigger: true,
  230. isMove: true,
  231. prev: false,
  232. next: true,
  233. inner: true,
  234. autoOpenTime: 0
  235. },
  236. showRenameBtn: false,
  237. showRemoveBtn: false
  238. }
  239. };
  240. DeptGetAll(function(data) {
  241. zdata = [];
  242. for (var i = 0; i < data.length; i++) {
  243. var m = data[i];
  244. var zdataItem = {};
  245. zdataItem["id"] = m.id;
  246. zdataItem["value"] = m.id;
  247. zdataItem["pId"] = null;
  248. zdataItem["name"] = m.organname;
  249. zdataItem["open"] = true;
  250. zdataItem["children"] = addobj(m);
  251. zdata.push(zdataItem);
  252. }
  253. dept_tree = $.fn.zTree.init($("#department_tree"), setting, zdata)
  254. }, function(error) {
  255. });
  256. }
  257. function addobj(data) {
  258. var zdata = [];
  259. if (typeof(data.childs) != "undefined" && data.childs != null &&
  260. data.childs.length > 0) {
  261. for (var i = 0; i < data.childs.length; i++) {
  262. var m = data.childs[i];
  263. var zdataItem = {};
  264. zdataItem["id"] = m.id;
  265. zdataItem["value"] = m.id;
  266. zdataItem["pId"] = data.id;
  267. zdataItem["icon"] = "";
  268. zdataItem["open"] = true;
  269. zdataItem["name"] = m.organname;
  270. zdataItem["children"] = addobj(m);
  271. zdata.push(zdataItem);
  272. }
  273. return zdata;
  274. } else {
  275. return [];
  276. }
  277. }
  278. function updateUser(organid) {
  279. var userData = {
  280. "organid": organid
  281. }
  282. UserGetList(userData, function(data) {
  283. //跟新table
  284. var rowdata = [];
  285. if (data != null && data.length > 0) {
  286. for (var i = 0; i < data.length; i++) {
  287. var user = data[i];
  288. var attr = "";
  289. if (user.roles.length > 0) {
  290. for (var j = 0; j < user.roles.length; j++) {
  291. var at = user.roles[j];
  292. if (attr.length > 0) {
  293. attr += "," + at.des;
  294. continue;
  295. }
  296. attr += at.des;
  297. }
  298. }
  299. UserMap.set(user.id, user)
  300. var userdata = {};
  301. userdata["checked"] = false;
  302. var btns = '<button class="btn btn-primary btn-sm" name="user_edit" id=' + user.id + '><i class="icon icon-edit"></i>修改</button> <button class="btn btn-danger btn-sm" name="user_tansfer" id=' + user.id + '><i class="icon icon-random"></i>转站</button>';
  303. if (!roleContains("STATION")) {
  304. btns += '<button class="btn btn-primary btn-sm" name="user_delete" id=' + user.id + ' ><i class="icon icon-remove-circle"></i>删除</button>';
  305. }
  306. userdata["data"] = [i + 1, user.username, user.truename, stringlimit(user.workno == null ? -1 : user.workno, 6), stringlimit(user.mobile == null ? "" : user.mobile, 4), attr, btns];
  307. rowdata.push(userdata);
  308. }
  309. }
  310. // 使用data参数更新数据:
  311. $('.datatable').datatable('load', {
  312. cols: cols,
  313. rows: rowdata
  314. });
  315. },
  316. function(error) {
  317. });
  318. }
  319. function stringlimit(string, linmit) {
  320. if (string.length < linmit) return string;
  321. return string.substr(0, linmit / 2) + "..." + string.substr(string.length - linmit / 2, linmit / 2)
  322. }