123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- import { queryNotices } from '@/services/api';
- import { sldCommonService } from '@/utils/utils';
- export default {
- namespace: 'global',
- state: {
- collapsed: false,
- notices: [],
- siteList: [],
- currentSite: '',
- currentSiteName: ''
- },
- effects: {
- //修改密码
- *change_manager_pwd({ payload, callback }, { call }) {
- const response = yield call(sldCommonService, payload,'post','v3/system/admin/adminUser/updatePwd');
- if (callback) callback(response);
- },
- *fetchNotices(_, { call, put, select }) {
- const data = yield call(queryNotices);
- yield put({
- type: 'saveNotices',
- payload: data,
- });
- const unreadCount = yield select(
- state => state.global.notices.filter(item => !item.read).length
- );
- yield put({
- type: 'user/changeNotifyCount',
- payload: {
- totalCount: data.length,
- unreadCount,
- },
- });
- },
- *clearNotices({ payload }, { put, select }) {
- yield put({
- type: 'saveClearedNotices',
- payload,
- });
- const count = yield select(state => state.global.notices.length);
- const unreadCount = yield select(
- state => state.global.notices.filter(item => !item.read).length
- );
- yield put({
- type: 'user/changeNotifyCount',
- payload: {
- totalCount: count,
- unreadCount,
- },
- });
- },
- *changeNoticeReadState({ payload }, { put, select }) {
- const notices = yield select(state =>
- state.global.notices.map(item => {
- const notice = { ...item };
- if (notice.id === payload) {
- notice.read = true;
- }
- return notice;
- })
- );
- yield put({
- type: 'saveNotices',
- payload: notices,
- });
- yield put({
- type: 'user/changeNotifyCount',
- payload: {
- totalCount: notices.length,
- unreadCount: notices.filter(item => !item.read).length,
- },
- });
- },
- // 获取站点列表
- * get_site_list_data({ payload, callback }, { call, put, select }) {
- const siteList = yield select(state => state.global.siteList);
- const response = siteList.length ? {data: siteList, state: 200} : yield call(sldCommonService, payload, 'get', 'v3/system/seller/setting/getSiteSettingList');
- if (callback) callback(response);
- yield put({ type: 'saveSiteList', payload: response.data });
- const currentSite = yield select(state => state.global.currentSite);
- if (!currentSite) {
- yield put({type: 'setCurrentSite', payload: response.data[0]?.value})
- yield put({type: 'setCurrentSiteName', payload: response.data[0]?.title})
- }
- },
- },
- reducers: {
- saveSiteList(state, action) {
- return {
- ...state,
- siteList: action.payload,
- };
- },
- setCurrentSite(state, { payload }) {
- localStorage.setItem('currentSite', payload)
- return {
- ...state,
- currentSite: payload,
- };
- },
- setCurrentSiteName(state, { payload }) {
- return {
- ...state,
- currentSiteName: payload,
- };
- },
- changeLayoutCollapsed(state, { payload }) {
- return {
- ...state,
- collapsed: payload,
- };
- },
- getLayoutCollapsed(state, { payload }) {
- return {
- ...state,
- };
- },
- saveNotices(state, { payload }) {
- return {
- ...state,
- notices: payload,
- };
- },
- saveClearedNotices(state, { payload }) {
- return {
- ...state,
- notices: state.notices.filter(item => item.type !== payload),
- };
- },
- },
- subscriptions: {
- setup({ history }) {
- // Subscribe history(url) change, trigger `load` action if pathname is `/`
- return history.listen(({ pathname, search }) => {
- if (typeof window.ga !== 'undefined') {
- window.ga('send', 'pageview', pathname + search);
- }
- });
- },
- },
- };
|