This commit is contained in:
Your Name
2026-08-03 09:51:53 +08:00
parent 81d6a38e26
commit 22a371a733
10 changed files with 215 additions and 96 deletions
+9
View File
@@ -424,6 +424,15 @@ export function prescriptionOrderEdit(params: Record<string, unknown>) {
return request.post({ url: '/tcm.prescriptionOrder/edit', params })
}
/** 仅修改业务订单的承运商与快递单号;所有履约状态均可使用 */
export function prescriptionOrderDdcode(params: {
id: number
express_company: string
tracking_number: string
}) {
return request.post({ url: '/tcm.prescriptionOrder/ddcode', params })
}
/** 业务订单详情:仅修改关联处方的患者姓名与手机号 */
export function prescriptionOrderPatchPrescriptionPatient(params: {
id: number
@@ -2255,6 +2255,7 @@ import {
prescriptionOrderAuditPayment,
prescriptionOrderAuditPrescription,
prescriptionOrderDetail,
prescriptionOrderDdcode,
prescriptionOrderEdit,
prescriptionOrderLists,
prescriptionOrderExport,
@@ -3243,9 +3244,8 @@ function canRefundRow(row: { fulfillment_status?: number; payment_slip_audit_sta
return (fs === 5 || fs === 6 || fs === 3 || fs === 9) && Number(row.payment_slip_audit_status) === 1
}
function canQuickTrackRow(row: { fulfillment_status?: number }) {
// 仅已发货(5) 可修改快递单号;已签收(6) 不可再改
return Number(row.fulfillment_status) === 5
function canQuickTrackRow(_row: { fulfillment_status?: number }) {
return true
}
function canUploadPharmacyRow(row: {
@@ -4094,33 +4094,8 @@ async function submitQuickTrack() {
}
quickTrackSaving.value = true
try {
// 先拉详情,获取所有必填字段,再只覆盖快递信息
const res: any = await prescriptionOrderDetail({ id: quickTrackRowId.value })
const d = res?.data ?? res
if (!d) {
feedback.msgError('加载订单数据失败')
return
}
await prescriptionOrderEdit({
id: d.id,
recipient_name: d.recipient_name || '',
recipient_phone: d.recipient_phone || '',
shipping_province: d.shipping_province || '',
shipping_city: d.shipping_city || '',
shipping_district: d.shipping_district || '',
shipping_address: d.shipping_address || '',
is_follow_up: d.is_follow_up ? 1 : 0,
medication_days: (d.medication_days != null && String(d.medication_days).trim() !== '') ? d.medication_days : '',
prev_staff: d.prev_staff || '',
service_channel: d.service_channel || '',
service_package: d.service_package || '',
fee_type: Number(d.fee_type) || 3,
amount: Number(d.amount) || 0,
remark_extra: d.remark_extra || '',
remark_assistant: d.remark_assistant || '',
internal_cost: (d.internal_cost != null && d.internal_cost !== '') ? d.internal_cost : '',
pay_order_ids: Array.isArray(d.pay_order_ids) ? d.pay_order_ids : [],
// 仅覆盖快递字段
await prescriptionOrderDdcode({
id: quickTrackRowId.value,
express_company: quickTrackForm.express_company || 'auto',
tracking_number: quickTrackForm.tracking_number.trim()
})
@@ -4129,17 +4104,6 @@ async function submitQuickTrack() {
getLists()
// 若详情 Drawer 打开且是同一订单,同步刷新
await detailDrawerRef.value?.refreshIfCurrent(quickTrackRowId.value)
// 仅保存前为履约中(2)时才询问确认发货;已发货(5)/已签收(6)等修改单号不再弹窗
if (canShipRow({ fulfillment_status: Number(d.fulfillment_status) })) {
try {
await ElMessageBox.confirm(
`快递单号「${quickTrackForm.tracking_number}」已保存,是否立即确认发货?`,
'确认发货',
{ type: 'success', confirmButtonText: '确认发货', cancelButtonText: '稍后再说' }
)
openShip({ id: quickTrackRowId.value, tracking_number: quickTrackForm.tracking_number, express_company: quickTrackForm.express_company })
} catch { /* 用户点了「稍后」 */ }
}
} catch {
/* 拦截器已提示 */
} finally {
@@ -2713,6 +2713,7 @@ import {
prescriptionOrderAuditPayment,
prescriptionOrderAuditPrescription,
prescriptionOrderDetail,
prescriptionOrderDdcode,
prescriptionOrderEdit,
prescriptionOrderLists,
prescriptionOrderPaidPayOrders,
@@ -3551,8 +3552,8 @@ function canRefundRow(row: { fulfillment_status?: number; payment_slip_audit_sta
return (fs === 5 || fs === 6 || fs === 3 || fs === 9) && Number(row.payment_slip_audit_status) === 1
}
function canQuickTrackRow(row: { fulfillment_status?: number }) {
return Number(row.fulfillment_status) === 5
function canQuickTrackRow(_row: { fulfillment_status?: number }) {
return true
}
function canUploadPharmacyRow(row: {
@@ -4900,33 +4901,8 @@ async function submitQuickTrack() {
}
quickTrackSaving.value = true
try {
//
const res: any = await prescriptionOrderDetail({ id: quickTrackRowId.value })
const d = res?.data ?? res
if (!d) {
feedback.msgError('加载订单数据失败')
return
}
await prescriptionOrderEdit({
id: d.id,
recipient_name: d.recipient_name || '',
recipient_phone: d.recipient_phone || '',
shipping_province: d.shipping_province || '',
shipping_city: d.shipping_city || '',
shipping_district: d.shipping_district || '',
shipping_address: d.shipping_address || '',
is_follow_up: d.is_follow_up ? 1 : 0,
medication_days: (d.medication_days != null && String(d.medication_days).trim() !== '') ? d.medication_days : '',
prev_staff: d.prev_staff || '',
service_channel: d.service_channel || '',
service_package: d.service_package || '',
fee_type: Number(d.fee_type) || 3,
amount: Number(d.amount) || 0,
remark_extra: d.remark_extra || '',
remark_assistant: d.remark_assistant || '',
internal_cost: (d.internal_cost != null && d.internal_cost !== '') ? d.internal_cost : '',
pay_order_ids: Array.isArray(d.pay_order_ids) ? d.pay_order_ids : [],
//
await prescriptionOrderDdcode({
id: quickTrackRowId.value,
express_company: quickTrackForm.express_company || 'auto',
tracking_number: quickTrackForm.tracking_number.trim()
})
@@ -4939,19 +4915,9 @@ async function submitQuickTrack() {
const r: any = await prescriptionOrderDetail({ id: quickTrackRowId.value })
const nd = r?.data ?? r ?? null
if (nd) detailData.value = nd
await fetchLogs(quickTrackRowId.value)
} catch { /* 静默 */ }
}
// (2)(5)/(6)
if (canShipRow({ fulfillment_status: Number(d.fulfillment_status) })) {
try {
await ElMessageBox.confirm(
`快递单号「${quickTrackForm.tracking_number}」已保存,是否立即确认发货?`,
'确认发货',
{ type: 'success', confirmButtonText: '确认发货', cancelButtonText: '稍后再说' }
)
openShip({ id: quickTrackRowId.value, tracking_number: quickTrackForm.tracking_number, express_company: quickTrackForm.express_company })
} catch { /* 用户点了「稍后」 */ }
}
} catch {
/* 拦截器已提示 */
} finally {