feat: 任务卡片日期信息添加鼠标悬停提示
- 为发布时间、截止时间、完成时间等添加title属性 - 鼠标悬停时显示完整的日期时间(年月日 时分秒) - 修复日期显示不完整时无法查看完整信息的问题
This commit is contained in:
parent
a8ecc8a11f
commit
5a1a5fba84
@ -133,19 +133,19 @@
|
||||
|
||||
<!-- 时间信息 -->
|
||||
<div class="task-footer">
|
||||
<div class="footer-item">
|
||||
<div class="footer-item" :title="formatFullDateTime(task.createTime)">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">发布: {{ formatDate(task.createTime) }}</span>
|
||||
</div>
|
||||
<div v-if="task.deadline && task.status === 'in_progress'" class="footer-item">
|
||||
<div v-if="task.deadline && task.status === 'in_progress'" class="footer-item" :title="formatFullDateTime(task.deadline)">
|
||||
<Icon name="clock" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">截止: {{ formatDate(task.deadline) }}</span>
|
||||
</div>
|
||||
<div v-if="task.completeTime && task.status === 'completed'" class="footer-item">
|
||||
<div v-if="task.completeTime && task.status === 'completed'" class="footer-item" :title="formatFullDateTime(task.completeTime)">
|
||||
<Icon name="check" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">完成: {{ formatDate(task.completeTime) }}</span>
|
||||
</div>
|
||||
<div v-if="task.submitTime && task.status === 'review'" class="footer-item">
|
||||
<div v-if="task.submitTime && task.status === 'review'" class="footer-item" :title="formatFullDateTime(task.submitTime)">
|
||||
<Icon name="upload" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">提交: {{ formatDate(task.submitTime) }}</span>
|
||||
</div>
|
||||
@ -288,12 +288,18 @@ const getTaskTypeName = (taskTypeId: number) => {
|
||||
return type?.name || '--'
|
||||
}
|
||||
|
||||
// 格式化日期
|
||||
// 格式化日期(简短显示)
|
||||
const formatDate = (date?: string) => {
|
||||
if (!date) return '--'
|
||||
return dayjs(date).format('YYYY-MM-DD HH:mm')
|
||||
}
|
||||
|
||||
// 格式化完整日期时间(用于鼠标悬停提示)
|
||||
const formatFullDateTime = (date?: string) => {
|
||||
if (!date) return ''
|
||||
return dayjs(date).format('YYYY年MM月DD日 HH:mm:ss')
|
||||
}
|
||||
|
||||
// 复制任务编号
|
||||
const handleCopyTaskNo = async (taskNo: string) => {
|
||||
try {
|
||||
|
||||
@ -260,7 +260,7 @@
|
||||
</span>
|
||||
<span>时效要求: {{ formatEstimatedTime(task.estimatedHours) }}</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<div class="detail-item" :title="formatFullDateTime(task.createTime)">
|
||||
<span class="icon">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
</span>
|
||||
@ -872,16 +872,16 @@
|
||||
title="复制任务编号"
|
||||
/>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<div class="footer-item" :title="formatFullDateTime(task.createTime)">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">发布: {{ formatTime(task.createTime) }}</span>
|
||||
</div>
|
||||
<div class="footer-item" v-if="task.estimatedHours">
|
||||
<div class="footer-item" v-if="task.estimatedHours" :title="'时效要求: ' + formatEstimatedTime(task.estimatedHours)">
|
||||
<Icon name="clock" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">时效要求: {{ formatEstimatedTime(task.estimatedHours) }}</span>
|
||||
</div>
|
||||
<!-- 驳回时间 -->
|
||||
<div class="footer-item" v-if="task.approvalStatus?.includes('rejected') && task.updateTime">
|
||||
<div class="footer-item" v-if="task.approvalStatus?.includes('rejected') && task.updateTime" :title="formatFullDateTime(task.updateTime)">
|
||||
<Icon name="x-circle" size="sm" color="#f5222d" />
|
||||
<span style="color: #f5222d;">驳回: {{ formatTime(task.updateTime) }}</span>
|
||||
</div>
|
||||
@ -1215,11 +1215,11 @@
|
||||
title="复制任务编号"
|
||||
/>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<div class="footer-item" :title="formatFullDateTime(task.createTime)">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">发布: {{ formatDate(task.createTime) }}</span>
|
||||
</div>
|
||||
<div v-if="task.completeTime && task.status === 'completed'" class="footer-item">
|
||||
<div v-if="task.completeTime && task.status === 'completed'" class="footer-item" :title="formatFullDateTime(task.completeTime)">
|
||||
<Icon name="check" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">完成: {{ formatDate(task.completeTime) }}</span>
|
||||
</div>
|
||||
@ -1551,16 +1551,16 @@
|
||||
title="复制任务编号"
|
||||
/>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<div class="footer-item" :title="formatFullDateTime(task.createTime)">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">发布: {{ formatTime(task.createTime) }}</span>
|
||||
</div>
|
||||
<div class="footer-item" v-if="task.estimatedHours">
|
||||
<div class="footer-item" v-if="task.estimatedHours" :title="'时效要求: ' + formatEstimatedTime(task.estimatedHours)">
|
||||
<Icon name="clock" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">时效要求: {{ formatEstimatedTime(task.estimatedHours) }}</span>
|
||||
</div>
|
||||
<!-- 驳回时间 -->
|
||||
<div class="footer-item" v-if="task.approvalStatus?.includes('rejected') && task.updateTime">
|
||||
<div class="footer-item" v-if="task.approvalStatus?.includes('rejected') && task.updateTime" :title="formatFullDateTime(task.updateTime)">
|
||||
<Icon name="x-circle" size="sm" color="#f5222d" />
|
||||
<span style="color: #f5222d;">驳回: {{ formatTime(task.updateTime) }}</span>
|
||||
</div>
|
||||
@ -1778,11 +1778,11 @@
|
||||
title="复制任务编号"
|
||||
/>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<div class="footer-item" :title="formatFullDateTime(task.createTime)">
|
||||
<Icon name="calendar" size="sm" color="#31f08b" />
|
||||
<span style="color: #ffffff;">创建: {{ formatTime(task.createTime) }}</span>
|
||||
</div>
|
||||
<div class="footer-item" v-if="task.updateTime && task.updateTime !== task.createTime">
|
||||
<div class="footer-item" v-if="task.updateTime && task.updateTime !== task.createTime" :title="formatFullDateTime(task.updateTime)">
|
||||
<Icon name="edit" size="sm" color="#faad14" />
|
||||
<span style="color: #faad14;">最后编辑: {{ formatTime(task.updateTime) }}</span>
|
||||
</div>
|
||||
@ -3043,6 +3043,12 @@ const formatDate = (date: string | undefined) => {
|
||||
return dayjs(date).format('YYYY-MM-DD')
|
||||
}
|
||||
|
||||
// 格式化完整日期时间(用于鼠标悬停提示)
|
||||
const formatFullDateTime = (date: string | undefined) => {
|
||||
if (!date) return ''
|
||||
return dayjs(date).format('YYYY年MM月DD日 HH:mm:ss')
|
||||
}
|
||||
|
||||
// 格式化积分(保留两位小数,修复浮点数精度问题)
|
||||
const formatScore = (score: number | null | undefined): string => {
|
||||
if (score === null || score === undefined) return '0.00'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user