diff --git a/src/pages/authentication/auth-forms/BusCustomFormWizard.js b/src/pages/authentication/auth-forms/BusCustomFormWizard.js index 2fd0cc8..cb62c32 100644 --- a/src/pages/authentication/auth-forms/BusCustomFormWizard.js +++ b/src/pages/authentication/auth-forms/BusCustomFormWizard.js @@ -92,6 +92,7 @@ const BusCustomFormWizard = (props) => { + "於所有文本、平面圖像、圖畫、圖片、照片以及數據或其他資料的匯編,均受版權保障。\n香" + "港特別行政區政府是本網頁內所有版權作品的擁有人,除非預先得到政府物流服務署的書面" + "授權,否則嚴禁複製、改編、分發、發布或向公眾提供該等版權作品。" + // const refType = "identification"; useEffect(() => { changePassword(''); @@ -137,23 +138,65 @@ const BusCustomFormWizard = (props) => { } }; + useEffect(() => { + let updateRowList = new DataTransfer(); + var updateRowsIndex = updateRows.length; + const saveFileList = []; + + if (updateRowsIndex!=null){ + for (let i = 0; i < updateRowsIndex; i++){ + const file = updateRows[i] + file.id = i; + updateRowList.items.add(file); + saveFileList.push(file); + } + let updatedFileList = updateRowList.files; + setFileList(updatedFileList); + setFileListData(saveFileList) + + } + + }, [updateRows]); + const handleFileUpload = (event)=>{ + let updateList = new DataTransfer(); + let currentFileList = fileListData; const uploadFileList = event.target.files; const saveFileList = []; var currentIndex = 0; - if (!fileList.length==null){ - currentIndex = fileList.length; + if (currentFileList.length!=null){ + currentIndex = currentFileList.length; + for (let i = 0; i < currentIndex; i++){ + const file = currentFileList[i] + // file.id = currentIndex; + updateList.items.add(file); + saveFileList.push(file); + } } - for (let i = 0; i < uploadFileList.length; i++){ + for (let i = 0; i < uploadFileList.length && currentIndex<5; i++){ const file = event.target.files[i] - file.id = currentIndex+i+1 - saveFileList.push(file) + let isDuplicate = false; + + // Check if the file name already exists in saveFileList + for (let j = 0; j < saveFileList.length; j++) { + if (saveFileList[j].name === file.name) { + isDuplicate = true; + break; + } + } + if (!isDuplicate) { + file.id = currentIndex+i + saveFileList.push(file) + updateList.items.add(file); + } + } + let updatedFileList = updateList.files; setFileListData(saveFileList) - setFileList(uploadFileList); + setFileList(updatedFileList); }; useEffect(() => { diff --git a/src/pages/authentication/auth-forms/CustomFormWizard.js b/src/pages/authentication/auth-forms/CustomFormWizard.js index 3ad47d7..776e272 100644 --- a/src/pages/authentication/auth-forms/CustomFormWizard.js +++ b/src/pages/authentication/auth-forms/CustomFormWizard.js @@ -27,10 +27,10 @@ import * as yup from 'yup'; // project import // import AnimateButton from 'components/@extended/AnimateButton'; import { strengthColorChi, strengthIndicator } from 'utils/password-strength'; -import {apiPath} from "auth/utils"; +// import {apiPath} from "auth/utils"; import axios from "axios"; import {POST_PUBLIC_USER_REGISTER} from "utils/ApiPathConst"; -import * as HttpUtils from 'utils/HttpUtils'; +// import * as HttpUtils from 'utils/HttpUtils'; import * as ComboData from "../../../utils/ComboData"; import Loadable from 'components/Loadable'; @@ -96,6 +96,7 @@ const CustomFormWizard = (props) => { + "於所有文本、平面圖像、圖畫、圖片、照片以及數據或其他資料的匯編,均受版權保障。\n香" + "港特別行政區政府是本網頁內所有版權作品的擁有人,除非預先得到政府物流服務署的書面" + "授權,否則嚴禁複製、改編、分發、發布或向公眾提供該等版權作品。" + const refType = "identification"; useEffect(() => { changePassword(''); @@ -143,17 +144,21 @@ const CustomFormWizard = (props) => { }; useEffect(() => { - console.log(updateRows); let updateRowList = new DataTransfer(); var updateRowsIndex = updateRows.length; + const saveFileList = []; if (updateRowsIndex!=null){ for (let i = 0; i < updateRowsIndex; i++){ const file = updateRows[i] + file.id = i; updateRowList.items.add(file); + saveFileList.push(file); } let updatedFileList = updateRowList.files; setFileList(updatedFileList); + setFileListData(saveFileList) + } }, [updateRows]); @@ -164,25 +169,21 @@ const CustomFormWizard = (props) => { const uploadFileList = event.target.files; const saveFileList = []; var currentIndex = 0; - // console.log("uploadFileList") - // console.log(uploadFileList) - + if (currentFileList.length!=null){ currentIndex = currentFileList.length; for (let i = 0; i < currentIndex; i++){ const file = currentFileList[i] + // file.id = currentIndex; updateList.items.add(file); saveFileList.push(file); } } - // console.log("saveFileList") - // console.log(saveFileList) - + for (let i = 0; i < uploadFileList.length && currentIndex<5; i++){ const file = event.target.files[i] let isDuplicate = false; - // console.log("file 1") - // console.log(file) + // Check if the file name already exists in saveFileList for (let j = 0; j < saveFileList.length; j++) { if (saveFileList[j].name === file.name) { @@ -191,8 +192,6 @@ const CustomFormWizard = (props) => { } } if (!isDuplicate) { - // console.log("file2") - // console.log(file) file.id = currentIndex+i saveFileList.push(file) updateList.items.add(file); @@ -203,8 +202,6 @@ const CustomFormWizard = (props) => { setFileListData(saveFileList) setFileList(updatedFileList); - // console.log("saveFileList2") - // console.log(saveFileList) }; useEffect(() => { @@ -256,38 +253,53 @@ const CustomFormWizard = (props) => { if (termsAndConNotAccept){ tncFlag = false } + + const user = { + username: values.username, + password: values.password, + name: values.username, + enName: values.enName, + chName: values.chName, + emailAddress: values.email, + idDocType:values.idDocType, + identification:values.idNo, + checkDigit:values.checkDigit, + tncFlag:tncFlag, + type:"IND", + }; + + var formData = new FormData(); + for (let i = 0; i < fileListData.length; i++){ + const file = fileListData[i] + formData.append("multipartFileList", file); + } + formData.append("refType", refType); + + for (const [key, value] of Object.entries(user)) { + formData.append(key, value); + } + formData.append("userFaxNo", JSON.stringify(userFaxNo)); + formData.append("userMobileNumber", JSON.stringify(userMobileNumber)); + formData.append("userAddress", JSON.stringify(userAddress)); + + // if(refCode){ + // formData.append("refCode", refCode); + // } + + console.log("formData:") + console.log(formData) + if (isValid){ - axios.post(`${apiPath}${POST_PUBLIC_USER_REGISTER}`, { - username: values.username, - password: values.password, - name: values.username, - enName: values.enName, - chName: values.chName, - emailAddress: values.email, - idDocType:values.idDocType, - identification:values.idNo, - checkDigit:values.checkDigit, - userFaxNo:userFaxNo, - userMobileNumber:userMobileNumber, - userAddress:userAddress, - tncFlag:tncFlag, - type:"IND" + axios.post(POST_PUBLIC_USER_REGISTER, formData,{ + headers: { + "Content-Type":"multipart/form-data" + } }) .then((response) => { + console.log(response) setCheckUpload(true) - HttpUtils.fileUpload( - { - refType:"identification", - refId: response.data.id, - file: fileList, - onSuccess: (response)=>{ - console.log(response); - // setOpen(true); - setLoding(false); - } - } - ); + setLoding(false); }) .catch(error => { console.error(error); @@ -341,7 +353,6 @@ const CustomFormWizard = (props) => { var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; // var result = reg.test(email); var result = email.match(validRegex); - console.log("test1: "+result) if (result == false) { return false; } @@ -599,11 +610,8 @@ const CustomFormWizard = (props) => { // getOptionLabel={(idDocTypeComboList) => idDocTypeComboList.label} onBlur={formik.handleBlur} onChange={(event, newValue) => { - // console.log(newValue) if (newValue!=null){ - console.log(newValue) setSelectedIdDocType(newValue); - // setSelectedIdDocLabel(newValue.label); if (newValue.type!="HKID"){ formik.setFieldValue("checkDigit","") } @@ -1067,7 +1075,7 @@ const CustomFormWizard = (props) => { 如: 香港身份證; 護照; 中國內地身份證等 {fileList !=null? - :null} + :null} {/* @@ -1288,7 +1296,7 @@ const CustomFormWizard = (props) => { 身份證明文件 {fileList !=null? - :null} + :null} diff --git a/src/pages/authentication/auth-forms/UploadFileTable.js b/src/pages/authentication/auth-forms/UploadFileTable.js index 1944d08..e73ff3e 100644 --- a/src/pages/authentication/auth-forms/UploadFileTable.js +++ b/src/pages/authentication/auth-forms/UploadFileTable.js @@ -15,7 +15,7 @@ import { } from '@mui/material'; // ==============================|| EVENT TABLE ||============================== // -export default function UploadFileTable({recordList, setUpdateRows}) { +export default function UploadFileTable({recordList, setUpdateRows, disableDelete}) { const [rows, setRows] = React.useState(recordList); const [rowModesModel,setRowModesModel] = React.useState({}); @@ -45,7 +45,7 @@ export default function UploadFileTable({recordList, setUpdateRows}) { ...rowModesModel, [id]: { mode: GridRowModes.View, ignoreModifications: true }, }); - console.log("test123") + console.log("Starting Delete") const editedRow = rows.find((row) => row.id === id); console.log(editedRow) console.log(editedRow.isNew) @@ -60,6 +60,7 @@ export default function UploadFileTable({recordList, setUpdateRows}) { headerName: '', width: 30, cellClassName: 'actions', + hide:{disableDelete}, getActions: ({id}) => { return [ { }); }; -export const fileUpload = ({ refType, refId, file,refCode, onSuccess, onFail, onError}) =>{ +export const fileUpload = ({ refType, refId, files,refCode, onSuccess, onFail, onError}) =>{ + console.log(files); var formData = new FormData(); - for (let i = 0; i < file.length; i++){ - const file = file[i] - formData.append("multipartFile", file); + for (let i = 0; i < files.length; i++){ + const file = files[i] + formData.append("multipartFileList", file); } // formData.append("multipartFile", file); formData.append("refType", refType);