h2. 接口名称
编辑运单详情(运单编辑)

h2. 接口地址
{code}
/parcel/order/edit
{code}

h2. 请求方式
{code}
POST
{code}

h2. 请求头

|| 参数 || 类型 || 必填 || 说明 ||
| sessionId | String | 是 | 登录会话ID |
| language | String | 是 | 语言 |
| Content-Type | String | 是 | application/json |

*语言取值:*

|| 值 || 说明 ||
| zh_CN | 中文 |
| en_US | 英文 |

h2. 请求参数
该接口参数较为复杂,由多个模块的数据组合而成。

h3. 1. 订单基本信息 OrderInfo

|| 字段 || 类型 || 必填 || 说明 ||
| facility | String | 是 | 发件人网点 |
| addressCountry | String | 是 | 目的地国家/区域代码 |
| channel | Number | 是 | 服务ID渠道ID |
| serviceOption | String | 否 | 服务选项代码 |
| billingPartyName | String | 否 | 付款方 |
| platform | String | 否 | 电子商务平台 |
| lockerService | Boolean | 否 | 储物柜服务(当国家为RU时显示) |
| authorityToLeave | Boolean | 否 | 授权放置ATL(当服务为2、3、42、585、586、587时显示) |

h3. 2. 收件人地址信息 address

|| 字段 || 类型 || 必填 || 说明 ||
| addressId | String | 否 | 地址ID(编辑时传入) |
| country | String | 是 | 目的地国家代码 |
| addressLine1 | String | 是 | 地址行1 |
| addressLine2 | String | 否 | 地址行2 |
| addressLine3 | String | 否 | 地址行3 |
| city | String | 是 | 城市 |
| state | String | 是 | 省/州 |
| postcode | String | 是 | 邮编 |

h3. 3. 收件人联系信息

|| 字段 || 类型 || 必填 || 说明 ||
| recipientName | String | 是 | 收件人姓名 |
| recipientCompany | String | 否 | 接收方公司 |
| phone | String | 否 | 电话 |
| email | String | 否 | 邮箱 |

h3. 4. 包裹信息 ParcelInfo

|| 字段 || 类型 || 必填 || 说明 ||
| trackingNo | String | 否 | 跟踪号(编辑时显示,不可修改) |
| refNo | String | 是 | 参考号 |
| refNo1 | String | 否 | 参考号1 |
| dangerousGoods | Boolean | 否 | 包含其他危险品 |
| incoterm | String | 否 | 付税方式DDU/DDP |
| invoiceCurrency | String | 是 | 发票币种代码 |
| invoiceValue | String | 是 | 发票金额 |
| instruction | String | 否 | 装运提示 |
| weight | String | 是 | 重量 |
| weightUnit | String | 是 | 重量单位KG/G等 |
| volume | String | 否 | 体积 |
| description | String | 是 | 货物描述 |
| nativeDescription | String | 否 | 本地描述 |
| length | String | 否 | 长度 |
| width | String | 否 | 宽度 |
| height | String | 否 | 高度 |
| dimensionUnit | String | 否 | 体积单位cm/m/in |
| batteryPacking | Number | 否 | 电池包装intValue |
| batteryType | Number | 否 | 电池类型intValue |
| sku | String | 否 | 拣货清单 |
| recipientTaxId | String | 否 | 收件人税号 |
| vendorid | String | 否 | Vendor ID |
| agentID | String | 否 | 代理ID |
| sortCode | String | 否 | 分拣码 |
| purpose | String | 否 | 用途 |
| material | String | 否 | 材质 |
| codAmount | String | 否 | COD金额 |
| codCurrency | String | 否 | COD币种 |
| receiverKycType | String | 否 | 收件人KYC类型 |
| receiverKycNo | String | 否 | 收件人KYC号码 |
| injectPort | String | 否 | Inject Port |
| abnnumber | String | 否 | 澳洲生意注册号码(国家为AU时显示) |
| gstexemptioncode | String | 否 | 免税码(国家为AU时显示) |
| platformorderno | String | 否 | 平台订单号(特定服务显示) |
| coveramount | String | 否 | 投保金额(国家为AU时显示) |
| senderTaxId | String | 否 | 发货人税号 |
| postage | String | 否 | postage(特定服务显示) |
| icms | String | 否 | icms(特定服务显示) |
| vat | String | 否 | vat(特定服务显示) |
| originPort | String | 否 | 起运港(特定服务显示) |
| osnr | String | 否 | OSNR(特定服务显示,值为0或1) |
| specialHandlingType | String | 否 | 特殊交货类型(特定服务显示,SH05/SH06/SH07/SH09/SH10) |
| holdForPickup | String | 否 | Hold for Pickup(特定服务显示,值为N或Y) |
| residentialSignatureRequired | String | 否 | Residential Signature Required(特定服务显示,值为N或Y) |
| saturdayDelivery | String | 否 | Saturday Delivery(特定服务显示,值为N或Y) |
| exportInvoiceValue | String | 否 | 出口发票金额 |
| exportInvoiceCurrency | String | 否 | 出口发票币种 |
| imei1 | String | 否 | imei1(特定服务显示) |
| imei2 | String | 否 | imei2(特定服务显示) |
| warehouseID | String | 否 | 仓库ID |

