staffManage.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. app.controller('staffManageCtrl', ['$scope', '$http', '$timeout', 'uiGridConstants', 'i18nService', 'toaster', 'md5', function ($scope, $http, $timeout, uiGridConstants, i18nService, toaster, MD5) {
  2. i18nService.setCurrentLang("zh-cn");
  3. $scope.gridOptions = {
  4. data: 'myData',
  5. showGridFooter: true, //是否显示grid footer
  6. // rowHeight: 80,
  7. //-------- 分页属性 ----------------
  8. paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项
  9. paginationCurrentPage: 1, //当前页码
  10. paginationPageSize: 10, //每页显示个数
  11. totalItems: 0,// 总数量
  12. useExternalPagination: true,//是否使用分页按钮
  13. //过滤
  14. // enableFiltering: true,
  15. columnDefs: [],
  16. //---------------api---------------------
  17. onRegisterApi: function (gridApi) {
  18. $scope.gridApi = gridApi;
  19. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  20. if ($scope.setPagingData) {
  21. $scope.getPagedDataAsync(newPage, pageSize);
  22. }
  23. });
  24. }
  25. };
  26. //查询条件
  27. var condition = $scope.condition = {
  28. searchKey: ""
  29. };
  30. //枚举常量
  31. $scope.enum = {};
  32. //事件
  33. $scope.event = {
  34. search: function () {
  35. $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize);
  36. }
  37. };
  38. function setColumnDefs() {
  39. $scope.gridOptions.columnDefs = [
  40. {field: 'name', displayName: '姓名'},
  41. {field: 'tel', displayName: '联系方式'},
  42. {
  43. field: 'createdTime',
  44. displayName: '注册时间',
  45. cellTemplate: '<div class="temp-row" ng-bind="row.entity.createdTime| date:\'yyyy-MM-dd HH:mm:ss\'"></div>'
  46. },
  47. {
  48. field: 'status', displayName: '状态',
  49. cellTemplate: '<div class="temp-row" ng-class="{' +
  50. '\'text-dark\':row.entity.status==0,' +
  51. '\'text-success\':row.entity.status==1' +
  52. '}" >{{row.entity.status==0?"停用":"激活"}}</div>'
  53. },
  54. {
  55. field: 'oper', displayName: '操作',
  56. enableFiltering: false,
  57. enableSorting: false,
  58. enableHiding: false,//禁止在列选择器中隐藏
  59. enableColumnMenu: false,// 是否显示列头部菜单按钮
  60. width: 200,
  61. cellTemplate: '<div class="grid-button">' +
  62. '<button class="btn btn-sm btn-rounded btn-success" ng-if="row.entity.status==0" ng-click="grid.appScope.openOrClose(row.entity,1)"><i class="fa fa-play"></i> 激活</button>' +
  63. '<button class="btn btn-sm btn-rounded btn-default" ng-if="row.entity.status==1" ng-click="grid.appScope.openOrClose(row.entity,0)"><i class="fa fa-close"></i> 停用</button>' +
  64. '</div>'
  65. }
  66. ];
  67. var fields = $scope.gridOptions.columnDefs;
  68. for (var index in fields) {
  69. var item = fields[index];
  70. if (item && item['minWidth'] == null) {
  71. item['minWidth'] = 100;
  72. }
  73. }
  74. }
  75. $scope.setPagingData = function (data, curPage, pageSize) {
  76. var firstRow = (curPage - 1) * pageSize;
  77. var pagedData = data.data.dataList;
  78. $scope.myData = pagedData;
  79. $scope.gridOptions.totalItems = data.data.total;
  80. };
  81. $scope.getPagedDataAsync = function (curPage, pageSize, searchText) {
  82. var params = {
  83. pageSize: pageSize,
  84. pageIndex: curPage
  85. };
  86. if (condition.searchKey != "") {
  87. params.searchKey = condition.searchKey
  88. }
  89. $http.get('/manager/getStaffDetailList', {
  90. params: params
  91. }).then(function (data) {
  92. $scope.setPagingData(data.data, curPage, pageSize);
  93. }).catch(function (data) {
  94. toaster.pop("error", "提示", "获取数据列表失败");
  95. });
  96. };
  97. function initDataGrid() {
  98. //首次加载表格
  99. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  100. }
  101. setColumnDefs();
  102. initDataGrid();
  103. //添加
  104. $scope.add = function () {
  105. //重置表单状态
  106. $scope.modelForm.$setPristine();
  107. $scope.modelForm.$setUntouched();
  108. $scope.dialogName = "开户";
  109. $scope.dialogData = {status: true, isNew: true};
  110. $("#modelPanel").modal();
  111. };
  112. //编辑
  113. $scope.edit = function () {
  114. //重置表单状态
  115. $scope.modelForm.$setPristine();
  116. $scope.modelForm.$setUntouched();
  117. $scope.dialogName = "编辑信息";
  118. var rows = $scope.gridApi.selection.getSelectedRows();
  119. if (rows.length == 0) {
  120. toaster.pop("info", "提示", "请选择数据!");
  121. return;
  122. }
  123. if (rows.length > 1) {
  124. toaster.pop("info", "提示", "只能选中编辑一条数据");
  125. return;
  126. }
  127. var item = rows[0];
  128. $scope.dialogData = $.extend(true, {}, item);
  129. $scope.dialogData.status = ($scope.dialogData.status == 1);
  130. $("#modelPanel").modal();
  131. };
  132. //编辑密码 默认123456
  133. $scope.editPassword = function () {
  134. //重置表单状态
  135. $scope.passwordForm.$setPristine();
  136. $scope.passwordForm.$setUntouched();
  137. var rows = $scope.gridApi.selection.getSelectedRows();
  138. if (rows.length == 0) {
  139. toaster.pop("info", "提示", "请选择数据!");
  140. return;
  141. }
  142. if (rows.length > 1) {
  143. toaster.pop("info", "提示", "只能选中编辑一条数据");
  144. return;
  145. }
  146. var item = rows[0];
  147. $scope.passwordData = $.extend({password: 123456}, item);
  148. $("#passwordPanel").modal();
  149. };
  150. //提交表单保存
  151. $scope.saveData = function () {
  152. //表单未校验通过不能提交
  153. if ($scope.modelForm.$invalid) {
  154. return;
  155. }
  156. var url = "";
  157. if ($scope.dialogData.id == null) {
  158. url = "/manager/addStaff";
  159. } else {
  160. url = "/manager/editStaff";
  161. }
  162. //深度克隆 避免操作原对象
  163. var data = $.extend(true, {}, $scope.dialogData);
  164. if ($scope.dialogData.isNew) {
  165. var password = MD5.createHash($scope.dialogData.password + '');
  166. data.password = password;
  167. }
  168. $http({
  169. method: 'POST',
  170. url: url,
  171. data: data
  172. }).then(function (response) {
  173. $('#modelPanel').modal('hide');//弹窗消失
  174. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  175. toaster.pop("success", "提示", "开户成功!");
  176. }, function (response) {
  177. toaster.pop("error", "提示", "开户失败!");
  178. });
  179. };
  180. //修改密码提交
  181. $scope.savePassword = function () {
  182. //表单未校验通过不能提交
  183. if ($scope.passwordForm.$invalid) {
  184. return;
  185. }
  186. var url = "/manager/editStaffPassword";
  187. var password = MD5.createHash($scope.passwordData.password + '');
  188. $http({
  189. method: 'POST',
  190. url: url,
  191. data: {
  192. id: $scope.passwordData.id,
  193. password: password
  194. }
  195. }).then(function (response) {
  196. $('#passwordPanel').modal('hide');//弹窗消失
  197. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  198. }, function (response) {
  199. toaster.pop("error", "提示", "修改密码失败!");
  200. });
  201. };
  202. }]);