5b877451eb
旧模板的 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
18 lines
640 B
TypeScript
18 lines
640 B
TypeScript
/**
|
|
* 组件树之外的提示能力(`useMessage` 只能在组件里用)。
|
|
*
|
|
* http 拦截器、路由守卫这些地方都要弹提示,用 `createDiscreteApi` 建一套离屏实例,
|
|
* 全应用共用一份 —— 每次调用新建实例会导致"弹出一堆重复提示"且不消失。
|
|
*/
|
|
import { createDiscreteApi } from 'naive-ui'
|
|
|
|
const { message, dialog, notification, loadingBar } = createDiscreteApi(
|
|
['message', 'dialog', 'notification', 'loadingBar'],
|
|
{
|
|
messageProviderProps: { max: 3, duration: 3000 },
|
|
notificationProviderProps: { max: 3 }
|
|
}
|
|
)
|
|
|
|
export { dialog, loadingBar, message, notification }
|