h3. 5. 物品信息 parcelItems

数组类型,每个物品包含以下字段:

|| 字段 || 类型 || 必填 || 说明 ||
| uuid | String | 否 | 物品UUID(新增时为空,编辑时传入) |
| sku | String | 否 | SKU |
| description | String | 否 | 描述 |
| nativeDescription | String | 否 | 本地描述 |
| hsCode | String | 否 | HS编码 |
| originCountry | String | 否 | 原产国 |
| unitValue | Number | 否 | 单价 |
| itemCount | Number | 否 | 数量 |
| weight | Number | 否 | 重量 |
| productURL | String | 否 | 产品链接 |
| warehouseNo | String | 否 | 仓库号 |
| pictures | Array | 否 | 物品图片数组 |
| extendData | Object | 否 | 扩展数据(包含itemExportInvoiceValue、itemExportInvoiceCurrency) |

h3. 6. 发货人地址信息 shipperAddress

|| 字段 || 类型 || 必填 || 说明 ||
| addressId | String | 否 | 地址ID(编辑时传入) |
| country | String | 否 | 发货人国家代码 |
| addressLine1 | String | 是 | 地址行1 |
| addressLine2 | String | 否 | 地址行2 |
| addressLine3 | String | 否 | 地址行3 |
| city | String | 是 | 城市 |
| state | String | 否 | 省/州 |
| postcode | String | 否 | 邮编 |
| shipperName | String | 否 | 发货人姓名 |
| shipperPhone | String | 否 | 发货人电话 |
| shipperEmail | String | 否 | 发货人邮箱 |
| shipperOrganizationCode | String | 否 | 企业统一社会信用代码(扩展字段) |
| shipperCompanyName | String | 否 | 发货人公司名(扩展字段) |

h3. 7. 退货地址信息 returnAddress

|| 字段 || 类型 || 必填 || 说明 ||
| addressId | String | 否 | 地址ID(编辑时传入) |
| addressLine1 | String | 是 | 地址行1 |
| addressLine2 | String | 否 | 地址行2 |
| addressLine3 | String | 否 | 地址行3 |
| city | String | 是 | 城市 |
| state | String | 否 | 省/州 |
| postcode | String | 否 | 邮编 |
| country | String | 否 | 退货国家代码 |
| returnName | String | 否 | 退货人姓名 |
| returnPhone | String | 否 | 退件电话 |
| returnOption | String | 否 | 退货选项Destroy/Return/Forward/Change |

h3. 8. 在线投保信息 insur

|| 字段 || 类型 || 必填 || 说明 ||
| uuid | String | 否 | 投保UUID |
| cancel | Boolean | 否 | 是否取消投保(true表示不投保,提交时删除insur对象) |
| insureType | String | 否 | 被保险人类型(01=个人,02=公司) |
| insuredContackName | String | 否 | 被保人真实姓名 |
| insuredName | String | 否 | 被投保人联系人姓名 |
| insureAmount | String | 否 | 投保额 |
| insureCurrency | String | 否 | 投保额币种 |
| insureCardNo | String | 否 | 组织机构代码证或身份证号码 |
| projectNo | String | 否 | 保单号 |

