From 02d6dabc6520c8a7454784d7f223502730ff4787 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Tue, 4 Mar 2025 11:18:38 +0330 Subject: [PATCH] annoncement admin --- .env | 4 +- src/langs/fa.json | 5 +- src/pages/annoncement/Create.tsx | 5 +- src/pages/annoncement/List.tsx | 175 +++++------------- .../annoncement/types/AnnoncementTypes.ts | 3 +- src/pages/types/AnnouncementTypes.ts | 2 +- 6 files changed, 58 insertions(+), 136 deletions(-) diff --git a/.env b/.env index 85e6213..8ac5aef 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ VITE_TOKEN_NAME = 'admin_token' VITE_REFRESH_TOKEN_NAME = 'admin_refresh_token' -VITE_BASE_URL = 'https://api.danakcorp.com' -# VITE_BASE_URL = 'http://192.168.1.124:4000' \ No newline at end of file +# VITE_BASE_URL = 'https://api.danakcorp.com' +VITE_BASE_URL = 'http://192.168.0.216:4000' \ No newline at end of file diff --git a/src/langs/fa.json b/src/langs/fa.json index 789450a..71189fb 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -467,7 +467,10 @@ "select_service": "انتخاب سرویس", "select_customer": "انتخاب مشتری", "contact_announcement": "مخاطب این اطلاعیه", - "date_created": "تاریخ ثبت" + "date_created": "تاریخ ثبت", + "summary": "خلاصه اطلاعیه", + "user": "کاربر مخاطب", + "created_date": "زمان ایجاد" }, "back": "بازگشت", "criticisms": { diff --git a/src/pages/annoncement/Create.tsx b/src/pages/annoncement/Create.tsx index 9cb0a2b..bf4bdff 100644 --- a/src/pages/annoncement/Create.tsx +++ b/src/pages/annoncement/Create.tsx @@ -38,10 +38,11 @@ const Create: FC = () => { title: Yup.string().required(t('errors.required')), content: Yup.string().required(t('errors.required')), publishAt: Yup.string().required(t('errors.required')), - serviceId: Yup.string().required(t('errors.required')), - groupIds: Yup.array().required(t('errors.required')) }), onSubmit: (values) => { + if (!values.serviceId) { + values.serviceId = undefined + } createAnnoncement.mutate(values, { onSuccess: () => { formik.resetForm() diff --git a/src/pages/annoncement/List.tsx b/src/pages/annoncement/List.tsx index 210f519..45e4be2 100644 --- a/src/pages/annoncement/List.tsx +++ b/src/pages/annoncement/List.tsx @@ -1,36 +1,20 @@ -import { FC, Fragment, useState } from 'react' +import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' -import Input from '../../components/Input' -import StatusWithText from '../../components/StatusWithText' -import { clx } from '../../helpers/utils' -import { Link, useNavigate } from 'react-router-dom' +import { Link } from 'react-router-dom' import { Pages } from '../../config/Pages' import { useGetAnnoncements } from './hooks/useAnnoncementData' -import PageLoading from '../../components/PageLoading' import { AnnoncementItemType } from './types/AnnoncementTypes' -import moment from 'moment-jalaali' -import Pagination from '../../components/Pagination' -import DatePickerComponent from '../../components/DatePicker' import Button from '../../components/Button' import { Add } from 'iconsax-react' +import Td from '../../components/Td' +import moment from 'moment-jalaali' +import Pagination from '../../components/Pagination' const AnnouncementtList: FC = () => { const { t } = useTranslation('global') - const navigate = useNavigate() - const [openItem, setOpenItem] = useState() const [page, setPage] = useState(1) - const [since, setSince] = useState('') - const [search, setSearch] = useState('') - const getAnnoncements = useGetAnnoncements(page, search, since) - - const handleChange = (item: AnnoncementItemType) => { - if (window.innerWidth < 1280) { - navigate(Pages.announcement.detail + item.id) - } else { - setOpenItem(item) - } - } + const getAnnoncements = useGetAnnoncements(page, '', '') return (
@@ -57,116 +41,49 @@ const AnnouncementtList: FC = () => {
-
-
-
-
- setSearch(value)} - /> -
- -
- setSince(d)} - placeholder={t('announcement.date_created')} - /> -
-
- - { - getAnnoncements.isPending ? - - : - -
- { - getAnnoncements.data?.data?.announcements?.map((item: AnnoncementItemType) => { - return ( -
handleChange(item)} className={clx( - 'p-4 rounded-2xl cursor-pointer', - openItem?.id === item.id && 'bg-[#F5F6FA]' - )}> -
-
- {item.title} -
- -
- { - item.isImportant && - - } - - -
-
- -
-
-
-
- {moment(item.publishAt).format('jYYYY/jMM/jDD')} -
-
-
- ) - }) - } -
- -
-
-
- } -
+
+ + + + + + + { + getAnnoncements.data?.data?.announcements?.map((item: AnnoncementItemType) => { + return ( + + + + + ) + }) + } + +
+ + + + +
+ +

+
+ +
+ {moment(item.createdAt).format('jYYYY-jMM-jDD HH:mm')} +
+
+
+
- { - openItem && -
-
-
- متن اطلاعیه -
-
- { - openItem.isImportant && - - } - -
-
- -
- {openItem.title} -
- -
-
-
- } +
+
diff --git a/src/pages/annoncement/types/AnnoncementTypes.ts b/src/pages/annoncement/types/AnnoncementTypes.ts index aff954d..b36aca4 100644 --- a/src/pages/annoncement/types/AnnoncementTypes.ts +++ b/src/pages/annoncement/types/AnnoncementTypes.ts @@ -4,7 +4,7 @@ export type AnnoncementCreateType = { publishAt: string; isPublic: boolean; isImportant: boolean; - serviceId: string; + serviceId?: string; groupIds: string[]; }; @@ -17,4 +17,5 @@ export type AnnoncementItemType = { isImportant: boolean; serviceId: string; groupIds: string[]; + createdAt: string; }; diff --git a/src/pages/types/AnnouncementTypes.ts b/src/pages/types/AnnouncementTypes.ts index 442539b..68320ee 100644 --- a/src/pages/types/AnnouncementTypes.ts +++ b/src/pages/types/AnnouncementTypes.ts @@ -4,6 +4,6 @@ export type CreateAnnouncementType = { publishAt: string; isPublic: boolean; isImportant: boolean; - serviceId: string; + serviceId?: string; groupIds: string[]; };