This commit is contained in:
Your Name
2026-09-21 10:26:14 +08:00
parent bbe3e870a1
commit dbf474ddd7
67 changed files with 10636 additions and 279 deletions
+1 -1
View File
@@ -467,7 +467,7 @@ export function prescriptionOrderEditTime(params: { id: number; create_time: str
return request.post({ url: '/tcm.prescriptionOrder/editTime', params })
}
/** 仅修改业务订单的承运商与快递单号;所有履约状态均可使用 */
/** 仅修改业务订单的承运商与快递单号;处方和支付单均审核通过后,所有履约状态均可使用 */
export function prescriptionOrderDdcode(params: {
id: number
express_company: string
@@ -871,8 +871,17 @@
<el-option label="京东快递" value="jd" />
<el-option label="极兔速递" value="jt" />
</el-select>
<el-input v-model="editForm.tracking_number" maxlength="80" placeholder="快递单号" class="flex-1 min-w-0" />
</div>
<el-input
v-model="editForm.tracking_number"
disabled
maxlength="80"
placeholder="快递单号"
class="flex-1 min-w-0"
/>
</div>
<div class="text-xs text-gray-400 mt-1">
编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改
</div>
</el-form-item>
</el-col>
</el-row>
@@ -1067,8 +1076,17 @@
<el-option label="京东快递" value="jd" />
<el-option label="极兔速递" value="jt" />
</el-select>
<el-input v-model="editForm.tracking_number" maxlength="80" placeholder="快递单号" class="flex-1 min-w-0" />
</div>
<el-input
v-model="editForm.tracking_number"
disabled
maxlength="80"
placeholder="快递单号"
class="flex-1 min-w-0"
/>
</div>
<div class="text-xs text-gray-400 mt-1">
编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改
</div>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -2975,9 +2993,13 @@ function canWithdrawRow(row: { fulfillment_status?: number }) {
return Number(row.fulfillment_status) === 1
}
function canShipRow(row: { fulfillment_status?: number }) {
// 履约中(2) 可发货
return Number(row.fulfillment_status) === 2
function canShipRow(row: {
fulfillment_status?: number
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
// 履约中(2) 且处方、支付单均审核通过才可发货
return Number(row.fulfillment_status) === 2 && isDualAuditPassed(row)
}
type ShipMode = 'gancao' | 'direct'
@@ -3073,8 +3095,11 @@ 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 true
function canQuickTrackRow(row: {
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
return isDualAuditPassed(row)
}
function canUploadPharmacyRow(row: {
@@ -3270,7 +3295,7 @@ const editSaving = ref(false)
/** 编辑订单分步:0 收货 / 1 服务与支付单 / 2 金额与确认(与处方列表「创建业务订单」一致) */
const editOrderStep = ref(0)
/** 顶部「关联处方」卡片数据(来自业务订单详情中的 prescription) */
const editOrderPrescription = ref<Record<string, any> | null>(null)
const editOrderPrescription = ref<Record<string, any> | null>(null)
/** 甘草 SCM 已提交:弹窗仅展示并提交快递单号与承运商 */
const editGancaoLogisticsOnlyMode = ref(false)
/** 用于提示文案展示甘草处方单号 */
@@ -3455,7 +3480,7 @@ const editRules = computed<FormRules>(() => {
return rules
})
function resetEditOrderDialog() {
function resetEditOrderDialog() {
editOrderStep.value = 0
editOrderPrescription.value = null
editGancaoLogisticsOnlyMode.value = false
@@ -3507,8 +3532,8 @@ async function openEdit(row: {
}
editOrderStep.value = 0
editOrderPrescription.value = null
editVisible.value = true
editDialogLoading.value = true
editVisible.value = true
editDialogLoading.value = true
try {
const res: any = await prescriptionOrderDetail({ id: row.id })
const d = res?.data ?? res
@@ -3531,7 +3556,7 @@ async function openEdit(row: {
editOrderPrescription.value = null
}
editForm.id = d.id
editForm.id = d.id
editForm.prescription_id = Number(d.prescription_id) || 0
editForm.diagnosis_id = Number(d.diagnosis_id) || 0
editForm.assistant_id = Number(d.assistant_id) || 0
@@ -3627,7 +3652,6 @@ async function submitEdit() {
service_channel: editForm.service_channel || '',
service_package: Array.isArray(editForm.service_package) ? editForm.service_package.join(',') : '',
express_company: editForm.express_company || 'auto',
tracking_number: editForm.tracking_number || '',
fee_type: editForm.fee_type,
amount: editForm.amount,
remark_extra: editForm.remark_extra || '',
@@ -3915,7 +3939,17 @@ const quickTrackForm = reactive({
tracking_number: ''
})
function openQuickTrack(row: { id: number; express_company?: unknown; tracking_number?: unknown }) {
function openQuickTrack(row: {
id: number
express_company?: unknown
tracking_number?: unknown
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
if (!canQuickTrackRow(row)) {
feedback.msgWarning('处方审核和支付单审核均通过后,才可填写或修改快递单号')
return
}
quickTrackRowId.value = row.id
quickTrackForm.express_company = String(row.express_company || 'auto') || 'auto'
quickTrackForm.tracking_number = String(row.tracking_number || '')
@@ -3963,7 +3997,19 @@ function resolveShipModeForRow(row: { id: number; ship_mode?: unknown }) {
return normalizeShipMode(row.ship_mode)
}
function openShip(row: { id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown }) {
function openShip(row: {
id: number
express_company?: unknown
tracking_number?: unknown
ship_mode?: unknown
fulfillment_status?: number
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
if (!canShipRow(row)) {
feedback.msgWarning('仅处方审核和支付单审核均通过的履约中订单可填写单号并发货')
return
}
shipRowId.value = Number(row.id)
shipForm.ship_mode = resolveShipModeForRow(row)
shipForm.express_company = String(row.express_company || 'auto') || 'auto'
@@ -1624,8 +1624,17 @@
<el-option label="京东快递" value="jd" />
<el-option label="极兔速递" value="jt" />
</el-select>
<el-input v-model="editForm.tracking_number" maxlength="80" placeholder="快递单号" class="flex-1 min-w-0" />
</div>
<el-input
v-model="editForm.tracking_number"
disabled
maxlength="80"
placeholder="快递单号"
class="flex-1 min-w-0"
/>
</div>
<div class="text-xs text-gray-400 mt-1">
编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改
</div>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -3422,9 +3431,13 @@ function canWithdrawRow(row: { fulfillment_status?: number }) {
return Number(row.fulfillment_status) === 1
}
function canShipRow(row: { fulfillment_status?: number }) {
// 履约中(2) 可发货
return Number(row.fulfillment_status) === 2
function canShipRow(row: {
fulfillment_status?: number
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
// 履约中(2) 且处方、支付单均审核通过才可发货
return Number(row.fulfillment_status) === 2 && isDualAuditPassed(row)
}
function canAddPayOrderRow(row: { fulfillment_status?: number }) {
@@ -3444,8 +3457,11 @@ 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 true
function canQuickTrackRow(row: {
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
return isDualAuditPassed(row)
}
function canUploadPharmacyRow(row: {
@@ -4181,7 +4197,7 @@ const editSaving = ref(false)
/** 编辑订单分步:0 收货 / 1 服务与支付单 / 2 金额与确认(与处方列表「创建业务订单」一致) */
const editOrderStep = ref(0)
/** 顶部「关联处方」卡片数据(来自业务订单详情中的 prescription) */
const editOrderPrescription = ref<Record<string, any> | null>(null)
const editOrderPrescription = ref<Record<string, any> | null>(null)
const editOrderStepLead = computed(() => {
const texts = [
@@ -4381,7 +4397,7 @@ const editRules = computed<FormRules>(() => {
return rules
})
function resetEditOrderDialog() {
function resetEditOrderDialog() {
editOrderStep.value = 0
editOrderPrescription.value = null
editFormRef.value?.clearValidate()
@@ -4431,8 +4447,8 @@ async function openEdit(row: {
}
editOrderStep.value = 0
editOrderPrescription.value = null
editVisible.value = true
editDialogLoading.value = true
editVisible.value = true
editDialogLoading.value = true
try {
const res: any = await prescriptionOrderDetail({ id: row.id })
const d = res?.data ?? res
@@ -4455,7 +4471,7 @@ async function openEdit(row: {
editOrderPrescription.value = null
}
editForm.id = d.id
editForm.id = d.id
editForm.prescription_id = Number(d.prescription_id) || 0
editForm.diagnosis_id = Number(d.diagnosis_id) || 0
editForm.assistant_id = Number(d.assistant_id) || 0
@@ -4540,7 +4556,6 @@ async function submitEdit() {
service_channel: editForm.service_channel || '',
service_package: Array.isArray(editForm.service_package) ? editForm.service_package.join(',') : '',
express_company: editForm.express_company || 'auto',
tracking_number: editForm.tracking_number || '',
fee_type: editForm.fee_type,
amount: editForm.amount,
remark_extra: editForm.remark_extra || '',
@@ -4788,7 +4803,17 @@ const quickTrackForm = reactive({
tracking_number: ''
})
function openQuickTrack(row: { id: number; express_company?: unknown; tracking_number?: unknown }) {
function openQuickTrack(row: {
id: number
express_company?: unknown
tracking_number?: unknown
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
if (!canQuickTrackRow(row)) {
feedback.msgWarning('处方审核和支付单审核均通过后,才可填写或修改快递单号')
return
}
quickTrackRowId.value = row.id
quickTrackForm.express_company = String(row.express_company || 'auto') || 'auto'
quickTrackForm.tracking_number = String(row.tracking_number || '')
@@ -4840,7 +4865,19 @@ const shipDialogModeDisplay = computed(() =>
shipForm.ship_mode === 'direct' ? '洛阳药房直发' : '甘草药房直发'
)
function openShip(row: { id: number; express_company?: unknown; tracking_number?: unknown; ship_mode?: unknown }) {
function openShip(row: {
id: number
express_company?: unknown
tracking_number?: unknown
ship_mode?: unknown
fulfillment_status?: number
prescription_audit_status?: number
payment_slip_audit_status?: number
}) {
if (!canShipRow(row)) {
feedback.msgWarning('仅处方审核和支付单审核均通过的履约中订单可填写单号并发货')
return
}
shipRowId.value = row.id
shipForm.ship_mode = String(row.ship_mode || 'gancao') || 'gancao'
shipForm.express_company = String(row.express_company || 'auto') || 'auto'