h3. 9. 其他字段

|| 字段 || 类型 || 必填 || 说明 ||
| uuid | String | 是 | 运单UUID(编辑时必传) |
| actualWeight | String | 否 | 实际重量 |
| actualVolume | String | 否 | 实际体积 |
| actualLength | String | 否 | 实际长度 |
| actualWidth | String | 否 | 实际宽度 |
| actualHeight | String | 否 | 实际高度 |
| girth | String | 否 | 周长 |
| actualGirth | String | 否 | 实际周长 |

h2. 参数联动关系说明

h3. 1. 服务与付税方式联动

付税方式incoterm选项根据服务IDchannel动态变化:

|| 服务ID || 可用付税方式 ||
| 0 | DDU, DDP |
| 28 | DDU |
| 35 | DDU |
| 36 | DDU |
| 37 | DDU |
| 57 | DDP |
| 58 | DDU |
| 67 | DDU |
| 139 | DDP, DDU |
| 140 | DDP, DDU |
| 141 | DDP, DDU |
| 142 | DDP, DDU |
| 174 | DDP |
| 198 | DDP, DDU |
| 238 | DDP, DDU |
| 249 | DDP, DDU |
| 273 | DDP |
| 274 | DDU |
| 377 | DDP, DDU |
| 29(根据国家区分) | US=DDP, GB/其他=DDU或DDP |

h3. 2. 国家与服务联动

选择目的地国家后,服务选项会根据国家过滤。

h3. 3. 服务与服务选项联动

选择服务后,服务选项会根据服务ID查询对应的选项列表。

h3. 4. 字段显示/隐藏联动

|| 字段 || 显示条件 ||
| lockerService | 国家为RU时显示 |
| authorityToLeave | 服务为2、3、42、585、586、587时显示 |
| abnnumber, gstexemptioncode, coveramount | 国家为AU时显示 |
| platformorderno | 服务为139, 205, 237, 238, 249, 273, 275, 293, 345, 362, 364时显示 |
| originPort | 服务为698, 721, 724, 722, 725, 723, 726, 786时显示 |
| osnr, specialHandlingType, holdForPickup, residentialSignatureRequired, saturdayDelivery | 服务为1062, 1063时显示 |
| vat | 服务为698, 946, 1161时显示 |
| postage, icms | 服务为946, 1161时显示 |
| imei1, imei2 | 服务为1153时显示 |

h2. 写死在前端的下拉框数据

h3. 1. 扣留选项 heldsOptions

{code}
[
{ "label": "无扣留", "value": 0 },
{ "label": "客户扣留", "value": 1 },
{ "label": "承运商扣留", "value": 2 },
{ "label": "财务扣留", "value": 3 },
{ "label": "大货扣留", "value": 4 },
{ "label": "电池扣留", "value": 5 },
{ "label": "违禁品扣留", "value": 6 },
{ "label": "其他扣留", "value": 7 },
{ "label": "退货扣留", "value": 8 },
{ "label": "KYC扣留", "value": 9 },
{ "label": "超重扣留", "value": 10 },
{ "label": "超长扣留", "value": 11 },
{ "label": "包装问题扣留", "value": 12 },
{ "label": "重量差异", "value": 23 },
{ "label": "重复收件人", "value": 25 },
{ "label": "超重警告", "value": 26 },
{ "label": "超大", "value": 27 },
{ "label": "不符申报", "value": 29 },
{ "label": "HSCode扣留", "value": 30 },
{ "label": "无可用服务", "value": 31 },
{ "label": "超时", "value": 32 }
]
{code}

h3. 2. 默认付税方式选项 INCOTERM_OPTIONS_DEFAULT

{code}
[
{ "label": "DDU", "value": "DDU" },
{ "label": "DDP", "value": "DDP" }
]
{code}

h3. 3. 体积单位选项 DIMENSIONUNIT_OPTIONS

{code}
[
{ "label": "CM", "value": "cm" },
{ "label": "M", "value": "m" },
{ "label": "IN", "value": "in" }
]
{code}

h3. 4. 退货选项 RETURN_OPTIONS

