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 @@