From ed39f5e8cb15ece064c45ee6ee0f370fc740244d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 04 六月 2026 17:11:30 +0800
Subject: [PATCH] 马铃薯app 1.白屏问题解决

---
 src/pages/oa/ReimburseManage/reimburse-form/useFinReimburseForm.js |   16 ++
 src/store/modules/user.ts                                          |    8 -
 src/utils/versionUpgrade.js                                        |   12 +-
 vite.config.js                                                     |   15 ++
 src/App.vue                                                        |  200 ++++++++++++++++++++--------------------
 5 files changed, 132 insertions(+), 119 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index d427b1e..6cf062d 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,111 +1,111 @@
 <template>
-  <Splash v-if="showSplash" />
-  <div v-else>
-    <router-view />
-  </div>
+	<Splash v-if="showSplash" />
+	<view v-else>
+		<router-view />
+	</view>
 </template>
 <script setup>
-  import { ref, onMounted } from "vue";
-  import Splash from "./components/Splash.vue";
-  import { confirmMessage } from "@/api/login.js";
+import { ref, onMounted } from "vue";
+import Splash from "./components/Splash.vue";
+import { confirmMessage } from "@/api/login.js";
 
-  const showSplash = ref(true);
+const showSplash = ref(true);
 
-  onMounted(() => {
-    setTimeout(() => {
-      showSplash.value = false;
-    }, 5000);
+onMounted(() => {
+	setTimeout(() => {
+		showSplash.value = false;
+	}, 5000);
+	
+	// 鍒濆鍖栨帹閫佹湇鍔�,鏆傛椂娉ㄩ噴锛屽鎴烽渶瑕佹墦寮�
+	// initPushService();
+});
+// 鍒濆鍖栨帹閫佹湇鍔★紙uni-push 1.0锛�
+const initPushService = () => {
+	// #ifdef APP-PLUS
+	console.log("寮�濮嬪垵濮嬪寲鎺ㄩ�佹湇鍔★紙uni-push 1.0锛�");
+	if (typeof plus !== "undefined" && plus.push) {
+		console.log("plus.push 瀛樺湪:", plus.push);
+		
+		// 鑾峰彇瀹㈡埛绔帹閫佹爣璇�
+		console.log("浣跨敤 plus.push.getClientInfo 鑾峰彇瀹㈡埛绔爣璇�");
+		plus.push.getClientInfoAsync(info => {
+			console.log("瀹㈡埛绔帹閫佹爣璇�:", info);
+			uni.setStorageSync("clientid", info.clientid);
+			
+			// 杩欓噷鍙互灏嗗鎴风鏍囪瘑鍙戦�佸埌鏈嶅姟鍣�
+		});
+		setTimeout(() => {
+			console.log("浣跨敤 plus.push.getClientInfoAsync 鑾峰彇瀹㈡埛绔爣璇�");
+			plus.push.getClientInfoAsync(info => {
+				console.log("瀹㈡埛绔帹閫佹爣璇�:", info);
+				// 杩欓噷鍙互灏嗗鎴风鏍囪瘑鍙戦�佸埌鏈嶅姟鍣�
+			});
+		}, 1000);
+		
+		// 鐩戝惉鎺ㄩ�佹秷鎭偣鍑讳簨浠�
+		plus.push.addEventListener("click", handlePushClick, false);
+		// 鐩戝惉鎺ㄩ�佹秷鎭帴鏀朵簨浠�
+		plus.push.addEventListener("receive", handlePushReceive, false);
+		console.log("鎺ㄩ�佹湇鍔℃敞鍐屾垚鍔�");
+	} else {
+		console.log("鎺ㄩ�佹湇鍔′笉鍙敤");
+	}
+	// #endif
+};
 
-    // 鍒濆鍖栨帹閫佹湇鍔�,鏆傛椂娉ㄩ噴锛屽鎴烽渶瑕佹墦寮�
-    // initPushService();
-  });
-  // 鍒濆鍖栨帹閫佹湇鍔★紙uni-push 1.0锛�
-  const initPushService = () => {
-    // #ifdef APP-PLUS
-    console.log("寮�濮嬪垵濮嬪寲鎺ㄩ�佹湇鍔★紙uni-push 1.0锛�");
-    if (typeof plus !== "undefined" && plus.push) {
-      console.log("plus.push 瀛樺湪:", plus.push);
+// 澶勭悊鎺ㄩ�佹秷鎭偣鍑讳簨浠�
+const handlePushClick = msg => {
+	console.log("鐐瑰嚮鎺ㄩ�佹秷鎭�:", msg);
+	console.log("瑙f瀽鍚�:", msg.payload.noticeId);
+	try {
+		if (msg.payload.needMarkRead) {
+			confirmMessage(msg.payload.noticeId, 1).then(res => {
+				if (msg.payload.url) {
+					if (msg.payload.url.indexOf("/") === 0) {
+						uni.navigateTo({
+							url: msg.payload.url,
+						});
+					} else {
+						uni.navigateTo({
+							url: "/" + msg.payload.url,
+						});
+					}
+				}
+			});
+		} else {
+			if (msg.payload.url) {
+				if (msg.payload.url.indexOf("/") === 0) {
+					uni.navigateTo({
+						url: msg.payload.url,
+					});
+				} else {
+					uni.navigateTo({
+						url: "/" + msg.payload.url,
+					});
+				}
+			}
+		}
+	} catch (error) {
+		uni.showToast({
+			title: "璺緞:" + msg.payload,
+			icon: "none",
+		});
+		uni.showToast({
+			title: "璺宠浆澶辫触:" + error.message,
+			icon: "none",
+		});
+	}
+	// 瑙f瀽骞跺鐞嗘帹閫佹秷鎭�...
+};
 
-      // 鑾峰彇瀹㈡埛绔帹閫佹爣璇�
-      console.log("浣跨敤 plus.push.getClientInfo 鑾峰彇瀹㈡埛绔爣璇�");
-      plus.push.getClientInfoAsync(info => {
-        console.log("瀹㈡埛绔帹閫佹爣璇�:", info);
-        uni.setStorageSync("clientid", info.clientid);
-
-        // 杩欓噷鍙互灏嗗鎴风鏍囪瘑鍙戦�佸埌鏈嶅姟鍣�
-      });
-      setTimeout(() => {
-        console.log("浣跨敤 plus.push.getClientInfoAsync 鑾峰彇瀹㈡埛绔爣璇�");
-        plus.push.getClientInfoAsync(info => {
-          console.log("瀹㈡埛绔帹閫佹爣璇�:", info);
-          // 杩欓噷鍙互灏嗗鎴风鏍囪瘑鍙戦�佸埌鏈嶅姟鍣�
-        });
-      }, 1000);
-
-      // 鐩戝惉鎺ㄩ�佹秷鎭偣鍑讳簨浠�
-      plus.push.addEventListener("click", handlePushClick, false);
-      // 鐩戝惉鎺ㄩ�佹秷鎭帴鏀朵簨浠�
-      plus.push.addEventListener("receive", handlePushReceive, false);
-      console.log("鎺ㄩ�佹湇鍔℃敞鍐屾垚鍔�");
-    } else {
-      console.log("鎺ㄩ�佹湇鍔′笉鍙敤");
-    }
-    // #endif
-  };
-
-  // 澶勭悊鎺ㄩ�佹秷鎭偣鍑讳簨浠�
-  const handlePushClick = msg => {
-    console.log("鐐瑰嚮鎺ㄩ�佹秷鎭�:", msg);
-    console.log("瑙f瀽鍚�:", msg.payload.noticeId);
-    try {
-      if (msg.payload.needMarkRead) {
-        confirmMessage(msg.payload.noticeId, 1).then(res => {
-          if (msg.payload.url) {
-            if (msg.payload.url.indexOf("/") === 0) {
-              uni.navigateTo({
-                url: msg.payload.url,
-              });
-            } else {
-              uni.navigateTo({
-                url: "/" + msg.payload.url,
-              });
-            }
-          }
-        });
-      } else {
-        if (msg.payload.url) {
-          if (msg.payload.url.indexOf("/") === 0) {
-            uni.navigateTo({
-              url: msg.payload.url,
-            });
-          } else {
-            uni.navigateTo({
-              url: "/" + msg.payload.url,
-            });
-          }
-        }
-      }
-    } catch (error) {
-      uni.showToast({
-        title: "璺緞:" + msg.payload,
-        icon: "none",
-      });
-      uni.showToast({
-        title: "璺宠浆澶辫触:" + error.message,
-        icon: "none",
-      });
-    }
-    // 瑙f瀽骞跺鐞嗘帹閫佹秷鎭�...
-  };
-
-  // 澶勭悊鎺ㄩ�佹秷鎭帴鏀朵簨浠�
-  const handlePushReceive = msg => {
-    console.log("鏀跺埌鎺ㄩ�佹秷鎭�:", msg);
-    // 澶勭悊鎺ユ敹鐨勬帹閫佹秷鎭�...
-  };
+// 澶勭悊鎺ㄩ�佹秷鎭帴鏀朵簨浠�
+const handlePushReceive = msg => {
+	console.log("鏀跺埌鎺ㄩ�佹秷鎭�:", msg);
+	// 澶勭悊鎺ユ敹鐨勬帹閫佹秷鎭�...
+};
 </script>
 
 <style lang="scss">