{code}
[
{ "name": "Destroy", "cnName": "销毁", "value": "Destroy" },
{ "name": "Return", "cnName": "退回", "value": "Return" },
{ "name": "Forward", "cnName": "转寄", "value": "Forward" },
{ "name": "Change", "cnName": "地址更改", "value": "Change" }
]
{code}

h3. 5. 投保额币种选项 INSURANCE_CURRENCY_OPTIONS

{code}
[
{ "label": "RMB", "value": "RMB" },
{ "label": "HKD", "value": "HKD" },
{ "label": "USD", "value": "USD" },
{ "label": "GBP", "value": "GBP" },
{ "label": "JPY", "value": "JPY" },
{ "label": "SGD", "value": "SGD" },
{ "label": "CAD", "value": "CAD" },
{ "label": "EUR", "value": "EUR" },
{ "label": "AUD", "value": "AUD" }
]
{code}

h3. 6. 储物柜服务选项 lockerService

{code}
[
{ "label": "No", "value": false },
{ "label": "Yes", "value": true }
]
{code}

h3. 7. OSNR选项 osnr

{code}
[
{ "label": "No", "value": "0" },
{ "label": "Yes", "value": "1" }
]
{code}

h3. 8. 特殊交货类型选项 specialHandlingType

{code}
[
{ "label": "SH05", "value": "SH05" },
{ "label": "SH06", "value": "SH06" },
{ "label": "SH07", "value": "SH07" },
{ "label": "SH09", "value": "SH09" },
{ "label": "SH10", "value": "SH10" }
]
{code}

h3. 9. Yes/No类型选项

适用于:holdForPickup, residentialSignatureRequired, saturdayDelivery

{code}
[
{ "label": "No", "value": "N" },
{ "label": "Yes", "value": "Y" }
]
{code}

h2. 动态获取的下拉框数据

h3. 1. 发件人网点 facilityOptions

接口:GET /facility/getByPartyId

h3. 2. 国家列表 countryOptions

接口:全局方法 getCountryData() 获取

h3. 3. 服务列表 channelOptions

接口:根据国家获取可用服务 getServicesByShipperAndCountry({ country })

h3. 4. 服务选项 serviceOptions

接口:根据服务ID获取服务选项 getServiceOptionsByService(channel)

h3. 5. 币种列表 currencyOptions

接口:全局方法 getCurrencyData() 获取

h3. 6. 重量单位 weightUnitOptions

接口:系统代码表 getSysCode('WUT001')

h3. 7. 电池包装 batteryPackingOptions

接口:系统代码表 getSysCode('BOT001')

h3. 8. 电池类型 batteryTypeOptions

接口:系统代码表 getSysCode('BPT001')

h2. 请求示例

