Merge branch 'v2-dev' into codex_i18n

This commit is contained in:
xiaojunnuo
2026-05-01 00:07:29 +08:00
52 changed files with 795 additions and 84 deletions
+12
View File
@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.39.12](https://github.com/certd/certd/compare/v1.39.11...v1.39.12) (2026-04-29)
### Bug Fixes
* 调整手机版首页标题被挤开的bug ([eab66e2](https://github.com/certd/certd/commit/eab66e2d1988635985745f2d1b227b958969ee00))
### Performance Improvements
* 524错误时重试3次 ([00e6d58](https://github.com/certd/certd/commit/00e6d580c2f54af70fe96a214aff87c4b96426c2))
* 增加权威NS检查开关,某些用户服务器禁止向黑名单NS服务器发请求 ([1aa50cf](https://github.com/certd/certd/commit/1aa50cf53a0deab752f35ec973912e41ab8161b6))
* 支持页脚自定义 ([c985a13](https://github.com/certd/certd/commit/c985a13544aa31b0eb0783f9a3193a7e8bdc6ed6))
## [1.39.11](https://github.com/certd/certd/compare/v1.39.10...v1.39.11) (2026-04-26)
### Bug Fixes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@certd/ui-client",
"version": "1.39.11",
"version": "1.39.12",
"private": true,
"scripts": {
"dev": "vite --open",
@@ -106,8 +106,8 @@
"zod-defaults": "^0.1.3"
},
"devDependencies": {
"@certd/lib-iframe": "^1.39.11",
"@certd/pipeline": "^1.39.11",
"@certd/lib-iframe": "^1.39.12",
"@certd/pipeline": "^1.39.12",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@@ -3,7 +3,7 @@
<div class="flex items-center">
<span v-if="!settingStore.isComm">
<span>Powered by</span>
<a> handsfree.work </a>
<a href="https://certd.docmirror.cn/" target="_blank"> handfree.work </a>
<a-divider type="vertical" />
</span>
@@ -21,7 +21,12 @@
<span v-if="sysPublic.mpsNo">
<a href="http://www.beian.gov.cn/portal/registerSystemInfo" target="_blank">{{ sysPublic.mpsNo }}</a>
<a-divider type="vertical" />
</span>
<template v-if="sysPublic.customFooter && settingStore.isPlus">
<div v-html="sysPublic.customFooter"></div>
</template>
</div>
<div class="ml-5">v{{ version }}</div>
</div>
@@ -75,7 +75,7 @@
<div>
<span v-if="!settingStore.isComm">
<span>Powered by</span>
<a> handfree.work </a>
<a href="https://certd.docmirror.cn/" target="_blank"> handfree.work </a>
</span>
<template v-if="siteInfo.licenseTo">
@@ -45,6 +45,7 @@ export type SysPublicSetting = {
managerOtherUserPipeline?: boolean;
icpNo?: string;
mpsNo?: string;
customFooter?: string;
robots?: boolean;
aiChatEnabled?: boolean;
@@ -21,6 +21,7 @@ import { LayoutFooter } from "./footer";
import { LayoutHeader } from "./header";
import { LayoutExtraMenu, LayoutMenu, LayoutMixedMenu, useExtraMenu, useMixedMenu } from "./menu";
import { LayoutTabbar } from "./tabbar";
import router from "/@/router";
defineOptions({ name: "BasicLayout" });
@@ -160,7 +161,7 @@ const headerSlots = computed(() => {
>
<!-- logo -->
<template #logo>
<VbenLogo v-if="preferences.logo.enable" :class="logoClass" :collapsed="logoCollapsed" :src="preferences.logo.source" :text="preferences.app.name" :theme="showHeaderNav ? headerTheme : theme" />
<VbenLogo v-if="preferences.logo.enable" class="pointer" :class="logoClass" :collapsed="logoCollapsed" :src="preferences.logo.source" :text="preferences.app.name" :theme="showHeaderNav ? headerTheme : theme" />
</template>
<!-- 头部区域 -->
<template #header>
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { VbenAvatar } from "../avatar";
import { useRouter } from "vue-router";
interface Props {
/**
* @zh_CN 是否收起文本
@@ -39,10 +39,15 @@ withDefaults(defineProps<Props>(), {
src: "",
theme: "light",
});
const router = useRouter();
function handleLogoClick() {
router.push({ path: "/" });
}
</script>
<template>
<div :class="theme" class="flex h-full items-center text-lg">
<div :class="theme" class="flex h-full items-center text-lg pointer" @click="handleLogoClick">
<a :class="$attrs.class" :href="href" class="flex h-full items-center gap-2 overflow-hidden px-3 text-lg leading-normal transition-all duration-500">
<VbenAvatar v-if="src" :alt="text" :src="src" class="relative w-8 rounded-none bg-transparent" />
<span v-if="!collapsed" class="text-foreground truncate text-nowrap font-semibold">
@@ -935,7 +935,7 @@ export default defineComponent({
};
const historyCancel = () => {
changeCurrentHistory();
// changeCurrentHistory();
console.log("currentPipeline", pipeline);
};
@@ -22,7 +22,7 @@
</div>
</nav>
<section class="hero-section">
<section class="hero-section bg-[#f7f7fc] dark:bg-[#000000]">
<div class="hero-container">
<div class="hero-content">
<h1 class="hero-title flex flex-col md:flex-row">
@@ -45,7 +45,6 @@
</div>
</div>
</section>
<section id="features" class="features-section">
<div class="container">
<div class="section-header">
@@ -21,10 +21,16 @@
</a-form-item>
<a-form-item :label="t('certd.sys.setting.notice')" :name="['public', 'notice']">
<a-textarea v-model:value="formState.public.notice" :placeholder="t('certd.sys.setting.noticePlaceholder')" :rows="5" />
<a-textarea v-model:value="formState.public.notice" :placeholder="t('certd.sys.setting.noticePlaceholder')" :rows="3" />
<div class="helper" v-html="t('certd.sys.setting.noticeHelper')"></div>
</a-form-item>
<a-form-item :label="t('certd.sys.setting.customFooter')" :name="['public', 'customFooter']">
<a-textarea v-model:value="formState.public.customFooter" :disabled="!settingsStore.isPlus" :placeholder="t('certd.sys.setting.customFooterPlaceholder')" :rows="3" />
<div class="helper" v-html="t('certd.sys.setting.customFooterHelper')"></div>
<vip-button class="ml-5 justify-start" mode="button"></vip-button>
</a-form-item>
<a-form-item :label="t('certd.sys.setting.bindUrl')">
<a-button class="ml-2" type="primary" @click="settingsStore.openBindUrlModal({ closable: true })">{{ t("certd.sys.setting.bindUrl") }}</a-button>
<div class="helper" v-html="t('certd.sys.setting.bindUrlHelper')"></div>