原始分析日期:2026-10-09(Asia/Shanghai)
状态补充日期:2026-10-14(Asia/Shanghai)
范围:当前工作区;分支 rebuild,HEAD 6c38326443f8b967897590fef6cd3d20de4c02e3。
配套说明:项目分析。
第 1~8 节保留 2026-10-09 的完整清单快照,原行号、视图规模、90 条路由与验证结果仅适用于当时。当前静态解析得到 92 条记录 = 13 条 constant + 79 条 async,新增的两条记录为公共布局与注册子页面,不代表两个独立业务页面;其余页面清单本次未重新生成。
| 路径 / 层级 | 当前组件 | 名称与配置 | 路由来源 |
|---|---|---|---|
/signup 父记录 |
src/ui-refactor/index.vue | hidden,承载公共页头 / 横幅 / 页脚与 router-view | src/router/modules/refactor.js |
/signup 子记录 |
SignupPage.vue | PublicSignup,meta.publicLayout.showHeader: false |
同上,叶子路由提供 Hero 配置 |
src/router/index.js 将该模块加入 constantRoutes;匿名白名单保留 /signup。登录 Register 和注册 Sign in 透传查询参数。当前布局懒加载为返回 import() Promise 的函数,已消除旧 component: () => newLayout 写法;本次只核对定义,没有重新执行浏览器导航。
注册页私有组件和业务模块位于 src/ui-refactor/views/signup/components/,它们由页面组合,不是独立路由。新页使用游客接口与 Paystack V2,旧 src/views/user/welcome-pack.vue 仍保留。当前维护说明见 公共框架 和 注册功能;第 3 节“新 UI 独立目录”的旧描述只表示当时未建立独立登录页,不适用于当前注册实现。
src/router/index.js 和 12 个模块,按 Vue Router 的绝对/相对子路径规则组合路径;检查引用视图实际存在。未执行路由导航。src/views 共 114 个 Vue 文件 = 65 个静态路由引用文件 + 32 个无独立路由的入口/私有组件 + 17 个未静态接入的页面/关联子页面。后两类共 49 个,不应全部称为“死页面”。表中的 hidden 包括自身或上级静态 hidden,只解释静态声明;实际菜单的 show 字段需另核对。noCache / affix / roles 记录原字段:当前 keep-alive 与 TagsView UI 未启用,guard 也没有按 meta.roles 过滤,因此字段存在不等于行为生效。源码列冒号后是当前文件行号,链接指向真实文件。
| 完整路径 | 组件 / 容器 | name | title | redirect | 声明标记 | 路由源码:行 |
|---|---|---|---|---|---|---|
/redirect |
src/layout/index.vue | — | — | — | hidden(自身/父级) | src/router/index.js:50 |
/redirect/:path(.*) |
src/views/redirect/index.vue | — | — | — | hidden(自身/父级) | src/router/index.js:55 |
/login |
src/views/login/index.vue | — | 会员管理系统 | — | hidden(自身/父级) | src/router/index.js:61 |
/auth-redirect |
src/views/login/auth-redirect.vue | — | — | — | hidden(自身/父级) | src/router/index.js:67 |
/login-by-backend |
src/views/login/login-by-backend.vue | login-by-backend |
— | — | — | src/router/index.js:72 |
/404 |
src/views/error-page/404.vue | — | — | — | hidden(自身/父级) | src/router/index.js:77 |
/401 |
src/views/error-page/401.vue | — | — | — | hidden(自身/父级) | src/router/index.js:82 |
/ |
src/layout/index.vue | — | — | /dashboard/index |
— | src/router/index.js:87 |
/dashboard/index |
src/views/dashboard/index.vue | Dashboard |
dashboard | — | affix | src/router/index.js:92 |
/dashboard/index |
src/layout/index.vue | — | — | /dashboard/index |
— | src/router/index.js:100 |
/dashboard/index/dashboard |
src/views/dashboard/index.vue | Dashboard |
dashboard | — | affix | src/router/index.js:105 |
独立视图:/login、/auth-redirect、/login-by-backend、/401、/404。/redirect 和 dashboard 均套 Layout。错误页虽然在 constantRoutes,仍不在守卫匿名白名单;“constant”不能解释为匿名可访问。
| 完整路径 | 组件 / 容器 | name | title | redirect | 声明标记 | 路由源码:行 |
|---|---|---|---|---|---|---|
/permission |
src/layout/index.vue | Permission |
permission | /permission/page |
roles=admin/editor | src/router/index.js:120 |
/permission/page |
src/views/permission/page.vue | PagePermission |
pagePermission | — | roles=admin | src/router/index.js:132 |
/permission/directive |
src/views/permission/directive.vue | DirectivePermission |
directivePermission | — | — | src/router/index.js:141 |
/permission/role |
src/views/permission/role.vue | RolePermission |
rolePermission | — | roles=admin | src/router/index.js:150 |
/icon |
src/layout/index.vue | — | — | — | — | src/router/index.js:162 |
/icon/index |
src/views/icons/index.vue | Icons |
icons | — | noCache | src/router/index.js:166 |
/components |
src/layout/index.vue | ComponentDemo |
components | noRedirect |
— | src/router/modules/components.js:5 |
/components/tinymce |
src/views/components-demo/tinymce.vue | TinymceDemo |
tinymce | — | — | src/router/modules/components.js:15 |
/components/json-editor |
src/views/components-demo/json-editor.vue | JsonEditorDemo |
jsonEditor | — | — | src/router/modules/components.js:21 |
/components/split-pane |
src/views/components-demo/split-pane.vue | SplitpaneDemo |
splitPane | — | — | src/router/modules/components.js:27 |
/components/avatar-upload |
src/views/components-demo/avatar-upload.vue | AvatarUploadDemo |
avatarUpload | — | — | src/router/modules/components.js:33 |
/components/dropzone |
src/views/components-demo/dropzone.vue | DropzoneDemo |
dropzone | — | — | src/router/modules/components.js:39 |
/components/sticky |
src/views/components-demo/sticky.vue | StickyDemo |
sticky | — | — | src/router/modules/components.js:45 |
/components/count-to |
src/views/components-demo/count-to.vue | CountToDemo |
countTo | — | — | src/router/modules/components.js:51 |
/components/mixin |
src/views/components-demo/mixin.vue | ComponentMixinDemo |
componentMixin | — | — | src/router/modules/components.js:57 |
/components/back-to-top |
src/views/components-demo/back-to-top.vue | BackToTopDemo |
backToTop | — | — | src/router/modules/components.js:63 |
/components/drag-dialog |
src/views/components-demo/drag-dialog.vue | DragDialogDemo |
dragDialog | — | — | src/router/modules/components.js:69 |
/components/drag-select |
src/views/components-demo/drag-select.vue | DragSelectDemo |
dragSelect | — | — | src/router/modules/components.js:75 |
/components/dnd-list |
src/views/components-demo/dnd-list.vue | DndListDemo |
dndList | — | — | src/router/modules/components.js:81 |
/components/drag-kanban |
src/views/components-demo/drag-kanban.vue | DragKanbanDemo |
dragKanban | — | — | src/router/modules/components.js:87 |
/charts |
src/layout/index.vue | Charts |
charts | noRedirect |
— | src/router/modules/charts.js:5 |
/charts/keyboard |
src/views/charts/keyboard.vue | KeyboardChart |
keyboardChart | — | noCache | src/router/modules/charts.js:15 |
/charts/line |
src/views/charts/line.vue | LineChart |
lineChart | — | noCache | src/router/modules/charts.js:21 |
/charts/mix-chart |
src/views/charts/mix-chart.vue | MixChart |
mixChart | — | noCache | src/router/modules/charts.js:27 |
/nested |
src/layout/index.vue | Nested |
nested | /nested/menu1/menu1-1 |
— | src/router/modules/nested.js:5 |
/nested/menu1 |
src/views/nested/menu1/index.vue | Menu1 |
menu1 | /nested/menu1/menu1-1 |
— | src/router/modules/nested.js:15 |
/nested/menu1/menu1-1 |
src/views/nested/menu1/menu1-1/index.vue | Menu1-1 |
menu1-1 | — | — | src/router/modules/nested.js:22 |
/nested/menu1/menu1-2 |
src/views/nested/menu1/menu1-2/index.vue | Menu1-2 |
menu1-2 | /nested/menu1/menu1-2/menu1-2-1 |
— | src/router/modules/nested.js:28 |
/nested/menu1/menu1-2/menu1-2-1 |
src/views/nested/menu1/menu1-2/menu1-2-1/index.vue | Menu1-2-1 |
menu1-2-1 | — | — | src/router/modules/nested.js:35 |
/nested/menu1/menu1-2/menu1-2-2 |
src/views/nested/menu1/menu1-2/menu1-2-2/index.vue | Menu1-2-2 |
menu1-2-2 | — | — | src/router/modules/nested.js:41 |
/nested/menu1/menu1-3 |
src/views/nested/menu1/menu1-3/index.vue | Menu1-3 |
menu1-3 | — | — | src/router/modules/nested.js:49 |
/nested/menu2 |
src/views/nested/menu2/index.vue | Menu2 |
menu2 | — | — | src/router/modules/nested.js:57 |
/table |
src/layout/index.vue | Table |
Table | /table/complex-table |
— | src/router/modules/table.js:5 |
/table/dynamic-table |
src/views/table/dynamic-table/index.vue | DynamicTable |
dynamicTable | — | — | src/router/modules/table.js:15 |
/table/drag-table |
src/views/table/drag-table.vue | DragTable |
dragTable | — | — | src/router/modules/table.js:21 |
/table/inline-edit-table |
src/views/table/inline-edit-table.vue | InlineEditTable |
inlineEditTable | — | — | src/router/modules/table.js:27 |
/table/complex-table |
src/views/table/complex-table.vue | ComplexTable |
complexTable | — | — | src/router/modules/table.js:33 |
/shop |
src/layout/index.vue | Shopping Mall |
shop | /shop/standard-products |
— | src/router/modules/shop.js:3 |
/shop/standard-products |
src/views/shop/standard-products.vue | repeatPurchase |
Repeat Purchase | — | — | src/router/modules/shop.js:13 |
/shop/car-fund-products |
src/views/shop/car-fund-products.vue | CarFundProducts |
Car Fund Products | — | — | src/router/modules/shop.js:19 |
/shop/villa-fund-products |
src/views/shop/villa-fund-products.vue | VillaFundProducts |
Villa Fund Products | — | — | src/router/modules/shop.js:25 |
/shop/dec-order-list |
src/views/shop/dec-order-list.vue | DecOrderList |
Welcome Pack Listing | — | — | src/router/modules/shop.js:31 |
/shop/reconsume |
src/views/shop/reconsume.vue | memberRepeatPurchase |
Member Repeat Purchase | — | — | src/router/modules/shop.js:37 |
/shop/own-order |
src/views/shop/order-list.vue | OrderList |
My Order | — | — | src/router/modules/shop.js:43 |
/shop/ba-dec-order-list |
src/views/shop/ba-dec-order-list.vue | BaDecOrderList |
Welcome Listing | — | — | src/router/modules/shop.js:49 |
/shop/member-order |
src/views/user/member-order.vue | memberOrder |
Member Order | — | noCache | src/router/modules/shop.js:55 |
/shop/auto-maintenance |
src/views/user/member-auto-maintenance.vue | memberAutoMaintenance |
Member Auto-Maintenance | — | noCache | src/router/modules/shop.js:61 |
/profile |
src/layout/index.vue | — | — | /profile/index |
hidden(自身/父级) | src/router/modules/profile.js:3 |
/profile/index |
src/views/profile/index.vue | Profile |
Personal Info | — | hidden(自身/父级);noCache | src/router/modules/profile.js:9 |
/config |
src/layout/index.vue | Setting |
config | /config/receive-address-list |
— | src/router/modules/config.js:3 |
/config/receive-address-list |
src/views/config/shipping-address-list.vue | ShippingAddressList |
Shipping Address | — | — | src/router/modules/config.js:13 |
/config/profile |
src/views/profile/index.vue | Profile |
Personal Info | — | noCache | src/router/modules/config.js:19 |
/atlas |
src/layout/index.vue | — | — | /atlas/network |
hidden(自身/父级) | src/router/modules/atlas.js:3 |
/atlas/network |
src/views/atlas/placement-network.vue | placementNetwork |
Placement Network | — | hidden(自身/父级);noCache | src/router/modules/atlas.js:9 |
/atlas/relation |
src/views/atlas/sponsor-network.vue | sponsorNetwork |
Sponsor Network | — | hidden(自身/父级);noCache | src/router/modules/atlas.js:15 |
/atlas/network-ex |
src/views/atlas/placement-network-ex.vue | placementNetworkEx |
Placement Network Ex | — | hidden(自身/父级);noCache | src/router/modules/atlas.js:21 |
/atlas/relation-ex |
src/views/atlas/sponsor-network-ex.vue | sponsorNetworkEx |
Sponsor Network Ex | — | hidden(自身/父级);noCache | src/router/modules/atlas.js:27 |
/atlas/brand-ambassador-list |
src/views/atlas/brand-ambassador-list.vue | BrandAmbassadorList |
Brand Ambassador List | — | hidden(自身/父级);noCache | src/router/modules/atlas.js:33 |
/article |
src/layout/index.vue | — | — | /article/article-list |
hidden(自身/父级) | src/router/modules/article.js:3 |
/article/article-list |
src/views/article/article-list.vue | SystemNotification |
System Notification | — | hidden(自身/父级) | src/router/modules/article.js:9 |
/bonus |
src/layout/index.vue | Bonus Management |
bonus | /bonus/index |
— | src/router/modules/bonus.js:3 |
/bonus/index |
src/views/bonus/account-list.vue | memberAccount |
My Account | — | — | src/router/modules/bonus.js:13 |
/bonus/other |
src/views/bonus/bonus-list.vue | previousBonus |
Previous Bonus | — | — | src/router/modules/bonus.js:19 |
/bonus/historical-cumulative-bonus |
src/views/bonus/historical-cumulative-bonus.vue | historicalCumulativeBonus |
Historical Cumulative Bonus | — | — | src/router/modules/bonus.js:25 |
/bonus/teams |
src/views/bonus/team-inquiry.vue | teamInquiry |
Team Inquiry | — | — | src/router/modules/bonus.js:31 |
/finance |
src/layout/index.vue | Bonus Management |
finance | /finance/transfer-list |
— | src/router/modules/finance.js:3 |
/finance/transfer-list |
src/views/finance/transfer-list.vue | TransferList |
Transfer | — | — | src/router/modules/finance.js:13 |
/finance/recharge |
src/views/finance/recharge-list.vue | RechargeList |
Recharge Details | — | — | src/router/modules/finance.js:19 |
/user |
src/layout/index.vue | — | — | /user/dec |
hidden(自身/父级) | src/router/modules/user.js:3 |
/user/ba-dec |
src/views/user/brand-ambassador.vue | brandAmbassador |
Welcome Brand Ambassador | — | hidden(自身/父级);noCache | src/router/modules/user.js:9 |
/user/upgrade |
src/views/user/member-upgrade.vue | memberUpgrade |
Member Upgrade | — | hidden(自身/父级);noCache | src/router/modules/user.js:15 |
/user/dec |
src/views/user/welcome-pack.vue | welcomePack |
Member Welcome Pack | — | hidden(自身/父级);noCache | src/router/modules/user.js:21 |
/user/index |
src/views/profile/index.vue | Profile |
Personal Info | — | hidden(自身/父级);noCache | src/router/modules/user.js:27 |
/error |
src/layout/index.vue | ErrorPages |
errorPages | noRedirect |
— | src/router/index.js:188 |
/error/401 |
src/views/error-page/401.vue | Page401 |
page401 | — | noCache | src/router/index.js:198 |
/error/404 |
src/views/error-page/404.vue | Page404 |
page404 | — | noCache | src/router/index.js:204 |
/error-log |
src/layout/index.vue | — | — | — | — | src/router/index.js:213 |
/error-log/log |
src/views/error-log/index.vue | ErrorLog |
errorLog | — | — | src/router/index.js:217 |
* |
— | — | — | /404 |
hidden(自身/父级) | src/router/index.js:227 |
[已确认] 页面组件路径大小写和文件名按本地实际解析记录;路由标题为源码原值,有些是翻译 key,有些是英文文案,不代表界面最终显示文本。父路由 Layout 行和 wildcard 行不是独立业务页面。
| 状态 | 范围 | 布局 / 数据入口 |
|---|---|---|
| 已确认 | 普通登录 | 根 router-view 下独立页面;.ng-login-v2、Element Card/Form/Input/Button、自有品牌布局;English |
| 已确认 | 快捷登录 / auth 回调 | 独立流程页,分别处理后台参数和回调缓存/关窗 |
| 已确认 | 顶层 /401、/404 | 独立错误页面;登录守卫仍会处理匿名访问 |
| 已确认 | /error/401、/error/404 | 同一错误组件,外层有 Layout |
| 已确认 | Dashboard 与业务页、演示页 | Layout → Sidebar/Navbar/AppMain → route view |
| 已确认 | nested | Layout → menu1 router-view → menu1-2 router-view → 子页面 |
| 已确认 | Profile 三个入口 | 同一个 Profile 文件,内部渲染 UserCard、Account、LoginPassword、PaymentPassword |
| 已确认 | 后端侧栏 | baseInfo.menu → permission.generateRoutes/generaMenu → SidebarItem;不是完整静态路由清单 |
| 待确认 | 新 UI 独立目录 | 当前未发现 src/ui-refactor/login 实现;不能按旧文档目录建议声称新登录未接入。实际 /login 已指向现有改动后的 index.vue |
| 状态 | 事项 | 证据与实际验证边界 |
|---|---|---|
| 已确认 | 重复 Dashboard name | 两条 dashboard 子记录;/dashboard/index 也重复为页面/父路径,父记录 redirect 到自身 |
| 已确认 | 重复 Profile name | profile、config、user 三模块;同组件多入口 |
| 已确认 | 重复 Bonus Management name | bonus / finance 父记录 |
| 已确认 | noRedirect 字段 | /components、/charts、/error 父记录;值被实际交给 Router,不能仅按“面包屑不可点”解释 |
| 已确认 | 静态未声明 /shop/index | 当前 dashboard 轮播使用该链接;shop 静态入口是 /shop/standard-products |
| 已确认 | 后端 menu 依赖固定索引 | user/getBaseInfo 改写 ret.menu[3].child[1].routePath;更换菜单结构会影响访问 |
| 待确认 | 上述重名/重定向/链接的运行后果 | 尚未运行浏览器;named navigation、刷新、父路径直达、实际后端菜单应单独验证 |
| 待确认 | 演示路由是否允许保留在发布版本 | 已注册不等于用户需求或可以删除;需明确业务范围 |
表内行数为当前文本按换行拆分的规模指标,仅用于定位,不作为强制拆分门槛。API 列列举静态直接 import,或注明父组件/action 间接依赖;不保证包含动态 import、上传/图像/支付外部请求等全部调用。具体字段、时序与风险证据见项目分析。
| 视图文件 | 静态入口 | 文本行数 | API 依赖 | 重构重点 / 风险推断 |
|---|---|---|---|---|
| src/views/article/article-list.vue | /article/article-list |
126 | src/api/article.js | 中高:列表/分类映射、详情弹窗、服务端 HTML、时间转换;分页参数及富文本信任边界 |
| src/views/atlas/brand-ambassador-list.vue | /atlas/brand-ambassador-list |
90 | src/api/atlas.js | 中:API 列表/查询、等级与国际化展示 |
| src/views/atlas/placement-network-ex.vue | /atlas/network-ex |
219 | src/api/atlas.js | 中高:TreeChart + 树数据转换、懒展开/点击节点、图表尺寸;menu 中的实际入口待确认 |
| src/views/atlas/placement-network.vue | /atlas/network |
233 | src/api/atlas.js | 中高:顶级会员、时期、层级、安置网络/明细接口与筛选联动 |
| src/views/atlas/sponsor-network-ex.vue | /atlas/relation-ex |
216 | src/api/atlas.js | 中高:TreeChart + 推荐树数据、点击扩展/时期;baseInfo action 硬编码菜单路径 |
| src/views/atlas/sponsor-network.vue | /atlas/relation |
230 | src/api/atlas.js | 中高:推荐网络/明细接口、会员/时期/层级联动 |
| src/views/bonus/account-list.vue | /bonus/index |
240 | src/api/bonus.js | 中高:钱包卡片、账户流水/业绩弹窗、分页与金额格式;只读页面但交易字段敏感 |
| src/views/bonus/bonus-list.vue | /bonus/other |
116 | src/api/bonus.js | 中:奖金列表/时期与详情弹窗,不属于普通静态卡片 |
| src/views/bonus/historical-cumulative-bonus.vue | /bonus/historical-cumulative-bonus |
65 | src/api/bonus.js | 中:历史累计奖金数据映射/金额展示 |
| src/views/bonus/team-inquiry.vue | /bonus/teams |
170 | src/api/bonus.js | 中:团队查询数据、汇总与列表结构 |
| src/views/config/shipping-address-list.vue | /config/receive-address-list |
324 | src/api/config.js | 高:地址新建/编辑/删除/默认切换;字段与地区契约,不能用 UI 调整授权真实写操作 |
| src/views/dashboard/index.vue | /dashboard/index、/dashboard/index/dashboard |
34 | 经 admin → dashboard action / article API | 中高:动态组件入口实际选择 admin;admin 页缓存、轮播/文章 API、会员时钟、退出与 v-html;已有用户改动 |
| src/views/finance/recharge-list.vue | /finance/recharge |
439 | src/api/finance.js、src/api/file.js | 高:银行、充值新增/编辑、条件校验、凭证上传、列表及错误收尾 |
| src/views/finance/transfer-list.vue | /finance/transfer-list |
360 | src/api/finance.js、src/api/user.js | 高:授权码、余额、手续费、最低金额、收款人、密码 prompt 和真实转账 |
| src/views/login/auth-redirect.vue | /auth-redirect |
16 | 经 user/settings actions → user/setting API | 中:window.location.search 写 x-admin-oauth-code 后关闭窗口;当前第三方登录链路是否使用待确认 |
| src/views/login/index.vue | /login |
719 | 经 user/settings actions → user/setting API | 高:pageId、条件验证码、English 同步、Enter、焦点、请求/缓存/redirect;Register/Shop now 展示,忘记密码仅 Notification |
| src/views/login/login-by-backend.vue | /login-by-backend |
71 | 经 user/settings actions → user/setting API | 高:清旧缓存、解析 URL 参数、快捷登录→用户信息→baseInfo;后台授权参数契约待确认 |
| src/views/profile/index.vue | /profile/index、/config/profile、/user/index |
96 | 经私有组件 → user API / settings action | 高:三个路径共用;缓存/国家/等级、邮箱保存、登录/支付密码子组件;修改密码含退出行为 |
| src/views/shop/ba-dec-order-list.vue | /shop/ba-dec-order-list |
204 | src/api/shop.js | 中高:BA 报单筛选/分页、专有下载接口 |
| src/views/shop/car-fund-products.vue | /shop/car-fund-products |
615 | src/api/shop.js | 高:商品类别、账户/购物车/运费和支付提交;不可因与普通商品相似就合并规则 |
| src/views/shop/dec-order-list.vue | /shop/dec-order-list |
204 | src/api/shop.js | 中高:报单筛选/分页、文件 URL 下载,业务字段与文件源 |
| src/views/shop/order-list.vue | /shop/own-order |
214 | src/api/shop.js | 中高:自身订单筛选/分页、下载 URL 和新窗口;不是 blob 统一下载 |
| src/views/shop/reconsume.vue | /shop/reconsume |
923 | src/api/shop.js、src/api/config.js、src/api/user.js | 高:复消商品、成员查询/地址、账户/运费、密码、Paystack和订单状态 |
| src/views/shop/standard-products.vue | /shop/standard-products |
826 | src/api/shop.js | 高:商品/购物车、数量/折扣/税/运费、地址、余额、payForm、支付密码、Paystack/订单、取消/倒计时 |
| src/views/shop/villa-fund-products.vue | /shop/villa-fund-products |
615 | src/api/shop.js | 高:房奖类别、账户/购物车/运费和支付提交;与车奖需逐项核对差异 |
| src/views/user/brand-ambassador.vue | /user/ba-dec |
659 | src/api/shop.js、src/api/user.js | 高:新建 BA 会员信息、网络检查、支付/临时订单/取消/回调 |
| src/views/user/member-auto-maintenance.vue | /shop/auto-maintenance |
952 | src/api/shop.js、src/api/config.js、src/api/user.js | 高:维护商品/会员/地址、账户与订单/支付、倒计时;勿和复消简单按外观合并 |
| src/views/user/member-order.vue | /shop/member-order |
215 | src/api/user.js | 中高:会员订单与用户 API 出口,过滤/分页/下载 |
| src/views/user/member-upgrade.vue | /user/upgrade |
693 | src/api/shop.js、src/api/user.js | 高:升级资格/等级、会员和支付参数、支付/取消/倒计时 |
| src/views/user/welcome-pack.vue | /user/dec |
890 | src/api/shop.js、src/api/user.js | 高:Welcome Pack/BA 升级、会员/地区/自动区位、支付与缓存依赖 |
| 状态 | 路由组 | 视图用途 / 验证边界 |
|---|---|---|
| 已确认 | /permission/* | page/directive/role 模板演示;role 请求 /vue-element-admin/roles/routes;SwitchRoles 调 changeRoles |
| 已确认 | /icon/index | Svg 与 Element 图标展示、复制 |
| 已确认 | /components/* | 富文本/JSON、分栏、裁剪、上传、sticky/count、返回顶部、拖拽等 13 个演示入口 |
| 已确认 | /charts/* | 3 个图表入口,调用公共 Charts;不等于会员业务首页图表已展示 |
| 已确认 | /nested/* | 7 个容器/子记录;展示多层 Router View,非会员业务模块 |
| 已确认 | /table/* | dynamic、drag、inline-edit、complex 共 4 个入口;部分使用模板 article API |
| 已确认 | /table/complex-table | 主要 fetch/create/update/PV 请求代码被注释;getList 设 listLoading=true;不能承诺为可用 CRUD 功能 |
| 已确认 | /error-log/log | 演示 ErrorTestA/B;错误记录模块存在,但 Navbar 入口已注释 |
| 待确认 | 所有上述演示入口 | 当前是否部署、接口是否可用、是否应隐藏或后续删除;本轮没有改变它们 |
以下是父入口或页面内部组件。[已确认] 没有被静态路由直接引用,但存在父组件或辅助用途;不是 32 个额外导航页面。调用方来自 AST 静态 import;仅有 import 不能证明模板渲染。部分演示父组件本身也未接入。
关键状态:
这些文件没有被当前 static router 引用。[已确认] 部分存在彼此之间的 import 或内部组件;[待确认] 后端动态菜单是否指向相关路径、外部入口或未来保留计划。generaMenu 本身不把菜单动态映射成这些文件,因此不能单靠菜单名称认为它们已经接入,也不能据此删除。
| 文件 | 文本行数 | 静态调用方 | 直接 API |
|---|---|---|---|
| src/views/clipboard/index.vue | 50 | 未发现静态 import 调用方 | — |
| src/views/documentation/index.vue | 58 | 未发现静态 import 调用方 | — |
| src/views/example/create.vue | 14 | 未发现静态 import 调用方 | — |
| src/views/example/edit.vue | 14 | 未发现静态 import 调用方 | — |
| src/views/example/list.vue | 113 | 未发现静态 import 调用方 | src/api/article.js |
| src/views/excel/export-excel.vue | 116 | 未发现静态 import 调用方 | src/api/article.js |
| src/views/excel/merge-header.vue | 102 | 未发现静态 import 调用方 | src/api/article.js |
| src/views/excel/select-excel.vue | 109 | 未发现静态 import 调用方 | src/api/article.js |
| src/views/excel/upload-excel.vue | 43 | 未发现静态 import 调用方 | — |
| src/views/guide/index.vue | 36 | 未发现静态 import 调用方 | — |
| src/views/i18n-demo/index.vue | 169 | 未发现静态 import 调用方 | — |
| src/views/pdf/download.vue | 202 | 未发现静态 import 调用方 | — |
| src/views/pdf/index.vue | 12 | 未发现静态 import 调用方 | — |
| src/views/qiniu/upload.vue | 42 | 未发现静态 import 调用方 | src/api/qiniu.js |
| src/views/tab/index.vue | 58 | 未发现静态 import 调用方 | — |
| src/views/theme/index.vue | 119 | 未发现静态 import 调用方 | — |
| src/views/zip/index.vue | 79 | 未发现静态 import 调用方 | src/api/article.js |
未接入组的用途:clipboard 复制示例、documentation 模板文档、example 文章示例、excel 导入/导出、guide 引导、i18n-demo 多语言、pdf 展示/下载、qiniu 上传示例、tab 示例、theme 主题示例、zip 导出。名称反映源码用途,不自动成为当前会员业务需求。PDF download 是 pdf/index 的关联子视图,单独列出保证文件覆盖完整。
[已确认] 对 114 个视图文件的 style 标签统计:40 个至少有 scoped 标签,24 个至少有非 scoped 标签,52 个没有 style 标签。一个文件可以同时包含 scoped 和非 scoped,因此前两项可能重叠;此统计不是 CSS 作用域安全结论。
业务商品/订单/会员页面大量直接操作 Element Table/Dialog/Tabs/Radio,并含非 scoped 覆盖;部分文件重复 csClass。金额、状态、等级、权限、时区、后端 HTML和下载路径在模板表达式、过滤器与 methods 中交织。公共 Pagination、TreeChart、Uploader、LangSelect 是行为组件,不能在只重排 UI 时替换掉其事件/props 契约。
登录和 dashboard admin 已有未提交的用户 UI 改动,清单对应当前内容,不回退到 HEAD。登录 scoped 私有主题不意味着全局主题已经变更;Navbar 和其他页面仍复用全局 Element 主题/语言功能。
本轮只新增本清单和配套分析文档;没有修改路由、页面、公共组件、样式、依赖、配置或已有文档。