diff --git a/frontend/src/assets/css/style.css b/frontend/src/assets/css/style.css
index fedfc2e..da34ded 100644
--- a/frontend/src/assets/css/style.css
+++ b/frontend/src/assets/css/style.css
@@ -1893,6 +1893,19 @@ textarea:focus{
animation: spScaleAlphaAfter 2s infinite linear;
}
+.div_authcheck {
+ position: relative;
+ box-sizing: border-box;
+ float: left;
+ width: 20%;
+ height: 165px;
+ padding-top: 10px;
+}
+
+.div_authcheck .label_group.radio {
+ padding-top: 8px;
+}
+
@keyframes spScaleAlpha {
0% {
opacity: 1;
diff --git a/frontend/src/modules/sysMgt/service/sysMgtApi.js b/frontend/src/modules/sysMgt/service/sysMgtApi.js
index d22b4c5..e4d4d4c 100644
--- a/frontend/src/modules/sysMgt/service/sysMgtApi.js
+++ b/frontend/src/modules/sysMgt/service/sysMgtApi.js
@@ -93,6 +93,10 @@ const svcCheckList = (params) => {
return httpClient.post('/api/v1/bo/sysMgt/svcCheckList', params, { withCredentials: false })
}
+const athMenuList = (params) => {
+ return httpClient.post('/api/v1/bo/sysMgt/selectAuthMemuListForAddAuth', params, { withCredentials: false })
+}
+
export default {
insertAdmin,
@@ -115,4 +119,5 @@ export default {
notiList,
setWorkState,
svcCheckList,
+ athMenuList
}
diff --git a/frontend/src/modules/sysMgt/views/AuthAdd.vue b/frontend/src/modules/sysMgt/views/AuthAdd.vue
index 8b51e03..ac08d7b 100644
--- a/frontend/src/modules/sysMgt/views/AuthAdd.vue
+++ b/frontend/src/modules/sysMgt/views/AuthAdd.vue
@@ -31,7 +31,7 @@
|
- |
+ |
메뉴 권한 체크
|
-
- 고객관리
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ upper.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
-
- 유치현황관리
-
- |
- |
-
-
- |
-
-
-
-
- |
-
-
- |
-
-
- |
-
- 서비스관리
-
-
-
-
-
- |
-
- 정산
-
-
-
-
-
- |
-
- 카카오 채널관리
-
-
-
-
-
-
-
-
-
-
- |
-
-
- |
- 발신번호관리
-
-
-
-
-
-
-
-
-
-
- |
-
- 모니터링
-
-
-
-
-
-
-
-
-
-
- |
-
- 리스크관리
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- 발송통계
-
-
-
-
-
-
-
-
-
-
- |
-
- 시스템 관리
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- 홈페이지 관리
-
-
-
-
-
-
-
-
-
-
- |
-
+
@@ -238,6 +95,7 @@ export default {
defaultAuthMenu: ["2001", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"],
checkedAuthMenu: [],
channelAuth: "",
+ list: []
};
},
components: {
@@ -250,9 +108,27 @@ export default {
},
mounted() {
-
+ this.athMenuList();
},
methods: {
+ async athMenuList() {
+ this.params = {}
+ try {
+ const response = await sysMgtApi.athMenuList(this.params);
+
+ const result = response.data;
+
+ if (result != null && result.retCode == '0000') {
+ this.list = result.data.list;
+ }
+
+ } catch(err){
+ this.row.title = '권한 목록 조회 실패';
+ this.row.msg1 = err;
+ this.$parent.$refs.commmonModal.alertModalOpen(this.row);
+ return false;
+ }
+ },
doValidate() {
// 필수 등록정보 체크
@@ -381,6 +257,21 @@ export default {
if (props.result) {
this.authInsert();
}
+ },
+ channelCheck(e, len, isEventCall){
+ if(e.target.checked){
+ for(const target of document.getElementsByName(e.target.name)){
+ if(target != e.target){
+ target.checked = false;
+ this.checkedAuthMenu = this.checkedAuthMenu.filter((data) => {
+ if(data != target.value){
+ return data;
+ }
+ });
+
+ }
+ }
+ }
}
},
computed: {
diff --git a/frontend/src/modules/sysMgt/views/AuthModify.vue b/frontend/src/modules/sysMgt/views/AuthModify.vue
index 318f98c..0c3b8c4 100644
--- a/frontend/src/modules/sysMgt/views/AuthModify.vue
+++ b/frontend/src/modules/sysMgt/views/AuthModify.vue
@@ -38,174 +38,32 @@
-->
-
-
- 고객관리
-
-
-
-
+
+ |
+
+
+
+ {{ upper.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
- |
-
- 유치현황관리
-
- |
- |
-
-
- |
-
-
-
-
- |
-
-
- |
-
-
-
-
- 서비스관리
-
-
-
-
-
- |
-
- 정산
-
-
-
-
-
- |
-
- 카카오 채널관리
-
-
-
-
-
-
-
-
-
-
- |
-
-
- |
- 발신번호관리
-
-
-
-
-
-
-
-
-
-
- |
-
- 모니터링
-
-
-
-
-
-
-
-
-
-
- |
-
- 리스크관리
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- 발송통계
-
-
-
-
-
-
-
-
-
-
- |
-
- 시스템 관리
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- 홈페이지 관리
-
-
-
-
-
-
-
-
-
-
- |
-
+
+
+
+
@@ -238,6 +96,7 @@ export default {
defaultAuthMenu: ["2001", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"],
checkedAuthMenu: [],
channelAuth: "",
+ list: []
};
},
props: {
@@ -257,9 +116,27 @@ export default {
},
mounted() {
-
+ this.athMenuList();
},
methods: {
+ async athMenuList() {
+ this.params = {}
+ try {
+ const response = await sysMgtApi.athMenuList(this.params);
+
+ const result = response.data;
+
+ if (result != null && result.retCode == '0000') {
+ this.list = result.data.list;
+ }
+
+ } catch(err){
+ this.row.title = '권한 목록 조회 실패';
+ this.row.msg1 = err;
+ this.$parent.$refs.commmonModal.alertModalOpen(this.row);
+ return false;
+ }
+ },
doValidate() {
// 필수 등록정보 체크
@@ -327,11 +204,7 @@ export default {
var rsArr = [];
for (var i = 0; i < dataList.length; i++) {
if (dataList[i].upperMenuNo != null || dataList[i].upperMenuNo != "") {
- if (dataList[i].menuNo === '2002' || dataList[i].menuNo === '2003') {
- this.channelAuth = dataList[i].menuNo;
- } else {
- this.checkedAuthMenu.push(dataList[i].menuNo);
- }
+ this.checkedAuthMenu.push(dataList[i].menuNo);
}
}
@@ -419,6 +292,21 @@ export default {
if (props.result) {
this.authUpdate();
}
+ },
+ channelCheck(e, len, isEventCall){
+ if(e.target.checked){
+ for(const target of document.getElementsByName(e.target.name)){
+ if(target != e.target){
+ target.checked = false;
+ this.checkedAuthMenu = this.checkedAuthMenu.filter((data) => {
+ if(data != target.value){
+ return data;
+ }
+ });
+
+ }
+ }
+ }
}
},
computed: {
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
index 62613bb..9e00c8e 100644
--- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtController.java
@@ -451,4 +451,17 @@ public class SysMgtController {
}
+ /**
+ * date : 2023. 7. 13.
+ * auth : Jeon
+ * desc : 권한 관리 메뉴 권한 목록 조회
+ * @return
+ */
+ @ApiOperation(value = "selectAuthMemuListForAddAuth", notes = "메뉴 권한 목록")
+ @RequestMapping(value = "/selectAuthMemuListForAddAuth", method = {RequestMethod.POST})
+ @ResponseBody
+ public AuthMenuResDto selectAuthMemuListForAddAuth() {
+ return sysService.selectAuthMemuListForAddAuth();
+ }
+
}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java
index 50b9cc9..5ee3a36 100644
--- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtMapper.java
@@ -60,5 +60,9 @@ public interface SysMgtMapper {
public List notiListSelect(NotiListReqDto notiListReqDto);
int notiListSelectCnt(NotiListReqDto notiListReqDto);
+
+ List selectAuthMemuUpperList(); //권한 추가를 위한 메뉴 조회
+
+ List selectAuthMemuChdList(AuthMenuUpper authMenuUpper); //권한 추가를 위한 메뉴 조회
}
\ No newline at end of file
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
index 362d0b5..3b35137 100644
--- a/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/SysMgtService.java
@@ -744,4 +744,37 @@ public class SysMgtService {
return new SvcCheckListResDto(ApiResponseCode.SUCCESS,svcCheckListRes);
}
+ /**
+ * date : 2023. 7. 13.
+ * auth : Jeon
+ * desc : 권한 관리 메뉴 권한 목록 조회
+ * @return
+ */
+ public AuthMenuResDto selectAuthMemuListForAddAuth() {
+ SysMgtMapper sysMgtMapper = sqlSessionSlave.getMapper(SysMgtMapper.class);
+
+ AuthMenuData authMenuData = new AuthMenuData();
+ List authMenuUpperList = new ArrayList();
+
+ try {
+
+ authMenuUpperList = sysMgtMapper.selectAuthMemuUpperList();
+
+ if(authMenuUpperList.size() < 1) {
+ return new AuthMenuResDto(ApiResponseCode.CM_NOT_FOUND);
+ }
+
+ for(AuthMenuUpper authMenuUpper : authMenuUpperList) {
+ authMenuUpper.setList(sysMgtMapper.selectAuthMemuChdList(authMenuUpper));
+ }
+
+ authMenuData.setList(authMenuUpperList);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new AuthMenuResDto(ApiResponseCode.CM_DB_QUERY_ERR);
+ }
+
+ return new AuthMenuResDto(ApiResponseCode.SUCCESS, authMenuData);
+ }
}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuData.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuData.java
new file mode 100644
index 0000000..e398f55
--- /dev/null
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuData.java
@@ -0,0 +1,17 @@
+package kr.co.uplus.ez.api.sysMgt.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModelProperty;
+import kr.co.uplus.ez.api.sysMgt.SysMgtMapper;
+import kr.co.uplus.ez.common.data.ApiResponseCode;
+import kr.co.uplus.ez.common.utils.EncryptionUtil;
+import lombok.Data;
+
+@SuppressWarnings("serial")
+@Data
+public class AuthMenuData implements Serializable {
+
+ private List list;
+}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuResDto.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuResDto.java
new file mode 100644
index 0000000..75800ce
--- /dev/null
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuResDto.java
@@ -0,0 +1,31 @@
+package kr.co.uplus.ez.api.sysMgt.dto;
+
+import java.io.Serializable;
+
+import kr.co.uplus.ez.common.data.ApiResponseCode;
+import kr.co.uplus.ez.common.data.ResponseMessage;
+import lombok.Data;
+
+@SuppressWarnings("serial")
+@Data
+public class AuthMenuResDto extends ResponseMessage implements Serializable {
+
+ //데이터
+ private AuthMenuData data;
+
+ public AuthMenuResDto() {
+ this.retCode = ApiResponseCode.SUCCESS.getResultCode();
+ this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
+ }
+
+ public AuthMenuResDto(ApiResponseCode returnStr) {
+ this.retCode = returnStr.getResultCode();
+ this.retMsg = returnStr.getResultMsg();
+ }
+
+ public AuthMenuResDto(ApiResponseCode returnStr, AuthMenuData data) {
+ this.retCode = returnStr.getResultCode();
+ this.retMsg = returnStr.getResultMsg();
+ this.data = data;
+ }
+}
diff --git a/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuUpper.java b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuUpper.java
new file mode 100644
index 0000000..0ff2c11
--- /dev/null
+++ b/src/main/java/kr/co/uplus/ez/api/sysMgt/dto/AuthMenuUpper.java
@@ -0,0 +1,28 @@
+package kr.co.uplus.ez.api.sysMgt.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModelProperty;
+import kr.co.uplus.ez.api.sysMgt.SysMgtMapper;
+import kr.co.uplus.ez.common.data.ApiResponseCode;
+import kr.co.uplus.ez.common.utils.EncryptionUtil;
+import lombok.Data;
+
+@SuppressWarnings("serial")
+@Data
+public class AuthMenuUpper implements Serializable {
+
+ @ApiModelProperty(example = "메뉴번호", name = "메뉴번호", dataType = "String")
+ private String menuNo;
+ @ApiModelProperty(example = "메뉴명", name = "메뉴명", dataType = "String")
+ private String name;
+ @ApiModelProperty(example = "메뉴순서", name = "메뉴순서", dataType = "String")
+ private String menuOrder;
+ @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String")
+ private String useYn;
+ @ApiModelProperty(example = "메뉴레벨", name = "메뉴레벨", dataType = "String")
+ private String menuLv;
+
+ private List list;
+}
diff --git a/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml b/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml
index f216360..4d1411b 100644
--- a/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml
+++ b/src/main/resources/mapper/mysql/sysMgt/sysMgt-mapper.xml
@@ -523,4 +523,31 @@
+
+
+
+
\ No newline at end of file