From a330d5945393217b88be20d551276f4e69dd3a84 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 20 Jan 2026 12:30:38 +0800
Subject: [PATCH] feat:拆分
---
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/auditRecord.vue | 165 +++++++++++++++++++++++++++
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue | 149 ------------------------
2 files changed, 170 insertions(+), 144 deletions(-)
diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
index c054e4a..5f1032b 100644
--- a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -3,15 +3,7 @@
<div class="detail-container">
<!-- 左侧审批记录 -->
<div class="detail-left">
- <div class="label">审批记录</div>
- <el-steps :active="activeStep" direction="vertical" align-center>
- <el-step v-for="(step, index) in steps" :key="index" :title="step.title">
- <template #description>
- <div class="step-person">{{ step.person }}</div>
- <div class="step-time">{{ step.time }}</div>
- </template>
- </el-step>
- </el-steps>
+ <AuditRecord :demand-id="demandId" />
</div>
<!-- 右侧表单数据 -->
<div class="detail-right">
@@ -140,11 +132,12 @@
gdSupplyDemandDetailApi,
putFileAttachApi,
gdSupplyDemandAuditPassApi,
- gdSupplyDemandAuditRejectApi,
- gdSupplyDemandAuditListApi
+ gdSupplyDemandAuditRejectApi
} from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
import { ElMessage } from 'element-plus'
-import reasonForRejectionDialog from './reasonForRejectionDialog.vue'
+import reasonForRejectionDialog from '@/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue'
+import AuditRecord from '@/views/orderView/orderDataManage/supplyAdd/auditRecord.vue' // 导入新组件
+
const emit = defineEmits(['success'])
const dictObj = inject('dictObj')
const deptTree = inject('deptTree')
@@ -159,13 +152,6 @@
const responseData = ref([])
// 拒绝申请弹框控制
const rejectionDialogVisible = ref(false) // 拒绝申请弹框显隐
-// 步骤条数据
-const steps = ref([
- { title: '需求申请', person: '', time: '' },
- { title: '审核通过', person: '', time: '' }
-])
-// 当前激活步骤
-const activeStep = ref(0)
// 文件选择变化
const handleFileChange = (file, fileList) => {
@@ -309,7 +295,6 @@
if (row?.id) {
await loadDetail(row.id)
demandId.value = row.id
- console.log('row.id', demandId.value)
}
visible.value = true
}
@@ -323,95 +308,7 @@
data.responsibleDeptName = getDeptNameById(data.responsibleDeptId, deptTree.value)
}
formData.value = data
-
- // 加载审核记录
- await loadAuditRecords(id)
}
-
-// 加载审核记录
-async function loadAuditRecords(demandId) {
- try {
- const res = await gdSupplyDemandAuditListApi({ demandId })
- const auditRecords = res?.data?.data ?? []
-
- // 处理审核记录为步骤格式
- processAuditRecords(auditRecords)
- } catch (error) {
- console.error('加载审核记录失败:', error)
- ElMessage.error('加载审核记录失败,请重试')
- // 保持默认步骤,不做清空
- activeStep.value = 0
- }
-}
-
-// 处理审核记录为步骤格式
-function processAuditRecords(records) {
- // 重置为默认步骤结构
- steps.value = [
- { title: '需求申请', person: '', time: '' },
- { title: '审核通过', person: '', time: '' }
- ]
-
- if (!records || records.length === 0) {
- // 没有审核记录,保持默认步骤
- activeStep.value = 0
- return
- }
-
- // 按创建时间排序(最新的在最后)
- const sortedRecords = [...records].sort((a, b) => new Date(a.createTime) - new Date(b.createTime))
-
- // 处理需求申请步骤(第一个步骤)
- const demandRecord = sortedRecords.find(record => record.auditStatus === '0') || sortedRecords[0]
- if (demandRecord) {
- steps.value[0] = {
- title: '需求申请',
- person: demandRecord.createUser ? `${demandRecord.createUser}` : '',
- time: demandRecord.createTime ? demandRecord.createTime : ''
- }
- }
-
- // 处理审核步骤(第二个步骤)
- const latestRecord = sortedRecords[sortedRecords.length - 1]
- if (latestRecord) {
- // 根据最新审核结果设置标题
- let auditTitle = '审核通过'
- if (latestRecord.auditStatus === '2') {
- auditTitle = '审核驳回'
- // 更新第二个步骤的标题为审核驳回
- steps.value[1].title = auditTitle
- }
-
- // 添加审核意见(如果有)
- if (latestRecord.auditOpinion) {
- steps.value[1].title += ` - ${latestRecord.auditOpinion}`
- }
-
- // 更新审核步骤的信息
- steps.value[1].person = latestRecord.createUser ? `${latestRecord.createUser}` : ''
- steps.value[1].time = latestRecord.createTime ? latestRecord.createTime : ''
-
- // 根据最新审核结果设置activeStep
- switch (latestRecord.auditStatus) {
- case '0':
- // 审核中,高亮第一个步骤
- activeStep.value = 0
- break
- case '1':
- // 审核通过,高亮第二个步骤
- activeStep.value = 1
- break
- case '2':
- // 审核驳回,高亮第二个步骤
- activeStep.value = 1
- break
- default:
- // 默认高亮第一个步骤
- activeStep.value = 0
- }
- }
-}
-
// 拒绝申请
const rejectTheApplication = () => {
@@ -425,8 +322,6 @@
// 处理拒绝申请确认
const handleRejectionConfirm = reason => {
const id = [responseData.value.attachId]
- console.log('demandId.value', demandId.value)
-
gdSupplyDemandAuditRejectApi({ attachIds: id, auditOpinion: reason, demandId: demandId.value })
.then(() => {
ElMessage.success('拒绝申请成功')
@@ -515,40 +410,6 @@
flex: 1;
text-align: left;
}
-}
-
-/* 步骤条样式 */
-:deep(.el-steps) {
- align-items: flex-start;
-}
-
-:deep(.el-step) {
- margin-bottom: 90px;
-}
-
-:deep(.el-step__title) {
- font-size: 14px;
- font-weight: 500;
- margin-bottom: 8px;
-}
-
-/* 步骤描述 */
-.step-person {
- font-size: 13px;
- color: #333;
- margin-bottom: 4px;
-}
-
-.step-time {
- font-size: 12px;
- color: #909399;
-}
-
-/* 表单样式 */
-.label {
- font-weight: 500;
- margin-bottom: 8px;
- color: #333;
}
/* 上传容器样式 */
diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/auditRecord.vue b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/auditRecord.vue
new file mode 100644
index 0000000..61a53c1
--- /dev/null
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/auditRecord.vue
@@ -0,0 +1,165 @@
+<template>
+ <div class="audit-record-container">
+ <div class="label">审批记录</div>
+ <el-steps :active="activeStep" direction="vertical" align-center>
+ <el-step v-for="(step, index) in steps" :key="index" :title="step.title">
+ <template #description>
+ <div class="step-person">{{ step.person }}</div>
+ <div class="step-time">{{ step.time }}</div>
+ </template>
+ </el-step>
+ </el-steps>
+ </div>
+</template>
+
+<script setup>
+import { ref, watch } from 'vue'
+import { gdSupplyDemandAuditListApi } from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
+
+const props = defineProps({
+ demandId: {
+ type: [String, Number],
+ required: true
+ }
+})
+
+// 步骤条数据
+const steps = ref([
+ { title: '需求申请', person: '', time: '' },
+ { title: '审核通过', person: '', time: '' }
+])
+
+// 当前激活步骤
+const activeStep = ref(0)
+
+// 监听 demandId 变化
+watch(() => props.demandId, (newVal) => {
+ if (newVal) {
+ loadAuditRecords(newVal)
+ }
+}, { immediate: true })
+
+// 加载审核记录
+async function loadAuditRecords(demandId) {
+ try {
+ const res = await gdSupplyDemandAuditListApi({ demandId })
+ const auditRecords = res?.data?.data ?? []
+
+ // 处理审核记录为步骤格式
+ processAuditRecords(auditRecords)
+ } catch (error) {
+ console.error('加载审核记录失败:', error)
+ // 保持默认步骤
+ activeStep.value = 0
+ }
+}
+
+// 处理审核记录为步骤格式
+function processAuditRecords(records) {
+ // 重置为默认步骤结构
+ steps.value = [
+ { title: '需求申请', person: '', time: '' },
+ { title: '审核通过', person: '', time: '' }
+ ]
+
+ if (!records || records.length === 0) {
+ // 没有审核记录,保持默认步骤
+ activeStep.value = 0
+ return
+ }
+
+ // 按创建时间排序(最新的在最后)
+ const sortedRecords = [...records].sort((a, b) => new Date(a.createTime) - new Date(b.createTime))
+
+ // 处理需求申请步骤(第一个步骤)
+ const demandRecord = sortedRecords.find(record => record.auditStatus === '0') || sortedRecords[0]
+ if (demandRecord) {
+ steps.value[0] = {
+ title: '需求申请',
+ person: demandRecord.createUser ? `${demandRecord.createUser}` : '',
+ time: demandRecord.createTime ? demandRecord.createTime : ''
+ }
+ }
+
+ // 处理审核步骤(第二个步骤)
+ const latestRecord = sortedRecords[sortedRecords.length - 1]
+ if (latestRecord) {
+ // 根据最新审核结果设置标题
+ let auditTitle = '审核通过'
+ if (latestRecord.auditStatus === '2') {
+ auditTitle = '拒绝申请'
+ // 更新第二个步骤的标题为拒绝申请
+ steps.value[1].title = auditTitle
+ }
+
+ // 添加审核意见(如果有)
+ if (latestRecord.auditOpinion) {
+ steps.value[1].title += ` - ${latestRecord.auditOpinion}`
+ }
+
+ // 更新审核步骤的信息
+ steps.value[1].person = latestRecord.createUser ? `${latestRecord.createUser}` : ''
+ steps.value[1].time = latestRecord.createTime ? latestRecord.createTime : ''
+
+ // 根据最新审核结果设置activeStep
+ switch (latestRecord.auditStatus) {
+ case '0':
+ // 审核中,高亮第一个步骤
+ activeStep.value = 0
+ break
+ case '1':
+ // 审核通过,高亮第二个步骤
+ activeStep.value = 1
+ break
+ case '2':
+ // 拒绝申请,高亮第二个步骤
+ activeStep.value = 1
+ break
+ default:
+ // 默认高亮第一个步骤
+ activeStep.value = 0
+ }
+ }
+}
+
+defineExpose({
+ loadAuditRecords
+})
+</script>
+
+<style scoped lang="scss">
+.audit-record-container {
+ .label {
+ font-weight: 500;
+ margin-bottom: 8px;
+ color: #333;
+ }
+}
+
+/* 步骤条样式 */
+:deep(.el-steps) {
+ align-items: flex-start;
+}
+
+:deep(.el-step) {
+ margin-bottom: 90px;
+}
+
+:deep(.el-step__title) {
+ font-size: 14px;
+ font-weight: 500;
+ margin-bottom: 8px;
+}
+
+/* 步骤描述 */
+.step-person {
+ font-size: 13px;
+ color: #333;
+ margin-bottom: 4px;
+}
+
+.step-time {
+ font-size: 12px;
+ color: #909399;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3