feat(customers): add optional group assignees with OR visibility for people, companies, and birthdays
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,6 +3,8 @@ import { computed, onMounted, ref } from 'vue';
|
||||
import { RouterLink } from 'vue-router';
|
||||
import { api } from '@/lib/api';
|
||||
import { toFaDigits } from '@/lib/jalali';
|
||||
import { hasSectionPermission } from '@/lib/section-permissions';
|
||||
import { useAuthStore } from '@/stores/auth';
|
||||
import UiIcon from '@/components/UiIcon.vue';
|
||||
import { UiModal } from '@/components/ui';
|
||||
import SmsComposeModal from '@/components/SmsComposeModal.vue';
|
||||
@@ -25,9 +27,13 @@ type BirthdayMonth = {
|
||||
items: BirthdayItem[];
|
||||
};
|
||||
|
||||
const auth = useAuthStore();
|
||||
const data = ref<BirthdayMonth | null>(null);
|
||||
const listOpen = ref(false);
|
||||
const smsTarget = ref<BirthdayItem | null>(null);
|
||||
const canSeeCustomers = computed(() =>
|
||||
hasSectionPermission(auth.user?.role, auth.user?.permissions, 'customers'),
|
||||
);
|
||||
|
||||
const groups = computed(() => {
|
||||
const map = new Map<number, BirthdayItem[]>();
|
||||
@@ -44,6 +50,10 @@ function openSms(person: BirthdayItem) {
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
if (!canSeeCustomers.value) {
|
||||
data.value = null;
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const { data: body } = await api.get<BirthdayMonth>('/people/birthdays');
|
||||
data.value = body.total > 0 ? body : null;
|
||||
|
||||
Reference in New Issue
Block a user