diff --git a/packages/opendesign/src/message/OMessage.vue b/packages/opendesign/src/message/OMessage.vue index 5994696663810ab6f83eaf6172d88decf95a1073..d2ca84d66564495dfca68422d05d9426e1d1a0fa 100644 --- a/packages/opendesign/src/message/OMessage.vue +++ b/packages/opendesign/src/message/OMessage.vue @@ -24,7 +24,7 @@ watch( if (!isUndefined(val)) { isVisible.value = val; } - } + }, ); const emits = defineEmits<{ @@ -98,9 +98,16 @@ defineExpose({ - - - +
+ + + {{ props.title }} + + + + + +
diff --git a/packages/opendesign/src/message/__demo__/MessageColorful.vue b/packages/opendesign/src/message/__demo__/MessageColorful.vue index ef60f8b733d7dc33f92131dbaccd2232004eb090..4f0dfaba2f420402c048c05c0b633f841efb513c 100644 --- a/packages/opendesign/src/message/__demo__/MessageColorful.vue +++ b/packages/opendesign/src/message/__demo__/MessageColorful.vue @@ -7,19 +7,19 @@ import { OMessage } from '../index';

内联使用

- 用于表示普通操作信息提示 - 用于表示操作顺利达成 - 用于表示操作引起一定后果 - 用于表示操作引起严重的后果 - 排队中,请稍后 + 用于表示普通操作信息提示 + 用于表示操作顺利达成 + 用于表示操作引起一定后果 + 用于表示操作引起严重的后果 + 排队中,请稍后
- 用于表示普通操作信息提示(提示常驻,可手动关闭) - 用于表示操作顺利达成(提示3秒后消失) - 用于表示操作引起一定后果(提示5秒后消失) - 用于表示操作引起严重的后果(提示8秒后消失) - 排队中,请稍后(提示10秒后消失) + 用于表示普通操作信息提示(提示常驻,可手动关闭) + 用于表示操作顺利达成(提示3秒后消失) + 用于表示操作引起一定后果(提示5秒后消失) + 用于表示操作引起严重的后果(提示8秒后消失) + 排队中,请稍后(提示10秒后消失)
diff --git a/packages/opendesign/src/message/style/media.scss b/packages/opendesign/src/message/style/media.scss index 4acfb5fa24cc428a0cff49210c9a4943156c9b9e..46cbfb7a5d11c5787e211f8d6bd57fac26e47445 100644 --- a/packages/opendesign/src/message/style/media.scss +++ b/packages/opendesign/src/message/style/media.scss @@ -1,12 +1,14 @@ @use '../../_styles/mixin.scss' as *; +@include respond-to('pad_v-pc_s') { + .o-message.o-message-colorful { + --message-padding: 4px 8px 8px; + } +} + @include respond-to('laptop') { .o-message { - --message-text-size: var(--o-font_size-tip1); - --message-text-height: var(--o-line_height-tip1); --message-padding: 7px 12px; - --message-icon-size: var(--o-icon_size_control-s); - --message-icon-gap: 8px; --message-gap: 12px; } } @@ -15,9 +17,17 @@ .o-message { --message-text-size: var(--o-font_size-tip2); --message-text-height: var(--o-line_height-tip2); + + --message-title-size: var(--o-font_size-tip2); + --message-title-height: var(--o-line_height-tip2); + --message-padding: 7px 12px; - --message-icon-size: var(--o-icon_size_control-xs); - --message-icon-gap: 8px; --message-gap: 8px; } } + +@include respond-to('<=pad_v') { + .o-message-colorful { + --message-padding: 4px 12px 8px; + } +} \ No newline at end of file diff --git a/packages/opendesign/src/message/style/style.scss b/packages/opendesign/src/message/style/style.scss index f7c630b708fa4709ddddb780d8c11c53aea37133..e6b7b184b16579960f9bafdfb1fb5b1993ee24a7 100644 --- a/packages/opendesign/src/message/style/style.scss +++ b/packages/opendesign/src/message/style/style.scss @@ -13,10 +13,32 @@ text-align: center; } -.o-message-content { +.o-message-colorful:not(.o-message-loading) { + overflow: hidden; + position: relative; + background-color: rgba(var(--message-bg-color), 0.05); + + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 4px; + height: 100%; + background-color: rgb(var(--message-bg-color)); + } +} + +.o-message-main { + display: flex; + flex-direction: column; + align-items: flex-start; font-size: var(--message-text-size); line-height: var(--message-text-height); color: var(--message-color); +} + +.o-message-content { overflow: hidden; text-overflow: ellipsis; text-align: var(--message-text-align); @@ -26,6 +48,13 @@ -webkit-box-orient: vertical; } +.o-message-title { + margin-bottom: var(--message-title-gap); + font-size: var(--message-title-size); + line-height: var(--message-title-height); + font-weight: 600; +} + .o-message-icon { font-size: var(--message-icon-size); color: var(--message-icon-color); @@ -38,7 +67,7 @@ display: inline-flex; align-items: center; cursor: pointer; - margin-left: calc(var(--message-icon-gap) * 2); + margin-left: var(--message-icon-gap); font-size: var(--message-icon-size); color: var(--message-icon-close-color); transition: color var(--o-duration-s) var(--o-easing-standard); @@ -64,14 +93,16 @@ .o-message-list-top { top: var(--message-list-offset); - .o-message + .o-message { + + .o-message+.o-message { margin-top: var(--message-gap); } } .o-message-list-bottom { bottom: var(--message-list-offset); - .o-message + .o-message { + + .o-message+.o-message { margin-top: var(--message-gap); } } @@ -87,4 +118,4 @@ .o-message-fade-leave-to { opacity: 0; -} +} \ No newline at end of file diff --git a/packages/opendesign/src/message/style/var.scss b/packages/opendesign/src/message/style/var.scss index 1597d6d0eb6a61f6b6d5aa6ef60a703687ef5ae5..d67346e3d26fa4603cb41149d80629331fef9625 100644 --- a/packages/opendesign/src/message/style/var.scss +++ b/packages/opendesign/src/message/style/var.scss @@ -1,8 +1,11 @@ .o-message { - --message-color: var(--o-color-info1); + --message-color: var(--o-color-info2); - --message-text-size: var(--o-font_size-text1); - --message-text-height: var(--o-line_height-text1); + --message-text-size: var(--o-font_size-tip1); + --message-text-height: var(--o-line_height-tip1); + + --message-title-size: var(--o-font_size-tip1); + --message-title-height: var(--o-line_height-tip1); --message-bg-color: var(--o-color-fill2); @@ -26,42 +29,52 @@ --message-content-max-row: 0; --message-gap: 16px; + --message-title-gap: 4px; } .o-message-colorful { --message-shadow: none; + --message-padding: 4px 12px 8px; + + --message-align: start; + --message-text-align: left; } .o-message-info { - --message-icon-color: var(--o-color-primary1); + --message-icon-color: var(--o-color-auxiliary5, rgb(var(--o-blue-6))); + &.o-message-colorful { - --message-bg-color: var(--o-color-primary4-light); + --message-bg-color: var(--o-blue-6); } } .o-message-success { - --message-icon-color: var(--o-color-success1); + --message-icon-color: var(--o-color-success1, rgb(var(--o-green-6))); + &.o-message-colorful { - --message-bg-color: var(--o-color-success4-light); + --message-bg-color: var(--o-green-6); } } .o-message-warning { - --message-icon-color: var(--o-color-warning1); + --message-icon-color: var(--o-color-warning1, rgb(var(--o-orange-6))); + &.o-message-colorful { - --message-bg-color: var(--o-color-warning4-light); + --message-bg-color: var(--o-orange-6); } } .o-message-danger { - --message-icon-color: var(--o-color-danger1); + --message-icon-color: var(--o-color-danger1, rgb(var(--o-red-6))); + &.o-message-colorful { - --message-bg-color: var(--o-color-danger4-light); + --message-bg-color: var(--o-red-6); } } .o-message-loading { --message-icon-color: var(--o-color-info1); + &.o-message-colorful { --message-bg-color: var(--o-color-primary4-light); } @@ -69,4 +82,4 @@ .o-message-list { --message-list-offset: 32px; -} +} \ No newline at end of file diff --git a/packages/opendesign/src/message/types.ts b/packages/opendesign/src/message/types.ts index a262e9070f51eff4425cf906b9dcc18671e64d95..38654b5a898478bea40851114790bd54db2064c8 100644 --- a/packages/opendesign/src/message/types.ts +++ b/packages/opendesign/src/message/types.ts @@ -53,6 +53,12 @@ export const messageProps = { beforeClose: { type: Function as PropType<() => Promise | boolean>, }, + /** + * 消息标题 + */ + title: { + type: String, + }, }; export const messageListProps = {