{code}
{
"uuid": "abc123-def456-ghi789",
"facility": "*",
"channel": 29,
"serviceOption": "STANDARD",
"billingPartyName": "Test Company",
"platform": "eBay",
"lockerService": false,
"authorityToLeave": false,
"recipientName": "John Doe",
"recipientCompany": "ABC Corp",
"phone": "+1234567890",
"email": "test@example.com",
"address": {
"addressId": "addr-123",
"country": "US",
"addressLine1": "123 Main St",
"addressLine2": "Apt 4B",
"addressLine3": "",
"city": "New York",
"state": "NY",
"postcode": "10001"
},
"trackingNo": "TRACK123456",
"refNo": "REF001",
"refNo1": "REF002",
"dangerousGoods": false,
"incoterm": "DDP",
"invoiceCurrency": "USD",
"invoiceValue": "100.00",
"instruction": "Fragile",
"weight": "1.5",
"weightUnit": "kg",
"volume": "0.1",
"description": "Electronics",
"nativeDescription": "电子产品",
"length": "20.0",
"width": "15.0",
"height": "10.0",
"dimensionUnit": "cm",
"batteryPacking": 0,
"batteryType": 0,
"sku": "SKU001",
"parcelItems": [
{
"uuid": "item-001",
"sku": "SKU001",
"description": "Phone Case",
"nativeDescription": "手机壳",
"hsCode": "8517",
"originCountry": "CN",
"unitValue": 10.00,
"itemCount": 2,
"weight": 0.3,
"extendData": {
"itemExportInvoiceValue": "20.00",
"itemExportInvoiceCurrency": "USD"
}
}
],
"shipperAddress": {
"addressId": "ship-addr-123",
"country": "CN",
"addressLine1": "456 Shipper St",
"addressLine2": "",
"addressLine3": "",
"city": "Shenzhen",
"state": "Guangdong",
"postcode": "518000",
"shipperName": "Sender Name",
"shipperPhone": "+861234567890",
"shipperEmail": "sender@example.com",
"shipperOrganizationCode": "ORG001",
"shipperCompanyName": "Sender Company"
},
"returnAddress": {
"addressId": "ret-addr-123",
"addressLine1": "789 Return St",
"addressLine2": "",
"addressLine3": "",
"city": "Shenzhen",
"state": "Guangdong",
"postcode": "518000",
"country": "CN",
"returnName": "Return Name",
"returnPhone": "+861234567890",
"returnOption": "Return"
},
"insur": {
"uuid": "ins-001",
"cancel": false,
"insureType": "02",
"insuredContackName": "Insured Name",
"insuredName": "Contact Name",
"insureAmount": "500.00",
"insureCurrency": "USD",
"insureCardNo": "ORG123456",
"projectNo": "POL123456"
},
"extendData": {
"vendorid": "VEN001",
"agentID": "AGENT001",
"sortCode": "SORT001",
"purpose": "Commercial",
"material": "Plastic",
"codAmount": "100.00",
"codCurrency": "USD",
"receiverKycType": "Individual",
"receiverKycNo": "KYC001",
"injectPort": "LAX",
"abnnumber": "ABN123456",
"gstexemptioncode": "GST001",
"platformorderno": "PLATFORM123",
"coveramount": "200.00",
"senderTaxId": "TAX001",
"postage": "10.00",
"icms": "5.00",
"vat": "20.00",
"originPort": "SZX",
"osnr": "0",
"specialHandlingType": "SH05",
"holdForPickup": "N",
"residentialSignatureRequired": "Y",
"saturdayDelivery": "N",
"exportInvoiceValue": "150.00",
"exportInvoiceCurrency": "USD",
"imei1": "IMEI001",
"imei2": "IMEI002",
"warehouseID": "WH001"
}
}
{code}

h2. 返回示例

{code}
{
"success": true,
"code": "0",
"data": {
"warnings": [],
"errors": [],
"errorMessage": null
}
}
{code}

h2. 返回字段说明

|| 字段 || 类型 || 说明 ||
| success | Boolean | 请求是否成功 |
| code | String | 响应状态码,0表示成功 |
| data | Object | 返回数据 |
| data.warnings | Array | 警告信息列表 |
| data.errors | Array | 错误信息列表 |
| data.errorMessage | String | 错误信息(当有错误时返回) |

h2. 错误处理说明

接口可能返回三种情况:

1. 成功:warnings和errors都为空
2. 有警告:warnings有内容,errors为空
3. 有错误:errors有内容,或errorMessage有值
4. 同时有警告和错误:warnings和errors都有内容

前端会根据返回结果展示不同的提示框:

有警告和错误:先展示警告,确认后再展示错误
只有警告:展示警告后关闭页面
只有错误:展示错误信息
成功:显示保存成功并关闭页面

h2. 前端文件位置

主文件:viewPages/shipper/views/orders/shippingOrders/OrdersDetail.vue

子组件目录:viewPages/shipper/views/orders/addOrder/ordersDetailComponents/

* OrderInfo.vue - 订单基本信息
* RecipientAddressInfo.vue - 收件人地址信息
* ParcelInfo.vue - 包裹信息
* ProductItemInfo.vue - 物品信息
* ShipperAddressInfo.vue - 发货人地址信息
* ReturnAddressInfo.vue - 退货地址信息
* OnlineInsuranceInfo.vue - 在线投保信息
* TrackingInfo.vue - 跟踪号信息(只读)

接口文件:viewPages/shipper/api/orders/shippingOrders.js

数据文件:viewPages/shipper/utils/data/orders/shippingOrdersDetail.js