From a9ab9ebe8ea0f7cd2006609cd842035544058937 Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Mon, 24 Jun 2024 09:29:54 +0800 Subject: [PATCH] 4.8.5 test (#1825) * update model logo * perf: hide list clb api --- .vscode/settings.json | 3 +- .../zh-cn/docs/development/configuration.md | 3 + packages/global/common/string/tools.ts | 8 ++ .../web/components/common/MyMenu/index.tsx | 2 +- projects/app/public/imgs/model/deepseek.svg | 6 + projects/app/public/imgs/model/minimax.svg | 9 ++ .../components/common/folder/SlideCard.tsx | 124 +++++++++--------- .../MemberManager/AddMemberModal.tsx | 23 ++-- .../permission/MemberManager/context.tsx | 20 ++- .../src/pages/dataset/list/component/List.tsx | 20 +-- 10 files changed, 133 insertions(+), 85 deletions(-) create mode 100644 projects/app/public/imgs/model/deepseek.svg create mode 100644 projects/app/public/imgs/model/minimax.svg diff --git a/.vscode/settings.json b/.vscode/settings.json index 05bf3de99fc0..f6f5e22aec12 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,9 @@ { "editor.formatOnSave": true, "editor.mouseWheelZoom": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.prettierPath": "../node_modules/prettier", "typescript.tsdk": "node_modules/typescript/lib", - "prettier.prettierPath": "", "i18n-ally.localesPaths": [ "packages/web/i18n", ], diff --git a/docSite/content/zh-cn/docs/development/configuration.md b/docSite/content/zh-cn/docs/development/configuration.md index 826f8b767a98..652a1293b303 100644 --- a/docSite/content/zh-cn/docs/development/configuration.md +++ b/docSite/content/zh-cn/docs/development/configuration.md @@ -148,6 +148,9 @@ llm模型全部合并 - /imgs/model/openai.svg - OpenAI GPT - /imgs/model/qwen.svg - 通义千问 - /imgs/model/yi.svg - 零一万物 +- /imgs/model/gemini.svg - gemini +- /imgs/model/deepseek.svg - deepseek +- /imgs/model/minimax.svg - minimax - ## 特殊模型 diff --git a/packages/global/common/string/tools.ts b/packages/global/common/string/tools.ts index 12cdd652ebcb..8afa1f8eaf02 100644 --- a/packages/global/common/string/tools.ts +++ b/packages/global/common/string/tools.ts @@ -67,6 +67,14 @@ export const getNanoid = (size = 12) => { /* Custom text to reg, need to replace special chats */ export const replaceRegChars = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +export const getRegQueryStr = (text: string, flags = 'i') => { + const formatText = replaceRegChars(text); + const chars = formatText.split(''); + const regexPattern = chars.join('.*'); + + return new RegExp(regexPattern, flags); +}; + /* slice json str */ export const sliceJsonStr = (str: string) => { str = str.replace(/(\\n|\\)/g, '').replace(/ /g, ''); diff --git a/packages/web/components/common/MyMenu/index.tsx b/packages/web/components/common/MyMenu/index.tsx index 9e2cfdcc3094..f32053a1aa72 100644 --- a/packages/web/components/common/MyMenu/index.tsx +++ b/packages/web/components/common/MyMenu/index.tsx @@ -102,6 +102,7 @@ const MyMenu = ({ direction={'ltr'} isLazy lazyBehavior={'keepMounted'} + placement="bottom-start" > + + \ No newline at end of file diff --git a/projects/app/public/imgs/model/minimax.svg b/projects/app/public/imgs/model/minimax.svg new file mode 100644 index 000000000000..9e94ee0cfa64 --- /dev/null +++ b/projects/app/public/imgs/model/minimax.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/projects/app/src/components/common/folder/SlideCard.tsx b/projects/app/src/components/common/folder/SlideCard.tsx index c53722694cfb..1f2c98c61886 100644 --- a/projects/app/src/components/common/folder/SlideCard.tsx +++ b/projects/app/src/components/common/folder/SlideCard.tsx @@ -12,6 +12,7 @@ import CollaboratorContextProvider, { MemberManagerInputPropsType } from '../../support/permission/MemberManager/context'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; +import { useSystemStore } from '@/web/common/system/useSystemStore'; const FolderSlideCard = ({ refreshDeps, @@ -41,6 +42,7 @@ const FolderSlideCard = ({ managePer: MemberManagerInputPropsType; }) => { const { t } = useTranslation(); + const { feConfigs } = useSystemStore(); const { ConfirmModal, openConfirm } = useConfirm({ type: 'delete', @@ -109,69 +111,73 @@ const FolderSlideCard = ({ )} - + {feConfigs?.isPlus && ( + <> + - - {t('support.permission.Permission')} + + {t('support.permission.Permission')} - {managePer.permission.hasManagePer && ( - - - {t('permission.Default permission')} + {managePer.permission.hasManagePer && ( + + + {t('permission.Default permission')} + + + + )} + + + {({ MemberListCard, onOpenManageModal, onOpenAddMember }) => { + return ( + <> + + + {t('permission.Collaborator')} + + {managePer.permission.hasManagePer && ( + + + + + + + + + )} + + + + ); + }} + - - )} - - - {({ MemberListCard, onOpenManageModal, onOpenAddMember }) => { - return ( - <> - - - {t('permission.Collaborator')} - - {managePer.permission.hasManagePer && ( - - - - - - - - - )} - - - - ); - }} - - - + + )} diff --git a/projects/app/src/components/support/permission/MemberManager/AddMemberModal.tsx b/projects/app/src/components/support/permission/MemberManager/AddMemberModal.tsx index 09c5770bf749..a2c77ed4e48c 100644 --- a/projects/app/src/components/support/permission/MemberManager/AddMemberModal.tsx +++ b/projects/app/src/components/support/permission/MemberManager/AddMemberModal.tsx @@ -19,13 +19,12 @@ import { useMemo, useState } from 'react'; import PermissionSelect from './PermissionSelect'; import PermissionTags from './PermissionTags'; import { CollaboratorContext } from './context'; -import { useQuery } from '@tanstack/react-query'; import { useUserStore } from '@/web/support/user/useUserStore'; import { getTeamMembers } from '@/web/support/user/team/api'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { ChevronDownIcon } from '@chakra-ui/icons'; import Avatar from '@/components/Avatar'; -import { useRequest } from '@fastgpt/web/hooks/useRequest'; +import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; export type AddModalPropsType = { @@ -39,15 +38,17 @@ function AddMemberModal({ onClose }: AddModalPropsType) { const { permissionList, collaboratorList, onUpdateCollaborators, getPerLabelList } = useContextSelector(CollaboratorContext, (v) => v); const [searchText, setSearchText] = useState(''); - const { - data: members = [], - refetch: refetchMembers, - isLoading: loadingMembers - } = useQuery(['getMembers', userInfo?.team?.teamId], async () => { - if (!userInfo?.team?.teamId) return []; - const members = await getTeamMembers(); - return members; - }); + const { data: members = [], loading: loadingMembers } = useRequest2( + async () => { + if (!userInfo?.team?.teamId) return []; + const members = await getTeamMembers(); + return members; + }, + { + manual: false, + refreshDeps: [userInfo?.team?.teamId] + } + ); const filterMembers = useMemo(() => { return members.filter((item) => { // if (item.permission.isOwner) return false; diff --git a/projects/app/src/components/support/permission/MemberManager/context.tsx b/projects/app/src/components/support/permission/MemberManager/context.tsx index 3198350a5b29..98ada0d3f0b1 100644 --- a/projects/app/src/components/support/permission/MemberManager/context.tsx +++ b/projects/app/src/components/support/permission/MemberManager/context.tsx @@ -6,13 +6,13 @@ import { import { PermissionList } from '@fastgpt/global/support/permission/constant'; import { Permission } from '@fastgpt/global/support/permission/controller'; import { PermissionListType, PermissionValueType } from '@fastgpt/global/support/permission/type'; -import { useQuery } from '@tanstack/react-query'; import { ReactNode, useCallback } from 'react'; import { createContext } from 'use-context-selector'; import dynamic from 'next/dynamic'; import MemberListCard, { MemberListCardProps } from './MemberListCard'; import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useSystemStore } from '@/web/common/system/useSystemStore'; const AddMemberModal = dynamic(() => import('./AddMemberModal')); const ManageModal = dynamic(() => import('./ManageModal')); @@ -71,14 +71,24 @@ const CollaboratorContextProvider = ({ }: MemberManagerInputPropsType & { children: (props: ChildrenProps) => ReactNode; }) => { + const { feConfigs } = useSystemStore(); + const { data: collaboratorList = [], runAsync: refetchCollaboratorList, loading: isFetchingCollaborator - } = useRequest2(onGetCollaboratorList, { - manual: false, - refreshDeps - }); + } = useRequest2( + async () => { + if (feConfigs.isPlus) { + return onGetCollaboratorList(); + } + return []; + }, + { + manual: false, + refreshDeps + } + ); const onUpdateCollaboratorsThen = async (props: UpdateClbPermissionProps) => { await onUpdateCollaborators(props); diff --git a/projects/app/src/pages/dataset/list/component/List.tsx b/projects/app/src/pages/dataset/list/component/List.tsx index 27d916a94ab3..f0f34e9749c3 100644 --- a/projects/app/src/pages/dataset/list/component/List.tsx +++ b/projects/app/src/pages/dataset/list/component/List.tsx @@ -245,7 +245,6 @@ function List() { }} > setMoveDataId(dataset._id) }, - { - icon: 'export', - label: t('Export'), - onClick: () => { - exportDataset(dataset); - } - }, + ...(dataset.permission.hasManagePer ? [ { @@ -297,6 +290,17 @@ function List() { : []) ] }, + { + children: [ + { + icon: 'export', + label: t('Export'), + onClick: () => { + exportDataset(dataset); + } + } + ] + }, ...(dataset.permission.hasManagePer ? [ {