logs.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import { message } from 'antd'
  2. import * as service from '../services/index'
  3. import URLS from '../constants/url'
  4. export default {
  5. namespace: 'logs',
  6. state: {
  7. originData: {
  8. listLoading: false,
  9. list: [],
  10. total: 0,
  11. filterLabel: '',
  12. filterItems: [
  13. { name: 'module', label: '模块', type: 'enum', options: [
  14. { name: '数据链接', label: '数据链接' },
  15. { name: '数据源', label: '数据源' },
  16. { name: '图表', label: '图表' },
  17. { name: '报表', label: '报表' },
  18. // { name: '数据源分组', label: '数据源分组' },
  19. // { name: '图表分组', label: '图表分组' },
  20. { name: '权限管理', label: '权限管理' },
  21. { name: '用户管理', label: '用户管理' },
  22. ] },
  23. { name: 'name', label: '名称', type: 'string' },
  24. { name: 'operator', label: '操作人', type: 'string' },
  25. { name: 'date', label: '操作时间', type: 'date' },
  26. ], // 可选过滤字段
  27. filterItem: { name: 'module', label: '模块', type: 'enum', options: [
  28. { name: '数据链接', label: '数据链接' },
  29. { name: '数据源', label: '数据源' },
  30. { name: '图表', label: '图表' },
  31. { name: '报表', label: '报表' },
  32. // { name: '数据源分组', label: '数据源分组' },
  33. // { name: '图表分组', label: '图表分组' },
  34. { name: '权限管理', label: '权限管理' },
  35. { name: '用户管理', label: '用户管理' },
  36. ] }, // 已选过滤字段
  37. listScrollTop: 0, // 记录列表界面滚动条位置
  38. currentPage: 1, // 记录分页器当前所在页数
  39. },
  40. },
  41. reducers: {
  42. setField(state, action) {
  43. const { name, value } = action;
  44. let obj = {};
  45. obj[name] = value;
  46. return Object.assign({}, state, obj);
  47. },
  48. setFields(state, action) {
  49. const { fields } = action;
  50. let obj = {};
  51. fields.map(f => (obj[f.name] = f.value));
  52. return Object.assign({}, state, obj);
  53. },
  54. setFilterItem(state, action) {
  55. const { item } = action;
  56. return Object.assign({}, state, {filterItem: item, filterLabel: ''});
  57. },
  58. setFilterLabel(state, action) {
  59. const { label } = action;
  60. return Object.assign({}, state, {filterLabel: label, currentPage: 1});
  61. },
  62. reset(state, action) {
  63. return Object.assign({}, state, state.originData);
  64. },
  65. },
  66. effects: {
  67. *fetchList(action, { select, call, put }) {
  68. const { pageNum, pageSize, silent } = action;
  69. const body = {
  70. pageNum: pageNum || 1,
  71. pageSize: pageSize || 99999999
  72. }
  73. try{
  74. // const logs = yield select(state => state.present.logs);
  75. // if(!action.mandatory && logs.list.length > 0) {
  76. // return;
  77. // }
  78. if(!silent) {
  79. yield put({ type: 'setField', name: 'listLoading', value: true });
  80. }
  81. const res = yield call(service.fetch, {
  82. url: URLS.MESSAGELOG_LIST,
  83. method: 'GET',
  84. body
  85. });
  86. if(!res.err && res.data.code > 0) {
  87. let total = res.data.data.total;
  88. let list = res.data.data.list.map(d => {
  89. return {
  90. code: d.id + '',
  91. date: d.date,
  92. operation: d.content,
  93. module: d.module,
  94. name: d.order,
  95. result: d.result,
  96. search: d.search,
  97. operator: d.userName
  98. }
  99. })
  100. yield put({ type: 'setFields', fields: [
  101. { name: 'list', value: list },
  102. { name: 'total', value: total },
  103. ] });
  104. }else {
  105. message.error('请求操作日志列表失败: ' + (res.err || res.data.msg));
  106. }
  107. }catch(e) {
  108. message.error('请求操作日志列表失败: ' + e.message);
  109. }finally {
  110. yield put({ type: 'setField', name: 'listLoading', value: false });
  111. }
  112. }
  113. },
  114. subscriptions: {
  115. setup({ dispatch, history }) {
  116. dispatch({ type: 'reset' });
  117. }
  118. }
  119. };