Commit Graph
5 Commits
Author SHA1 Message Date
郭庆泰 80a276e661 fix(theme): 4 个亮色 #4da2b5/#4db892/#80bdca/#80ccb1 不适合做背景色
问题: 之前 Element mix(white) 算法在 S=100% 主色 (#007A95)
上生成的中色 (#4da2b5 / #4db892) 跟主色对比度太低,
作 hover-bg / 选中态底色时白字看不清.

新算法: HSL 降饱和 + 提亮度 (色相不变, 灰度提升).
  text    = S-40 L+15  (中蓝可读, 链接用)
  light   = S-65 L+40  (灰中, disabled 浅背景)
  lighter = S-65 L+50  (灰浅, hover-bg / 选中态, **够淡字可读**)
  mix     = S-75 L+60  (近白, focus border)

主色 (#007A95):
  text    #2d9cb4  lighter #b7d6dd
  light   #95c2cc  mix     #dde8ea

次色 (#009963):
  text    #2eb887  lighter #baded1
  light   #98cdba  mix     #dfece7

Element Plus 联动:
  --el-color-primary-light-9 → var(--brand-primary-mix) (近白, 最浅)
  --el-color-success-light-9 → var(--brand-secondary-mix)

theme.js derivePalette 同步改成同算法 (运行时 setBrand 仍正确)
2026-08-22 21:31:08 +08:00
郭庆泰 746e9e01b4 fix(theme): 4 个亮色派生 #49deff/#4dffc0/#06d2ff/#0affa9 改为 Element mix() 算法
之前 HSL +35% 提亮算法生成荧光色 (例 #49deff / #4dffc0),
对政务/严肃网站完全不适用, 跟 Element Plus 默认色系也对不上.

新算法 (浅色) = Element Plus mix(white, base, N*10%):
  --brand-primary-light   = mix 50% white   (背景 / disabled)
  --brand-primary-lighter = mix 70% white   (hover-bg / 选中态)
  --brand-primary-text    = mix 30% white   (链接默认)
  --brand-primary-mix     = mix 80% white   (输入框 focus border)

新色 (全是低饱和度灰蓝/灰绿, 跟 Element 默认同源):
  PRIMARY (#007A95):
    light    #80bdca    lighter #4da2b5
    text     #b3d7df    mix     #3395aa
  SECONDARY (#009963):
    light    #80ccb1    lighter #4db892
    text     #b3e0d0    mix     #33ad82

深色 (deep/darker) 保持 HSL 算法不变 (合理, 政务场景需要深色 hover)

theme.js derivePalette 同步改成双轨: HSL 调深 + Element mix 调浅
2026-08-22 21:26:50 +08:00
郭庆泰 884eadcd8e feat(theme): 加 --brand-secondary 翠绿 #009963 (双品牌色系)
- theme.scss 加 7 个 --brand-secondary-* 派生色 (HSL 算法)
- 绑定 Element Plus --el-color-success* (绿=成功语义)
- theme.js derivePalette 重构成通用函数 (base, prefix), 加 setBrandSecondary / applyStoredBrands
- main.js 启动改调 applyStoredBrands, 主色+次色一起从 localStorage 恢复

主色 primary (青蓝 #007A95) / 次色 secondary (翠绿 #009963)
改 theme.scss :root 两个变量即可全局换色.
2026-08-22 20:46:28 +08:00
郭庆泰 e5fb015cd8 feat(theme): 主色从深海军蓝 #1E3A8A 改为青蓝 #007A95
改动 theme.scss :root 7 个 CSS 变量:
- --brand-primary        #1E3A8A → #007A95 (青蓝/cyan)
- --brand-primary-deep   #152a66 → #004858
- --brand-primary-darker #0d1d4d → #002129
- --brand-primary-light  #3a55a3 → #00acd2
- --brand-primary-lighter #c1cbe6 → #49deff
- --brand-primary-text   #4f6dbf → #06d2ff
- --brand-primary-mix    #8e9ad1 → #7ce7ff

派生色算法 (theme.js derivePalette):
- deep/darker: lightness -12 / -22
- light: lightness +12
- lighter: lightness +35
- text: lightness +22
- mix: lightness +45

新色 HSL: H=191° S=100% L=29% (青蓝范围)
派生色按 HSL lightness 算法重算, 跟 theme.js derivePalette() 一致.

业务代码全部用 var(--brand-primary) 变量, 无任何硬编码
(上个 commit cd01550 已清理), 换色自动全局生效.

Element Plus 联动变量 (--el-color-primary 等) 通过 main.js 同步, 也跟着换.
2026-08-22 20:40:54 +08:00
郭庆泰 cf5790229a refactor: 合并 biz_support_unit/biz_execution_unit/biz_service_org 为 biz_org, 删除 2 张孤儿表, 改 biz_person.work_unit → org_id FK
主要改动:
- SQL: biz_support_unit → biz_org, 加 org_type, 加 business_nature; 删 biz_execution_unit, biz_service_org
- SQL: biz_project.support_unit_id/name + service_org_id/name → org_id/name/type
- SQL: biz_meeting.support_unit_name → org_name
- SQL: biz_person.work_unit → org_id (FK)
- 后端: 新 BizOrg entity/mapper/service/controller
- 后端: BizProject/BizMeeting 字段重命名
- 后端: 删 12 个 BizSupportUnit/BizExecutionUnit/BizServiceOrg Java 文件
- 后端: BizPersonImportVO.workUnit → orgName (导入时查 biz_org 取 org_id)
- 后端: BizAuthController.registerExecutor 完整实现 (原 registerSupplier stub)
- 前端: 新 admin/Orgs.vue + manager/Orgs.vue (原 SupportUnits)
- 前端: RegisterExecutor.vue (原 RegisterSupplier, 单页 2 步)
- 前端: sponsor/executor/manager 多个文件 workUnit → orgId/orgName 重命名
- 前端: 统一 supplier → executor, 业务命名 sponsor(赞助方) / executor(执行方=供应商)
- 前端: 全工程 execution → executor (company type / role / person unit_type)
2026-08-15 12:41:10 +08:00