refactor(pc): 从 Gi Admin Pro + Arco 重搭为纯 Vue 3 + Naive UI

旧模板的 193 个文件整体删除,换成纯 Vue 3.5 + Naive UI 2.42 的树。

- 去掉 auto-import(组件与 API 全显式 import)、v-hasPerm(改 user.has('码'),全库 8 处)、
  Stylelint;n-tag 的 type 统一过 utils/tag.ts 转换(Arco 色词直接透传会静默变灰)
- 图标改为构建期抽取:scripts/extract-pc-icons.py -> icons/icon-data.ts(37 个),
  内网离线部署不会白屏
- 重搭后修掉 6 类"编译 / lint / typecheck 全绿、界面上就是坏的"故障:
  ① NGrid 的 cols 写成像素值(不是断点名 -> 永远只 1 列,工作台因此错乱)
  ② n-tab-pane 用 tab 属性(只渲染空注释节点,整排 tab 一个字都不显示)
  ③ 漏 import 被当未知自定义元素(样式整块丢) ④ .n-card__content 类名不存在
  (高度链第一环失效,表格行在 DOM 里但屏幕上没有) ⑤ 填报单状态映射错位一格
  ⑥ 有标题的卡片没有上内边距(naive 的 padding-top 只给"内容区是长子"的卡片)
- 卡片式版面提成全局基线:styles/index.scss 的 xt-* 令牌 + .page-card / .toolbar /
  .section-title,页面只引用、不再各写一套
- 品牌:改名「深学在线」,文字标换成几何标(方 = 卷宗 / 环 = 在线,不用文字字形);
  index.html 的页签图标从 404 的 /favicon.ico 改指真实存在的 /favicon.svg
This commit is contained in:
2026-10-10 16:48:46 +08:00
parent 0bbac7d228
commit 5b877451eb
270 changed files with 12964 additions and 25889 deletions
+34 -32
View File
@@ -1,35 +1,37 @@
<!doctype html>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<!-- 移动端浏览器地址栏跟随品牌色(与 TDesign 主色一致) -->
<meta name="theme-color" content="#0052D9" />
<meta name="description" content="职业技能等级认定 · 报名材料收集系统" />
<meta name="format-detection" content="telephone=no" />
<link rel="stylesheet" href="./static/css/loading.css" type="text/css" />
<title>填报通 · 管理端</title>
<!--
已移除模板自带的百度统计脚本:
它上报到 gi-demo 作者的统计账号,属于把本项目的访问数据发给第三方,
不是我们自己的埋点。需要统计时请接入本单位自己的方案。
-->
</head>
<body>
<div id="app">
<!-- 首屏骨架:在 JS 包下载并执行之前显示,避免白屏 -->
<section class="init-box">
<div class="init-loading">
<div class="init-loading-rect"></div>
<div class="init-loading-rect"></div>
<div class="init-loading-rect"></div>
<div class="init-loading-rect"></div>
<div class="init-loading-rect"></div>
</div>
</section>
</div>
<script type="module" src="./src/main.ts"></script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>深学在线</title>
<style>
html,
body,
#app {
height: 100%;
margin: 0;
padding: 0;
}
/* 首屏白屏时的占位,避免"看起来没在加载" */
#app-loading {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
color: #8a8a8a;
font-size: 14px;
}
</style>
</head>
<body>
<div id="app">
<div id="app-loading">正在加载…</div>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>