diff --git a/src/components/basis/group/BasisGroupApprovalSearch.js b/src/components/basis/group/BasisGroupApprovalSearch.js index 390eae59..84a5d0f2 100644 --- a/src/components/basis/group/BasisGroupApprovalSearch.js +++ b/src/components/basis/group/BasisGroupApprovalSearch.js @@ -26,30 +26,88 @@ import { useEffect, useState } from 'react'; import moment from 'moment'; export const BasisGroupApprovalSearch = props => { - const [isCheckBox, setIsCheckBox] = useState({ - all: true, - yes: false, - no: false - }); + // const [isCheckBox, setIsCheckBox] = useState({ + // all: true, + // yes: false, + // no: false + // }); - useEffect(() => { - let aprvYn = ''; + // useEffect(() => { + // let aprvYn = ''; - if (!isCheckBox.all) { - if (isCheckBox.yes) { - aprvYn = 'Y'; - } else if (isCheckBox.no) { - aprvYn = 'N'; - } else { - aprvYn = '-'; - } + // if (!isCheckBox.all) { + // if (isCheckBox.yes) { + // aprvYn = 'Y'; + // } else if (isCheckBox.no) { + // aprvYn = 'N'; + // } else { + // aprvYn = '-'; + // } + // } + // props.setParams({ + // ...props.params, + // aprvYn: aprvYn + // }); + // }, [isCheckBox]); + let aprvYn='N'; + const initCheckState = { + 'all': aprvYn == 'A', + 'yes': (aprvYn == 'Y' || aprvYn == 'A'), + 'no': (aprvYn == 'N' || aprvYn == 'A'), + } + const [checkState, setCheckState] = useState(initCheckState); + + const handleChangeCheckbox = (e) => { + const {name, value, checked} = e.target; + let val; + switch(value) { + case 'A' : + val = checked ? '' : '-'; + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState({ + 'all': checked, + 'yes': checked, + 'no': checked + }) + break; + case 'Y': + if (checked && checkState.no) val = '' + else if (checked && !checkState.no) val = 'Y' + else if (!checked && checkState.no) val = 'N' + else if (!checked && !checkState.no) val = '-' + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState(prevState => ({ + 'all': prevState.no && checked, + 'yes': checked, + 'no': prevState.no + })) + break; + case 'N': + if (checked && checkState.yes) val = '' + else if (checked && !checkState.yes) val = 'N' + else if (!checked && checkState.yes) val = 'Y' + else if (!checked && !checkState.yes) val = '-' + props.setParams({ + ...props.params, + aprvYn: val + }) + setCheckState(prevState => ({ + 'all': prevState.yes && checked, + 'yes': prevState.yes, + 'no': checked + })) + break; + default: + break; } + } - props.setParams({ - ...props.params, - aprvYn: aprvYn - }); - }, [isCheckBox]); return (
@@ -138,40 +196,52 @@ export const BasisGroupApprovalSearch = props => { type='checkbox' id='exampleCustomCheckbox' label='전체' - defaultChecked={isCheckBox.all} - onClick={() => - setIsCheckBox({ - all: !isCheckBox.all, - yes: !isCheckBox.all, - no: !isCheckBox.all - }) - } + name='aprvlYn' + value='A' + checked={checkState.all} + onChange={handleChangeCheckbox} + // defaultChecked={isCheckBox.all} + // onClick={() => + // setIsCheckBox({ + // all: !isCheckBox.all, + // yes: !isCheckBox.all, + // no: !isCheckBox.all + // }) + // } /> - setIsCheckBox({ - all: false, - yes: !isCheckBox.yes - }) - } + name='aprvlYn' + value='Y' + checked={checkState.yes} + onChange={handleChangeCheckbox} + // defaultChecked={isCheckBox.yes || isCheckBox.all} + // onClick={() => + // setIsCheckBox({ + // all: false, + // yes: !isCheckBox.yes + // }) + // } /> - setIsCheckBox({ - all: false, - no: !isCheckBox.no - }) - } + name='aprvlYn' + value='N' + checked={checkState.no} + onChange={handleChangeCheckbox} + // defaultChecked={isCheckBox.no || isCheckBox.all} + // onClick={() => + // setIsCheckBox({ + // all: false, + // no: !isCheckBox.no + // }) + // } />
diff --git a/src/containers/basis/group/BasisGroupApprovalContainer.js b/src/containers/basis/group/BasisGroupApprovalContainer.js index c7abeee9..57c6cbbb 100644 --- a/src/containers/basis/group/BasisGroupApprovalContainer.js +++ b/src/containers/basis/group/BasisGroupApprovalContainer.js @@ -8,6 +8,7 @@ import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; import * as Actions from '../../../modules/basis/group/actions/basisGroupAction'; + export const BasisGroupApprovalContainer = props => { const { aprvList, aprvCount } = useSelector(state => state.groupState); @@ -126,16 +127,19 @@ export const BasisGroupApprovalContainer = props => { } ]; + useEffect(() => { if (user?.cstmrSno) { setParams({ ...params, - cstmrSno: user?.cstmrSno + cstmrSno: user?.cstmrSno, + aprvYn: 'N' }); dispatch( Actions.APPROVAL_LIST.request({ - searchParams: { cstmrSno: user?.cstmrSno } + searchParams: { cstmrSno: user?.cstmrSno, aprvYn: 'N'} + // searchParams: params }) ); } @@ -147,9 +151,6 @@ export const BasisGroupApprovalContainer = props => { } }; - useEffect(() => { - }, [params]); - const handlerSearch = () => { dispatch(Actions.APPROVAL_LIST.request({ searchParams: params })); }; @@ -198,10 +199,10 @@ export const BasisGroupApprovalContainer = props => {