change design all page & component page booking and account & cleancode

This commit is contained in:
Ehsan
2024-09-01 20:43:53 +03:30
parent 2afd79b84d
commit bb154ac63f
46 changed files with 685 additions and 523 deletions
-16
View File
@@ -1,16 +0,0 @@
import AccountPage from '@/components/account';
import doctors from '@/data/doctors.json';
import Layout from '@/components/layout';
function Account({ params: { slug } }) {
const doctor = doctors.find(item => item.id === +slug);
return (
<Layout title='وبلاگ ها' name='blogs' disableFooter={true}>
<AccountPage doctor={doctor} />
</Layout>
)
}
export default Account
+54 -6
View File
@@ -1,17 +1,65 @@
import BookingPage from '@/components/booking';
'use client'
import { useState } from 'react';
import Layout from '@/components/layout';
import doctors from '@/data/doctors.json';
import Date from '@/components/booking/date';
import BookingPage from '@/components/booking';
import RegisterPage from '@/components/register';
import SetCodePage from '@/components/register/SetCodePage';
import Paying from '@/components/booking/paying';
import LogInPage from '@/components/register/LogInPage';
import SuccessPay from '@/components/booking/successPay';
import FailedPay from '@/components/booking/failedPay';
import Detail from '@/components/booking/detail';
function Booking({ params: { slug } }) {
const doctor = doctors.find(item => item.id === +slug);
const [step, setStep] = useState(0);
const [isForAnother, setIsForAnother] = useState(false);
const [data, setData] = useState({
phone: { value: '09121056987', isEdit: false },
codemeli: { value: '1741025645', isEdit: false },
name: { value: 'ساغر صابری نژاد', isEdit: false }
});
const elements = [
<Date doctor={doctor} setStep={setStep} />,
<LogInPage setIsSendMsg={false} setStep={setStep} />,
<SetCodePage setIsSendMsg={false} link={false} setStep={setStep} />,
<Detail isForAnother={isForAnother} setIsForAnother={setIsForAnother} setStep={setStep} data={data} setData={setData} />,
<Paying setStep={setStep} />,
<SuccessPay setStep={setStep} />,
<FailedPay setStep={setStep} />
]
return (
<Layout title='رزرو' name='booking'>
<BookingPage
doctor={doctor}
/>
</Layout>
<>
{step === 1 || step === 2 ? (
<RegisterPage>
{elements[step]}
</RegisterPage>
) : (
<Layout
title='رزرو'
name='booking'
disableFooter={step > 2}
paddingBottom='pb-[80px]'
>
<BookingPage
disableSide={step === 5 || step === 6}
isFirst={step === 0}
doctor={doctor}
>
{elements[step]}
</BookingPage>
</Layout>
)}
</>
)
}
+4
View File
@@ -24,6 +24,10 @@ function Tabs({ value, handleChange, listTab, isSm }) {
borderRadius: isSm ? '8px' : '10px',
background: '#F17732'
},
'& .MuiTabs-flexContainer': {
borderBottom: isSm ? '2px solid #EFEFEF' : '',
marginBottom: isSm ? '1px' : ''
},
'& .mui-11pdt05-MuiButtonBase-root-MuiTab-root.Mui-selected': {
color: '#F17732 !important'
},
+63 -11
View File
@@ -1,12 +1,17 @@
'use client';
import { useState } from 'react';
import { useEffect, useRef, useState } from 'react';
import { DatePicker as DatePickerJalali } from "jalaali-react-date-picker";
import Image from 'next/image';
import { Button, Skeleton } from '@mui/material';
function DatePicker({ date, updateDate }) {
const nextIconDatePicker = useRef();
const [startDate, setStartDate] = useState(null);
const [endDate, setEndDate] = useState(null);
const [endDate, setEndDate] = useState();
const [loading, setLoading] = useState(true);
const handleStartDateChange = (date) => {
if (date) {
@@ -24,20 +29,67 @@ function DatePicker({ date, updateDate }) {
}
};
const handleDisableDate = e => {
const today = new Date();
return today >= e._d
}
useEffect(() => {
if (nextIconDatePicker.current) {
nextIconDatePicker.current.click()
setLoading(false)
}
}, [nextIconDatePicker])
return (
<div className='flex items-start justify-evenly w-full'>
<DatePickerJalali
value={startDate}
className='w-1/2'
timePicker={false}
onChange={handleStartDateChange}
/>
<div className='w-1/2 hidden md:flex lg:hidden xl:flex'>
<div className='w-1/2 relative flex justify-center'>
<DatePickerJalali
value={endDate}
value={startDate}
className={`w-full ${loading ? 'opacity-0' : 'opacity-100'}`}
timePicker={false}
onChange={handleEndDateChange}
onChange={handleStartDateChange}
disabledDates={e => handleDisableDate(e)}
/>
{loading && (
<Skeleton
variant="rectangular"
className='!w-[300px] !rounded-[6px] !absolute !top-0 !right-1/2 !translate-x-1/2 !z-10'
height={352}
/>
)}
</div>
<div className='w-1/2 hidden md:flex lg:hidden xl:flex'>
<div className='w-full relative flex justify-center'>
<DatePickerJalali
value={endDate}
timePicker={false}
className={`w-full ${loading ? 'opacity-0' : 'opacity-100'}`}
nextIcon={
<Button
className='!min-w-0 !p-0 !rounded-full'
ref={nextIconDatePicker}
onClick={e => e.preventDefault()}
>
<Image
src='/assets/icons/arrow-right.svg'
className='icon-left-datepicker'
height={24}
width={24}
/>
</Button>
}
onChange={handleEndDateChange}
disabledDates={e => handleDisableDate(e)}
/>
{loading && (
<Skeleton
variant="rectangular"
className='!w-[300px] !rounded-[6px] !absolute !top-0 !right-1/2 !translate-x-1/2 !z-10'
height={352}
/>
)}
</div>
</div>
</div>
);
+4 -3
View File
@@ -3,7 +3,7 @@ import { Button } from "@mui/material";
function Hours({ doctor, hour, setHour, value, nameHours }) {
return (
<ul
className="grid grid-cols-3 md:grid-cols-4 lg:grid-cols-6 gap-x-[16px] gap-y-[24px] mt-[24px] mb-[40px]"
className="grid grid-cols-3 md:grid-cols-4 lg:grid-cols-6 gap-x-[16px] gap-y-[12px] sm:gap-y-[16px] md:gap-y-[20px] lg:gap-y-[24px] mt-[24px] mb-[40px]"
>
{doctor[nameHours[value]].map((item, idx) => (
<li
@@ -11,13 +11,14 @@ function Hours({ doctor, hour, setHour, value, nameHours }) {
>
<Button
onClick={() => setHour(idx)}
disabled={!item.active}
className={`
!w-full !rounded-[8px] !grid !place-items-center !bg-[#EFEFEF] !py-[10px] !px-[14px] !h-[40px] md:!h-[42px] lg:!h-[44px]
!w-full !rounded-[8px] !bg-[#EFEFEF] !grid !place-items-center !py-[10px] !px-[14px] !h-[40px] md:!h-[42px] lg:!h-[44px]
${idx === hour ? '!bg-[#F79463] ' : ''}
`}
>
<p className={`
text-[16px] font-semibold
text-[16px] font-semibold text-[#525252]
${item.active ? 'text-[#525252]' : 'text-[#D7D7D7]'}
${idx === hour ? '!text-[#FAFAFA] ' : ''}
`}>{item.hour}</p>
+12 -11
View File
@@ -1,16 +1,15 @@
'use client';
import { useState } from "react";
import Tabs from "../../Tabs";
import Hours from "./Hours";
import Tabs from "../../Tabs";
import { Button } from "@mui/material";
import ArrowLeftB from "@/components/icons/ArrowLeftB";
import Link from "next/link";
const listTab = ['صبح', 'بعد از ظهر'];
const nameHours = ['hours_morning', 'hours_afternoon']
function DateTime({ doctor }) {
function DateTime({ doctor, setStep, setIsError, locateVisit }) {
const [value, setValue] = useState(0);
const [hour, setHour] = useState(0);
@@ -32,21 +31,23 @@ function DateTime({ doctor }) {
setHour={setHour}
nameHours={nameHours}
/>
<Link
href='/login-verify'
className="w-full flex justify-end"
>
<div className="w-full flex justify-end">
<Button
className="!gap-[4px] !px-[12px] !py-[8px] md:!py-[9px] !w-full md:!w-fit !min-w-[157px]"
onClick={() =>
localStorage.setItem('doctor-id', doctor?.id)
}
onClick={() => {
if (locateVisit) {
localStorage.setItem('doctor-id', doctor?.id);
setStep(prev => prev + 1);
} else {
setIsError(true);
}
}}
variant="contained"
>
<p className="text-[#EFEFEF] text-[16px] font-medium">تایید نوبت</p>
<ArrowLeftB />
</Button>
</Link>
</div>
</div>
)
}
+4 -1
View File
@@ -2,7 +2,7 @@ import BottomSelect from "@/components/icons/BottomSelect";
import { Autocomplete, TextField } from "@mui/material";
import { styleTextSelectRight } from "@/mui";
function AutoCompleteSelect({ list, updateData, name, label }) {
function AutoCompleteSelect({ list, isError, updateData, name, label }) {
return (
<Autocomplete
disablePortal
@@ -25,6 +25,9 @@ function AutoCompleteSelect({ list, updateData, name, label }) {
borderRadius: 2,
padding: '5px 16px !important'
},
'& .MuiOutlinedInput-notchedOutline': {
border: isError ? '1px solid red' : ''
}
}}
renderInput={params =>
<TextField
+12
View File
@@ -359,6 +359,10 @@ html {
rotate: 180deg;
}
.icon-left-datepicker {
rotate: 180deg;
}
.panel-date-holder-item span {
/* font-family: Iran Sans !important; */
font-size: 18px !important;
@@ -422,6 +426,14 @@ html {
background: #FFF !important;
}
.day-item-outer .day-item-chain .day {
border-radius: 50%;
}
.panel-jalaali .today {
border-color: transparent !important;
}
@media (max-width: 1024px) {
.day-label-bar-inner-rtl,
+2 -2
View File
@@ -2,7 +2,7 @@
import RegisterPage from '@/components/register';
import SetCodePage from '@/components/register/SetCodePage';
import SignInPage from '@/components/register/SignInPage';
import LogInPage from '@/components/register/LoginPage';
import { useState } from 'react';
function LoginVerify() {
@@ -16,7 +16,7 @@ function LoginVerify() {
setIsSendMsg={setIsSendMsg}
link={`/account/${localStorage.getItem('doctor-id')}`}
/> :
<SignInPage setIsSendMsg={setIsSendMsg} />}
<LogInPage setIsSendMsg={setIsSendMsg} />}
</RegisterPage>
)
}
+6 -5
View File
@@ -1,12 +1,12 @@
'use client';
import RegisterPage from '@/components/register';
import SetCodePage from '@/components/register/SetCodePage';
import SignInPage from '@/components/register/SignInPage';
import LogInPage from '@/components/register/LogInPage';
import { useState } from 'react';
function SignIn() {
function LogIn() {
const [isSendMsg, setIsSendMsg] = useState(true);
const [isSendMsg, setIsSendMsg] = useState(false);
return (
<div>
@@ -14,12 +14,13 @@ function SignIn() {
{isSendMsg ?
<SetCodePage
setIsSendMsg={setIsSendMsg}
setStep={false}
link='/'
/> :
<SignInPage setIsSendMsg={setIsSendMsg} />}
<LogInPage setStep={false} setIsSendMsg={setIsSendMsg} />}
</RegisterPage>
</div>
)
}
export default SignIn
export default LogIn
-9
View File
@@ -1,9 +0,0 @@
import React from 'react'
function SignUp() {
return (
<div>SignUp</div>
)
}
export default SignUp
-19
View File
@@ -1,19 +0,0 @@
import Detail from "./Detail"
import Head from "./Head"
function DetailDoctor({ doctor, typePay, isPay }) {
return (
<div
className={`p-[24px] opacity-page w-full lg:w-[41%] rounded-[8px] border
border-solid border-[#EFEFEF] bg-[#FFF]
${typePay === 'success' || typePay === 'failed' ? 'hidden md:block' : 'block'}
`}
>
<p className="text-[#3B3B3B] text-[20px] font-bold">جزئیات نوبت</p>
<Head doctor={doctor} />
<Detail doctor={doctor} />
</div>
)
}
export default DetailDoctor
-34
View File
@@ -1,34 +0,0 @@
'use client';
import { useState } from "react";
import DetailDoctor from "./detailDoctor"
import Information from "./information";
function AccountPage({ doctor }) {
const [typePay, setTypePay] = useState('default');
const [isPay, setIsPay] = useState(false);
return (
<div
className="padding-responsive pt-[76px] sm:pt-[114px]
md:pt-[152px] lg:pt-[192px] flex-col lg:flex-row
flex items-start gap-[12px] sm:gap-[16px] md:gap-[20px] lg:gap-[24px]
pb-[99px] sm:pb-[129px] md:pb-[80px] lg:pb-[108px]"
>
<DetailDoctor
typePay={typePay}
doctor={doctor}
isPay={isPay}
/>
<Information
isPay={isPay}
typePay={typePay}
setIsPay={setIsPay}
setTypePay={setTypePay}
/>
</div>
)
}
export default AccountPage
@@ -1,75 +0,0 @@
import { useState } from "react";
import Form from "./Form";
import { Button } from "@mui/material";
import AddCircleBlueA from "@/components/icons/AddCircleBlueA";
import ArrowLeftB from "@/components/icons/ArrowLeftB";
import ButtonFixed from "../ButtonFixed";
function Detail({ isForAnother, setIsForAnother, fadeElement, setIsPay }) {
const [selected, setSelected] = useState({
first: '',
second: ''
});
const [data, setData] = useState({
phone: { value: '09121056987', isEdit: false },
codemeli: { value: '1741025645', isEdit: false },
name: { value: 'ساغر صابری نژاد', isEdit: false }
});
const changeData = (value, type, name) =>
setData({
...data,
[name]: {
...data[name],
[type]: value
}
});
const updateSelect = (event, name) => setSelected({ ...selected, [name]: event.target.innerText })
return (
<>
<p className="text-[#3B3B3B] text-[20px] font-bold">
{isForAnother ? 'اطلاعات کاربر جدید' : 'اطلاعات حساب کاربری'}
</p>
<Form
isForAnother={isForAnother}
updateSelect={updateSelect}
changeData={changeData}
data={data}
/>
{!isForAnother && (
<Button
className="!flex !items-center !justify-start !gap-[8px] !mt-[12px] sm:!mt-[16px] md:!mt-[20px] lg:!mt-[24px] !p-1"
onClick={() => {
fadeElement(() => setIsForAnother(true))
setData({
phone: { value: '09121056987', isEdit: false },
codemeli: { value: '1741025645', isEdit: false },
name: { value: 'ساغر صابری نژاد', isEdit: false }
});
}}
>
<AddCircleBlueA />
<p className="text-[#5559CE] text-[16px] font-medium">دریافت نوبت برای فرد دیگر </p>
</Button>
)}
<ButtonFixed>
<Button
className={`
!flex !w-full md:!w-fit
!gap-[4px] md:!mr-auto !px-[12px] !py-[8px] md:!py-[9px] !min-w-[150px]
${isForAnother ? '!mt-0 md:!mt-[40px]' : '!mt-0 md:!mt-[32px]'}`}
variant="contained"
onClick={() => fadeElement(() => setIsPay(true))}
>
<p className="text-[#EFEFEF] text-[16px] font-medium">ثبت اطلاعات</p>
<ArrowLeftB />
</Button>
</ButtonFixed>
</>
)
}
export default Detail
-47
View File
@@ -1,47 +0,0 @@
import { useState } from "react";
import Payment from "./payment";
import Detail from "./detail";
function Information({ typePay, setTypePay, setIsPay, isPay }) {
const [isForAnother, setIsForAnother] = useState(false);
const [fade, setFade] = useState(false);
const fadeElement = (func) => {
setFade(true);
const timeout = setTimeout(() => {
func()
setFade(false);
}, 1000);
return () => clearTimeout(timeout);
}
return (
<div
className={`w-full lg:w-[59%] opacity-page bg-[#FFF] border border-solid border-[#EFEFEF]
rounded-[8px] p-[12px] sm:p-[16px] md:p-[20px] lg:p-[24px]
${typePay === 'success' || typePay === 'failed' ? 'bg-transparent border-transparent md:bg-[#FFF] md:border-[#EFEFEF]' : ''}`}
>
<div className={`transition-opacity !duration-300 ease-in ${fade ? '!opacity-0' : '!opacity-100'}`}>
{isPay ?
<Payment
typePay={typePay}
setIsPay={setIsPay}
setTypePay={setTypePay}
fadeElement={fadeElement}
/> :
<Detail
setIsPay={setIsPay}
fadeElement={fadeElement}
isForAnother={isForAnother}
setIsForAnother={setIsForAnother}
/>
}
</div>
</div>
)
}
export default Information
@@ -1,35 +0,0 @@
import InfoCircleRedA from "@/components/icons/InfoCircleRedA"
import RedoA from "@/components/icons/RedoA"
import RefreshA from "@/components/icons/RefreshA"
import { Button } from "@mui/material"
function FailedPay({ setTypePay, setIsPay, fadeElement }) {
return (
<div className="mt-[7px]">
<div className="flex flex-col justify-center items-center gap-[14px]">
<InfoCircleRedA />
<p className="text-[#D32F2F] text-[16px] md:text-[18px] lg:text-[20px] font-bold">پرداخت شما انجام نشد.</p>
</div>
<div className="flex mt-[32px] sm:mt-[29px] md:mt-[27px] lg:mt-[24px] items-center justify-center gap-[24px]">
<Button
variant="outlined"
onClick={() => fadeElement(() => setIsPay(false))}
className="!flex !rounded-[8px] !items-center !p-2 !justify-center !gap-[4px]"
>
<RedoA />
<p className="text-[#5559CE] text-[16px] font-medium">صفحه اصلی</p>
</Button>
<Button
variant="contained"
onClick={() => fadeElement(() => setTypePay('default'))}
className="!flex !rounded-[8px] !items-center !p-2 !justify-center !gap-[4px]"
>
<RefreshA />
<p className="text-[#FAFAFA] text-[16px] font-medium">تلاش دوباره</p>
</Button>
</div>
</div>
)
}
export default FailedPay
@@ -1,33 +0,0 @@
import ArrowLeftB from '@/components/icons/ArrowLeftB';
import { Button } from '@mui/material';
import ButtonFixed from '../ButtonFixed';
function Paying({ setTypePay, fadeElement }) {
return (
<>
<p className="text-[#3B3B3B] text-[14px] sm:text-[16px] md:text-[18px] lg:text-[20px] font-bold">
اطلاعات پرداخت
</p>
<div className='flex justify-between items-center mt-[12px] sm:mt-[18px] md:mt-[24px] lg:mt-[30px]'>
<p className='text-[#616161] text-[14px] md:text-[16px] font-medium'>مبلغ پیش پرداخت (بیعانه) : </p>
<p className='text-[#525252] text-[14px] md:text-[16px] font-bold'>20،000 تومان</p>
</div>
<span className='bg-[#D7D7D7] hidden md:block h-px w-full mt-[32px] mb-[25px]'></span>
<ButtonFixed>
<div className='flex items-center justify-between gap-2'>
<p className='text-[#616161] md:text-[#3B3B3B] text-[14px] md:text-[16px] font-bold'>مبلغ قابل پرداخت : 20،000 تومان</p>
<Button
className='!gap-[4px] !mr-auto !flex !px-[12px] !p-[7px] md:!py-[9px] !min-w-[157px]'
onClick={() => fadeElement(() => setTypePay('success'))}
variant="contained"
>
<p className="text-[#EFEFEF] text-[16px] font-medium">پرداخت نهایی</p>
<ArrowLeftB />
</Button>
</div>
</ButtonFixed>
</>
)
}
export default Paying
@@ -1,36 +0,0 @@
import ArrowLeftBlueA from "@/components/icons/ArrowLeftBlueA"
import TickCircleGreenA from "@/components/icons/TickCircleGreenA"
import { Button } from "@mui/material"
function SuccessPay() {
return (
<div className="pt-[8px] pb-[4px] grid place-items-center">
<div className="flex flex-col justify-center items-center gap-[14px]">
<TickCircleGreenA />
<p className="text-[#3B3B3B] text-[20px] font-bold">پرداخت شما با موفقیت انجام شد.</p>
</div>
<p
className="text-[#3B3B3B] text-[16px] font-normal
mt-[24px] sm:mt-[26px] md:mt-[29px] lg:mt-[32px]
mb-[24px] md:mb-[16px]"
>برای نمایش نوبت ها به قسمت نوبت های من بروید. </p>
<div className="flex w-full md:hidden flex-col justify-center items-center mb-[32px]">
<span className="w-full block h-px bg-[#EFEFEF]"></span>
<div className="flex items-center justify-between my-[20px]">
<p className="text-[#616161] text-[14px] font-medium">مقدار پرداخت شده: </p>
<p className="text-[#05BA58] text-[14px] font-bold">20،000 تومان</p>
</div>
<span className="w-full block h-px bg-[#EFEFEF]"></span>
</div>
<Button
variant="text"
className="!flex !items-center !justify-center !gap-[4px]"
>
<p className="text-[16px] font-medium text-[#5559CE]">برو به نوبت های من</p>
<ArrowLeftBlueA />
</Button>
</div>
)
}
export default SuccessPay
@@ -1,27 +0,0 @@
import { useState } from "react";
import SuccessPay from "./SuccessPay";
import FailedPay from "./FailedPay";
import Paying from "./Paying";
function Payment({ setIsPay, fadeElement, typePay, setTypePay }) {
return (
<>
{typePay === 'default' ?
<Paying
setTypePay={setTypePay}
fadeElement={fadeElement}
/> :
typePay === 'success' ?
<SuccessPay /> :
<FailedPay
setIsPay={setIsPay}
setTypePay={setTypePay}
fadeElement={fadeElement}
/>
}
</>
)
}
export default Payment
+2 -3
View File
@@ -3,7 +3,7 @@
import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect"
import { useState } from "react";
function PlaceVisit() {
function PlaceVisit({ locateVisit, setLocateVisit, isError }) {
const clinics = [
{ label: 'درمانگاه رازی', id: 10 },
@@ -11,14 +11,13 @@ function PlaceVisit() {
{ label: 'درمانگاه مرکزی', id: 30 }
];
const [locateVisit, setLocateVisit] = useState();
const updateData = event => setLocateVisit(event.target.innerText);
return (
<div className="flex flex-col items-start gap-[19px] justify-start">
<p className="text-[#3B3B3B] text-[14px] md:text-[16px] font-bold">1. انتخاب محل ویزیت</p>
<AutoCompleteSelect
isError={isError && !locateVisit}
updateData={updateData}
label='درمانگاه'
list={clinics}
+4 -1
View File
@@ -1,11 +1,14 @@
import DateTime from "@/app/component/date/dateTime"
function Hour({ doctor }) {
function Hour({ doctor, setStep, setIsError, locateVisit }) {
return (
<div className="flex mt-[24px] flex-col items-start gap-[12px] justify-start">
<p className="text-[#3B3B3B] text-[14px] md:text-[16px] font-bold">3. انتخاب ساعت</p>
<DateTime
doctor={doctor}
setStep={setStep}
setIsError={setIsError}
locateVisit={locateVisit}
/>
</div>
)
+18 -3
View File
@@ -1,14 +1,29 @@
import { useState } from "react";
import Hour from "./hour"
import PlaceVisit from "./PlaceVisit"
import Time from "./Time"
function Date({ doctor }) {
function Date({ doctor, setStep }) {
const [locateVisit, setLocateVisit] = useState();
const [isError, setIsError] = useState(false);
return (
<div className="w-full lg:w-[61%]">
<div className="p-0 lg:p-[24px] rounded-[8px] border border-solid border-transparent lg:border-[#EFEFEF] bg-transparent lg:bg-[#FFF]">
<PlaceVisit />
<PlaceVisit
setLocateVisit={setLocateVisit}
locateVisit={locateVisit}
isError={isError}
/>
<Time />
<Hour doctor={doctor} />
<Hour
setLocateVisit={setLocateVisit}
locateVisit={locateVisit}
setIsError={setIsError}
setStep={setStep}
doctor={doctor}
/>
</div>
</div>
)
@@ -5,8 +5,8 @@ function EditField({ changeData, data, name }) {
return (
<div className="relative w-full">
<TextField
value={data.value}
disabled={!data.isEdit}
value={data?.value}
disabled={!data?.isEdit}
type='text'
className="!bg-[#FFF] !w-full res-field-account"
onChange={e => {
@@ -13,13 +13,13 @@ function Form({ changeData, data, updateSelect, isForAnother }) {
<div className="grid mt-[12px] sm:mt-[14px] md:mt-[17px] lg:mt-[20px] items-start
justify-center gap-x-[24px] gap-y-[12px] md:gap-y-[14px] lg:gap-y-[16px] grid-cols-1 sm:grid-cols-2">
<Content title='شماره موبایل' isConfirmed={isForAnother ? false : true}>
<EditField changeData={changeData} data={data.phone} name='phone' />
<EditField changeData={changeData} data={data?.phone} name='phone' />
</Content>
<Content title='کد ملی'>
<EditField changeData={changeData} data={data.codemeli} name='codemeli' />
<EditField changeData={changeData} data={data?.codemeli} name='codemeli' />
</Content>
<Content title='نام و نام خانوادگی'>
<EditField changeData={changeData} data={data.name} name='name' />
<EditField changeData={changeData} data={data?.name} name='name' />
</Content>
<Content title='نوع بیمه'>
<AutoCompleteSelect
+67 -9
View File
@@ -1,16 +1,74 @@
import Address from "./Address";
import Head from "./Head";
import { useState } from "react";
import { Button } from "@mui/material";
import AddCircleBlueA from "@/components/icons/AddCircleBlueA";
import ArrowLeftB from "@/components/icons/ArrowLeftB";
import ButtonFixed from "../paying/ButtonFixed";
import Form from "./Form";
function Detail({ isForAnother, setStep, setIsForAnother, data, setData, fadeElement, setIsPay }) {
const [selected, setSelected] = useState({
first: '',
second: ''
});
const changeData = (value, type, name) =>
setData({
...data,
[name]: {
...data[name],
[type]: value
}
});
const updateSelect = (event, name) => setSelected({ ...selected, [name]: event.target.innerText })
function Detail({ doctor }) {
return (
<div className="h-fit lg:h-screen w-full lg:w-[39%]">
// ${typePay === 'success' || typePay === 'failed' ? 'bg-transparent border-transparent md:bg-[#FFF] md:border-[#EFEFEF]' : ''}
<div className="w-full lg:w-[59%]">
<div
className="p-0 lg:p-[16px] sticky rounded-[8px] bg-transparent lg:bg-[#FFF] border border-solid border-transparent lg:border-[#EFEFEF]
top-[calc(12px_+_75px_+_32px)] sm:top-[calc(21px_+_75px_+_45px)] md:top-[calc(30px_+_75px_+_58px)] lg:top-[calc(40px_+_75px_+_78px)]"
className={`opacity-page bg-[#FFF] border border-solid border-[#EFEFEF]
rounded-[8px] p-[12px] sm:p-[16px] md:p-[20px] lg:p-[24px]
`}
>
<Head doctor={doctor} />
<span className="block w-full bg-[#EFEFEF] h-px my-[16px]"></span>
<Address doctor={doctor} />
<p className="text-[#3B3B3B] text-[20px] font-bold">
{isForAnother ? 'اطلاعات کاربر جدید' : 'اطلاعات حساب کاربری'}
</p>
<Form
isForAnother={isForAnother}
updateSelect={updateSelect}
changeData={changeData}
data={data}
/>
{!isForAnother && (
<Button
className="!flex !items-center !justify-start !gap-[8px] !mt-[12px] sm:!mt-[16px] md:!mt-[20px] lg:!mt-[24px] !p-1"
onClick={() => {
setIsForAnother(true)
setData({
phone: { value: '09121056987', isEdit: false },
codemeli: { value: '1741025645', isEdit: false },
name: { value: 'ساغر صابری نژاد', isEdit: false }
});
}}
>
<AddCircleBlueA />
<p className="text-[#5559CE] text-[16px] font-medium">دریافت نوبت برای فرد دیگر </p>
</Button>
)}
<ButtonFixed>
<Button
className={`
!flex !w-full md:!w-fit
!gap-[4px] md:!mr-auto !px-[12px] !py-[8px] md:!py-[9px] !min-w-[150px]
${isForAnother ? '!mt-0 md:!mt-[40px]' : '!mt-0 md:!mt-[32px]'}`}
variant="contained"
onClick={() => setStep(prev => prev + 1)}
>
<p className="text-[#EFEFEF] text-[16px] font-medium">ثبت اطلاعات</p>
<ArrowLeftB />
</Button>
</ButtonFixed>
</div>
</div>
)
+44
View File
@@ -0,0 +1,44 @@
import Link from "next/link";
import { Button } from "@mui/material";
import RedoA from "@/components/icons/RedoA";
import RefreshA from "@/components/icons/RefreshA";
import InfoCircleRedA from "@/components/icons/InfoCircleRedA";
function FailedPay({ setStep, fadeElement }) {
return (
<div className='w-full lg:w-[59%]'>
<div
className={`opacity-page bg-transparent lg:bg-[#FFF] border border-solid border-transparent lg:border-[#EFEFEF]
rounded-[8px] p-[12px] sm:p-[16px] md:p-[20px] lg:p-[24px]`}
>
<div className="mt-[7px]">
<div className="flex flex-col justify-center items-center gap-[14px]">
<InfoCircleRedA />
<p className="text-[#D32F2F] text-[16px] md:text-[18px] lg:text-[20px] font-bold">پرداخت شما انجام نشد.</p>
</div>
<div className="flex mt-[32px] sm:mt-[29px] md:mt-[27px] lg:mt-[24px] items-center justify-center gap-[24px]">
<Link href='/'>
<Button
variant="outlined"
className="!flex !rounded-[8px] !items-center !p-2 !justify-center !gap-[4px]"
>
<RedoA />
<p className="text-[#5559CE] text-[16px] font-medium">صفحه اصلی</p>
</Button>
</Link>
<Button
variant="contained"
onClick={() => setStep(prev => prev - 2)}
className="!flex !rounded-[8px] !items-center !p-2 !justify-center !gap-[4px]"
>
<RefreshA />
<p className="text-[#FAFAFA] text-[16px] font-medium">تلاش دوباره</p>
</Button>
</div>
</div>
</div>
</div>
)
}
export default FailedPay
+10 -6
View File
@@ -1,13 +1,17 @@
import Date from "./date";
import Detail from "./detail";
import Information from "./information"
import Location from "./location"
function BookingPage({ doctor }) {
function BookingPage({ doctor, children, isFirst, disableSide }) {
return (
<div
className="flex flex-col lg:flex-row justify-center gap-0 lg:gap-[24px] padding-responsive
className="flex flex-col lg:flex-row justify-center gap-[12px] sm:gap-[16px] md:gap-[20px] lg:gap-[24px] padding-responsive
items-stretch pt-[calc(12px_+_75px_+_32px)] sm:pt-[calc(21px_+_75px_+_45px)] md:pt-[calc(30px_+_75px_+_58px)] lg:pt-[calc(40px_+_75px_+_78px)]">
<Detail doctor={doctor} />
<Date doctor={doctor} />
{isFirst ? (
<Location disableSide={disableSide} doctor={doctor} />
) : (
<Information disableSide={disableSide} doctor={doctor} />
)}
{children}
</div>
)
}
@@ -18,7 +18,7 @@ function Head({ doctor }) {
height={95}
width={95}
/>
<div className="flex flex-col items-start justify-center gap-[20px]">
<div className="flex flex-col items-start justify-center gap-[8px] sm:gap-[12px] md:gap-[16px] lg:gap-[20px]">
<p className="text-[#3B3B3B] text-[14px] sm:text-[16px] md:text-[18px] lg:text-[20px] font-medium">{doctor.name}</p>
<p className="text-[#616161] text-[14px] md:text-[16px] font-medium">تخصص: {doctor.expertise}</p>
</div>
+22
View File
@@ -0,0 +1,22 @@
import Detail from "./Detail"
import Head from "./Head"
function Information({ doctor, typePay, isPay, disableSide }) {
return (
<div className={`w-full lg:w-[41%] relative ${disableSide ? 'hidden lg:flex' : ''}`}>
<div
className={`p-[24px] sticky right-0 w-full opacity-page rounded-[8px] border
border-solid border-[#EFEFEF] bg-[#FFF]
top-[calc(12px_+_75px_+_32px)] sm:top-[calc(21px_+_75px_+_45px)] md:top-[calc(30px_+_75px_+_58px)] lg:top-[calc(40px_+_75px_+_78px)]
${typePay === 'success' || typePay === 'failed' ? 'hidden md:block' : 'block'}
`}
>
<p className="text-[#3B3B3B] text-[20px] font-bold">جزئیات نوبت</p>
<Head doctor={doctor} />
<Detail doctor={doctor} />
</div>
</div>
)
}
export default Information
@@ -1,5 +1,3 @@
import React from 'react'
function Address({ doctor }) {
return (
<ul className='hidden mt-[4px] lg:flex flex-col'>
@@ -1,5 +1,4 @@
import Image from 'next/image'
import React from 'react'
function Head({ doctor }) {
return (
+19
View File
@@ -0,0 +1,19 @@
import Address from "./Address";
import Head from "./Head";
function Location({ doctor }) {
return (
<div className="h-fit lg:h-screen w-full lg:w-[39%]">
<div
className="p-0 lg:p-[16px] sticky rounded-[8px] bg-transparent lg:bg-[#FFF] border border-solid border-transparent lg:border-[#EFEFEF]
top-[calc(12px_+_75px_+_32px)] sm:top-[calc(21px_+_75px_+_45px)] md:top-[calc(30px_+_75px_+_58px)] lg:top-[calc(40px_+_75px_+_78px)]"
>
<Head doctor={doctor} />
<span className="block bg-[#EFEFEF] lg:bg-transparent w-full h-px lg:my-[6px] mt-[16px]"></span>
<Address doctor={doctor} />
</div>
</div>
)
}
export default Location
@@ -4,7 +4,7 @@ function ButtonFixed({ children }) {
return (
<div
className="!fixed md:!relative !bottom-0 !right-0 bg-[#FFF] border-0 border-t
md:border-t-transparent border-[#D7D7D7]
md:border-t-transparent border-[#D7D7D7] z-10
!w-full sm:!w-full !p-[16px] sm:!px-[52px] md:!ml-0 md:!p-0 md:!w-full"
>
{children}
+38
View File
@@ -0,0 +1,38 @@
import ArrowLeftB from '@/components/icons/ArrowLeftB';
import { Button } from '@mui/material';
import ButtonFixed from './ButtonFixed';
function Paying({ setTypePay, fadeElement, setStep }) {
return (
<div className='w-full lg:w-[59%]'>
<div
className={`opacity-page bg-[#FFF] border border-solid border-[#EFEFEF]
rounded-[8px] p-[12px] sm:p-[16px] md:p-[20px] lg:p-[24px]`}
>
<p className="text-[#3B3B3B] text-[14px] sm:text-[16px] md:text-[18px] lg:text-[20px] font-bold">
اطلاعات پرداخت
</p>
<div className='flex justify-between items-center mt-[12px] sm:mt-[18px] md:mt-[24px] lg:mt-[30px]'>
<p className='text-[#616161] text-[14px] md:text-[16px] font-medium'>مبلغ پیش پرداخت (بیعانه) : </p>
<p className='text-[#525252] text-[14px] md:text-[16px] font-bold'>20،000 تومان</p>
</div>
<span className='bg-[#D7D7D7] hidden md:block h-px w-full mt-[32px] mb-[25px]'></span>
<ButtonFixed>
<div className='flex items-center justify-between gap-2'>
<p className='text-[#616161] md:text-[#3B3B3B] text-[14px] md:text-[16px] font-bold'>مبلغ قابل پرداخت : 20،000 تومان</p>
<Button
className='!gap-[4px] !mr-auto !flex !px-[12px] !p-[7px] md:!py-[9px] !min-w-[157px]'
onClick={() => setStep(prev => prev + 1)}
variant="contained"
>
<p className="text-[#EFEFEF] text-[16px] font-medium">پرداخت نهایی</p>
<ArrowLeftB />
</Button>
</div>
</ButtonFixed>
</div>
</div>
)
}
export default Paying
+46
View File
@@ -0,0 +1,46 @@
import ArrowLeftBlueA from "@/components/icons/ArrowLeftBlueA"
import TickCircleGreenA from "@/components/icons/TickCircleGreenA"
import { Button } from "@mui/material"
import Link from "next/link"
function SuccessPay({ setStep }) {
return (
<div className='w-full lg:w-[59%]'>
<div
className={`opacity-page bg-transparent lg:bg-[#FFF] border border-solid border-transparent lg:border-[#EFEFEF]
rounded-[8px] p-[12px] sm:p-[16px] md:p-[20px] lg:p-[24px]`}
>
<div className="pt-[8px] pb-[4px] grid place-items-center">
<div className="flex flex-col justify-center items-center gap-[14px]">
<TickCircleGreenA />
<p className="text-[#3B3B3B] text-[20px] font-bold">پرداخت شما با موفقیت انجام شد.</p>
</div>
<p
className="text-[#3B3B3B] text-[16px] font-normal
mt-[24px] sm:mt-[26px] md:mt-[29px] lg:mt-[32px]
mb-[24px] md:mb-[16px]"
>برای نمایش نوبت ها به قسمت نوبت های من بروید. </p>
<div className="flex w-full md:hidden flex-col justify-center items-center mb-[32px]">
<span className="w-full block h-px bg-[#EFEFEF]"></span>
<div className="flex items-center justify-between my-[20px] gap-[80px]">
<p className="text-[#616161] text-[14px] font-medium">مقدار پرداخت شده: </p>
<p className="text-[#05BA58] text-[14px] font-bold">20،000 تومان</p>
</div>
<span className="w-full block h-px bg-[#EFEFEF]"></span>
</div>
<Link href='/dashboard'>
<Button
variant="text"
className="!flex !items-center !justify-center !gap-[4px]"
>
<p className="text-[16px] font-medium text-[#5559CE]">برو به نوبت های من</p>
<ArrowLeftBlueA />
</Button>
</Link>
</div>
</div>
</div>
)
}
export default SuccessPay
@@ -6,6 +6,7 @@ function Slider({ data }) {
{[...data.images_clinic, ...data.images_clinic].map((item, idx) =>
idx !== 0 ? (
<Image
key={idx}
src={item}
width={90}
height={90}
+14 -9
View File
@@ -21,17 +21,22 @@ function AppointmentList({ doctor }) {
/>
))}
</ul>
<div className='fixed lg:hidden bg-[#FFF] border-t border-transparent border-t-[#D7D7D7] border-solid bottom-0 right-0 w-full p-4 flex items-center justify-between'>
<div className='fixed lg:hidden bg-[#FFF] border-t border-transparent border-t-[#D7D7D7]
border-solid bottom-0 right-0 w-full p-4 flex items-center justify-between'>
<p className='text-[#05BA58] text-[11px] font-normal'>اولین نوبت آزاد: {itemActive.first_free_turn}</p>
<Button
variant='contained'
className='!py-2 !px-4 gap-1 !text-[14px] !font-medium'
<Link
href={`/booking/${itemActive.id}`}
>
دریافت نوبت
<div className='w-[20px] h-[20px]'>
<ArrowLeftD />
</div>
</Button>
<Button
variant='contained'
className='!py-2 !px-4 gap-1 !text-[14px] !font-medium'
>
دریافت نوبت
<div className='w-[20px] h-[20px]'>
<ArrowLeftD />
</div>
</Button>
</Link>
</div>
</>
)
+2 -2
View File
@@ -14,8 +14,8 @@ function HomePage() {
با نوبت724
</p>
<p
className="text-[#525252] text-center mt-2.5 font-kalame text-[20px] sm:text-[25px] md:text-[31px] lg:text-[36px]
font-bold flex items-center gap-3"
className="text-[#525252] text-center mt-2.5 font-kalame text-[16px] sm:text-[25px] md:text-[31px] lg:text-[36px]
font-bold flex items-center gap-1 sm:gap-3"
>
<BText />
دیگه نوبت گرفتن کار سختی نیست !
+1 -1
View File
@@ -44,7 +44,7 @@ function Header({ name }) {
</div>
</div>
<Row name={name} />
<Link href='/signin'>
<Link href='/login'>
<Button
className="!hidden lg:!flex"
variant="outlined"
+3 -2
View File
@@ -17,7 +17,8 @@ function Layout({ children, title, name, disableFooter, isSidebar, user }) {
return (
<div>
<main className="w-full min-h-screen">
<main className={`w-full min-h-screen
${disableFooter && 'pb-[calc(16px_+_80px)] sm:pb-[calc(52px_+_80px)] md:pb-[80px]'}`}>
<header className="w-full fixed top-[12px] sm:top-[21px] md:top-[30px] lg:top-[40px] right-1/2 translate-x-1/2 padding-responsive z-[10]">
<Header name={name} />
</header>
@@ -36,7 +37,7 @@ function Layout({ children, title, name, disableFooter, isSidebar, user }) {
</section>
</main>
{disableFooter ? undefined : (
<footer className="bg-[#F5F5F5] pt-[44px] mt-[100px] bg-banner-footer !bg-center !bg-no-repeat !bg-cover">
<footer className='bg-[#F5F5F5] pt-[44px] mt-[100px] bg-banner-footer !bg-center !bg-no-repeat !bg-cover'>
<div className='padding-responsive'>
<Footer />
</div>
@@ -2,7 +2,7 @@ import Field from '@/app/component/element/Field'
import { Button } from '@mui/material'
import Link from 'next/link'
function SignInPage({ setIsSendMsg }) {
function LogInPage({ setIsSendMsg, setStep }) {
return (
<div className='rounded-[16px] mt-[64px] sm:mt-[53px] md:mt-[43px] lg:mt-[32px] border border-solid sm:border-[#EFEFEF] bg-transparent sm:bg-[#FFF]
p-0 border-transparent sm:p-[40px] sm:pb-[48px] w-full sm:w-fit sm:min-w-[425px]'>
@@ -17,7 +17,12 @@ function SignInPage({ setIsSendMsg }) {
<Button
fullWidth
variant='contained'
onClick={() => setIsSendMsg(true)}
onClick={() => {
console.log(setIsSendMsg);
setIsSendMsg && setIsSendMsg(true);
setStep && setStep(prev => prev + 1);
}}
className='!rounded-[8px] !bg-[#5559CE] !py-[7.5px] md:!py-[8.5px] lg:!py-[10px]'
>ورود</Button>
<p className='text-[#525252] text-[14px] font-normal text-center mt-[49px] sm:mt-[58px] md:mt-[67px] lg:mt-[76px]'>
@@ -30,4 +35,4 @@ function SignInPage({ setIsSendMsg }) {
)
}
export default SignInPage
export default LogInPage
+18 -5
View File
@@ -9,7 +9,7 @@ import ArrowRightS from "../icons/ArrowRightS";
const time_resend_code = 120;
function SetCodePage({ setIsSendMsg, link }) {
function SetCodePage({ setIsSendMsg, link, setStep }) {
const retryIcon = useRef();
@@ -39,7 +39,10 @@ function SetCodePage({ setIsSendMsg, link }) {
p-0 border-transparent sm:p-[40px] sm:pb-[48px] w-full sm:w-fit sm:min-w-[425px]'>
<div
className="cursor-pointer"
onClick={() => setIsSendMsg(false)}
onClick={() => {
setStep && setStep(prev => prev - 1)
setIsSendMsg && setIsSendMsg(false)
}}
>
<ArrowRightS />
</div>
@@ -63,7 +66,11 @@ function SetCodePage({ setIsSendMsg, link }) {
<Button
className='flex !p-1 items-center justify-start gap-1 cursor-pointer'
onClick={() => setIsSendMsg(false)}
onClick={() => {
setStep && setStep(prev => prev - 1)
setIsSendMsg && setIsSendMsg(false)
}}
>
<EditLogin />
<p className='text-[#F17732] text-[14px] font-normal select-none'>ویرایش شماره موبایل</p>
@@ -101,11 +108,17 @@ function SetCodePage({ setIsSendMsg, link }) {
</Button>
</div>
</div>
<Link href={link}>
<Link
href={link || ''}
onClick={e => !link && e.preventDefault()}
>
<Button
fullWidth
variant='contained'
onClick={() => setIsSendMsg(true)}
onClick={() => {
setIsSendMsg && setIsSendMsg(true)
setStep && setStep(prev => prev + 1)
}}
className='!rounded-[8px] !bg-[#5559CE]'
>تایید</Button>
</Link>
+8 -3
View File
@@ -6,7 +6,9 @@ const about = ['سوالات متداول', 'تماس با ما', 'درباره
function RegisterPage({ children }) {
return (
<div
className="flex padding-responsive items-center justify-start sm:justify-start mt-[32px] sm:mt-[48px] md:mt-[64px] lg:mt-[80px] flex-col h-[calc(100vh_-_80px)] w-full bg-banner-stroke !bg-bottom !bg-no-repeat !bg-cover"
className="flex padding-responsive items-center justify-start sm:justify-start pt-[32px] sm:pt-[48px]
md:pt-[64px] lg:pt-[80px] overflow-auto flex-col h-screen w-full bg-banner-stroke !bg-bottom !bg-no-repeat !bg-cover
!pb-[calc(108px_+_50px)] md:!pb-[calc(111px_+_50px)]"
>
<Link href='/'>
<div className="flex items-center justify-center gap-[5px] sm:mt-0">
@@ -20,11 +22,14 @@ function RegisterPage({ children }) {
</div>
</Link>
{children}
<div className="fixed bottom-0 left-0 bg-[#FAFAFA] w-full mt-[127px] pb-[50px] px-[18px] sm:px-[67px] md:px[117px] lg:px-[166px]">
<div className="fixed bottom-0 left-0 bg-[#FAFAFA] w-full pb-[50px] px-[18px] sm:px-[67px] md:px[117px] lg:px-[166px]">
<div className="bg-border-t-gradient-sign h-px w-full"></div>
<div className="flex items-center justify-center gap-[32px] sm:gap-[40px] md:gap-[48px] lg:gap-[56px] mt-[36px]">
{about.map((item, idx) => (
<Link href='/'>
<Link
href='/'
key={idx}
>
<p className="text-[#494CB3] text-[14px] md:text-[16px] font-normal" key={idx}>{item}</p>
</Link>
))}
+192 -96
View File
@@ -122,12 +122,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -722,12 +724,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -1322,12 +1326,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -1922,12 +1928,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -2522,12 +2530,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -3122,12 +3132,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -3722,12 +3734,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -4322,12 +4336,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -4922,12 +4938,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -5522,12 +5540,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -6122,12 +6142,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -6722,12 +6744,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -7322,12 +7346,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -7922,12 +7948,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -8522,12 +8550,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -9122,12 +9152,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -9722,12 +9754,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -10322,12 +10356,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -10922,12 +10958,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -11522,12 +11560,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -12122,12 +12162,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -12722,12 +12764,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -13322,12 +13366,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -13922,12 +13968,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -14522,12 +14570,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -15122,12 +15172,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -15722,12 +15774,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -16322,12 +16376,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -16922,12 +16978,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -17522,12 +17580,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -18122,12 +18182,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -18722,12 +18784,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -19322,12 +19386,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -19922,12 +19988,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -20522,12 +20590,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -21122,12 +21192,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -21722,12 +21794,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -22322,12 +22396,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -22922,12 +22998,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -23522,12 +23600,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -24122,12 +24202,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -24722,12 +24804,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -25322,12 +25406,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -25922,12 +26008,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -26522,12 +26610,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -27122,12 +27212,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -27722,12 +27814,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
@@ -28322,12 +28416,14 @@
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه نیکان",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",
"working_days": "شنبه تا چهارشنبه ساعت 16 تا 22"
},{
},
{
"title": "آدرس درمانگاه رازی",
"address": "اهواز، کیانپارس، پهلوان شرقی، مجتمع پزشکی آویسا، واحد 12",
"phone": "06133916589",