@@ -81,7 +81,9 @@ const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData | |||||
<Grid item xs={12}> | <Grid item xs={12}> | ||||
<CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
<Grid item justifyContent="space-between" alignItems="center"> | <Grid item justifyContent="space-between" alignItems="center"> | ||||
<Typography variant="h5">搜尋</Typography> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="search"/> | |||||
</Typography> | |||||
</Grid> | </Grid> | ||||
</CardContent> | </CardContent> | ||||
</Grid> | </Grid> | ||||
@@ -10,7 +10,7 @@ import * as FormatUtils from "utils/FormatUtils" | |||||
import { FiDataGrid } from "components/FiDataGrid"; | import { FiDataGrid } from "components/FiDataGrid"; | ||||
import * as DateUtils from "utils/DateUtils" | import * as DateUtils from "utils/DateUtils" | ||||
import {useTheme} from "@emotion/react"; | import {useTheme} from "@emotion/react"; | ||||
import {FormattedMessage} from "react-intl"; | |||||
import {FormattedMessage, useIntl} from "react-intl"; | |||||
// import * as Utils from "utils/Utils" | // import * as Utils from "utils/Utils" | ||||
// ==============================|| EVENT TABLE ||============================== // | // ==============================|| EVENT TABLE ||============================== // | ||||
@@ -19,6 +19,8 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
const [total, setTotal] = React.useState(0); | const [total, setTotal] = React.useState(0); | ||||
const theme = useTheme(); | const theme = useTheme(); | ||||
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | ||||
const intl = useIntl(); | |||||
const { locale } = intl; | |||||
//const intl = useIntl(); | //const intl = useIntl(); | ||||
React.useEffect(() => { | React.useEffect(() => { | ||||
@@ -45,24 +47,25 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
{ | { | ||||
id: 'appNo', | id: 'appNo', | ||||
field: 'appNo', | field: 'appNo', | ||||
headerName:'項目', | |||||
headerName: intl.formatMessage({id: 'terms'}), | |||||
width: isMdOrLg ? 'auto' : 300, | width: isMdOrLg ? 'auto' : 300, | ||||
flex: isMdOrLg ? 1 : undefined, | flex: isMdOrLg ? 1 : undefined, | ||||
renderCell: (params) => { | renderCell: (params) => { | ||||
let appNo = params.row.appNo; | let appNo = params.row.appNo; | ||||
// console.log(params) | // console.log(params) | ||||
return <div style={{ margin: 4, textAlign:"left"}}>憲報第6號副刊公告<br/> | |||||
return <div style={{ margin: 4, textAlign:"left"}}> | |||||
<FormattedMessage id="gazetteSampleName"/><br/> | |||||
{isORGLoggedIn()?<>Care Of: {params.row.careOf}<br /></>:null} | {isORGLoggedIn()?<>Care Of: {params.row.careOf}<br /></>:null} | ||||
<FormattedMessage id="applicationId"/>: {appNo}<br/> | <FormattedMessage id="applicationId"/>: {appNo}<br/> | ||||
憲報日期: {DateUtils.dateStr_Cht(params.row.issueDate)}<br/> | |||||
長度: {params.row.length+ " cm"}</div> | |||||
<FormattedMessage id="gazetteDate"/>: {locale === 'en' ? DateUtils.dateStr(params.row.issueDate) : DateUtils.dateStr_Cht(params.row.issueDate)}<br/> | |||||
<FormattedMessage id="gazetteLength"/>: {params.row.length+ " cm"}</div> | |||||
}, | }, | ||||
}, | }, | ||||
{ | { | ||||
id: 'fee', | id: 'fee', | ||||
field: 'fee', | field: 'fee', | ||||
headerName: '金額 (HK$)', | |||||
width: 150, | |||||
headerName: intl.formatMessage({id: 'currencyPrice'}) + ' (HK$)', | |||||
width: 200, | |||||
valueGetter: (params) => { | valueGetter: (params) => { | ||||
return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | ||||
} | } | ||||
@@ -23,6 +23,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('../Details_Public/Payme | |||||
const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | ||||
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
import {FormattedMessage} from "react-intl"; | |||||
const BackgroundHead = { | const BackgroundHead = { | ||||
backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
width: '100%', | width: '100%', | ||||
@@ -159,7 +160,9 @@ const AckPage = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -204,7 +207,9 @@ const AckPage = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentCancel"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -246,7 +251,9 @@ const AckPage = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentFail"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -254,7 +254,9 @@ const Index = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:FPS付款</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentFPSPay"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -269,7 +269,9 @@ const Index = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:FPS付款</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentFPSPay"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -23,6 +23,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('../Details_Public/Payme | |||||
const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('../Details_Public/DataGrid'))); | ||||
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
import {FormattedMessage} from "react-intl"; | |||||
const BackgroundHead = { | const BackgroundHead = { | ||||
backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
width: '100%', | width: '100%', | ||||
@@ -146,7 +147,9 @@ const Fpscallback = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -198,7 +201,9 @@ const Fpscallback = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentCancel"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -235,7 +240,9 @@ const Fpscallback = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentFail"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -149,7 +149,7 @@ const MultiPaymentWindow = (props) => { | |||||
<center> | <center> | ||||
<Grid item xs={12} md={12} width="100%"> | <Grid item xs={12} md={12} width="100%"> | ||||
<Typography variant="h5" sx={{ textAlign: "left" }}> | <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
交易參考編號: {transactionData.transactionid} | |||||
<FormattedMessage id="transactionRefNo"/>: {transactionData.transactionid} | |||||
</Typography> | </Typography> | ||||
{/* <Typography variant="h5" sx={{ textAlign: "left" }}> | {/* <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
@@ -163,7 +163,7 @@ const MultiPaymentWindow = (props) => { | |||||
<Grid container spacing={1} direction="row" justifyContent="flex-start" alignItems="center"> | <Grid container spacing={1} direction="row" justifyContent="flex-start" alignItems="center"> | ||||
<Grid item> | <Grid item> | ||||
<Typography variant="h5" sx={{ textAlign: "left" }}> | <Typography variant="h5" sx={{ textAlign: "left" }}> | ||||
請選擇付款方法: | |||||
<FormattedMessage id="selectPaymentMethod"/>: | |||||
</Typography> | </Typography> | ||||
</Grid> | </Grid> | ||||
<Grid item> | <Grid item> | ||||
@@ -203,7 +203,7 @@ const MultiPaymentWindow = (props) => { | |||||
<Grid container direction="row" justifyContent="flex-start" alignItems="center"> | <Grid container direction="row" justifyContent="flex-start" alignItems="center"> | ||||
<Grid item> | <Grid item> | ||||
<FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center" }}> | <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center" }}> | ||||
已選擇付款方法: | |||||
<FormattedMessage id="selectedPaymentMethod"/>: | |||||
</FormLabel> | </FormLabel> | ||||
</Grid> | </Grid> | ||||
<Grid item> | <Grid item> | ||||
@@ -217,7 +217,7 @@ const MultiPaymentWindow = (props) => { | |||||
</Grid>: | </Grid>: | ||||
<Grid container direction="row" justifyContent="center" alignItems="center"> | <Grid container direction="row" justifyContent="center" alignItems="center"> | ||||
<FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center"}}> | <FormLabel sx={{ fontSize: "20px", color: "#000000", textAlign: "center"}}> | ||||
付款功能現在不可用。 | |||||
<FormattedMessage id="paymentMethodNotAvailable"/>。 | |||||
</FormLabel> | </FormLabel> | ||||
</Grid> | </Grid> | ||||
} | } | ||||
@@ -247,12 +247,12 @@ const MultiPaymentWindow = (props) => { | |||||
<Stack direction="row" justifyContent="space-around"> | <Stack direction="row" justifyContent="space-around"> | ||||
<DialogActions> | <DialogActions> | ||||
<Button variant="contained" onClick={() => props.setOpen(false)} autoFocus > | <Button variant="contained" onClick={() => props.setOpen(false)} autoFocus > | ||||
取消 | |||||
<FormattedMessage id="cancel"/> | |||||
</Button> | </Button> | ||||
</DialogActions> | </DialogActions> | ||||
<DialogActions> | <DialogActions> | ||||
<Button variant="contained" color="success" onClick={confirmPaymentHandle()} disabled={paymentMethod === ""}> | <Button variant="contained" color="success" onClick={confirmPaymentHandle()} disabled={paymentMethod === ""}> | ||||
確認 | |||||
<FormattedMessage id="confirm"/> | |||||
</Button> | </Button> | ||||
</DialogActions> | </DialogActions> | ||||
</Stack> | </Stack> | ||||
@@ -20,6 +20,7 @@ const PaymentDetails = Loadable(React.lazy(() => import('./Details_Public/Paymen | |||||
const DataGrid = Loadable(React.lazy(() => import('./Details_Public/DataGrid'))); | const DataGrid = Loadable(React.lazy(() => import('./Details_Public/DataGrid'))); | ||||
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | ||||
import {FormattedMessage} from "react-intl"; | |||||
const BackgroundHead = { | const BackgroundHead = { | ||||
backgroundImage: `url(${titleBackgroundImg})`, | backgroundImage: `url(${titleBackgroundImg})`, | ||||
width: '100%', | width: '100%', | ||||
@@ -162,7 +163,9 @@ const Index = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentSuccess"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -207,7 +210,9 @@ const Index = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentCancel"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -249,7 +254,9 @@ const Index = () => { | |||||
<Grid className="printHidden" item xs={12} width="100%"> | <Grid className="printHidden" item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePaymentFail"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -68,7 +68,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
{/*row 1*/} | {/*row 1*/} | ||||
<CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
<Grid item justifyContent="space-between" alignItems="center" > | <Grid item justifyContent="space-between" alignItems="center" > | ||||
<Typography variant="h4">搜尋</Typography> | |||||
<Typography variant="h4"> | |||||
<FormattedMessage id="search"/> | |||||
</Typography> | |||||
</Grid> | </Grid> | ||||
</CardContent> | </CardContent> | ||||
@@ -394,7 +394,9 @@ const Index = () => { | |||||
<Grid item xs={12} width="100%"> | <Grid item xs={12} width="100%"> | ||||
<div style={BackgroundHead} width="100%"> | <div style={BackgroundHead} width="100%"> | ||||
<Stack direction="row" height='70px'> | <Stack direction="row" height='70px'> | ||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款</Typography> | |||||
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}> | |||||
<FormattedMessage id="publicNoticePayment"/> | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</div> | </div> | ||||
</Grid> | </Grid> | ||||
@@ -428,7 +430,8 @@ const Index = () => { | |||||
// color="error" | // color="error" | ||||
onClick={() => { navigate("/publicNotice") }} | onClick={() => { navigate("/publicNotice") }} | ||||
sx={{ mt: 4 }} | sx={{ mt: 4 }} | ||||
>取消 | |||||
> | |||||
<FormattedMessage id="cancel"/> | |||||
</Button> | </Button> | ||||
</ThemeProvider> | </ThemeProvider> | ||||
</Stack> | </Stack> | ||||
@@ -446,7 +449,9 @@ const Index = () => { | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -96,7 +96,7 @@ const Index = () => { | |||||
<center> | <center> | ||||
<Grid item xs={12} md={8} > | <Grid item xs={12} md={8} > | ||||
<Typography variant="h3" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | <Typography variant="h3" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | ||||
公共啟事:校對完成及付款 | |||||
<FormattedMessage id="publicNoticePaymentProofDoneAndPaid"/> | |||||
</Typography> | </Typography> | ||||
<Typography variant="h4" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}> | <Typography variant="h4" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}> | ||||
@@ -162,12 +162,19 @@ const Index = () => { | |||||
</DialogTitle> | </DialogTitle> | ||||
<DialogContent style={{ display: 'flex', }}> | <DialogContent style={{ display: 'flex', }}> | ||||
<Stack direction="column" justifyContent="space-between"> | <Stack direction="column" justifyContent="space-between"> | ||||
<Typography variant="h4">總額(HK$): {FormatUtils.currencyFormat(fee)}</Typography> | |||||
<Typography variant="h4"> | |||||
<FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(fee)} | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
<Button onClick={() => setIsPopUp(false)}> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
<FormattedMessage id="confirm"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -79,7 +79,7 @@ const Index = () => { | |||||
<center> | <center> | ||||
<Grid item xs={12} md={8} > | <Grid item xs={12} md={8} > | ||||
<Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | <Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> | ||||
公共啟事:校對完成 | |||||
<FormattedMessage id="publicNoticePaymentProofDone"/> | |||||
</Typography> | </Typography> | ||||
@@ -66,7 +66,7 @@ const ApplicationDetailCard = ({ formData, }) => { | |||||
content={false} | content={false} | ||||
> | > | ||||
<Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | ||||
公共啟事:校對資料 | |||||
<FormattedMessage id="publicNoticePaymentProofInfo"/> | |||||
</Typography> | </Typography> | ||||
<form> | <form> | ||||
<Grid container direction="column"> | <Grid container direction="column"> | ||||
@@ -143,7 +143,7 @@ const FormPanel = ({ formData }) => { | |||||
content={false}> | content={false}> | ||||
<Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | <Typography variant="h4" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}> | ||||
公共啟事:校對回覆 | |||||
<FormattedMessage id="publicNoticePaymentProofComment"/> | |||||
</Typography> | </Typography> | ||||
<form onSubmit={formik.handleSubmit}> | <form onSubmit={formik.handleSubmit}> | ||||
@@ -102,7 +102,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData | |||||
{/*row 1*/} | {/*row 1*/} | ||||
<CardContent sx={{ px: 2.5, pt: 3 }}> | <CardContent sx={{ px: 2.5, pt: 3 }}> | ||||
<Grid item justifyContent="space-between" alignItems="center"> | <Grid item justifyContent="space-between" alignItems="center"> | ||||
<Typography variant="h4">搜尋</Typography> | |||||
<Typography variant="h4"> | |||||
<FormattedMessage id="search"/> | |||||
</Typography> | |||||
</Grid> | </Grid> | ||||
</CardContent> | </CardContent> | ||||
@@ -246,7 +246,7 @@ const PublicNoticeApplyForm = ({ loadedData, selections }) => { | |||||
} | } | ||||
<Grid item xs={12} md={12} lg={12}> | <Grid item xs={12} md={12} lg={12}> | ||||
{FieldUtils.getTextArea({ | {FieldUtils.getTextArea({ | ||||
label: "備註:", | |||||
label: intl.formatMessage({id: 'extraMark'}) + ":", | |||||
valueName: "remarks", | valueName: "remarks", | ||||
form: formik, | form: formik, | ||||
inputProps: { maxLength: 255 } | inputProps: { maxLength: 255 } | ||||
@@ -40,7 +40,7 @@ import DownloadIcon from '@mui/icons-material/Download'; | |||||
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
import * as React from "react"; | import * as React from "react"; | ||||
import {FormattedMessage} from "react-intl"; | |||||
import {FormattedMessage, useIntl} from "react-intl"; | |||||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
const ApplicationDetailCard = ( | const ApplicationDetailCard = ( | ||||
{ applicationDetailData, | { applicationDetailData, | ||||
@@ -64,6 +64,7 @@ const ApplicationDetailCard = ( | |||||
// getValues | // getValues | ||||
} = useForm(); | } = useForm(); | ||||
const navigate = useNavigate(); | const navigate = useNavigate(); | ||||
const intl = useIntl(); | |||||
useEffect(() => { | useEffect(() => { | ||||
//if user data from parent are not null | //if user data from parent are not null | ||||
@@ -166,11 +167,10 @@ const ApplicationDetailCard = ( | |||||
onClick={cancelledClick()} | onClick={cancelledClick()} | ||||
color="edit" | color="edit" | ||||
disabled={currentApplicationDetailData.status !== "submitted"} | disabled={currentApplicationDetailData.status !== "submitted"} | ||||
title={"取消"} | |||||
title={intl.formatMessage({id: 'cancel'})} | |||||
startIcon={<CloseIcon />} | startIcon={<CloseIcon />} | ||||
> | > | ||||
取消 | |||||
<FormattedMessage id="cancel"/> | |||||
</Button> | </Button> | ||||
</ThemeProvider> | </ThemeProvider> | ||||
</Stack> | </Stack> | ||||
@@ -564,7 +564,9 @@ const ApplicationDetailCard = ( | |||||
<Grid container alignItems={"center"}> | <Grid container alignItems={"center"}> | ||||
<Grid item xs={12} md={3} lg={3} | <Grid item xs={12} md={3} lg={3} | ||||
sx={{ display: 'flex', alignItems: 'center' }}> | sx={{ display: 'flex', alignItems: 'center' }}> | ||||
<FormLabel><Typography variant="h5">備註:</Typography></FormLabel> | |||||
<FormLabel><Typography variant="h5"> | |||||
<FormattedMessage id="extraMark"/>: | |||||
</Typography></FormLabel> | |||||
</Grid> | </Grid> | ||||
<Grid item xs={12} md={9} lg={9}> | <Grid item xs={12} md={9} lg={9}> | ||||
<Typography variant="h5">{currentApplicationDetailData.remarks}</Typography> | <Typography variant="h5">{currentApplicationDetailData.remarks}</Typography> | ||||
@@ -592,12 +594,18 @@ const ApplicationDetailCard = ( | |||||
</DialogTitle> | </DialogTitle> | ||||
<DialogContent style={{ display: 'flex', }}> | <DialogContent style={{ display: 'flex', }}> | ||||
<Stack direction="column" justifyContent="space-between"> | <Stack direction="column" justifyContent="space-between"> | ||||
<Typography variant="h4">總額(HK$): {FormatUtils.currencyFormat(fee)}</Typography> | |||||
<Typography variant="h4"> | |||||
<FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(fee)} | |||||
</Typography> | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
<Button onClick={() => setIsPopUp(false)}><Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
<FormattedMessage id="confirm"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -613,7 +621,10 @@ const ApplicationDetailCard = ( | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setErrorPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => setErrorPopUp(false)}> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -20,6 +20,7 @@ import { useFormik,FormikProvider } from 'formik'; | |||||
import * as yup from 'yup'; | import * as yup from 'yup'; | ||||
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; | ||||
import {ThemeProvider} from "@emotion/react"; | import {ThemeProvider} from "@emotion/react"; | ||||
import {FormattedMessage} from "react-intl"; | |||||
const StatusChangeDialog = (props) => { | const StatusChangeDialog = (props) => { | ||||
@@ -83,7 +84,7 @@ const StatusChangeDialog = (props) => { | |||||
autoFocus | autoFocus | ||||
color="delete" | color="delete" | ||||
> | > | ||||
取消 | |||||
<FormattedMessage id="cancel"/> | |||||
</Button> | </Button> | ||||
</DialogActions> | </DialogActions> | ||||
<DialogActions> | <DialogActions> | ||||
@@ -93,7 +94,7 @@ const StatusChangeDialog = (props) => { | |||||
onClick={acceptedHandle()} | onClick={acceptedHandle()} | ||||
autoFocus | autoFocus | ||||
> | > | ||||
確定 | |||||
<FormattedMessage id="confirm"/> | |||||
</Button> | </Button> | ||||
</DialogActions> | </DialogActions> | ||||
</ThemeProvider> | </ThemeProvider> | ||||
@@ -223,14 +223,15 @@ export default function SubmittedTab({ rows }) { | |||||
</Typography> | </Typography> | ||||
({DateUtils.datetimeStr(datas[i].created)}) | ({DateUtils.datetimeStr(datas[i].created)}) | ||||
</Stack> | </Stack> | ||||
備註: {datas[i].remarks} | |||||
<FormattedMessage id="extraMark"/>: {datas[i].remarks} | |||||
<br /><br /> | <br /><br /> | ||||
</>); | </>); | ||||
totalAmount += datas[i].fee; | totalAmount += datas[i].fee; | ||||
} | } | ||||
content.push(<Typography variant="h5"> | content.push(<Typography variant="h5"> | ||||
總額(HK$): {FormatUtils.currencyFormat(totalAmount)} <br /><br /> | |||||
<FormattedMessage id="totalAmount"/>(HK$): {FormatUtils.currencyFormat(totalAmount)} | |||||
<br /><br /> | |||||
</Typography>); | </Typography>); | ||||
//setAmount(totalAmount); | //setAmount(totalAmount); | ||||
return content; | return content; | ||||
@@ -353,8 +354,13 @@ export default function SubmittedTab({ rows }) { | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setIsPopUp(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
<Button onClick={() => setIsPopUp(false)}> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
<Button onClick={() => doPayment()}><Typography variant="h5"> | |||||
<FormattedMessage id="confirm"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -371,8 +377,13 @@ export default function SubmittedTab({ rows }) { | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setCheckCareOf(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => afterWarningPayment()}><Typography variant="h5">確認</Typography></Button> | |||||
<Button onClick={() => setCheckCareOf(false)}> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
<Button onClick={() => afterWarningPayment()}><Typography variant="h5"> | |||||
<FormattedMessage id="confirm"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -389,7 +400,10 @@ export default function SubmittedTab({ rows }) { | |||||
</Stack> | </Stack> | ||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button onClick={() => setExpiryDateErr(false)}><Typography variant="h5">關閉</Typography></Button> | |||||
<Button onClick={() => setExpiryDateErr(false)}> | |||||
<Typography variant="h5"> | |||||
<FormattedMessage id="close"/> | |||||
</Typography></Button> | |||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
</div> | </div> | ||||
@@ -65,7 +65,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
{/*row 1*/} | {/*row 1*/} | ||||
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:marginBottom}}> | <Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:marginBottom}}> | ||||
<Typography variant="pnspsFormTitle" > | <Typography variant="pnspsFormTitle" > | ||||
搜尋 | |||||
<FormattedMessage id="search"/> | |||||
</Typography> | </Typography> | ||||
</Grid> | </Grid> | ||||
{/*row 2*/} | {/*row 2*/} | ||||
@@ -224,7 +224,9 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { | |||||
variant="contained" | variant="contained" | ||||
type="submit" | type="submit" | ||||
> | > | ||||
<Typography variant="pnspsButtonText">搜尋</Typography> | |||||
<Typography variant="pnspsButtonText"> | |||||
<FormattedMessage id="search"/> | |||||
</Typography> | |||||
</Button> | </Button> | ||||
</Grid> | </Grid> | ||||
</ThemeProvider> | </ThemeProvider> | ||||
@@ -97,9 +97,9 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||||
id: 'status', | id: 'status', | ||||
field: 'status', | field: 'status', | ||||
headerName: intl.formatMessage({id: 'status'}), | headerName: intl.formatMessage({id: 'status'}), | ||||
width: 160, | |||||
width: 200, | |||||
renderCell: (params) => { | renderCell: (params) => { | ||||
return [StatusUtils.getStatus(params)] | |||||
return [StatusUtils.getStatusIntl(params, intl)] | |||||
}, | }, | ||||
}, | }, | ||||
{ | { | ||||
@@ -16,6 +16,7 @@ import { | |||||
DialogTitle | DialogTitle | ||||
} from '@mui/material'; | } from '@mui/material'; | ||||
import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; | import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; | ||||
import {FormattedMessage} from "react-intl"; | |||||
const PasswordAlertDialog = (props) => { | const PasswordAlertDialog = (props) => { | ||||
return ( | return ( | ||||
@@ -54,7 +55,7 @@ const PasswordAlertDialog = (props) => { | |||||
</DialogContent> | </DialogContent> | ||||
<DialogActions> | <DialogActions> | ||||
<Button variant="contained" color="error" onClick={props.handleClose} autoFocus> | <Button variant="contained" color="error" onClick={props.handleClose} autoFocus> | ||||
關閉 | |||||
<FormattedMessage id="close"/> | |||||
</Button> | </Button> | ||||
</DialogActions> | </DialogActions> | ||||
</Dialog> | </Dialog> | ||||
@@ -6,6 +6,9 @@ | |||||
"PNSPS": "PNSPS", | "PNSPS": "PNSPS", | ||||
"HKSARGOV": "HKSAR Government", | "HKSARGOV": "HKSAR Government", | ||||
"Gazette": "Gazette", | "Gazette": "Gazette", | ||||
"gazetteDate": "GazetteDate", | |||||
"gazetteLength": "length", | |||||
"gazetteSampleName": "Gazette Supplement No. 6", | |||||
"registerTitle1": "Become", | "registerTitle1": "Become", | ||||
"registerTitle2": "Gazette Notice", | "registerTitle2": "Gazette Notice", | ||||
@@ -20,6 +23,15 @@ | |||||
"mainPage": "Main Page", | "mainPage": "Main Page", | ||||
"myPublicNotice": "My Public Notice", | "myPublicNotice": "My Public Notice", | ||||
"publicNoticePayment": "Public Notice: Payment", | |||||
"publicNoticePaymentFail": "Public Notice: Payment Failed", | |||||
"publicNoticePaymentSuccess": "Public Notice: Payment Success", | |||||
"publicNoticePaymentCancel": "Public Notice: Payment Canceled", | |||||
"publicNoticePaymentFPSPay": "Public Notice: FPS Payment", | |||||
"publicNoticePaymentProofDone": "Public Notice: Proofreading completed", | |||||
"publicNoticePaymentProofDoneAndPaid": "Public Notice: Proofreading Completed and Payment", | |||||
"publicNoticePaymentProofComment": "Public Notice: Proofreading Reply", | |||||
"publicNoticePaymentProofInfo": "Public Notice: Proofreading Information", | |||||
"proofRecord": "Proof Record", | "proofRecord": "Proof Record", | ||||
"onlinePaymentHistory": "Online Payment History", | "onlinePaymentHistory": "Online Payment History", | ||||
"setting": "Setting", | "setting": "Setting", | ||||
@@ -218,6 +230,15 @@ | |||||
"requireContactPerson": "Please enter contact person", | "requireContactPerson": "Please enter contact person", | ||||
"search": "Search", | "search": "Search", | ||||
"cancel": "Cancel", | "cancel": "Cancel", | ||||
"extraMark": "Remarks", | |||||
"totalAmount": "Total Amount", | |||||
"close": "Close", | |||||
"confirm": "Confirm", | |||||
"terms": "Terms", | |||||
"currencyPrice": "Price", | |||||
"transactionRefNo": "Transaction Reference Number", | |||||
"selectedPaymentMethod": "Selected payment method", | |||||
"paymentMethodNotAvailable":"The payment function is currently not available", | |||||
"Dashboard": "Dashboard", | "Dashboard": "Dashboard", | ||||
"event": "Event" | "event": "Event" |
@@ -6,6 +6,9 @@ | |||||
"PNSPS": "公共启事提交及缴费系统", | "PNSPS": "公共启事提交及缴费系统", | ||||
"HKSARGOV": "香港特别行政区政府", | "HKSARGOV": "香港特别行政区政府", | ||||
"Gazette": "宪报", | "Gazette": "宪报", | ||||
"gazetteDate": "宪报日期", | |||||
"gazetteLength": "长度", | |||||
"gazetteSampleName": "宪报第6号副刊公告", | |||||
"registerTitle1": "立即成为", | "registerTitle1": "立即成为", | ||||
"registerTitle2": "宪报刊登公告", | "registerTitle2": "宪报刊登公告", | ||||
@@ -20,6 +23,15 @@ | |||||
"mainPage": "主页", | "mainPage": "主页", | ||||
"myPublicNotice": "我的公共启事", | "myPublicNotice": "我的公共启事", | ||||
"publicNoticePayment": "公共启事:付款", | |||||
"publicNoticePaymentFail": "公共启事:付款失败", | |||||
"publicNoticePaymentSuccess": "公共启事:付款成功", | |||||
"publicNoticePaymentCancel": "公共启事:付款取消", | |||||
"publicNoticePaymentFPSPay": "公共启事:FPS付款", | |||||
"publicNoticePaymentProofDone": "公共启事:校对完成", | |||||
"publicNoticePaymentProofDoneAndPaid": "公共启事:校对完成及付款", | |||||
"publicNoticePaymentProofComment": "公共启事:校对回覆", | |||||
"publicNoticePaymentProofInfo": "公共启事:校对资料", | |||||
"proofRecord": "校对记录", | "proofRecord": "校对记录", | ||||
"onlinePaymentHistory": "网上付款记录", | "onlinePaymentHistory": "网上付款记录", | ||||
"setting": "设置", | "setting": "设置", | ||||
@@ -218,6 +230,15 @@ | |||||
"requireContactPerson": "请输入联络人", | "requireContactPerson": "请输入联络人", | ||||
"search": "搜寻", | "search": "搜寻", | ||||
"cancel": "取消", | "cancel": "取消", | ||||
"extraMark": "备注", | |||||
"totalAmount": "总额", | |||||
"close": "关闭", | |||||
"confirm": "确认", | |||||
"terms": "项目", | |||||
"currencyPrice": "金额", | |||||
"transactionRefNo": "交易參考編號", | |||||
"selectedPaymentMethod": "已選擇付款方法", | |||||
"paymentMethodNotAvailable":"付款功能現在不可用", | |||||
"Dashboard": "仪表板", | "Dashboard": "仪表板", | ||||
"event": "活动" | "event": "活动" |
@@ -6,6 +6,9 @@ | |||||
"PNSPS": "公共啟事提交及繳費系統", | "PNSPS": "公共啟事提交及繳費系統", | ||||
"HKSARGOV": "香港特別行政區政府", | "HKSARGOV": "香港特別行政區政府", | ||||
"Gazette": "憲報", | "Gazette": "憲報", | ||||
"gazetteDate": "憲報日期", | |||||
"gazetteLength": "長度", | |||||
"gazetteSampleName": "憲報第6號副刊公告", | |||||
"registerTitle1": "立即成為", | "registerTitle1": "立即成為", | ||||
"registerTitle2": "憲報刊登公告", | "registerTitle2": "憲報刊登公告", | ||||
@@ -20,6 +23,15 @@ | |||||
"mainPage": "主頁", | "mainPage": "主頁", | ||||
"myPublicNotice": "我的公共啟事", | "myPublicNotice": "我的公共啟事", | ||||
"publicNoticePayment": "公共啟事:付款", | |||||
"publicNoticePaymentFail": "公共啟事:付款失敗", | |||||
"publicNoticePaymentSuccess": "公共啟事:付款成功", | |||||
"publicNoticePaymentCancel": "公共啟事:付款取消", | |||||
"publicNoticePaymentFPSPay": "公共啟事:FPS付款", | |||||
"publicNoticePaymentProofDone": "公共啟事:校對完成", | |||||
"publicNoticePaymentProofDoneAndPaid": "公共啟事:校對完成及付款", | |||||
"publicNoticePaymentProofComment": "公共啟事:校對回覆", | |||||
"publicNoticePaymentProofInfo": "公共啟事:校對資料", | |||||
"proofRecord": "校對記錄", | "proofRecord": "校對記錄", | ||||
"onlinePaymentHistory": "網上付款記錄", | "onlinePaymentHistory": "網上付款記錄", | ||||
"setting": "設定", | "setting": "設定", | ||||
@@ -218,6 +230,15 @@ | |||||
"requireContactPerson": "請輸入聯絡人", | "requireContactPerson": "請輸入聯絡人", | ||||
"search": "搜尋", | "search": "搜尋", | ||||
"cancel": "取消", | "cancel": "取消", | ||||
"extraMark": "備註", | |||||
"totalAmount": "總額", | |||||
"close": "關閉", | |||||
"confirm": "確認", | |||||
"terms": "項目", | |||||
"currencyPrice": "金額", | |||||
"transactionRefNo": "交易參考編號", | |||||
"selectedPaymentMethod": "已選擇付款方法", | |||||
"paymentMethodNotAvailable":"付款功能現在不可用", | |||||
"Dashboard": "儀表板", | "Dashboard": "儀表板", | ||||
"event": "活動" | "event": "活動" |