| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <script setup lang="ts">
- 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>
- <div class="mb-2">基础用法</div>
- <el-space wrap>
- <ul class="content">
- <li>
- <ReText>
- 测试文本,这是一个稍微有点长的文本,过长省略后,鼠标悬浮会有tooltip提示
- </ReText>
- <ReText :lineClamp="2">
- 测试文本,这是一个稍微有点长的文本,lineClamp参数为2,即两行过长省略后,鼠标悬浮会有tooltip提示
- </ReText>
- </li>
- </ul>
- </el-space>
- <el-divider />
- <div class="mb-2">自定义 Tooltip 内容</div>
- <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 />
- <div class="mb-2">自定义 el-text 配置</div>
- <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 />
- <div class="mb-2">自定义 VueTippy 配置</div>
- <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 />
- <div class="mb-2">组件嵌套: 不需要省略的需设置 truncated 为 false</div>
- <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>
|