joinDevManage.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. app.controller('joinDevManageCtrl', ['$scope', '$filter', '$http', '$stateParams', '$timeout', 'uiGridConstants', 'i18nService', 'toaster', function ($scope, $filter, $http, $stateParams, $timeout, uiGridConstants, i18nService, toaster) {
  2. i18nService.setCurrentLang("zh-cn");
  3. moment.locale('zh-cn');
  4. var dealerId = $stateParams.dealerId || "";
  5. $scope.startTimeOpen = false;
  6. $scope.endTimeOpen = false;
  7. $scope.timeChange = function (newDate, oldDate) {
  8. $scope.startTimeOpen = false;
  9. $scope.endTimeOpen = false;
  10. };
  11. $scope.gridOptions = {
  12. data: 'myData',
  13. showGridFooter: true, //是否显示grid footer
  14. // rowHeight: 80,
  15. //-------- 分页属性 ----------------
  16. paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项
  17. paginationCurrentPage: 1, //当前页码
  18. paginationPageSize: 10, //每页显示个数
  19. totalItems: 0,// 总数量
  20. useExternalPagination: true,//是否使用分页按钮
  21. //过滤
  22. // enableFiltering: true,
  23. columnDefs: [],
  24. //---------------api---------------------
  25. onRegisterApi: function (gridApi) {
  26. $scope.gridApi = gridApi;
  27. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  28. if ($scope.setPagingData) {
  29. $scope.getPagedDataAsync(newPage, pageSize, true);//翻页是强制刷新
  30. }
  31. });
  32. }
  33. };
  34. //查询条件
  35. var condition = $scope.condition = {
  36. dealerId: dealerId
  37. };
  38. //查询条件
  39. $scope.query = {
  40. startTime: moment().format("YYYY-MM-DD"),
  41. endTime: moment().format("YYYY-MM-DD"),
  42. };
  43. //枚举常量
  44. $scope.enum = {
  45. joinStatus: [
  46. {name: '厂家加盟', value: 'factoryJoined', className: 'text-danger'},
  47. {name: '可被经销商加盟', value: 'factoryAllowed', className: 'text-warning-dker'},
  48. {name: '经销商加盟', value: 'joinerJoined', className: 'text-success'},
  49. ]
  50. };
  51. //事件
  52. $scope.ngEvent = {
  53. quickTime: function (event, passDay) {
  54. $scope.query.startTime = moment().add(-(passDay - 1), "day").format("YYYY-MM-DD");
  55. $scope.query.endTime = moment().format("YYYY-MM-DD");
  56. },
  57. };
  58. //事件
  59. $scope.event = {
  60. search: function () {
  61. if (condition.searchKey === "") {
  62. $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize);
  63. } else {
  64. $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize);
  65. }
  66. }
  67. };
  68. function setColumnDefs() {
  69. $scope.gridOptions.columnDefs = [
  70. {
  71. field: 'logicalCode',
  72. displayName: '设备编号',
  73. width: 100,
  74. },
  75. {
  76. field: 'joinerName',
  77. displayName: '加盟商',
  78. width: 140,
  79. },
  80. {
  81. field: 'address',
  82. displayName: '设备地址',
  83. },
  84. {
  85. field: 'joinMoney',
  86. displayName: '加盟费',
  87. },
  88. {
  89. field: 'joinScale',
  90. displayName: '加盟商分成',
  91. cellTemplate: '<div class="temp-row">{{row.entity.joinScale}}%</div>'
  92. },
  93. {
  94. field: 'totalPay',
  95. displayName: '最近总收入',
  96. },
  97. {
  98. field: 'joinStatus',
  99. displayName: '加盟状态',
  100. cellTemplate: '<div class="temp-row" ng-class="grid.appScope.formatterStatusStyle(row.entity.joinStatus)">{{grid.appScope.formatterStatus(row.entity.joinStatus)}}</div>'
  101. },
  102. ];
  103. var fields = $scope.gridOptions.columnDefs;
  104. for (var index in fields) {
  105. var item = fields[index];
  106. if (item && item['minWidth'] == null) {
  107. item['minWidth'] = 100;
  108. }
  109. }
  110. }
  111. $scope.setPagingData = function (data) {
  112. var pagedData = data.data.dataList;
  113. $scope.myData = pagedData;
  114. $scope.gridOptions.totalItems = data.data.total;
  115. };
  116. $scope.getPagedDataAsync = function (curPage, pageSize) {
  117. if ($scope.gridOptionsLoading) {
  118. return;
  119. }
  120. var params = {
  121. pageSize: pageSize,
  122. pageIndex: curPage,
  123. };
  124. if (condition.searchKey !== "") {
  125. params.searchKey = condition.searchKey
  126. }
  127. if (condition.dealerId !== "") {
  128. params.dealerId = condition.dealerId
  129. }
  130. if ($scope.query.startTime !== "") {
  131. params.startDate = $scope.query.startTime
  132. }
  133. if ($scope.query.endTime !== "") {
  134. params.endDate = $scope.query.endTime
  135. }
  136. $scope.gridOptionsLoading = true;
  137. $http.get('/manager/getDevDetailListForJoiner', {
  138. params: params
  139. }).then(function (data) {
  140. data = data.data
  141. $scope.gridOptionsLoading = false;
  142. $scope.setPagingData(data, curPage, pageSize);
  143. }).catch(function (data) {
  144. toaster.pop("error", "提示", "获取数据列表失败");
  145. });
  146. };
  147. function initDataGrid() {
  148. //首次加载表格
  149. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  150. }
  151. setColumnDefs();
  152. initDataGrid();
  153. var dialogData = $scope.dialogData = {};
  154. $scope.formatterStatus = function (status) {
  155. var list = $scope.enum.joinStatus;
  156. for (var index in list) {
  157. var item = list[index];
  158. if (item.value === status) {
  159. return item.name;
  160. }
  161. }
  162. };
  163. $scope.formatterStatusStyle = function (status) {
  164. var list = $scope.enum.joinStatus;
  165. for (var index in list) {
  166. var item = list[index];
  167. if (item.value === status) {
  168. return item.className;
  169. }
  170. }
  171. };
  172. //规则配置
  173. $scope.ruleEdit = function () {
  174. var rows = $scope.gridApi.selection.getSelectedRows();
  175. if (rows.length === 0) {
  176. toaster.pop("info", "提示", "请选择数据!");
  177. return false;
  178. }
  179. var ids = []
  180. var data = {}
  181. if (rows.length > 1) {
  182. for (var index in rows) {
  183. ids.push(rows[index].logicalCode)
  184. }
  185. data = {
  186. logicalCode: ids,
  187. }
  188. } else {
  189. var row = rows[0]
  190. data = {
  191. logicalCode: [row.logicalCode],
  192. joinStatus: row.joinStatus,
  193. joinMoney: parseFloat(row.joinMoney),
  194. joinScale: parseFloat(row.joinScale),
  195. }
  196. }
  197. $scope.dialogData = data;
  198. $("#joinRuleEdit").modal();
  199. }
  200. $scope.saveJoinRule = function () {
  201. //表单未校验通过不能提交
  202. if ($scope.joinRuleEdit.$invalid) {
  203. return;
  204. }
  205. var data = $scope.dialogData
  206. var url = "/manager/setDevJoinStatus";
  207. $http({
  208. method: 'POST',
  209. url: url,
  210. data: data
  211. }).then(function (response) {
  212. $('#joinRuleEdit').modal('hide');//弹窗消失
  213. if (response.data.result === 1) {
  214. toaster.pop("success", "提示", "保存成功!")
  215. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  216. }
  217. }, function (response) {
  218. toaster.pop("error", "提示", "保存失败了!");
  219. });
  220. }
  221. $scope.joinStatusEdit = function () {
  222. var rows = $scope.gridApi.selection.getSelectedRows();
  223. if (rows.length === 0) {
  224. toaster.pop("info", "提示", "请选择数据!");
  225. return false;
  226. }
  227. var ids = []
  228. var data = {}
  229. if (rows.length > 1) {
  230. for (var index in rows) {
  231. ids.push(rows[index].logicalCode)
  232. }
  233. data = {
  234. logicalCode: ids,
  235. }
  236. } else {
  237. var row = rows[0]
  238. data = {
  239. logicalCode: [row.logicalCode],
  240. joinStatus: row.joinStatus,
  241. }
  242. }
  243. $scope.dialogData = data;
  244. $("#joinStatusForm").modal();
  245. }
  246. $scope.saveJoinStatusForm = function () {
  247. //表单未校验通过不能提交
  248. if ($scope.joinStatusForm.$invalid) {
  249. return;
  250. }
  251. var data = $scope.dialogData
  252. var url = "/manager/setDevJoinStatus";
  253. $http({
  254. method: 'POST',
  255. url: url,
  256. data: data
  257. }).then(function (response) {
  258. $('#joinStatusForm').modal('hide');//弹窗消失
  259. if (response.data.result === 1) {
  260. toaster.pop("success", "提示", "保存成功!")
  261. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  262. }
  263. }, function (response) {
  264. toaster.pop("error", "提示", "保存失败了!");
  265. });
  266. }
  267. }]);