优化前端子任务编号显示格式 - TaskHall.vue和TaskCard.vue支持新的两级编号格式 - 新格式TASK...-01-02显示为'子01-02' - 旧格式TASK...-01显示为'子01' - 保持向后兼容

This commit is contained in:
Your Name 2026-01-14 18:10:42 +08:00
parent 611677a93b
commit 777658b72c
2 changed files with 30 additions and 4 deletions

View File

@ -65,7 +65,7 @@
<div v-if="showReceiver && task.isPipeline === 1 && task.subTasks && task.subTasks.length > 0 && showSubtasks"
class="subtasks-detail">
<div v-for="(subTask, index) in task.subTasks" :key="subTask.id || index" class="subtask-item">
<span class="subtask-label">{{ subTask.itemNo || `子任务${index + 1}` }}:</span>
<span class="subtask-label">{{ getSubTaskLabel(subTask, index) }}:</span>
<span class="subtask-receiver">{{ subTask.receiverName || '待接单' }}</span>
<span v-if="getSubTaskDeadline(subTask)" class="subtask-deadline">
完成截止日期: {{ getSubTaskDeadline(subTask) }}
@ -317,6 +317,24 @@ const handleCopyTaskNo = async (taskNo: string) => {
}
}
// 获取子任务标签(简化显示编号)
const getSubTaskLabel = (subTask: TaskItem, index: number) => {
// 如果有子任务编号,显示子任务编号的后两段(部门序号-部门内序号)
// 新格式:TASK...-01-02 显示为 "子01-02"
// 旧格式:TASK...-01 显示为 "子01"
if (subTask.itemNo) {
const parts = subTask.itemNo.split('-')
if (parts.length >= 3) {
// 新格式:取最后两段
return `子${parts[parts.length - 2]}-${parts[parts.length - 1]}`
} else if (parts.length === 2) {
// 旧格式:取最后一段
return `子${parts[parts.length - 1]}`
}
}
return `子${String(index + 1).padStart(2, '0')}`
}
// 获取子任务状态文本
const getSubTaskStatusText = (status: string) => {
const statusMap: Record<string, string> = {

View File

@ -2899,12 +2899,20 @@ const getSubTaskStatusClass = (status: string | undefined) => {
}
const getSubTaskLabel = (subTask: any, index: number) => {
// 如果有子任务编号,显示子任务编号后两位;否则显示序号
// 如果有子任务编号,显示子任务编号的后两段(部门序号-部门内序号)
// 新格式:TASK...-01-02 显示为 "子01-02"
// 旧格式:TASK...-01 显示为 "子01"
if (subTask.itemNo) {
const parts = subTask.itemNo.split('-')
return parts.length > 1 ? `子${parts[parts.length - 1]}` : `子${index + 1}`
if (parts.length >= 3) {
// 新格式:取最后两段
return `子${parts[parts.length - 2]}-${parts[parts.length - 1]}`
} else if (parts.length === 2) {
// 旧格式:取最后一段
return `子${parts[parts.length - 1]}`
}
}
return `子${index + 1}`
return `子${String(index + 1).padStart(2, '0')}`
}
const getSubTaskStatusText = (status: string | undefined) => {