日期: 2026-08-06
状态: 已实现
选定方案: 方案 1 — 独立选承运商弹窗(对齐「从地址库选择 / 从车辆库选择」)+ 嵌套承运商表单弹窗(对照 views/pl/carrier 完整新增编辑)
carrierId。carrierApi 契约pl-plan-form-dialog 运输信息区「运输公司」el-select 右侧。flex 行,选择器 flex:1,按钮不换行)。FolderOpened + 文案;btn-ghost)。PlCarrierLibrarySelectDialog。dialog-form-layout,align-center,append-to-body,destroy-on-close,遮罩无 blur。q)+ 主按钮「新增承运商」。max-height:560;body min-height: 560px。PlCarrierFormDialog(无 carrierId)。views/pl/carrier/index.vue:名称、合作状态、联系人、电话、备注、营业执照 / 道路经营许可证 / 运输协议附件、协议有效期。carrierApi.create;成功后自动 select 并关闭选弹窗。carrierApi.get。carrierApi.update;成功后刷新列表;选弹窗保持打开,不改计划已选承运商。formData.carrierId。ensureSelectedCarrierOption(carrierId) 保证下拉回显。| 文件 | 变更 |
|---|---|
web-admin/src/components/business/pl-plan-form-dialog/index.vue |
运输公司旁按钮;挂载选弹窗;处理 select |
web-admin/src/components/business/pl-carrier-library-select-dialog/index.vue |
新建:选承运商大弹窗 |
web-admin/src/components/business/pl-carrier-form-dialog/index.vue |
新建:新增/编辑完整表单 |
实现策略:表单弹窗对照管理页落地;首期管理页可不立刻引用该组件。
dialog-form-layout,遮罩无 blur,底栏 Close / Check;按钮带图标。el-tag 语义色。计划表单 → 「从承运商库选择」→ PlCarrierLibrarySelectDialog
keyword → carrierApi.list({ q, page, pageSize })
选择 / 双击 / 名称链接
→ emit('select', carrier)
→ formData.carrierId = carrier.id
→ ensureSelectedCarrierOption(id)
→ 关闭选弹窗
新增 → PlCarrierFormDialog → carrierApi.create
→ 成功后走「选择」同一路径
编辑 → PlCarrierFormDialog → carrierApi.update
→ 刷新列表(不 select、不关选弹窗)
| 项 | 结论 |
|---|---|
| 弹窗用途 | A:选承运商为主,兼新增/编辑 |
| 表单范围 | A:完整对照承运商管理页 |
| 按钮文案 | 从承运商库选择 |
| 新增成功 | 自动选中并关闭选弹窗 |
| 编辑成功 | 仅刷新列表 |
| 管理页 | 首期不强制抽离改造 |