diff --git a/src/App.vue b/src/App.vue index 867568a..d1ccc2d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,9 +3,6 @@ import { ref, onMounted, reactive } from "vue"; import layout from "./components/layout.vue"; import { LayoutData } from "./types/Basics"; -import { useRouter } from "vue-router"; - -const router = useRouter(); const isRouterAlive = ref(true), isLogin = ref(false); @@ -36,7 +33,9 @@ provide("reload", reload); onMounted(() => { layoutData.modList = modList; - if (router.currentRoute.value.path === "/") router.replace("/ledger"); + // "/" 落点由 routes.ts 的 { path: "/", redirect: "/ledger" } 处理。 + // 这里不能再用 currentRoute 判断后 replace:冷启动时初始导航尚未解析完, + // currentRoute 恒为 "/",会把 #/routes、#/targets 深链接(含刷新)全部弹回台账。 isLogin.value = true; }); diff --git a/src/components/layout.vue b/src/components/layout.vue index c98af43..4e8c143 100644 --- a/src/components/layout.vue +++ b/src/components/layout.vue @@ -21,7 +21,7 @@ async function reloadRegistry() { Message.success(`已重载:路由 ${d?.loaded ?? "-"} 条 / 目标 ${d?.targets ?? "-"} 条`); lastReloadTime.value = Utils.dateFormat(new Date(), "HH:mm:ss"); } catch (e: any) { - Message.error(e?.message || "重载失败"); + // 错误提示由 alova 全局 onBizError 弹出,这里不重复弹 } finally { reloading.value = false; } diff --git a/src/utils/index.ts b/src/utils/index.ts index 350e021..42f0eed 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -10,7 +10,10 @@ export default class Utils { * @memberof Utils */ public static dateFormat(date: Date | string, fmt: string): string { - if (typeof date === "string") date = date.replace(/\-/g, "/"); + if (typeof date === "string") { + // 网关 Jackson 默认序列化为 ISO(2026-09-23T14:20:12.333):斜杠化后还须去 T,否则 new Date 解析成 Invalid Date + date = date.replace(/\-/g, "/").replace(/T/, " ").replace(/Z$/, ""); + } let dt = new Date(date); let o: IObj = { "M+": dt.getMonth() + 1, //月份 diff --git a/src/views/route/RouteList.vue b/src/views/route/RouteList.vue index 63f3a46..57ad082 100644 --- a/src/views/route/RouteList.vue +++ b/src/views/route/RouteList.vue @@ -101,8 +101,7 @@ async function save(row: any) { }); Message.success(`已保存,注册表加载 ${d?.loaded ?? '-'} 条路由`); } catch (e: any) { - Message.error(e?.message || '保存失败'); - // 失败不留假状态:重拉列表,行 UI 回滚到服务端真值 + // 错误提示由 alova 全局 onBizError 弹出,这里只做回滚,避免双 toast tableRef.value?.refreshData(); } finally { savingId.value = null; diff --git a/src/views/target/TargetList.vue b/src/views/target/TargetList.vue index f9ccafd..7abaa6a 100644 --- a/src/views/target/TargetList.vue +++ b/src/views/target/TargetList.vue @@ -67,8 +67,7 @@ async function save(row: any) { }); Message.success(`已保存,目标表加载 ${d?.targets ?? '-'} 条`); } catch (e: any) { - Message.error(e?.message || '保存失败'); - // 失败不留假状态:重拉列表,行 UI 回滚到服务端真值 + // 错误提示由 alova 全局 onBizError 弹出,这里只做回滚,避免双 toast tableRef.value?.refreshData(); } finally { savingId.value = null;