- A 类主题 loader 原文接入 + env-config 引导 + vite /static 与 /api(8086) 代理(P6/P11)
- GetUserMod 左导航:utils/menuNav.ts 单点实现 path 空锚点跳过、分组收敛、icon 兜底、面包屑基线(对齐 Notice 13afb22 refined 版)
- alova 封装 + api/module/base.ts(getUserMod 可选 appCode,P2 定名;H4 前空树不回落,P3)
- 路由骨架一 SPA 四形态:/admin/{forms,data,stats,dicts}、/f/:code、/app/:appCode/*、/my;self!=top 剥壳(方案 §3.3)
- 规范件落位:tableActions.ts(UserBase 同构源,正文 MD5 不变)、TablePageAlovaNew + useElementHeight、page-wrapper yh-fill 骨架
- view-ui-plus 精确锁 1.3.24;本地零 layout.css/icons.css;avatar 两件由 YschTheme sync 下发
- 剥除:notice 领域 views/api/mock/menu 兜底、alova-vant(mobiapi)、ztree+jquery 与重依赖(按需回补,见 service/docs/T5-report.md 问题单 P52)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
/**
|
||||
* 快应用上下文 /app/:appCode/* 占位(T5)。
|
||||
*
|
||||
* 形态(方案 §6.2 纯 A 形态、手册 §2.1):快应用没有独立前端,UserBase 应用行 pc_url 直接指向
|
||||
* 本路由,中心按<b>那个应用</b>的模块树渲染轻导航/直落单表单——取树走 api/module/base.ts 的
|
||||
* getUserMod(appCode)(参数名按 P2 定稿 appCode)。
|
||||
*
|
||||
* P3 裁决的口径在本页成立:<b>H4 未上线时该请求返回空树,页面就显示空态,绝不回落本应用菜单</b>
|
||||
* (回落会把「要 A 应用的菜单」伪装成「A 应用就这些」)。树渲染与范围矩阵在 T8 落地。
|
||||
*/
|
||||
const route = useRoute();
|
||||
const appCode = computed(() => String(route.params.appCode ?? ""));
|
||||
const view = computed(() => String(route.params.view ?? ""));
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="page-wrapper yh-fill">
|
||||
<div class="main-container">
|
||||
<h4 class="subtitle">快应用上下文</h4>
|
||||
<Alert show-icon type="info">
|
||||
<code>/app/:appCode/*</code> 路由骨架占位;目标应用模块树渲染、单表单直落与应用聚合轻导航在 T8 落地。
|
||||
</Alert>
|
||||
<p class="app-meta">
|
||||
appCode = <b>{{ appCode || "(空)" }}</b>
|
||||
<template v-if="view">|view = <b>{{ view }}</b></template>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.app-meta {
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,20 @@
|
||||
<script setup lang="ts">
|
||||
/**
|
||||
* 应用入口 /(T5)。
|
||||
* 壳在拿到授权模块树后会 replace 到第一个可跳转菜单项(App.vue),正常用户不会停在本页;
|
||||
* 停在这里只有两种情况:一个可跳转模块都没有(未授权 / 平台未配模块行),或外链型菜单。
|
||||
* 这里给的是可 diagnosis 的空态文案,不做任何本地兜底菜单。
|
||||
*/
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="page-wrapper yh-fill">
|
||||
<div class="main-container">
|
||||
<h4 class="subtitle">表单中心</h4>
|
||||
<Alert show-icon type="warning">
|
||||
当前账号在表单中心没有可进入的页面。请确认用户中心已为本应用配置模块行(手册 §2.2 表)并对所属组/角色授权;
|
||||
全员默认应可见「我的填写」。
|
||||
</Alert>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -0,0 +1,39 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
/**
|
||||
* 填报页 /f/:code 占位(T5)。
|
||||
* 本体(code 寻址 + resolve、mode 闭集、控件渲染与校验、提交与幂等、ResizeObserver 高度上报)在 T7 落地。
|
||||
* 本轮只固定两件事:①路由形态与参数名;②self != top 的剥壳态可被肉眼确认(壳由 App.vue 判,
|
||||
* 这里只把它显示出来,方便冒烟时区分直航/嵌入两种形态——方案 §3.3 同一 URL 的两种形态)。
|
||||
*/
|
||||
const route = useRoute();
|
||||
const code = computed(() => String(route.params.code ?? ""));
|
||||
const embedded = window.self !== window.top;
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!-- 嵌入态不套 page-wrapper 骨架:剥壳后由页面自己铺满(T7 接高度上报) -->
|
||||
<div :class="embedded ? 'fill-plain' : 'page-wrapper yh-fill'">
|
||||
<div class="main-container">
|
||||
<h4 class="subtitle">填报</h4>
|
||||
<Alert show-icon type="info">
|
||||
<code>/f/:code</code> 路由骨架占位,表单寻址与答卷提交在 T7 落地。
|
||||
</Alert>
|
||||
<p class="fill-meta">
|
||||
code = <b>{{ code || "(空)" }}</b>
|
||||
|形态 = <b>{{ embedded ? "页面块(self != top,已剥壳)" : "整页(直航,带壳)" }}</b>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.fill-plain {
|
||||
height: 100%;
|
||||
}
|
||||
.fill-meta {
|
||||
margin: 16px 0 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import PageStub from "@/components/PageStub.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageStub title="我的填写" stage="T8" note="全员授权行(手册 §2.2):我提交的/关于我的两视图在 T8 落地,两个视图不做参数分支。" />
|
||||
</template>
|
||||
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import PageStub from "@/components/PageStub.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageStub
|
||||
title="数据管理"
|
||||
stage="T8"
|
||||
note="两段式列表 + keyset(提交时间序)、可见列选择记忆、批量软删/改状态、按钉住版本编辑在 T8 落地;数据范围(scope)由后端裁决,前端只消费。"
|
||||
/>
|
||||
</template>
|
||||
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import PageStub from "@/components/PageStub.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageStub
|
||||
title="字典管理"
|
||||
stage="T6"
|
||||
note="form_dict / form_dict_item 两级维护、条目 value 不可变、options.source=dict:{code} 引用在 T6 落地;平台级字典(sch_id=0)只在超管上下文维护(方案 §6.5)。"
|
||||
/>
|
||||
</template>
|
||||
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import PageStub from "@/components/PageStub.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageStub
|
||||
title="表单设计"
|
||||
stage="T6"
|
||||
note="设计器三件套(14 类控件面板 + 属性面板 + 表单级配置)、发布/升版流程、另存为副本在 T6 落地。"
|
||||
/>
|
||||
</template>
|
||||
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import PageStub from "@/components/PageStub.vue";
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageStub
|
||||
title="统计"
|
||||
stage="T8"
|
||||
note="总数/按状态/按字段分组走接口聚合(铁律④:前端不自己聚合),缓存失效仅升版;UserBase 侧「统计」行可并入数据管理,二选一。"
|
||||
/>
|
||||
</template>
|
||||
Reference in New Issue
Block a user