admin.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  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. // {
  139. // name: 'dispatch',
  140. // text: '删除',
  141. // icon: 'fa fa-trash',
  142. // title: '删除',
  143. // classname: 'btn btn-danger btn-xs btn-magic btn-ajax',
  144. // url: 'department/admin/del',
  145. // confirm: '确定要删除吗?',
  146. // success: function (data, ret) {
  147. // $(".btn-refresh").trigger("click");
  148. // },
  149. // error: function (data, ret) {
  150. // Layer.alert(ret.msg);
  151. // return false;
  152. // }
  153. // }
  154. ],
  155. // formatter: function (value, row, index) {
  156. // return Table.api.formatter.operate.call(this, value, row, index);
  157. // }
  158. });
  159. // 初始化表格
  160. table.bootstrapTable({
  161. url: $.fn.bootstrapTable.defaults.extend.index_url,
  162. columns: [columnss],
  163. //启用固定列
  164. fixedColumns: true,
  165. //固定右侧列数
  166. fixedRightNumber: 1,
  167. search:false,
  168. searchFormVisible:true,
  169. singleSelect : true, //
  170. showExport:false,
  171. showToggle:false,
  172. showColumns: false,
  173. });
  174. // 为表格绑定事件
  175. Table.api.bindevent(table);
  176. require(['jstree'], function () {
  177. //全选和展开
  178. $(document).on("click", "#checkall", function () {
  179. $("#departmenttree").jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
  180. });
  181. $(document).on("click", "#expandall", function () {
  182. $("#departmenttree").jstree($(this).prop("checked") ? "open_all" : "close_all");
  183. });
  184. $('#departmenttree').on("changed.jstree", function (e, data) {
  185. console.log(data.selected.join(","));
  186. $(".commonsearch-table input[name=department_id]").val(data.selected.join(","));
  187. console.log($(".commonsearch-table input[name=department_id]").val()+"@@@@");
  188. console.log('222222');
  189. table.bootstrapTable('refresh', {});
  190. return false;
  191. });
  192. $('#departmenttree').jstree({
  193. "themes": {
  194. "stripes": true
  195. },
  196. "checkbox": {
  197. "keep_selected_style": false,
  198. },
  199. "types": {
  200. "channel": {
  201. "icon": false,
  202. },
  203. "list": {
  204. "icon": false,
  205. },
  206. "link": {
  207. "icon": false,
  208. },
  209. "disabled": {
  210. "check_node": false,
  211. "uncheck_node": false
  212. }
  213. },
  214. 'plugins': ["types", "checkbox"],
  215. "core": {
  216. "multiple": true,
  217. 'check_callback': true,
  218. "data": Config.departmentList
  219. }
  220. });
  221. });
  222. //导出
  223. $(document).on("click", ".btn-export", function () {
  224. var parenttable = table.closest('.bootstrap-table');
  225. var options = table.bootstrapTable('getOptions');
  226. var toolbar = $(options.toolbar, parenttable);
  227. // 导出
  228. var options = table.bootstrapTable('getOptions');
  229. var search = options.queryParams({});
  230. var filter = JSON.parse(search.filter);
  231. var op = JSON.parse(search.op);
  232. url = '/admin/department/admin/export';
  233. if(url){
  234. window.open(url+ '?filter='+JSON.stringify(filter)+'&op='+JSON.stringify(op));
  235. }
  236. // if(url)
  237. // location.href= url + '?filter='+JSON.stringify(filter)+'&op='+JSON.stringify(op);
  238. });
  239. },
  240. add: function () {
  241. Controller.api.bindevent();
  242. },
  243. principal:function(){
  244. Controller.api.bindevent();
  245. },
  246. edit: function () {
  247. Controller.api.bindevent();
  248. },
  249. api: {
  250. bindevent: function () {
  251. Form.api.bindevent($("form[role=form]"));
  252. // $(document).on("change", "#department_ids", function(){
  253. // //变更后的回调事件
  254. // var dname=$(this).find("option:selected").first().text()
  255. // var nickname=$("#nickname").val();
  256. // var a = nickname.indexOf("-");
  257. //
  258. // if (a!=-1){
  259. // nickname=nickname.substring(0, a);
  260. // }
  261. // dname = dname.replace(/\s*/g,"");
  262. // nickname+="-"+dname.replace(/&nbsp;|│|└|├\s*/ig, "");
  263. // $("#nickname").val(nickname);
  264. // });
  265. },
  266. }
  267. };
  268. return Controller;
  269. });