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

615 行
26 KiB

  1. // material-ui
  2. import {
  3. Grid, TextField, Typography, Button
  4. } from '@mui/material';
  5. import MainCard from "../../components/MainCard";
  6. import * as React from "react";
  7. import {useForm} from "react-hook-form";
  8. import {useEffect, useState} from "react";
  9. import * as DateUtils from '../../utils/DateUtils';
  10. import * as HttpUtils from '../../utils/HttpUtils';
  11. import * as UrlUtils from "../../utils/ApiPathConst";
  12. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  13. const UserInformationCard_Organization = ({userData, loadDataFun}) => {
  14. const [currentUserData, setCurrentUserData] = useState(userData);
  15. const [editMode, setEditMode] = useState(false);
  16. const [locked, setLocked] = useState(false);
  17. const from = useForm({defaultValues: userData});
  18. const {register,reset, handleSubmit} = from;
  19. useEffect(() => {
  20. let createDate = DateUtils.datetimeStr(userData.created);
  21. let modifiedBy = DateUtils.datetimeStr(userData.modified)+", "+userData.modifiedBy;
  22. userData["createDate"] = createDate;
  23. userData["modifieDate"] = modifiedBy;
  24. userData["verifiedStatus"] = userData.verified? "Not verify yet":"Verified";
  25. userData["country"] = userData.address?.country;
  26. userData["addressLine1"] = userData.address?.addressLine1;
  27. userData["addressLine2"] = userData.address?.addressLine2;
  28. userData["addressLine3"] = userData.address?.addressLine3;
  29. userData["addressLine3"] = userData.address?.addressLine3;
  30. userData["phoneNumber"] = userData.contactTel?.phoneNumber;
  31. userData["tel_countryCode"] = userData.contactTel?.countryCode;
  32. userData["faxNumber"] = userData.faxNo?.faxNumber;
  33. userData["fax_countryCode"] = userData.faxNo?.countryCode;
  34. setCurrentUserData(userData);
  35. }, [userData]);
  36. useEffect(() => {
  37. reset(currentUserData);
  38. setLocked(currentUserData.locked);
  39. }, [currentUserData]);
  40. function onSubmitForm(_formData) {
  41. HttpUtils.post({
  42. url: UrlUtils.POST_IND_USER+"/"+userData.id,
  43. params: {
  44. name: _formData.name,
  45. prefix: _formData.prefix,
  46. contactTel: {
  47. countryCode: _formData.tel_countryCode,
  48. phoneNumber: _formData.phoneNumber
  49. },
  50. identification: _formData.identification,
  51. emailAddress:_formData.emailAddress,
  52. },
  53. onSuccess: function(){
  54. loadDataFun();
  55. }
  56. });
  57. }
  58. const onEditClick = () => {
  59. setEditMode(true);
  60. };
  61. const createOrgClick = () => {
  62. window.open("/org/fromUser/"+userData.id, "_blank", "noreferrer");
  63. };
  64. const doLock = () => {
  65. HttpUtils.get({
  66. url: UrlUtils.GET_USER_LOCK+"/"+userData.id,
  67. onSuccess: function(){
  68. loadDataFun();
  69. }
  70. });
  71. };
  72. const doUnlock = () => {
  73. HttpUtils.get({
  74. url: UrlUtils.GET_USER_UNLOCK+"/"+userData.id,
  75. onSuccess: function(){
  76. loadDataFun();
  77. }
  78. });
  79. };
  80. return (
  81. <MainCard elevation={0}
  82. border={false}
  83. content={false}
  84. >
  85. <Typography variant="h5" sx={{mt: 3, ml: 3, mb: 1}}>
  86. Information
  87. </Typography>
  88. <form onSubmit={handleSubmit(onSubmitForm)}>
  89. <Grid container spacing={1}>
  90. <Grid item lg={4} >
  91. <Grid container alignItems={"center"}>
  92. <Grid item xs={4} s={4} md={4} lg={4}
  93. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  94. Username:
  95. </Grid>
  96. <Grid item xs={7} s={7} md={7} lg={6}>
  97. <TextField
  98. fullWidth
  99. id='username'
  100. disabled
  101. {...register("username")}
  102. />
  103. </Grid>
  104. </Grid>
  105. </Grid>
  106. <Grid item lg={4} >
  107. <Grid container alignItems={"center"}>
  108. <Grid item xs={4} s={4} md={4} lg={4}
  109. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  110. Name:
  111. </Grid>
  112. <Grid item xs={7} s={7} md={7} lg={6}>
  113. <TextField
  114. fullWidth
  115. {...register("name")}
  116. id='name'
  117. disabled={!editMode}
  118. />
  119. </Grid>
  120. </Grid>
  121. </Grid>
  122. <Grid item lg={4} >
  123. <Grid container alignItems={"center"}>
  124. <Grid item xs={4} s={4} md={4} lg={4}
  125. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  126. Created Date:
  127. </Grid>
  128. <Grid item xs={7} s={7} md={7} lg={6}>
  129. <TextField
  130. fullWidth
  131. {...register("createDate")}
  132. id='createDate'
  133. disabled
  134. />
  135. </Grid>
  136. </Grid>
  137. </Grid>
  138. <Grid item lg={4} >
  139. <Grid container alignItems={"center"}>
  140. <Grid item xs={4} s={4} md={4} lg={4}
  141. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  142. Prefix:
  143. </Grid>
  144. <Grid item xs={7} s={7} md={7} lg={6}>
  145. <TextField
  146. fullWidth
  147. {...register("prefix")}
  148. id='prefix'
  149. disabled={!editMode}
  150. />
  151. </Grid>
  152. </Grid>
  153. </Grid>
  154. <Grid item lg={4}>
  155. <Grid container alignItems={"center"}>
  156. <Grid item xs={4} s={4} md={4} lg={4}
  157. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  158. Contact Tel:
  159. </Grid>
  160. <Grid item xs={2}>
  161. <TextField
  162. fullWidth
  163. {...register("tel_countryCode")}
  164. id='tel_countryCode'
  165. disabled={!editMode}
  166. />
  167. </Grid>
  168. <Grid item xs={4}>
  169. <TextField
  170. fullWidth
  171. {...register("phoneNumber")}
  172. id='phoneNumber'
  173. disabled={!editMode}
  174. />
  175. </Grid>
  176. </Grid>
  177. </Grid>
  178. <Grid item lg={4} >
  179. <Grid container alignItems={"center"}>
  180. <Grid item xs={4} s={4} md={4} lg={4}
  181. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  182. Last Updated:
  183. </Grid>
  184. <Grid item xs={7} s={7} md={7} lg={6}>
  185. <TextField
  186. fullWidth
  187. {...register("modifieDate")}
  188. id='modifieDate'
  189. disabled
  190. />
  191. </Grid>
  192. </Grid>
  193. </Grid>
  194. <Grid item lg={4}>
  195. <Grid container alignItems={"center"}>
  196. <Grid item xs={4} s={4} md={4} lg={4}
  197. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  198. Organization:
  199. </Grid>
  200. <Grid item xs={7} s={7} md={7} lg={6} >
  201. <TextField
  202. {...register("identification",
  203. {
  204. value: currentUserData?.identification,
  205. })}
  206. id='identification'
  207. disabled={!editMode}
  208. />
  209. {/* <Button lg={2} variant="contained" onClick={downloadFile} >View File</Button> */}
  210. </Grid>
  211. </Grid>
  212. </Grid>
  213. <Grid item lg={4}>
  214. <Grid container alignItems={"center"}>
  215. <Grid item xs={4} s={4} md={4} lg={4}
  216. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  217. Email:
  218. </Grid>
  219. <Grid item xs={7} s={7} md={7} lg={6}>
  220. <TextField
  221. fullWidth
  222. {...register("emailAddress")}
  223. id='emailAddress'
  224. disabled={!editMode}
  225. />
  226. </Grid>
  227. </Grid>
  228. </Grid>
  229. <Grid item lg={4}>
  230. <Grid container alignItems={"center"}>
  231. <Grid item xs={4} s={4} md={4} lg={4}
  232. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  233. Verified:
  234. </Grid>
  235. {
  236. currentUserData.verified || editMode?
  237. <Grid item xs={6}>
  238. <TextField
  239. fullWidth
  240. {...register("verifiedStatus")}
  241. id='verifiedStatus'
  242. disabled
  243. />
  244. </Grid>
  245. :
  246. <>
  247. <Grid item xs={4}>
  248. <TextField
  249. fullWidth
  250. {...register("verifiedStatus")}
  251. id='verifiedStatus'
  252. disabled
  253. />
  254. </Grid>
  255. <Grid item xs={1}>
  256. <Button
  257. size="large"
  258. variant="contained"
  259. sx={{
  260. textTransform: 'capitalize',
  261. alignItems: 'end'
  262. }}
  263. >
  264. Verified
  265. </Button>
  266. </Grid>
  267. </>
  268. }
  269. </Grid>
  270. </Grid>
  271. <Grid item lg={4}>
  272. <Grid container alignItems={"center"}>
  273. <Grid item xs={4} s={4} md={4} lg={4}
  274. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  275. Last Login:
  276. </Grid>
  277. <Grid item xs={7} s={7} md={7} lg={6}>
  278. <TextField
  279. fullWidth
  280. {...register("lastLogin",
  281. {
  282. value: currentUserData?.lastLogin,
  283. })}
  284. id='lastLogin'
  285. disabled
  286. >
  287. </TextField>
  288. </Grid>
  289. </Grid>
  290. </Grid>
  291. <Grid item lg={4}>
  292. <Grid container alignItems={"center"}>
  293. <Grid item xs={4} s={4} md={4} lg={4}
  294. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  295. Status:
  296. </Grid>
  297. <Grid item xs={7} s={7} md={7} lg={6}>
  298. <TextField
  299. fullWidth
  300. {...register("status")}
  301. id='status'
  302. disabled
  303. />
  304. </Grid>
  305. </Grid>
  306. </Grid>
  307. </Grid>
  308. {/*bottom button*/}
  309. <Grid item s={12} md={12} lg={12} sx={{mb: 3}} alignItems={"end"} justifyContent="center">
  310. <Grid container maxWidth justifyContent="flex-end">
  311. {editMode?
  312. <>
  313. <Grid item sx={{ml: 3, mr: 3}}>
  314. <Button
  315. size="large"
  316. variant="contained"
  317. type="submit"
  318. color="success"
  319. sx={{
  320. textTransform: 'capitalize',
  321. alignItems: 'end'
  322. }}
  323. >
  324. Save
  325. </Button>
  326. </Grid>
  327. <Grid item sx={{ml: 3, mr: 3}}>
  328. <Button
  329. size="large"
  330. variant="contained"
  331. onClick={loadDataFun}
  332. sx={{
  333. textTransform: 'capitalize',
  334. alignItems: 'end'
  335. }}
  336. >
  337. Cancel & Back
  338. </Button>
  339. </Grid>
  340. </>
  341. :
  342. <>
  343. {locked?
  344. <Grid item sx={{ml: 3, mr: 3}}>
  345. <Button
  346. size="large"
  347. variant="contained"
  348. color="primary"
  349. sx={{
  350. textTransform: 'capitalize',
  351. alignItems: 'end'
  352. }}
  353. onClick={doUnlock}
  354. >
  355. Unlock
  356. </Button>
  357. </Grid>
  358. :
  359. <Grid item sx={{ml: 3, mr: 3}}>
  360. <Button
  361. size="large"
  362. variant="contained"
  363. color="primary"
  364. sx={{
  365. textTransform: 'capitalize',
  366. alignItems: 'end'
  367. }}
  368. onClick={doLock}
  369. >
  370. Lock
  371. </Button>
  372. </Grid>
  373. }
  374. <Grid item sx={{ml: 3, mr: 3}}>
  375. <Button
  376. size="large"
  377. variant="contained"
  378. sx={{
  379. textTransform: 'capitalize',
  380. alignItems: 'end'
  381. }}
  382. onClick={onEditClick}
  383. >
  384. Edit
  385. </Button>
  386. </Grid>
  387. </>
  388. }
  389. </Grid>
  390. </Grid>
  391. <Grid container spacing={1}>
  392. <Grid item lg={1} >
  393. <Typography variant="h5" sx={{mt: 3, ml: 3, mb: 1}}>
  394. Organization
  395. </Typography>
  396. </Grid>
  397. <Grid item lg={2}>
  398. <Button variant="contained"
  399. onClick={createOrgClick}
  400. >
  401. Create Organization
  402. </Button>
  403. </Grid>
  404. </Grid>
  405. <Grid container spacing={1}>
  406. <Grid item lg={4} >
  407. <Grid container alignItems={"center"}>
  408. <Grid item xs={4} s={4} md={4} lg={4}
  409. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  410. Org.Name (English):
  411. </Grid>
  412. <Grid item xs={7} s={7} md={7} lg={6}>
  413. <TextField
  414. fullWidth
  415. {...register("enCompanyName")}
  416. id='enCompanyName'
  417. disabled={!editMode}
  418. />
  419. </Grid>
  420. </Grid>
  421. </Grid>
  422. <Grid item lg={4} >
  423. <Grid container alignItems={"center"}>
  424. <Grid item xs={4} s={4} md={4} lg={4}
  425. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  426. Org.Name (Chinese):
  427. </Grid>
  428. <Grid item xs={7} s={7} md={7} lg={6}>
  429. <TextField
  430. fullWidth
  431. {...register("chCompanyName")}
  432. id='chCompanyName'
  433. disabled
  434. />
  435. </Grid>
  436. </Grid>
  437. </Grid>
  438. <Grid item lg={4} >
  439. <Grid container alignItems={"center"}>
  440. <Grid item xs={4} s={4} md={4} lg={4}
  441. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  442. BR No.:
  443. </Grid>
  444. <Grid item xs={7} s={7} md={7} lg={6}>
  445. <TextField
  446. fullWidth
  447. {...register("brNo")}
  448. id='brNo'
  449. disabled={!editMode}
  450. />
  451. </Grid>
  452. </Grid>
  453. </Grid>
  454. <Grid item lg={4}>
  455. <Grid container alignItems={"center"}>
  456. <Grid item xs={4} s={4} md={4} lg={4}
  457. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  458. Fax No.:
  459. </Grid>
  460. <Grid item xs={2}>
  461. <TextField
  462. fullWidth
  463. {...register("fax_countryCode")}
  464. id='tel_countryCode'
  465. disabled={!editMode}
  466. />
  467. </Grid>
  468. <Grid item xs={4}>
  469. <TextField
  470. fullWidth
  471. {...register("number")}
  472. id='number'
  473. disabled={!editMode}
  474. />
  475. </Grid>
  476. </Grid>
  477. </Grid>
  478. <Grid item lg={4}>
  479. <Grid container alignItems={"center"}>
  480. <Grid item xs={4} s={4} md={4} lg={4}
  481. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  482. Contact Tel:
  483. </Grid>
  484. <Grid item xs={2}>
  485. <TextField
  486. fullWidth
  487. {...register("tel_countryCode")}
  488. id='tel_countryCode'
  489. disabled={!editMode}
  490. />
  491. </Grid>
  492. <Grid item xs={4}>
  493. <TextField
  494. fullWidth
  495. {...register("phoneNumber")}
  496. id='phoneNumber'
  497. disabled={!editMode}
  498. />
  499. </Grid>
  500. </Grid>
  501. </Grid>
  502. <Grid item lg={4}>
  503. <Grid container alignItems={"center"}>
  504. <Grid item xs={4} s={4} md={4} lg={4}
  505. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  506. Email:
  507. </Grid>
  508. <Grid item xs={7} s={7} md={7} lg={6}>
  509. <TextField
  510. fullWidth
  511. {...register("emailAddress")}
  512. id='emailAddress'
  513. disabled={!editMode}
  514. />
  515. </Grid>
  516. </Grid>
  517. </Grid>
  518. <Grid item lg={4} >
  519. <Grid container alignItems={"center"}>
  520. <Grid item xs={4} s={4} md={4} lg={4}
  521. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  522. BR Expiry Date.:
  523. </Grid>
  524. <Grid item xs={7} s={7} md={7} lg={6}>
  525. <TextField
  526. fullWidth
  527. {...register("brExpiryDateTemp")}
  528. id='brExpiryDateTemp'
  529. disabled={!editMode}
  530. />
  531. </Grid>
  532. </Grid>
  533. </Grid>
  534. </Grid>
  535. </form>
  536. </MainCard>
  537. );
  538. };
  539. export default UserInformationCard_Organization;