feat: allow bulk select and delete on activities and deal list

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-17 12:47:07 +03:30
co-authored by Cursor
parent 9611803567
commit 2c7c943802
4 changed files with 389 additions and 15 deletions
@@ -23,19 +23,27 @@ import {
const PAGE = 30;
const props = defineProps<{
stages: ActivityStageDto[];
/** فیلترهای مشترک با حالت تب (filter زمانی، q، desk، type، assigneeId) */
params: Record<string, string | undefined>;
canManage: boolean;
reloadKey: number;
}>();
const props = withDefaults(
defineProps<{
stages: ActivityStageDto[];
/** فیلترهای مشترک با حالت تب (filter زمانی، q، desk، type، assigneeId) */
params: Record<string, string | undefined>;
canManage: boolean;
reloadKey: number;
selectMode?: boolean;
selectedIds?: Set<string>;
}>(),
{ selectedIds: () => new Set() },
);
const emit = defineEmits<{
changed: [];
stagesChanged: [];
add: [stageId: string];
error: [message: string];
menuDeal: [activityId: string];
toggleSelect: [activityId: string];
bulkDelete: [];
}>();
const router = useRouter();
@@ -381,13 +389,17 @@ function openActivity(id: string) {
:drop-stage-id="dropStageId"
:can-manage="canManage"
:copy="ACTIVITY_BOARD_COPY"
:select-mode="selectMode"
:selected-ids="selectedIds"
@drag-start="onDragStart"
@drag-end="onDragEnd"
@drag-over="onDragOver"
@drop="onDrop"
@add-deal="emit('add', $event)"
@open-deal="openActivity"
@menu-deal="openActivity"
@menu-deal="emit('menuDeal', $event)"
@toggle-select="emit('toggleSelect', $event)"
@bulk-delete="emit('bulkDelete')"
@rename-stage="onRenameStage"
@delete-stage="onDeleteStage"
@move-stage="onMoveStage"