From 38b161e4d52362081bfe78fb5b51fbf384db7ce2 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 06 5月 2025 07:22:21 +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