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(() => {
- {{ t.description || 'بدون توضیح' }}
- ·
- {{
- t.members.length
- ? t.members
- .map((m) => `${m.fullName}${m.role === 'manager' ? ' (سرپرست)' : ''}`)
- .join('، ')
- : 'بدون عضو'
- }}
+ {{ t.description || 'بدون توضیح' }} · {{ teamMembersLabel(t) }}
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 'امروز چه کارهایی داری؟';
-});