Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d7485bbfd | ||
|
|
f6c889e633 | ||
|
|
96174f1737 | ||
|
|
5a05da404d | ||
|
|
03dbc04dfa | ||
|
|
bc402a5fdc | ||
|
|
caaef6117a |
@@ -1 +1,34 @@
|
|||||||
This is a starter template for [Learn Next.js](https://nextjs.org/learn).
|
# وبسایت بیمارستان مهر پرند
|
||||||
|
|
||||||
|
پروژه با Next.js 11 و Pages Router اجرا میشود.
|
||||||
|
|
||||||
|
## اجرا و بررسی
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run dev
|
||||||
|
npm run build
|
||||||
|
npm run start
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
تستها با test runner داخلی Node.js اجرا میشوند و به Node.js 20 یا جدیدتر نیاز دارند. بیلد فعلی با Node.js 14.21.3 بررسی شده است؛ ارتقای نسخههای قدیمی Next.js و Node.js باید جداگانه انجام شود. تنظیمات و نسخه ESLint موجود با فرایند lint این نسخه Next.js سازگار نیست و بیلد هشدار میدهد؛ موفقیت بیلد به معنی موفقیت lint نیست.
|
||||||
|
|
||||||
|
## تنظیمات سئو
|
||||||
|
|
||||||
|
- عنوان و توضیحات صفحات عمومی و آدرس اصلی سایت در `lib/seo.js` تعریف شدهاند. هنگام افزودن صفحه عمومی، آن را به `PUBLIC_PAGES` اضافه کنید؛ این فهرست منبع صفحات ثابت sitemap نیز هست.
|
||||||
|
- `src/components/Seo.jsx` از طریق `_app.js` متادیتا، canonical، Open Graph، Twitter Card و JSON-LD را در HTML سرور تولید میکند. متادیتای محتوای پویا را با `props.seo` از `getServerSideProps` ارسال کنید.
|
||||||
|
- canonical از دامنه ثابت HTTPS ساخته میشود و query string و fragment را حذف میکند. عنوان سفارشی صفحات را در registry یا `props.seo` تنظیم کنید؛ prop قدیمی `AppContainer.title` دیگر منبع متادیتا نیست.
|
||||||
|
- صفحات فنی، کامپوننتهای مستقل، فرمهای درخواست و پیگیری و نمودارهایی که محتوایشان صرفاً سمت مرورگر است، بهصورت پیشفرض `noindex, follow` هستند. صفحه عمومی بخشها در `/components/service` استثنا است. `noindex` جایگزین کنترل دسترسی نیست.
|
||||||
|
- سند HTML دارای `lang="fa"` و `dir="rtl"` است. داده ساختاریافته بیمارستان از اطلاعات تماس موجود سایت ساخته شده؛ ساعت کاری یا تاریخ افتتاح فرضی درج نشده است.
|
||||||
|
|
||||||
|
## نقشه سایت و اخبار
|
||||||
|
|
||||||
|
آدرس عمومی نقشه سایت `https://miphospital.ir/sitemap.xml` است و به handler موجود `/api/my-sitemap` بازنویسی میشود. robots.txt همین آدرس HTTPS را معرفی میکند.
|
||||||
|
|
||||||
|
نقشه سایت صفحات عمومی و شناسههای معتبر اخبار برگشتی از `AppUrl('news')` را شامل میشود. اگر API اخبار در دسترس نباشد، صفحات ثابت همچنان برگردانده میشوند و زمان cache به ۶۰ ثانیه کاهش مییابد. API فعلی باید آرایه اخبار یا آبجکت دارای آرایه `data` برگرداند؛ در صورت اضافه شدن pagination، پیمایش صفحههای API نیز باید اضافه شود.
|
||||||
|
|
||||||
|
خبر ناموجود پاسخ ۴۰۴ دارد؛ خرابی موقت API جزئیات خبر به خطای سرور منجر میشود. فهرست اخبار هنگام خرابی API پاسخ ۵۰۳ با `Retry-After` میدهد تا خطا بهعنوان محتوای خالی موفق ثبت نشود.
|
||||||
|
|
||||||
|
در بررسی محلی، API فعلی اخبار (`https://mehrara-api.iran.liara.run/api/news`) پاسخ ۴۰۴ داد؛ در نتیجه مسیرهای واقعی اخبار و محتوای زنده آنها تا رفع API قابل بررسی نیستند. بعد از انتشار، sitemap را در Google Search Console ثبت و صفحات اصلی را با URL Inspection بررسی کنید.
|
||||||
|
|
||||||
|
مرجع: [راهنمای فنی سئو برای توسعهدهندگان در Google Search Central](https://developers.google.com/search/docs/fundamentals/get-started-developers).
|
||||||
|
|||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
const SITE_URL = 'https://miphospital.ir'
|
||||||
|
const SITE_NAME = 'بیمارستان مهر پرند'
|
||||||
|
const DEFAULT_DESCRIPTION = 'وبسایت رسمی بیمارستان مهر ایرانیان پرند؛ معرفی بیمارستان، بخشهای تخصصی، اخبار افتتاح، فرصتهای شغلی و راههای ارتباط با ما.'
|
||||||
|
const DEFAULT_IMAGE = `${SITE_URL}/resource/logo/logo-green.png`
|
||||||
|
|
||||||
|
// This registry also defines the public, canonical pages included in the sitemap.
|
||||||
|
const PUBLIC_PAGES = {
|
||||||
|
'/': [SITE_NAME, DEFAULT_DESCRIPTION],
|
||||||
|
'/landing': ['معرفی بیمارستان مهر پرند', 'با بیمارستان مهر پرند، زیرساختهای درمانی، بخشهای تخصصی، امکانات و مسیرهای ارتباط با بیمارستان آشنا شوید.'],
|
||||||
|
'/page/about': ['درباره بیمارستان', 'معرفی بیمارستان مهر ایرانیان پرند، اهداف، امکانات و آخرین وضعیت پیشرفت پروژه بیمارستان در شهر پرند.'],
|
||||||
|
'/page/contact-us': ['تماس با ما', 'آدرس بیمارستان مهر پرند در فاز ۵، بلوار شهید قاسم سلیمانی؛ شماره تماس ۰۲۱-۵۳۴۵۷۰۰۰، ایمیل و موقعیت بیمارستان روی نقشه.'],
|
||||||
|
'/page/Directors': ['تیم پروژه بیمارستان', 'آشنایی با اعضای تیم و مدیران پروژه بیمارستان مهر ایرانیان پرند.'],
|
||||||
|
'/page/docs': ['اسناد رسمی شرکت', 'دسترسی به اساسنامه و اسناد رسمی شرکت پزشکی مهر ایرانیان پرند.'],
|
||||||
|
'/page/cooperationsales': ['همکاری در فروش', 'اطلاعات و شرایط همکاری در فروش با شرکت پزشکی مهر ایرانیان پرند.'],
|
||||||
|
'/Gallery': ['گالری تصاویر بیمارستان', 'تصاویر ساختمان، فضاهای داخلی و روند پیشرفت پروژه بیمارستان مهر پرند.'],
|
||||||
|
'/News': ['اخبار و اطلاعیهها', 'اخبار، اطلاعیهها و فایلهای معرفی بیمارستان مهر ایرانیان پرند.'],
|
||||||
|
'/questions': ['سوالات متداول', 'پاسخ به سوالات متداول درباره بیمارستان مهر پرند و امکانات باشگاه سهامداران.'],
|
||||||
|
'/recruitment': ['فرصتهای شغلی و استخدام', 'مشاهده فرصتهای شغلی و گروههای استخدامی بیمارستان مهر ایرانیان پرند و ارسال درخواست همکاری.'],
|
||||||
|
'/medical-equipment': ['واحد تجهیزات پزشکی', 'آشنایی با واحد تجهیزات پزشکی بیمارستان مهر پرند و راههای ارتباط با این واحد.'],
|
||||||
|
'/components/service': ['کلینیکها و بخشها', 'معرفی کلینیکها و بخشهای تخصصی بیمارستان مهر پرند و امکانات هر بخش.'],
|
||||||
|
'/stock-unit': ['واحد امور سهام', 'اطلاعات واحد امور سهام بیمارستان مهر پرند و دسترسی به خدمات و راههای ارتباط با این واحد.']
|
||||||
|
}
|
||||||
|
|
||||||
|
const UTILITY_TITLES = {
|
||||||
|
'/CooperationRequest': 'درخواست همکاری',
|
||||||
|
'/recruitment/inquiry': 'استعلام وضعیت درخواست استخدام',
|
||||||
|
'/stock-unit/stock-check': 'پیگیری درخواست سهام',
|
||||||
|
'/stock-unit/stock-sales': 'درخواست خرید سهام',
|
||||||
|
'/stock-unit/stock-transfer': 'درخواست انتقال سهام',
|
||||||
|
'/stock-price': 'قیمت سهام بیمارستان مهر پرند',
|
||||||
|
'/page/stock-price': 'نمودار قیمت سهام',
|
||||||
|
'/page/sales': 'ارتباط با واحد فروش',
|
||||||
|
'/smartadvice': 'مشاوره سرمایهگذاری'
|
||||||
|
}
|
||||||
|
|
||||||
|
function canonicalUrl(path = '/') {
|
||||||
|
const clean = String(path).split(/[?#]/)[0]
|
||||||
|
if (!clean.startsWith('/') || clean.startsWith('//') || clean.includes('\\')) return `${SITE_URL}/`
|
||||||
|
return SITE_URL + (clean.replace(/\/+$/, '') || '/')
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSeo(path = '/', overrides = {}) {
|
||||||
|
const canonical = canonicalUrl(path)
|
||||||
|
const pathname = canonical.slice(SITE_URL.length)
|
||||||
|
const page = PUBLIC_PAGES[pathname]
|
||||||
|
const dynamicPublic = /^\/page\/news\/[^/]+$/.test(pathname) || /^\/recruitment\/item\/[^/]+$/.test(pathname)
|
||||||
|
return {
|
||||||
|
title: page ? page[0] : UTILITY_TITLES[pathname] || (pathname.startsWith('/recruitment/item/request/') ? 'ثبت درخواست استخدام' : SITE_NAME),
|
||||||
|
description: page ? page[1] : DEFAULT_DESCRIPTION,
|
||||||
|
image: DEFAULT_IMAGE,
|
||||||
|
type: 'website',
|
||||||
|
noindex: !page && !dynamicPublic,
|
||||||
|
...overrides,
|
||||||
|
canonical
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function newsSeo(post, slug) {
|
||||||
|
const text = String(post.text || '')
|
||||||
|
.replace(/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi, '')
|
||||||
|
.replace(/<[^>]*>/g, ' ')
|
||||||
|
.replace(/ | /g, ' ')
|
||||||
|
.replace(/&/g, '&')
|
||||||
|
.replace(/\s+/g, ' ').trim()
|
||||||
|
const description = text.slice(0, 160) || post.title
|
||||||
|
const image = post.cover ? `https://mehrara-api.iran.liara.run/panel-public/uploads/${post.cover}` : DEFAULT_IMAGE
|
||||||
|
const canonical = canonicalUrl(`/page/news/${encodeURIComponent(slug)}`)
|
||||||
|
return {
|
||||||
|
title: post.title,
|
||||||
|
description,
|
||||||
|
image,
|
||||||
|
type: 'article',
|
||||||
|
structuredData: {
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'NewsArticle',
|
||||||
|
headline: post.title,
|
||||||
|
description,
|
||||||
|
image: [image],
|
||||||
|
mainEntityOfPage: canonical,
|
||||||
|
publisher: { '@id': `${SITE_URL}/#hospital` }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const hospitalSchema = {
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@type': 'Hospital',
|
||||||
|
'@id': `${SITE_URL}/#hospital`,
|
||||||
|
name: SITE_NAME,
|
||||||
|
alternateName: 'بیمارستان مهر ایرانیان پرند',
|
||||||
|
url: `${SITE_URL}/`,
|
||||||
|
logo: DEFAULT_IMAGE,
|
||||||
|
telephone: '+98-21-53457000',
|
||||||
|
email: 'contact-us@miphospital.ir',
|
||||||
|
address: {
|
||||||
|
'@type': 'PostalAddress',
|
||||||
|
addressCountry: 'IR',
|
||||||
|
addressRegion: 'تهران',
|
||||||
|
addressLocality: 'پرند',
|
||||||
|
streetAddress: 'فاز ۵، بلوار شهید قاسم سلیمانی، نبش بلوار رسول اکرم (ص)'
|
||||||
|
},
|
||||||
|
sameAs: ['https://www.instagram.com/miphospital/']
|
||||||
|
}
|
||||||
|
|
||||||
|
function serializeJsonLd(value) {
|
||||||
|
return JSON.stringify(value).replace(/</g, '\\u003c')
|
||||||
|
}
|
||||||
|
|
||||||
|
function sitemapLinks(news = []) {
|
||||||
|
const articles = news
|
||||||
|
.filter(post => post && /^\d+$/.test(String(post.id)))
|
||||||
|
.map(post => `/page/news/${post.id}`)
|
||||||
|
return [...new Set([...Object.keys(PUBLIC_PAGES), ...articles])]
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { SITE_URL, SITE_NAME, canonicalUrl, getSeo, newsSeo, hospitalSchema, serializeJsonLd, sitemapLinks }
|
||||||
+3
-2
@@ -4,13 +4,14 @@ module.exports = {
|
|||||||
experimental: {
|
experimental: {
|
||||||
outputStandalone: true
|
outputStandalone: true
|
||||||
},
|
},
|
||||||
siteUrl: 'https://miphospital.ir',
|
|
||||||
generateRobotsTxt: true, // (optional)
|
|
||||||
...withImages(),
|
...withImages(),
|
||||||
// future: {
|
// future: {
|
||||||
// webpack5: true
|
// webpack5: true
|
||||||
// },
|
// },
|
||||||
images: {
|
images: {
|
||||||
disableStaticImages: true
|
disableStaticImages: true
|
||||||
|
},
|
||||||
|
async rewrites() {
|
||||||
|
return [{ source: '/sitemap.xml', destination: '/api/my-sitemap' }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"test": "node --test tests/*.test.cjs",
|
||||||
"dev": "next dev -p 2000",
|
"dev": "next dev -p 2000",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start -p 2000"
|
"start": "next start -p 2000"
|
||||||
|
|||||||
+4
-4
@@ -60,7 +60,7 @@ const Gallery = ({ images }) => {
|
|||||||
}, [selectedImage, images.length])
|
}, [selectedImage, images.length])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AppContainer title='گالری بیمارستان مهر ایرانیان پرند'>
|
<AppContainer title='گالری بیمارستان مهر پرند'>
|
||||||
<style jsx>{`
|
<style jsx>{`
|
||||||
.gallery-page {
|
.gallery-page {
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
@@ -258,7 +258,7 @@ const Gallery = ({ images }) => {
|
|||||||
loader={galleryBannerLoader}
|
loader={galleryBannerLoader}
|
||||||
src='gallery-banner.jpg'
|
src='gallery-banner.jpg'
|
||||||
className='responsive-img shadow-5'
|
className='responsive-img shadow-5'
|
||||||
alt='گالری بیمارستان مهر ایرانیان پرند'
|
alt='گالری بیمارستان مهر پرند'
|
||||||
width={3000}
|
width={3000}
|
||||||
height={1300}
|
height={1300}
|
||||||
priority
|
priority
|
||||||
@@ -268,7 +268,7 @@ const Gallery = ({ images }) => {
|
|||||||
<main className='gallery-page'>
|
<main className='gallery-page'>
|
||||||
<header className='gallery-header'>
|
<header className='gallery-header'>
|
||||||
<h2>گالری تصاویر</h2>
|
<h2>گالری تصاویر</h2>
|
||||||
<p>تصاویر بیمارستان مهر ایرانیان پرند</p>
|
<p>تصاویر بیمارستان مهر پرند</p>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section className='gallery-grid' aria-label='تصاویر گالری بیمارستان'>
|
<section className='gallery-grid' aria-label='تصاویر گالری بیمارستان'>
|
||||||
@@ -345,7 +345,7 @@ export async function getStaticProps() {
|
|||||||
const images = fileNames.map((fileName, index) => ({
|
const images = fileNames.map((fileName, index) => ({
|
||||||
id: fileName,
|
id: fileName,
|
||||||
image: `/resource/images/gallery/${encodeURIComponent(fileName)}`,
|
image: `/resource/images/gallery/${encodeURIComponent(fileName)}`,
|
||||||
title: `تصویر ${index + 1} از بیمارستان مهر ایرانیان پرند`
|
title: `تصویر ${index + 1} از بیمارستان مهر پرند`
|
||||||
}))
|
}))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
+42
-88
@@ -1,105 +1,59 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
|
||||||
MDBCard,
|
|
||||||
MDBCardImage,
|
|
||||||
MDBCardBody,
|
|
||||||
MDBCardTitle,
|
|
||||||
MDBCardText,
|
|
||||||
MDBRow,
|
|
||||||
MDBCol,
|
|
||||||
MDBContainer,
|
|
||||||
MDBCardHeader,
|
|
||||||
MDBBtn,
|
|
||||||
MDBIcon,
|
|
||||||
MDBInputGroupText,
|
|
||||||
MDBTypography
|
|
||||||
} from 'mdb-react-ui-kit'
|
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import AppContainer from './appContainer'
|
|
||||||
import { useRouter } from 'next/router'
|
import { useRouter } from 'next/router'
|
||||||
|
import AppContainer from './appContainer'
|
||||||
import { AppUrl } from '../lib/api'
|
import { AppUrl } from '../lib/api'
|
||||||
import { DownloadIcon } from '@chakra-ui/icons'
|
import { newsSeo } from '../lib/seo'
|
||||||
|
|
||||||
const News = ({ data, children }) => {
|
export default function News({ data = [], unavailable = false, children }) {
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const query = router.query.list
|
const isHome = router.pathname === '/'
|
||||||
|
const posts = (Array.isArray(data) ? data : []).filter(post => post && post.title && /^\d+$/.test(String(post.id)))
|
||||||
|
if (isHome && posts.length === 0) return null
|
||||||
|
|
||||||
const dataPage = (
|
const content = (
|
||||||
<div className='lg:mx-20 sm:mx-5'>
|
<section className='lg:mx-20 sm:mx-5 my-5 RTL' aria-labelledby='news-title'>
|
||||||
<h5 style={{ marginTop: '2rem' }} className={'right-align font-weight-bold'}>
|
{isHome ? <h2 id='news-title'>اخبار و اطلاعیهها</h2> : <h1 id='news-title'>اخبار و اطلاعیههای بیمارستان مهر پرند</h1>}
|
||||||
اطلاعیه ها{' '}
|
|
||||||
</h5>
|
|
||||||
<hr />
|
<hr />
|
||||||
<div>
|
{unavailable && <p role='status'>دریافت اخبار موقتاً امکانپذیر نیست. لطفاً کمی بعد دوباره مراجعه کنید.</p>}
|
||||||
<MDBTypography
|
<div className='row row-cols-1 row-cols-md-3 g-4'>
|
||||||
style={{ direction: 'rtl', borderRadius: '6px solid', borderRight: '6px solid #1266f1', borderLeft: 'none' }}
|
{posts.map(post => (
|
||||||
note
|
<article className='col' key={post.id}>
|
||||||
noteColor='primary'
|
<div className='card h-100 p-4'>
|
||||||
>
|
<h2 className='h5'>
|
||||||
<DownloadIcon className={'ml-2'} />
|
<Link href={`/page/news/${post.id}`}><a>{post.title}</a></Link>
|
||||||
<a
|
</h2>
|
||||||
title={'دانلود دفترچه معرفی و فروش سهام عمومی بیمارستان تخصصی مهر ایرانیان پرند'}
|
<p>{newsSeo(post, post.id).description}</p>
|
||||||
download
|
<Link href={`/page/news/${post.id}`}><a>مشاهده خبر</a></Link>
|
||||||
href={'./take-stock.pdf'}
|
|
||||||
>
|
|
||||||
{' '}
|
|
||||||
دانلود دفترچه معرفی و فروش سهام عمومی بیمارستان تخصصی مهر پرند
|
|
||||||
</a>
|
|
||||||
</MDBTypography>
|
|
||||||
<MDBTypography
|
|
||||||
style={{ direction: 'rtl', borderRadius: '6px solid', borderRight: '6px solid #1266f1', borderLeft: 'none' }}
|
|
||||||
note
|
|
||||||
noteColor='primary'
|
|
||||||
>
|
|
||||||
<DownloadIcon className={'ml-2'} />
|
|
||||||
<a
|
|
||||||
title={'دانلود طرح توجیهی بیمارستان تخصصی مهر ایرانیان پرند'}
|
|
||||||
download
|
|
||||||
href={'./Explanatory_plan_of_Mehr_ranian_Parand_Hospital.pdf'}
|
|
||||||
>
|
|
||||||
{' '}
|
|
||||||
دانلود طرح توجیهی بیمارستان تخصصی مهر ایرانیان پرند
|
|
||||||
</a>
|
|
||||||
</MDBTypography>
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
</article>
|
||||||
{/* <MDBRow dir={'rtl'} className='row-cols-1 row-cols-md-3 g-4'>
|
|
||||||
{data && data.map(({ id, slug, title }) => (
|
|
||||||
<MDBCol key={id}>
|
|
||||||
<Link href={`page/news/${id}`} >
|
|
||||||
<MDBCard className='mb-3 h-3/12 new-card'>
|
|
||||||
<MDBCardHeader title={title} className={'right-align bk-med RTL font-weight-bold border-bottom-1 border-white '}>{title} </MDBCardHeader>
|
|
||||||
<MDBCardBody>
|
|
||||||
<MDBCardText className={'right-align RTL text-summery'}>
|
|
||||||
{slug}
|
|
||||||
</MDBCardText>
|
|
||||||
<div className={'flex justify-content-end'}>
|
|
||||||
<MDBBtn rounded className=' RTL text-primary-teal bg-white'>
|
|
||||||
مشاهده
|
|
||||||
</MDBBtn>
|
|
||||||
</div>
|
|
||||||
</MDBCardBody>
|
|
||||||
</MDBCard>
|
|
||||||
</Link>
|
|
||||||
</MDBCol>
|
|
||||||
))}
|
))}
|
||||||
</MDBRow> */}
|
|
||||||
{children}
|
|
||||||
</div>
|
</div>
|
||||||
|
{!isHome && (
|
||||||
|
<div className='mt-4'>
|
||||||
|
<h2 className='h5'>فایلهای معرفی بیمارستان</h2>
|
||||||
|
<p><a download href='/take-stock.pdf'>دانلود دفترچه معرفی و فروش سهام عمومی بیمارستان مهر پرند</a></p>
|
||||||
|
<p><a download href='/Explanatory_plan_of_Mehr_ranian_Parand_Hospital.pdf'>دانلود طرح توجیهی بیمارستان مهر پرند</a></p>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{children}
|
||||||
|
</section>
|
||||||
)
|
)
|
||||||
return <div>{/* {query ? <AppContainer children={dataPage} title={'اطلاعیه ها '} /> : dataPage} */}</div>
|
|
||||||
|
return isHome ? content : <AppContainer>{content}</AppContainer>
|
||||||
}
|
}
|
||||||
|
|
||||||
export default News
|
export async function getServerSideProps({ res }) {
|
||||||
|
try {
|
||||||
export const getServerSideProps = async context => {
|
const { data } = await axios.get(AppUrl('news'), { timeout: 10000 })
|
||||||
// const allPostsData = await axios.get(AppUrl('news'))
|
const posts = Array.isArray(data) ? data : data && data.data
|
||||||
// const data = await allPostsData.data
|
if (!Array.isArray(posts)) throw new Error('Unexpected news response')
|
||||||
return {
|
return { props: { data: posts } }
|
||||||
props: {
|
} catch (error) {
|
||||||
data: null,
|
console.warn('News list: API unavailable:', error.message)
|
||||||
fallback: false
|
res.statusCode = 503
|
||||||
} // will be passed to the page component as props
|
res.setHeader('Retry-After', '60')
|
||||||
|
return { props: { data: [], unavailable: true } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-5
@@ -7,7 +7,7 @@ import "../styles/simple-grid.css"
|
|||||||
import 'nprogress/nprogress.css';
|
import 'nprogress/nprogress.css';
|
||||||
import "react-lightbox-pack/dist/index.css";
|
import "react-lightbox-pack/dist/index.css";
|
||||||
import Router from "next/router";
|
import Router from "next/router";
|
||||||
import React, {useState} from "react";
|
import React, {useEffect, useState} from "react";
|
||||||
import Loader from "./components/Loader";
|
import Loader from "./components/Loader";
|
||||||
import NProgress from 'nprogress';
|
import NProgress from 'nprogress';
|
||||||
import {ChakraProvider} from "@chakra-ui/react";
|
import {ChakraProvider} from "@chakra-ui/react";
|
||||||
@@ -15,6 +15,7 @@ import { extendTheme } from '@chakra-ui/react'
|
|||||||
import { StepsStyleConfig as Steps } from 'chakra-ui-steps';
|
import { StepsStyleConfig as Steps } from 'chakra-ui-steps';
|
||||||
import {Provider} from "react-redux";
|
import {Provider} from "react-redux";
|
||||||
import {CoreStore} from "../src/redux/store/store";
|
import {CoreStore} from "../src/redux/store/store";
|
||||||
|
import Seo from '../src/components/Seo';
|
||||||
|
|
||||||
const theme = extendTheme({
|
const theme = extendTheme({
|
||||||
components: {
|
components: {
|
||||||
@@ -25,16 +26,27 @@ const theme = extendTheme({
|
|||||||
export default function App({ Component, pageProps }) {
|
export default function App({ Component, pageProps }) {
|
||||||
|
|
||||||
const [Loading,setLoading] = useState(false);
|
const [Loading,setLoading] = useState(false);
|
||||||
Router.events.on('routeChangeStart',(url) => {
|
useEffect(() => {
|
||||||
|
const start = () => {
|
||||||
NProgress.start()
|
NProgress.start()
|
||||||
setLoading(true)
|
setLoading(true)
|
||||||
})
|
}
|
||||||
Router.events.on('routeChangeComplete',(url) => {
|
const complete = () => {
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
setLoading(false)
|
setLoading(false)
|
||||||
})
|
}
|
||||||
|
Router.events.on('routeChangeStart', start)
|
||||||
|
Router.events.on('routeChangeComplete', complete)
|
||||||
|
Router.events.on('routeChangeError', complete)
|
||||||
|
return () => {
|
||||||
|
Router.events.off('routeChangeStart', start)
|
||||||
|
Router.events.off('routeChangeComplete', complete)
|
||||||
|
Router.events.off('routeChangeError', complete)
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
return (
|
return (
|
||||||
<Provider store={CoreStore}>
|
<Provider store={CoreStore}>
|
||||||
|
<Seo metadata={pageProps.seo || (pageProps.statusCode >= 400 ? { noindex: true } : {})} />
|
||||||
{Loading && <Loader />}
|
{Loading && <Loader />}
|
||||||
<ChakraProvider resetCSS={false} theme={theme}>
|
<ChakraProvider resetCSS={false} theme={theme}>
|
||||||
{/* <link href="https://use.fontawesome.com/releases/v5.15.1/css/all.css" rel="stylesheet" /> */}
|
{/* <link href="https://use.fontawesome.com/releases/v5.15.1/css/all.css" rel="stylesheet" /> */}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import Document, { Html, Head, Main, NextScript } from 'next/document'
|
||||||
|
|
||||||
|
export default class MyDocument extends Document {
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<Html lang='fa' dir='rtl'>
|
||||||
|
<Head />
|
||||||
|
<body>
|
||||||
|
<Main />
|
||||||
|
<NextScript />
|
||||||
|
</body>
|
||||||
|
</Html>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
+24
-23
@@ -1,25 +1,26 @@
|
|||||||
const { SitemapStream, streamToPromise } = require("sitemap");
|
import axios from 'axios'
|
||||||
const { Readable } = require("stream");
|
import { SitemapStream, streamToPromise } from 'sitemap'
|
||||||
|
import { Readable } from 'stream'
|
||||||
|
import { AppUrl } from '../../lib/api'
|
||||||
|
import { SITE_URL, sitemapLinks } from '../../lib/seo'
|
||||||
|
|
||||||
export default async (req, res) => {
|
export default async function sitemap(req, res) {
|
||||||
// An array with your links
|
let news = []
|
||||||
const links = [
|
let newsAvailable = false
|
||||||
{ url: "/page/news/36/", priority: 0.3 },
|
try {
|
||||||
{ url: "/page/about", priority: 0.3 },
|
const { data } = await axios.get(AppUrl('news'), { timeout: 5000 })
|
||||||
{ url: "/recruitment", priority: 0.3 },
|
const posts = Array.isArray(data) ? data : data && data.data
|
||||||
{ url: "/contact-us", priority: 0.3 }
|
if (!Array.isArray(posts)) throw new Error('Unexpected news response')
|
||||||
];
|
news = posts
|
||||||
|
newsAvailable = true
|
||||||
|
} catch (error) {
|
||||||
|
// Keep core pages discoverable during a news API outage; retry soon.
|
||||||
|
console.warn('Sitemap: news API unavailable:', error.message)
|
||||||
|
}
|
||||||
|
|
||||||
// Create a stream to write to
|
const stream = new SitemapStream({ hostname: SITE_URL })
|
||||||
const stream = new SitemapStream({ hostname: `https://${req.headers.host}` });
|
const xml = await streamToPromise(Readable.from(sitemapLinks(news).map(url => ({ url }))).pipe(stream))
|
||||||
|
res.setHeader('Content-Type', 'application/xml; charset=utf-8')
|
||||||
res.writeHead(200, {
|
res.setHeader('Cache-Control', newsAvailable ? 'public, s-maxage=3600, stale-while-revalidate=86400' : 'public, s-maxage=60')
|
||||||
"Content-Type": "application/xml",
|
res.status(200).send(xml.toString())
|
||||||
});
|
}
|
||||||
|
|
||||||
const xmlString = await streamToPromise(
|
|
||||||
Readable.from(links).pipe(stream)
|
|
||||||
).then((data) => data.toString());
|
|
||||||
|
|
||||||
res.end(xmlString);
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -6,18 +6,11 @@ import dynamic from 'next/dynamic'
|
|||||||
import { Router } from 'next/router'
|
import { Router } from 'next/router'
|
||||||
|
|
||||||
const Chat = dynamic(() => import('./pack'), { ssr: false })
|
const Chat = dynamic(() => import('./pack'), { ssr: false })
|
||||||
const AppContainer = ({ children, title }) => {
|
const AppContainer = ({ children }) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Head>
|
<Head>
|
||||||
<title>{title ? title : 'بیمارستان مهر ایرانیان پرند '}</title>
|
|
||||||
<meta name='description' content='بیمارستان 96 تخت خوابی مهر ایرانیان پرند واقع در شهر پرند ' />
|
|
||||||
<meta
|
|
||||||
name='keywords'
|
|
||||||
content=' درمانگاه مهرپرند,بیمارستان مهرایرانیان پرند ,بیمارستان, بیمارستان مهر, سهام,پرند'
|
|
||||||
/>
|
|
||||||
<meta name="google-site-verification" content="hygRCp6fRa9qi8RXCaAosXK4mBcnCJVRH1ayHtAQy8o" />
|
<meta name="google-site-verification" content="hygRCp6fRa9qi8RXCaAosXK4mBcnCJVRH1ayHtAQy8o" />
|
||||||
<link rel='icon' href='../public/resource/logo/favlogo.png' />
|
|
||||||
<script
|
<script
|
||||||
type='text/javascript'
|
type='text/javascript'
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
@@ -33,7 +26,7 @@ const AppContainer = ({ children, title }) => {
|
|||||||
</Head>
|
</Head>
|
||||||
<Chat />
|
<Chat />
|
||||||
<Header />
|
<Header />
|
||||||
{children}
|
<main id='main-content'>{children}</main>
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,95 +1,291 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { MDBFooter, MDBContainer, MDBRow, MDBCol, MDBIcon } from 'mdb-react-ui-kit'
|
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
|
import { FiInstagram, FiMail, FiMapPin, FiPhone } from 'react-icons/fi'
|
||||||
|
|
||||||
const Footer = () => {
|
const usefulLinks = [
|
||||||
|
{ href: '/', label: 'صفحه اصلی' },
|
||||||
|
{ href: '/landing', label: 'معرفی بیمارستان' },
|
||||||
|
{ href: '/components/service', label: 'بخشهای درمانی' },
|
||||||
|
{ href: '/Gallery', label: 'گالری تصاویر' },
|
||||||
|
{ href: '/recruitment', label: 'استخدام و همکاری' },
|
||||||
|
{ href: '/page/about', label: 'درباره ما' },
|
||||||
|
{ href: '/page/contact-us', label: 'تماس با ما' },
|
||||||
|
]
|
||||||
|
|
||||||
|
export default function Footer() {
|
||||||
return (
|
return (
|
||||||
<>
|
<footer className='site-footer' dir='rtl'>
|
||||||
<MDBFooter className='text-center text-lg-left hover_color'>
|
<div className='footer-container'>
|
||||||
<div className='lg:mx-20 sm:mx-5 p-4'>
|
<div className='footer-grid'>
|
||||||
<MDBRow>
|
<div className='footer-about'>
|
||||||
<MDBCol lg='6' md='12' className='mb-4 mb-md-0'>
|
<Link href='/'>
|
||||||
<h5 className='text-uppercase text-white'>
|
<a className='footer-brand' aria-label='بیمارستان مهر پرند، صفحه اصلی'>
|
||||||
شرکت پزشکی مهر ایرانیان پرند
|
<img src='/resource/logo/logo.png' alt='' width='62' height='59' />
|
||||||
<hr />
|
<span>
|
||||||
</h5>
|
<strong>بیمارستان مهر پرند</strong>
|
||||||
|
<small>همراه مطمئن شما، برای زندگی سالمتر</small>
|
||||||
<p style={{ direction: 'rtl' }} className={'bk yekan-bakh-req text-white center-align'}>
|
</span>
|
||||||
بیمارستان تخصصی مهرایرانیان واقع در اتوبان چهاربانده اصلی داخلی شهر پرند در بهترین موقعیت مکانی و در
|
</a>
|
||||||
دل مسکن مهر، با هدف تبدیل شدن به یکی از قطب های درمانی منطقه در حال احداث می باشد. این بیمارستان که تنها
|
</Link>
|
||||||
بیمارستان تخصصی در کنار بزرگترین فرودگاه کشور است
|
<p>
|
||||||
|
بیمارستان مهر پرند با هدف ارائه خدمات درمانی باکیفیت و دسترسی آسانتر
|
||||||
|
شهروندان پرند و منطقه به مراقبتهای پزشکی در حال آمادهسازی است.
|
||||||
</p>
|
</p>
|
||||||
</MDBCol>
|
<a
|
||||||
|
className='instagram-link'
|
||||||
<MDBCol lg='3' md='6' className='mb-4 mb-md-0'>
|
href='https://www.instagram.com/miphospital/'
|
||||||
<h5 className='text-uppercase text-white'>
|
target='_blank'
|
||||||
لینک های مفید
|
rel='noopener noreferrer'
|
||||||
<hr />
|
aria-label='اینستاگرام بیمارستان مهر پرند'
|
||||||
</h5>
|
>
|
||||||
|
<FiInstagram aria-hidden='true' />
|
||||||
<ul style={{ lineHeight: 2 }} className='list-unstyled mb-0 bk '>
|
|
||||||
<li>
|
|
||||||
<a href='https://club.mehriranianco.ir/' target='_blank' style={{ color: 'white' }}> باشگاه سهامداران </a>
|
|
||||||
</li>
|
|
||||||
{/* <li>
|
|
||||||
<Link href={{ pathname: '/News', query: { list: 'list' } }}>
|
|
||||||
<a href='#!' className='text-white'>
|
|
||||||
اطلاعیه ها
|
|
||||||
</a>
|
</a>
|
||||||
</Link>
|
|
||||||
</li> */}
|
|
||||||
<li>
|
|
||||||
<Link href='/page/about' className='text-white'>
|
|
||||||
<a style={{ color: 'white' }}> درباره </a>
|
|
||||||
</Link>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<Link href='/page/contact-us' className='text-white'>
|
|
||||||
<a style={{ color: 'white' }}> تماس با ما</a>
|
|
||||||
</Link>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</MDBCol>
|
|
||||||
|
|
||||||
<MDBCol lg='3' md='6' className='mb-4 mb-md-0'>
|
|
||||||
<h5 className='text-uppercase mb-0 text-white'>
|
|
||||||
تماس با ما
|
|
||||||
<hr />
|
|
||||||
</h5>
|
|
||||||
|
|
||||||
<ul style={{ listStyle: 'none', lineHeight: 2 }} className='bk right center-align'>
|
|
||||||
{/*<li>*/}
|
|
||||||
{/* <a className='text-white dana' href="tel:02153457000">021 5345 7000 </a>*/}
|
|
||||||
{/*</li>*/}
|
|
||||||
<li>
|
|
||||||
<a href='tel:02153457000' className='text-white dana'>
|
|
||||||
021-53457000
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href='#!' className='text-white'>
|
|
||||||
contact-us@miphospital.ir
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li className={'d-flex'} alignment='end'>
|
|
||||||
<a href='#!' className='text-white center-align right'>
|
|
||||||
تهران ، شهر جدید پرند، بلوار شهیدقاسم سلیمانی، انتهای فاز 5 ،نبش بلوار رسول اکرم (ع)
|
|
||||||
</a>
|
|
||||||
<MDBIcon className={'right right-align p-2 text-white'} fas icon='map-marker-alt' />
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</MDBCol>
|
|
||||||
</MDBRow>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='text-center p-3' style={{ backgroundColor: 'rgba(0, 0, 0, 0.2)' }}>
|
<nav className='footer-links' aria-label='لینکهای فوتر'>
|
||||||
© {new Date().getFullYear()} <a className='text-dark'>contact-us@miphospital.ir</a>
|
<h2>دسترسی سریع</h2>
|
||||||
|
<ul>
|
||||||
|
{usefulLinks.map(({ href, label }) => (
|
||||||
|
<li key={href}>
|
||||||
|
<Link href={href}><a>{label}</a></Link>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
<li>
|
||||||
|
<a href='https://club.mehriranianco.ir/' target='_blank' rel='noopener noreferrer'>
|
||||||
|
باشگاه سهامداران
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div className='footer-contact'>
|
||||||
|
<h2>ارتباط با ما</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span className='contact-icon'><FiPhone aria-hidden='true' /></span>
|
||||||
|
<a href='tel:02153457000' dir='ltr'>۰۲۱-۵۳۴۵۷۰۰۰</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span className='contact-icon'><FiMail aria-hidden='true' /></span>
|
||||||
|
<a href='mailto:contact-us@miphospital.ir' dir='ltr'>contact-us@miphospital.ir</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span className='contact-icon'><FiMapPin aria-hidden='true' /></span>
|
||||||
|
<span>تهران، شهر جدید پرند، بلوار شهید قاسم سلیمانی، انتهای فاز ۵، نبش بلوار رسول اکرم (ص)</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</MDBFooter>
|
</div>
|
||||||
</>
|
|
||||||
|
<div className='footer-bottom'>
|
||||||
|
<span>© {new Date().getFullYear()} بیمارستان مهر پرند. تمامی حقوق محفوظ است.</span>
|
||||||
|
<span>همراه سلامت شما</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style jsx>{`
|
||||||
|
.site-footer {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
border-top: 5px solid #59c7c5;
|
||||||
|
color: #d2e7e7;
|
||||||
|
background: #103f47;
|
||||||
|
font-family: dana-fanum, sans-serif;
|
||||||
|
}
|
||||||
|
.site-footer::before {
|
||||||
|
position: absolute;
|
||||||
|
top: -100px;
|
||||||
|
left: -90px;
|
||||||
|
width: 310px;
|
||||||
|
height: 310px;
|
||||||
|
border: 1px solid rgba(126, 219, 214, .12);
|
||||||
|
border-radius: 50%;
|
||||||
|
content: '';
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.footer-container {
|
||||||
|
position: relative;
|
||||||
|
width: calc(100% - 40px);
|
||||||
|
max-width: 1240px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.footer-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1.35fr .8fr 1fr;
|
||||||
|
gap: clamp(32px, 6vw, 95px);
|
||||||
|
padding: 58px 0 50px;
|
||||||
|
}
|
||||||
|
.footer-brand {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.footer-brand:hover {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.footer-brand img {
|
||||||
|
display: block;
|
||||||
|
width: 62px;
|
||||||
|
height: 59px;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
.footer-brand span {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 3px;
|
||||||
|
}
|
||||||
|
.footer-brand strong {
|
||||||
|
font-size: 19px;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
.footer-brand small {
|
||||||
|
color: #a9d2d0;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
.footer-about p {
|
||||||
|
max-width: 390px;
|
||||||
|
margin: 22px 0 20px;
|
||||||
|
color: #c4dbdb;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 2.1;
|
||||||
|
}
|
||||||
|
.instagram-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
border: 1px solid rgba(255, 255, 255, .25);
|
||||||
|
border-radius: 11px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
transition: background-color .2s ease, border-color .2s ease;
|
||||||
|
}
|
||||||
|
.instagram-link:hover {
|
||||||
|
border-color: #59c7c5;
|
||||||
|
color: #fff;
|
||||||
|
background: #168b89;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
position: relative;
|
||||||
|
margin: 8px 0 28px;
|
||||||
|
padding-bottom: 13px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
h2::after {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 36px;
|
||||||
|
height: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background: #59c7c5;
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.footer-links ul {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
|
column-gap: 18px;
|
||||||
|
row-gap: 13px;
|
||||||
|
}
|
||||||
|
.footer-links a,
|
||||||
|
.footer-contact a {
|
||||||
|
color: #d2e7e7;
|
||||||
|
font-size: 13px;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color .2s ease;
|
||||||
|
}
|
||||||
|
.footer-links a:hover,
|
||||||
|
.footer-contact a:hover {
|
||||||
|
color: #7fdfd8;
|
||||||
|
}
|
||||||
|
.footer-contact ul {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 17px;
|
||||||
|
}
|
||||||
|
.footer-contact li {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 12px;
|
||||||
|
color: #d2e7e7;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.9;
|
||||||
|
}
|
||||||
|
.footer-contact li > a {
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
.contact-icon {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex: 0 0 30px;
|
||||||
|
height: 30px;
|
||||||
|
border-radius: 9px;
|
||||||
|
color: #87dfd8;
|
||||||
|
background: rgba(112, 211, 206, .13);
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.footer-bottom {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 16px;
|
||||||
|
min-height: 68px;
|
||||||
|
border-top: 1px solid rgba(255, 255, 255, .13);
|
||||||
|
color: #a9c7c8;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.site-footer a:focus-visible {
|
||||||
|
outline: 3px solid #7fdfd8;
|
||||||
|
outline-offset: 3px;
|
||||||
|
}
|
||||||
|
@media (max-width: 950px) {
|
||||||
|
.footer-grid {
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 40px;
|
||||||
|
}
|
||||||
|
.footer-about {
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.footer-container {
|
||||||
|
width: calc(100% - 36px);
|
||||||
|
}
|
||||||
|
.footer-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 36px;
|
||||||
|
padding: 42px 0 38px;
|
||||||
|
}
|
||||||
|
.footer-about {
|
||||||
|
grid-column: auto;
|
||||||
|
}
|
||||||
|
.footer-about p {
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
|
.footer-bottom {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 3px;
|
||||||
|
padding: 17px 0;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
</footer>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Footer
|
|
||||||
|
|||||||
+374
-246
@@ -1,274 +1,402 @@
|
|||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import {
|
|
||||||
MDBContainer,
|
|
||||||
MDBNavbar,
|
|
||||||
MDBNavbarBrand,
|
|
||||||
MDBNavbarToggler,
|
|
||||||
MDBNavbarNav,
|
|
||||||
MDBNavbarLink,
|
|
||||||
MDBCollapse,
|
|
||||||
MDBDropdownToggle,
|
|
||||||
MDBDropdownMenu,
|
|
||||||
MDBDropdownItem,
|
|
||||||
MDBDropdownLink,
|
|
||||||
MDBDropdown,
|
|
||||||
MDBCardImage,
|
|
||||||
} from 'mdb-react-ui-kit'
|
|
||||||
import { HamburgerIcon } from '@chakra-ui/icons'
|
|
||||||
import { useRouter } from 'next/router'
|
import { useRouter } from 'next/router'
|
||||||
|
import { FiChevronDown, FiInstagram, FiMapPin, FiMenu, FiPhone, FiX } from 'react-icons/fi'
|
||||||
|
|
||||||
import { FaWhatsapp } from 'react-icons/fa'
|
const mainLinks = [
|
||||||
import { FaInstagram } from 'react-icons/fa'
|
{ href: '/', label: 'صفحه اصلی' },
|
||||||
import { SiAparat } from 'react-icons/si'
|
{ href: '/landing', label: 'معرفی بیمارستان' },
|
||||||
|
{ href: '/components/service', label: 'بخشهای درمانی' },
|
||||||
|
{ href: '/Gallery', label: 'گالری' },
|
||||||
|
{ href: '/recruitment', label: 'استخدام و همکاری' },
|
||||||
|
]
|
||||||
|
|
||||||
export default function App() {
|
const moreLinks = [
|
||||||
const [showNavSecond, setShowNavSecond] = useState(false)
|
{ href: '/page/about', label: 'درباره ما' },
|
||||||
|
{ href: '/page/Directors', label: 'تیم پروژه' },
|
||||||
|
]
|
||||||
|
|
||||||
let router = useRouter()
|
export default function Header() {
|
||||||
|
const [menuOpen, setMenuOpen] = useState(false)
|
||||||
|
const { pathname } = useRouter()
|
||||||
|
const closeMenu = () => setMenuOpen(false)
|
||||||
|
const moreIsActive = moreLinks.some(({ href }) => pathname === href)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<header className='site-header' dir='rtl' onKeyDown={event => event.key === 'Escape' && closeMenu()}>
|
||||||
{/* <div style={{ backgroundColor: '#69c6c8' }}>*/}
|
<div className='topbar'>
|
||||||
{/* <div className={'flex h-5/12 justify-content-between'}>*/}
|
<div className='header-container topbar-inner'>
|
||||||
{/* <div className={'flex justify-content-center align-items-center'}>*/}
|
<div className='topbar-location'>
|
||||||
{/* <div className={'flex w-30 justify-content-center align-items-center'}>*/}
|
<FiMapPin aria-hidden='true' />
|
||||||
{/* <img style={{position: 'absolute'}} width={90} src={PhoneCall} />*/}
|
<span>تهران، شهر جدید پرند، بلوار شهید قاسم سلیمانی، انتهای فاز ۵</span>
|
||||||
{/* <Divider style={{transform: 'rotate(90deg)', marginLeft: 55}} width={10} />*/}
|
</div>
|
||||||
{/* </div>*/}
|
<div className='topbar-actions'>
|
||||||
{/* <div className={'flex mt-3 flex-column'}>*/}
|
<a href='tel:02153457000' className='phone-link'>
|
||||||
{/* <div style={{fontSize: 15}} className={'text-white'}>*/}
|
<FiPhone aria-hidden='true' />
|
||||||
{/* خرید سهام*/}
|
<span dir='ltr'>۰۲۱-۵۳۴۵۷۰۰۰</span>
|
||||||
{/* </div>*/}
|
</a>
|
||||||
{/* <div style={{fontSize: 15}} className={'flex align-items-center text-white'}>*/}
|
<span className='topbar-divider' aria-hidden='true' />
|
||||||
{/* <p style={{fontSize: 10}}>021 -</p>*/}
|
|
||||||
{/* <p>28426945</p>*/}
|
|
||||||
{/* </div>*/}
|
|
||||||
{/* </div>*/}
|
|
||||||
{/* </div>*/}
|
|
||||||
{/* <div className={''}>*/}
|
|
||||||
{/* جای خالی*/}
|
|
||||||
{/* </div>*/}
|
|
||||||
{/* </div>*/}
|
|
||||||
|
|
||||||
{/*</div> */}
|
|
||||||
{/* topheader */}
|
|
||||||
<div className='bg-[#57C5C6] headerTop'>
|
|
||||||
<div className='flex sm:flex-col md:flex-row sm:mt-5 lg:flex-row justify-content-between items-center h-14 container-fluid m-auto '>
|
|
||||||
<div className='flex sm:mt-2'>
|
|
||||||
<div className='w-10 h-10 md:w-12 md:h-12 flex items-center justify-center'>
|
|
||||||
<a
|
<a
|
||||||
target={'_blank'}
|
className='social-link'
|
||||||
href={'https://web.whatsapp.com/send?phone=98919419-+9420'}
|
href='https://www.instagram.com/miphospital/'
|
||||||
className='inline-flex rounded-full p-[0.4rem] text-[#57C5C6] bg-[#fff] hover:bg-[#014258] hover:text-[#fff] '
|
target='_blank'
|
||||||
|
rel='noopener noreferrer'
|
||||||
|
aria-label='اینستاگرام بیمارستان مهر پرند'
|
||||||
>
|
>
|
||||||
<FaWhatsapp />
|
<FiInstagram aria-hidden='true' />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div className=' w-10 h-10 md:w-12 md:h-12 flex items-center justify-center'>
|
|
||||||
<a
|
|
||||||
href={'https://www.instagram.com/miphospital/'}
|
|
||||||
target={'_blank'}
|
|
||||||
className='mx-5 inline-flex rounded-full p-[0.4rem] text-[#57C5C6] bg-[#fff] hover:bg-[#014258] hover:text-[#fff] '
|
|
||||||
>
|
|
||||||
<FaInstagram />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{/* <div className=' w-10 h-10 md:w-12 md:h-12 flex items-center justify-center'>
|
|
||||||
<a
|
|
||||||
href={'https://www.aparat.com/miphospital'}
|
|
||||||
target={'_blank'}
|
|
||||||
className='mx-5 inline-flex rounded-full p-[0.4rem] text-[#57C5C6] bg-[#fff] hover:bg-[#014258] hover:text-[#fff] '
|
|
||||||
>
|
|
||||||
<SiAparat />
|
|
||||||
</a>
|
|
||||||
</div> */}
|
|
||||||
<div className='flex items-center justify-center'>
|
|
||||||
<a
|
|
||||||
href={'tel:02153457000'}
|
|
||||||
className='rounded-full flex items-center p-[0.4rem] bg-[#39a2a5] text-[#fff] hover:bg-[#57c5c6] hover:text-[#fff] '
|
|
||||||
>
|
|
||||||
<span className={'text-sm'}> 021-53457000</span>
|
|
||||||
{/* <span className={'text-sm ml-2'}>:خرید سهام</span> */}
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='show-addr col-span-2 flex items-center flex-row-reverse mr-4 meheAddress'>
|
<div className='mainbar'>
|
||||||
<img src='/resource/headerTop/map.svg' className='tex-white w-[2rem] map' alt='address' />
|
<div className='header-container mainbar-inner'>
|
||||||
<span className=' text-[0.6rem] text-right md:text-xs xl:text-sm md:leading-5 font-medium text-white addresstopHeader'>
|
<Link href='/'>
|
||||||
تهران ، شهر جدید پرند، بلوار شهیدقاسم سلیمانی، انتهای فاز 5 ،نبش بلوار رسول اکرم
|
<a className='brand' onClick={closeMenu} aria-label='بیمارستان مهر پرند، صفحه اصلی'>
|
||||||
|
<img src='/resource/logo/logo-green.png' alt='' width='56' height='53' />
|
||||||
|
<span className='brand-copy'>
|
||||||
|
<strong>بیمارستان مهر پرند</strong>
|
||||||
|
<small>همراه سلامت شما</small>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</a>
|
||||||
</div>
|
</Link>
|
||||||
</div>
|
|
||||||
{/* end topheader */}
|
|
||||||
|
|
||||||
{/* navbar */}
|
<button
|
||||||
<MDBNavbar style={{ backgroundColor: '#39a2a5' }} expand='lg' light ba>
|
className='menu-toggle'
|
||||||
<style jsx>
|
type='button'
|
||||||
{`
|
aria-label={menuOpen ? 'بستن منو' : 'باز کردن منو'}
|
||||||
.responsive-menu-mobile {
|
aria-expanded={menuOpen}
|
||||||
outline: none;
|
aria-controls='site-navigation'
|
||||||
background-color: red !important;
|
onClick={() => setMenuOpen(open => !open)}
|
||||||
}
|
|
||||||
`}
|
|
||||||
</style>
|
|
||||||
<MDBContainer className={'dana'} fluid>
|
|
||||||
<MDBNavbarToggler
|
|
||||||
aria-expanded='false'
|
|
||||||
aria-label='Toggle navigation'
|
|
||||||
onClick={() => setShowNavSecond(!showNavSecond)}
|
|
||||||
>
|
>
|
||||||
<HamburgerIcon />
|
{menuOpen ? <FiX aria-hidden='true' /> : <FiMenu aria-hidden='true' />}
|
||||||
</MDBNavbarToggler>
|
</button>
|
||||||
<MDBCollapse navbar show={showNavSecond}>
|
|
||||||
<MDBNavbar>
|
|
||||||
<MDBDropdown group className=''>
|
|
||||||
<MDBDropdownToggle
|
|
||||||
className={'font-weight-bold '}
|
|
||||||
style={{ fontsize: '35px !important' }}
|
|
||||||
color='light'
|
|
||||||
>
|
|
||||||
بیشتر
|
|
||||||
</MDBDropdownToggle>
|
|
||||||
<MDBDropdownMenu>
|
|
||||||
<MDBDropdownItem>
|
|
||||||
<Link href={'/page/Directors'}>
|
|
||||||
<MDBDropdownLink style={{ cursor: 'pointer' }} className={'d-flex justify-content-end'}>
|
|
||||||
تیم پروژه{' '}
|
|
||||||
</MDBDropdownLink>
|
|
||||||
</Link>
|
|
||||||
</MDBDropdownItem>
|
|
||||||
<Link href={'/page/about'}>
|
|
||||||
<MDBDropdownLink style={{ cursor: 'pointer' }} className={'d-flex justify-content-end'}>
|
|
||||||
درباره ما
|
|
||||||
</MDBDropdownLink>
|
|
||||||
</Link>
|
|
||||||
{/* <MDBDropdownItem></MDBDropdownItem> */}
|
|
||||||
{/* <MDBDropdownItem>
|
|
||||||
<Link href={'/page/docs'}>
|
|
||||||
<MDBDropdownLink style={{ cursor: 'pointer' }} className={'d-flex justify-content-end'}>
|
|
||||||
اسناد رسمی شرکت{' '}
|
|
||||||
</MDBDropdownLink>
|
|
||||||
</Link>
|
|
||||||
</MDBDropdownItem> */}
|
|
||||||
<MDBDropdownItem>
|
|
||||||
<MDBDropdownLink
|
|
||||||
target={'__blanck'}
|
|
||||||
href={'https://www.instagram.com/miphospital'}
|
|
||||||
className={'d-flex justify-content-end'}
|
|
||||||
>
|
|
||||||
اینستاگرام
|
|
||||||
</MDBDropdownLink>
|
|
||||||
</MDBDropdownItem>
|
|
||||||
</MDBDropdownMenu>
|
|
||||||
</MDBDropdown>
|
|
||||||
</MDBNavbar>
|
|
||||||
<MDBNavbarNav className={'responsive-menu-mobile'}>
|
|
||||||
<MDBNavbarLink
|
|
||||||
className={
|
|
||||||
router.pathname === '/page/contact-us' ? 'active-item text-white' : '' + 'text-white nav_item '
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Link
|
|
||||||
prefetch={false}
|
|
||||||
className={'text-white nav_item d-flex flex-row-reverse '}
|
|
||||||
href='/page/contact-us'
|
|
||||||
>
|
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}> تماس با ما</span>
|
|
||||||
</div>
|
|
||||||
</Link>
|
|
||||||
</MDBNavbarLink>
|
|
||||||
|
|
||||||
<MDBNavbarLink
|
<nav id='site-navigation' className={`navigation ${menuOpen ? 'is-open' : ''}`} aria-label='منوی اصلی'>
|
||||||
className={router.pathname === '/Gallery' ? 'active-item text-white' : '' + 'text-white nav_item '}
|
<div className='nav-links'>
|
||||||
>
|
{mainLinks.map(({ href, label }) => (
|
||||||
<Link className={'text-white nav_item d-flex flex-row-reverse '} href='/Gallery'>
|
<Link href={href} key={href}>
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
<a className={pathname === href ? 'nav-link active' : 'nav-link'} aria-current={pathname === href ? 'page' : undefined} onClick={closeMenu}>
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>گالری</span>
|
{label}
|
||||||
</div>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</MDBNavbarLink>
|
))}
|
||||||
<MDBNavbarLink
|
<details className='more-menu'>
|
||||||
className={
|
<summary className={moreIsActive ? 'nav-link active' : 'nav-link'}>
|
||||||
router.pathname === '/components/service' ? 'active-item text-white' : '' + 'text-white nav_item '
|
بیشتر <FiChevronDown aria-hidden='true' />
|
||||||
}
|
</summary>
|
||||||
>
|
<div className='more-panel'>
|
||||||
<Link
|
{moreLinks.map(({ href, label }) => (
|
||||||
prefetch={false}
|
<Link href={href} key={href}>
|
||||||
className={'text-white nav_item d-flex flex-row-reverse '}
|
<a aria-current={pathname === href ? 'page' : undefined} onClick={closeMenu}>
|
||||||
href='/components/service'
|
{label}
|
||||||
>
|
</a>
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>بخش های درمانی</span>
|
|
||||||
</div>
|
|
||||||
</Link>
|
</Link>
|
||||||
</MDBNavbarLink>
|
))}
|
||||||
{/* <MDBNavbarLink
|
|
||||||
className={router.pathname === '/page/news/34' ? 'active-item text-white' : '' + 'text-white nav_item '}
|
|
||||||
>
|
|
||||||
<Link prefetch={false} className={'text-white nav_item d-flex flex-row-reverse '} href='/page/news/34'>
|
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}> شرایط انتقال سهام</span>
|
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</details>
|
||||||
</MDBNavbarLink> */}
|
|
||||||
{/* <MDBNavbarLink
|
|
||||||
className={
|
|
||||||
router.pathname === '/medical-equipment' ? 'active-item text-white' : '' + 'text-white nav_item '
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Link className={'text-white nav_item d-flex flex-row-reverse '} href='/medical-equipment'>
|
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>واحد تجهیزات پزشکی </span>
|
|
||||||
</div>
|
</div>
|
||||||
|
<Link href='/page/contact-us'>
|
||||||
|
<a className='contact-button' onClick={closeMenu}>تماس با ما</a>
|
||||||
</Link>
|
</Link>
|
||||||
</MDBNavbarLink> */}
|
</nav>
|
||||||
{/* <MDBNavbarLink
|
</div>
|
||||||
className={router.pathname === '/stock-unit' ? 'active-item text-white' : '' + 'text-white nav_item '}
|
|
||||||
>
|
|
||||||
<Link className={'text-white nav_item d-flex flex-row-reverse '} href='/stock-unit'>
|
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>امور سهام </span>
|
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
|
||||||
</MDBNavbarLink> */}
|
|
||||||
|
|
||||||
{/* <MDBNavbarLink
|
<style jsx>{`
|
||||||
className={router.pathname === '/page/news/52' ? 'active-item text-white' : '' + 'text-white nav_item '}
|
.site-header {
|
||||||
>
|
position: relative;
|
||||||
<Link prefetch={false} className={'text-white nav_item d-flex flex-row-reverse '} href='/stock-price'>
|
z-index: 30;
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
width: 100%;
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>قیمت سهام</span>
|
font-family: dana-fanum, sans-serif;
|
||||||
</div>
|
}
|
||||||
</Link>
|
.header-container {
|
||||||
</MDBNavbarLink> */}
|
width: calc(100% - 40px);
|
||||||
|
max-width: 1240px;
|
||||||
<MDBNavbarLink
|
margin: 0 auto;
|
||||||
className={router.pathname === '/' ? 'active-item text-white' : '' + 'text-white nav_item '}
|
}
|
||||||
>
|
.topbar {
|
||||||
<Link className={'text-white nav_item d-flex flex-row-reverse '} href='/'>
|
color: #e6f6f5;
|
||||||
<div className={'pointer d-flex justify-content-end'}>
|
background: #12464e;
|
||||||
<span style={{ cursor: 'pointer', fontSize: '15px' }}>صفحه اصلی</span>
|
}
|
||||||
</div>
|
.topbar-inner,
|
||||||
</Link>
|
.topbar-location,
|
||||||
</MDBNavbarLink>
|
.topbar-actions,
|
||||||
</MDBNavbarNav>
|
.phone-link {
|
||||||
</MDBCollapse>
|
display: flex;
|
||||||
<MDBNavbarBrand className={'text-white font-weight-bold'}>
|
align-items: center;
|
||||||
<Link className={'text-white nav_item d-flex flex-row-reverse '} href='/'>
|
}
|
||||||
<div className={'pointer'}>
|
.topbar-inner {
|
||||||
<span className={'dana'} style={{ cursor: 'pointer' }}>
|
min-height: 42px;
|
||||||
بیمارستان مهر ایرانیان
|
justify-content: space-between;
|
||||||
</span>
|
gap: 20px;
|
||||||
</div>
|
font-size: 12px;
|
||||||
</Link>
|
}
|
||||||
<MDBCardImage className={'responsive-img resLogo'} width={'50'} src={'/resource/logo/logo.png'} />
|
.topbar-location,
|
||||||
</MDBNavbarBrand>
|
.topbar-actions,
|
||||||
</MDBContainer>
|
.phone-link {
|
||||||
</MDBNavbar>
|
gap: 9px;
|
||||||
</>
|
}
|
||||||
|
.topbar-location {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
.topbar-location span {
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.topbar a {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.topbar a:hover {
|
||||||
|
color: #89e1da;
|
||||||
|
}
|
||||||
|
.topbar-actions {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.topbar-divider {
|
||||||
|
width: 1px;
|
||||||
|
height: 17px;
|
||||||
|
background: rgba(255, 255, 255, .25);
|
||||||
|
}
|
||||||
|
.social-link {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.mainbar {
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 7px 24px rgba(13, 71, 76, .08);
|
||||||
|
}
|
||||||
|
.mainbar-inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
min-height: 84px;
|
||||||
|
gap: 28px;
|
||||||
|
}
|
||||||
|
.brand {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
gap: 11px;
|
||||||
|
color: #164a50;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.brand:hover {
|
||||||
|
color: #164a50;
|
||||||
|
}
|
||||||
|
.brand img {
|
||||||
|
display: block;
|
||||||
|
width: 56px;
|
||||||
|
height: 53px;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
.brand-copy {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
line-height: 1.55;
|
||||||
|
}
|
||||||
|
.brand-copy strong {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
.brand-copy small {
|
||||||
|
color: #6c898d;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
.navigation,
|
||||||
|
.nav-links {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.navigation {
|
||||||
|
justify-content: space-between;
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
gap: 20px;
|
||||||
|
}
|
||||||
|
.nav-links {
|
||||||
|
gap: 2px;
|
||||||
|
}
|
||||||
|
.nav-link {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 5px;
|
||||||
|
padding: 12px 10px;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #34575b;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 700;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: color .2s ease, background-color .2s ease;
|
||||||
|
}
|
||||||
|
.nav-link:hover,
|
||||||
|
.nav-link.active,
|
||||||
|
.more-menu[open] > .nav-link {
|
||||||
|
color: #147f80;
|
||||||
|
background: #eaf7f5;
|
||||||
|
}
|
||||||
|
.more-menu {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.more-menu summary {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
.more-menu summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.more-panel {
|
||||||
|
position: absolute;
|
||||||
|
top: calc(100% + 10px);
|
||||||
|
right: 0;
|
||||||
|
z-index: 10;
|
||||||
|
min-width: 162px;
|
||||||
|
padding: 7px;
|
||||||
|
border: 1px solid #e0efed;
|
||||||
|
border-radius: 14px;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 14px 32px rgba(21, 72, 77, .14);
|
||||||
|
}
|
||||||
|
.more-panel a {
|
||||||
|
display: block;
|
||||||
|
padding: 10px 12px;
|
||||||
|
border-radius: 8px;
|
||||||
|
color: #34575b;
|
||||||
|
font-size: 13px;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.more-panel a:hover,
|
||||||
|
.more-panel a[aria-current='page'] {
|
||||||
|
color: #147f80;
|
||||||
|
background: #eaf7f5;
|
||||||
|
}
|
||||||
|
.contact-button {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
min-height: 42px;
|
||||||
|
padding: 0 18px;
|
||||||
|
border-radius: 11px;
|
||||||
|
color: #fff;
|
||||||
|
background: #168b89;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 700;
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
transition: background-color .2s ease, transform .2s ease;
|
||||||
|
}
|
||||||
|
.contact-button:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #106e70;
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
.menu-toggle {
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 44px;
|
||||||
|
height: 44px;
|
||||||
|
border: 1px solid #d7e9e7;
|
||||||
|
border-radius: 11px;
|
||||||
|
color: #176f73;
|
||||||
|
background: #f2f9f8;
|
||||||
|
font-size: 22px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.site-header a:focus-visible,
|
||||||
|
.site-header button:focus-visible,
|
||||||
|
.site-header summary:focus-visible {
|
||||||
|
outline: 3px solid #57c5c6;
|
||||||
|
outline-offset: 3px;
|
||||||
|
}
|
||||||
|
@media (max-width: 1100px) {
|
||||||
|
.mainbar-inner {
|
||||||
|
position: relative;
|
||||||
|
min-height: 74px;
|
||||||
|
}
|
||||||
|
.menu-toggle {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
.navigation {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 20;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
gap: 12px;
|
||||||
|
max-height: calc(100vh - 116px);
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 15px;
|
||||||
|
border: 1px solid #e0efed;
|
||||||
|
border-radius: 0 0 16px 16px;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 17px 30px rgba(21, 72, 77, .14);
|
||||||
|
}
|
||||||
|
.navigation.is-open,
|
||||||
|
.nav-links {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.nav-links {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
.nav-link {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 12px 14px;
|
||||||
|
}
|
||||||
|
.more-panel {
|
||||||
|
position: static;
|
||||||
|
margin: 4px 12px 8px;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.contact-button {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 700px) {
|
||||||
|
.header-container {
|
||||||
|
width: calc(100% - 32px);
|
||||||
|
}
|
||||||
|
.topbar-inner {
|
||||||
|
min-height: 36px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.topbar-location {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.mainbar-inner {
|
||||||
|
min-height: 68px;
|
||||||
|
}
|
||||||
|
.brand img {
|
||||||
|
width: 47px;
|
||||||
|
height: 45px;
|
||||||
|
}
|
||||||
|
.brand-copy strong {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.brand-copy small {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.navigation {
|
||||||
|
max-height: calc(100vh - 104px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
</header>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ const OnlineSales = () => {
|
|||||||
<img width={250} src={OnlineSvg} />
|
<img width={250} src={OnlineSvg} />
|
||||||
</div>
|
</div>
|
||||||
<div className={'sm:mt-5'}>
|
<div className={'sm:mt-5'}>
|
||||||
<h2 className='bk-heavy'>خرید سهام بیمارستان مهر ایرانیان</h2>
|
<h2 className='bk-heavy'>خرید سهام بیمارستان مهر پرند</h2>
|
||||||
</div>
|
</div>
|
||||||
<div className='text-gray-500 mt-3'>
|
<div className='text-gray-500 mt-3'>
|
||||||
<h5 className='yekan-bakh-req leading-9 font-bold'>
|
<h5 className='yekan-bakh-req leading-9 font-bold'>
|
||||||
@@ -69,7 +69,7 @@ const OnlineSales = () => {
|
|||||||
{/* <div className={'mr-5'}>*/}
|
{/* <div className={'mr-5'}>*/}
|
||||||
{/* <MDBCardTitle className={'bk-med'}>خرید سهام </MDBCardTitle>*/}
|
{/* <MDBCardTitle className={'bk-med'}>خرید سهام </MDBCardTitle>*/}
|
||||||
{/* <MDBCardText className={'bk-light'}>*/}
|
{/* <MDBCardText className={'bk-light'}>*/}
|
||||||
{/* خرید سهام بیمارستان مهر ایرانیان پرند*/}
|
{/* خرید سهام بیمارستان مهر پرند*/}
|
||||||
{/* </MDBCardText>*/}
|
{/* </MDBCardText>*/}
|
||||||
{/* </div>*/}
|
{/* </div>*/}
|
||||||
{/* </div>*/}
|
{/* </div>*/}
|
||||||
|
|||||||
+156
-53
@@ -1,61 +1,164 @@
|
|||||||
import React,{useState} from 'react';
|
import React from 'react'
|
||||||
import {
|
import { FiArrowUpLeft, FiCalendar, FiClock } from 'react-icons/fi'
|
||||||
MDBBtn,
|
|
||||||
MDBIcon,
|
|
||||||
MDBModal,
|
|
||||||
MDBModalBody, MDBModalContent,
|
|
||||||
MDBModalDialog,
|
|
||||||
MDBModalFooter,
|
|
||||||
MDBModalHeader, MDBModalTitle
|
|
||||||
} from "mdb-react-ui-kit";
|
|
||||||
|
|
||||||
const Paralax = () => {
|
const appointmentUrl =
|
||||||
const [basicModal, setBasicModal] = useState(false);
|
'https://dr-hami.ir/clinic/25/%D8%A8%DB%8C%D9%85%D8%A7%D8%B1%D8%B3%D8%AA%D8%A7%D9%86-%D9%85%D9%87%D8%B1%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C%D8%A7%D9%86'
|
||||||
if (basicModal){
|
|
||||||
setTimeout(()=> {
|
|
||||||
setBasicModal(false)
|
|
||||||
},2000)
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
const Paralax = () => (
|
||||||
<div className='bg-image mt-5 d-flex flex-md-column flex-sm-column ' style={{ maxWidth: '1080rem' }}>
|
<section className='appointment-section' dir='rtl' aria-labelledby='appointment-title'>
|
||||||
<img style={{ width: '100%' }} src={''} alt="Picture of the author" />
|
<div className='appointment-content'>
|
||||||
<div className='mask' style={{ backgroundColor: 'rgba(0, 0, 0, 0.6)' }}>
|
<span className='appointment-kicker'>
|
||||||
<div className='d-flex flex-md-column flex-sm-column justify-content-center align-items-center h-100 dana'>
|
<FiCalendar aria-hidden='true' />
|
||||||
<h2 className='text-white p-5 mb-0'>
|
نوبتدهی بیمارستان مهر پرند
|
||||||
<MDBBtn onClick={() => setBasicModal(true)} size='lg' color='success'>
|
</span>
|
||||||
|
<h2 id='appointment-title'>دریافت نوبت، در چند قدم ساده</h2>
|
||||||
|
<p>
|
||||||
|
برای مشاهده اطلاعات نوبتدهی و دریافت نوبت آنلاین، به صفحه اختصاصی
|
||||||
|
بیمارستان مهر پرند در سامانه دکترهامی بروید.
|
||||||
|
</p>
|
||||||
|
<div className='appointment-actions'>
|
||||||
|
<a className='appointment-button' href={appointmentUrl}>
|
||||||
|
<FiClock aria-hidden='true' />
|
||||||
دریافت نوبت آنلاین
|
دریافت نوبت آنلاین
|
||||||
<MDBIcon style={{ paddingLeft: "15px",paddingTop: "5px",maxWidth: "100px",maxHeight: '50px' }} className='me-2 ' icon='clock' />
|
<FiArrowUpLeft className='button-arrow' aria-hidden='true' />
|
||||||
</MDBBtn>
|
</a>
|
||||||
</h2>
|
<span className='appointment-hint'>ورود مستقیم به سامانه نوبتدهی</span>
|
||||||
{/*<h3 style={{marginRight: "5%"}} className='text-white mb-0'> 021 - 2842 6945 تماس تلفنی </h3>*/}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{process.browser &&
|
|
||||||
<MDBModal show={basicModal} tabIndex='-1'>
|
|
||||||
<MDBModalDialog>
|
|
||||||
<MDBModalContent>
|
|
||||||
<MDBModalHeader>
|
|
||||||
<MDBModalTitle className={'d-flex justify-content-start'} >این بخش در حال حاضر دسترس نیست </MDBModalTitle>
|
|
||||||
<MDBBtn className='btn-close left left-align d-flex justify-content-end' color='none' onClick={() => setBasicModal(false)}></MDBBtn>
|
|
||||||
</MDBModalHeader>
|
|
||||||
<MDBModalBody className={'d-flex justify-content-around'}>
|
|
||||||
<MDBIcon className='ms-1 text-danger' icon='exclamation' size='7x' />
|
|
||||||
</MDBModalBody>
|
|
||||||
|
|
||||||
<MDBModalFooter className={'d-flex justify-content-around'}>
|
<style jsx>{`
|
||||||
<MDBBtn color='secondary' onClick={() => setBasicModal(false)}>
|
.appointment-section {
|
||||||
بستن
|
position: relative;
|
||||||
</MDBBtn>
|
display: flex;
|
||||||
</MDBModalFooter>
|
align-items: center;
|
||||||
</MDBModalContent>
|
width: calc(100% - 40px);
|
||||||
</MDBModalDialog>
|
max-width: 1240px;
|
||||||
</MDBModal>
|
min-height: 350px;
|
||||||
|
margin: 64px auto;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 28px;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #0a3f49;
|
||||||
|
background-image: linear-gradient(to left, rgba(8, 52, 61, .99) 0%, rgba(8, 52, 61, .94) 39%, rgba(8, 52, 61, .18) 100%), url('/resource/parallax/Novat.jpg');
|
||||||
|
background-position: center;
|
||||||
|
background-size: cover;
|
||||||
|
box-shadow: 0 22px 50px rgba(13, 71, 76, .16);
|
||||||
|
font-family: dana-fanum, sans-serif;
|
||||||
}
|
}
|
||||||
|
.appointment-section::after {
|
||||||
|
position: absolute;
|
||||||
|
top: -90px;
|
||||||
|
right: -70px;
|
||||||
|
width: 300px;
|
||||||
|
height: 300px;
|
||||||
|
border: 1px solid rgba(173, 235, 226, .15);
|
||||||
|
border-radius: 50%;
|
||||||
|
content: '';
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.appointment-content {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
width: min(100%, 660px);
|
||||||
|
padding: 52px 62px;
|
||||||
|
}
|
||||||
|
.appointment-kicker {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 9px;
|
||||||
|
padding: 8px 13px;
|
||||||
|
border: 1px solid rgba(138, 229, 217, .35);
|
||||||
|
border-radius: 100px;
|
||||||
|
color: #bbf1e9;
|
||||||
|
background: rgba(255, 255, 255, .09);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 20px 0 14px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: clamp(27px, 3.5vw, 42px);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
max-width: 510px;
|
||||||
|
margin: 0;
|
||||||
|
color: #e2f0ee;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 2;
|
||||||
|
}
|
||||||
|
.appointment-actions {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 27px;
|
||||||
|
}
|
||||||
|
.appointment-button {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 11px;
|
||||||
|
min-height: 52px;
|
||||||
|
padding: 0 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
color: #104b51;
|
||||||
|
background: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 800;
|
||||||
|
text-decoration: none;
|
||||||
|
box-shadow: 0 9px 22px rgba(0, 0, 0, .13);
|
||||||
|
transition: transform .2s ease, background-color .2s ease;
|
||||||
|
}
|
||||||
|
.appointment-button:hover {
|
||||||
|
color: #104b51;
|
||||||
|
background: #dff7f2;
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
.appointment-button:focus-visible {
|
||||||
|
outline: 3px solid #8de5d9;
|
||||||
|
outline-offset: 4px;
|
||||||
|
}
|
||||||
|
.button-arrow {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.appointment-hint {
|
||||||
|
color: #c9e2df;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
@media (max-width: 700px) {
|
||||||
|
.appointment-section {
|
||||||
|
width: calc(100% - 32px);
|
||||||
|
min-height: 390px;
|
||||||
|
margin: 46px auto;
|
||||||
|
border-radius: 22px;
|
||||||
|
background-image: linear-gradient(to left, rgba(8, 52, 61, .97), rgba(8, 52, 61, .78)), url('/resource/parallax/Novat.jpg');
|
||||||
|
background-position: 38% center;
|
||||||
|
}
|
||||||
|
.appointment-content {
|
||||||
|
padding: 34px 25px;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin-top: 18px;
|
||||||
|
font-size: clamp(25px, 7vw, 33px);
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
.appointment-actions {
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 12px;
|
||||||
|
margin-top: 22px;
|
||||||
|
}
|
||||||
|
.appointment-button {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
|
||||||
</div>
|
export default Paralax
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export default Paralax;
|
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ const SalesTeam = () => {
|
|||||||
// {users.map((item) => (
|
// {users.map((item) => (
|
||||||
// <SwiperSlide className={'flex justify-content-center'}>
|
// <SwiperSlide className={'flex justify-content-center'}>
|
||||||
// <Box width={250} className={'shadow-2-strong hover-shadow m-2'} maxW='sm' borderWidth='1px' borderRadius='lg' overflow='hidden'>
|
// <Box width={250} className={'shadow-2-strong hover-shadow m-2'} maxW='sm' borderWidth='1px' borderRadius='lg' overflow='hidden'>
|
||||||
// <Image src={item.img} alt={'بیمارستان مهر ایرانیان'} />
|
// <Image src={item.img} alt={'بیمارستان مهر پرند'} />
|
||||||
// <Box p='6'>
|
// <Box p='6'>
|
||||||
// <Box
|
// <Box
|
||||||
// textAlign={'center'}
|
// textAlign={'center'}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const StockSales = () => {
|
|||||||
<div className={'mr-5'}>
|
<div className={'mr-5'}>
|
||||||
<MDBCardTitle className={'bk-med'}>مشاوره خرید سهام </MDBCardTitle>
|
<MDBCardTitle className={'bk-med'}>مشاوره خرید سهام </MDBCardTitle>
|
||||||
<MDBCardText className={'bk-light'}>
|
<MDBCardText className={'bk-light'}>
|
||||||
خرید سهام بیمارستان مهر ایرانیان پرند
|
خرید سهام بیمارستان مهر پرند
|
||||||
</MDBCardText>
|
</MDBCardText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -87,7 +87,7 @@ const StockSales = () => {
|
|||||||
<div className={'mr-5'}>
|
<div className={'mr-5'}>
|
||||||
<MDBCardTitle className={'bk-med'}>بخش های درمانی </MDBCardTitle>
|
<MDBCardTitle className={'bk-med'}>بخش های درمانی </MDBCardTitle>
|
||||||
<MDBCardText className={'bk-light text-sm'}>
|
<MDBCardText className={'bk-light text-sm'}>
|
||||||
بخش های درمانی بیمارستان مهر ایرانیان پرند
|
بخش های درمانی بیمارستان مهر پرند
|
||||||
</MDBCardText>
|
</MDBCardText>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ const Accessgrid = () => {
|
|||||||
{/* <div className={'textArea'}>*/}
|
{/* <div className={'textArea'}>*/}
|
||||||
{/* <h3 className={'dana font-weight-bold'}> پیشرفت ساخت پروژه </h3>*/}
|
{/* <h3 className={'dana font-weight-bold'}> پیشرفت ساخت پروژه </h3>*/}
|
||||||
{/* <p style={{ lineHeight: 2.5 }}>*/}
|
{/* <p style={{ lineHeight: 2.5 }}>*/}
|
||||||
{/* پیشرفت 85 درصدی طبقه همکف بیمارستان مهر ایرانیان*/}
|
{/* پیشرفت 85 درصدی طبقه همکف بیمارستان مهر پرند*/}
|
||||||
{/* <br />*/}
|
{/* <br />*/}
|
||||||
{/* طبقه همکف تا پایان دی ماه سال 1400 با تلاش شبانه روزی مهندسین مجرب و کارگران سخت کوش*/}
|
{/* طبقه همکف تا پایان دی ماه سال 1400 با تلاش شبانه روزی مهندسین مجرب و کارگران سخت کوش*/}
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ const Accessgrid = () => {
|
|||||||
{/* <div className={'textArea'}>*/}
|
{/* <div className={'textArea'}>*/}
|
||||||
{/* <h3 className={'dana font-weight-bold'}> خرید سهام </h3>*/}
|
{/* <h3 className={'dana font-weight-bold'}> خرید سهام </h3>*/}
|
||||||
{/* <p style={{ lineHeight: 2.5 }}>*/}
|
{/* <p style={{ lineHeight: 2.5 }}>*/}
|
||||||
{/* توضیحات دکتر نمکی مدیر عامل بیمارستان مهر ایرانیان پرند در رابطه خرید سهام بیمارستان*/}
|
{/* توضیحات دکتر نمکی مدیر عامل بیمارستان مهر پرند در رابطه خرید سهام بیمارستان*/}
|
||||||
{/* در این ویدئو با مزایای خرید سهام و مراحل پیشرفت پروژه آشنا می شوید*/}
|
{/* در این ویدئو با مزایای خرید سهام و مراحل پیشرفت پروژه آشنا می شوید*/}
|
||||||
{/* </p>*/}
|
{/* </p>*/}
|
||||||
{/* <MDBBtn style={{ backgroundColor: '#EF4444', fontWeight: 'bold' }} className={'d-flex mb-5 justify-content-center dana '}>مشاوره خرید سهام </MDBBtn>*/}
|
{/* <MDBBtn style={{ backgroundColor: '#EF4444', fontWeight: 'bold' }} className={'d-flex mb-5 justify-content-center dana '}>مشاوره خرید سهام </MDBBtn>*/}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const Doctors = ({children}) => {
|
|||||||
const dataPageDoctors = (
|
const dataPageDoctors = (
|
||||||
<div className='lg:mx-20 sm:mx-5'>
|
<div className='lg:mx-20 sm:mx-5'>
|
||||||
<h5 style={{ marginTop: '2rem' }} className={'right-align font-weight-bold'}>
|
<h5 style={{ marginTop: '2rem' }} className={'right-align font-weight-bold'}>
|
||||||
کادر درمان بیمارستان مهر ایرانیان
|
کادر درمان بیمارستان مهر پرند
|
||||||
<hr />
|
<hr />
|
||||||
</h5>
|
</h5>
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ const Service = () => {
|
|||||||
<MDBCardBody style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
|
<MDBCardBody style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
|
||||||
<Link href={'components/service'}>
|
<Link href={'components/service'}>
|
||||||
<MDBCardText className={'bk'}>
|
<MDBCardText className={'bk'}>
|
||||||
<h1 className={'RTL dana'}>بیشتر ...</h1>{' '}
|
<span className={'RTL dana'}>بیشتر ...</span>{' '}
|
||||||
</MDBCardText>
|
</MDBCardText>
|
||||||
</Link>
|
</Link>
|
||||||
</MDBCardBody>
|
</MDBCardBody>
|
||||||
@@ -262,7 +262,7 @@ const Service = () => {
|
|||||||
) : (
|
) : (
|
||||||
<AppContainer title={'کلینیک ها و بخش ها '}>
|
<AppContainer title={'کلینیک ها و بخش ها '}>
|
||||||
<div className='parallax-container'>
|
<div className='parallax-container'>
|
||||||
<h2 className={'center-align text-dark service-text dana font-weight-bold'}> کلینیک ها و بخش ها </h2>
|
<h1 className={'center-align text-dark service-text dana font-weight-bold'}> کلینیک ها و بخش ها </h1>
|
||||||
<Image
|
<Image
|
||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
src='Parallax.png'
|
src='Parallax.png'
|
||||||
|
|||||||
@@ -2,10 +2,8 @@ import React from 'react'
|
|||||||
// import SliderZero from '../../public/resource/slider/PRICE_CHART.webp'
|
// import SliderZero from '../../public/resource/slider/PRICE_CHART.webp'
|
||||||
// import SliderOne from '../../public/resource/slider/slier-1(1).webp'
|
// import SliderOne from '../../public/resource/slider/slier-1(1).webp'
|
||||||
import sliderJob from '../../public/resource/slider/slider-2(1).webp'
|
import sliderJob from '../../public/resource/slider/slider-2(1).webp'
|
||||||
// import sliderJob from '../../public/resource/slider/slider_3.webp'
|
|
||||||
// import LimitSlider from '../../public/resource/slider/3 (1).jpg'
|
|
||||||
import TransferStockBanner from '../../public/resource/slider/baner_enteghal.jpg'
|
|
||||||
|
|
||||||
|
import sliderMIpStart from '../../public/resource/slider/Modern Hospital Banner with Persian Typography (1).png'
|
||||||
|
|
||||||
import sliderCallCenter from '../../public/resource/slider/call-center.webp'
|
import sliderCallCenter from '../../public/resource/slider/call-center.webp'
|
||||||
|
|
||||||
@@ -16,7 +14,6 @@ const Slider = () => {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Swiper pagination={true} autoplay={true} loop={true} modules={[Pagination]} className='mySwiper'>
|
<Swiper pagination={true} autoplay={true} loop={true} modules={[Pagination]} className='mySwiper'>
|
||||||
|
|
||||||
{/* <SwiperSlide style={{ cursor: 'pointer' }} className='pointer'>
|
{/* <SwiperSlide style={{ cursor: 'pointer' }} className='pointer'>
|
||||||
<Link href='/stock-unit'>
|
<Link href='/stock-unit'>
|
||||||
<img src={sliderCallCenter} />
|
<img src={sliderCallCenter} />
|
||||||
@@ -41,8 +38,13 @@ const Slider = () => {
|
|||||||
<img src={sliderBook} />
|
<img src={sliderBook} />
|
||||||
</SwiperSlide> */}
|
</SwiperSlide> */}
|
||||||
<SwiperSlide key={3} style={{ cursor: 'pointer' }} className='pointer'>
|
<SwiperSlide key={3} style={{ cursor: 'pointer' }} className='pointer'>
|
||||||
|
<Link href='/landing'>
|
||||||
|
<a><img src={sliderMIpStart} alt='معرفی بیمارستان مهر پرند و آخرین اخبار افتتاح' width='2071' height='759' style={{ width: '100%', height: 'auto' }} /></a>
|
||||||
|
</Link>
|
||||||
|
</SwiperSlide>
|
||||||
|
<SwiperSlide key={4} style={{ cursor: 'pointer' }} className='pointer'>
|
||||||
<Link href='/recruitment'>
|
<Link href='/recruitment'>
|
||||||
<img src={sliderJob} />
|
<a><img src={sliderJob} alt='فرصتهای شغلی و استخدام در بیمارستان مهر پرند' width='2877' height='1120' style={{ width: '100%', height: 'auto' }} loading='lazy' /></a>
|
||||||
</Link>
|
</Link>
|
||||||
</SwiperSlide>
|
</SwiperSlide>
|
||||||
</Swiper>
|
</Swiper>
|
||||||
|
|||||||
+107
-3
@@ -23,22 +23,124 @@ export default function Home({ data_NEWS }) {
|
|||||||
.fix-col {
|
.fix-col {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
.opening-announcement {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 2rem;
|
||||||
|
width: min(1180px, calc(100% - 2rem));
|
||||||
|
margin: 2rem auto;
|
||||||
|
padding: clamp(2rem, 5vw, 3.5rem);
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 1.5rem;
|
||||||
|
color: #fff;
|
||||||
|
background: linear-gradient(120deg, #0b3942, #147778);
|
||||||
|
box-shadow: 0 20px 50px rgba(13, 83, 88, 0.18);
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.opening-announcement::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 360px;
|
||||||
|
height: 360px;
|
||||||
|
left: -140px;
|
||||||
|
bottom: -230px;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.17);
|
||||||
|
border-radius: 50%;
|
||||||
|
box-shadow: 0 0 0 65px rgba(255, 255, 255, 0.035);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
.opening-copy,
|
||||||
|
.opening-actions {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.opening-copy {
|
||||||
|
max-width: 720px;
|
||||||
|
}
|
||||||
|
.opening-label {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
|
color: #a5eee6;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.opening-copy h1 {
|
||||||
|
margin: 0;
|
||||||
|
color: #fff;
|
||||||
|
font-size: clamp(1.55rem, 3vw, 2.5rem);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
.opening-copy p {
|
||||||
|
margin: 1rem 0 0;
|
||||||
|
color: rgba(255, 255, 255, 0.82);
|
||||||
|
font-size: 0.95rem;
|
||||||
|
line-height: 2;
|
||||||
|
}
|
||||||
|
.opening-button {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 50px;
|
||||||
|
padding: 0.8rem 1.4rem;
|
||||||
|
border-radius: 0.8rem;
|
||||||
|
color: #083b40;
|
||||||
|
background: #a5eee6;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 700;
|
||||||
|
white-space: nowrap;
|
||||||
|
transition: background 180ms ease, transform 180ms ease;
|
||||||
|
}
|
||||||
|
.opening-button:hover {
|
||||||
|
color: #083b40;
|
||||||
|
background: #c5f8f2;
|
||||||
|
text-decoration: none;
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.opening-announcement {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@media screen and (max-width: 639px) {
|
@media screen and (max-width: 639px) {
|
||||||
.fix-col {
|
.fix-col {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
.opening-announcement {
|
||||||
|
width: calc(100% - 1.25rem);
|
||||||
|
margin: 1.25rem auto;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
`}
|
`}
|
||||||
</style>
|
</style>
|
||||||
<AppContainer>
|
<AppContainer>
|
||||||
<Slider />
|
<Slider />
|
||||||
|
<section className='opening-announcement' aria-labelledby='opening-announcement-title'>
|
||||||
|
<div className='opening-copy'>
|
||||||
|
<span className='opening-label'>اطلاعرسانی افتتاح</span>
|
||||||
|
<h1 id='opening-announcement-title'>در چند قدمی افتتاح بیمارستان مهر پرند</h1>
|
||||||
|
<p>اخبار و زمان دقیق افتتاح بیمارستان از طریق همین وبسایت اطلاعرسانی خواهد شد.</p>
|
||||||
|
</div>
|
||||||
|
<div className='opening-actions'>
|
||||||
|
<Link href='/landing'>
|
||||||
|
<a className='opening-button'>آشنایی با بیمارستان</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<br />
|
<br />
|
||||||
<div className='lg:mx-20 sm:mx-5'>
|
<div className='lg:mx-20 sm:mx-5'>
|
||||||
<SimpleGrid spacing={15} columns={[1, 2, 2]}>
|
<SimpleGrid spacing={15} columns={[1, 2, 2]}>
|
||||||
<Link href={'/page/contact-us'}>
|
<Link href={'/page/contact-us'}>
|
||||||
|
<a>
|
||||||
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
||||||
<MDBCardBody className={'flex justify-content-center'}>ارتباط با ما</MDBCardBody>
|
<MDBCardBody className={'flex justify-content-center'}>ارتباط با ما</MDBCardBody>
|
||||||
</MDBCard>
|
</MDBCard>
|
||||||
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
{/* <Link href={'/page/sales'}>
|
{/* <Link href={'/page/sales'}>
|
||||||
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
||||||
@@ -46,9 +148,11 @@ export default function Home({ data_NEWS }) {
|
|||||||
</MDBCard>
|
</MDBCard>
|
||||||
</Link> */}
|
</Link> */}
|
||||||
<Link href={'/questions'}>
|
<Link href={'/questions'}>
|
||||||
|
<a>
|
||||||
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
||||||
<MDBCardBody className={'flex justify-content-center'}>سوالات متداول</MDBCardBody>
|
<MDBCardBody className={'flex justify-content-center'}>سوالات متداول</MDBCardBody>
|
||||||
</MDBCard>
|
</MDBCard>
|
||||||
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
{/* <Link href={'/stock-unit'}>
|
{/* <Link href={'/stock-unit'}>
|
||||||
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
<MDBCard className={'bg-neutral-100 fst-box hover:bg-neutral-200 cursor-pointer hover:shadow-2xl'}>
|
||||||
@@ -69,15 +173,15 @@ export default function Home({ data_NEWS }) {
|
|||||||
<Link
|
<Link
|
||||||
style={{ cursor: 'pointer' }}
|
style={{ cursor: 'pointer' }}
|
||||||
className={'text-white'}
|
className={'text-white'}
|
||||||
href={{ pathname: '/News', query: { list: 'list' } }}
|
href='/News'
|
||||||
>
|
>
|
||||||
<MDBBtn style={{ cursor: 'pointer' }} className='mx-2 RTL bg-dark shadow-1-strong' color=''>
|
<a className='btn mx-2 RTL bg-dark shadow-1-strong text-white'>
|
||||||
<MDBIcon className='ms-1 ' icon='plus' size='sm' />
|
<MDBIcon className='ms-1 ' icon='plus' size='sm' />
|
||||||
<span style={{ cursor: 'pointer !important' }} className={'text-white '}>
|
<span style={{ cursor: 'pointer !important' }} className={'text-white '}>
|
||||||
{' '}
|
{' '}
|
||||||
بیشتر
|
بیشتر
|
||||||
</span>
|
</span>
|
||||||
</MDBBtn>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</News>
|
</News>
|
||||||
|
|||||||
+376
-40
@@ -4,12 +4,15 @@ import Link from 'next/link'
|
|||||||
import {
|
import {
|
||||||
FiActivity,
|
FiActivity,
|
||||||
FiArrowLeft,
|
FiArrowLeft,
|
||||||
|
FiBriefcase,
|
||||||
FiCamera,
|
FiCamera,
|
||||||
FiCheckCircle,
|
FiCheckCircle,
|
||||||
FiClock,
|
FiClock,
|
||||||
|
FiFileText,
|
||||||
FiHeart,
|
FiHeart,
|
||||||
FiMapPin,
|
FiMapPin,
|
||||||
FiPhone,
|
FiPhone,
|
||||||
|
FiPlay,
|
||||||
FiShield
|
FiShield
|
||||||
} from 'react-icons/fi'
|
} from 'react-icons/fi'
|
||||||
import AppContainer from './appContainer'
|
import AppContainer from './appContainer'
|
||||||
@@ -78,24 +81,38 @@ const quickLinks = [
|
|||||||
const galleryImages = [
|
const galleryImages = [
|
||||||
{
|
{
|
||||||
src: '/resource/images/gallery/IMG-20260910-WA0040.jpg',
|
src: '/resource/images/gallery/IMG-20260910-WA0040.jpg',
|
||||||
alt: 'فضای بستری بیمارستان مهر ایرانیان پرند',
|
alt: 'فضای بستری بیمارستان مهر پرند',
|
||||||
className: 'gallery-large'
|
className: 'gallery-large'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: '/resource/images/gallery/IMG-20260910-WA0059.jpg',
|
src: '/resource/images/gallery/IMG-20260910-WA0059.jpg',
|
||||||
alt: 'راهروی درمانگاه بیمارستان مهر ایرانیان پرند',
|
alt: 'راهروی درمانگاه بیمارستان مهر پرند',
|
||||||
className: ''
|
className: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: '/resource/images/gallery/IMG-20260910-WA0000.jpg',
|
src: '/resource/images/gallery/IMG-20260910-WA0000.jpg',
|
||||||
alt: 'ایستگاه پرستاری بیمارستان مهر ایرانیان پرند',
|
alt: 'ایستگاه پرستاری بیمارستان مهر پرند',
|
||||||
className: ''
|
className: ''
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
const Landing = () => {
|
const Landing = () => {
|
||||||
|
const videoRef = React.useRef(null)
|
||||||
|
const [videoStarted, setVideoStarted] = React.useState(false)
|
||||||
|
|
||||||
|
const handlePlayVideo = async () => {
|
||||||
|
if (!videoRef.current) return
|
||||||
|
|
||||||
|
try {
|
||||||
|
await videoRef.current.play()
|
||||||
|
setVideoStarted(true)
|
||||||
|
} catch {
|
||||||
|
setVideoStarted(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AppContainer title='بیمارستان مهر ایرانیان پرند | همراه سلامت شما'>
|
<AppContainer title='بیمارستان مهر پرند | همراه سلامت شما'>
|
||||||
<style jsx>{`
|
<style jsx>{`
|
||||||
.landing {
|
.landing {
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
@@ -105,8 +122,24 @@ const Landing = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
width: min(1180px, calc(100% - 2rem));
|
width: calc(100% - 2rem);
|
||||||
|
max-width: 1180px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-content,
|
||||||
|
.quick-link,
|
||||||
|
.about-visual,
|
||||||
|
.about-copy,
|
||||||
|
.stat,
|
||||||
|
.department-card,
|
||||||
|
.value,
|
||||||
|
.recruitment-intro,
|
||||||
|
.recruitment-links,
|
||||||
|
.contact-copy,
|
||||||
|
.contact-actions {
|
||||||
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero {
|
.hero {
|
||||||
@@ -139,12 +172,90 @@ const Landing = () => {
|
|||||||
linear-gradient(0deg, rgba(7, 37, 44, 0.28), transparent 45%);
|
linear-gradient(0deg, rgba(7, 37, 44, 0.28), transparent 45%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hero-layout {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
|
||||||
|
align-items: center;
|
||||||
|
gap: clamp(2rem, 5vw, 4rem);
|
||||||
|
}
|
||||||
|
|
||||||
.hero-content {
|
.hero-content {
|
||||||
max-width: 650px;
|
max-width: 650px;
|
||||||
padding: 6rem 0 8rem;
|
padding: 6rem 0 8rem;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hero-video {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0.6rem;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||||
|
border-radius: 1.4rem;
|
||||||
|
background: rgba(255, 255, 255, 0.12);
|
||||||
|
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video-media {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video video {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
aspect-ratio: 8 / 9;
|
||||||
|
border-radius: 0.95rem;
|
||||||
|
background: #092e35;
|
||||||
|
object-fit: cover;
|
||||||
|
object-position: center top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video-overlay {
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 0.8rem;
|
||||||
|
width: 100%;
|
||||||
|
padding: 1rem;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 0.95rem;
|
||||||
|
color: #fff;
|
||||||
|
background: rgba(5, 35, 41, 0.48);
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background 180ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video-overlay:hover {
|
||||||
|
background: rgba(5, 35, 41, 0.36);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video-overlay:focus-visible {
|
||||||
|
outline: 3px solid #8fe4dc;
|
||||||
|
outline-offset: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-play-icon {
|
||||||
|
width: 76px;
|
||||||
|
height: 76px;
|
||||||
|
display: grid;
|
||||||
|
place-items: center;
|
||||||
|
border: 2px solid rgba(255, 255, 255, 0.8);
|
||||||
|
border-radius: 50%;
|
||||||
|
background: rgba(255, 255, 255, 0.18);
|
||||||
|
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
|
||||||
|
font-size: 2rem;
|
||||||
|
backdrop-filter: blur(8px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-play-text {
|
||||||
|
font-size: 0.95rem;
|
||||||
|
font-weight: 700;
|
||||||
|
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
.eyebrow {
|
.eyebrow {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -245,7 +356,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.quick-access {
|
.quick-access {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border: 1px solid rgba(23, 113, 113, 0.1);
|
border: 1px solid rgba(23, 113, 113, 0.1);
|
||||||
border-radius: 1.15rem;
|
border-radius: 1.15rem;
|
||||||
@@ -291,6 +402,10 @@ const Landing = () => {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.quick-copy {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.quick-copy strong {
|
.quick-copy strong {
|
||||||
margin-bottom: 0.3rem;
|
margin-bottom: 0.3rem;
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
@@ -350,7 +465,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.about-grid {
|
.about-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1.03fr;
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1.03fr);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: clamp(2rem, 6vw, 5.5rem);
|
gap: clamp(2rem, 6vw, 5.5rem);
|
||||||
}
|
}
|
||||||
@@ -430,7 +545,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.stats {
|
.stats {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
margin-top: 5rem;
|
margin-top: 5rem;
|
||||||
}
|
}
|
||||||
@@ -462,7 +577,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.departments-grid {
|
.departments-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,7 +628,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.gallery-grid {
|
.gallery-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1.5fr 1fr;
|
grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
|
||||||
grid-template-rows: repeat(2, 220px);
|
grid-template-rows: repeat(2, 220px);
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
@@ -539,7 +654,7 @@ const Landing = () => {
|
|||||||
|
|
||||||
.values {
|
.values {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
@@ -579,10 +694,96 @@ const Landing = () => {
|
|||||||
line-height: 1.8;
|
line-height: 1.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.recruitment-panel {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
|
align-items: center;
|
||||||
|
gap: clamp(2rem, 5vw, 4rem);
|
||||||
|
padding: clamp(1.75rem, 5vw, 3.5rem);
|
||||||
|
border: 1px solid #dcebea;
|
||||||
|
border-radius: 1.5rem;
|
||||||
|
background: linear-gradient(125deg, #fff, #f1faf9);
|
||||||
|
box-shadow: 0 18px 45px rgba(18, 87, 90, 0.07);
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-intro p {
|
||||||
|
max-width: 520px;
|
||||||
|
margin: 1rem 0 0;
|
||||||
|
color: #64777b;
|
||||||
|
font-size: 0.94rem;
|
||||||
|
line-height: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-links {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: minmax(0, 1fr);
|
||||||
|
gap: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-link {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 96px;
|
||||||
|
padding: 1rem 1.2rem;
|
||||||
|
border: 1px solid #e0eeec;
|
||||||
|
border-radius: 1rem;
|
||||||
|
color: #15323a;
|
||||||
|
background: #fff;
|
||||||
|
transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-link:hover {
|
||||||
|
border-color: #9fdcd5;
|
||||||
|
color: #15323a;
|
||||||
|
box-shadow: 0 10px 28px rgba(18, 87, 90, 0.1);
|
||||||
|
text-decoration: none;
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-icon {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
flex: 0 0 52px;
|
||||||
|
display: grid;
|
||||||
|
place-items: center;
|
||||||
|
border-radius: 0.85rem;
|
||||||
|
color: #147778;
|
||||||
|
background: #e6f7f4;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-copy strong,
|
||||||
|
.recruitment-copy span {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-copy {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-copy strong {
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-copy span {
|
||||||
|
color: #718387;
|
||||||
|
font-size: 0.78rem;
|
||||||
|
line-height: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-arrow {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
margin-right: auto;
|
||||||
|
color: #147778;
|
||||||
|
}
|
||||||
|
|
||||||
.contact-card {
|
.contact-card {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1.3fr 0.7fr;
|
grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 2rem;
|
gap: 2rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -647,11 +848,27 @@ const Landing = () => {
|
|||||||
|
|
||||||
@media (max-width: 992px) {
|
@media (max-width: 992px) {
|
||||||
.hero {
|
.hero {
|
||||||
min-height: 620px;
|
min-height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-layout {
|
||||||
|
grid-template-columns: minmax(0, 1fr);
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-content {
|
||||||
|
padding: 4.5rem 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 520px;
|
||||||
|
justify-self: center;
|
||||||
|
margin-bottom: 5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quick-access {
|
.quick-access {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
}
|
}
|
||||||
|
|
||||||
.quick-link:nth-child(2) {
|
.quick-link:nth-child(2) {
|
||||||
@@ -663,7 +880,11 @@ const Landing = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.about-grid {
|
.about-grid {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: minmax(0, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-panel {
|
||||||
|
grid-template-columns: minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-visual {
|
.about-visual {
|
||||||
@@ -671,11 +892,11 @@ const Landing = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.departments-grid {
|
.departments-grid {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-card {
|
.contact-card {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-actions {
|
.contact-actions {
|
||||||
@@ -685,11 +906,10 @@ const Landing = () => {
|
|||||||
|
|
||||||
@media (max-width: 700px) {
|
@media (max-width: 700px) {
|
||||||
.container {
|
.container {
|
||||||
width: min(100% - 1.25rem, 1180px);
|
width: calc(100% - 1.25rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero {
|
.hero {
|
||||||
min-height: 670px;
|
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -698,11 +918,31 @@ const Landing = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.hero-content {
|
.hero-content {
|
||||||
padding: 8rem 0 7rem;
|
padding: 4.5rem 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video {
|
||||||
|
max-width: 440px;
|
||||||
|
margin-bottom: 4.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-video video {
|
||||||
|
aspect-ratio: 1 / 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-play-icon {
|
||||||
|
width: 64px;
|
||||||
|
height: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eyebrow {
|
||||||
|
max-width: 100%;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero h1 {
|
.hero h1 {
|
||||||
font-size: 2.35rem;
|
font-size: clamp(1.85rem, 8vw, 2.35rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero-description {
|
.hero-description {
|
||||||
@@ -714,16 +954,21 @@ const Landing = () => {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hero-actions {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.quick-access-wrap {
|
.quick-access-wrap {
|
||||||
margin-top: -45px;
|
margin-top: -45px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.quick-access {
|
.quick-access {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.quick-link {
|
.quick-link {
|
||||||
min-height: 105px;
|
min-height: 92px;
|
||||||
|
padding: 1rem;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
border-bottom: 1px solid #e7eeee;
|
border-bottom: 1px solid #e7eeee;
|
||||||
}
|
}
|
||||||
@@ -733,47 +978,61 @@ const Landing = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.section {
|
.section {
|
||||||
padding: 4.5rem 0;
|
padding: 3.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-heading {
|
.section-heading {
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 1rem;
|
gap: 0.8rem;
|
||||||
|
margin-bottom: 1.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-visual {
|
.about-visual {
|
||||||
min-height: 350px;
|
min-height: 320px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-image {
|
.about-image {
|
||||||
inset: 0 0 1.5rem 1rem;
|
inset: 0 0 1.2rem 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-badge {
|
.about-badge {
|
||||||
width: 150px;
|
width: 135px;
|
||||||
min-height: 125px;
|
min-height: 110px;
|
||||||
padding: 1rem;
|
padding: 0.85rem;
|
||||||
|
border-width: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-badge strong {
|
.about-badge strong {
|
||||||
font-size: 1.55rem;
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.about-badge span {
|
||||||
|
font-size: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.about-points,
|
.about-points,
|
||||||
.stats,
|
|
||||||
.departments-grid,
|
.departments-grid,
|
||||||
.values {
|
.values {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: minmax(0, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.stats {
|
.stats {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
margin-top: 3.5rem;
|
gap: 0.7rem;
|
||||||
|
margin-top: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat {
|
||||||
|
padding: 1rem 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat strong {
|
||||||
|
font-size: clamp(1.2rem, 6vw, 1.65rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.gallery-grid {
|
.gallery-grid {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: minmax(0, 1fr);
|
||||||
grid-template-rows: repeat(3, 230px);
|
grid-template-rows: repeat(3, 230px);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -785,6 +1044,26 @@ const Landing = () => {
|
|||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.recruitment-panel {
|
||||||
|
padding: 1.25rem;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-link {
|
||||||
|
gap: 0.7rem;
|
||||||
|
padding: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recruitment-icon {
|
||||||
|
width: 44px;
|
||||||
|
height: 44px;
|
||||||
|
flex-basis: 44px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-card {
|
||||||
|
padding: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.contact-actions {
|
.contact-actions {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
@@ -796,7 +1075,7 @@ const Landing = () => {
|
|||||||
<div className='hero-image'>
|
<div className='hero-image'>
|
||||||
<Image
|
<Image
|
||||||
src='/resource/images/gallery/IMG-20260910-WA0040.jpg'
|
src='/resource/images/gallery/IMG-20260910-WA0040.jpg'
|
||||||
alt='بخش بستری بیمارستان مهر ایرانیان پرند'
|
alt='بخش بستری بیمارستان مهر پرند'
|
||||||
layout='fill'
|
layout='fill'
|
||||||
objectFit='cover'
|
objectFit='cover'
|
||||||
priority
|
priority
|
||||||
@@ -804,6 +1083,7 @@ const Landing = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className='hero-overlay' />
|
<div className='hero-overlay' />
|
||||||
<div className='container'>
|
<div className='container'>
|
||||||
|
<div className='hero-layout'>
|
||||||
<div className='hero-content'>
|
<div className='hero-content'>
|
||||||
<div className='eyebrow'>
|
<div className='eyebrow'>
|
||||||
<span className='eyebrow-dot' />
|
<span className='eyebrow-dot' />
|
||||||
@@ -813,7 +1093,7 @@ const Landing = () => {
|
|||||||
همراه مطمئن شما، برای <span>زندگی سالمتر</span>
|
همراه مطمئن شما، برای <span>زندگی سالمتر</span>
|
||||||
</h1>
|
</h1>
|
||||||
<p className='hero-description'>
|
<p className='hero-description'>
|
||||||
بیمارستان مهر ایرانیان پرند با تکیه بر زیرساخت درمانی مدرن، بخشهای تخصصی و فضای طراحیشده برای
|
بیمارستان مهر پرند با تکیه بر زیرساخت درمانی مدرن، بخشهای تخصصی و فضای طراحیشده برای
|
||||||
آرامش بیماران، در مسیر تبدیلشدن به یکی از قطبهای سلامت جنوبغرب تهران است.
|
آرامش بیماران، در مسیر تبدیلشدن به یکی از قطبهای سلامت جنوبغرب تهران است.
|
||||||
</p>
|
</p>
|
||||||
<div className='hero-actions'>
|
<div className='hero-actions'>
|
||||||
@@ -827,6 +1107,28 @@ const Landing = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className='hero-video'>
|
||||||
|
<div className='hero-video-media'>
|
||||||
|
<video
|
||||||
|
ref={videoRef}
|
||||||
|
controls
|
||||||
|
preload='metadata'
|
||||||
|
playsInline
|
||||||
|
aria-label='ویدیوی بیمارستان مهر پرند'
|
||||||
|
onPlay={() => setVideoStarted(true)}
|
||||||
|
>
|
||||||
|
<source src='/resource/video/Video-7535.mp4' type='video/mp4' />
|
||||||
|
مرورگر شما از پخش ویدیو پشتیبانی نمیکند.
|
||||||
|
</video>
|
||||||
|
{!videoStarted && (
|
||||||
|
<button className='hero-video-overlay' type='button' onClick={handlePlayVideo}>
|
||||||
|
<span className='hero-play-icon' aria-hidden='true'><FiPlay /></span>
|
||||||
|
<span className='hero-play-text'>پخش ویدیو</span>
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -868,13 +1170,13 @@ const Landing = () => {
|
|||||||
<div className='about-image'>
|
<div className='about-image'>
|
||||||
<Image
|
<Image
|
||||||
src='/resource/images/gallery/IMG-20260910-WA0000.jpg'
|
src='/resource/images/gallery/IMG-20260910-WA0000.jpg'
|
||||||
alt='فضای داخلی بیمارستان مهر ایرانیان پرند'
|
alt='فضای داخلی بیمارستان مهر پرند'
|
||||||
layout='fill'
|
layout='fill'
|
||||||
objectFit='cover'
|
objectFit='cover'
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className='about-badge'>
|
<div className='about-badge'>
|
||||||
<strong>۹۶ تخت</strong>
|
<strong>۱۵۰ تخت</strong>
|
||||||
<span>ظرفیت فاز نخست بیمارستان</span>
|
<span>ظرفیت فاز نخست بیمارستان</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1012,6 +1314,40 @@ const Landing = () => {
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section className='section' aria-labelledby='recruitment-title'>
|
||||||
|
<div className='container'>
|
||||||
|
<div className='recruitment-panel'>
|
||||||
|
<div className='recruitment-intro'>
|
||||||
|
<span className='section-label'>استخدام و همکاری</span>
|
||||||
|
<h2 className='section-title' id='recruitment-title'>به تیم بیمارستان مهر پرند بپیوندید</h2>
|
||||||
|
<p>فرصتهای شغلی بیمارستان را ببینید، درخواست همکاری ثبت کنید و وضعیت درخواست خود را پیگیری کنید.</p>
|
||||||
|
</div>
|
||||||
|
<div className='recruitment-links'>
|
||||||
|
<Link href='/recruitment'>
|
||||||
|
<a className='recruitment-link'>
|
||||||
|
<span className='recruitment-icon'><FiBriefcase /></span>
|
||||||
|
<span className='recruitment-copy'>
|
||||||
|
<strong>فرصتهای شغلی</strong>
|
||||||
|
<span>مشاهده موقعیتها و ثبت درخواست</span>
|
||||||
|
</span>
|
||||||
|
<span className='recruitment-arrow'><FiArrowLeft /></span>
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
<Link href='/recruitment/inquiry'>
|
||||||
|
<a className='recruitment-link'>
|
||||||
|
<span className='recruitment-icon'><FiFileText /></span>
|
||||||
|
<span className='recruitment-copy'>
|
||||||
|
<strong>پیگیری درخواست</strong>
|
||||||
|
<span>استعلام وضعیت درخواست ثبتشده</span>
|
||||||
|
</span>
|
||||||
|
<span className='recruitment-arrow'><FiArrowLeft /></span>
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section className='section'>
|
<section className='section'>
|
||||||
<div className='container'>
|
<div className='container'>
|
||||||
<div className='contact-card'>
|
<div className='contact-card'>
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ const MedicalEquipment = () => {
|
|||||||
return (
|
return (
|
||||||
<AppContainer title={'واحد تجهیزات پزشکی'}>
|
<AppContainer title={'واحد تجهیزات پزشکی'}>
|
||||||
<div className='parallax-container'>
|
<div className='parallax-container'>
|
||||||
<h2 className={'center-align text-white drop-shadow service-text dana font-weight-bold'}>واحد تجهیزات پزشکی</h2>
|
<h1 className={'center-align text-white drop-shadow service-text dana font-weight-bold'}>واحد تجهیزات پزشکی</h1>
|
||||||
<Image
|
<Image
|
||||||
src={MedicalStock}
|
src={MedicalStock}
|
||||||
className={'responsive-img shadow-5'}
|
className={'responsive-img shadow-5'}
|
||||||
alt='Picture of the author'
|
alt='تجهیزات پزشکی بیمارستان مهر پرند'
|
||||||
width={4090}
|
width={4090}
|
||||||
height={2000}
|
height={2000}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -70,12 +70,12 @@ const Directors = () => {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
return (
|
return (
|
||||||
<AppContainer title={' تیم پروژه بیمارستان مهر ایرانیان پرند'}>
|
<AppContainer title={' تیم پروژه بیمارستان مهر پرند'}>
|
||||||
<div className='parallax-container'>
|
<div className='parallax-container'>
|
||||||
<h2 className={'center-align text-white header_back service-text dana font-weight-bold'}>
|
<h1 className={'center-align text-white header_back service-text dana font-weight-bold'}>
|
||||||
{' '}
|
{' '}
|
||||||
تیم پروژه بیمارستان{' '}
|
تیم پروژه بیمارستان{' '}
|
||||||
</h2>
|
</h1>
|
||||||
<Image
|
<Image
|
||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
src='Parallax.png'
|
src='Parallax.png'
|
||||||
|
|||||||
+85
-12
@@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import AppContainer from "../appContainer";
|
import AppContainer from "../appContainer";
|
||||||
import {MDBContainer, MDBProgress, MDBProgressBar} from "mdb-react-ui-kit";
|
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
|
||||||
|
|
||||||
@@ -11,6 +10,72 @@ const About = (props) => {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<AppContainer title={'درباره بیمارستان '}>
|
<AppContainer title={'درباره بیمارستان '}>
|
||||||
|
<style jsx>{`
|
||||||
|
.progress-section {
|
||||||
|
margin: 3rem 0 4rem;
|
||||||
|
padding: clamp(1.5rem, 4vw, 2.5rem);
|
||||||
|
border: 1px solid #dcebea;
|
||||||
|
border-radius: 1.5rem;
|
||||||
|
background: linear-gradient(135deg, #f1faf9, #ffffff 65%);
|
||||||
|
box-shadow: 0 18px 45px rgba(18, 87, 90, 0.08);
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
|
.progress-heading {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 1.5rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.progress-label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 0.65rem;
|
||||||
|
color: #168182;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.progress-heading h2 {
|
||||||
|
margin: 0;
|
||||||
|
color: #15383e;
|
||||||
|
font-size: clamp(1.4rem, 3vw, 2rem);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
.progress-value {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
color: #147778;
|
||||||
|
font-size: clamp(2.5rem, 5vw, 3.5rem);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.progress-track {
|
||||||
|
height: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 999px;
|
||||||
|
background: #dcebea;
|
||||||
|
}
|
||||||
|
.progress-fill {
|
||||||
|
width: 95%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: inherit;
|
||||||
|
background: linear-gradient(90deg, #29b6a8, #147778);
|
||||||
|
}
|
||||||
|
.progress-caption {
|
||||||
|
margin: 0.85rem 0 0;
|
||||||
|
color: #637b7f;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
@media (max-width: 639px) {
|
||||||
|
.progress-heading {
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
.progress-section {
|
||||||
|
margin: 2rem 0 3rem;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
<div className="parallax-container">
|
<div className="parallax-container">
|
||||||
<h1 className={'center-align text-white service-text dana font-weight-bold'}> درباره بیمارستان </h1>
|
<h1 className={'center-align text-white service-text dana font-weight-bold'}> درباره بیمارستان </h1>
|
||||||
<Image
|
<Image
|
||||||
@@ -30,22 +95,30 @@ const About = (props) => {
|
|||||||
</h5>
|
</h5>
|
||||||
<p className={'right-align RTL'}>
|
<p className={'right-align RTL'}>
|
||||||
بیمارستان تخصصی مهرایرانیان واقع در اتوبان چهاربانده اصلی داخلی شهر پرند در بهترین موقعیت مکانی و در دل مسکن مهر، با فضای درمانی به متراژ تقریبی 21.000 متر مربع همراه با 4000 متر پارکینگ طبقاتی، با هدف تبدیل شدن به یکی از قطب های درمانی منطقه در حال احداث می باشد. این بیمارستان که تنها بیمارستان تخصصی در کنار بزرگترین فرودگاه کشور است در فاز اولیه احداث دارای 96 تختخواب و دارای بخش های ICU،CCU،NICU،زایشگاه، اتاق های عمل، مرکز تصویربرداری،آزمایشگاه،داروخانه، اورژانس، بخش اسکوپی و گوارش، و دندانپزشکی عمومی و تخصصی می باشد. این بیمارستان در آینده نه چندان دور سهم بسزایی در بهداشت و درمان منطقه جنوب غرب تهران که شامل شهرهای پرند،رباط کریم،نسیم شهر و شهرک های تابعه است، خواهد داشت.
|
بیمارستان تخصصی مهرایرانیان واقع در اتوبان چهاربانده اصلی داخلی شهر پرند در بهترین موقعیت مکانی و در دل مسکن مهر، با فضای درمانی به متراژ تقریبی 21.000 متر مربع همراه با 4000 متر پارکینگ طبقاتی، با هدف تبدیل شدن به یکی از قطب های درمانی منطقه در حال احداث می باشد. این بیمارستان که تنها بیمارستان تخصصی در کنار بزرگترین فرودگاه کشور است در فاز اولیه احداث دارای 96 تختخواب و دارای بخش های ICU،CCU،NICU،زایشگاه، اتاق های عمل، مرکز تصویربرداری،آزمایشگاه،داروخانه، اورژانس، بخش اسکوپی و گوارش، و دندانپزشکی عمومی و تخصصی می باشد. این بیمارستان در آینده نه چندان دور سهم بسزایی در بهداشت و درمان منطقه جنوب غرب تهران که شامل شهرهای پرند،رباط کریم،نسیم شهر و شهرک های تابعه است، خواهد داشت.
|
||||||
در حال حاضر این پروژه 80% پیشرفت فیزیکی داشته و طبقه همکف آن که شامل اورژانس و کلینیک های تخصصی است تا پایان آبان 1400 تکمیل خواهد شد.
|
در حال حاضر این پروژه 95% پیشرفت فیزیکی داشته و طبقه همکف آن که شامل اورژانس و کلینیک های تخصصی است تا پایان آبان 1400 تکمیل خواهد شد.
|
||||||
مرحله راه اندازی بیمارستان با حداقل ظرفیت تا پایان سال 1402 و مرحله تکمیل و راه اندازی کامل بیمارستان با ظرفیت 200 تخت در سال 1403 انجام خواهد شد.
|
مرحله راه اندازی بیمارستان با حداقل ظرفیت تا پایان سال 1402 و مرحله تکمیل و راه اندازی کامل بیمارستان با ظرفیت 200 تخت در سال 1403 انجام خواهد شد.
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<h5 style={{ marginTop: '2rem' }} className={'right-align font-weight-bold'}>
|
<section className='progress-section' aria-labelledby='progress-title'>
|
||||||
درصد پیشرفت کار
|
<div className='progress-heading'>
|
||||||
</h5>
|
|
||||||
<br/>
|
|
||||||
<div>
|
<div>
|
||||||
<MDBProgress height='30'>
|
<span className='progress-label'>پیشرفت پروژه</span>
|
||||||
<MDBProgressBar className={'dana'} width='80' valuemin={0} valuemax={100}>
|
<h2 id='progress-title'>درصد پیشرفت کار</h2>
|
||||||
80% پیشرفت فیزیکی پروژه
|
|
||||||
</MDBProgressBar>
|
|
||||||
</MDBProgress>
|
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<strong className='progress-value'>۹۵٪</strong>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className='progress-track'
|
||||||
|
role='progressbar'
|
||||||
|
aria-label='پیشرفت فیزیکی پروژه'
|
||||||
|
aria-valuenow={95}
|
||||||
|
aria-valuemin={0}
|
||||||
|
aria-valuemax={100}
|
||||||
|
>
|
||||||
|
<div className='progress-fill' />
|
||||||
|
</div>
|
||||||
|
<p className='progress-caption'>پیشرفت فیزیکی پروژه بیمارستان مهر پرند</p>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</AppContainer>
|
</AppContainer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,14 +19,14 @@ const ContactUs = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<AppContainer title={'درباره ما'}>
|
<AppContainer title={'تماس با ما'}>
|
||||||
<div className="parallax-container">
|
<div className="parallax-container">
|
||||||
<h2 className={'center-align text-white header_back service-text dana font-weight-bold'}> تماس با ما </h2>
|
<h1 className={'center-align text-white header_back service-text dana font-weight-bold'}> تماس با ما </h1>
|
||||||
<Image
|
<Image
|
||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
src="Parallax.png"
|
src="Parallax.png"
|
||||||
className={'responsive-img shadow-5'}
|
className={'responsive-img shadow-5'}
|
||||||
alt="Picture of the author"
|
alt="بیمارستان مهر پرند؛ آدرس و راههای ارتباطی"
|
||||||
width={2050}
|
width={2050}
|
||||||
height={950}
|
height={950}
|
||||||
/>
|
/>
|
||||||
@@ -43,7 +43,7 @@ const ContactUs = () => {
|
|||||||
<MDBTypography style={{ borderLeft: 'none', borderRight: '6px solid ', backgroundColor: '#F0F0F0' }} note noteColor='dark' className='mb-0'>
|
<MDBTypography style={{ borderLeft: 'none', borderRight: '6px solid ', backgroundColor: '#F0F0F0' }} note noteColor='dark' className='mb-0'>
|
||||||
<MDBRow>
|
<MDBRow>
|
||||||
<MDBTypography className={'dana right-align'} >
|
<MDBTypography className={'dana right-align'} >
|
||||||
تهران - شهر پرند - فاز 5 - بلوار شهید قاسم سلیمانی - بلوار رسوال اکرم - بیمارستان مهر ایرانیان پرند
|
تهران - شهر پرند - فاز 5 - بلوار شهید قاسم سلیمانی - بلوار رسوال اکرم - بیمارستان مهر پرند
|
||||||
</MDBTypography>
|
</MDBTypography>
|
||||||
</MDBRow>
|
</MDBRow>
|
||||||
</MDBTypography>
|
</MDBTypography>
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ const CooperationSales = () => {
|
|||||||
{/* <img src ={cartmo} alt="" /> */}
|
{/* <img src ={cartmo} alt="" /> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 className="text-white text-lg font-bold lg:text-[28px] font-extrabold text-center pt-8 xl:pt-16">
|
<h1 className="text-white text-lg font-bold lg:text-[28px] font-extrabold text-center pt-8 xl:pt-16">
|
||||||
همکاری در فروش سهام
|
همکاری در فروش سهام
|
||||||
</h2>
|
</h1>
|
||||||
<p className="text-white w-[85%] md:w-[60%] text-sm lg:text-[22px] font-medium leading-[1.8rem] lg:w-[42%] xl:w-[40%] mx-auto text-center lg:leading-8 xl:leading-10 py-2 lg:py-4">
|
<p className="text-white w-[85%] md:w-[60%] text-sm lg:text-[22px] font-medium leading-[1.8rem] lg:w-[42%] xl:w-[40%] mx-auto text-center lg:leading-8 xl:leading-10 py-2 lg:py-4">
|
||||||
با ثبت نام در سامانه خرید سهام، کد معرف شما ایجاد و قابل اشتراک
|
با ثبت نام در سامانه خرید سهام، کد معرف شما ایجاد و قابل اشتراک
|
||||||
گذاری می شود. کد معرف یکتای خود را با دوستان خود به اشتراک بگذارید
|
گذاری می شود. کد معرف یکتای خود را با دوستان خود به اشتراک بگذارید
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ const Docs = () => {
|
|||||||
}
|
}
|
||||||
const dataFile = [
|
const dataFile = [
|
||||||
// {id: 1,title: 'اساسنامه شرکت سهامی مهر ایرانیان پرند' ,url: '../resource/files/اساسنامه شرکت سهامی.pdf'},
|
// {id: 1,title: 'اساسنامه شرکت سهامی مهر ایرانیان پرند' ,url: '../resource/files/اساسنامه شرکت سهامی.pdf'},
|
||||||
{id: 2,title: 'آگهی افزایش سرمایه بیمارستان مهر ایرانیان پرند' ,url: '../resource/files/آگهی افزایش سرمایه.pdf'},
|
{id: 2,title: 'آگهی افزایش سرمایه بیمارستان مهر پرند' ,url: '../resource/files/آگهی افزایش سرمایه.pdf'},
|
||||||
{id: 3,title: 'آگهی تغییرات روزنامه رسمی' ,url: '../resource/files/آگهی تغییرات روزنامه رسمی.jpg'},
|
{id: 3,title: 'آگهی تغییرات روزنامه رسمی' ,url: '../resource/files/آگهی تغییرات روزنامه رسمی.jpg'},
|
||||||
{id: 4,title: 'موافقت اصولی' ,url: '../resource/files/Agrement.pdf'},
|
{id: 4,title: 'موافقت اصولی' ,url: '../resource/files/Agrement.pdf'},
|
||||||
{id: 5,title: ' اساسنامه شرکت سهامی خاص پزشکی مهر ایرانیان پرند' ,url: '../resource/files/اساسنامه شرکت سهامی خاص پزشکی مهرایرانیان پرند.pdf'},
|
{id: 5,title: ' اساسنامه شرکت سهامی خاص پزشکی مهر ایرانیان پرند' ,url: '../resource/files/اساسنامه شرکت سهامی خاص پزشکی مهرایرانیان پرند.pdf'},
|
||||||
@@ -18,7 +18,7 @@ const Docs = () => {
|
|||||||
<AppContainer title={' اساسنامه شرکت'}>
|
<AppContainer title={' اساسنامه شرکت'}>
|
||||||
<div className="parallax-container">
|
<div className="parallax-container">
|
||||||
<div className={'d-flex'}>
|
<div className={'d-flex'}>
|
||||||
<h2 className={'center-align text-white header_back service-text dana font-weight-bold'}> اسناد رسمی شرکت پزشکی مهر ایرانیان پرند </h2>
|
<h1 className={'center-align text-white header_back service-text dana font-weight-bold'}> اسناد رسمی شرکت پزشکی مهر ایرانیان پرند </h1>
|
||||||
</div>
|
</div>
|
||||||
<Image
|
<Image
|
||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import {
|
|||||||
} from 'mdb-react-ui-kit'
|
} from 'mdb-react-ui-kit'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import { AppFile, AppUrl } from '../../../lib/api'
|
import { AppFile, AppUrl } from '../../../lib/api'
|
||||||
|
import { newsSeo } from '../../../lib/seo'
|
||||||
import { Tag, TagLabel, HStack } from '@chakra-ui/react'
|
import { Tag, TagLabel, HStack } from '@chakra-ui/react'
|
||||||
|
|
||||||
const moment = require('moment-jalaali')
|
const moment = require('moment-jalaali')
|
||||||
@@ -40,7 +41,7 @@ const News = ({ post }) => {
|
|||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
src='Parallax.png'
|
src='Parallax.png'
|
||||||
className={'responsive-img shadow-5'}
|
className={'responsive-img shadow-5'}
|
||||||
alt='Picture of the author'
|
alt={post.title}
|
||||||
width={2050}
|
width={2050}
|
||||||
height={1050}
|
height={1050}
|
||||||
priority
|
priority
|
||||||
@@ -175,11 +176,14 @@ const News = ({ post }) => {
|
|||||||
export default News
|
export default News
|
||||||
|
|
||||||
export const getServerSideProps = async context => {
|
export const getServerSideProps = async context => {
|
||||||
const { query } = context
|
const { slug } = context.params
|
||||||
const posData = await axios.get(AppUrl(`news/${query.slug}`))
|
try {
|
||||||
const post = await posData.data
|
const { data: post } = await axios.get(AppUrl(`news/${encodeURIComponent(slug)}`), { timeout: 10000 })
|
||||||
|
if (!post || !post.title || typeof post.text !== 'string') return { notFound: true }
|
||||||
return {
|
return { props: { post, seo: newsSeo(post, slug) } }
|
||||||
props: { post, fallback: false } // will be passed to the page component as props
|
} catch (error) {
|
||||||
|
if (error.response && error.response.status === 404) return { notFound: true }
|
||||||
|
// Temporary upstream failures must stay 5xx rather than removing real articles from search.
|
||||||
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ const Sales = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div id='callstock' className=' text-center py-8 m '>
|
<div id='callstock' className=' text-center py-8 m '>
|
||||||
<h1 className='text-[#3c3c3c] text-[28px] font-bold mt-5 '>ارتباط با ما </h1>
|
<h2 className='text-[#3c3c3c] text-[28px] font-bold mt-5 '>ارتباط با ما </h2>
|
||||||
<span className='text-[#656565] text-base p-2 md:text-[22px] md:p-0 font-light'>
|
<span className='text-[#656565] text-base p-2 md:text-[22px] md:p-0 font-light'>
|
||||||
برای ارتباط با ما فرم زیر را تکمیل کنید
|
برای ارتباط با ما فرم زیر را تکمیل کنید
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const QuestionAndAnswer = () => {
|
|||||||
// {
|
// {
|
||||||
// id: 2,
|
// id: 2,
|
||||||
// title: 'چگونه سهام خریداری کنیم ؟ ',
|
// title: 'چگونه سهام خریداری کنیم ؟ ',
|
||||||
// text: 'برای خرید سهام می توانید با شماره 53547000-021 تماس حاصل فرمایید یا از طریق مراجعه به دفتر خرید سهام (واقع در شهر پرند ، بلوار شهید فاسم سلیمانی ( چهار بانده) فاز 5 ، بیمارستان مهر ایرانیان پرند) اقدام به خرید سهام فرمایید .'
|
// text: 'برای خرید سهام می توانید با شماره 53547000-021 تماس حاصل فرمایید یا از طریق مراجعه به دفتر خرید سهام (واقع در شهر پرند ، بلوار شهید فاسم سلیمانی ( چهار بانده) فاز 5 ، بیمارستان مهر پرند) اقدام به خرید سهام فرمایید .'
|
||||||
// },
|
// },
|
||||||
// {
|
// {
|
||||||
// id: 3,
|
// id: 3,
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ const Recruitment = dataoccupational => {
|
|||||||
<div className='parallax-container'>
|
<div className='parallax-container'>
|
||||||
<div className={'flex flex-column'}>
|
<div className={'flex flex-column'}>
|
||||||
<div className={'mb-5'}>
|
<div className={'mb-5'}>
|
||||||
<h2 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
|
<h1 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
|
||||||
فرصت های شغلی
|
فرصت های شغلی
|
||||||
</h2>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
@@ -82,11 +82,11 @@ const Recruitment = dataoccupational => {
|
|||||||
<FiUsers size={35} />
|
<FiUsers size={35} />
|
||||||
</div>
|
</div>
|
||||||
<MDBCardTitle className={'bk-med mt-2 right'}>{item.title} </MDBCardTitle>
|
<MDBCardTitle className={'bk-med mt-2 right'}>{item.title} </MDBCardTitle>
|
||||||
<Link href={`recruitment/item/${item.id}`}>
|
<Link href={`/recruitment/item/${item.id}`}>
|
||||||
<MDBBtn rounded size={'sm'} className={'mt-2 flex align-items-center bk-light bg-primary-teal'}>
|
<a className={'btn btn-rounded btn-sm mt-2 flex align-items-center bk-light bg-primary-teal text-white'}>
|
||||||
مشاهده
|
مشاهده
|
||||||
<FiArrowLeft className={'mr-2'} />
|
<FiArrowLeft className={'mr-2'} />
|
||||||
</MDBBtn>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</MDBCardBody>
|
</MDBCardBody>
|
||||||
</MDBCard>
|
</MDBCard>
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import axios from 'axios'
|
|||||||
import { AppProduction } from '../../../lib/api'
|
import { AppProduction } from '../../../lib/api'
|
||||||
|
|
||||||
const Recruitment = jobs => {
|
const Recruitment = jobs => {
|
||||||
console.log(jobs)
|
|
||||||
const Parallax = ({ quality }) => {
|
const Parallax = ({ quality }) => {
|
||||||
return `../../resource/parallax/33012321.jpg`
|
return `../../resource/parallax/33012321.jpg`
|
||||||
}
|
}
|
||||||
@@ -32,10 +31,10 @@ const Recruitment = jobs => {
|
|||||||
<div className='parallax-container'>
|
<div className='parallax-container'>
|
||||||
<div className={'flex flex-column'}>
|
<div className={'flex flex-column'}>
|
||||||
<div className={'mb-5'}>
|
<div className={'mb-5'}>
|
||||||
<h2 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
|
<h1 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
|
||||||
|
|
||||||
فرصت های شغلی بیمارستان مهر ایرانیان
|
فرصتهای شغلی {jobs.jobs.name.title} بیمارستان مهر پرند
|
||||||
</h2>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
@@ -127,7 +126,10 @@ export async function getServerSideProps(ctx) {
|
|||||||
const jobs = await res
|
const jobs = await res
|
||||||
|
|
||||||
// Pass data to the page via props
|
// Pass data to the page via props
|
||||||
return { props: { jobs } }
|
return { props: { jobs, seo: {
|
||||||
|
title: `استخدام ${jobs.name.title}`,
|
||||||
|
description: `فرصتهای شغلی گروه ${jobs.name.title} در بیمارستان مهر پرند؛ مشاهده عنوانهای شغلی و ثبت درخواست استخدام.`
|
||||||
|
} } }
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Recruitment
|
export default Recruitment
|
||||||
|
|||||||
@@ -33,12 +33,13 @@ const StockUnit = () => {
|
|||||||
loader={Parallax}
|
loader={Parallax}
|
||||||
src='Parallax.png'
|
src='Parallax.png'
|
||||||
className={'responsive-img shadow-5'}
|
className={'responsive-img shadow-5'}
|
||||||
alt='امور سهام بیمارستان مهر ایرانیان'
|
alt='امور سهام بیمارستان مهر پرند'
|
||||||
width={3000}
|
width={3000}
|
||||||
height={1300}
|
height={1300}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className={'mb-5 mt-5 mx-5'}>
|
<div className={'mb-5 mt-5 mx-5'}>
|
||||||
|
<h1 className='text-center'>واحد امور سهام بیمارستان مهر پرند</h1>
|
||||||
<div className='my-4'>
|
<div className='my-4'>
|
||||||
<SimpleGrid spacing={15} columns={[1, 2]}>
|
<SimpleGrid spacing={15} columns={[1, 2]}>
|
||||||
<Link href={'/stock-unit/stock-check'}>
|
<Link href={'/stock-unit/stock-check'}>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 648 KiB |
Binary file not shown.
+3
-5
@@ -1,7 +1,5 @@
|
|||||||
User-agent: *
|
User-agent: *
|
||||||
Disallow: /includes/
|
Allow: /
|
||||||
|
Disallow: /api/
|
||||||
|
|
||||||
User-agent: Google
|
Sitemap: https://miphospital.ir/sitemap.xml
|
||||||
Allow: /includes/
|
|
||||||
|
|
||||||
Sitemap: http://miphospital.ir/api/my-sitemap
|
|
||||||
|
|||||||
@@ -1,29 +1,36 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: Vazir-import !important;
|
font-family: Vazir-import !important;
|
||||||
src: url("Vazir-Regular.ttf");
|
src: url("Vazir-Regular.ttf");
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: dana-fanum;
|
font-family: dana-fanum;
|
||||||
src: url("Dana-FaNum-Regular.ttf");
|
src: url("Dana-FaNum-Regular.ttf");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: yekanBakh;
|
font-family: yekanBakh;
|
||||||
src: url("YekanLight.ttf");
|
src: url("YekanLight.ttf");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: yekanBakhMed;
|
font-family: yekanBakhMed;
|
||||||
src: url("YekanMedium.ttf");
|
src: url("YekanMedium.ttf");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: yekanBakhLight;
|
font-family: yekanBakhLight;
|
||||||
src: url("YekanLight.ttf");
|
src: url("YekanLight.ttf");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: yekanBakhHeavy;
|
font-family: yekanBakhHeavy;
|
||||||
src: url("YekanBakhHeavy.ttf");
|
src: url("YekanBakhHeavy.ttf");
|
||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-display: swap;
|
||||||
font-family: yekanBakhBold;
|
font-family: yekanBakhBold;
|
||||||
src: url("YekanBakhBold.ttf");
|
src: url("YekanBakhBold.ttf");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ registerInteraction('click-active-region', {
|
|||||||
|
|
||||||
const StockPriceChart = () => {
|
const StockPriceChart = () => {
|
||||||
return (
|
return (
|
||||||
<AppContainer title={'قیمت سهام بیمارستان مهر ایرانیان'}>
|
<AppContainer title={'قیمت سهام بیمارستان مهر پرند'}>
|
||||||
<div className='bg-stock-price p-5 '>
|
<div className='bg-stock-price p-5 '>
|
||||||
<h2 className='bk-heavy text-xs text-center text-white hover:hidden hover:hidden '>
|
<h2 className='bk-heavy text-xs text-center text-white hover:hidden hover:hidden '>
|
||||||
قیمت سهام بیمارستان مهر ایرانیان
|
قیمت سهام بیمارستان مهر پرند
|
||||||
</h2>
|
</h2>
|
||||||
<MDBContainer
|
<MDBContainer
|
||||||
dir='rtl'
|
dir='rtl'
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import Head from 'next/head'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
import { getSeo, SITE_NAME, hospitalSchema, serializeJsonLd } from '../../lib/seo'
|
||||||
|
|
||||||
|
export default function Seo({ metadata = {} }) {
|
||||||
|
const router = useRouter()
|
||||||
|
const seo = getSeo(router.asPath, metadata)
|
||||||
|
const title = seo.title.includes(SITE_NAME) ? seo.title : `${seo.title} | ${SITE_NAME}`
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Head>
|
||||||
|
<title>{title}</title>
|
||||||
|
<meta name='description' content={seo.description} key='description' />
|
||||||
|
<meta name='robots' content={seo.noindex ? 'noindex, follow' : 'index, follow, max-image-preview:large'} key='robots' />
|
||||||
|
<link rel='canonical' href={seo.canonical} key='canonical' />
|
||||||
|
<meta property='og:locale' content='fa_IR' />
|
||||||
|
<meta property='og:site_name' content={SITE_NAME} />
|
||||||
|
<meta property='og:type' content={seo.type} />
|
||||||
|
<meta property='og:title' content={title} />
|
||||||
|
<meta property='og:description' content={seo.description} />
|
||||||
|
<meta property='og:url' content={seo.canonical} />
|
||||||
|
<meta property='og:image' content={seo.image} />
|
||||||
|
<meta property='og:image:alt' content={seo.title} />
|
||||||
|
<meta name='twitter:card' content='summary_large_image' />
|
||||||
|
<meta name='twitter:title' content={title} />
|
||||||
|
<meta name='twitter:description' content={seo.description} />
|
||||||
|
<meta name='twitter:image' content={seo.image} />
|
||||||
|
<link rel='icon' href='/favicon.ico' />
|
||||||
|
{!seo.noindex && (
|
||||||
|
<script type='application/ld+json' key='structured-data' dangerouslySetInnerHTML={{
|
||||||
|
__html: serializeJsonLd(seo.structuredData ? [hospitalSchema, seo.structuredData] : hospitalSchema)
|
||||||
|
}} />
|
||||||
|
)}
|
||||||
|
</Head>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
const { test } = require('node:test')
|
||||||
|
const assert = require('node:assert/strict')
|
||||||
|
const { canonicalUrl, getSeo, newsSeo, serializeJsonLd, sitemapLinks } = require('../lib/seo')
|
||||||
|
|
||||||
|
test('canonical URLs remove tracking, fragments and trailing slashes without trusting an external host', () => {
|
||||||
|
assert.equal(canonicalUrl('/page/about/?utm_source=test#intro'), 'https://miphospital.ir/page/about')
|
||||||
|
assert.equal(canonicalUrl('/'), 'https://miphospital.ir/')
|
||||||
|
assert.equal(canonicalUrl('//evil.example/page'), 'https://miphospital.ir/')
|
||||||
|
assert.equal(canonicalUrl('https://evil.example/page'), 'https://miphospital.ir/')
|
||||||
|
})
|
||||||
|
|
||||||
|
test('public pages have distinct descriptions and internal pages remain out of search', () => {
|
||||||
|
assert.notEqual(getSeo('/page/about').description, getSeo('/page/contact-us').description)
|
||||||
|
assert.equal(getSeo('/page/contact-us').noindex, false)
|
||||||
|
for (const route of ['/components/slider', '/appContainer', '/recruitment/inquiry', '/recruitment/item/request/23', '/404']) {
|
||||||
|
assert.equal(getSeo(route).noindex, true, route)
|
||||||
|
}
|
||||||
|
assert.equal(getSeo('/components/service').noindex, false)
|
||||||
|
assert.equal(getSeo('/page/news/36').noindex, false)
|
||||||
|
assert.match(getSeo('/recruitment/inquiry').title, /استعلام/)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('article metadata derives a plain text summary and absolute cover URL from the actual article', () => {
|
||||||
|
const seo = newsSeo({ title: 'خبر افتتاح', text: '<p>خبر <strong>بیمارستان</strong></p><script>bad()</script>', cover: 'news.jpg' }, '36')
|
||||||
|
assert.equal(seo.title, 'خبر افتتاح')
|
||||||
|
assert.equal(seo.description, 'خبر بیمارستان')
|
||||||
|
assert.equal(seo.image, 'https://mehrara-api.iran.liara.run/panel-public/uploads/news.jpg')
|
||||||
|
assert.equal(seo.structuredData['@type'], 'NewsArticle')
|
||||||
|
assert.equal(seo.structuredData.mainEntityOfPage, 'https://miphospital.ir/page/news/36')
|
||||||
|
})
|
||||||
|
|
||||||
|
test('JSON-LD cannot terminate its HTML script element', () => {
|
||||||
|
const value = { name: '</script><script>alert(1)</script>' }
|
||||||
|
const serialized = serializeJsonLd(value)
|
||||||
|
assert.equal(serialized.includes('<'), false)
|
||||||
|
assert.deepEqual(JSON.parse(serialized), value)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('sitemap contains real public routes and unique valid article IDs only', () => {
|
||||||
|
const links = sitemapLinks([{ id: 36 }, { id: 36 }, { id: '../bad' }, { id: null }, { id: 82 }])
|
||||||
|
assert.ok(links.includes('/page/contact-us'))
|
||||||
|
assert.ok(links.includes('/page/news/36'))
|
||||||
|
assert.ok(links.includes('/page/news/82'))
|
||||||
|
assert.equal(links.filter(url => url === '/page/news/36').length, 1)
|
||||||
|
assert.equal(links.includes('/contact-us'), false)
|
||||||
|
assert.equal(links.some(url => url.includes('request') || url.includes('../')), false)
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user