ludu-cloud/admin-web/src/models/admin/deptmentList.js
zhenxianyimeng 6980c95ca6 删除部门
2019-07-16 23:24:55 +08:00

111 lines
2.4 KiB
Java

import { message } from 'antd';
import {
deptTreePage,
deptTreeAll,
addDeptment,
updateDeptment,
deleteDeptment,
} from '../../services/admin';
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,
};
});
};
export default {
namespace: 'deptmentList',
state: {
list: [],
selectTree: [],
deptmentData: {
list: [],
},
},
effects: {
*add({ payload }, { call, put }) {
const { onSuccess, body } = payload;
const response = yield call(addDeptment, body);
if (response && response.code === 0) {
onSuccess && onSuccess();
}
},
*delete({ payload }, { call, put }) {
const { onSuccess, body } = payload;
const response = yield call(deleteDeptment, body);
if (response && response.code === 0) {
onSuccess && onSuccess();
}
},
*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,
});
},
*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,
};
},
},
};