@@ -154,7 +154,9 @@ function Header(props) { | |||
{isCreditorLoggedIn() ? | |||
<> | |||
<Link className="paymentRecord"> | |||
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>付款記錄</Typography> | |||
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> | |||
<FormattedMessage id="paymentHistory"/> | |||
</Typography> | |||
<KeyboardArrowDownIcon sx={{ fontSize: '1.0rem' }} /> | |||
</Link> | |||
<ul className='dropdown'> | |||
@@ -106,7 +106,7 @@ const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData | |||
}} | |||
renderInput={(params) => ( | |||
<TextField {...params} | |||
label="憲報期數" | |||
label={intl.formatMessage({id: 'gazetteCount'})} | |||
InputLabelProps={{ | |||
shrink: true | |||
}} | |||
@@ -145,7 +145,7 @@ const Index = () => { | |||
<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||
<img src={getIcon()} width="80" height="80" alt={paymentData.type}></img> | |||
<br /> | |||
支付金額 | |||
<FormattedMessage id="payFee"/> | |||
<br /> | |||
{"$HK " + paymentData.amount} | |||
</Typography> | |||
@@ -163,7 +163,9 @@ const PaymentDetails = ({ formData,doPrint }) => { | |||
<Grid xs={6} md={5} sx={{ml:5,textAlign: "left" }}> | |||
<Button className="printHidden" variant="contained" sx={{ mt:2 }} onClick={doPrint}> | |||
<DownloadIcon/> | |||
<Typography sx={{fontSize: "16px"}}>下載</Typography> | |||
<Typography sx={{fontSize: "16px"}}> | |||
<FormattedMessage id="download"/> | |||
</Typography> | |||
</Button> | |||
</Grid> | |||
</Grid> | |||
@@ -284,7 +284,7 @@ const Index = () => { | |||
<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}> | |||
<img src={FpsIcon} width="80" height="80" alt="FPS"></img> | |||
<br /> | |||
支付金額 | |||
<FormattedMessage id="payFee"/> | |||
<br /> | |||
{"$HK " + paymentData.amount} | |||
</Typography> | |||
@@ -86,7 +86,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
{ | |||
id: 'payAmount', | |||
field: 'payAmount', | |||
headerName: '費用', | |||
headerName: intl.formatMessage({id: 'fee'}), | |||
width: 150, | |||
valueGetter: (params) => { | |||
return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | |||
@@ -15,6 +15,7 @@ const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/Loa | |||
const SearchForm = Loadable(React.lazy(() => import('./SearchForm'))); | |||
const EventTable = Loadable(React.lazy(() => import('./DataGrid'))); | |||
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' | |||
import {FormattedMessage} from "react-intl"; | |||
const BackgroundHead = { | |||
backgroundImage: `url(${titleBackgroundImg})`, | |||
@@ -68,7 +69,9 @@ const Index = () => { | |||
<Grid item xs={12}> | |||
<div style={BackgroundHead}> | |||
<Stack direction="row" height='70px' justifyContent="flex-start" alignItems="center"> | |||
<Typography ml={15} color='#FFF' variant="h4">付款記錄</Typography> | |||
<Typography ml={15} color='#FFF' variant="h4"> | |||
<FormattedMessage id="paymentHistory"/> | |||
</Typography> | |||
</Stack> | |||
</div> | |||
</Grid> | |||
@@ -17,11 +17,12 @@ import Loadable from 'components/Loadable'; | |||
const MainCard = Loadable(React.lazy(() => import('components/MainCard'))); | |||
import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; | |||
import FileList from "components/FileList" | |||
import {FormattedMessage} from "react-intl"; | |||
import {FormattedMessage, useIntl} from "react-intl"; | |||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | |||
const ApplicationDetailCard = ({ formData, }) => { | |||
const params = useParams(); | |||
const intl = useIntl(); | |||
const [data, setData] = React.useState({}); | |||
//const [proofId, setProofId] = React.useState(); | |||
@@ -91,12 +92,14 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
<Grid container alignItems={"left"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">申請狀態:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="applyStatus"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9} sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormControl variant="outlined"> | |||
{StatusUtils.getStatusByText(data.appStatus)} | |||
{StatusUtils.getStatusByTextIntl(data.appStatus, false, intl)} | |||
</FormControl> | |||
</Grid> | |||
</Grid> | |||
@@ -108,7 +111,9 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">申請人:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="applyPerson"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -126,7 +131,9 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">憲報期數:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="FgazetteCount"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -225,7 +232,9 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
</Grid> | |||
<Grid item xs={12} sm={3} md={3} lg={3} | |||
sx={{ mb: 1, display: 'flex', alignItems: 'center' }}> | |||
<Typography variant="h5">應繳費用:</Typography> | |||
<Typography variant="h5"> | |||
<FormattedMessage id="payFeeFor"/>: | |||
</Typography> | |||
</Grid> | |||
<Grid item xs={12} sm={9} md={9} lg={9} sx={{ mb: 1, display: 'flex', alignItems: 'center' }}> | |||
<Typography variant="h4" style={{ color: "#0049B8", fontWeight: "bold", }}>{FormatUtils.currencyFormat(data.fee)}</Typography> | |||
@@ -67,7 +67,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
const columns = [ | |||
{ | |||
field: 'actions', | |||
headerName: '校對編號', | |||
headerName: intl.formatMessage({id: 'proofId'}), | |||
width: isMdOrLg ? 'auto' : 250, | |||
flex: isMdOrLg ? 1.5 : undefined, | |||
cellClassName: 'actions', | |||
@@ -96,7 +96,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
{ | |||
id: 'created', | |||
field: 'created', | |||
headerName: '校對日期', | |||
headerName: intl.formatMessage({id: 'proofDate'}), | |||
width: isMdOrLg ? 'auto' : 250, | |||
flex: isMdOrLg ? 1.5 : undefined, | |||
valueGetter: (params) => { | |||
@@ -118,7 +118,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
{ | |||
id: 'replyDate', | |||
field: 'replyDate', | |||
headerName: '回覆日期', | |||
headerName: intl.formatMessage({id: 'replyDate'}), | |||
width: isMdOrLg ? 'auto' : 250, | |||
flex: isMdOrLg ? 1.5 : undefined, | |||
valueGetter: (params) => { | |||
@@ -137,7 +137,7 @@ export default function SearchPublicNoticeTable({ recordList }) { | |||
{ | |||
id: 'fee', | |||
field: 'fee', | |||
headerName: '費用', | |||
headerName: intl.formatMessage({id: 'fee'}), | |||
width: isMdOrLg ? 'auto' : 250, | |||
flex: isMdOrLg ? 1.5 : undefined, | |||
valueGetter: (params) => { | |||
@@ -115,7 +115,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData | |||
fullWidth | |||
{...register("refNo")} | |||
id='refNo' | |||
label="校對編號:" | |||
label={intl.formatMessage({id: 'proofId'}) + ":"} | |||
defaultValue={searchCriteria.refNo} | |||
InputLabelProps={{ | |||
shrink: true | |||
@@ -150,7 +150,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData | |||
}} | |||
renderInput={(params) => ( | |||
<TextField {...params} | |||
label="憲報期數" | |||
label={intl.formatMessage({id: 'gazetteCount'})} | |||
InputLabelProps={{ | |||
shrink: true | |||
}} | |||
@@ -190,7 +190,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData | |||
{...register("dateFrom")} | |||
id="dateFrom" | |||
type="date" | |||
label="校對日期(從)" | |||
label={intl.formatMessage({id: 'proofDateFrom'})} | |||
defaultValue={searchCriteria.dateFrom} | |||
InputProps={{ inputProps: { max: maxDate } }} | |||
onChange={(newValue) => { | |||
@@ -208,7 +208,9 @@ const PublicNoticeApplyForm = ({ loadedData, selections }) => { | |||
<Grid container direction="row" justifyContent="flex-start" alignItems="center"> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<Typography variant="h5">稿件檔案 ({"檔案大小應<10MB"}):</Typography> | |||
<Typography variant="h5"> | |||
<FormattedMessage id="draftFile"/> ({"檔案大小應<10MB"}): | |||
</Typography> | |||
</Grid> | |||
<Grid item xs={12} md={6} lg={6} sx={{ wordBreak: 'break-word' }}> | |||
<input | |||
@@ -158,7 +158,7 @@ const ApplicationDetailCard = ( | |||
|| currentApplicationDetailData.creditor} | |||
startIcon={<EditNoteIcon />} | |||
> | |||
支付 | |||
<FormattedMessage id="payFor"/> | |||
</Button> | |||
: null | |||
} | |||
@@ -177,7 +177,7 @@ const ApplicationDetailCard = ( | |||
</Grid> | |||
</Grid> | |||
<Typography variant="h4" sx={{ mb: 2, borderBottom: "1px solid black" }}> | |||
公共啟事申請資料 | |||
<FormattedMessage id="publicNoticeDetailTitle"/> | |||
</Typography> | |||
<form> | |||
<Grid container direction="column"> | |||
@@ -218,12 +218,14 @@ const ApplicationDetailCard = ( | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">申請狀態:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="applyStatus"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={4} lg={4}> | |||
<FormControl variant="outlined"> | |||
{StatusUtils.getStatusByText(currentApplicationDetailData.status)} | |||
{currentApplicationDetailData.status? StatusUtils.getStatusByTextIntl(currentApplicationDetailData.status, false,intl) : ""} | |||
</FormControl> | |||
</Grid> | |||
{ | |||
@@ -255,7 +257,9 @@ const ApplicationDetailCard = ( | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">申請人:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="applyPerson"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -300,7 +304,9 @@ const ApplicationDetailCard = ( | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">憲報期數:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="gazetteCount"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -362,7 +368,9 @@ const ApplicationDetailCard = ( | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">發布日期:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="publishDate"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -444,7 +452,9 @@ const ApplicationDetailCard = ( | |||
<Grid container alignItems={"center"}> | |||
<Grid item xs={12} md={3} lg={3} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">金額(HK$):</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="currencyPrice"/>(HK$): | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} md={9} lg={9}> | |||
@@ -512,7 +522,9 @@ const ApplicationDetailCard = ( | |||
<Grid container direction="row"> | |||
<Grid item xs={12} sm={12} md={2.5} lg={1.6} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<FormLabel><Typography variant="h5">稿件檔案:</Typography></FormLabel> | |||
<FormLabel><Typography variant="h5"> | |||
<FormattedMessage id="draftFile"/>: | |||
</Typography></FormLabel> | |||
</Grid> | |||
<Grid item xs={12} sm={12} md={9} lg={9} > | |||
<Grid container direction="row" alignItems="center" justifyContent="flex-start"> | |||
@@ -532,11 +544,11 @@ const ApplicationDetailCard = ( | |||
<Button | |||
variant="contained" | |||
onClick={onDownloadClick()} | |||
title="下載" | |||
title={intl.formatMessage({id: 'download'})} | |||
color="save" | |||
startIcon={<DownloadIcon sx={{alignItems:"center"}}/>} | |||
> | |||
下載 | |||
<FormattedMessage id="download"/> | |||
</Button> | |||
</ThemeProvider> | |||
</Grid> | |||
@@ -58,7 +58,7 @@ export default function SubmittedTab({ rows }) { | |||
{ | |||
id: 'payAmount', | |||
field: 'payAmount', | |||
headerName: '費用', | |||
headerName: intl.formatMessage({id: 'fee'}), | |||
width: 150, | |||
valueGetter: (params) => { | |||
return (params?.value) ? "$ " + FormatUtils.currencyFormat(params?.value) : ""; | |||
@@ -17,6 +17,7 @@ export default function ProofTab({rows}) { | |||
const navigate = useNavigate() | |||
const theme = useTheme(); | |||
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); | |||
const { locale } = intl; | |||
const handleEditClick = (params) => () => { | |||
navigate('/proof/reply/' + params.row.id); | |||
@@ -26,7 +27,7 @@ export default function ProofTab({rows}) { | |||
{ | |||
field: 'actions', | |||
headerName: '校對編號', | |||
headerName: intl.formatMessage({id: 'proofId'}), | |||
width: 200, | |||
cellClassName: 'actions', | |||
renderCell: (params) => { | |||
@@ -39,13 +40,13 @@ export default function ProofTab({rows}) { | |||
width: isMdOrLg ? 'auto' : 160, | |||
flex: isMdOrLg ? 1 : undefined, | |||
renderCell: (params) => { | |||
return ProofStatus.getStatus_Cht(params); | |||
return locale === 'en' ? ProofStatus.getStatus_Eng(params) : ProofStatus.getStatus_Cht(params); | |||
}, | |||
}, | |||
{ | |||
id: 'created', | |||
field: 'created', | |||
headerName: '校對日期', | |||
headerName: intl.formatMessage({id: 'proofDate'}), | |||
width: isMdOrLg ? 'auto' : 160, | |||
flex: isMdOrLg ? 1 : undefined, | |||
valueGetter: (params) => { | |||
@@ -55,7 +56,7 @@ export default function ProofTab({rows}) { | |||
{ | |||
id: 'replyDate', | |||
field: 'replyDate', | |||
headerName: '回覆日期', | |||
headerName: intl.formatMessage({id: 'replyDate'}), | |||
width: isMdOrLg ? 'auto' : 160, | |||
flex: isMdOrLg ? 1 : undefined, | |||
valueGetter: (params) => { | |||
@@ -65,7 +66,7 @@ export default function ProofTab({rows}) { | |||
{ | |||
id: 'fee', | |||
field: 'fee', | |||
headerName: '費用', | |||
headerName: intl.formatMessage({id: 'fee'}), | |||
width: isMdOrLg ? 'auto' : 160, | |||
flex: isMdOrLg ? 1 : undefined, | |||
valueGetter: (params) => { | |||
@@ -59,7 +59,7 @@ const PublicNotice = ({ proofList, paymentList }) => { | |||
<Tab label={ | |||
intl.formatMessage({id: 'proofRecord'}) + "(" + _proofList.length + ") "} value="1" | |||
/> | |||
<Tab label={"付款記錄(" + _paymentList.length + ") "} value="2" /> | |||
<Tab label={ intl.formatMessage({id: 'paymentHistory'}) +"(" + _paymentList.length + ") "} value="2" /> | |||
</TabList> | |||
</Box> | |||
@@ -240,6 +240,23 @@ | |||
"selectedPaymentMethod": "Selected payment method", | |||
"paymentMethodNotAvailable":"The payment function is currently not available", | |||
"publicNoticeDetailTitle": "Public Notice Application Information", | |||
"applyPerson": "Applicant", | |||
"applyStatus": "Application Status", | |||
"gazetteCount": "Gazette issues date", | |||
"publishDate": "Publish date", | |||
"draftFile": "Manuscript file", | |||
"download": "Download", | |||
"paymentHistory": "Payment History", | |||
"proofId": "Proof Code", | |||
"proofDate": "Proofing date", | |||
"proofDateFrom": "Proofing date (from)", | |||
"replyDate": "Reply date", | |||
"fee": "Fee", | |||
"payFeeFor": "Pay for", | |||
"payFor": "Pay", | |||
"payFee": "Payment Amount", | |||
"Dashboard": "Dashboard", | |||
"event": "Event" | |||
} |
@@ -240,6 +240,23 @@ | |||
"selectedPaymentMethod": "已選擇付款方法", | |||
"paymentMethodNotAvailable":"付款功能現在不可用", | |||
"publicNoticeDetailTitle": "公共启事申请资料", | |||
"applyPerson": "申请人", | |||
"applyStatus": "申请状态", | |||
"gazetteCount": "宪报期数", | |||
"publishDate": "发布日期", | |||
"draftFile": "稿件档案", | |||
"download": "下载", | |||
"paymentHistory": "付款记录", | |||
"proofId": "校对编号", | |||
"proofDate": "校对日期", | |||
"proofDateFrom": "校对日期(从)", | |||
"replyDate": "回覆日期", | |||
"fee": "费用", | |||
"payFeeFor": "应缴费用", | |||
"payFor": "支付", | |||
"payFee": "支付金額", | |||
"Dashboard": "仪表板", | |||
"event": "活动" | |||
} |
@@ -240,6 +240,23 @@ | |||
"selectedPaymentMethod": "已選擇付款方法", | |||
"paymentMethodNotAvailable":"付款功能現在不可用", | |||
"publicNoticeDetailTitle": "公共啟事申請資料", | |||
"applyPerson": "申請人", | |||
"applyStatus": "申請狀態", | |||
"gazetteCount": "憲報期數", | |||
"publishDate": "發佈日期", | |||
"draftFile": "稿件檔案", | |||
"download": "下載", | |||
"paymentHistory": "付款記錄", | |||
"proofId": "校對編號", | |||
"proofDate": "校對日期", | |||
"proofDateFrom": "校對日期(從)", | |||
"replyDate": "回覆日期", | |||
"fee": "費用", | |||
"payFeeFor": "應繳費用", | |||
"payFor": "支付", | |||
"payFee": "支付金額", | |||
"Dashboard": "儀表板", | |||
"event": "活動" | |||
} |