This commit is contained in:
Your Name
2026-05-18 15:57:09 +08:00
parent 9e24d49210
commit 439d5a3ec9
@@ -495,7 +495,7 @@
>修改单号</el-button> >修改单号</el-button>
<el-button <el-button
v-if="canShipRow(row)" v-if="canShipRow(row)"
v-perms="['tcm.prescriptionOrder/ship', 'tcm.prescriptionOrder/submitGancaoRecipel']" v-perms="['tcm.prescriptionOrder/ship']"
type="primary" type="primary"
link link
@click="openShip(row)" @click="openShip(row)"
@@ -606,7 +606,7 @@
</el-button> </el-button>
<el-button <el-button
v-if="canShipRow(detailData)" v-if="canShipRow(detailData)"
v-perms="['tcm.prescriptionOrder/ship', 'tcm.prescriptionOrder/submitGancaoRecipel']" v-perms="['tcm.prescriptionOrder/ship']"
type="primary" type="primary"
size="small" size="small"
plain plain
@@ -1917,15 +1917,6 @@
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-alert <el-alert
v-if="shipForm.ship_mode === 'gancao'"
title="甘草药方由甘草侧履约配送,无需填写快递单号。点击下方按钮将提交处方至甘草药管家(与「上传药方」相同)。"
type="info"
:closable="false"
show-icon
class="mb-4"
/>
<el-alert
v-else
title="确认后订单状态将变更为「已发货」,请核对快递信息无误。" title="确认后订单状态将变更为「已发货」,请核对快递信息无误。"
type="warning" type="warning"
:closable="false" :closable="false"
@@ -1935,37 +1926,31 @@
<el-form v-loading="shipSaving" label-width="90px" class="pr-2" @submit.prevent="submitShip"> <el-form v-loading="shipSaving" label-width="90px" class="pr-2" @submit.prevent="submitShip">
<el-form-item label="发货方式"> <el-form-item label="发货方式">
<el-radio-group v-model="shipForm.ship_mode"> <el-radio-group v-model="shipForm.ship_mode">
<el-radio label="gancao">甘草药</el-radio> <el-radio label="gancao">甘草药房直</el-radio>
<el-radio label="direct">药房直发</el-radio> <el-radio label="direct">洛阳药房直发</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<template v-if="shipForm.ship_mode === 'direct'"> <el-form-item label="承运商">
<el-form-item label="承运商"> <el-select v-model="shipForm.express_company" class="w-full">
<el-select v-model="shipForm.express_company" class="w-full"> <el-option label="自动识别" value="auto" />
<el-option label="自动识别" value="auto" /> <el-option label="顺丰速运" value="sf" />
<el-option label="顺丰速运" value="sf" /> <el-option label="京东快递" value="jd" />
<el-option label="京东快递" value="jd" /> <el-option label="极兔速递" value="jt" />
<el-option label="极兔速递" value="jt" /> </el-select>
</el-select> </el-form-item>
</el-form-item> <el-form-item label="快递单号">
<el-form-item label="快递单号"> <el-input
<el-input v-model="shipForm.tracking_number"
v-model="shipForm.tracking_number" maxlength="80"
maxlength="80" placeholder="请输入快递单号"
placeholder="请输入快递单号" clearable
clearable />
/> </el-form-item>
</el-form-item>
</template>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="shipVisible = false">取消</el-button> <el-button @click="shipVisible = false">取消</el-button>
<el-button <el-button type="primary" :loading="shipSaving" @click="submitShip">
type="primary" 确认发货
:loading="shipSaving || (shipForm.ship_mode === 'gancao' && gancaoSubmitId === shipRowId)"
@click="submitShip"
>
{{ shipForm.ship_mode === 'gancao' ? '确认并上传药方' : '确认发货' }}
</el-button> </el-button>
</template> </template>
</el-dialog> </el-dialog>
@@ -2604,7 +2589,6 @@ import { getDictData } from '@/api/app'
import { deptAll } from '@/api/org/department' import { deptAll } from '@/api/org/department'
import { usePaging } from '@/hooks/usePaging' import { usePaging } from '@/hooks/usePaging'
import feedback from '@/utils/feedback' import feedback from '@/utils/feedback'
import { hasPermission } from '@/utils/perm'
import { ElMessageBox } from 'element-plus' import { ElMessageBox } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus' import type { FormInstance, FormRules } from 'element-plus'
import useUserStore from '@/stores/modules/user' import useUserStore from '@/stores/modules/user'
@@ -4763,31 +4747,13 @@ const shipForm = reactive({
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 }) {
shipRowId.value = row.id shipRowId.value = row.id
const tn = String(row.tracking_number ?? '').trim() shipForm.ship_mode = String(row.ship_mode || 'gancao') || 'gancao'
const sm = String(row.ship_mode ?? '').trim()
if (sm === 'direct' || sm === 'gancao') {
shipForm.ship_mode = sm
} else if (tn) {
//
shipForm.ship_mode = 'direct'
} else {
shipForm.ship_mode = 'gancao'
}
shipForm.express_company = String(row.express_company || 'auto') || 'auto' shipForm.express_company = String(row.express_company || 'auto') || 'auto'
shipForm.tracking_number = String(row.tracking_number || '') shipForm.tracking_number = String(row.tracking_number || '')
shipVisible.value = true shipVisible.value = true
} }
async function submitShip() { async function submitShip() {
if (shipForm.ship_mode !== 'direct') {
if (!hasPermission(['tcm.prescriptionOrder/submitGancaoRecipel'])) {
feedback.msgError('暂无上传甘草药方权限,请改用「药房直发」并填写快递单号,或联系管理员开通权限')
return
}
shipVisible.value = false
await confirmSubmitGancaoRecipel({ id: shipRowId.value })
return
}
if (!shipForm.tracking_number.trim()) { if (!shipForm.tracking_number.trim()) {
feedback.msgError('请先填写快递单号再确认发货') feedback.msgError('请先填写快递单号再确认发货')
return return
@@ -4796,7 +4762,7 @@ async function submitShip() {
try { try {
await prescriptionOrderShip({ await prescriptionOrderShip({
id: shipRowId.value, id: shipRowId.value,
ship_mode: 'direct', ship_mode: shipForm.ship_mode === 'direct' ? 'direct' : 'gancao',
express_company: shipForm.express_company || 'auto', express_company: shipForm.express_company || 'auto',
tracking_number: shipForm.tracking_number.trim() tracking_number: shipForm.tracking_number.trim()
}) })