Ellipsis与Tooltip文字提示组件封装EllipsisTip

Tooltip 文字提示:https://1x.antdv.com/components/tooltip-cn/

使用:<ellipsis-tip :length="14" :text="item.projectName"></ellipsis-tip> 默认文本保留长度 8,可以通过 :length 来设置,其余配置参数可以自行设置。

<template>
    <a-tooltip v-if="showTooltip" :placement="placement" :overlayClassName="className" :trigger="trigger">
        <template v-slot:title> {{ text }}</template>
        {{ ellipsis(text) }}
    </a-tooltip>
    <span v-else>{{ text }}</span>
</template>

<script>
export default {
    name: 'EllipsisTip',
    props: {
        // 文本显示内容
        text: {
            type: String,
            required: true,
            default: ''
        },
        // 文本保留长度
        length: {
            type: Number,
            default: 8
        },
        // 气泡框位置
        placement: {
            type: String,
            default: 'bottomLeft'
        },
        // 触发行为方式,默认hover
        trigger: {
            type: String,
            default: 'hover'
        },
        // 自定义ClassName
        className: {
            type: String,
            default: 'tooltop'
        },
    },
    computed: {
        showTooltip() {
            return this.text.length > this.length
        }
    },
    // 是否显示tooltip
    // watch: {
    //     text() {
    //         console.log(this.text);
    //     }
    // },
    // created() {
    //     console.log(this.showTooltip);
    //     console.log(this.text);
    // },
    methods: {
        /**
         * @description: 截取字符串
         * @param {string} value 要截取的字符串
         * @return {string} 截取后的字符串
         */
        ellipsis(value) {
            if (!value) {
                return "";
            }
            if (value.length > this.length) {
                return value.slice(0, this.length) + "...";
            }
            return value;
        }
    },
};
</script>

<style scoped>
    
//控制主体颜色
.tooltop .ant-tooltip-inner {
    color: #333 !important;
    background-color: #fff !important;
    // width: 500px;
}

//控制三角形颜色
.tooltip .ant-tooltip-placement-bottom .ant-tooltip-arrow::before,
.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow::before,
.ant-tooltip-placement-bottomRight .ant-tooltip-arrow::before {
    background-color: #fff !important;
}
</style>

◎查看效果:

Ellipsis与Tooltip文字提示组件封装EllipsisTip

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5491.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注