bunny-admin-element-thin-i18n/other-views/components/text.vue

172 lines
5.5 KiB
Vue
Raw Normal View History

2024-05-11 14:48:02 +08:00
<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>