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

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

export default{

    namespace: 'linkman',

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

    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},{call,put}){
           const response = yield call(sysOperationCmd,payload);
           yield put({
               type:'sync_operation',
               payload: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
            }
        },



    }


}