修改权限管理+后台改版issue

This commit is contained in:
谢思 2022-04-07 14:30:18 +08:00
parent 672726d683
commit 735b096894
12 changed files with 138 additions and 97 deletions

View File

@ -70,27 +70,25 @@ export default (props) => {
function getMenuList(menus) {
return menus.map(function (item) {
if(item.hidden === 1){
let title = (
<span>
{item.icon && <i className={"left-icon iconfont " + item.icon}></i>}
<span>{item.title}</span>
</span>
);
if (Array.isArray(item.children) && item.children.length > 0) {
let title = (
<span>
{item.icon && <i className={"left-icon iconfont " + item.icon}></i>}
<span>{item.title}</span>
</span>
);
return (
<SubMenu title={item.title} key={item.key} children={item.children} title={title}>{getMenuList(item.children)}</SubMenu>
<SubMenu key={item.key} children={item.children} title={title}>{getMenuList(item.children)}</SubMenu>
);
} else {
return (
<Menu.Item title={item.title} key={item.key}>
{/* <Link to={item.location} onClick={() => { itemClick(item) }}>{item.title}</Link> */}
<Menu.Item title={title} key={item.key}>
{item.location ? <Link to={item.location} onClick={() => { itemClick(item) }}>{item.title}</Link>
: item.title}
: title}
</Menu.Item>
);
}
}
});
}
@ -101,7 +99,6 @@ export default (props) => {
}
function iframeLoad() {
console.log('iframeLoad----------iframeLoad');
try {
let myIframe=document.getElementById("iframe");
myIframe.height = myIframe.contentWindow.top.document.documentElement.scrollHeight;
@ -130,7 +127,6 @@ export default (props) => {
})
}, [history]);
console.log(acitve);
return (
<Fragment>
<div className="layouts">

View File

@ -17,7 +17,6 @@
.menuDetail{
.has-error .ant-form-explain{
position: absolute;
top: 40px;
}
.ant-row{
margin-top: 24px;

View File

@ -9,7 +9,7 @@ import '../index.scss';
const Option = Select.Option;
export default Form.create()(({ form}) => {
const { getFieldDecorator, setFieldsValue, getFieldsValue } = form;
const { getFieldDecorator, setFieldsValue, getFieldsValue, validateFields } = form;
const [reload, setReload] = useState();
const [loading, setLoading] = useState(false);
const [curPage, setCurPage] = useState(1);
@ -47,11 +47,13 @@ export default Form.create()(({ form}) => {
{
title: '路由',
dataIndex: 'location',
width: "20%",
render: (text, record) => (text || '--'),
},
{
title: '前端图标',
dataIndex: 'icon',
width: "20%",
render: (text, record) => {return text || '--'}
},
{
@ -106,7 +108,7 @@ export default Form.create()(({ form}) => {
{helper(
"路由",
"location",
[],
[{ max: 100, message: '长度不能超过100个字符' }],
<Input
placeholder="请输入前端路由"
/>
@ -114,7 +116,7 @@ export default Form.create()(({ form}) => {
{helper(
"前端图标",
"icon",
[],
[{ max: 100, message: '长度不能超过100个字符' }],
<Input
placeholder="请输入前端图标"
/>
@ -156,23 +158,26 @@ export default Form.create()(({ form}) => {
}
function addMenu(){
//
let values = getFieldsValue(['menuName', 'parentKey', 'location', 'icon', 'hidden', 'urlType']);
const params = {
name: values.menuName,
title: values.menuName,
parentKey: parseInt(values.parentKey || 0),
location: values.location,
icon: values.icon,
hidden: values.hidden,
level: parseInt(values.parentKey)+1,
urlType:values.urlType,
}
createMenu(params).then(response=>{
if(response && response.message=='success'){
message.success("菜单新建成功");
setReload(Math.random());
setMenuDetailModal(false);
validateFields((error, values) => {
if(!error){
//
const params = {
name: values.menuName,
title: values.menuName,
parentKey: parseInt(values.parentKey || 0),
location: values.location,
icon: values.icon,
hidden: values.hidden,
level: parseInt(values.parentKey)+1,
urlType:values.urlType,
}
createMenu(params).then(response=>{
if(response && response.message=='success'){
message.success("菜单新建成功");
setReload(Math.random());
setMenuDetailModal(false);
}
})
}
})
}
@ -203,21 +208,26 @@ export default Form.create()(({ form}) => {
});
setEditMenuModal(true);
}
//
function editMenu(){
//
let values = getFieldsValue(['menuName', 'parentKey', 'location', 'icon', 'hidden', 'urlType']);
const params = {
...values,
title: values.menuName,
}
updateMenu(editMenuId, params).then(response=>{
if(response && response.message=='success'){
setReload(Math.random());
setEditMenuModal(false);
message.success("菜单更新成功");
}else{
message.error('菜单更新失败');
validateFields((error, values) => {
if(!error){
//
const params = {
...values,
title: values.menuName,
name: values.menuName,
}
updateMenu(editMenuId, params).then(response=>{
if(response && response.message=='success'){
setReload(Math.random());
setEditMenuModal(false);
message.success("菜单更新成功");
}else{
message.error('菜单更新失败');
}
})
}
})
}
@ -252,7 +262,7 @@ export default Form.create()(({ form}) => {
<div className='management-content-head'>
<p className='font-18'>菜单列表</p>
<div className="search-list" >
<Button className='c2a3 full' onClick={()=>{setMenuDetailModal(true);setFieldsValue({hidden: 1,menuName: '',parentKey: undefined,location: '',icon: '', urlType: "self"}) }}>新增</Button>
<Button className='c2a3 full' onClick={()=>{setFieldsValue({hidden: 1,menuName: '',parentKey: undefined,location: '',icon: '', urlType: "self"}); setMenuDetailModal(true);}}>新增</Button>
<Modal visible={menuDetailModal} title="新增菜单" content={menuDetail} onOk={addMenu} onCancel={()=>setMenuDetailModal(false)}/>
<Modal visible={editMenuModal} title="编辑菜单" content={menuDetail} onOk={editMenu} onCancel={()=>setEditMenuModal(false)}/>
</div>

View File

@ -9,7 +9,7 @@ import { createRole, deleteRole, roleList, updateRoleStatus, updateRole, treeLis
const { TextArea } = Input;
export default Form.create()(({form}) => {
const { getFieldDecorator, setFieldsValue, getFieldsValue } = form;
const { getFieldDecorator, setFieldsValue, getFieldsValue, validateFields } = form;
const [reload, setReload] = useState();
const [loading, setLoading] = useState(false);
const [curPage, setCurPage] = useState(1);
@ -27,6 +27,10 @@ export default Form.create()(({form}) => {
const [roleId, setRoleId] = useState(undefined);
//
const [selectedMenu, setSelectedMenu] = useState(undefined);
//
const [selectedMenuFa, setSelectedMenuFa] = useState(undefined);
//
let oneTree = [];
const helper = useCallback(
(label, name, rules, widget, initialValue) => (
@ -51,10 +55,7 @@ export default Form.create()(({form}) => {
{
title: '描述',
dataIndex: 'description',
},
{
title: '用户数',
dataIndex: 'adminCount',
width: "20%"
},
{
title: '添加时间',
@ -98,7 +99,8 @@ export default Form.create()(({form}) => {
[{ max: 20, message: '长度不能超过20个字符'},
{ required: true, message: "角色名称不能为空"},
{ validator: (rule, value, callback)=>{
const filter = dataList.filter(item=>{ return item.name === value});
//
const filter = dataList.filter(item=>{ return item.id !== editRoleId && item.name === value});
filter.length>0 ? callback('此角色名称已存在'):callback();
}}],
<Input
@ -108,10 +110,10 @@ export default Form.create()(({form}) => {
{helper(
"描述",
"description",
[],
[{ max: 500, message: '长度不能超过500个字符'}],
<TextArea rows={4}/>,
)}
{helper(
{false && helper(
"是否启用",
"status",
[],
@ -128,26 +130,31 @@ export default Form.create()(({form}) => {
<Tree
checkable
treeData={menuTreeData}
onCheck={(selectedKeys)=>{setSelectedMenu(selectedKeys)}}
onCheck={(checkedKeys, info)=>{const keys = [...checkedKeys, ...info.halfCheckedKeys]; setSelectedMenu(checkedKeys); setSelectedMenuFa(keys)}}
checkedKeys={selectedMenu}
/>
)
function addRole(){
//
let values = getFieldsValue(['name', 'description', 'status']);
const params = {
...values
}
createRole(params).then(response=>{
if(response && response.message=='success'){
message.success("角色新建成功");
setReload(Math.random());
setRoleDetailModal(false);
}else{
message.error('角色新建失败');
validateFields((error, values) => {
if(!error){
//
// let values = getFieldsValue(['name', 'description']);
const params = {
...values
}
createRole(params).then(response=>{
if(response && response.message=='success'){
message.success("角色新建成功");
setReload(Math.random());
setRoleDetailModal(false);
}else{
message.error('角色新建失败');
}
})
}
})
}
//
@ -179,25 +186,27 @@ export default Form.create()(({form}) => {
setFieldsValue({
name: roleDetail.name,
description: roleDetail.description,
status: roleDetail.status,
});
setEditRoleModal(true);
}
//
function editRole(){
//
let values = getFieldsValue(['name', 'description', 'status']);
const params = {
...values
}
updateRole(editRoleId, params).then(response=>{
if(response && response.message=='success'){
message.success("角色更新成功");
setReload(Math.random());
setEditRoleModal(false);
}else{
message.error('角色更新失败');
validateFields((error, values) => {
if(!error){
//
const params = {
...values
}
updateRole(editRoleId, params).then(response=>{
if(response && response.message=='success'){
message.success("角色更新成功");
setReload(Math.random());
setEditRoleModal(false);
}else{
message.error('角色更新失败');
}
})
}
})
}
@ -206,7 +215,8 @@ export default Form.create()(({form}) => {
function menuListByRole(roleId){
listMenu(roleId).then(response=>{
if(response && response.message=='success'){
const keys = response.data.map(item=>{return item.key.toString()});
//
const keys = response.data.map(item=>{return oneTree.indexOf(item.key.toString()) === -1 ? item.key.toString() : null});
setSelectedMenu(keys);
setRoleId(roleId);
setMenuModal(true);
@ -216,7 +226,7 @@ export default Form.create()(({form}) => {
//
function allotMenu(){
allocMenu(roleId, selectedMenu).then(response=>{
allocMenu(roleId, selectedMenuFa).then(response=>{
if(response && response.message=='success'){
message.success("分配成功");
setMenuModal(false);
@ -229,6 +239,7 @@ export default Form.create()(({form}) => {
useEffect(()=>{
treeList().then(response=>{
if(response && response.message=='success'){
oneTree = response.data.map(item=>{return item.key.toString()});
setMenuTreeData(response.data);
}
}).finally(()=>{
@ -252,7 +263,7 @@ export default Form.create()(({form}) => {
<div className='management-content-head'>
<p className='font-18'>角色列表</p>
<div className="search-list">
<Button className='c2a3 full' onClick={()=>{setRoleDetailModal(true); }}>新增</Button>
<Button className='c2a3 full' onClick={()=>{setRoleDetailModal(true); setEditRoleId(undefined); setFieldsValue({name: '',description: ''})}}>新增</Button>
<Modal visible={roleDetailModal} title="添加角色" content={roleDetail} onOk={addRole} onCancel={()=>setRoleDetailModal(false)}/>
<Modal visible={editRoleModal} title="编辑角色" content={roleDetail} onOk={editRole} onCancel={()=>setEditRoleModal(false)}/>
<Modal visible={menuModal} title="分配菜单" content={menuTree} onOk={allotMenu} onCancel={()=>setMenuModal(false)}/>

View File

@ -327,6 +327,7 @@ function RegisterList({ showNotification }) {
style={{ width: "300px" }}
placeholder="请输入专家姓名或手机号"
onSearch={(value) => { setSearchInput(value); setCurPage(1); }}
allowClear
/>
</Form.Item>

View File

@ -62,6 +62,11 @@ export default Form.create()((props) => {
}
function uploadAgree(item) {
//
setFileList(null);
setFieldsValue({
files: ''
});
setVisibleAgree(true);
setTaskId(item.id);
setCheckItem(item);

View File

@ -24,6 +24,11 @@ export default Form.create()((props) => {
function deal(item) {
setCheckedItem(item);
//
setFieldsValue({
isAccepted: '',
reason: '',
});
setVisible(true);
}

View File

@ -90,7 +90,7 @@ export default (props) => {
<span className="fl color-grey-9 mt3">{timeAgo(item.createdAt)}</span>
<span className="fr">
{item.status > 2 && item.status !== 9 && <span className="spanTitle color-grey-6 fl ml20">已同意</span>}
{item.status === 9 && <span className="spanTitle color-yellow fl ml20">已处理</span>}
{item.status === 9 && <span className="spanTitle color-yellow fl ml20">待修缮</span>}
{item.status === 2 && <span className="spanTitle color-red fl ml20">已拒绝</span>}
{

View File

@ -145,7 +145,7 @@ export default Form.create()(({ form, showNotification, history}) => {
render: (text, record) => {
return text !== 2 ? paperComplainStatus[text] : <React.Fragment>
<Button className="mr5 font-12" type="primary" size="small" onClick={() => { checkPaperItem(record.id, 1) }}>通过</Button>
<Button className="mr5 font-12" type="info" size="small" onClick={() => { setActiveId(record.id); setVisible(true) }}>不通过</Button>
<Button className="mr5 font-12" type="info" size="small" onClick={() => { setActiveId(record.id); setFieldsValue({message: ''}); setVisible(true) }}>不通过</Button>
</React.Fragment>
}
},

View File

@ -20,7 +20,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
const [loading, setLoading] = useState(false);
const [searchObj, setSearchObj] = useState({
checkStatus: '0',
checkStatus: '2',
parentId: 0,
});
const [curPage, setCurPage] = useState(1);
@ -144,7 +144,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
title: '审核状态',
dataIndex: 'checkStatus',
render: (text, record) => {
return text === 0 ? <React.Fragment>
return text === 2 ? <React.Fragment>
<Button className="mr5 font-12" type="primary" size="small" onClick={() => { checkPaperItem(record.id, true) }}>通过</Button>
<Button className="mr5 font-12" type="info" size="small" onClick={() => { disagree(record) }}>不通过</Button>
</React.Fragment> : checkStatusArr[text]
@ -192,7 +192,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
function changeStatus(e) {
setSearchObj({
...searchObj,
checkStatus: e,
checkStatus: e === '0,1,2' ? '' : e,
});
setCurPage(1);
}
@ -210,7 +210,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
<div className="center-screen" >
<div className="center-left-but">
{helper(
"",
"审核状态",
"checkStatus",
[],
<Select
@ -225,11 +225,11 @@ export default Form.create()(({ current_user, form, showNotification, match, his
})
}
</Select>,
'0'
'2'
)}
{helper(
"",
"审核类型",
"parentId",
[],
<Select

View File

@ -25,7 +25,7 @@ export default Form.create()(({ current_user, form, showNotification, match, his
...searchObj,
status:approve,
type:'',
currentPage:curPage,
curPage,
pageSize: 10,
};
setLoading(true);

View File

@ -109,8 +109,22 @@ export default Form.create()(({ form, showNotification, match, history, state })
startTime: '',
endTime: '',
nameInput: '',
enterpriseNameInput: ''
enterpriseNameInput: '',
taskMode: '0,1,2,3,4,5,6,7,8,9',
showUserMode: '0,1,2',
publishMode1: '0,1',
expertReviewStatus: '-1',
showStatus: '0',
isRecommend: 'all',
sortBy: 'createdAt'
});
setStatusString('0,1,2,3,4,5,6,7,8,9');
setShowUserMode('0,1,2');
setPublishMode('0,1');
setExpertReview('-1');
setIsDelete('0');
setRecommend('');
setOrder("createdAt");
setSearchObj({});
}
@ -552,7 +566,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
})
}
</Select>,
'0,1,2,3,4,5,6,7,8,9'
'0,1,2,3,4,5,6,7,8,9'
)}
{helper(
@ -563,7 +577,7 @@ export default Form.create()(({ form, showNotification, match, history, state })
className="column-select"
showArrow
placeholder="请选择审核状态"
onChange={setShowUserMode}
onChange={(value)=>{setShowUserMode(value);setCurPage1(1);}}
>
<Option key={'0,1,2'}>全部</Option>
{