修复设备采购状态图无法顺利依据流程变化的问题

This commit is contained in:
Mr.j 2025-08-11 17:10:52 +08:00
parent 80f174e9a4
commit 9933ad7206
3 changed files with 99 additions and 6 deletions

View File

@ -194,6 +194,12 @@ export interface EquipmentResp {
inventoryBasis?: string
/** 动态记录 */
dynamicRecord?: string
/** 采购状态 */
procurementStatus?: string
/** 审批状态 */
approvalStatus?: string
}
/**
@ -294,6 +300,17 @@ export enum BusinessType {
RETURN = 'RETURN'
}
/**
*
*/
export enum ProcurementStatus {
NOT_STARTED = 'NOT_STARTED',
PENDING_APPROVAL = 'PENDING_APPROVAL',
APPROVED = 'APPROVED',
REJECTED = 'REJECTED',
COMPLETED = 'COMPLETED'
}
/**
*
*/

View File

@ -237,6 +237,7 @@ const rules = {
//
watch(() => props.equipmentData, (newData) => {
if (newData) {
console.log('采购申请弹窗 - 接收到设备数据:', newData)
//
Object.assign(formData, {
equipmentId: newData.equipmentId || '', // ID
@ -254,6 +255,7 @@ watch(() => props.equipmentData, (newData) => {
technicalRequirements: '',
businessJustification: ''
})
console.log('采购申请弹窗 - 填充后的表单数据:', formData)
}
}, { immediate: true })
@ -291,10 +293,18 @@ const handleSubmit = async () => {
//
console.log('提交的表单数据:', submitData)
console.log('设备ID:', submitData.equipmentId)
console.log('设备名称:', submitData.equipmentName)
console.log('applyReason 值:', submitData.applyReason)
console.log('applyReason 类型:', typeof submitData.applyReason)
console.log('applyReason 长度:', submitData.applyReason?.length)
// ID
if (!submitData.equipmentId) {
Message.error('设备ID不能为空请检查设备数据')
return
}
await equipmentApprovalApi.submitProcurementApplication(submitData)
//

View File

@ -128,6 +128,17 @@
</a-tag>
</template>
<!-- 采购状态 -->
<template #procurementStatus="{ record }">
<a-tag
v-if="record.procurementStatus && record.procurementStatus !== 'NOT_STARTED'"
:color="getProcurementStatusColor(record.procurementStatus)"
>
{{ getProcurementStatusText(record.procurementStatus) }}
</a-tag>
<a-tag v-else color="gray">未开始</a-tag>
</template>
<!-- 位置状态 -->
<template #locationStatus="{ record }">
<a-tag :color="getLocationStatusColor(record.locationStatus)">
@ -175,7 +186,7 @@
<a-button type="text" size="small" @click="handleEdit(record)">
编辑
</a-button>
<!-- 申请采购按钮 -->
<!-- 申请采购按钮 - 只在特定状态下显示 -->
<a-button
v-if="canApplyProcurement(record)"
type="primary"
@ -184,12 +195,20 @@
>
申请采购
</a-button>
<!-- 显示采购状态 - 优先显示采购状态 -->
<a-tag
v-if="record.procurementStatus && record.procurementStatus !== 'NOT_STARTED'"
:color="getProcurementStatusColor(record.procurementStatus)"
>
{{ getProcurementStatusText(record.procurementStatus) }}
</a-tag>
<!-- 显示审批状态 -->
<a-tag v-if="record.approvalStatus" :color="getApprovalStatusColor(record.approvalStatus)">
{{ getApprovalStatusText(record.approvalStatus) }}
</a-tag>
<!-- 删除按钮 -->
<a-popconfirm
content="确定要删除这条采购记录吗?"
content="确定要删除这条记录吗?"
@ok="handleDelete(record)"
>
<a-button type="text" size="small" status="danger">
@ -345,6 +364,14 @@ const columns = [
slotName: 'equipmentStatus',
width: 120,
},
{
title: '采购状态',
dataIndex: 'procurementStatus',
key: 'procurementStatus',
slotName: 'procurementStatus',
width: 120,
fixed: false,
},
{
title: '位置状态',
dataIndex: 'locationStatus',
@ -403,6 +430,30 @@ const getEquipmentStatusText = (status: string) => {
return textMap[status] || '未知'
}
//
const getProcurementStatusColor = (status: string) => {
const colorMap: Record<string, string> = {
NOT_STARTED: 'gray',
PENDING_APPROVAL: 'blue',
APPROVED: 'green',
REJECTED: 'red',
COMPLETED: 'purple',
}
return colorMap[status] || 'blue'
}
//
const getProcurementStatusText = (status: string) => {
const textMap: Record<string, string> = {
NOT_STARTED: '未开始',
PENDING_APPROVAL: '待审批',
APPROVED: '已通过',
REJECTED: '已拒绝',
COMPLETED: '已完成',
}
return textMap[status] || '未知'
}
//
const getLocationStatusColor = (status: string) => {
const colorMap: Record<string, string> = {
@ -530,6 +581,7 @@ const transformBackendData = (data: any[]): EquipmentResp[] => {
totalPrice: item.totalPrice,
inventoryBasis: item.inventoryBasis,
dynamicRecord: item.dynamicRecord,
procurementStatus: item.procurementStatus,
}))
}
@ -572,6 +624,10 @@ const loadData = async (searchParams?: EquipmentListReq) => {
if (dataList.length > 0) {
const transformedData = transformBackendData(dataList)
console.log('转换后的数据:', transformedData)
//
transformedData.forEach((item, index) => {
console.log(`设备 ${index + 1} - 名称: ${item.equipmentName}, 采购状态: ${item.procurementStatus}`)
})
tableData.value = transformedData
} else {
tableData.value = []
@ -662,9 +718,15 @@ const handleModalSuccess = () => {
}
//
const handleApplicationSuccess = () => {
const handleApplicationSuccess = async () => {
applicationModalVisible.value = false
loadData(currentSearchParams.value)
console.log('采购申请成功,准备刷新数据...')
//
setTimeout(async () => {
console.log('开始刷新数据...')
await loadData(currentSearchParams.value)
message.success('采购申请已提交,请等待审批')
}, 1000)
}
//
@ -714,8 +776,12 @@ const getTotalAmount = () => {
//
const canApplyProcurement = (record: EquipmentResp) => {
//
return !record.approvalStatus || record.approvalStatus === 'PENDING_APPLICATION'
//
//
const allowedStatuses = ['NOT_STARTED', 'REJECTED', 'COMPLETED', null, undefined]
const canApply = allowedStatuses.includes(record.procurementStatus)
console.log(`设备 ${record.equipmentName} 采购状态: ${record.procurementStatus}, 可申请: ${canApply}`)
return canApply
}
//