From 6f3cb20cd83b5bc35df897df808988118204de5d Mon Sep 17 00:00:00 2001 From: jingyang <72259332+zjy365@users.noreply.github.com> Date: Fri, 21 Feb 2025 11:15:48 +0800 Subject: [PATCH] fix: docs select style & cronjob bug, desktop guide bug (#5386) * fix: docs select style * fix: accumulate db cpu and memory * fix docs * fix cronjob * fix desktop --- .../src/pages/self-hosting/plan/index.tsx | 72 +++++++++++-------- .../desktop/src/components/task/useDriver.tsx | 6 +- .../providers/cronjob/src/utils/json2Yaml.ts | 1 + .../db/detail/components/AppBaseInfo.tsx | 2 +- .../src/pages/dbs/components/dbList.tsx | 3 +- .../providers/dbprovider/src/utils/adapt.ts | 38 +++++++--- 6 files changed, 80 insertions(+), 42 deletions(-) diff --git a/docs/website/src/pages/self-hosting/plan/index.tsx b/docs/website/src/pages/self-hosting/plan/index.tsx index 137971cf465..6fbc995de77 100644 --- a/docs/website/src/pages/self-hosting/plan/index.tsx +++ b/docs/website/src/pages/self-hosting/plan/index.tsx @@ -34,6 +34,7 @@ export default function Plan() { const [months, setMonths] = useState('3'); const [cpu, setCpu] = useState(8); const [memory, setMemory] = useState(16); + const [isOpen, setIsOpen] = useState(false); const price = useMemo(() => { return calculatePrice({ cpu, memory, months }); @@ -295,41 +296,56 @@ export default function Plan() {
月数
- -
- - - + {MonthMapList.find((item) => item.value === months)?.label} +
+ + + +
+ {isOpen && ( +
+ {MonthMapList.map((item) => ( +
{ + setMonths(item.value); + setIsOpen(false); + }} + > + {item.label} +
+ ))} +
+ )}
diff --git a/frontend/desktop/src/components/task/useDriver.tsx b/frontend/desktop/src/components/task/useDriver.tsx index b1896717941..1a1ddbca9a9 100644 --- a/frontend/desktop/src/components/task/useDriver.tsx +++ b/frontend/desktop/src/components/task/useDriver.tsx @@ -1,6 +1,7 @@ import { checkUserTask, getUserTasks, updateTask } from '@/api/platform'; import { AppStoreIcon, DBproviderIcon, DriverStarIcon, LaunchpadIcon } from '@/components/icons'; import useAppStore from '@/stores/app'; +import useCallbackStore from '@/stores/callback'; import { useConfigStore } from '@/stores/config'; import { useDesktopConfigStore } from '@/stores/desktopConfig'; import { UserTask } from '@/types/task'; @@ -22,6 +23,7 @@ export default function useDriver() { const { taskComponentState, setTaskComponentState } = useDesktopConfigStore(); const { canShowGuide } = useDesktopConfigStore(); const { installedApps } = useAppStore(); + const { workspaceInviteCode } = useCallbackStore(); useEffect(() => { const fetchUserTasks = async () => { @@ -51,13 +53,13 @@ export default function useDriver() { } }; - if (isPC && conf?.guideEnabled && canShowGuide) { + if (isPC && conf?.guideEnabled && canShowGuide && !workspaceInviteCode) { handleUserGuide(); } else { setDesktopGuide(false); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, [conf?.guideEnabled, isPC, canShowGuide]); + }, [conf?.guideEnabled, isPC, canShowGuide, workspaceInviteCode]); const completeGuide = async () => { try { diff --git a/frontend/providers/cronjob/src/utils/json2Yaml.ts b/frontend/providers/cronjob/src/utils/json2Yaml.ts index 5191bc741a4..a8d085c3172 100644 --- a/frontend/providers/cronjob/src/utils/json2Yaml.ts +++ b/frontend/providers/cronjob/src/utils/json2Yaml.ts @@ -33,6 +33,7 @@ export const json2CronJob = (data: CronJobEditType) => { if (data.jobType === 'url') { data.imageName = 'curlimages/curl'; data.cmdParam = `["/bin/sh", "-c", "curl ${data.url}"]`; + data.runCMD = ''; } if (data.jobType === 'launchpad') { diff --git a/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx b/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx index d62d61936b8..15e87783890 100644 --- a/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx +++ b/frontend/providers/dbprovider/src/pages/db/detail/components/AppBaseInfo.tsx @@ -139,7 +139,7 @@ const AppBaseInfo = ({ db = defaultDBDetail }: { db: DBDetailType }) => { const externalNetWork = useMemo(() => { const host = `${SystemEnv?.domain}`; const port = service?.spec?.ports?.[0]?.nodePort?.toString() || ''; - let connection = `${DBTypeSecretMap[db.dbType].connectKey}://${secret?.username}:${ + let connection = `${DBTypeSecretMap[db.dbType]?.connectKey}://${secret?.username}:${ secret?.password }@${host}:${port}`; diff --git a/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx b/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx index 5c9128ef9c3..a7033b2c71a 100644 --- a/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx +++ b/frontend/providers/dbprovider/src/pages/dbs/components/dbList.tsx @@ -170,7 +170,8 @@ const DBList = ({ }, { accessorKey: 'storage', - header: () => t('storage') + header: () => t('storage'), + cell: ({ row }) => <>{row.original.storage}Gi }, { id: 'actions', diff --git a/frontend/providers/dbprovider/src/utils/adapt.ts b/frontend/providers/dbprovider/src/utils/adapt.ts index 5a5e5397f62..eaaf3417f87 100644 --- a/frontend/providers/dbprovider/src/utils/adapt.ts +++ b/frontend/providers/dbprovider/src/utils/adapt.ts @@ -62,6 +62,17 @@ export const getDBSource = ( }; export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => { + let cpu = 0; + let memory = 0; + let storage = 0; + db.spec?.componentSpecs.forEach((comp) => { + cpu += cpuFormatToM(comp?.resources?.limits?.cpu || '0'); + memory += memoryFormatToMi(comp?.resources?.limits?.memory || '0'); + storage += storageFormatToNum( + comp?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage || '0' + ); + }); + // compute store amount return { id: db.metadata?.uid || ``, @@ -72,11 +83,9 @@ export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => { ? dbStatusMap[db?.status?.phase] : dbStatusMap.UnKnow, createTime: dayjs(db.metadata?.creationTimestamp).format('YYYY/MM/DD HH:mm'), - cpu: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources?.limits?.cpu), - memory: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources?.limits?.memory), - storage: - db.spec?.componentSpecs?.[0]?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage || - '-', + cpu, + memory, + storage: storage.toString() || '-', conditions: db?.status?.conditions || [], isDiskSpaceOverflow: false, labels: db.metadata.labels || {}, @@ -85,6 +94,17 @@ export const adaptDBListItem = (db: KbPgClusterType): DBListItemType => { }; export const adaptDBDetail = (db: KbPgClusterType): DBDetailType => { + let cpu = 0; + let memory = 0; + let storage = 0; + db.spec?.componentSpecs.forEach((comp) => { + cpu += cpuFormatToM(comp?.resources?.limits?.cpu || '0'); + memory += memoryFormatToMi(comp?.resources?.limits?.memory || '0'); + storage += storageFormatToNum( + comp?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage || '0' + ); + }); + return { id: db.metadata?.uid || ``, createTime: dayjs(db.metadata?.creationTimestamp).format('YYYY/MM/DD HH:mm'), @@ -96,11 +116,9 @@ export const adaptDBDetail = (db: KbPgClusterType): DBDetailType => { dbVersion: db?.metadata?.labels['clusterversion.kubeblocks.io/name'] || '', dbName: db.metadata?.name || 'db name', replicas: db.spec?.componentSpecs?.[0]?.replicas || 1, - cpu: cpuFormatToM(db.spec?.componentSpecs?.[0]?.resources.limits.cpu), - memory: memoryFormatToMi(db.spec?.componentSpecs?.[0]?.resources.limits.memory), - storage: storageFormatToNum( - db.spec?.componentSpecs?.[0]?.volumeClaimTemplates?.[0]?.spec?.resources?.requests?.storage - ), + cpu, + memory, + storage, conditions: db?.status?.conditions || [], isDiskSpaceOverflow: false, labels: db.metadata.labels || {},