page-inventory.md 49 KB

页面与路由清单

原始分析日期:2026-10-09(Asia/Shanghai)
状态补充日期:2026-10-14(Asia/Shanghai)
范围:当前工作区;分支 rebuild,HEAD 6c38326443f8b967897590fef6cd3d20de4c02e3。
配套说明:项目分析。

2026-10-14 注册入口增量

第 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 独立目录”的旧描述只表示当时未建立独立登录页,不适用于当前注册实现。

1. 清单口径与完整性

  • [已确认] 用本地 @babel/parser 解析 src/router/index.js 和 12 个模块,按 Vue Router 的绝对/相对子路径规则组合路径;检查引用视图实际存在。未执行路由导航。
  • [已确认] 90 条静态路由记录 = 11 constant + 79 async。其中 19 条引用 Layout,1 条为通配符;其余 70 条记录引用 65 个不同 Vue 视图文件。
  • [已确认] src/views 共 114 个 Vue 文件 = 65 个静态路由引用文件 + 32 个无独立路由的入口/私有组件 + 17 个未静态接入的页面/关联子页面。后两类共 49 个,不应全部称为“死页面”。
  • [已确认] 多路径复用:Dashboard 2 路径、Profile 3 路径、401/404 各 2 路径。65 是去重文件数,不是去重 URL 数。nested 的两个中间容器也在 65 内。
  • [已确认] 所有 static constant/async 在启动时注册;大部分业务需登录。侧栏显示由后端 baseInfo.menu 决定,不直接使用本表的完整静态集合。
  • [待确认] 后端可能提供其他菜单路径或外链。本表不是生产环境可见菜单截图,也不保证每个声明的页面能成功加载数据或直接导航。
  • [推断] 第 4 节的风险是后续重构影响评估,不是本轮发现已经复现的业务故障。

表中的 hidden 包括自身或上级静态 hidden,只解释静态声明;实际菜单的 show 字段需另核对。noCache / affix / roles 记录原字段:当前 keep-alive 与 TagsView UI 未启用,guard 也没有按 meta.roles 过滤,因此字段存在不等于行为生效。源码列冒号后是当前文件行号,链接指向真实文件。

2. 完整静态路由树

2.1 constantRoutes(11 条)

完整路径 组件 / 容器 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”不能解释为匿名可访问。

2.2 asyncRoutes(79 条,当前启动时全部注册)

完整路径 组件 / 容器 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 行不是独立业务页面。

3. 布局、入口和路由异常

3.1 布局映射

状态 范围 布局 / 数据入口
已确认 普通登录 根 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

3.2 当前源码中的结构问题

状态 事项 证据与实际验证边界
已确认 重复 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、刷新、父路径直达、实际后端菜单应单独验证
待确认 演示路由是否允许保留在发布版本 已注册不等于用户需求或可以删除;需明确业务范围

4. 业务页面与重构影响

表内行数为当前文本按换行拆分的规模指标,仅用于定位,不作为强制拆分门槛。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 升级、会员/地区/自动区位、支付与缓存依赖

4.1 演示与工具路由的实际能力

状态 路由组 视图用途 / 验证边界
已确认 /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 入口已注释
待确认 所有上述演示入口 当前是否部署、接口是否可用、是否应隐藏或后续删除;本轮没有改变它们

5. 无独立静态路由的视图文件(32 个)

以下是父入口或页面内部组件。[已确认] 没有被静态路由直接引用,但存在父组件或辅助用途;不是 32 个额外导航页面。调用方来自 AST 静态 import;仅有 import 不能证明模板渲染。部分演示父组件本身也未接入。

