feat(professors): add nationalId required field to professor form and table
This commit is contained in:
@@ -20,9 +20,14 @@
|
||||
<InputText v-model.trim="form.surname" class="w-full text-sm" />
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-6 flex flex-column gap-2">
|
||||
<label class="font-semibold text-sm">{{ $t('users.nationalId') }} *</label>
|
||||
<InputText v-model.trim="form.nationalIdCode" class="w-full text-sm" dir="ltr" />
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-6 flex flex-column gap-2">
|
||||
<label class="font-semibold text-sm">{{ $t('users.phone') }} *</label>
|
||||
<InputText v-model.trim="form.phone" class="w-full text-sm" dir="ltr" />
|
||||
<InputText v-model.trim="form.phoneNumber" class="w-full text-sm" dir="ltr" />
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-6 flex flex-column gap-2">
|
||||
@@ -65,7 +70,8 @@ const isSubmitting = ref(false);
|
||||
const form = reactive({
|
||||
name: '',
|
||||
surname: '',
|
||||
phone: '',
|
||||
nationalIdCode: '',
|
||||
phoneNumber: '',
|
||||
email: '',
|
||||
bio: ''
|
||||
});
|
||||
@@ -78,7 +84,8 @@ const fetchProfessor = async () => {
|
||||
Object.assign(form, {
|
||||
name: data.name || '',
|
||||
surname: data.surname || '',
|
||||
phone: data.phone || '',
|
||||
nationalIdCode: data.nationalIdCode || data.nationalId || '',
|
||||
phoneNumber: data.phoneNumber || data.phone || '',
|
||||
email: data.email || '',
|
||||
bio: data.bio || ''
|
||||
});
|
||||
@@ -88,14 +95,33 @@ const fetchProfessor = async () => {
|
||||
};
|
||||
|
||||
const handleSubmit = async () => {
|
||||
if (!form.name || !form.surname) { showError('نام و نام خانوادگی الزامی است'); return; }
|
||||
if (!form.name || !form.surname) {
|
||||
showError('نام و نام خانوادگی الزامی است');
|
||||
return;
|
||||
}
|
||||
if (!form.nationalIdCode) {
|
||||
showError('کد ملی الزامی است');
|
||||
return;
|
||||
}
|
||||
if (!form.phoneNumber) {
|
||||
showError('شماره همراه الزامی است');
|
||||
return;
|
||||
}
|
||||
isSubmitting.value = true;
|
||||
try {
|
||||
const payload = {
|
||||
name: form.name,
|
||||
surname: form.surname,
|
||||
nationalIdCode: form.nationalIdCode,
|
||||
phoneNumber: form.phoneNumber,
|
||||
email: form.email || undefined,
|
||||
bio: form.bio || undefined
|
||||
};
|
||||
if (isEditMode.value) {
|
||||
await professorApi.update(professorId, form);
|
||||
await professorApi.update(professorId, payload);
|
||||
showSuccess('اطلاعات استاد با موفقیت ویرایش شد');
|
||||
} else {
|
||||
await professorApi.create(form);
|
||||
await professorApi.create(payload);
|
||||
showSuccess('استاد جدید با موفقیت ایجاد شد');
|
||||
}
|
||||
router.push('/professors');
|
||||
|
||||
@@ -25,6 +25,12 @@
|
||||
</template>
|
||||
</Column>
|
||||
|
||||
<Column field="nationalIdCode" header="کد ملی">
|
||||
<template #body="{ data }">
|
||||
{{ toPersianDigits(data.nationalIdCode || data.nationalId) || '-' }}
|
||||
</template>
|
||||
</Column>
|
||||
|
||||
<Column field="specialization" header="تخصص">
|
||||
<template #body="{ data }">
|
||||
<Tag :value="data.specialization || 'عمومی'" severity="secondary" />
|
||||
|
||||
Reference in New Issue
Block a user