From ed12cd465254a6c3dfef2b1045fadae1f3b9b9bb Mon Sep 17 00:00:00 2001
From: ‘chensiAb’ <‘chenchenco03@163.com’>
Date: Thu, 06 Mar 2025 09:36:00 +0800
Subject: [PATCH] style:自定义导航-改为绝对定位于顶部,引用时需要显示的设置padding

---
 bases/Pilot.js |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/bases/Pilot.js b/bases/Pilot.js
index 295eb12..6dcacf0 100644
--- a/bases/Pilot.js
+++ b/bases/Pilot.js
@@ -4,8 +4,7 @@
  */
 
 import Taro, { getCurrentInstance, getCurrentPages } from '@tarojs/taro';
-import { Fetcher } from './Fetcher';
-import { Tools } from '@components/common/Tools';
+import { $hostBoot } from '@components/bases/HostBoot';
 import project from '@project';
 
 export class Pilot {
@@ -22,10 +21,15 @@
             methods: {},
         };
         const names = [];
+        let parent = null;
         // 实例本身的字段
         Object.getOwnPropertyNames(this).forEach(name => names.push(name));
-        // 类的字段
-        Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach(name => names.push(name));
+        // 基类的字段,直到Pilot为止(不含Pilot)
+        parent = Object.getPrototypeOf(this);
+        while (parent instanceof Pilot) {
+            Object.getOwnPropertyNames(parent).forEach(name => names.push(name));
+            parent = Object.getPrototypeOf(parent);
+        }
         // 传递
         names.forEach(name => {
             // 构造器忽略,如果存在属性 $methods 也忽略
@@ -92,6 +96,8 @@
     // 创建页面通讯器
     static createPoster($vm) {
         return (pageType, action, data) => {
+            // 解除引用关系
+            const nextData = JSON.parse(JSON.stringify(data || {}));
             // 下一页
             if (pageType === 'nextPage') {
                 // 持续 3 秒,检测下一页是否存在
@@ -105,7 +111,7 @@
                     const nextPage = currentPages[pageIndex + 1];
                     if (nextPage) {
                         clearInterval(timer);
-                        nextPage.$component.$onMessage(action, data);
+                        nextPage.$component?.$onMessage(action, nextData);
                     }
                 }, 50);
             } else if (pageType === 'prevPage') {
@@ -113,12 +119,12 @@
                 const pageIndex = currentPages.findIndex(page => page.$component === $vm);
                 const prevPage = currentPages[pageIndex - 1];
                 if (prevPage) {
-                    prevPage.$component.$onMessage(action, data);
+                    prevPage.$component?.$onMessage(action, nextData);
                 }
             } else if (pageType === 'rootPage') {
                 const currentPages = getCurrentPages();
                 const rootPage = currentPages[0];
-                rootPage.$component.$onMessage(action, data);
+                rootPage.$component?.$onMessage(action, nextData);
             }
         };
     }
@@ -143,7 +149,7 @@
             }
             // 小程序
             else if (process.env.TARO_ENV === 'weapp') {
-                assets2[key] = Fetcher.host + project.host.assetsPath + asset;
+                assets2[key] = $hostBoot.getHost() + project.host.assetsPath + asset;
             }
         });
         return assets2;

--
Gitblit v1.9.1