172 lines
5.5 KiB
Vue
172 lines
5.5 KiB
Vue
<script lang="ts" setup>
|
||
import dayjs from "dayjs";
|
||
import { ref } from "vue";
|
||
import { ReText } from "@/components/ReText";
|
||
|
||
defineOptions({
|
||
name: "PureText"
|
||
});
|
||
|
||
const customContent = ref("自定义tooltip内容");
|
||
|
||
const changeTooltipContent = () => {
|
||
customContent.value =
|
||
"现在的时间是: " + dayjs().format("YYYY-MM-DD HH:mm:ss");
|
||
};
|
||
</script>
|
||
|
||
<template>
|
||
<el-card shadow="never">
|
||
<template #header>
|
||
<div class="card-header">
|
||
<span class="font-medium">
|
||
文本省略,基于
|
||
<el-link
|
||
href="https://element-plus.org/zh-CN/component/text.html"
|
||
target="_blank"
|
||
style="margin: 0 4px 5px; font-size: 16px"
|
||
>
|
||
el-text
|
||
</el-link>
|
||
和
|
||
<el-link
|
||
href="https://vue-tippy.netlify.app/basic-usage"
|
||
target="_blank"
|
||
style="margin: 0 4px 5px; font-size: 16px"
|
||
>
|
||
VueTippy
|
||
</el-link>
|
||
自动省略后显示 Tooltip 提示, 支持多行省略
|
||
</span>
|
||
</div>
|
||
<el-link
|
||
class="mt-2"
|
||
href="https://github.com/pure-admin/vue-pure-admin/blob/main/src/views/components/text.vue"
|
||
target="_blank"
|
||
>
|
||
代码位置 src/views/components/text.vue
|
||
</el-link>
|
||
</template>
|
||
|
||
<p class="mb-2">基础用法</p>
|
||
<el-space wrap>
|
||
<ul class="content">
|
||
<li>
|
||
<ReText>
|
||
测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
<ReText :lineClamp="2">
|
||
测试文本,这是一个稍微有点长的文本,lineClamp参数为2,即两行过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
</ul>
|
||
</el-space>
|
||
|
||
<el-divider />
|
||
|
||
<p class="mb-2">自定义 Tooltip 内容</p>
|
||
<div class="mb-2">
|
||
<el-button @click="changeTooltipContent">
|
||
点击切换下方 Tooltip 内容
|
||
</el-button>
|
||
</div>
|
||
<el-space wrap>
|
||
<ul class="content">
|
||
<li>
|
||
<ReText :tippyProps="{ content: customContent }">
|
||
props写法 -
|
||
测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
<li>
|
||
<ReText>
|
||
<template #content>
|
||
<div>
|
||
<b>这是插槽写法: </b>
|
||
<div>{{ customContent }}</div>
|
||
</div>
|
||
</template>
|
||
插槽写法 -
|
||
测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
</ul>
|
||
</el-space>
|
||
|
||
<el-divider />
|
||
<p class="mb-2">自定义 el-text 配置</p>
|
||
<el-space wrap>
|
||
<ul class="content">
|
||
<li>
|
||
<ReText type="primary" size="large">
|
||
测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
<li>
|
||
<ReText :lineClamp="4" type="info">
|
||
测试文本,这是一个非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长的文本,lineClamp参数为4,即四行过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
</ul>
|
||
</el-space>
|
||
|
||
<el-divider />
|
||
<p class="mb-2">自定义 VueTippy 配置</p>
|
||
<el-space wrap>
|
||
<ul class="content">
|
||
<li>
|
||
<ReText
|
||
:tippyProps="{ offset: [0, -20], theme: 'light', arrow: false }"
|
||
>
|
||
偏移白色无箭头 -
|
||
测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
<li>
|
||
<ReText :lineClamp="4" :tippyProps="{ followCursor: true }">
|
||
鼠标跟随 -
|
||
测试文本,这是一个非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长,非常非常长的文本,lineClamp参数为4,即四行过长省略后,鼠标悬浮会有tooltip提示
|
||
</ReText>
|
||
</li>
|
||
</ul>
|
||
</el-space>
|
||
|
||
<el-divider />
|
||
<p class="mb-2">组件嵌套: 不需要省略的需设置 truncated 为 false</p>
|
||
<el-space wrap>
|
||
<ul class="content">
|
||
<li>
|
||
<ReText tag="p" :lineClamp="2">
|
||
This is a paragraph. Paragraph start
|
||
<ReText :truncated="false">
|
||
【 This is ReText
|
||
<ReText tag="sup" size="small" :truncated="false">
|
||
superscript 】
|
||
</ReText>
|
||
</ReText>
|
||
<el-text>
|
||
【 This is El-Text
|
||
<el-text tag="sub" size="small"> subscript 】 </el-text>
|
||
</el-text>
|
||
<el-text tag="ins">【Inserted】</el-text>
|
||
<el-text tag="del">【Deleted】</el-text>
|
||
<el-text tag="mark">【Marked】</el-text>
|
||
Paragraph end.
|
||
</ReText>
|
||
</li>
|
||
</ul>
|
||
</el-space>
|
||
</el-card>
|
||
</template>
|
||
|
||
<style lang="scss" scoped>
|
||
.content {
|
||
width: 400px;
|
||
padding: 15px;
|
||
overflow: hidden;
|
||
resize: horizontal;
|
||
background-color: var(--el-color-info-light-9);
|
||
border-radius: 8px;
|
||
}
|
||
</style>
|