dept.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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(true);
  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. Ajax.request({
  73. url: "../sys/dept/select",
  74. async: true,
  75. successCallback: function (r) {
  76. ztree = $.fn.zTree.init($("#deptTree"), setting, r.deptList);
  77. var node = ztree.getNodeByParam("deptId", vm.dept.parentId);
  78. if (node) {
  79. ztree.selectNode(node);
  80. vm.dept.parentName = node.name;
  81. } else {
  82. node = ztree.getNodeByParam("deptId", 0);
  83. ztree.selectNode(node);
  84. vm.dept.parentName = node.name;
  85. }
  86. }
  87. });
  88. },
  89. add: function () {
  90. vm.showList = false;
  91. vm.title = "新增";
  92. var deptId = TreeGrid.table.getSelectedRow();
  93. var parentId = 0;
  94. if (deptId.length != 0) {
  95. parentId = deptId[0].id;
  96. }
  97. vm.dept = {parentName: null, parentId: parentId, orderNum: 0};
  98. vm.getDept();
  99. },
  100. update: function () {
  101. var deptId = getDeptId();
  102. if (!deptId) {
  103. return;
  104. }
  105. Ajax.request({
  106. url: "../sys/dept/info/" + deptId,
  107. async: true,
  108. successCallback: function (r) {
  109. vm.showList = false;
  110. vm.title = "修改";
  111. vm.dept = r.dept;
  112. vm.getDept();
  113. }
  114. });
  115. },
  116. del: function () {
  117. var deptId = getDeptId();
  118. if (!deptId) {
  119. return;
  120. }
  121. confirm('确定要删除选中的记录?', function () {
  122. Ajax.request({
  123. type: "POST",
  124. url: "../sys/dept/delete",
  125. params: {"deptId": deptId},
  126. successCallback: function () {
  127. alert('操作成功', function (index) {
  128. vm.reload();
  129. });
  130. }
  131. });
  132. });
  133. },
  134. saveOrUpdate: function (event) {
  135. var url = vm.dept.deptId == null ? "../sys/dept/save" : "../sys/dept/update";
  136. Ajax.request({
  137. url: url,
  138. contentType: "application/json",
  139. params: JSON.stringify(vm.dept),
  140. type: 'POST',
  141. successCallback: function () {
  142. alert('操作成功', function (index) {
  143. vm.reload();
  144. });
  145. }
  146. });
  147. },
  148. deptTree: function () {
  149. openWindow({
  150. title: "选择部门",
  151. area: ['300px', '450px'],
  152. content: jQuery("#deptLayer"),
  153. btn: ['确定', '取消'],
  154. btn1: function (index) {
  155. var node = ztree.getSelectedNodes();
  156. //选择上级部门
  157. vm.dept.parentId = node[0].deptId;
  158. vm.dept.parentName = node[0].name;
  159. layer.close(index);
  160. }
  161. });
  162. },
  163. reload: function () {
  164. vm.showList = true;
  165. TreeGrid.table.refresh();
  166. },
  167. handleSubmit: function (name) {
  168. handleSubmitValidate(this, name, function () {
  169. vm.saveOrUpdate()
  170. });
  171. },
  172. handleReset: function (name) {
  173. handleResetForm(this, name);
  174. }
  175. }
  176. });
  177. function getDeptId() {
  178. var selected = $('#deptTable').bootstrapTreeTable('getSelections');
  179. if (selected.length == 0) {
  180. alert("请选择一条记录");
  181. return false;
  182. } else {
  183. return selected[0].id;
  184. }
  185. }