From 68f4b2c35e2de9f8bb86d5a8931d9bb0da2474f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 13 Oct 2026 20:21:17 +0800 Subject: [PATCH] =?UTF-8?q?style(transportCapacity):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E8=B0=83=E5=BA=A6=E5=BC=B9=E7=AA=97=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=BA=A7=E8=81=94=E9=80=89=E6=8B=A9=E5=99=A8=E5=AE=BD?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 注释掉多个页面及组件中el-form-item的margin-bottom样式 - 增加车辆调度弹窗配置dialogCustomClass: 'vehicle-dispatch-dialog' - 在全局样式element-ui.scss中为.vehicle-dispatch-dialog内el-cascader设置宽度100% - 解决avue-crud弹窗append-to-body导致页面容器scoped样式无法命中问题 - 更新vite配置,将开发服务器端口修改为2889,代理目标指向远程地址 - 补充工程文档说明和样式调整原因分析 --- .workbuddy/memory/2026-10-13.md | 11 +++ .workbuddy/memory/MEMORY.md | 2 + cascader-width-check.html | 84 +++++++++++++++++++ .../transportCapacity/vehicle-dispatch.js | 3 + src/styles/element-ui.scss | 13 +++ src/views/business/project-apply.vue | 2 +- src/views/vehicle/customer-archive.vue | 2 +- vite.config.mjs | 30 +++---- 8 files changed, 130 insertions(+), 17 deletions(-) create mode 100644 .workbuddy/memory/2026-10-13.md create mode 100644 cascader-width-check.html diff --git a/.workbuddy/memory/2026-10-13.md b/.workbuddy/memory/2026-10-13.md new file mode 100644 index 0000000..d4dff4c --- /dev/null +++ b/.workbuddy/memory/2026-10-13.md @@ -0,0 +1,11 @@ +# 2026-10-13 + +## 车辆调度弹窗:使用部门级联选择器宽度对齐 + +- 现象:`/transportCapacity/vehicle-dispatch` 新增/编辑弹窗中,使用部门 `el-cascader` 明显窄于同行车牌号 `el-input`。 +- 根因:`el-cascader` 是 `display: inline-block` 宽度按内容收缩(不像 `el-autocomplete` / `el-input` 有 `--el-input-width: 100%` 兜底);而页面里写的 `.vehicle-dispatch-page :deep(.vehicle-dispatch-form-control){width:100%}` 命中不到 —— avue-crud 弹窗默认 `append-to-body: true`(`append-to-body": validData(crud.tableOption.dialogAppendToBody, true)`),DOM Teleport 到 body,已不在 `.vehicle-dispatch-page` 之下。 +- 修法(走项目既有约定): + 1. `src/option/transportCapacity/vehicle-dispatch.js` 增加 `dialogCustomClass: 'vehicle-dispatch-dialog'`; + 2. `src/styles/element-ui.scss` 增加全局规则 `.vehicle-dispatch-dialog .el-form-item__content > .el-cascader { width:100%; max-width:100% }`。 +- 自检:dev(2889) `curl /src/styles/element-ui.scss` 与 `/src/option/transportCapacity/vehicle-dispatch.js` 均 200,编译产物含新规则。 +- 遗留观察:同文件里 `.vehicle-dispatch-page :deep(.avue--detail ...)` 那一批查看态禁用样式,同样因 Teleport 属死规则(未改,待确认是否需要迁到 `.vehicle-dispatch-dialog` 作用域)。 diff --git a/.workbuddy/memory/MEMORY.md b/.workbuddy/memory/MEMORY.md index 6be373c..e094720 100644 --- a/.workbuddy/memory/MEMORY.md +++ b/.workbuddy/memory/MEMORY.md @@ -12,6 +12,8 @@ **坑二:宿主 view 直绑全局 `$route.query.*` 给子组件 prop。** 缓存实例被灌入当前页 id → 拿错 id 查后端(批量弹「运单管理不存在」),live computed 还会误 push 标签。修法:`routePathLocked` 锁路径 + watcher / push 前判 `isOwnedRouteActive` + 宿主绑定加路径守卫。⚠️ `routePathLocked` **必须放 `data()`**(Options API 顺序 data → computed → watch(immediate) → created;放 created 会读到空值、挡掉首次加载)。已修 waybill-manage-page / transport-plan-page + 三个宿主 view。 +**坑四:avue-crud 弹窗 `append-to-body` 默认 true(`dialog-form3.js`:`validData(tableOption.dialogAppendToBody, true)`),DOM Teleport 到 body。** 于是页面里以页面容器为祖先的 scoped 选择器(`.xxx-page :deep(.yyy)`)**命中不到弹窗内容**,尤其 `el-cascader`(inline-block、宽度按内容收缩,不像 `el-input`/`el-autocomplete` 有 `--el-input-width:100%` 兜底)会明显比同行 input 窄。修法:option 里配 `dialogCustomClass: 'xxx-dialog'`,规则写到 `src/styles/element-ui.scss` 的 `.xxx-dialog ...`(项目既有约定,10+ 处同款);或把基准类放在 **Teleport 内部元素**上(如 ship.vue 的 `.ship-form` 挂在 el-form 上,自身带 scope 属性,照样生效)。 + **坑三:路由表重复定义 → 内容区整页空白(2026-09-18)。** `/business/contract-manage/detail` 在 `router/views/index.js` 定义两次、子路由同名 `合同详情`。重名 `addRoute` 会 `removeRoute(name)` 移除旧子记录,但**不从父记录 children 里摘除**,第一条 Layout 壳记录留在 matcher 且靠前 → `resolve()` 命中它 → `$route.matched.length === 1` → 二级 router-view 无匹配 → 侧栏/标签正常但内容空白。修法:删重复定义。排查:扫「顶层 path + 首个子路由 name」重复项。 ## 样式硬规则 diff --git a/cascader-width-check.html b/cascader-width-check.html new file mode 100644 index 0000000..06ec13c --- /dev/null +++ b/cascader-width-check.html @@ -0,0 +1,84 @@ + + +
+ +