mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2026-01-28 03:34:30 +09:00
리스크관리 / 유치채널현황 관리 / 채널관리 추가
This commit is contained in:
@@ -539,58 +539,95 @@ header .user_wrap .user_info .logout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* input cal + search-box*/
|
/* input cal + search-box*/
|
||||||
.w35{width:35%;}
|
/*.w35{width:35%;}*/
|
||||||
.contents .table.table_form.m50{margin-bottom: 50px;}
|
/*.contents .table.table_form.m50{margin-bottom: 50px;}*/
|
||||||
|
|
||||||
.contents .input_box.cal{
|
/*.contents .input_box.cal{*/
|
||||||
display: inline-block;
|
/* display: inline-block;*/
|
||||||
width: 27.34%;
|
/* width: 27.34%;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal label {
|
/*.contents .input_box.cal label {*/
|
||||||
display: block;
|
/* display: block;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal .txt{
|
/*.contents .input_box.cal .txt{*/
|
||||||
display: inline-block;
|
/* display: inline-block;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal p{
|
/*.contents .input_box.cal p{*/
|
||||||
display: inline-flex;
|
/* display: inline-flex;*/
|
||||||
margin-left: 10px;
|
/* margin-left: 10px;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal input {
|
/*.contents .input_box.cal input {*/
|
||||||
display: inline-block;
|
/* display: inline-block;*/
|
||||||
width: 48%;
|
/* width: 48%;*/
|
||||||
|
/* float: left;*/
|
||||||
|
/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
/*.contents .input_box.cal input {*/
|
||||||
|
/* display: inline-block;*/
|
||||||
|
/* width: 48%;*/
|
||||||
|
/* float: left;*/
|
||||||
|
/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
/*.contents .input_box.cal span {*/
|
||||||
|
/* display: inline-block;*/
|
||||||
|
/* width: 48%;*/
|
||||||
|
/* float: left;*/
|
||||||
|
/* background: #fff url(../images/icon-calender.png) no-repeat right 6% center;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
.custom_input.icon_date input[type="text"] {
|
||||||
|
width: 52%;
|
||||||
float: left;
|
float: left;
|
||||||
background: #fff url(../images/icon-calender.png) no-repeat right 6% center;
|
background: #fff url(../images/icon-calender.png) no-repeat right 6% center;
|
||||||
}
|
}
|
||||||
.contents .input_box.cal input + input{
|
.custom_input.icon_date input[type="text"]:focus {
|
||||||
|
border-color: #cccccc;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
color: #898989;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents .input_box.cal span + input{
|
||||||
margin-left: 5%;
|
margin-left: 5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contents .input_box.cal.one{
|
|
||||||
width: 13.67%;
|
.vdp-datepicker__calendar header {
|
||||||
|
display: block;
|
||||||
|
line-height: 40px;
|
||||||
|
height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contents .input_box.cal.one input{
|
/*.contents .input_box.cal input + input{*/
|
||||||
width: 100%;
|
/* margin-left: 5%;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal.one + .btn-a{
|
/*.contents .input_box.cal.one{*/
|
||||||
margin-right: 10px;
|
/* width: 13.67%;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box.cal .term{
|
/*.contents .input_box.cal.one input{*/
|
||||||
display: flex;
|
/* width: 100%;*/
|
||||||
justify-content: space-around;
|
/*}*/
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contents .input_box.cal .term input:nth-child(1){
|
/*.contents .input_box.cal.one + .btn-a{*/
|
||||||
margin-right: 4%;
|
/* margin-right: 10px;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
|
/*.contents .input_box.cal .term{*/
|
||||||
|
/* display: flex;*/
|
||||||
|
/* justify-content: space-around;*/
|
||||||
|
/* align-items: center;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
|
/*.contents .input_box.cal .term input:nth-child(1){*/
|
||||||
|
/* margin-right: 4%;*/
|
||||||
|
/*}*/
|
||||||
|
|
||||||
.contents .input_box .search-box {
|
.contents .input_box .search-box {
|
||||||
background: #fff url(../images/icon-search.png) no-repeat 6% center/14px auto;
|
background: #fff url(../images/icon-search.png) no-repeat 6% center/14px auto;
|
||||||
@@ -1003,12 +1040,12 @@ header .user_wrap .user_info .logout {
|
|||||||
position: relative; font-size: 14px;
|
position: relative; font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contents .table table td a {
|
.contents .table table td a, .popup.popup_form table td a {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contents .table table td a:hover {
|
.contents .table table td a:hover, .popup.popup_form table td a:hover {
|
||||||
color: #eb008b;
|
color: #eb008b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1156,6 +1193,15 @@ header .user_wrap .user_info .logout {
|
|||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.contents .table.table_form .check.system .label_group{
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contents .table.table_form .check.system .label_group label{
|
||||||
|
padding-left: 30px;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
.popup .pop-cont-detail {
|
.popup .pop-cont-detail {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
@@ -1163,6 +1209,7 @@ header .user_wrap .user_info .logout {
|
|||||||
background-color: #f5f6f8;
|
background-color: #f5f6f8;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-top: 13px;
|
margin-top: 13px;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup .pop-cont-detail li {
|
.popup .pop-cont-detail li {
|
||||||
@@ -1190,8 +1237,9 @@ header .user_wrap .user_info .logout {
|
|||||||
width: 525px;
|
width: 525px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.popup_form .info .count {
|
.popup.popup_form .info {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.popup_form .pop-head {
|
.popup.popup_form .pop-head {
|
||||||
@@ -1232,6 +1280,10 @@ header .user_wrap .user_info .logout {
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.popup.popup_form .table-c tr:hover{
|
||||||
|
background-color: #fafaff;
|
||||||
|
}
|
||||||
|
|
||||||
.popup.popup_form table tr:last-child {
|
.popup.popup_form table tr:last-child {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
@@ -1348,15 +1400,7 @@ header .user_wrap .user_info .logout {
|
|||||||
border: none;
|
border: none;
|
||||||
min-width: 80px;
|
min-width: 80px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
font-weight: 500;
|
||||||
|
|
||||||
.popup .button.grey {
|
|
||||||
background-color: #35354f;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup .button.grey:hover {
|
|
||||||
background-color: #0a0b24;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*customer popup*/
|
/*customer popup*/
|
||||||
@@ -1448,6 +1492,7 @@ header .user_wrap .user_info .logout {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: normal;
|
justify-content: normal;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.popup_form .popup-btn2.bulk button:nth-child(1)::before{
|
.popup.popup_form .popup-btn2.bulk button:nth-child(1)::before{
|
||||||
@@ -1511,7 +1556,7 @@ header .user_wrap .user_info .logout {
|
|||||||
margin: 0 0 0 5px;
|
margin: 0 0 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.popup_form.register{
|
.popup.popup_form.w700{
|
||||||
width:700px;
|
width:700px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1548,10 +1593,10 @@ header .user_wrap .user_info .logout {
|
|||||||
background: url(../images/icon-add-b.png) no-repeat center center;
|
background: url(../images/icon-add-b.png) no-repeat center center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.popup_form.register .input_add div:nth-child(2){
|
/*.popup.popup_form.register .input_add div:nth-child(2){*/
|
||||||
width: 89%;
|
/* width: 89%;*/
|
||||||
padding-top: 5px;
|
/* padding-top: 5px;*/
|
||||||
}
|
/*}*/
|
||||||
|
|
||||||
.popup .button.white{
|
.popup .button.white{
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
@@ -1684,6 +1729,11 @@ header .user_wrap .user_info .logout {
|
|||||||
.popup.popup_form table .input_add input{
|
.popup.popup_form table .input_add input{
|
||||||
width: 85%;
|
width: 85%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.popup .input_search input + .button.btn-p2color{
|
||||||
|
width:25% !important;
|
||||||
|
}
|
||||||
|
|
||||||
.essential{
|
.essential{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
|||||||
@@ -619,9 +619,9 @@ export default {
|
|||||||
for (var i = first; i <= last; i++) {
|
for (var i = first; i <= last; i++) {
|
||||||
let actCls = '';
|
let actCls = '';
|
||||||
if (i == this.currentIndex) {
|
if (i == this.currentIndex) {
|
||||||
actCls = 'v:class="active"';
|
actCls = 'class="active"';
|
||||||
}
|
}
|
||||||
pData += '<li><a href="javascript:void(0);" @click="movePage(' + i + ')" ' + actCls + '>' + i + '</a></li>';
|
pData += '<li ' + actCls + '><a href="javascript:void(0);" @click="movePage(' + i + ')" >' + i + '</a></li>';
|
||||||
}
|
}
|
||||||
pData += '</ul>'
|
pData += '</ul>'
|
||||||
pData += '<div class="arrow-btn">'
|
pData += '<div class="arrow-btn">'
|
||||||
|
|||||||
@@ -1,30 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 버튼 -->
|
<!-- 버튼 -->
|
||||||
<div class="wrap bg-wrap">
|
<div>
|
||||||
|
|
||||||
|
|
||||||
<!-- <div class="popup-btn-wrap">
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal01');">로그인실패: 확인</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal02');">로그인실패: 5회</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal03');">로그인실패: 상태</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal04');">보안 알림</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal05');">중복 로그인</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal06');">휴대폰번호 확인</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal07');">인증번호: 발송</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal08');">인증번호: 입력</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal09');">인증실패: 인증번호</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal10');">인증실패: 시간초과</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal11');">인증실패: 5회</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal12');">비밀번호 초기화 문자 발송</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal13');">아이디 오류</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal14');">비밀번호 오류</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal15');">비밀번호 패턴 오류</button>
|
|
||||||
<button class="trigger" onclick="ModalOpen('modal16');">비밀번호 정상 변경</button>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
<!-- s: 팝업 -->
|
<!-- s: 팝업 -->
|
||||||
<div class="dimmed" @click="ModalClose();"></div>
|
<div class="dimmed" @click="ModalClose();"></div>
|
||||||
@@ -44,6 +21,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- 로그인실패: 5회 -->
|
<!-- 로그인실패: 5회 -->
|
||||||
<div class="popup modal02">
|
<div class="popup modal02">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -300,9 +278,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
||||||
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
||||||
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
||||||
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
128
frontend/src/components/modal/commonModal.vue
Normal file
128
frontend/src/components/modal/commonModal.vue
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<div class="dimmed modal01" @click="alertModalCancel();"></div>
|
||||||
|
<div class="popup-wrap modal01">
|
||||||
|
<!-- 로그인실패: 확인 -->
|
||||||
|
<div class="popup modal01">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">{{title}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="pop-cont">
|
||||||
|
<p>{{ msg1 }}</p>
|
||||||
|
<p v-if="msg2 !== ''">{{ msg2 }}</p>
|
||||||
|
<p v-if="msg3 !== ''">{{ msg3 }}</p>
|
||||||
|
<p v-if="msg4 !== ''">{{ msg4 }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="popup-btn1">
|
||||||
|
<button class="btn-pcolor" @click="alertModalClose();">확인</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dimmed confirm" @click="confirmModalCancel();"></div>
|
||||||
|
<div class="popup-wrap confirm">
|
||||||
|
<!-- 수정 확인 -->
|
||||||
|
<div class="popup confirm">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">{{title}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="pop-cont">
|
||||||
|
<p>{{ msg1 }}</p>
|
||||||
|
<p v-if="msg2 !== ''">{{ msg2 }}</p>
|
||||||
|
<p v-if="msg3 !== ''">{{ msg3 }}</p>
|
||||||
|
<p v-if="msg4 !== ''">{{ msg4 }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="pop-btn2">
|
||||||
|
<button class="btn-pcolor" @click="confirmModalClose();">확인</button>
|
||||||
|
<button class="btn-default" @click="confirmModalCancel();">취소</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "confirm",
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
row:{},
|
||||||
|
title:'',
|
||||||
|
msg1: '',
|
||||||
|
msg2: '',
|
||||||
|
msg3: '',
|
||||||
|
msg4: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods :{
|
||||||
|
alertModalOpen(props){
|
||||||
|
console.log(props)
|
||||||
|
var dimmed = document.getElementsByClassName('modal01');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'block';
|
||||||
|
}
|
||||||
|
this.title = props.title;
|
||||||
|
this.msg1 = props.msg1;
|
||||||
|
this.msg2 = props.msg2;
|
||||||
|
this.msg3 = props.msg3;
|
||||||
|
this.msg4 = props.msg4;
|
||||||
|
},
|
||||||
|
alertModalClose(){
|
||||||
|
var dimmed = document.getElementsByClassName('modal01');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
alertModalCancel(){
|
||||||
|
var dimmed = document.getElementsByClassName('modal01');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 모달 오픈
|
||||||
|
confirmModalOpen(props){
|
||||||
|
var dimmed = document.getElementsByClassName('confirm');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.title = props.title;
|
||||||
|
this.msg1 = props.msg1;
|
||||||
|
this.msg2 = props.msg2;
|
||||||
|
this.msg3 = props.msg3;
|
||||||
|
this.msg4 = props.msg4;
|
||||||
|
},
|
||||||
|
// 모달 끄기(ok)
|
||||||
|
confirmModalClose(){
|
||||||
|
var dimmed = document.getElementsByClassName('confirm');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.row.result = true;
|
||||||
|
// 부모 함수 호출.
|
||||||
|
this.$parent.confirmCalbackFnc(this.row);
|
||||||
|
},
|
||||||
|
// 모달 끄기(취소)
|
||||||
|
confirmModalCancel(){
|
||||||
|
var dimmed = document.getElementsByClassName('confirm');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.row.result = false;
|
||||||
|
// 부모 함수 호출.
|
||||||
|
this.$parent.confirmCalbackFnc(this.row);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
||||||
|
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
||||||
|
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
||||||
|
</style>
|
||||||
@@ -1,10 +1,19 @@
|
|||||||
import ChannelList from '../views/ChannelList'
|
import ChannelList from '../views/ChannelList'
|
||||||
|
import ChannelDetail from '../views/ChannelDetail'
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{
|
{
|
||||||
path: '/attractMgt/channelList',
|
path: '/attractMgt/channelList',
|
||||||
component: ChannelList,
|
component: ChannelList,
|
||||||
name: 'channelList',
|
name: 'channelList',
|
||||||
|
props: true,
|
||||||
|
meta: { public: true }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/attractMgt/channelDetail',
|
||||||
|
component: ChannelDetail,
|
||||||
|
name: 'channelDetail',
|
||||||
|
props: true,
|
||||||
meta: { public: true }
|
meta: { public: true }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
41
frontend/src/modules/attractMgt/service/channelMgtApi.js
Normal file
41
frontend/src/modules/attractMgt/service/channelMgtApi.js
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import httpClient from '@/common/http-client';
|
||||||
|
import channelExcelHeader from "@/modules/attractMgt/service/mock/channelExcelHeader.json";
|
||||||
|
|
||||||
|
|
||||||
|
// 공통 코드.
|
||||||
|
const getCommCode = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 유치채널현황 엑셀다운로드 목록 조회
|
||||||
|
const channelListExcel = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/attractMgt/channelListExcel', params);
|
||||||
|
}
|
||||||
|
|
||||||
|
// channelDetail
|
||||||
|
const channelDetail = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/attractMgt/channelDetail', params, { withCredentials: false});
|
||||||
|
}
|
||||||
|
|
||||||
|
const getExcelHeader = category => {
|
||||||
|
// 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다.
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
let header = [];
|
||||||
|
switch (category) {
|
||||||
|
case 'CHANNEL':
|
||||||
|
header = channelExcelHeader.header;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
header = '';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
resolve(header);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
getCommCode,
|
||||||
|
getExcelHeader,
|
||||||
|
channelListExcel,
|
||||||
|
channelDetail,
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"header": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"key": "no",
|
||||||
|
"name": "NO"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "subsDt",
|
||||||
|
"name": "가입일"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "norgNm",
|
||||||
|
"name": "유치업체"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "loginId",
|
||||||
|
"name": "마당ID(이름)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "custNm",
|
||||||
|
"name": "고객사명"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bizrno",
|
||||||
|
"name": "사업자등록번호"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "userNm",
|
||||||
|
"name": "이름"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "subsSttusCd",
|
||||||
|
"name": "상태"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "custTyCd",
|
||||||
|
"name": "구분"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sndCnt",
|
||||||
|
"name": "전체발송건수"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
173
frontend/src/modules/attractMgt/views/ChannelDetail.vue
Normal file
173
frontend/src/modules/attractMgt/views/ChannelDetail.vue
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
<template>
|
||||||
|
<div class="contents">
|
||||||
|
<div class="contents_wrap">
|
||||||
|
<div class="top_wrap">
|
||||||
|
<h3 class="title">유치현황관리</h3>
|
||||||
|
<p class="breadcrumb">유치현황관리 > 유치고객 상세정보</p>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="title">상세 정보</div>
|
||||||
|
</div>
|
||||||
|
<div class="table table_form m50">
|
||||||
|
<form autocomplete="off">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:140px">
|
||||||
|
<col style="width:auto">
|
||||||
|
<col style="width:auto">
|
||||||
|
<col style="width:140px">
|
||||||
|
<col style="width:auto">
|
||||||
|
<col style="width:auto">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr class="tr_input w75">
|
||||||
|
<th>가입일</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="2022-03-05"></td>
|
||||||
|
<th>상태</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="사용"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr_input w75">
|
||||||
|
<th>고객사</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="홍길동"></td>
|
||||||
|
<th>요금제</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="요금제1"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr_input w75">
|
||||||
|
<th>대표자</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="홍길동"></td>
|
||||||
|
<th>사용자 구분</th>
|
||||||
|
<td colspan="2"><input type="text" disabled value="법인사업자"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr_input">
|
||||||
|
<th>사업자등록번호</th>
|
||||||
|
<td colspan="2">
|
||||||
|
<div class="input-bnumber">
|
||||||
|
<input type="text" disabled="" value="110">
|
||||||
|
<input type="text" disabled="" value="16">
|
||||||
|
<input type="text" disabled="" value="123456">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>법인등록번호</th>
|
||||||
|
<td colspan="2">
|
||||||
|
<div class="input-double">
|
||||||
|
<input type="text" disabled="" value="123456">
|
||||||
|
<input type="text" disabled="" value="1234567">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr_input">
|
||||||
|
<th>사업장 주소</th>
|
||||||
|
<td colspan="5">
|
||||||
|
<div class="input-address">
|
||||||
|
<input type="text" disabled="" value="12345">
|
||||||
|
<input type="text" disabled="" value="서울 마포구 월드컵북로 416">
|
||||||
|
<input type="text" disabled="" value="유플러스 상암사옥">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="tr_input">
|
||||||
|
<th>유치자명</th>
|
||||||
|
<td colspan="2">
|
||||||
|
<div class="input-double">
|
||||||
|
<input type="text" disabled value="Uplus02">
|
||||||
|
<input type="text" disabled value="김철수">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th>관리자명</th>
|
||||||
|
<td colspan="2">
|
||||||
|
<div class="input-double">
|
||||||
|
<input type="text" disabled value="Uplus02">
|
||||||
|
<input type="text" disabled value="김철수">
|
||||||
|
<button type="button" class="button grey btn-a">변경</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="count">발송건수
|
||||||
|
<p>( 최근 3년 사용 전월까지 확인 가능하며, 청구금액은 유큐브에서 확인 가능합니다. )</p>
|
||||||
|
</div>
|
||||||
|
<div class="button_group">
|
||||||
|
<button type="button" class="button blue download">엑셀 다운로드</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="table calculate">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col width="16%">
|
||||||
|
<col width="16%">
|
||||||
|
<col width="16%">
|
||||||
|
<col width="16%">
|
||||||
|
<col width="16%">
|
||||||
|
<col width="20%">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">날짜</th>
|
||||||
|
<th colspan="5">채널별 발송 건수</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="total">
|
||||||
|
<th>전체</th>
|
||||||
|
<th>SMS</th>
|
||||||
|
<th>LMS</th>
|
||||||
|
<th>MMS</th>
|
||||||
|
<th>알림톡</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>합계</td>
|
||||||
|
<td>360,000</td>
|
||||||
|
<td>360,000</td>
|
||||||
|
<td>360,000</td>
|
||||||
|
<td>360,000</td>
|
||||||
|
<td>1,440,000</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pop-btn2">
|
||||||
|
<button class="btn-pcolor" type="button">저장</button>
|
||||||
|
<button class="btn-default" type="button">취소</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import api from '@/service/api';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "subsDetail",
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
row: {},
|
||||||
|
|
||||||
|
props: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
// serviceId: {
|
||||||
|
// type: String,
|
||||||
|
// default: "",
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
this.$store.commit("login/isLogin", true);
|
||||||
|
this.$store.commit("login/isAuthChk", true);
|
||||||
|
},
|
||||||
|
methods :{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
@@ -2,106 +2,391 @@
|
|||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">유치채널 목록조회</h3>
|
<h3 class="title">유치채널현황</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 권한 관리</p>
|
<p class="breadcrumb">유치현황관리 > 유치채널현황</p>
|
||||||
</div>
|
</div>
|
||||||
|
<form autocomplete="off" class="search_form">
|
||||||
|
<div class="search_wrap">
|
||||||
|
<div class="group">
|
||||||
|
<div class="input_box cal">
|
||||||
|
<label for="right" class="label">조회기간</label>
|
||||||
|
<div class="term">
|
||||||
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledSDate"
|
||||||
|
v-model="startDate"
|
||||||
|
@selected="selectedStartDate(0)"
|
||||||
|
@closed="closeDate('start')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>~
|
||||||
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledEDate"
|
||||||
|
v-model="endDate"
|
||||||
|
@selected="selectedEndDate(0)"
|
||||||
|
@closed="closeDate('end')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="select_box id">
|
||||||
|
<label for="subsSttusCd" class="label">상태</label>
|
||||||
|
<select name="subsSttusCd" id="subsSttusCd" v-model="grid.params.subsSttusCd">
|
||||||
|
<option value="" selected>전체</option>
|
||||||
|
<option v-for="(option, i) in subsSttusCdList" v-bind:value="option.code" v-bind:key="i">
|
||||||
|
{{ option.codeNm }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="select_box">
|
||||||
|
<label for="custTyCd" class="label">구분</label>
|
||||||
|
<select name="custTyCd" id="custTyCd" v-model="grid.params.custTyCd">
|
||||||
|
<option value="" selected>전체</option>
|
||||||
|
<option v-for="(option, i) in custTyCdList" v-bind:value="option.code" v-bind:key="i">
|
||||||
|
{{ option.codeNm }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="input_box">
|
||||||
|
<label for="right" class="label">유치자 마당ID</label>
|
||||||
|
<input class="" type="text" id="" placeholder="검색어 입력" v-model="grid.params.loginId"/>
|
||||||
|
</div>
|
||||||
|
<div class="input_box">
|
||||||
|
<label for="right" class="label">유치업체</label>
|
||||||
|
<input class="" type="text" id="" placeholder="검색어 입력" v-model="grid.params.norgNm"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="group">
|
||||||
|
<div class="select_box">
|
||||||
|
<label for="right" class="label">상세검색</label>
|
||||||
|
<select name="" id="" v-model="grid.params.searchType">
|
||||||
|
<option value="01">고객사명</option>
|
||||||
|
<option value="02">이름</option>
|
||||||
|
<option value="03">사업자등록번호(생년월일)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="input_box">
|
||||||
|
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText"/>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>4</span>건</div>
|
<div class="count">총 <span>{{ totalItems }}</span>건
|
||||||
|
<div class="select_box NumberSe">
|
||||||
|
<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>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue add" onclick="location.href='system_right_add.html';">권한 추가</button>
|
<button type="button" class="button blue download" @click="excelDown();">엑셀 다운로드</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<table>
|
<custom-grid
|
||||||
<colgroup>
|
ref="table"
|
||||||
<col width="10%"/>
|
:totalItems="'totalItems'"
|
||||||
<col width="20%"/>
|
:url="grid.url"
|
||||||
<col width="20%"/>
|
:pagePerRows="grid.pagePerRows"
|
||||||
<col width="15%"/>
|
:initialRequest="grid.initialRequest"
|
||||||
<col width="20%"/>
|
:pagination="grid.pagination"
|
||||||
<col width="15%"/>
|
:isCheckbox="grid.isCheckbox"
|
||||||
</colgroup>
|
:columns="grid.columns"
|
||||||
<thead>
|
:noDataStr="grid.noDataStr"
|
||||||
<tr>
|
:addCls="grid.addCls"
|
||||||
<th>NO</th>
|
:header="grid.headder"
|
||||||
<th>코드</th>
|
></custom-grid>
|
||||||
<th>권한명</th>
|
|
||||||
<th>상태</th>
|
|
||||||
<th>등록일</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>4</td>
|
|
||||||
<td>Admin_01</td>
|
|
||||||
<td>슈퍼관리자</td>
|
|
||||||
<td>사용</td>
|
|
||||||
<td>2022-03-10</td>
|
|
||||||
<td class="two_btn_group">
|
|
||||||
<button type="button" class="button grey" onclick="location.href='system_right_modify.html';">수정</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>3</td>
|
|
||||||
<td>Admin_01</td>
|
|
||||||
<td>슈퍼관리자</td>
|
|
||||||
<td>사용</td>
|
|
||||||
<td>2022-03-10</td>
|
|
||||||
<td class="two_btn_group">
|
|
||||||
<button type="button" class="button grey">수정</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>2</td>
|
|
||||||
<td>Admin_01</td>
|
|
||||||
<td>슈퍼관리자</td>
|
|
||||||
<td>사용</td>
|
|
||||||
<td>2022-03-10</td>
|
|
||||||
<td class="two_btn_group">
|
|
||||||
<button type="button" class="button grey">수정</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>1</td>
|
|
||||||
<td>Admin_01</td>
|
|
||||||
<td>슈퍼관리자</td>
|
|
||||||
<td>사용</td>
|
|
||||||
<td>2022-03-10</td>
|
|
||||||
<td class="two_btn_group">
|
|
||||||
<button type="button" class="button grey">수정</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
import customGrid from '@/components/CustomGrid';
|
||||||
|
import moment from 'moment';
|
||||||
|
import api from '@/service/api.js';
|
||||||
|
import channelMgtApi from "../service/channelMgtApi.js";
|
||||||
|
import xlsx from '@/common/excel';
|
||||||
|
|
||||||
|
class CustomATagRenderer {
|
||||||
|
constructor(props) {
|
||||||
|
this.props = props;
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = 'javascript:void(0);';
|
||||||
|
el.className = 'btn_text';
|
||||||
|
el.innerText= String(props.colValue)
|
||||||
|
this.el = el;
|
||||||
|
}
|
||||||
|
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'channelList',
|
name: 'channelList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
ko: vdp_translation_ko.js,
|
||||||
|
periodDay: 7,
|
||||||
|
sDateDiv: 'day',
|
||||||
|
startDate: new Date(),
|
||||||
|
endDate: new Date(),
|
||||||
|
|
||||||
|
row:{},
|
||||||
|
pageType:'CHANNEL',
|
||||||
|
subsSttusCdList:[],
|
||||||
|
custTyCdList:[],
|
||||||
|
openPicker: false,
|
||||||
|
// 테이블 리스트 데이터
|
||||||
|
perPageCnt: 50,
|
||||||
|
options: [
|
||||||
|
{ text: '20', value: 20},
|
||||||
|
{ text: '50', value: 50},
|
||||||
|
{ text: '100', value: 100}
|
||||||
|
],
|
||||||
|
totalItems: 0,
|
||||||
|
grid: {
|
||||||
|
url: '/api/v1/bo/attractMgt/channelList',
|
||||||
|
pagePerRows: 50,
|
||||||
|
pagination: true,
|
||||||
|
isCheckbox: false, // true:첫번째 컬럼 앞에 체크박스 생성 / false:체크박스 제거
|
||||||
|
initialRequest: false,
|
||||||
|
addCls: 'box_OFvis',
|
||||||
|
|
||||||
|
columns: [
|
||||||
|
{ name: 'no', header: 'No', align: 'center', width: '6%'},
|
||||||
|
{ name: 'subsDt', header: '가입일', align: 'center', width: '11%'},
|
||||||
|
{ name: 'norgNm', header: '유치업체', align: 'center', width: '10%'},
|
||||||
|
{ name: 'loginId', header: '마당ID(이름)', align: 'center', width: '10%', renderer: {
|
||||||
|
type: CustomATagRenderer
|
||||||
|
, options: {
|
||||||
|
callback: this.channelDetail,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ name: 'custNm', header: '고객사명', align: 'center', width: '10%'},
|
||||||
|
{ name: 'bizrno', header: '사업자등록번호(생년월일)', align: 'center', width: '12%'},
|
||||||
|
{ name: 'userNm', header: '이름', align: 'center', width: '10%'},
|
||||||
|
{ name: 'subsSttusCd', header: '상태', align: 'center', width: '10%'},
|
||||||
|
{ name: 'custTyCd', header: '구분', align: 'center', width: '10%'},
|
||||||
|
{ name: 'sndCnt', header: '전체발송건수', align: 'center', width: '11%'}
|
||||||
|
],
|
||||||
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
|
params: {
|
||||||
|
searchType: '',
|
||||||
|
searchText: '',
|
||||||
|
subsStDt: '',
|
||||||
|
subsEdDt: '',
|
||||||
|
subsSttusCd: '',
|
||||||
|
loginId: '',
|
||||||
|
norgNm: ''
|
||||||
|
},
|
||||||
|
excelHeader: []
|
||||||
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
customGrid: customGrid,
|
||||||
|
commonModal,
|
||||||
|
vuejsDatepicker,
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
this.$store.commit("login/isLogin", true);
|
||||||
|
this.$store.commit("login/isAuthChk", true);
|
||||||
|
this.setCodeData();
|
||||||
|
this.getExcelHeader();
|
||||||
|
this.setPeriodDay(0);
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
let page = 1;
|
||||||
|
// 페이지 정보 및 검색 조건
|
||||||
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
|
console.log('getCondition : '+getCondition);
|
||||||
|
|
||||||
|
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
||||||
|
let isKeep = false;
|
||||||
|
if (getCondition) {
|
||||||
|
this.grid.pagePerRows = getCondition.perPage;
|
||||||
|
this.grid.params = getCondition.params;
|
||||||
|
page = getCondition.page;
|
||||||
|
isKeep = true;
|
||||||
|
}
|
||||||
|
this.search(isKeep);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
search: function(isKeep) {
|
||||||
|
|
||||||
|
console.log('this.perPageCnt'+this.perPageCnt);
|
||||||
|
//console.log(this.grid.params);
|
||||||
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
|
this.sendStoreData();
|
||||||
|
},
|
||||||
|
changePerPage: function(){ // 페이지당 조회할 개수
|
||||||
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
|
this.search(true);
|
||||||
|
},
|
||||||
|
sendStoreData: function() {
|
||||||
|
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
|
||||||
|
});
|
||||||
|
|
||||||
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
|
console.log("getCondition : "+ getCondition.perPage);
|
||||||
|
},
|
||||||
|
async getExcelDataDown() {
|
||||||
|
try {
|
||||||
|
let response;
|
||||||
|
const params = {
|
||||||
|
subsStDt: this.grid.params.subsStDt,
|
||||||
|
subsEdDt: this.grid.params.subsEdDt,
|
||||||
|
searchType1: this.grid.params.searchType,
|
||||||
|
searchText1: this.grid.params.searchText,
|
||||||
|
loginId: this.grid.params.loginId,
|
||||||
|
norgNm: this.grid.params.norgNm
|
||||||
|
};
|
||||||
|
|
||||||
|
response = await channelMgtApi.channelListExcel(params);
|
||||||
|
|
||||||
|
const result = response.data;
|
||||||
|
if (result != null && result.retCode == "0000") {
|
||||||
|
return result.data;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}, // end of getExcelDataDown
|
||||||
|
async excelDown() {
|
||||||
|
|
||||||
|
if (this.$refs.table.getData().length <= 0) {
|
||||||
|
this.row.title = '유치채녈현황';
|
||||||
|
this.row.msg1 = '조회된 데이터가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let today = moment().format('YYYYMMDDHHmmss');
|
||||||
|
const saveFileName = `유치채널현황_${today}.xlsx`;
|
||||||
|
|
||||||
|
const data = await this.getExcelDataDown();
|
||||||
|
let options = {
|
||||||
|
header: this.excelHeader,
|
||||||
|
dataOrder: 'header'
|
||||||
|
};
|
||||||
|
// console.log(data);
|
||||||
|
xlsx.export(data.list, saveFileName, options).then(() => {});
|
||||||
|
},
|
||||||
|
getExcelHeader() {
|
||||||
|
// 헤더를 mockup으로 관리한다.
|
||||||
|
channelMgtApi.getExcelHeader(this.pageType).then(res => {
|
||||||
|
this.excelHeader = res;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
channelDetail(props){
|
||||||
|
//TODO 전달값 셋팅 필요.
|
||||||
|
this.$router.push({ name: 'channelDetail', params: this.row });
|
||||||
|
},
|
||||||
|
setCodeData() {
|
||||||
|
// 상태 옵션 셋팅.
|
||||||
|
api.commCode({'grpCd' : 'SUBS_STTUS_CD'}).then(response => {
|
||||||
|
this.subsSttusCdList = response.data.data.list;
|
||||||
|
});
|
||||||
|
|
||||||
|
api.commCode({'grpCd' : 'CUST_TY_CD'}).then(response => {
|
||||||
|
this.custTyCdList = response.data.data.list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
setPeriodDay(day) {
|
||||||
|
this.periodDay = day;
|
||||||
|
this.endDate = new Date();
|
||||||
|
this.startDate = moment(this.endDate)
|
||||||
|
.subtract(day, 'day')
|
||||||
|
.toDate();
|
||||||
|
|
||||||
|
this.closeDate('start');
|
||||||
|
this.closeDate('end');
|
||||||
|
},
|
||||||
|
|
||||||
|
selectedStartDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
if (this.startDate > this.endDate) {
|
||||||
|
this.startDate = this.endDate;
|
||||||
|
}
|
||||||
|
console.log(this.disabledSDate)
|
||||||
|
// this.grid.params.startDt = day
|
||||||
|
},
|
||||||
|
selectedEndDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDate(type) {
|
||||||
|
if (type != undefined && type != null) {
|
||||||
|
if (type == 'start') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: this.endDate };
|
||||||
|
} else if (type == 'end') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: new Date() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
customFormatter: function(date) {
|
||||||
|
if (this.sDateDiv == 'month') {
|
||||||
|
return moment(date).format('YYYY-MM');
|
||||||
|
} else if (this.sDateDiv == 'year') {
|
||||||
|
return moment(date).format('YYYY');
|
||||||
|
} else {
|
||||||
|
return moment(date).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>
|
</script>
|
||||||
@@ -3,95 +3,287 @@
|
|||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">정산이력목록조회</h3>
|
<h3 class="title">정산이력</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 관리자/유치채널 관리</p>
|
<p class="breadcrumb">정산 > 정산이력</p>
|
||||||
</div>
|
</div>
|
||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box">
|
<div class="group">
|
||||||
<label for="right" class="label">권한</label>
|
<div class="input_box cal">
|
||||||
<select name="" id="right">
|
<label for="right" class="label txt">조회기간</label>
|
||||||
<option value="전체">전체</option>
|
<p>전월 최대 3개월까지 조회 가능합니다.</p>
|
||||||
<option value="대리점">대리점</option>
|
<div class="term">
|
||||||
<option value="운영자">운영자</option>
|
<span class="custom_input icon_date">
|
||||||
</select>
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledSDate"
|
||||||
|
:minimumView="sDateDiv"
|
||||||
|
:maximumView="sDateDiv"
|
||||||
|
v-model="startDate"
|
||||||
|
@selected="selectedStartDate(0)"
|
||||||
|
@closed="closeDate('start')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>
|
||||||
|
<span class="hypen">~</span>
|
||||||
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledEDate"
|
||||||
|
:minimumView="sDateDiv"
|
||||||
|
:maximumView="sDateDiv"
|
||||||
|
v-model="endDate"
|
||||||
|
@selected="selectedEndDate(0)"
|
||||||
|
@closed="closeDate('end')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box">
|
|
||||||
<label for="right" class="label">상태</label>
|
|
||||||
<select name="" id="right">
|
|
||||||
<option value="전체">전체</option>
|
|
||||||
<option value="사용">사용</option>
|
|
||||||
<option value="중지">중지</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box id">
|
</div>
|
||||||
<label for="id1" class="label">ID</label>
|
<div class="group">
|
||||||
<input type="text" id="id1" placeholder="검색어 입력"/>
|
<div class="input_box">
|
||||||
|
<label for="right" class="label">고객사명</label>
|
||||||
|
<input class="search-box" type="text" id="" placeholder="검색어 입력"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="name" class="label">이름(대리점명)</label>
|
<label for="right" class="label">사업자번호 (생년월일)</label>
|
||||||
<input type="text" id="name" placeholder="검색어 입력"/>
|
<input class="search-box" type="text" id="" placeholder="검색어 입력"/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey">조회</button>
|
<button type="button" class="button grey">조회</button>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>100</span>건</div>
|
<div class="count">총 <span>100</span>건
|
||||||
|
<div class="select_box NumberSe">
|
||||||
|
<select name="" id="">
|
||||||
|
<option value="20">20</option>
|
||||||
|
<option value="50" selected>50</option>
|
||||||
|
<option value="100">100</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue admin">관리자 등록</button>
|
<button type="button" class="button blue download">엑셀 다운로드</button>
|
||||||
<button type="button" class="button blue channel">유지채널 등록</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="table">
|
<div class="table calculate scroll">
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
|
||||||
<col width="5%"/>
|
|
||||||
<col width="15%"/>
|
|
||||||
<col width="15%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
<col width="5%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
|
<th rowspan="2">날짜</th>
|
||||||
<th>NO</th>
|
<th rowspan="2">고객사명<br>(이름)</th>
|
||||||
<th>권한</th>
|
<th rowspan="2">사업자번호<br>(생년월일)</th>
|
||||||
<th>이름(대리점명)</th>
|
<th rowspan="2">요금제</th>
|
||||||
<th>ID</th>
|
<th rowspan="2">시작금액</th>
|
||||||
<th>상태</th>
|
<th rowspan="2">사용금액</th>
|
||||||
<th>등록일</th>
|
<th rowspan="2">이월금액</th>
|
||||||
|
<th rowspan="2">종량금액</th>
|
||||||
|
<th rowspan="2">소멸금액</th>
|
||||||
|
<th rowspan="2">청구금액</th>
|
||||||
|
<th colspan="5">채널별 발송 건수</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="total">
|
||||||
|
<th>전체</th>
|
||||||
|
<th>SMS</th>
|
||||||
|
<th>LMS</th>
|
||||||
|
<th>MMS</th>
|
||||||
|
<th>알림톡</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
|
<td>2022-02</td>
|
||||||
<td>10</td>
|
<td>유플러스01</td>
|
||||||
<td>대리점</td>
|
<td>229-81-39938</td>
|
||||||
<td>유플러스</td>
|
<td>요금제1<br>(50,000)</td>
|
||||||
<td><a href="javascript:void(0)">uplus1</a></td>
|
<td class="price">50,000</td>
|
||||||
<td>사용</td>
|
<td class="price">50,000</td>
|
||||||
<td>2022-03-10</td>
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>유플러스01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>유플러스01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>유플러스01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>홍길동</td>
|
||||||
|
<td>850505</td>
|
||||||
|
<td>요금제1<br>(50,000)</td>
|
||||||
|
<td class="price">100,000</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">50,000</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td class="price">150,000</td>
|
||||||
|
<td>84,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="table">
|
<div class="pagination">
|
||||||
<custom-grid
|
<div class="arrow-btn">
|
||||||
ref="table"
|
<button class="btn-first" onClick=""></button>
|
||||||
:totalItems="'totalItems'"
|
<button class="btn-prev" onClick=""></button>
|
||||||
:url="testList.url"
|
</div>
|
||||||
:perPage="testList.perPage"
|
<ul>
|
||||||
:initialRequest="testList.initialRequest"
|
<li class="active"><a href="javascript:void(0)">1</a></li>
|
||||||
:pagination="testList.pagination"
|
<li><a href="javascript:void(0)">2</a></li>
|
||||||
:isCheckbox="testList.isCheckbox"
|
<li><a href="javascript:void(0)">3</a></li>
|
||||||
:columns="testList.columns"
|
<li><a href="javascript:void(0)">4</a></li>
|
||||||
:noDataStr="testList.noDataStr"
|
<li><a href="javascript:void(0)">5</a></li>
|
||||||
:addCls="testList.addCls"
|
<li><a href="javascript:void(0)">999</a></li>
|
||||||
:header="testList.header"
|
</ul>
|
||||||
></custom-grid>
|
<div class="arrow-btn">
|
||||||
|
<button class="btn-next" onClick=""></button>
|
||||||
|
<button class="btn-last" onClick=""></button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,53 +291,28 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
|
import moment from "moment";
|
||||||
|
import lodash from 'lodash';
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
export default {
|
export default {
|
||||||
name: 'calcList',
|
name: 'calcList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
testList: {
|
ko: vdp_translation_ko.js,
|
||||||
url: '/api/v1/bo/sysMgt/adminList',
|
periodDay: 7,
|
||||||
perPage: 20,
|
sDateDiv: 'month',
|
||||||
pagination: true,
|
startDate: new Date(),
|
||||||
isCheckbox: true,
|
endDate: new Date(),
|
||||||
initialRequest: false,
|
|
||||||
addCls: 'box_OFvis',
|
|
||||||
|
|
||||||
|
|
||||||
header: [
|
|
||||||
[
|
|
||||||
{ header: 'NO', childNames: [] },
|
|
||||||
{ header: '권한', childNames: [] },
|
|
||||||
{ header: '이름(대리점명)', childNames: [] },
|
|
||||||
{ header: 'ID', childNames: [] },
|
|
||||||
{ header: '상태', childNames: [] },
|
|
||||||
{ header: '등록일', childNames: [] }
|
|
||||||
]
|
|
||||||
],
|
|
||||||
|
|
||||||
columns: [
|
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
|
||||||
{ name: 'auth', header: '권한', align: 'left', width: 160 },
|
|
||||||
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
|
|
||||||
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
|
|
||||||
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
|
|
||||||
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
|
|
||||||
],
|
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
|
||||||
// params: {
|
|
||||||
// apprResult: '',
|
|
||||||
// searchType: '',
|
|
||||||
// searchText: '',
|
|
||||||
// startDate: '',
|
|
||||||
// endDate: ''
|
|
||||||
// },
|
|
||||||
excelHeader: []
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
|
vuejsDatepicker,
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
this.$store.commit("login/isLogin", true);
|
||||||
|
this.$store.commit("login/isAuthChk", true);
|
||||||
|
this.setPeriodDay(0);
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
|
||||||
@@ -160,6 +327,53 @@ export default {
|
|||||||
console.log(this.testList.params);
|
console.log(this.testList.params);
|
||||||
this.$refs.table.search(this.testList.params, isKeep);
|
this.$refs.table.search(this.testList.params, isKeep);
|
||||||
},
|
},
|
||||||
|
setPeriodDay(day) {
|
||||||
|
this.periodDay = day;
|
||||||
|
this.endDate = new Date();
|
||||||
|
this.startDate = moment(this.endDate)
|
||||||
|
.subtract(day, 'day')
|
||||||
|
.toDate();
|
||||||
|
|
||||||
|
this.closeDate('start');
|
||||||
|
this.closeDate('end');
|
||||||
|
},
|
||||||
|
|
||||||
|
selectedStartDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
if (this.startDate > this.endDate) {
|
||||||
|
this.startDate = this.endDate;
|
||||||
|
}
|
||||||
|
// console.log(this.disabledSDate)
|
||||||
|
// this.grid.params.startDt = day
|
||||||
|
},
|
||||||
|
selectedEndDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDate(type) {
|
||||||
|
if (type != undefined && type != null) {
|
||||||
|
if (type == 'start') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: this.endDate };
|
||||||
|
} else if (type == 'end') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: new Date() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
customFormatter: function(date) {
|
||||||
|
console.log(this.sDateDiv)
|
||||||
|
if (this.sDateDiv == 'month') {
|
||||||
|
return moment(date).format('YYYY-MM');
|
||||||
|
} else if (this.sDateDiv == 'year') {
|
||||||
|
return moment(date).format('YYYY');
|
||||||
|
} else {
|
||||||
|
return moment(date).format('YYYY-MM-DD');
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -41,9 +41,9 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="button_group">
|
<!-- <div class="button_group">-->
|
||||||
<button type="button" class="button blue admin" @click="excelDown();">엑셀다운로드</button>
|
<!-- <button type="button" class="button blue admin" @click="excelDown();">엑셀다운로드</button>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<custom-grid
|
<custom-grid
|
||||||
@@ -59,6 +59,9 @@
|
|||||||
:addCls="grid.addCls"
|
:addCls="grid.addCls"
|
||||||
:header="grid.headder"
|
:header="grid.headder"
|
||||||
></custom-grid>
|
></custom-grid>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,6 +72,7 @@ import customGrid from '@/components/CustomGrid';
|
|||||||
import channelMgtApi from '../service/channelMgtApi';
|
import channelMgtApi from '../service/channelMgtApi';
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
class customBRegNo {
|
class customBRegNo {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -217,7 +221,8 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
channelMgtApi
|
channelMgtApi,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
@@ -297,7 +302,9 @@ export default {
|
|||||||
}, // end of getExcelDataDown
|
}, // end of getExcelDataDown
|
||||||
async excelDown() {
|
async excelDown() {
|
||||||
if (this.$refs.table.getData().length <= 0) {
|
if (this.$refs.table.getData().length <= 0) {
|
||||||
alert('조회된 데이터가 없습니다.');
|
this.row.title = '채널관리';
|
||||||
|
this.row.msg1 = '조회된 데이터가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--<div>-->
|
<div>
|
||||||
<!-- <div class="dimmed modal26" @click="ModalClose();"></div>-->
|
<div class="dimmed modal26" @click="ModalClose();"></div>
|
||||||
<div class="popup-wrap modal26">
|
<div class="popup-wrap modal26">
|
||||||
<div class="popup modal26">
|
<div class="popup modal26">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -22,16 +22,17 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<search-id-popup ref="searchIdPopModal"> </search-id-popup>
|
<search-id-popup ref="searchIdPopModal"> </search-id-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--</div>-->
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import api from '@/service/api';
|
import api from '@/service/api';
|
||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
import SearchIdPopup from '../components/SearchIdPopup.vue';
|
import SearchIdPopup from '../components/SearchIdPopup.vue';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "adminNmPop",
|
name: "adminNmPop",
|
||||||
@@ -57,6 +58,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SearchIdPopup,
|
SearchIdPopup,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
//prop: 'sendData',
|
//prop: 'sendData',
|
||||||
@@ -71,7 +73,9 @@ export default {
|
|||||||
// 마당ID 조회
|
// 마당ID 조회
|
||||||
async searchMadangId(){
|
async searchMadangId(){
|
||||||
if(!this.madangId){
|
if(!this.madangId){
|
||||||
alert('마당ID를 입력해주세요');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '마당ID를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,9 @@
|
|||||||
<button class="btn-pcolor download" @click="excelDown();">엑셀 다운로드</button>
|
<button class="btn-pcolor download" @click="excelDown();">엑셀 다운로드</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -49,6 +52,7 @@
|
|||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "carryOverListPop",
|
name: "carryOverListPop",
|
||||||
@@ -59,6 +63,9 @@ export default {
|
|||||||
totalCnt: '',
|
totalCnt: '',
|
||||||
pageType: 'CARRY',
|
pageType: 'CARRY',
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.getExcelHeader();
|
this.getExcelHeader();
|
||||||
@@ -78,7 +85,9 @@ export default {
|
|||||||
this.totalCnt = result.data.totalCnt;
|
this.totalCnt = result.data.totalCnt;
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
var dimmed = document.getElementsByClassName('modal25');
|
var dimmed = document.getElementsByClassName('modal25');
|
||||||
for(var i = 0; i < dimmed.length; i++){
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
@@ -98,7 +107,10 @@ export default {
|
|||||||
},
|
},
|
||||||
excelDown() {
|
excelDown() {
|
||||||
if (this.list.length <= 0) {
|
if (this.list.length <= 0) {
|
||||||
alert('조회된 데이터가 없습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '조회된 데이터가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
<button class="btn-default" @click="excelPopClose">취소</button>
|
<button class="btn-default" @click="excelPopClose">취소</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -44,6 +45,7 @@ import { utils_mixin, chkPattern2 } from '../service/mixins';
|
|||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "memberBulkRegPop",
|
name: "memberBulkRegPop",
|
||||||
@@ -61,7 +63,9 @@ export default {
|
|||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
|
},
|
||||||
created(){
|
created(){
|
||||||
this.getExcelHeader();
|
this.getExcelHeader();
|
||||||
},
|
},
|
||||||
@@ -96,11 +100,15 @@ export default {
|
|||||||
const response = await custMgtApi.insertTestId(this.row);
|
const response = await custMgtApi.insertTestId(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -145,7 +153,9 @@ export default {
|
|||||||
let tmpResult = {};
|
let tmpResult = {};
|
||||||
const vm = this;
|
const vm = this;
|
||||||
reader.onerror = (e) => {
|
reader.onerror = (e) => {
|
||||||
alert('파일을 읽는 동안 에러가 발생 했습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '파일을 읽는 동안 에러가 발생 했습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
reader.onloadend = (e) => {
|
reader.onloadend = (e) => {
|
||||||
}
|
}
|
||||||
@@ -163,7 +173,9 @@ export default {
|
|||||||
const totalCnt = Number(this.totalItems) + rowObj.length;
|
const totalCnt = Number(this.totalItems) + rowObj.length;
|
||||||
|
|
||||||
if(totalCnt > limitCnt){
|
if(totalCnt > limitCnt){
|
||||||
alert('100건이상은 등록되지 않습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '100건이상은 등록되지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +282,9 @@ export default {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 오류건수.
|
// 오류건수.
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,6 +70,7 @@ import custMgtApi from "../service/custMgtApi.js";
|
|||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "memberModifyPop",
|
name: "memberModifyPop",
|
||||||
@@ -80,6 +82,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
ValidationConfirmPop,
|
ValidationConfirmPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
//prop: 'sendData',
|
//prop: 'sendData',
|
||||||
@@ -124,10 +127,14 @@ export default {
|
|||||||
this.mdn = result.data.mdn;
|
this.mdn = result.data.mdn;
|
||||||
this.userStat = result.data.userStat;
|
this.userStat = result.data.userStat;
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
// 모달 오픈
|
// 모달 오픈
|
||||||
var dimmed = document.getElementsByClassName('memberUpdate');
|
var dimmed = document.getElementsByClassName('memberUpdate');
|
||||||
@@ -155,14 +162,20 @@ export default {
|
|||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('수정 완료하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '수정 완료하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//사용자ID 수정 모달 Close
|
//사용자ID 수정 모달 Close
|
||||||
@@ -179,18 +192,24 @@ export default {
|
|||||||
},
|
},
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -198,7 +217,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -213,13 +234,17 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -233,7 +258,9 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -247,7 +274,9 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userStat)){
|
if(this.isNull(this.userStat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -69,6 +69,7 @@ import custMgtApi from "../service/custMgtApi.js";
|
|||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "memberRegPop",
|
name: "memberRegPop",
|
||||||
@@ -80,6 +81,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
ValidationConfirmPop,
|
ValidationConfirmPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
//prop: 'sendData',
|
//prop: 'sendData',
|
||||||
@@ -141,16 +143,22 @@ export default {
|
|||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('사용자 생성 완료하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '사용자 생성 완료하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
} else if(result != null && result.retCode == "4018"){
|
} else if(result != null && result.retCode == "4018"){
|
||||||
// 이미 사용중인 ID
|
// 이미 사용중인 ID
|
||||||
this.$refs.validationConfirmPopModal.validationIdDuplicateOpen();
|
this.$refs.validationConfirmPopModal.validationIdDuplicateOpen();
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//사용자ID 생성 모달 Close
|
//사용자ID 생성 모달 Close
|
||||||
@@ -180,18 +188,24 @@ export default {
|
|||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
|
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -199,7 +213,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -214,19 +230,25 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userId)){
|
if(this.isNull(this.userId)){
|
||||||
alert("ID를 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = 'ID를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userId.focus();
|
this.$refs._userId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userPwd1)){
|
if(this.isNull(this.userPwd1)){
|
||||||
alert("비밀번호를 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.__pwd1.focus();
|
this.$refs.__pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.__pwd2.focus();
|
this.$refs.__pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -238,41 +260,47 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const email = this.email;
|
const email = this.email;
|
||||||
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
||||||
// alert("이메일 형식이 잘못되었습니다. 확인해 주세요");
|
|
||||||
// this.$refs._email.focus();
|
|
||||||
this.$refs.validationConfirmPopModal.validationEmailOpen();
|
this.$refs.validationConfirmPopModal.validationEmailOpen();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const hp = this.mdn;
|
const hp = this.mdn;
|
||||||
if(!this.isNull(hp) && !this.isMobile(hp)){
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
//alert("휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요");
|
|
||||||
//this.$refs._phone.focus();
|
|
||||||
this.$refs.validationConfirmPopModal.validationPhonenumberOpen();
|
this.$refs.validationConfirmPopModal.validationPhonenumberOpen();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.stat)){
|
if(this.isNull(this.stat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,8 @@
|
|||||||
|
|
||||||
<button class="btn-default" @click="memoTotalModalClose();">닫기</button>
|
<button class="btn-default" @click="memoTotalModalClose();">닫기</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -61,6 +63,7 @@
|
|||||||
import customGrid from "@/components/CustomGrid";
|
import customGrid from "@/components/CustomGrid";
|
||||||
import api from '@/service/api';
|
import api from '@/service/api';
|
||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -95,10 +98,6 @@ export default {
|
|||||||
},
|
},
|
||||||
//props: ['sendData'],
|
//props: ['sendData'],
|
||||||
// props: [],
|
// props: [],
|
||||||
created(){
|
|
||||||
// this.setAuthData();
|
|
||||||
// this.formReset();
|
|
||||||
},
|
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
memorow: {},
|
memorow: {},
|
||||||
@@ -137,6 +136,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components:{
|
components:{
|
||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
|
|
||||||
@@ -254,11 +254,15 @@ export default {
|
|||||||
}
|
}
|
||||||
this.search(isKeep);
|
this.search(isKeep);
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.memorow.title = '청약고객관리';
|
||||||
|
this.memorow.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.memorow);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.memorow.title = '청약고객관리';
|
||||||
|
this.memorow.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.memorow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
<button class="btn-default" @click="ModalClose();">취소</button>
|
<button class="btn-default" @click="ModalClose();">취소</button>
|
||||||
<button class="btn-pcolor" @click="doInsert">저장</button>
|
<button class="btn-pcolor" @click="doInsert">저장</button>
|
||||||
</div>
|
</div>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,6 +62,8 @@ import api from '@/service/api';
|
|||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
import ValidationConfirmPop from "@/modules/custMgt/components/ValidationConfirmPop";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "subsRegPop",
|
name: "subsRegPop",
|
||||||
@@ -89,29 +92,40 @@ export default {
|
|||||||
event: 'event-data'
|
event: 'event-data'
|
||||||
},
|
},
|
||||||
props: ['sendData'],
|
props: ['sendData'],
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
|
},
|
||||||
created(){
|
created(){
|
||||||
this.formReset();
|
this.formReset();
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
if(this.isNull(this.userPwd1)){
|
if(this.isNull(this.userPwd1)){
|
||||||
alert("비밀번호를 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -119,7 +133,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -128,7 +144,9 @@ export default {
|
|||||||
},
|
},
|
||||||
doValidate(){
|
doValidate(){
|
||||||
if(this.isNull(this.userId)){
|
if(this.isNull(this.userId)){
|
||||||
alert("아이디를 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '아이디를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userId.focus();
|
this.$refs._userId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -136,34 +154,46 @@ export default {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const hp = this.mdn;
|
const hp = this.mdn;
|
||||||
if(!this.isNull(hp) && !this.isMobile(hp)){
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
alert("휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const email = this.email;
|
const email = this.email;
|
||||||
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
||||||
alert("이메일 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userStat)){
|
if(this.isNull(this.userStat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.$refs._auth.focus();
|
// this.$refs._auth.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -205,11 +235,15 @@ export default {
|
|||||||
const response = await custMgtApi.insertTestId(this.row);
|
const response = await custMgtApi.insertTestId(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,6 +51,9 @@
|
|||||||
<button class="btn-default" @click="ModalClose();">취소</button>
|
<button class="btn-default" @click="ModalClose();">취소</button>
|
||||||
<button class="btn-pcolor" @click="doInsert">저장</button>
|
<button class="btn-pcolor" @click="doInsert">저장</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,6 +64,8 @@ import api from '@/service/api';
|
|||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
import ValidationConfirmPop from "@/modules/custMgt/components/ValidationConfirmPop";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "subsRegPop",
|
name: "subsRegPop",
|
||||||
@@ -89,29 +94,40 @@ export default {
|
|||||||
event: 'event-data'
|
event: 'event-data'
|
||||||
},
|
},
|
||||||
props: ['sendData'],
|
props: ['sendData'],
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
|
},
|
||||||
created(){
|
created(){
|
||||||
this.formReset();
|
this.formReset();
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
if(this.isNull(this.userPwd1)){
|
if(this.isNull(this.userPwd1)){
|
||||||
alert("비밀번호를 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -119,7 +135,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -128,7 +146,9 @@ export default {
|
|||||||
},
|
},
|
||||||
doValidate(){
|
doValidate(){
|
||||||
if(this.isNull(this.userId)){
|
if(this.isNull(this.userId)){
|
||||||
alert("아이디를 입력해 주세요.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '아이디를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userId.focus();
|
this.$refs._userId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -136,34 +156,46 @@ export default {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const hp = this.mdn;
|
const hp = this.mdn;
|
||||||
if(!this.isNull(hp) && !this.isMobile(hp)){
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
alert("휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const email = this.email;
|
const email = this.email;
|
||||||
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
||||||
alert("이메일 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userStat)){
|
if(this.isNull(this.userStat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.$refs._auth.focus();
|
// this.$refs._auth.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -205,11 +237,15 @@ export default {
|
|||||||
const response = await custMgtApi.insertTestId(this.row);
|
const response = await custMgtApi.insertTestId(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -145,6 +145,7 @@
|
|||||||
<member-reg-pop ref="memberRegPop"> </member-reg-pop>
|
<member-reg-pop ref="memberRegPop"> </member-reg-pop>
|
||||||
<member-modify-pop ref="memberModifyPop"> </member-modify-pop>
|
<member-modify-pop ref="memberModifyPop"> </member-modify-pop>
|
||||||
<memo-total-pop ref="memoTatalListPop"> </memo-total-pop>
|
<memo-total-pop ref="memoTatalListPop"> </memo-total-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -157,6 +158,7 @@ import MemberBulkRegPop from '../components/MemberBulkRegPop';
|
|||||||
import MemberRegPop from '../components/MemberRegPop';
|
import MemberRegPop from '../components/MemberRegPop';
|
||||||
import MemberModifyPop from '../components/MemberModifyPop';
|
import MemberModifyPop from '../components/MemberModifyPop';
|
||||||
import MemoTotalPop from '../components/MemoTotalPop';
|
import MemoTotalPop from '../components/MemoTotalPop';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'memberAdminDetail',
|
name: 'memberAdminDetail',
|
||||||
@@ -200,6 +202,7 @@ export default {
|
|||||||
MemberRegPop,
|
MemberRegPop,
|
||||||
MemberModifyPop,
|
MemberModifyPop,
|
||||||
MemoTotalPop,
|
MemoTotalPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.memberDetail(this.$route.params.serviceId);
|
this.memberDetail(this.$route.params.serviceId);
|
||||||
@@ -240,6 +243,13 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
valAlert(props){
|
||||||
|
//alert("호출됨!");
|
||||||
|
this.$refs.commmonModal.alertModalOpen(props);
|
||||||
|
},
|
||||||
|
valConfirm(props){
|
||||||
|
this.$refs.commmonModal.confirmModalOpen(props);
|
||||||
|
},
|
||||||
async memberDetail(serviceId){
|
async memberDetail(serviceId){
|
||||||
this.row.userId = serviceId;
|
this.row.userId = serviceId;
|
||||||
try {
|
try {
|
||||||
@@ -267,7 +277,9 @@ export default {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -286,17 +298,24 @@ export default {
|
|||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
|
|
||||||
alert("저장 완료하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
|
||||||
}else if(result != null && result.retCode == "4019"){
|
}else if(result != null && result.retCode == "4019"){
|
||||||
alert("발송한도금액이 정액한도금액보다 작습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '발송한도금액이 정액한도금액보다 작습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}else {
|
}else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -333,12 +352,16 @@ export default {
|
|||||||
let response = await custMgtApi.deleteUser(this.row);
|
let response = await custMgtApi.deleteUser(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert("저장 완료하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.memberDetail(serviceId);
|
this.memberDetail(serviceId);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -71,6 +71,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -83,6 +84,7 @@ import custMgtApi from "../service/custMgtApi.js";
|
|||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'memberDetail',
|
name: 'memberDetail',
|
||||||
@@ -92,9 +94,6 @@ export default {
|
|||||||
console.log('watch : ', this.stat)
|
console.log('watch : ', this.stat)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
|
||||||
ValidationConfirmPop,
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
row:{},
|
row:{},
|
||||||
@@ -123,6 +122,8 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
commonModal,
|
||||||
|
ValidationConfirmPop,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.memberDetail(this.$route.params.serviceId);
|
this.memberDetail(this.$route.params.serviceId);
|
||||||
@@ -161,7 +162,9 @@ export default {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -180,14 +183,20 @@ export default {
|
|||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 완료하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 저장 후 부모창 호출.
|
// 저장 후 부모창 호출.
|
||||||
@@ -197,19 +206,25 @@ export default {
|
|||||||
doValidate(){
|
doValidate(){
|
||||||
|
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const email = this.email;
|
const email = this.email;
|
||||||
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
||||||
alert("이메일 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '이메일 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
//this.$refs.validationConfirmPopModal.validationEmailOpen();
|
//this.$refs.validationConfirmPopModal.validationEmailOpen();
|
||||||
|
|
||||||
@@ -217,13 +232,17 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const hp = this.mdn;
|
const hp = this.mdn;
|
||||||
if(!this.isNull(hp) && !this.isMobile(hp)){
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
alert("휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
//this.$refs.validationConfirmPopModal.validationPhonenumberOpen();
|
//this.$refs.validationConfirmPopModal.validationPhonenumberOpen();
|
||||||
|
|
||||||
@@ -231,7 +250,9 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.isNull(this.stat)){
|
if(this.isNull(this.stat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,28 @@
|
|||||||
<div class="group">
|
<div class="group">
|
||||||
<div class="input_box cal">
|
<div class="input_box cal">
|
||||||
<label for="right" class="label">조회기간</label>
|
<label for="right" class="label">조회기간</label>
|
||||||
<input class="" type="text" id="" v-model="grid.params.startDt"/>
|
<div class="term">
|
||||||
<input class="" type="text" id="" v-model="grid.params.endDt"/>
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledSDate"
|
||||||
|
v-model="startDate"
|
||||||
|
@selected="selectedStartDate(0)"
|
||||||
|
@closed="closeDate('start')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>~
|
||||||
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledEDate"
|
||||||
|
v-model="endDate"
|
||||||
|
@selected="selectedEndDate(0)"
|
||||||
|
@closed="closeDate('end')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box id">
|
<div class="select_box id">
|
||||||
<label for="right" class="label">상태</label>
|
<label for="right" class="label">상태</label>
|
||||||
@@ -87,6 +107,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<testId-reg-pop ref="testIdRegPop"> </testId-reg-pop>
|
<testId-reg-pop ref="testIdRegPop"> </testId-reg-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -98,6 +119,7 @@ import customGrid from '@/components/CustomGrid';
|
|||||||
import TestIdRegPop from '../components/TestIdRegPop';
|
import TestIdRegPop from '../components/TestIdRegPop';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -126,12 +148,12 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 달력 데이터
|
// 달력 데이터
|
||||||
|
ko: vdp_translation_ko.js,
|
||||||
|
periodDay: 7,
|
||||||
sDateDiv: 'day',
|
sDateDiv: 'day',
|
||||||
eDateDiv: 'year',
|
startDate: new Date(),
|
||||||
startDate: null,
|
endDate: new Date(),
|
||||||
endDate: null,
|
|
||||||
disabledSDate: { from: new Date()},
|
|
||||||
disabledEDate: { to: new Date()},
|
|
||||||
statType: [],
|
statType: [],
|
||||||
userType: [],
|
userType: [],
|
||||||
|
|
||||||
@@ -184,11 +206,14 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
TestIdRegPop,
|
TestIdRegPop,
|
||||||
|
commonModal,
|
||||||
|
vuejsDatepicker,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
this.$store.commit("login/isAuthChk", true);
|
this.$store.commit("login/isAuthChk", true);
|
||||||
this.setCodeData();
|
this.setCodeData();
|
||||||
|
this.setPeriodDay(0);
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
@@ -274,6 +299,52 @@ export default {
|
|||||||
this.userType = response.data.data.list;
|
this.userType = response.data.data.list;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
setPeriodDay(day) {
|
||||||
|
this.periodDay = day;
|
||||||
|
this.endDate = new Date();
|
||||||
|
this.startDate = moment(this.endDate)
|
||||||
|
.subtract(day, 'day')
|
||||||
|
.toDate();
|
||||||
|
|
||||||
|
this.closeDate('start');
|
||||||
|
this.closeDate('end');
|
||||||
|
},
|
||||||
|
|
||||||
|
selectedStartDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
if (this.startDate > this.endDate) {
|
||||||
|
this.startDate = this.endDate;
|
||||||
|
}
|
||||||
|
console.log(this.disabledSDate)
|
||||||
|
// this.grid.params.startDt = day
|
||||||
|
},
|
||||||
|
selectedEndDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDate(type) {
|
||||||
|
if (type != undefined && type != null) {
|
||||||
|
if (type == 'start') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: this.endDate };
|
||||||
|
} else if (type == 'end') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: new Date() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
customFormatter: function(date) {
|
||||||
|
if (this.sDateDiv == 'month') {
|
||||||
|
return moment(date).format('YYYY-MM');
|
||||||
|
} else if (this.sDateDiv == 'year') {
|
||||||
|
return moment(date).format('YYYY');
|
||||||
|
} else {
|
||||||
|
return moment(date).format('YYYY-MM-DD');
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
|
|||||||
@@ -169,6 +169,7 @@
|
|||||||
<!--수정 확인 모달-->
|
<!--수정 확인 모달-->
|
||||||
<validation-confirm-pop ref="validationConfirmPop"></validation-confirm-pop>
|
<validation-confirm-pop ref="validationConfirmPop"></validation-confirm-pop>
|
||||||
<!--관리자명 조회 모달-->
|
<!--관리자명 조회 모달-->
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<admin-nm-pop ref="adminNmPop"></admin-nm-pop>
|
<admin-nm-pop ref="adminNmPop"></admin-nm-pop>
|
||||||
@@ -184,6 +185,7 @@ import CarryOverListPop from '../components/CarryOverListPop';
|
|||||||
import ValidationConfirmPop from '../components/ValidationConfirmPop';
|
import ValidationConfirmPop from '../components/ValidationConfirmPop';
|
||||||
//import SearchIDPop from '@/components/modal/searchID';
|
//import SearchIDPop from '@/components/modal/searchID';
|
||||||
import AdminNmPop from '../components/AdminNmPop';
|
import AdminNmPop from '../components/AdminNmPop';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "subsDetail",
|
name: "subsDetail",
|
||||||
@@ -234,6 +236,7 @@ export default {
|
|||||||
//SearchIDPop,
|
//SearchIDPop,
|
||||||
ValidationConfirmPop,
|
ValidationConfirmPop,
|
||||||
AdminNmPop,
|
AdminNmPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
@@ -243,6 +246,10 @@ export default {
|
|||||||
// checkVaildBizNum
|
// checkVaildBizNum
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
|
callAlert(props){
|
||||||
|
//alert("호출됨!");
|
||||||
|
this.$refs.commmonModal.alertModalOpen(props);
|
||||||
|
},
|
||||||
doValidate(){
|
doValidate(){
|
||||||
// if(this.isNull(this.userId)){
|
// if(this.isNull(this.userId)){
|
||||||
// alert("아이디를 입력해 주세요.");
|
// alert("아이디를 입력해 주세요.");
|
||||||
@@ -320,7 +327,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -335,13 +344,19 @@ export default {
|
|||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
} else {
|
} else {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -355,13 +370,14 @@ export default {
|
|||||||
// console.log(this.row);
|
// console.log(this.row);
|
||||||
// this.$refs.confirmPop.confirmModalOpen(this.row);
|
// this.$refs.confirmPop.confirmModalOpen(this.row);
|
||||||
this.$refs.validationConfirmPop.confirmUpdateSubOpen();
|
this.$refs.validationConfirmPop.confirmUpdateSubOpen();
|
||||||
|
// this.$refs.commmonModal.confirmModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
confirmCalbackFnc: function(props){
|
confirmCalbackFnc: function(props){
|
||||||
console.log(props);
|
console.log(props);
|
||||||
if(props.result){
|
if(props.result){
|
||||||
this.doInsert(props.result);
|
// this.doInsert(props.result);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
searchIDPopOpen: function(){
|
searchIDPopOpen: function(){
|
||||||
|
|||||||
@@ -17,8 +17,28 @@
|
|||||||
<div class="group">
|
<div class="group">
|
||||||
<div class="input_box cal">
|
<div class="input_box cal">
|
||||||
<label for="right" class="label">조회기간</label>
|
<label for="right" class="label">조회기간</label>
|
||||||
<input class="" type="text" id="" v-model="grid.params.startDt"/>
|
<div class="term">
|
||||||
<input class="" type="text" id="" v-model="grid.params.endDt"/>
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledSDate"
|
||||||
|
v-model="startDate"
|
||||||
|
@selected="selectedStartDate(0)"
|
||||||
|
@closed="closeDate('start')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>~
|
||||||
|
<span class="custom_input icon_date">
|
||||||
|
<vuejs-datepicker
|
||||||
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
:disabled-dates="disabledEDate"
|
||||||
|
v-model="endDate"
|
||||||
|
@selected="selectedEndDate(0)"
|
||||||
|
@closed="closeDate('end')"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box id">
|
<div class="select_box id">
|
||||||
<label for="right" class="label">상태</label>
|
<label for="right" class="label">상태</label>
|
||||||
@@ -94,6 +114,8 @@
|
|||||||
></custom-grid>
|
></custom-grid>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -104,6 +126,7 @@ import moment from 'moment';
|
|||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from "../service/custMgtApi.js";
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -132,12 +155,11 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 달력 데이터
|
// 달력 데이터
|
||||||
|
ko: vdp_translation_ko.js,
|
||||||
|
periodDay: 7,
|
||||||
sDateDiv: 'day',
|
sDateDiv: 'day',
|
||||||
eDateDiv: 'year',
|
startDate: new Date(),
|
||||||
startDate: null,
|
endDate: new Date(),
|
||||||
endDate: null,
|
|
||||||
disabledSDate: { from: new Date()},
|
|
||||||
disabledEDate: { to: new Date()},
|
|
||||||
|
|
||||||
statType: [],
|
statType: [],
|
||||||
userType: [],
|
userType: [],
|
||||||
@@ -192,13 +214,16 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
|
commonModal,
|
||||||
|
vuejsDatepicker,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
this.$store.commit("login/isAuthChk", true);
|
this.$store.commit("login/isAuthChk", true);
|
||||||
this.setCodeData();
|
this.setCodeData();
|
||||||
this.getExcelHeader();
|
this.getExcelHeader();
|
||||||
|
this.setPeriodDay(0);
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
|
||||||
@@ -221,6 +246,18 @@ export default {
|
|||||||
}
|
}
|
||||||
this.search(isKeep);
|
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: {
|
methods: {
|
||||||
search: function(isKeep) {
|
search: function(isKeep) {
|
||||||
console.log('this.perPageCnt'+this.perPageCnt);
|
console.log('this.perPageCnt'+this.perPageCnt);
|
||||||
@@ -287,7 +324,9 @@ export default {
|
|||||||
}, // end of getExcelDataDown
|
}, // end of getExcelDataDown
|
||||||
async excelDown() {
|
async excelDown() {
|
||||||
if (this.$refs.table.getData().length <= 0) {
|
if (this.$refs.table.getData().length <= 0) {
|
||||||
alert('조회된 데이터가 없습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '조회된 데이터가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,18 +347,52 @@ export default {
|
|||||||
this.excelHeader = res;
|
this.excelHeader = res;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
setPeriodDay(day) {
|
||||||
beforeRouteLeave(to, from, next) {
|
this.periodDay = day;
|
||||||
|
this.endDate = new Date();
|
||||||
|
this.startDate = moment(this.endDate)
|
||||||
|
.subtract(day, 'day')
|
||||||
|
.toDate();
|
||||||
|
|
||||||
const getP = this.$refs.table.getPagination();
|
this.closeDate('start');
|
||||||
console.log("==========getP : " + getP._currentPage);
|
this.closeDate('end');
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
},
|
||||||
page: getP._currentPage,
|
|
||||||
perPage: this.perPageCnt,
|
selectedStartDate(day) {
|
||||||
params: this.grid.params
|
if (day != undefined && day != null) {
|
||||||
});
|
this.periodDay = day;
|
||||||
// 라우트 하기전 실행
|
}
|
||||||
next();
|
if (this.startDate > this.endDate) {
|
||||||
|
this.startDate = this.endDate;
|
||||||
|
}
|
||||||
|
console.log(this.disabledSDate)
|
||||||
|
// this.grid.params.startDt = day
|
||||||
|
},
|
||||||
|
selectedEndDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDate(type) {
|
||||||
|
if (type != undefined && type != null) {
|
||||||
|
if (type == 'start') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: this.endDate };
|
||||||
|
} else if (type == 'end') {
|
||||||
|
this.disabledSDate = { from: this.endDate };
|
||||||
|
this.disabledEDate = { to: this.startDate, from: new Date() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
customFormatter: function(date) {
|
||||||
|
if (this.sDateDiv == 'month') {
|
||||||
|
return moment(date).format('YYYY-MM');
|
||||||
|
} else if (this.sDateDiv == 'year') {
|
||||||
|
return moment(date).format('YYYY');
|
||||||
|
} else {
|
||||||
|
return moment(date).format('YYYY-MM-DD');
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -37,18 +37,19 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<login-popup ref="LoginPopup"> </login-popup>
|
<login-popup ref="LoginPopup"> </login-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import api from '../service/api';
|
import api from '../service/api';
|
||||||
import tokenSvc from '@/common/token-service';
|
import tokenSvc from '@/common/token-service';
|
||||||
import LoginPopup from '@/components/LoginPopup.vue'
|
import LoginPopup from '@/components/LoginPopup.vue'
|
||||||
//import * as utils from '@/common/utils';
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Params',
|
name: 'Params',
|
||||||
props: {
|
props: {
|
||||||
userId: {
|
userId: {
|
||||||
@@ -58,8 +59,9 @@
|
|||||||
},
|
},
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
|
row:{},
|
||||||
errors: [],
|
errors: [],
|
||||||
mdn: '01012341234',
|
mdn: '',
|
||||||
confirmNum: '',
|
confirmNum: '',
|
||||||
userId: '',
|
userId: '',
|
||||||
isAuthNum: false,
|
isAuthNum: false,
|
||||||
@@ -74,6 +76,7 @@
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
LoginPopup : LoginPopup
|
LoginPopup : LoginPopup
|
||||||
|
,commonModal
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
if(!!tokenSvc.getToken()){
|
if(!!tokenSvc.getToken()){
|
||||||
@@ -121,7 +124,7 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 2차 인증번호 요청
|
// 2차 인증번호 요청
|
||||||
authNum(){
|
async authNum(){
|
||||||
var vm = this;
|
var vm = this;
|
||||||
let userId = vm.$route.params.userId;
|
let userId = vm.$route.params.userId;
|
||||||
if(!this.isLogin){
|
if(!this.isLogin){
|
||||||
@@ -131,7 +134,10 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (vm.mdn == null || vm.mdn.trim() == "" || vm.mdn.length < 11 || !vm.mdn){
|
if (vm.mdn == null || vm.mdn.trim() == "" || vm.mdn.length < 11 || !vm.mdn){
|
||||||
vm.ModalOpen('modal06');
|
// vm.ModalOpen('modal06');
|
||||||
|
this.row.title = '휴대폰번호 확인';
|
||||||
|
this.row.msg1 = '휴대폰번호를 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var params = {
|
var params = {
|
||||||
@@ -139,30 +145,38 @@
|
|||||||
"hpNo": this.mdn,
|
"hpNo": this.mdn,
|
||||||
"isLogin" : this.isLogin
|
"isLogin" : this.isLogin
|
||||||
}
|
}
|
||||||
api.authNum(params).then(response => {
|
try {
|
||||||
|
const response = await api.authNum(params)
|
||||||
console.log(response);
|
console.log(response);
|
||||||
var rsp = response.data;
|
var rsp = response.data;
|
||||||
if(rsp.retCode == '0000'){
|
if(rsp.retCode == '0000'){
|
||||||
this.timerStop(this.timer);
|
this.timerStop(this.timer);
|
||||||
this.timer = this.timerStart();
|
this.timer = this.timerStart();
|
||||||
vm.ModalOpen('modal07');
|
this.row.title = '인증번호 발송';
|
||||||
|
this.row.msg1 = '인증번호를 발송하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal07');
|
||||||
// console.log('시간 3:00 카운트 하기');
|
// console.log('시간 3:00 카운트 하기');
|
||||||
this.isAuthNum = true;
|
this.isAuthNum = true;
|
||||||
}else if (!this.timer) {
|
}else if (!this.timer) {
|
||||||
this.timerStop(this.timer);
|
this.timerStop(this.timer);
|
||||||
this.timer = null;
|
this.timer = null;
|
||||||
vm.ModalOpen('modal06');
|
this.row.title = '인증번호 발송';
|
||||||
|
this.row.msg1 = '인증번호를 발송하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal06');
|
||||||
// 실패 -> 실패 코드에 따라 실패 팝업 보여주기
|
// 실패 -> 실패 코드에 따라 실패 팝업 보여주기
|
||||||
//인증시간 초과 후 “시간초과!” 문구로 변경
|
//인증시간 초과 후 “시간초과!” 문구로 변경
|
||||||
}
|
}
|
||||||
}).catch(response =>{
|
} catch(err) {
|
||||||
|
this.row.title = '로그인';
|
||||||
console.log(response);
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
});
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 2차 인증 확인
|
// 2차 인증 확인
|
||||||
ajaxAuth: function(){
|
async ajaxAuth(){
|
||||||
var vm = this;
|
var vm = this;
|
||||||
let userId = vm.$route.params.userId;
|
let userId = vm.$route.params.userId;
|
||||||
if (!vm.formCheck()){
|
if (!vm.formCheck()){
|
||||||
@@ -174,8 +188,6 @@
|
|||||||
this.ModalOpen('modal10');
|
this.ModalOpen('modal10');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var params = {
|
var params = {
|
||||||
"oprtrId": userId,
|
"oprtrId": userId,
|
||||||
"hpNo": this.mdn,
|
"hpNo": this.mdn,
|
||||||
@@ -185,46 +197,61 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//인증번호 확인
|
//인증번호 확인
|
||||||
api.confirmNum(params).then(function(response){
|
try {
|
||||||
var rsp = response.data;
|
const response = await api.confirmNum(params)
|
||||||
|
const rsp = response.data;
|
||||||
console.log("RESULT_CODE : "+rsp.retCode);
|
console.log("RESULT_CODE : "+rsp.retCode);
|
||||||
if(rsp.retCode == '0000'){
|
if(rsp.retCode == '0000'){
|
||||||
vm.$store.commit("login/isLogin", true);
|
vm.$store.commit("login/isLogin", true);
|
||||||
//var nextUrl = rsp.data.nextUrl;
|
//var nextUrl = rsp.data.nextUrl;
|
||||||
//vm.$router.push({ path: nextUrl});
|
//vm.$router.push({ path: nextUrl});
|
||||||
vm.$router.push({ path: '/'});
|
vm.$router.push({ path: '/'});
|
||||||
}else if(rsp.retCode == '4008') { //휴대폰번호 확인
|
}else if (rsp.retCode == '4008'){
|
||||||
vm.ModalOpen('modal06');
|
this.row.title = '휴대폰번호 확인';
|
||||||
|
this.row.msg1 = '휴대폰번호를 확인해주세요.';
|
||||||
|
this.row.msg2 = '아이디에 등록된 휴대폰번호로만 인증이 가능합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}else if (rsp.retCode == '4009'){
|
||||||
|
this.row.title = '인증실패';
|
||||||
|
this.row.msg1 = '인증시간 초과되었습니다.';
|
||||||
|
this.row.msg2 = '다시 휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}else if (rsp.retCode == '4010'){
|
||||||
|
this.row.title = '인증실패';
|
||||||
|
this.row.msg1 = '잘못된 인증번호입니다.';
|
||||||
|
this.row.msg2 = '5회 실패 시 로그아웃됩니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}else if (rsp.retCode == '4011'){
|
||||||
|
this.row.title = '인증실패';
|
||||||
|
this.row.msg1 = '인증번호 5회 실패하였습니다.';
|
||||||
|
this.row.msg2 = '로그아웃되어 다시 로그인해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
vm.$store.commit("login/isLogin", false);
|
||||||
|
vm.$store.commit("login/isAuthChk", false);
|
||||||
|
vm.$router.push({ path: '/'});
|
||||||
}
|
}
|
||||||
// else if(rsp.retCode == '4009') { //인증실패: 시간초과
|
} catch(err) {
|
||||||
// vm.ModalOpen('modal10');
|
//alert("실패 하였습니다.");
|
||||||
// }
|
this.row.title = '인증번호';
|
||||||
else{
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
if(rsp.retCode == '4010') { //인증실패: 인증번호
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
vm.ModalOpen('modal09');
|
|
||||||
}
|
}
|
||||||
else if(rsp.retCode == '4011') { //인증실패: 5회
|
|
||||||
vm.ModalOpen('modal11');
|
|
||||||
// vm.$router.go(-1)
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
// else{
|
|
||||||
// }
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
formCheck: function() {
|
formCheck: function() {
|
||||||
this.errors = [];
|
this.errors = [];
|
||||||
if(!this.mdn){
|
if(!this.mdn){
|
||||||
this.ModalOpen('modal06');
|
this.row.title = '휴대폰번호 확인';
|
||||||
|
this.row.msg1 = '휴대폰번호를 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else if(!this.isAuthNum){
|
} else if(!this.isAuthNum){
|
||||||
this.errors.push('인증요청을 먼저 해주세요.');
|
this.row.title = '인증번호 입력';
|
||||||
|
this.row.msg1 = '인증요청을 먼저 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}else if(!this.confirmNum){
|
}else if(!this.confirmNum){
|
||||||
this.ModalOpen('modal08');
|
this.row.title = '인증번호 입력';
|
||||||
|
this.row.msg1 = '인증번호를 입력하세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.errors.length == 0;
|
return this.errors.length == 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -273,5 +300,5 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="wrap bg-wrap">
|
<div class="wrap bg-wrap">
|
||||||
<div class="login-box adm-login">
|
<div class="login-box adm-login">
|
||||||
<div class="wbox">
|
<div class="wbox">
|
||||||
<div class="logo"></div>
|
<div class="logo"></div>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<span class="lcont"><input type="checkbox" id="id-remember" ref="chkSaveId" checked><label for="id-remember">아이디 저장</label></span>
|
<span class="lcont"><input type="checkbox" id="id-remember" ref="chkSaveId" checked><label for="id-remember">아이디 저장</label></span>
|
||||||
<span class="rcont"><button class="btn-pwreset" @click="clickMenu('/view/login/resetPassword')">비밀번호 초기화</button></span>
|
<span class="rcont"><button class="btn-pwreset" @click="clickMenu('/view/login/resetPassword')">비밀번호 초기화</button></span>
|
||||||
</li>
|
</li>
|
||||||
<li><button class="btn-pcolor" v-on:click="ajaxlogin">로그인</button></li>
|
<li><button class="btn-pcolor" @click="ajaxlogin">로그인</button></li>
|
||||||
</div>
|
</div>
|
||||||
<!-- </form> -->
|
<!-- </form> -->
|
||||||
<div class="login-notice">
|
<div class="login-notice">
|
||||||
@@ -25,18 +25,20 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<login-popup ref="LoginPopup"> </login-popup>
|
<login-popup ref="LoginPopup"> </login-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import api from '../service/api';
|
import api from '../service/api';
|
||||||
import LoginPopup from '@/components/LoginPopup.vue';
|
import LoginPopup from '@/components/LoginPopup.vue';
|
||||||
import tokenSvc from '@/common/token-service';
|
import tokenSvc from '@/common/token-service';
|
||||||
//import * as utils from '@/common/utils';
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
|
row:{},
|
||||||
errors: [],
|
errors: [],
|
||||||
corpId: '',
|
corpId: '',
|
||||||
userId: '',
|
userId: '',
|
||||||
@@ -67,7 +69,8 @@
|
|||||||
cont.classList.remove("login-wrap");
|
cont.classList.remove("login-wrap");
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
LoginPopup : LoginPopup
|
LoginPopup : LoginPopup,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
chgChkUserId() {
|
chgChkUserId() {
|
||||||
@@ -80,21 +83,24 @@
|
|||||||
toRegister(){
|
toRegister(){
|
||||||
this.$router.push({ name: 'register'});
|
this.$router.push({ name: 'register'});
|
||||||
},
|
},
|
||||||
formCheck: function() {
|
async ajaxlogin() {
|
||||||
this.errors = [];
|
|
||||||
|
|
||||||
|
|
||||||
if (!this.userId) this.errors.push('아이디를 입력해 주세요.');
|
|
||||||
if (!this.userPwd) this.errors.push('비밀번호를 입력해 주세요.');
|
|
||||||
|
|
||||||
return this.errors.length == 0;
|
|
||||||
},
|
|
||||||
ajaxlogin: function() {
|
|
||||||
|
|
||||||
var vm = this;
|
var vm = this;
|
||||||
vm.errmsg = null;
|
vm.errmsg = null;
|
||||||
|
// if (!vm.formCheck()) return false;
|
||||||
if (!vm.formCheck()) return false;
|
console.log(this.userId)
|
||||||
|
if (!this.userId){
|
||||||
|
this.row.title = '로그인 실패';
|
||||||
|
this.row.msg1 = '아이디,비밀번호를 확인해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!this.userPwd){
|
||||||
|
this.row.title = '비밀번호 오류';
|
||||||
|
this.row.msg1 = '비밀번호를 확인해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
let oprtrId = this.userId;
|
let oprtrId = this.userId;
|
||||||
let oprtrPw = this.userPwd;
|
let oprtrPw = this.userPwd;
|
||||||
@@ -106,9 +112,10 @@
|
|||||||
"oprtrPw": this.userPwd,
|
"oprtrPw": this.userPwd,
|
||||||
}
|
}
|
||||||
//로그인버튼을 누를시 상황
|
//로그인버튼을 누를시 상황
|
||||||
api.login(params).then(function(response) {
|
try {
|
||||||
|
const response = await api.login(params)
|
||||||
var rsp = response.data;
|
const rsp = response.data;
|
||||||
|
console.log(rsp);
|
||||||
|
|
||||||
if(rsp.retCode == '0000'){
|
if(rsp.retCode == '0000'){
|
||||||
var path = rsp.data.nextUrl;
|
var path = rsp.data.nextUrl;
|
||||||
@@ -117,24 +124,42 @@
|
|||||||
vm.$store.commit("login/isLogin", true);
|
vm.$store.commit("login/isLogin", true);
|
||||||
vm.$store.commit("login/savePwd", oprtrPw);
|
vm.$store.commit("login/savePwd", oprtrPw);
|
||||||
vm.$router.push({ name: 'loginAuth',params: {userId : oprtrId}});
|
vm.$router.push({ name: 'loginAuth',params: {userId : oprtrId}});
|
||||||
|
} else if(rsp.retCode == '4003') { // ID 조회 없음.
|
||||||
|
this.row.title = '로그인 실패';
|
||||||
|
this.row.msg1 = '등록되지 않은 아이디입니다.';
|
||||||
|
this.row.msg2 = '아이디를 다시 확인하세요';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else if(rsp.retCode == '4004') { // ID/PWD 불일치
|
} else if(rsp.retCode == '4004') { // ID/PWD 불일치
|
||||||
vm.errors.push('로그인 실패하였습니다. (5회 실패 시 계정 잠김)');
|
this.row.title = '비밀번호 오류';
|
||||||
vm.ModalOpen('modal01');
|
this.row.msg1 = '비밀번호를 확인해주세요.';
|
||||||
} else if(rsp.retCode == '4005') { // ID/PWD 불일치 횟수초과로 계정 잠김
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// msg = '5회 이상 로그인 실패하여 해당 아이디에 대한 계정이 잠금처리되었습니다.\n관리자에게 문의하세요.';
|
} else if(rsp.retCode == '4005') { // ID/PWD 불일치 횟수초과로 계정 잠김 4005
|
||||||
vm.ModalOpen('modal02');
|
this.row.title = '로그인 실패';
|
||||||
|
this.row.msg1 = '로그인 5회 실패하였습니다.';
|
||||||
|
this.row.msg2 = '비밀번호 초기화 후 비밀번호를 변경해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else if(rsp.retCode == '4006') {
|
} else if(rsp.retCode == '4006') {
|
||||||
// msg = '비밀번호를 변경하신지 90일이 지났습니다.\n비밀번호 변경 화면으로 이동합니다.';
|
// msg = '비밀번호를 변경하신지 90일이 지났습니다.\n비밀번호 변경 화면으로 이동합니다.';
|
||||||
vm.chgChkUserId();
|
this.row.title = '로그인 실패';
|
||||||
vm.ModalOpen('modal04');
|
this.row.msg1 = '비밀번호를 변경하지 않은지 90일이';
|
||||||
|
this.row.msg2 = '지났습니다. 비밀번호를 변경하여';
|
||||||
|
this.row.msg3 = '이용 부탁드립니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else if(rsp.retCode == '4007') {
|
} else if(rsp.retCode == '4007') {
|
||||||
// msg = '관리자 승인 후 이용할 수 있습니다.';
|
this.row.title = '로그인 실패';
|
||||||
vm.ModalOpen('modal03');
|
this.row.msg1 = '아이디 상태를 확인해 주세요.';
|
||||||
|
this.row.msg2 = '(사용중인 상태만 로그인 가능합니다.)';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else {
|
} else {
|
||||||
vm.$store.commit("login/isLogin", false);
|
vm.$store.commit("login/isLogin", false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
} catch(err) {
|
||||||
|
//alert("실패 하였습니다.");
|
||||||
|
this.row.title = '로그인';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
<!-- <form action=""> -->
|
<!-- <form action=""> -->
|
||||||
<div class="login-form">
|
<div class="login-form">
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<input type="text" placeholder="아이디를 입력하세요" v-model="userId"></div>
|
<input type="text" placeholder="아이디를 입력하세요" v-model="userId"></div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button class="btn-pcolor" @click="ajaxReset">비밀번호 초기화 문자 발송하기</button>
|
<button class="btn-pcolor" @click="ajaxReset">비밀번호 초기화 문자 발송하기</button>
|
||||||
@@ -23,24 +22,22 @@
|
|||||||
<li>초기화된 비밀번호는 등록된 휴대폰 문자메시지로 발송됩니다.</li>
|
<li>초기화된 비밀번호는 등록된 휴대폰 문자메시지로 발송됩니다.</li>
|
||||||
<li>휴대폰 번호 변경 시 관리자로 문의해주세요.</li>
|
<li>휴대폰 번호 변경 시 관리자로 문의해주세요.</li>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<login-popup ref="LoginPopup"> </login-popup>
|
<login-popup ref="LoginPopup"> </login-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import api from '../service/api';
|
import api from '../service/api';
|
||||||
import LoginPopup from '@/components/LoginPopup.vue';
|
import LoginPopup from '@/components/LoginPopup.vue';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'resetPassword',
|
name: 'resetPassword',
|
||||||
data: function() {
|
data: function() {
|
||||||
@@ -54,20 +51,24 @@ export default {
|
|||||||
this.$store.commit("login/isAuthChk", false);
|
this.$store.commit("login/isAuthChk", false);
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
LoginPopup
|
LoginPopup,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formCheck: function()
|
formCheck: function()
|
||||||
{
|
{
|
||||||
this.errors = [];
|
this.errors = [];
|
||||||
if (!this.userId) {
|
if (!this.userId) {
|
||||||
this.errors.push('아이디를 입력해 주세요.');
|
this.row.title = '아이디 오류';
|
||||||
|
this.row.msg1 = '아이디를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// this.errors.push('아이디를 입력해 주세요.');
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.errors.length == 0;
|
return this.errors.length == 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
ajaxReset: function(){
|
async ajaxReset(){
|
||||||
var vm = this;
|
var vm = this;
|
||||||
//vm.errmsg = null;
|
//vm.errmsg = null;
|
||||||
if (!vm.formCheck()) return false;
|
if (!vm.formCheck()) return false;
|
||||||
@@ -77,33 +78,41 @@ export default {
|
|||||||
"userId": this.userId,
|
"userId": this.userId,
|
||||||
//"userPwd": this.userPwd,
|
//"userPwd": this.userPwd,
|
||||||
}
|
}
|
||||||
api.resetPassword(params).then(function(response){
|
try {
|
||||||
var rsp = response.data;
|
const response = await api.resetPassword(params)
|
||||||
|
const rsp = response.data;
|
||||||
console.log("RESULT_CODE : "+rsp.retCode);
|
console.log("RESULT_CODE : "+rsp.retCode);
|
||||||
|
|
||||||
if(rsp.retCode == '0000'){
|
if(rsp.retCode == '0000'){
|
||||||
// vm.$store.commit("login/isLogin", true);
|
// vm.$store.commit("login/isLogin", true);
|
||||||
//vm.$store.commit("login/isAuthChk", true);
|
//vm.$store.commit("login/isAuthChk", true);
|
||||||
|
this.row.title = '비밀번호 초기화';
|
||||||
vm.ModalOpen('modal12');
|
this.row.msg1 = '해당 아이디에 저장되어 있는 핸드폰번호로';
|
||||||
|
this.row.msg2 = '비밀번호 초기화 문자가 발송되었습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal12');
|
||||||
//vm.$router.push({ path : 'view/login'});
|
//vm.$router.push({ path : 'view/login'});
|
||||||
|
|
||||||
} else if(rsp.retCode == '4003') {
|
} else if(rsp.retCode == '4003') {
|
||||||
vm.ModalOpen('modal13');
|
this.row.title = '비밀번호 초기화';
|
||||||
} else {
|
this.row.msg1 = '등록되지 않은 아이디입니다.';
|
||||||
return;
|
this.row.msg2 = '아이디를 다시 확인하세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal13');
|
||||||
|
}
|
||||||
|
// document.getElementsByClassName('modal12')[0].getElementsByClassName('btn-pcolor')[0].addEventListener('click',() => {
|
||||||
|
// vm.$router.push({path: '/login'});
|
||||||
|
} catch(err) {
|
||||||
|
//alert("실패 하였습니다.");
|
||||||
|
this.row.title = '비밀번호 초기화';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
document.getElementsByClassName('modal12')[0].getElementsByClassName('btn-pcolor')[0].addEventListener('click',() => {
|
|
||||||
vm.$router.push({path: '/login'});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
clickMenu(link) {
|
clickMenu(link) {
|
||||||
|
this.$router.push({path: link});
|
||||||
this
|
|
||||||
.$router
|
|
||||||
.push({path: link});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
ModalOpen: function(target){
|
ModalOpen: function(target){
|
||||||
|
|||||||
@@ -19,7 +19,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<login-popup ref="LoginPopup"> </login-popup>
|
<login-popup ref="LoginPopup"> </login-popup>
|
||||||
</div>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
@@ -31,8 +32,8 @@ import { mapGetters } from 'vuex';
|
|||||||
import LoginPopup from '@/components/LoginPopup.vue';
|
import LoginPopup from '@/components/LoginPopup.vue';
|
||||||
import tokenSvc from '@/common/token-service';
|
import tokenSvc from '@/common/token-service';
|
||||||
import { commonPwdView, validation } from '../service/mixins';
|
import { commonPwdView, validation } from '../service/mixins';
|
||||||
// import { chkPattern } from '@/common/vue-mixins';
|
import commonModal from "@/components/modal/commonModal";
|
||||||
// import * as utils from '@/common/utils';
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [commonPwdView, validation],
|
mixins: [commonPwdView, validation],
|
||||||
data: function() {
|
data: function() {
|
||||||
@@ -89,7 +90,8 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
LoginPopup : LoginPopup
|
LoginPopup : LoginPopup,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
@@ -108,20 +110,26 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
debugger;
|
//debugger;
|
||||||
if(lodash.isNil(this.newPw)){
|
if(lodash.isNil(this.newPw)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '비밀번호 변경';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._newPw2.focus();
|
this.$refs._newPw2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.newPw, this.newPw2)){
|
if(!lodash.isEqual(this.newPw, this.newPw2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '비밀번호 변경';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._newPw2.focus();
|
this.$refs._newPw2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.newPw);
|
const pwdLen = this.bytes(this.newPw);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '비밀번호 변경';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._newPw2.focus();
|
this.$refs._newPw2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -129,7 +137,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.newPw) && pNum.test(this.newPw) && pSpc.test(this.newPw))) {
|
if(!(pEng.test(this.newPw) && pNum.test(this.newPw) && pSpc.test(this.newPw))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '비밀번호 변경';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._newPw2.focus();
|
this.$refs._newPw2.focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -155,26 +165,31 @@ export default {
|
|||||||
|
|
||||||
if(rsp.retCode == '0000') {
|
if(rsp.retCode == '0000') {
|
||||||
// vm.chgChkUserId();
|
// vm.chgChkUserId();
|
||||||
|
this.row.title = '비밀번호 변경';
|
||||||
if(vm.ModalOpen('modal16')){
|
this.row.msg1 = '비밀번호가 정상적으로 변경되었습니다.';
|
||||||
|
this.row.msg2 = '변경된 비밀번호로 다시 로그인 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// if(vm.ModalOpen('modal16')){
|
||||||
vm.$router.push({ path: '/login' });
|
vm.$router.push({ path: '/login' });
|
||||||
}
|
// }
|
||||||
} else if(rsp.retCode == '4016') {
|
} else if(rsp.retCode == '4016') {
|
||||||
vm.ModalOpen('modal14')
|
this.row.title = '비밀번호 변경';
|
||||||
|
this.row.msg1 = '비밀번호를 확인해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal14')
|
||||||
} else if(rsp.retCode == '4017') {
|
} else if(rsp.retCode == '4017') {
|
||||||
vm.ModalOpen('modal15')
|
this.row.title = '비밀번호 오류';
|
||||||
|
this.row.msg1 = '비밀번호를 사용할 수 없습니다.';
|
||||||
|
this.row.msg2 = '비밀번호는 영문/숫자/특수기호를 혼합하여';
|
||||||
|
this.row.msg3 = '8~16자리로 설정해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// vm.ModalOpen('modal15')
|
||||||
} else if(rsp.retCode == '4003') {
|
} else if(rsp.retCode == '4003') {
|
||||||
if(vm.ModalOpen('modal14')) {
|
this.row.title = '아이디 오류';
|
||||||
//수정사항 : 모달오픈 -> 기존비밀번호 포커스
|
this.row.msg1 = '등록되지 않은 아이디입니다.';
|
||||||
alert('1');
|
this.row.msg1 = '아이디를 다시 확인하세요';
|
||||||
}
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
|
||||||
// //this.$refs.oldPw.focus();
|
|
||||||
// alert('비밀번호 유효성체크');
|
|
||||||
// vm.$refs.oldPw.focus();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,17 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>발신번호</th>
|
<th>발신번호</th>
|
||||||
<td><input type="number" v-model.trim="blckSndrno" ref="blckSndrno"></td>
|
<td><input type="number" placeholder="- 자 제외 숫자만 입력" maxlength="11" v-model.trim="blckSndrno" v-on:keyup="onlyNum" @input="onlyNum" ref="_blckSndrno"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>발송타입</th>
|
<th>발송타입</th>
|
||||||
<td>
|
<td v-if="code === null || code === ''">
|
||||||
<div class="select_box">
|
<div v:class="select_box">
|
||||||
<select name="" id="" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
|
<select name="" id="right" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
|
||||||
<option v-for="(option, i) in tpType" v-bind:value="option.code" v-bind:key="i">
|
<option v-for="(option, i) in tpType"
|
||||||
|
:value="sndblckTpCd"
|
||||||
|
v-bind:key="i"
|
||||||
|
>
|
||||||
{{ option.codeNm }}
|
{{ option.codeNm }}
|
||||||
</option>
|
</option>
|
||||||
<!-- <option value="">문자</option>
|
<!-- <option value="">문자</option>
|
||||||
@@ -33,9 +36,9 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>차단사유</th>
|
<th>차단사유</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="select_box">
|
<div>
|
||||||
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
||||||
<option v-for="(option, i) in rsnType" v-bind:value="option.code" v-bind:key="i">
|
<option v-for="(option, i) in rsnType" :value="blckRsnCd" v-bind:key="i">
|
||||||
{{ option.codeNm }}
|
{{ option.codeNm }}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -49,23 +52,11 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<div class="pop-btn2">
|
<div class="popup-btn2">
|
||||||
<button class="btn-pcolor" @click="doInsert">등록</button>
|
<button class="btn-pcolor" @click="doInsert">등록</button>
|
||||||
<button class="btn-default" @click="ModalClose();">취소</button>
|
<button class="btn-default" @click="ModalClose();">취소</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
|
||||||
<!-- 신규등록 - 등록 선택 -->
|
|
||||||
<div class="popup modal54">
|
|
||||||
<div class="pop-head">
|
|
||||||
<div class="pop-tit">신규등록</div>
|
|
||||||
</div>
|
|
||||||
<div class="pop-cont">
|
|
||||||
<div>작성된 내용으로 등록 하시겠습니까?</div>
|
|
||||||
</div>
|
|
||||||
<div class="pop-btn2">
|
|
||||||
<button class="btn-pcolor">확인</button>
|
|
||||||
<button class="btn-default" onclick="ModalClose();">취소</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -74,8 +65,11 @@
|
|||||||
<script>
|
<script>
|
||||||
import api from '@/service/api';
|
import api from '@/service/api';
|
||||||
import riskMgtApi from '../service/riskMgtApi'
|
import riskMgtApi from '../service/riskMgtApi'
|
||||||
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
export default {
|
export default {
|
||||||
|
mixins: [utils_mixin, chkPattern2],
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
row: {},
|
row: {},
|
||||||
@@ -85,6 +79,7 @@ export default {
|
|||||||
sndblckTpCd: '',
|
sndblckTpCd: '',
|
||||||
blckRsnCd: '',
|
blckRsnCd: '',
|
||||||
meno: '',
|
meno: '',
|
||||||
|
code:"",
|
||||||
|
|
||||||
// params: {
|
// params: {
|
||||||
// 'blckSndrno' : ''
|
// 'blckSndrno' : ''
|
||||||
@@ -97,6 +92,9 @@ export default {
|
|||||||
create(){
|
create(){
|
||||||
// this.setCodeDate();
|
// this.setCodeDate();
|
||||||
this.formReset();
|
this.formReset();
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
//모달 띄우기
|
//모달 띄우기
|
||||||
@@ -131,7 +129,10 @@ export default {
|
|||||||
const response = await riskMgtApi.insertIntrcp(this.row);
|
const response = await riskMgtApi.insertIntrcp(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
console.log(this.row);
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
@@ -150,21 +151,21 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
isNull(obj){
|
|
||||||
if(lodash.isNil(obj) || lodash.trim(obj) == ''){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
|
|
||||||
doValidate(){
|
doValidate(){
|
||||||
if(this.isNull(this.blckSndrno)){
|
if(this.isNull(this.blckSndrno)){
|
||||||
alert("번호입력.");
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._blckSndrno.focus();
|
this.$refs._blckSndrno.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.meno)){
|
const hp = this.blckSndrno;
|
||||||
alert('메모입력');
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
|
alert("발신번호 형식이 잘못되었습니다. 확인 해주세요.");
|
||||||
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
this.$refs._blckSndrno.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.row.blckSndrno=this.blckSndrno;
|
this.row.blckSndrno=this.blckSndrno;
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
|
<div>
|
||||||
|
<div class="dimmed" @click="ModalClose();"></div>
|
||||||
|
<div class="popup-wrap">
|
||||||
<!-- 메시지 차단 신규 등록 -->
|
<!-- 메시지 차단 신규 등록 -->
|
||||||
<div class="popup popup_form modal57">
|
<div class="popup popup_form modal57">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -11,21 +14,16 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>차단문구</th>
|
<th>차단문구</th>
|
||||||
<td class="input_add">
|
<td class="input_add">
|
||||||
<input type="text" value="">
|
<input v-model="word" ref="_word">
|
||||||
<button class="button white add" onclick=""></button>
|
<button type="button" class="button white add" @click="doAdd"></button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" class="registration">
|
<td colspan="2" class="registration" value="">
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li v-for="(item, i) in msgBlckwordList" v-bind:key="item.word">
|
||||||
<span>도박<a href="#"><img src="./images/icon-del.png"/></a></span>
|
<span> {{ item.word }}<a href="#" @click="doDel(item, i)"><img src="@/assets/images/icon-del.png"/></a> </span>
|
||||||
</li>
|
<!-- <button type="button" @click="doDel(item, i)">x</button> -->
|
||||||
<li>
|
|
||||||
<span>광고<a href="#"><img src="./images/icon-del.png"/></a></span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<span>술<a href="#"><img src="./images/icon-del.png"/></a></span>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
@@ -33,9 +31,9 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>조건</th>
|
<th>조건</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="radio" name="state" value="AND" id="popup_radio3" checked="">
|
<input type="radio" name="state" value="01" id="popup_radio3" v-model="blckContCd" >
|
||||||
<label for="popup_radio3">AND</label>
|
<label for="popup_radio3">AND</label>
|
||||||
<input type="radio" name="state" value="OR" id="popup_radio4">
|
<input type="radio" name="state" value="02" id="popup_radio4" v-model="blckContCd">
|
||||||
<label for="popup_radio4">OR</label>
|
<label for="popup_radio4">OR</label>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -43,35 +41,166 @@
|
|||||||
<th>차단사유</th>
|
<th>차단사유</th>
|
||||||
<td>
|
<td>
|
||||||
<div>
|
<div>
|
||||||
<select name="" id="">
|
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
||||||
<option value="일반">일반</option>
|
<option v-for="(option, i) in rsnType"
|
||||||
<option selected value="대출">대출</option>
|
:value="blckRsnCd"
|
||||||
<option value="의약품">의약품</option>
|
v-bind:key="i"
|
||||||
<option value="도박출">도박</option>
|
:selected="blckRsnCd === option.code">
|
||||||
<option value="스미싱">스미싱</option>
|
{{ option.codeNm }}
|
||||||
<option value="기타">기타</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>메모</th>
|
<th>메모</th>
|
||||||
<td class="sender"><textarea class="memo_text"></textarea></td>
|
<td class="sender"><textarea class="memo_text" v-model.trim="memo" ref="memo"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<div class="popup-btn2">
|
<div class="popup-btn2">
|
||||||
<button class="btn-pcolor">저장</button>
|
<button class="btn-pcolor" @click="doInsert">저장</button>
|
||||||
<button class="btn-default" onClick="ModalClose();">취소</button>
|
<button class="btn-default" @click="ModalClose();">취소</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import api from '@/service/api';
|
||||||
|
import riskMgtApi from '../service/riskMgtApi';
|
||||||
|
import lodash from "lodash";
|
||||||
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
export default {
|
export default {
|
||||||
|
mixins: [utils_mixin, chkPattern2],
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
|
||||||
|
row: {},
|
||||||
|
// msgBlckword: {
|
||||||
|
// word:'',
|
||||||
|
// },
|
||||||
|
msgBlckwordList: [
|
||||||
|
{ seqNo: '' , word : '도박'},
|
||||||
|
// { word : '스팸'},
|
||||||
|
],
|
||||||
|
rsnType: [],
|
||||||
|
tpType: [],
|
||||||
|
// seqNo: '', // 일련번호
|
||||||
|
word: '', // 차단문구
|
||||||
|
blckSndrno:'',
|
||||||
|
sndblckTpCd:'',
|
||||||
|
blckRsnCd: '', // 차단사유
|
||||||
|
blckYn:'',
|
||||||
|
blckContCd:'', //차단 조건
|
||||||
|
chgDt:'',
|
||||||
|
regId: '',
|
||||||
|
regDt: '',
|
||||||
|
memo: '', // 메모
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
this.formReset();
|
||||||
|
},
|
||||||
|
|
||||||
|
methods :{
|
||||||
|
ModalOpen(){
|
||||||
|
this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'block';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'block';
|
||||||
|
var obj = document.getElementsByClassName('modal57');
|
||||||
|
obj[0].style.display = 'block';
|
||||||
|
this.setCodeDate();
|
||||||
|
},
|
||||||
|
// 모달 끄기
|
||||||
|
ModalClose(){
|
||||||
|
//this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'none';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'none';
|
||||||
|
var popup = document.getElementsByClassName('modal57');
|
||||||
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
setCodeDate(){
|
||||||
|
// 발송타입
|
||||||
|
api.commCode({'grpCd' : 'SNDBLCK_TP_CD'}).then(response => {
|
||||||
|
this.tpType = response.data.data.list;
|
||||||
|
});
|
||||||
|
api.commCode({'grpCd' : 'SNDBLCK_RSN_CD'}).then(response => {
|
||||||
|
this.rsnType = response.data.data.list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
async doInsert(){
|
||||||
|
if(this.doValidate() && window.confirm('등록 하시겠습니까?')){
|
||||||
|
try {
|
||||||
|
const response = await riskMgtApi.msgIntrcpList(this.row);
|
||||||
|
const result = response.data;
|
||||||
|
if (result != null && result.retCode == "0000") {
|
||||||
|
alert('저장 하였습니다.');
|
||||||
|
}
|
||||||
|
this.toComplete();
|
||||||
|
} catch(err) {
|
||||||
|
alert("실패 하였습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
doValidate(){
|
||||||
|
if(this.isNull(this.word)){
|
||||||
|
this.$refs._word.focus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.row.blckRsnCd = this.blckRsnCd;
|
||||||
|
this.row.blckContCd = this.blckContCd;
|
||||||
|
this.row.memo = this.memo;
|
||||||
|
this.row.blckYn = this.blckYn;
|
||||||
|
this.row.list = this.msgBlckwordList
|
||||||
|
return true;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
toComplete(){
|
||||||
|
this.$parent.$refs.table.reloadData();
|
||||||
|
this.ModalClose();
|
||||||
|
},
|
||||||
|
//신규등록 팝업에서 문구 추가 버튼
|
||||||
|
doAdd: function() {
|
||||||
|
if(this.msgBlckwordList.length < 10){
|
||||||
|
this.msgBlckwordList.push({
|
||||||
|
//seqNo: '',
|
||||||
|
word: this.word
|
||||||
|
});
|
||||||
|
this.word = '';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//신규등록 팝업에서 문구 삭제 버튼
|
||||||
|
doDel(item, i){
|
||||||
|
localStorage.removeItem(item);
|
||||||
|
this.msgBlckwordList.splice(i, 1);
|
||||||
|
},
|
||||||
|
formReset(){
|
||||||
|
var type= this.insertType;
|
||||||
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
this.insertType = type;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>발송타입</th>
|
<th>발송타입</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="select_box">
|
<div>
|
||||||
<select name="" id="" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
|
<select name="" id="" v-model.trim="sndblckTpCd" ref="sndblckTpCd">
|
||||||
<option v-for="(option, i) in tpType" v-bind:value="option.code" v-bind:key="i">
|
<option v-for="(option, i) in tpType" v-bind:value="option.code" v-bind:key="i">
|
||||||
{{ option.codeNm }}
|
{{ option.codeNm }}
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>차단사유</th>
|
<th>차단사유</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="select_box">
|
<div>
|
||||||
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
||||||
<option v-for="(option, i) in rsnType" v-bind:value="option.code" v-bind:key="i">
|
<option v-for="(option, i) in rsnType" v-bind:value="option.code" v-bind:key="i">
|
||||||
{{ option.codeNm }}
|
{{ option.codeNm }}
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
<div class="pop-btn2 pop-btn3">
|
<div class="popup-btn2 pop-btn3">
|
||||||
<button class="btn-pcolor" @click="IntrcpUpdateModal();">수정</button>
|
<button class="btn-pcolor" @click="IntrcpUpdateModal();">수정</button>
|
||||||
<button class="btn-default" @click="IntrcpDetailModalClose();">취소</button>
|
<button class="btn-default" @click="IntrcpDetailModalClose();">취소</button>
|
||||||
<button class="btn-p2color" @click="IntrcpDeleteModal()">삭제</button>
|
<button class="btn-p2color" @click="IntrcpDeleteModal()">삭제</button>
|
||||||
@@ -131,10 +131,12 @@ export default {
|
|||||||
dimmed[i].style.display = 'none';
|
dimmed[i].style.display = 'none';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//삭제버튼
|
||||||
async IntrcpDeleteModal(){
|
async IntrcpDeleteModal(){
|
||||||
|
this.setCodeDate();
|
||||||
if(window.confirm('삭제 하시겠습니까?')){
|
if(window.confirm('삭제 하시겠습니까?')){
|
||||||
try {
|
try {
|
||||||
let response = await riskMgtApi.deleteIntrcp(this.row);
|
const response = await riskMgtApi.deleteIntrcp(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('삭제 하였습니다.');
|
alert('삭제 하였습니다.');
|
||||||
@@ -147,10 +149,11 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//수정버튼
|
||||||
async IntrcpUpdateModal(){
|
async IntrcpUpdateModal(){
|
||||||
if(window.confirm('수정 하시겠습니까?')){
|
if(this.doValidate() && window.confirm('수정 하시겠습니까?')){
|
||||||
try {
|
try {
|
||||||
let response = await riskMgtApi.updateIntrcp(this.row);
|
const response = await riskMgtApi.updateIntrcp(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('수정 하였습니다.');
|
alert('수정 하였습니다.');
|
||||||
@@ -175,8 +178,18 @@ export default {
|
|||||||
|
|
||||||
toComplete(){
|
toComplete(){
|
||||||
this.$parent.$refs.table.reloadData();
|
this.$parent.$refs.table.reloadData();
|
||||||
alert('1');
|
this.IntrcpDetailModalClose();
|
||||||
this.ModalClose();
|
},
|
||||||
|
|
||||||
|
doValidate(){
|
||||||
|
this.row.blckSndrno=this.blckSndrno;
|
||||||
|
this.row.sndblckTpCd = this.sndblckTpCd;
|
||||||
|
this.row.blckYn = this.blckYn;
|
||||||
|
this.row.chgDt = this.chgDt;
|
||||||
|
this.row.blckRsnCd = this.blckRsnCd;
|
||||||
|
this.row.chgId = this.chgId;
|
||||||
|
this.row.meno=this.meno;
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
268
frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue
Normal file
268
frontend/src/modules/riskMgt/components/IntrcpMsgDetail.vue
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
|
<div>
|
||||||
|
<div class="dimmed modal58" @click="ModalClose();"></div>
|
||||||
|
<div class="popup-wrap modal58">
|
||||||
|
<!-- 메시지 차단 신규 등록 -->
|
||||||
|
<div class="popup modal58 popup_form">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">메시지 차단 상세</h3>
|
||||||
|
</div>
|
||||||
|
<form autocomplete="off">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>차단문구</th>
|
||||||
|
<td class="input_add">
|
||||||
|
<input v-model="word">
|
||||||
|
<button type="button" class="button white add" @click="doAdd"></button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="registration" value="">
|
||||||
|
<ul>
|
||||||
|
<li v-for="(item, i) in msgBlckwordList" v-bind:key="item.word">
|
||||||
|
<span> {{ item.word }}<a href="#" @click="doDel(item, i)"><img src="@/assets/images/icon-del.png"/></a> </span>
|
||||||
|
<!--<button type="button" @click="doDel(item, i)"></button> -->
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<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>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>차단사유</th>
|
||||||
|
<td>
|
||||||
|
<div class="select_box">
|
||||||
|
<select name="" id="" v-model.trim="blckRsnCd" ref="blckRsnCd">
|
||||||
|
<option v-for="(option, i) in rsnType"
|
||||||
|
v-bind:value="option.code"
|
||||||
|
v-bind:key="i"
|
||||||
|
:selected="blckRsnCd === option.code">
|
||||||
|
{{ option.codeNm }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>메모</th>
|
||||||
|
<td class="sender"><textarea class="memo_text" v-model.trim="memo" ref="memo"></textarea></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>차단여부</th>
|
||||||
|
<td>
|
||||||
|
<input type="radio" name="state01" value="AND" id="popup_radio7">
|
||||||
|
<label for="popup_radio7">해제</label>
|
||||||
|
<input type="radio" name="state01" value="OR" id="popup_radio8">
|
||||||
|
<label for="popup_radio8">차단</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
<div class="popup-btn2 pop-btn3">
|
||||||
|
<button class="btn-pcolor" @click="MsgIntrcpUpdateModal()">수정</button>
|
||||||
|
<button class="btn-default" @click="IntrcpDetailModalClose();">취소</button>
|
||||||
|
<button class="btn-p2color" @click="MsgIntrcpDeleteModal()">삭제</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import api from '@/service/api';
|
||||||
|
import riskMgtApi from '../service/riskMgtApi';
|
||||||
|
export default {
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
|
||||||
|
row: {},
|
||||||
|
msgBlckwordList: [],
|
||||||
|
rsnType: [],
|
||||||
|
tpType: [],
|
||||||
|
word: '', // 차단문구
|
||||||
|
blckSndrno:'',
|
||||||
|
sndblckTpCd:'',
|
||||||
|
blckRsnCd: '', // 차단사유
|
||||||
|
blckYn:'',
|
||||||
|
blckContCd:'', //차단 조건
|
||||||
|
chgDt:'',
|
||||||
|
regId: '',
|
||||||
|
regDt: '',
|
||||||
|
memo: '', // 메모
|
||||||
|
seqNo: '',
|
||||||
|
props: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
this.formReset();
|
||||||
|
},
|
||||||
|
|
||||||
|
methods :{
|
||||||
|
ModalOpen(){
|
||||||
|
this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'block';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'block';
|
||||||
|
var obj = document.getElementsByClassName('modal58');
|
||||||
|
obj[0].style.display = 'block';
|
||||||
|
this.setCodeDate();
|
||||||
|
},
|
||||||
|
// 모달 끄기
|
||||||
|
ModalClose(){
|
||||||
|
//this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'none';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'none';
|
||||||
|
var popup = document.getElementsByClassName('modal58');
|
||||||
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
},
|
||||||
|
async IntrcpMsgDetailModalOpen(props){
|
||||||
|
this.setCodeDate();
|
||||||
|
// console.log(props);
|
||||||
|
this.row.seqNo = props.seqNo;
|
||||||
|
try {
|
||||||
|
const response = await riskMgtApi.msgIntrcpDetail(this.row);
|
||||||
|
const result = response.data;
|
||||||
|
console.log(result);
|
||||||
|
if (result != null && result.retCode == "0000") {
|
||||||
|
this.blckContCd = result.data.blckContCd;
|
||||||
|
this.blckRsnCd = result.data.blckRsnCd;
|
||||||
|
this.memo = result.data.memo;
|
||||||
|
this.blckYn = result.data.blckYn;
|
||||||
|
this.msgBlckwordList = result.data.list;
|
||||||
|
// this.row.chgDt = result.data.chgDt;
|
||||||
|
// this.row.regId = result.data.regId;
|
||||||
|
// this.row.list = result.data.msgBlckwordList
|
||||||
|
}
|
||||||
|
} catch(err) {
|
||||||
|
alert("실패 하였습니다.");
|
||||||
|
}
|
||||||
|
console.log('-----------')
|
||||||
|
console.log(this.row)
|
||||||
|
var dimmed = document.getElementsByClassName('modal58');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'block';
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
setCodeDate(){
|
||||||
|
// 발송타입
|
||||||
|
api.commCode({'grpCd' : 'SNDBLCK_TP_CD'}).then(response => {
|
||||||
|
this.tpType = response.data.data.list;
|
||||||
|
});
|
||||||
|
api.commCode({'grpCd' : 'SNDBLCK_RSN_CD'}).then(response => {
|
||||||
|
this.rsnType = response.data.data.list;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
doValidate(){
|
||||||
|
this.row.blckRsnCd = this.blckRsnCd;
|
||||||
|
this.row.blckContCd = this.blckContCd;
|
||||||
|
this.row.memo = this.memo;
|
||||||
|
this.row.blckYn = this.blckYn;
|
||||||
|
this.row.chgId = this.regId;
|
||||||
|
this.row.chgDt = this.chgDt
|
||||||
|
this.row.list = this.msgBlckwordList
|
||||||
|
return true;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
toComplete(){
|
||||||
|
this.$parent.$refs.table.reloadData();
|
||||||
|
this.IntrcpDetailModalClose();
|
||||||
|
},
|
||||||
|
//신규등록 팝업에서 문구 추가 버튼
|
||||||
|
doAdd: function() {
|
||||||
|
if(this.msgBlckwordList.length < 10){
|
||||||
|
this.msgBlckwordList.push({
|
||||||
|
//seqNo: '',
|
||||||
|
word: this.word
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//신규등록 팝업에서 문구 삭제 버튼
|
||||||
|
doDel(item, i){
|
||||||
|
localStorage.removeItem(item);
|
||||||
|
this.msgBlckwordList.splice(i, 1);
|
||||||
|
},
|
||||||
|
formReset(){
|
||||||
|
var type= this.insertType;
|
||||||
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
this.insertType = type;
|
||||||
|
},
|
||||||
|
|
||||||
|
//삭제버튼
|
||||||
|
async MsgIntrcpDeleteModal(){
|
||||||
|
this.setCodeDate();
|
||||||
|
if(window.confirm('삭제 하시겠습니까?')){
|
||||||
|
try {
|
||||||
|
const response = await riskMgtApi.deleteMsgIntrcp(this.row);
|
||||||
|
const result = response.data;
|
||||||
|
if (result != null && result.retCode == "0000") {
|
||||||
|
alert('삭제 하였습니다.');
|
||||||
|
// grid.reloadData();
|
||||||
|
// this.$refs.table.reloadData();
|
||||||
|
this.toComplete();
|
||||||
|
}
|
||||||
|
} catch(err) {
|
||||||
|
alert("실패 하였습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//수정버튼
|
||||||
|
async MsgIntrcpUpdateModal(){
|
||||||
|
if(this.doValidate() && window.confirm('수정 하시겠습니까?')){
|
||||||
|
try {
|
||||||
|
const response = await riskMgtApi.updateMsgIntrcp(this.row);
|
||||||
|
const result = response.data;
|
||||||
|
if (result != null && result.retCode == "0000") {
|
||||||
|
alert('수정 하였습니다.');
|
||||||
|
}
|
||||||
|
this.toComplete();
|
||||||
|
} catch(err) {
|
||||||
|
alert("실패 하였습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
IntrcpDetailModalClose(){
|
||||||
|
//this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('modal58');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ModalClose(){
|
||||||
|
//this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'none';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'none';
|
||||||
|
var popup = document.getElementsByClassName('modal58');
|
||||||
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
353
frontend/src/modules/riskMgt/service/mixins.js
Normal file
353
frontend/src/modules/riskMgt/service/mixins.js
Normal file
@@ -0,0 +1,353 @@
|
|||||||
|
import lodash from "lodash";
|
||||||
|
|
||||||
|
const utils_mixin = {
|
||||||
|
methods:{
|
||||||
|
/** * 이메일 형식 체크 * * @param 데이터 */
|
||||||
|
emailCheck(email,rtnArrYn) {
|
||||||
|
if(this.isNull(rtnArrYn)){
|
||||||
|
rtnArrYn='N';
|
||||||
|
}
|
||||||
|
// var regExp = /(^[A-Za-z0-9_\.\-]+)@([A-Za-z0-9\-]+\.[A-Za-z0-9\-]+)/;
|
||||||
|
var regExp = /^([0-9a-zA-Z_\.\-]([-_.]?[0-9a-zA-Z_\.\-])*)@([0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$)/i;//이메일 정규식
|
||||||
|
|
||||||
|
if(regExp.test(email) == false) {
|
||||||
|
// 이메일 형식이 알파벳+숫자@알파벳+숫자.알파벳+숫자 형식이 아닐경우
|
||||||
|
if(rtnArrYn == 'Y'){
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
var myArray = regExp.exec(email);
|
||||||
|
if(rtnArrYn == 'Y'){
|
||||||
|
return myArray;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
/** * 전화번호 포맷으로 변환 * * @param 데이터 */
|
||||||
|
formatPhone(phoneNum,fmt,rtnArrYn) {
|
||||||
|
if(this.isNull(fmt)){
|
||||||
|
fmt='';
|
||||||
|
}
|
||||||
|
if(this.isNull(rtnArrYn)){
|
||||||
|
fmt='N';
|
||||||
|
}
|
||||||
|
if(this.isPhone(phoneNum)) {
|
||||||
|
var rtnNum;
|
||||||
|
var regExp =/(02)([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
var myArray;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
myArray = regExp.exec(phoneNum);
|
||||||
|
rtnNum = myArray[1]+fmt + myArray[2]+fmt+myArray[3];
|
||||||
|
if(rtnArrYn == 'Y'){
|
||||||
|
return myArray;
|
||||||
|
}
|
||||||
|
return rtnNum;
|
||||||
|
} else {
|
||||||
|
regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
myArray = regExp.exec(phoneNum);
|
||||||
|
rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3];
|
||||||
|
if(rtnArrYn == 'Y'){
|
||||||
|
return myArray;
|
||||||
|
}
|
||||||
|
return rtnNum;
|
||||||
|
} else {
|
||||||
|
return phoneNum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return phoneNum;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/** * 핸드폰번호 포맷으로 변환 * * @param 데이터 */
|
||||||
|
formatMobile(phoneNum,fmt,rtnArrYn) {
|
||||||
|
|
||||||
|
if(this.isNull(fmt)){
|
||||||
|
fmt='';
|
||||||
|
}
|
||||||
|
if(this.isNull(rtnArrYn)){
|
||||||
|
fmt='N';
|
||||||
|
}
|
||||||
|
if(this.isMobile(phoneNum)) {
|
||||||
|
|
||||||
|
var rtnNum;
|
||||||
|
var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
var myArray;
|
||||||
|
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
|
||||||
|
myArray = regExp.exec(phoneNum);
|
||||||
|
rtnNum = myArray[1]+fmt+myArray[2]+fmt+myArray[3];
|
||||||
|
if(rtnArrYn == 'Y'){
|
||||||
|
return myArray;
|
||||||
|
}
|
||||||
|
return rtnNum;
|
||||||
|
} else {
|
||||||
|
return phoneNum;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return phoneNum;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** * 전화번호 형식 체크 * * @param 데이터 */
|
||||||
|
isPhone(phoneNum) {
|
||||||
|
var regExp =/(02)([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
regExp =/(0[3-9]{1}[0-9]{1})([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** * 핸드폰번호 형식 체크 * * @param 데이터 */
|
||||||
|
isMobile(phoneNum) {
|
||||||
|
var regExp =/(01[016789])([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
var myArray;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
myArray = regExp.exec(phoneNum);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isMobile2(phoneNum) {
|
||||||
|
var regExp =/(1[016789])([0-9]{3,4})([0-9]{4})$/;
|
||||||
|
var myArray;
|
||||||
|
if(regExp.test(phoneNum)){
|
||||||
|
myArray = regExp.exec(phoneNum);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
isNull(obj){
|
||||||
|
if(lodash.isNil(obj) || lodash.trim(obj) == ''){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
getParent(name){
|
||||||
|
let p = this.$parent;
|
||||||
|
while(typeof p !== 'undefined'){
|
||||||
|
if(p.$options.name == name) {
|
||||||
|
return p;
|
||||||
|
}else {
|
||||||
|
p = p.$parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
getJsonObj(str){
|
||||||
|
return JSON.parse(JSON.stringify(str));
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var chkPattern2 = {
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selSesStorage(keyLike){
|
||||||
|
if(this.isNull(keyLike)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if(sessionStorage.length > 0){
|
||||||
|
let keyList = [];
|
||||||
|
for(let i=0;i<sessionStorage.length;i++){
|
||||||
|
const keyNm = sessionStorage.key(i);
|
||||||
|
if(keyNm.indexOf(keyLike) > -1){
|
||||||
|
keyList.push({name : keyNm, value : sessionStorage.getItem(keyNm)});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(keyList.length > 0){
|
||||||
|
return keyList;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
|
||||||
|
delSesStorage(keyList){
|
||||||
|
if(this.isNull(keyList)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if(keyList.length > 0){
|
||||||
|
keyList.map((o) => (sessionStorage.removeItem(o.name)));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
setGridMouseDownActive(){
|
||||||
|
const ele = document.querySelector(`div.tui-grid-container.tui-grid-show-lside-area`);
|
||||||
|
if(window.getEventListeners(ele).mousedown){
|
||||||
|
ele.removeEventListener('mousedown',window.getEventListeners(ele).mousedown[0].listener);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
restrictChars : function($event,regExp,hanYn){
|
||||||
|
|
||||||
|
if(this.isNull(hanYn)){
|
||||||
|
hanYn='N';
|
||||||
|
}
|
||||||
|
if(hanYn === 'N' && $event.type === 'keydown'){
|
||||||
|
if($event.keyCode === 229){
|
||||||
|
$event.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($event.type === 'keypress'){
|
||||||
|
//한글 처리 불가
|
||||||
|
if(regExp.test(String.fromCharCode($event.charCode))) {
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
$event.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(hanYn === 'N' && ( $event.type === 'keyup' || $event.type === 'input' || $event.type === 'change' || $event.type === 'blur')){
|
||||||
|
$event.target.value = $event.target.value.replace(/[ㄱ-ㅎㅏ-ㅣ가-힣]/g,'');
|
||||||
|
$event.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
setLenth: function (e, len) {
|
||||||
|
this.cut(e, len);
|
||||||
|
},
|
||||||
|
onlyCustom: function (e,strRegExp,hanYn) {
|
||||||
|
var regExp_g = new RegExp(strRegExp,'g');
|
||||||
|
this.cut(e);
|
||||||
|
return this.restrictChars(e,regExp_g,hanYn);
|
||||||
|
},
|
||||||
|
onlyCommon: function(strRegExp, e, len, isEventCall, hanYn) {
|
||||||
|
var regExp_g = new RegExp(strRegExp,'g');
|
||||||
|
if(isEventCall === 'N'){
|
||||||
|
if(!this.cut(e, len, isEventCall)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!regExp_g.test(e.value)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
this.cut(e, len);
|
||||||
|
return this.restrictChars(e,regExp_g,hanYn);
|
||||||
|
},
|
||||||
|
onlyNum: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[0-9]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyEng: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[A-Za-z]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyLowerEng: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[a-z]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyUpperEng: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[A-Z]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyEmail: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[a-zA-Z0-9_\.\-@._-]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyName: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall,'Y');
|
||||||
|
},
|
||||||
|
onlyTitle: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall,'Y');
|
||||||
|
},
|
||||||
|
onlyText: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9_-]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall,'Y');
|
||||||
|
},
|
||||||
|
onlyPassword: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[A-Za-z0-9!@#$%^&*]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyId: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[A-Za-z0-9_\.\-]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyIp: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[0-9,.*]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
onlyRoleNm_Space: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall,'Y');
|
||||||
|
},
|
||||||
|
onlyRoleId_UnderBar: function (e, len, isEventCall) {
|
||||||
|
var strRegExp = '^[a-zA-Z0-9_]*$';
|
||||||
|
return this.onlyCommon(strRegExp, e, len, isEventCall);
|
||||||
|
},
|
||||||
|
cut: function (ele, len, isValidChk) {
|
||||||
|
let e=ele;
|
||||||
|
if (typeof ele.target != "undefined") {
|
||||||
|
e=ele.target;
|
||||||
|
}
|
||||||
|
let max = this.isNull(len) ? e.attributes.maxlength.value : len;
|
||||||
|
let str = e.value;
|
||||||
|
|
||||||
|
if (this.bytes(str) > max) {
|
||||||
|
if(this.isNull(isValidChk)){
|
||||||
|
e.value = this.cutBytes(str, max);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
cutBytes: function (str, len) {
|
||||||
|
while(1 === 1){
|
||||||
|
if(this.bytes(str) <= len){
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
str = str.slice(0,-1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
bytes: function (str) {
|
||||||
|
var length = ((s,b,i,c) => {
|
||||||
|
// for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1); // 한글 3바이트
|
||||||
|
// for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?2:c>>7?1:1); //한글 2바이트
|
||||||
|
b=0,i=0;
|
||||||
|
while(1 === 1){
|
||||||
|
c = s.charCodeAt(i++);
|
||||||
|
if (isNaN(c)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
b += c >> 11 ? 2 : c >> 7 ? 1 : 1;
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
})(str);
|
||||||
|
return length;
|
||||||
|
},
|
||||||
|
checkPhone: function(str) {
|
||||||
|
str = str.replace(/[-\s]+/g, '');
|
||||||
|
if (str.charAt(0)!="0"){
|
||||||
|
str = "0"+str;
|
||||||
|
}
|
||||||
|
if (str.length<10||str.length>12){return "";}
|
||||||
|
if (isNaN(str)){return ""; }
|
||||||
|
if (str.substr(0,2)!="01" && str.substr(0,3)!="070" && str.substr(0,4)!="0505" && str.substr(0,4)!="0503"){return ""; }
|
||||||
|
return str;
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export { utils_mixin, chkPattern2 };
|
||||||
@@ -1,11 +1,7 @@
|
|||||||
import httpClient from '@/common/http-client'
|
import httpClient from '@/common/http-client'
|
||||||
|
|
||||||
// HUBEZ_BO_API_11004 발신번호 차단 수정
|
|
||||||
const updateIntrcp = (params) => {
|
|
||||||
return httpClient.post('/api/v1/bo/riskMgt/sendNum/updateIntrcp', params, { withCredentials: false });
|
|
||||||
}
|
|
||||||
|
|
||||||
// HUBEZ_BO_API_11004 발신번호 차단 상세 정보 조회
|
// HUBEZ_BO_API_11002 발신번호 차단 상세 정보 조회
|
||||||
const intrcpDetail = (params) => {
|
const intrcpDetail = (params) => {
|
||||||
return httpClient.post('/api/v1/bo/riskMgt/sendNum/intrcpDetail', params, { withCredentials: false });
|
return httpClient.post('/api/v1/bo/riskMgt/sendNum/intrcpDetail', params, { withCredentials: false });
|
||||||
}
|
}
|
||||||
@@ -13,15 +9,38 @@ const intrcpDetail = (params) => {
|
|||||||
const insertIntrcp = (params) => {
|
const insertIntrcp = (params) => {
|
||||||
return httpClient.post('/api/v1/bo/riskMgt/sendNum/insertIntrcp', params, { withCredentials: false });
|
return httpClient.post('/api/v1/bo/riskMgt/sendNum/insertIntrcp', params, { withCredentials: false });
|
||||||
}
|
}
|
||||||
|
// HUBEZ_BO_API_11004 발신번호 차단 수정
|
||||||
|
const updateIntrcp = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/riskMgt/sendNum/updateIntrcp', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
// HUBEZ_BO_API_11005 발신번호 차단 삭제
|
||||||
const deleteIntrcp = (params) => {
|
const deleteIntrcp = (params) => {
|
||||||
return httpClient.post('/api/v1/bo/riskMgt/sendNum/deleteIntrcp', params, { withCredentials: false });
|
return httpClient.post('/api/v1/bo/riskMgt/sendNum/deleteIntrcp', params, { withCredentials: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const msgIntrcpList = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/riskMgt/msg/insertIntrcp', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
const msgIntrcpDetail = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/riskMgt/msg/intrcpDetail', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
const deleteMsgIntrcp = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/riskMgt/msg/deleteIntrcp', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateMsgIntrcp = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/riskMgt/msg/updateIntrcp', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
updateIntrcp,
|
updateIntrcp,
|
||||||
intrcpDetail,
|
intrcpDetail,
|
||||||
insertIntrcp,
|
insertIntrcp,
|
||||||
deleteIntrcp
|
deleteIntrcp,
|
||||||
|
msgIntrcpList,
|
||||||
|
msgIntrcpDetail,
|
||||||
|
deleteMsgIntrcp,
|
||||||
|
updateMsgIntrcp
|
||||||
}
|
}
|
||||||
@@ -4,17 +4,29 @@
|
|||||||
|
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">차단내역</h3>
|
<h3 class="title">웹발송 차단내역</h3>
|
||||||
<p class="breadcrumb">리스크관리 > 차단 내역</p>
|
<p class="breadcrumb">리스크관리 > 차단 내역</p>
|
||||||
</div>
|
</div>
|
||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
|
<label for="right" class="label">발송일</label>
|
||||||
<div class="group">
|
<div class="group">
|
||||||
<div class="input_box cal one">
|
<div class="input_box cal one">
|
||||||
<label for="right" class="label">발송일</label>
|
<vuejs-datepicker
|
||||||
<input class="" type="text" id="" placeholder="2022-10-12">
|
:language="ko"
|
||||||
|
:format="customFormatter"
|
||||||
|
v-model="startDate"
|
||||||
|
@selected="selectedStartDate(0)"
|
||||||
|
></vuejs-datepicker>
|
||||||
|
<!-- <input class="" type="text" id=""
|
||||||
|
placeholder="2022-10-12"
|
||||||
|
v-model="grid.params.startDt"
|
||||||
|
@click="openStartPicker = true" />
|
||||||
|
<div v-show="openStartPicker === true">
|
||||||
|
<calendar ref="calendar"/> -->
|
||||||
|
<!-- </div> -->
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey btn-a">오늘</button>
|
<button type="button" class="button grey btn-a" @click="todayDate">오늘</button>
|
||||||
<div class="select_box id">
|
<div class="select_box id">
|
||||||
<label for="right" class="label">차단사유</label>
|
<label for="right" class="label">차단사유</label>
|
||||||
<select name="" id="" v-model="grid.params.blckRsnCd">
|
<select name="" id="" v-model="grid.params.blckRsnCd">
|
||||||
@@ -40,11 +52,11 @@
|
|||||||
<div class="group">
|
<div class="group">
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="right" class="label">발신번호</label>
|
<label for="right" class="label">발신번호</label>
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.sndrno">
|
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.sndrno">
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="right" class="label">수신번호</label>
|
<label for="right" class="label">수신번호</label>
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.rcvno">
|
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvno">
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box">
|
<div class="select_box">
|
||||||
<label for="right" class="label">상세검색</label>
|
<label for="right" class="label">상세검색</label>
|
||||||
@@ -88,22 +100,23 @@
|
|||||||
</custom-grid>
|
</custom-grid>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
|
import moment from 'moment';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
class customBRegNo {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
this.props = props;
|
this.props = props;
|
||||||
const el = document.createElement('td');
|
const el = document.createElement('a');
|
||||||
var bizrno = String(props.colValue);
|
el.href = 'javascript:void(0);';
|
||||||
el.innerText= bizrno;
|
el.className = 'btn_text';
|
||||||
if(bizrno.length == 10){
|
el.innerText= String(props.colValue)
|
||||||
el.innerText= bizrno.substring(0,3)+'-'+bizrno.substring(3,5)+'-'+bizrno.substring(5,10)
|
|
||||||
}
|
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,6 +125,10 @@ class customBRegNo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
@@ -119,6 +136,16 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
|
// 달력 데이터
|
||||||
|
ko: vdp_translation_ko.js,
|
||||||
|
periodDay: 7,
|
||||||
|
sDateDiv: 'day',
|
||||||
|
startDate: new Date(),
|
||||||
|
endDate: new Date(),
|
||||||
|
|
||||||
|
statType: [],
|
||||||
|
userType: [],
|
||||||
|
row:{},
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/riskMgt/web/intrcpList',
|
url: '/api/v1/bo/riskMgt/web/intrcpList',
|
||||||
perPage: 20,
|
perPage: 20,
|
||||||
@@ -143,10 +170,15 @@ export default {
|
|||||||
columns: [
|
columns: [
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
||||||
{ name: 'blckTpCd', header: '차단구분', align: 'center', width: 160 },
|
{ name: 'blckTpCd', header: '차단구분', align: 'center', width: 160 },
|
||||||
{ name: 'userId', header: '발송ID', align: 'center', width: 100, renderer: {type: customBRegNo}},
|
{ name: 'userId', header: '발송ID', align: 'center', width: 100},
|
||||||
{ name: 'sndrno', header: '발신번호', align: 'center', width: 130},
|
{ name: 'sndrno', header: '발신번호', align: 'center', width: 130},
|
||||||
{ name: 'custNm', header: '고객사명', align: 'center', width: 130},
|
{ name: 'custNm', header: '고객사명', align: 'center', width: 130, renderer: {
|
||||||
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 90, renderer: {type: customBRegNo} },
|
type: CustomATagRenderer
|
||||||
|
, options: {
|
||||||
|
callback: this.custDetail,
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 90},
|
||||||
{ name: 'rcvno', header: '수신번호', align: 'center', width: 90 },
|
{ name: 'rcvno', header: '수신번호', align: 'center', width: 90 },
|
||||||
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 90 },
|
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 90 },
|
||||||
{ name: 'blckDt', header: '발송일자', align: 'center', width: 90 },
|
{ name: 'blckDt', header: '발송일자', align: 'center', width: 90 },
|
||||||
@@ -160,14 +192,17 @@ export default {
|
|||||||
sndrno: '',
|
sndrno: '',
|
||||||
rcvno: '',
|
rcvno: '',
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
searchText1: ''
|
searchText1: '',
|
||||||
|
startDt: new Date(+new Date() + 3240 * 10000).toISOString().split("T")[0],
|
||||||
},
|
},
|
||||||
excelHeader: []
|
excelHeader: []
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
|
commonModal,
|
||||||
|
vuejsDatepicker,
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
@@ -188,6 +223,7 @@ export default {
|
|||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
this.$store.commit("login/isAuthChk", true);
|
this.$store.commit("login/isAuthChk", true);
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
|
this.setPeriodDay(0);
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let page = 1;
|
let page = 1;
|
||||||
@@ -214,19 +250,81 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: {
|
params: this.grid.params
|
||||||
blckDt: '',
|
|
||||||
blckRsnCd: '',
|
|
||||||
blckTpCd: '',
|
|
||||||
sndrno: '',
|
|
||||||
rcvno: '',
|
|
||||||
searchType1: '',
|
|
||||||
searchText1: ''
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
//console.log("getCondition : "+ getCondition.perPage);
|
//console.log("getCondition : "+ getCondition.perPage);
|
||||||
|
},
|
||||||
|
setPeriodDay(day) {
|
||||||
|
this.periodDay = day;
|
||||||
|
this.endDate = new Date();
|
||||||
|
this.startDate = moment(this.endDate)
|
||||||
|
.subtract(day, 'day')
|
||||||
|
.toDate();
|
||||||
|
|
||||||
|
this.closeDate('start');
|
||||||
|
},
|
||||||
|
selectedStartDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
console.log(this.startDate);
|
||||||
|
},
|
||||||
|
selectedEndDate(day) {
|
||||||
|
if (day != undefined && day != null) {
|
||||||
|
this.periodDay = day;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDate(type) {
|
||||||
|
if (type != undefined && type != null) {
|
||||||
|
|
||||||
|
}
|
||||||
|
console.log(this.startDate);
|
||||||
|
},
|
||||||
|
customFormatter: function(date) {
|
||||||
|
if (this.sDateDiv == 'month') {
|
||||||
|
return moment(date).format('YYYY-MM');
|
||||||
|
} else if (this.sDateDiv == 'year') {
|
||||||
|
return moment(date).format('YYYY');
|
||||||
|
} else {
|
||||||
|
return moment(date).format('YYYY-MM-DD');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//회원 상세페이지로 이동
|
||||||
|
custDetail(props) {
|
||||||
|
this.row.custNm = props.serviceId;
|
||||||
|
this.$router.push({ name: 'subsDetail', params: this.row });
|
||||||
|
},
|
||||||
|
calendarCalbackFnc(year, month, day){
|
||||||
|
|
||||||
|
if(this.openStartPicker){
|
||||||
|
this.startDate= year +''+ month +''+ day
|
||||||
|
if(Number(this.endDate) < Number(this.startDate) && this.endDate !== 0){
|
||||||
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '조회 시작일이 종료일보다 큽니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
this.openStartPicker = false
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.grid.params.startDt = year + '-' + month + '-' + day
|
||||||
|
this.openStartPicker = false
|
||||||
|
}
|
||||||
|
if(this.openEndPicker){
|
||||||
|
this.endDate=year +''+ month +''+ day
|
||||||
|
if(Number(this.endDate) < Number(this.startDate) && this.startDate !== 0){
|
||||||
|
this.row.title = '청약고객관리';
|
||||||
|
this.row.msg1 = '조회 종료일이 시작일보다 작습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
this.openEndPicker = false
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.grid.params.endDt = year + '-' + month + '-' + day
|
||||||
|
this.openEndPicker = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
todayDate() {
|
||||||
|
this.startDate = new Date(+new Date() + 3240 * 10000).toISOString().split("T")[0];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|||||||
@@ -82,6 +82,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<insert-intrcp-pop ref="insertIntrcpPop"> </insert-intrcp-pop>
|
<insert-intrcp-pop ref="insertIntrcpPop"> </insert-intrcp-pop>
|
||||||
<intrcp-detail-popup ref="intrcpDetailPopup"></intrcp-detail-popup>
|
<intrcp-detail-popup ref="intrcpDetailPopup"></intrcp-detail-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -91,6 +92,7 @@ import customGrid from '@/components/CustomGrid';
|
|||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
import intrcpDetailPopup from '../components/IntrcpDetailPopup';
|
import intrcpDetailPopup from '../components/IntrcpDetailPopup';
|
||||||
import insertIntrcpPop from '../components/InsertIntrcpPop';
|
import insertIntrcpPop from '../components/InsertIntrcpPop';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
@@ -128,6 +130,7 @@ export default {
|
|||||||
],
|
],
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/riskMgt/sendNum/intrcpList',
|
url: '/api/v1/bo/riskMgt/sendNum/intrcpList',
|
||||||
|
pagePerRows: 20,
|
||||||
perPage: 20,
|
perPage: 20,
|
||||||
pagination: true,
|
pagination: true,
|
||||||
isCheckbox: false,
|
isCheckbox: false,
|
||||||
@@ -170,7 +173,8 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
intrcpDetailPopup,
|
intrcpDetailPopup,
|
||||||
insertIntrcpPop
|
insertIntrcpPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
|
||||||
@@ -200,6 +204,10 @@ export default {
|
|||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
},
|
},
|
||||||
|
changePerPage: function(){ // 페이지당 조회할 개수
|
||||||
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
|
this.search(true);
|
||||||
|
},
|
||||||
sendStoreData: function() {
|
sendStoreData: function() {
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
console.log("==========getP : " + getP._currentPage);
|
console.log("==========getP : " + getP._currentPage);
|
||||||
|
|||||||
@@ -34,15 +34,13 @@
|
|||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span> {{ totalItems}} </span>건
|
<div class="count">총 <span> {{ totalItems}} </span>건
|
||||||
<div class="select_box NumberSe">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
|
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
|
||||||
<option value="20">20</option>
|
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
|
||||||
<option value="50" selected>50</option>
|
|
||||||
<option value="100">100</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue add">신규등록</button>
|
<button type="button" class="button blue add" @click="ModalOpen()">신규등록</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
@@ -50,35 +48,68 @@
|
|||||||
ref="table"
|
ref="table"
|
||||||
:totalItems="'totalItems'"
|
:totalItems="'totalItems'"
|
||||||
:url="grid.url"
|
:url="grid.url"
|
||||||
:perPage="grid.perPage"
|
:pagePerRows="grid.pagePerRows"
|
||||||
:initialRequest="grid.initialRequest"
|
:initialRequest="grid.initialRequest"
|
||||||
:pagination="grid.pagination"
|
:pagination="grid.pagination"
|
||||||
:isCheckbox="grid.isCheckbox"
|
:isCheckbox="grid.isCheckbox"
|
||||||
:columns="grid.columns"
|
:columns="grid.columns"
|
||||||
:noDataStr="grid.noDataStr"
|
:noDataStr="grid.noDataStr"
|
||||||
:addCls="grid.addCls"
|
:addCls="grid.addCls"
|
||||||
:header="grid.header"
|
:header="grid.headder"
|
||||||
></custom-grid>
|
></custom-grid>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<insert-msg-pop ref="InsertMsgPop"></insert-msg-pop>
|
||||||
|
<intrcp-msg-detail ref="IntrcpMsgDetail"></intrcp-msg-detail>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
|
import InsertMsgPop from '../components/InsertMsgPop';
|
||||||
|
import IntrcpMsgDetail from '../components/IntrcpMsgDetail';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
undefined
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
|
class CustomATagRenderer {
|
||||||
|
constructor(props) {
|
||||||
|
this.props = props;
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = 'javascript:void(0);';
|
||||||
|
el.className = 'btn_text';
|
||||||
|
el.innerText= String(props.colValue)
|
||||||
|
this.el = el;
|
||||||
|
}
|
||||||
|
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'intrcpList',
|
name: 'intrcpList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
// 테이블 리스트 데이터
|
// 테이블 리스트 데이터
|
||||||
perPageCnt: 20,
|
perPageCnt: 50,
|
||||||
|
options: [
|
||||||
|
{ text: '20', value: 20},
|
||||||
|
{ text: '50', value: 50},
|
||||||
|
{ text: '100', value: 100}
|
||||||
|
],
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/riskMgt/msg/intrcpList',
|
url: '/api/v1/bo/riskMgt/msg/intrcpList',
|
||||||
perPage: 20,
|
perPageRows: 20,
|
||||||
pagination: true,
|
pagination: true,
|
||||||
isCheckbox: true,
|
isCheckbox: false,
|
||||||
initialRequest: false,
|
initialRequest: false,
|
||||||
addCls: 'box_OFvis',
|
addCls: 'box_OFvis',
|
||||||
|
|
||||||
@@ -86,6 +117,7 @@ export default {
|
|||||||
header: [
|
header: [
|
||||||
[
|
[
|
||||||
{ header: 'NO', childNames: [] },
|
{ header: 'NO', childNames: [] },
|
||||||
|
{ header: '일련번호', align: 'center', childNames: [] },
|
||||||
{ header: '차단메시지', childNames: [] },
|
{ header: '차단메시지', childNames: [] },
|
||||||
{ header: '차단여부', childNames: [] },
|
{ header: '차단여부', childNames: [] },
|
||||||
{ header: '마지막 수정일', childNames: [] },
|
{ header: '마지막 수정일', childNames: [] },
|
||||||
@@ -96,7 +128,9 @@ export default {
|
|||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
||||||
{ name: 'word', header: '차단메시지', align: 'center', width: 160 },
|
{ name: 'seqNo', header: '일련번호', align: 'center', width: 60, hidden: true},
|
||||||
|
{ name: 'word', header: '차단메시지', align: 'center', width: 160,
|
||||||
|
renderer: {type: CustomATagRenderer, options: { callback: this.msgDetailPop}} },
|
||||||
{ name: 'blckYn', header: '차단여부', align: 'center', width: 130},
|
{ name: 'blckYn', header: '차단여부', align: 'center', width: 130},
|
||||||
{ name: 'lastChgDt', header: '마지막 수정일', align: 'center', width: 130},
|
{ name: 'lastChgDt', header: '마지막 수정일', align: 'center', width: 130},
|
||||||
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 130},
|
{ name: 'blckRsnCd', header: '차단사유', align: 'center', width: 130},
|
||||||
@@ -106,25 +140,21 @@ export default {
|
|||||||
params: {
|
params: {
|
||||||
regId: '',
|
regId: '',
|
||||||
blckRsnCd: '',
|
blckRsnCd: '',
|
||||||
word: ''
|
word: '',
|
||||||
|
seqNo: ''
|
||||||
},
|
},
|
||||||
excelHeader: []
|
excelHeader: []
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
},
|
InsertMsgPop,
|
||||||
|
IntrcpMsgDetail,
|
||||||
|
commonModal,
|
||||||
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
|
||||||
page: 1,
|
|
||||||
perPage: 20,
|
|
||||||
params: {
|
|
||||||
regId: '',
|
|
||||||
blckRsnCd: '',
|
|
||||||
word: ''
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
@@ -150,22 +180,30 @@ export default {
|
|||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
},
|
},
|
||||||
|
changePerPage: function(){ // 페이지당 조회할 개수
|
||||||
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
|
this.search(true);
|
||||||
|
},
|
||||||
sendStoreData: function() {
|
sendStoreData: function() {
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
console.log("==========getP : " + getP);
|
console.log("==========getP : " + getP);
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: {
|
params: this.grid.params
|
||||||
regId: '',
|
|
||||||
blckRsnCd: '',
|
|
||||||
word: ''
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
//console.log("getCondition : "+ getCondition.perPage);
|
//console.log("getCondition : "+ getCondition.perPage);
|
||||||
|
},
|
||||||
|
ModalOpen: function(target){
|
||||||
|
this.$refs.InsertMsgPop.ModalOpen(target);
|
||||||
|
},
|
||||||
|
msgDetailPop(props) {
|
||||||
|
// console.log(props);
|
||||||
|
this.$refs.IntrcpMsgDetail.IntrcpMsgDetailModalOpen(props);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="search" class="label">인증코드</label>
|
<label for="search" class="label">인증코드</label>
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.authcd080"/>
|
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.authcd080"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="right" class="label">수신번호</label>
|
<label for="right" class="label">수신번호</label>
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.rcvblckno"/>
|
<input class="search-box" type="number" id="search" placeholder="검색어 입력" v-model="grid.params.rcvblckno"/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey" @click="search">조회</button>
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,10 +27,8 @@
|
|||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span> {{ totalItems }} </span>건
|
<div class="count">총 <span> {{ totalItems }} </span>건
|
||||||
<div class="select_box NumberSe">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
|
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
|
||||||
<option value="20">20</option>
|
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
|
||||||
<option value="50" selected>50</option>
|
|
||||||
<option value="100">100</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -50,6 +48,7 @@
|
|||||||
:header="grid.headder">
|
:header="grid.headder">
|
||||||
</custom-grid>
|
</custom-grid>
|
||||||
</div>
|
</div>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -57,16 +56,15 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
class customBRegNo {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
this.props = props;
|
this.props = props;
|
||||||
const el = document.createElement('td');
|
const el = document.createElement('a');
|
||||||
var bizrno = String(props.colValue);
|
el.href = 'javascript:void(0);';
|
||||||
el.innerText= bizrno;
|
el.className = 'btn_text';
|
||||||
if(bizrno.length == 10){
|
el.innerText= String(props.colValue)
|
||||||
el.innerText= bizrno.substring(0,3)+'-'+bizrno.substring(3,5)+'-'+bizrno.substring(5,10)
|
|
||||||
}
|
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +73,10 @@ class customBRegNo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
@@ -82,9 +84,17 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
|
userType: [],
|
||||||
|
row:{},
|
||||||
|
perPageCnt: 50,
|
||||||
|
pagePerRows: 20,
|
||||||
|
options: [
|
||||||
|
{ text: '20', value: 20},
|
||||||
|
{ text: '50', value: 50},
|
||||||
|
{ text: '100', value: 100}
|
||||||
|
],
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/riskMgt/zezNum/intrcpList',
|
url: '/api/v1/bo/riskMgt/zezNum/intrcpList',
|
||||||
perPage: 20,
|
|
||||||
pagination: true,
|
pagination: true,
|
||||||
isCheckbox: false,
|
isCheckbox: false,
|
||||||
initialRequest: false,
|
initialRequest: false,
|
||||||
@@ -103,8 +113,13 @@ export default {
|
|||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
||||||
{ name: 'custNm', header: '고객사', align: 'center', width: 160 },
|
{ name: 'custNm', header: '고객사', align: 'center', width: 160, renderer: {
|
||||||
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 100, renderer: {type: customBRegNo}},
|
type: CustomATagRenderer
|
||||||
|
, options: {
|
||||||
|
callback: this.memberDetail,
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
{ name: 'bizrno', header: '사업자번호', align: 'center', width: 100},
|
||||||
{ name: 'authcd080', header: '인증코드', align: 'center', width: 130},
|
{ name: 'authcd080', header: '인증코드', align: 'center', width: 130},
|
||||||
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: 130},
|
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: 130},
|
||||||
{ name: 'regDt', header: '등록일', align: 'center', width: 130},
|
{ name: 'regDt', header: '등록일', align: 'center', width: 130},
|
||||||
@@ -121,18 +136,11 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
|
||||||
page: 1,
|
|
||||||
perPage: 20,
|
|
||||||
params: {
|
|
||||||
regTpCd: '',
|
|
||||||
authcd080: '',
|
|
||||||
rcvblckno: ''
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
@@ -154,25 +162,31 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search: function(isKeep) {
|
search: function(isKeep) {
|
||||||
console.log(this.grid.params);
|
console.log('this.perPageCnt'+this.perPageCnt);
|
||||||
|
//console.log(this.grid.params);
|
||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
},
|
},
|
||||||
|
changePerPage: function(){ // 페이지당 조회할 개수
|
||||||
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
|
this.search(true);
|
||||||
|
},
|
||||||
sendStoreData: function() {
|
sendStoreData: function() {
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
console.log("==========getP : " + getP);
|
console.log("==========getP : " + getP);
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: {
|
params: this.grid.params
|
||||||
regTpCd: '',
|
|
||||||
authcd080: '',
|
|
||||||
rcvblckno: ''
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
//console.log("getCondition : "+ getCondition.perPage);
|
//console.log("getCondition : "+ getCondition.perPage);
|
||||||
|
},
|
||||||
|
//회원 상세페이지로 이동
|
||||||
|
memberDetail(props) {
|
||||||
|
this.row.custNm = props.serviceId;
|
||||||
|
this.$router.push({ name: 'subsDetail', params: this.row});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|||||||
195
frontend/src/modules/sendNumMgt/components/AdminListPop.vue
Normal file
195
frontend/src/modules/sendNumMgt/components/AdminListPop.vue
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 관리자ID 조회 -->
|
||||||
|
<div class="popup popup_form modal44">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">관리자ID 조회</h3>
|
||||||
|
</div>
|
||||||
|
<div class="pop-cont-detail input_box">
|
||||||
|
<label>ID</label>
|
||||||
|
<div class="input_search">
|
||||||
|
<input class="search-box" type="text" value="" v-model="grid.params.searchText1">
|
||||||
|
<button type="button" class="button btn-p2color" @click="search">조회</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table-c">
|
||||||
|
<custom-grid
|
||||||
|
ref="table"
|
||||||
|
:totalItems="'totalItems'"
|
||||||
|
:url="grid.url"
|
||||||
|
:pagePerRows="grid.pagePerRows"
|
||||||
|
:initialRequest="grid.initialRequest"
|
||||||
|
:pagination="grid.pagination"
|
||||||
|
:isCheckbox="grid.isCheckbox"
|
||||||
|
:columns="grid.columns"
|
||||||
|
:noDataStr="grid.noDataStr"
|
||||||
|
:addCls="grid.addCls"
|
||||||
|
:header="grid.headder"
|
||||||
|
></custom-grid>
|
||||||
|
</table>
|
||||||
|
<div class="popup-btn2">
|
||||||
|
<button class="btn-default" @click="adminNmPopClose();">닫기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import customGrid from "@/components/CustomGrid";
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
|
class CustomATagRendererAdminList {
|
||||||
|
constructor(props) {
|
||||||
|
this.props = props;
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = 'javascript:void(0);';
|
||||||
|
el.className = 'btn_text';
|
||||||
|
el.innerText= String(props.colValue)
|
||||||
|
this.el = el;
|
||||||
|
}
|
||||||
|
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
console.log(callback)
|
||||||
|
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CustomATagRenderer {
|
||||||
|
constructor(props) {
|
||||||
|
this.props = props;
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = 'javascript:void(0);';
|
||||||
|
el.className = 'btn_text';
|
||||||
|
el.innerText= String(props.colValue)
|
||||||
|
this.el = el;
|
||||||
|
}
|
||||||
|
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "adminNmPop",
|
||||||
|
data(){
|
||||||
|
return {
|
||||||
|
row: {},
|
||||||
|
resultData: false,
|
||||||
|
|
||||||
|
perPageCnt: 10,
|
||||||
|
userId: '',
|
||||||
|
grid: {
|
||||||
|
url: '/api/v1/bo/sendNumMgt/adminList',
|
||||||
|
pagePerRows: 10,
|
||||||
|
pagination: true,
|
||||||
|
isCheckbox: false, // true:첫번째 컬럼 앞에 체크박스 생성 / false:체크박스 제거
|
||||||
|
initialRequest: false,
|
||||||
|
addCls: 'box_OFvis',
|
||||||
|
|
||||||
|
columns: [
|
||||||
|
{ name: 'adminId', header: 'ID', align: 'center', cls:'memo'
|
||||||
|
},
|
||||||
|
{ name: 'bregNo', header: '사업자번호', align: 'center', renderer: {
|
||||||
|
type: CustomATagRenderer
|
||||||
|
, options: {
|
||||||
|
callback: this.setAdminInfo,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ name: 'custNm', header: '고객사명', align: 'center', hidden: true}
|
||||||
|
],
|
||||||
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
|
params: {
|
||||||
|
searchText1: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
customGrid,
|
||||||
|
commonModal,
|
||||||
|
},
|
||||||
|
created(){
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let pageMemo = 1;
|
||||||
|
// 페이지 정보 및 검색 조건
|
||||||
|
const getCondition_adminList = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
|
console.log('getCondition_adminList : '+getCondition_adminList);
|
||||||
|
|
||||||
|
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
||||||
|
let isKeepMemo = false;
|
||||||
|
if (getCondition_adminList) {
|
||||||
|
this.grid.pagePerRows = getCondition_adminList.perPage;
|
||||||
|
this.grid.params = getCondition_adminList.params;
|
||||||
|
pageMemo = getCondition_adminList.page;
|
||||||
|
isKeepMemo = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
search: function(isKeep) {
|
||||||
|
console.log('this.perPageCnt:'+this.perPageCnt);
|
||||||
|
console.log(this.grid.params);
|
||||||
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
|
this.sendStoreData();
|
||||||
|
},
|
||||||
|
sendStoreData: function() {
|
||||||
|
const getP_memo = this.$refs.table.getPagination();
|
||||||
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
|
page: getP_memo._currentPage,
|
||||||
|
perPage: this.perPageCnt,
|
||||||
|
params: {
|
||||||
|
userId : this.userId,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
|
console.log("getCondition_memo : "+ getCondition_memo.perPage);
|
||||||
|
},
|
||||||
|
setAdminInfo: function(props){
|
||||||
|
console.log(props);
|
||||||
|
// var param = {};
|
||||||
|
// param.seqNo = props.seqNo;
|
||||||
|
// param.userId = this.userId;
|
||||||
|
// this.deleteMemoConfirm(param);
|
||||||
|
},
|
||||||
|
// 모달 띄우기
|
||||||
|
adminNmPopOpen(){
|
||||||
|
this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('modal44');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'block';
|
||||||
|
}
|
||||||
|
this.$refs.table.cleanData();
|
||||||
|
},
|
||||||
|
// 모달 끄기
|
||||||
|
adminNmPopClose(){
|
||||||
|
console.log('adminNm modal close');
|
||||||
|
var dimmed = document.getElementsByClassName('modal44');
|
||||||
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formReset(){
|
||||||
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
175
frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue
Normal file
175
frontend/src/modules/sendNumMgt/components/NumberDetailPop.vue
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
|
<div>
|
||||||
|
<div class="dimmed" @click="numberDetailPopClose();"></div>
|
||||||
|
<!-- 발신번호 상세 (타사업자)-->
|
||||||
|
<div class="popup modal53 popup_form register">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">발신번호 상세</h3>
|
||||||
|
</div>
|
||||||
|
<form autocomplete="off">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>관리자 ID</th>
|
||||||
|
<td><input type="text" disabled value="uplus01"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>고객사명</th>
|
||||||
|
<td><input type="text" disabled value="유플러스"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>등록자 ID</th>
|
||||||
|
<td><input type="text" disabled value="uplus01"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사업자번호</th>
|
||||||
|
<td><input type="text" disabled value="229-81-39938"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>명의자 구분</th>
|
||||||
|
<td><input type="text" disabled value="타사업자"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>인입채널</th>
|
||||||
|
<td><input type="text" disabled value="홈페이지"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>발신번호</th>
|
||||||
|
<td>
|
||||||
|
<div class="input_add">
|
||||||
|
<div>
|
||||||
|
<input type="text" disabled value="테스트">
|
||||||
|
<input type="text" disabled value="02-555-5555">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>승인상태</th>
|
||||||
|
<td class="red">승인 완료</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>등록일자</th>
|
||||||
|
<td><input type="text" disabled value="2022-03-10"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>제출서류</th>
|
||||||
|
<td>
|
||||||
|
<div class="sender">
|
||||||
|
<p>위임장.jpg (00KB)</p>
|
||||||
|
<p>위임-수임관계 확인서류.jpg (00KB)</p>
|
||||||
|
<p>대리인 신분증 사본.jpg (00KB)</p>
|
||||||
|
<p>재직증명서.jpg (00KB)</p>
|
||||||
|
<p>통신서비스 이용증명원.jpg (00KB)</p>
|
||||||
|
<p>사업자등록증.jpg (00KB)</p>
|
||||||
|
</div>
|
||||||
|
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사업자등록증</th>
|
||||||
|
<td>
|
||||||
|
<div class="sender">
|
||||||
|
<p>사업자등록증.jpg (00KB)</p>
|
||||||
|
</div>
|
||||||
|
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
<div class="popup-btn2">
|
||||||
|
<button class="btn-default" @click="numberDetailPopClose">닫기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import AdminListPop from "@/modules/sendNumMgt/components/AdminListPop";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "numberRegPop",
|
||||||
|
// mixins: [utils_mixin, chkPattern2],
|
||||||
|
watch:{
|
||||||
|
nmineeDivCd(){
|
||||||
|
console.log('watch : ', this.nmineeDivCd)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
row: {},
|
||||||
|
adminId:'',
|
||||||
|
custNm:'',
|
||||||
|
bRegNo:'',
|
||||||
|
nmineeDivCd:'01',
|
||||||
|
numberInputs: [],
|
||||||
|
fileType:1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
AdminListPop,
|
||||||
|
},
|
||||||
|
model: {
|
||||||
|
prop: 'sendData',
|
||||||
|
event: 'event-data'
|
||||||
|
},
|
||||||
|
props: ['sendData'],
|
||||||
|
created(){
|
||||||
|
this.formReset();
|
||||||
|
},
|
||||||
|
methods :{
|
||||||
|
searchIdPop(){
|
||||||
|
this.$refs.admnListPop.adminNmPopOpen();
|
||||||
|
},
|
||||||
|
addNumberInput(){
|
||||||
|
this.numberInputs.push({
|
||||||
|
sendNm: '',
|
||||||
|
sendNum: ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delNumberInput(index){
|
||||||
|
this.numberInputs.splice(index,1)
|
||||||
|
},
|
||||||
|
changeNmineDiv(event){
|
||||||
|
var data = event.target.value;
|
||||||
|
console.log(data)
|
||||||
|
if(data === '01'){
|
||||||
|
this.fileType = 1
|
||||||
|
}
|
||||||
|
if(data === '02'){
|
||||||
|
this.fileType = 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 모달 띄우기
|
||||||
|
numberDetailPopOpen(insertType){
|
||||||
|
this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'block';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'block';
|
||||||
|
var obj = document.getElementsByClassName('modal53');
|
||||||
|
obj[0].style.display = 'block';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
// 모달 끄기
|
||||||
|
numberDetailPopClose(){
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'none';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'none';
|
||||||
|
var popup = document.getElementsByClassName('modal53');
|
||||||
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
},
|
||||||
|
formReset(){
|
||||||
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
359
frontend/src/modules/sendNumMgt/components/NumberRegPop.vue
Normal file
359
frontend/src/modules/sendNumMgt/components/NumberRegPop.vue
Normal file
@@ -0,0 +1,359 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
|
<div>
|
||||||
|
<div class="dimmed" @click="numberRegPopClose();"></div>
|
||||||
|
<!-- 발신번호 등록 (타사업자)-->
|
||||||
|
<div class="popup modal52 popup_form register w700">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">발신번호 등록</h3>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>관리자 ID</th>
|
||||||
|
<td>
|
||||||
|
<div class="input_search">
|
||||||
|
<input class="search-box" type="text" placeholder="아이디 입력" disabled v-model="adminId">
|
||||||
|
<button type="button" class="button btn-p2color" @click="searchIdPop">조회</button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>고객사명</th>
|
||||||
|
<td><input type="text" disabled v-model="custNm"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사업자번호</th>
|
||||||
|
<td><input type="text" disabled v-model="bRegNo"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>명의자 구분</th>
|
||||||
|
<td>
|
||||||
|
<input type="radio" name="nmineeDiv" value="01" id="popup_radio5" v-model="nmineeDivCd" @change="changeNmineDiv($event)">
|
||||||
|
<label for="popup_radio5">사업자</label>
|
||||||
|
<input type="radio" name="nmineeDiv" value="02" id="popup_radio6" v-model="nmineeDivCd" @change="changeNmineDiv($event)">
|
||||||
|
<label for="popup_radio6">타사업자</label>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>발신번호</th>
|
||||||
|
<td>
|
||||||
|
<div class="input_add">
|
||||||
|
<div>
|
||||||
|
<input type="text" placeholder="발신번호명">
|
||||||
|
<input type="text" placeholder="발신번호(숫자만입력)">
|
||||||
|
<button class="button white add" @click="addNumberInput"></button>
|
||||||
|
</div>
|
||||||
|
<div v-for="(numberInput, index) in numberInputs">
|
||||||
|
<input type="text" placeholder="발신번호명" v-model="numberInput.sendNm">
|
||||||
|
<input type="text" placeholder="발신번호(숫자만입력)" v-model="numberInput.sendNum">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>제출서류</th>
|
||||||
|
<td>
|
||||||
|
<div class="attach" v-show="fileType === 2">
|
||||||
|
<p class="essential list"><span>*</span>위임-수임관계 확인 서류</p>
|
||||||
|
<input type="file" ref="trustFile" style="display: none" @change="readTrustFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.trustFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="trustNm"></p>
|
||||||
|
</div>
|
||||||
|
<div class="attach" v-show="fileType === 2">
|
||||||
|
<p class="essential list"><span>*</span>위임장</p>
|
||||||
|
<input type="file" ref="warrantFile" style="display: none" @change="readWarrantFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.warrantFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="warrantNm"></p>
|
||||||
|
</div>
|
||||||
|
<div class="attach" v-show="fileType === 2">
|
||||||
|
<p class="essential list"><span>*</span>대리인 신분증 사본 인증</p>
|
||||||
|
<input type="file" ref="deputyFile" style="display: none" @change="readDeputyFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.deputyFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="deputyNm"></p>
|
||||||
|
</div>
|
||||||
|
<div class="attach">
|
||||||
|
<p class="essential list"><span>*</span>재직증명서</p>
|
||||||
|
<input type="file" ref="tenureFile" style="display: none" @change="readTenureFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.tenureFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="tenureNm"></p>
|
||||||
|
</div>
|
||||||
|
<div class="attach" v-show="fileType === 1">
|
||||||
|
<p class="essential list"><span>*</span>통신서비스 이용증명원</p>
|
||||||
|
<input type="file" ref="communicationFile" style="display: none" @change="readCommunicationFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.communicationFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="communicationNm"></p>
|
||||||
|
</div>
|
||||||
|
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사업자 등록증</th>
|
||||||
|
<td>
|
||||||
|
<div class="attach">
|
||||||
|
<p class="essential list"><span>*</span>사업자등록증</p>
|
||||||
|
<input type="file" ref="businessFile" style="display: none" @change="readBusinessFile" accept=".jpg,.png,.pdf,.tiff"/>
|
||||||
|
<button class="button btn-p2color" @click="$refs.businessFile.click()">파일업로드</button>
|
||||||
|
<p class="file" id="businessNm"></p>
|
||||||
|
</div>
|
||||||
|
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="popup-btn2">
|
||||||
|
<button class="btn-pcolor">저장</button>
|
||||||
|
<button class="btn-default" @click="numberRegPopClose();">취소</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<admin-list-pop ref="admnListPop" />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import AdminListPop from "@/modules/sendNumMgt/components/AdminListPop";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "numberRegPop",
|
||||||
|
// mixins: [utils_mixin, chkPattern2],
|
||||||
|
watch:{
|
||||||
|
nmineeDivCd(){
|
||||||
|
console.log('watch : ', this.nmineeDivCd)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
row: {},
|
||||||
|
adminId:'',
|
||||||
|
custNm:'',
|
||||||
|
bRegNo:'',
|
||||||
|
nmineeDivCd:'01',
|
||||||
|
numberInputs: [],
|
||||||
|
fileType:1,
|
||||||
|
trustFile: null,
|
||||||
|
warrantFile: null,
|
||||||
|
deputyFile: null,
|
||||||
|
tenureFile: null,
|
||||||
|
businessFile: null,
|
||||||
|
communicationFile: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
AdminListPop,
|
||||||
|
},
|
||||||
|
model: {
|
||||||
|
prop: 'sendData',
|
||||||
|
event: 'event-data'
|
||||||
|
},
|
||||||
|
props: ['sendData'],
|
||||||
|
created(){
|
||||||
|
this.formReset();
|
||||||
|
},
|
||||||
|
methods :{
|
||||||
|
searchIdPop(){
|
||||||
|
this.$refs.admnListPop.adminNmPopOpen();
|
||||||
|
},
|
||||||
|
addNumberInput(){
|
||||||
|
this.numberInputs.push({
|
||||||
|
sendNm: '',
|
||||||
|
sendNum: ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delNumberInput(index){
|
||||||
|
this.numberInputs.splice(index,1)
|
||||||
|
},
|
||||||
|
changeNmineDiv(event){
|
||||||
|
var data = event.target.value;
|
||||||
|
console.log(data)
|
||||||
|
if(data === '01'){
|
||||||
|
this.fileType = 1
|
||||||
|
}
|
||||||
|
if(data === '02'){
|
||||||
|
this.fileType = 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 모달 띄우기
|
||||||
|
numberRegPopopen(insertType){
|
||||||
|
this.formReset();
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'block';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'block';
|
||||||
|
var obj = document.getElementsByClassName('modal52');
|
||||||
|
obj[0].style.display = 'block';
|
||||||
|
},
|
||||||
|
// 모달 끄기
|
||||||
|
numberRegPopClose(){
|
||||||
|
var dimmed = document.getElementsByClassName('dimmed');
|
||||||
|
dimmed[0].style.display = 'none';
|
||||||
|
var wrap = document.getElementsByClassName('popup-wrap');
|
||||||
|
wrap[0].style.display = 'none';
|
||||||
|
var popup = document.getElementsByClassName('modal52');
|
||||||
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
},
|
||||||
|
formReset(){
|
||||||
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
},
|
||||||
|
// 위임-수임
|
||||||
|
readTrustFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
console.log(file.name);
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delTrustFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('trustNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
this.trustFile = file;
|
||||||
|
},
|
||||||
|
delTrustFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.trustFile.value=null;
|
||||||
|
let element = document.getElementById("trustNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.trustFile = null;
|
||||||
|
},
|
||||||
|
// 위임장
|
||||||
|
readWarrantFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delWarrantFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('warrantNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
this.warrantFile = file;
|
||||||
|
},
|
||||||
|
delWarrantFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.warrantFile.value=null;
|
||||||
|
let element = document.getElementById("warrantNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.warrantFile = null;
|
||||||
|
},
|
||||||
|
// 대리인
|
||||||
|
readDeputyFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delDeputyFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('deputyNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
|
||||||
|
this.deputyFile = file
|
||||||
|
|
||||||
|
},
|
||||||
|
delDeputyFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.deputyFile.value=null;
|
||||||
|
let element = document.getElementById("deputyNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.deputyFile = null;
|
||||||
|
},
|
||||||
|
// 재직
|
||||||
|
readTenureFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delTenureFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('tenureNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
this.tenureFile = file;
|
||||||
|
},
|
||||||
|
delTenureFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.tenureFile.value=null;
|
||||||
|
let element = document.getElementById("tenureNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.tenureFile = null;
|
||||||
|
},
|
||||||
|
readBusinessFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delBusinessFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('businessNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
this.businessFile = file;
|
||||||
|
},
|
||||||
|
delBusinessFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.businessFile.value=null;
|
||||||
|
let element = document.getElementById("businessNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.businessFile = null;
|
||||||
|
},
|
||||||
|
readCommunicationFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
|
||||||
|
// inner Html.
|
||||||
|
const button = document.createElement('button');
|
||||||
|
const text = document.createElement('p');
|
||||||
|
text.innerText = file.name;
|
||||||
|
button.addEventListener('click', () => {
|
||||||
|
this.delCommunicationFile(event);
|
||||||
|
})
|
||||||
|
button.innerText = 'X'
|
||||||
|
const root = document.getElementById('communicationNm');
|
||||||
|
root.appendChild(text);
|
||||||
|
root.appendChild(button);
|
||||||
|
this.communicationFile = file;
|
||||||
|
},
|
||||||
|
delCommunicationFile(event){
|
||||||
|
const file = event.target.files[0];
|
||||||
|
this.$refs.communicationFile.value=null;
|
||||||
|
let element = document.getElementById("communicationNm");
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
|
this.communicationFile = null;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
56
frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js
Normal file
56
frontend/src/modules/sendNumMgt/service/sendNumMgtApi.js
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import httpClient from '@/common/http-client';
|
||||||
|
|
||||||
|
// 공통 코드.
|
||||||
|
const getCommCode = (params) => {
|
||||||
|
return httpClient.post('/api/v1/bo/comm/getCode', params, { withCredentials: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 사업자가 등록 요청.
|
||||||
|
const insertNumber1 = (tenureFile, businessFile, communicationFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs) => {
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append("tenureFile", tenureFile);
|
||||||
|
formData.append("businessFile", businessFile);
|
||||||
|
formData.append("communicationFile", communicationFile);
|
||||||
|
formData.append("adminId", adminId);
|
||||||
|
formData.append("custNm", custNm);
|
||||||
|
formData.append("bRegNo", bRegNo);
|
||||||
|
formData.append("nmineeDivCd", nmineeDivCd);
|
||||||
|
formData.append("numberInputs", numberInputs);
|
||||||
|
|
||||||
|
let url = "/api/v1/bo/sendNumMgt/insertNumber";
|
||||||
|
return httpClient.post(url, formData, {
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "multipart/form-data",
|
||||||
|
"Show-Layer": "Yes"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 타사업자가 등록 요청.
|
||||||
|
const insertNumber2 = (trustFile, warrantFile, deputyFile, tenureFile, businessFile, adminId, custNm, bRegNo, nmineeDivCd, numberInputs) => {
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append("trustFile", trustFile);
|
||||||
|
formData.append("warrantFile", warrantFile);
|
||||||
|
formData.append("deputyFile", deputyFile);
|
||||||
|
formData.append("tenureFile", tenureFile);
|
||||||
|
formData.append("businessFile", businessFile);
|
||||||
|
formData.append("adminId", adminId);
|
||||||
|
formData.append("custNm", custNm);
|
||||||
|
formData.append("bRegNo", bRegNo);
|
||||||
|
formData.append("nmineeDivCd", nmineeDivCd);
|
||||||
|
formData.append("numberInputs", numberInputs);
|
||||||
|
|
||||||
|
let url = "/api/v1/bo/sendNumMgt/insertNumber";
|
||||||
|
return httpClient.post(url, formData, {
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "multipart/form-data",
|
||||||
|
"Show-Layer": "Yes"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
getCommCode,
|
||||||
|
insertNumber1,
|
||||||
|
insertNumber2,
|
||||||
|
}
|
||||||
@@ -3,95 +3,233 @@
|
|||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">발신번호 승인 목록 조회</h3>
|
<h3 class="title">발신번호 승인</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 관리자/유치채널 관리</p>
|
<p class="breadcrumb">발신번호관리 > 발신번호 승인</p>
|
||||||
</div>
|
</div>
|
||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box">
|
<div class="group">
|
||||||
<label for="right" class="label">권한</label>
|
|
||||||
<select name="" id="right">
|
|
||||||
<option value="전체">전체</option>
|
|
||||||
<option value="대리점">대리점</option>
|
|
||||||
<option value="운영자">운영자</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="select_box">
|
<div class="select_box">
|
||||||
<label for="right" class="label">상태</label>
|
<label for="right" class="label">상태</label>
|
||||||
<select name="" id="right">
|
<select name="" id="">
|
||||||
<option value="전체">전체</option>
|
<option value="전체">전체</option>
|
||||||
<option value="사용">사용</option>
|
<option value="승인대기">승인대기</option>
|
||||||
<option value="중지">중지</option>
|
<option value="처리완료">처리완료</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box id">
|
<div class="input_box">
|
||||||
<label for="id1" class="label">ID</label>
|
<label for="right" class="label">사업자번호</label>
|
||||||
<input type="text" id="id1" placeholder="검색어 입력"/>
|
<input class="search-box" type="text" id="search" placeholder="검색어 입력"/>
|
||||||
|
</div>
|
||||||
|
<div class="select_box id">
|
||||||
|
<label for="right" class="label">명의자 구분</label>
|
||||||
|
<select name="" id="">
|
||||||
|
<option value="전체">전체</option>
|
||||||
|
<option value="사업자">사업자</option>
|
||||||
|
<option value="타사업자">타사업자</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="name" class="label">이름(대리점명)</label>
|
<label for="right" class="label">고객사명</label>
|
||||||
<input type="text" id="name" placeholder="검색어 입력"/>
|
<input class="search-box" type="text" id="search" placeholder="검색어 입력"/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey">조회</button>
|
<button type="button" class="button grey">조회</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>100</span>건</div>
|
<div class="count">총 <span>100</span>건
|
||||||
<div class="button_group">
|
<div class="select_box NumberSe">
|
||||||
<button type="button" class="button blue admin">관리자 등록</button>
|
<select name="" id="">
|
||||||
<button type="button" class="button blue channel">유지채널 등록</button>
|
<option value="20">20</option>
|
||||||
<button type="button" class="button white delete">삭제</button>
|
<option value="50" selected>50</option>
|
||||||
|
<option value="100">100</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="table">
|
</div>
|
||||||
|
<div class="table">
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="5%"/>
|
<col width="5%"/>
|
||||||
<col width="15%"/>
|
<col width="12%"/>
|
||||||
<col width="15%"/>
|
<col width="10%"/>
|
||||||
<col width="20%"/>
|
<col width="13%"/>
|
||||||
<col width="20%"/>
|
<col width="10%"/>
|
||||||
<col width="5%"/>
|
<col width="10%"/>
|
||||||
<col width="20%"/>
|
<col width="6%"/>
|
||||||
|
<col width="6%"/>
|
||||||
|
<col width="6%"/>
|
||||||
|
<col width="10%"/>
|
||||||
|
<col width="12%"/>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
|
|
||||||
<th>NO</th>
|
<th>NO</th>
|
||||||
<th>권한</th>
|
<th>요청일</th>
|
||||||
<th>이름(대리점명)</th>
|
<th>관리자ID</th>
|
||||||
<th>ID</th>
|
<th>사업자번호</th>
|
||||||
|
<th>명의자 구분</th>
|
||||||
|
<th>고객사명</th>
|
||||||
|
<th>요청건수</th>
|
||||||
|
<th>승인건수</th>
|
||||||
|
<th>반려건수</th>
|
||||||
<th>상태</th>
|
<th>상태</th>
|
||||||
<th>등록일</th>
|
<th>완료일</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
|
|
||||||
<td>10</td>
|
<td>10</td>
|
||||||
<td>대리점</td>
|
|
||||||
<td>유플러스</td>
|
|
||||||
<td><a href="javascript:void(0)">uplus1</a></td>
|
|
||||||
<td>사용</td>
|
|
||||||
<td>2022-03-10</td>
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>승인대기</td>
|
||||||
|
<td>-</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>9</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>2</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>처리완료</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>8</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>2</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>처리완료</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>7</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>2</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>처리완료</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>6</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>타사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>2</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>처리완료</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>5</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>2</td>
|
||||||
|
<td>1</td>
|
||||||
|
<td>처리완료</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>4</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>타사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>승인대기</td>
|
||||||
|
<td>-</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>3</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>타사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>승인대기</td>
|
||||||
|
<td>-</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>타사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>승인대기</td>
|
||||||
|
<td>-</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>1</td>
|
||||||
|
<td>2022-03-10</td>
|
||||||
|
<td>uplus01</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>타사업자</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td><a href="javascript:void(0)">3</a></td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>0</td>
|
||||||
|
<td>승인대기</td>
|
||||||
|
<td>-</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="table">
|
<div class="pagination">
|
||||||
<custom-grid
|
<div class="arrow-btn">
|
||||||
ref="table"
|
<button class="btn-first" onClick=""></button>
|
||||||
:totalItems="'totalItems'"
|
<button class="btn-prev" onClick=""></button>
|
||||||
:url="testList.url"
|
</div>
|
||||||
:perPage="testList.perPage"
|
<ul>
|
||||||
:initialRequest="testList.initialRequest"
|
<li class="active"><a href="javascript:void(0)">1</a></li>
|
||||||
:pagination="testList.pagination"
|
<li><a href="javascript:void(0)">2</a></li>
|
||||||
:isCheckbox="testList.isCheckbox"
|
<li><a href="javascript:void(0)">3</a></li>
|
||||||
:columns="testList.columns"
|
<li><a href="javascript:void(0)">4</a></li>
|
||||||
:noDataStr="testList.noDataStr"
|
<li><a href="javascript:void(0)">5</a></li>
|
||||||
:addCls="testList.addCls"
|
<li><a href="javascript:void(0)">999</a></li>
|
||||||
:header="testList.header"
|
</ul>
|
||||||
></custom-grid>
|
<div class="arrow-btn">
|
||||||
|
<button class="btn-next" onClick=""></button>
|
||||||
|
<button class="btn-last" onClick=""></button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,6 +9,14 @@
|
|||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="group">
|
<div class="group">
|
||||||
|
<div class="select_box">
|
||||||
|
<label for="right" class="label">등록방법</label>
|
||||||
|
<select name="" id="sttusCd" v-model="grid.params.searchType5" @keyup.enter="search">
|
||||||
|
<option value="">전체</option>
|
||||||
|
<option value="01">서류심사</option>
|
||||||
|
<option value="02">본인인증</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div class="select_box">
|
<div class="select_box">
|
||||||
<label for="right" class="label">승인상태</label>
|
<label for="right" class="label">승인상태</label>
|
||||||
<select name="" id="sttusCd" v-model="grid.params.searchType1" @keyup.enter="search">
|
<select name="" id="sttusCd" v-model="grid.params.searchType1" @keyup.enter="search">
|
||||||
@@ -79,14 +87,43 @@
|
|||||||
:header="grid.headder"
|
:header="grid.headder"
|
||||||
></custom-grid>
|
></custom-grid>
|
||||||
</div>
|
</div>
|
||||||
<!-- <number-reg-pop ref="numberRegPop"> </number-reg-pop> -->
|
|
||||||
|
<number-reg-pop ref="numberRegPop"> </number-reg-pop>
|
||||||
|
<number-detail-pop ref="numberDetailPop"/>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
// import NumberRegPop from '../components/NumberRegPop';
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
import NumberRegPop from '../components/NumberRegPop';
|
||||||
|
import NumberDetailPop from "@/modules/sendNumMgt/components/NumberDetailPop";
|
||||||
|
|
||||||
|
class CustomATagRenderer {
|
||||||
|
constructor(props) {
|
||||||
|
this.props = props;
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = 'javascript:void(0);';
|
||||||
|
el.className = 'btn_text';
|
||||||
|
el.innerText= String(props.colValue)
|
||||||
|
this.el = el;
|
||||||
|
}
|
||||||
|
|
||||||
|
getElement() {
|
||||||
|
return this.el;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEvent(selEl) {
|
||||||
|
selEl.addEventListener("click", () => {
|
||||||
|
const { callback } = this.props["cgrido" + this.props.colName].options;
|
||||||
|
callback(this.props);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'numberList',
|
name: 'numberList',
|
||||||
data() {
|
data() {
|
||||||
@@ -97,7 +134,7 @@ export default {
|
|||||||
cate2Code: "",
|
cate2Code: "",
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
// 테이블 리스트 데이터
|
// 테이블 리스트 데이터
|
||||||
perPageCnt: 20,
|
perPageCnt: 50,
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/sendNumMgt/numberList',
|
url: '/api/v1/bo/sendNumMgt/numberList',
|
||||||
perPage: 20,
|
perPage: 20,
|
||||||
@@ -121,16 +158,22 @@ export default {
|
|||||||
],
|
],
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 50 },
|
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
|
||||||
{ name: 'custNm', header: '고객사명', align: 'left', width: 50 },
|
{ name: 'custNm', header: '고객사명', align: 'center', width: '5%' },
|
||||||
{ name: 'adminId', header: '관리자ID', align: 'left', width: 100 },
|
{ name: 'adminId', header: '관리자ID', align: 'center', width: '10%' },
|
||||||
{ name: 'register', header: '등록자ID', align: 'left', width: 100 },
|
{ name: 'register', header: '등록자ID', align: 'center', width: '10%' },
|
||||||
{ name: 'bRegNo', header: '사업자번호', align: 'center', width: 100},
|
{ name: 'bregNo', header: '사업자번호', align: 'center', width: '10%'},
|
||||||
{ name: 'nmineeDivCd', header: '명의자 구분', align: 'center', width: 100},
|
{ name: 'nmineeDivCd', header: '명의자 구분', align: 'center', width: '10%'},
|
||||||
{ name: 'inchDivCd', header: '인입채널', align: 'center', width: 100},
|
{ name: 'inchDivCd', header: '인입채널', align: 'center', width: '10%'},
|
||||||
{ name: 'regNo', header: '발신번호', align: 'center', width: 100},
|
{ name: 'sndrno', header: '발신번호', align: 'center', width: '10%', renderer: {
|
||||||
{ name: 'sttusCd', header: '승인상태', align: 'center', width: 100},
|
type: CustomATagRenderer
|
||||||
{ name: 'regDt', header: '등록일자', width: 100, cls: 'td_line' }
|
,options: {
|
||||||
|
callback: this.numberDetail,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ name: 'sttusCd', header: '승인상태', align: 'center', width: '10%'},
|
||||||
|
{ name: 'regDt', header: '등록일자', width: '10%', cls: 'td_line' }
|
||||||
],
|
],
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
params: {
|
params: {
|
||||||
@@ -138,6 +181,7 @@ export default {
|
|||||||
searchType2: '',
|
searchType2: '',
|
||||||
searchType3: '',
|
searchType3: '',
|
||||||
searchType4: '',
|
searchType4: '',
|
||||||
|
searchType5: '',
|
||||||
searchText1: '',
|
searchText1: '',
|
||||||
pagePerRows: '',
|
pagePerRows: '',
|
||||||
page: ''
|
page: ''
|
||||||
@@ -148,7 +192,9 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
// NumberRegPop
|
NumberRegPop,
|
||||||
|
NumberDetailPop,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
@@ -210,20 +256,24 @@ export default {
|
|||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
},
|
},
|
||||||
numberRegPopOpen: function(){
|
numberRegPopOpen: function(){
|
||||||
this.$refs.numberRegPop.ModalOpen();
|
this.$refs.numberRegPop.numberRegPopopen();
|
||||||
|
},
|
||||||
|
numberDetail(props){
|
||||||
|
console.log(props)
|
||||||
|
this.$refs.numberDetailPop.numberDetailPopOpen(props);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
// beforeRouteLeave(to, from, next) {
|
||||||
|
//
|
||||||
const getP = this.$refs.table.getPagination();
|
// const getP = this.$refs.table.getPagination();
|
||||||
console.log("==========getP : " + getP._currentPage);
|
// console.log("==========getP : " + getP._currentPage);
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
// this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
// page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
// perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
// params: this.grid.params
|
||||||
});
|
// });
|
||||||
// 라우트 하기전 실행
|
// // 라우트 하기전 실행
|
||||||
next();
|
// next();
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="wrap main_wrap">
|
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
@@ -61,7 +61,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -58,6 +58,9 @@
|
|||||||
:header="grid.headder"
|
:header="grid.headder"
|
||||||
></custom-grid>
|
></custom-grid>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -65,6 +68,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
//import api from '../service/api';
|
//import api from '../service/api';
|
||||||
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
class customBRegNo {
|
class customBRegNo {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
this.props = props;
|
this.props = props;
|
||||||
@@ -138,7 +143,8 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
customGrid: customGrid
|
customGrid: customGrid,
|
||||||
|
commonModal
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.$store.commit("login/isLogin", true);
|
this.$store.commit("login/isLogin", true);
|
||||||
|
|||||||
@@ -3,95 +3,225 @@
|
|||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">사업자 월별 통계 목록 조회</h3>
|
<h3 class="title">사업자별 통계</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 관리자/유치채널 관리</p>
|
<p class="breadcrumb">발송통계 > 사업자별 통계</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="top_tab">
|
||||||
|
<a href="statistics_business.html" class="on">월별통계</a><a href="statistics_business_day.html">일별통계</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box">
|
<div class="input_box cal">
|
||||||
<label for="right" class="label">권한</label>
|
<label for="right" class="label txt">날짜</label>
|
||||||
<select name="" id="right">
|
<p> 최대 3개월까지 조회 가능합니다.</p>
|
||||||
<option value="전체">전체</option>
|
<div class="term">
|
||||||
<option value="대리점">대리점</option>
|
<input class="date" type="text" id="" placeholder="2022-10-12"/>
|
||||||
<option value="운영자">운영자</option>
|
~
|
||||||
</select>
|
<input class="" type="text" id="" placeholder="2022-10-12"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box">
|
|
||||||
<label for="right" class="label">상태</label>
|
|
||||||
<select name="" id="right">
|
|
||||||
<option value="전체">전체</option>
|
|
||||||
<option value="사용">사용</option>
|
|
||||||
<option value="중지">중지</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box id">
|
<div class="input_box id">
|
||||||
<label for="id1" class="label">ID</label>
|
<label for="name" class="label">고객사명</label>
|
||||||
<input type="text" id="id1" placeholder="검색어 입력"/>
|
<input type="text" id="name" placeholder="검색어 입력">
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="name" class="label">이름(대리점명)</label>
|
<label for="name" class="label">사업자등록번호</label>
|
||||||
<input type="text" id="name" placeholder="검색어 입력"/>
|
<input type="text" id="name" placeholder="검색어 입력">
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey">조회</button>
|
<button type="button" class="button grey">조회</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>100</span>건</div>
|
<div class="count">집계결과</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue admin">관리자 등록</button>
|
<button type="button" class="button blue download">엑셀 다운로드</button>
|
||||||
<button type="button" class="button blue channel">유지채널 등록</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="table">
|
<div class="table calculate scroll">
|
||||||
|
<div>
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
|
||||||
<col width="5%"/>
|
|
||||||
<col width="15%"/>
|
|
||||||
<col width="15%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
<col width="5%"/>
|
|
||||||
<col width="20%"/>
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
|
<th rowspan="2">날짜</th>
|
||||||
<th>NO</th>
|
<th rowspan="2">고객사명</th>
|
||||||
<th>권한</th>
|
<th rowspan="2">사업자번호</th>
|
||||||
<th>이름(대리점명)</th>
|
<th colspan="2">전체</th>
|
||||||
<th>ID</th>
|
<th colspan="2">SMS</th>
|
||||||
<th>상태</th>
|
<th colspan="2">LMS</th>
|
||||||
<th>등록일</th>
|
<th colspan="2">MMS</th>
|
||||||
|
<th colspan="2">알림톡</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="total">
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
|
<td>2022-04</td>
|
||||||
<td>10</td>
|
|
||||||
<td>대리점</td>
|
|
||||||
<td>유플러스</td>
|
<td>유플러스</td>
|
||||||
<td><a href="javascript:void(0)">uplus1</a></td>
|
<td>229-81-39938</td>
|
||||||
<td>사용</td>
|
<td>84,000,000</td>
|
||||||
<td>2022-03-10</td>
|
<td>84,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-03</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-01</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-12</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-11</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-10</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-09</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-08</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-07</td>
|
||||||
|
<td>유플러스</td>
|
||||||
|
<td>229-81-39938</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="table">
|
|
||||||
<custom-grid
|
|
||||||
ref="table"
|
|
||||||
:totalItems="'totalItems'"
|
|
||||||
:url="testList.url"
|
|
||||||
:perPage="testList.perPage"
|
|
||||||
:initialRequest="testList.initialRequest"
|
|
||||||
:pagination="testList.pagination"
|
|
||||||
:isCheckbox="testList.isCheckbox"
|
|
||||||
:columns="testList.columns"
|
|
||||||
:noDataStr="testList.noDataStr"
|
|
||||||
:addCls="testList.addCls"
|
|
||||||
:header="testList.header"
|
|
||||||
></custom-grid>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -104,43 +234,7 @@ export default {
|
|||||||
name: 'monthList',
|
name: 'monthList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
testList: {
|
|
||||||
url: '/api/v1/bo/sysMgt/adminList',
|
|
||||||
perPage: 20,
|
|
||||||
pagination: true,
|
|
||||||
isCheckbox: true,
|
|
||||||
initialRequest: false,
|
|
||||||
addCls: 'box_OFvis',
|
|
||||||
|
|
||||||
|
|
||||||
header: [
|
|
||||||
[
|
|
||||||
{ header: 'NO', childNames: [] },
|
|
||||||
{ header: '권한', childNames: [] },
|
|
||||||
{ header: '이름(대리점명)', childNames: [] },
|
|
||||||
{ header: 'ID', childNames: [] },
|
|
||||||
{ header: '상태', childNames: [] },
|
|
||||||
{ header: '등록일', childNames: [] }
|
|
||||||
]
|
|
||||||
],
|
|
||||||
|
|
||||||
columns: [
|
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
|
||||||
{ name: 'auth', header: '권한', align: 'left', width: 160 },
|
|
||||||
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
|
|
||||||
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
|
|
||||||
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
|
|
||||||
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
|
|
||||||
],
|
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
|
||||||
params: {
|
|
||||||
searchType1: '',
|
|
||||||
searchType2: '',
|
|
||||||
searchText1: '',
|
|
||||||
searchText2: ''
|
|
||||||
},
|
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -156,8 +250,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search: function(isKeep) {
|
search: function(isKeep) {
|
||||||
console.log(this.testList.params);
|
|
||||||
this.$refs.table.search(this.testList.params, isKeep);
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,95 +3,206 @@
|
|||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">월별 통계 목록 조회</h3>
|
<h3 class="title">날짜별 통계</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 관리자/유치채널 관리</p>
|
<p class="breadcrumb">발송통계 > 날짜별 통계</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="top_tab">
|
||||||
|
<a href="statistics_date.html" class="on">월별통계</a><a href="statistics_date_day.html">일별통계</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<form autocomplete="off" class="search_form">
|
<form autocomplete="off" class="search_form">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box">
|
<div class="input_box cal">
|
||||||
<label for="right" class="label">권한</label>
|
<label for="right" class="label txt">날짜</label>
|
||||||
<select name="" id="right">
|
<p> 최대 3개월까지 조회 가능합니다.</p>
|
||||||
<option value="전체">전체</option>
|
<div class="term">
|
||||||
<option value="대리점">대리점</option>
|
<input class="date" type="text" id="" placeholder="2022-10-12"/>
|
||||||
<option value="운영자">운영자</option>
|
~
|
||||||
</select>
|
<input class="" type="text" id="" placeholder="2022-10-12"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="select_box">
|
|
||||||
<label for="right" class="label">상태</label>
|
|
||||||
<select name="" id="right">
|
|
||||||
<option value="전체">전체</option>
|
|
||||||
<option value="사용">사용</option>
|
|
||||||
<option value="중지">중지</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="input_box id">
|
|
||||||
<label for="id1" class="label">ID</label>
|
|
||||||
<input type="text" id="id1" placeholder="검색어 입력"/>
|
|
||||||
</div>
|
|
||||||
<div class="input_box">
|
|
||||||
<label for="name" class="label">이름(대리점명)</label>
|
|
||||||
<input type="text" id="name" placeholder="검색어 입력"/>
|
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey">조회</button>
|
<button type="button" class="button grey">조회</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>100</span>건</div>
|
<div class="count">집계결과</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue admin">관리자 등록</button>
|
<button type="button" class="button blue download">엑셀 다운로드</button>
|
||||||
<button type="button" class="button blue channel">유지채널 등록</button>
|
|
||||||
<button type="button" class="button white delete">삭제</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="table">
|
<div class="table calculate">
|
||||||
<table>
|
<table>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="5%"/>
|
<col width="8%">
|
||||||
<col width="15%"/>
|
<col width="9.2%">
|
||||||
<col width="15%"/>
|
<col width="9.2%">
|
||||||
<col width="20%"/>
|
<col width="9.2%">
|
||||||
<col width="20%"/>
|
<col width="9.2%">
|
||||||
<col width="5%"/>
|
<col width="9.2%">
|
||||||
<col width="20%"/>
|
<col width="9.2%">
|
||||||
|
<col width="9.2%">
|
||||||
|
<col width="9.2%">
|
||||||
|
<col width="9.2%">
|
||||||
|
<col width="9.2%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" id="admin_check1"><label for="admin_check1"></label></th>
|
<th rowspan="2">날짜</th>
|
||||||
<th>NO</th>
|
<th colspan="2">전체</th>
|
||||||
<th>권한</th>
|
<th colspan="2">SMS</th>
|
||||||
<th>이름(대리점명)</th>
|
<th colspan="2">LMS</th>
|
||||||
<th>ID</th>
|
<th colspan="2">MMS</th>
|
||||||
<th>상태</th>
|
<th colspan="2">알림톡</th>
|
||||||
<th>등록일</th>
|
</tr>
|
||||||
|
<tr class="total">
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
|
<th>발송건수</th>
|
||||||
|
<th>성공건수/(%)</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="checkbox" checked id="admin_check2"><label for="admin_check2"></label></td>
|
<td>전체</td>
|
||||||
<td>10</td>
|
<td>84,000,000</td>
|
||||||
<td>대리점</td>
|
<td>84,000,000<br>(100%)</td>
|
||||||
<td>유플러스</td>
|
<td>21,000,000</td>
|
||||||
<td><a href="javascript:void(0)">uplus1</a></td>
|
<td>21,000,000<br>(100%)</td>
|
||||||
<td>사용</td>
|
<td>21,000,000</td>
|
||||||
<td>2022-03-10</td>
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
<td>21,000,000</td>
|
||||||
|
<td>21,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-03</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-02</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2022-01</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-12</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-11</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-10</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-09</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-08</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2021-07</td>
|
||||||
|
<td>40,000,000</td>
|
||||||
|
<td>40,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
|
<td>10,000,000</td>
|
||||||
|
<td>10,000,000<br>(100%)</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div> -->
|
|
||||||
<div class="table">
|
|
||||||
<custom-grid
|
|
||||||
ref="table"
|
|
||||||
:totalItems="'totalItems'"
|
|
||||||
:url="testList.url"
|
|
||||||
:perPage="testList.perPage"
|
|
||||||
:initialRequest="testList.initialRequest"
|
|
||||||
:pagination="testList.pagination"
|
|
||||||
:isCheckbox="testList.isCheckbox"
|
|
||||||
:columns="testList.columns"
|
|
||||||
:noDataStr="testList.noDataStr"
|
|
||||||
:addCls="testList.addCls"
|
|
||||||
:header="testList.header"
|
|
||||||
></custom-grid>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -104,44 +215,7 @@ export default {
|
|||||||
name: 'monthList',
|
name: 'monthList',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
testList: {
|
|
||||||
url: '/api/v1/bo/sysMgt/adminList',
|
|
||||||
perPage: 20,
|
|
||||||
pagination: true,
|
|
||||||
isCheckbox: true,
|
|
||||||
initialRequest: false,
|
|
||||||
addCls: 'box_OFvis',
|
|
||||||
|
|
||||||
|
|
||||||
header: [
|
|
||||||
[
|
|
||||||
{ header: 'NO', childNames: [] },
|
|
||||||
{ header: '권한', childNames: [] },
|
|
||||||
{ header: '이름(대리점명)', childNames: [] },
|
|
||||||
{ header: 'ID', childNames: [] },
|
|
||||||
{ header: '상태', childNames: [] },
|
|
||||||
{ header: '등록일', childNames: [] }
|
|
||||||
]
|
|
||||||
],
|
|
||||||
|
|
||||||
columns: [
|
|
||||||
{ name: 'no', header: 'NO', align: 'center', width: 60 },
|
|
||||||
{ name: 'auth', header: '권한', align: 'left', width: 160 },
|
|
||||||
{ name: 'name', header: '이름(대리점명)', align: 'center', width: 130},
|
|
||||||
{ name: 'adminId', header: 'ID', align: 'center', width: 130},
|
|
||||||
{ name: 'adminStat', header: '상태', align: 'center', width: 130},
|
|
||||||
{ name: 'regDt', header: '등록일', width: 90, cls: 'td_line' }
|
|
||||||
],
|
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
|
||||||
// params: {
|
|
||||||
// apprResult: '',
|
|
||||||
// searchType: '',
|
|
||||||
// searchText: '',
|
|
||||||
// startDate: '',
|
|
||||||
// endDate: ''
|
|
||||||
// },
|
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -151,15 +225,10 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let isKeep = false;
|
|
||||||
isKeep = true;
|
|
||||||
this.search(isKeep);
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search: function(isKeep) {
|
|
||||||
console.log(this.testList.params);
|
|
||||||
this.$refs.table.search(this.testList.params, isKeep);
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<h3 class="pop-tit" v-if="insertType === 1">관리자 등록</h3>
|
<h3 class="pop-tit" v-if="insertType === 1">관리자 등록</h3>
|
||||||
<h3 class="pop-tit" v-else>유치채널 사용자 등록</h3>
|
<h3 class="pop-tit" v-else>유치채널 사용자 등록</h3>
|
||||||
</div>
|
</div>
|
||||||
<form autocomplete="off" ref="adminRegForm">
|
<!-- <form autocomplete="off" ref="adminRegForm">-->
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -68,14 +68,15 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
<!-- </form>-->
|
||||||
<div class="pop-btn2">
|
<div class="popup-btn2">
|
||||||
<button class="btn-default" @click="ModalClose();">취소</button>
|
|
||||||
<button class="btn-pcolor" @click="doInsert">저장</button>
|
<button class="btn-pcolor" @click="doInsert">저장</button>
|
||||||
|
<button class="btn-default" @click="ModalClose();">취소</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<search-id-popup ref="searchIdPopModal"> </search-id-popup>
|
<search-id-popup ref="searchIdPopModal"> </search-id-popup>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -87,7 +88,7 @@ import sysMgtApi from "../service/sysMgtApi.js";
|
|||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import SearchIdPopup from '../components/SearchIdPopup.vue';
|
import SearchIdPopup from '../components/SearchIdPopup.vue';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
// searchIdPopModal
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "adminRegPop",
|
name: "adminRegPop",
|
||||||
@@ -118,6 +119,7 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
SearchIdPopup,
|
SearchIdPopup,
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
prop: 'sendData',
|
prop: 'sendData',
|
||||||
@@ -132,23 +134,31 @@ export default {
|
|||||||
methods :{
|
methods :{
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
if(this.isNull(this.userPwd1)){
|
if(this.isNull(this.userPwd1)){
|
||||||
alert("비밀번호를 입력해 주세요.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호 확인을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -156,7 +166,9 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -165,7 +177,9 @@ export default {
|
|||||||
},
|
},
|
||||||
doValidate(){
|
doValidate(){
|
||||||
if(!this.idCheck){
|
if(!this.idCheck){
|
||||||
alert("유효한 마당ID가 아닙니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '유효한 마당ID가 아닙니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -173,39 +187,54 @@ export default {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.userNm)){
|
if(this.isNull(this.userNm)){
|
||||||
alert("이름을 입력해 주세요");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '이름을 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._userNm.focus();
|
this.$refs._userNm.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.mdn)){
|
if(this.isNull(this.mdn)){
|
||||||
alert('휴대폰번호를 입력해주세요.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '휴대폰번호를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const hp = this.mdn;
|
const hp = this.mdn;
|
||||||
if(!this.isNull(hp) && !this.isMobile(hp)){
|
if(!this.isNull(hp) && !this.isMobile(hp)){
|
||||||
alert("휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._phone.focus();
|
this.$refs._phone.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.email)){
|
if(this.isNull(this.email)){
|
||||||
alert('이메일을 입력해주세요.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '이메일을 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const email = this.email;
|
const email = this.email;
|
||||||
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
|
||||||
alert("이메일 형식이 잘못되었습니다. 확인해 주세요");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '이메일 형식이 잘못되었습니다.';
|
||||||
|
this.row.msg2 = '확인해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._email.focus();
|
this.$refs._email.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.auth)){
|
if(this.isNull(this.auth)){
|
||||||
alert('권한을 선택 해주세요.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '권한을 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._auth.focus();
|
this.$refs._auth.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.isNull(this.stat)){
|
if(this.isNull(this.stat)){
|
||||||
alert('상태를 선택 해주세요.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '상태를 선택 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.$refs._auth.focus();
|
// this.$refs._auth.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -225,7 +254,9 @@ export default {
|
|||||||
async searchMadangId(){
|
async searchMadangId(){
|
||||||
|
|
||||||
if(!this.madangId){
|
if(!this.madangId){
|
||||||
alert('마당ID를 입력해주세요');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '마당ID를 입력해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -253,20 +284,29 @@ export default {
|
|||||||
|
|
||||||
}else if(result.retCode == '1004'){
|
}else if(result.retCode == '1004'){
|
||||||
//alert('마당ID 정보가 없습니다.');
|
//alert('마당ID 정보가 없습니다.');
|
||||||
this.searchIdFailPop();
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}else {
|
}else {
|
||||||
//alert('마당ID 조회에 실패하였습니다.');
|
//alert('마당ID 조회에 실패하였습니다.');
|
||||||
this.searchIdFailPop();
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
//alert("실패 하였습니다.");
|
//alert("실패 하였습니다.");
|
||||||
this.searchIdFailPop();
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
@@ -325,11 +365,15 @@ export default {
|
|||||||
const response = await sysMgtApi.insertAdmin(this.row);
|
const response = await sysMgtApi.insertAdmin(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -347,9 +391,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
|
||||||
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
|
||||||
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
|
||||||
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
|
||||||
</style>
|
|
||||||
@@ -62,6 +62,7 @@
|
|||||||
<admin-reg-pop ref="adminRegModal"> </admin-reg-pop>
|
<admin-reg-pop ref="adminRegModal"> </admin-reg-pop>
|
||||||
<!-- <admin-reg2-pop ref="adminReg2Modal"> </admin-reg2-pop> -->
|
<!-- <admin-reg2-pop ref="adminReg2Modal"> </admin-reg2-pop> -->
|
||||||
<admin-detail-pop ref="adminDetailModal"> </admin-detail-pop>
|
<admin-detail-pop ref="adminDetailModal"> </admin-detail-pop>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -69,7 +70,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
import AdminRegPop from '../components/AdminRegPop';
|
import AdminRegPop from '../components/AdminRegPop';
|
||||||
//import AdminReg2Pop from '../components/AdminReg2Pop';
|
import commonModal from "@/components/modal/commonModal";
|
||||||
import AdminDetailPop from '../components/AdminDetailPop';
|
import AdminDetailPop from '../components/AdminDetailPop';
|
||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
import sysMgtApi from "../service/sysMgtApi.js";
|
import sysMgtApi from "../service/sysMgtApi.js";
|
||||||
@@ -145,7 +146,7 @@ export default {
|
|||||||
customGrid: customGrid,
|
customGrid: customGrid,
|
||||||
// SystemPopup,
|
// SystemPopup,
|
||||||
AdminRegPop,
|
AdminRegPop,
|
||||||
//AdminReg2Pop,
|
commonModal,
|
||||||
AdminDetailPop,
|
AdminDetailPop,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
@@ -200,12 +201,16 @@ export default {
|
|||||||
|
|
||||||
console.log("totalItems >> " + this.totalItems);
|
console.log("totalItems >> " + this.totalItems);
|
||||||
if(this.totalItems == 0){
|
if(this.totalItems == 0){
|
||||||
alert('검색 결과가 없습니다.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '검색 결과가 없습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var chkList = this.$refs.table.checkedElementDatas();
|
var chkList = this.$refs.table.checkedElementDatas();
|
||||||
if(chkList.length == 0){
|
if(chkList.length == 0){
|
||||||
alert('체크박스에 체크를 해주세요.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '삭제대상을 체크를 해주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// for(var i = 0; i < chkList.length; i++){
|
// for(var i = 0; i < chkList.length; i++){
|
||||||
@@ -245,14 +250,19 @@ export default {
|
|||||||
let response = await sysMgtApi.deleteAdmin(this.row);
|
let response = await sysMgtApi.deleteAdmin(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('삭제 하였습니다.');
|
this.row.title = '관리자/유치채널 관리';
|
||||||
// grid.reloadData();
|
this.row.msg1 = '삭제 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs.table.reloadData();
|
this.$refs.table.reloadData();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import NavBar from "../components/NavBar.vue";
|
import NavBar from "../components/NavBar.vue";
|
||||||
//import vuejsDatepicker from "../components/vuejs-datepicker";
|
import vuejsDatepicker from "../components/vuejs-datepicker";
|
||||||
import HubWebHeader from "../components/HubWebHeader.vue";
|
import HubWebHeader from "../components/HubWebHeader.vue";
|
||||||
import HubWebFooter from "../components/HubWebFooter.vue";
|
import HubWebFooter from "../components/HubWebFooter.vue";
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ export default {
|
|||||||
name: "hubwebLayout",
|
name: "hubwebLayout",
|
||||||
components: {
|
components: {
|
||||||
NavBar,
|
NavBar,
|
||||||
//vuejsDatepicker,
|
// vuejsDatepicker,
|
||||||
HubWebHeader,
|
HubWebHeader,
|
||||||
HubWebFooter,
|
HubWebFooter,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -8,10 +8,7 @@ package kr.co.uplus.ez.api.attractMgt;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelReqDto;
|
import kr.co.uplus.ez.api.attractMgt.dto.*;
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelResDto;
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListResDto;
|
|
||||||
import kr.co.uplus.ez.common.components.ValidComponents;
|
import kr.co.uplus.ez.common.components.ValidComponents;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
||||||
@@ -75,7 +72,7 @@ public class AttractMgtController {
|
|||||||
* date : 2022. 4. 26.
|
* date : 2022. 4. 26.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 유치 채널 상세 조회
|
* desc : 유치 채널 상세 조회
|
||||||
* @param paramMap
|
* @param channelDetailReqDto
|
||||||
* @return
|
* @return
|
||||||
* @
|
* @
|
||||||
*/
|
*/
|
||||||
@@ -83,8 +80,11 @@ public class AttractMgtController {
|
|||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "/channelDetail" , method = {RequestMethod.POST})
|
@RequestMapping(value = "/channelDetail" , method = {RequestMethod.POST})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ApiResponseMessage channelDetail(@RequestBody Map<String, Object> paramMap) {
|
public ChannelDetailResDto channelDetail(@RequestBody @Valid ChannelDetailReqDto channelDetailReqDto, BindingResult bindingResult) {
|
||||||
return attractService.channelDetail(paramMap);
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
|
return new ChannelDetailResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
|
}
|
||||||
|
return attractService.channelDetail(channelDetailReqDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -95,6 +95,7 @@ public class AttractMgtController {
|
|||||||
* @return
|
* @return
|
||||||
* @
|
* @
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
@RequestMapping(value = "/sendNumberListExcel" , method = {RequestMethod.POST})
|
@RequestMapping(value = "/sendNumberListExcel" , method = {RequestMethod.POST})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ApiResponseMessage sendNumberListExcel(@RequestBody Map<String, Object> paramMap) {
|
public ApiResponseMessage sendNumberListExcel(@RequestBody Map<String, Object> paramMap) {
|
||||||
|
|||||||
@@ -1,10 +1,20 @@
|
|||||||
package kr.co.uplus.ez.api.attractMgt;
|
package kr.co.uplus.ez.api.attractMgt;
|
||||||
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
|
import kr.co.uplus.ez.api.attractMgt.dto.*;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface AttractMgtMapper {
|
public interface AttractMgtMapper {
|
||||||
|
|
||||||
int selectAttractListTotalCnt(ChannelListReqDto channelListReqDto);
|
int selectAttractListTotalCnt(ChannelListReqDto channelListReqDto);
|
||||||
|
|
||||||
|
List<ChannelInfo> selectAttractList(ChannelListReqDto channelListReqDto);
|
||||||
|
|
||||||
|
List<ChannelInfo> selectAttractExcelList(ChannelListExcelReqDto channelListExcelReqDto);
|
||||||
|
|
||||||
|
ChannelDetailRes selectAttractDetail(ChannelDetailReqDto channelDetailReqDto);
|
||||||
|
|
||||||
|
List<ChannelDetail> selectSndCountList(ChannelDetailReqDto channelDetailReqDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package kr.co.uplus.ez.api.attractMgt;
|
package kr.co.uplus.ez.api.attractMgt;
|
||||||
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelReqDto;
|
import kr.co.uplus.ez.api.attractMgt.dto.*;
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListExcelResDto;
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.attractMgt.dto.ChannelListResDto;
|
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
||||||
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -16,6 +17,14 @@ import java.util.Map;
|
|||||||
@Service
|
@Service
|
||||||
public class AttractMgtService {
|
public class AttractMgtService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Qualifier("sqlSessionTemplateDb1")
|
||||||
|
private SqlSessionTemplate sqlSessionMaster;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Qualifier("sqlSessionTemplateDb2")
|
||||||
|
private SqlSessionTemplate sqlSessionSlave;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
@@ -24,8 +33,40 @@ public class AttractMgtService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ChannelListResDto channelList(ChannelListReqDto channelListReqDto) {
|
public ChannelListResDto channelList(ChannelListReqDto channelListReqDto) {
|
||||||
|
AttractMgtMapper attractMgtMapper = sqlSessionSlave.getMapper(AttractMgtMapper.class);
|
||||||
|
|
||||||
return new ChannelListResDto(ApiResponseCode.SUCCESS);
|
String nowPage = String.valueOf(channelListReqDto.getPage());
|
||||||
|
int totalCnt = attractMgtMapper.selectAttractListTotalCnt(channelListReqDto);
|
||||||
|
|
||||||
|
if (totalCnt == 0) {
|
||||||
|
|
||||||
|
ChannelListRes channelListRes = new ChannelListRes();
|
||||||
|
channelListRes.setList(new ArrayList<>());
|
||||||
|
|
||||||
|
Paging paging = new Paging();
|
||||||
|
paging.setPage(nowPage);
|
||||||
|
paging.setTotalCnt(String.valueOf(totalCnt));
|
||||||
|
channelListRes.setPaging(paging);
|
||||||
|
|
||||||
|
return new ChannelListResDto(ApiResponseCode.CM_NOT_FOUND, channelListRes);
|
||||||
|
}
|
||||||
|
|
||||||
|
int page = channelListReqDto.getPage();
|
||||||
|
int pagePerRows = channelListReqDto.getPagePerRows();
|
||||||
|
page = (page - 1) * pagePerRows;
|
||||||
|
channelListReqDto.setPage(page);
|
||||||
|
|
||||||
|
List<ChannelInfo> channelInfos = attractMgtMapper.selectAttractList(channelListReqDto);
|
||||||
|
|
||||||
|
ChannelListRes channelListRes = new ChannelListRes();
|
||||||
|
channelListRes.setList(channelInfos);
|
||||||
|
|
||||||
|
Paging paging = new Paging();
|
||||||
|
paging.setPage(nowPage);
|
||||||
|
paging.setTotalCnt(String.valueOf(totalCnt));
|
||||||
|
channelListRes.setPaging(paging);
|
||||||
|
|
||||||
|
return new ChannelListResDto(ApiResponseCode.SUCCESS, channelListRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,78 +77,29 @@ public class AttractMgtService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ChannelListExcelResDto channelListExcel(ChannelListExcelReqDto channelListExcelReqDto) {
|
public ChannelListExcelResDto channelListExcel(ChannelListExcelReqDto channelListExcelReqDto) {
|
||||||
|
AttractMgtMapper attractMgtMapper = sqlSessionSlave.getMapper(AttractMgtMapper.class);
|
||||||
|
|
||||||
return new ChannelListExcelResDto(ApiResponseCode.SUCCESS);
|
List<ChannelInfo> channelInfos = attractMgtMapper.selectAttractExcelList(channelListExcelReqDto);
|
||||||
|
ChannelListExcelRes channelListExcelRes = new ChannelListExcelRes();
|
||||||
|
channelListExcelRes.setList(channelInfos);
|
||||||
|
return new ChannelListExcelResDto(ApiResponseCode.SUCCESS, channelListExcelRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 유치 채널 상세 조회
|
* desc : 유치 채널 상세 조회
|
||||||
* @param paramMap
|
* @param channelDetailReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ApiResponseMessage channelDetail(Map<String, Object> paramMap) {
|
public ChannelDetailResDto channelDetail(ChannelDetailReqDto channelDetailReqDto) {
|
||||||
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
|
AttractMgtMapper attractMgtMapper = sqlSessionSlave.getMapper(AttractMgtMapper.class);
|
||||||
Map<String, Object> dataObj = new HashMap<>();
|
|
||||||
List<Map<String,Object>> dataList = new ArrayList<>();
|
|
||||||
Map<String, Object> data = new HashMap<>();
|
|
||||||
|
|
||||||
dataObj.put("subsDt", "2022-03-10");
|
ChannelDetailRes channelDetailRes = attractMgtMapper.selectAttractDetail(channelDetailReqDto);
|
||||||
dataObj.put("stat", "사용");
|
List<ChannelDetail> channelDetails = attractMgtMapper.selectSndCountList(channelDetailReqDto);
|
||||||
dataObj.put("custNm", "홍길동");
|
channelDetailRes.setList(channelDetails);
|
||||||
dataObj.put("plan", "요금제1");
|
|
||||||
dataObj.put("reprNm", "홍길동");
|
|
||||||
dataObj.put("custType", "법인사업자");
|
|
||||||
dataObj.put("bRegNo", "1231212345");
|
|
||||||
dataObj.put("cprRegNo", "1234561234567");
|
|
||||||
dataObj.put("adr1", "12345");
|
|
||||||
dataObj.put("adr2", "서울 마포구 월드컵북로 416");
|
|
||||||
dataObj.put("adr3", "유플러스 상암사옥");
|
|
||||||
dataObj.put("channelId", "Uplus01");
|
|
||||||
dataObj.put("channelNm", "홍길동");
|
|
||||||
dataObj.put("adminId", "uplus02");
|
|
||||||
dataObj.put("adminNm", "김철수");
|
|
||||||
|
|
||||||
data.put("date", "합계");
|
return new ChannelDetailResDto(ApiResponseCode.SUCCESS, channelDetailRes);
|
||||||
data.put("sms", "360000");
|
|
||||||
data.put("lms", "360000");
|
|
||||||
data.put("mms", "360000");
|
|
||||||
data.put("totiTalk", "360000");
|
|
||||||
data.put("allSendingCnt", "1440000");
|
|
||||||
dataList.add(data);
|
|
||||||
|
|
||||||
data = new HashMap<>();
|
|
||||||
data.put("date", "2022-03");
|
|
||||||
data.put("sms", "10000");
|
|
||||||
data.put("lms", "10000");
|
|
||||||
data.put("mms", "10000");
|
|
||||||
data.put("totiTalk", "10000");
|
|
||||||
data.put("allSendingCnt", "40000");
|
|
||||||
dataList.add(data);
|
|
||||||
|
|
||||||
data = new HashMap<>();
|
|
||||||
data.put("date", "2022-02");
|
|
||||||
data.put("sms", "10000");
|
|
||||||
data.put("lms", "10000");
|
|
||||||
data.put("mms", "10000");
|
|
||||||
data.put("totiTalk", "10000");
|
|
||||||
data.put("allSendingCnt", "40000");
|
|
||||||
dataList.add(data);
|
|
||||||
|
|
||||||
data = new HashMap<>();
|
|
||||||
data.put("date", "2022-01");
|
|
||||||
data.put("sms", "10000");
|
|
||||||
data.put("lms", "10000");
|
|
||||||
data.put("mms", "10000");
|
|
||||||
data.put("totiTalk", "10000");
|
|
||||||
data.put("allSendingCnt", "40000");
|
|
||||||
dataList.add(data);
|
|
||||||
|
|
||||||
dataObj.put("list", dataList);
|
|
||||||
result.setData(dataObj);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,6 +109,7 @@ public class AttractMgtService {
|
|||||||
* @param paramMap
|
* @param paramMap
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public ApiResponseMessage sendNumberListExcel(Map<String, Object> paramMap) {
|
public ApiResponseMessage sendNumberListExcel(Map<String, Object> paramMap) {
|
||||||
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
|
ApiResponseMessage result = new ApiResponseMessage(ApiResponseCode.SUCCESS);
|
||||||
Map<String, Object> dataObj = new HashMap<>();
|
Map<String, Object> dataObj = new HashMap<>();
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package kr.co.uplus.ez.api.attractMgt.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Data
|
||||||
|
public class ChannelDetail implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "날짜", name = "날짜", dataType = "String")
|
||||||
|
private String sumYm;
|
||||||
|
@ApiModelProperty(example = "전체발송건수", name = "전체발송건수", dataType = "String")
|
||||||
|
private String sndCnt;
|
||||||
|
@ApiModelProperty(example = "SMS발송건수", name = "SMS발송건수", dataType = "String")
|
||||||
|
private String sndCntS;
|
||||||
|
@ApiModelProperty(example = "LMS발송건수", name = "LMS발송건수", dataType = "String")
|
||||||
|
private String sndCntL;
|
||||||
|
@ApiModelProperty(example = "MMS발송건수", name = "MMS발송건수", dataType = "String")
|
||||||
|
private String sndCntM;
|
||||||
|
@ApiModelProperty(example = "알림톡발송건수", name = "알림톡발송건수", dataType = "String")
|
||||||
|
private String sndCntA;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package kr.co.uplus.ez.api.attractMgt.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Data
|
||||||
|
public class ChannelDetailReqDto implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "사용자일련번호", name = "사용자일련번호", dataType = "String")
|
||||||
|
private String userSeq;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package kr.co.uplus.ez.api.attractMgt.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Data
|
||||||
|
public class ChannelDetailRes implements Serializable {
|
||||||
|
|
||||||
|
private Paging paging;
|
||||||
|
private List<ChannelDetail> list;
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
|
||||||
|
private String no;
|
||||||
|
@ApiModelProperty(example = "가입일", name = "가입일", dataType = "String")
|
||||||
|
private String subsDt;
|
||||||
|
@ApiModelProperty(example = "유치업체", name = "유치업체", dataType = "String")
|
||||||
|
private String norgNm;
|
||||||
|
@ApiModelProperty(example = "마당ID(이름)", name = "마당ID(이름)", dataType = "String")
|
||||||
|
private String loginId;
|
||||||
|
@ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String")
|
||||||
|
private String custNm;
|
||||||
|
@ApiModelProperty(example = "사업자등록번호", name = "사업자등록번호", dataType = "String")
|
||||||
|
private String bizrno;
|
||||||
|
@ApiModelProperty(example = "이름", name = "이름" , dataType = "String")
|
||||||
|
private String userNm;
|
||||||
|
@ApiModelProperty(example = "상태", name = "상태", dataType = "String")
|
||||||
|
private String subsSttusCd;
|
||||||
|
@ApiModelProperty(example = "구분", name = "구분", dataType = "String")
|
||||||
|
private String custTyCd;
|
||||||
|
@ApiModelProperty(example = "전체발송건수", name = "전체발송건수", dataType = "String")
|
||||||
|
private String sndCnt;
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package kr.co.uplus.ez.api.attractMgt.dto;
|
||||||
|
|
||||||
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
|
import kr.co.uplus.ez.common.data.ResponseMessage;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Data
|
||||||
|
public class ChannelDetailResDto extends ResponseMessage implements Serializable {
|
||||||
|
|
||||||
|
// 데이터.
|
||||||
|
private ChannelDetailRes data;
|
||||||
|
|
||||||
|
public ChannelDetailResDto() {
|
||||||
|
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
|
||||||
|
this.retMsg = ApiResponseCode.SUCCESS.getResultMsg();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChannelDetailResDto(ApiResponseCode returnStr) {
|
||||||
|
this.retCode = returnStr.getResultCode();
|
||||||
|
this.retMsg = returnStr.getResultMsg();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ChannelDetailResDto(ApiResponseCode returnStr, ChannelDetailRes data) {
|
||||||
|
this.retCode = returnStr.getResultCode();
|
||||||
|
this.retMsg = returnStr.getResultMsg();
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,22 +11,22 @@ public class ChannelInfo implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
|
@ApiModelProperty(example = "리스트번호", name = "리스트번호", dataType = "String")
|
||||||
private String no;
|
private String no;
|
||||||
@ApiModelProperty(example = "고객사명(이름)", name = "고객사명(이름)", dataType = "String")
|
@ApiModelProperty(example = "가입일", name = "가입일", dataType = "String")
|
||||||
|
private String subsDt;
|
||||||
|
@ApiModelProperty(example = "유치업체", name = "유치업체", dataType = "String")
|
||||||
|
private String norgNm;
|
||||||
|
@ApiModelProperty(example = "마당ID(이름)", name = "마당ID(이름)", dataType = "String")
|
||||||
|
private String loginId;
|
||||||
|
@ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String")
|
||||||
private String custNm;
|
private String custNm;
|
||||||
@ApiModelProperty(example = "사업자번호(생년월일)", name = "사업자번호(생년월일)", dataType = "String")
|
@ApiModelProperty(example = "사업자등록번호", name = "사업자등록번호", dataType = "String")
|
||||||
private String bRegNo;
|
private String bizrno;
|
||||||
@ApiModelProperty(example = "템플릿 코드", name = "템플릿 코드", dataType = "String")
|
@ApiModelProperty(example = "이름", name = "이름" , dataType = "String")
|
||||||
private String tmpltCd;
|
private String userNm;
|
||||||
@ApiModelProperty(example = "템플릿명", name = "템플릿명", dataType = "String")
|
@ApiModelProperty(example = "상태", name = "상태", dataType = "String")
|
||||||
private String tmpltNm;
|
private String subsSttusCd;
|
||||||
@ApiModelProperty(example = "템플릿 유형", name = "템플릿 유형", notes = "항목 : (01: 기본형(Default), 02:부가정보형, 03:광고추가형, 04:복합형)", dataType = "String")
|
@ApiModelProperty(example = "구분", name = "구분", dataType = "String")
|
||||||
private String tmpltType;
|
private String custTyCd;
|
||||||
@ApiModelProperty(example = "상태", name = "상태" , notes = "항목 : (T:신청완료, R:검수요청완료, Q:카카오 검수중, A:템플릿승인, S:반려)" , dataType = "String")
|
@ApiModelProperty(example = "전체발송건수", name = "전체발송건수", dataType = "String")
|
||||||
private String stat;
|
private String sndCnt;
|
||||||
@ApiModelProperty(example = "반려사유", name = "반려사유", dataType = "String")
|
|
||||||
private String returnReason;
|
|
||||||
@ApiModelProperty(example = "발신프로필", name = "발신프로필", dataType = "String")
|
|
||||||
private String sendProfile;
|
|
||||||
@ApiModelProperty(example = "최종수정일자", name = "최종수정일자", dataType = "String")
|
|
||||||
private String lastChgDt;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package kr.co.uplus.ez.api.attractMgt.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
@Data
|
||||||
|
public class ChannelListExcelRes implements Serializable {
|
||||||
|
|
||||||
|
private List<ChannelInfo> list;
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||||||
public class ChannelListExcelResDto extends ResponseMessage implements Serializable {
|
public class ChannelListExcelResDto extends ResponseMessage implements Serializable {
|
||||||
|
|
||||||
// 데이터.
|
// 데이터.
|
||||||
private ChannelListRes data;
|
private ChannelListExcelRes data;
|
||||||
|
|
||||||
public ChannelListExcelResDto() {
|
public ChannelListExcelResDto() {
|
||||||
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
|
this.retCode = ApiResponseCode.SUCCESS.getResultCode();
|
||||||
@@ -23,7 +23,7 @@ public class ChannelListExcelResDto extends ResponseMessage implements Serializa
|
|||||||
this.retMsg = returnStr.getResultMsg();
|
this.retMsg = returnStr.getResultMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChannelListExcelResDto(ApiResponseCode returnStr, ChannelListRes data) {
|
public ChannelListExcelResDto(ApiResponseCode returnStr, ChannelListExcelRes data) {
|
||||||
this.retCode = returnStr.getResultCode();
|
this.retCode = returnStr.getResultCode();
|
||||||
this.retMsg = returnStr.getResultMsg();
|
this.retMsg = returnStr.getResultMsg();
|
||||||
this.data = data;
|
this.data = data;
|
||||||
|
|||||||
@@ -9,11 +9,25 @@ import java.io.Serializable;
|
|||||||
@Data
|
@Data
|
||||||
public class ChannelListReqDto implements Serializable {
|
public class ChannelListReqDto implements Serializable {
|
||||||
|
|
||||||
@ApiModelProperty(example = "사용상태", name = "사용상태", notes = "항목 : 전체(Default)/사용 : Y/중지 : N", dataType = "String")
|
@ApiModelProperty(example = "검색시작일", name = "검색시작일", dataType = "String")
|
||||||
private String searchType1;
|
private String subsStDt;
|
||||||
@ApiModelProperty(example = "검색조건", name = "검색조건", notes = "항목 : 고객사명 : custNm / 사업자번호 : bizNo / 인증코드 : authCd", dataType = "String")
|
@ApiModelProperty(example = "검색종료일", name = "검색종료일", dataType = "String")
|
||||||
private String searchType2;
|
private String subsEdDt;
|
||||||
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", dataType = "String")
|
@ApiModelProperty(example = "상태", name = "상태", dataType = "String")
|
||||||
private String searchText1;
|
private String subsSttusCd;
|
||||||
|
@ApiModelProperty(example = "회원구분", name = "회원구분", dataType = "String")
|
||||||
|
private String custTyCd;
|
||||||
|
@ApiModelProperty(example = "유치자ID", name = "유치자ID", dataType = "String")
|
||||||
|
private String loginId;
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "유치업체", name = "유치업체", dataType = "String")
|
||||||
|
private String norgNm;
|
||||||
|
@ApiModelProperty(example = "상세검색조건", name = "상세검색조건", dataType = "String")
|
||||||
|
private String searchType;
|
||||||
|
@ApiModelProperty(example = "검색어", name = "검색어", dataType = "String")
|
||||||
|
private String searchText;
|
||||||
|
@ApiModelProperty(example = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "String")
|
||||||
|
private int pagePerRows;
|
||||||
|
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "String")
|
||||||
|
private int page;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
package kr.co.uplus.ez.api.channelMgt;
|
package kr.co.uplus.ez.api.channelMgt;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import kr.co.uplus.ez.api.channelMgt.dto.*;
|
import kr.co.uplus.ez.api.channelMgt.dto.*;
|
||||||
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -13,9 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
import java.util.ArrayList;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
import java.util.List;
|
||||||
import kr.co.uplus.ez.common.data.Paging;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ChannelMgtService {
|
public class ChannelMgtService {
|
||||||
@@ -34,7 +30,7 @@ public class ChannelMgtService {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 알림톡 템플릿 목록 조회
|
* desc : 알림톡 템플릿 목록 조회
|
||||||
* @param paramMap
|
* @param tmpltListReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public TmpltListResDto tmpltList(TmpltListReqDto tmpltListReqDto) {
|
public TmpltListResDto tmpltList(TmpltListReqDto tmpltListReqDto) {
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public interface RiskMgtMapper {
|
|||||||
|
|
||||||
void insertMsgBlckword(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto);
|
void insertMsgBlckword(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto);
|
||||||
|
|
||||||
|
String selectMsgBlckWordSeq();
|
||||||
|
|
||||||
void insertBlckwordDtl(List<MsgBlckwordList> msgBlckwordLists);
|
void insertBlckwordDtl(List<MsgBlckwordList> msgBlckwordLists);
|
||||||
|
|
||||||
int updateMsgBlckword(MsgUpdateIntrcplReqDto msgUpdateIntrcplReqDto);
|
int updateMsgBlckword(MsgUpdateIntrcplReqDto msgUpdateIntrcplReqDto);
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ public class RiskMgtService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("sqlSessionTemplateDb2")
|
@Qualifier("sqlSessionTemplateDb2")
|
||||||
private SqlSessionTemplate sqlSessionSlave;
|
private SqlSessionTemplate sqlSessionSlave;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 발신번호 차단 목록 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 발신번호 차단 목록 조회
|
|
||||||
* @param sendNumIntrcpListReqDto
|
* @param sendNumIntrcpListReqDto
|
||||||
* @return SendNumIntrcpListResDto
|
* @return SendNumIntrcpListResDto
|
||||||
*/
|
*/
|
||||||
@@ -76,9 +76,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 발신번호 차단 상세 정보 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 발신번호 차단 상세 정보 조회
|
|
||||||
* @param sendNumIntrcpDetailReqDto
|
* @param sendNumIntrcpDetailReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -86,9 +85,10 @@ public class RiskMgtService {
|
|||||||
|
|
||||||
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
|
RiskMgtMapper riskMgtMapper = sqlSessionSlave.getMapper(RiskMgtMapper.class);
|
||||||
|
|
||||||
SendNumIntrcpDetail sendNumIntrcpDetail = riskMgtMapper.selectSndrnoBlckDetail(sendNumIntrcpDetailReqDto.getBlckSndrno());
|
SendNumIntrcpDetail sendNumIntrcpDetail = riskMgtMapper
|
||||||
|
.selectSndrnoBlckDetail(sendNumIntrcpDetailReqDto.getBlckSndrno());
|
||||||
|
|
||||||
if(sendNumIntrcpDetail == null){
|
if (sendNumIntrcpDetail == null) {
|
||||||
return new SendNumIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
|
return new SendNumIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,9 +96,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 발신번호 차단 신규 등록
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 발신번호 차단 신규 등록
|
|
||||||
* @param insertIntrcpReqDto
|
* @param insertIntrcpReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -106,9 +105,9 @@ public class RiskMgtService {
|
|||||||
|
|
||||||
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
||||||
|
|
||||||
try{
|
try {
|
||||||
insertIntrcpReqDto.setBlckYn(Const.COMM_YES);
|
insertIntrcpReqDto.setBlckYn(Const.COMM_YES);
|
||||||
//regId 들고오기
|
// regId 들고오기
|
||||||
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
UserDetails userDetails = (UserDetails) principal;
|
UserDetails userDetails = (UserDetails) principal;
|
||||||
String regId = userDetails.getUsername();
|
String regId = userDetails.getUsername();
|
||||||
@@ -116,7 +115,7 @@ public class RiskMgtService {
|
|||||||
insertIntrcpReqDto.setRegId(regId);
|
insertIntrcpReqDto.setRegId(regId);
|
||||||
|
|
||||||
riskMgtMapper.insertSndrnoBlck(insertIntrcpReqDto);
|
riskMgtMapper.insertSndrnoBlck(insertIntrcpReqDto);
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
return new SendNumInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
|
return new SendNumInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,30 +123,33 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 발신번호 차단 수정
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 발신번호 차단 수정
|
|
||||||
* @param sendNumUpdateIntrcplReqDto
|
* @param sendNumUpdateIntrcplReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public SendNumUpdateIntrcpResDto sendNumUpdateIntrcp(SendNumUpdateIntrcplReqDto sendNumUpdateIntrcplReqDto) {
|
public SendNumUpdateIntrcpResDto sendNumUpdateIntrcp(SendNumUpdateIntrcplReqDto sendNumUpdateIntrcplReqDto) {
|
||||||
|
|
||||||
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
||||||
sendNumUpdateIntrcplReqDto.setChgId("test");;
|
// sendNumUpdateIntrcplReqDto.setChgId("test");;
|
||||||
|
// regId 들고오기
|
||||||
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
|
UserDetails userDetails = (UserDetails) principal;
|
||||||
|
String chgId = userDetails.getUsername();
|
||||||
|
sendNumUpdateIntrcplReqDto.setChgId(chgId);
|
||||||
|
|
||||||
int result = riskMgtMapper.updateSndrnoBlck(sendNumUpdateIntrcplReqDto);
|
int result = riskMgtMapper.updateSndrnoBlck(sendNumUpdateIntrcplReqDto);
|
||||||
|
|
||||||
if(result > 0){
|
if (result > 0) {
|
||||||
return new SendNumUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
|
return new SendNumUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
|
||||||
}else{
|
} else {
|
||||||
return new SendNumUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
return new SendNumUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 발신번호 차단 삭제
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 발신번호 차단 삭제
|
|
||||||
* @param sendNumDeleteIntrcpReqDto
|
* @param sendNumDeleteIntrcpReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -156,17 +158,16 @@ public class RiskMgtService {
|
|||||||
|
|
||||||
int result = riskMgtMapper.deleteSndrnoBlck(sendNumDeleteIntrcpReqDto);
|
int result = riskMgtMapper.deleteSndrnoBlck(sendNumDeleteIntrcpReqDto);
|
||||||
|
|
||||||
if(result > 0){
|
if (result > 0) {
|
||||||
return new SendNumDeleteIntrcpResDto(ApiResponseCode.SUCCESS);
|
return new SendNumDeleteIntrcpResDto(ApiResponseCode.SUCCESS);
|
||||||
}else{
|
} else {
|
||||||
return new SendNumDeleteIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
return new SendNumDeleteIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 080수신번호 차단 목록 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 080수신번호 차단 목록 조회
|
|
||||||
* @param zezNumIntrcpListReqDto
|
* @param zezNumIntrcpListReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -210,9 +211,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 메시지 차단 목록 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 메시지 차단 목록 조회
|
|
||||||
* @param msgNumIntrcpListReqDto
|
* @param msgNumIntrcpListReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -257,9 +257,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 메시지 차단 상세 정보 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 메시지 차단 상세 정보 조회
|
|
||||||
* @param msgIntrcpDetailReqDto
|
* @param msgIntrcpDetailReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -269,7 +268,7 @@ public class RiskMgtService {
|
|||||||
|
|
||||||
MsgIntrcpDetail msgIntrcpDetail = riskMgtMapper.selectMsgBlckwordDetail(msgIntrcpDetailReqDto);
|
MsgIntrcpDetail msgIntrcpDetail = riskMgtMapper.selectMsgBlckwordDetail(msgIntrcpDetailReqDto);
|
||||||
|
|
||||||
if(msgIntrcpDetail == null){
|
if (msgIntrcpDetail == null) {
|
||||||
return new MsgIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
|
return new MsgIntrcpDetailResDto(ApiResponseCode.CM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,21 +280,38 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 메시지 차단 신규 등록
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 메시지 차단 신규 등록
|
|
||||||
* @param paramMap
|
* @param paramMap
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public MsgInsertIntrcpResDto msgInsertIntrcp(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto) {
|
public MsgInsertIntrcpResDto msgInsertIntrcp(MsgInsertIntrcpReqDto msgInsertIntrcpReqDto) {
|
||||||
|
|
||||||
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
||||||
|
// regId 들고오기
|
||||||
try{
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
|
UserDetails userDetails = (UserDetails) principal;
|
||||||
|
String regId = userDetails.getUsername();
|
||||||
|
try {
|
||||||
|
String seqNoStr = riskMgtMapper.selectMsgBlckWordSeq();
|
||||||
|
long seqNo = Long.parseLong(seqNoStr);
|
||||||
|
// seq select
|
||||||
|
msgInsertIntrcpReqDto.setSeqNo(seqNo);
|
||||||
|
msgInsertIntrcpReqDto.setRegId(regId);
|
||||||
|
msgInsertIntrcpReqDto.setBlckYn(Const.COMM_YES);
|
||||||
riskMgtMapper.insertMsgBlckword(msgInsertIntrcpReqDto);
|
riskMgtMapper.insertMsgBlckword(msgInsertIntrcpReqDto);
|
||||||
//TODO 차단문구 등록
|
// TODO 차단문구 등록
|
||||||
riskMgtMapper.insertBlckwordDtl(msgInsertIntrcpReqDto.getList());
|
|
||||||
}catch (Exception e){
|
// 리스트에 regId 넣기
|
||||||
|
List<MsgBlckwordList> list = msgInsertIntrcpReqDto.getList();
|
||||||
|
for (MsgBlckwordList msgBlckword : list) {
|
||||||
|
msgBlckword.setSeqNo(seqNo);
|
||||||
|
msgBlckword.setRegId(regId);
|
||||||
|
}
|
||||||
|
|
||||||
|
riskMgtMapper.insertBlckwordDtl(list);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
return new MsgInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
|
return new MsgInsertIntrcpResDto(ApiResponseCode.CM_DB_QUERY_ERR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,9 +319,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 메시지 차단 수정
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 메시지 차단 수정
|
|
||||||
* @param msgUpdateIntrcplReqDto
|
* @param msgUpdateIntrcplReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -313,27 +328,41 @@ public class RiskMgtService {
|
|||||||
|
|
||||||
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
RiskMgtMapper riskMgtMapper = sqlSessionMaster.getMapper(RiskMgtMapper.class);
|
||||||
|
|
||||||
|
// regId 들고오기
|
||||||
|
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
|
UserDetails userDetails = (UserDetails) principal;
|
||||||
|
String regId = userDetails.getUsername();
|
||||||
|
|
||||||
|
msgUpdateIntrcplReqDto.setRegId(regId);
|
||||||
int result = riskMgtMapper.updateMsgBlckword(msgUpdateIntrcplReqDto);
|
int result = riskMgtMapper.updateMsgBlckword(msgUpdateIntrcplReqDto);
|
||||||
|
|
||||||
if(result > 0){
|
if (result > 0) {
|
||||||
|
|
||||||
int subResult = riskMgtMapper.deleteBlckwordDtl(msgUpdateIntrcplReqDto.getSeqNo());
|
int subResult = riskMgtMapper.deleteBlckwordDtl(msgUpdateIntrcplReqDto.getSeqNo());
|
||||||
|
|
||||||
if(subResult > 0){
|
if (subResult > 0) {
|
||||||
riskMgtMapper.insertBlckwordDtl(msgUpdateIntrcplReqDto.getList());
|
//들고온 seqNo Long 형변환
|
||||||
|
long seqNo = Long.parseLong(msgUpdateIntrcplReqDto.getSeqNo());
|
||||||
|
|
||||||
|
List<MsgBlckwordList> list = msgUpdateIntrcplReqDto.getList();
|
||||||
|
|
||||||
|
for (MsgBlckwordList msgBlckword : list) {
|
||||||
|
msgBlckword.setSeqNo(seqNo);
|
||||||
|
msgBlckword.setRegId(regId);
|
||||||
|
}
|
||||||
|
riskMgtMapper.insertBlckwordDtl(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MsgUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
|
return new MsgUpdateIntrcpResDto(ApiResponseCode.SUCCESS);
|
||||||
}else{
|
} else {
|
||||||
return new MsgUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
return new MsgUpdateIntrcpResDto(ApiResponseCode.CM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 메시지 차단 삭제
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 메시지 차단 삭제
|
|
||||||
* @param msgDeleteIntrcpReqDto
|
* @param msgDeleteIntrcpReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -348,9 +377,8 @@ public class RiskMgtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25. auth : ckr desc : 차단 내역 목록 조회
|
||||||
* auth : ckr
|
*
|
||||||
* desc : 차단 내역 목록 조회
|
|
||||||
* @param webInsertIntrcpReqDto
|
* @param webInsertIntrcpReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -4,13 +4,15 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class MsgBlckwordList implements Serializable {
|
public class MsgBlckwordList implements Serializable {
|
||||||
|
@ApiModelProperty(example = "차단문구", name = "차단문구", dataType = "String")
|
||||||
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
private long seqNo;
|
||||||
private String seqNo;
|
|
||||||
@ApiModelProperty(example = "차단문구", name = "차단문구", dataType = "String")
|
@ApiModelProperty(example = "차단문구", name = "차단문구", dataType = "String")
|
||||||
private String word;
|
private String word;
|
||||||
|
@ApiModelProperty(example = "등록자 ID", name = "등록자 ID", dataType = "String")
|
||||||
|
private String regId;
|
||||||
}
|
}
|
||||||
@@ -9,11 +9,16 @@ import java.util.List;
|
|||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class MsgInsertIntrcpReqDto implements Serializable {
|
public class MsgInsertIntrcpReqDto implements Serializable {
|
||||||
|
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
|
||||||
|
private long seqNo;
|
||||||
|
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
|
||||||
|
private String regId;
|
||||||
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
|
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
|
||||||
private String blckRsnCd;
|
private String blckRsnCd;
|
||||||
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
|
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
|
||||||
private String blckContCd;
|
private String blckContCd;
|
||||||
|
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
|
||||||
|
private String blckYn;
|
||||||
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
||||||
private String memo;
|
private String memo;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
@@ -11,6 +12,8 @@ public class MsgIntrcpDetail implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
||||||
private String seqNo;
|
private String seqNo;
|
||||||
|
@ApiModelProperty(example = "등록자ID", name = "등록자ID", dataType = "String")
|
||||||
|
private String regId;
|
||||||
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
|
@ApiModelProperty(example = "차단사유", name = "차단사유", dataType = "String")
|
||||||
private String blckRsnCd;
|
private String blckRsnCd;
|
||||||
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
|
@ApiModelProperty(example = "차단조건", name = "차단조건", dataType = "String")
|
||||||
@@ -22,6 +25,6 @@ public class MsgIntrcpDetail implements Serializable {
|
|||||||
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
||||||
private String memo;
|
private String memo;
|
||||||
|
|
||||||
private java.util.List<MsgBlckwordList> list;
|
private List<MsgBlckwordList> list;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -12,5 +12,5 @@ public class MsgIntrcpDetailReqDto implements Serializable {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
||||||
private String seqNo;
|
private long seqNo;
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,8 @@ public class MsgIntrcpList implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
|
@ApiModelProperty(example = "리스트 번호", name = "리스트 번호", dataType = "String")
|
||||||
private String no;
|
private String no;
|
||||||
|
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
||||||
|
private String seqNo;
|
||||||
@ApiModelProperty(example = "차단메시지", name = "차단메시지", dataType = "String")
|
@ApiModelProperty(example = "차단메시지", name = "차단메시지", dataType = "String")
|
||||||
private String word;
|
private String word;
|
||||||
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
|
@ApiModelProperty(example = "차단여부", name = "차단여부", dataType = "String")
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import java.io.Serializable;
|
|||||||
@Data
|
@Data
|
||||||
public class MsgIntrcpListReqDto implements Serializable {
|
public class MsgIntrcpListReqDto implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "일련번호", name = "일련번호", dataType = "String")
|
||||||
|
private String seqNo;
|
||||||
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
|
@ApiModelProperty(example = "등록자", name = "등록자", dataType = "String")
|
||||||
private String regId;
|
private String regId;
|
||||||
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
|
@ApiModelProperty(example = "차단사유", name = "차단사유",dataType = "String")
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ public class MsgUpdateIntrcplReqDto implements Serializable {
|
|||||||
private String blckYn;
|
private String blckYn;
|
||||||
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
||||||
private String memo;
|
private String memo;
|
||||||
|
@ApiModelProperty(example = "등록자ID", name = "등록자ID", dataType = "String")
|
||||||
|
private String regId;
|
||||||
|
|
||||||
private List<MsgBlckwordList> list;
|
private List<MsgBlckwordList> list;
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,6 @@ public class SendNumUpdateIntrcplReqDto implements Serializable {
|
|||||||
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
@ApiModelProperty(example = "메모", name = "메모", dataType = "String")
|
||||||
private String meno;
|
private String meno;
|
||||||
|
|
||||||
@ApiModelProperty(example = "마지막 수정일", name = "마지막 수정일", dataType = "String")
|
@ApiModelProperty(example = "변경 ID", name = "변경 ID", dataType = "String")
|
||||||
private String chgId;
|
private String chgId;
|
||||||
}
|
}
|
||||||
@@ -5,37 +5,20 @@
|
|||||||
*/
|
*/
|
||||||
package kr.co.uplus.ez.api.sendNumMgt;
|
package kr.co.uplus.ez.api.sendNumMgt;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import javax.validation.Valid;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.validation.BindingResult;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListReqDto;
|
import kr.co.uplus.ez.api.sendNumMgt.dto.*;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListResDto;
|
|
||||||
import kr.co.uplus.ez.common.components.ValidComponents;
|
import kr.co.uplus.ez.common.components.ValidComponents;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(value = "api/v1/bo/sendNumMgt")
|
@RequestMapping(value = "api/v1/bo/sendNumMgt")
|
||||||
@@ -50,8 +33,7 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 발신 프로필 목록 조회
|
* desc : 발신 프로필 목록 조회
|
||||||
* @param paramMap
|
* @param profileListReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "/profileList", notes = "발신 프로필 목록 조회")
|
@ApiOperation(value = "/profileList", notes = "발신 프로필 목록 조회")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@@ -70,15 +52,13 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 문자 발신 번호 목록 조회
|
* desc : 문자 발신 번호 목록 조회
|
||||||
* @param paramMap
|
* @param sendNumberListReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ApiOperation(value = "/numberList", notes = "문자 발신 번호 목록 조회")
|
@ApiOperation(value = "/numberList", notes = "문자 발신 번호 목록 조회")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "numberList", method = { RequestMethod.POST })
|
@RequestMapping(value = "numberList", method = { RequestMethod.POST })
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public SendNumberListResDto numberList(@RequestBody @Valid SendNumberListReqDto sendNumberListReqDto, BindingResult bindingResult) throws Exception{
|
public SendNumberListResDto numberList(@RequestBody @Valid SendNumberListReqDto sendNumberListReqDto, BindingResult bindingResult) {
|
||||||
|
|
||||||
if (validComponents.validParameter(bindingResult)) {
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
return new SendNumberListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
return new SendNumberListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
@@ -90,15 +70,13 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 문자 발신 번호 삭제
|
* desc : 문자 발신 번호 삭제
|
||||||
* @param paramMap
|
* @param deleteNumberReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ApiOperation(value = "/deleteNumber", notes = "문자 발신 번호 삭제")
|
@ApiOperation(value = "/deleteNumber", notes = "문자 발신 번호 삭제")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "deleteNumber", method = { RequestMethod.POST })
|
@RequestMapping(value = "deleteNumber", method = { RequestMethod.POST })
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public DeleteNumberResDto deleteNumber(@RequestBody @Valid DeleteNumberReqDto deleteNumberReqDto, BindingResult bindingResult) throws Exception{
|
public DeleteNumberResDto deleteNumber(@RequestBody @Valid DeleteNumberReqDto deleteNumberReqDto, BindingResult bindingResult) {
|
||||||
if (validComponents.validParameter(bindingResult)) {
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
return new DeleteNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
return new DeleteNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
}
|
}
|
||||||
@@ -110,15 +88,13 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 문자 발신 번호 등록
|
* desc : 문자 발신 번호 등록
|
||||||
* @param paramMap
|
* @param insertNumberReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ApiOperation(value = "/insertNumber", notes = "문자 발신 번호 등록")
|
@ApiOperation(value = "/insertNumber", notes = "문자 발신 번호 등록")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "insertNumber", method = { RequestMethod.POST })
|
@RequestMapping(value = "insertNumber", method = { RequestMethod.POST })
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public InsertNumberResDto insertNumber(@RequestBody @Valid InsertNumberReqDto insertNumberReqDto, BindingResult bindingResult) throws Exception{
|
public InsertNumberResDto insertNumber(@RequestBody @Valid InsertNumberReqDto insertNumberReqDto, BindingResult bindingResult) {
|
||||||
|
|
||||||
if (validComponents.validParameter(bindingResult)) {
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
return new InsertNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
return new InsertNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
@@ -131,14 +107,13 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 문자 발신 번호 정보 상세 조회
|
* desc : 문자 발신 번호 정보 상세 조회
|
||||||
* @param paramMap
|
* @param detailNumberReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "/numberDetail", notes = "문자 발신 번호 정보 상세 조회")
|
@ApiOperation(value = "/numberDetail", notes = "문자 발신 번호 정보 상세 조회")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "numberDetail", method = { RequestMethod.POST })
|
@RequestMapping(value = "numberDetail", method = { RequestMethod.POST })
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public DetailNumberResDto numberDetail(@RequestBody @Valid DetailNumberReqDto detailNumberReqDto, BindingResult bindingResult) throws Exception{
|
public DetailNumberResDto numberDetail(@RequestBody @Valid DetailNumberReqDto detailNumberReqDto, BindingResult bindingResult) {
|
||||||
|
|
||||||
if (validComponents.validParameter(bindingResult)) {
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
return new DetailNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
return new DetailNumberResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
@@ -151,14 +126,13 @@ public class SendNumMgtController {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 관리자ID 목록 조회
|
* desc : 관리자ID 목록 조회
|
||||||
* @param paramMap
|
* @param adminListReqDto
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "/adminList", notes = "관리자ID 목록 조회")
|
@ApiOperation(value = "/adminList", notes = "관리자ID 목록 조회")
|
||||||
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
@ApiResponses({ @ApiResponse(code = HttpServletResponse.SC_OK, message = "SUCESS") })
|
||||||
@RequestMapping(value = "adminList", method = { RequestMethod.POST })
|
@RequestMapping(value = "adminList", method = { RequestMethod.POST })
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public SendAdminListResDto adminList(@RequestBody @Valid SendAdminListReqDto adminListReqDto, BindingResult bindingResult) throws Exception{
|
public SendAdminListResDto adminList(@RequestBody @Valid SendAdminListReqDto adminListReqDto, BindingResult bindingResult) {
|
||||||
|
|
||||||
if (validComponents.validParameter(bindingResult)) {
|
if (validComponents.validParameter(bindingResult)) {
|
||||||
return new SendAdminListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
return new SendAdminListResDto(ApiResponseCode.CM_PARAMETER_ERROR);
|
||||||
@@ -172,11 +146,10 @@ public class SendNumMgtController {
|
|||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 발신번호 승인 목록 조회
|
* desc : 발신번호 승인 목록 조회
|
||||||
* @param paramMap
|
* @param paramMap
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/apprList" , method = {RequestMethod.POST})
|
@RequestMapping(value = "/apprList" , method = {RequestMethod.POST})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ApiResponseMessage apprList(@RequestBody Map<String, Object> paramMap) throws Exception{
|
public ApiResponseMessage apprList(@RequestBody Map<String, Object> paramMap) {
|
||||||
return sendNumService.apprList(paramMap);
|
return sendNumService.apprList(paramMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,11 +158,10 @@ public class SendNumMgtController {
|
|||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 발신번호 승인 상세 정보 조회
|
* desc : 발신번호 승인 상세 정보 조회
|
||||||
* @param paramMap
|
* @param paramMap
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/apprDetail" , method = {RequestMethod.POST})
|
@RequestMapping(value = "/apprDetail" , method = {RequestMethod.POST})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ApiResponseMessage apprDetail(@RequestBody Map<String, Object> paramMap) throws Exception{
|
public ApiResponseMessage apprDetail(@RequestBody Map<String, Object> paramMap) {
|
||||||
return sendNumService.apprDetail(paramMap);
|
return sendNumService.apprDetail(paramMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,11 +170,10 @@ public class SendNumMgtController {
|
|||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 발송내역 목록 조회
|
* desc : 발송내역 목록 조회
|
||||||
* @param paramMap
|
* @param paramMap
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/insertAppr" , method = {RequestMethod.POST})
|
@RequestMapping(value = "/insertAppr" , method = {RequestMethod.POST})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ApiResponseMessage insertAppr(@RequestBody Map<String, Object> paramMap) throws Exception{
|
public ApiResponseMessage insertAppr(@RequestBody Map<String, Object> paramMap) {
|
||||||
return sendNumService.insertAppr(paramMap);
|
return sendNumService.insertAppr(paramMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,51 +1,21 @@
|
|||||||
package kr.co.uplus.ez.api.sendNumMgt;
|
package kr.co.uplus.ez.api.sendNumMgt;
|
||||||
|
|
||||||
import java.io.File;
|
import kr.co.uplus.ez.api.sendNumMgt.dto.*;
|
||||||
import java.util.ArrayList;
|
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
||||||
import java.util.HashMap;
|
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
||||||
import java.util.List;
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
import java.util.Map;
|
import kr.co.uplus.ez.common.utils.FileUtil;
|
||||||
|
|
||||||
import org.apache.commons.io.FilenameUtils;
|
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminInfo;
|
import java.io.File;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListReqDto;
|
import java.util.ArrayList;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListRes;
|
import java.util.HashMap;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendAdminListResDto;
|
import java.util.List;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileInfo;
|
import java.util.Map;
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileList;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DeleteNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumber;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumber;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberFile;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.InsertNumberResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileInfo;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListRes;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.ProfileListResDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberInfo;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListRes;
|
|
||||||
import kr.co.uplus.ez.api.sendNumMgt.dto.SendNumberListResDto;
|
|
||||||
import kr.co.uplus.ez.api.sysMgt.SysMgtMapper;
|
|
||||||
import kr.co.uplus.ez.api.sysMgt.dto.AdminDetail;
|
|
||||||
import kr.co.uplus.ez.api.sysMgt.dto.AdminDetailResDto;
|
|
||||||
import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminReqDto;
|
|
||||||
import kr.co.uplus.ez.api.sysMgt.dto.InsertAdminResDto;
|
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseCode;
|
|
||||||
import kr.co.uplus.ez.common.data.ApiResponseMessage;
|
|
||||||
import kr.co.uplus.ez.common.data.Paging;
|
|
||||||
import kr.co.uplus.ez.common.utils.EncryptionUtil;
|
|
||||||
import kr.co.uplus.ez.common.utils.FileUtil;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class SendNumMgtService {
|
public class SendNumMgtService {
|
||||||
@@ -105,7 +75,7 @@ public class SendNumMgtService {
|
|||||||
* date : 2022. 4. 25.
|
* date : 2022. 4. 25.
|
||||||
* auth : ckr
|
* auth : ckr
|
||||||
* desc : 문자 발신 번호 목록 조회
|
* desc : 문자 발신 번호 목록 조회
|
||||||
* @param paramMap
|
* @param sendNumberListReqDto
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public SendNumberListResDto numberList(SendNumberListReqDto sendNumberListReqDto) {
|
public SendNumberListResDto numberList(SendNumberListReqDto sendNumberListReqDto) {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class InsertNumber implements Serializable{
|
public class InsertNumber implements Serializable{
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class SendNumberInfo implements Serializable{
|
public class SendNumberInfo implements Serializable{
|
||||||
@@ -24,7 +24,7 @@ public class SendNumberInfo implements Serializable{
|
|||||||
@ApiModelProperty(example = "인앱채널 구분", name = "인앱채널 구분", dataType = "String")
|
@ApiModelProperty(example = "인앱채널 구분", name = "인앱채널 구분", dataType = "String")
|
||||||
private String inchDivCd;
|
private String inchDivCd;
|
||||||
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
|
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
|
||||||
private String regNo;
|
private String sndrno;
|
||||||
@ApiModelProperty(example = "승인상태", name = "승인상태", notes = "항목 : 01:승인대기/02:승인완료/03:반려", dataType = "String")
|
@ApiModelProperty(example = "승인상태", name = "승인상태", notes = "항목 : 01:승인대기/02:승인완료/03:반려", dataType = "String")
|
||||||
private String sttusCd;
|
private String sttusCd;
|
||||||
@ApiModelProperty(example = "등록방법", name = "등록방법", notes = "항목 : 01:본인인증, 02:서류심사", dataType = "String")
|
@ApiModelProperty(example = "등록방법", name = "등록방법", notes = "항목 : 01:본인인증, 02:서류심사", dataType = "String")
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
package kr.co.uplus.ez.api.sendNumMgt.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class SendNumberListReqDto implements Serializable{
|
public class SendNumberListReqDto implements Serializable{
|
||||||
@@ -20,6 +19,8 @@ public class SendNumberListReqDto implements Serializable{
|
|||||||
private String searchType3;
|
private String searchType3;
|
||||||
@ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 사업자번호(생년월일), 발신번호, 고객사명(이름)", dataType = "String")
|
@ApiModelProperty(example = "상세검색", name = "상세검색", notes = "항목 : 사업자번호(생년월일), 발신번호, 고객사명(이름)", dataType = "String")
|
||||||
private String searchType4;
|
private String searchType4;
|
||||||
|
@ApiModelProperty(example = "등록방법", name = "등록방법", notes = "항목 : 서류심사, 본인인증", dataType = "String")
|
||||||
|
private String searchType5;
|
||||||
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", notes = "검색어(입력항목)", dataType = "String")
|
@ApiModelProperty(example = "검색어(입력)", name = "검색어(입력)", notes = "검색어(입력항목)", dataType = "String")
|
||||||
private String searchText1;
|
private String searchText1;
|
||||||
|
|
||||||
|
|||||||
@@ -49,3 +49,7 @@ testId:
|
|||||||
paymMthd: 2
|
paymMthd: 2
|
||||||
custTyCd: 02
|
custTyCd: 02
|
||||||
|
|
||||||
|
file-resource:
|
||||||
|
info:
|
||||||
|
sendNumber:
|
||||||
|
path: /efs/admin/sendNumber/
|
||||||
@@ -49,3 +49,8 @@ testId:
|
|||||||
cmpyNm: 임시회사
|
cmpyNm: 임시회사
|
||||||
paymMthd: 2
|
paymMthd: 2
|
||||||
custTyCd: 02
|
custTyCd: 02
|
||||||
|
|
||||||
|
file-resource:
|
||||||
|
info:
|
||||||
|
sendNumber:
|
||||||
|
path: /efs/admin/sendNumber/
|
||||||
@@ -31,3 +31,25 @@ spring:
|
|||||||
schedule:
|
schedule:
|
||||||
sample:
|
sample:
|
||||||
init: 60000
|
init: 60000
|
||||||
|
|
||||||
|
# 2차인증 제외 ID목록.
|
||||||
|
authentication:
|
||||||
|
without:
|
||||||
|
id: superadminuser,jambler01,jambler02,jambler03,jambler04,jambler05,jambler06
|
||||||
|
|
||||||
|
testId:
|
||||||
|
prodCd: LPZ0045389
|
||||||
|
rpsnBday: 19800101
|
||||||
|
brno: 1234567890
|
||||||
|
cono: 9876543210987
|
||||||
|
zipCd: 04389
|
||||||
|
badr: 서울특별시 용산구 한강대로 32
|
||||||
|
dadr: 0층
|
||||||
|
cmpyNm: 임시회사
|
||||||
|
paymMthd: 2
|
||||||
|
custTyCd: 02
|
||||||
|
|
||||||
|
file-resource:
|
||||||
|
info:
|
||||||
|
sendNumber:
|
||||||
|
path: /efs/admin/sendNumber/
|
||||||
@@ -48,3 +48,8 @@ testId:
|
|||||||
cmpyNm: 임시회사
|
cmpyNm: 임시회사
|
||||||
paymMthd: 2
|
paymMthd: 2
|
||||||
custTyCd: 02
|
custTyCd: 02
|
||||||
|
|
||||||
|
file-resource:
|
||||||
|
info:
|
||||||
|
sendNumber:
|
||||||
|
path: /efs/admin/sendNumber/
|
||||||
@@ -119,14 +119,142 @@
|
|||||||
<if test="norgNm != null and norgNm != ''">
|
<if test="norgNm != null and norgNm != ''">
|
||||||
AND eig.NORG_NM = #{norgNm}
|
AND eig.NORG_NM = #{norgNm}
|
||||||
</if>
|
</if>
|
||||||
<if test="custNm != null and custNm != ''">
|
<if test="searchType != null and searchType != ''">
|
||||||
AND eci.CUST_NM = #{custNm}
|
<if test="searchType == '01' and searchText != null and searchText != ''">
|
||||||
|
AND UPPER(eci.CUST_NM) LIKE UPPER(CONCAT('%', #{searchText}, '%'))
|
||||||
</if>
|
</if>
|
||||||
<if test="userNm != null and userNm != ''">
|
<if test="searchType == '02' and searchText != null and searchText != ''">
|
||||||
AND esu.USER_NM = #{userNm}
|
AND UPPER(esu.USER_NM) LIKE UPPER(CONCAT('%', #{searchText}, '%'))
|
||||||
|
</if>
|
||||||
|
<if test="searchType == '03' and searchText != null and searchText != ''">
|
||||||
|
AND eci.BIZRNO = #{searchText}
|
||||||
</if>
|
</if>
|
||||||
<if test="bizrno != null and bizrno != ''">
|
|
||||||
AND eci.BIZRNO = #{bizrno}
|
|
||||||
</if>
|
</if>
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectAttractDetail" parameterType="kr.co.uplus.ez.api.attractMgt.dto.ChannelDetailReqDto" resultType="kr.co.uplus.ez.api.attractMgt.dto.ChannelDetailRes">
|
||||||
|
/* attractMgt-mapper.xml(selectAttractDetail) */
|
||||||
|
SELECT
|
||||||
|
esi.SUBS_DT
|
||||||
|
, esi.SUBS_STTUS_CD
|
||||||
|
, eci.CUST_NM
|
||||||
|
, esi.PROD_CD
|
||||||
|
, eci.REPR_NM
|
||||||
|
, eci.CUST_TY_CD
|
||||||
|
, eci.BIZRNO
|
||||||
|
, eci.CORPNO
|
||||||
|
, eci.ZIPCD
|
||||||
|
, eci.ADDR1
|
||||||
|
, eci.ADDR2
|
||||||
|
, esi.SUBSMNGR_ID
|
||||||
|
, esi.SUBSMNGR_NM
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_SUBS_INFO esi
|
||||||
|
INNER JOIN hubez_common.EZ_CUST_INFO eci
|
||||||
|
ON eci.CUST_SEQ = esi.CUST_SEQ
|
||||||
|
INNER JOIN hubez_common.EZ_SVC_USER esu
|
||||||
|
ON esu.USER_SEQ = esi.USER_SEQ
|
||||||
|
INNER JOIN hubez_imdb.EZ_IM_USER eiu
|
||||||
|
ON eiu.LOGIN_ID = esi.ATTRCTOR_ID
|
||||||
|
INNER JOIN hubez_imdb.EZ_IM_GROUP eig
|
||||||
|
ON eiu.EX_DEPT_CD = eig.NORG_CD
|
||||||
|
WHERE 1 = 1
|
||||||
|
AND esu.USER_SEQ = #{userSeq}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectSndCountList" parameterType="kr.co.uplus.ez.api.attractMgt.dto.ChannelDetailReqDto" resultType="kr.co.uplus.ez.api.attractMgt.dto.ChannelDetail">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
T1.*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
ecm.SUM_YM
|
||||||
|
, ecm.SND_CNT
|
||||||
|
, S.SND_CNT AS SND_CNT_S
|
||||||
|
, L.SND_CNT AS SND_CNT_L
|
||||||
|
, M.SND_CNT AS SND_CNT_M
|
||||||
|
, A.SND_CNT AS SND_CNT_A
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT ecm
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SUM(SND_CNT) AS SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'SMS') AS S
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SUM(SND_CNT) AS SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'MMS') AS M
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SUM(SND_CNT) AS SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'LMS') AS L
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SUM(SND_CNT) AS SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'ALIMTALK') AS A
|
||||||
|
WHERE DATE_FORMAT(ecm.SUM_YM, '%Y%m') BETWEEN DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 MONTH), '%Y%m')
|
||||||
|
AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -37 MONTH), '%Y%m')
|
||||||
|
AND ecm.USER_SEQ = #{userSeq}
|
||||||
|
) T1
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
T2.*
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
ecm.SUM_YM
|
||||||
|
, ecm.SND_CNT
|
||||||
|
, S.SND_CNT AS SND_CNT_S
|
||||||
|
, L.SND_CNT AS SND_CNT_L
|
||||||
|
, M.SND_CNT AS SND_CNT_M
|
||||||
|
, A.SND_CNT AS SND_CNT_A
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT ecm
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'SMS') AS S
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'MMS') AS M
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'LMS') AS L
|
||||||
|
JOIN (
|
||||||
|
SELECT
|
||||||
|
SUM(SND_CNT) AS SND_CNT
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_MSTAT
|
||||||
|
WHERE
|
||||||
|
SND_CH_CD = 'ALIMTALK') AS A
|
||||||
|
WHERE DATE_FORMAT(ecm.SUM_YM, '%Y%m') BETWEEN DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 MONTH), '%Y%m')
|
||||||
|
AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -37 MONTH), '%Y%m')
|
||||||
|
AND ecm.USER_SEQ = #{userSeq}
|
||||||
|
ORDER BY
|
||||||
|
ecm.SUM_YM DESC) T2
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
UPDATE
|
UPDATE
|
||||||
${HUBEZ_COMMON}.EZ_SNDRNO_BLCK
|
${HUBEZ_COMMON}.EZ_SNDRNO_BLCK
|
||||||
SET
|
SET
|
||||||
CHG_ID = #{}
|
CHG_ID = #{chgId}
|
||||||
, CHG_DT = NOW()
|
, CHG_DT = NOW()
|
||||||
<if test="sndblckTpCd != null and sndblckTpCd != ''">
|
<if test="sndblckTpCd != null and sndblckTpCd != ''">
|
||||||
, SNDBLCK_TP_CD = #{sndblckTpCd}
|
, SNDBLCK_TP_CD = #{sndblckTpCd}
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
emb.SEQ_NO
|
emb.SEQ_NO
|
||||||
, ebd.WORD
|
, ebd.WORD
|
||||||
, emb.BLCK_YN
|
, emb.BLCK_YN
|
||||||
, DATE_FORMAT(emb.CHG_DT , '%Y-%m-%d') AS CHG_DT
|
, DATE_FORMAT(emb.REG_DT , '%Y-%m-%d') AS LAST_CHG_DT
|
||||||
,(
|
,(
|
||||||
SELECT
|
SELECT
|
||||||
DTL_CD_NM
|
DTL_CD_NM
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
<include refid="msgBlckwordListCondition"/>
|
<include refid="msgBlckwordListCondition"/>
|
||||||
ORDER BY emb.CHG_DT DESC
|
ORDER BY emb.CHG_DT DESC
|
||||||
LIMIT #{page}, #{pagePerRows} ) A
|
LIMIT #{page}, #{pagePerRows} ) A
|
||||||
,( SELECT @ROWNUM := 7 ) AS R;
|
,( SELECT @ROWNUM := #{page} ) AS R;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<sql id="msgBlckwordListCondition">
|
<sql id="msgBlckwordListCondition">
|
||||||
@@ -245,11 +245,11 @@
|
|||||||
<select id="selectMsgBlckwordDetail" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgIntrcpDetailReqDto" resultType="kr.co.uplus.ez.api.riskMgt.dto.MsgIntrcpDetail">
|
<select id="selectMsgBlckwordDetail" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgIntrcpDetailReqDto" resultType="kr.co.uplus.ez.api.riskMgt.dto.MsgIntrcpDetail">
|
||||||
/* riskMgt-mapper.xml(selectMsgBlckwordDetail) */
|
/* riskMgt-mapper.xml(selectMsgBlckwordDetail) */
|
||||||
SELECT
|
SELECT
|
||||||
emb.SEQ_NO
|
SEQ_NO
|
||||||
, emb.BLCK_CONT_CD
|
, BLCK_CONT_CD
|
||||||
, emb.BLCK_RSN_CD
|
, BLCK_RSN_CD
|
||||||
, emb.MEMO
|
, MEMO
|
||||||
, emb.BLCK_YN
|
, BLCK_YN
|
||||||
FROM
|
FROM
|
||||||
${HUBEZ_COMMON}.EZ_MSG_BLCKWORD emb
|
${HUBEZ_COMMON}.EZ_MSG_BLCKWORD emb
|
||||||
WHERE emb.SEQ_NO = #{seqNo}
|
WHERE emb.SEQ_NO = #{seqNo}
|
||||||
@@ -265,11 +265,16 @@
|
|||||||
WHERE ebd.SEQ_NO = #{seqNo}
|
WHERE ebd.SEQ_NO = #{seqNo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMsgBlckWordSeq" resultType="String">
|
||||||
|
SELECT ${HUBEZ_COMMON}.FUN_NEXT_SEQ('MSG_BLCKWORD_SEQ')
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertMsgBlckword" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgInsertIntrcpReqDto">
|
<insert id="insertMsgBlckword" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgInsertIntrcpReqDto">
|
||||||
/* riskMgt-mapper.xml(insertMsgBlckword) */
|
/* riskMgt-mapper.xml(insertMsgBlckword) */
|
||||||
INSERT
|
INSERT
|
||||||
INTO ${HUBEZ_COMMON}.EZ_MSG_BLCKWORD (
|
INTO ${HUBEZ_COMMON}.EZ_MSG_BLCKWORD (
|
||||||
BLCK_CONT_CD
|
SEQ_NO
|
||||||
|
, BLCK_CONT_CD
|
||||||
, BLCK_RSN_CD
|
, BLCK_RSN_CD
|
||||||
, BLCK_YN
|
, BLCK_YN
|
||||||
, MEMO
|
, MEMO
|
||||||
@@ -278,7 +283,8 @@
|
|||||||
, CHG_ID
|
, CHG_ID
|
||||||
, CHG_DT
|
, CHG_DT
|
||||||
) VALUES(
|
) VALUES(
|
||||||
#{blckContCd}
|
#{seqNo}
|
||||||
|
, #{blckContCd}
|
||||||
, #{blckRsnCd}
|
, #{blckRsnCd}
|
||||||
, #{blckYn}
|
, #{blckYn}
|
||||||
, #{memo}
|
, #{memo}
|
||||||
@@ -296,11 +302,11 @@
|
|||||||
, WORD
|
, WORD
|
||||||
, REG_ID
|
, REG_ID
|
||||||
, REG_DT
|
, REG_DT
|
||||||
) VALUES(
|
) VALUES
|
||||||
#{seqNo}
|
<foreach collection="list" item="item" index="i"
|
||||||
, #{word}
|
separator=",">
|
||||||
, #{regId}
|
(#{item.seqNo}, #{item.word}, #{item.regId}, NOW() )
|
||||||
, NOW())
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateMsgBlckword" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgUpdateIntrcplReqDto">
|
<update id="updateMsgBlckword" parameterType="kr.co.uplus.ez.api.riskMgt.dto.MsgUpdateIntrcplReqDto">
|
||||||
@@ -308,7 +314,7 @@
|
|||||||
UPDATE
|
UPDATE
|
||||||
${HUBEZ_COMMON}.EZ_MSG_BLCKWORD
|
${HUBEZ_COMMON}.EZ_MSG_BLCKWORD
|
||||||
SET
|
SET
|
||||||
CHG_ID = #{chgId}
|
CHG_ID = #{regId}
|
||||||
, CHG_DT = NOW()
|
, CHG_DT = NOW()
|
||||||
<if test="blckContCd != null and blckContCd != ''">
|
<if test="blckContCd != null and blckContCd != ''">
|
||||||
, BLCK_CONT_CD = #{blckContCd}
|
, BLCK_CONT_CD = #{blckContCd}
|
||||||
|
|||||||
@@ -92,13 +92,17 @@
|
|||||||
/* sendNumMgt-mapper.xml(selectSendNumberTotalCnt) */
|
/* sendNumMgt-mapper.xml(selectSendNumberTotalCnt) */
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
FROM hubez_common.EZ_SVC_SNDRNO ess
|
FROM
|
||||||
LEFT JOIN hubez_common.EZ_SNDRNO_REG esr
|
hubez_common.EZ_CUST_INFO eci
|
||||||
ON ess.REG_REQ_NO = esr.REG_REQ_NO
|
INNER JOIN hubez_common.EZ_SVC_USER esu
|
||||||
LEFT JOIN hubez_common.EZ_SVC_USER esu
|
ON
|
||||||
ON esr.USER_SEQ = esu.USER_SEQ
|
eci.CUST_SEQ = esu.CUST_SEQ
|
||||||
LEFT JOIN hubez_common.EZ_CUST_INFO eci
|
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
||||||
ON esu.CUST_SEQ = eci.CUST_SEQ
|
ON
|
||||||
|
esu.USER_SEQ = esr.USER_SEQ
|
||||||
|
LEFT JOIN hubez_common.EZ_SVC_SNDRNO ess
|
||||||
|
ON
|
||||||
|
eci.CUST_SEQ = ess.CUST_SEQ
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<include refid="numberListCondition"></include>
|
<include refid="numberListCondition"></include>
|
||||||
</select>
|
</select>
|
||||||
@@ -113,41 +117,61 @@
|
|||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
eci.CUST_NM AS custNm
|
eci.CUST_NM AS custNm
|
||||||
,esu.USER_ID AS adminId
|
, ess.SNDRNO
|
||||||
,ess.REG_ID AS register
|
, esu.USER_ID AS adminId
|
||||||
,eci.BIZRNO AS bRegNo
|
, ess.REG_ID AS register
|
||||||
,CASE WHEN ess.NMINEE_DIV_CD = '01' THEN '사업자(본인, 대표, 임직원)'
|
, eci.BIZRNO AS bRegNo
|
||||||
WHEN ess.NMINEE_DIV_CD = '02' THEN '타사업자'
|
, esr.REG_REQ_NO
|
||||||
ELSE '-'
|
,(
|
||||||
END AS nmineeDivCd
|
SELECT
|
||||||
,CASE WHEN ess.INCH_DIV_CD = '01' THEN '홈페이지'
|
ecd.DTL_CD_NM
|
||||||
WHEN ess.INCH_DIV_CD = '02' THEN '어드민'
|
FROM
|
||||||
ELSE '-'
|
hubez_common.EZ_CD_DTL ecd
|
||||||
END AS inchDivCd
|
WHERE
|
||||||
,ess.SNDRNO AS regNo
|
ecd.GRP_CD = 'NMINEE_DIV_CD'
|
||||||
,CASE WHEN ess.STTUS_CD = '01' THEN '승인대기'
|
AND ecd.DTL_CD = ess.NMINEE_DIV_CD) AS nmineeDivCd
|
||||||
WHEN ess.STTUS_CD = '02' THEN '승인완료'
|
,(
|
||||||
WHEN ess.STTUS_CD = '03' THEN '반려'
|
SELECT
|
||||||
ELSE '-'
|
ecd.DTL_CD_NM
|
||||||
END AS sttusCd
|
FROM
|
||||||
,CASE WHEN ess.REG_TP_CD = '01' THEN '본인인증'
|
hubez_common.EZ_CD_DTL ecd
|
||||||
WHEN ess.REG_TP_CD = '02' THEN '서류심사'
|
WHERE
|
||||||
ELSE '-'
|
ecd.GRP_CD = 'INCH_DIV_CD'
|
||||||
END AS regTpCd
|
AND ecd.DTL_CD = ess.INCH_DIV_CD) AS inchDivCd
|
||||||
,ess.REG_DT AS regDt
|
,(
|
||||||
FROM hubez_common.EZ_SVC_SNDRNO ess
|
SELECT
|
||||||
LEFT JOIN hubez_common.EZ_SNDRNO_REG esr
|
ecd.DTL_CD_NM
|
||||||
ON ess.REG_REQ_NO = esr.REG_REQ_NO
|
FROM
|
||||||
LEFT JOIN hubez_common.EZ_SVC_USER esu
|
hubez_common.EZ_CD_DTL ecd
|
||||||
ON esr.USER_SEQ = esu.USER_SEQ
|
WHERE
|
||||||
LEFT JOIN hubez_common.EZ_CUST_INFO eci
|
ecd.GRP_CD = 'SNDRNO_STTUS_CD'
|
||||||
ON esu.CUST_SEQ = eci.CUST_SEQ
|
AND ecd.DTL_CD = ess.STTUS_CD) AS sttusCd
|
||||||
|
,(
|
||||||
|
SELECT
|
||||||
|
ecd.DTL_CD_NM
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CD_DTL ecd
|
||||||
|
WHERE
|
||||||
|
ecd.GRP_CD = 'SNDRNO_REG_TP_CD'
|
||||||
|
AND ecd.DTL_CD = ess.REG_TP_CD) AS regTpCd
|
||||||
|
, DATE_FORMAT(ess.REG_DT, '%Y-%m-%d') AS regDt
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_CUST_INFO eci
|
||||||
|
INNER JOIN hubez_common.EZ_SVC_USER esu
|
||||||
|
ON
|
||||||
|
eci.CUST_SEQ = esu.CUST_SEQ
|
||||||
|
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
||||||
|
ON
|
||||||
|
esu.USER_SEQ = esr.USER_SEQ
|
||||||
|
LEFT JOIN hubez_common.EZ_SVC_SNDRNO ess
|
||||||
|
ON
|
||||||
|
eci.CUST_SEQ = ess.CUST_SEQ
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<include refid="numberListCondition"></include>
|
<include refid="numberListCondition"></include>
|
||||||
LIMIT #{page}, #{pagePerRows}) A,
|
LIMIT #{page}, #{pagePerRows}) A,
|
||||||
( SELECT @ROWNUM := #{page} ) AS R
|
( SELECT @ROWNUM := #{page} ) AS R
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<sql id="numberListCondition">
|
<sql id="numberListCondition">
|
||||||
<if test='searchType1 != null and searchType1 != ""'>
|
<if test='searchType1 != null and searchType1 != ""'>
|
||||||
AND ess.STTUS_CD = #{searchType1}
|
AND ess.STTUS_CD = #{searchType1}
|
||||||
@@ -158,6 +182,9 @@
|
|||||||
<if test='searchType3 != null and searchType3 != ""'>
|
<if test='searchType3 != null and searchType3 != ""'>
|
||||||
AND ess.INCH_DIV_CD = #{searchType3}
|
AND ess.INCH_DIV_CD = #{searchType3}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="searchType5 != null and searchType5 != ''">
|
||||||
|
AND ess.REG_TP_CD = #{searchType5}
|
||||||
|
</if>
|
||||||
<if test='searchText1 != null and searchText1 != ""'>
|
<if test='searchText1 != null and searchText1 != ""'>
|
||||||
<if test='searchType4 != null and searchType4 != ""'>
|
<if test='searchType4 != null and searchType4 != ""'>
|
||||||
<choose>
|
<choose>
|
||||||
|
|||||||
Reference in New Issue
Block a user