logs.js 4.6 KB

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