12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import { fetch, apis } from '@/utils/request';
- import { setAllBtnAuth, setUserBtnAuth } from '@/components/AuthButton';
-
- const getCurrentUser = fetch(apis.user.current)
-
- const UserModel = {
- namespace: 'user',
- state: {
- currentUser: {},
- menuList: [],
- buttonList: [],
- },
- effects: {
- // *fetch(_, { call, put }) {
- // const response = yield call(queryUsers);
- // yield put({
- // type: 'save',
- // payload: response,
- // });
- // },
-
- *fetchCurrent(_, { call, put }) {
- const response = yield call(getCurrentUser);
-
- yield put({
- type: 'saveCurrentUser',
- payload: response,
- });
- },
- },
- reducers: {
- saveCurrentUser(state, { payload }) {
- const { taUser = {} , menuList = [], buttonList = [] } = payload || {}
- const currentUser = { ...taUser, roles: (taUser.roles || []).map(x => x.roleId) }
-
- setAllBtnAuth(buttonList)
- setUserBtnAuth(currentUser.roles)
-
- return { ...state, currentUser, menuList, buttonList };
- },
- changeNotifyCount(
- state = {
- currentUser: {},
- },
- action,
- ) {
- return {
- ...state,
- currentUser: {
- ...state.currentUser,
- notifyCount: action.payload.totalCount,
- unreadCount: action.payload.unreadCount,
- },
- };
- },
- },
- };
- export default UserModel;
|