add production url

This commit is contained in:
reza karimi
2023-01-20 18:13:44 +03:30
parent f3f52dc9d1
commit 427662d62f
10 changed files with 16049 additions and 5429 deletions
+6
View File
@@ -0,0 +1,6 @@
{
"next": {
"modifyConfig": false
}
}
+10 -12
View File
@@ -1,24 +1,22 @@
export const AppUrl = (query) => { export const AppUrl = query => {
const serve = 'https://mehrara-api.iran.liara.run'
const serve = 'https://mehrara-api.iran.liara.run'; const local = 'http://127.0.0.1:8000'
const local = 'http://127.0.0.1:8000';
return `${serve}/api/${query}` return `${serve}/api/${query}`
} }
export const VueApi = (query) => { export const VueApi = query => {
const serve = 'https://mipstockholder.iran.liara.run'
const serve = 'https://mipstockholder.iran.liara.run'; const local = 'http://127.0.0.1:8000'
const local = 'http://127.0.0.1:8000';
return `${local}/api/${query}` return `${local}/api/${query}`
} }
export const BackTwo = 'http://127.0.0.1:8000/api' export const BackTwo = 'http://127.0.0.1:8000/api'
export const AppFile = (addr) => { export const AppFile = addr => {
const serve = 'https://mehrara-api.iran.liara.run'; const serve = 'https://mehrara-api.iran.liara.run'
const local = 'http://127.0.0.1:8000'; const local = 'http://127.0.0.1:8000'
return `${serve}/${addr}` return `${serve}/${addr}`
} }
export const AppProduction = 'https://mipstockholder.iran.liara.run/api/'
+3
View File
@@ -1,6 +1,9 @@
const withImages = require('next-images') const withImages = require('next-images')
module.exports = { module.exports = {
experimental: {
outputStandalone: true
},
siteUrl: 'https://miphospital.ir', siteUrl: 'https://miphospital.ir',
generateRobotsTxt: true, // (optional) generateRobotsTxt: true, // (optional)
...withImages(), ...withImages(),
+10280 -32
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -11,6 +11,7 @@ import toast, { Toaster } from 'react-hot-toast'
import { MDBRadio } from 'mdb-react-ui-kit' import { MDBRadio } from 'mdb-react-ui-kit'
import axios from 'axios' import axios from 'axios'
import NumberFormat from 'react-number-format' import NumberFormat from 'react-number-format'
import { AppProduction } from '../../lib/api'
const Sales = () => { const Sales = () => {
const [name, setName] = useState() const [name, setName] = useState()
@@ -23,7 +24,7 @@ const Sales = () => {
setLoading(true) setLoading(true)
toast.loading('در حال ثبت درخواست شما') toast.loading('در حال ثبت درخواست شما')
axios axios
.post('https://mehriranianco.ir/api/public/website/request', { .post(`${AppProduction}public/website/request`, {
name: name, name: name,
mobile_number: mobileNumber, mobile_number: mobileNumber,
investment_price: InvestmentPrice, investment_price: InvestmentPrice,
+41 -26
View File
@@ -1,8 +1,8 @@
import React from 'react'; import React from 'react'
import AppContainer from "../appContainer"; import AppContainer from '../appContainer'
import Image from "next/image"; import Image from 'next/image'
import { FiUsers, FiArrowLeft } from 'react-icons/fi' import { FiUsers, FiArrowLeft } from 'react-icons/fi'
import Link from "next/link"; import Link from 'next/link'
import { import {
MDBBtn, MDBBtn,
MDBCard, MDBCard,
@@ -12,49 +12,62 @@ import {
MDBContainer, MDBContainer,
MDBIcon, MDBIcon,
MDBTypography MDBTypography
} from "mdb-react-ui-kit"; } from 'mdb-react-ui-kit'
import {Box, Divider, ScaleFade, SimpleGrid} from "@chakra-ui/react"; import { Box, Divider, ScaleFade, SimpleGrid } from '@chakra-ui/react'
import {VueApi} from "../../lib/api"; import { AppProduction, VueApi } from '../../lib/api'
import axios from "axios"; import axios from 'axios'
import {data} from "autoprefixer"; import { data } from 'autoprefixer'
const Recruitment = (dataoccupational) => { const Recruitment = dataoccupational => {
const Parallax = ({ quality }) => { const Parallax = ({ quality }) => {
return `../resource/parallax/Directors.jpg`; return `../resource/parallax/Directors.jpg`
} }
console.log('Add', AppProduction)
return ( return (
<div> <div>
<AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}> <AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}>
<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'}> فرصت های شغلی بیمارستان مهر ایرانیان پرند </h2> <h2 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
{' '}
فرصت های شغلی بیمارستان مهر ایرانیان پرند{' '}
</h2>
</div> </div>
<br /> <br />
<br /> <br />
<div className={'mt-2'}> <div className={'mt-2'}>
<br /> <br />
<br /> <br />
<p className={'center-align bk-light RTL text-white mt-5 header_back service-text dana font-weight-bold'}>فرصت‌هایی برای اینکه رویاهای خودتان را در کنار ما بسازید.</p> <p
className={'center-align bk-light RTL text-white mt-5 header_back service-text dana font-weight-bold'}
>
فرصت‌هایی برای اینکه رویاهای خودتان را در کنار ما بسازید.
</p>
</div> </div>
</div> </div>
<Image <Image
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>
<MDBContainer className={'mt-5'}> <MDBContainer className={'mt-5'}>
<div className={'bk-med flex justify-content-center align-items-center flex-col'}> <div className={'bk-med flex justify-content-center align-items-center flex-col'}>
<MDBTypography className={'bk-md text-primary-teal font-weight-bold'} variant={'h3'}>فرصت های همکاری</MDBTypography> <MDBTypography className={'bk-md text-primary-teal font-weight-bold'} variant={'h3'}>
<MDBTypography className={'bk-light text-primary-teal mt-2'}>ردیف شغلی مورد علاقه خود را انتخاب کنید </MDBTypography> فرصت های همکاری
</MDBTypography>
<MDBTypography className={'bk-light text-primary-teal mt-2'}>
ردیف شغلی مورد علاقه خود را انتخاب کنید{' '}
</MDBTypography>
</div> </div>
<Divider /> <Divider />
<SimpleGrid dir={'rtl'} columns={[1, 2, 4]} spacing={5}> <SimpleGrid dir={'rtl'} columns={[1, 2, 4]} spacing={5}>
{dataoccupational.data.data.map((item) => ( {dataoccupational.data.data.map(item => (
<ScaleFade initialScale={0.9} in={() => setTimeout(() => true, 3000)}> <ScaleFade initialScale={0.9} in={() => setTimeout(() => true, 3000)}>
<Box key={item.id}> <Box key={item.id}>
<MDBCard className={'jobs-item-card rounded-6'}> <MDBCard className={'jobs-item-card rounded-6'}>
@@ -86,19 +99,21 @@ const Recruitment = (dataoccupational) => {
<br /> <br />
</AppContainer> </AppContainer>
</div> </div>
); )
}; }
export default Recruitment
export default Recruitment;
export async function getServerSideProps() { export async function getServerSideProps() {
// Fetch data from external API // Fetch data from external API
const res = await axios.get('https://mehriranianco.ir/api/public/job/occupational/').then((res) => { const res = await axios
.get(`${AppProduction}public/job/occupational/`)
.then(res => {
return res.data return res.data
}).catch((err) => { })
.catch(err => {
console.log(err) console.log(err)
}); })
const data = await res const data = await res
// Pass data to the page via props // Pass data to the page via props
+53 -28
View File
@@ -1,6 +1,6 @@
import React from 'react'; import React from 'react'
import Image from "next/image"; import Image from 'next/image'
import Link from "next/link"; import Link from 'next/link'
import { FiUsers, FiArrowLeft } from 'react-icons/fi' import { FiUsers, FiArrowLeft } from 'react-icons/fi'
import { import {
MDBBtn, MDBBtn,
@@ -11,39 +11,47 @@ import {
MDBContainer, MDBContainer,
MDBIcon, MDBIcon,
MDBTypography MDBTypography
} from "mdb-react-ui-kit"; } from 'mdb-react-ui-kit'
import {Box, Divider, SimpleGrid} from "@chakra-ui/react"; import { Box, Divider, SimpleGrid } from '@chakra-ui/react'
import AppContainer from "../../appContainer"; import AppContainer from '../../appContainer'
import {useRouter} from "next/router"; import { useRouter } from 'next/router'
import axios from "axios"; import axios from 'axios'
import { AppProduction } from '../../../lib/api'
const Recruitment = (jobs) => { const Recruitment = jobs => {
console.log(jobs) console.log(jobs)
const Parallax = ({ quality }) => { const Parallax = ({ quality }) => {
return `../../resource/parallax/33012321.jpg`; return `../../resource/parallax/33012321.jpg`
} }
const router = useRouter(); const router = useRouter()
const { category_id } = router.query const { category_id } = router.query
return ( return (
<div> <div>
<AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}> <AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}>
<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'}> فرصت های شغلی بیمارستان مهر ایرانیان پرند </h2> <h2 className={'center-align bk-med text-white header_back service-text dana font-weight-bold'}>
{' '}
فرصت های شغلی بیمارستان مهر ایرانیان پرند{' '}
</h2>
</div> </div>
<br /> <br />
<br /> <br />
<div className={'mt-2'}> <div className={'mt-2'}>
<br /> <br />
<br /> <br />
<p className={'center-align bk-light RTL text-white mt-5 header_back service-text dana font-weight-bold'}>فرصت‌هایی برای اینکه رویاهای خودتان را در کنار ما بسازید.</p> <p
className={'center-align bk-light RTL text-white mt-5 header_back service-text dana font-weight-bold'}
>
فرصت‌هایی برای اینکه رویاهای خودتان را در کنار ما بسازید.
</p>
</div> </div>
</div> </div>
<Image <Image
loader={Parallax} loader={Parallax}
src="Parallax.png" src='Parallax.png'
className={'responsive-img shadow-5'} className={'responsive-img shadow-5'}
alt={category_id} alt={category_id}
width={3000} width={3000}
@@ -52,22 +60,37 @@ const Recruitment = (jobs) => {
</div> </div>
<MDBContainer className={'mt-5'}> <MDBContainer className={'mt-5'}>
<div className={'bk-med flex justify-content-center align-items-center flex-col'}> <div className={'bk-med flex justify-content-center align-items-center flex-col'}>
<MDBTypography className={'bk-md text-primary-teal font-weight-bold'} variant={'h3'}>{jobs.jobs.name.title} </MDBTypography> <MDBTypography className={'bk-md text-primary-teal font-weight-bold'} variant={'h3'}>
<MDBTypography className={'bk-light text-primary-teal mt-2'}>شغل مورد علاقه خود را انتخاب کنید </MDBTypography> {jobs.jobs.name.title}{' '}
</MDBTypography>
<MDBTypography className={'bk-light text-primary-teal mt-2'}>
شغل مورد علاقه خود را انتخاب کنید{' '}
</MDBTypography>
</div> </div>
<Divider /> <Divider />
<SimpleGrid dir={'rtl'} columns={[1, 1, 3]} spacing={3}> <SimpleGrid dir={'rtl'} columns={[1, 1, 3]} spacing={3}>
{jobs.jobs.data && jobs.jobs.data.map((item) => ( {jobs.jobs.data &&
jobs.jobs.data.map(item => (
<Box key={item.id}> <Box key={item.id}>
<Link href={`/recruitment/item/request/${item.id}`}> <Link href={`/recruitment/item/request/${item.id}`}>
<MDBCard className={'jobs-item-card rounded-6'}> <MDBCard className={'jobs-item-card rounded-6'}>
<MDBCardBody className={'flex align-items-center lg:flex-row md:flex-col sm:flex-col justify-content-between'}> <MDBCardBody
className={
'flex align-items-center lg:flex-row md:flex-col sm:flex-col justify-content-between'
}
>
<div> <div>
<MDBCardTitle title={item.title} className={'bk-med text-summery-2 mt-2 right'}>{item.title} </MDBCardTitle> <MDBCardTitle title={item.title} className={'bk-med text-summery-2 mt-2 right'}>
{item.title}{' '}
</MDBCardTitle>
</div> </div>
<div> <div>
<Link href={`/recruitment/item/request/${item.id}`}> <Link href={`/recruitment/item/request/${item.id}`}>
<MDBBtn rounded size={'sm'} className={'mt-2 flex align-items-center bk-light bg-primary-teal'}> <MDBBtn
rounded
size={'sm'}
className={'mt-2 flex align-items-center bk-light bg-primary-teal'}
>
درخواست همکاری درخواست همکاری
<FiArrowLeft className={'ml-2'} /> <FiArrowLeft className={'ml-2'} />
</MDBBtn> </MDBBtn>
@@ -86,23 +109,25 @@ const Recruitment = (jobs) => {
<br /> <br />
</AppContainer> </AppContainer>
</div> </div>
); )
}; }
export async function getServerSideProps(ctx) { export async function getServerSideProps(ctx) {
// Fetch data from external API // Fetch data from external API
const { query } = ctx const { query } = ctx
const res = await axios.get(`https://mehriranianco.ir/api/public/job/${query.category_id}`).then((res) => { const res = await axios
.get(`${AppProduction}public/job/${query.category_id}`)
.then(res => {
return res.data return res.data
}).catch((err) => { })
.catch(err => {
console.log(err) console.log(err)
}); })
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 } }
} }
export default Recruitment; export default Recruitment
+104 -91
View File
@@ -1,48 +1,57 @@
import React, {useContext, useEffect, useRef, useState} from 'react'; import React, { useContext, useEffect, useRef, useState } from 'react'
import {Box, Input, Radio, RadioGroup, Select, SimpleGrid, Stack, Textarea, UnorderedList} from "@chakra-ui/react"; import { Box, Input, Radio, RadioGroup, Select, SimpleGrid, Stack, Textarea, UnorderedList } from '@chakra-ui/react'
import { import {
MDBBtn, MDBCol, MDBContainer, MDBBtn,
MDBCol,
MDBContainer,
MDBFile, MDBFile,
MDBRadio, MDBRadio,
MDBInputGroup, MDBInputGroup,
MDBInputGroupText, MDBRow MDBInputGroupText,
} from "mdb-react-ui-kit"; MDBRow
import {FcApproval} from "react-icons/fc"; } from 'mdb-react-ui-kit'
import {FiCheck, FiUser} from "react-icons/fi"; import { FcApproval } from 'react-icons/fc'
import {useForm} from "react-hook-form"; import { FiCheck, FiUser } from 'react-icons/fi'
import {HandleFormReq} from "../../../../lib/HandleFormReq"; import { useForm } from 'react-hook-form'
import axios from "axios"; import { HandleFormReq } from '../../../../lib/HandleFormReq'
import axios from 'axios'
import { AppProduction } from '../../../../lib/api'
const PersonData = () => { const PersonData = () => {
const { setPage, personData, setpersondata } = useContext(HandleFormReq) const { setPage, personData, setpersondata } = useContext(HandleFormReq)
const [sex, setSex] = useState(personData.gender) const [sex, setSex] = useState(personData.gender)
const [health, setHealth] = React.useState(personData.health) const [health, setHealth] = React.useState(personData.health)
const {register, handleSubmit, watch, formState: { errors }} = useForm() const {
register,
handleSubmit,
watch,
formState: { errors }
} = useForm()
let hasErr = Object.keys(errors).length let hasErr = Object.keys(errors).length
const onSubmit = async (data) => { const onSubmit = async data => {
console.log('dadadada', data) console.log('dadadada', data)
if (hasErr === 0) { if (hasErr === 0) {
console.log('om', data.national_code) axios
axios.post('https://mehriranianco.ir/api/public/jobrequest/nationalcode', { .post(`${AppProduction}public/jobrequest/nationalcode`, {
nationalcode: data.national_code nationalcode: data.national_code
}).then((res) => { })
.then(res => {
if (res.data.status === false) { if (res.data.status === false) {
alert('کد ملی شما قبلا ثبت شده ') alert('کد ملی شما قبلا ثبت شده ')
} else { } else {
setpersondata(data) setpersondata(data)
setPage(2) setPage(2)
} }
}).catch((err) => { })
.catch(err => {
console.log('44324589091', err) console.log('44324589091', err)
}) })
console.log('jsondataperson', JSON.stringify({ personData: personData, scc: personData })) console.log('jsondataperson', JSON.stringify({ personData: personData, scc: personData }))
} } else {
else {
alert('مقادیر وارد شده معبتر نمی باشد') alert('مقادیر وارد شده معبتر نمی باشد')
} }
}; }
console.log('personData.lastname', typeof personData.lastname) console.log('personData.lastname', typeof personData.lastname)
return ( return (
<div> <div>
@@ -63,12 +72,12 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="نام خود را وارد کنید " placeholder='نام خود را وارد کنید '
/> />
</div> </div>
<p className={'mt-1 text-sm text-danger'}> <p className={'mt-1 text-sm text-danger'}>
{errors?.firstname?.type === "required" && <p> وارد کردن نام اجباری است</p>} {errors?.firstname?.type === 'required' && <p> وارد کردن نام اجباری است</p>}
{errors?.firstname?.type === "maxLength" && <p>نام وارد شده معبتر نمی باشد</p>} {errors?.firstname?.type === 'maxLength' && <p>نام وارد شده معبتر نمی باشد</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -88,12 +97,11 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="نام خانوادگی خود را وارد کنید " placeholder='نام خانوادگی خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.lastname?.type === "required" && <p> وارد کردن نام خانوادگی اجباری است</p>} {errors?.lastname?.type === 'required' && <p> وارد کردن نام خانوادگی اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -113,11 +121,11 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="نام پدر خود را وارد کنید " placeholder='نام پدر خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.fatherName?.type === "required" && <p> وارد کردن نام پدر اجباری است</p>} {errors?.fatherName?.type === 'required' && <p> وارد کردن نام پدر اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -137,7 +145,7 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="شغل همسر خود را وارد کنید " placeholder='شغل همسر خود را وارد کنید '
/> />
</div> </div>
{/*<p className={' mt-1 text-sm text-danger'}>*/} {/*<p className={' mt-1 text-sm text-danger'}>*/}
@@ -161,7 +169,7 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="تعداد فرزندان خود را وارد کنید " placeholder='تعداد فرزندان خود را وارد کنید '
/> />
</div> </div>
{/*<p className={' mt-1 text-sm text-danger'}>*/} {/*<p className={' mt-1 text-sm text-danger'}>*/}
@@ -185,7 +193,7 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="تعداد افراد تحت تکلف خود را وارد کنید " placeholder='تعداد افراد تحت تکلف خود را وارد کنید '
/> />
</div> </div>
{/*<p className={' mt-1 text-sm text-danger'}>*/} {/*<p className={' mt-1 text-sm text-danger'}>*/}
@@ -209,11 +217,11 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="وضعیت بیمه خود را وارد کنید " placeholder='وضعیت بیمه خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.Insurance?.type === "required" && <p> وارد کردن وضعیت بیمه اجباری است</p>} {errors?.Insurance?.type === 'required' && <p> وارد کردن وضعیت بیمه اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -233,14 +241,13 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='number' type='number'
placeholder=" کد ملی خود را وارد کنید " placeholder=' کد ملی خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.national_code?.type === "required" && <p> وارد کردن کد ملی اجباری است</p>} {errors?.national_code?.type === 'required' && <p> وارد کردن کد ملی اجباری است</p>}
{errors?.national_code?.type === "maxLength" && <p>کد ملی وارد شده معبتر نمی باشد</p>} {errors?.national_code?.type === 'maxLength' && <p>کد ملی وارد شده معبتر نمی باشد</p>}
{errors?.national_code?.type === "minLength" && <p>کد ملی وارد شده معبتر نمی باشد</p>} {errors?.national_code?.type === 'minLength' && <p>کد ملی وارد شده معبتر نمی باشد</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -260,12 +267,11 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="محل صدور شناسنامه خود را وارد کنید " placeholder='محل صدور شناسنامه خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.placenational?.type === "required" && <p> وارد کردن محل صدور شناسانه اجباری است</p>} {errors?.placenational?.type === 'required' && <p> وارد کردن محل صدور شناسانه اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -285,12 +291,11 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="تلفن ثابت خود را وارد کنید " placeholder='تلفن ثابت خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.phone?.type === "required" && <p> وارد کردن تلفن ثابت اجباری است</p>} {errors?.phone?.type === 'required' && <p> وارد کردن تلفن ثابت اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -310,14 +315,13 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='number' type='number'
placeholder=" شماره موبایل خود را وارد کنید " placeholder=' شماره موبایل خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.mobile_number?.type === "required" && <p> وارد کردن شماره موبایل اجباری است</p>} {errors?.mobile_number?.type === 'required' && <p> وارد کردن شماره موبایل اجباری است</p>}
{errors?.mobile_number?.type === "maxLength" && <p>شماره موبایل وارد شده معبتر نمی باشد</p>} {errors?.mobile_number?.type === 'maxLength' && <p>شماره موبایل وارد شده معبتر نمی باشد</p>}
{errors?.mobile_number?.type === "minLength" && <p>شماره موبایل وارد شده معبتر نمی باشد</p>} {errors?.mobile_number?.type === 'minLength' && <p>شماره موبایل وارد شده معبتر نمی باشد</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
@@ -337,32 +341,35 @@ const PersonData = () => {
style={{ height: 40 }} style={{ height: 40 }}
dir={'rtl'} dir={'rtl'}
type='number' type='number'
placeholder=" سال تولد خود را وارد کنید " placeholder=' سال تولد خود را وارد کنید '
/> />
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.birthday?.type === "required" && <p> وارد کردن تاریخ تولد اجباری است</p>} {errors?.birthday?.type === 'required' && <p> وارد کردن تاریخ تولد اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</div> </div>
</Box> </Box>
{/*////*/} {/*////*/}
<SimpleGrid className={'mt-2 flex justify-content-between'} dir={'rtl'} columns={[1,1,2]} spacingX='390px' spacingY='20px'> <SimpleGrid
className={'mt-2 flex justify-content-between'}
dir={'rtl'}
columns={[1, 1, 2]}
spacingX='390px'
spacingY='20px'
>
<Box> <Box>
<MDBInputGroup className='flex'> <MDBInputGroup className='flex'>
<div className={'flex align-items-center'}> <div className={'flex align-items-center'}>
<MDBInputGroupText className={'rounded-0 border-0'}> <MDBInputGroupText className={'rounded-0 border-0'}>جنسیت :</MDBInputGroupText>
جنسیت :
</MDBInputGroupText>
<div> <div>
<Select <Select
dir={'ltr'} dir={'ltr'}
{...register('gender')} {...register('gender')}
defaultValue={personData.gender} defaultValue={personData.gender}
style={{ width: 200 }} style={{ width: 200 }}
onChange={(e) => setSex(e.target.value)} onChange={e => setSex(e.target.value)}
> >
<option value='1'> مرد </option> <option value='1'> مرد </option>
<option value='2'> زن </option> <option value='2'> زن </option>
@@ -370,16 +377,14 @@ const PersonData = () => {
</div> </div>
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.gender?.type === "required" && <p> وارد کردن نظام وظیفه اجباری است</p>} {errors?.gender?.type === 'required' && <p> وارد کردن نظام وظیفه اجباری است</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</Box> </Box>
<Box> <Box>
<MDBInputGroup> <MDBInputGroup>
<div className={'flex align-items-center'}> <div className={'flex align-items-center'}>
<MDBInputGroupText className={'rounded-0 border-0'}> <MDBInputGroupText className={'rounded-0 border-0'}>وضعیت تحصیل :</MDBInputGroupText>
وضعیت تحصیل :
</MDBInputGroupText>
<div> <div>
<Select <Select
dir={'ltr'} dir={'ltr'}
@@ -397,16 +402,14 @@ const PersonData = () => {
</div> </div>
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.degree?.type === "required" && <p> وضعیت تحصیل را مشخص کنید</p>} {errors?.degree?.type === 'required' && <p> وضعیت تحصیل را مشخص کنید</p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</Box> </Box>
<Box> <Box>
<MDBInputGroup> <MDBInputGroup>
<div className={'flex align-items-center'}> <div className={'flex align-items-center'}>
<MDBInputGroupText className={'rounded-0 border-0'}> <MDBInputGroupText className={'rounded-0 border-0'}>وضعیت تاهل :</MDBInputGroupText>
وضعیت تاهل :
</MDBInputGroupText>
<div> <div>
<Select <Select
defaultValue={personData.marital} defaultValue={personData.marital}
@@ -420,7 +423,7 @@ const PersonData = () => {
</div> </div>
</div> </div>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.marital?.type === "required" && <p> وضعیت تاهل را مشخص کنید </p>} {errors?.marital?.type === 'required' && <p> وضعیت تاهل را مشخص کنید </p>}
</p> </p>
</MDBInputGroup> </MDBInputGroup>
</Box> </Box>
@@ -428,17 +431,16 @@ const PersonData = () => {
{sex === '1' ? ( {sex === '1' ? (
<MDBInputGroup className='mb-3 flex'> <MDBInputGroup className='mb-3 flex'>
<div className={'flex align-items-center'}> <div className={'flex align-items-center'}>
<MDBInputGroupText className={'rounded-0 border-0'}> <MDBInputGroupText className={'rounded-0 border-0'}>وضعیت نظام وظیفه :</MDBInputGroupText>
وضعیت نظام وظیفه : <div className='form-check'>
</MDBInputGroupText>
<div className="form-check">
<Select <Select
dir={'ltr'} dir={'ltr'}
defaultValue={personData.military} defaultValue={personData.military}
className={'form-select'} className={'form-select'}
style={{ width: 200 }} style={{ width: 200 }}
{...register('military', { required: true })} {...register('military', { required: true })}
placeholder=' وضعیت خدمت '> placeholder=' وضعیت خدمت '
>
<option value='1'> معافیت </option> <option value='1'> معافیت </option>
<option value='2'> مشمول </option> <option value='2'> مشمول </option>
<option value='3'> پایان خدمت </option> <option value='3'> پایان خدمت </option>
@@ -447,19 +449,30 @@ const PersonData = () => {
</div> </div>
<div style={{ width: 500 }} className={'mt-2 d-inline'}> <div style={{ width: 500 }} className={'mt-2 d-inline'}>
<p style={{ width: 500 }} className={' text-sm text-danger'}> <p style={{ width: 500 }} className={' text-sm text-danger'}>
{errors?.military?.type === "required" && <p> وضعیت سربازی را مشخص کنید</p>} {errors?.military?.type === 'required' && <p> وضعیت سربازی را مشخص کنید</p>}
</p> </p>
</div> </div>
</MDBInputGroup> </MDBInputGroup>
): ''} ) : (
''
)}
</Box> </Box>
<Box> <Box>
<MDBInputGroup style={{ flexDirection: "column" }} className='mb-3 flex'> <MDBInputGroup style={{ flexDirection: 'column' }} className='mb-3 flex'>
<div style={{display: "flex" ,flexDirection: "column" }} className={'flex align-items-center align-items-center flex-row flex-lg-row flex-md-row flex-sm-column'}> <div
<MDBInputGroupText className={'rounded-0 border-0'}> style={{ display: 'flex', flexDirection: 'column' }}
سابقه بیماری : className={
</MDBInputGroupText> 'flex align-items-center align-items-center flex-row flex-lg-row flex-md-row flex-sm-column'
<RadioGroup defaultValue={personData.health} {...register('health', {required: false})} className={'flex align-items-center flex-row flex-lg-row flex-md-row flex-sm-column'} onChange={setHealth} value={health}> }
>
<MDBInputGroupText className={'rounded-0 border-0'}>سابقه بیماری :</MDBInputGroupText>
<RadioGroup
defaultValue={personData.health}
{...register('health', { required: false })}
className={'flex align-items-center flex-row flex-lg-row flex-md-row flex-sm-column'}
onChange={setHealth}
value={health}
>
<div> <div>
<Stack spacing={4} direction='row'> <Stack spacing={4} direction='row'>
<Radio value='1'> ندارم </Radio> <Radio value='1'> ندارم </Radio>
@@ -467,8 +480,6 @@ const PersonData = () => {
</Stack> </Stack>
</div> </div>
</RadioGroup> </RadioGroup>
</div> </div>
<div> <div>
{health === '2' && ( {health === '2' && (
@@ -485,11 +496,11 @@ const PersonData = () => {
style={{ height: 40, width: 250 }} style={{ height: 40, width: 250 }}
dir={'rtl'} dir={'rtl'}
type='text' type='text'
placeholder="نوع بیماری خود را وارد کنید " placeholder='نوع بیماری خود را وارد کنید '
/> />
<div> <div>
<p style={{ width: 400 }} className={'text-sm text-danger'}> <p style={{ width: 400 }} className={'text-sm text-danger'}>
{errors?.healthreason?.type === "required" && <p> نوع بیماری خود را وارد کنید </p>} {errors?.healthreason?.type === 'required' && <p> نوع بیماری خود را وارد کنید </p>}
</p> </p>
</div> </div>
</div> </div>
@@ -506,19 +517,21 @@ const PersonData = () => {
<Textarea <Textarea
defaultValue={personData.address} defaultValue={personData.address}
{...register('address', { required: true })} {...register('address', { required: true })}
dir={'rtl'} placeholder='آدرس محل سکونت خود را وارد کنید ' /> dir={'rtl'}
placeholder='آدرس محل سکونت خود را وارد کنید '
/>
</MDBInputGroup> </MDBInputGroup>
<p className={' mt-1 text-sm text-danger'}> <p className={' mt-1 text-sm text-danger'}>
{errors?.address?.type === "required" && <p> آدرس محلص سکونت خود را وراد کنید </p>} {errors?.address?.type === 'required' && <p> آدرس محلص سکونت خود را وراد کنید </p>}
</p> </p>
</Box> </Box>
<MDBBtn type={'submit'} size={'sm'} className={'mt-2 bg-primary-teal'} >مرحله بعد</MDBBtn> <MDBBtn type={'submit'} size={'sm'} className={'mt-2 bg-primary-teal'}>
مرحله بعد
</MDBBtn>
</form> </form>
</div> </div>
); )
}; }
export default PersonData; export default PersonData
+250 -113
View File
@@ -1,95 +1,104 @@
import React, {Suspense, useMemo, useState} from 'react'; import React, { Suspense, useMemo, useState } from 'react'
import { useForm } from "react-hook-form"; import { useForm } from 'react-hook-form'
import { Alert, AlertDescription, AlertIcon, AlertTitle, Checkbox, useDisclosure } from '@chakra-ui/react' import { Alert, AlertDescription, AlertIcon, AlertTitle, Checkbox, useDisclosure } from '@chakra-ui/react'
import AppContainer from "../../../appContainer"; import AppContainer from '../../../appContainer'
import { import { MDBBtn, MDBCard, MDBCardBody, MDBCardImage, MDBCardTitle, MDBContainer, MDBSpinner } from 'mdb-react-ui-kit'
MDBBtn, MDBCard, MDBCardBody, MDBCardImage, MDBCardTitle,
MDBContainer, MDBSpinner,
} from "mdb-react-ui-kit";
import { import {
Box, Box,
Divider, Divider,
ListItem, Progress, ListItem,
SimpleGrid, SlideFade, Text, Progress,
SimpleGrid,
SlideFade,
Text,
UnorderedList, UnorderedList,
Button,Modal,ModalOverlay,ModalContent,ModalHeader, Button,
ModalCloseButton,ModalBody,ModalFooter Modal,
} from "@chakra-ui/react"; ModalOverlay,
ModalContent,
ModalHeader,
ModalCloseButton,
ModalBody,
ModalFooter
} from '@chakra-ui/react'
import { FiUser, FiCheck } from 'react-icons/fi' import { FiUser, FiCheck } from 'react-icons/fi'
import { FcApproval } from 'react-icons/fc' import { FcApproval } from 'react-icons/fc'
import { MDBRadio } from 'mdb-react-ui-kit';
import Employer from '../../../../public/resource/icons/portfolio-outline.png' import Employer from '../../../../public/resource/icons/portfolio-outline.png'
import axios from "axios"; import axios from 'axios'
import {FORM_CAST} from "../../../../src/redux/actions"; import { HandleFormReq } from '../../../../lib/HandleFormReq'
import {HandleFormReq} from "../../../../lib/HandleFormReq"; import PersonData from './PersonData'
import PersonData from "./PersonData"; import EducationalData from './EducationalData'
import EducationalData from "./EducationalData"; import CoursesData from './CoursesData'
import CoursesData from "./CoursesData"; import JobData from './JobData'
import JobData from "./JobData"; import ScientificData from './ScientificData'
import ScientificData from "./ScientificData"; import PcSkill from './PcSkill'
import PcSkill from "./PcSkill"; import Furtherinformation from './Furtherinformation'
import Furtherinformation from "./Furtherinformation"; import log from 'tailwindcss/lib/util/log'
import log from "tailwindcss/lib/util/log"; import { AppProduction } from '../../../../lib/api'
const requestForm = SelectedJob => {
console.log('sdsds', SelectedJob.SelectedJob.data)
const requestForm = (SelectedJob) => {
console.log('sdsds', SelectedJob.SelectedJob.data);
const { isOpen, onOpen, onClose } = useDisclosure() const { isOpen, onOpen, onClose } = useDisclosure()
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false)
const [ShowSuccess, seShowSuccess] = useState(false); const [ShowSuccess, seShowSuccess] = useState(false)
const [CheckCode, setCheckCode] = useState() const [CheckCode, setCheckCode] = useState()
const [page, setPage] = useState(1) const [page, setPage] = useState(1)
const [personData, setpersondata] = useState({ const [personData, setpersondata] = useState({
Insurance: '', Insurance: '',
address: '', address: '',
birthday: '', birthday: '',
childIndex: "", childIndex: '',
degree: "", degree: '',
healthreason: '', healthreason: '',
health: '1', health: '1',
dependants: "", dependants: '',
fatherName: "", fatherName: '',
firstname: "", firstname: '',
gender: '2', gender: '2',
lastname: '', lastname: '',
marital: "", marital: '',
mobile_number: "", mobile_number: '',
national_code: "", national_code: '',
phone: "", phone: '',
placenational: "", placenational: '',
wifeJob: "" wifeJob: ''
}) })
const [educationalData,setEducationalData] = useState([{ const [educationalData, setEducationalData] = useState([
{
university: '', university: '',
field: '', field: '',
trend: '', trend: '',
score: '', score: '',
dateField: '', dateField: ''
}]) }
const [coursesData,setCoursesData] = useState([{ ])
const [coursesData, setCoursesData] = useState([
{
courseName: '', courseName: '',
courseEdu: '', courseEdu: '',
courseLocal: '', courseLocal: '',
courseTime: '', courseTime: ''
}]) }
])
const [langStatus, setLangStatus] = useState({ const [langStatus, setLangStatus] = useState({
status: 0 status: 0
}) })
const [jobData, setJob] = useState([{ const [jobData, setJob] = useState([
{
companyName: '', companyName: '',
position: '', position: '',
workTime: '', workTime: '',
exitReason: '', exitReason: '',
lastIncome: '' lastIncome: ''
}]) }
])
const [scientificData, setScientificData] = useState({ const [scientificData, setScientificData] = useState({
text: '' text: ''
}); })
const [pcSkillData, setPcSkillData] = useState({ const [pcSkillData, setPcSkillData] = useState({
text: '', text: '',
icdlLevel: 2 icdlLevel: 2
}); })
const [furtherinformation, setFurtherinformation] = useState({ const [furtherinformation, setFurtherinformation] = useState({
criminal: '1', criminal: '1',
salary: '', salary: '',
@@ -98,45 +107,81 @@ const requestForm = (SelectedJob) => {
const [isSubmitPersonData, setIsSubmitPersonData] = useState(false) const [isSubmitPersonData, setIsSubmitPersonData] = useState(false)
const [iAgree, setAgree] = useState(true) const [iAgree, setAgree] = useState(true)
const value = useMemo( const value = useMemo(
() => ({ page, setPage, personData, setpersondata,educationalData, setEducationalData,coursesData, setCoursesData, langStatus, setLangStatus, jobData, setJob, scientificData, setScientificData,pcSkillData,setPcSkillData, furtherinformation, setFurtherinformation }), () => ({
[page, personData,educationalData, coursesData, langStatus, jobData, scientificData, pcSkillData, furtherinformation] page,
); setPage,
personData,
setpersondata,
educationalData,
setEducationalData,
coursesData,
setCoursesData,
langStatus,
setLangStatus,
jobData,
setJob,
scientificData,
setScientificData,
pcSkillData,
setPcSkillData,
furtherinformation,
setFurtherinformation
}),
[
page,
personData,
educationalData,
coursesData,
langStatus,
jobData,
scientificData,
pcSkillData,
furtherinformation
]
)
console.log('SelectedJob', SelectedJob)
const handleLastSubmit = () => { const handleLastSubmit = () => {
setLoading(true) setLoading(true)
axios.post('https://mehriranianco.ir/api/public/jobrequest' , { axios
.post(`${AppProduction}public/jobrequest`, {
job_id: SelectedJob.SelectedJob.data.id, job_id: SelectedJob.SelectedJob.data.id,
OccupationalJob_id: SelectedJob.SelectedJob.OccupationalJob.id, OccupationalJob_id: SelectedJob.SelectedJob.OccupationalJob.id,
lastData: JSON.stringify({ lastData: JSON.stringify({
"personData" : personData, personData: personData,
"educationalData" : educationalData, educationalData: educationalData,
"coursesData" : {...coursesData, langStatus}, coursesData: { ...coursesData, langStatus },
"jobData": jobData, jobData: jobData,
"scientificData": scientificData, scientificData: scientificData,
"pcSkillData": pcSkillData, pcSkillData: pcSkillData,
"furtherinformation": furtherinformation furtherinformation: furtherinformation
}) })
}).then((res) => { })
.then(res => {
setLoading(false) setLoading(false)
seShowSuccess(true) seShowSuccess(true)
setCheckCode(res.data.code) setCheckCode(res.data.code)
})
}).catch((err) => { .catch(err => {
console.log('err', err) console.log('err', err)
}) })
} }
return ( return (
<div> <div>
<AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}> <AppContainer title={'فرصت های شغلی بیمارستان مهر ایرانیان پرند'}>
<div className={'w-100 p-5 bg-teal-grad'}> <div className={'w-100 p-5 bg-teal-grad'}>
<div style={{ flexDirection: 'column' }} className={'flex lg:flex-row md:flex-col sm:flex-col justify-content-between items-center'}> <div
style={{ flexDirection: 'column' }}
className={'flex lg:flex-row md:flex-col sm:flex-col justify-content-between items-center'}
>
<div className={'bg-white p-2 rounded-circle shadow-6-soft'}> <div className={'bg-white p-2 rounded-circle shadow-6-soft'}>
<MDBCardImage width={50} src={Employer} /> <MDBCardImage width={50} src={Employer} />
</div> </div>
<div className={'mt-4 w-full'}> <div className={'mt-4 w-full'}>
<Text dir={'rtl'} className={'bk-med text-center text-white font-weight-bold '}> درخواست شغلی برای {SelectedJob.SelectedJob.data.title } - {SelectedJob.SelectedJob.OccupationalJob.title}</Text> <Text dir={'rtl'} className={'bk-med text-center text-white font-weight-bold '}>
{' '}
درخواست شغلی برای {SelectedJob.SelectedJob.data.title} - {SelectedJob.SelectedJob.OccupationalJob.title}
</Text>
</div> </div>
</div> </div>
</div> </div>
@@ -147,13 +192,12 @@ const requestForm = (SelectedJob) => {
<MDBCardBody dir={'rtl'}> <MDBCardBody dir={'rtl'}>
<MDBCardTitle className={'bk-med'}> <MDBCardTitle className={'bk-med'}>
<FcApproval className={'ml-2'} /> <FcApproval className={'ml-2'} />
توضیحات موقعیت شغلی</MDBCardTitle> توضیحات موقعیت شغلی
</MDBCardTitle>
<div className={'mt-4'}> <div className={'mt-4'}>
<UnorderedList className={'bk-light'}> <UnorderedList className={'bk-light'}>
{SelectedJob.SelectedJob.data.details.map((items, index) => { {SelectedJob.SelectedJob.data.details.map((items, index) => {
return [items].map((item, index) => ( return [items].map((item, index) => <ListItem key={index}>{item}</ListItem>)
<ListItem key={index}>{item}</ListItem>
))
})} })}
</UnorderedList> </UnorderedList>
</div> </div>
@@ -170,9 +214,7 @@ const requestForm = (SelectedJob) => {
<div className={'mt-4'}> <div className={'mt-4'}>
<UnorderedList className={'bk-light'}> <UnorderedList className={'bk-light'}>
{SelectedJob.SelectedJob.data.requirement.map((items, index) => { {SelectedJob.SelectedJob.data.requirement.map((items, index) => {
return [items].map((item, index) => ( return [items].map((item, index) => <ListItem key={index}>{item}</ListItem>)
<ListItem key={index}>{item}</ListItem>
))
})} })}
</UnorderedList> </UnorderedList>
</div> </div>
@@ -191,12 +233,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
اطلاعات فردی اطلاعات فردی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -206,12 +260,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
اطلاعات تحصیلی اطلاعات تحصیلی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -221,12 +287,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
سوابق آموزشی سوابق آموزشی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -236,12 +314,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
سوابق شغلی سوابق شغلی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -251,12 +341,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
سوابق علمی سوابق علمی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -266,12 +368,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
مهارت کار با کامپیوتر مهارت کار با کامپیوتر
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -281,12 +395,24 @@ const requestForm = (SelectedJob) => {
return ( return (
<SlideFade in={true}> <SlideFade in={true}>
<div className={'flex'}> <div className={'flex'}>
<div className={'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '}> <div
<h3 className={'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'}> className={
'light-primary-teal flex align-items-center justify-content-center rounded-6 shadow-5-soft '
}
>
<h3
className={
'bk-med text-primary-teal flex justify-content-center align-items-center font-weight-bold m-3'
}
>
اطلاعات تکمیلی اطلاعات تکمیلی
</h3> </h3>
</div> </div>
<div className={'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '}> <div
className={
'bg-primary-teal flex align-items-center justify-content-center shadow-5-soft '
}
>
<FiUser className={'m-1 text-white'} size={20} /> <FiUser className={'m-1 text-white'} size={20} />
</div> </div>
</div> </div>
@@ -295,7 +421,6 @@ const requestForm = (SelectedJob) => {
} }
})()} })()}
</div> </div>
</div> </div>
<div className={'mt-5'}> <div className={'mt-5'}>
<Progress dir={'rtl'} value={page * 14} size='xs' colorScheme='teal' /> <Progress dir={'rtl'} value={page * 14} size='xs' colorScheme='teal' />
@@ -345,7 +470,8 @@ const requestForm = (SelectedJob) => {
<div> <div>
<Furtherinformation /> <Furtherinformation />
<Checkbox onChange={() => setAgree(!iAgree)}> <Checkbox onChange={() => setAgree(!iAgree)}>
اینجانب مسئولیت صحت کلیه اطلاعات ارائه شده در این فرم را پذیرفته و در صورت اثبات عدم صحت موارد فوق الذکر شرکت مجاز به اتخاذ هر گونه تصمیم و برخورد قانونی می باشد . اینجانب مسئولیت صحت کلیه اطلاعات ارائه شده در این فرم را پذیرفته و در صورت اثبات عدم صحت
موارد فوق الذکر شرکت مجاز به اتخاذ هر گونه تصمیم و برخورد قانونی می باشد .
</Checkbox> </Checkbox>
</div> </div>
) : ( ) : (
@@ -373,12 +499,14 @@ const requestForm = (SelectedJob) => {
})()} })()}
</HandleFormReq.Provider> </HandleFormReq.Provider>
<div className={'mt-5'}> <div className={'mt-5'}>
<div dir={'rtl'} className={'m-2 mt-2 mb-2 flex justify-content-between'}> <div dir={'rtl'} className={'m-2 mt-2 mb-2 flex justify-content-between'}>
{page > 1 && ShowSuccess === false ? ( {page > 1 && ShowSuccess === false ? (
<MDBBtn color='danger' size={'sm'} className={'mt-2'} onClick={() => setPage(page - 1)} >مرحله قبل</MDBBtn> <MDBBtn color='danger' size={'sm'} className={'mt-2'} onClick={() => setPage(page - 1)}>
) مرحله قبل
: ''} </MDBBtn>
) : (
''
)}
{/*{page === 1 && page !== 5 ? (*/} {/*{page === 1 && page !== 5 ? (*/}
{/* (*/} {/* (*/}
@@ -390,7 +518,12 @@ const requestForm = (SelectedJob) => {
{page === 7 ? ( {page === 7 ? (
<div> <div>
{ShowSuccess === false && ( {ShowSuccess === false && (
<MDBBtn disabled={iAgree} onClick={handleLastSubmit} size={'lg'} className={'mt-2 bk-med text-center bg-primary-teal'}> <MDBBtn
disabled={iAgree}
onClick={handleLastSubmit}
size={'lg'}
className={'mt-2 bk-med text-center bg-primary-teal'}
>
{loading === false ? ( {loading === false ? (
' ثبت در خواست استخدام' ' ثبت در خواست استخدام'
) : ( ) : (
@@ -402,32 +535,36 @@ const requestForm = (SelectedJob) => {
</MDBSpinner> </MDBSpinner>
</div> </div>
</div> </div>
) )}
}
</MDBBtn> </MDBBtn>
)} )}
</div> </div>
): ''} ) : (
''
)}
</div> </div>
</div> </div>
</MDBContainer> </MDBContainer>
</AppContainer> </AppContainer>
</div> </div>
); )
}; }
export async function getServerSideProps(ctx) { export async function getServerSideProps(ctx) {
// Fetch data from external API // Fetch data from external API
const { query } = ctx const { query } = ctx
const res = await axios.get(`https://mehriranianco.ir/api/public/selectJob/${query.pos_id}`).then((res) => { const res = await axios
.get(`${AppProduction}public/selectJob/${query.pos_id}`)
.then(res => {
return res.data return res.data
}).catch((err) => { })
.catch(err => {
console.log(err) console.log(err)
}); })
const SelectedJob = await res const SelectedJob = await res
// Pass data to the page via props // Pass data to the page via props
return { props: { SelectedJob } } return { props: { SelectedJob } }
} }
export default requestForm; export default requestForm
+4416 -4242
View File
File diff suppressed because it is too large Load Diff