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

This commit is contained in:
zhihao
2026-06-30 09:33:10 +08:00
parent 1695036163
commit 50718631ae
2 changed files with 51 additions and 12 deletions
@@ -2,9 +2,9 @@
<template>
<div class="s-upload-file-container">
<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" />
选择文件上传
上传附件
</a-button>
</div>
@@ -178,7 +178,9 @@ async function handleUploadSuccess(result: any) {
}
});
}
// 如果已有业务ID,绑定未关联文件并刷新列表
if (props.bussinessId) {
await bindBussinessId(props.bussinessId);
await loadFileList();
}
emit('upload-success', result);
@@ -235,14 +235,13 @@
<span class="detail-row-icon">
<Icon icon="tasklist-attachment|svg" />
</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>
<TaskAttachmentUpload
ref="fileUploadRef"
:bussiness-id="taskData.id || ''"
:bussiness-secret-level="currentListSecretLevel"
:disabled="isFullReadOnly"
style="display: none"
/>
</div>
</div>
@@ -345,15 +344,15 @@
<Icon icon="tasklist-followers|svg" />
</span>
<div v-if="!isFullReadOnly" class="follower-clickable" @click="openDrawerUserSelect('followers')">
<template v-if="followers.length > 0">
<AvatarDisplay :names="taskData.followersName" :size="24" :show-name="false" />
</template>
<span v-else class="follower-empty">将通知 0 人</span>
<span class="follower-label">添加关注人</span>
<AvatarDisplay v-if="followers.length > 0" :names="taskData.followersName" :size="24" :show-name="false" />
</div>
<a-tooltip v-else-if="followers.length > 0" :title="taskData.followersName" placement="top">
<AvatarDisplay :names="taskData.followersName" :size="24" :show-name="false" />
</a-tooltip>
<span v-else class="follower-empty">将通知 0 人</span>
<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" />
</a-tooltip>
</template>
</div>
</template>
@@ -945,6 +944,26 @@
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 {
display: flex;
align-items: center;
@@ -1374,6 +1393,10 @@
margin-top: 8px;
font-size: 14px;
color: #646a73;
.detail-row-icon {
margin-top: 0;
}
}
.follower-info {
@@ -1417,6 +1440,20 @@
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 {
font-size: 14px;
color: #c0c4cc;