Browse Source

update search form

master
jason.lam 1 year ago
parent
commit
0e380cf0c4
3 changed files with 78 additions and 60 deletions
  1. +12
    -4
      src/pages/Payment/Details_Public/DataGrid.js
  2. +10
    -4
      src/pages/Payment/Search_Public/DataGrid.js
  3. +56
    -52
      src/pages/Payment/Search_Public/SearchForm.js

+ 12
- 4
src/pages/Payment/Details_Public/DataGrid.js View File

@@ -1,6 +1,6 @@
// material-ui // material-ui
import { import {
Typography,
Typography, useMediaQuery,
} from '@mui/material'; } from '@mui/material';
import { import {
isORGLoggedIn, isORGLoggedIn,
@@ -9,12 +9,15 @@ import * as React from 'react';
import * as FormatUtils from "utils/FormatUtils" 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 * as Utils from "utils/Utils" // import * as Utils from "utils/Utils"
// ==============================|| EVENT TABLE ||============================== // // ==============================|| EVENT TABLE ||============================== //


export default function SearchPublicNoticeTable({ recordList }) { export default function SearchPublicNoticeTable({ recordList }) {
const [rows, setRows] = React.useState(recordList); const [rows, setRows] = React.useState(recordList);
const [total, setTotal] = React.useState(0); const [total, setTotal] = React.useState(0);
const theme = useTheme();
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md'));


React.useEffect(() => { React.useEffect(() => {
const indexedData = recordList.map((obj, index) => ({ index_number: index + 1, ...obj })); const indexedData = recordList.map((obj, index) => ({ index_number: index + 1, ...obj }));
@@ -41,7 +44,8 @@ export default function SearchPublicNoticeTable({ recordList }) {
id: 'appNo', id: 'appNo',
field: 'appNo', field: 'appNo',
headerName:'項目', headerName:'項目',
flex: 1,
width: isMdOrLg ? 'auto' : 300,
flex: isMdOrLg ? 1 : undefined,
renderCell: (params) => { renderCell: (params) => {
let appNo = params.row.appNo; let appNo = params.row.appNo;
// console.log(params) // console.log(params)
@@ -76,8 +80,12 @@ export default function SearchPublicNoticeTable({ recordList }) {
}, },
}} }}
/> />

<Typography align="right" variant= "h3">付款總額: <span style={{ color: "blue", fontWeight: "bold", }}> (HK$) {FormatUtils.currencyFormat(total)}</span></Typography>
<Typography align="right" variant="h4" sx={{mr:2}}>
付款總額:
<span style={{ color: "blue", fontWeight: "bold", }}>
(HK$) {FormatUtils.currencyFormat(total)}
</span>
</Typography>
</div> </div>
); );
} }

+ 10
- 4
src/pages/Payment/Search_Public/DataGrid.js View File

@@ -1,18 +1,21 @@
// material-ui // material-ui
import * as React from 'react'; import * as React from 'react';
import { import {
Button
Button, useMediaQuery
} from '@mui/material'; } from '@mui/material';
import * as DateUtils from "utils/DateUtils"; import * as DateUtils from "utils/DateUtils";
import * as FormatUtils from "utils/FormatUtils" import * as FormatUtils from "utils/FormatUtils"
import * as PaymentStatus from "utils/statusUtils/PaymentStatus" import * as PaymentStatus from "utils/statusUtils/PaymentStatus"
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import { FiDataGrid } from "components/FiDataGrid"; import { FiDataGrid } from "components/FiDataGrid";
import {useTheme} from "@emotion/react";
// ==============================|| EVENT TABLE ||============================== // // ==============================|| EVENT TABLE ||============================== //


export default function SearchPublicNoticeTable({ recordList }) { export default function SearchPublicNoticeTable({ recordList }) {
const [rows, setRows] = React.useState(recordList); const [rows, setRows] = React.useState(recordList);
const navigate = useNavigate() const navigate = useNavigate()
const theme = useTheme();
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md'));


const _sx = { const _sx = {
padding: "4 2 4 2", padding: "4 2 4 2",
@@ -42,7 +45,8 @@ export default function SearchPublicNoticeTable({ recordList }) {
{ {
field: 'actions', field: 'actions',
headerName: '付款編號', headerName: '付款編號',
flex: 1,
width: isMdOrLg ? 'auto' : 160,
flex: isMdOrLg ? 1 : undefined,
cellClassName: 'actions', cellClassName: 'actions',
renderCell: (params) => { renderCell: (params) => {
return <Button onClick={handleEditClick(params)}><u>{params.row.transNo}</u></Button>; return <Button onClick={handleEditClick(params)}><u>{params.row.transNo}</u></Button>;
@@ -52,7 +56,8 @@ export default function SearchPublicNoticeTable({ recordList }) {
id: 'appNos', id: 'appNos',
field: 'appNos', field: 'appNos',
headerName: '申請編號', headerName: '申請編號',
flex: 1,
width: isMdOrLg ? 'auto' : 160,
flex: isMdOrLg ? 1 : undefined,
renderCell: (params) => { renderCell: (params) => {
let appNo = params.row.appNos; let appNo = params.row.appNos;
return <div style={{ margin: 4 }}>{appNo}</div> return <div style={{ margin: 4 }}>{appNo}</div>
@@ -62,7 +67,8 @@ export default function SearchPublicNoticeTable({ recordList }) {
id: 'transDateTime', id: 'transDateTime',
field: 'transDateTime', field: 'transDateTime',
headerName: '付款日期', headerName: '付款日期',
flex: 1,
width: isMdOrLg ? 'auto' : 160,
flex: isMdOrLg ? 1 : undefined,
valueGetter: (params) => { valueGetter: (params) => {
return DateUtils.datetimeStr(params?.value); return DateUtils.datetimeStr(params?.value);
} }


+ 56
- 52
src/pages/Payment/Search_Public/SearchForm.js View File

@@ -11,6 +11,8 @@ import { useForm } from "react-hook-form";
import * as React from "react"; import * as React from "react";
import * as DateUtils from "utils/DateUtils"; import * as DateUtils from "utils/DateUtils";
import * as ComboData from "utils/ComboData"; import * as ComboData from "utils/ComboData";
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




@@ -72,7 +74,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
{/*row 2*/} {/*row 2*/}
<Grid container alignItems={"center"}> <Grid container alignItems={"center"}>


<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Grid item xs={12} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField <TextField
fullWidth fullWidth
{...register("code")} {...register("code")}
@@ -85,43 +87,51 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
/> />
</Grid> </Grid>


<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
{...register("dateFrom")}
id="dateFrom"
type="date"
label="付款日期(從)"
defaultValue={searchCriteria.dateFrom}
InputProps={{ inputProps: { max: maxDate } }}
onChange={(newValue) => {
setMinDate(DateUtils.dateStr(newValue));
}}
InputLabelProps={{
shrink: true
}}
/>
</Grid>

<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
InputLabelProps={{
shrink: true
}}
{...register("dateTo")}
InputProps={{ inputProps: { min: minDate } }}
onChange={(newValue) => {
setMaxDate(DateUtils.dateStr(newValue));
}}
id="dateTo"
type="date"
label="付款日期(到)"
defaultValue={searchCriteria.dateTo}
/>
<Grid item xs={12} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Grid container>
<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
{...register("dateFrom")}
id="dateFrom"
type="date"
label="付款日期(從)"
defaultValue={searchCriteria.dateFrom}
InputProps={{ inputProps: { max: maxDate } }}
onChange={(newValue) => {
setMinDate(DateUtils.dateStr(newValue));
}}
InputLabelProps={{
shrink: true
}}
/>
</Grid>

<Grid item xs={1.5} s={1.5} md={1.5} lg={1} sx={{mt:1.3, display: 'flex', justifyContent:"center", alignItems: 'flex-start'}}>
</Grid>

<Grid item xs={5.25} s={5.25} md={5.25} lg={5.5}>
<TextField
fullWidth
InputLabelProps={{
shrink: true
}}
{...register("dateTo")}
InputProps={{ inputProps: { min: minDate } }}
onChange={(newValue) => {
setMaxDate(DateUtils.dateStr(newValue));
}}
id="dateTo"
type="date"
//label="付款日期(到)"
defaultValue={searchCriteria.dateTo}
/>
</Grid>
</Grid>
</Grid> </Grid>


<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Grid item xs={12} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField <TextField
fullWidth fullWidth
{...register("tarnsNo")} {...register("tarnsNo")}
@@ -134,11 +144,12 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
/> />
</Grid> </Grid>


<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Grid item xs={12} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Autocomplete <Autocomplete
{...register("status")} {...register("status")}
disablePortal={false} disablePortal={false}
id="status" id="status"
size="small"
filterOptions={(options) => options} filterOptions={(options) => options}
options={ComboData.paymentStatus} options={ComboData.paymentStatus}
value={status} value={status}
@@ -165,32 +176,25 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {


{/*last row*/} {/*last row*/}
<Grid container maxWidth justifyContent="flex-end"> <Grid container maxWidth justifyContent="flex-end">
<Grid item sx={{ ml: 3, mr: 3, mb: 3, mt: 3 }}>
<ThemeProvider theme={PNSPS_BUTTON_THEME}>
<Grid item sx={{mr: 3, mb: 3 }}>
<Button <Button
size="large"
variant="contained" variant="contained"
onClick={resetForm} onClick={resetForm}
sx={{
textTransform: 'capitalize',
alignItems: 'end'
}}>
<Typography variant="h5">重置</Typography>
>
重置
</Button> </Button>
</Grid> </Grid>


<Grid item sx={{ ml: 3, mr: 3, mb: 3, mt: 3 }}>
<Grid item sx={{ ml: 3, mr: 3, mb: 3 }}>
<Button <Button
size="large"
variant="contained" variant="contained"
type="submit" type="submit"
sx={{
textTransform: 'capitalize',
alignItems: 'end'
}}>
<Typography variant="h5">提交</Typography>
>
提交
</Button> </Button>
</Grid> </Grid>
</ThemeProvider>
</Grid> </Grid>
</form> </form>
</MainCard> </MainCard>


Loading…
Cancel
Save