No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

295 líneas
14 KiB

  1. // material-ui
  2. import { Grid, Typography, Stack, Box, Button, Tab } from '@mui/material';
  3. import { TabPanel, TabContext, TabList } from '@mui/lab';
  4. import { useEffect, useState } from "react";
  5. import * as React from "react";
  6. //import axios from "axios";
  7. import * as HttpUtils from "utils/HttpUtils";
  8. import { useParams } from "react-router-dom";
  9. import FileList from "components/FileList"
  10. import MainCard from "components/MainCard";
  11. import * as UrlUtils from "utils/ApiPathConst";
  12. import * as DateUtils from 'utils/DateUtils';
  13. import Loadable from 'components/Loadable';
  14. import { lazy } from 'react';
  15. const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
  16. const UserInformationCard = Loadable(lazy(() => import('./UserInformationCard_Organization')));
  17. const UserInformationPubCard = Loadable(lazy(() => import('./UserInformationCard_Organization_Pub')));
  18. import ForwardIcon from '@mui/icons-material/Forward';
  19. import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
  20. import { useNavigate } from 'react-router-dom';
  21. import * as ComboData from "utils/ComboData";
  22. import {getObjectByType} from "utils/CommonFunction";
  23. const LoginGrid = Loadable(React.lazy(() => import('./LoginGrid')));
  24. const BackgroundHead = {
  25. backgroundImage: `url(${titleBackgroundImg})`,
  26. width: '100%',
  27. height: '100%',
  28. backgroundSize: 'contain',
  29. backgroundRepeat: 'no-repeat',
  30. backgroundColor: '#0C489E',
  31. backgroundPosition: 'right'
  32. }
  33. import {
  34. isGLDLoggedIn,
  35. isORGLoggedIn,
  36. isINDLoggedIn
  37. } from "utils/Utils";
  38. import {FormattedMessage, useIntl} from "react-intl";
  39. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  40. const UserMaintainPage_Organization = () => {
  41. const params = useParams();
  42. const navigate = useNavigate();
  43. const [userData, setUserData] = useState({})
  44. const [orgData, setOrgData] = useState({})
  45. const [isLoading, setLoding] = useState(true);
  46. const intl = useIntl();
  47. const { locale } = intl;
  48. const [selectedTab, setSelectedTab] = React.useState("1");
  49. const isPrimaryLocale = locale === 'en' ?"Yes":locale === 'zh-HK' ?"是":"是";
  50. const notPrimaryLocale = locale === 'en' ?"No":locale === 'zh-HK' ?"否":"否";
  51. // const _sx = {
  52. // ml: 3,
  53. // mb: 3,
  54. // mt: 3,
  55. // mr: 6,
  56. // padding: "4 2 4 2",
  57. // boxShadow: 1,
  58. // border: 1,
  59. // borderColor: '#DDD',
  60. // '& .MuiDataGrid-cell': {
  61. // borderTop: 1,
  62. // borderBottom: 1,
  63. // borderColor: "#EEE"
  64. // },
  65. // '& .MuiDataGrid-footerContainer': {
  66. // border: 1,
  67. // borderColor: "#EEE"
  68. // }
  69. // }
  70. const handleChange = (event, newValue) => {
  71. setSelectedTab(newValue);
  72. }
  73. useEffect(() => {
  74. // console.log(userData);
  75. if (isINDLoggedIn()){
  76. navigate('/dashboard');
  77. }else{
  78. loadData();
  79. }
  80. }, []);
  81. useEffect(() => {
  82. if (orgData.length > 0 && userData["orgId"] != null){
  83. userData["orgId"] = getObjectByType(orgData, "id", userData["orgId"]);
  84. }
  85. }, [orgData, userData]);
  86. useEffect(() => {
  87. // console.log(userData);
  88. loadData();
  89. }, [locale]);
  90. // const reloadPage=()=>{
  91. // window.location.reload(false);
  92. // }
  93. const loadData = () => {
  94. setLoding(true);
  95. if (isGLDLoggedIn()){
  96. HttpUtils.get({
  97. url: `${UrlUtils.GET_ORG_USER_PATH}/${params.id}`,
  98. onSuccess: function (response) {
  99. // console.log(response)
  100. if (response.data.orgId != null) {
  101. // console.log("1a")
  102. response.data["addressBus"] = response.orgDetail.data["addressTemp"];
  103. response.data["orgContactTel"] = response.orgDetail.data["contactTel"];
  104. response.data["orgFaxNo"] = response.orgDetail.data["faxNo"];
  105. response.data["contactTel"] = JSON.parse(response.data["contactTel"]);
  106. response.data["faxNo"] = JSON.parse(response.data["faxNo"]);
  107. response.data["brExpiryDate"] = response.orgDetail.data.brExpiryDate ? DateUtils.dateValue(response.orgDetail.data.brExpiryDate) : "";
  108. response.data["brNo"] = response.orgDetail.data.brNo;
  109. response.data["enCompanyName"] = response.orgDetail.data.enCompanyName;
  110. response.data["chCompanyName"] = response.orgDetail.data.chCompanyName;
  111. response.data["chCompanyName"] = response.orgDetail.data.chCompanyName;
  112. } else {
  113. // console.log("1b")
  114. response.data["addressBus"] = JSON.parse(response.data["addressBus"]);
  115. response.data["contactTel"] = JSON.parse(response.data["contactTel"]);
  116. response.data["faxNo"] = JSON.parse(response.data["faxNo"]);
  117. response.data["orgContactTel"] = response.data["contactTel"];
  118. response.data["orgFaxNo"] = response.data["faxNo"];
  119. response.data["brExpiryDate"] = response.data.brExpiryDate ? DateUtils.dateValue(response.data.brExpiryDate) : "";
  120. }
  121. // console.log("2")
  122. // console.log(response.data)
  123. let createDate = DateUtils.datetimeStr(response.data.created);
  124. let modifiedBy = DateUtils.datetimeStr(response.data.modified) + ", " + response.data.modifiedBy;
  125. response.data["createDate"] = createDate;
  126. response.data["modifieDate"] = modifiedBy;
  127. response.data["verifiedStatus"] = response.data.verifiedBy ? DateUtils.datetimeStr(response.data.verifiedDate) + ", " + response.data.verifiedByName : "Not Verified";
  128. response.data["lastLoginDate"] = response.data.lastLogin ? DateUtils.datetimeStr(response.data.lastLoginDate) : "";
  129. response.data["country"] = getObjectByType(ComboData.country, "type", response.data.addressBus?.country);
  130. response.data["district"] = getObjectByType(ComboData.district, "type", response.data.addressBus?.district);
  131. response.data["addressLine1"] = response.data.addressBus?.addressLine1;
  132. response.data["addressLine2"] = response.data.addressBus?.addressLine2;
  133. response.data["addressLine3"] = response.data.addressBus?.addressLine3;
  134. response.data["phoneNumber"] = response.data.contactTel?.phoneNumber;
  135. response.data["tel_countryCode"] = response.data.contactTel?.countryCode;
  136. response.data["orgPhoneNumber"] = response.data.orgContactTel?.phoneNumber;
  137. response.data["org_tel_countryCode"] = response.data.orgContactTel?.countryCode;
  138. response.data["faxNumber"] = response.data.faxNo?.faxNumber;
  139. response.data["fax_countryCode"] = response.data.faxNo?.countryCode;
  140. response.data["orgFaxNumber"] = response.data.orgFaxNo?.faxNumber;
  141. response.data["org_fax_countryCode"] = response.data.orgFaxNo?.countryCode;
  142. // response.data["status"] = response.data?.locked?"locked":response.data?.status;
  143. response.data["preferLocale"] = getObjectByType(ComboData.Locale, "type", response.data?.preferLocale);
  144. //response.data["orgId"] = response.data.brExpiryDate?DateUtils.dateValue(response.data.brExpiryDate):"";
  145. // console.log("3")
  146. // console.log(response.data)
  147. setUserData(response.data);
  148. setOrgData(response.orgList);
  149. setLoding(false);
  150. }
  151. });
  152. }
  153. if (isORGLoggedIn()){
  154. HttpUtils.get({
  155. url: `${UrlUtils.GET_PUB_ORG_USER_PATH}`,
  156. onSuccess: function (response) {
  157. // console.log(response)
  158. response.data["contactTel"] = JSON.parse(response.data["contactTel"]);
  159. response.data["faxNo"] = JSON.parse(response.data["faxNo"]);
  160. response.data["primaryUser"] = response.data.primaryUser?isPrimaryLocale:notPrimaryLocale;
  161. response.data["phoneNumber"] = response.data.contactTel?.phoneNumber;
  162. response.data["tel_countryCode"] = response.data.contactTel?.countryCode;
  163. response.data["faxNumber"] = response.data.faxNo?.faxNumber;
  164. response.data["fax_countryCode"] = response.data.faxNo?.countryCode;
  165. response.data["preferLocale"] = getObjectByType(ComboData.Locale, "type", response.data?.preferLocale);
  166. //response.data["orgId"] = response.data.brExpiryDate?DateUtils.dateValue(response.data.brExpiryDate):"";
  167. setUserData(response.data);
  168. setOrgData(response.orgList);
  169. setLoding(false);
  170. // console.log(response.data)
  171. }
  172. });
  173. }
  174. };
  175. return (
  176. isLoading ?
  177. <Grid container sx={{ minHeight: '87vh', mb: 3 }} direction="column" justifyContent="center" alignItems="center">
  178. <Grid item>
  179. <LoadingComponent />
  180. </Grid>
  181. </Grid>
  182. :
  183. <Grid container sx={{ minHeight: '87vh', backgroundColor: isGLDLoggedIn()?'backgroundColor.default':'#ffffff' }} direction="column">
  184. <Grid item xs={12}>
  185. <div style={BackgroundHead}>
  186. <Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center">
  187. {isGLDLoggedIn()?
  188. <Typography ml={15} color='#FFF' variant="h4" sx={{display: { xs: 'none', sm: 'none', md: 'block', pt:2 }}}>
  189. Maintain Organisation User
  190. </Typography>
  191. :
  192. <Typography ml={15} color='#FFF' variant="h4" sx={{display: { xs: 'none', sm: 'none', md: 'block', pt:2 }}}>
  193. <FormattedMessage id="userProfile" />
  194. </Typography>
  195. }
  196. </Stack>
  197. </div>
  198. </Grid>
  199. <Grid item xs={12}>
  200. <Button title="Back" sx={{ ml: 3.5, mt: 2 }} style={{ border: '2px solid' }} variant="outlined" onClick={() => { navigate(-1) }}>
  201. <ForwardIcon style={{ height: 30, width: 50, transform: "rotate(180deg)" }} />
  202. </Button>
  203. </Grid>
  204. {/*col 1*/}
  205. <Grid item xs={12} >
  206. <Grid container>
  207. {isGLDLoggedIn()?
  208. <Grid item xs={12} md={12} lg={12}>
  209. <Box xs={12} ml={0} mt={-1} mr={0} sx={{ p: 1, borderRadius: '10px' }}>
  210. <UserInformationCard
  211. userData={userData}
  212. loadDataFun={loadData}
  213. orgData={orgData}
  214. />
  215. </Box>
  216. </Grid>
  217. : isORGLoggedIn()?
  218. <Grid item xs={12} md={12} lg={12}>
  219. <Box xs={12} ml={0} mt={-1} mr={0} sx={{ p: 1, borderRadius: '10px' }}>
  220. <UserInformationPubCard
  221. userData={userData}
  222. loadDataFun={loadData}
  223. orgData={orgData}
  224. />
  225. </Box>
  226. </Grid>
  227. :null
  228. }
  229. {isGLDLoggedIn()?
  230. <Grid item xs={12} md={12} lg={12}>
  231. <MainCard elevation={0} border={false} content={false} sx={{maxWidth: '100%', mr:2, width: "-webkit-fill-available"}}>
  232. <TabContext value={selectedTab}>
  233. <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
  234. <TabList variant="scrollable" onChange={handleChange} aria-label="lab API tabs example">
  235. <Tab label="Attachments" value="1" />
  236. <Tab label="Login Log" value="2" />
  237. </TabList>
  238. </Box>
  239. <TabPanel value="1">
  240. <FileList
  241. refId={params.id}
  242. refType={"identification"}
  243. />
  244. </TabPanel>
  245. <TabPanel value="2">
  246. <LoginGrid
  247. u1 = {params.id}
  248. />
  249. </TabPanel>
  250. </TabContext>
  251. </MainCard>
  252. <br />
  253. </Grid>
  254. :null
  255. }
  256. </Grid>
  257. </Grid>
  258. {/*col 2*/}
  259. </Grid>
  260. );
  261. };
  262. export default UserMaintainPage_Organization;