diff --git a/package-lock.json b/package-lock.json index 8e04914..74fc24a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "axios": "^1.8.1", "bootstrap": "^5.3.3", "crypto-js": "^4.2.0", + "lodash": "^4.17.21", "react": "^19.0.0", "react-dom": "^19.0.0", "react-redux": "^9.2.0", @@ -3370,6 +3371,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", diff --git a/package.json b/package.json index ca40cf6..ce9ab41 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "axios": "^1.8.1", "bootstrap": "^5.3.3", "crypto-js": "^4.2.0", + "lodash": "^4.17.21", "react": "^19.0.0", "react-dom": "^19.0.0", "react-redux": "^9.2.0", diff --git a/src/components/CreateKnowledgeBaseModal.jsx b/src/components/CreateKnowledgeBaseModal.jsx index 4402387..0ace1d9 100644 --- a/src/components/CreateKnowledgeBaseModal.jsx +++ b/src/components/CreateKnowledgeBaseModal.jsx @@ -11,10 +11,48 @@ import SvgIcon from './SvgIcon'; * @param {Function} props.onClose - 关闭弹窗的回调函数 * @param {Function} props.onChange - 表单输入变化的回调函数 * @param {Function} props.onSubmit - 提交表单的回调函数 + * @param {Object} props.currentUser - 当前用户信息 */ -const CreateKnowledgeBaseModal = ({ show, formData, formErrors, isSubmitting, onClose, onChange, onSubmit }) => { +const CreateKnowledgeBaseModal = ({ + show, + formData, + formErrors, + isSubmitting, + onClose, + onChange, + onSubmit, + currentUser +}) => { if (!show) return null; + // 根据用户角色确定可以创建的知识库类型 + const isAdmin = currentUser?.role === 'admin'; + const isLeader = currentUser?.role === 'leader'; + + // 获取当前用户可以创建的知识库类型 + const getAvailableTypes = () => { + if (isAdmin) { + return [ + { value: 'admin', label: 'Admin 级知识库' }, + { value: 'leader', label: 'Leader 级知识库' }, + { value: 'member', label: 'Member 级知识库' }, + { value: 'private', label: '私有知识库' }, + { value: 'secret', label: '保密知识库' } + ]; + } else if (isLeader) { + return [ + { value: 'member', label: 'Member 级知识库' }, + { value: 'private', label: '私有知识库' } + ]; + } else { + return [ + { value: 'private', label: '私有知识库' } + ]; + } + }; + + const availableTypes = getAvailableTypes(); + return (