czh-20260501-增加密级相关功能

This commit is contained in:
zhihao
2026-05-01 03:10:47 +08:00
parent d9d5ab70cc
commit c15be6a79b
14 changed files with 1197 additions and 162 deletions
+43 -1
View File
@@ -36,6 +36,9 @@
</a-dropdown>
</div>
<div v-if="currentList" class="content-header-actions">
<span v-if="currentList.secretText" class="header-secret-badge" :style="{ color: SECRET_LEVEL_COLOR[currentList.secretLevel || 1] || '#8c8c8c', borderColor: SECRET_LEVEL_COLOR[currentList.secretLevel || 1] || '#8c8c8c' }">
{{ currentList.secretText }}
</span>
<div class="collaborator-bar" @click="emit('open-collaborator')">
<AvatarDisplay
v-if="collaboratorDisplayNames"
@@ -246,6 +249,7 @@
<div class="list-group-col list-group-col-name">名称</div>
<div class="list-group-col list-group-col-owner">所有者</div>
<div class="list-group-col list-group-col-collaborators">协作者</div>
<div class="list-group-col list-group-col-secret">密级</div>
<div class="list-group-col list-group-col-time">创建时间</div>
</div>
<div v-for="list in allTaskLists" :key="list.id" class="list-group-row" @click="emit('list-select', list.id)">
@@ -273,6 +277,16 @@
</template>
<span v-else class="field-placeholder">-</span>
</div>
<div class="list-group-col list-group-col-secret">
<span
v-if="list.secretText"
class="secret-badge-inline"
:style="{ color: SECRET_LEVEL_COLOR[(list as any).secretLevel || 1] || '#8c8c8c', borderColor: SECRET_LEVEL_COLOR[(list as any).secretLevel || 1] || '#8c8c8c' }"
>
{{ list.secretText }}
</span>
<span v-else class="field-placeholder">-</span>
</div>
<div class="list-group-col list-group-col-time">
<span class="field-value">{{ getFormattedCreateTime(list) }}</span>
</div>
@@ -790,6 +804,7 @@
:user-ids="userSelectModalCurrentIds"
:user-names="userSelectModalCurrentNames"
:multiple="true"
:secret-level="currentList?.secretLevel || 1"
@confirm="onUserSelectConfirm"
/>
</div>
@@ -804,7 +819,7 @@
import UserSelectModal from './UserSelectModal.vue';
import { useUserStore } from '/@/store/modules/user';
import { useMessage } from '/@/hooks/web/useMessage';
import { FIELD_CONFIG, GROUP_OPTIONS, SORT_OPTIONS, MAX_TASK_DEPTH, FILTER_FIELD_CONFIGS, FILTER_OPERATOR_LABELS } from '../types';
import { FIELD_CONFIG, GROUP_OPTIONS, SORT_OPTIONS, MAX_TASK_DEPTH, FILTER_FIELD_CONFIGS, FILTER_OPERATOR_LABELS, SECRET_LEVEL_COLOR } from '../types';
import { PRIORITY_OPTIONS, getPriorityBg, getPriorityLabel, isOverdue } from '../utils/taskUtils';
import type {
TaskList,
@@ -1851,6 +1866,15 @@
gap: 8px;
}
.header-secret-badge {
font-size: 11px;
padding: 0 6px;
border-radius: 3px;
border: 1px solid;
line-height: 18px;
flex-shrink: 0;
}
.collaborator-bar {
display: flex;
align-items: center;
@@ -2150,6 +2174,9 @@
.content-body {
flex: 1;
overflow: auto;
display: flex;
flex-direction: column;
min-height: 0;
}
.task-group-header {
@@ -2651,6 +2678,21 @@
padding: 0 12px;
}
.list-group-col-secret {
width: 80px;
padding: 0 12px;
text-align: center;
}
.secret-badge-inline {
font-size: 11px;
padding: 1px 6px;
border-radius: 3px;
border: 1px solid;
line-height: 16px;
white-space: nowrap;
}
.list-group-col-time {
width: 160px;
padding: 0 12px;