zhb il y a 1 semaine
Parent
commit
589b6c4222

+ 1 - 1
components/cwg-download.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <view class="cwg-language">
+  <view class="cwg-language cursor-pointer" :data-tooltip="t('Downloadpage.item1')">
     <view class="pc-header-btn" @click="handleMenuClick">
     <view class="pc-header-btn" @click="handleMenuClick">
       <cwg-icon name="crm-download" color="#97A1C0" :size="20" />
       <cwg-icon name="crm-download" color="#97A1C0" :size="20" />
     </view>
     </view>

+ 2 - 2
components/cwg-language.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
-  <view class="cwg-language">
+  <view class="cwg-language" >
     <cwg-dropdown :menu-list="customMenuList" @menuClick="handleMenuClick" showActive :activeKey="lang">
     <cwg-dropdown :menu-list="customMenuList" @menuClick="handleMenuClick" showActive :activeKey="lang">
-      <view class="pc-header-btn">
+      <view class="pc-header-btn cursor-pointer" :data-tooltip="t('vu.tooltip.t101')">
         <cwg-icon name="cwg-lang" :color="iconColor " :size="20" />
         <cwg-icon name="cwg-lang" :color="iconColor " :size="20" />
       </view>
       </view>
     </cwg-dropdown>
     </cwg-dropdown>

+ 1 - 1
components/cwg-notice.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
     <view class="notice-container">
     <view class="notice-container">
         <cwg-dropdown ref="dropdownRef" :menu-list="[]">
         <cwg-dropdown ref="dropdownRef" :menu-list="[]">
-            <view class="pc-header-btn" :class="{ '!has-dot': isRed }">
+            <view class="pc-header-btn cursor-pointer" :data-tooltip="t('News.Notice')" :class="{ '!has-dot': isRed }">
                 <text v-if="isRed"
                 <text v-if="isRed"
                     class="position-absolute top-0 end-0 p-1 mt-1 me-1 bg-danger border border-3 border-light rounded-circle" />
                     class="position-absolute top-0 end-0 p-1 mt-1 me-1 bg-danger border border-3 border-light rounded-circle" />
                 <cwg-icon name="cwg-bell" color="#97A1C0" :size="20" @click="openNotice" />
                 <cwg-icon name="cwg-bell" color="#97A1C0" :size="20" @click="openNotice" />

+ 1 - 1
components/cwg-payment.vue

@@ -21,7 +21,7 @@
           </view>
           </view>
           <view class="drawer-content">
           <view class="drawer-content">
             <view class="balance-amount">{{ formattedBalance }} USD</view>
             <view class="balance-amount">{{ formattedBalance }} USD</view>
-            <view class="cursor-pointer" @click="toPaymentHistory" :data-tooltip="t('wallet.pendingWithdraw1')">
+            <view class="cursor-pointer cursor-pointer1" @click="toPaymentHistory" :data-tooltip="t('wallet.pendingWithdraw1')">
               <view class="account-number">${{ formattedPendingWithdrawAmount }}</view>
               <view class="account-number">${{ formattedPendingWithdrawAmount }}</view>
               <view class="account-type" v-t="'wallet.pendingWithdraw1'"></view>
               <view class="account-type" v-t="'wallet.pendingWithdraw1'"></view>
             </view>
             </view>

+ 1 - 1
components/cwg-right-drawer.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
     <view class="notice-container">
     <view class="notice-container">
         <cwg-dropdown ref="dropdownRef" :menu-list="[]">
         <cwg-dropdown ref="dropdownRef" :menu-list="[]">
-            <view class="pc-header-btn">
+            <view class="pc-header-btn cursor-pointer" :data-tooltip="t('vu.tooltip.t100')">
                 <cwg-icon name="icon_my" color="#97A1C0" @click="openNotice" />
                 <cwg-icon name="icon_my" color="#97A1C0" @click="openNotice" />
             </view>
             </view>
             <template #btn>
             <template #btn>

+ 1 - 1
components/cwg-system.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <view class="cwg-system" v-if="systemMenuList.length">
   <view class="cwg-system" v-if="systemMenuList.length">
     <cwg-dropdown :menu-list="systemMenuList" @menuClick="handleMenuClick">
     <cwg-dropdown :menu-list="systemMenuList" @menuClick="handleMenuClick">
-      <view class="pc-header-btn">
+      <view class="pc-header-btn cursor-pointer" :data-tooltip="t('vu.system.title1')">
         <text class="current-system-name">{{ currentSystemName }}</text>
         <text class="current-system-name">{{ currentSystemName }}</text>
         <cwg-icon name="crm-chevron-down" :color="iconColor" darkColor="#000" :size="14" />
         <cwg-icon name="crm-chevron-down" :color="iconColor" darkColor="#000" :size="14" />
       </view>
       </view>

