/* 组织管理
* @Author: Li Hanlin
* @Date: 2022-11-24 11:16:02
* @Last Modified by: Li Hanlin
* @Last Modified time: 2022-12-05 16:20:22
*/
import * as React from 'react';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { doFetch } from '@/utils/doFetch';
import { message } from 'antd';
function Type(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setDrawer] = useState({
visible: false,
});
const urlParams = {
save: '/auth/sysDepartment/save',
remove: '/auth/sysDepartment/deleteById',
list: '/auth/sysDepartment/query/tree',
detail: '/asset/equipmentType/queryById',
};
const detail = (text, row, _, action) => {
return (
{
setDrawer((s) => ({
...s,
visible: true,
item: row,
title: '详情',
val: 'detail',
title: row.userName + '的详细信息',
}));
},
}}
>
详情
);
};
const edit = (text, row, _, action) => {
return (
{
setDrawer((s) => ({
...s,
visible: true,
// detailpath: urlParams.detail,
// params: { id: row.key },
item: {
...row,
departmentName: row.title,
},
title: '编辑',
val: 'edit',
onFinish: async (vals) => {
//console.log(vals);
let params = {
...vals,
id: row.key,
parentId: row.parentKey,
departmentType: row.departmentType,
};
//console.log(params);
delete params.title;
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('编辑成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}));
},
}}
>
编辑
);
};
const addChild = (text, row, _, action) => {
return (
{
setDrawer((s) => ({
...s,
visible: true,
detailpath: null,
item: {
parentKey: row.title,
departmentTypeName: '部门类型',
},
title: '新增组织',
val: 'addChild',
onFinish: async (vals) => {
let params = {
...vals,
parentId: row.key,
equipmentTypeName: vals.title,
departmentType: '1',
};
delete params.title;
delete params.parentKey;
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('新增组织成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}));
},
}}
>
新增组织
);
};
const remove = (text, row, _, action) => {
return (
{
let res = await doFetch({ url: urlParams.remove, params: { id: row.key } });
if (res.code === '0000') {
message.success('删除成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}}
btn={{
size: 'small',
type: 'danger',
}}
>
删除
);
};
const columns = useMemo(() => {
let defcolumn = getcolumns(setDrawer);
if (drawer?.val == 'add' || drawer?.val == 'edit') {
defcolumn[3].hideInForm = true;
} else {
defcolumn[3].hideInForm = false;
}
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 150,
render: (text, row, _, action) => [
addChild(text, row, _, action),
edit(text, row, _, action),
remove(text, row, _, action),
],
});
}, [drawer.val]);
return (
组织管理}
columns={columns}
path={urlParams.list}
actionRef={actionRef}
rowKey={'key'}
pageextra={'add'}
resizeable={false}
addconfig={{
// access: 'sysDepartment_save',
btn: {
disabled: false,
type: 'primary',
onClick: () => {
setDrawer((s) => ({
...s,
visible: true,
item: {
departmentTypeName: '公司类型',
},
title: '新增',
detailpath: null,
val: 'add',
onFinish: async (vals) => {
let params = {
...vals,
departmentType: 0,
};
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('新增成功!');
setDrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
}));
},
},
}}
pagination={false}
/>
{
setDrawer((s) => ({
...s,
visible: false,
}));
}}
{...drawer}
/>
);
}
export default Type;