From 928c61ccddebc8d2c697b86ee9bee0c207330a8c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 06 5月 2025 07:18:22 +0800 Subject: [PATCH] 222 --- HIAWms/web/src/components/Text/Text.tsx | 67 +++++++++++++++++++++++++++++++++ 1 files changed, 67 insertions(+), 0 deletions(-) diff --git a/HIAWms/web/src/components/Text/Text.tsx b/HIAWms/web/src/components/Text/Text.tsx new file mode 100644 index 0000000..af9b17e --- /dev/null +++ b/HIAWms/web/src/components/Text/Text.tsx @@ -0,0 +1,67 @@ +import { Component, defineComponent, h } from 'vue' +import styles from './Text.module.scss' +export default defineComponent({ + name: '鏂囨湰', + props: { + truncated: { + type: Boolean, + default: false, + }, + tag: { + type: String, + default: 'span', + }, + lineClamp: { + type: Number, + default: 1, + }, + tip: { + type: String, + default: '', + }, + fontSize: { + type: String, + default: '', + }, + color: { + type: String, + default: '', + }, + }, + emits: ['click'], + setup(props, { attrs, slots, emit }) { + const tag: string = props.tag + const style = { + color: props.color, + fontSize: props.fontSize, + } + const RenderComponent = () => { + return h( + tag, + { + class: props.truncated ? styles.truncated : '', + style: { '-webkit-line-clamp': props.lineClamp, ...style }, + ...attrs, + }, + { + ...slots, + } + ) + } + return () => { + if (props.tip) { + return ( + <el-tooltip + effect="dark" + content={`<div style="max-width:300px">${props.tip}</div>`} + raw-content + placement="top" + > + <RenderComponent /> + </el-tooltip> + ) + } + return <RenderComponent /> + } + }, +}) -- Gitblit v1.9.3