import React from 'react'; import { useSelector } from 'react-redux'; /** * 知识库表单组件 */ const KnowledgeBaseForm = ({ formData, formErrors, isSubmitting, onInputChange, onSubmit, onDelete, onTypeChange, isAdmin, departments, availableGroups, }) => { // 获取当前用户信息 const currentUser = useSelector((state) => state.auth.user); // 根据用户角色确定可以设置的知识库类型 const isLeader = currentUser?.role === 'leader'; // 获取当前用户可以设置的知识库类型 const getAvailableTypes = () => { if (isAdmin) { return [ { value: 'admin', label: '公共知识库' }, { value: 'leader', label: 'Leader 级知识库' }, { value: 'member', label: 'Member 级知识库' }, { value: 'private', label: '私有知识库' }, { value: 'secret', label: '保密知识库' }, ]; } else if (isLeader) { return [ { value: 'admin', label: '公共知识库' }, { value: 'member', label: 'Member 级知识库' }, { value: 'private', label: '私有知识库' }, ]; } else { return [ { value: 'admin', label: '公共知识库' }, { value: 'private', label: '私有知识库' }, ]; } }; const availableTypes = getAvailableTypes(); // 检查类型是否被更改 const hasTypeChanged = formData.original_type && formData.original_type !== formData.type; // 检查部门或组别是否被更改 const hasDepartmentOrGroupChanged = (formData.original_department && formData.department !== formData.original_department) || (formData.original_group && formData.group !== formData.original_group); // 是否显示类型更改按钮 const showTypeChangeButton = hasTypeChanged || (isAdmin && hasDepartmentOrGroupChanged); return (