diff --git a/apps/web/src/components/TeamsSettingsPanel.vue b/apps/web/src/components/TeamsSettingsPanel.vue index 4e2c858..44f1cbd 100644 --- a/apps/web/src/components/TeamsSettingsPanel.vue +++ b/apps/web/src/components/TeamsSettingsPanel.vue @@ -295,6 +295,13 @@ function setRole(userId: string, role: unknown) { }; } +function teamMembersLabel(team: TeamDto) { + if (!team.members.length) return 'بدون عضو'; + return team.members + .map((m) => `${m.fullName}${m.role === 'manager' ? ' (سرپرست)' : ''}`) + .join('، '); +} + async function saveMembers() { if (!editingId.value) return; saving.value = true; @@ -455,15 +462,7 @@ onMounted(() => { diff --git a/apps/web/src/views/AttachmentsView.vue b/apps/web/src/views/AttachmentsView.vue index 5a7a051..19ca50a 100644 --- a/apps/web/src/views/AttachmentsView.vue +++ b/apps/web/src/views/AttachmentsView.vue @@ -20,7 +20,7 @@ import { import type { TableColumnsType } from 'ant-design-vue'; import { DownloadOutlined } from '@ant-design/icons-vue'; -const { Title: ATypographyTitle, Text: ATypographyText, Link: ATypographyLink } = Typography; +const { Title: ATypographyTitle, Link: ATypographyLink } = Typography; type Row = NoteAttachmentDto & { noteId: string; diff --git a/apps/web/src/views/CustomFieldsSettingsView.vue b/apps/web/src/views/CustomFieldsSettingsView.vue index a727e14..d1b85c2 100644 --- a/apps/web/src/views/CustomFieldsSettingsView.vue +++ b/apps/web/src/views/CustomFieldsSettingsView.vue @@ -93,6 +93,14 @@ function entityTagColor(entity: CustomFieldEntity) { return 'blue'; } +function entityLabelOf(field: CustomFieldDefinitionDto) { + return entityLabels[field.entityType]; +} + +function typeLabelOf(field: CustomFieldDefinitionDto) { + return typeLabels[field.fieldType]; +} + function fieldDescription(field: CustomFieldDefinitionDto) { const parts = [`کلید سیستمی: ${field.key}`]; if (field.options?.length) parts.push(`گزینه‌ها: ${field.options.join('، ')}`); @@ -264,9 +272,9 @@ onMounted(load); {{ item.label }} - {{ entityLabels[item.entityType] }} + {{ entityLabelOf(item) }} - {{ typeLabels[item.fieldType] }} + {{ typeLabelOf(item) }} اجباری {{ item.isActive ? 'فعال' : 'غیرفعال' }} diff --git a/apps/web/src/views/routines/RoutinesShellView.vue b/apps/web/src/views/routines/RoutinesShellView.vue index 1b5cf92..671a273 100644 --- a/apps/web/src/views/routines/RoutinesShellView.vue +++ b/apps/web/src/views/routines/RoutinesShellView.vue @@ -29,7 +29,7 @@ import { WarningOutlined, } from '@ant-design/icons-vue'; -const { Title: ATypographyTitle, Text: ATypographyText } = Typography; +const { Title: ATypographyTitle } = Typography; const route = useRoute(); const router = useRouter(); diff --git a/apps/web/src/views/routines/RoutinesTodayView.vue b/apps/web/src/views/routines/RoutinesTodayView.vue index a992b10..d675d68 100644 --- a/apps/web/src/views/routines/RoutinesTodayView.vue +++ b/apps/web/src/views/routines/RoutinesTodayView.vue @@ -129,13 +129,6 @@ const userOptions = computed(() => [ .map((u) => ({ value: u.id, label: u.fullName })), ]); -const greeting = computed(() => { - if (!viewingSelf.value) { - const u = users.value.find((x) => x.id === userId.value); - return u ? `کارهای امروز ${u.fullName}` : 'کارهای امروز'; - } - return 'امروز چه کارهایی داری؟'; -});