修复一级需求部门进行中任务数量显示问题,优化任务卡片显示两个不同发布人

This commit is contained in:
Your Name 2026-01-20 01:05:05 +08:00
parent 29dbaf1d69
commit b3e83f89a6

View File

@ -214,19 +214,21 @@
</span>
<span>SPU: {{ task.spuInfo }}</span>
</div>
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发布人: {{ task.publisherName || '未知' }}</span>
</div>
<!-- 一级部门需求人(如果是一级需求部门发起的任务) -->
<!-- 一级部门需求人(如果是一级需求部门发起的任务,优先显示) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }} ({{ task.primaryPublisherDeptName || '一级部门' }})</span>
</div>
<!-- 发布人:如果是一级需求任务且发布人和一级需求人不同,显示为"需求部门发布人" -->
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName || '未知' }}</span>
<span v-else>发布人: {{ task.publisherName || '未知' }}</span>
</div>
<div v-if="task.attachmentUrl" class="detail-item detail-item-attachment">
<span class="icon">
<Icon name="paperclip" size="sm" color="#31f08b" />
@ -417,19 +419,21 @@
<!-- 任务详情 -->
<div class="task-details">
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发起人: {{ task.publisherName || '--' }}</span>
</div>
<!-- 一级部门需求人 -->
<!-- 一级部门需求人(如果是一级需求部门发起的任务,优先显示) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<!-- 发起人/需求部门发布人 -->
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName || '--' }}</span>
<span v-else>发起人: {{ task.publisherName || '--' }}</span>
</div>
<div v-if="task._itemType !== 'taskGroup'" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
@ -507,11 +511,19 @@
</a>
</span>
</div>
<!-- 一级部门需求人(如果是一级需求部门发起的任务) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<div v-if="task.publisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发布人: {{ task.publisherName }}</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName }}</span>
<span v-else>发布人: {{ task.publisherName }}</span>
</div>
</div>
@ -789,11 +801,19 @@
</a>
</span>
</div>
<!-- 一级部门需求人(如果是一级需求部门发起的任务) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<div v-if="task.publisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发布人: {{ task.publisherName }}</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName }}</span>
<span v-else>发布人: {{ task.publisherName }}</span>
</div>
</div>
@ -999,19 +1019,21 @@
<!-- 任务详情 -->
<div class="task-details">
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发起人: {{ task.publisherName || '--' }}</span>
</div>
<!-- 一级部门需求人 -->
<!-- 一级部门需求人(如果是一级需求部门发起的任务,优先显示) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<!-- 发起人/需求部门发布人 -->
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName || '--' }}</span>
<span v-else>发起人: {{ task.publisherName || '--' }}</span>
</div>
<div class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
@ -1094,11 +1116,19 @@
</a>
</span>
</div>
<!-- 一级部门需求人(如果是一级需求部门发起的任务) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<div v-if="task.publisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发布人: {{ task.publisherName }}</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName }}</span>
<span v-else>发布人: {{ task.publisherName }}</span>
</div>
</div>
@ -1407,11 +1437,19 @@
</a>
</span>
</div>
<!-- 一级部门需求人(如果是一级需求部门发起的任务) -->
<div v-if="task.isPrimaryTask === 1 && task.primaryPublisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#faad14" />
</span>
<span style="color: #faad14;">一级需求人: {{ task.primaryPublisherName }}</span>
</div>
<div v-if="task.publisherName" class="detail-item">
<span class="icon">
<Icon name="user" size="sm" color="#31f08b" />
</span>
<span>发布人: {{ task.publisherName }}</span>
<span v-if="task.isPrimaryTask === 1 && task.primaryPublisherId !== task.publisherId">需求部门发布人: {{ task.publisherName }}</span>
<span v-else>发布人: {{ task.publisherName }}</span>
</div>
</div>
@ -5947,19 +5985,46 @@ const loadAllTabCounts = async () => {
)
}
} else {
// 未切换视角或普通用户:使用默认查询
promises.push(
taskApi.getTasks({
status: 'in_progress',
role: 'receiver',
page: 1,
pageSize: 1
}).then(res => {
if (res.data && res.data.total !== undefined) {
inProgressTotal.value = res.data.total
}
}).catch(() => {})
)
// 未切换视角或普通用户:根据部门类型查询
if (currentDeptType === 'demand' || currentDeptType === 'primary_demand') {
// 需求部门/一级需求部门用户:查询自己发起的任务中有子任务在进行中的
promises.push(
taskApi.getMyTasks({
role: 'publisher',
page: 1,
pageSize: 100 // 获取所有任务然后过滤
}).then(res => {
if (res.data && res.data.records) {
// 过滤出有进行中子任务的任务
const inProgressTasks = res.data.records.filter((task: any) => {
if (task.isPipeline === 1) {
return (task.subTaskInProgress || 0) > 0 || task.status === 'in_progress'
}
return task.status === 'in_progress'
})
inProgressTotal.value = inProgressTasks.length
} else {
inProgressTotal.value = 0
}
}).catch(() => {
inProgressTotal.value = 0
})
)
} else {
// 接单部门用户(设计师):查询自己接收的进行中任务
promises.push(
taskApi.getTasks({
status: 'in_progress',
role: 'receiver',
page: 1,
pageSize: 1
}).then(res => {
if (res.data && res.data.total !== undefined) {
inProgressTotal.value = res.data.total
}
}).catch(() => {})
)
}
}
// 3. 待审核任务数量(主任务 + 子任务组)