chore: 系统更名 华门窗→定兴门窗(全部用户可见名称)

This commit is contained in:
HHY
2026-09-26 04:13:46 -07:00
parent f11b0987c6
commit 85c51e280c
13 changed files with 15 additions and 13 deletions
+2
View File
@@ -1,5 +1,7 @@
# CHANGELOG # CHANGELOG
- [2026-09-26 08:30] CHORE: v2.35 系统更名"华门窗"→"定兴门窗"。替换全部用户可见名称: 侧边栏 logo(折叠态 定)/面包屑/登录页标题/分享页 logo 与页脚/页面 title(index.html)/FastAPI title(/docs Swagger)/Dockerfile 注释/各包 docstring; 代码标识符(包名 huamenchuang/数据表/JWT iss)不变; 全仓库 0 处残留, vue-tsc 0 错+构建通过, 无头浏览器验证 logo/面包屑/页面标题生效 (Files: frontend/src/views/LayoutView.vue, frontend/src/views/LoginView.vue, frontend/src/views/ShareView.vue, frontend/index.html, src/huamenchuang/main.py, src/huamenchuang/*/…)__
- [2026-09-26 08:00] TEST+FIX: v2.34 第二轮深度审计——越权/引用完整性/公开面/持久化 16/16 PASS。新增 scripts/audit_deep.py(直插双公司数据验证 company_id 隔离/跨公司按 ID 直访/登记收款越权/公开接口范围/重启后数据存活)。复查修复 4 处真实缺陷: ①删除有下游单据的客户/合同无校验(会产生孤儿合同/订单, 收款统计 join 缺口)→ 引用完整性拒绝(客户: 合同/量尺/跟进; 合同: 订单/有效收款) ②Service 层误用 self.db(实际会话在 self.repo.db)→AttributeError 500 ③删除路由未捕获 ValueError(保护性失败变 500) ④已完工订单可删(生产留档要求禁删); 公开分享页无头验证渲染正确(标题/明细/合计, 0 JS 异常); 冒烟断言防残留加固(跟进列表 >=1); 深度审计+冒烟 52+16 项全 PASS (Files: src/huamenchuang/services/customer_service.py, src/huamenchuang/services/contract_service.py, src/huamenchuang/services/order_service.py, src/huamenchuang/api/customers.py, src/huamenchuang/api/contracts.py, src/huamenchuang/api/orders.py, src/huamenchuang/scripts/audit_deep.py, src/huamenchuang/scripts/smoke_all.py) - [2026-09-26 08:00] TEST+FIX: v2.34 第二轮深度审计——越权/引用完整性/公开面/持久化 16/16 PASS。新增 scripts/audit_deep.py(直插双公司数据验证 company_id 隔离/跨公司按 ID 直访/登记收款越权/公开接口范围/重启后数据存活)。复查修复 4 处真实缺陷: ①删除有下游单据的客户/合同无校验(会产生孤儿合同/订单, 收款统计 join 缺口)→ 引用完整性拒绝(客户: 合同/量尺/跟进; 合同: 订单/有效收款) ②Service 层误用 self.db(实际会话在 self.repo.db)→AttributeError 500 ③删除路由未捕获 ValueError(保护性失败变 500) ④已完工订单可删(生产留档要求禁删); 公开分享页无头验证渲染正确(标题/明细/合计, 0 JS 异常); 冒烟断言防残留加固(跟进列表 >=1); 深度审计+冒烟 52+16 项全 PASS (Files: src/huamenchuang/services/customer_service.py, src/huamenchuang/services/contract_service.py, src/huamenchuang/services/order_service.py, src/huamenchuang/api/customers.py, src/huamenchuang/api/contracts.py, src/huamenchuang/api/orders.py, src/huamenchuang/scripts/audit_deep.py, src/huamenchuang/scripts/smoke_all.py)
- [2026-09-25 23:30] TEST+FIX: v2.33 26 项功能落地性复查——综合冒烟 52/52 PASS + 23 页巡检 0 异常。新增 scripts/smoke_all.py(26 项逐项接口冒烟: 每项验证创建/查询/联动/校验拦截全链路)+frontend/scripts/verify-pages.mjs(23 页无头巡检收集 JS 异常)。复查发现并修复 6 处: ①order_format 校验缺 barcode 类型(条码块模板无法保存) ②workshop/scan 缺 selectinload(MissingGreenlet 500) ③pickout 仅匹配单库存项(改跨批次累计扣减) ④照片模式洞口位置未传 AI(rect 相对坐标→英文方位描述进提示词, 引导装窗位置; 附 mime 嗅探修正 jpeg/png) ⑤打印条码 svg ref 脱离 DOM 残留(isConnected 过滤) ⑥AI 推荐只打分前 80 套(改全量 254 防分类偏倚); 冒烟残留数据已清理 (Files: src/huamenchuang/api/ai_render.py, src/huamenchuang/services/ai_prompt.py, src/huamenchuang/api/order_format.py, src/huamenchuang/api/workshop.py, src/huamenchuang/api/warehouse.py, src/huamenchuang/api/recommend.py, frontend/src/views/AIRenderView.vue, frontend/src/views/PrinterView.vue, src/huamenchuang/scripts/smoke_all.py, frontend/scripts/verify-pages.mjs) - [2026-09-25 23:30] TEST+FIX: v2.33 26 项功能落地性复查——综合冒烟 52/52 PASS + 23 页巡检 0 异常。新增 scripts/smoke_all.py(26 项逐项接口冒烟: 每项验证创建/查询/联动/校验拦截全链路)+frontend/scripts/verify-pages.mjs(23 页无头巡检收集 JS 异常)。复查发现并修复 6 处: ①order_format 校验缺 barcode 类型(条码块模板无法保存) ②workshop/scan 缺 selectinload(MissingGreenlet 500) ③pickout 仅匹配单库存项(改跨批次累计扣减) ④照片模式洞口位置未传 AI(rect 相对坐标→英文方位描述进提示词, 引导装窗位置; 附 mime 嗅探修正 jpeg/png) ⑤打印条码 svg ref 脱离 DOM 残留(isConnected 过滤) ⑥AI 推荐只打分前 80 套(改全量 254 防分类偏倚); 冒烟残留数据已清理 (Files: src/huamenchuang/api/ai_render.py, src/huamenchuang/services/ai_prompt.py, src/huamenchuang/api/order_format.py, src/huamenchuang/api/workshop.py, src/huamenchuang/api/warehouse.py, src/huamenchuang/api/recommend.py, frontend/src/views/AIRenderView.vue, frontend/src/views/PrinterView.vue, src/huamenchuang/scripts/smoke_all.py, frontend/scripts/verify-pages.mjs)
+1 -1
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
# 华门窗云平台镜像(多阶段:前端构建 → Python 运行时) # 定兴门窗云平台镜像(多阶段:前端构建 → Python 运行时)
# 云端构建: git 仓库直接构建即可; 本地: docker build -t menchuang . # 云端构建: git 仓库直接构建即可; 本地: docker build -t menchuang .
# 注: npm/PyPI 默认走国内镜像源(npmmirror/清华), 海外构建可用 --build-arg 覆盖 # 注: npm/PyPI 默认走国内镜像源(npmmirror/清华), 海外构建可用 --build-arg 覆盖
+1 -1
View File
@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>华门窗云平台</title> <title>定兴门窗云平台</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+2 -2
View File
@@ -1,7 +1,7 @@
<template> <template>
<el-container class="layout"> <el-container class="layout">
<el-aside :width="collapsed ? '64px' : '200px'" class="aside"> <el-aside :width="collapsed ? '64px' : '200px'" class="aside">
<div class="logo">{{ collapsed ? '门' : '华门窗' }}</div> <div class="logo">{{ collapsed ? '定' : '定兴门窗' }}</div>
<el-scrollbar class="menu-scroll"> <el-scrollbar class="menu-scroll">
<el-menu :default-active="route.path" router :collapse="collapsed" background-color="#2b3a4d" <el-menu :default-active="route.path" router :collapse="collapsed" background-color="#2b3a4d"
text-color="#bfc9d4" active-text-color="#ffffff" :collapse-transition="false"> text-color="#bfc9d4" active-text-color="#ffffff" :collapse-transition="false">
@@ -49,7 +49,7 @@
<div class="header-left"> <div class="header-left">
<el-icon class="fold-btn" @click="collapsed = !collapsed"><Expand v-if="collapsed" /><Fold v-else /></el-icon> <el-icon class="fold-btn" @click="collapsed = !collapsed"><Expand v-if="collapsed" /><Fold v-else /></el-icon>
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item>华门窗</el-breadcrumb-item> <el-breadcrumb-item>定兴门窗</el-breadcrumb-item>
<el-breadcrumb-item>{{ route.meta.title }}</el-breadcrumb-item> <el-breadcrumb-item>{{ route.meta.title }}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
+1 -1
View File
@@ -1,7 +1,7 @@
<template> <template>
<div class="login-page"> <div class="login-page">
<el-card class="login-card"> <el-card class="login-card">
<h2>华门窗云平台</h2> <h2>定兴门窗云平台</h2>
<p class="sub">画图 · 报价 · 订单 · 生产</p> <p class="sub">画图 · 报价 · 订单 · 生产</p>
<el-tabs v-model="tab" stretch> <el-tabs v-model="tab" stretch>
<el-tab-pane label="登录" name="login"> <el-tab-pane label="登录" name="login">
+2 -2
View File
@@ -1,7 +1,7 @@
<template> <template>
<div class="share-page"> <div class="share-page">
<header class="share-head"> <header class="share-head">
<span class="logo">华门窗</span> <span class="logo">定兴门窗</span>
<span class="title">{{ data?.title || '分享详情' }}</span> <span class="title">{{ data?.title || '分享详情' }}</span>
</header> </header>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
</template> </template>
<footer class="share-foot">本页面由华门窗云平台生成 · {{ data?.created_at?.slice(0, 10) }}</footer> <footer class="share-foot">本页面由定兴门窗云平台生成 · {{ data?.created_at?.slice(0, 10) }}</footer>
</div> </div>
</template> </template>
Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

+1 -1
View File
@@ -1 +1 @@
"""华门窗包。""" """定兴门窗包。"""
+1 -1
View File
@@ -1 +1 @@
"""华门窗包。""" """定兴门窗包。"""
+1 -1
View File
@@ -10,7 +10,7 @@ from huamenchuang.core.database import init_db
from huamenchuang.core.deps import ModuleLockedError, NotAuthedError from huamenchuang.core.deps import ModuleLockedError, NotAuthedError
from huamenchuang.core.response import fail, ok, paywall from huamenchuang.core.response import fail, ok, paywall
app = FastAPI(title="华门窗云平台", version="0.1.0") app = FastAPI(title="定兴门窗云平台", version="0.1.0")
@app.on_event("startup") @app.on_event("startup")
+1 -1
View File
@@ -1 +1 @@
"""华门窗包。""" """定兴门窗包。"""
+1 -1
View File
@@ -1 +1 @@
"""华门窗包。""" """定兴门窗包。"""
+1 -1
View File
@@ -1 +1 @@
"""华门窗包。""" """定兴门窗包。"""