user.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { message } from 'antd'
  2. import * as service from '../services/index'
  3. import URLS from '../constants/url'
  4. export default {
  5. namespace: 'user',
  6. state: {
  7. list: [],
  8. filterLabel: ''
  9. },
  10. reducers: {
  11. list(state, action) {
  12. const { list } = action;
  13. return { ...state, list }
  14. },
  15. setFilterLabel(state, action) {
  16. const { label } = action;
  17. return { ...state, filterLabel: label}
  18. }
  19. },
  20. effects: {
  21. *fetchList(action, { put, call, select }) {
  22. const user = yield select(state => state.present.user);
  23. try {
  24. if(!action.mandatory && user.list.length > 0) {
  25. return;
  26. }
  27. const res = yield call(service.fetch, {
  28. url: URLS.USER_LIST
  29. });
  30. console.log('请求用户列表', res);
  31. if(!res.err && res.data.code > 0) {
  32. const list = res.data.data.map(d => ({
  33. code: d.id+'',
  34. userName: d.userName,
  35. fullName: d.name,
  36. role: d.role === 'admin' ? '管理员' : '普通用户'
  37. }));
  38. yield put({ type: 'list', list });
  39. }else {
  40. message.error('请求用户列表失败: ' + (res.err || res.data.msg));
  41. }
  42. }catch(e) {
  43. console.log(e);
  44. message.error('请求用户列表失败');
  45. }
  46. },
  47. *remoteModify(action, { put, call, select }) {
  48. const body = {};
  49. try {
  50. const res = yield call(service.fetch({
  51. url: URLS.USER_UPDATE,
  52. body
  53. }));
  54. console.log('修改用户信息', body, res);
  55. if(!res.err && res.data.code > 0) {
  56. message.success('修改成功');
  57. }else {
  58. console.log(body, (res.err || res.data.msg));
  59. message.error('修改失败: ' + (res.err || res.data.msg));
  60. }
  61. }catch(e) {
  62. console.log(body, e);
  63. message.error('修改失败');
  64. }
  65. }
  66. },
  67. subscriptions: {
  68. setup({ dispatch, history }) {
  69. return history.listen(({ pathname, query }) => {
  70. })
  71. }
  72. }
  73. };