| @@ -62,7 +62,7 @@ export default function OrganizationTable({ recordList }) { | |||||
| { | { | ||||
| id: 'contactTel', | id: 'contactTel', | ||||
| field: 'contactTel', | field: 'contactTel', | ||||
| headerName: 'Tel.', | |||||
| headerName: 'Phone', | |||||
| flex: 1, | flex: 1, | ||||
| renderCell: (params) => { | renderCell: (params) => { | ||||
| let phone = JSON.parse(params.value); | let phone = JSON.parse(params.value); | ||||
| @@ -85,7 +85,7 @@ export default function OrganizationTable({ recordList }) { | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| <div style={{ height: 400, width: '100%' }}> | |||||
| <div style={{ height: "fit-content", width: '100%' }}> | |||||
| <FiDataGrid | <FiDataGrid | ||||
| rows={rows} | rows={rows} | ||||
| columns={columns} | columns={columns} | ||||
| @@ -40,7 +40,7 @@ const UserMaintainPage_Individual = () => { | |||||
| let modifiedBy = DateUtils.datetimeStr(response.data.modified)+", "+response.data.modifiedBy; | let modifiedBy = DateUtils.datetimeStr(response.data.modified)+", "+response.data.modifiedBy; | ||||
| response.data["createDate"] = createDate; | response.data["createDate"] = createDate; | ||||
| response.data["modifieDate"] = modifiedBy; | response.data["modifieDate"] = modifiedBy; | ||||
| response.data["verifiedStatus"] = response.data.verifiedBy? DateUtils.datetimeStr(response.data.verifiedDate)+", "+response.data.verifiedByName: "Not verify yet"; | |||||
| response.data["verifiedStatus"] = response.data.verifiedBy? DateUtils.datetimeStr(response.data.verifiedDate)+", "+response.data.verifiedByName: "Not verified"; | |||||
| response.data["country"] = response.data.address?.country; | response.data["country"] = response.data.address?.country; | ||||
| response.data["district"] = response.data.address?.district; | response.data["district"] = response.data.address?.district; | ||||
| @@ -63,7 +63,7 @@ const UserMaintainPage_Organization = () => { | |||||
| let modifiedBy = DateUtils.datetimeStr(response.data.modified)+", "+response.data.modifiedBy; | let modifiedBy = DateUtils.datetimeStr(response.data.modified)+", "+response.data.modifiedBy; | ||||
| response.data["createDate"] = createDate; | response.data["createDate"] = createDate; | ||||
| response.data["modifieDate"] = modifiedBy; | response.data["modifieDate"] = modifiedBy; | ||||
| response.data["verifiedStatus"] = response.data.verifiedBy? DateUtils.datetimeStr(response.data.verifiedDate)+", "+response.data.verifiedByName: "Not verify yet"; | |||||
| response.data["verifiedStatus"] = response.data.verifiedBy? DateUtils.datetimeStr(response.data.verifiedDate)+", "+response.data.verifiedByName: "Not verified"; | |||||
| response.data["lastLoginDate"] = response.data.lastLogin?DateUtils.datetimeStr(response.data.lastLoginDate):""; | response.data["lastLoginDate"] = response.data.lastLogin?DateUtils.datetimeStr(response.data.lastLoginDate):""; | ||||
| @@ -122,7 +122,7 @@ export default function UserTable({recordList,setChangeLocked}) { | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| <div style={{height: 400, width: '100%'}}> | |||||
| <div style={{height: "fit-content", width: '100%'}}> | |||||
| <FiDataGrid | <FiDataGrid | ||||
| rows={rows} | rows={rows} | ||||
| columns={columns} | columns={columns} | ||||
| @@ -63,7 +63,7 @@ export default function UserTable_Individual({ recordList }) { | |||||
| { | { | ||||
| id: 'mobileNumber', | id: 'mobileNumber', | ||||
| field: 'mobileNumber', | field: 'mobileNumber', | ||||
| headerName: 'Tel.', | |||||
| headerName: 'Phone', | |||||
| flex: 1, | flex: 1, | ||||
| valueGetter: (params) => { | valueGetter: (params) => { | ||||
| if (params.value) { | if (params.value) { | ||||
| @@ -130,7 +130,7 @@ export default function UserTable_Individual({ recordList }) { | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| <div style={{ height: 400, width: '100%' }}> | |||||
| <div style={{ height: "fit-content", width: '100%' }}> | |||||
| <FiDataGrid | <FiDataGrid | ||||
| rows={rows} | rows={rows} | ||||
| columns={columns} | columns={columns} | ||||
| @@ -127,7 +127,7 @@ export default function UserTable_Organization({recordList}) { | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| <div style={{height: 400, width: '100%'}}> | |||||
| <div style={{height: "fit-content", width: '100%'}}> | |||||
| <FiDataGrid | <FiDataGrid | ||||
| rows={rows} | rows={rows} | ||||
| columns={columns} | columns={columns} | ||||
| @@ -29,7 +29,7 @@ import * as yup from 'yup'; | |||||
| import { strengthColorChi, strengthIndicator } from 'utils/password-strength'; | import { strengthColorChi, strengthIndicator } from 'utils/password-strength'; | ||||
| // import {apiPath} from "auth/utils"; | // import {apiPath} from "auth/utils"; | ||||
| import axios from "axios"; | import axios from "axios"; | ||||
| import {POST_PUBLIC_USER_REGISTER,POST_CAPTCHA} from "utils/ApiPathConst"; | |||||
| import {POST_PUBLIC_USER_REGISTER,POST_CAPTCHA, GET_USERNAME} from "utils/ApiPathConst"; | |||||
| // import * as HttpUtils from 'utils/HttpUtils'; | // import * as HttpUtils from 'utils/HttpUtils'; | ||||
| import * as ComboData from "utils/ComboData"; | import * as ComboData from "utils/ComboData"; | ||||
| @@ -62,6 +62,7 @@ const CustomFormWizard = (props) => { | |||||
| const [checkUpload, setCheckUpload] = useState(false); | const [checkUpload, setCheckUpload] = useState(false); | ||||
| const [isLoading, setLoding] = useState(true); | const [isLoading, setLoding] = useState(true); | ||||
| const [updateRows, setUpdateRows] = useState([]); | const [updateRows, setUpdateRows] = useState([]); | ||||
| const [userNameList, setUserNameList] = useState(); | |||||
| const [captcha, setCaptcha] = useState([]); | const [captcha, setCaptcha] = useState([]); | ||||
| const [captchaImg, setCaptchaImage] = useState([]); | const [captchaImg, setCaptchaImage] = useState([]); | ||||
| @@ -109,6 +110,17 @@ const CustomFormWizard = (props) => { | |||||
| useEffect(() => { | useEffect(() => { | ||||
| changePassword(''); | changePassword(''); | ||||
| onCaptchaChange(); | onCaptchaChange(); | ||||
| axios.get(`${GET_USERNAME}`) | |||||
| .then((response) => { | |||||
| if (response.status === 200) { | |||||
| setUserNameList(response.data); | |||||
| } | |||||
| }) | |||||
| .catch(error => { | |||||
| console.log(error); | |||||
| return false; | |||||
| }); | |||||
| }, []); | }, []); | ||||
| const onCaptchaChange = ()=>{ | const onCaptchaChange = ()=>{ | ||||
| @@ -441,7 +453,17 @@ const CustomFormWizard = (props) => { | |||||
| captchaField:'' | captchaField:'' | ||||
| }), | }), | ||||
| validationSchema:yup.object().shape({ | validationSchema:yup.object().shape({ | ||||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱') | |||||
| username: yup.string().min(6,'用戶名稱最少6位').required('請輸入用戶名稱').test( | |||||
| "checkUserNameUsed", | |||||
| "此用戶登入名稱已被注冊,請使用其他用戶登入名稱", | |||||
| function(value) { | |||||
| if (userNameList.some(item => item.username === value)) { | |||||
| return false | |||||
| } else { | |||||
| return true | |||||
| } | |||||
| } | |||||
| ) | |||||
| .matches(/^[aA-zZ0-9\s]+$/, "用戶名稱不包含特殊字符") | .matches(/^[aA-zZ0-9\s]+$/, "用戶名稱不包含特殊字符") | ||||
| .matches(/^\S*$/, '用戶名稱不包含空格'), | .matches(/^\S*$/, '用戶名稱不包含空格'), | ||||
| password: yup.string().min(8,'請輸入最少8位密碼').required('請輸入密碼') | password: yup.string().min(8,'請輸入最少8位密碼').required('請輸入密碼') | ||||
| @@ -55,7 +55,7 @@ export default function UserGroupTable({recordList}) { | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| <div style={{height: 400, width: '100%'}}> | |||||
| <div style={{height: "fit-content", width: '100%'}}> | |||||
| <FiDataGrid | <FiDataGrid | ||||
| rows={rows} | rows={rows} | ||||
| columns={columns} | columns={columns} | ||||
| @@ -43,6 +43,7 @@ export const POST_CAPTCHA = apiPath+'/captcha'; | |||||
| //register | //register | ||||
| export const POST_PUBLIC_USER_REGISTER = apiPath+'/user/register'; | export const POST_PUBLIC_USER_REGISTER = apiPath+'/user/register'; | ||||
| export const GET_USERNAME = apiPath+'/user/username'; | |||||
| //Public | //Public | ||||