facc04aa65
本提交为 .git 对象库损坏后的重建提交,内容等价于原先三个本地提交 (5e2fd4c2 / 57a53c98 / 5d7e1873)的累积结果,未做任何额外改动。 一、docs 结构整改(整改 #14) 根因:重构时新结构为 untracked 文件,执行 git stash(未带 -u)未纳入, 随后 git reset 拉回 HEAD 旧 tracked 树,导致旧树复活、新旧两棵目录 树并存于 docs/,共 791 文件、双分类体系冲突。 修复动作: - b2 同名异主题文件改名迁移保全 9 个 - C 类 39 个孤立文件按主题正确归类 - A/B1 类 222 个重复文件删除(新结构已有内容副本) - 9 个旧独有空目录删除 - 270 处内部引用按 verified 映射改写 - 整改记录 #14 登记于 04-运维文档/部署运维 结果:docs 791 → 569 文件,顶层仅规范 8 类 + 治理文件,单树恢复。 残留:约 20 处指向从未存在文件的陈旧死链,归入独立文档卫生任务。 二、compose 双目录对齐(消除踩坑 A) - docker-compose.yml:nginx 前端挂载全部由根目录 frontend-*/dist 改为 src/frontend-*/dist(h5 / agent / admin / terminal) - docker-compose.dev.yml:dev 服务 build context 与卷同步改 src/ - 效果:本地 docker compose up 不再把根目录 stale dist 挂回, 与线上一致,分叉隐患消除(已 docker compose config 校验通过) 防复发铁律: - 重构须提交;仓库修复须 git stash -u 或先 commit - 新结构须 git add 并提交,避免再次 untracked 复活 - H5 改动只动 src/frontend-h5/,禁改根目录遗留 frontend-*/
175 lines
8.8 KiB
Plaintext
175 lines
8.8 KiB
Plaintext
|
||
===== DIAG login-form-missing @ 00:48:26 =====
|
||
URL: http://localhost:5174/itdesk/
|
||
HTML_LEN: 2595
|
||
<!DOCTYPE html><html lang="zh-CN"><head>
|
||
<script type="module" src="/itdesk/@vite/client"></script>
|
||
|
||
<meta charset="UTF-8">
|
||
<!-- 移动端视口设置(适配企微 WebView) -->
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||
<!-- CSP 安全策略 -->
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval' https://res.wx.qq.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; connect-src 'self' https://qyapi.weixin.qq.com wss://* ws://localhost ws://127.0.0.1;">
|
||
<!-- 页面标题 -->
|
||
<title>智能IT支持服务台</title>
|
||
<!-- 首屏骨架屏样式 v0.5.2 强化版 -->
|
||
<style>
|
||
html, body { margin: 0; padding: 0; height: 100%; background: #f7f8fa; }
|
||
#app-skeleton {
|
||
position: fixed; inset: 0;
|
||
display: flex; flex-direction: column;
|
||
align-items: center; justify-content: center;
|
||
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;
|
||
color: #969799;
|
||
z-index: 9999;
|
||
}
|
||
#app-skeleton .logo {
|
||
width: 64px; height: 64px; border-radius: 16px;
|
||
background: linear-gradient(135deg, #1989fa 0%, #1c64f2 100%);
|
||
margin-bottom: 20px;
|
||
box-shadow: 0 8px 24px rgba(25, 137, 250, 0.3);
|
||
animation: pulse 1.5s ease-in-out infinite;
|
||
}
|
||
#app-skeleton .title { font-size: 18px; font-weight: 600; color: #323233; margin-bottom: 8px; }
|
||
#app-skeleton .subtitle { font-size: 14px; color: #969799; margin-bottom: 28px; }
|
||
#app-skeleton .spinner {
|
||
width: 28px; height: 28px;
|
||
border: 3px solid #ebedf0;
|
||
border-top-color: #1989fa;
|
||
border-radius: 50%;
|
||
animation: spin 0.8s linear infinite;
|
||
}
|
||
@keyframes spin { to { transform: rotate(360deg); } }
|
||
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(0.95); } }
|
||
/* v0.5.2 强化:不再依赖 :empty 选择器(部分浏览器/Vue mount 太快会失效) */
|
||
/* 改用 body.app-loaded 类名,由 main.ts 挂载后主动添加 */
|
||
body.app-loaded #app-skeleton { display: none !important; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<!-- Vue 应用挂载点 -->
|
||
<div id="app"></div>
|
||
<!-- 首屏骨架屏(JS 加载期间显示,挂载后自动隐藏) v0.5.2 -->
|
||
<div id="app-skeleton">
|
||
<div class="logo"></div>
|
||
<div class="title">智能IT支持服务台</div>
|
||
<div class="subtitle">正在加载...</div>
|
||
<div class="spinner"></div>
|
||
</div>
|
||
<!-- 入口脚本 -->
|
||
<script type="module" src="/itdesk/src/main.ts"></script>
|
||
|
||
|
||
<vite-error-overlay></vite-error-overlay></body></html>
|
||
|
||
===== DIAG fatal @ 00:48:26 =====
|
||
URL: http://localhost:5174/itdesk/
|
||
HTML_LEN: 2595
|
||
<!DOCTYPE html><html lang="zh-CN"><head>
|
||
<script type="module" src="/itdesk/@vite/client"></script>
|
||
|
||
<meta charset="UTF-8">
|
||
<!-- 移动端视口设置(适配企微 WebView) -->
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||
<!-- CSP 安全策略 -->
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval' https://res.wx.qq.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; connect-src 'self' https://qyapi.weixin.qq.com wss://* ws://localhost ws://127.0.0.1;">
|
||
<!-- 页面标题 -->
|
||
<title>智能IT支持服务台</title>
|
||
<!-- 首屏骨架屏样式 v0.5.2 强化版 -->
|
||
<style>
|
||
html, body { margin: 0; padding: 0; height: 100%; background: #f7f8fa; }
|
||
#app-skeleton {
|
||
position: fixed; inset: 0;
|
||
display: flex; flex-direction: column;
|
||
align-items: center; justify-content: center;
|
||
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;
|
||
color: #969799;
|
||
z-index: 9999;
|
||
}
|
||
#app-skeleton .logo {
|
||
width: 64px; height: 64px; border-radius: 16px;
|
||
background: linear-gradient(135deg, #1989fa 0%, #1c64f2 100%);
|
||
margin-bottom: 20px;
|
||
box-shadow: 0 8px 24px rgba(25, 137, 250, 0.3);
|
||
animation: pulse 1.5s ease-in-out infinite;
|
||
}
|
||
#app-skeleton .title { font-size: 18px; font-weight: 600; color: #323233; margin-bottom: 8px; }
|
||
#app-skeleton .subtitle { font-size: 14px; color: #969799; margin-bottom: 28px; }
|
||
#app-skeleton .spinner {
|
||
width: 28px; height: 28px;
|
||
border: 3px solid #ebedf0;
|
||
border-top-color: #1989fa;
|
||
border-radius: 50%;
|
||
animation: spin 0.8s linear infinite;
|
||
}
|
||
@keyframes spin { to { transform: rotate(360deg); } }
|
||
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(0.95); } }
|
||
/* v0.5.2 强化:不再依赖 :empty 选择器(部分浏览器/Vue mount 太快会失效) */
|
||
/* 改用 body.app-loaded 类名,由 main.ts 挂载后主动添加 */
|
||
body.app-loaded #app-skeleton { display: none !important; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<!-- Vue 应用挂载点 -->
|
||
<div id="app"></div>
|
||
<!-- 首屏骨架屏(JS 加载期间显示,挂载后自动隐藏) v0.5.2 -->
|
||
<div id="app-skeleton">
|
||
<div class="logo"></div>
|
||
<div class="title">智能IT支持服务台</div>
|
||
<div class="subtitle">正在加载...</div>
|
||
<div class="spinner"></div>
|
||
</div>
|
||
<!-- 入口脚本 -->
|
||
<script type="module" src="/itdesk/src/main.ts"></script>
|
||
|
||
|
||
<vite-error-overlay></vite-error-overlay></body></html>
|
||
|
||
===== DIAG fatal @ 00:51:07 =====
|
||
URL: http://localhost:5174/itdesk/login
|
||
HTML_LEN: 158173
|
||
<!DOCTYPE html><html lang="zh-CN" class="van-theme-light" data-theme="light"><head>
|
||
<script type="module" src="/itdesk/@vite/client"></script>
|
||
|
||
<meta charset="UTF-8">
|
||
<!-- 移动端视口设置(适配企微 WebView) -->
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||
<!-- CSP 安全策略 -->
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval' https://res.wx.qq.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; connect-src 'self' https://qyapi.weixin.qq.com wss://* ws://localhost ws://127.0.0.1;">
|
||
<!-- 页面标题 -->
|
||
<title>智能IT支持服务台</title>
|
||
<!-- 首屏骨架屏样式 v0.5.2 强化版 -->
|
||
<style>
|
||
html, body { margin: 0; padding: 0; height: 100%; background: #f7f8fa; }
|
||
#app-skeleton {
|
||
position: fixed; inset: 0;
|
||
display: flex; flex-direction: column;
|
||
align-items: center; justify-content: center;
|
||
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;
|
||
color: #969799;
|
||
z-index: 9999;
|
||
}
|
||
#app-skeleton .logo {
|
||
width: 64px; height: 64px; border-radius: 16px;
|
||
background: linear-gradient(135deg, #1989fa 0%, #1c64f2 100%);
|
||
margin-bottom: 20px;
|
||
box-shadow: 0 8px 24px rgba(25, 137, 250, 0.3);
|
||
animation: pulse 1.5s ease-in-out infinite;
|
||
}
|
||
#app-skeleton .title { font-size: 18px; font-weight: 600; color: #323233; margin-bottom: 8px; }
|
||
#app-skeleton .subtitle { font-size: 14px; color: #969799; margin-bottom: 28px; }
|
||
#app-skeleton .spinner {
|
||
width: 28px; height: 28px;
|
||
border: 3px solid #ebedf0;
|
||
border-top-color: #1989fa;
|
||
border-radius: 50%;
|
||
animation: spin 0.8s linear infinite;
|
||
}
|
||
@keyframes spin { to { transform: rotate(360deg); } }
|
||
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.7; transform: scale(0.95); } }
|
||
/* v0.5.2 强化:不再依赖 :empty 选择器(部分浏览器/Vue mount 太快会失效) */
|
||
/* 改用 body.app-loaded 类名,由 main.ts 挂载后主动添加 */
|
||
body.app-loaded #app-skeleton { display: none !important; }
|
||
</style>
|
||
<style type="text/css" data-vite-dev-id="/app/node_modules/.pnpm/vant@4.10.0_vue@3.5.39_typescript@5.9.3_/node_modules/vant/es/style/base.css">:root,:host{--van-black: #000;--van-white: #fff;--van-gray-1: #f7f8fa;--van-gray-2: #f2f3f5;--van-gray-3: #ebedf0;--van-gray-4: #dcdee0;--van-gray-5: #c8c9cc;--van-gray-6: #969799;--van-gray-7: #646566;--van-gray-8: #323233;--van-red: #ee0a24;--van-blue: #1989fa;--van-orange: #ff976a;--van-orange-dark: #ed6a0c;--van-orange-light: #fffbe8;--van-green: #07c160;--van-gradient-red: linear-gradient(to right, #ff6034, #ee0a24);--van-gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);--van-primary-color: var(--van-blue);--van-success-color: var(--van-green);--van-danger-color: var(--van-red);--van-warning-color: var(--van-orange);--van-text-col
|