diff --git a/src/components/basis/group/BasisGroupGrid.js b/src/components/basis/group/BasisGroupGrid.js index b721317..7b4e112 100644 --- a/src/components/basis/group/BasisGroupGrid.js +++ b/src/components/basis/group/BasisGroupGrid.js @@ -1,38 +1,18 @@ import { GridDatabase } from '../../crud/grid/GridDatatable'; -import { - Row, - Col, - Table, - Badge, - UncontrolledDropdown, - DropdownMenu, - DropdownItem, - DropdownToggle, - Card, - CardHeader, - CardBody, - CardTitle, - CardSubtitle, - ButtonGroup, - Button, - Input, - CustomInput, - FormGroup, - Spinner -} from 'reactstrap'; -import { ExcelExportButton } from '../../crud/excel/ExcelExportButton'; +import { Card } from 'reactstrap'; export const BasisGroupGrid = props => { return ( -
- - -
-
-

{props.title} 목록

- 검색결과 총 {props.count}건 -
-
+ //
+ // + // + <> +
+
+

{props.title} 목록

+ 검색결과 총 {props.count}건 +
+ {/*
{ > 그룹생성 -
-
-
- - {/*
+
*/} +
+
+ + {/*
Loading...
*/} -
- -
-
+
+
- - -
+ +
+ + // + // + //
); }; diff --git a/src/components/basis/group/BasisGroupUsersGrid.js b/src/components/basis/group/BasisGroupUsersGrid.js index 1d69875..705b9e9 100644 --- a/src/components/basis/group/BasisGroupUsersGrid.js +++ b/src/components/basis/group/BasisGroupUsersGrid.js @@ -3,15 +3,16 @@ import { Row, Col, Card } from 'reactstrap'; export const BasisGroupUsersGrid = props => { return ( -
- - -
-
-

{props.title} 목록

- 검색결과 총 {props.count}건 -
- {/*
+ //
+ // + // + <> +
+
+

{props.title} 목록

+ 검색결과 총 {props.count}건 +
+ {/*
{ 그룹생성
*/} +
+
+ +
+
-
- -
- -
-
-
- +
+
+ {/*
-
+
*/} + ); }; diff --git a/src/components/basis/group/BasisGroupUsersSearch.js b/src/components/basis/group/BasisGroupUsersSearch.js index 40c3640..d13d75d 100644 --- a/src/components/basis/group/BasisGroupUsersSearch.js +++ b/src/components/basis/group/BasisGroupUsersSearch.js @@ -27,7 +27,8 @@ import moment from 'moment'; export const BasisGroupUsersSearch = props => { return ( -
+ //
+
diff --git a/src/containers/basis/group/BasisGroupApprovalContainer.js b/src/containers/basis/group/BasisGroupApprovalContainer.js index 094de4d..982b585 100644 --- a/src/containers/basis/group/BasisGroupApprovalContainer.js +++ b/src/containers/basis/group/BasisGroupApprovalContainer.js @@ -6,7 +6,7 @@ import { BasisGroupApprovalSearch } from '../../../components/basis/group/BasisG import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; import { ConfirmModal } from '../../../components/modal/ConfirmModal'; import * as Actions from '../../../modules/basis/group/actions/basisGroupAction'; -import * as GroupActions from '../../../modules/basis/group/actions/basisGroupAction'; +// import * as GroupActions from '../../../modules/basis/group/actions/basisGroupAction'; import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid'; export const BasisGroupApprovalContainer = props => { @@ -20,7 +20,7 @@ export const BasisGroupApprovalContainer = props => { const titleName = '승인관리'; const [params, setParams] = useState({ cstmrSno: user?.cstmrSno, - aprvYn: '', + aprvYn: '' }); const column = [ { @@ -66,7 +66,7 @@ export const BasisGroupApprovalContainer = props => { row?.groupId, row?.groupNm, row?.groupAuthCd, - row?.aprvlYn, + row?.aprvlYn ) } > @@ -90,11 +90,13 @@ export const BasisGroupApprovalContainer = props => { dispatch( Actions.APPROVAL_LIST.request({ - searchParams: { cstmrSno: user?.cstmrSno, aprvYn: '', groupId: groupId } - + searchParams: { + cstmrSno: user?.cstmrSno, + aprvYn: '', + groupId: groupId + } }) - - ); + ); } }; @@ -121,7 +123,6 @@ export const BasisGroupApprovalContainer = props => { cstmrSno: user?.cstmrSno, groupId: selectData?.groupId }) - ); } }, [user]); @@ -168,13 +169,7 @@ export const BasisGroupApprovalContainer = props => { // minWidth: '102px', sortable: true, cell: row => { - return ( - - 상세보기 - - ); + return 상세보기; } } ]; @@ -283,7 +278,6 @@ export const BasisGroupApprovalContainer = props => { } ]; - const onKeyPress = e => { if (e.key == 'Enter') { // handlerSearch(); @@ -365,8 +359,7 @@ export const BasisGroupApprovalContainer = props => { {!selectData ? ( <> -
-
+
) : ( { const dispatch = useDispatch(); - const history = useHistory(); - const { - joinList, - joinListCount, - selectGroup, - groupList, - groupListCount, - userList, - userListCount - } = useSelector(state => state.groupState); + const { joinList, joinListCount, selectData, userList, userCount } = + useSelector(state => state.groupState); const { user } = useSelector(state => state.authState); const [params, setParams] = useState({ @@ -74,36 +66,25 @@ export const BasisGroupUsersContainer = props => { name: '', sortable: true, cell: row => { - // return selectData?.groupId === row?.groupId ? ( - // handlerCancel()} - // > - // 선택취소 - // - // ) : ( - // - // handlerDetail( - // row?.groupId, - // row?.groupNm, - // row?.groupAuthCd, - // row?.aprvlYn - // ) - // } - // > - // 상세보기 - // - // ); - return ( + return selectData?.groupId === row?.groupId ? ( + handlerCancel()} + > + 선택취소 + + ) : ( - handlerDetail(row?.groupId, row?.groupAuthCd, row?.aprvlYn) + handlerDetail( + row?.groupId, + row?.groupNm, + row?.groupAuthCd, + row?.aprvlYn + ) } > 상세보기 @@ -117,7 +98,7 @@ export const BasisGroupUsersContainer = props => { { name: '그룹명', selector: 'groupNm', - minWidth: '150px', + // minWidth: '102px', sortable: true, cell: row => { return row?.groupNm; @@ -127,7 +108,7 @@ export const BasisGroupUsersContainer = props => { { name: '그룹 코드', selector: 'groupId', - minWidth: '102px', + // minWidth: '102px', sortable: true, cell: row => { return row?.groupId; @@ -136,7 +117,7 @@ export const BasisGroupUsersContainer = props => { { name: '사용자 명', selector: 'memberName', - minWidth: '102px', + // minWidth: '102px', sortable: true, cell: row => { return row?.memberName; @@ -145,7 +126,7 @@ export const BasisGroupUsersContainer = props => { { name: '사용자 ID', selector: 'userId', - minWidth: '120px', + // minWidth: '102px', sortable: true, cell: row => { return row?.userId; @@ -155,7 +136,7 @@ export const BasisGroupUsersContainer = props => { { name: '권한명', selector: 'groupAuthCd', - minWidth: '105px', + // minWidth: '102px', sortable: true, cell: row => { return row?.groupAuthCd; @@ -164,7 +145,7 @@ export const BasisGroupUsersContainer = props => { { name: '가입 일시', selector: 'joinDt', - minWidth: '150px', + // minWidth: '150px', sortable: true, cell: row => { return row?.joinDt; @@ -173,7 +154,7 @@ export const BasisGroupUsersContainer = props => { { name: '권한 변경', // selector: 'cntrlStDate', - minWidth: '130px', + minWidth: '300px', sortable: false, cell: row => { const my = joinList?.find((prev, idx) => { @@ -181,71 +162,186 @@ export const BasisGroupUsersContainer = props => { return prev; } }); + let m_disabled = false; + let l_disabled = false; + let n_disabled = false; - if (row?.groupAuthCd === 'MASTER') { - return
수정불가
; - } else if (row?.groupAuthCd === 'LEADER') { - if (my?.groupAuthCd === 'MASTER') { - return ( - handlerUserConfirm(row?.cstmrGroupSno)} - > - NORMAL - - ); + if (user.authId === 'SUPER') { + { + } + } else if (user.authId === 'ADMIN') { + if (my.groupAuthCd === 'MASTER') { + if (row.groupAuthCd === 'LEADER') { + l_disabled = true; + } else if (row.groupAuthCd === 'NORMAL') { + m_disabled = true; + n_disabled = true; + } + } else if (my.groupAuthCd === 'LEADER') { + if (row.groupAuthCd === 'MASTER') { + m_disabled = true; + l_disabled = true; + n_disabled = true; + } else if (row.groupAuthCd === 'LEADER') { + m_disabled = true; + l_disabled = true; + n_disabled = true; + } else if (row.groupAuthCd === 'NORMAL') { + m_disabled = true; + n_disabled = true; + } } else { - return
수정불가
; + //내 권한이 마스터도 리더도 아니니까 우리그룹이 아님 + m_disabled = true; + l_disabled = true; + n_disabled = true; } - } else if (row?.groupAuthCd === 'NORMAL') { - if (my?.groupAuthCd === 'MASTER' || my?.groupAuthCd === 'LEADER') { - return ( - handlerAdminConfirm(row?.cstmrGroupSno)} - > - LEADER - - ); + } else if (user.authId === 'ROLE_USER') { + if (my.groupAuthCd === 'MASTER') { + if (row.groupAuthCd === 'LEADER') { + l_disabled = true; + } else if (row.groupAuthCd === 'NORMAL') { + m_disabled = true; + n_disabled = true; + } + } else if (my.groupAuthCd === 'LEADER') { + if (row.groupAuthCd === 'MASTER') { + m_disabled = true; + l_disabled = true; + n_disabled = true; + } else if (row.groupAuthCd === 'LEADER') { + m_disabled = true; + l_disabled = true; + n_disabled = true; + } else if (row.groupAuthCd === 'NORMAL') { + m_disabled = true; + n_disabled = true; + } } } - } - }, - { - name: '위임 하기', - // minWidth: '102px', - sortable: false, - cell: row => { - const my = joinList?.find((prev, idx) => { - if (prev.groupId === row?.groupId) { - return prev; - } - }); - if (row?.groupAuthCd === 'LEADER') { - if (my?.groupAuthCd === 'MASTER') { - return ( - - handlerCreaterConfirm(row?.cstmrGroupSno, my?.cstmrGroupSno) - } - > - MASTER - - ); - } - } + const master = ( + <> + + handlerMaster(row?.cstmrGroupSno, my?.cstmrGroupSno) + } + disabled={m_disabled} + > + MASTER + + + ); + + const leader = ( + <> + handlerLeader(row?.cstmrGroupSno)} + disabled={l_disabled} + > + LEADER + + + ); + + const normal = ( + <> + handlerNormal(row?.cstmrGroupSno)} + disabled={n_disabled} + > + NORMAL + + + ); + + return ( + <> + {master} + {leader} + {normal} + + ); + + // const my = joinList?.find((prev, idx) => { + // if (prev.groupId === row?.groupId) { + // return prev; + // } + // }); + + // if (row?.groupAuthCd === 'MASTER') { + // return
수정불가
; + // } else if (row?.groupAuthCd === 'LEADER') { + // if (my?.groupAuthCd === 'MASTER') { + // return ( + // handlerUserConfirm(row?.cstmrGroupSno)} + // > + // NORMAL + // + // ); + // } else { + // return
수정불가
; + // } + // } else if (row?.groupAuthCd === 'NORMAL') { + // if (my?.groupAuthCd === 'MASTER' || my?.groupAuthCd === 'LEADER') { + // return ( + // handlerAdminConfirm(row?.cstmrGroupSno)} + // > + // LEADER + // + // ); + // } + // } } } + // { + // name: '위임 하기', + // // minWidth: '102px', + // sortable: false, + // cell: row => { + // const my = joinList?.find((prev, idx) => { + // if (prev.groupId === row?.groupId) { + // return prev; + // } + // }); + + // if (row?.groupAuthCd === 'LEADER') { + // if (my?.groupAuthCd === 'MASTER') { + // return ( + // + // handlerCreaterConfirm(row?.cstmrGroupSno, my?.cstmrGroupSno) + // } + // > + // MASTER + // + // ); + // } + // } + // } + // } ]; - // useEffect(() => { - // handlerSearch(); - // }, []); + useEffect(() => { + // handlerSearch(); + handlerCancel(); + }, []); const handlerSearch = () => { if (params.cstmrSno && user?.cstmrSno) { @@ -268,17 +364,17 @@ export const BasisGroupUsersContainer = props => { } }, [user]); - const handlerDetail = (groupId, groupAuthCd, aprvlYn) => { + const handlerDetail = (groupId, groupNm, groupAuthCd, aprvlYn) => { if ( groupAuthCd === 'MASTER' || user.authId === 'SUPER' || user.authId === 'ADMIN' || (aprvlYn === 'Y' && groupAuthCd === 'LEADER') ) { + dispatch(Actions.SELECT({ groupId: groupId, groupNm, groupNm })); const param = params; param.groupId = groupId; - param.groupAuthCd = groupAuthCd; - param.aprvlYn = aprvlYn; + param.memberNm = ''; dispatch( Actions.USER_LIST.request({ @@ -291,10 +387,20 @@ export const BasisGroupUsersContainer = props => { title: '권한 확인', desc: '사용자관리 확인을 위해서는 운영자 권한이 필요합니다. 운영자에게 권한을 부여받고 다시 시도해 주세요.' }); + return; } }; - const handlerAdminConfirm = cstmrGroupSno => { + const handlerCancel = () => { + dispatch(Actions.SELECT()); + setParams({ + ...params, + groupId: '', + memberNm: '' + }); + }; + + const handlerLeader = cstmrGroupSno => { setModal({ isOpen: true, title: '권한 확인', @@ -314,7 +420,7 @@ export const BasisGroupUsersContainer = props => { } }; - const handlerUserConfirm = cstmrGroupSno => { + const handlerNormal = cstmrGroupSno => { setModal({ isOpen: true, title: '권한 확인', @@ -328,7 +434,7 @@ export const BasisGroupUsersContainer = props => { }); }; - const handlerCreaterConfirm = (row, my) => { + const handlerMaster = (row, my) => { setModal({ isOpen: true, title: '권한 위임', @@ -393,38 +499,42 @@ export const BasisGroupUsersContainer = props => { /> - {!userList ? ( -
- 그룹 목록에서 상세보기를 클릭하세요. -
- ) : ( + {selectData ? ( <> - {/* */} + /> + ) : ( +
+ 그룹 목록에서 상세보기를 클릭하세요. +
)} - - - + {/* + {selectData ? ( + + ) : ( +
+ )} + */}
@@ -434,7 +544,7 @@ export const BasisGroupUsersContainer = props => { handlerConfirm={handlerAuthSave} color='primary' /> - {/* */} + ); };