diff --git a/.workbuddy/memory/2026-09-03.md b/.workbuddy/memory/2026-09-03.md new file mode 100644 index 0000000..ad1bf9c --- /dev/null +++ b/.workbuddy/memory/2026-09-03.md @@ -0,0 +1,17 @@ + +## 合同管理独立表单页下拉框定位修复 +- `src/views/business/contract-manage.vue` 全部 12 处 `el-select` 加 `:teleported="false"` + `:fit-input-width="true"`:下拉保持在输入框正下方、宽度与输入框一致(原 teleport 到 body 导致下拉漂移且按内容撑宽)。 +- 若后续新增独立表单页出现同样问题,照加这两个属性即可。 +- 追加:teleported=false 后 popper 因下方空间不足自动上翻,再给 12 处 el-select 加 `placement="bottom-start"` + `:popper-options="{ modifiers: [{ name: 'flip', enabled: false }] }"` 强制始终在下方展示。 + +## 调度弹窗司机输入框宽度不一致修复 +- 现象:「编辑调度信息(精简录入)」弹窗中,司机(el-autocomplete)输入框比同行 250px 的其他输入框宽。 +- 根因:`business-crud-page.vue` 约 13434 行的「表单控件统一 250px」规则漏了 `.el-autocomplete`(autocomplete 根节点是包装层,内部才是 .el-input)。 +- 修复:在该规则选择器列表追加 `> .el-autocomplete` 和 `> .el-autocomplete > .el-input`,与运单独立表单页(13658 行 business-crud-page--form-page 先例)一致。 +- 经验:凡「控件统一 250px」类规则,选择器必须包含 `.el-autocomplete` 包装层。 + +## 调度弹窗收发货地址行溢出修复 +- 现象:「编辑调度信息」弹窗收发货信息行,地址输入框过宽,右侧「联系方式」列被挤出弹窗。 +- 根因:`__dispatch-shipping-form __route-address-row` 网格地址列为 `minmax(280px, 1fr)`,各列最小宽度合计 1030px,弹窗不够宽时 grid 不换行直接溢出。 +- 修复:地址列改 `minmax(0, 1fr)`(宽屏仍 1fr 拉伸,窄窗自动收窄,总最小宽降到 750px)。 +- 备注:基础规则 `__route-address-row`(13750 行,运单独立表单页等在用,7 列含 40px 按钮列)仍是 minmax(280px,1fr),同样窄窗有溢出风险,暂未动(用户未反馈该页问题)。 diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue index c12c759..6814263 100644 --- a/src/views/business/components/business-crud-page.vue +++ b/src/views/business/components/business-crud-page.vue @@ -13435,7 +13435,9 @@ export default { :deep(.el-form-item__content > .el-select), :deep(.el-form-item__content > .el-cascader), :deep(.el-form-item__content > .el-input-number), - :deep(.el-form-item__content > .el-date-editor) { + :deep(.el-form-item__content > .el-date-editor), + :deep(.el-form-item__content > .el-autocomplete), + :deep(.el-form-item__content > .el-autocomplete > .el-input) { width: 250px; max-width: 100%; } @@ -13506,7 +13508,7 @@ export default { &__shipping-title, &__goods-title, &__task-title { - min-width: 100%; + //min-width: 100%; } &__shipping-route-action { @@ -13753,7 +13755,7 @@ export default { ); gap: 8px; align-items: center; - width: 100%; + width:98%; :deep(.el-input), :deep(.el-select), @@ -13807,7 +13809,9 @@ export default { } &__dispatch-shipping-form &__route-address-row { - grid-template-columns: 260px minmax(280px, 1fr) 58px minmax(160px, 220px) 72px minmax( + // 地址列用 minmax(0, 1fr):窗口较窄时地址输入框自动收窄, + // 避免各列最小宽度合计超出弹窗宽度,把右侧联系方式挤出弹窗。 + grid-template-columns: 260px minmax(0, 1fr) 58px minmax(160px, 220px) 72px minmax( 160px, 220px ); diff --git a/src/views/business/contract-manage.vue b/src/views/business/contract-manage.vue index fb1c429..c764e36 100644 --- a/src/views/business/contract-manage.vue +++ b/src/views/business/contract-manage.vue @@ -111,7 +111,14 @@