+ 2 - 0
locale/cn.json

@@ -66,6 +66,8 @@
       "content": "是否切换系统?"
       "content": "是否切换系统?"
     },
     },
     "tooltip": {
     "tooltip": {
+      "t100": "用户信息",
+      "t101": "语言设置",
       "t1": "选择时间"
       "t1": "选择时间"
     }
     }
   },
   },

+ 13 - 7
static/scss/global/global.scss

@@ -2132,18 +2132,24 @@ uni-content.collapsed {
     line-height: px2rpx(20);
     line-height: px2rpx(20);
     padding: px2rpx(6);
     padding: px2rpx(6);
     white-space: nowrap;
     white-space: nowrap;
-    z-index: 999;
+    z-index: 9999999;
+    pointer-events: none;
+    left: calc(var(--mouse-x, 0) + 15px);
+    top: calc(var(--mouse-y, 0) + 15px);
     opacity: 0;
     opacity: 0;
     visibility: hidden;
     visibility: hidden;
-    transition: opacity 0.2s ease;
-    pointer-events: none;
-    left: 0;
-    top: 0;
+    transform: scale(0.55) translate3d(0, 4px, 0);
+    transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 1);
   }
   }
+
   .cursor-pointer[data-tooltip]:hover::after {
   .cursor-pointer[data-tooltip]:hover::after {
     opacity: 1;
     opacity: 1;
     visibility: visible;
     visibility: visible;
-    left: calc(var(--mouse-x) + 15px);
-    top: calc(var(--mouse-y) + 15px);
+    transform: scale(1) translate3d(0, 0, 0);
+  }
+  .cursor-pointer1[data-tooltip]::after {
+    position: absolute;
+    left: 0;
+    top: 150%;
   }
   }
 }
 }

+ 35 - 9
utils/useMouseTooltip.js

@@ -1,42 +1,68 @@
 let t = null
 let t = null
 let r = null
 let r = null
 let l = null
 let l = null
+
 export function useMouseTooltip() {
 export function useMouseTooltip() {
-    const u = (e) => {
-        document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
-        document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
+    // 🔥 修复:进入元素时 立刻更新位置 + 节流合并
+    const u = (e, instant = false) => {
+        // 切换元素时 → 强制立刻刷新
+        if (instant) {
+            document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
+            document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
+        }
+
         clearTimeout(t)
         clearTimeout(t)
         t = setTimeout(() => {
         t = setTimeout(() => {
             document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
             document.documentElement.style.setProperty('--mouse-x', e.clientX + 'px')
             document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
             document.documentElement.style.setProperty('--mouse-y', e.clientY + 'px')
         }, 200)
         }, 200)
     }
     }
-    const clearMousePosition = () => {
+
+    const c = () => {
         clearTimeout(t)
         clearTimeout(t)
         document.documentElement.style.removeProperty('--mouse-x')
         document.documentElement.style.removeProperty('--mouse-x')
         document.documentElement.style.removeProperty('--mouse-y')
         document.documentElement.style.removeProperty('--mouse-y')
     }
     }
+
     const i = () => {
     const i = () => {
+        // 鼠标移动 → 节流更新
         r = (e) => {
         r = (e) => {
             if (e.target.closest('.cursor-pointer')) {
             if (e.target.closest('.cursor-pointer')) {
                 u(e)
                 u(e)
             }
             }
         }
         }
+
+        // 鼠标进入新元素 → 🔥 立刻刷新位置(解决你说的问题)
+        const enter = (e) => {
+            if (e.target.closest('.cursor-pointer')) {
+                u(e, true) // 立刻更新
+            }
+        }
+
+        // 鼠标离开 → 延迟清除
         l = (e) => {
         l = (e) => {
             if (e.target.closest('.cursor-pointer')) {
             if (e.target.closest('.cursor-pointer')) {
-                clearMousePosition()
+                clearTimeout(t)
+                t = setTimeout(() => {
+                    c()
+                }, 100)
             }
             }
         }
         }
-        document.addEventListener('mouseenter', r, true)
-        document.addEventListener('mouseleave', l, true)
+
+        document.addEventListener('mousemove', r, true)
+        document.addEventListener('mouseenter', enter, true) // 新增
+        document.addEventListener('mouseout', l, true)
     }
     }
+
     const d = () => {
     const d = () => {
         clearTimeout(t)
         clearTimeout(t)
-        if (r) document.removeEventListener('mouseenter', r, true)
-        if (l) document.removeEventListener('mouseleave', l, true)
+        c()
+        if (r) document.removeEventListener('mousemove', r, true)
+        if (l) document.removeEventListener('mouseout', l, true)
         r = null
         r = null
         l = null
         l = null
     }
     }
+
     i()
     i()
     return d
     return d
 }
 }