feat(apply): 深链 from 参数解析 + 顶栏「返回门户」(T4)——site.ts 新增 resolveFrom(仅 http/https 且域名属本部署可信域,防伪协议/外域注入;session 级内存不落 localStorage),Apply.load 在 resolveSite 后调用,App.vue nav 按需渲染返回门户链接(nav 为主色底 header,白字+分隔线与既有风格一致)

This commit is contained in:
chenxing
2026-10-03 13:29:46 +08:00
parent 4243a5f0e6
commit f636075a5e
4 changed files with 38 additions and 2 deletions
+3 -1
View File
@@ -19,7 +19,7 @@ import { useSite } from "@/utils/site";
import DynamicForm from "@/components/DynamicForm.vue";
const route = useRoute();
const router = useRouter();
const { resolveSite, rememberItem } = useSite();
const { resolveSite, resolveFrom, rememberItem } = useSite();
/** 轮询参数:代发起 + 回调一般在 1s 内完成,给到 ~9s 足够,避免用户盯着"待提交"发懵 */
const POLL_TIMES = 12;
@@ -37,6 +37,8 @@ const schemaJson = computed(() => (item.value?.schemaJson as string) || "");
async function load() {
siteCode.value = resolveSite(route.query.siteCode);
// CMS 指南页来路(T4):校验通过即记入 session,App.vue 顶栏渲染"返回门户"
resolveFrom(route.query.from);
const itemCode = String(route.query.itemCode || "");
if (!siteCode.value || !itemCode) {
loadError.value = "缺少 siteCode/itemCode 参数";