From 5a93080a9568aca5118007eb9941db036faf0ebe Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 04 5月 2025 17:10:54 +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