From a0a6b1e87dfbc363297bc949e087da1d16d8a549 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Fri, 29 Aug 2025 15:41:07 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9OCard=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=8F=98=E9=87=8F=E6=98=A0=E5=B0=84=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=9B=BE=E6=96=87=E5=8D=A1=E7=89=87=E5=86=85=E8=BE=B9?= =?UTF-8?q?=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/opendesign/src/card/OCard.vue | 7 ++++- packages/opendesign/src/card/style/index.scss | 2 +- packages/opendesign/src/card/style/media.scss | 29 ++++++++++++++----- packages/opendesign/src/card/style/var.scss | 8 ++++- 4 files changed, 35 insertions(+), 11 deletions(-) diff --git a/packages/opendesign/src/card/OCard.vue b/packages/opendesign/src/card/OCard.vue index bbfcf4ff..95ab9390 100644 --- a/packages/opendesign/src/card/OCard.vue +++ b/packages/opendesign/src/card/OCard.vue @@ -29,6 +29,10 @@ const isTitleLimited = computed(() => { const isDetailLimited = computed(() => { return !isUndefined(props.detailMaxRow); }); + +const hasCover = computed(() => { + return Boolean(slots.cover || props.cover); +}); @@ -45,78 +45,75 @@ const docConfig = inject('docs-config'); background-color: var(--o-color-fill2); position: relative; - .lang-mark, .operation-block { position: absolute; z-index: 2; color: var(--o-color-info3); - } - .lang-mark { - top: var(--o3-gap-3); - right: var(--o3-gap-4); - } - .operation-block { - display: none; top: var(--o3-gap-2); right: var(--o3-gap-4); - :deep(.o-btn) { + display: flex; + align-items: center; + .operation-btn { --btn-height: var(--o3-icon_size-l); - --btn-icon-size: var(--o3-icon_size-m); - & + .o-btn { - margin-left: var(--o3-gap-2); - } - } - } - - &:hover { - .lang-mark { - display: none; - } - .operation-block { - display: block; + --btn-icon-size: calc(var(--btn-height) - 8px); + background-color: var(--o-color-fill2); + margin-right: var(--o3-gap-2); } } :deep(pre) { padding: var(--o3-gap-3) var(--o3-gap-5); margin: 0; - width: max-content; + } +} +@media (hover: hover) { + .operation-btn { + display: none; + } + .code-container:hover { + .operation-btn { + display: inline-flex; + } + .lang-mark { + display: none; + } } } .code-container-scroller { max-height: 70vh; } -:deep(pre[data-linenumber-start]) { - position: relative; - padding-left: calc(2em + var(--o3-gap-4)); - white-space: pre-wrap; - width: auto; - counter-reset: line-number var(--linenumber-start, 1); - &::before { - content: ''; - position: absolute; - top: 0; - bottom: 0; - left: calc(2em + var(--o3-gap-4) - 4px); - width: 1px; - background-color: var(--o-color-control1); - } - .line { - counter-increment: line-number; - &:first-child { - counter-increment: none; - } +@include respond-to('>pad_v') { + :deep(pre[data-linenumber-start]) { + position: relative; + padding-left: calc(2em + var(--o3-gap-4)); + white-space: pre-wrap; + counter-reset: line-number var(--linenumber-start, 1); &::before { - content: counter(line-number); + content: ''; position: absolute; - left: 2em; - color: var(--o-color-info2); - transform: translateX(-100%); - user-select: none; - white-space: nowrap; + top: 0; + bottom: 0; + left: calc(2em + var(--o3-gap-4) - 4px); + width: 1px; + background-color: var(--o-color-control1); } - &:last-child::before { - content: none; + .line { + counter-increment: line-number; + &:first-child { + counter-increment: none; + } + &::before { + content: counter(line-number); + position: absolute; + left: 2em; + color: var(--o-color-info2); + transform: translate(-100%); + user-select: none; + white-space: nowrap; + } + &:last-child::before { + content: none; + } } } } -- Gitee From bf7639010ac34c1e57d9296eafcb1748b96221e3 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Mon, 1 Sep 2025 17:49:09 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix(doc):=20=E8=A7=A3=E5=86=B3index.md?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E5=BC=95=E8=B5=B7=E7=9B=B8=E5=90=8Cdemo?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=AF=BC=E8=87=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/plugins/injectDemoAndApi.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/docs/plugins/injectDemoAndApi.ts b/packages/docs/plugins/injectDemoAndApi.ts index 97fdd90a..d122393b 100644 --- a/packages/docs/plugins/injectDemoAndApi.ts +++ b/packages/docs/plugins/injectDemoAndApi.ts @@ -127,6 +127,8 @@ const transformMdEntry = async ( path: string; }[] = []; const lang = getLangByFileName(id); + // 避免引入同一个文件出现同名符号 + let importedId = 0; // 将 注释替换成 // 将 注释替换成 let newCode = await asyncReplace(code, //gi, async (match) => { @@ -144,24 +146,26 @@ const transformMdEntry = async ( } const demoFile = join(dirname(id), ...dirs, `./__case__/${fileName}.vue`); if (await fsp.stat(demoFile).catch(() => false)) { + importedId++; + const importedName = `AutoInject${fileName}${importedId}`; if (directive === 'case') { imported.push({ - default: `AutoInject${fileName}`, + default: importedName, path: demoFile, }); - return ``; + return ``; } else { // 此处只导入 usage 指令指定的 vue 模块。该 vue 模块的还需在 transformVueDemo 函数中转换 imported.push({ path: demoFile, - default: `AutoInject${fileName}`, + default: importedName, }); const usageFileId = demoFile.replace(/\\/g, '/'); if (mode === 'dev' && viteDevServer) { viteDevServer.watcher.emit('change', usageFileId); } usageFiles.set(usageFileId, activeThemes); - return ``; + return `<${importedName} />`; } } return match[0]; -- Gitee From efcc574510e1afa0ed4ab9278ee86c21b32878ff Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Mon, 1 Sep 2025 17:50:03 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix(doc):=20=E8=A7=A3=E5=86=B3=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2=E4=B8=BB=E9=A2=98=E5=90=8Etoken=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=94=B9=E5=8F=98=E5=AF=BC=E8=87=B4header=E5=A4=B1=E5=8E=BB?= =?UTF-8?q?=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/src/components/TheHeader.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/src/components/TheHeader.vue b/packages/docs/src/components/TheHeader.vue index d150590a..12e7ca88 100644 --- a/packages/docs/src/components/TheHeader.vue +++ b/packages/docs/src/components/TheHeader.vue @@ -99,7 +99,7 @@ watch(locale, (newLocale, oldLocale) => { padding: 0 calc((100vw - var(--grid-full)) / 2); font-size: var(--o3-font_size-h3); line-height: var(--o3-line_height-h3); - background-color: rgba(var(--o-mixedgray-1), 0.9); + background-color: rgba(var(--o-mixedgray-1, var(--o-gray-1)), 0.9); box-shadow: var(--o-shadow-1); backdrop-filter: blur(5px); } -- Gitee From 30808e5e495ea737ce29deea40c9f227501657b8 Mon Sep 17 00:00:00 2001 From: sakurayinfei <970412446@qq.com> Date: Mon, 1 Sep 2025 17:51:40 +0800 Subject: [PATCH 6/6] =?UTF-8?q?fix(doc):=20=E4=BC=98=E5=8C=96DocConfigProv?= =?UTF-8?q?ide=E7=BB=84=E4=BB=B6provide=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/src/components/DocConfigProvide.vue | 28 +++++++++++++++++-- packages/docs/src/utils/named.ts | 8 ++++++ packages/docs/src/utils/theme.ts | 9 ------ 3 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 packages/docs/src/utils/named.ts delete mode 100644 packages/docs/src/utils/theme.ts diff --git a/packages/docs/src/components/DocConfigProvide.vue b/packages/docs/src/components/DocConfigProvide.vue index 816287a2..6e202e4c 100644 --- a/packages/docs/src/components/DocConfigProvide.vue +++ b/packages/docs/src/components/DocConfigProvide.vue @@ -1,8 +1,32 @@ diff --git a/packages/docs/src/utils/named.ts b/packages/docs/src/utils/named.ts new file mode 100644 index 00000000..54e82ff0 --- /dev/null +++ b/packages/docs/src/utils/named.ts @@ -0,0 +1,8 @@ +const hyphenateRE = /\B([A-Z])/g; +export function hyphenate(str: string) { + return str.replace(hyphenateRE, '-$1').toLowerCase(); +} +const camelizeRE = /-(\w)/g; +export function camelize(str: string) { + return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : '')); +} diff --git a/packages/docs/src/utils/theme.ts b/packages/docs/src/utils/theme.ts deleted file mode 100644 index 994f7727..00000000 --- a/packages/docs/src/utils/theme.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ref, watchEffect } from 'vue'; -const THEME_KEY = '__theme__'; - -// 全局状态 -export const theme = ref(localStorage.getItem(THEME_KEY) || 'light'); -watchEffect(() => { - document.documentElement.dataset.oTheme = theme.value; - localStorage.setItem(THEME_KEY, theme.value); -}); -- Gitee