diff --git a/src/containers/basis/group/BasisGroupUsersContainer.js b/src/containers/basis/group/BasisGroupUsersContainer.js
index f7b92638..8507ea0e 100644
--- a/src/containers/basis/group/BasisGroupUsersContainer.js
+++ b/src/containers/basis/group/BasisGroupUsersContainer.js
@@ -13,12 +13,6 @@ export const BasisGroupUsersContainer = props => {
state => state.groupState
);
- useEffect(() => {
- if (user?.cstmrSno) {
- dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
- }
- }, [user]);
-
const { user } = useSelector(state => state.authState);
const dispatch = useDispatch();
@@ -46,7 +40,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '그룹명',
selector: 'groupNm',
- minWidth: '102px',
+ minWidth: '150px',
sortable: true,
cell: row => {
return row?.groupNm;
@@ -74,7 +68,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '사용자 ID',
selector: 'userId',
- minWidth: '102px',
+ minWidth: '150px',
sortable: true,
cell: row => {
return row?.userId;
@@ -93,7 +87,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '가입 일시',
selector: 'joinDt',
- minWidth: '102px',
+ minWidth: '200px',
sortable: true,
cell: row => {
return row?.joinDt;
@@ -102,7 +96,7 @@ export const BasisGroupUsersContainer = props => {
{
name: '권한 변경',
// selector: 'cntrlStDate',
- // minWidth: '102px',
+ minWidth: '130px',
sortable: false,
cell: row => {
const my = joinList?.find((prev, idx) => {
@@ -138,6 +132,7 @@ export const BasisGroupUsersContainer = props => {
onClick={() => handlerAdminConfirm(row?.cstmrGroupSno)}
>
운영자로 변경
+ {/* ADMIN */}
);
}
@@ -163,15 +158,46 @@ export const BasisGroupUsersContainer = props => {
//
// );
}
+ },
+ {
+ name: '위임 하기',
+ // minWidth: '102px',
+ sortable: false,
+ cell: row => {
+ const my = joinList?.find((prev, idx) => {
+ if (prev.groupId === row?.groupId) {
+ return prev;
+ }
+ });
+ // console.log('내 권한 : ', my?.groupAuthCd);
+ // console.log('이 사람의 권한 : ', row?.groupAuthCd);
+
+ if (row?.groupAuthCd === 'ADMIN') {
+ if (my?.groupAuthCd === 'CREATER') {
+ return (
+
+ handlerCreaterConfirm(row?.cstmrGroupSno, my?.cstmrGroupSno)
+ }
+ >
+ 위임하기
+
+ );
+ }
+ }
+ }
}
];
useEffect(() => {
if (user?.cstmrSno) {
- setParams({
- ...params,
- cstmrSno: user?.cstmrSno
- });
+ dispatch(Actions.JOIN_LIST.request({ cstmrSno: user?.cstmrSno }));
+ // setParams({
+ // ...params,
+ // cstmrSno: user?.cstmrSno
+ // });
// dispatch(
// Actions.USER_LIST.request({
@@ -181,9 +207,9 @@ export const BasisGroupUsersContainer = props => {
}
}, [user]);
- useEffect(() => {
- // console.log('changeParam >>>', params);
- }, [params]);
+ // useEffect(() => {
+ // console.log('changeParam >>>', params);
+ // }, [params]);
useEffect(() => {
handlerSearch();
@@ -232,8 +258,33 @@ export const BasisGroupUsersContainer = props => {
});
};
+ const handlerCreaterConfirm = (row, my) => {
+ setModal({
+ isOpen: true,
+ title: '권한 위임',
+ desc: '해당 사용자에게 그룹장을 위임 하시겠습니까?'
+ });
+
+ setSaveData([
+ {
+ cstmrGroupSno: row,
+ joinYn: 'Y',
+ groupAuthCd: 'CREATER'
+ },
+ {
+ cstmrGroupSno: my,
+ joinYn: 'Y',
+ groupAuthCd: 'USER'
+ }
+ ]);
+ };
+
const handlerAuthSave = async () => {
- dispatch(Actions.USER_UPDATE.request(saveData));
+ if (saveData.length === 2) {
+ dispatch(Actions.USER_DELEGATE.request(saveData));
+ } else {
+ dispatch(Actions.USER_UPDATE.request(saveData));
+ }
};
const handlerInput = e => {
diff --git a/src/modules/basis/group/actions/basisGroupAction.ts b/src/modules/basis/group/actions/basisGroupAction.ts
index 36e804e0..5f4a56d1 100644
--- a/src/modules/basis/group/actions/basisGroupAction.ts
+++ b/src/modules/basis/group/actions/basisGroupAction.ts
@@ -7,6 +7,7 @@ import {
JoinGroupData,
AprvGroupData,
UserGroupData,
+ UserGroupState,
GroupState
} from '../models/basisGroupModel';
@@ -60,7 +61,6 @@ const GROUP_MYLIST_REQUEST = 'basis/group/GROUP_MYLIST_REQUEST';
const GROUP_MYLIST_SUCCESS = 'basis/group/GROUP_MYLIST_SUCCESS';
const GROUP_MYLIST_FAILURE = 'basis/group/GROUP_MYLIST_FAILURE';
-
//# 그룹 가입처리
const GROUP_JOIN_REQUEST = 'basis/group/GROUP_JOIN_REQUEST';
const GROUP_JOIN_SUCCESS = 'basis/group/GROUP_JOIN_SUCCESS';
@@ -91,6 +91,11 @@ const USER_UPDATE_REQUEST = 'basis/group/USER_UPDATE_REQUEST';
const USER_UPDATE_SUCCESS = 'basis/group/USER_UPDATE_SUCCESS';
const USER_UPDATE_FAILURE = 'basis/group/USER_UPDATE_FAILURE';
+//# 그룹장 권한 위임
+const USER_DELEGATE_REQUEST = 'basis/group/USER_DELEGATE_REQUEST';
+const USER_DELEGATE_SUCCESS = 'basis/group/USER_DELEGATE_SUCCESS';
+const USER_DELEGATE_FAILURE = 'basis/group/USER_DELEGATE_FAILURE';
+
export const MY_LIST = createAsyncAction(
MY_LIST_REQUEST,
MY_LIST_SUCCESS,
@@ -107,7 +112,7 @@ export const GROUP_MYLIST = createAsyncAction(
GROUP_MYLIST_REQUEST,
GROUP_MYLIST_SUCCESS,
GROUP_MYLIST_FAILURE
- )();
+)();
export const GROUP_DETAIL = createAsyncAction(
GROUP_DETAIL_REQUEST,
@@ -149,7 +154,6 @@ export const GROUP_JOINLIST = createAsyncAction(
GROUP_JOINLIST_FAILURE
)();
-
export const GROUP_JOIN = createAsyncAction(
GROUP_JOIN_REQUEST,
GROUP_JOIN_SUCCESS,
@@ -186,6 +190,12 @@ export const USER_UPDATE = createAsyncAction(
USER_UPDATE_FAILURE
)();
+export const USER_DELEGATE = createAsyncAction(
+ USER_DELEGATE_REQUEST,
+ USER_DELEGATE_SUCCESS,
+ USER_DELEGATE_FAILURE
+)();
+
const actions = {
MY_LIST,
JOIN_LIST,
@@ -202,6 +212,7 @@ const actions = {
APPROVAL_UPDATE,
USER_LIST,
USER_UPDATE,
+ USER_DELEGATE,
GROUP_MYLIST
};
diff --git a/src/modules/basis/group/apis/basisGroupApi.ts b/src/modules/basis/group/apis/basisGroupApi.ts
index 58c7efad..1a3885fe 100644
--- a/src/modules/basis/group/apis/basisGroupApi.ts
+++ b/src/modules/basis/group/apis/basisGroupApi.ts
@@ -5,7 +5,8 @@ import {
AprvGroupData,
GroupData,
JoinGroupData,
- UserGroupData
+ UserGroupData,
+ UserGroupState
} from '../models/basisGroupModel';
// import { ReponseControlGpHistory } from '../models/controlGpModel';
@@ -28,13 +29,11 @@ export const groupAPI = {
return await axios.get(`api/bas/group/detail/${id}`);
},
createGroup: async (data: GroupData) => {
-
const res = await axios.post('api/bas/group/create', data);
return res;
},
updateGroup: async (data: GroupData) => {
-
const res = await axios.put('api/bas/group/update', data);
return res;
@@ -60,13 +59,11 @@ export const groupAPI = {
return await axios.get(`api/bas/group/join/list${queryString}`);
},
createJoinGroup: async (data: JoinGroupData) => {
-
const res = await axios.post('api/bas/group/join/create', data);
return res;
},
updateJoinGroup: async (data: JoinGroupData) => {
-
const res = await axios.put('api/bas/group/join/update', data);
return res;
@@ -79,7 +76,6 @@ export const groupAPI = {
return await axios.get(`api/bas/group/aprv/list${queryString}`);
},
updateAprvGroup: async (data: AprvGroupData) => {
-
const res = await axios.put('api/bas/group/aprv/update', data);
return res;
@@ -92,9 +88,13 @@ export const groupAPI = {
return await axios.get(`api/bas/group/user/list${queryString}`);
},
updateUser: async (data: UserGroupData) => {
-
const res = await axios.put('api/bas/group/user/update', data);
+ return res;
+ },
+ delegateUser: async (data: UserGroupState) => {
+ const res = await axios.put('api/bas/group/user/delegate', data);
+
return res;
}
};
diff --git a/src/modules/basis/group/models/basisGroupModel.ts b/src/modules/basis/group/models/basisGroupModel.ts
index c11b4925..f031f7fd 100644
--- a/src/modules/basis/group/models/basisGroupModel.ts
+++ b/src/modules/basis/group/models/basisGroupModel.ts
@@ -61,6 +61,9 @@ export interface AprvGroupData {
aprvlUserId: String;
}
+export interface UserGroupState {
+ userGroupData: UserGroupData[] | undefined;
+}
export interface UserGroupData {
cstmrGroupSno: number;
groupId: string;
diff --git a/src/modules/basis/group/sagas/basisGroupSaga.ts b/src/modules/basis/group/sagas/basisGroupSaga.ts
index 132031de..d945ee1e 100644
--- a/src/modules/basis/group/sagas/basisGroupSaga.ts
+++ b/src/modules/basis/group/sagas/basisGroupSaga.ts
@@ -163,13 +163,13 @@ function* createGroupSaga(
yield put(
MessageActions.IS_ERROR({
errorCode: ERROR_MESSAGE.code,
- errorMessage: data.errorMessage + ' (그룹명)',
+ errorMessage: data.errorMessage + ' (그룹명)',
isHistoryBack: false,
isRefresh: false
})
);
- } else{
- throw Error;
+ } else {
+ throw Error;
}
}
} catch (error) {
@@ -461,6 +461,40 @@ function* updateUserSaga(
}
}
+function* delegateUserSaga(
+ action: ActionType
+) {
+ try {
+ const saveData = action.payload;
+ const res = yield call(Apis.groupAPI.delegateUser, saveData);
+
+ const { data } = res;
+
+ if (data.result) {
+ yield put(
+ MessageActions.IS_MESSAGE({
+ messageCode: SAVE_MESSAGE.code,
+ message: SAVE_MESSAGE.message,
+ isHistoryBack: false,
+ isRefresh: true
+ })
+ );
+ } else {
+ throw Error;
+ }
+ } catch (error) {
+ yield put(
+ MessageActions.IS_ERROR({
+ errorCode: ERROR_MESSAGE.code,
+ errorMessage: ERROR_MESSAGE.message,
+ isHistoryBack: false,
+ isRefresh: false
+ })
+ );
+ // yield put(Actions.GROUP_UPDATE.failure(error));
+ }
+}
+
export function* basGroupSaga() {
yield takeEvery(Actions.MY_LIST.request, listMyGroupSaga);
yield takeEvery(Actions.JOIN_LIST.request, listMyJoinSaga);
@@ -478,4 +512,5 @@ export function* basGroupSaga() {
yield takeEvery(Actions.GROUP_JOIN_UPDATE.request, updateJoinGroupSaga);
yield takeEvery(Actions.APPROVAL_UPDATE.request, updateAprvSaga);
yield takeEvery(Actions.USER_UPDATE.request, updateUserSaga);
+ yield takeEvery(Actions.USER_DELEGATE.request, delegateUserSaga);
}