diff --git a/src/adaptors/api/hexo/useHexoApi.ts b/src/adaptors/api/hexo/useHexoApi.ts index e1c47eec..e28622d0 100644 --- a/src/adaptors/api/hexo/useHexoApi.ts +++ b/src/adaptors/api/hexo/useHexoApi.ts @@ -83,6 +83,7 @@ const useHexoApi = async (key: string, newCfg?: HexoConfig) => { cfg.categoryType = CategoryTypeEnum.CategoryType_Multi // 知识空间 cfg.knowledgeSpaceEnabled = true + cfg.knowledgeSpaceTitle = "发布目录" cfg.allowKnowledgeSpaceChange = false cfg.placeholder.knowledgeSpaceReadonlyModeTip = "Hexo 平台暂不支持修改发布目录,如需修改,请删除之后重新发布" cfg.knowledgeSpaceType = CategoryTypeEnum.CategoryType_Tree_Single diff --git a/src/components/set/publish/singleplatform/base/CommonBlogSetting.vue b/src/components/set/publish/singleplatform/base/CommonBlogSetting.vue index 7c118510..45b6d9e1 100644 --- a/src/components/set/publish/singleplatform/base/CommonBlogSetting.vue +++ b/src/components/set/publish/singleplatform/base/CommonBlogSetting.vue @@ -28,7 +28,7 @@ import { createAppLogger } from "~/src/utils/appLogger.ts" import { AppInstance } from "~/src/appInstance.ts" import { useVueI18n } from "~/src/composables/useVueI18n.ts" import { useSettingStore } from "~/src/stores/useSettingStore.ts" -import { onMounted, reactive, ref, toRaw } from "vue" +import { computed, onMounted, reactive, ref, toRaw, triggerRef, watch } from "vue" import { DynamicConfig, DynamicJsonCfg, getDynCfgByKey, setDynamicJsonCfg } from "~/src/platforms/dynamicConfig.ts" import { SypConfig } from "~/syp.config.ts" import { CommonBlogConfig } from "~/src/adaptors/api/base/commonBlogConfig.ts" @@ -69,26 +69,12 @@ const handleHomeChange = (value: string | number): void => { } } -// methods -const getSettingTips = (bid?: string) => { - const apiTypeInfo = t("setting.blog.platform.support.common") + props.apiType + " " - let blogName = formData.cfg.blogName - const blogid = bid ?? formData.cfg.blogid - if (props.cfg?.enableKnowledgeSpace) { - const kwSpace = formData.kwSpaces.find((item) => item.value === blogid) - blogName = kwSpace ? kwSpace.label : formData.cfg.blogName - // 更新名字 - formData.cfg.blogName = blogName - } - return apiTypeInfo + blogName -} - // datas const isLoading = ref(false) const formData = reactive({ cfg: {} as CommonBlogConfig, - settingTips: "", kwSpaces: [], + settingTips: "", dynCfg: {} as DynamicConfig, setting: {} as typeof SypConfig, @@ -98,6 +84,33 @@ const formData = reactive({ isInit: false, }) +// watch +watch( + () => formData.cfg.blogid, + (newBlogId, oldBlogId) => { + if (newBlogId !== oldBlogId) { + // 只在实际数据变化时执行逻辑 + forceWatchBlogId(newBlogId) + logger.debug("Watch logic triggered:", newBlogId) + } + }, + { immediate: true } +) + +const forceWatchBlogId = (newBlogId: string) => { + const apiTypeInfo = t("setting.blog.platform.support.common") + props.apiType + " " + let blogName = formData.cfg.blogName + + if (props.cfg?.knowledgeSpaceEnabled) { + const kwSpace = formData.kwSpaces.find((item) => item.value === newBlogId) + console.log(kwSpace) + blogName = kwSpace ? kwSpace.label : formData.cfg.blogid ?? formData.cfg.blogName + formData.cfg.blogName = blogName + } + + formData.settingTips = apiTypeInfo + blogName +} + // methods const valiConf = async () => { isLoading.value = true @@ -126,9 +139,6 @@ const valiConf = async () => { const userBlog = usersBlogs[0] formData.cfg.blogid = userBlog.blogid formData.cfg.blogName = userBlog.blogName - - // 初始化顶部提示 - formData.settingTips = getSettingTips() } formData.cfg.apiStatus = true @@ -176,10 +186,6 @@ const saveConf = async (hideTip?: any) => { } } -const handleKeSpaceChange = (val: any) => { - formData.settingTips = getSettingTips(val) -} - // init methods const initKwSpaces = async () => { try { @@ -195,6 +201,9 @@ const initKwSpaces = async () => { } formData.kwSpaces.push(kwItem) }) + + forceWatchBlogId(formData.cfg.blogid) + logger.debug("已强制刷新") } } catch (e) { // ElMessage.error(t("main.opt.failure") + "=>" + e) @@ -221,10 +230,9 @@ const initConf = async () => { formData.cfg = conf // 初始化知识空间 - if (props.cfg?.enableKnowledgeSpace) { + if (props.cfg?.knowledgeSpaceEnabled) { await initKwSpaces() } - formData.settingTips = getSettingTips() } else { ElMessage.error("Read init config error, your config may not work") } @@ -244,9 +252,9 @@ onMounted(async () => { @@ -331,13 +339,12 @@ onMounted(async () => { - + diff --git a/src/components/set/publish/singleplatform/base/impl/CommonGithubSetting.vue b/src/components/set/publish/singleplatform/base/impl/CommonGithubSetting.vue index ef0aaffd..d339d548 100644 --- a/src/components/set/publish/singleplatform/base/impl/CommonGithubSetting.vue +++ b/src/components/set/publish/singleplatform/base/impl/CommonGithubSetting.vue @@ -26,7 +26,10 @@