Browse Source

add careOf and org combo

CR003
Alex Cheung 9 months ago
parent
commit
6a07b6cc71
3 changed files with 100 additions and 16 deletions
  1. +29
    -0
      src/pages/Proof/Reply_Public/ApplicationDetails.js
  2. +52
    -15
      src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js
  3. +19
    -1
      src/pages/User/SearchPage_Organization/index.js

+ 29
- 0
src/pages/Proof/Reply_Public/ApplicationDetails.js View File

@@ -18,6 +18,9 @@ const MainCard = Loadable(React.lazy(() => import('components/MainCard')));
import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils";
import FileList from "components/FileList" import FileList from "components/FileList"
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import {
isORGLoggedIn,
} from "utils/Utils";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //
const ApplicationDetailCard = ({ formData, }) => { const ApplicationDetailCard = ({ formData, }) => {


@@ -175,6 +178,32 @@ const ApplicationDetailCard = ({ formData, }) => {
</Grid> </Grid>
</Grid> </Grid>
</Grid> </Grid>
{isORGLoggedIn() ?
<>
<Grid container direction="row" justifyContent="space-between"
alignItems="center">
<Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>
<Grid container alignItems="left">
<Grid item xs={12} md={3} lg={3}
sx={{ display: 'flex', alignItems: 'center' }}>
<FormLabel><Typography variant="pnspsFormParagraph">
<FormattedMessage id="careOf" />:
</Typography></FormLabel>
</Grid>

<Grid item xs={12} md={9} lg={9}>
<Stack direction="row">
<DisplayField name="careOf" />
</Stack>
</Grid>
</Grid>
</Grid>
</Grid>
</>
:
null

}
<Grid container direction="row" justifyContent="space-between" <Grid container direction="row" justifyContent="space-between"
alignItems="center"> alignItems="center">
<Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}> <Grid item xs={12} md={6} lg={6} sx={{ mb: 1, }}>


+ 52
- 15
src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js View File

@@ -8,17 +8,18 @@ import {
import MainCard from "../../../components/MainCard"; import MainCard from "../../../components/MainCard";
import {useForm} from "react-hook-form"; import {useForm} from "react-hook-form";


import { useState} from "react";
import { useState, useEffect} from "react";
import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst";
import {ThemeProvider} from "@emotion/react"; import {ThemeProvider} from "@emotion/react";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




const UserSearchForm_Organization = ({applySearch, onGridReady}) => {
const UserSearchForm_Organization = ({applySearch, orgComboData, onGridReady}) => {


const [type, setType] = useState([]); const [type, setType] = useState([]);
const [accountFilter, setAccountFilter] = useState("All"); const [accountFilter, setAccountFilter] = useState("All");

const [orgCombo, setOrgCombo] = useState();
const [orgSelected, setOrgSelected] = useState({});


const { reset, register, handleSubmit } = useForm() const { reset, register, handleSubmit } = useForm()
const onSubmit = (data) => { const onSubmit = (data) => {
@@ -36,15 +37,22 @@ const UserSearchForm_Organization = ({applySearch, onGridReady}) => {
contactTel: data.phone, contactTel: data.phone,
contactPerson: data.contactPerson, contactPerson: data.contactPerson,
brNoStr: data.brNoStr, brNoStr: data.brNoStr,
orgName: data.orgName,
orgName: orgSelected?.name ? orgSelected?.name : "",
accountFilter: accountFilter=="All"?null:accountFilter, accountFilter: accountFilter=="All"?null:accountFilter,
}; };
applySearch(temp); applySearch(temp);
}; };


useEffect(() => {
if (orgComboData && orgComboData.length > 0) {
setOrgCombo(orgComboData);
}
}, [orgComboData]);

function resetForm(){ function resetForm(){
setType([]); setType([]);
setAccountFilter("All"); setAccountFilter("All");
setOrgSelected({});
reset(); reset();
} }


@@ -64,17 +72,46 @@ const UserSearchForm_Organization = ({applySearch, onGridReady}) => {
{/*row 2*/} {/*row 2*/}


<Grid container display="flex" alignItems={"center"}> <Grid container display="flex" alignItems={"center"}>
<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
<TextField
fullWidth
{...register("orgName")}
id="orgName"
label="Organisation"
InputLabelProps={{
shrink: true
}}
/>
</Grid>
{
orgCombo ?
<Grid item xs={9} s={6} md={5} lg={3} sx={{ ml: 3, mr: 3, mb: 3 }}>
<Autocomplete
{...register("orgId")}
disablePortal
id="orgId"
options={orgCombo}
groupBy={(option) => option.groupType}
size="small"
value={orgSelected}
getOptionLabel={(option) => option.name? option.name : ""}
inputValue={orgSelected ? orgSelected.name : ""}
onChange={(event, newValue) => {
if (newValue !== null) {
setOrgSelected(newValue);
}else{
setOrgSelected({});
}
}}
renderInput={(params) => (
<TextField {...params}
label="Organisation"
InputLabelProps={{
shrink: true
}}
/>
)}
renderGroup={(params) => (
<Grid item key={params.key}>
<Typography fontSize={20} fontStyle="italic" p={1}>
{params.group}
</Typography>
{params.children}
</Grid>
)}
/>
</Grid>
: <></>
}


<Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}> <Grid item xs={9} s={6} md={5} lg={3} sx={{ml:3, mr:3, mb:3}}>
<TextField <TextField


+ 19
- 1
src/pages/User/SearchPage_Organization/index.js View File

@@ -5,6 +5,9 @@ import {
import MainCard from "components/MainCard"; import MainCard from "components/MainCard";
import { useEffect, useState, lazy } from "react"; import { useEffect, useState, lazy } from "react";
import Loadable from 'components/Loadable'; import Loadable from 'components/Loadable';
import * as HttpUtils from "utils/HttpUtils";
import {GET_ORG_COMBO} from "utils/ApiPathConst";

const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization'))); const SearchForm = Loadable(lazy(() => import('./UserSearchForm_Organization')));
const EventTable = Loadable(lazy(() => import('./UserTable_Organization'))); const EventTable = Loadable(lazy(() => import('./UserTable_Organization')));
@@ -23,11 +26,25 @@ const BackgroundHead = {
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //


const UserSearchPage_Organization = () => { const UserSearchPage_Organization = () => {
const [orgCombo, setOrgCombo] = useState([]);
const [searchCriteria, setSearchCriteria] = useState({}); const [searchCriteria, setSearchCriteria] = useState({});
const [onReady, setOnReady] = useState(false); const [onReady, setOnReady] = useState(false);
const [onGridReady, setGridOnReady] = useState(false); const [onGridReady, setGridOnReady] = useState(false);


useEffect(() => {
getOrgCombo();
// getIssueCombo();
}, []);

function getOrgCombo() {
HttpUtils.get({
url: GET_ORG_COMBO,
onSuccess: function (responseData) {
let combo = responseData;
setOrgCombo(combo);
}
});
}


useEffect(() => { useEffect(() => {
setOnReady(true); setOnReady(true);
@@ -62,6 +79,7 @@ const UserSearchPage_Organization = () => {
<Grid item xs={12} md={12} lg={12} sx={{mb:-1}}> <Grid item xs={12} md={12} lg={12} sx={{mb:-1}}>
<SearchForm <SearchForm
applySearch={applySearch} applySearch={applySearch}
orgComboData={orgCombo}
onGridReady={onGridReady} onGridReady={onGridReady}
/> />
</Grid> </Grid>


Loading…
Cancel
Save