chore(cleanup): 注释口径统一/死文件清理/越轨色值令牌化(T6)——注释 target=hall(index.html/host.config/.env.dev)与 routes 部署路径、契约注释补 &from=;README 失效文档引用改 ../docs/用户面(hall);删 .env.mock+dev:mock+viteMockServe 配置+mockjs/vite-plugin-mock 依赖(mockPath 指向不存在目录)、删 _varible.scss(唯一 import 方式为不带下划线的 "./varible",方案 grep 口径漏检,_utils.scss 就地内联 4 色值产物不变)、删 config/index.js(basedebug 调试残留零引用);#2d8cf0/rgba(26,92,176,.15)/#1f9254/#d03050 令牌化(--sh-success/--sh-danger 新增)

This commit is contained in:
chenxing
2026-10-03 14:09:09 +08:00
parent 41b79566c1
commit a4f954d3b8
15 changed files with 111 additions and 571 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
# 开发环境 (dev):仅 vite dev --mode dev 加载;build 产物不读任何 .env.*
# (.env.base/.env.ld/.env.prod 已删,线上由 /api/env-config?target=front 运行时下发)。
# (.env.base/.env.ld/.env.prod/.env.mock 已删,线上由 /api/env-config?target=hall 运行时下发)。
# ⚠️ VITE_* 仅本地开发生效。
# API 走 /api 同源相对路径(vite proxy 转发到本地后端 8086),
# 规避后端 CAS 过滤器不回 CORS 头导致的跨域拦截;SSO/基础平台用真实环境
-9
View File
@@ -1,9 +0,0 @@
# 本地纯前端调试模式:仅 vite dev --mode mock 加载(build 产物不读任何 .env.*,
# 线上由 /api/env-config?target=front 运行时下发)。后端 SSO/base 不可达时启用内置 mock
# 启动:npm run dev:mock
VITE_BASE_HOST=
VITE_SSO_HOST=
VITE_SERVICE_HOST=http://localhost:8101
VITE_ZIYUANKU_HOST=
VITE_ZHUANXIANG_HOST=
VITE_IS_MOCK=true
+1 -1
View File
@@ -89,7 +89,7 @@ push 到 `main` → gitea CI(`.gitea/workflows/build.yml`):`npm run build`
**首次上线前**需在 projman 应用 `svc-hall` 下新增前端目标 `hall`(路径片段 `hall`),
并在配置管理里补 `env-config-hall.json`(`siteCode`、`theme`、`baseHost`、`ssoHost`),
再把 CMS 站点的 `svc_hall_base` 指向新前端(`https://<域名>/svc-hall/hall`)。详见
`docs/公共端上线与projman接入说明.md`。
`../docs/用户面(hall)上线与projman接入说明.md`。
## 契约纪律
-6
View File
@@ -1,6 +0,0 @@
//铃铛debug
window.conf = {
baseHost: "http://basedebug.bestsch.com",
ssoHost: "http://ssodebug.bestsch.com",
serviceHost: "http://basedebug.bestsch.com/QualityEvaluate",
};
+4 -4
View File
@@ -8,15 +8,15 @@
<!-- 运行时配置引导:在任何应用模块执行前同步拉取 /<contextPath>/api/env-config
(后端免登录端点,projman 配置管理在线维护),替代生产构建环境变量。
必须同步:host.config.ts 在模块求值期就读 window.__APP_CONFIG__;失败/本地开发
(根路径,段数不足 2)则不设置:本地走 .env.dev/.env.mock(VITE_*),线上走同域推导兜底。
target = URL 第 2 段目录名:本应用产物部署于 /{contextPath}/public/,故为 public,
对应 projman 前端目标名 public(文件 /app/config/env-config-public.json)。
(根路径,段数不足 2)则不设置:本地走 .env.dev(VITE_*),线上走同域推导兜底。
target = URL 第 2 段目录名:本应用产物部署于 /{contextPath}/hall/,故为 hall,
对应 projman 前端目标名 hall(文件 /app/config/env-config-hall.json)。
注意:同步 XHR 不支持 timeout 属性(赋值会抛 InvalidAccessError),依赖内网快速失败 -->
<script>
(function () {
try {
var seg = location.pathname.split("/").filter(Boolean);
if (seg.length < 2) return; // 本地开发(根路径):走 .env.dev / .env.mock
if (seg.length < 2) return; // 本地开发(根路径):走 .env.dev
var xhr = new XMLHttpRequest();
xhr.open("GET", "/" + seg[0] + "/api/env-config?target=" + encodeURIComponent(seg[1]), false);
xhr.send(null);
+77 -493
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -6,11 +6,8 @@
"type": "module",
"scripts": {
"dev": "vite --mode dev",
"dev:mock": "vite --mode mock",
"build": "vite build --mode base",
"build:base": "vite build --mode base",
"build:ld": "vite build --mode ld",
"build:prod": "vite build --mode prod",
"preview": "vite preview",
"api:gen": "alova gen -f"
},
@@ -24,12 +21,10 @@
"axios": "^0.24.0",
"lodash": "^4.17.21",
"mitt": "^3.0.1",
"mockjs": "^1.1.0",
"pdfjs-dist": "^4.10.38",
"pinia": "^2.1.4",
"sass": "^1.64.1",
"view-ui-plus": "^1.3.16",
"vite-plugin-mock": "2.9.6",
"vue": "^3.4.19",
"vue-router": "4",
"vuedraggable": "^4.1.0"
+4 -4
View File
@@ -3,10 +3,10 @@ import { BaseConf } from "@/types/Basics";
/**
* 配置优先级(高 → 低):
* ① window.__APP_CONFIG__:线上运行时配置,index.html 引导脚本在应用模块加载前同步拉取
* /<contextPath>/api/env-config?target=<部署目录名>(本应用部署于 /{contextPath}/front/,
* 故为 front,对应后端键 yh.env-config.source.front,projman 配置管理维护)写入
* ② import.meta.env.VITE_*:仅本地开发/演示(vite dev --mode dev 读 .env.dev、--mode mock 读 .env.mock);
* build 产物不读任何 .env.*(.env.base/.env.ld/.env.prod 已删),VITE_* 恒为 undefined,
* /<contextPath>/api/env-config?target=<部署目录名>(本应用部署于 /{contextPath}/hall/,
* 故为 hall,对应 projman 前端目标 hall / 文件 /app/config/env-config-hall.json)写入
* ② import.meta.env.VITE_*:仅本地开发/演示(vite dev --mode dev 读 .env.dev);
* build 产物不读任何 .env.*(.env.base/.env.ld/.env.prod/.env.mock 已删),VITE_* 恒为 undefined,
* 本层自动跳过,产物不含任何环境值
* ③ 同域推导兜底:env-config 未配置/拉取失败时框架至少能渲染并调通同源 API;
* ssoHost 为空 → 登出跳转不可用——与后端未就绪状态一致,可接受。
+7 -4
View File
@@ -13,6 +13,9 @@
--sh-text: #24292f;
--sh-text-weak: #6b7280;
--sh-border: #e6e9ef;
/* 语义色令牌(T6 令牌化:此前 ApplyDetail/tag 各写死一份) */
--sh-success: #1f9254;
--sh-danger: #d03050;
}
html,
@@ -136,13 +139,13 @@ body {
background: rgba(26, 92, 176, 0.06);
}
.sh-tag-success {
color: #1f9254;
border-color: #1f9254;
color: var(--sh-success);
border-color: var(--sh-success);
background: rgba(31, 146, 84, 0.07);
}
.sh-tag-error {
color: #d03050;
border-color: #d03050;
color: var(--sh-danger);
border-color: var(--sh-danger);
background: rgba(208, 48, 80, 0.07);
}
.sh-tag-warning {
+6 -1
View File
@@ -1,6 +1,11 @@
// utils 工具// 颜色
// (2026-10-03 T6:_varible.scss 已删——本文件仅剩 4 个色值依赖它,就地内联,
// 产物 CSS 与删除前逐字节一致;原文件唯一 import 形式为不带下划线的 "./varible")
$color-error: #e8684a;
$color-success: #45b972;
$color-warning: #e9b954;
$color-primary: #5979ea;
@import "./varible";
.bg-error {
background-color: $color-error !important;
}
-22
View File
@@ -1,22 +0,0 @@
/*scss变量*/
// 主题色
$color-error: #e8684a;
$color-success: #45b972;
$color-warning: #e9b954;
$color-primary: #5979ea;
// 文字色
$color-black: #404042;
$color-dark: #333;
$color-deep: #555;
$color-pl: #999999;
$color-weak: #b3b3b3;
$color-white: #fff;
// 背景色
$bg-bar: #f9f9f9;
$bg-page: #f3f3f3;
$bg-page-light: #f9f9f9;
$border-color: #e9e9e9;
+2 -2
View File
@@ -399,8 +399,8 @@ watch(
transition: color 0.2s, border-color 0.2s;
}
.dyn-file-btn:hover .dyn-file-btn-inner {
color: #2d8cf0;
border-color: #2d8cf0;
color: var(--sh-primary);
border-color: var(--sh-primary);
}
</style>
+4 -2
View File
@@ -3,9 +3,11 @@ import type { RouteRecordRaw } from "vue-router";
/**
* 公共办事大厅路由(用户面;后台管理路由在 svc-hall/front,两仓互不引用)。
* 四个页面:事项大厅(入口)/ 在线办理 / 我的办件 / 办件详情。
* 全部走 hash 路由(部署于 /{contextPath}/public/,hash 免服务端 rewrite)。
* 全部走 hash 路由(部署于 /{contextPath}/hall/,hash 免服务端 rewrite)。
* 参数页用 query 传参(与 CMS 指南页"我要办理"外链形态一致:
* {svc_hall_base}/#/apply?siteCode=&itemCode=)——拼成路径参数会 no-match 空白页。
* {svc_hall_base}/#/apply?siteCode=&itemCode=&from=<指南页绝对URL>;
* from=T4 回跳闭环参数,hall 侧 resolveFrom 校验可信域后显示"返回门户")
* ——拼成路径参数会 no-match 空白页。
*/
const routes: RouteRecordRaw[] = [
{
+3 -3
View File
@@ -325,7 +325,7 @@ onMounted(load);
}
.step-dot.active {
background: var(--sh-primary);
box-shadow: 0 0 0 3px rgba(26, 92, 176, 0.15);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--sh-primary) 15%, transparent);
}
.step-body {
flex: 1;
@@ -354,10 +354,10 @@ onMounted(load);
font-weight: 500;
}
.step-done .assignee-name {
color: #1f9254;
color: var(--sh-success);
}
.step-reject .assignee-name {
color: #d03050;
color: var(--sh-danger);
}
.step-invalid {
opacity: 0.55;
+2 -14
View File
@@ -3,7 +3,6 @@ import { createHtmlPlugin } from "vite-plugin-html";
import vue from "@vitejs/plugin-vue";
import path, { resolve } from "path";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
import { viteMockServe } from "vite-plugin-mock";
import ViteAutoImport from "unplugin-auto-import/vite";
import UnoCSS from "@unocss/vite";
@@ -27,11 +26,8 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
inject: "body-last", // 插入的位置
customDomId: "__svg__icons__dom__", // svg的id
}),
viteMockServe({
mockPath: "./src/assets/mock",
// 仅 --mode mock 时启用 mock 中间件;dev/联调/正式均走真实后端
localEnabled: mode === "mock",
}),
// vite-plugin-mock 已裁(2026-10-03 T6):mockPath 指向的 ./src/assets/mock 目录
// 并不存在,dev:mock/.env.mock 一并移除——dev/联调/正式均走真实后端
ViteAutoImport({
imports: [
"vue",
@@ -108,14 +104,6 @@ export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
},
},
},
// css预处理器
css: {
// preprocessorOptions: {
// scss: {
// additionalData: '@import "./src/assets/styles/utils/_varible.scss";',
// },
// },
},
base: "./",
build: {
target: "modules", //设置最终构建的浏览器兼容目标 //es2015(编译成es5) | modules