diff --git a/.vscode/screen.code-snippets b/.vscode/screen.code-snippets
new file mode 100644
index 0000000000000000000000000000000000000000..6d9b273bd1de9e6732361db899818088aa79d797
--- /dev/null
+++ b/.vscode/screen.code-snippets
@@ -0,0 +1,222 @@
+{
+ "(0, 600)": {
+ "prefix": ["w-600", "@include respond-to('phone')"],
+ "body": [
+ "@include respond-to('phone') {",
+ " $1",
+ "}"
+ ],
+ "description": "(0, 600px)",
+ "scope": "scss, less"
+ },
+ "(601, Inf)": {
+ "prefix": ["w600", "@include respond-to('>phone')"],
+ "body": [
+ "@include respond-to('>phone') {",
+ " $1",
+ "}"
+ ],
+ "description": "(601px, Inf)",
+ "scope": "scss, less"
+ },
+ "(601, 1200)": {
+ "prefix": ["w600-1200", "@include respond-to('pad')"],
+ "body": [
+ "@include respond-to('pad') {",
+ " $1",
+ "}"
+ ],
+ "description": "(601px, 1200px)",
+ "scope": "scss, less"
+ },
+ "(0, 1200)": {
+ "prefix": ["w-1200", "@include respond-to('<=pad')"],
+ "body": [
+ "@include respond-to('<=pad') {",
+ " $1",
+ "}"
+ ],
+ "description": "(0, 1200px)",
+ "scope": "scss, less"
+ },
+ "(1201, Inf)": {
+ "prefix": ["w1200", "@include respond-to('>pad')"],
+ "body": [
+ "@include respond-to('>pad') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1201px, Inf)",
+ "scope": "scss, less"
+ },
+ "(601, 840)": {
+ "prefix": ["w600-840", "@include respond-to('pad_v')"],
+ "body": [
+ "@include respond-to('pad_v') {",
+ " $1",
+ "}"
+ ],
+ "description": "(601px, 840px)",
+ "scope": "scss, less"
+ },
+ "(0, 840)": {
+ "prefix": ["w-840", "@include respond-to('<=pad_v')"],
+ "body": [
+ "@include respond-to('<=pad_v') {",
+ " $1",
+ "}"
+ ],
+ "description": "(0, 840px)",
+ "scope": "scss, less"
+ },
+ "(841, Inf)": {
+ "prefix": ["w840", "@include respond-to('>pad_v')"],
+ "body": [
+ "@include respond-to('>pad_v') {",
+ " $1",
+ "}"
+ ],
+ "description": "(841px, Inf)",
+ "scope": "scss, less"
+ },
+ "(841, 1200)": {
+ "prefix": ["w840-1200", "@include respond-to('pad_h')"],
+ "body": [
+ "@include respond-to('pad_h') {",
+ " $1",
+ "}"
+ ],
+ "description": "(841px, 1200px)",
+ "scope": "scss, less"
+ },
+ "(1200, 1440)": {
+ "prefix": ["w1200-1440", "@include respond-to('laptop')"],
+ "body": [
+ "@include respond-to('laptop') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1200px, 1440px)",
+ "scope": "scss, less"
+ },
+ "(0, 1440)": {
+ "prefix": ["w-1440", "@include respond-to('<=laptop')"],
+ "body": [
+ "@include respond-to('<=laptop') {",
+ " $1",
+ "}"
+ ],
+ "description": "(0, 1440px)",
+ "scope": "scss, less"
+ },
+ "(1441, Inf)": {
+ "prefix": ["w1440", "@include respond-to('>laptop')"],
+ "body": [
+ "@include respond-to('>laptop') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1441px, Inf)",
+ "scope": "scss, less"
+ },
+ "(601, 1440)": {
+ "prefix": ["w600-1440", "@include responsd-to('pad-laptop')"],
+ "body": [
+ "@include respond-to('pad-laptop') {",
+ " $1",
+ "}"
+ ],
+ "description": "(601px, 1440px)",
+ "scope": "scss, less"
+ },
+ "(841, 1440)": {
+ "prefix": ["w840-1440", "@include responsd-to('pad_v-laptop')"],
+ "body": [
+ "@include respond-to('pad_v-laptop') {",
+ " $1",
+ "}"
+ ],
+ "description": "(841px, 1440px)",
+ "scope": "scss, less"
+ },
+ "(840, 1680)": {
+ "prefix": ["w840-1680", "@include responsd-to('pad_v-pc_s')"],
+ "body": [
+ "@include respond-to('pad_v-pc_s') {",
+ " $1 ",
+ "}"
+ ],
+ "description": "(840px, 1680px)",
+ "scope": "scss, less"
+ },
+ "(1441-1920)": {
+ "prefix": ["w1440-1920", "@include responsd-to('pc')"],
+ "body": [
+ "@include respond-to('pc') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1441-1920px)",
+ "scope": "scss, less"
+ },
+ "(1441, 1680)": {
+ "prefix": ["w1440-1680", "@include responsd-to('pc_s')"],
+ "body": [
+ "@include respond-to('pc_s') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1441, 1680px)",
+ "scope": "scss, less"
+ },
+ "(0, 1680)": {
+ "prefix": ["w-1680", "@include responsd-to('<=pc_s')"],
+ "body": [
+ "@include respond-to('<=pc_s') {",
+ " $1",
+ "}"
+ ],
+ "description": "(0, 1680px)",
+ "scope": "scss, less"
+ },
+ "(1681, 1920)": {
+ "prefix": ["w1680-1920", "@include responsd-to('pc_l')"],
+ "body": [
+ "@include respond-to('pc_l') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1681, 1920px)",
+ "scope": "scss, less"
+ },
+ "(1681, Inf)": {
+ "prefix": ["w1680", "@include responsd-to('>pc_s')"],
+ "body": [
+ "@include respond-to('>pc_s') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1681px, Inf)",
+ "scope": "scss, less"
+ },
+ "(1921, Inf)": {
+ "prefix": ["w1920", "@include responsd-to('>pc')"],
+ "body": [
+ "@include respond-to('>pc') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1921px, Inf)",
+ "scope": "scss, less"
+ },
+ "(1201, 1680)": {
+ "prefix": ["w1200-1680", "@include responsd-to('laptop-pc_s')"],
+ "body": [
+ "@include respond-to('laptop-pc_s') {",
+ " $1",
+ "}"
+ ],
+ "description": "(1201px, 1680px)",
+ "scope": "scss, less"
+ }
+}
diff --git a/packages/docs/ReleaesNote.opendesign.md b/packages/docs/ReleaesNote.opendesign.md
index 554f535a36785ae134255d245431b8ca25d21b26..fd74307672a13402e62d73a9e377a5073cc4da9c 100644
--- a/packages/docs/ReleaesNote.opendesign.md
+++ b/packages/docs/ReleaesNote.opendesign.md
@@ -12,6 +12,26 @@
---
+# 1.0.2
+
+- feat
+
+1. [cascader] cascader新增expandTrigger参数,支持hover触发展开下一级菜单
+2. [button] 新增 `--btn-gap-prefix` 及 `--btn-gap-suffix` 变量以单独控制前缀及后缀图标外边距
+3. [scss-mixin] respond-to新增断点
+4. [menu] 菜单增加small尺寸
+
+- fix
+
+1. [cascader] 修复--cascader-options-bd-clor单词拼写错误
+2. [cascader] 修复trigger参数失效,数据回显bug;重构优化CascaderTree类
+3. [breadcrumb] 调整组件hover active状态颜色
+4. [breadcrumb] 将 `--breadcrumb-seperator-size` 修改为 `--breadcrumb-separator-size`
+5. [badge] 修复OBadge组件offset-x不支持负数
+6. [rate] 完善ORate组件icon插槽status变量类型签名
+7. [select] 优化select组件provide的select函数
+8. [vScrollbar] 优化类型签名
+
# 1.0.1
- feat
diff --git a/packages/opendesign/src/_styles/mixin.scss b/packages/opendesign/src/_styles/mixin.scss
index cbdf2c02d7a00b1be3d36840f0b9c873e05bd2c1..47e00db3a94197b93b32740a659b712d51d78460 100644
--- a/packages/opendesign/src/_styles/mixin.scss
+++ b/packages/opendesign/src/_styles/mixin.scss
@@ -22,7 +22,15 @@ $breakpoints: (
'<=laptop': (0, 1440px),
'>laptop': 1441px,
'pad-laptop': (601px, 1440px),
- 'pad_v-laptop': (841px, 1440px)
+ 'pad_v-laptop': (841px, 1440px),
+ 'pad_v-pc_s': (841px, 1680px),
+ 'pc': (1441px, 1920px),
+ 'pc_s': (1441px, 1680px),
+ '<=pc_s': (0, 1680px),
+ 'pc_l': (1681px, 1920px),
+ '>pc_s': 1681px,
+ '>pc': 1921px,
+ 'laptop-pc_s': (1201px, 1680px)
);
@mixin respond-to($breakname) {
diff --git a/packages/opendesign/src/_utils/dom.ts b/packages/opendesign/src/_utils/dom.ts
index 77f9c9c550f5c3d6c0c0fccb33ca51a9b6c513f1..b2ea905a17daadf2a08ca62e8e41ed5835c309cb 100644
--- a/packages/opendesign/src/_utils/dom.ts
+++ b/packages/opendesign/src/_utils/dom.ts
@@ -189,3 +189,14 @@ export function scrollTo(y: number, opts: ScrollTopOptions) {
throttleRAF(frameFn)();
});
}
+
+/*判断一个元素是否触发溢出隐藏*/
+export function isOverflown(element?: HTMLElement) {
+ if (!element) {
+ return false;
+ }
+ return (
+ element.scrollWidth > element.clientWidth ||
+ element.scrollHeight > element.clientHeight
+ );
+}
diff --git a/packages/opendesign/src/badge/OBadge.vue b/packages/opendesign/src/badge/OBadge.vue
index f2179454c98f6937e1cf3e0e974406f1cfe5040e..cb096fae652369e07d5b57dd1670bf04b49b09fa 100644
--- a/packages/opendesign/src/badge/OBadge.vue
+++ b/packages/opendesign/src/badge/OBadge.vue
@@ -18,7 +18,7 @@ const content = computed(() => {
const style = computed(() => {
const [x, y] = props.offset;
- const right = isNumber(x) ? `-${x}px` : `-${x}`;
+ const right = isNumber(x) ? `${x * -1}px` : `calc(${x} * -1)`;
const top = isNumber(y) ? `${y}px` : `${y}`;
return {
right,
diff --git a/packages/opendesign/src/breadcrumb/style/media.scss b/packages/opendesign/src/breadcrumb/style/media.scss
index e491a18a77ee77dead348d4cc23dae1740b352da..b629e80140940f568f95fbd6f9b8eac971d8403d 100644
--- a/packages/opendesign/src/breadcrumb/style/media.scss
+++ b/packages/opendesign/src/breadcrumb/style/media.scss
@@ -4,6 +4,6 @@
.o-breadcrumb {
--breadcrumb-text-size: var(--o-font_size-tip2);
--breadcrumb-text-height: var(--o-line_height-tip2);
- --breadcrumb-seperator-size: var(--o-icon_size_control-xs);
+ --breadcrumb-separator-size: var(--o-icon_size_control-xs);
}
}
diff --git a/packages/opendesign/src/breadcrumb/style/style.scss b/packages/opendesign/src/breadcrumb/style/style.scss
index ec7bbeacfd622e2f8f696c7071419a58c8429e14..e8903aee62fa6c8d865d7d74165ff40c41355393 100644
--- a/packages/opendesign/src/breadcrumb/style/style.scss
+++ b/packages/opendesign/src/breadcrumb/style/style.scss
@@ -19,10 +19,10 @@
align-items: center;
&:last-child {
- color: var(--breadcrumb-color-selected);
font-weight: 500;
-
+
.o-breadcrumb-item-label {
+ color: var(--breadcrumb-color-selected);
cursor: auto;
max-width: none;
}
@@ -53,8 +53,8 @@
display: inline-flex;
align-items: center;
justify-content: center;
- min-width: var(--breadcrumb-seperator-size);
- font-size: var(--breadcrumb-seperator-size);
+ min-width: var(--breadcrumb-separator-size);
+ font-size: var(--breadcrumb-separator-size);
line-height: 1;
transition: color var(--o-duration-s) var(--o-easing-standard);
margin: 0 var(--breadcrumb-gap);
diff --git a/packages/opendesign/src/breadcrumb/style/var.scss b/packages/opendesign/src/breadcrumb/style/var.scss
index 2feaea59048e909fb07ce0038e9a70e4382d0386..7a558f533db68dc1fe81e8ca9db45e294e8c1c10 100644
--- a/packages/opendesign/src/breadcrumb/style/var.scss
+++ b/packages/opendesign/src/breadcrumb/style/var.scss
@@ -1,14 +1,14 @@
.o-breadcrumb {
--breadcrumb-color: var(--o-color-info3);
- --breadcrumb-color-hover: var(--o-color-info1);
- --breadcrumb-color-active: var(--o-color-info1);
- --breadcrumb-color-selected: var(--o-color-info1);
+ --breadcrumb-color-hover: var(--o-color-primary2);
+ --breadcrumb-color-active: var(--o-color-primary3);
+ --breadcrumb-color-selected: var(--o-color-primary1);
--breadcrumb-text-size: var(--o-font_size-tip1);
--breadcrumb-text-height: var(--o-line_height-tip1);
--breadcrumb-gap: 4px;
- --breadcrumb-seperator-size: var(--o-icon_size_control-m);
+ --breadcrumb-separator-size: var(--o-icon_size_control-m);
--breadcrumb-label-max-width: 140px;
}
diff --git a/packages/opendesign/src/button/style/style.scss b/packages/opendesign/src/button/style/style.scss
index a60079cb00f2a58bc304404f8f45feded84077ea..950358eb736ddf4ea200ff41a1eca62e0ea70cbc 100644
--- a/packages/opendesign/src/button/style/style.scss
+++ b/packages/opendesign/src/button/style/style.scss
@@ -104,7 +104,7 @@
.o-btn-prefix {
display: inline-flex;
align-items: center;
- margin-right: var(--btn-gap);
+ margin-right: var(--btn-gap-prefix);
font-size: var(--btn-icon-size);
.o-btn-icon-only & {
@@ -117,6 +117,6 @@
.o-btn-suffix {
display: inline-flex;
align-items: center;
- margin-left: var(--btn-gap);
+ margin-left: var(--btn-gap-suffix);
font-size: var(--btn-icon-size);
}
diff --git a/packages/opendesign/src/button/style/var.scss b/packages/opendesign/src/button/style/var.scss
index 49e2c789430adf97195166c5b73c81bd36090dba..7081d1aa799483e1250b4c55022488ca5e62aca0 100644
--- a/packages/opendesign/src/button/style/var.scss
+++ b/packages/opendesign/src/button/style/var.scss
@@ -158,6 +158,8 @@
.o-btn-small {
--btn-radius: var(--o-radius_control-xs);
--btn-gap: 2px;
+ --btn-gap-prefix: var(--btn-gap);
+ --btn-gap-suffix: var(--btn-gap);
--btn-padding: 0 11px;
--btn-icon-size: var(--o-icon_size-xs);
--btn-height: var(--o-control_size-s);
@@ -167,6 +169,8 @@
--btn-radius: var(--o-radius_control-s);
--btn-gap: 8px;
+ --btn-gap-prefix: var(--btn-gap);
+ --btn-gap-suffix: var(--btn-gap);
--btn-padding: 0 15px;
--btn-icon-size: var(--o-icon_size-xs);
--btn-height: var(--o-control_size-m);
@@ -176,6 +180,8 @@
--btn-radius: var(--o-radius_control-s);
--btn-gap: 8px;
+ --btn-gap-prefix: var(--btn-gap);
+ --btn-gap-suffix: var(--btn-gap);
--btn-padding: 0 23px;
--btn-icon-size: var(--o-icon_size-m);
--btn-height: var(--o-control_size-l);
diff --git a/packages/opendesign/src/menu/OMenu.vue b/packages/opendesign/src/menu/OMenu.vue
index 396cccdd3977484213cbbd8ef233dd98d13a9c73..4990a0afa966d379e6cfdcf3a05a1202635b8d99 100644
--- a/packages/opendesign/src/menu/OMenu.vue
+++ b/packages/opendesign/src/menu/OMenu.vue
@@ -1,9 +1,11 @@
-
diff --git a/packages/opendesign/src/menu/OMenuItem.vue b/packages/opendesign/src/menu/OMenuItem.vue
index 3bc5685e5114190a8a87efe54747b30f04c60989..6e2363a5a55d3b6ef1e30dc35141b2582e244d55 100644
--- a/packages/opendesign/src/menu/OMenuItem.vue
+++ b/packages/opendesign/src/menu/OMenuItem.vue
@@ -1,8 +1,9 @@
-