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:
@@ -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/基础平台用真实环境
|
||||
|
||||
@@ -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
|
||||
@@ -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`。
|
||||
|
||||
## 契约纪律
|
||||
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
Generated
+77
-493
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
|
||||
@@ -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 为空 → 登出跳转不可用——与后端未就绪状态一致,可接受。
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -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>
|
||||
|
||||
@@ -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[] = [
|
||||
{
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user