admin.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init({
  6. extend: {
  7. index_url: 'department/admin/index',
  8. add_url: 'department/admin/add',
  9. edit_url: 'department/admin/edit',
  10. del_url: 'department/admin/del',
  11. import_url: 'department/admin/import',
  12. multi_url: 'department/admin/multi',
  13. }
  14. });
  15. var table = $("#table");
  16. //在表格内容渲染完成后回调的事件
  17. table.on('post-body.bs.table', function (e, json) {
  18. });
  19. var columnss=[
  20. {field: 'state', checkbox: true, },
  21. // {field: 'id', title: '编号', sortable: true,},
  22. {field: 'username', title: __('学号'), operate: "LIKE",},
  23. {field: 'nickname', title: __('姓名'), operate: "LIKE",},
  24. {field: 'status', title: __("Status"), searchList: {"normal":__('Normal'),"hidden":__('Hidden')}, formatter: Table.api.formatter.status},
  25. // {field: 'dadmin', title: __('Principal') , operate:false,
  26. // formatter: function (value, row, index) {
  27. // var str=__('No');
  28. // if (value.length == 0)
  29. // return str ;
  30. // $.each(value,function(i,v){ //arrTmp数组数据
  31. // if (v.is_principal==1){
  32. // str='<span class="text-success">'+__('Yes')+'</span>' ;
  33. // }
  34. // });
  35. // return str ;
  36. // }
  37. // },
  38. // {field: 'data_scope', title: __('数据范围') , operate:false,
  39. // formatter: function (value, row, index) {
  40. // var str=__('默认');
  41. // if (value==1){
  42. // str='<span class="text-red">'+__('全部')+'</span>' ;
  43. // }else if ( row.dadmin.length > 0){
  44. // $.each( row.dadmin,function(i,v){ //arrTmp数组数据
  45. // if (v.is_principal==1){
  46. // str='<span class="text-success">'+__('部门')+'</span>' ;
  47. // }
  48. // });
  49. // }
  50. // return str ;
  51. // }
  52. // },
  53. {
  54. field: 'department_id',
  55. title: __('Department'),
  56. visible: false,
  57. addclass: 'selectpage',
  58. extend: 'data-source="department/index/index" data-field="name"',
  59. operate: 'in',
  60. formatter: Table.api.formatter.search
  61. },
  62. {field: 'cengci_text', title: __('层次'), operate: false,
  63. formatter: function (value, row, index) {
  64. return Table.api.formatter.flag.call(this, row.cengci_text, row, index);
  65. },
  66. },
  67. {field: 'zhuanye_text', title: __('专业'), operate: false,
  68. formatter: function (value, row, index) {
  69. return Table.api.formatter.flag.call(this, row.zhuanye_text, row, index);
  70. },
  71. },
  72. {field: 'dui_text', title: __('队'), operate: false,
  73. formatter: function (value, row, index) {
  74. return Table.api.formatter.flag.call(this, row.dui_text, row, index);
  75. },
  76. },
  77. {
  78. field: 'dadmin',
  79. title: __('Department'),
  80. formatter: function (value, row, index) {
  81. if (value.length == 0)
  82. return '-' ;
  83. var department="";
  84. $.each(value,function(i,v){ //arrTmp数组数据
  85. if (v.department){
  86. department+=department?','+v.department.name:v.department.name;
  87. }
  88. });
  89. return Table.api.formatter.flag.call(this, department, row, index);
  90. }, operate:false
  91. },
  92. // {
  93. // field: 'groups',
  94. // title: __('Group'),
  95. // formatter: function (value, row, index) {
  96. // if (value.length == 0)
  97. // return '-' ;
  98. // var groups_text="";
  99. // $.each(value,function(i,v){ //arrTmp数组数据
  100. // if (v.get_group){
  101. // groups_text+=groups_text?','+v.get_group.name:v.get_group.name;
  102. // }
  103. // });
  104. // return Table.api.formatter.flag.call(this, groups_text, row, index);
  105. // }
  106. // , operate:false
  107. // },
  108. // {field: 'email', title: __('Email'), operate: "LIKE",},
  109. ];
  110. // if (Config.exits_mobile) {
  111. // //如果是选择
  112. // columnss.push({
  113. // field: 'mobile', title: __('Mobile'), operate: "LIKE",
  114. // });
  115. // }
  116. columnss.push(
  117. {field: 'createtime', title: __('Create time'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
  118. {field: 'operate', title: __('Operate'), table: table,
  119. // events: Table.api.events.operate,
  120. formatter: Table.api.formatter.buttons,
  121. buttons: [
  122. // {
  123. // name: 'principal',
  124. // text: __('Principal'),
  125. // title: __('Principal set'),
  126. // icon: 'fa fa-street-view',
  127. // classname: 'btn btn-xs btn-danger btn-dialog',
  128. // url: 'department/admin/principal',
  129. // },
  130. {
  131. name: 'dispatch',
  132. text: '编辑',
  133. icon: 'fa fa-pencil',
  134. title: '编辑',
  135. classname: 'btn btn-success btn-xs btn-magic btn-dialog',
  136. url: 'department/admin/edit',
  137. },{
  138. name: 'dispatch',
  139. text: '删除',
  140. icon: 'fa fa-trash',
  141. title: '删除',
  142. classname: 'btn btn-danger btn-xs btn-magic btn-ajax',
  143. url: 'department/admin/del',
  144. confirm: '确定要删除吗?',
  145. success: function (data, ret) {
  146. $(".btn-refresh").trigger("click");
  147. },
  148. error: function (data, ret) {
  149. Layer.alert(ret.msg);
  150. return false;
  151. }
  152. }
  153. ],
  154. // formatter: function (value, row, index) {
  155. // return Table.api.formatter.operate.call(this, value, row, index);
  156. // }
  157. });
  158. // 初始化表格
  159. table.bootstrapTable({
  160. url: $.fn.bootstrapTable.defaults.extend.index_url,
  161. columns: [columnss],
  162. //启用固定列
  163. fixedColumns: true,
  164. //固定右侧列数
  165. fixedRightNumber: 1,
  166. search:false,
  167. searchFormVisible:true,
  168. singleSelect : true, //
  169. showExport:false,
  170. showToggle:false,
  171. showColumns: false,
  172. });
  173. // 为表格绑定事件
  174. Table.api.bindevent(table);
  175. require(['jstree'], function () {
  176. //全选和展开
  177. $(document).on("click", "#checkall", function () {
  178. $("#departmenttree").jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
  179. });
  180. $(document).on("click", "#expandall", function () {
  181. $("#departmenttree").jstree($(this).prop("checked") ? "open_all" : "close_all");
  182. });
  183. $('#departmenttree').on("changed.jstree", function (e, data) {
  184. console.log(data.selected.join(","));
  185. $(".commonsearch-table input[name=department_id]").val(data.selected.join(","));
  186. console.log($(".commonsearch-table input[name=department_id]").val()+"@@@@");
  187. console.log('222222');
  188. table.bootstrapTable('refresh', {});
  189. return false;
  190. });
  191. $('#departmenttree').jstree({
  192. "themes": {
  193. "stripes": true
  194. },
  195. "checkbox": {
  196. "keep_selected_style": false,
  197. },
  198. "types": {
  199. "channel": {
  200. "icon": false,
  201. },
  202. "list": {
  203. "icon": false,
  204. },
  205. "link": {
  206. "icon": false,
  207. },
  208. "disabled": {
  209. "check_node": false,
  210. "uncheck_node": false
  211. }
  212. },
  213. 'plugins': ["types", "checkbox"],
  214. "core": {
  215. "multiple": true,
  216. 'check_callback': true,
  217. "data": Config.departmentList
  218. }
  219. });
  220. });
  221. //导出
  222. $(document).on("click", ".btn-export", function () {
  223. var parenttable = table.closest('.bootstrap-table');
  224. var options = table.bootstrapTable('getOptions');
  225. var toolbar = $(options.toolbar, parenttable);
  226. // 导出
  227. var options = table.bootstrapTable('getOptions');
  228. var search = options.queryParams({});
  229. var filter = JSON.parse(search.filter);
  230. var op = JSON.parse(search.op);
  231. url = '/admin/department/admin/export';
  232. if(url)
  233. location.href= url + '?filter='+JSON.stringify(filter)+'&op='+JSON.stringify(op);
  234. });
  235. },
  236. add: function () {
  237. Controller.api.bindevent();
  238. },
  239. principal:function(){
  240. Controller.api.bindevent();
  241. },
  242. edit: function () {
  243. Controller.api.bindevent();
  244. },
  245. api: {
  246. bindevent: function () {
  247. Form.api.bindevent($("form[role=form]"));
  248. // $(document).on("change", "#department_ids", function(){
  249. // //变更后的回调事件
  250. // var dname=$(this).find("option:selected").first().text()
  251. // var nickname=$("#nickname").val();
  252. // var a = nickname.indexOf("-");
  253. //
  254. // if (a!=-1){
  255. // nickname=nickname.substring(0, a);
  256. // }
  257. // dname = dname.replace(/\s*/g,"");
  258. // nickname+="-"+dname.replace(/&nbsp;|│|└|├\s*/ig, "");
  259. // $("#nickname").val(nickname);
  260. // });
  261. },
  262. }
  263. };
  264. return Controller;
  265. });