feat(web-admin): 承运商去审核 UI 并移除安排运输准入拦截
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
4eed1183b5
commit
fd62043f71
5 files changed
+9
-173
No files matched your search
@@ -86,8 +86,6 @@ import {
|
||||
} from '@/composables/usePlVehicleViewDetail'
|
||||
import { formatDateTime } from '@/utils/format'
|
||||
import {
|
||||
getPlCarrierAuditStatusLabel,
|
||||
getPlCarrierAuditStatusTagType,
|
||||
getPlCarrierStatusLabel,
|
||||
getPlCarrierStatusTagType
|
||||
} from '@/utils/pl-display'
|
||||
@@ -118,8 +116,7 @@ const heroMeta = computed(() => {
|
||||
const parts = [
|
||||
c.contactName || undefined,
|
||||
c.contactPhone || undefined,
|
||||
getPlCarrierStatusLabel(c.status),
|
||||
getPlCarrierAuditStatusLabel(c.auditStatus)
|
||||
getPlCarrierStatusLabel(c.status)
|
||||
].filter(Boolean)
|
||||
return parts.join(' · ')
|
||||
})
|
||||
@@ -145,26 +142,6 @@ const carrierInfoRow2Fields = computed<ViewField[]>(() => {
|
||||
const c = carrier.value
|
||||
if (!c) return []
|
||||
|
||||
return [
|
||||
{
|
||||
label: '审核状态',
|
||||
value: getPlCarrierAuditStatusLabel(c.auditStatus),
|
||||
tagType: getPlCarrierAuditStatusTagType(c.auditStatus),
|
||||
long: false
|
||||
},
|
||||
{
|
||||
label: '审核时间',
|
||||
value: c.auditTime ? formatDateTime(c.auditTime) : '—',
|
||||
long: false
|
||||
},
|
||||
{ label: '审核备注', value: c.auditRemark || '—', long: false, fullSpan: false }
|
||||
]
|
||||
})
|
||||
|
||||
const carrierInfoRow3Fields = computed<ViewField[]>(() => {
|
||||
const c = carrier.value
|
||||
if (!c) return []
|
||||
|
||||
return [
|
||||
{ label: '创建时间', value: formatDateTime(c.createTime), long: false },
|
||||
{
|
||||
@@ -192,8 +169,7 @@ const viewSections = computed<ViewSection[]>(() => {
|
||||
title: '承运商信息',
|
||||
fieldGroups: [
|
||||
{ fieldLayout: 'table', tableMode: 'quad', fields: [] },
|
||||
{ fieldLayout: 'table', tableMode: 'quad', fields: [] },
|
||||
{ fieldLayout: 'table', tableMode: 'triple', fields: [] }
|
||||
{ fieldLayout: 'table', tableMode: 'quad', fields: [] }
|
||||
],
|
||||
fields: []
|
||||
},
|
||||
@@ -214,11 +190,6 @@ const viewSections = computed<ViewSection[]>(() => {
|
||||
{
|
||||
fieldLayout: 'table',
|
||||
tableMode: 'quad',
|
||||
fields: carrierInfoRow3Fields.value
|
||||
},
|
||||
{
|
||||
fieldLayout: 'table',
|
||||
tableMode: 'triple',
|
||||
fields: carrierInfoRow2Fields.value
|
||||
}
|
||||
],
|
||||
|
||||
@@ -36,14 +36,6 @@
|
||||
|
||||
<section v-else class="pl-plan-form-section">
|
||||
<h3 class="pl-plan-form-section-title">{{ isRearrange ? '调整运输' : '运输安排' }}</h3>
|
||||
<el-alert
|
||||
v-if="rearrangeBlocked"
|
||||
type="warning"
|
||||
:closable="false"
|
||||
show-icon
|
||||
:title="rearrangeBlockedMessage"
|
||||
class="pl-arrange-block-alert"
|
||||
/>
|
||||
<el-form ref="formRef" :model="formData" :rules="formRules" label-position="right" label-width="100px" class="pl-dialog-form">
|
||||
<div class="form-grid-4">
|
||||
<el-form-item label="选择车辆" prop="vehicleId">
|
||||
@@ -304,7 +296,7 @@
|
||||
<el-button @click="innerVisible = false">
|
||||
<el-icon><Close /></el-icon>取消
|
||||
</el-button>
|
||||
<el-button type="primary" :loading="submitLoading" :disabled="rearrangeBlocked" @click="handleSubmit">
|
||||
<el-button type="primary" :loading="submitLoading" @click="handleSubmit">
|
||||
<el-icon><Check /></el-icon>{{ isRearrange ? '确认调整' : '确认安排' }}
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -401,8 +393,6 @@ const vehicleBundle = ref<VehicleViewBundle | null>(null)
|
||||
const vehicleViewVisible = ref(false)
|
||||
const hasHistoricalDibang = ref(false)
|
||||
const hasHistoricalSiteLinks = ref(false)
|
||||
const rearrangeBlocked = ref(false)
|
||||
const rearrangeBlockedMessage = ref('')
|
||||
|
||||
const formData = reactive({
|
||||
vehicleId: '',
|
||||
@@ -488,8 +478,6 @@ const freightCalc = usePlFreightCalc({
|
||||
freightType: freightTypeRef
|
||||
})
|
||||
|
||||
const selectedVehicle = computed(() => vehicleList.value.find(item => item.id === formData.vehicleId))
|
||||
|
||||
const showDibangHint = computed(
|
||||
() => formData.generateDibangPlan && canGenerateDibangPlan.value
|
||||
)
|
||||
@@ -615,8 +603,6 @@ function resetState() {
|
||||
vehicleViewVisible.value = false
|
||||
hasHistoricalDibang.value = false
|
||||
hasHistoricalSiteLinks.value = false
|
||||
rearrangeBlocked.value = false
|
||||
rearrangeBlockedMessage.value = ''
|
||||
Object.assign(formData, {
|
||||
vehicleId: '',
|
||||
driverId: '',
|
||||
@@ -643,47 +629,13 @@ function resetState() {
|
||||
|
||||
async function loadMasterData() {
|
||||
const [vehicleRes, carrierRes] = await Promise.all([
|
||||
vehicleApi.list({ vehicleStatus: 'available', excludeIneligibleCarrier: true }),
|
||||
vehicleApi.list({ vehicleStatus: 'available' }),
|
||||
carrierApi.list({ status: '1', page: 1, pageSize: 100 })
|
||||
])
|
||||
vehicleList.value = pickBxList<Vehicle>(vehicleRes)
|
||||
carrierList.value = pickBxList<Carrier>(carrierRes)
|
||||
}
|
||||
|
||||
async function updateRearrangeBlocked() {
|
||||
rearrangeBlocked.value = false
|
||||
rearrangeBlockedMessage.value = ''
|
||||
if (!isRearrange.value) return
|
||||
|
||||
const detail = vehicleBundle.value?.detail
|
||||
const carrierId = detail?.carrierId || formData.carrierId || selectedVehicle.value?.carrierId
|
||||
if (!carrierId) return
|
||||
|
||||
let carrier = carrierList.value.find(c => c.id === carrierId)
|
||||
if (!carrier) {
|
||||
try {
|
||||
const res = await carrierApi.get(carrierId)
|
||||
carrier = pickBxData<Carrier>(res)
|
||||
} catch {
|
||||
return
|
||||
}
|
||||
}
|
||||
if (!carrier?.qualificationComplete) {
|
||||
rearrangeBlocked.value = true
|
||||
rearrangeBlockedMessage.value = '该承运商资质附件不完整,请先补全后再调整运输'
|
||||
return
|
||||
}
|
||||
if (carrier.auditStatus !== 'approved') {
|
||||
rearrangeBlocked.value = true
|
||||
rearrangeBlockedMessage.value = '该承运商尚未审核通过,请先完成审核后再调整运输'
|
||||
return
|
||||
}
|
||||
if (carrier.transportAgreementExpired) {
|
||||
rearrangeBlocked.value = true
|
||||
rearrangeBlockedMessage.value = '该承运商运输协议已过期,请先更新协议后再调整运输'
|
||||
}
|
||||
}
|
||||
|
||||
async function handleVehicleChange(vehicleId: string, preferredDriverId?: string) {
|
||||
if (!vehicleId) {
|
||||
formData.driverId = ''
|
||||
@@ -709,7 +661,6 @@ async function handleVehicleChange(vehicleId: string, preferredDriverId?: string
|
||||
formData.carrierId = vehicleBundle.value.detail.carrierId
|
||||
}
|
||||
applyVehiclePersonnel(vehicleBundle.value.personnelList || [], preferredDriverId)
|
||||
await updateRearrangeBlocked()
|
||||
} finally {
|
||||
vehicleLoading.value = false
|
||||
}
|
||||
@@ -746,10 +697,6 @@ function handleClosed() {
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
if (rearrangeBlocked.value) {
|
||||
ElMessage.warning(rearrangeBlockedMessage.value || '当前承运商不可调整运输')
|
||||
return
|
||||
}
|
||||
const valid = await formRef.value?.validate().catch(() => false)
|
||||
if (!valid) return
|
||||
|
||||
@@ -886,10 +833,6 @@ function handlePrintSubpackSlip() {
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.pl-arrange-block-alert {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.pl-plan-logistics-fields {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -811,7 +811,7 @@ function handleClosed() {
|
||||
async function loadMasterData() {
|
||||
try {
|
||||
const [vehicleRes, carrierRes] = await Promise.all([
|
||||
vehicleApi.list({ vehicleStatus: 'available', excludeIneligibleCarrier: true }),
|
||||
vehicleApi.list({ vehicleStatus: 'available' }),
|
||||
carrierApi.list({ status: '1', page: 1, pageSize: 100 })
|
||||
])
|
||||
vehicleList.value = pickBxList<Vehicle>(vehicleRes)
|
||||
|
||||
Reference in new issue
Block a user