[dev]add create knowledgebase dep&group options, permissionpages permission

This commit is contained in:
susie-laptop 2025-04-02 20:00:46 -04:00
parent 6d641bb309
commit 30a8f474ec
5 changed files with 22 additions and 31 deletions

View File

@ -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>}

View File

@ -68,7 +68,6 @@ 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' : ''}`}
@ -77,7 +76,6 @@ export default function HeaderWithNav() {
权限管理 权限管理
</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'>

View File

@ -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 // memberleader
if (needSelectGroup && !isPrivate) { if (needDepartmentAndGroup && !isPrivate) {
// //
if (isAdmin && !newKnowledgeBase.department) { if (isAdmin && !newKnowledgeBase.department) {
errors.department = '创建member级别知识库时必须选择部门'; errors.department = `创建${newKnowledgeBase.type === 'leader' ? '组长级' : '组内'}知识库时必须选择部门`;
} }
// member // memberleader
if (!newKnowledgeBase.group) { if (!newKnowledgeBase.group) {
errors.group = '创建member级别知识库时必须选择组别'; errors.group = `创建${newKnowledgeBase.type === 'leader' ? '组长级' : '组内'}知识库时必须选择组别`;
} }
} }

View File

@ -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'>

View File

@ -72,7 +72,7 @@ function AppRouter() {
</Mainlayout> </Mainlayout>
} }
/> />
{/* 权限管理页面路由 - 仅对 leader 或 admin 角色可见 */} {/* 权限管理页面路由 */}
<Route <Route
path='/permissions' path='/permissions'
element={ element={