ludu-cloud/admin-web/src/models/admin/deptmentList.js

111 lines
2.4 KiB
Java
Raw Normal View History

2019-07-06 11:50:56 +08:00
import { message } from 'antd';
2019-07-16 23:24:55 +08:00
import {
deptTreePage,
deptTreeAll,
addDeptment,
updateDeptment,
deleteDeptment,
} from '../../services/admin';
2019-07-10 23:17:59 +08:00
const buildSelectTree = list => {
return list.map(item => {
let children = [];
if (item.children) {
children = buildSelectTree(item.children);
}
return {
title: item.name,
value: `${item.name}-${item.id}`,
key: item.id,
children,
};
});
};
2019-07-06 11:50:56 +08:00
export default {
namespace: 'deptmentList',
state: {
list: [],
selectTree: [],
deptmentData: {
list: [],
},
},
effects: {
2019-07-10 23:17:59 +08:00
*add({ payload }, { call, put }) {
const { onSuccess, body } = payload;
const response = yield call(addDeptment, body);
if (response && response.code === 0) {
onSuccess && onSuccess();
}
},
2019-07-16 23:24:55 +08:00
*delete({ payload }, { call, put }) {
const { onSuccess, body } = payload;
const response = yield call(deleteDeptment, body);
if (response && response.code === 0) {
onSuccess && onSuccess();
}
},
2019-07-10 23:17:59 +08:00
*update({ payload }, { call, put }) {
const { onSuccess, body } = payload;
const response = yield call(updateDeptment, body);
if (response && response.code === 0) {
onSuccess && onSuccess();
}
},
*getDeptmentAll({ payload }, { call, put }) {
const result = yield call(deptTreeAll, payload);
yield put({
type: 'treeSuccess',
payload: result.data,
});
},
2019-07-06 11:50:56 +08:00
*getDeptmentList({ payload }, { call, put }) {
const result = yield call(deptTreePage, payload);
let deptmentData = {};
if (result.code === 0) {
deptmentData = result.data;
}
yield put({
type: 'save',
payload: {
deptmentData,
},
});
},
},
reducers: {
save(state, action) {
return {
...state,
...action.payload,
};
},
treeSuccess(state, { payload }) {
const resultData = payload;
const treeData = buildSelectTree(resultData);
// value 要保护 displayName 不然,搜索会失效
const rootNode = [
{
title: '根节点',
value: `根节点-0`,
key: 0,
children: [],
},
];
const selectTree = rootNode.concat(treeData);
return {
...state,
list: resultData,
selectTree,
};
},
},
};