Add reservations module and rename teams visibility label to file-access level.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-27 09:38:17 +03:30
co-authored by Cursor
parent db65b55660
commit d133c8ca34
15 changed files with 1646 additions and 15 deletions
+10 -6
View File
@@ -47,7 +47,7 @@ async function load() {
teams.value = data;
} catch (e) {
if (axios.isAxiosError(e) && e.response?.status === 403) {
error.value = 'ماژول تیم‌ها و دیدپذیری برای این محیط فعال نیست.';
error.value = 'ماژول تیم‌ها و سطح دسترسی به پرونده‌ها برای این محیط فعال نیست.';
} else {
error.value = 'بارگذاری تیم‌ها ناموفق بود.';
}
@@ -140,12 +140,16 @@ async function removeTeam(id: string) {
async function setVisibility(userId: string, dataVisibility: DataVisibility) {
try {
await api.patch(`/users/${userId}/visibility`, { dataVisibility });
ok.value = 'سطح دید به‌روز شد. کاربر باید دوباره وارد شود تا اعمال شود.';
ok.value =
'سطح دسترسی به پرونده‌ها به‌روز شد. کاربر باید دوباره وارد شود تا اعمال شود.';
emit('refreshUsers');
} catch (e) {
error.value = axios.isAxiosError(e)
? String((e.response?.data as { message?: string })?.message ?? 'تغییر سطح دید ناموفق بود.')
: 'تغییر سطح دید ناموفق بود.';
? String(
(e.response?.data as { message?: string })?.message ??
'تغییر سطح دسترسی به پرونده‌ها ناموفق بود.',
)
: 'تغییر سطح دسترسی به پرونده‌ها ناموفق بود.';
}
}
@@ -232,14 +236,14 @@ onMounted(() => {
</section>
<section class="card">
<h3>سطح دید داده‌ها</h3>
<h3>سطح دسترسی به پرونده‌ها</h3>
<p class="hint">
مالک و مدیر همیشه همه پرونده‌ها را می‌بینند. برای بقیه: فقط خود، تیم‌های عضو، یا کل سازمان.
</p>
<UiEmptyState
v-if="!editableUsers.length"
title="کاربر قابل تنظیم نیست"
description="فقط نقش‌های فروش و پشتیبانی سطح دید جدا دارند."
description="فقط نقش‌های فروش و پشتیبانی سطح دسترسی جدا به پرونده‌ها دارند."
/>
<div v-else class="vis-table">
<div v-for="u in editableUsers" :key="u.id" class="vis-row">