From 2b952b6104615588b946647d68aff1b318612218 Mon Sep 17 00:00:00 2001 From: Bang <15622356989@163.com> Date: Fri, 24 Feb 2023 17:09:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Ebreadcrumb?= =?UTF-8?q?=E9=9D=A2=E5=8C=85=E5=B1=91=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/docs/breadcrumb.md | 15 ++++++ .../src/components/breadcrumb/OBreadcrumb.vue | 21 ++++++++ .../components/breadcrumb/OBreadcrumbItem.vue | 41 +++++++++++++++ .../breadcrumb/__demo__/BreadcrumbBasic.vue | 18 +++++++ .../__demo__/BreadcrumbSeparator.vue | 47 +++++++++++++++++ .../breadcrumb/__demo__/IndexBreadcrumb.vue | 12 +++++ .../src/components/breadcrumb/index.ts | 20 ++++++++ .../src/components/breadcrumb/provide.ts | 7 +++ .../components/breadcrumb/style/index.scss | 37 ++++++++++++++ .../src/components/breadcrumb/style/index.ts | 2 + .../src/components/breadcrumb/style/var.scss | 9 ++++ .../src/components/breadcrumb/types.ts | 51 +++++++++++++++++++ packages/portal/src/router.ts | 6 +++ 13 files changed, 286 insertions(+) create mode 100644 packages/docs/breadcrumb.md create mode 100644 packages/opendesign/src/components/breadcrumb/OBreadcrumb.vue create mode 100644 packages/opendesign/src/components/breadcrumb/OBreadcrumbItem.vue create mode 100644 packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbBasic.vue create mode 100644 packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbSeparator.vue create mode 100644 packages/opendesign/src/components/breadcrumb/__demo__/IndexBreadcrumb.vue create mode 100644 packages/opendesign/src/components/breadcrumb/index.ts create mode 100644 packages/opendesign/src/components/breadcrumb/provide.ts create mode 100644 packages/opendesign/src/components/breadcrumb/style/index.scss create mode 100644 packages/opendesign/src/components/breadcrumb/style/index.ts create mode 100644 packages/opendesign/src/components/breadcrumb/style/var.scss create mode 100644 packages/opendesign/src/components/breadcrumb/types.ts diff --git a/packages/docs/breadcrumb.md b/packages/docs/breadcrumb.md new file mode 100644 index 00000000..aaa575a3 --- /dev/null +++ b/packages/docs/breadcrumb.md @@ -0,0 +1,15 @@ +# Breadcrumb 面包屑 + +| name | type | 默认值 | 说明 | +| :-------- | :--------------- | :----- | ---------------- | +| separator | string \| number | - | 可选,分隔符字符 | + +# BreadcrumbItem + +| name | type | 默认值 | 说明 | +| :-------- | :--------------------------------------------- | :------- | ---------------------------------------- | +| href | string | - | 可选,链接跳转地址 | +| target | '\_blank' \| '\_parent' \| '\_self' \| '\_top' | '\_self' | 可选,链接跳转方式 | +| to | string \| obeject | - | 可选,路由跳转对象,同 vue-router | +| replace | boolean | false | 可选,路由跳转时,是否覆盖浏览器历史记录 | +| separator | string \| number | - | 可选,分隔符字符 | diff --git a/packages/opendesign/src/components/breadcrumb/OBreadcrumb.vue b/packages/opendesign/src/components/breadcrumb/OBreadcrumb.vue new file mode 100644 index 00000000..844d4cb3 --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/OBreadcrumb.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/opendesign/src/components/breadcrumb/OBreadcrumbItem.vue b/packages/opendesign/src/components/breadcrumb/OBreadcrumbItem.vue new file mode 100644 index 00000000..a22f2432 --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/OBreadcrumbItem.vue @@ -0,0 +1,41 @@ + + + diff --git a/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbBasic.vue b/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbBasic.vue new file mode 100644 index 00000000..04452644 --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbBasic.vue @@ -0,0 +1,18 @@ + + + diff --git a/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbSeparator.vue b/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbSeparator.vue new file mode 100644 index 00000000..bbd3e03e --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/__demo__/BreadcrumbSeparator.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/packages/opendesign/src/components/breadcrumb/__demo__/IndexBreadcrumb.vue b/packages/opendesign/src/components/breadcrumb/__demo__/IndexBreadcrumb.vue new file mode 100644 index 00000000..5f1c96e7 --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/__demo__/IndexBreadcrumb.vue @@ -0,0 +1,12 @@ + + + diff --git a/packages/opendesign/src/components/breadcrumb/index.ts b/packages/opendesign/src/components/breadcrumb/index.ts new file mode 100644 index 00000000..d3cf4d9b --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/index.ts @@ -0,0 +1,20 @@ +import type { App } from 'vue'; + +import _OBreadcrumb from './OBreadcrumb.vue'; +import _OBreadcrumbItem from './OBreadcrumbItem.vue'; + +export * from './types'; + +const OBreadcrumb = Object.assign(_OBreadcrumb, { + install(app: App) { + app.component(_OBreadcrumb.name, _OBreadcrumb); + }, +}); + +const OBreadcrumbItem = Object.assign(_OBreadcrumbItem, { + install(app: App) { + app.component(_OBreadcrumbItem.name, _OBreadcrumbItem); + }, +}); + +export { OBreadcrumb, OBreadcrumbItem }; diff --git a/packages/opendesign/src/components/breadcrumb/provide.ts b/packages/opendesign/src/components/breadcrumb/provide.ts new file mode 100644 index 00000000..08f1678f --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/provide.ts @@ -0,0 +1,7 @@ +import { InjectionKey } from 'vue'; + +interface BreadcrumbInjectT { + separator: string | number; +} + +export const breadcrumbInjectKey: InjectionKey = Symbol('provide-breadcrumb'); diff --git a/packages/opendesign/src/components/breadcrumb/style/index.scss b/packages/opendesign/src/components/breadcrumb/style/index.scss new file mode 100644 index 00000000..e712d451 --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/style/index.scss @@ -0,0 +1,37 @@ +@use './var.scss'; + +.o-breadcrumb { + display: inline-flex; + align-items: center; + color: var(--breadcrumb-color); + font-size: var(--breadcrumb-text-size); + line-height: var(--breadcrumb-text-height); + a { + color: inherit; + text-decoration: none; + } +} + +.o-breadcrumb-item { + display: inline-flex; + align-items: center; + &:last-child { + color: var(--breadcrumb-color-active); + + .o-breadcrumb-item-label { + cursor: default; + } + + .o-breadcrumb-item-separator { + display: none; + } + } +} + +.o-breadcrumb-item-label { + cursor: pointer; +} + +.o-breadcrumb-item-separator { + margin: 0 var(--breadcrumb-gap); +} diff --git a/packages/opendesign/src/components/breadcrumb/style/index.ts b/packages/opendesign/src/components/breadcrumb/style/index.ts new file mode 100644 index 00000000..591b2fbd --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/style/index.ts @@ -0,0 +1,2 @@ +import '../../style'; +import './index.scss'; diff --git a/packages/opendesign/src/components/breadcrumb/style/var.scss b/packages/opendesign/src/components/breadcrumb/style/var.scss new file mode 100644 index 00000000..e70a036d --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/style/var.scss @@ -0,0 +1,9 @@ +.o-breadcrumb { + --breadcrumb-color: var(--o-color-text3); + --breadcrumb-color-active: var(--o-color-text1); + + --breadcrumb-gap: var(--o-gap-1); + + --breadcrumb-text-size: var(--o-font_size-text); + --breadcrumb-text-height: var(--o-line_height-text); +} diff --git a/packages/opendesign/src/components/breadcrumb/types.ts b/packages/opendesign/src/components/breadcrumb/types.ts new file mode 100644 index 00000000..f5eee09f --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/types.ts @@ -0,0 +1,51 @@ +import type { ExtractPropTypes, PropType } from 'vue'; + +export const breadcrumbProps = { + /** + * 分隔符字符 + */ + separator: { + type: [String, Number], + }, +}; + +export type TargetTypeT = '_blank' | '_self' | '_parent' | '_top'; + +export const breadcrumbItemProps = { + /** + * 链接跳转地址 + */ + href: { + type: String, + }, + /** + * 链接跳转方式 + */ + target: { + type: String as PropType, + default: '_self', + }, + /** + * 路由跳转对象 + */ + to: { + type: [String, Object] as PropType>, + }, + /** + * 路由跳转时,是否覆盖浏览器历史记录 + */ + replace: { + type: Boolean, + default: false, + }, + /** + * 分隔符字符 + */ + separator: { + type: [String, Number], + }, +}; + +export type BreadcrumbPropsT = ExtractPropTypes; + +export type BreadcrumbItemProps = ExtractPropTypes; diff --git a/packages/portal/src/router.ts b/packages/portal/src/router.ts index 4db0e099..e64b38e4 100644 --- a/packages/portal/src/router.ts +++ b/packages/portal/src/router.ts @@ -141,6 +141,12 @@ export const routes = [ label: '评分', component: () => import('@components/rate/__demo__/IndexRate.vue'), }, + { + path: '/breadcrumb', + name: 'Breadcrumb ', + label: '面包屑', + component: () => import('@components/breadcrumb/__demo__/IndexBreadcrumb.vue'), + }, ]; export const router = createRouter({ -- Gitee From cbccad2806cff670f19ddeed81dd1c3388d15933 Mon Sep 17 00:00:00 2001 From: Bang <15622356989@163.com> Date: Sat, 25 Feb 2023 09:46:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=E6=A0=B7=E5=BC=8F=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/badge/__demo__/BadgeBasic.vue | 6 ++-- .../components/badge/__demo__/BadgeColor.vue | 9 +++-- .../components/badge/__demo__/BadgeDot.vue | 2 +- .../components/badge/__demo__/BadgeOffset.vue | 6 ++-- .../components/badge/__demo__/BadgeSlot.vue | 2 +- .../src/components/badge/style/var.scss | 9 +++-- .../src/components/breadcrumb/style/var.scss | 4 +-- .../src/components/button/style/var.scss | 2 +- .../src/components/checkbox/OCheckbox.vue | 2 +- .../src/components/checkbox/style/index.scss | 33 ++++++++++--------- .../src/components/checkbox/style/var.scss | 16 ++++++--- .../src/components/divider/style/index.scss | 15 +++++---- .../src/components/divider/style/var.scss | 5 +-- .../src/components/radio/ORadio.vue | 2 +- .../src/components/radio/style/index.scss | 20 +++++------ .../src/components/radio/style/var.scss | 13 +++++--- .../src/components/rate/style/index.scss | 2 +- .../src/components/rate/style/var.scss | 6 ++-- .../src/components/switch/style/index.scss | 6 ++-- .../src/components/switch/style/var.scss | 10 +++--- .../src/components/tag/style/var.scss | 12 +++---- packages/portal/src/App.vue | 2 +- 22 files changed, 106 insertions(+), 78 deletions(-) diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue b/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue index 7d7da99d..48a38f4a 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue @@ -8,13 +8,13 @@ import { OBadge } from '../index';

