mirror of
https://github.com/Funkoala14/KnowledgeBase_OOIN.git
synced 2025-06-08 04:52:26 +08:00
[dev]add create knowledgebase dep&group options, permissionpages permission
This commit is contained in:
parent
6d641bb309
commit
30a8f474ec
@ -83,8 +83,8 @@ const CreateKnowledgeBaseModal = ({
|
|||||||
const availableTypes = getAvailableTypes();
|
const availableTypes = getAvailableTypes();
|
||||||
|
|
||||||
// 判断是否需要选择组别
|
// 判断是否需要选择组别
|
||||||
const isMemberTypeSelected = formData.type === 'member';
|
const needDepartmentAndGroup = formData.type === 'member' || formData.type === 'leader';
|
||||||
const needSelectGroup = isMemberTypeSelected;
|
const needSelectGroup = needDepartmentAndGroup;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@ -179,8 +179,8 @@ const CreateKnowledgeBaseModal = ({
|
|||||||
{formErrors.type && <div className='text-danger small mt-1'>{formErrors.type}</div>}
|
{formErrors.type && <div className='text-danger small mt-1'>{formErrors.type}</div>}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 仅当不是私有知识库时才显示部门选项 */}
|
{/* 仅当不是私有知识库且需要部门和组别时才显示部门选项 */}
|
||||||
{formData.type === 'member' && (
|
{needDepartmentAndGroup && (
|
||||||
<div className='mb-3'>
|
<div className='mb-3'>
|
||||||
<label htmlFor='department' className='form-label'>
|
<label htmlFor='department' className='form-label'>
|
||||||
部门 {isAdmin && needSelectGroup && <span className='text-danger'>*</span>}
|
部门 {isAdmin && needSelectGroup && <span className='text-danger'>*</span>}
|
||||||
@ -219,8 +219,8 @@ const CreateKnowledgeBaseModal = ({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* 仅当不是私有知识库时才显示组别选项 */}
|
{/* 仅当不是私有知识库且需要部门和组别时才显示组别选项 */}
|
||||||
{formData.type === 'member' && (
|
{needDepartmentAndGroup && (
|
||||||
<div className='mb-3'>
|
<div className='mb-3'>
|
||||||
<label htmlFor='group' className='form-label'>
|
<label htmlFor='group' className='form-label'>
|
||||||
组别 {needSelectGroup && <span className='text-danger'>*</span>}
|
组别 {needSelectGroup && <span className='text-danger'>*</span>}
|
||||||
|
@ -68,16 +68,14 @@ export default function HeaderWithNav() {
|
|||||||
Chat
|
Chat
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
{hasManagePermission && (
|
<li className='nav-item'>
|
||||||
<li className='nav-item'>
|
<Link
|
||||||
<Link
|
className={`nav-link ${isActive('/permissions') ? 'active' : ''}`}
|
||||||
className={`nav-link ${isActive('/permissions') ? 'active' : ''}`}
|
to='/permissions'
|
||||||
to='/permissions'
|
>
|
||||||
>
|
权限管理
|
||||||
权限管理
|
</Link>
|
||||||
</Link>
|
</li>
|
||||||
</li>
|
|
||||||
)}
|
|
||||||
</ul>
|
</ul>
|
||||||
{!!user ? (
|
{!!user ? (
|
||||||
<div className='d-flex align-items-center gap-3'>
|
<div className='d-flex align-items-center gap-3'>
|
||||||
|
@ -242,8 +242,8 @@ export default function KnowledgeBase() {
|
|||||||
const errors = {};
|
const errors = {};
|
||||||
const isAdmin = currentUser?.role === 'admin';
|
const isAdmin = currentUser?.role === 'admin';
|
||||||
const isLeader = currentUser?.role === 'leader';
|
const isLeader = currentUser?.role === 'leader';
|
||||||
// 只有member类型知识库需要选择组别,私有知识库不需要
|
// 组长级和member类型知识库需要选择组别,私有知识库不需要
|
||||||
const needSelectGroup = newKnowledgeBase.type === 'member';
|
const needDepartmentAndGroup = newKnowledgeBase.type === 'member' || newKnowledgeBase.type === 'leader';
|
||||||
// 私有知识库不需要选择部门和组别
|
// 私有知识库不需要选择部门和组别
|
||||||
const isPrivate = newKnowledgeBase.type === 'private';
|
const isPrivate = newKnowledgeBase.type === 'private';
|
||||||
|
|
||||||
@ -259,16 +259,16 @@ export default function KnowledgeBase() {
|
|||||||
errors.type = '请选择知识库类型';
|
errors.type = '请选择知识库类型';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 对于member级别的知识库,检查是否选择了部门和组别
|
// 对于member和leader级别的知识库,检查是否选择了部门和组别
|
||||||
if (needSelectGroup && !isPrivate) {
|
if (needDepartmentAndGroup && !isPrivate) {
|
||||||
// 管理员必须选择部门
|
// 管理员必须选择部门
|
||||||
if (isAdmin && !newKnowledgeBase.department) {
|
if (isAdmin && !newKnowledgeBase.department) {
|
||||||
errors.department = '创建member级别知识库时必须选择部门';
|
errors.department = `创建${newKnowledgeBase.type === 'leader' ? '组长级' : '组内'}知识库时必须选择部门`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 所有用户创建member级别知识库时必须选择组别
|
// 所有用户创建member和leader级别知识库时必须选择组别
|
||||||
if (!newKnowledgeBase.group) {
|
if (!newKnowledgeBase.group) {
|
||||||
errors.group = '创建member级别知识库时必须选择组别';
|
errors.group = `创建${newKnowledgeBase.type === 'leader' ? '组长级' : '组内'}知识库时必须选择组别`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,15 +6,8 @@ import UserPermissions from './components/UserPermissions';
|
|||||||
import './Permissions.css';
|
import './Permissions.css';
|
||||||
|
|
||||||
export default function PermissionsPage() {
|
export default function PermissionsPage() {
|
||||||
const navigate = useNavigate();
|
|
||||||
const { user } = useSelector((state) => state.auth);
|
const { user } = useSelector((state) => state.auth);
|
||||||
|
|
||||||
// 检查用户是否有管理权限(leader 或 admin)
|
|
||||||
useEffect(() => {
|
|
||||||
if (!user || (user.role !== 'leader' && user.role !== 'admin')) {
|
|
||||||
navigate('/');
|
|
||||||
}
|
|
||||||
}, [user, navigate]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='permissions-container'>
|
<div className='permissions-container'>
|
||||||
|
@ -72,7 +72,7 @@ function AppRouter() {
|
|||||||
</Mainlayout>
|
</Mainlayout>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
{/* 权限管理页面路由 - 仅对 leader 或 admin 角色可见 */}
|
{/* 权限管理页面路由 */}
|
||||||
<Route
|
<Route
|
||||||
path='/permissions'
|
path='/permissions'
|
||||||
element={
|
element={
|
||||||
|
Loading…
Reference in New Issue
Block a user