日期: 2026-08-06
状态: 已实现
选定方案: 方案 1 — 独立选车弹窗(对齐「从地址库选择」)+ 嵌套车辆表单弹窗(对照三方车辆 / 山峡自有车辆管理页已有新增编辑弹窗)
vehicleApi.list/get/create/update)pl-plan-form-dialog 运输信息区「车牌号」el-select 右侧。PlAddressWithLibrary 一致(flex 行,选择器 flex:1,按钮不换行)。FolderOpened 图标 + 文案;btn-ghost 中性描边,非主色实心)。PlVehicleLibrarySelectDialog。dialog-form-layout,align-center,append-to-body,destroy-on-close,遮罩无 blur。el-tabs:三方车辆(carrier)/ 自有车辆(self);切换 Tab 重置页码并重新拉列表。q)+ 主按钮「新增车辆」。fixed="right",min-width 足够容纳两按钮。max-height:560;body 区域偏高,避免一屏过矮。PlVehicleFormDialog,vehicleType 锁定为当前 Tab。views/pl/vehicle/index.vue 新增弹窗(含关联人员、证书;证书校验策略与三方页一致)。views/pl/self-vehicle/index.vue 新增弹窗(含 enforce-self-vehicle-required 等自有规则)。vehicleApi.create;成功提示「新增成功」,关闭表单弹窗,对返回车辆执行与「选择」相同逻辑(回填并关闭选车弹窗)。vehicleApi.get 回填基本信息、人员、证书。vehicleApi.update;成功提示「编辑成功」,关闭表单弹窗,刷新当前 Tab 列表;选车弹窗保持打开,不自动改计划已选车辆。formData.vehicleId。handleVehicleChange(vehicleId):刷新 PlVehicleSummaryStrip、回填承运商、默认司机等,行为与下拉选车一致。vehicleList(或触发一次 searchVehicles)以保证回显。| 文件 | 变更 |
|---|---|
web-admin/src/components/business/pl-plan-form-dialog/index.vue |
车牌旁按钮;挂载选车弹窗;处理 select |
web-admin/src/components/business/pl-vehicle-library-select-dialog/index.vue |
新建:选车大弹窗(Tab + 列表 + 搜索 + 挂载表单弹窗) |
web-admin/src/components/business/pl-vehicle-form-dialog/index.vue |
新建:新增/编辑车辆完整表单;vehicleType prop 区分三方/自有 |
实现策略:表单弹窗对照两管理页已有弹窗模式落地(字段、人员子表、证书组件、校验);首期管理页可不立刻改为引用该组件,避免扩大范围。
dialog-form-layout,遮罩 backdrop-filter: none,底栏 Close / Check。el-icon。el-tag 语义色(与车辆列表一致)。el-link type="primary" 触发选择。计划表单 → 「从车辆库选择」→ PlVehicleLibrarySelectDialog
Tab(carrier|self) + keyword → vehicleApi.list({ vehicleType, q, page, pageSize })
选择 / 双击 / 车牌链接
→ emit('select', vehicle)
→ 计划 formData.vehicleId = vehicle.id
→ handleVehicleChange(vehicleId)
→ 关闭选车弹窗
新增 → PlVehicleFormDialog(vehicleType) → vehicleApi.create
→ 成功后走「选择」同一路径
编辑 → PlVehicleFormDialog → vehicleApi.update
→ 刷新当前 Tab 列表(不 select、不关选车弹窗)
| 项 | 结论 |
|---|---|
| 弹窗用途 | A:选车为主,兼新增/编辑(对齐地址库) |
| 表单范围 | A:完整表单(基本信息 + 人员 + 证书),对照管理页 |
| 操作列 | A:选择 + 编辑 |
| 实现方案 | 方案 1:独立选车弹窗 + 新建表单组件;管理页首期不强制抽离改造 |
| 按钮文案 | 从车辆库选择 |
| 弹窗尺寸 | 选车与表单均约 1360px 宽,列表区偏高 |
| 新增成功 | 自动选中并关闭选车弹窗 |
| 编辑成功 | 仅刷新列表,不自动选中 |