weblog.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. app.controller('weblogCtrl', ['$scope', '$http', '$timeout', 'uiGridConstants', 'i18nService', 'toaster', function ($scope, $http, $timeout, uiGridConstants, i18nService, toaster) {
  2. i18nService.setCurrentLang("zh-cn");
  3. $scope.gridOptions = {
  4. data: 'myData',
  5. showGridFooter: true, //是否显示grid footer
  6. //-------- 分页属性 ----------------
  7. paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项
  8. paginationCurrentPage: 1, //当前页码
  9. paginationPageSize: 10, //每页显示个数
  10. totalItems: 0,// 总数量
  11. useExternalPagination: true,//是否使用分页按钮
  12. //过滤
  13. enableFiltering: true,
  14. columnDefs: [],
  15. //---------------api---------------------
  16. onRegisterApi: function (gridApi) {
  17. $scope.gridApi = gridApi;
  18. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  19. if ($scope.setPagingData) {
  20. $scope.getPagedDataAsync(newPage, pageSize);
  21. }
  22. });
  23. }
  24. };
  25. //查询条件
  26. var condition = $scope.condition = {
  27. searchKey: ""
  28. };
  29. function setColumnDefs() {
  30. $scope.gridOptions.columnDefs = [
  31. {field: 'createdTime', displayName: '时间'},
  32. {field: 'title', displayName: '标题'},
  33. {field: 'content', displayName: '内容'},
  34. ];
  35. var fields = $scope.gridOptions.columnDefs;
  36. for (var index in fields) {
  37. var item = fields[index];
  38. if (item && item['minWidth'] == null) {
  39. item['minWidth'] = 100;
  40. }
  41. }
  42. }
  43. function initDataGrid() {
  44. //首次加载表格
  45. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  46. }
  47. $scope.setPagingData = function (data, curPage, pageSize) {
  48. var pagedData = data.data.dataList;
  49. $scope.myData = pagedData;
  50. $scope.gridOptions.totalItems = data.data.total;
  51. };
  52. $scope.getPagedDataAsync = function (curPage, pageSize) {
  53. var params = {
  54. pageSize: pageSize,
  55. pageIndex: curPage
  56. };
  57. if (condition.searchKey != "") {
  58. params.searchKey = condition.searchKey
  59. }
  60. $http.get('/superadmin/getWebLogs', {
  61. params: params
  62. }).then(function (data) {
  63. data = data.data
  64. $scope.setPagingData(data, curPage, pageSize);
  65. }).catch(function (data) {
  66. toaster.pop("error", "提示", "获取数据失败");
  67. });
  68. };
  69. setColumnDefs();
  70. initDataGrid();
  71. //事件
  72. $scope.event = {
  73. search: function () {
  74. $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize);
  75. }
  76. };
  77. //编辑弹窗需要的数据
  78. $scope.dialogName = "编辑";
  79. $scope.dialogData = {};
  80. //添加
  81. $scope.add = function () {
  82. //重置表单状态
  83. $scope.weblogPanel.$setPristine();
  84. $scope.weblogPanel.$setUntouched();
  85. $scope.dialogName = "添加";
  86. $scope.dialogData = {};
  87. $("#weblogPanel").modal();
  88. };
  89. //编辑
  90. $scope.edit = function () {
  91. //重置表单状态
  92. $scope.weblogPanel.$setPristine();
  93. $scope.weblogPanel.$setUntouched();
  94. $scope.dialogName = "编辑";
  95. var rows = $scope.gridApi.selection.getSelectedRows();
  96. if (rows.length == 0) {
  97. toaster.pop("info", "提示", "请选择数据!");
  98. return;
  99. }
  100. if (rows.length > 1) {
  101. toaster.pop("info", "提示", "只能选中编辑一条数据");
  102. return;
  103. }
  104. var item = rows[0];
  105. $scope.dialogData = $.extend(true, {}, item);
  106. $("#weblogPanel").modal();
  107. };
  108. //提交表单保存
  109. $scope.saveData = function () {
  110. //表单未校验通过不能提交
  111. if ($scope.weblogPanel.$invalid) {
  112. return;
  113. }
  114. var url = "";
  115. if ($scope.dialogData.id == null) {
  116. url = "/superadmin/addWebLog";
  117. } else {
  118. url = "/superadmin/editWebLog";
  119. }
  120. //深度克隆 避免操作原对象
  121. var data = $.extend(true, {}, $scope.dialogData);
  122. $http({
  123. method: 'POST',
  124. url: url,
  125. data: data
  126. }).then(function (response) {
  127. $('#weblogPanel').modal('hide');//弹窗消失
  128. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  129. }, function (response) {
  130. toaster.pop("error", "提示", "保存失败!");
  131. });
  132. };
  133. }]);