优化气站订单分配配送点与人员名称回显
This commit is contained in:
40
docs/操作日志_气站订单分配配送点名称回显_20260819.md
Normal file
40
docs/操作日志_气站订单分配配送点名称回显_20260819.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# 气站订单分配配送点名称回显操作日志
|
||||||
|
|
||||||
|
操作时间:2026-08-19 20:08:00
|
||||||
|
操作类型:修改
|
||||||
|
影响模块:气站管理系统 / 配送订单分配弹窗
|
||||||
|
|
||||||
|
## 操作前状态
|
||||||
|
|
||||||
|
- 分配弹窗字段标题显示为“配送点唯一标识”。
|
||||||
|
- 已分配订单锁定配送点时,需要再次请求配送点详情才能取得名称;补载未完成或失败时,下拉框直接展示 UUID。
|
||||||
|
|
||||||
|
## 具体操作
|
||||||
|
|
||||||
|
- 将字段标题调整为“配送点”,工作人员字段调整为“配送人员”。
|
||||||
|
- 配送点候选明确使用 `name` 字段作为可读名称。
|
||||||
|
- 锁定配送点时优先使用订单详情已返回的 `delivery_basic_display_name` 构建回显选项。
|
||||||
|
- 订单详情没有名称时,继续沿用原详情补载逻辑作为兼容兜底。
|
||||||
|
|
||||||
|
## 操作后状态
|
||||||
|
|
||||||
|
- 分配弹窗按 5173 的展示方式显示配送点名称,例如“1”,不再优先展示 UUID。
|
||||||
|
- 配送点锁定、配送人员筛选和分配提交值保持不变。
|
||||||
|
|
||||||
|
## 代码变更
|
||||||
|
|
||||||
|
- `frontend/gas_admin/src/api/resources.ts`:分配动作字段的业务标题、提示语和名称键。
|
||||||
|
- `frontend/gas_admin/src/views/resource/ResourceActionDialog.vue`:锁定配送点名称回显。
|
||||||
|
|
||||||
|
## 验证结果
|
||||||
|
|
||||||
|
- `pnpm run type:check`:通过。
|
||||||
|
- `pnpm run contract:check`:通过,20 个资源。
|
||||||
|
- `pnpm run resource-pages:check`:通过,详情 20 类、新建 11 类、编辑 8 类。
|
||||||
|
- `pnpm run build`:通过。
|
||||||
|
|
||||||
|
## 风险评估
|
||||||
|
|
||||||
|
- 改动仅影响分配弹窗的字段文案和下拉框回显。
|
||||||
|
- 表单仍提交原 `delivery_basic_identity`,不改变后端接口和分配业务逻辑。
|
||||||
|
- 已保留名称缺失时的原详情补载兜底。
|
||||||
@@ -434,7 +434,7 @@ const platformResources: ResourceUiDefinition[] = [
|
|||||||
]),
|
]),
|
||||||
define('gasorder_contract_revision', '合同修订记录', 'readonly', []),
|
define('gasorder_contract_revision', '合同修订记录', 'readonly', []),
|
||||||
define('gasorder_basic', '气体配送订单', 'append_only', [f('request_no', { required: true }), relation('gasorder_contract_identity', '/gasorder_contract', true), f('creator_type', { required: true, type: 'select', options: [{ label: '用户', value: 'user' }, { label: '工作人员', value: 'staff' }, { label: '配送站', value: 'delivery' }, { label: '气站', value: 'gas' }] }), f('creator_identity', { required: true }), relation('user_address_identity', '/user_address', true), f('gasorder_contract_product_identities', { required: true, type: 'identity-list', relation: '/gasorder_contract_product' }), f('contact_name', { required: true }), f('contact_phone', { required: true }), f('discount_amount'), f('remark')], 'list', [
|
define('gasorder_basic', '气体配送订单', 'append_only', [f('request_no', { required: true }), relation('gasorder_contract_identity', '/gasorder_contract', true), f('creator_type', { required: true, type: 'select', options: [{ label: '用户', value: 'user' }, { label: '工作人员', value: 'staff' }, { label: '配送站', value: 'delivery' }, { label: '气站', value: 'gas' }] }), f('creator_identity', { required: true }), relation('user_address_identity', '/user_address', true), f('gasorder_contract_product_identities', { required: true, type: 'identity-list', relation: '/gasorder_contract_product' }), f('contact_name', { required: true }), f('contact_phone', { required: true }), f('discount_amount'), f('remark')], 'list', [
|
||||||
{ name: '分配订单', resource: '/gasorder_basic/:identity/assign', fields: [relation('delivery_basic_identity', '/delivery_basic', true), relation('staff_account_identity', '/staff_account', true, { staffRelation: { roles: ['delivery'], enabledOnly: true } }), ...reason], visibleFor: { field: 'order_status', values: [16, 18] } },
|
{ name: '分配订单', resource: '/gasorder_basic/:identity/assign', fields: [relation('delivery_basic_identity', '/delivery_basic', true, { label: '配送点', placeholder: '请选择合同履约范围内的配送点', relationOptionLabelKey: 'name' }), relation('staff_account_identity', '/staff_account', true, { label: '配送人员', placeholder: '请选择当前配送点内的配送人员', staffRelation: { roles: ['delivery'], enabledOnly: true } }), ...reason], visibleFor: { field: 'order_status', values: [16, 18] } },
|
||||||
{ name: '开始罐装', resource: '/gasorder_basic/:identity/filling', fields: reason, visibleFor: { field: 'order_status', values: [18] } },
|
{ name: '开始罐装', resource: '/gasorder_basic/:identity/filling', fields: reason, visibleFor: { field: 'order_status', values: [18] } },
|
||||||
{ name: '待配送', resource: '/gasorder_basic/:identity/ready', fields: reason, visibleFor: { field: 'order_status', values: [19] } },
|
{ name: '待配送', resource: '/gasorder_basic/:identity/ready', fields: reason, visibleFor: { field: 'order_status', values: [19] } },
|
||||||
{ name: '开始配送', resource: '/gasorder_basic/:identity/delivering', fields: reason, visibleFor: { field: 'order_status', values: [20] } },
|
{ name: '开始配送', resource: '/gasorder_basic/:identity/delivering', fields: reason, visibleFor: { field: 'order_status', values: [20] } },
|
||||||
|
|||||||
@@ -217,7 +217,17 @@ async function initializeGasorderAssignment() {
|
|||||||
const lockedIdentity = lockedAssignmentDeliveryIdentity.value;
|
const lockedIdentity = lockedAssignmentDeliveryIdentity.value;
|
||||||
if (lockedIdentity) {
|
if (lockedIdentity) {
|
||||||
form.delivery_basic_identity = lockedIdentity;
|
form.delivery_basic_identity = lockedIdentity;
|
||||||
await relations.ensure('/delivery_basic', lockedIdentity);
|
const lockedDisplayName = String(
|
||||||
|
props.record.delivery_basic_display_name ?? '',
|
||||||
|
).trim();
|
||||||
|
// 订单详情已返回当前配送点名称时直接回显,避免补载请求期间短暂展示裸唯一标识。
|
||||||
|
if (lockedDisplayName) {
|
||||||
|
relations.options['/delivery_basic'] = [
|
||||||
|
{ identity: lockedIdentity, name: lockedDisplayName },
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
await relations.ensure('/delivery_basic', lockedIdentity);
|
||||||
|
}
|
||||||
await relations.loadField(staffField, '', {
|
await relations.loadField(staffField, '', {
|
||||||
filters: assignmentStaffFilters(lockedIdentity),
|
filters: assignmentStaffFilters(lockedIdentity),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user