|
313 | 313 | class="text-sm cursor-auto flex flex-wrap gap-1"
|
314 | 314 | >
|
315 | 315 | <el-tooltip
|
316 |
| - v-for="email of scope.row.emails" |
| 316 | + v-for="email of scope.row.emails.slice(0, 3)" |
317 | 317 | :key="email"
|
318 | 318 | :disabled="!email"
|
319 | 319 | popper-class="custom-identity-tooltip"
|
|
336 | 336 | >{{ email }}</a>
|
337 | 337 | </div>
|
338 | 338 | </el-tooltip>
|
| 339 | + <el-popover |
| 340 | + v-if="scope.row.emails?.length > 3" |
| 341 | + placement="top" |
| 342 | + :width="400" |
| 343 | + trigger="hover" |
| 344 | + popper-class="support-popover" |
| 345 | + > |
| 346 | + <template #reference> |
| 347 | + <span |
| 348 | + class="badge--interactive hover:text-gray-900" |
| 349 | + >+{{ scope.row.emails.length - 3 }}</span> |
| 350 | + </template> |
| 351 | + <div class="flex flex-wrap gap-3 my-1"> |
| 352 | + <el-tooltip |
| 353 | + v-for="email of scope.row.emails.slice(3)" |
| 354 | + :key="email" |
| 355 | + :disabled="!email" |
| 356 | + popper-class="custom-identity-tooltip flex " |
| 357 | + placement="top" |
| 358 | + > |
| 359 | + <template #content> |
| 360 | + <span>Send email |
| 361 | + <i |
| 362 | + v-if="email" |
| 363 | + class="ri-external-link-line text-gray-400" |
| 364 | + /></span> |
| 365 | + </template> |
| 366 | + <div @click.prevent> |
| 367 | + <a |
| 368 | + target="_blank" |
| 369 | + rel="noopener noreferrer" |
| 370 | + class="badge--interactive" |
| 371 | + :href="`mailto:${email}`" |
| 372 | + @click.stop="trackEmailClick" |
| 373 | + >{{ email }}</a> |
| 374 | + </div> |
| 375 | + </el-tooltip> |
| 376 | + </div> |
| 377 | + </el-popover> |
339 | 378 | </div>
|
340 | 379 | <span v-else class="text-gray-500">-</span>
|
341 | 380 | </router-link>
|
@@ -404,14 +443,14 @@ import { useRouter } from 'vue-router';
|
404 | 443 | import {
|
405 | 444 | computed, onMounted, onUnmounted, ref, defineProps, watch,
|
406 | 445 | } from 'vue';
|
| 446 | +import { storeToRefs } from 'pinia'; |
407 | 447 | import { i18n } from '@/i18n';
|
408 | 448 | import AppMemberListToolbar from '@/modules/member/components/list/member-list-toolbar.vue';
|
409 | 449 | import AppMemberOrganizations from '@/modules/member/components/member-organizations.vue';
|
410 | 450 | import AppTagList from '@/modules/tag/components/tag-list.vue';
|
411 | 451 | import { formatDateToTimeAgo } from '@/utils/date';
|
412 | 452 | import { formatNumberToCompact, formatNumber } from '@/utils/number';
|
413 | 453 | import { useMemberStore } from '@/modules/member/store/pinia';
|
414 |
| -import { storeToRefs } from 'pinia'; |
415 | 454 | import { MemberService } from '@/modules/member/member-service';
|
416 | 455 | import AppMemberMergeDialog from '@/modules/member/components/member-merge-dialog.vue';
|
417 | 456 | import AppTagPopover from '@/modules/tag/components/tag-popover.vue';
|
|
0 commit comments