dept.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. $(function () {
  2. initialPage();
  3. getGrid();
  4. });
  5. function initialPage() {
  6. $(window).resize(function () {
  7. TreeGrid.table.resetHeight({height: $(window).height() - 100});
  8. });
  9. }
  10. function getGrid() {
  11. var colunms = TreeGrid.initColumn();
  12. var table = new TreeTable(TreeGrid.id, '../sys/dept/list', colunms);
  13. table.setExpandColumn(2);
  14. table.setIdField("deptId");
  15. table.setCodeField("deptId");
  16. table.setParentCodeField("parentId");
  17. table.setExpandAll(false);
  18. table.setHeight($(window).height() - 100);
  19. table.init();
  20. TreeGrid.table = table;
  21. }
  22. var TreeGrid = {
  23. id: "deptTable",
  24. table: null,
  25. layerIndex: -1
  26. };
  27. /**
  28. * 初始化表格的列
  29. */
  30. TreeGrid.initColumn = function () {
  31. var columns = [
  32. {field: 'selectItem', radio: true},
  33. {title: '部门ID', field: 'deptId', visible: false, align: 'center', valign: 'middle', width: '80px'},
  34. {title: '部门名称', field: 'name', align: 'center', valign: 'middle', sortable: true, width: '180px'},
  35. {title: '上级部门', field: 'parentName', align: 'center', valign: 'middle', sortable: true, width: '100px'},
  36. {title: '排序号', field: 'orderNum', align: 'center', valign: 'middle', sortable: true, width: '100px'}]
  37. return columns;
  38. };
  39. var setting = {
  40. data: {
  41. simpleData: {
  42. enable: true,
  43. idKey: "deptId",
  44. pIdKey: "parentId",
  45. rootPId: -1
  46. },
  47. key: {
  48. url: "nourl"
  49. }
  50. }
  51. };
  52. var ztree;
  53. var vm = new Vue({
  54. el: '#rrapp',
  55. data: {
  56. showList: true,
  57. title: null,
  58. dept: {
  59. parentName: null,
  60. parentId: 0,
  61. orderNum: 0
  62. },
  63. ruleValidate: {
  64. name: [
  65. {required: true, message: '部门名称不能为空', trigger: 'blur'}
  66. ]
  67. }
  68. },
  69. methods: {
  70. getDept: function () {
  71. //加载部门树
  72. $.get("../sys/dept/select", function (r) {
  73. ztree = $.fn.zTree.init($("#deptTree"), setting, r.deptList);
  74. var node = ztree.getNodeByParam("deptId", vm.dept.parentId);
  75. ztree.selectNode(node);
  76. vm.dept.parentName = node.name;
  77. })
  78. },
  79. add: function () {
  80. vm.showList = false;
  81. vm.title = "新增";
  82. vm.dept = {parentName: null, parentId: 0, orderNum: 0};
  83. vm.getDept();
  84. },
  85. update: function () {
  86. var deptId = getDeptId();
  87. if (deptId == null) {
  88. return;
  89. }
  90. $.get("../sys/dept/info/" + deptId, function (r) {
  91. vm.showList = false;
  92. vm.title = "修改";
  93. vm.dept = r.dept;
  94. vm.getDept();
  95. });
  96. },
  97. del: function () {
  98. var deptId = getDeptId();
  99. if (deptId == null) {
  100. return;
  101. }
  102. confirm('确定要删除选中的记录?', function () {
  103. $.ajax({
  104. type: "POST",
  105. url: "../sys/dept/delete",
  106. data: "deptId=" + deptId,
  107. success: function (r) {
  108. if (r.code === 0) {
  109. alert('操作成功', function () {
  110. vm.reload();
  111. });
  112. } else {
  113. alert(r.msg);
  114. }
  115. }
  116. });
  117. });
  118. },
  119. saveOrUpdate: function (event) {
  120. var url = vm.dept.deptId == null ? "../sys/dept/save" : "../sys/dept/update";
  121. $.ajax({
  122. type: "POST",
  123. url: url,
  124. contentType: "application/json",
  125. data: JSON.stringify(vm.dept),
  126. success: function (r) {
  127. if (r.code === 0) {
  128. alert('操作成功', function () {
  129. vm.reload();
  130. });
  131. } else {
  132. alert(r.msg);
  133. }
  134. }
  135. });
  136. },
  137. deptTree: function () {
  138. openWindow({
  139. title: "选择部门",
  140. area: ['300px', '450px'],
  141. content: jQuery("#deptLayer"),
  142. btn: ['确定', '取消'],
  143. btn1: function (index) {
  144. var node = ztree.getSelectedNodes();
  145. //选择上级部门
  146. vm.dept.parentId = node[0].deptId;
  147. vm.dept.parentName = node[0].name;
  148. layer.close(index);
  149. }
  150. });
  151. },
  152. reload: function () {
  153. vm.showList = true;
  154. TreeGrid.table.refresh();
  155. },
  156. handleSubmit: function (name) {
  157. handleSubmitValidate(this, name, function () {
  158. vm.saveOrUpdate()
  159. });
  160. },
  161. handleReset: function (name) {
  162. handleResetForm(this, name);
  163. }
  164. }
  165. });
  166. function getDeptId() {
  167. var selected = $('#deptTable').bootstrapTreeTable('getSelections');
  168. if (selected.length == 0) {
  169. alert("请选择一条记录");
  170. return false;
  171. } else {
  172. return selected[0].id;
  173. }
  174. }