Skip to content

Commit dfe96ab

Browse files
committed
feat(Tooltip): 支持自定义弹出层样式
1 parent 5426326 commit dfe96ab

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

packages/devui-vue/devui/tooltip/src/tooltip-types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ export const tooltipProps = {
5252
type: Number,
5353
default: 0,
5454
},
55+
overlayClass: {
56+
type: String,
57+
default: '',
58+
},
5559
};
5660

5761
export type TooltipProps = ExtractPropTypes<typeof tooltipProps>;

packages/devui-vue/devui/tooltip/src/tooltip.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default defineComponent({
1111
name: 'DTooltip',
1212
props: tooltipProps,
1313
setup(props: TooltipProps, { slots }) {
14-
const { showAnimation, content, align } = toRefs(props);
14+
const { showAnimation, content, align, overlayClass } = toRefs(props);
1515
const origin = ref<HTMLElement>();
1616
const tooltipRef = ref<HTMLElement>();
1717
const { visible, placement, positionArr, overlayStyles, onPositionChange, onMouseleave, onMouseenterOverlay } = useTooltip(
@@ -23,6 +23,7 @@ export default defineComponent({
2323
[ns.b()]: true,
2424
[ns.m(placement.value)]: true,
2525
[ns.m('with-content')]: slots.content,
26+
[overlayClass.value]: true,
2627
}));
2728
provide(POPPER_TRIGGER_TOKEN, origin);
2829

packages/devui-vue/docs/components/tooltip/index.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export default defineComponent({
8181

8282
:::
8383

84-
### 使用content插槽
84+
### 使用 content 插槽
8585

8686
:::demo
8787

@@ -91,7 +91,7 @@ export default defineComponent({
9191
<d-tooltip>
9292
<d-button>Overflow Hidden</d-button>
9393
<template #content>
94-
<div class="tooltip-box">{{message}}</div>
94+
<div class="tooltip-box">{{ message }}</div>
9595
</template>
9696
</d-tooltip>
9797
</div>
@@ -103,7 +103,9 @@ import { defineComponent, ref } from 'vue';
103103
export default defineComponent({
104104
setup() {
105105
return {
106-
message: ref('规范的组件化目的不是为了限制创造,而是为了创造者更确定、科学、高效。所有行为决策的价值归依为产品业务。产品业务永远比组件化本身更重要,业务第一。规范不是绝对、教条、冷漠、强制的,实际工作中总会有新增需求、存量优化空间、情感化设计需求超出一般通用规范。保持克制的同时,允许基于强烈业务需求的规范突破;之后如果有足够的理由迭代出组件,那么就进行组件化。'),
106+
message: ref(
107+
'规范的组件化目的不是为了限制创造,而是为了创造者更确定、科学、高效。所有行为决策的价值归依为产品业务。产品业务永远比组件化本身更重要,业务第一。规范不是绝对、教条、冷漠、强制的,实际工作中总会有新增需求、存量优化空间、情感化设计需求超出一般通用规范。保持克制的同时,允许基于强烈业务需求的规范突破;之后如果有足够的理由迭代出组件,那么就进行组件化。'
108+
),
107109
};
108110
},
109111
});
@@ -127,18 +129,20 @@ export default defineComponent({
127129
| :---------------- | :------------------------------------------------- | :----- | :------------------------------------------------ | :-------------------- |
128130
| content | `string` | -- | 可选,Tooltip 显示内容 | [基本用法](#基本用法) |
129131
| position | [BasePlacement \| BasePlacement[]](#baseplacement) | top | 可选,Tooltip 显示位置 | [基本用法](#基本用法) |
132+
| align | `start \| end \| null` | null | 可选,对齐方式,默认居中对齐。 | |
130133
| show-animation | `boolean` | true | 可选,是否显示动画 | [基本用法](#基本用法) |
131134
| mouse-enter-delay | `number` | 150 | 可选,鼠标移入后延时多久才显示 Tooltip,单位是 ms | [延时触发](#延时触发) |
132135
| mouse-leave-delay | `number` | 100 | 可选,鼠标移出后延时多久才隐藏 Tooltip,单位是 ms | [延时触发](#延时触发) |
133136
| disabled | `boolean` | false | 可选,Tooltip 是否可用 | [基本用法](#基本用法) |
134137
| enterable | `boolean` | true | 可选,鼠标是否可以进入到 tooltip 中 | [基本用法](#基本用法) |
135138
| hide-after | `number` | 0 | 可选,tooltip 出现后自动隐藏延时,单位为 ms | [基本用法](#基本用法) |
139+
| overlay-class | `string` | '' | 可选,自定义弹出层的样式 | |
136140

137141
### Tooltip 插槽
138142

139-
| 插槽名 | 说明 |
140-
| :------ | :--------------------- |
141-
| default | 默认插槽,设置触发元素 |
143+
| 插槽名 | 说明 |
144+
| :------ | :------------------------- |
145+
| default | 默认插槽,设置触发元素 |
142146
| content | 内容插槽,自定义内容与样式 |
143147

144148
### Tooltip 类型定义

0 commit comments

Comments
 (0)