linkman.js 2.87 KB
import {queryWxSchLkGroup,
    querySchoolMember,
    querySchoolMemberDetail,
    sysOperationCmd,
    checkSchinfo,
    wxadminUseridMdf
} from '../services/devutil'

import linkman from '../../mock/linkman';

export default{

    namespace: 'linkman',

    state:{
        groups:[],
        linkmanMap:{},
        operationSync:{},
        schoolDetail:{ },
    },

    effects:{

        *groups({payload},{call,put}){
            const response = yield call(queryWxSchLkGroup,payload);
            yield put({
                type:'loadWXLinkmanGroup',
                payload:response,
            });
            
        },

        *lklist({payload},{call,put}){
            console.log('lklist');
            const response = yield call(querySchoolMember,payload);
            console.log(response);
            yield put({
                type:'loadGroupOfLinkman',
                payload:response,
            });
        },

        *findUser({payload},{call,put}){
            console.log('findUser');
            const response = yield call(querySchoolMemberDetail,payload);
            yield put({
                type:'userFound',
                payload:response,
            });
        },


        *sysOperation({payload,callback},{call,put}){
           const response = yield call(sysOperationCmd,payload);
           yield put({
               type:'sync_operation',
               payload:response
           });
           if (callback) callback(response);
        },

        *schDetail({payload},{call,put}){
            const response = yield call(checkSchinfo,payload);
            yield put({
                type:'loadSchoolDetail',
                payload:response
            });

        },

        *changeUserid({payload,callback},{call,put}){
            const response = yield call(wxadminUseridMdf,payload);
            if(callback) callback(response);
        }
        

    },


    reducers:{

        loadWXLinkmanGroup(state,action){
            return {
                ...state,
                groups:action.payload,
            }
        },

        loadGroupOfLinkman(state,action){
            let {linkmanMap} = state;
            if (!linkmanMap)
                linkmanMap={ }
            linkmanMap['g_'+action.payload.groupid] = action.payload.members;
            return {
                ...state, 
                linkmanMap:linkmanMap, 
                };
        },

        userFound(state,action){
            return{
                ...state,
                userFoundResult:action.payload
            };
        },


        sync_operation(state,action){
            return {
                ...state,
                operationSync:action.payload,
                linkmanMap:{}
            }
        },

        loadSchoolDetail(state,action){
            return{
                ...state,
                schoolDetail:action.payload
            };
        },


    }


}