From 9bec4dcae002f36aa23231da11cb03a156b40110 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 30 4月 2025 16:24:16 +0800
Subject: [PATCH] 222

---
 PipeLineLems/web/src/components/IconButton/IconButton.tsx |   31 ++++++++++++++++++++++++-------
 1 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/PipeLineLems/web/src/components/IconButton/IconButton.tsx b/PipeLineLems/web/src/components/IconButton/IconButton.tsx
index 3ddbfca..522b7b8 100644
--- a/PipeLineLems/web/src/components/IconButton/IconButton.tsx
+++ b/PipeLineLems/web/src/components/IconButton/IconButton.tsx
@@ -16,20 +16,37 @@
   emits: ['click'],
   setup(props: IconButtonProps, { attrs, slots, emit }: SetupContext) {
     const imgName = computed(() => props.icon)
-    const imgUrl = () =>
-      new URL(`../../assets/images/${imgName.value}.png`, import.meta.url).href
+    const VITE_STATIC_URL = process.env.VITE_STATIC_URL || ''
+
+    let status = attrs.status === undefined ? true : attrs.status
+    let isAdd = attrs.status === 'add'
+    const imgUrl = () => {
+      let baseDir = 'images'
+      let name = imgName.value
+      if (imgName.value) {
+        if (imgName.value.includes('files/')) {
+          baseDir = 'files'
+          name = imgName.value.split('/')[1]
+        }
+      }
+
+      return `${VITE_STATIC_URL}/resources/assets/${baseDir}/${name}.png`
+    }
     const BtnRender = () => {
       return (
         <el-button
           {...attrs}
           type={props.type}
           text
-          class={styles.btn}
+          class={{
+            [styles.btn]: true,
+            [styles.status]: attrs.disabled ? false : status,
+          }}
           onClick={(evt: Event) => emit('click', evt)}
         >
           {imgName.value ? <img src={imgUrl()} class={styles.img} /> : null}
           <span style={props.type === 'primary' ? { color: '#5a84ff' } : {}}>
-            {slots.default && slots.default()}
+            {slots.default?.()}
           </span>
         </el-button>
       )
@@ -44,14 +61,14 @@
           persistent={false}
           popper-style={{
             marginTop: '-7px',
-            padding: '8px',
+            padding: '10px',
           }}
           trigger="click"
           vSlots={{
             reference: BtnRender,
           }}
         >
-          {slots.default && slots.default()}
+          {slots.default?.()}
         </el-popover>
       )
     }
@@ -63,7 +80,7 @@
           </span>
         )
       }
-      return <BtnRender />
+      return BtnRender()
     }
   },
 })

--
Gitblit v1.9.3