feat: 办事大厅用户面前端(hall)首版入库——由 app/public 改名去 app 层;build.yml 修并发撞名容exit137
build / build (push) Successful in 3m6s
build / build (push) Successful in 3m6s
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
<script setup lang="ts">
|
||||
/**
|
||||
* 公共办事大厅外壳(学生/教师/访客入口):
|
||||
* 顶栏(站点名 + 在线办理/我的办件导航 + 当前用户)+ 内容区。
|
||||
* 与后台前端(front/)刻意不同:不渲染平台模块菜单(app_module 是管理端契约),
|
||||
* 只做两个入口——办事大厅、我的办件(详情/办理页从列表进入)。
|
||||
*
|
||||
* 皮肤:启动时按运行时配置(env-config 的 theme/themeParams)应用皮肤包;
|
||||
* 未配置 → default;未注册 → default(整页回退,见 utils/theme.ts)。
|
||||
*/
|
||||
import { onMounted, ref } from "vue";
|
||||
import { baseApi } from "@/api/module/base";
|
||||
import config from "@/assets/config/host.config";
|
||||
import { applyTheme, resolveTheme, type ThemeManifest } from "@/utils/theme";
|
||||
|
||||
const userName = ref("");
|
||||
const theme = ref<ThemeManifest>(resolveTheme(null));
|
||||
|
||||
onMounted(async () => {
|
||||
// 皮肤先应用(首屏观感),再拉用户信息——用户信息失败不影响办理页面使用
|
||||
theme.value = applyTheme(config.theme, config.themeParams);
|
||||
try {
|
||||
const user: any = await baseApi.getUserInfo().send();
|
||||
userName.value = user?.name || "";
|
||||
} catch (e: any) {
|
||||
// CAS 未登录时平台层会跳转登录页(error.message === "redirect"),此处不打扰用户
|
||||
if (e?.message !== "redirect") {
|
||||
console.warn("[public-hall] 获取用户信息失败", e);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="sh-shell">
|
||||
<header class="sh-header">
|
||||
<div class="sh-brand">
|
||||
办事大厅
|
||||
<small>在线办理 · {{ theme.title }}</small>
|
||||
</div>
|
||||
<nav class="sh-nav">
|
||||
<router-link to="/hall">办事大厅</router-link>
|
||||
<router-link to="/my">我的办件</router-link>
|
||||
</nav>
|
||||
<span class="sh-user" v-if="userName">{{ userName }}</span>
|
||||
</header>
|
||||
<main class="sh-main">
|
||||
<router-view :key="$route.fullPath" />
|
||||
</main>
|
||||
<footer class="sh-footer">云海平台 · 办事大厅(在线申请入口)</footer>
|
||||
</div>
|
||||
</template>
|
||||
Reference in New Issue
Block a user