Redux框架中action控制用户管理

来源:互联网 发布:成都java培训学校 编辑:程序博客网 时间:2024/06/11 18:27
本人用Redux框架写的其中的一个action用户管理,实现添加,删除,修改,以及引入antd的包,欢迎相同技术的伙伴一起交流学习
/** * * 人员 */import * as types from '../constants/ActionTypes';import {MAINTAIN_URL} from '../constants/Network';import { request,requestAPI } from '../utils/RequestUtils';import { message } from 'antd';/** * 调用loopback接口方法,获取维护人员数据 * @param token 加载进度条 * @returns {Function} */export function fetchMaintain(token) {    var filter={"where":{"role":{"neq":""}}};    var urlstr = encodeURIComponent(JSON.stringify(filter), 'UTF-8');    return dispatch => {        dispatch(fetchMaintainResult());//正在获取数据,进度条提示        let body = JSON.stringify({            token: token        });        return requestAPI({            path: 'Accounts?filter=' + urlstr,            method: 'GET'        }).then((responseData) => {            console.log(responseData);            dispatch(receiveMaintainResult(responseData));        })    }}function fetchMaintainResult() {    return {        type: types.FETCH_MAINTAIN_RESULT    }}function receiveMaintainResult(responseData) {    return {        type: types.RECEIVE_MAINTAIN_RESULT,        rawData: responseData    }}function receivePsersonInfo(responseData) {    return {        type: types.RECEIVE_PERSON_INFO,        accountInfo: responseData    }}/** * 删除人员 * @param token * @param deleteManagerId 删除指定人员 * @returns {Function} * @constructor */export function DeleteMaintainPerson(token,deleteManagerId){    var userRole=localStorage.getItem("role");    if(userRole == "A" || userRole == "B"){        return dispatch => {            dispatch(fetchMaintainResult());//正在获取数据,进度条提示            let body = JSON.stringify({                token: token            });            return requestAPI({                path:'Accounts/'+deleteManagerId,                method: 'DELETE'            }).then((responseData) => {                if(responseData.count>0){                    message.success('删除成功');                    dispatch(fetchMaintain());                }else{                    message.success('删除失败');                }            });        }    }else{        alert("对不起,您没有此权限,请示管理员操作此功能");    }}/** * 调用loopback接口方法,添加维护人员数据 * @param token 加载进度条 * @param managerJson 添加人员json数据 * @returns {Function} */export function fetchAddMaintain(token,managerJson) {    var userRole=localStorage.getItem("role");    if(userRole == "A" || userRole == "B"){        return dispatch => {            dispatch(fetchMaintainResult());//正在获取数据,进度条提示            let body = JSON.stringify({                token: token            });            return requestAPI({                path: 'Accounts',                method: 'POST',                params:managerJson            }).then((responseData) => {                console.log(responseData);                if(responseData.error&&responseData.error.statusCode == 422){                    if(responseData.error.details.messages){                        if(responseData.error.details.messages.email&&                            responseData.error.details.messages.username){                            message.success('邮箱和账号已注册过,请重新更换邮箱和账号');                        }else if(responseData.error.details.messages.email){                            message.success('邮箱已注册过,请重新更换邮箱');                        }else if(responseData.error.details.messages.username){                            message.success('账号已注册过,请重新更换账号');                        }                    }                }else if(responseData.error&&responseData.error.statusCode==401){                    message.success('需要授权');                }else if(responseData.error&&responseData.error.name=="Error"){                    message.success('更新失败');                }else if(responseData.id != null || responseData.id != ""){                    message.success('添加成功');                }            })        }    }else{        alert("对不起,您没有此权限,请示管理员操作此功能");    }}/** * 获取人员信息 * @param token * @param accountId * @returns {Function} */export function fetchPersonInfo(token,accountId) {    return dispatch => {        dispatch(fetchMaintainResult());//正在获取数据,进度条提示        let body = JSON.stringify({            token: token        });        return requestAPI({            path: 'Accounts/' + accountId,            method: 'GET'        }).then((responseData) => {            console.log(responseData);            dispatch(receivePsersonInfo(responseData));        })    }}export function fetchEditInformation(account) {    return {        type: types.RECEIVE_EDIT_INFORMATION,        account: account    }}export function fetchModifyPassword(account) {    return {        type: types.RECEIVE_MODIFY_PASSWORD,        account: account    }}/** *  修改个人信息 * @param id * @param params * @returns {Function} * @constructor */export function UpdateRoleInfo(id,params){    var accountId={ "id":id };    return dispatch => {        return requestAPI({            path:'Accounts/update?where=' + encodeURIComponent(JSON.stringify(accountId), "UTF-8"),            method:'POST',            params:params        }).then((responseData) => {            console.log(responseData);            if(responseData.error&&responseData.error.statusCode == 422){                message.success('邮箱已注册过,请重新更换邮箱');            }else if(responseData.error&&responseData.error.statusCode==401){                message.success('需要授权');            }else if(responseData.error&&responseData.error.name=="Error"){                message.success('更新失败');            }else{                message.success('更新成功');            }        })    }}/** *  修改密码 * @param id * @param params * @returns {Function} * @constructor */export function UpdateRolePassword(params){    var userRole=localStorage.getItem("role");    if(userRole == "A" || userRole == "B"){        return dispatch => {            return requestAPI({                path:'Accounts/reset',                method:'POST',                params:params            }).then((responseData) => {                console.log("修改密码");                console.log(responseData);                if(responseData.result.ret == 1){                    message.success('重置密码成功');                    alert("请及时修改修改重置后生成的随机密码:" + params.password + "谢谢您的使用!");                }else{                    message.success('重置密码失败');                }            })        }    }else{        alert("对不起,您没有此权限,请示管理员操作此功能");    }}
0 0
原创粉丝点击