基础用法

- + - + - +
diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeColor.vue b/packages/opendesign/src/components/badge/__demo__/BadgeColor.vue index f367ad5c..78ac6645 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeColor.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeColor.vue @@ -8,13 +8,16 @@ import { OBadge } from '../index';

基础用法

- + - + - + + + +
diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeDot.vue b/packages/opendesign/src/components/badge/__demo__/BadgeDot.vue index 3cd80fe2..78a23715 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeDot.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeDot.vue @@ -12,7 +12,7 @@ const link = 'www.openeuler.org';

红点徽章

- + 普通链接 diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeOffset.vue b/packages/opendesign/src/components/badge/__demo__/BadgeOffset.vue index c65059e8..472adc08 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeOffset.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeOffset.vue @@ -8,13 +8,13 @@ import { OBadge } from '../index';

徽章位置偏移

- + - + - +
diff --git a/packages/opendesign/src/components/badge/__demo__/BadgeSlot.vue b/packages/opendesign/src/components/badge/__demo__/BadgeSlot.vue index 9c84d405..9fd99674 100644 --- a/packages/opendesign/src/components/badge/__demo__/BadgeSlot.vue +++ b/packages/opendesign/src/components/badge/__demo__/BadgeSlot.vue @@ -9,7 +9,7 @@ import { OBadge } from '../index';