-  @import "uview-plus/index.scss";
-  @import "@/static/scss/index.scss";
+@import "uview-plus/index.scss";
+@import "@/static/scss/index.scss";
 </style>
\ No newline at end of file
diff --git a/src/pages/oa/ReimburseManage/reimburse-form/useFinReimburseForm.js b/src/pages/oa/ReimburseManage/reimburse-form/useFinReimburseForm.js
index 1c24bee..489f598 100644
--- a/src/pages/oa/ReimburseManage/reimburse-form/useFinReimburseForm.js
+++ b/src/pages/oa/ReimburseManage/reimburse-form/useFinReimburseForm.js
@@ -34,7 +34,14 @@
   getTravelStandardByTier,
 } from "../_utils/travelReimburseUtils.js";
 
-const userStore = useUserStore();
+// 寤惰繜鍒濆鍖� userStore锛岄伩鍏嶅湪妯″潡鍔犺浇鏃惰皟鐢�
+let userStore = null;
+function getUserStore() {
+  if (!userStore) {
+    userStore = useUserStore();
+  }
+  return userStore;
+}
 
 function buildOverBudgetWarnings(f, detailTotal, hotelLimit, transportLimit, mealLimit) {
   const warnings = [];
@@ -198,14 +205,15 @@
   /** 鏂板鏃堕粯璁ゅ甫鍑哄綋鍓嶇櫥褰曚汉锛屽噺灏戦�変汉姝ラ */
   function tryApplyCurrentUser() {
     if (modeRef.value === "edit" || form.applicantId) return;
-    const id = userStore.id;
+    const store = getUserStore();
+    const id = store.id;
     if (!id) return;
     let u = userById(id);
     if (!u) {
       u = {
         userId: id,
-        nickName: userStore.nickName,
-        userName: userStore.name,
+        nickName: store.nickName,
+        userName: store.name,
       };
     }
     fillApplicantFromUser(u);
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 07b0f1c..7a8afc6 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -23,10 +23,9 @@
     currentLoginTime: "",
     roles: Array(),
     permissions: [],
-    routers: [], // 璺敱鏉冮檺鏁版嵁
+    routers: [],
   }),
   actions: {
-    // 閮ㄩ棬鐧诲綍
     loginCheckFactory(userInfo: any) {
       const userName = userInfo.userName.trim();
       const password = userInfo.password;
@@ -34,7 +33,7 @@
       return new Promise((resolve, reject) => {
         loginCheckFactory(userName, password, factoryId)
           .then((res: any) => {
-            const token = res.token || res.data?.token;
+            const token = res.token || (res.data && res.data.token);
             if (token) {
               setToken(token);
               this.token = token;
@@ -48,7 +47,6 @@
           });
       });
     },
-    // 鑾峰彇鐢ㄦ埛淇℃伅
     getInfo() {
       return new Promise((resolve, reject) => {
         getInfo()
@@ -80,7 +78,6 @@
           });
       });
     },
