mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-07 03:28:39 +09:00
운영관리 > 권한관리 하드코딩 제거
This commit is contained in:
@@ -1893,6 +1893,19 @@ textarea:focus{
|
|||||||
animation: spScaleAlphaAfter 2s infinite linear;
|
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 {
|
@keyframes spScaleAlpha {
|
||||||
0% {
|
0% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
|||||||
@@ -93,6 +93,10 @@ const svcCheckList = (params) => {
|
|||||||
return httpClient.post('/api/v1/bo/sysMgt/svcCheckList', params, { withCredentials: false })
|
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 {
|
export default {
|
||||||
insertAdmin,
|
insertAdmin,
|
||||||
@@ -115,4 +119,5 @@ export default {
|
|||||||
notiList,
|
notiList,
|
||||||
setWorkState,
|
setWorkState,
|
||||||
svcCheckList,
|
svcCheckList,
|
||||||
|
athMenuList
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<td colspan="5"><input type="text" v-model.trim="authDesc" maxlength="100"></td>
|
<td colspan="5"><input type="text" v-model.trim="authDesc" maxlength="100"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="tr_checkbox">
|
<tr class="tr_checkbox">
|
||||||
<td class="check" rowspan="2">
|
<td class="check">
|
||||||
<p>메뉴 권한 체크</p>
|
<p>메뉴 권한 체크</p>
|
||||||
<input type="checkbox" id="right_check0" ref="checkedAuthMenuAll_" v-model="checkedAuthMenuAll">
|
<input type="checkbox" id="right_check0" ref="checkedAuthMenuAll_" v-model="checkedAuthMenuAll">
|
||||||
<!--<div class="label_group">
|
<!--<div class="label_group">
|
||||||
@@ -39,171 +39,28 @@
|
|||||||
<label for="right_check0">전체 체크</label>
|
<label for="right_check0">전체 체크</label>
|
||||||
</div>-->
|
</div>-->
|
||||||
</td>
|
</td>
|
||||||
<td class="check">
|
<td colspan="6">
|
||||||
<p>고객관리</p>
|
|
||||||
<input type="checkbox" id="right_check1" value="2001" v-model="checkedAuthMenu">
|
<div class="div_authcheck" v-for="(upper, i) in list" v-bind:key="i">
|
||||||
|
<p>{{ upper.name }}</p>
|
||||||
|
<div v-for="(auth, x) in upper.list" v-bind:key="x" >
|
||||||
|
<div v-if="auth.menuNo !== '2002' && auth.menuNo !== '2003'">
|
||||||
|
<input type="checkbox" :id="'right_check'+auth.menuNo" :value="auth.menuNo" v-model="checkedAuthMenu"/>
|
||||||
<div class="label_group">
|
<div class="label_group">
|
||||||
<label for="right_check1"></label>
|
<label :for="'right_check'+auth.menuNo"></label>
|
||||||
<label for="right_check1">청약고객관리</label>
|
<label :for="'right_check'+auth.menuNo">{{auth.name}}</label>
|
||||||
</div>
|
</div>
|
||||||
<input type="checkbox" id="right_check2" value="2024" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check2"></label>
|
|
||||||
<label for="right_check2">회원관리</label>
|
|
||||||
</div>
|
</div>
|
||||||
<input type="checkbox" id="right_check3" value="2025" v-model="checkedAuthMenu">
|
<div v-if="auth.menuNo == '2002' || auth.menuNo == '2003'">
|
||||||
|
<input type="checkbox" name="oneCheck" :id="'right_check'+auth.menuNo" :value="auth.menuNo" @change="channelCheck" v-model="checkedAuthMenu"/>
|
||||||
<div class="label_group">
|
<div class="label_group">
|
||||||
<label for="right_check3"></label>
|
<label :for="'right_check'+auth.menuNo"></label>
|
||||||
<label for="right_check3">충전관리</label>
|
<label :for="'right_check'+auth.menuNo">{{auth.name}}</label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td class="check system">
|
|
||||||
<p>유치현황관리</p>
|
|
||||||
<div class="label_group">
|
|
||||||
<tr>
|
|
||||||
<td class="td_radio">
|
|
||||||
<input type="radio" name="userStat" value="2002" id="channel_radio1" v-model="channelAuth">
|
|
||||||
<label for="channel_radio1">유치채널 현황</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="label_group">
|
|
||||||
<tr>
|
|
||||||
<td class="td_radio">
|
|
||||||
<input type="radio" name="userStat" value="2003" id="channel_radio2" v-model="channelAuth">
|
|
||||||
<label for="channel_radio2">유치현황 관리(유치채널)</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>서비스관리</p>
|
|
||||||
<input type="checkbox" id="right_check4" value="2004" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check4"></label>
|
|
||||||
<label for="right_check4">080수신거부 인증코드 조회</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>정산</p>
|
|
||||||
<input type="checkbox" id="right_check5" value="2005" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check5"></label>
|
|
||||||
<label for="right_check5">정산이력</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>카카오 채널관리</p>
|
|
||||||
<input type="checkbox" id="right_check6" value="2007" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check6"></label>
|
|
||||||
<label for="right_check6">채널관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check7" value="2006" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check7"></label>
|
|
||||||
<label for="right_check7">알림톡 템플릿 관리</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="check">
|
|
||||||
<p>발신번호관리</p>
|
|
||||||
<input type="checkbox" id="right_check8" value="2008" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check8"></label>
|
|
||||||
<label for="right_check8">문자 발신번호 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check9" value="2009" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check9"></label>
|
|
||||||
<label for="right_check9">발신번호 승인</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>모니터링</p>
|
|
||||||
<input type="checkbox" id="right_check10" value="2010" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check10"></label>
|
|
||||||
<label for="right_check10">발송내역</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check11" value="2011" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check11"></label>
|
|
||||||
<label for="right_check11">실시간발송현황</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>리스크관리</p>
|
|
||||||
<input type="checkbox" id="right_check12" value="2012" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check12"></label>
|
|
||||||
<label for="right_check12">발신번호 차단</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check13" value="2013" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check13"></label>
|
|
||||||
<label for="right_check13">080수신번호 차단</label>
|
|
||||||
</div>
|
|
||||||
<!-- <input type="checkbox" id="right_check14" value="2014" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check14"></label>
|
|
||||||
<label for="right_check14">메시지 차단</label>
|
|
||||||
</div> -->
|
|
||||||
<!-- <input type="checkbox" id="right_check15" value="2015" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check15"></label>
|
|
||||||
<label for="right_check15">차단 내역</label>
|
|
||||||
</div> -->
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>발송통계</p>
|
|
||||||
<input type="checkbox" id="right_check16" value="2016" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check16"></label>
|
|
||||||
<label for="right_check16">날짜별 통계</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check17" value="2017" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check17"></label>
|
|
||||||
<label for="right_check17">사업자별 통계</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>시스템 관리</p>
|
|
||||||
<input type="checkbox" id="right_check18" value="2022" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check18"></label>
|
|
||||||
<label for="right_check18">배치 모니터링</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check19" value="2018" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check19"></label>
|
|
||||||
<label for="right_check19">관리자/유치채널 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check20" value="2019" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check20"></label>
|
|
||||||
<label for="right_check20">권한 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check21" value="2023" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check21"></label>
|
|
||||||
<label for="right_check21">알림 이력</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>홈페이지 관리</p>
|
|
||||||
<input type="checkbox" id="right_check22" value="2020" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check22"></label>
|
|
||||||
<label for="right_check22">공지사항</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check23" value="2021" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check23"></label>
|
|
||||||
<label for="right_check23">자주하는 질문</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -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"],
|
defaultAuthMenu: ["2001", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"],
|
||||||
checkedAuthMenu: [],
|
checkedAuthMenu: [],
|
||||||
channelAuth: "",
|
channelAuth: "",
|
||||||
|
list: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -250,9 +108,27 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.athMenuList();
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
doValidate() {
|
||||||
|
|
||||||
// 필수 등록정보 체크
|
// 필수 등록정보 체크
|
||||||
@@ -381,6 +257,21 @@ export default {
|
|||||||
if (props.result) {
|
if (props.result) {
|
||||||
this.authInsert();
|
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: {
|
computed: {
|
||||||
|
|||||||
@@ -38,172 +38,30 @@
|
|||||||
<label for="right_check0"></label>
|
<label for="right_check0"></label>
|
||||||
<label for="right_check0">전체 체크</label>
|
<label for="right_check0">전체 체크</label>
|
||||||
</div>-->
|
</div>-->
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="check">
|
<td colspan="6">
|
||||||
<p>고객관리</p>
|
|
||||||
<input type="checkbox" id="right_check1" value="2001" v-model="checkedAuthMenu">
|
<div class="div_authcheck" v-for="(upper, i) in list" v-bind:key="i">
|
||||||
|
<p>{{ upper.name }}</p>
|
||||||
|
<div v-for="(auth, x) in upper.list" v-bind:key="x" >
|
||||||
|
<div v-if="auth.menuNo !== '2002' && auth.menuNo !== '2003'">
|
||||||
|
<input type="checkbox" :id="'right_check'+auth.menuNo" :value="auth.menuNo" v-model="checkedAuthMenu"/>
|
||||||
<div class="label_group">
|
<div class="label_group">
|
||||||
<label for="right_check1"></label>
|
<label :for="'right_check'+auth.menuNo"></label>
|
||||||
<label for="right_check1">청약고객관리</label>
|
<label :for="'right_check'+auth.menuNo">{{auth.name}}</label>
|
||||||
</div>
|
</div>
|
||||||
<input type="checkbox" id="right_check2" value="2024" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check2"></label>
|
|
||||||
<label for="right_check2">회원관리</label>
|
|
||||||
</div>
|
</div>
|
||||||
<input type="checkbox" id="right_check3" value="2025" v-model="checkedAuthMenu">
|
<div v-if="auth.menuNo == '2002' || auth.menuNo == '2003'">
|
||||||
|
<input type="checkbox" name="oneCheck" :id="'right_check'+auth.menuNo" :value="auth.menuNo" @change="channelCheck" v-model="checkedAuthMenu"/>
|
||||||
<div class="label_group">
|
<div class="label_group">
|
||||||
<label for="right_check3"></label>
|
<label :for="'right_check'+auth.menuNo"></label>
|
||||||
<label for="right_check3">충전관리</label>
|
<label :for="'right_check'+auth.menuNo">{{auth.name}}</label>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>유치현황관리</p>
|
|
||||||
<div class="label_group">
|
|
||||||
<tr>
|
|
||||||
<td class="td_radio">
|
|
||||||
<input type="radio" name="userStat" value="2002" id="channel_radio1" v-model="channelAuth">
|
|
||||||
<label for="channel_radio1">유치채널 현황</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="label_group">
|
|
||||||
<tr>
|
|
||||||
<td class="td_radio">
|
|
||||||
<input type="radio" name="userStat" value="2003" id="channel_radio2" v-model="channelAuth">
|
|
||||||
<label for="channel_radio2">유치현황 관리(유치채널)</label>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>서비스관리</p>
|
|
||||||
<input type="checkbox" id="right_check4" value="2004" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check4"></label>
|
|
||||||
<label for="right_check4">080수신거부 인증코드 조회</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>정산</p>
|
|
||||||
<input type="checkbox" id="right_check5" value="2005" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check5"></label>
|
|
||||||
<label for="right_check5">정산이력</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>카카오 채널관리</p>
|
|
||||||
<input type="checkbox" id="right_check6" value="2007" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check6"></label>
|
|
||||||
<label for="right_check6">채널관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check7" value="2006" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check7"></label>
|
|
||||||
<label for="right_check7">알림톡 템플릿 관리</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="check">
|
|
||||||
<p>발신번호관리</p>
|
|
||||||
<input type="checkbox" id="right_check8" value="2008" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check8"></label>
|
|
||||||
<label for="right_check8">문자 발신번호 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check9" value="2009" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check9"></label>
|
|
||||||
<label for="right_check9">발신번호 승인</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>모니터링</p>
|
|
||||||
<input type="checkbox" id="right_check10" value="2010" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check10"></label>
|
|
||||||
<label for="right_check10">발송내역</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check11" value="2011" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check11"></label>
|
|
||||||
<label for="right_check11">실시간발송현황</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>리스크관리</p>
|
|
||||||
<input type="checkbox" id="right_check12" value="2012" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check12"></label>
|
|
||||||
<label for="right_check12">발신번호 차단</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check13" value="2013" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check13"></label>
|
|
||||||
<label for="right_check13">080수신번호 차단</label>
|
|
||||||
</div>
|
|
||||||
<!-- <input type="checkbox" id="right_check14" value="2014" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check14"></label>
|
|
||||||
<label for="right_check14">메시지 차단</label>
|
|
||||||
</div> -->
|
|
||||||
<!-- <input type="checkbox" id="right_check15" value="2015" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check15"></label>
|
|
||||||
<label for="right_check15">차단 내역</label>
|
|
||||||
</div> -->
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>발송통계</p>
|
|
||||||
<input type="checkbox" id="right_check16" value="2016" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check16"></label>
|
|
||||||
<label for="right_check16">날짜별 통계</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check17" value="2017" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check17"></label>
|
|
||||||
<label for="right_check17">사업자별 통계</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>시스템 관리</p>
|
|
||||||
<input type="checkbox" id="right_check18" value="2022" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check18"></label>
|
|
||||||
<label for="right_check18">배치 모니터링</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check19" value="2018" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check19"></label>
|
|
||||||
<label for="right_check19">관리자/유치채널 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check20" value="2019" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check20"></label>
|
|
||||||
<label for="right_check20">권한 관리</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check21" value="2023" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check21"></label>
|
|
||||||
<label for="right_check21">알림 이력</label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="check">
|
|
||||||
<p>홈페이지 관리</p>
|
|
||||||
<input type="checkbox" id="right_check22" value="2020" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check22"></label>
|
|
||||||
<label for="right_check22">공지사항</label>
|
|
||||||
</div>
|
|
||||||
<input type="checkbox" id="right_check23" value="2021" v-model="checkedAuthMenu">
|
|
||||||
<div class="label_group">
|
|
||||||
<label for="right_check23"></label>
|
|
||||||
<label for="right_check23">자주하는 질문</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -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"],
|
defaultAuthMenu: ["2001", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"],
|
||||||
checkedAuthMenu: [],
|
checkedAuthMenu: [],
|
||||||
channelAuth: "",
|
channelAuth: "",
|
||||||
|
list: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@@ -257,9 +116,27 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.athMenuList();
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
doValidate() {
|
||||||
|
|
||||||
// 필수 등록정보 체크
|
// 필수 등록정보 체크
|
||||||
@@ -327,11 +204,7 @@ export default {
|
|||||||
var rsArr = [];
|
var rsArr = [];
|
||||||
for (var i = 0; i < dataList.length; i++) {
|
for (var i = 0; i < dataList.length; i++) {
|
||||||
if (dataList[i].upperMenuNo != null || dataList[i].upperMenuNo != "") {
|
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) {
|
if (props.result) {
|
||||||
this.authUpdate();
|
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: {
|
computed: {
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,4 +61,8 @@ public interface SysMgtMapper {
|
|||||||
|
|
||||||
int notiListSelectCnt(NotiListReqDto notiListReqDto);
|
int notiListSelectCnt(NotiListReqDto notiListReqDto);
|
||||||
|
|
||||||
|
List<AuthMenuUpper> selectAuthMemuUpperList(); //권한 추가를 위한 메뉴 조회
|
||||||
|
|
||||||
|
List<AuthMenu> selectAuthMemuChdList(AuthMenuUpper authMenuUpper); //권한 추가를 위한 메뉴 조회
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -744,4 +744,37 @@ public class SysMgtService {
|
|||||||
return new SvcCheckListResDto(ApiResponseCode.SUCCESS,svcCheckListRes);
|
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<AuthMenuUpper> authMenuUpperList = new ArrayList<AuthMenuUpper>();
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<AuthMenuUpper> list;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<AuthMenu> list;
|
||||||
|
}
|
||||||
@@ -523,4 +523,31 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAuthMemuUpperList" resultType="kr.co.uplus.ez.api.sysMgt.dto.AuthMenuUpper">
|
||||||
|
/* sysMgt-mapper.xml(selectAuthMemuUpperList) */
|
||||||
|
SELECT
|
||||||
|
A.MENU_NM AS UPPER_NAME
|
||||||
|
, A.MENU_NO
|
||||||
|
, A.MENU_NM AS NAME
|
||||||
|
, A.MENU_LVL AS MENU_LV
|
||||||
|
FROM hubez_admin.EZ_ADM_MENU A
|
||||||
|
WHERE A.MENU_LVL = 1
|
||||||
|
AND A.USE_YN = 'Y'
|
||||||
|
ORDER BY A.MENU_ODRG ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAuthMemuChdList" parameterType="kr.co.uplus.ez.api.sysMgt.dto.AuthMenuUpper" resultType="kr.co.uplus.ez.api.sysMgt.dto.AuthMenu">
|
||||||
|
/* sysMgt-mapper.xml(selectAuthMemuChdList) */
|
||||||
|
SELECT
|
||||||
|
A.MENU_NM AS UPPER_NAME
|
||||||
|
, A.MENU_NO
|
||||||
|
, A.MENU_NM AS NAME
|
||||||
|
, A.MENU_LVL AS MENU_LV
|
||||||
|
FROM hubez_admin.EZ_ADM_MENU A
|
||||||
|
WHERE A.MENU_LVL = 2
|
||||||
|
AND A.USE_YN = 'Y'
|
||||||
|
AND A.PRNTS_MENU_NO = #{menuNo}
|
||||||
|
ORDER BY A.MENU_ODRG ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user