您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 

241 行
10 KiB

  1. // material-ui
  2. import {
  3. Grid, Typography, Button,
  4. // Dialog, DialogTitle, DialogContent, DialogActions,
  5. } from '@mui/material';
  6. import MainCard from "components/MainCard";
  7. import * as React from "react";
  8. import * as FieldUtils from "utils/FieldUtils";
  9. import * as HttpUtils from 'utils/HttpUtils';
  10. import * as UrlUtils from "utils/ApiPathConst";
  11. import { useFormik } from 'formik';
  12. import * as yup from 'yup';
  13. const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
  14. import Loadable from 'components/Loadable';
  15. import { lazy } from 'react';
  16. import { notifySaveSuccess, } from 'utils/CommonFunction';
  17. import {FormattedMessage, useIntl} from "react-intl";
  18. import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
  19. import {ThemeProvider} from "@emotion/react";
  20. // import {
  21. // isPrimaryLoggedIn,
  22. // } from "utils/Utils";
  23. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  24. const UserInformationCard_Organization_Pub = ({ userData, loadDataFun,}) => {
  25. const intl = useIntl();
  26. const [currentUserData, setCurrentUserData] = React.useState(userData);
  27. // const [isWarningPopUp, setIsWarningPopUp] = React.useState(false);
  28. // const [warningText, setWarningText] = React.useState("");
  29. // const [isConfirmPopUp, setIsConfirmPopUp] = React.useState(false);
  30. // const [confirmText, setConfirmText] = React.useState("");
  31. // const [confirmAction, setConfirmAction] = React.useState();
  32. const [editMode, setEditMode] = React.useState(false);
  33. const [onReady, setOnReady] = React.useState(false);
  34. React.useEffect(() => {
  35. //if state data are ready and assign to different field
  36. // console.log(currentApplicationDetailData)
  37. if (Object.keys(currentUserData).length > 0) {
  38. setOnReady(true);
  39. console.log(currentUserData)
  40. }
  41. }, [currentUserData]);
  42. function displayErrorMsg(errorMsg) {
  43. return <Typography variant="errorMessage1">{errorMsg}</Typography>
  44. }
  45. const formik = useFormik({
  46. enableReinitialize: true,
  47. initialValues: currentUserData,
  48. validationSchema: yup.object().shape({
  49. tel_countryCode: yup.string().min(3, displayErrorMsg(intl.formatMessage({id: 'require3Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireDialingCode'}))),
  50. phoneNumber: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'require8Number'}))).required(displayErrorMsg(intl.formatMessage({id: 'requireContactNumber'}))),
  51. }),
  52. onSubmit: (values) => {
  53. console.log(values);
  54. HttpUtils.post({
  55. url: UrlUtils.POST_PUB_ORG_USER,
  56. params: {
  57. contactTel: {
  58. countryCode: values.tel_countryCode,
  59. phoneNumber: values.phoneNumber
  60. },
  61. },
  62. onSuccess: function () {
  63. notifySaveSuccess()
  64. loadDataFun();
  65. }
  66. });
  67. }
  68. });
  69. React.useEffect(() => {
  70. if (Object.keys(userData).length > 0) {
  71. setCurrentUserData(userData);
  72. }
  73. }, [userData]);
  74. const onEditClick = () => {
  75. setEditMode(true);
  76. };
  77. // const onFocus = () => {
  78. // loadDataFun();
  79. // window.removeEventListener("focus", onFocus)
  80. // }
  81. return (
  82. <MainCard elevation={0}
  83. border={false}
  84. content={false}
  85. >
  86. {!onReady ?
  87. <LoadingComponent />
  88. :
  89. <form onSubmit={formik.handleSubmit}>
  90. {/*top button*/}
  91. <Grid item s={12} md={12} lg={12} sx={{ mb: 3, mt: 2 }} alignItems={"start"} justifyContent="center">
  92. <Grid container maxWidth justifyContent="flex-start">
  93. {editMode ?
  94. <>
  95. <ThemeProvider theme={PNSPS_BUTTON_THEME}>
  96. <Grid item sx={{ ml: 3, mr: 3 }}>
  97. <Button
  98. variant="contained"
  99. onClick={loadDataFun}
  100. color="cancel"
  101. >
  102. <FormattedMessage id="resetAndBack" />
  103. </Button>
  104. </Grid>
  105. <Grid item sx={{ ml: 3, mr: 3 }}>
  106. <Button
  107. variant="contained"
  108. type="submit"
  109. color="success"
  110. >
  111. <FormattedMessage id="save" />
  112. </Button>
  113. </Grid>
  114. </ThemeProvider>
  115. </>
  116. :
  117. <>
  118. <ThemeProvider theme={PNSPS_BUTTON_THEME}>
  119. <Grid item sx={{ ml: 3, mr: 3 }}>
  120. <Button
  121. variant="contained"
  122. onClick={onEditClick}
  123. >
  124. <FormattedMessage id="edit" />
  125. </Button>
  126. </Grid>
  127. </ThemeProvider>
  128. </>
  129. }
  130. </Grid>
  131. </Grid>
  132. {/*end top button*/}
  133. <div style={{ paddingLeft: 24, paddingRight: 24 }}>
  134. <Typography variant="h4" sx={{ mt: 3, mb: 2, mr: 3, borderBottom: "1px solid black" }}>
  135. <FormattedMessage id="userDetail" />
  136. </Typography>
  137. <Grid container spacing={1}>
  138. <Grid item lg={12}>
  139. {FieldUtils.getTextField({
  140. label: intl.formatMessage({id: 'userLoginName'}) + ":",
  141. valueName: "username",
  142. disabled: true,
  143. form: formik
  144. })}
  145. </Grid>
  146. <Grid item lg={12}>
  147. {FieldUtils.getTextField({
  148. label: intl.formatMessage({id: 'userContactName'}) + ":",
  149. valueName: "contactPerson",
  150. disabled: true,
  151. form: formik
  152. })}
  153. </Grid>
  154. <Grid item lg={12}>
  155. {FieldUtils.getTextField({
  156. label: intl.formatMessage({id: 'userContactEmail'}) + ":",
  157. valueName: "emailBus",
  158. disabled: true,
  159. form: formik
  160. })}
  161. </Grid>
  162. <Grid item lg={12}>
  163. {FieldUtils.getPhoneField({
  164. label: intl.formatMessage({id: 'userContactNumber'}) + ":",
  165. valueName: {
  166. code: "tel_countryCode",
  167. num: "phoneNumber"
  168. },
  169. disabled: (!editMode),
  170. form: formik
  171. })}
  172. </Grid>
  173. <Grid item lg={12}>
  174. {FieldUtils.getTextField({
  175. label: intl.formatMessage({id: 'primaryUser'}) + ":",
  176. valueName: "primaryUser",
  177. disabled: true,
  178. form: formik
  179. })}
  180. </Grid>
  181. </Grid>
  182. </div>
  183. <br />
  184. </form>
  185. }
  186. {/* <div>
  187. <Dialog open={isWarningPopUp} onClose={() => setIsWarningPopUp(false)} >
  188. <DialogTitle><Typography variant="h3">Warning</Typography></DialogTitle>
  189. <DialogContent style={{ display: 'flex', }}>
  190. <Typography variant="h4" style={{ padding: '16px' }}>{warningText}</Typography>
  191. </DialogContent>
  192. <DialogActions>
  193. <Button onClick={() => setIsWarningPopUp(false)}><Typography variant="h5">Close</Typography></Button>
  194. </DialogActions>
  195. </Dialog>
  196. </div>
  197. <div>
  198. <Dialog open={isConfirmPopUp} onClose={() => setIsConfirmPopUp(false)} >
  199. <DialogTitle><Typography variant="h3">Confirm</Typography></DialogTitle>
  200. <DialogContent style={{ display: 'flex', }}>
  201. <Typography variant="h4" style={{ padding: '16px' }}>{confirmText}</Typography>
  202. </DialogContent>
  203. <DialogActions>
  204. <Button onClick={() => { setIsConfirmPopUp(false) }}><Typography variant="h5">Close</Typography></Button>
  205. <Button onClick={() => { confirmAction?.function(); }}><Typography variant="h5">Confirm</Typography></Button>
  206. </DialogActions>
  207. </Dialog>
  208. </div> */}
  209. </MainCard>
  210. );
  211. };
  212. export default UserInformationCard_Organization_Pub;