From 6427972679f05824ea7ff2482224157845eef35c Mon Sep 17 00:00:00 2001 From: kelvinsuen Date: Fri, 25 Jul 2025 16:44:51 +0800 Subject: [PATCH] update client pages --- .gitignore | 1 - src/menu-items/client.js | 18 +++--- src/menu-items/dashboard.js | 3 +- .../authentication/auth-forms/AuthLogin.js | 3 +- .../client/ClientMaintainPage/ClientForm.js | 56 +++++++++---------- .../ClientSearchPage/ClientSearchForm.js | 56 +++++++++---------- .../client/ClientSearchPage/ClientTable.js | 14 ++--- src/pages/client/ClientSearchPage/index.js | 10 ++-- src/pages/pdf/PdfMaintainPage/index.js | 21 +------ src/pages/pdf/PdfSearchPage/PdfTable.js | 4 +- src/pages/pdf/PdfSearchPage/index.js | 2 +- 11 files changed, 85 insertions(+), 103 deletions(-) diff --git a/.gitignore b/.gitignore index 6d13147..4f9b01e 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,6 @@ build/Release # Dependency directories node_modules/ -/public/sdk jspm_packages/ # TypeScript v1 declaration files diff --git a/src/menu-items/client.js b/src/menu-items/client.js index b6f44bf..24911ba 100644 --- a/src/menu-items/client.js +++ b/src/menu-items/client.js @@ -31,15 +31,15 @@ const client = { breadcrumbs: false, ability:['VIEW','DASHBOARD'] }, - // { - // id: 'template', - // title: 'Template', - // type: 'item', - // url: '/template', - // icon: icons.AssignmentIcon, - // breadcrumbs: false, - // ability:['VIEW','DASHBOARD'] - // }, + { + id: 'template', + title: 'Template', + type: 'item', + url: '/template', + icon: icons.AssignmentIcon, + breadcrumbs: false, + ability:['VIEW','DASHBOARD'] + }, ] }; diff --git a/src/menu-items/dashboard.js b/src/menu-items/dashboard.js index fa53001..1a96811 100644 --- a/src/menu-items/dashboard.js +++ b/src/menu-items/dashboard.js @@ -32,8 +32,7 @@ const dashboard = { id: 'lionerdashboard', title: , type: 'item', - url: '/client', - // url: '/lionerDashboard', + url: '/lionerDashboard', icon: icons.SpeedIcon, breadcrumbs: false, ability:['VIEW','DASHBOARD'] diff --git a/src/pages/authentication/auth-forms/AuthLogin.js b/src/pages/authentication/auth-forms/AuthLogin.js index 3e9a40d..d438883 100644 --- a/src/pages/authentication/auth-forms/AuthLogin.js +++ b/src/pages/authentication/auth-forms/AuthLogin.js @@ -96,7 +96,8 @@ const AuthLogin = () => { //ability.update(abilities) const lastPath = localStorage.getItem('lastVisitedPath'); - await navigate(lastPath === null ? '/lionerDashboard' : lastPath); + await navigate(lastPath === null ? '/client' : lastPath); + // await navigate(lastPath === null ? '/lionerDashboard' : lastPath); await window.location.reload(); await localStorage.removeItem('lastVisitedPath'); diff --git a/src/pages/client/ClientMaintainPage/ClientForm.js b/src/pages/client/ClientMaintainPage/ClientForm.js index 847a2ea..4cd2bf4 100644 --- a/src/pages/client/ClientMaintainPage/ClientForm.js +++ b/src/pages/client/ClientMaintainPage/ClientForm.js @@ -67,7 +67,7 @@ const ClientForm = ({ refClientDetail, //form data const {register, getValues, setValue} = useForm(); - const [joinDate, setJoinDate] = useState(null); + const [createDate, setCreateDate] = useState(null); // const [awardDate, setAwardDate] = useState(null); // const [deadlineDate, setDeadlineDate] = useState(null); // const [announceDate, setAnnounceDate] = useState(null); @@ -86,7 +86,7 @@ const ClientForm = ({ refClientDetail, // //combo list // const [subDivisionList, setSubDivisionList] = useState([]); - const [joinDateError, setJoinDateError] = React.useState(null); + const [createDateError, setCreateDateError] = React.useState(null); const [awardDateError, setAwardDateError] = React.useState(null); const [deadlineDateError, setDeadlineDateError] = React.useState(null); const [announceDateError, setAnnounceDateError] = React.useState(null); @@ -94,13 +94,13 @@ const ClientForm = ({ refClientDetail, const [toError, setToError] = React.useState(null); // const [nextApplicationDateError, setNextApplicationDateError] = React.useState(null); - const joinDateErrorMessage = React.useMemo(() => { - switch (joinDateError) { + const createDateErrorMessage = React.useMemo(() => { + switch (createDateError) { case 'invalidDate': { return "Invalid date"; } } - }, [joinDateError]); + }, [createDateError]); const awardDateErrorMessage = React.useMemo(() => { switch (awardDateError) { @@ -168,13 +168,13 @@ const ClientForm = ({ refClientDetail, // if(applicationList.length===0){ // validateReminder(); // } - // },[joinDate, nextApplicationDate, deadlineDate]); + // },[createDate, nextApplicationDate, deadlineDate]); // const validateReminder = () =>{ // const values = getValues(); // let firstIssueDate = null; // let reminderDates = []; - // if (joinDate !== null && + // if (createDate !== null && // nextApplicationDate !== null && // values.reminderThreshold !== null && // values.reminderInterval !== null && @@ -182,7 +182,7 @@ const ClientForm = ({ refClientDetail, // ) { // //have value // if(applicationList.length <=0){ - // firstIssueDate = joinDate.add(-values.reminderThreshold,'days'); + // firstIssueDate = createDate.add(-values.reminderThreshold,'days'); // } // else{ // firstIssueDate = nextApplicationDate.add(-values.reminderThreshold, 'days'); @@ -318,7 +318,7 @@ const ClientForm = ({ refClientDetail, setValue("caseManagerId", 1); setValue("consultantId", 1); } - setJoinDate(dayjs(getDateString(refClient.joinDate))); + setCreateDate(dayjs(getDateString(refClient.created))); } },[refClient]); @@ -331,7 +331,7 @@ const ClientForm = ({ refClientDetail, setIsEditing(true); } },[refClient]); - // },[refClient,selectedSubDivision,selectedRegion,selectedType, joinDate, deadlineDate]); + // },[refClient,selectedSubDivision,selectedRegion,selectedType, createDate, deadlineDate]); // useEffect(()=>{ // if(selectedFrequency !== null){ @@ -344,19 +344,19 @@ const ClientForm = ({ refClientDetail, // } // if (isEditing){ - // if (joinDate !== null){ + // if (createDate !== null){ // switch(selectedFrequency.key){ // case 1: - // setNextApplicationDate(joinDate.add(1,'month')); + // setNextApplicationDate(createDate.add(1,'month')); // break; // case 2: - // setNextApplicationDate(joinDate.add(3,'month')); + // setNextApplicationDate(createDate.add(3,'month')); // break; // case 3: - // setNextApplicationDate(joinDate.add(1,'year')); + // setNextApplicationDate(createDate.add(1,'year')); // break; // case 4: - // setNextApplicationDate(joinDate.add(6,'month')); + // setNextApplicationDate(createDate.add(6,'month')); // break; // default: // setNextApplicationDate(nextApplicationDate); @@ -365,7 +365,7 @@ const ClientForm = ({ refClientDetail, // } // } // } - // },[selectedFrequency,joinDate]); + // },[selectedFrequency,createDate]); // useEffect(() => { // //if state data are ready and assign to different field @@ -404,8 +404,8 @@ const ClientForm = ({ refClientDetail, // formErrors.type = 'Client Type is required'; // } - if (joinDate === null) { - formErrors.joinDate = 'Join Date is required'; + if (createDate === null) { + formErrors.createDate = 'Create Date is required'; } // if (deadlineDate === null) { @@ -448,7 +448,7 @@ const ClientForm = ({ refClientDetail, setErrors(formErrors); // if (Object.keys(formErrors).length === 0 //&& - // !joinDateError && !awardDateError && + // !createDateError && !awardDateError && // !deadlineDateError && !announceDateError && // !fromError && !toError && !nextApplicationDateError // ) { @@ -480,7 +480,7 @@ const ClientForm = ({ refClientDetail, // data["phone1"] = values.phone1; // data["phone2"] = values.phone2; // data["remarks"] = values.remarks; - // data["joinDate"] = joinDate === null ? null : dayjs(joinDate).format('YYYY-MM-DD'); + // data["createDate"] = createDate === null ? null : dayjs(createDate).format('YYYY-MM-DD'); // setClientDetail(data); // } // } @@ -503,7 +503,7 @@ const ClientForm = ({ refClientDetail, data["remarks"] = values.remarks; data["caseManagerId"] = 1; data["consultantId"] = 1; - data["joinDate"] = joinDate === null ? null : dayjs(joinDate).format('YYYY-MM-DD'); + data["createDate"] = createDate === null ? null : dayjs(createDate).format('YYYY-MM-DD'); setClientDetail(data); } else if(isCollectData){ @@ -725,7 +725,7 @@ const ClientForm = ({ refClientDetail, - Join Date: * + Create Date: * @@ -733,18 +733,18 @@ const ClientForm = ({ refClientDetail, setJoinDate(newValue)} + value={createDate === null ? null : dayjs(createDate)} + onChange={(newValue) => setCreateDate(newValue)} format="DD/MM/YYYY" - onError={(newError) => setJoinDateError(newError)} + onError={(newError) => setCreateDateError(newError)} slotProps={{ field: { clearable: true }, textField: { - error: !!errors.joinDate || joinDateError, - helperText: joinDateError ? joinDateErrorMessage : errors.joinDate, + error: !!errors.createDate || createDateError, + helperText: createDateError ? createDateErrorMessage : errors.createDate, }, }} disabled={!isEditing} diff --git a/src/pages/client/ClientSearchPage/ClientSearchForm.js b/src/pages/client/ClientSearchPage/ClientSearchForm.js index aa3e191..18c7e1a 100644 --- a/src/pages/client/ClientSearchPage/ClientSearchForm.js +++ b/src/pages/client/ClientSearchPage/ClientSearchForm.js @@ -58,8 +58,8 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { // const [selectedType, setSelectedType] = useState(null); // const [selectedCaseManager, setSelectedCaseManager] = useState([]); // const [selectedConsultants, setSelectedConsultants] = useState([]); - const [joinDateFrom, setJoinDateFrom] = useState(null); - const [joinDateTo, setJoinDateTo] = useState(null); + const [createDateFrom, setCreateDateFrom] = useState(null); + const [createDateTo, setCreateDateTo] = useState(null); // const [caseManagerList, setCaseManagerList] = useState([]); // const [consultantList, setConsultantList] = useState([]); @@ -69,24 +69,24 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { setExpanded(!expanded); }; - const [joinDateFromError, setJoinDateFromError] = React.useState(null); - const [joinDateToError, setJoinDateToError] = React.useState(null); + const [createDateFromError, setCreateDateFromError] = React.useState(null); + const [createDateToError, setCreateDateToError] = React.useState(null); - const joinDateFromErrorMessage = React.useMemo(() => { - switch (joinDateFromError) { + const createDateFromErrorMessage = React.useMemo(() => { + switch (createDateFromError) { case 'invalidDate': { return "Invalid date"; } } - }, [joinDateFromError]); + }, [createDateFromError]); - const joinDateToErrorMessage = React.useMemo(() => { - switch (joinDateToError) { + const createDateToErrorMessage = React.useMemo(() => { + switch (createDateToError) { case 'invalidDate': { return "Invalid date"; } } - }, [joinDateToError]); + }, [createDateToError]); const createNewClient = () => { navigate(`/client/maintain/-1`); @@ -95,8 +95,8 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { const onSubmit = (data) => { const criteria = { ...data, - joinDateFrom: joinDateFrom === null ? null : dayjs(joinDateFrom).format('YYYY-MM-DD'), - joinDateTo: joinDateTo === null ? null : dayjs(joinDateTo).format('YYYY-MM-DD'), + createDateFrom: createDateFrom === null ? null : dayjs(createDateFrom).format('YYYY-MM-DD'), + createDateTo: createDateTo === null ? null : dayjs(createDateTo).format('YYYY-MM-DD'), // region: selectedRegion === null ? null : selectedRegion.label, // type: selectedType === null ? null :selectedType.label, // consultantIdList: getIdList(selectedConsultants), @@ -110,7 +110,7 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { // const temp = { // ...data, // fromDate: fromDate === null ? null : dayjs(fromDate).format('YYYY-MM-DD'), - // joinDateTo: joinDateTo === null ? null : dayjs(joinDateTo).format('YYYY-MM-DD'), + // createDateTo: createDateTo === null ? null : dayjs(createDateTo).format('YYYY-MM-DD'), // region: selectedRegion === null ? null : selectedRegion.label, // type: selectedType === null ? null :selectedType.label, // consultantIdList: getIdList(selectedConsultants), @@ -207,8 +207,8 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { // setSelectedConsultants([]); // setSelectedRegion(null); // setSelectedType(null); - setJoinDateFrom(null); - setJoinDateTo(null); + setCreateDateFrom(null); + setCreateDateTo(null); // setToDate(null); reset(); } @@ -357,24 +357,24 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { */} - Join Date + Create Date setJoinDateFromError(newError)} + id="createDateFrom" + onError={(newError) => setCreateDateFromError(newError)} slotProps={{ field: { clearable: true }, textField: { - helperText: joinDateFromErrorMessage, + helperText: createDateFromErrorMessage, }, }} format="DD/MM/YYYY" - value={joinDateFrom === null ? null : dayjs(joinDateFrom)} - onChange={(newValue) => setJoinDateFrom(newValue)} + value={createDateFrom === null ? null : dayjs(createDateFrom)} + onChange={(newValue) => setCreateDateFrom(newValue)} // label="From" /> @@ -390,17 +390,17 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { setJoinDateToError(newError)} + onError={(newError) => setCreateDateToError(newError)} slotProps={{ field: { clearable: true }, textField: { - helperText: joinDateToErrorMessage, + helperText: createDateToErrorMessage, }, }} - id="joinDateTo" + id="createDateTo" //label="To Date" - value={joinDateTo === null ? null : dayjs(joinDateTo)} - onChange={(newValue) => setJoinDateTo(newValue)} + value={createDateTo === null ? null : dayjs(createDateTo)} + onChange={(newValue) => setCreateDateTo(newValue)} /> @@ -432,7 +432,7 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { variant="contained" type="submit" color="save" - disabled={joinDateFromError || joinDateToError} + disabled={createDateFromError || createDateToError} > Search @@ -443,7 +443,7 @@ const ClientSearchForm = ({applySearch, setExpanded,expanded}) => { variant="contained" color="export" // onClick={onExport} - // disabled={joinDateFromError || joinDateToError} + // disabled={createDateFromError || createDateToError} > Export diff --git a/src/pages/client/ClientSearchPage/ClientTable.js b/src/pages/client/ClientSearchPage/ClientTable.js index f979680..d1afa66 100644 --- a/src/pages/client/ClientSearchPage/ClientTable.js +++ b/src/pages/client/ClientSearchPage/ClientTable.js @@ -15,7 +15,7 @@ import {ThemeProvider} from "@emotion/react"; // ==============================|| CLIENT TABLE ||============================== // -export default function ClientTable({recordList}) { +export default function ClientTable({recordList, pageSize}) { const [rows, setRows] = React.useState(recordList); const [rowModesModel] = React.useState({}); const navigate = useNavigate() @@ -23,11 +23,11 @@ export default function ClientTable({recordList}) { const [paginationModel, setPaginationModel] = React.useState({ page: 0, - pageSize:10 + pageSize: 10 }); useEffect(() => { - setPaginationModel({page:0,pageSize:10}); + setPaginationModel({page:0,pageSize:pageSize}); setRows(recordList); }, [recordList]); @@ -108,14 +108,14 @@ export default function ClientTable({recordList}) { flex: 1.5, }, { - id: 'joinDate', - field: 'joinDate', - headerName: 'Join Date', + id: 'created', + field: 'created', + headerName: 'Create Date', flex: 1, sortComparator: dateComparator, renderCell: (params) => (
- {getDateString(params.row.joinDate, 'dd/MM/yyyy')} + {getDateString(params.row.created, 'dd/MM/yyyy')}
), }, diff --git a/src/pages/client/ClientSearchPage/index.js b/src/pages/client/ClientSearchPage/index.js index 5f18efa..672e292 100644 --- a/src/pages/client/ClientSearchPage/index.js +++ b/src/pages/client/ClientSearchPage/index.js @@ -53,9 +53,9 @@ const ClientSearchPage = () => { ) .then((response) => { if (response.status === 200) { - if (!isFormEmpty(searchCriteria) && !isObjEmpty(response.data.records)) { - setExpanded(false); - } + // if (!isFormEmpty(searchCriteria) && !isObjEmpty(response.data.records)) { //Auto Collapse after Search + // setExpanded(false); + // } setRecord(response.data.records); setOnReady(true); } @@ -90,7 +90,7 @@ const ClientSearchPage = () => { - Search Client + Manage Client
@@ -117,7 +117,7 @@ const ClientSearchPage = () => { sx={{mt:{lg:-1.5}, width: CARD_MAX_WIDTH}} > -
+
{ - if (viewerLoaded) { - await Nutrient.unload(viewerRef.current); - } navigate(`/pdf/${record.clientId}`); }; - const handleTest = () => { - // const element = document.getElementById('pdfViewer'); - // const inputFields = element.querySelectorAll('iframe')[0]; - // console.log(element); - // console.log(inputFields.contentDocument); - - // inputFields.forEach(input => { - // console.log('Name:', input.name, 'Value:', input.value); - // }); - }; - return (
{/* This is your 'pdfForm' page */} diff --git a/src/pages/pdf/PdfSearchPage/PdfTable.js b/src/pages/pdf/PdfSearchPage/PdfTable.js index 63087ab..5811939 100644 --- a/src/pages/pdf/PdfSearchPage/PdfTable.js +++ b/src/pages/pdf/PdfSearchPage/PdfTable.js @@ -113,7 +113,7 @@ export default function PdfTable({recordList}) { sortComparator: dateComparator, renderCell: (params) => (
- {getDateString(params.row.created, 'dd/MM/yyyy')} + {getDateString(params.row.created, 'dd/MM/yyyy HH:mm:ss')}
), }, @@ -125,7 +125,7 @@ export default function PdfTable({recordList}) { sortComparator: dateComparator, renderCell: (params) => (
- {getDateString(params.row.modified, 'dd/MM/yyyy')} + {getDateString(params.row.modified, 'dd/MM/yyyy HH:mm:ss')}
), }, diff --git a/src/pages/pdf/PdfSearchPage/index.js b/src/pages/pdf/PdfSearchPage/index.js index 8694940..bfca91b 100644 --- a/src/pages/pdf/PdfSearchPage/index.js +++ b/src/pages/pdf/PdfSearchPage/index.js @@ -65,7 +65,7 @@ const PdfSearchPage = () => { useEffect(() => { if (params.id) { - if (params.id > 0) {console.log("loggg"); + if (params.id > 0) { axios.get(`${apiPath}${GET_CLIENT_PATH}/${params.id}` ) .then((response) => {