diff --git a/src/features/admin/router.js b/src/features/admin/router.js index 3d5287a..49560c5 100644 --- a/src/features/admin/router.js +++ b/src/features/admin/router.js @@ -241,6 +241,17 @@ export default [ subtitle: 'لیست خدمات را مشاهده و مدیریت نمایید.', }, }, + { + path: '/service-types', + name: 'admin-service-types', + component: () => import('@/features/admin/services/pages/ServiceTypesPage.vue'), + meta: { + layout: 'admin', + role: 'admin', + title: 'مرکز خدمات', + subtitle: 'انواع خدمات قابل درخواست توسط کاربران را مدیریت کنید.', + }, + }, { path: '/consultations', name: 'admin-consultations', diff --git a/src/features/admin/services/components/ServiceTypeItem.vue b/src/features/admin/services/components/ServiceTypeItem.vue new file mode 100644 index 0000000..53e5743 --- /dev/null +++ b/src/features/admin/services/components/ServiceTypeItem.vue @@ -0,0 +1,86 @@ + + + + {{ serviceType.title }} + {{ serviceType.description || '—' }} + + + + + + + + + + + + + + + + + + + + diff --git a/src/features/admin/services/components/modals/ServiceTypeFormModal.vue b/src/features/admin/services/components/modals/ServiceTypeFormModal.vue new file mode 100644 index 0000000..4a8c387 --- /dev/null +++ b/src/features/admin/services/components/modals/ServiceTypeFormModal.vue @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/features/admin/services/index.js b/src/features/admin/services/index.js index fecd2b0..7e1a16d 100644 --- a/src/features/admin/services/index.js +++ b/src/features/admin/services/index.js @@ -1,4 +1,6 @@ export { default as SendMessageModal } from './components/modals/SendMessageModal.vue' export { default as ServiceDetailsModal } from './components/modals/ServiceDetailsModal.vue' +export { default as ServiceTypeFormModal } from './components/modals/ServiceTypeFormModal.vue' export { default as ServiceItem } from './components/ServiceItem.vue' +export { default as ServiceTypeItem } from './components/ServiceTypeItem.vue' export { default as ServicesFilters } from './components/ServicesFilters.vue' diff --git a/src/features/admin/services/pages/ServiceTypesPage.vue b/src/features/admin/services/pages/ServiceTypesPage.vue new file mode 100644 index 0000000..f4a5b89 --- /dev/null +++ b/src/features/admin/services/pages/ServiceTypesPage.vue @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/features/admin/services/schema/service-type.js b/src/features/admin/services/schema/service-type.js new file mode 100644 index 0000000..6423d46 --- /dev/null +++ b/src/features/admin/services/schema/service-type.js @@ -0,0 +1,6 @@ +import { object, string } from 'yup' + +export const serviceTypeSchema = object().shape({ + title: string().trim().required('عنوان نوع خدمت را وارد کنید').max(255, 'عنوان طولانی است'), + description: string().trim().nullable().notRequired().max(2000, 'توضیحات طولانی است'), +}) diff --git a/src/features/student/services/components/CreateServiceForm.vue b/src/features/student/services/components/CreateServiceForm.vue index bbbf41c..58f427b 100644 --- a/src/features/student/services/components/CreateServiceForm.vue +++ b/src/features/student/services/components/CreateServiceForm.vue @@ -67,8 +67,8 @@
{{ serviceType.title }}
{{ serviceType.description || '—' }}