Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

260 rader
12 KiB

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