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