145 lines
3.3 KiB
JavaScript
145 lines
3.3 KiB
JavaScript
import { message } from 'antd';
|
|
import { buildTreeNode, findCheckedKeys } from '../../utils/tree.utils';
|
|
import {
|
|
addAdmin,
|
|
updateAdmin,
|
|
updateAdminStatus,
|
|
deleteAdmin,
|
|
queryAdmin,
|
|
queryAdminRoleList,
|
|
adminRoleAssign,
|
|
} from '../../services/admin';
|
|
import { arrayToStringParams } from '../../utils/request.qs';
|
|
|
|
export default {
|
|
namespace: 'adminList',
|
|
|
|
state: {
|
|
list: [],
|
|
count: 0,
|
|
pageNo: 0,
|
|
pageSize: 10,
|
|
|
|
roleList: [],
|
|
roleCheckedKeys: [],
|
|
roleAssignLoading: false,
|
|
},
|
|
|
|
effects: {
|
|
*add({ payload }, { call, put }) {
|
|
const { callback, body, queryParams } = payload;
|
|
const response = yield call(addAdmin, body);
|
|
if (callback) {
|
|
callback(response);
|
|
}
|
|
yield put({
|
|
type: 'query',
|
|
payload: {
|
|
...queryParams,
|
|
},
|
|
});
|
|
},
|
|
*update({ payload }, { call, put }) {
|
|
const { callback, body, queryParams } = payload;
|
|
const response = yield call(updateAdmin, body);
|
|
if (callback) {
|
|
callback(response);
|
|
}
|
|
yield put({
|
|
type: 'query',
|
|
payload: {
|
|
...queryParams,
|
|
},
|
|
});
|
|
},
|
|
*updateStatus({ payload }, { call, put }) {
|
|
const { body, queryParams } = payload;
|
|
yield call(updateAdminStatus, body);
|
|
message.info('更新成功!');
|
|
yield put({
|
|
type: 'query',
|
|
payload: {
|
|
...queryParams,
|
|
},
|
|
});
|
|
},
|
|
*delete({ payload }, { call, put }) {
|
|
const { queryParams, body } = payload;
|
|
yield call(deleteAdmin, body);
|
|
message.info('删除成功!');
|
|
yield put({
|
|
type: 'query',
|
|
payload: {
|
|
...queryParams,
|
|
},
|
|
});
|
|
},
|
|
*query({ payload }, { call, put }) {
|
|
const response = yield call(queryAdmin, payload);
|
|
const { count, admins } = response.data;
|
|
yield put({
|
|
type: 'querySuccess',
|
|
payload: {
|
|
list: admins,
|
|
count,
|
|
},
|
|
});
|
|
},
|
|
*queryRoleList({ payload }, { call, put }) {
|
|
yield put({
|
|
type: 'changeRoleAssignLoading',
|
|
payload: true,
|
|
});
|
|
|
|
const response = yield call(queryAdminRoleList, payload);
|
|
const roleList = response.data;
|
|
const roleTreeData = buildTreeNode(roleList, 'name', 'id');
|
|
const roleCheckedKeys = findCheckedKeys(roleList);
|
|
|
|
yield put({
|
|
type: 'querySuccess',
|
|
payload: {
|
|
roleList: roleTreeData,
|
|
roleCheckedKeys,
|
|
},
|
|
});
|
|
|
|
yield put({
|
|
type: 'changeRoleAssignLoading',
|
|
payload: false,
|
|
});
|
|
},
|
|
*roleAssign({ payload }, { call }) {
|
|
const params = {
|
|
id: payload.id,
|
|
roleIds: arrayToStringParams(payload.roleIds),
|
|
};
|
|
const response = yield call(adminRoleAssign, params);
|
|
if (response.code === 0) {
|
|
message.info('操作成功!');
|
|
}
|
|
},
|
|
},
|
|
|
|
reducers: {
|
|
querySuccess(state, { payload }) {
|
|
return {
|
|
...state,
|
|
...payload,
|
|
};
|
|
},
|
|
changeRoleCheckedKeys(state, { payload }) {
|
|
return {
|
|
...state,
|
|
roleCheckedKeys: payload,
|
|
};
|
|
},
|
|
changeRoleAssignLoading(state, { payload }) {
|
|
return {
|
|
...state,
|
|
roleAssignLoading: payload,
|
|
};
|
|
},
|
|
},
|
|
};
|