!67 czh-20260630-优化附件上传功能

Merge pull request !67 from 陈志浩/fix/tasklist-20260630
This commit is contained in:
陈志浩
2026-06-30 01:34:33 +00:00
committed by Gitee
2 changed files with 51 additions and 12 deletions
@@ -2,9 +2,9 @@
<template> <template>
<div class="s-upload-file-container"> <div class="s-upload-file-container">
<div class="upload-btn-wrapper" v-if="!disabled"> <div class="upload-btn-wrapper" v-if="!disabled">
<a-button type="primary" @click="handleOpenUploadModal"> <a-button type="link" @click="handleOpenUploadModal">
<Icon icon="ant-design:upload-outlined" /> <Icon icon="ant-design:upload-outlined" />
选择文件上传 上传附件
</a-button> </a-button>
</div> </div>
@@ -178,7 +178,9 @@ async function handleUploadSuccess(result: any) {
} }
}); });
} }
// 如果已有业务ID,绑定未关联文件并刷新列表
if (props.bussinessId) { if (props.bussinessId) {
await bindBussinessId(props.bussinessId);
await loadFileList(); await loadFileList();
} }
emit('upload-success', result); emit('upload-success', result);
@@ -235,14 +235,13 @@
<span class="detail-row-icon"> <span class="detail-row-icon">
<Icon icon="tasklist-attachment|svg" /> <Icon icon="tasklist-attachment|svg" />
</span> </span>
<div class="detail-row-content"> <div class="detail-row-content detail-row-attachment">
<span class="desc-trigger" :class="{ 'readonly-field': isFullReadOnly }" @click="!isFullReadOnly && openFileUploadModal()"> 添加附件 </span> <span class="desc-trigger" :class="{ 'readonly-field': isFullReadOnly }" @click="!isFullReadOnly && openFileUploadModal()"> 添加附件 </span>
<TaskAttachmentUpload <TaskAttachmentUpload
ref="fileUploadRef" ref="fileUploadRef"
:bussiness-id="taskData.id || ''" :bussiness-id="taskData.id || ''"
:bussiness-secret-level="currentListSecretLevel" :bussiness-secret-level="currentListSecretLevel"
:disabled="isFullReadOnly" :disabled="isFullReadOnly"
style="display: none"
/> />
</div> </div>
</div> </div>
@@ -345,15 +344,15 @@
<Icon icon="tasklist-followers|svg" /> <Icon icon="tasklist-followers|svg" />
</span> </span>
<div v-if="!isFullReadOnly" class="follower-clickable" @click="openDrawerUserSelect('followers')"> <div v-if="!isFullReadOnly" class="follower-clickable" @click="openDrawerUserSelect('followers')">
<template v-if="followers.length > 0"> <span class="follower-label">添加关注人</span>
<AvatarDisplay :names="taskData.followersName" :size="24" :show-name="false" /> <AvatarDisplay v-if="followers.length > 0" :names="taskData.followersName" :size="24" :show-name="false" />
</template>
<span v-else class="follower-empty">将通知 0 人</span>
</div> </div>
<a-tooltip v-else-if="followers.length > 0" :title="taskData.followersName" placement="top"> <template v-else>
<span v-if="followers.length === 0" class="follower-empty">无关注人</span>
<a-tooltip v-else :title="taskData.followersName" placement="top">
<AvatarDisplay :names="taskData.followersName" :size="24" :show-name="false" /> <AvatarDisplay :names="taskData.followersName" :size="24" :show-name="false" />
</a-tooltip> </a-tooltip>
<span v-else class="follower-empty">将通知 0 人</span> </template>
</div> </div>
</template> </template>
@@ -945,6 +944,26 @@
min-width: 0; min-width: 0;
} }
.detail-row-attachment {
:deep(.s-upload-file-container) {
.upload-btn-wrapper {
display: none;
}
.file-list-wrapper {
background: transparent;
padding: 0;
min-height: auto;
}
.file-item {
padding: 6px 10px;
margin-bottom: 4px;
border-radius: 6px;
}
}
}
.detail-field-row { .detail-field-row {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -1374,6 +1393,10 @@
margin-top: 8px; margin-top: 8px;
font-size: 14px; font-size: 14px;
color: #646a73; color: #646a73;
.detail-row-icon {
margin-top: 0;
}
} }
.follower-info { .follower-info {
@@ -1417,6 +1440,20 @@
z-index: 0; z-index: 0;
} }
.follower-clickable {
cursor: pointer;
display: flex;
align-items: center;
gap: 8px;
.follower-label {
font-size: 14px;
color: #8c8c8c;
}
&:hover .follower-label {
color: #3370ff;
}
}
.follower-empty { .follower-empty {
font-size: 14px; font-size: 14px;
color: #c0c4cc; color: #c0c4cc;