From 954a9c8e25e37c66db0bb70fe24de77ad93e7b95 Mon Sep 17 00:00:00 2001 From: devin Date: Thu, 2 Mar 2023 18:33:47 +0800 Subject: [PATCH 1/4] tab --- .../opendesign/src/components/badge/types.ts | 2 +- .../src/components/input-number/types.ts | 2 +- .../opendesign/src/components/input/types.ts | 2 +- .../opendesign/src/components/option/types.ts | 4 +- .../opendesign/src/components/select/types.ts | 2 +- .../src/components/tabs/OTabPane.vue | 53 +-------- .../opendesign/src/components/tabs/OTabs.vue | 87 +++++++++------ .../opendesign/src/components/tabs/TabNav.vue | 23 +++- .../components/tabs/__demo__/TabsBasic.vue | 43 +++++++- .../src/components/tabs/style/index.scss | 74 ++++++++++--- .../src/components/tabs/style/var.scss | 36 +++++-- .../opendesign/src/components/tabs/types.ts | 102 ++++++++++++++++++ .../src/components/textarea/types.ts | 2 +- 13 files changed, 314 insertions(+), 118 deletions(-) create mode 100644 packages/opendesign/src/components/tabs/types.ts diff --git a/packages/opendesign/src/components/badge/types.ts b/packages/opendesign/src/components/badge/types.ts index 315ef0af..2e144407 100644 --- a/packages/opendesign/src/components/badge/types.ts +++ b/packages/opendesign/src/components/badge/types.ts @@ -6,7 +6,7 @@ export const badgeProps = { * 显示值 */ value: { - type: [String, Number] as PropType, + type: [String, Number], default: '', }, /** diff --git a/packages/opendesign/src/components/input-number/types.ts b/packages/opendesign/src/components/input-number/types.ts index 44b250dd..75435271 100644 --- a/packages/opendesign/src/components/input-number/types.ts +++ b/packages/opendesign/src/components/input-number/types.ts @@ -7,7 +7,7 @@ export const inputNumberPorps = { * v-model */ modelValue: { - type: [String, Number] as PropType, + type: [String, Number], }, /** * 下拉框的默认值 diff --git a/packages/opendesign/src/components/input/types.ts b/packages/opendesign/src/components/input/types.ts index b37c7ccf..adc351e1 100644 --- a/packages/opendesign/src/components/input/types.ts +++ b/packages/opendesign/src/components/input/types.ts @@ -7,7 +7,7 @@ export const inputProps = { * v-model */ modelValue: { - type: [String, Number] as PropType, + type: [String, Number], }, /** * 下拉框的默认值 diff --git a/packages/opendesign/src/components/option/types.ts b/packages/opendesign/src/components/option/types.ts index b33342d4..7327a7b2 100644 --- a/packages/opendesign/src/components/option/types.ts +++ b/packages/opendesign/src/components/option/types.ts @@ -1,4 +1,4 @@ -import { ExtractPropTypes, PropType } from 'vue'; +import { ExtractPropTypes } from 'vue'; export const optionProps = { /** @@ -12,7 +12,7 @@ export const optionProps = { * 值 */ value: { - type: [String, Number] as PropType, + type: [String, Number], default: '' }, /** diff --git a/packages/opendesign/src/components/select/types.ts b/packages/opendesign/src/components/select/types.ts index dc3adb8c..dd96d861 100644 --- a/packages/opendesign/src/components/select/types.ts +++ b/packages/opendesign/src/components/select/types.ts @@ -8,7 +8,7 @@ export const selectProps = { * v-model */ modelValue: { - type: [String, Number] as PropType, + type: [String, Number], }, /** * 下拉框的默认值 diff --git a/packages/opendesign/src/components/tabs/OTabPane.vue b/packages/opendesign/src/components/tabs/OTabPane.vue index 0f2115ff..ad37e54e 100644 --- a/packages/opendesign/src/components/tabs/OTabPane.vue +++ b/packages/opendesign/src/components/tabs/OTabPane.vue @@ -1,60 +1,11 @@ + diff --git a/packages/opendesign/src/components/pagination/style/index.scss b/packages/opendesign/src/components/pagination/style/index.scss index dbfdfc88..92604c7b 100644 --- a/packages/opendesign/src/components/pagination/style/index.scss +++ b/packages/opendesign/src/components/pagination/style/index.scss @@ -6,7 +6,7 @@ white-space: nowrap; > *:not(:first-child) { - margin-left: 12px; + margin-left: var(--pagination-item-gap); } } .o-pagination-pager { @@ -20,12 +20,25 @@ display: inline-flex; justify-content: center; align-items: center; - border: 1px solid var(--o-color-border2); + color: var(--pagination-item-color); + border: 1px solid var(--pagination-item-bd-color); + background-color: var(--pagination-item-bg-color); cursor: pointer; user-select: none; - &.disabled { - color: var(--o-color-border2); - border: 1px solid var(--o-color-border2); + border-radius: var(--pagination-radius); + &:hover { + border-color: var(--pagination-item-bd-color-hover); + background-color: var(--pagination-item-bg-color-hover); + } + &:active { + border-color: var(--pagination-item-bd-color-active); + background-color: var(--pagination-item-bg-color-active); + } + &.is-disabled { + cursor: not-allowed; + color: var(--pagination-item-color-disabled); + border: 1px solid var(--pagination-item-bd-color-disabled); + background-color: var(--pagination-item-bg-color-disabled); } } .o-pagination-pages { @@ -41,15 +54,28 @@ justify-content: center; align-items: center; cursor: pointer; + color: var(--pagination-item-color); + border: 1px solid var(--pagination-item-bd-color); + background-color: var(--pagination-item-bg-color); + border-radius: var(--pagination-radius); + + .o-pagination-item { margin-left: 8px; } &:hover { - color: var(--o-color-primary2); + color: var(--pagination-item-color-hover); + border: 1px solid var(--pagination-item-bd-color-hover); + background-color: var(--pagination-item-bg-color-hover); + } + &:active { + color: var(--pagination-item-color-active); + border: 1px solid var(--pagination-item-bd-color-active); + background-color: var(--pagination-item-bg-color-active); } &.active { - color: var(--o-color-primary1); - border: 1px solid var(--o-color-primary1); + color: var(--pagination-item-color-current); + border: 1px solid var(--pagination-item-bd-color-current); + background-color: var(--pagination-item-bg-color-current); } } @@ -64,7 +90,7 @@ padding: 2px 16px; cursor: pointer; &:hover { - background-color: var(--o-color-bg1); + background-color: var(--pagination-more-item-bg-color-hover); } } diff --git a/packages/opendesign/src/components/pagination/style/var.scss b/packages/opendesign/src/components/pagination/style/var.scss index 69d106cb..21e66eb4 100644 --- a/packages/opendesign/src/components/pagination/style/var.scss +++ b/packages/opendesign/src/components/pagination/style/var.scss @@ -1,3 +1,35 @@ .o-pagination { - --pagination-item-size: 32px; + --pagination-item-size: var(--o-size-m); + --pagination-item-gap: 12px; + + --pagination-item-color: var(--o-color-info2); + --pagination-item-color-current: var(--o-color-primary1); + --pagination-item-color-disabled: var(--o-color-info4); + + --pagination-item-bd-color: var(--o-color-control1-light); + --pagination-item-bd-color-hover: var(--o-color-control2-light); + --pagination-item-bd-color-active: var(--o-color-control3-light); + --pagination-item-bd-color-current: var(--o-color-primary1-light); + --pagination-item-bd-color-disabled: var(--o-color-control4-light); + --pagination-radius: var(--o-radius-m); +} + +.o-pagination-solid { + --pagination-item-bd-color: transparent; + --pagination-item-bd-color-hover: var(--o-color-control2-light); + --pagination-item-bd-color-active: var(--o-color-control3-light); + --pagination-item-bd-color-current: var(--o-color-primary1-light); + --pagination-item-bd-color-disabled: var(--o-color-control4-light); + + --pagination-item-bg-color: transparent; + --pagination-item-bg-color-hover: var(--o-color-control2-light); + --pagination-item-bg-color-active: var(--o-color-control3-light); + --pagination-item-bg-color-current: var(--o-color-primary1-light); + --pagination-item-bg-color-disabled: var(--o-color-control4-light); +} +.o-pagination-round-pill { + --pagination-radius: var(--pagination-item-size); +} +.o-pagination-more-popup { + --pagination-more-item-bg-color-hover: var(--o-color-primary1-light); } diff --git a/packages/opendesign/src/components/pagination/types.ts b/packages/opendesign/src/components/pagination/types.ts index 8d7f5f18..74f8ffc9 100644 --- a/packages/opendesign/src/components/pagination/types.ts +++ b/packages/opendesign/src/components/pagination/types.ts @@ -1,8 +1,22 @@ import { ExtractPropTypes, PropType } from 'vue'; +import { RoundT } from '../_shared/global'; const pageSizes = [6, 12, 24, 48]; export const paginationProps = { + /** + * 按钮类型:ColorT + */ + variant: { + type: String as PropType<'solid' | 'outline'>, + default: 'outline' + }, + /** + * 圆角值 + */ + round: { + type: String as PropType + }, /** * 支持选择的每页数据条数 */ diff --git a/packages/opendesign/src/components/popover/OPopover.vue b/packages/opendesign/src/components/popover/OPopover.vue index 05d91170..08a22ab8 100644 --- a/packages/opendesign/src/components/popover/OPopover.vue +++ b/packages/opendesign/src/components/popover/OPopover.vue @@ -29,11 +29,12 @@ const targetElRef = ref(null); :trigger="props.trigger" :target="props.target || targetElRef" :wrapper="props.wrapper" + wrap-class="o-popover-wrap" anchor-class="o-popover-anchor" :unmount-on-hide="props.unmountOnHide" @update:visible="updateVisible" > -
+
diff --git a/packages/opendesign/src/components/popover/style/index.scss b/packages/opendesign/src/components/popover/style/index.scss index 21799494..55ed4dc3 100644 --- a/packages/opendesign/src/components/popover/style/index.scss +++ b/packages/opendesign/src/components/popover/style/index.scss @@ -3,10 +3,12 @@ .o-popover-wrap { background-color: var(--popover-bg-color); box-shadow: var(--popover-shadow); - padding: 4px 8px; border-radius: var(--popover-radius); border: var(--popover-bd); +} +.o-popover-body { min-width: 120px; + padding: 4px 8px; } .o-popover-anchor { border: var(--popover-bd); diff --git a/packages/opendesign/src/components/popover/style/var.scss b/packages/opendesign/src/components/popover/style/var.scss index 406aacef..fe214c26 100644 --- a/packages/opendesign/src/components/popover/style/var.scss +++ b/packages/opendesign/src/components/popover/style/var.scss @@ -1,6 +1,6 @@ .o-popover { --popover-bg-color: var(--o-color-fill2); --popover-shadow: var(--o-shadow-1); - --popover-radius: var(--o-radius-s); + --popover-radius: var(--o-radius-l); --popover-bd: none; } diff --git a/packages/opendesign/src/components/popup/OPopup.vue b/packages/opendesign/src/components/popup/OPopup.vue index f14b4f1c..6a301e8c 100644 --- a/packages/opendesign/src/components/popup/OPopup.vue +++ b/packages/opendesign/src/components/popup/OPopup.vue @@ -355,8 +355,10 @@ onUnmounted(() => { @before-leave="handleTransitionStart" @after-leave="handleTransitionEnd" > -
- +
+
+ +
diff --git a/packages/opendesign/src/components/popup/style/index.scss b/packages/opendesign/src/components/popup/style/index.scss index 221d58eb..dcb74c0f 100644 --- a/packages/opendesign/src/components/popup/style/index.scss +++ b/packages/opendesign/src/components/popup/style/index.scss @@ -16,5 +16,9 @@ .o-popup-anchor { position: absolute; + z-index: 0; +} +.o-popup-body { + position: relative; z-index: 1; } -- Gitee