文件 文本行数 静态调用方 / 当前说明 直接 API
src/views/dashboard/admin/components/BarChart.vue 103 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/BoxCard.vue 118 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/LineChart.vue 136 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/PanelGroup.vue 251 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/PieChart.vue 80 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/RaddarChart.vue 117 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/TodoList/index.vue 128 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/TodoList/Todo.vue 82 src/views/dashboard/admin/components/TodoList/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 —
src/views/dashboard/admin/components/TransactionTable.vue 56 src/views/dashboard/admin/index.vue;首页主要模板图表/面板展示已注释,存在 import 不表示已渲染 src/api/remote-search.js
src/views/dashboard/admin/index.vue 546 src/views/dashboard/index.vue;Dashboard 当前选择该组件 src/api/article.js
src/views/dashboard/editor/index.vue 75 src/views/dashboard/index.vue;父页当前两条分支均选 admin —
src/views/error-log/components/ErrorTestA.vue 14 src/views/error-log/index.vue —
src/views/error-log/components/ErrorTestB.vue 12 src/views/error-log/index.vue —
src/views/example/components/ArticleDetail.vue 292 src/views/example/create.vue、src/views/example/edit.vue src/api/article.js、src/api/remote-search.js
src/views/example/components/Dropdown/Comment.vue 42 未发现静态 import 调用方 —
src/views/example/components/Dropdown/Platform.vue 47 未发现静态 import 调用方 —
src/views/example/components/Dropdown/SourceUrl.vue 39 未发现静态 import 调用方 —
src/views/example/components/Warning.vue 11 src/views/example/components/ArticleDetail.vue —
src/views/excel/components/AutoWidthOption.vue 35 src/views/excel/export-excel.vue —
src/views/excel/components/BookTypeOption.vue 40 src/views/excel/export-excel.vue —
src/views/excel/components/FilenameOption.vue 29 src/views/excel/export-excel.vue —
src/views/login/components/SocialSignin.vue 73 src/views/login/index.vue;登录当前未渲染 —
src/views/permission/components/SwitchRoles.vue 33 src/views/permission/directive.vue、src/views/permission/page.vue —
src/views/profile/components/Account.vue 119 src/views/profile/index.vue src/api/user.js
src/views/profile/components/Activity.vue 186 src/views/profile/index.vue;Profile 当前未渲染 —
src/views/profile/components/LoginPassword.vue 69 src/views/profile/index.vue src/api/user.js
src/views/profile/components/PaymentPassword.vue 66 src/views/profile/index.vue src/api/user.js
src/views/profile/components/Timeline.vue 44 src/views/profile/index.vue;Profile 当前未渲染 —
src/views/profile/components/UserCard.vue 220 src/views/profile/index.vue —
src/views/tab/components/TabPane.vue 104 src/views/tab/index.vue src/api/article.js
src/views/table/dynamic-table/components/FixedThead.vue 63 src/views/table/dynamic-table/index.vue —
src/views/table/dynamic-table/components/UnfixedThead.vue 51 src/views/table/dynamic-table/index.vue —

关键状态:

  • [已确认] Dashboard 的 currentRole 默认 admin;created 中非 admin 分支仍指定 admin。editor 文件和 import 存在,但当前判断不切换到它。
  • [已确认] admin 首页当前显示轮播、会员信息卡、推荐链接占位与新闻/详情;推荐链接未接入,分享/复制按钮禁用。模板 PanelGroup、Transaction/Todo/BoxCard 等显示区被注释,不作为当前业务能力。
  • [已确认] Profile 渲染个人资料/登录密码/支付密码;Activity、Timeline 已注册但当前模板未显示。
  • [已确认] SocialSignin 在登录 script 中仍注册,但当前模板不显示它;不能按存在该组件声称第三方登录可用。

6. 未静态接入页面及关联子页面(17 个)

这些文件没有被当前 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 的关联子视图,单独列出保证文件覆盖完整。

7. 页面样式与公共依赖说明

[已确认] 对 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 主题/语言功能。

8. 清单验收与待确认项

  • [已确认] 静态路由 90 条全部列出;70 条视图引用可解析到 65 个实际文件。
  • [已确认] views 下 114 个 Vue 文件均由“路由表 + 无独立路由表 + 未静态接入表”覆盖。不存在把 /components 路由名直接拼成文件名的假定。
  • [已确认] 当前 13 个本地 API 模块的命名导入静态检查未发现缺失导出;不代表动态请求或第三方组件可用。
  • [待确认] 真实 menu、接口 payload、环境、授权角色、匿名/登录直达、缓存缺失、功能保留清单。
  • [待确认] UI 截图与 320/375/768/1024/1440px、短视口、多语言、键盘、弹层、支付/上传/下载回归。
  • [待确认] 正式构建;当前单元测试仅 4 工具套件通过,2 组件套件加载失败;完整结果见项目分析。没有运行真实登录或任何写接口。

本轮只新增本清单和配套分析文档;没有修改路由、页面、公共组件、样式、依赖、配置或已有文档。