로그인 관련 / 메뉴 링크 추가 / 홈페이지 로그인 적용

This commit is contained in:
kimre
2022-07-08 14:07:33 +09:00
parent 3d05b45299
commit b2ff509948
73 changed files with 1251 additions and 668 deletions

View File

@@ -254,8 +254,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setPeriodDay(0);
this.gridParamSet();
},

View File

@@ -224,9 +224,7 @@ export default {
channelMgtApi,
commonModal,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
this.getExcelHeader();
},

View File

@@ -27,10 +27,10 @@
<tbody>
<tr v-for="(option, i) in list" v-bind:key="i">
<td>{{ option.lmtYm }}</td>
<td>{{ option.startAmount }}</td>
<td>{{ option.useAmount }}</td>
<td>{{ option.krrrAmount }}</td>
<td>{{ option.extshAmount }}</td>
<td>{{ option.startAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</td>
<td>{{ option.useAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</td>
<td>{{ option.krrrAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</td>
<td>{{ option.extshAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</td>
</tr>
<tr v-if="list.length === 0">
<td colspan="5">검색 결과가 없습니다.</td>

View File

@@ -19,14 +19,6 @@
<th>ID</th>
<td><input type="text" v-model.trim="userId" ref="_userId"></td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd1" v-model.trim="userPwd1"></td>
</tr>
<tr>
<th>비밀번호 확인</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd2" v-model.trim="userPwd2"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" v-model.trim="userNm" ref="_userNm"></td>
@@ -104,8 +96,6 @@ export default {
stat: "",
userId:"",
userNm:"",
userPwd1:"",
userPwd2:"",
code:"",
userTotalCnt:0,
}
@@ -133,7 +123,6 @@ export default {
async memberInsert(){
this.row.adminId = this.adminId;
this.row.userId = this.userId;
this.row.userPw = this.userPwd1;
this.row.userNm = this.userNm;
this.row.userEmail = this.email;
this.row.mdn = this.mdn;
@@ -185,43 +174,6 @@ export default {
// Object.assign(this.$data, this.$options.data());
// this.adminId = targetAdminId;
// },
doPwdValidate(){
if(this.isNull(this.userPwd2)){
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._pwd2.focus();
return false;
}
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._pwd2.focus();
return false;
}
const pwdLen = this.bytes(this.userPwd1);
if(!(pwdLen >= 8 && pwdLen <= 16)){
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._pwd1.focus();
return false;
}
const pEng = /[A-Za-z]/g; // 영문자
const pNum = /[0-9]/g; // 숫자
const pSpc = /[!@$%^&*]/g; // 특수문자
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._pwd1.focus();
return false;
}
return true;
},
doValidate(){
if(this.userTotalCnt >= 100){
// 사용자등록제한_최대100개까지
@@ -237,28 +189,6 @@ export default {
return false;
}
if(this.isNull(this.userPwd1)){
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호를 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.__pwd1.focus();
return false;
}
if(this.isNull(this.userPwd2)){
this.row.title = '청약고객관리';
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.__pwd2.focus();
return false;
}
if(!this.isNull(this.userPwd1)){
if(!this.doPwdValidate()){
return false;
}
}
if(this.isNull(this.userNm)){
this.row.title = '청약고객관리';
this.row.msg1 = '이름을 입력해 주세요.';

View File

@@ -7,7 +7,13 @@
</div>
<div class="table table_form">
<form autocomplete="off">
<form action=""
target="_blank"
method="post"
ref="form">
<input type="hidden" name="svcUserId" id="svcUserId" v-model="svcUserId"/>
<input type="hidden" name="ezSvcUserAuthKey" id="ezSvcUserAuthKey" v-model="ezSvcUserAuthKey"/>
</form>
<table>
<colgroup>
<col style="width:140px">
@@ -32,7 +38,7 @@
<th>ID</th>
<td colspan="2">
{{userId}}
<button type="button" class="button grey btn-a">로그인</button>
<button type="button" class="button grey btn-a" @click="homeLogin">로그인</button>
</td>
<th class="center">관리자명</th>
<td colspan="2">{{adminId}} / {{adminNm}}</td>
@@ -81,7 +87,7 @@
</tr>
</tbody>
</table>
</form>
</div>
<div>
@@ -149,7 +155,6 @@
</div>
</div>
</template>
<script>
@@ -188,7 +193,8 @@ export default {
email: '',
userTotalCnt:0,
selected: [],
svcUserId:'',
ezSvcUserAuthKey:''
}
},
props: {
@@ -206,8 +212,6 @@ export default {
},
created(){
this.memberDetail(this.$route.params.serviceId);
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
@@ -243,138 +247,145 @@ export default {
},
},
methods: {
valAlert(props){
valAlert(props){
//alert("호출됨!");
this.$refs.commmonModal.alertModalOpen(props);
},
valConfirm(props){
this.$refs.commmonModal.confirmModalOpen(props);
},
async memberDetail(serviceId){
this.row.userId = serviceId;
try {
const response = await custMgtApi.memberAdminDetail(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.formReset();
this.userNm = result.data.userNm;
this.userId = result.data.userId;
this.regDt = result.data.regDt;
this.userType = result.data.userType;
this.adminId = result.data.adminId;
this.adminNm = result.data.adminNm;
this.sendingLimit = result.data.sendingLimit;
this.lineType = result.data.lineType;
this.userStat = result.data.userStat;
this.lastLoginDt = result.data.lastLoginDt;
this.memo = result.data.memo;
this.mdn = result.data.mdn;
this.email = result.data.email;
this.list = result.data.list;
this.userTotalCnt = result.data.list.length;
console.log('userTotalCnt:'+result.data.list.length);
this.totalItems = result.data.paging.totalCnt;
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
},
async updateAdminInfoTotal(){
this.row.userId = this.adminId;
this.row.sendingLimit = this.sendingLimit;
this.row.lineType = this.lineType;
this.row.userStat = this.userStat;
this.row.memo = this.memo;
console.log(this.row);
try {
const response = await custMgtApi.updateAdminInfoTotal(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.row.title = '청약고객관리';
this.row.msg1 = '저장 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}else if(result != null && result.retCode == "4019"){
this.row.title = '청약고객관리';
this.row.msg1 = '발송한도금액이 정액한도금액보다 작습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}else {
valConfirm(props){
this.$refs.commmonModal.confirmModalOpen(props);
},
async memberDetail(serviceId){
this.row.userId = serviceId;
try {
const response = await custMgtApi.memberAdminDetail(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.formReset();
this.userNm = result.data.userNm;
this.userId = result.data.userId;
this.regDt = result.data.regDt;
this.userType = result.data.userType;
this.adminId = result.data.adminId;
this.adminNm = result.data.adminNm;
this.sendingLimit = result.data.sendingLimit.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
this.lineType = result.data.lineType;
this.userStat = result.data.userStat;
this.lastLoginDt = result.data.lastLoginDt;
this.memo = result.data.memo;
this.mdn = result.data.mdn;
this.email = result.data.email;
this.list = result.data.list;
this.userTotalCnt = result.data.list.length;
console.log('userTotalCnt:'+result.data.list.length);
this.totalItems = result.data.paging.totalCnt;
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
}
},
// 저장 후 부모창 호출.
toComplete(){
this.$router.push({ name: 'memberList', params: this.row });
},
excelPopOpen() {
console.log(this.adminId);
this.$refs.memberBulkRegPop.excelPopOpen(this.adminId, this.totalItems);
},
memberUpdatePopOpen(target) {
this.row.userId = target;
this.row.adminId = this.adminId;
this.$refs.memberModifyPop.memberUpdateModalOpen(this.row);
},
memberInsertPopOpen() {
this.row.adminId = this.adminId;
this.row.userTotalCnt = this.userTotalCnt;
this.$refs.memberRegPop.memberInsertModalOpen(this.row);
},
memoTotalPopOpen(){
this.row.adminId = this.adminId;
this.$refs.memoTatalListPop.memoTotalModalOpen(this.row);
},
async memberDelete(){
async updateAdminInfoTotal(){
this.row.userId = this.adminId;
this.row.sendingLimit = this.sendingLimit;
this.row.lineType = this.lineType;
this.row.userStat = this.userStat;
this.row.memo = this.memo;
console.log(this.row);
try {
const response = await custMgtApi.updateAdminInfoTotal(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
if(window.confirm('삭제 하시겠습니까?')){
var serviceId = this.adminId;
this.row.list = this.selected.map((row)=>({userId:row}));
this.row.adminId = this.adminId;
console.log(this.row);
try {
let response = await custMgtApi.deleteUser(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.row.title = '청약고객관리';
this.row.msg1 = '저장 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.memberDetail(serviceId);
}
} catch (error) {
console.log(error);
}else if(result != null && result.retCode == "4019"){
this.row.title = '청약고객관리';
this.row.msg1 = '발송한도금액이 정액한도금액보다 작습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}else {
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
}
},
setAuthData() {
// 권한 옵션.
api.commAuth().then(response => {
this.authType = response.data.data.list;
});
},
formReset(){
Object.assign(this.$data, this.$options.data());
},
}
},
// 저장 후 부모창 호출.
toComplete(){
this.$router.push({ name: 'memberList', params: this.row });
},
excelPopOpen() {
console.log(this.adminId);
this.$refs.memberBulkRegPop.excelPopOpen(this.adminId, this.totalItems);
},
memberUpdatePopOpen(target) {
this.row.userId = target;
this.row.adminId = this.adminId;
this.$refs.memberModifyPop.memberUpdateModalOpen(this.row);
},
memberInsertPopOpen() {
this.row.adminId = this.adminId;
this.row.userTotalCnt = this.userTotalCnt;
this.$refs.memberRegPop.memberInsertModalOpen(this.row);
},
memoTotalPopOpen(){
this.row.adminId = this.adminId;
this.$refs.memoTatalListPop.memoTotalModalOpen(this.row);
},
async memberDelete(){
if(window.confirm('삭제 하시겠습니까?')){
var serviceId = this.adminId;
this.row.list = this.selected.map((row)=>({userId:row}));
this.row.adminId = this.adminId;
console.log(this.row);
try {
let response = await custMgtApi.deleteUser(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.row.title = '청약고객관리';
this.row.msg1 = '저장 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.memberDetail(serviceId);
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
}
},
setAuthData() {
// 권한 옵션.
api.commAuth().then(response => {
this.authType = response.data.data.list;
});
},
formReset(){
Object.assign(this.$data, this.$options.data());
},
homeLogin(){
console.log(process.env.VUE_APP_HOME_PAGE_URL)
console.log(process.env.VUE_APP_AUTHKEY)
this.$refs.form.action = process.env.VUE_APP_HOME_PAGE_URL
this.svcUserId = this.userId
this.ezSvcUserAuthKey = process.env.VUE_APP_AUTHKEY
this.$refs.form.submit()
},
},
};

View File

@@ -7,7 +7,13 @@
</div>
<div class="table table_form">
<form autocomplete="off">
<form action=""
target="_blank"
method="post"
ref="form">
<input type="hidden" name="svcUserId" id="svcUserId" v-model="svcUserId"/>
<input type="hidden" name="ezSvcUserAuthKey" id="ezSvcUserAuthKey" v-model="ezSvcUserAuthKey"/>
</form>
<table>
<colgroup>
<col style="width:140px">
@@ -34,7 +40,7 @@
<th>ID</th>
<td colspan="2">
{{userId}}
<button type="button" class="button grey btn-a">로그인</button>
<button type="button" class="button grey btn-a" @click="homeLogin">로그인</button>
</td>
<th class="center">구분</th>
<td colspan="2">{{userType}}</td>
@@ -62,7 +68,6 @@
</tr>
</tbody>
</table>
</form>
</div>
<div class="pop-btn2">
@@ -112,6 +117,8 @@ export default {
mdn : '',
email: '',
stat:'',
svcUserId:'',
ezSvcUserAuthKey:''
}
},
@@ -127,8 +134,6 @@ export default {
},
created(){
this.memberDetail(this.$route.params.serviceId);
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
},
destroyed() {
@@ -266,6 +271,14 @@ export default {
//this.email = '';
this.$refs._email.focus();
},
homeLogin(){
console.log(process.env.VUE_APP_HOME_PAGE_URL)
console.log(process.env.VUE_APP_AUTHKEY)
this.$refs.form.action = process.env.VUE_APP_HOME_PAGE_URL
this.svcUserId = this.userId
this.ezSvcUserAuthKey = process.env.VUE_APP_AUTHKEY
this.$refs.form.submit()
},
},
};
</script>

View File

@@ -210,8 +210,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setCodeData();
this.setPeriodDay(0);
},
@@ -249,10 +247,24 @@ export default {
}
this.search(isKeep);
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
},
methods: {
search: function(isKeep) {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt'+this.perPageCnt);
//console.log(this.grid.params);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
@@ -302,9 +314,10 @@ export default {
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
this.startDate = moment(this.endDate)
.subtract(day, 'day')
.toDate();
//this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.closeDate('start');
this.closeDate('end');
@@ -345,18 +358,14 @@ export default {
return moment(date).format('YYYY-MM-DD');
}
},
initSetStartDate(){
let setYear = Number(moment(new Date()).format('YYYY'));
let initStartDate = new Date(setYear, 0, 1);
this.startDate = initStartDate;
console.log(moment(this.startDate).format('YYYY-MM-DD'));
},
},
beforeRouteLeave(to, from, next) {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
params: this.grid.params
});
// 라우트 하기전 실행
next();
},
};
</script>

View File

@@ -239,8 +239,6 @@ export default {
commonModal,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
console.log(this.$route.params.serviceId);
this.subsDetail(this.$route.params.serviceId);
// checkVaildBizNum

View File

@@ -219,13 +219,25 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setCodeData();
this.getExcelHeader();
this.setPeriodDay(0);
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {
page: 1,
perPage: 50,
params: {
searchType1: '',
searchType2: '',
searchType3: '',
searchText1: '',
startDt: '',
endDt: ''
}
});
},
mounted() {
@@ -260,8 +272,10 @@ export default {
},
methods: {
search: function(isKeep) {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt'+this.perPageCnt);
//console.log(this.grid.params);
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
@@ -351,9 +365,10 @@ export default {
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
this.startDate = moment(this.endDate)
.subtract(day, 'day')
.toDate();
// this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.closeDate('start');
this.closeDate('end');
@@ -394,6 +409,12 @@ export default {
return moment(date).format('YYYY-MM-DD');
}
},
initSetStartDate(){
let setYear = Number(moment(new Date()).format('YYYY'));
let initStartDate = new Date(setYear, 0, 1);
this.startDate = initStartDate;
console.log(moment(this.startDate).format('YYYY-MM-DD'));
},
},
};
</script>

View File

@@ -3,6 +3,8 @@ const state = {
isLogin: false,
isErrorPage: false,
isAuthChk: false,
userId:null,
userNm:null,
pwd: null
};
@@ -11,6 +13,8 @@ const getters = {
isLogin: state => state.isLogin,
isErrorPage: state => state.isErrorPage,
isAuthChk: state => state.isAuthChk,
userId: state => state.userId,
userNm: state => state.userNm,
getPwd: state => state.pwd,
};
@@ -38,6 +42,12 @@ const mutations = {
savePwd: (state, value) => {
state.pwd = value;
},
userId: (state, value) => {
state.userId = value;
},
userNm: (state, value) => {
state.userNm = value;
}
};
const actions = {

View File

@@ -65,7 +65,8 @@ export default {
confirmNum: '',
userId: '',
isAuthNum: false,
isLogin: true,
isLogin: false,
isAuth: false,
pwd: '',
text: '',
number: '',
@@ -79,15 +80,15 @@ export default {
,commonModal
},
created() {
if(!!tokenSvc.getToken()){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.$router.push({ path: '/' });
}else{
if(!this.getLogin){
this.$router.push({ path: '/login' });
}
}
// if(!!tokenSvc.getToken()){
// this.$store.commit("login/isLogin", true);
// this.$store.commit("login/isAuthChk", true);
// this.$router.push({ path: '/' });
// }else{
// if(!this.getLogin){
// this.$router.push({ path: '/login' });
// }
// }
},
mounted() {
if (localStorage.hubwebUserId) {
@@ -116,6 +117,13 @@ export default {
if(data != null && data != ''){
this.pwd = data;
}
},
getAuthChk(data){
if (data != null && data != '' && data == true) {
this.isAuth = true;
} else {
this.isAuth = false;
}
}
},
destroyed() {
@@ -216,11 +224,13 @@ export default {
try {
const response = await api.confirmNum(params)
const rsp = response.data;
console.log("RESULT_CODE : "+rsp.retCode);
console.log("LOGIN ßRESUßLT_CODE : "+rsp.retCode);
console.log(rsp);
if(rsp.retCode == '0000'){
vm.$store.commit("login/isLogin", true);
//var nextUrl = rsp.data.nextUrl;
//vm.$router.push({ path: nextUrl});
vm.$store.commit("login/isAuthChk", true);
vm.$store.commit("login/userId", rsp.data.userId)
vm.$store.commit("login/userNm", rsp.data.userNm)
vm.$router.push({ path: '/'});
}else if (rsp.retCode == '4008'){
this.row.title = '휴대폰번호 확인';

View File

@@ -1,5 +1,4 @@
<template>
<div class="wrap bg-wrap">
<div class="login-box adm-login">
<div class="wbox">
<div class="logo"></div>
@@ -23,10 +22,9 @@
</div>
</div>
</div>
<login-popup ref="LoginPopup"> </login-popup>
<common-modal ref="commmonModal"></common-modal>
</div>
<common-modal ref="commonModal"></common-modal>
</div>
</template>
<script>
@@ -92,13 +90,13 @@ export default {
if (!this.userId){
this.row.title = '로그인 실패';
this.row.msg1 = '아이디,비밀번호를 확인해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
return false;
}
if (!this.userPwd){
this.row.title = '비밀번호 오류';
this.row.msg1 = '비밀번호를 확인해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
return false;
}
@@ -128,28 +126,29 @@ export default {
this.row.title = '로그인 실패';
this.row.msg1 = '등록되지 않은 아이디입니다.';
this.row.msg2 = '아이디를 다시 확인하세요';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
} else if(rsp.retCode == '4004') { // ID/PWD 불일치
this.row.title = '비밀번호 오류';
this.row.msg1 = '비밀번호를 확인해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
} else if(rsp.retCode == '4005') { // ID/PWD 불일치 횟수초과로 계정 잠김 4005
this.row.title = '로그인 실패';
this.row.msg1 = '로그인 5회 실패하였습니다.';
this.row.msg2 = '비밀번호 초기화 후 비밀번호를 변경해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
} else if(rsp.retCode == '4006') {
// msg = '비밀번호를 변경하신지 90일이 지났습니다.\n비밀번호 변경 화면으로 이동합니다.';
this.row.title = '로그인 실패';
this.row.msg1 = '비밀번호를 변경하지 않은지 90일이';
this.row.msg2 = '지났습니다. 비밀번호를 변경하여';
this.row.msg3 = '이용 부탁드립니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
vm.$router.push({ name: 'updatePassword',params: {userId : oprtrId}});
this.$refs.commonModal.alertModalOpen(this.row);
} else if(rsp.retCode == '4007') {
this.row.title = '로그인 실패';
this.row.msg1 = '아이디 상태를 확인해 주세요.';
this.row.msg2 = '(사용중인 상태만 로그인 가능합니다.)';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
} else {
vm.$store.commit("login/isLogin", false);
return;

View File

@@ -26,8 +26,8 @@
</div>
</div>
<common-modal ref="commonModal"></common-modal>
<login-popup ref="LoginPopup"> </login-popup>
<common-modal ref="commmonModal"></common-modal>
</div>
@@ -44,6 +44,7 @@ export default {
return {
errors: [],
userId: '',
row:{},
}
},
created() {
@@ -61,7 +62,7 @@ export default {
if (!this.userId) {
this.row.title = '아이디 오류';
this.row.msg1 = '아이디를 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// this.errors.push('아이디를 입력해 주세요.');
}
@@ -89,7 +90,7 @@ export default {
this.row.title = '비밀번호 초기화';
this.row.msg1 = '해당 아이디에 저장되어 있는 핸드폰번호로';
this.row.msg2 = '비밀번호 초기화 문자가 발송되었습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// vm.ModalOpen('modal12');
//vm.$router.push({ path : 'view/login'});
@@ -97,7 +98,7 @@ export default {
this.row.title = '비밀번호 초기화';
this.row.msg1 = '등록되지 않은 아이디입니다.';
this.row.msg2 = '아이디를 다시 확인하세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// vm.ModalOpen('modal13');
}
// document.getElementsByClassName('modal12')[0].getElementsByClassName('btn-pcolor')[0].addEventListener('click',() => {
@@ -106,7 +107,7 @@ export default {
//alert("실패 하였습니다.");
this.row.title = '비밀번호 초기화';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
return false;
}
}

View File

@@ -18,8 +18,8 @@
</form>
</div>
</div>
<common-modal ref="commonModal"></common-modal>
<login-popup ref="LoginPopup"> </login-popup>
<common-modal ref="commmonModal"></common-modal>
</div>
@@ -43,6 +43,7 @@ export default {
newPw: '',
newPw2: '',
passwordValidFlag: true,
row: {},
};
},
@@ -114,14 +115,14 @@ export default {
if(lodash.isNil(this.newPw)){
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
this.$refs._newPw2.focus();
return false;
}
if(!lodash.isEqual(this.newPw, this.newPw2)){
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
this.$refs._newPw2.focus();
return false;
}
@@ -129,7 +130,7 @@ export default {
if(!(pwdLen >= 8 && pwdLen <= 16)){
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
this.$refs._newPw2.focus();
return false;
}
@@ -139,7 +140,7 @@ export default {
if(!(pEng.test(this.newPw) && pNum.test(this.newPw) && pSpc.test(this.newPw))) {
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
this.$refs._newPw2.focus();
return;
}
@@ -168,27 +169,27 @@ export default {
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호가 정상적으로 변경되었습니다.';
this.row.msg2 = '변경된 비밀번호로 다시 로그인 해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// if(vm.ModalOpen('modal16')){
vm.$router.push({ path: '/login' });
// }
} else if(rsp.retCode == '4016') {
this.row.title = '비밀번호 변경';
this.row.msg1 = '비밀번호를 확인해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// vm.ModalOpen('modal14')
} else if(rsp.retCode == '4017') {
this.row.title = '비밀번호 오류';
this.row.msg1 = '비밀번호를 사용할 수 없습니다.';
this.row.msg2 = '비밀번호는 영문/숫자/특수기호를 혼합하여';
this.row.msg3 = '8~16자리로 설정해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
// vm.ModalOpen('modal15')
} else if(rsp.retCode == '4003') {
this.row.title = '아이디 오류';
this.row.msg1 = '등록되지 않은 아이디입니다.';
this.row.msg1 = '아이디를 다시 확인하세요';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.commonModal.alertModalOpen(this.row);
}
});

View File

@@ -285,6 +285,10 @@ const utils_mixin = {
var strRegExp = '^[A-Za-z0-9_\.\-]*$';
return this.onlyCommon(strRegExp, e, len, isEventCall);
},
onlyHen: function (e, len, isEventCall) {
var strRegExp = '^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|]*$';
return this.onlyCommon(strRegExp, e, len, isEventCall);
},
onlyIp: function (e, len, isEventCall) {
var strRegExp = '^[0-9,.*]*$';
return this.onlyCommon(strRegExp, e, len, isEventCall);

View File

@@ -227,8 +227,6 @@ export default {
customGrid: customGrid
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.getLiveSendSttus();
this.timer = setInterval(this.getLiveSendSttus, this.selectedKey * 1000 * 60)

View File

@@ -28,7 +28,7 @@
<div class="select_box id">
<label for="right" class="label">요청채널</label>
<select name="" id="" v-model="grid.params.searchType1" @keyup.enter="search">
<option value="ALL" selected>전체</option>
<option value="" selected>전체</option>
<option value="SMS">SMS</option>
<option value="LMS">LMS</option>
<option value="MMS">MMS</option>
@@ -39,15 +39,15 @@
<div class="group">
<div class="input_box essential">
<label for="right" class="label"><span>*</span>수신번호</label>
<input class="search-box" type="number" id="search" placeholder="- 자 제외 숫자만 입력" v-model="grid.params.searchText1" v-on:keyup="onlyNum" @input="onlyNum" minlength="10" maxlength="11">
<input class="search-box" type="number" id="search" placeholder="- 자 제외 숫자만 입력" v-model="grid.params.searchText1" v-on:keyup="onlyNum" @input="onlyNum" minlength="10" maxlength="11" ref="_searchText2">
</div>
<div class="input_box essential">
<label for="right" class="label"><span>*</span>발신번호</label>
<input class="search-box" type="number" id="search" placeholder="- 자 제외 숫자만 입력" v-model="grid.params.searchText2" v-on:keyup="onlyNum" @input="onlyNum" minlength="10" maxlength="11">
<input class="search-box" type="number" id="search" placeholder="- 자 제외 숫자만 입력" v-model="grid.params.searchText2" v-on:keyup="onlyNum" @input="onlyNum" minlength="10" maxlength="11" ref="_searchText2">
</div>
<div class="input_box">
<label for="right" class="label">고객사명</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText3" >
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText3" ref="_searchText3">
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
@@ -184,7 +184,7 @@ export default {
],
noDataStr: '검색 결과가 없습니다.',
params: {
searchType1: 'ALL',
searchType1: '',
searchText1: '',
searchText2: '',
searchText3: '',
@@ -199,9 +199,7 @@ export default {
commonModal,
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
// this.setCodeData();
// this.getExcelHeader();
this.setPeriodDay(0);
@@ -211,6 +209,8 @@ export default {
},
mounted() {
this.grid.params.searchType1 = 'ALL';
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
@@ -240,12 +240,7 @@ export default {
},
methods: {
search: function(isKeep) {
// 발송일자 필수입력체크
// 수신번호 필수입력체크
// 발신번호 필수입력체크
this.doValidate();
this.grid.params.sentDate = moment(this.startDate).format('YYYYMMDD');
this.grid.params.reqChennel = this.grid.params.searchType1;
this.grid.params.phone = this.grid.params.searchText1;
@@ -316,6 +311,34 @@ export default {
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log("getCondition : "+ getCondition.perPage);
},
doValidate(){
// 발송일자 필수입력체크
if(this.isNull(this.startDate)) {
this.row.title = '발송내역';
this.row.msg1 = '발송일을 선택해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
// 수신번호 필수입력체크
if(this.isNull(this.grid.params.searchText1)) {
this.row.title = '발송내역';
this.row.msg1 = '수신번호를 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._searchText1.focus();
return false;
}
// 발신번호 필수입력체크
if(this.isNull(this.grid.params.searchText2)) {
this.row.title = '발송내역';
this.row.msg1 = '수신번호를 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._searchText2.focus();
return false;
}
},
}
};
</script>

View File

@@ -20,13 +20,18 @@
<th>발송타입</th>
<td v-if="code === null || code === ''">
<div v:class="select_box">
<select name="" id="right" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
<option v-for="(option, i) in tpType"
:value="sndblckTpCd"
v-bind:key="i"
>
<select name="" id="right" v-model.trim="sndblckTpCd" ref="sndblckTpCd" @keyup.enter="search">
<option v-for="(option, i) in tpType" :value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
<!--
<option v-for="(option, i) in tpType"
:v-bind:value="option.grpCd"
v-bind:key="i"
:selected="code === option.grpCd"
>
{{ option.codeNm }}
</option> -->
<!-- <option value="">문자</option>
<option value="">RCS</option> -->
</select>
@@ -36,9 +41,9 @@
<tr>
<th>차단사유</th>
<td>
<div>
<div>
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
<option v-for="(option, i) in rsnType" :value="blckRsnCd" v-bind:key="i">
<option v-for="(option, i) in rsnType" :value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option>
</select>
@@ -47,7 +52,7 @@
</tr>
<tr>
<th>메모</th>
<td class="sender"><textarea class="memo_text" v-model.trim="meno" ref="meno"></textarea></td>
<td class="sender"><textarea class="memo_text" v-model.trim="meno" ref="meno" @input="memoLimitByte()"></textarea></td>
</tr>
</tbody>
</table>
@@ -80,11 +85,12 @@ export default {
rsnType: [],
tpType: [],
blckSndrno: '',
sndblckTpCd: '',
blckRsnCd: '',
sndblckTpCd: '01',
blckRsnCd: '01',
meno: '',
code:"",
LINE_FEED : 10, // '\n',
maxByte: 2000,
// params: {
// 'blckSndrno' : ''
// ,'sndblckTpCd' : '01'
@@ -94,13 +100,16 @@ export default {
}
},
create(){
// this.setCodeDate();
this.setCodeDate();
this.formReset();
},
components: {
commonModal,
ValidationConfirmPopup
},
mounted(){
//this.sndblckTpCd = '01'
},
components: {
commonModal,
ValidationConfirmPopup
},
methods :{
//모달 띄우기
ModalOpen(){
@@ -124,12 +133,19 @@ export default {
},
// 저장 후 부모창 호출
toComplete(){z
toComplete(){
this.$parent.$refs.table.reloadData();
this.ModalClose();
},
async doInsert(){
// if(this.doValidate() && this.regisConfirm()){
this.row.blckSndrno = this.blckSndrno;
this.row.sndblckTpCd = this.sndblckTpCd;
this.row.blckRsnCd = this.blckRsnCd;
this.row.meno = this.meno;
this.regId = 'admin';
console.log(this.row);
try {
const response = await riskMgtApi.insertIntrcp(this.row);
const result = response.data;
@@ -137,8 +153,8 @@ export default {
this.row.title = '발신번호 차단';
this.row.msg1 = '성공 하였습니다.';
this.$parent.alertInsert(this.row);
this.toComplete();
}
this.toComplete();
} catch(err) {
console.log(err);
this.row.title = '발신번호 차단';
@@ -188,7 +204,45 @@ export default {
if(this.doValidate()){
this.$refs.ValidationConfirmPopup.confirmInsertOpen();
}
},
},
// 바이트길이 구하기
getByteLength: function (decimal) {
return (decimal >> 7) || (this.LINE_FEED === decimal) ? 2 : 1
},
getByte: function (str) {
return str
.split('')
.map((s) => s.charCodeAt(0))
.reduce((prev, unicodeDecimalValue) => prev + this.getByteLength(unicodeDecimalValue), 0)
},
getLimitedByteText: function (inputText, maxByte) {
const characters = inputText.split('')
let validText = ''
let totalByte = 0
for (let i = 0; i < characters.length; i += 1) {
const character = characters[i]
const decimal = character.charCodeAt(0)
const byte = this.getByteLength(decimal) // 글자 한 개가 몇 바이트 길이인지 구해주기
// 현재까지의 바이트 길이와 더해 최대 바이트 길이를 넘지 않으면
if (totalByte + byte <= maxByte) {
totalByte += byte // 바이트 길이 값을 더해 현재까지의 총 바이트 길이 값을 구함
validText += character // 글자를 더해 현재까지의 총 문자열 값을 구함
} else { // 최대 바이트 길이를 넘으면
break // for 루프 종료
}
}
return validText
},
memoLimitByte() {
this.meno = this.getLimitedByteText(this.meno, this.maxByte);
}, //END 바이트길이 구하기
},
}

View File

@@ -14,7 +14,7 @@
<tr>
<th>차단문구</th>
<td class="input_add">
<input v-model="word" ref="_word">
<input v-model="word" ref="_word" maxlength="50">
<button type="button" class="button white add" @click="doAdd"></button>
</td>
</tr>
@@ -43,9 +43,8 @@
<div>
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
<option v-for="(option, i) in rsnType"
:value="blckRsnCd"
v-bind:key="i"
:selected="blckRsnCd === option.code">
:value="option.code"
v-bind:key="i">
{{ option.codeNm }}
</option>
</select>
@@ -54,7 +53,7 @@
</tr>
<tr>
<th>메모</th>
<td class="sender"><textarea class="memo_text" v-model.trim="memo" ref="memo"></textarea></td>
<td class="sender"><textarea class="memo_text" v-model.trim="memo" ref="memo" ></textarea></td>
</tr>
</tbody>
@@ -94,9 +93,9 @@ export default {
word: '', // 차단문구
blckSndrno:'',
sndblckTpCd:'',
blckRsnCd: '', // 차단사유
blckRsnCd: '01', // 차단사유
blckYn:'',
blckContCd:'', //차단 조건
blckContCd:'01', //차단 조건
chgDt:'',
regId: '',
regDt: '',
@@ -216,9 +215,10 @@ export default {
if(this.doValidate()){
this.$refs.ValidationConfirmPopup.msgConfirmInsertOpen();
}
},
}
}
},
}
</script>

View File

@@ -43,14 +43,14 @@
</tr>
<tr>
<th>메모</th>
<td><input type="text" value="고객사요청" v-model.trim="meno" ref="meno"></td>
<td><input type="text" value="고객사요청" v-model.trim="meno" ref="meno" @input="memoLimitByte()"></td>
</tr>
<tr>
<th>차단여부</th>
<td>
<input type="radio" name="state" value="해제" id="popup_radio1" checked="">
<input type="radio" name="state" value="N" id="popup_radio1" v-model="blckYn">
<label for="popup_radio1">해제</label>
<input type="radio" name="state" value="차단" id="popup_radio2">
<input type="radio" name="state" value="Y" id="popup_radio2" v-model="blckYn">
<label for="popup_radio2">차단</label>
</td>
</tr>
@@ -87,11 +87,17 @@ export default {
blckRsnCd:'',
regId: '',
meno: '',
LINE_FEED : 10, // '\n',
maxByte: 2000,
}
},
components: {
ValidationConfirmPopup
},
created(){
this.setCodeDate();
// this.formReset();
},
methods :{
// 모달 띄우기
async IntrcpDetailModalOpen(props){
@@ -161,6 +167,7 @@ export default {
try {
const response = await riskMgtApi.updateIntrcp(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.row.title = '발신번호 차단';
this.row.msg1 = '수정 하였습니다.';
@@ -209,6 +216,48 @@ export default {
this.$refs.ValidationConfirmPopup.confirmDeleteOpen();
}
},
// formReset(){
// var type= this.insertType;
// Object.assign(this.$data, this.$options.data());
// this.insertType = type;
// },
// 바이트길이 구하기
getByteLength: function (decimal) {
return (decimal >> 7) || (this.LINE_FEED === decimal) ? 2 : 1
},
getByte: function (str) {
return str
.split('')
.map((s) => s.charCodeAt(0))
.reduce((prev, unicodeDecimalValue) => prev + this.getByteLength(unicodeDecimalValue), 0)
},
getLimitedByteText: function (inputText, maxByte) {
const characters = inputText.split('')
let validText = ''
let totalByte = 0
for (let i = 0; i < characters.length; i += 1) {
const character = characters[i]
const decimal = character.charCodeAt(0)
const byte = this.getByteLength(decimal) // 글자 한 개가 몇 바이트 길이인지 구해주기
// 현재까지의 바이트 길이와 더해 최대 바이트 길이를 넘지 않으면
if (totalByte + byte <= maxByte) {
totalByte += byte // 바이트 길이 값을 더해 현재까지의 총 바이트 길이 값을 구함
validText += character // 글자를 더해 현재까지의 총 문자열 값을 구함
} else { // 최대 바이트 길이를 넘으면
break // for 루프 종료
}
}
return validText
},
memoLimitByte() {
this.meno = this.getLimitedByteText(this.meno, this.maxByte);
}, //END 바이트길이 구하기

View File

@@ -14,7 +14,7 @@
<tr>
<th>차단문구</th>
<td class="input_add">
<input v-model="word">
<input v-model="word" ref="_word">
<button type="button" class="button white add" @click="doAdd"></button>
</td>
</tr>
@@ -31,10 +31,10 @@
<tr>
<th>조건</th>
<td>
<input type="radio" name="state" value="01" id="popup_radio3" v-model="blckContCd" >
<label for="popup_radio3">AND</label>
<input type="radio" name="state" value="02" id="popup_radio4" v-model="blckContCd">
<label for="popup_radio4">OR</label>
<input type="radio" name="state02" value="01" id="popup_radio5" v-model="blckContCd" >
<label for="popup_radio5">AND</label>
<input type="radio" name="state02" value="02" id="popup_radio6" v-model="blckContCd">
<label for="popup_radio6">OR</label>
</td>
</tr>
<tr>
@@ -59,9 +59,9 @@
<tr>
<th>차단여부</th>
<td>
<input type="radio" name="state01" value="AND" id="popup_radio7">
<input type="radio" name="state01" value="N" id="popup_radio7" v-model="blckYn">
<label for="popup_radio7">해제</label>
<input type="radio" name="state01" value="OR" id="popup_radio8">
<input type="radio" name="state01" value="Y" id="popup_radio8" v-model="blckYn">
<label for="popup_radio8">차단</label>
</td>
</tr>
@@ -83,7 +83,9 @@
import api from '@/service/api';
import riskMgtApi from '../service/riskMgtApi';
import ValidationConfirmPopup from './ValidationConfirmPopup.vue';
import { utils_mixin, chkPattern2 } from '../service/mixins';
export default {
mixins: [utils_mixin, chkPattern2],
data(){
return{
@@ -140,6 +142,7 @@ export default {
try {
const response = await riskMgtApi.msgIntrcpDetail(this.row);
const result = response.data;
console.log('----------------');
console.log(result);
if (result != null && result.retCode == "0000") {
this.blckContCd = result.data.blckContCd;
@@ -154,6 +157,7 @@ export default {
} catch(err) {
alert("실패 하였습니다.");
}
console.log(this.blckContCd);
console.log('-----------')
console.log(this.row)
var dimmed = document.getElementsByClassName('modal58');
@@ -191,12 +195,19 @@ export default {
},
//신규등록 팝업에서 문구 추가 버튼
doAdd: function() {
if(this.isNull(this.word)){
this.row.title = '메세지 차단';
this.row.msg1 = '문구를 입력해주세요.';
this.$parent.msgAlertModalOpen(this.row);
this.$refs._word.focus();
return false;
}
if(this.msgBlckwordList.length < 10){
this.msgBlckwordList.push({
//seqNo: '',
word: this.word
});
this.word = '';
}
},
//신규등록 팝업에서 문구 삭제 버튼
@@ -239,14 +250,14 @@ export default {
const result = response.data;
if (result != null && result.retCode == "0000") {
this.row.title = '메세지 차단';
this.row.msg1 = '수정 하였습니다.';
this.$parent.msgAlertModalOpen(this.row);
this.row.msg1 = '수정 하였습니다.';
this.$parent.msgAlertModalOpen(this.row);
}
this.toComplete();
} catch(err) {
this.row.title = '메세지 차단';
this.row.msg1 = '실패 하였습니다.';
this.$parent.msgAlertModalOpen(this.row);
this.row.title = '메세지 차단';
this.row.msg1 = '실패 하였습니다.';
this.$parent.msgAlertModalOpen(this.row);
}
// }
},

View File

@@ -52,11 +52,11 @@
<div class="group">
<div class="input_box">
<label for="right" class="label">발신번호</label>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.sndrno">
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.sndrno" v-on:keyup="onlyNum" @input="onlyNum" maxlength="12">
</div>
<div class="input_box">
<label for="right" class="label">수신번호</label>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvno">
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvno" v-on:keyup="onlyNum" @input="onlyNum" maxlength="12">
</div>
<div class="select_box">
<label for="right" class="label">상세검색</label>
@@ -74,12 +74,10 @@
</div>
</form>
<div class="info">
<div class="count"> <span> {{ totalItems }} </span>
<div class="count"> <span>{{ totalItems }}</span>
<div class="select_box NumberSe">
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
</select>
</div>
</div>
@@ -108,6 +106,7 @@
import customGrid from '@/components/CustomGrid';
import moment from 'moment';
import commonModal from "@/components/modal/commonModal";
import { utils_mixin, chkPattern2 } from '../service/mixins';
//import api from '../service/api';
class CustomATagRenderer {
@@ -133,22 +132,29 @@ class CustomATagRenderer {
}
export default {
name: 'intrcpList',
mixins: [utils_mixin, chkPattern2],
data() {
return {
totalItems: 0,
perPageCnt: 50,
// 달력 데이터
ko: vdp_translation_ko.js,
periodDay: 7,
sDateDiv: 'day',
startDate: new Date(),
endDate: new Date(),
options: [
{ text: '20', value: 20},
{ text: '50', value: 50},
{ text: '100', value: 100}
],
statType: [],
userType: [],
row:{},
grid: {
url: '/api/v1/bo/riskMgt/web/intrcpList',
perPage: 20,
pagePerRows: 20,
pagination: true,
isCheckbox: false,
initialRequest: false,
@@ -168,20 +174,20 @@ export default {
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'blckTpCd', header: '차단구분', align: 'center', width: 160 },
{ name: 'userId', header: '발송ID', align: 'center', width: 100},
{ name: 'sndrno', header: '발신번호', align: 'center', width: 130},
{ name: 'custNm', header: '고객사명', align: 'center', width: 130, renderer: {
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
{ name: 'blckTpCd', header: '차단구분', align: 'center', width: '11%' },
{ name: 'userId', header: '발송ID', align: 'center', width: '11%'},
{ name: 'sndrno', header: '발신번호', align: 'center', width: '11%'},
{ name: 'custNm', header: '고객사명', align: 'center', width: '11%', renderer: {
type: CustomATagRenderer
, options: {
callback: this.custDetail,
}
}},
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 90},
{ name: 'rcvno', header: '수신번호', align: 'center', width: 90 },
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 90 },
{ name: 'blckDt', header: '발송일자', align: 'center', width: 90 },
{ name: 'bizrno', header: '사업자번호', align: 'center', width: '11%'},
{ name: 'rcvno', header: '수신번호', align: 'center', width: '11%' },
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: '7%' },
{ name: 'blckDt', header: '발송일자', align: 'center', width: '11%' },
],
noDataStr: '검색 결과가 없습니다.',
@@ -220,8 +226,6 @@ export default {
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
this.setPeriodDay(0);
},
@@ -241,6 +245,11 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.blckDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.blckRsnCd = this.grid.params.searchType1;
this.grid.params.blckTpCd = this.grid.params.searchText1;
this.grid.params.sndrno = this.grid.params.searchText2;
this.grid.params.custNm = this.grid.params.searchText3;
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -11,7 +11,7 @@
<div class="group">
<div class="input_box">
<label for="regId" class="label">등록자</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search"/>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search" v-on:keyup="onlyEng" @input="onlyEng" maxlength="20" />
</div>
<div class="select_box">
<label for="blckRsnCd" class="label">차단사유</label>
@@ -93,6 +93,7 @@ import api from '@/service/api.js';
import intrcpDetailPopup from '../components/IntrcpDetailPopup';
import insertIntrcpPop from '../components/InsertIntrcpPop';
import commonModal from "@/components/modal/commonModal";
import { utils_mixin, chkPattern2 } from '../service/mixins';
//import api from '../service/api';
class CustomATagRenderer {
@@ -112,6 +113,7 @@ class CustomATagRenderer {
addEvent(selEl) {
selEl.addEventListener("click", () => {
const { callback } = this.props["cgrido" + this.props.colName].options;
console.log(this.props);
callback(this.props);
});
}
@@ -119,6 +121,7 @@ class CustomATagRenderer {
export default {
name: 'intrcpList',
mixins: [utils_mixin, chkPattern2],
data() {
return {
totalItems: 0,
@@ -149,21 +152,25 @@ export default {
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 50 },
{ name: 'blcksndrno', header: '발신번호', align: 'center', width: 160,
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
{ name: 'blcksndrno', header: '발신번호', align: 'center', width: '25%',
renderer: { type: CustomATagRenderer, options: { callback: this.inDetailPop} } },
{ name: 'blckYn', header: '차단여부', align: 'center', width: 100},
{ name: 'sndblckTpCd', header: '발송타입', align: 'center', width: 100},
{ name: 'lastChgDt', header: '최근수정일', align: 'center', width: 100},
{ name: 'blckRsnCd', header: '차단사유', width: 100, cls: 'td_line' },
{ name: 'regId', header: '등록자', width: 150 }
{ name: 'blckYn', header: '차단여부', align: 'center', width: '15%'},
{ name: 'sndblckTpCd', header: '발송타입', align: 'center', width: '15%', hidden: true},
{ name: 'sndblckTpNm', header: '발송타입', align: 'center', width: '15%'},
{ name: 'lastChgDt', header: '최근수정일', align: 'center', width: '15%'},
{ name: 'blckRsnCd', header: '차단사유', width: '15%', cls: 'td_line', hidden: true },
{ name: 'blckRsnNm', header: '차단사유', width: '15%', cls: 'td_line' },
{ name: 'regId', header: '등록자', width: '15%' }
],
noDataStr: '검색 결과가 없습니다.',
params: {
regId: '',
blckRsnCd: '',
blckRsnNm: '',
blckYn: '',
sndblckTpCd: '',
sndblckTpNm: '',
blcksndrno: ''
},
excelHeader: []
@@ -180,8 +187,6 @@ export default {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setCodeData();
// this.formReset();
},
@@ -229,11 +234,17 @@ export default {
api.commCode({'grpCd' : 'SVCUSER_TP_CD'}).then(response => {
this.userType = response.data.data.list;
});
//발송타입
api.commCode({'grpCd' : 'SNDBLCK_TP_CD'}).then(response => {
this.tpType = response.data.data.list;
});
},
ModalOpen: function(){
this.$refs.insertIntrcpPop.ModalOpen();
},
inDetailPop(props) {
console.log('======');
console.log(props);
this.$refs.intrcpDetailPopup.IntrcpDetailModalOpen(props);
},
// formReset(){

View File

@@ -10,7 +10,7 @@
<div class="search_wrap">
<div class="input_box">
<label for="regId" class="label">등록자</label>
<input class="search-box" type="text" id="regId" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search"/>
<input class="search-box" type="text" id="regId" placeholder="검색어 입력" v-model="grid.params.regId" v-on:keydown.enter.prevent="search" v-on:keyup="onlyEng" @input="onlyEng" maxlength="20"/>
</div>
<div class="select_box">
<label for="blckRsnCd" class="label">차단사유</label>
@@ -70,7 +70,7 @@ import customGrid from '@/components/CustomGrid';
import InsertMsgPop from '../components/InsertMsgPop';
import IntrcpMsgDetail from '../components/IntrcpMsgDetail';
import commonModal from "@/components/modal/commonModal";
undefined
import { utils_mixin, chkPattern2 } from '../service/mixins';
//import api from '../service/api';
class CustomATagRenderer {
constructor(props) {
@@ -95,6 +95,7 @@ class CustomATagRenderer {
}
export default {
name: 'intrcpList',
mixins: [utils_mixin, chkPattern2],
data() {
return {
totalItems: 0,
@@ -127,21 +128,22 @@ export default {
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'seqNo', header: '일련번호', align: 'center', width: 60, hidden: true},
{ name: 'word', header: '차단메시지', align: 'center', width: 160,
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
{ name: 'seqNo', header: '일련번호', align: 'center', width: '19%', hidden: true},
{ name: 'word', header: '차단메시지', align: 'center', width: '19%',
renderer: {type: CustomATagRenderer, options: { callback: this.msgDetailPop}} },
{ name: 'blckYn', header: '차단여부', align: 'center', width: 130},
{ name: 'lastChgDt', header: '마지막 수정일', align: 'center', width: 130},
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 130},
{ name: 'regId', header: '등록자', width: 90, cls: 'td_line' }
{ name: 'blckYn', header: '차단여부', align: 'center', width: '19%'},
{ name: 'lastChgDt', header: '마지막 수정일', align: 'center', width: '19%'},
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: '19%'},
{ name: 'regId', header: '등록자', width: '19%', cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
params: {
regId: '',
blckRsnCd: '',
word: '',
seqNo: ''
seqNo: '',
blckYn: '',
},
excelHeader: []
}
@@ -157,8 +159,6 @@ export default {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {

View File

@@ -11,15 +11,15 @@
<div class="search_wrap">
<div class="input_box">
<label for="search" class="label">고객사</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.custNm"/>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.custNm" v-on:keyup="onlyName" @input="onlyName" maxlength="20"/>
</div>
<div class="input_box">
<label for="search" class="label">인증코드</label>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.authcd080"/>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.authcd080" v-on:keyup="onlyNum" @input="onlyNum" maxlength="6"/>
</div>
<div class="input_box">
<label for="right" class="label">수신번호</label>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvblckno"/>
<label for="search" class="label">수신번호</label>
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvblckno" v-on:keyup="onlyNum" @input="onlyNum" maxlength="11"/>
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
@@ -57,6 +57,7 @@
<script>
import customGrid from '@/components/CustomGrid';
import commonModal from "@/components/modal/commonModal";
import { utils_mixin, chkPattern2 } from '../service/mixins';
//import api from '../service/api';
class CustomATagRenderer {
constructor(props) {
@@ -79,8 +80,28 @@ class CustomATagRenderer {
});
}
}
class customBRegNo {
constructor(props) {
this.props = props;
const el = document.createElement('td');
var bregNo = String(props.colValue);
el.innerText= bregNo;
if(bregNo.length == 10){
el.innerText= bregNo.substring(0,3)+'-'+bregNo.substring(3,5)+'-'+bregNo.substring(5,10)
}
this.el = el;
}
getElement() {
return this.el;
}
addEvent(selEl) {
}
}
export default {
name: 'intrcpList',
mixins: [utils_mixin, chkPattern2],
data() {
return {
totalItems: 0,
@@ -112,18 +133,18 @@ export default {
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 60 },
{ name: 'custNm', header: '고객사', align: 'center', width: 160, renderer: {
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
{ name: 'custNm', header: '고객사', align: 'center', width: '15%', renderer: {
type: CustomATagRenderer
, options: {
callback: this.memberDetail,
}
} },
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 100},
{ name: 'authcd080', header: '인증코드', align: 'center', width: 130},
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: 130},
{ name: 'regDt', header: '등록일', align: 'center', width: 130},
{ name: 'regTpCd', header: '등록구분', width: 90, cls: 'td_line' }
{ name: 'bizrno', header: '사업자번호', align: 'center', width: '15%', renderer: {type: customBRegNo}},
{ name: 'authcd080', header: '인증코드', align: 'center', width: '15%'},
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: '15%'},
{ name: 'regDt', header: '등록일', align: 'center', width: '20%'},
{ name: 'regTpCd', header: '등록구분', width: '15%', cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
params: {
@@ -143,8 +164,6 @@ export default {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {

View File

@@ -171,8 +171,6 @@ export default {
ApprDetailPop
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
},
destroyed() {
this.$store.commit('searchcondition/updateSearchCondition', {

View File

@@ -198,9 +198,7 @@ export default {
NumberDetailPop,
commonModal,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
destroyed() {

View File

@@ -149,8 +149,6 @@ export default {
});
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/istAuthChk", true);
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},

View File

@@ -33,10 +33,8 @@
<div class="info">
<div class="count"> <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</span>
<div class="select_box NumberSe">
<select name="" id="perPage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
</select>
</div>
@@ -102,9 +100,14 @@ export default {
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 50,
options: [
{ text: '20', value: 20},
{ text: '50', value: 50},
{ text: '100', value: 100}
],
grid: {
url: '/api/v1/bo/servMgt/rejectRecvList',
perPage: 50,
pagePerRows: 20,
pagination: true,
isCheckbox: false,
initialRequest: false,
@@ -146,9 +149,7 @@ export default {
customGrid: customGrid,
commonModal
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
destroyed() {
@@ -198,7 +199,11 @@ export default {
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
//console.log("getCondition : "+ getCondition.perPage);
}
},
changePerPage: function(){ // 페이지당 조회할 개수
this.grid.pagePerRows = this.perPageCnt;
this.search(true);
},
},
beforeRouteLeave(to, from, next) {

View File

@@ -239,8 +239,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setPeriodDay(0);
},

View File

@@ -247,8 +247,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setPeriodDay(0);
},

View File

@@ -142,8 +142,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
// this.startDt = moment().format('YYYY-MM-DD');
// this.endDt = moment().format('YYYY-MM-DD');
this.setPeriodDay(0);

View File

@@ -151,8 +151,6 @@ export default {
vuejsDatepicker,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.setPeriodDay(0);
this.getMonthList();
},

View File

@@ -149,9 +149,7 @@ export default {
commonModal,
AdminDetailPop,
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
this.setCodeData();
//let cont = document.querySelector(".wrap");
//cont.classList.add("main_wrap");

View File

@@ -50,16 +50,29 @@
</td>
<td class="check">
<p>유치현황관리</p>
<input type="checkbox" id="right_check2" value="2002" v-model="checkedAuthMenu">
<!-- <input type="checkbox" id="right_check2" value="" v-model="checkedAuthMenu">
<div class="label_group">
<label for="right_check2"></label>
<label for="right_check2">유치채널 현황</label>
<label for="right_check2">유치현황관리</label>
</div>
<input type="checkbox" id="right_check3" value="2003" v-model="checkedAuthMenu">
<div class="label_group">
<label for="right_check3"></label>
<label for="right_check3">유치관리자 현황</label>
</div> -->
<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>
<br/><br/>
<input type="radio" name="userStat" value="2003" id="channel_radio2" v-model="channelAuth">
<label for="channel_radio2">유치현황관리</label>
</td>
</tr>
</div>
</td>
<td class="check">
<p>서비스관리</p>
@@ -196,15 +209,14 @@ export default {
authCd: "",
authDesc: "",
stat: "01", // 등록화면 상태 Default 값 지정(사용:01)
defaultAuthMenu:["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"],
defaultAuthMenu:["2001","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"],
checkedAuthMenu:[],
channelAuth: "",
};
},
components: {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
//this.setCodeData();
},
destroyed() {
@@ -253,6 +265,10 @@ export default {
var reqAuthMenuArr = this.checkedAuthMenu;
var listArr = [];
var dataMap = {};
if(this.channelAuth !== ''){
dataMap.menuNo = this.channelAuth;
listArr.push(dataMap);
}
for(var i = 0; i< reqAuthMenuArr.length; i++){
dataMap = {};
dataMap.menuNo = reqAuthMenuArr[i];
@@ -295,7 +311,16 @@ export default {
return this.defaultAuthMenu.length === this.checkedAuthMenu.length;
},
set: function (e) {
this.checkedAuthMenu = e ? this.defaultAuthMenu : [];
//this.checkedAuthMenu = e ? this.defaultAuthMenu : [];
if(e){
this.checkedAuthMenu = this.defaultAuthMenu;
if(this.channelAuth === ''){
this.channelAuth = '2002';
}
} else {
this.checkedAuthMenu = [];
this.channelAuth = '';
}
}
}
}

View File

@@ -38,7 +38,13 @@
<td>{{ option.authNm }}</td>
<td>{{ option.authStat }}</td>
<td>{{ option.regDt }}</td>
<td class="two_btn_group">
<!-- <td v-if="option.authCd !== '1001' && option.authCd !== '1002'" class="two_btn_group">
<button type="button" class="button grey" @click="updateAuth(option.authCd)">수정</button>
<button type="button" class="button white delete" @click="deleteAuth(option.authCd)">삭제</button>
</td> -->
<td v-if="option.authCd === '1001' || option.authCd === '1002'" class="two_btn_group">
</td>
<td v-else class="two_btn_group">
<button type="button" class="button grey" @click="updateAuth(option.authCd)">수정</button>
<button type="button" class="button white delete" @click="deleteAuth(option.authCd)">삭제</button>
</td>
@@ -78,8 +84,6 @@ export default {
components: {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
this.getAuthList();
},
destroyed() {

View File

@@ -50,7 +50,7 @@
</td>
<td class="check">
<p>유치현황관리</p>
<input type="checkbox" id="right_check2" value="2002" v-model="checkedAuthMenu">
<!-- <input type="checkbox" id="right_check2" value="2002" v-model="checkedAuthMenu">
<div class="label_group">
<label for="right_check2"></label>
<label for="right_check2">유치채널 현황</label>
@@ -59,6 +59,17 @@
<div class="label_group">
<label for="right_check3"></label>
<label for="right_check3">유치관리자 현황</label>
</div> -->
<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>
<br/><br/>
<input type="radio" name="userStat" value="2003" id="channel_radio2" v-model="channelAuth">
<label for="channel_radio2">유치현황관리</label>
</td>
</tr>
</div>
</td>
<td class="check">
@@ -196,8 +207,9 @@ export default {
authCd: "",
authDesc: "",
stat: "",
defaultAuthMenu:["2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"],
defaultAuthMenu:["2001","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"],
checkedAuthMenu:[],
channelAuth: "",
};
},
props: {
@@ -208,9 +220,7 @@ export default {
},
components: {
},
created(){
this.$store.commit("login/isLogin", true);
this.$store.commit("login/isAuthChk", true);
created(){
//this.setCodeData();
this.authDetail();
},
@@ -274,7 +284,12 @@ export default {
var rsArr = [];
for(var i=0; i< dataList.length; i++){
if(dataList[i].upperMenuNo != null || dataList[i].upperMenuNo != ""){
this.checkedAuthMenu.push(dataList[i].menuNo);
if(dataList[i].menuNo === '2002' || dataList[i].menuNo === '2003'){
this.channelAuth = dataList[i].menuNo;
} else {
this.checkedAuthMenu.push(dataList[i].menuNo);
}
}
}
@@ -291,6 +306,10 @@ export default {
var reqAuthMenuArr = this.checkedAuthMenu;
var listArr = [];
var dataMap = {};
if(this.channelAuth !== ''){
dataMap.menuNo = this.channelAuth;
listArr.push(dataMap);
}
for(var i = 0; i< reqAuthMenuArr.length; i++){
dataMap = {};
dataMap.menuNo = reqAuthMenuArr[i];
@@ -329,7 +348,16 @@ export default {
return this.defaultAuthMenu.length === this.checkedAuthMenu.length;
},
set: function (e) {
this.checkedAuthMenu = e ? this.defaultAuthMenu : [];
//this.checkedAuthMenu = e ? this.defaultAuthMenu : [];
if(e){
this.checkedAuthMenu = this.defaultAuthMenu;
if(this.channelAuth === ''){
this.channelAuth = '2002';
}
} else {
this.checkedAuthMenu = [];
this.channelAuth = '';
}
}
}
}