diff --git a/packages/docs/breadcrumb.md b/packages/docs/breadcrumb.md new file mode 100644 index 0000000000000000000000000000000000000000..aaa575a3c8e2dff137bcb22a4a68b07723674454 --- /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/badge/__demo__/BadgeBasic.vue b/packages/opendesign/src/components/badge/__demo__/BadgeBasic.vue index 7d7da99d3399d2b10ab24222e2faa746bc605309..48a38f4a73c17234ca97812918fde32be6ee7224 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 f367ad5cf45b8a901a01ab39a1e7bfb7afd92f1f..78ac6645b92cd1f591d620a6d48225983d4ecb9e 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 3cd80fe2400efc62824b1caa199678c70205c597..78a23715ac5ab67635c515c499ac811e1a4da334 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 c65059e83da0fe1e3b5850329866602b665cc92d..472adc082677f8cedb8485b027a87c839f1b6b07 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 9c84d405e011dae64fa443248a96d424df0fba8a..9fd9967433d6583e195e826a198355e05944cfff 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 ef9b24328ceba3247b599cc739e7899cd7910945..36566620e11a05a75022e68185491e6107498cc4 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/OBreadcrumb.vue b/packages/opendesign/src/components/breadcrumb/OBreadcrumb.vue new file mode 100644 index 0000000000000000000000000000000000000000..844d4cb33785ac66095150b4ed1ad653882047d2 --- /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 0000000000000000000000000000000000000000..a22f2432ed2c783d9085b2da75bc7b018470849a --- /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 0000000000000000000000000000000000000000..044526444b232d5c0b439863d418cd9a8b5b2e20 --- /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 0000000000000000000000000000000000000000..bbd3e03e3ab3868568d2f63146c4a8cdd3ed6386 --- /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 0000000000000000000000000000000000000000..5f1c96e77aa2c40f7d67c5a1cb91bc8f5e736e86 --- /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 0000000000000000000000000000000000000000..d3cf4d9be6af1ad173aefc9c36ad75b5dc513e3b --- /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 0000000000000000000000000000000000000000..08f1678fc1245869170b9d0d18d536c7a140d125 --- /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 0000000000000000000000000000000000000000..e712d4512c9828a81c8ffe6615d58f89c5510e97 --- /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 0000000000000000000000000000000000000000..591b2fbd72dcd5e987362d645b561bd2fac42716 --- /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 0000000000000000000000000000000000000000..a0a014c6c775876661bb5d2820f41eea85f0486c --- /dev/null +++ b/packages/opendesign/src/components/breadcrumb/style/var.scss @@ -0,0 +1,9 @@ +.o-breadcrumb { + --breadcrumb-color: var(--o-color-info3); + --breadcrumb-color-active: var(--o-color-info1); + + --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 0000000000000000000000000000000000000000..f5eee09fa769597a04c76c2f779e138ee0101292 --- /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/opendesign/src/components/button/style/var.scss b/packages/opendesign/src/components/button/style/var.scss index dff05dfedc20d9605fe8ffd0a4f77c8a35e9ad35..5ffb3c7a78045131722f5a59a8c3ce4e32815873 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 5242f95e321ce2a6792ccf60bd4e83072476f280..43e643881c1337df7bcb6b98e4893ac66beb8a60 100644 --- a/packages/opendesign/src/components/checkbox/OCheckbox.vue +++ b/packages/opendesign/src/components/checkbox/OCheckbox.vue @@ -119,7 +119,7 @@ defineExpose({