自定义徽章内容

- +
diff --git a/packages/opendesign/src/components/badge/style/var.scss b/packages/opendesign/src/components/badge/style/var.scss index ef9b2432..36566620 100644 --- a/packages/opendesign/src/components/badge/style/var.scss +++ b/packages/opendesign/src/components/badge/style/var.scss @@ -3,25 +3,30 @@ --badge-text-height: var(--o-line_height-tip1); --badge-border: var(--o-radius-l); - --badge-color: var(--o-color-text1-inverse); - --badge-bg: var(--o-color-danger1); + --badge-color: var(--o-color-info1); + + --badge-bg: var(--o-color-control1); --badge-padding: 20px; } .o-badge-primary { + --badge-color: var(--o-color-fill1); --badge-bg: var(--o-color-primary1); } .o-badge-success { + --badge-color: var(--o-color-fill1); --badge-bg: var(--o-color-success1); } .o-badge-warning { + --badge-color: var(--o-color-fill1); --badge-bg: var(--o-color-warning1); } .o-badge-danger { + --badge-color: var(--o-color-fill1); --badge-bg: var(--o-color-danger1); } diff --git a/packages/opendesign/src/components/breadcrumb/style/var.scss b/packages/opendesign/src/components/breadcrumb/style/var.scss index e70a036d..a0a014c6 100644 --- a/packages/opendesign/src/components/breadcrumb/style/var.scss +++ b/packages/opendesign/src/components/breadcrumb/style/var.scss @@ -1,6 +1,6 @@ .o-breadcrumb { - --breadcrumb-color: var(--o-color-text3); - --breadcrumb-color-active: var(--o-color-text1); + --breadcrumb-color: var(--o-color-info3); + --breadcrumb-color-active: var(--o-color-info1); --breadcrumb-gap: var(--o-gap-1); diff --git a/packages/opendesign/src/components/button/style/var.scss b/packages/opendesign/src/components/button/style/var.scss index dff05dfe..5ffb3c7a 100644 --- a/packages/opendesign/src/components/button/style/var.scss +++ b/packages/opendesign/src/components/button/style/var.scss @@ -1,4 +1,4 @@ -.o-btn-normal { +.o-btn { --btn-color: var(--o-color-info1); --btn-color-hover: var(--o-color-info1); --btn-color-active: var(--o-color-info1); diff --git a/packages/opendesign/src/components/checkbox/OCheckbox.vue b/packages/opendesign/src/components/checkbox/OCheckbox.vue index 5242f95e..43e64388 100644 --- a/packages/opendesign/src/components/checkbox/OCheckbox.vue +++ b/packages/opendesign/src/components/checkbox/OCheckbox.vue @@ -119,7 +119,7 @@ defineExpose({