From c98acc813b9172b18768f6f063bd6dc5d45553cf Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Mon, 10 Mar 2025 10:43:21 +0800
Subject: [PATCH] 输入框,修复小程序中光标位置总是跳到首位的问题

---
 bases/HostBoot.js |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/bases/HostBoot.js b/bases/HostBoot.js
index 41a9460..12f98bc 100644
--- a/bases/HostBoot.js
+++ b/bases/HostBoot.js
@@ -5,6 +5,7 @@
 
 import project from '@project';
 import { Tools } from '@components/common/Tools';
+import { $localStorage } from '@components/common/LocalStorage';
 
 export class HostBoot {
 
@@ -27,9 +28,9 @@
     /**
      * 创建主机类型
      * @param {string} typeName
-     * @param {boolean} [isDefault=false]
+     * @param {string} [isDefault='']
      */
-    createHostType(typeName, isDefault = false) {
+    createHostType(typeName, isDefault = '') {
         if (isDefault === 'default') {
             this._data.defaultHostType = typeName;
         }
@@ -51,7 +52,7 @@
                     };
                 }
                 // 如果有匹配服务器,使用指定的服务器地址
-                if (typeof this._data.hostList[server] !== 'undefined') {
+                else if (typeof this._data.hostList[server] !== 'undefined') {
                     this._data.activeHost[typeName] = {
                         name: server,
                         host: this._data.hostList[server],
@@ -93,6 +94,11 @@
                 type: typeName,
             };
         }
+        // 如果有缓存,优先使用缓存
+        const storageHostTypes = $localStorage.load('HostType');
+        if (typeof storageHostTypes[typeName] !== 'undefined') {
+            this._data.activeHost[typeName] = storageHostTypes[typeName];
+        }
     }
 
     _matchHostName(host) {
@@ -129,8 +135,18 @@
             host: host2,
             type: typeName,
         };
+        // 存储自定义主机配置
+        const storageHostTypes = $localStorage.load('HostType');
+        storageHostTypes[typeName] = this._data.activeHost[typeName];
+        $localStorage.save('HostType', storageHostTypes);
     }
 
+    /**
+     * 清除主机类型缓存
+     */
+    cleanHostStorage() {
+        $localStorage.remove('HostType');
+    }
 
     /**
      * 判断是否为本地开发模式
@@ -171,6 +187,10 @@
         return this._data.activeHost[typeName].name;
     }
 
+    /**
+     * 是否开启本地 mock
+     * @return {boolean}
+     */
     isOnMock() {
         if (this.isDevMod()) {
             return this.getHostName() === 'lc';

--
Gitblit v1.9.1