@@ -10,10 +10,10 @@ export const hostname = 'localhost'; | |||
const hostPort = '8090'; | |||
export const hostPath = `http://${hostname}:${hostPort}`; | |||
//export const apiPath = `http://192.168.0.112:8090/api`; | |||
export const apiPath = window.location.hostname.match("localhost")?`${hostPath}/api`:`/api`; | |||
//export const apiPath = `/api`; | |||
export const apiPath = window.location.href.match("localhost:3000")?`${hostPath}/api`:`/api`; | |||
//export const apiPath = `/api`;zz | |||
export const paymentPath = `https://pnspsdev.gld.gov.hk/payment`; | |||
export const iAmSmartPath = `https://<iAM_Smart_domain>`; | |||
export const iAmSmartPath = `https://apigw-isit.staging-eid.gov.hk`; | |||
export const clientId = "cf61fa7c121e4869966f69c8694b1cd2"; | |||
export const iAmSmartCallbackPath = () => { | |||
@@ -87,8 +87,16 @@ const FormPanel = ({ formData }) => { | |||
colValue = obj.value; | |||
return obj.colCount === responseData.data.column | |||
})); | |||
formik.setFieldValue("noOfPages", responseData.data.no_of_page); | |||
formik.setFieldValue("fee", (data.groupType == "Private Bill" ? 6552 * responseData.data.no_of_page : responseData.data.length * colValue)); | |||
formik.setFieldValue("noOfPages", responseData.data.total_no_of_page); | |||
formik.setFieldValue("fee", (data.groupType == "Private Bill" ? 6552 * responseData.data.total_no_of_page : responseData.data.length * colValue)); | |||
if(data.groupType == "Private Bill" && responseData.data.file.length>0){ | |||
let attachmentList = attachments; | |||
for(let i=0; i<responseData.data.file.length; i++){ | |||
let file = responseData.data.file[i]; | |||
attachmentList.find(item=> item.name == file.filename)["no_of_page"] = file.no_of_page; | |||
} | |||
setAttachments(attachmentList); | |||
} | |||
setWait(false); | |||
}, | |||
onError: function () { | |||
@@ -200,7 +208,7 @@ const FormPanel = ({ formData }) => { | |||
WebkitTextFillColor: "#000000", | |||
background: "#f8f8f8", | |||
}, | |||
width: '15%' | |||
width: '30%' | |||
} | |||
} | |||
/> | |||
@@ -233,7 +241,12 @@ const FormPanel = ({ formData }) => { | |||
<Grid item xs={12} md={12}> | |||
<UploadFileTable key="uploadTable" recordList={attachments} setRecordList={setAttachments} /> | |||
<UploadFileTable | |||
key="uploadTable" | |||
recordList={attachments} | |||
setRecordList={setAttachments} | |||
showPageColumn = {formik.values.groupType == "Private Bill"} | |||
/> | |||
</Grid> | |||
{ | |||
@@ -16,10 +16,11 @@ import { | |||
} from '@mui/material'; | |||
// ==============================|| EVENT TABLE ||============================== // | |||
export default function UploadFileTable({ recordList, setRecordList, }) { | |||
export default function UploadFileTable({ recordList, setRecordList, showPageColumn }) { | |||
const [rows, setRows] = React.useState(recordList); | |||
const [rowModesModel, setRowModesModel] = React.useState({}); | |||
const [showPage, setShowPage] = React.useState(false); | |||
// const theme = useTheme(); | |||
// const navigate = useNavigate() | |||
@@ -29,6 +30,11 @@ export default function UploadFileTable({ recordList, setRecordList, }) { | |||
// console.log(disableDelete); | |||
}, [recordList]); | |||
useEffect(() => { | |||
setShowPage(showPageColumn); | |||
// console.log(disableDelete); | |||
}, [showPageColumn]); | |||
function NoRowsOverlay() { | |||
return ( | |||
<Stack height="100%" alignItems="center" justifyContent="center"> | |||
@@ -53,16 +59,16 @@ export default function UploadFileTable({ recordList, setRecordList, }) { | |||
const handlePreviewClick = (param) => () => { | |||
var reader = new FileReader(); | |||
reader.onload = function(){ | |||
reader.onload = function () { | |||
let path = reader.result; | |||
var pdf_newTab = window.open(""); | |||
pdf_newTab.document.write( | |||
"<html>" | |||
+"<head><title>"+param.row.name+"</title></head>" | |||
+"<body>" | |||
+"<iframe title='"+param.row.name+"' width='100%' height='100%' src='"+path+"" + "'></iframe>" | |||
+"</body>" | |||
+"</html>" | |||
+ "<head><title>" + param.row.name + "</title></head>" | |||
+ "<body>" | |||
+ "<iframe title='" + param.row.name + "' width='100%' height='100%' src='" + path + "" + "'></iframe>" | |||
+ "</body>" | |||
+ "</html>" | |||
); | |||
}; | |||
reader.readAsDataURL(param.row); | |||
@@ -70,7 +76,52 @@ export default function UploadFileTable({ recordList, setRecordList, }) { | |||
const columns = [ | |||
const columns = showPage?[ | |||
{ | |||
field: 'actions', | |||
type: 'actions', | |||
headerName: '', | |||
width: 30, | |||
cellClassName: 'actions', | |||
// hide:true, | |||
getActions: ({ id }) => { | |||
return [ | |||
<GridActionsCellItem | |||
key="OutSave" | |||
icon={<RemoveCircleOutlineIcon />} | |||
label="delete" | |||
className="textPrimary" | |||
onClick={handleCancelClick(id)} | |||
color="error" | |||
/>] | |||
}, | |||
}, | |||
{ | |||
field: 'name', | |||
headerName: 'File Name', | |||
flex: 1, | |||
renderCell: (params) => { | |||
return <Button onClick={handlePreviewClick(params)}><u>{params.row.name}</u></Button>; | |||
}, | |||
}, | |||
{ | |||
id: 'size', | |||
field: 'size', | |||
headerName: 'File Size', | |||
valueGetter: (params) => { | |||
// console.log(params) | |||
return Math.ceil(params.value / 1024) + " KB"; | |||
}, | |||
flex: 1, | |||
}, | |||
{ | |||
id: 'no_of_page', | |||
field: 'no_of_page', | |||
headerName: 'Page', | |||
flex: 1, | |||
hide: true | |||
}, | |||
]:[ | |||
{ | |||
field: 'actions', | |||
type: 'actions', | |||
@@ -21,9 +21,11 @@ export default function Verify() { | |||
const [isLoading, setIsLoading] = useState(true) | |||
const [verifyState, setVerifyState] = useState(null) | |||
const [enterUseEffect, setEnterUseEffect] = useState(false) | |||
const params = useParams() | |||
const handleVerify = async () => { | |||
console.log("handleVerify()"); | |||
const response = await axios.get(GET_VERIFY_USER_ACCOUNT, { | |||
params: { | |||
email: decodeURIComponent(params.email), | |||
@@ -38,12 +40,17 @@ export default function Verify() { | |||
setIsLoading(false) | |||
} | |||
let enterUseEffect = false | |||
useEffect(() => { | |||
if (enterUseEffect) handleVerify() | |||
enterUseEffect = true | |||
console.log("setEnterUseEffect(true)"); | |||
setEnterUseEffect(true) | |||
}, []) | |||
useEffect(() => { | |||
console.log("if (enterUseEffect) handleVerify()"); | |||
if (enterUseEffect) handleVerify() | |||
}, [enterUseEffect]) | |||
return ( | |||
<Stack sx={{ width: '100%', fontSize: '2rem', paddingTop: '65px' }} alignItems="center"> | |||
<AuthWrapper> | |||
@@ -11,6 +11,8 @@ import * as React from "react"; | |||
import { useFormik, FormikProvider } from 'formik'; | |||
import * as yup from 'yup'; | |||
import { useParams } from "react-router-dom"; | |||
import * as HttpUtils from "utils/HttpUtils"; | |||
import * as UrlUtils from "utils/ApiPathConst"; | |||
//import { iAmSmartPath, clientId, getBowerType , iAmSmartCallbackPath} from 'auth/utils' | |||
import Loadable from 'components/Loadable'; | |||
@@ -40,12 +42,21 @@ const Index = () => { | |||
if(params.code){ | |||
setOnReady(true); | |||
setProps({}); | |||
getPrfile(); | |||
} | |||
}, []); | |||
// function loadIAmSmartProfile(){ | |||
function getPrfile(){ | |||
HttpUtils.post({ | |||
url: UrlUtils.GET_SMART_PROFILE, | |||
params:{ | |||
code: params.code | |||
}, | |||
onSuccess: () => { | |||
// } | |||
} | |||
}); | |||
} | |||
function displayErrorMsg(errorMsg) { | |||
return <Typography variant="errorMessage1">{errorMsg}</Typography> | |||
@@ -100,4 +100,7 @@ export const GET_EMAIL_LIST = apiPath+'/email/list'; | |||
export const GET_EMAIL_COMBO = apiPath+'/email/combo'; | |||
export const GET_EMAIL = apiPath+'/email/load'; | |||
export const POST_EMAIL_SAVE = apiPath+'/email/save'; | |||
export const DELETE_EMAIL = apiPath+'/email/delete'; | |||
export const DELETE_EMAIL = apiPath+'/email/delete'; | |||
//iAmSmart | |||
export const GET_SMART_PROFILE = apiPath+'smart/getProfile'; //POST |