feat: improve bill flow, user columns, and admin notes UI

Select class before user when creating bills, fix national ID and registered classes display, remove course ratings, fix notification badge, and show Persian datetime in the topbar.
This commit is contained in:
2026-08-15 02:39:10 +03:30
parent 6b5549019c
commit b8e206caab
9 changed files with 228 additions and 38 deletions
+11 -3
View File
@@ -78,6 +78,10 @@
<Textarea v-model="form.note" rows="3" class="w-full text-sm" placeholder="یادداشت داخلی درباره این جلسه…" />
</div>
<div class="col-12">
<AdminNotesField v-model="form.adminNotes" />
</div>
<div class="col-12 flex justify-content-end gap-2 mt-4 pt-3 border-top-1 border-color">
<Button label="انصراف" text severity="secondary" @click="$router.push('/sessions')" />
<Button type="submit" :label="$t('app.save')" icon="pi pi-check" :loading="isSubmitting" />
@@ -98,6 +102,7 @@ import { professorApi } from '@/api/professorApi';
import { usePersianDate } from '@/composables/usePersianDate';
import { useToast } from '@/composables/useToast';
import PageHeader from '@/components/common/PageHeader.vue';
import AdminNotesField from '@/components/common/AdminNotesField.vue';
import InputText from 'primevue/inputtext';
import Textarea from 'primevue/textarea';
import Dropdown from 'primevue/select';
@@ -133,7 +138,8 @@ const form = reactive({
status: 'scheduled',
topic: '',
place: '',
note: ''
note: '',
adminNotes: []
});
const toGregorianIso = (jalaliValue) => {
@@ -195,7 +201,8 @@ const fetchData = async () => {
status: data.status || 'scheduled',
topic: data.topic || '',
place: data.place || '',
note: data.note || ''
note: data.note || '',
adminNotes: Array.isArray(data.adminNotes) ? [...data.adminNotes] : []
});
}
} catch (err) {
@@ -225,7 +232,8 @@ const handleSubmit = async () => {
status: form.status,
topic: form.topic,
place: form.place,
note: form.note
note: form.note,
adminNotes: (form.adminNotes || []).map((n) => String(n).trim()).filter(Boolean)
};
if (isEditMode.value) {