Merge branch 'develop' of https://gitlab.com/witel-front-end/loan-facilities/user into feature/Amin_loan_request
This commit is contained in:
@@ -1,19 +1,74 @@
|
||||
import {useTranslations} from "next-intl";
|
||||
import {useEffect, useState} from "react";
|
||||
import {useRequest} from "@witel/webapp-builder";
|
||||
import TimelineManager from "@/core/components/timelines/timelineManager";
|
||||
import moment from "jalali-moment";
|
||||
import {Timeline} from "@mui/lab";
|
||||
import OpenTimeLine from "@/core/components/timelines/OpenTimeLine";
|
||||
import InProgressTimeLine from "@/core/components/timelines/InProgressTimeLine";
|
||||
import {LinearProgress} from "@mui/material";
|
||||
|
||||
const TimeLineDetails = () => {
|
||||
const t = useTranslations();
|
||||
const request = useRequest({notification: false, auth: false})
|
||||
const [timeLineList, setTimeLineList] = useState([])
|
||||
const [loading, setLoading] = useState(true)
|
||||
|
||||
useEffect(() => {
|
||||
setLoading(true)
|
||||
request(process.env.NEXT_PUBLIC_CONFIG_APP_URL, 'get').then(res => {
|
||||
let tempArr = []
|
||||
for (const timeLine of res.data.time_lines.navgan_first_page) {
|
||||
let temp = {}
|
||||
temp['label'] = timeLine.label
|
||||
temp['date'] = moment(timeLine.date.from, 'jYYYY/jMM/jDD').locale('fa').format('jD jMMMM')
|
||||
const fromDate = moment(timeLine.date.from, 'jYYYY/jMM/jDD')
|
||||
const toDate = moment(timeLine.date.to, 'jYYYY/jMM/jDD')
|
||||
const today = moment()
|
||||
if (today.isBetween(fromDate, toDate, null, '[]')) {
|
||||
temp['status'] = 'in progress'
|
||||
} else if (today.isAfter(toDate, null)) {
|
||||
temp['status'] = 'done'
|
||||
} else if (today.isBefore(fromDate, null)) {
|
||||
temp['status'] = 'open'
|
||||
}
|
||||
tempArr.push(temp)
|
||||
}
|
||||
setTimeLineList(tempArr)
|
||||
setLoading(false)
|
||||
}).catch(() => {
|
||||
setLoading(false)
|
||||
})
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Timeline position="alternate">
|
||||
<InProgressTimeLine date={'10 دی'} primaryLabel={'ثبت نام متقاضی'}
|
||||
secondaryLabel={'ثبت نام متقاضیان واجد شرایط'}/>
|
||||
<OpenTimeLine date={'10 بهمن'} primaryLabel={'صحت سنجی متقاضیان'}
|
||||
secondaryLabel={'بررسی و کارشناسی درخواست ها'}/>
|
||||
<OpenTimeLine position={'end'} date={'10 اسفند'} primaryLabel={'ارجاع به بانک'}
|
||||
secondaryLabel={'فرآیند معرفی ضامن و پرداخت'}/>
|
||||
</Timeline>
|
||||
<>
|
||||
{loading ? (
|
||||
<LinearProgress/>
|
||||
) : (
|
||||
<Timeline position="alternate">
|
||||
{timeLineList.map((timeLine, index) => (
|
||||
<TimelineManager
|
||||
key={index}
|
||||
status={timeLine.status}
|
||||
date={timeLine.date}
|
||||
primaryLabel={timeLine.label.primary}
|
||||
secondaryLabel={timeLine.label.secondary}
|
||||
position={index === (timeLineList.length - 1) ? 'end' : ''}
|
||||
/>
|
||||
))
|
||||
}
|
||||
</Timeline>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
// return (
|
||||
// <Timeline position="alternate">
|
||||
// <InProgressTimeLine date={'10 دی'} primaryLabel={'ثبت نام متقاضی'}
|
||||
// secondaryLabel={'ثبت نام متقاضیان واجد شرایط'}/>
|
||||
// <OpenTimeLine date={'10 بهمن'} primaryLabel={'صحت سنجی متقاضیان'}
|
||||
// secondaryLabel={'بررسی و کارشناسی درخواست ها'}/>
|
||||
// <OpenTimeLine position={'end'} date={'10 اسفند'} primaryLabel={'ارجاع به بانک'}
|
||||
// secondaryLabel={'فرآیند معرفی ضامن و پرداخت'}/>
|
||||
// </Timeline>
|
||||
// )
|
||||
}
|
||||
export default TimeLineDetails
|
||||
16
src/core/components/timelines/timelineManager.jsx
Normal file
16
src/core/components/timelines/timelineManager.jsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import OpenTimeLine from "@/core/components/timelines/OpenTimeLine";
|
||||
import InProgressTimeLine from "@/core/components/timelines/InProgressTimeLine";
|
||||
import DoneTimeLine from "@/core/components/timelines/DoneTimeLine";
|
||||
|
||||
const TimelineManager = (props) => {
|
||||
switch (props.status) {
|
||||
case 'open':
|
||||
return <OpenTimeLine {...props} />
|
||||
case 'in progress':
|
||||
return <InProgressTimeLine {...props} />
|
||||
case 'done':
|
||||
return <DoneTimeLine {...props} />
|
||||
}
|
||||
}
|
||||
|
||||
export default TimelineManager
|
||||
@@ -6,27 +6,30 @@ const sidebarMenu = [
|
||||
[
|
||||
{
|
||||
key: "sidebar.dashboard",
|
||||
name: "sidebar.dashboard",
|
||||
type: "page",
|
||||
route: "/dashboard",
|
||||
icon: <SpaceDashboardIcon/>,
|
||||
icon: <SpaceDashboardIcon sx={{width: 'inherit', height: 'inherit'}}/>,
|
||||
selected: false,
|
||||
permission_name: "all"
|
||||
permission: "all"
|
||||
},
|
||||
{
|
||||
key: "sidebar.add-request-loan",
|
||||
name: "sidebar.add-request-loan",
|
||||
type: "page",
|
||||
route: "/dashboard/navgan/add-request-loan",
|
||||
icon: <DataSaverOnIcon/>,
|
||||
icon: <DataSaverOnIcon sx={{width: 'inherit', height: 'inherit'}}/>,
|
||||
selected: false,
|
||||
permission_name: "can_request_a_new_loan"
|
||||
permission: "can_request_a_new_loan"
|
||||
},
|
||||
{
|
||||
key: "sidebar.followUp-loan",
|
||||
name: "sidebar.followUp-loan",
|
||||
type: "page",
|
||||
route: "/dashboard/navgan/followUp-loan",
|
||||
icon: <BookmarkAddedIcon/>,
|
||||
icon: <BookmarkAddedIcon sx={{width: 'inherit', height: 'inherit'}}/>,
|
||||
selected: false,
|
||||
permission_name: "all"
|
||||
permission: "all"
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
import {DashboardLayout as DashboardLayoutPure} from "@witel/webapp-builder";
|
||||
import {DashboardLayout as DashboardLayoutPure, useUser} from "@witel/webapp-builder";
|
||||
import headerProfileItems from "@/core/data/headerProfileItems";
|
||||
import sidebarMenu from "@/core/data/sidebarMenu";
|
||||
import {GET_SIDEBAR_NOTIFICATION} from "@/core/data/apiRoutes";
|
||||
|
||||
const DashboardLayout = (props) => {
|
||||
const {user} = useUser()
|
||||
return (
|
||||
<>
|
||||
<DashboardLayoutPure headerProfileItems={headerProfileItems} sidebarMenu={sidebarMenu}
|
||||
urlNotification={GET_SIDEBAR_NOTIFICATION} {...props} />
|
||||
<DashboardLayoutPure
|
||||
loginUrl={'/login'}
|
||||
user_introduction={user.type_name}
|
||||
headerProfileItems={headerProfileItems}
|
||||
sidebarMenu={sidebarMenu}
|
||||
urlNotification={GET_SIDEBAR_NOTIFICATION}
|
||||
BC_segmentsToRemove={[]}
|
||||
{...props}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user