staff.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.columnDefaults.align = 'left';
  6. Table.api.init({
  7. extend: {
  8. index_url: 'equipment/staff/index' + location.search,
  9. add_url: 'equipment/staff/add',
  10. edit_url: 'equipment/staff/edit',
  11. del_url: 'equipment/staff/del',
  12. multi_url: 'equipment/staff/multi',
  13. import_url: 'equipment/staff/import',
  14. table: 'equipment_staff',
  15. department_url: 'equipment/department/index',
  16. }
  17. });
  18. var table = $("#table");
  19. // 初始化表格
  20. table.bootstrapTable({
  21. url: $.fn.bootstrapTable.defaults.extend.index_url,
  22. pk: 'id',
  23. sortName: 'id',
  24. columns: [
  25. [
  26. {checkbox: true, align: 'center'},
  27. {field: 'id', title: __('Id'), align: 'center', operate: false},
  28. {field: 'workno', title: __('Workno'), operate: 'LIKE', formatter: function (value) {
  29. return (value === "" || value === null || value === undefined ) ? '-' : value;
  30. }},
  31. {field: 'user.nickname', title: __('Nickname'), operate: 'LIKE'},
  32. {field: 'user.mobile', title: __('Mobile'), operate: 'LIKE'},
  33. {field: 'department.name', title: __('Department'), operate: 'LIKE'},
  34. {field: 'position', title: __('Position'), operate: 'LIKE', formatter: function (value) {
  35. return (value === "" || value === null || value === undefined ) ? '-' : value;
  36. }},
  37. {field: 'status', title: __('Status'), searchList: {"normal":__('Normal'),"hidden":__('Hidden')}, formatter: Table.api.formatter.status},
  38. {field: 'operate', title: __('Operate'), table: table,
  39. buttons: [
  40. {
  41. name: 'unbind',
  42. title: __('Unbind') + __('Weapp'),
  43. icon: 'fa fa-chain-broken',
  44. confirm: __('Confirm to unbind Weapp?'),
  45. classname: 'btn btn-xs btn-warning btn-ajax',
  46. url: 'equipment/staff/unbind',
  47. refresh: true,
  48. visible: function (row) {
  49. if (row.openid !== '') {
  50. return true;
  51. }
  52. }
  53. }
  54. ],
  55. events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  56. ]
  57. ],
  58. search: false
  59. });
  60. // 部门管理弹窗
  61. $(document).on("click", ".btn-department-manage", function () {
  62. Fast.api.open('equipment/department/index', __('DepartmentManage'));
  63. });
  64. // 为表格绑定事件
  65. Table.api.bindevent(table);
  66. },
  67. recyclebin: function () {
  68. // 初始化表格参数配置
  69. Table.columnDefaults.align = 'left';
  70. Table.api.init({
  71. extend: {
  72. 'dragsort_url': ''
  73. }
  74. });
  75. var table = $("#table");
  76. // 初始化表格
  77. table.bootstrapTable({
  78. url: 'equipment/staff/recyclebin' + location.search,
  79. pk: 'id',
  80. sortName: 'id',
  81. columns: [
  82. [
  83. {checkbox: true, align: 'center'},
  84. {field: 'id', title: __('Id'), align: 'center'},
  85. {field: 'workno', title: __('Workno'), formatter: function (value) {
  86. return (value === "" || value === null || value === undefined ) ? '-' : value;
  87. }},
  88. {field: 'user.nickname', title: __('Nickname')},
  89. {field: 'user.mobile', title: __('Mobile')},
  90. {
  91. field: 'deletetime',
  92. title: __('Deletetime'),
  93. operate: 'RANGE',
  94. addclass: 'datetimerange',
  95. formatter: Table.api.formatter.datetime
  96. },
  97. {
  98. field: 'operate',
  99. width: '130px',
  100. title: __('Operate'),
  101. table: table,
  102. events: Table.api.events.operate,
  103. buttons: [
  104. {
  105. name: 'Restore',
  106. text: __('Restore'),
  107. classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
  108. icon: 'fa fa-rotate-left',
  109. url: 'equipment/staff/restore',
  110. refresh: true
  111. }
  112. ],
  113. formatter: Table.api.formatter.operate
  114. }
  115. ]
  116. ],
  117. search: false,
  118. showToggle: false,
  119. showColumns: false,
  120. showExport: false,
  121. commonSearch: false
  122. });
  123. // 为表格绑定事件
  124. Table.api.bindevent(table);
  125. },
  126. picker: function () {
  127. // 初始化表格参数配置
  128. Table.columnDefaults.align = 'left';
  129. Table.api.init({
  130. extend: {
  131. 'dragsort_url': ''
  132. }
  133. });
  134. var table = $("#table");
  135. var parentId = Config.parent_id;
  136. var parentType = Config.parent_type;
  137. var confirmContent = parentType === 'repair' ? '确认派单给该员工?' : '确认选择?';
  138. // 初始化表格
  139. table.bootstrapTable({
  140. url: 'equipment/staff/picker' + location.search,
  141. pk: 'id',
  142. sortName: 'id',
  143. columns: [
  144. [
  145. {
  146. field: 'operate',
  147. title: __('Operate'),
  148. table: table,
  149. events: Table.api.events.operate,
  150. buttons: [
  151. {
  152. name: 'Choose',
  153. text: __('Choose'),
  154. classname: 'btn btn-xs btn-info btn-ajax',
  155. url: 'equipment/staff/pickerDeal?id={id}&user_id={user.id}&parent_id=' + parentId + '&parent_type=' + parentType,
  156. confirm: confirmContent,
  157. success: function (data) {
  158. Fast.api.close(data);
  159. parent.$("a.btn-refresh").trigger("click");
  160. },
  161. error: function (data, ret) {
  162. Layer.alert(ret.msg);
  163. return false;
  164. }
  165. }
  166. ],
  167. formatter: Table.api.formatter.operate
  168. },
  169. {field: 'workno', title: __('Workno'), operate: 'LIKE', formatter: function (value) {
  170. return (value === "" || value === null || value === undefined ) ? '-' : value;
  171. }},
  172. {field: 'user.nickname', title: __('Nickname'), operate: 'LIKE'},
  173. {field: 'user.mobile', title: __('Mobile'), operate: 'LIKE'},
  174. {field: 'department.name', title: __('Department'), operate: 'LIKE'},
  175. {field: 'position', title: __('Position'), operate: 'LIKE', formatter: function (value) {
  176. return (value === "" || value === null || value === undefined ) ? '-' : value;
  177. }},
  178. ]
  179. ],
  180. search: false,
  181. showToggle: false,
  182. showColumns: false,
  183. showExport: false,
  184. });
  185. // 为表格绑定事件
  186. Table.api.bindevent(table);
  187. },
  188. add: function () {
  189. Controller.api.bindevent();
  190. },
  191. edit: function () {
  192. Controller.api.bindevent();
  193. },
  194. api: {
  195. bindevent: function () {
  196. Form.api.bindevent($("form[role=form]"));
  197. }
  198. }
  199. };
  200. return Controller;
  201. });