-    // 閫�鍑虹郴缁�
     logOut() {
       return new Promise<null>((resolve, reject) => {
         logout()
@@ -109,7 +106,6 @@
       const seconds = String(now.getSeconds()).padStart(2, "0"); // 绉掓暟琛ラ浂
       return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
     },
-    // 鑾峰彇璺敱鏉冮檺
     getRouters() {
       return new Promise((resolve, reject) => {
         getRoutersApi()
diff --git a/src/utils/versionUpgrade.js b/src/utils/versionUpgrade.js
index 6008dbf..372c813 100644
--- a/src/utils/versionUpgrade.js
+++ b/src/utils/versionUpgrade.js
@@ -26,12 +26,12 @@
 }
 
 async function getCurrentVersion(logPrefix) {
-  let currentVersion = config?.appInfo?.version || "1.0.0";
+  let currentVersion = (config && config.appInfo && config.appInfo.version) || "1.0.0";
   console.log(`${logPrefix} 寮�濮嬭幏鍙栧綋鍓嶇増鏈紝榛樿鍊�:`, currentVersion);
   // #ifdef MP-WEIXIN
   try {
     const accountInfo = uni.getAccountInfoSync();
-    if (accountInfo?.miniProgram?.version) {
+    if (accountInfo && accountInfo.miniProgram && accountInfo.miniProgram.version) {
       currentVersion = accountInfo.miniProgram.version;
       console.log(`${logPrefix} 褰撳墠鐜=MP-WEIXIN锛岀増鏈�=`, currentVersion);
       return currentVersion;
@@ -45,14 +45,14 @@
     // APP-PLUS 涓嬶紝plus.runtime.version 涓嶆槸涓氬姟鐗堟湰鍙凤紙缁忓父鏄繍琛屾椂/SDK鐗堟湰锛夛紝
     // 杩欓噷鏀圭敤 getProperty 鍙栫郴缁熷眰闈㈢殑 app version銆�
     // @ts-ignore
-    if (plus?.runtime?.getProperty) {
+    if (plus && plus.runtime && plus.runtime.getProperty) {
       // @ts-ignore
       const appid = plus.runtime.appid;
       const appInfo = await new Promise((resolve) => {
         // @ts-ignore
         plus.runtime.getProperty(appid, (info) => resolve(info || {}));
       });
-      const v = appInfo?.version || appInfo?.versionName || appInfo?.appVersion || "";
+      const v = (appInfo && appInfo.version) || (appInfo && appInfo.versionName) || (appInfo && appInfo.appVersion) || "";
       if (v) {
         currentVersion = String(v);
         console.log(`${logPrefix} 褰撳墠鐜=APP-PLUS锛岀増鏈�=`, currentVersion);
@@ -90,7 +90,7 @@
     },
     (err) => {
       console.log(`${logPrefix} 瀹夎澶辫触:`, err);
-      uni.showToast({ title: err?.message || "瀹夎鏇存柊鍖呭け璐�", icon: "none" });
+      uni.showToast({ title: (err && err.message) || "瀹夎鏇存柊鍖呭け璐�", icon: "none" });
     }
   );
   // #endif
@@ -101,7 +101,7 @@
   if (!u) return "";
   // 宸茬粡鏄粷瀵瑰湴鍧�锛岀洿鎺ヨ繑鍥�
   if (/^https?:\/\//i.test(u)) return u;
-  const base = String(config?.fileUrl || config?.baseUrl || "").replace(/\/+$/, "");
+  const base = String((config && config.fileUrl) || (config && config.baseUrl) || "").replace(/\/+$/, "");
   const path = u.startsWith("/") ? u : `/${u}`;
   return `${base}${path}`;
 }
diff --git a/vite.config.js b/vite.config.js
index 1d873bb..40ce577 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -7,6 +7,10 @@
         build: {
             minify: true,
             outDir: 'dist',
+            target: 'es2015',
+        },
+        esbuild: {
+            target: 'es2015',
         },
         server: {
             port: '80'
@@ -20,9 +24,14 @@
         css: {
             preprocessorOptions: {
                 scss: {
-                    api: 'modern-compiler'
+                    api: 'legacy'
                 }
             }
-        }
+        },
+        optimizeDeps: {
+            esbuildOptions: {
+                target: 'es2015',
+            },
+        },
     }
-})
\ No newline at end of file
+})

--
Gitblit v1.9.3