어드민 수정건 수정

This commit is contained in:
USER
2022-07-11 11:43:43 +09:00
parent fb40f49f09
commit 74511fb587
47 changed files with 887 additions and 384 deletions

View File

@@ -63,8 +63,8 @@
<div class="group">
<div class="select_box">
<label for="right" class="label">상세검색</label>
<select name="" id="" v-model="grid.params.searchType" @keyup.enter="search">
<option value="01" selected>고객사명</option>
<select name="searchType" id="searchType" v-model="searchType" @keyup.enter="search">
<option value="01">고객사명</option>
<option value="02">이름</option>
<option value="03">사업자등록번호(생년월일)</option>
</select>
@@ -169,6 +169,7 @@ export default {
{ text: '50', value: 50},
{ text: '100', value: 100}
],
searchType:'01',
totalItems: 0,
grid: {
url: '/api/v1/bo/attractMgt/channelList',
@@ -202,14 +203,15 @@ export default {
{ name: 'custTyCd', header: '구분', align: 'center', width: '10%'},
{ name: 'sndCnt', header: '전체발송건수', align: 'center', width: '11%',
formatter: props =>{
let result = props.sndCnt.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
let result = props.sndCnt;
//.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return result;
}
}
],
noDataStr: '검색 결과가 없습니다.',
params: {
searchType: '',
searchType: '01',
searchType1: '',
searchText: '',
subsStDt: '',
@@ -234,7 +236,9 @@ export default {
this.getExcelHeader();
this.setPeriodDay(0);
this.grid.params.subsSttusCd = '';
// this.grid.params.subsSttusCd = '';
// this.grid.params.searchType = '01';
// this.$refs.searchType_.
},
destroyed() {
this.grid.params.subsSttusCd = '';
@@ -260,7 +264,8 @@ export default {
search: function(isKeep) {
console.log('this.perPageCnt'+this.perPageCnt);
//console.log(this.grid.params);
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
@@ -335,7 +340,6 @@ export default {
},
channelDetail(props){
console.log(props);
//TODO 전달값 셋팅 필요.
this.row.userId = props.loginId;
this.row.userSeq = props.userSeq;
this.$router.push({ name: 'channelDetail', params: this.row });
@@ -343,11 +347,14 @@ export default {
setCodeData() {
// 상태 옵션 셋팅.
api.commCode({'grpCd' : 'SUBS_STTUS_CD'}).then(response => {
// grid.params.subsSttusCd
this.subsSttusCdList = response.data.data.list;
this.grid.params.subsSttusCd = '';
});
api.commCode({'grpCd' : 'CUST_TY_CD'}).then(response => {
this.custTyCdList = response.data.data.list;
this.grid.params.custTyCd = '';
});
},
setPeriodDay(day) {

View File

@@ -327,10 +327,12 @@ export default {
},
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
this.startDate = moment(this.endDate)
.subtract(day, 'day')
.toDate();
// this.endDate = new Date();
// this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.initSetEndDate();
this.closeDate('start');
this.closeDate('end');
@@ -426,18 +428,6 @@ export default {
async getExcelDataDown() {
try {
let response;
// params: {
// startMonth: '',
// endMonth: '',
// },
// const params = {
// startDt: this.grid.params.startDt,
// endDt: this.grid.params.endDt,
// searchType1: this.grid.params.searchType1,
// searchType2: this.grid.params.searchType2,
// searchType3: this.grid.params.searchType3,
// searchText1: this.grid.params.searchText1
// };
response = await calcMgtApi.calcListExcel(this.grid.params);
@@ -451,6 +441,18 @@ export default {
return false;
}
},
initSetStartDate(){
let initStartDate = new Date();
initStartDate.setMonth(Number(moment(initStartDate).format('MM')) -4);
this.startDate = initStartDate;
console.log(moment(this.startDate).format('YYYY-MM-DD'));
},
initSetEndDate(){
let initEndDate = new Date();
initEndDate.setMonth(Number(moment(initEndDate).format('MM')) -2);
this.endDate = initEndDate;
console.log(moment(this.endDate).format('YYYY-MM-DD'));
},
}
};
</script>

View File

@@ -10,7 +10,7 @@
<div class="search_wrap">
<div class="select_box">
<label for="stat" class="label">상태</label>
<select name="" id="stat" v-model="grid.params.searchType1" @keyup.enter="search">
<select name="" id="stat" v-model="searchType1" @keyup.enter="search">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">폐기</option>
@@ -18,7 +18,7 @@
</div>
<div class="select_box">
<label for="searchType" class="label">상세검색</label>
<select name="" id="searchType" v-model="grid.params.searchType2" @keyup.enter="search">
<select name="" id="searchType" v-model="searchType2" @keyup.enter="search">
<option value="custNm" selected="selected">고객사명</option>
<option value="bizNo">사업자번호</option>
<option value="tmpltNm">템플릿명</option>
@@ -26,13 +26,13 @@
</div>
<div class="input_box id">
<label for="search" class="label">검색어</label>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search"/>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search"/>
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</form>
<div class="info">
<div class="count"> <span>{{ totalItems }}</span>
<div class="count"> <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</span>
<div class="select_box NumberSe">
<select name="" id="perPage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20">20</option>
@@ -172,6 +172,8 @@ export default {
cate2Code: "",
totalItems: 0,
pageType: 'CHANN',
searchType1:'',
searchType2:'custNm',
// 테이블 리스트 데이터
perPageCnt: 50,
@@ -199,15 +201,15 @@ export default {
],
columns: [
{ name: 'no', header: 'NO', align: 'center', width: 40 },
{ name: 'custNm', header: '고객사명', align: 'left', width: 120 },
{ name: 'bregNo', header: '사업자번호', align: 'center', width: 120,renderer: {type: customBRegNo}},
{ name: 'tmpltCd', header: '템플릿코드', align: 'center', width: 120},
{ name: 'tmpltNm', header: '템플릿명', align: 'center', width: 120},
{ name: 'tmpltType', header: '템플릿 유형', align: 'center', width: 120,renderer: {type: customTmpltType}},
{ name: 'stat', header: '상태(반려사유)', align: 'center', width: 120,renderer: {type: customStat}},
{ name: 'sendProfile', header: '발신프로필', align: 'center', width: 120},
{ name: 'lastChgDt', header: '최종수정일', width: 120, cls: 'td_line' }
{ name: 'no', header: 'NO', align: 'center', width: '4%' },
{ name: 'custNm', header: '고객사명', align: 'center', width: '12%' },
{ name: 'bregNo', header: '사업자번호', align: 'center', width: '12%',renderer: {type: customBRegNo}},
{ name: 'tmpltCd', header: '템플릿코드', align: 'center', width: '12%'},
{ name: 'tmpltNm', header: '템플릿명', align: 'center', width: '12%'},
{ name: 'tmpltType', header: '템플릿 유형', align: 'center', width: '12%',renderer: {type: customTmpltType}},
{ name: 'stat', header: '상태(반려사유)', align: 'center', width: '12%',renderer: {type: customStat}},
{ name: 'sendProfile', header: '발신프로필', align: 'center', width: '125'},
{ name: 'lastChgDt', header: '최종수정일', width: '12%', cls: 'td_line' }
],
noDataStr: '검색 결과가 없습니다.',
params: {
@@ -258,6 +260,9 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -3,36 +3,34 @@
<div>
<div class="dimmed modal33" @click="excelPopClose();"></div>
<div class="popup-wrap modal33">
<!-- 사용자 ID 대량 생성 -->
<div class="popup modal33 popup_form">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 대량 생성</h3>
</div>
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>사용자 ID 업로드</th>
<td>
<div class="pop-btn2 bulk">
<button class="btn-default" @click="sampleDown">샘플 다운로드</button>
<input type="file" ref="file" style="display: none" @change="readFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
<button class="button grey" @click="$refs.file.click()">파일 업로드</button>
</div>
<p class="file" id="uploadFile">
</p>
</td>
</tr>
</tbody>
</table>
<div class="pop-btn2">
<button class="btn-pcolor" @click="saveExcel">저장</button>
<button class="btn-default" @click="excelPopClose">취소</button>
</div>
</div>
<div class="popup modal33 popup_form">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 대량 생성</h3>
</div>
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>사용자 ID 업로드</th>
<td>
<div class="popup-btn2 bulk">
<input type="file" ref="file" style="display: none" @change="readFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
<button class="btn-default" @click="sampleDown">샘플 다운로드</button>
<button class="button btn-p2color" @click="$refs.file.click()">파일 업로드</button>
</div>
<p class="file" id="uploadFile"></p>
</td>
</tr>
</tbody>
</table>
<div class="popup-btn2">
<button class="btn-pcolor" @click="saveExcel">저장</button>
<button class="btn-default" @click="excelPopClose">취소</button>
</div>
</div>
<common-modal ref="commmonModal"></common-modal>
</div>
</div>
@@ -66,9 +64,9 @@ export default {
components: {
commonModal,
},
created(){
created(){
this.getExcelHeader();
},
},
methods :{
// 모달 띄우기
excelPopOpen(adminId, totalItems){
@@ -87,7 +85,7 @@ export default {
for(var i = 0; i < excelPop.length; i++){
excelPop[i].style.display = 'none';
}
},
// 저장 후 부모창 호출.
toComplete(){
@@ -135,13 +133,13 @@ export default {
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.delFile(event);
this.delFile(event);
})
const root = document.getElementById('uploadFile');
root.appendChild(text);
@@ -169,7 +167,7 @@ export default {
const rowObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{raw:true});
tmpResult = rowObj;
const limitCnt = 100;
const totalCnt = Number(this.totalItems) + rowObj.length;
if(totalCnt > limitCnt){
@@ -178,7 +176,7 @@ export default {
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
for (const [idx,r] of rowObj.entries()) {
if(idx > limitCnt-1 ) {
break;
@@ -203,7 +201,7 @@ export default {
{ name:'ID잠금',val:ID잠금, len:4,},];
const rVal = vm.isTitle(pVal);
if(rVal.retVal){
vm.nData.push({userId:ID,userNm:이름,mdn:휴대폰번호,email:이메일,stat:ID잠금,msg});
}else{
@@ -265,7 +263,7 @@ export default {
// uploadFile
},
async saveExcel(){
//
//
this.row.adminId = this.adminId;
this.row.list = this.nData;
@@ -274,7 +272,7 @@ export default {
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
// this.totalCnt = result.data.totalCnt;
// this.successCnt = result.data.successCnt;
// this.failCnt = result.data.failCnt;
@@ -290,7 +288,7 @@ export default {
// 오류건수.
console.log(this.oData.length);
},
}
}
</script>

View File

@@ -4,59 +4,108 @@
<div class="dimmed memberUpdate" @click="memberUpdateModalClose();"></div>
<div class="popup-wrap memberUpdate">
<!-- 수정 확인 -->
<div class="popup memberUpdate popup_form">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 수정</h3>
</div>
<form autocomplete="off">
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>ID</th>
<td>{{userId}}</td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd1" v-model.trim="userPwd1"></td>
</tr>
<tr>
<th>비밀번호 확인</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd2" v-model.trim="userPwd2"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" v-model.trim="userNm" ref="_userNm"></td>
</tr>
<tr>
<th>휴대폰번호</th>
<td><input type="text" v-model.trim="mdn" ref="_phone"></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" v-model.trim="email" ref="_email"></td>
</tr>
<tr>
<th class="center">상태</th>
<td>
<input type="radio" name="userStateUpdate" value="01" id="user_popup_update_radio1" v-model="userStat">
<label for="user_popup_update_radio1">사용</label>
<input type="radio" name="userStateUpdate" value="02" id="user_popup_update_radio2" v-model="userStat">
<label for="user_popup_update_radio2">정지</label>
</td>
</tr>
</tbody>
</table>
</form>
<div class="pop-btn2">
<button class="btn-pcolor" @click="memberUpdateConfirm();">저장</button>
<button class="btn-default" @click="memberUpdateModalClose();">취소</button>
</div>
</div>
<!-- <div class="popup memberUpdate popup_form">-->
<!-- <div class="pop-head">-->
<!-- <h3 class="pop-tit">사용자 ID 수정</h3>-->
<!-- </div>-->
<!-- <form autocomplete="off">-->
<!-- <table>-->
<!-- <tbody>-->
<!-- <tr>-->
<!-- <th>관리자 ID</th>-->
<!-- <td>{{adminId}}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>ID</th>-->
<!-- <td>{{userId}}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>비밀번호</th>-->
<!-- <td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd1" v-model.trim="userPwd1"></td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>비밀번호 확인</th>-->
<!-- <td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd2" v-model.trim="userPwd2"></td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>이름</th>-->
<!-- <td><input type="text" v-model.trim="userNm" ref="_userNm"></td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>휴대폰번호</th>-->
<!-- <td><input type="text" v-model.trim="mdn" ref="_phone"></td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th>이메일</th>-->
<!-- <td><input type="email" v-model.trim="email" ref="_email"></td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <th class="center">상태</th>-->
<!-- <td>-->
<!-- <input type="radio" name="userStateUpdate" value="01" id="user_popup_update_radio1" v-model="userStat">-->
<!-- <label for="user_popup_update_radio1">사용</label>-->
<!-- <input type="radio" name="userStateUpdate" value="02" id="user_popup_update_radio2" v-model="userStat">-->
<!-- <label for="user_popup_update_radio2">정지</label>-->
<!-- </td>-->
<!-- </tr>-->
<!-- </tbody>-->
<!-- </table>-->
<!-- </form>-->
<!-- <div class="pop-btn2">-->
<!-- <button class="btn-pcolor" @click="memberUpdateConfirm();">저장</button>-->
<!-- <button class="btn-default" @click="memberUpdateModalClose();">취소</button>-->
<!-- </div>-->
<!-- </div>-->
<div class="popup modal32 popup_form memberUpdate">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 수정</h3>
</div>
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>ID</th>
<td>{{userId}}</td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd1" v-model.trim="userPwd1"></td>
</tr>
<tr>
<th>비밀번호 확인</th>
<td><input type="password" @keypress="onlyPassword" @input="onlyPassword" required minlength="8" maxlength="16" ref="_pwd2" v-model.trim="userPwd2"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" v-model.trim="userNm" ref="_userNm"></td>
</tr>
<tr>
<th>휴대폰번호</th>
<td><input type="text" v-model.trim="mdn" ref="_phone"></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" v-model.trim="email" ref="_email"></td>
</tr>
<tr>
<th class="center">상태</th>
<td>
<input type="radio" name="userStateUpdate" value="01" id="user_popup_update_radio1" v-model="userStat">
<label for="user_popup_update_radio1">사용</label>
<input type="radio" name="userStateUpdate" value="02" id="user_popup_update_radio2" v-model="userStat">
<label for="user_popup_update_radio2">정지</label>
</td>
</tr>
</tbody>
</table>
<div class="popup-btn2">
<button class="btn-pcolor" @click="memberUpdateConfirm();">저장</button>
<button class="btn-default" @click="memberUpdateModalClose();">취소</button>
</div>
</div>
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
<common-modal ref="commmonModal"></common-modal>
@@ -70,7 +119,6 @@ import custMgtApi from "../service/custMgtApi.js";
import { utils_mixin, chkPattern2 } from '../service/mixins';
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
import lodash from "lodash";
//import commonModal from "@/components/modal/commonModal";
import commonModal from "../components/commonModal";
export default {

View File

@@ -1,57 +1,52 @@
<template>
<!-- <div class="wrap bg-wrap"> -->
<div>
<div class="dimmed memberInsert" @click="memberInsertModalClose();"></div>
<div class="popup-wrap memberInsert">
<!-- 수정 확인 -->
<div class="popup memberInsert popup_form">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 생성</h3>
</div>
<form autocomplete="off">
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>ID</th>
<td><input type="text" v-model.trim="userId" ref="_userId"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" v-model.trim="userNm" ref="_userNm"></td>
</tr>
<tr>
<th>휴대폰번호</th>
<td><input type="text" v-model.trim="mdn" ref="_phone"></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" v-model.trim="email" ref="_email"></td>
</tr>
<tr>
<th class="center">상태</th>
<td>
<input type="radio" name="userStateInsert" value="01" id="user_popup_insert_radio1" v-model="stat">
<label for="user_popup_insert_radio1">사용</label>
<input type="radio" name="userStateInsert" value="02" id="user_popup_insert_radio2" v-model="stat">
<label for="user_popup_insert_radio2">정지</label>
</td>
</tr>
</tbody>
</table>
</form>
<div class="pop-btn2">
<button class="btn-pcolor" @click="memberInsertConfirm();">저장</button>
<button class="btn-default" @click="memberInsertModalClose();">취소</button>
</div>
</div>
<div class="popup modal31 popup_form memberInsert">
<div class="pop-head">
<h3 class="pop-tit">사용자 ID 생성</h3>
</div>
<table>
<tbody>
<tr>
<th>관리자 ID</th>
<td>{{adminId}}</td>
</tr>
<tr>
<th>ID</th>
<td><input type="text" v-model.trim="userId" ref="_userId"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" v-model.trim="userNm" ref="_userNm"></td>
</tr>
<tr>
<th>휴대폰번호</th>
<td><input type="text" placeholder="- 자 제외 숫자만 입력" v-model.trim="mdn" ref="_phone"></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" v-model.trim="email" ref="_email"></td>
</tr>
<tr>
<th class="center">ID 잠금</th>
<td>
<input type="radio" name="userStateInsert" value="01" id="user_popup_insert_radio1" v-model="stat">
<label for="user_popup_insert_radio1">사용</label>
<input type="radio" name="userStateInsert" value="02" id="user_popup_insert_radio2" v-model="stat">
<label for="user_popup_insert_radio2">정지</label>
</td>
</tr>
</tbody>
</table>
<div class="popup-btn2">
<button class="btn-pcolor" @click="memberInsertConfirm();">저장</button>
<button class="btn-default" @click="memberInsertModalClose();">취소</button>
</div>
</div>
</div>
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
<common-modal ref="commmonModal"></common-modal>
</div>
</div>
</template>
@@ -61,7 +56,6 @@ import custMgtApi from "../service/custMgtApi.js";
import { utils_mixin, chkPattern2 } from '../service/mixins';
import ValidationConfirmPop from '../components/ValidationConfirmPop.vue';
import lodash from "lodash";
//import commonModal from "@/components/modal/commonModal";
import commonModal from "../components/commonModal";
export default {

View File

@@ -9,48 +9,24 @@
<h3 class="pop-tit">전체 메모보기</h3>
</div>
<table class="table-c">
<!--
<thead>
<tr>
<th>내용</th>
<th>작성자</th>
<th>작성일</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
<tr>
<td class="memo">작성한 메모 내용이 노출됩니다. <br/>
해당영역은 최대 5줄까지 노출되며 이후 우측 스크롤이 생성됩니다.<br/>
작성한 메모 내용이 노출됩니다. <br/>
해당영역은 최대 5줄까지 노출되며 이후 우측 스크롤이 생성됩니다.<br/>
작성한 메모 내용이 노출됩니다.</td>
<td>관리자</td>
<td>2022-03-10</td>
<td><button type="button" class="button white btn-a">삭제</button></td>
</tr>
</tbody>
-->
<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>
<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="pop-btn2">
<button class="btn-default" @click="memoTotalModalClose();">닫기</button>
</div>
<div class="popup-btn2">
<button class="btn-default" @click="memoTotalModalClose();">닫기</button>
</div>
<common-modal ref="commmonModal"></common-modal>
</div>

View File

@@ -137,6 +137,9 @@
</td>
<td><button type="button" class="button white btn-a" @click="memberUpdatePopOpen(option.userId);">수정</button></td>
</tr>
<tr v-if="list.length === 0">
<td colspan="7">등록된 사용자 정보가 없습니다.</td>
</tr>
</tbody>
</table>
</div>

View File

@@ -42,7 +42,7 @@
</div>
<div class="select_box id">
<label for="right" class="label">상태</label>
<select name="" id="" v-model="grid.params.searchType1">
<select name="" id="" v-model="searchType1">
<option value="" selected>전체</option>
<option v-for="(option, i) in statType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
@@ -51,7 +51,7 @@
</div>
<div class="select_box">
<label for="right" class="label">구분</label>
<select name="" id="" v-model="grid.params.searchType2">
<select name="" id="" v-model="searchType2">
<option value="" selected>전체</option>
<option value="01" >관리자</option>
<option value="02" >사용자</option>
@@ -62,7 +62,7 @@
<div class="group">
<div class="select_box">
<label for="right" class="label">상세검색</label>
<select name="" id="" v-model="grid.params.searchType3">
<select name="" id="" v-model="searchType3">
<option value="" selected>전체</option>
<option value="01" selected>ID</option>
<option value="02">이름</option>
@@ -156,7 +156,9 @@ export default {
statType: [],
userType: [],
searchType1:'',
searchType2:'',
searchType3:'',
row:{},
// 테이블 리스트 데이터
@@ -264,7 +266,10 @@ export default {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt'+this.perPageCnt);
console.log(this.grid.params);
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1;
this.grid.params.searchType2 = this.searchType2;
this.grid.params.searchType3 = this.searchType3;
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -42,25 +42,21 @@
</div>
<div class="select_box id">
<label for="right" class="label">상태</label>
<select name="" id="" v-model="grid.params.searchType1" @keyup.enter="search">
<select name="" id="" v-model="searchType1" @keyup.enter="search">
<option value="" selected>전체</option>
<option value="" >사용</option>
<option value="" >미납중지</option>
<option value="" >사용중지</option>
<option value="" >해지</option>
<!-- <option v-for="(option, i) in statType" v-bind:value="option.code" v-bind:key="i">
<option v-for="(option, i) in statType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option> -->
</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">유치채널</label>
<select name="" id="" v-model="grid.params.searchType2" @keyup.enter="search">
<select name="" id="" v-model="searchType2" @keyup.enter="search">
<option value="" selected>전체</option>
<option value="" >고객셀프가입</option>
<option value="" >대리점</option>
<option value="" >고객센터</option>
<option value="" >직접영업</option>
<option value="01" >고객셀프가입</option>
<option value="02" >대리점</option>
<option value="03" >고객센터</option>
<option value="04" >직접영업</option>
<!-- <option v-for="(option, i) in userType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
</option> -->
@@ -70,7 +66,7 @@
<div class="group">
<div class="select_box">
<label for="right" class="label">상세검색</label>
<select name="" id="" v-model="grid.params.searchType3" @keyup.enter="search">
<select name="" id="" v-model="searchType3" @keyup.enter="search">
<option value="">전체</option>
<option value="01">고객사명</option>
<option value="02">가입번호</option>
@@ -166,7 +162,9 @@ export default {
row:{},
pageType: 'SUBS',
searchType1:'',
searchType2:'',
searchType3:'',
// 테이블 리스트 데이터
perPageCnt: 50,
options: [
@@ -275,7 +273,12 @@ export default {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt'+this.perPageCnt);
console.log(this.grid.params);
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.grid.params.searchType3 = this.searchType3
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -0,0 +1,188 @@
<template>
<!-- <div class="wrap bg-wrap"> -->
<div>
<div class="dimmed alertModal" @click="alertModalCancel();"></div>
<div class="popup-wrap alertModal">
<!-- 로그인실패: 확인 -->
<div class="popup alertModal">
<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="popup-btn2">
<button class="btn-pcolor" @click="confirmModalClose();">확인</button>
<button class="btn-default" @click="confirmModalCancel();">취소</button>
</div>
</div>
</div>
<div class="dimmed confirm2" @click="confirmModalCancel2();"></div>
<div class="popup-wrap confirm2">
<!-- 수정 확인 -->
<div class="popup confirm2">
<div class="pop-head">
<h3 class="popup-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-btn2">
<button class="btn-pcolor" @click="confirmModalClose2();">확인</button>
<button class="btn-default" @click="confirmModalCancel2();">취소</button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "confirm",
data(){
return{
row:{},
title:'',
msg1: '',
msg2: '',
msg3: '',
msg4: '',
targetFocus: '',
}
},
methods :{
alertModalOpen(props){
console.log('>>>>>>>>>> alertModalOpen');
console.log(props.msg1);
this.title = props.title;
this.msg1 = props.msg1;
this.msg2 = props.msg2;
this.msg3 = props.msg3;
this.msg4 = props.msg4;
var dimmed = document.getElementsByClassName('alertModal');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'block';
}
},
alertModalClose(){
var dimmed = document.getElementsByClassName('alertModal');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'none';
}
this.$parent.checkFocus();
},
alertModalCancel(){
var dimmed = document.getElementsByClassName('alertModal');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'none';
}
this.$parent.checkFocus();
},
// 모달 오픈
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;
},
confirmModalOpen2(props){
var dimmed = document.getElementsByClassName('confirm2');
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);
},
// 모달 끄기(ok)
confirmModalClose2(){
var dimmed = document.getElementsByClassName('confirm2');
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);
},
// 모달 끄기(취소)
confirmModalCancel2(){
var dimmed = document.getElementsByClassName('confirm2');
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> -->

View File

@@ -92,7 +92,8 @@ import customGrid from '@/components/CustomGrid';
import { utils_mixin, chkPattern2 } from '../service/mixins';
import moment from 'moment';
import xlsx from '@/common/excel';
import commonModal from "@/components/modal/commonModal";
//import commonModal from "@/components/modal/commonModal";
import commonModal from "../components/commonModal";
class CustomATagRenderer {
constructor(props) {
@@ -203,13 +204,17 @@ export default {
// this.setCodeData();
// this.getExcelHeader();
this.setPeriodDay(0);
this.grid.params.searchType1 = 'ALL';
this.grid.params.searchType1 = '';
},
destroyed() {
this.grid.params.searchType1 = '';
this.grid.params.searchText1 = '';
this.grid.params.searchText2 = '';
this.grid.params.searchText3 = '';
},
mounted() {
this.grid.params.searchType1 = 'ALL';
this.grid.params.searchType1 = '';
let page = 1;
// 페이지 정보 및 검색 조건
@@ -240,15 +245,16 @@ export default {
},
methods: {
search: function(isKeep) {
this.doValidate();
this.grid.params.sentDate = moment(this.startDate).format('YYYYMMDD');
this.grid.params.reqChennel = this.grid.params.searchType1;
this.grid.params.phone = this.grid.params.searchText1;
this.grid.params.callbackNumber = this.grid.params.searchText2;
this.grid.params.custNm = this.grid.params.searchText3;
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
if(this.doValidate()){
this.grid.params.sentDate = moment(this.startDate).format('YYYYMMDD');
this.grid.params.reqChennel = this.grid.params.searchType1;
this.grid.params.phone = this.grid.params.searchText1;
this.grid.params.callbackNumber = this.grid.params.searchText2;
this.grid.params.custNm = this.grid.params.searchText3;
console.log(this.grid.params);
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
}
},
setPeriodDay(day) {
this.periodDay = day;
@@ -324,21 +330,30 @@ export default {
if(this.isNull(this.grid.params.searchText1)) {
this.row.title = '발송내역';
this.row.msg1 = '수신번호를 입력해 주세요.';
this.row.focusTaget = '1';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._searchText1.focus();
return false;
}
// 발신번호 필수입력체크
if(this.isNull(this.grid.params.searchText2)) {
this.row.title = '발송내역';
this.row.msg1 = '신번호를 입력해 주세요.';
this.row.msg1 = '신번호를 입력해 주세요.';
this.row.focusTaget = '2';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._searchText2.focus();
return false;
}
return true;
},
checkFocus(){
if(this.row.focusTaget === '1'){
this.$refs._searchText1.focus();
} else if(this.row.focusTaget === '2'){
this.$refs._searchText2.focus();
}
},
}
};
</script>

View File

@@ -13,7 +13,8 @@ export default [
{
path: '/riskMgt/sendNum/zezNum',
component: ZezNum,
name: 'zezNum',
name: 'zezNum',
props: true,
meta: { public: true }
},
{
@@ -25,7 +26,8 @@ export default [
{
path: '/riskMgt/sendNum/all',
component: All,
name: 'all',
name: 'all',
props: true,
meta: { public: true }
},

View File

@@ -29,23 +29,23 @@
<button type="button" class="button grey btn-a" @click="todayDate">오늘</button>
<div class="select_box id">
<label for="right" class="label">차단사유</label>
<select name="" id="" v-model="grid.params.blckRsnCd">
<select name="" id="" v-model="blckRsnCd">
<option value="" selected>전체</option>
<option value="">일반</option>
<option value="">대출</option>
<option value="">의약품</option>
<option value="">도박</option>
<option value="">스미싱</option>
<option value="">기타</option>
<option value="01">일반</option>
<option value="02">대출</option>
<option value="03">의약품</option>
<option value="04">도박</option>
<option value="05">스미싱</option>
<option value="06">기타</option>
</select>
</div>
<div class="select_box">
<label for="right" class="label">차단구분</label>
<select name="" id="" v-model="grid.params.blckTpCd">
<select name="" id="" v-model="blckTpCd">
<option value="" selected>전체</option>
<option value="">발신번호차단</option>
<option value="">메시지차단</option>
<option value="">080수신번호차단</option>
<option value="01">발신번호차단</option>
<option value="02">메시지차단</option>
<option value="03">080수신번호차단</option>
</select>
</div>
</div>
@@ -60,10 +60,10 @@
</div>
<div class="select_box">
<label for="right" class="label">상세검색</label>
<select name="" id="" v-model="grid.params.searchType1">
<option value="" selected>고객사명</option>
<option value="">사업자번호</option>
<option value="">발송ID</option>
<select name="" id="" v-model="searchType1">
<option value="01" selected>고객사명</option>
<option value="02">사업자번호</option>
<option value="03">발송ID</option>
</select>
</div>
<div class="input_box">
@@ -74,7 +74,7 @@
</div>
</form>
<div class="info">
<div class="count"> <span>{{ totalItems }}</span>
<div class="count"> <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</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>
@@ -150,6 +150,9 @@ export default {
],
statType: [],
userType: [],
blckRsnCd:'',
blckTpCd:'',
searchType1:'01',
row:{},
grid: {
url: '/api/v1/bo/riskMgt/web/intrcpList',
@@ -224,6 +227,7 @@ export default {
searchText1: ''
}
});
this.startDate = '';
},
created(){
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
@@ -246,10 +250,9 @@ export default {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.blckDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.blckRsnCd = this.grid.params.searchType1;
this.grid.params.blckTpCd = this.grid.params.searchText1;
this.grid.params.sndrno = this.grid.params.searchText2;
this.grid.params.custNm = this.grid.params.searchText3;
this.grid.params.blckTpCd = this.blckTpCd
this.grid.params.blckRsnCd = this.blckRsnCd
this.grid.params.searchType1 = this.searchType1
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
@@ -302,7 +305,8 @@ export default {
},
//회원 상세페이지로 이동
custDetail(props) {
this.row.custNm = props.serviceId;
//this.row.custNm = props.serviceId;
this.row.serviceId = props.serviceId;
this.$router.push({ name: 'subsDetail', params: this.row });
},
calendarCalbackFnc(year, month, day){

View File

@@ -15,7 +15,7 @@
</div>
<div class="select_box">
<label for="blckRsnCd" class="label">차단사유</label>
<select name="" id="blckRsnCd" v-model="grid.params.blckRsnCd" @keyup="search">
<select name="" id="blckRsnCd" v-model="blckRsnCd" @keyup="search">
<option value="" selected>전체</option>
<option value="01">일반</option>
<option value="02">대출</option>
@@ -29,7 +29,7 @@
<div class="group">
<div class="select_box">
<label for="right" class="label">차단여부</label>
<select name="" id="" v-model="grid.params.blckYn">
<select name="" id="" v-model="blckYn">
<option value="" selected>전체</option>
<option value="Y">차단</option>
<option value="N">해제</option>
@@ -37,7 +37,7 @@
</div>
<div class="select_box">
<label for="right" class="label">발송타입</label>
<select name="" id="" v-model="grid.params.sndblckTpCd">
<select name="" id="" v-model="sndblckTpCd">
<option value="" selected>전체</option>
<option value="01">공용</option>
<option value="02">문자</option>
@@ -46,7 +46,7 @@
</div>
<div class="input_box">
<label for="right" class="label">발신번호</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.blckSndrno">
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.blckSndrno">
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
@@ -126,6 +126,9 @@ export default {
return {
totalItems: 0,
perPageCnt: 50,
blckRsnCd:'',
blckYn:'',
sndblckTpCd:'',
options: [
{ text: '20', value: 20},
{ text: '50', value: 50},
@@ -133,8 +136,8 @@ export default {
],
grid: {
url: '/api/v1/bo/riskMgt/sendNum/intrcpList',
pagePerRows: 20,
perPage: 20,
pagePerRows: 50,
perPage: 50,
pagination: true,
isCheckbox: false,
initialRequest: false,
@@ -206,6 +209,11 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.blckRsnCd = this.blckRsnCd
this.grid.params.blckYn = this.blckYn
this.grid.params.sndblckTpCd = this.sndblckTpCd
this.grid.pagePerRows = this.perPageCnt
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -14,14 +14,14 @@
</div>
<div class="select_box">
<label for="blckRsnCd" class="label">차단사유</label>
<select name="" id="blckRsnCd" v-model="grid.params.blckRsnCd" @keyup="search">
<select name="" id="blckRsnCd" v-model="blckRsnCd" @keyup="search">
<option value="" selected>전체</option>
<option value="">일반</option>
<option value="">대출</option>
<option value="">의약품</option>
<option value="">도박</option>
<option value="">스미싱</option>
<option value="">기타</option>
<option value="01">일반</option>
<option value="02">대출</option>
<option value="03">의약품</option>
<option value="04">도박</option>
<option value="05">스미싱</option>
<option value="06">기타</option>
</select>
</div>
<div class="input_box">
@@ -32,7 +32,7 @@
</div>
</form>
<div class="info">
<div class="count"> <span> {{ totalItems}} </span>
<div class="count"> <span> {{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}} </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>
@@ -106,6 +106,7 @@ export default {
{ text: '50', value: 50},
{ text: '100', value: 100}
],
blckRsnCd:'',
grid: {
url: '/api/v1/bo/riskMgt/msg/intrcpList',
perPageRows: 20,
@@ -177,6 +178,9 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.blckRsnCd = this.blckRsnCd;
this.grid.pagePerRows = this.perPageCnt
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -7,7 +7,8 @@
<h3 class="title">080 수신번호 차단</h3>
<p class="breadcrumb">리스크관리 &gt; 080 수신번호 차단</p>
</div>
<form autocomplete="off" class="search_form">
<!-- <form autocomplete="off" class="search_form"> -->
<div class="search_form">
<div class="search_wrap">
<div class="input_box">
<label for="search" class="label">고객사</label>
@@ -23,7 +24,8 @@
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
</form>
</div>
<!-- </form> -->
<div class="info">
<div class="count"> <span> {{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }} </span>
<div class="select_box NumberSe">
@@ -58,7 +60,7 @@
import customGrid from '@/components/CustomGrid';
import commonModal from "@/components/modal/commonModal";
import { utils_mixin, chkPattern2 } from '../service/mixins';
//import api from '../service/api';
class CustomATagRenderer {
constructor(props) {
this.props = props;
@@ -75,11 +77,13 @@ class CustomATagRenderer {
addEvent(selEl) {
selEl.addEventListener("click", () => {
console.log(this.props)
const { callback } = this.props["cgrido" + this.props.colName].options;
callback(this.props);
});
}
}
class customBRegNo {
constructor(props) {
this.props = props;
@@ -135,11 +139,12 @@ export default {
columns: [
{ name: 'no', header: 'NO', align: 'center', width: '5%' },
{ name: 'custNm', header: '고객사', align: 'center', width: '15%', renderer: {
type: CustomATagRenderer
, options: {
callback: this.memberDetail,
type: CustomATagRenderer
, options: {
callback: this.memberDetail,
}
}
} },
},
{ name: 'bizrno', header: '사업자번호', align: 'center', width: '15%', renderer: {type: customBRegNo}},
{ name: 'authcd080', header: '인증코드', align: 'center', width: '15%'},
{ name: 'rcvblckno', header: '수신번호', align: 'center', width: '15%'},
@@ -164,7 +169,7 @@ export default {
},
created(){
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
// const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
mounted() {
let page = 1;

View File

@@ -17,6 +17,10 @@ const apprDetail = (params) => {
return httpClient.post('/api/v1/bo/sendNumMgt/apprDetail', params, {withCredentials: false});
}
const deleteNumber = (params) => {
return httpClient.post('/api/v1/bo/sendNumMgt/deleteNumber', params, {withCredentials: false});
}
// 사업자가 등록 요청.
const insertNumber = (adminId, custNm, bRegNo, nmineeDivCd, numberInputs, bizrAuthYn, custSeq) => {
let formData = new FormData();
@@ -113,4 +117,5 @@ export default {
insertNumber2,
apprDetail,
updateAppr,
deleteNumber,
}

View File

@@ -11,8 +11,8 @@
<div class="group">
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="" v-model="grid.params.searchType1" @keyup.enter="search">
<option value="" selected>전체</option>
<select name="" id="" v-model="searchType1" @keyup.enter="search">
<option value="">전체</option>
<option value="01">승인대기</option>
<option value="02">처리완료</option>
</select>
@@ -23,8 +23,8 @@
</div>
<div class="select_box id">
<label for="right" class="label">명의자 구분</label>
<select name="" id="" v-model="grid.params.searchType2" @keyup.enter="search">
<option value="" selected>전체</option>
<select name="" id="" v-model="searchType2" @keyup.enter="search">
<option value="">전체</option>
<option value="01">사업자</option>
<option value="02">타사업자</option>
</select>
@@ -41,7 +41,7 @@
<div class="info">
<div class="count"> <span>{{ totalItems }}</span>
<div class="select_box NumberSe">
<select name="" id="" v-model="grid.pagePerRows" @keyup.enter="search">
<select name="" id="" v-model="perPageCnt" @keyup.enter="search">
<option value="20">20</option>
<option value="50" selected>50</option>
<option value="100">100</option>
@@ -128,6 +128,8 @@ export default {
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 50,
searchType1:'',
searchType2:'',
grid: {
url: '/api/v1/bo/sendNumMgt/apprList',
perPage: 50,
@@ -200,6 +202,9 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.grid.perPage = this.perPageCnt
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -11,7 +11,7 @@
<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">
<select name="" id="sttusCd" v-model="searchType5" @keyup.enter="search">
<option value="">전체</option>
<option value="01">서류심사</option>
<option value="02">본인인증</option>
@@ -19,7 +19,7 @@
</div>
<div class="select_box">
<label for="right" class="label">승인상태</label>
<select name="" id="sttusCd" v-model="grid.params.searchType1" @keyup.enter="search">
<select name="" id="sttusCd" v-model="searchType1" @keyup.enter="search">
<option value="">전체</option>
<option value="01">승인대기</option>
<option value="02">승인완료</option>
@@ -28,7 +28,7 @@
</div>
<div class="select_box">
<label for="right" class="label">명의자 구분</label>
<select name="" id="nmineeDivCd" v-model="grid.params.searchType2" @keyup.enter="search">
<select name="" id="nmineeDivCd" v-model="searchType2" @keyup.enter="search">
<option value="">전체</option>
<option value="01">사업자</option>
<option value="02">타사업자</option>
@@ -36,7 +36,7 @@
</div>
<div class="select_box">
<label for="right" class="label">인입채널</label>
<select name="" id="inchDivCd" v-model="grid.params.searchType3" @keyup.enter="search">
<select name="" id="inchDivCd" v-model="searchType3" @keyup.enter="search">
<option value="">전체</option>
<option value="01">홈페이지</option>
<option value="02">어드민</option>
@@ -44,9 +44,9 @@
</div>
<div class="select_box id">
<label for="right" class="label">상세검색</label>
<select name="" id="category" v-model="grid.params.searchType4" @keyup.enter="search">
<select name="" id="category" v-model="searchType4" @keyup.enter="search">
<option value="regNo">발신번호</option>
<option value="bregNo">사업자번호</option>
<option selected value="regNo">발신번호</option>
<option value="custNm">고객사명</option>
</select>
</div>
@@ -60,9 +60,9 @@
<div class="info">
<div class="count"> <span>{{ totalItems }}</span>
<div class="select_box NumberSe">
<select name="" id="perPage" v-model="grid.pagePerRows" @keyup.enter="search">
<option value="20" selected>20</option>
<option value="50" >50</option>
<select name="" id="perPage" v-model="perPageCnt" @keyup.enter="search">
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
@@ -101,6 +101,9 @@ import customGrid from '@/components/CustomGrid';
import commonModal from "@/components/modal/commonModal";
import NumberRegPop from '../components/NumberRegPop';
import NumberDetailPop from "@/modules/sendNumMgt/components/NumberDetailPop";
// import sendNumMgtApi from "@/modules/sysMgt/service/sendNumMgtApi";
import sendNumMgtApi from '../service/sendNumMgtApi';
class CustomATagRenderer {
constructor(props) {
@@ -133,6 +136,12 @@ export default {
statType: [],
cate2Code: "",
totalItems: 0,
searchType5:'',
searchType4:'regNo',
searchType3:'',
searchType2:'',
searchType1:'',
// 테이블 리스트 데이터
perPageCnt: 50,
grid: {
@@ -233,6 +242,12 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.grid.params.searchType3 = this.searchType3
this.grid.params.searchType4 = this.searchType4
this.grid.params.searchType5 = this.searchType5
this.grid.pagePerRows = this.perPageCnt
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},
@@ -265,9 +280,53 @@ export default {
commonModalOpen(row){
this.$refs.commmonModal.alertModalOpen(row);
},
numberDelete(){
async numberDelete(){
if(this.doValidate() && window.confirm('삭제 하시겠습니까?')){
try {
let response = await sendNumMgtApi.deleteNumber(this.row);
const result = response.data;
if (result != null && result.retCode == "0000") {
this.row.title = '문자발신번호 관리';
this.row.msg1 = '삭제 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs.table.reloadData();
return;
}
this.row.title = '문자발신번호 관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
} catch(err) {
this.row.title = '문자발신번호 관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
}
},
doValidate(){ //로우데이터 삭제하도록 수정
}
console.log("totalItems >> " + this.totalItems);
if(this.totalItems == 0){
this.row.title = '문자발신번호 관리';
this.row.msg1 = '검색 결과가 없습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
var chkList = this.$refs.table.checkedElementDatas();
if(chkList.length == 0){
this.row.title = '문자발신번호 관리';
this.row.msg1 = '삭제대상을 체크를 해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
// for(var i = 0; i < chkList.length; i++){
// alert(chkList[i].adminId);
// }
const param = chkList.map((row)=>({regReqNo:row.regReqNo} ));
console.log(param)
this.row.list = param;
console.log(this.row);
return true;
},
},
// beforeRouteLeave(to, from, next) {
//

View File

@@ -10,8 +10,8 @@
<div class="search_wrap">
<div class="select_box">
<label for="stat" class="label">상태</label>
<select name="" id="stat" v-model="grid.params.searchType1" @keyup="search">
<option value="전체">전체</option>
<select name="" id="stat" v-model="searchType1" @keyup="search">
<option value="">전체</option>
<option value="A">사용</option>
<option value="N">미사용</option>
<option value="H">휴면</option>
@@ -20,7 +20,7 @@
</div>
<div class="select_box id">
<label for="searchType" class="label">상세검색</label>
<select name="" id="searchType" v-model="grid.params.searchType2" @keyup="search">
<select name="" id="searchType" v-model="searchType2" @keyup="search">
<option value="custNm">고객사명</option>
<option value="bregNo">사업자번호</option>
<option value="sendProfile">발신프로필</option>
@@ -28,7 +28,7 @@
</div>
<div class="input_box id">
<label for="search" class="label">검색어</label>
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search" />
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search" />
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
@@ -94,6 +94,8 @@ export default {
statType: [],
cate2Code: "",
totalItems: 0,
searchType1:'',
searchType2:'custNm',
// 테이블 리스트 데이터
perPageCnt: 20,
grid: {
@@ -168,6 +170,8 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -9,7 +9,7 @@
<div class="search_wrap">
<div class="select_box">
<label for="stat" class="label">사용상태</label>
<select name="" id="stat" v-model="grid.params.searchType1" @keyup.enter="search">
<select name="" id="stat" v-model="searchType1" @keyup.enter="search">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">폐기</option>
@@ -17,7 +17,7 @@
</div>
<div class="select_box">
<label for="searchType" class="label">고객사명</label>
<select name="" id="searchType" v-model="grid.params.searchType2" @keyup.enter="search">
<select name="" id="searchType" v-model="searchType2" @keyup.enter="search">
<option value="custNm">고객사명</option>
<option value="bizNo">사업자번호</option>
<option value="authCd">인증코드</option>
@@ -25,7 +25,7 @@
</div>
<div class="input_box id">
<label for="search" class="label">검색어</label>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search"/>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" v-on:keydown.enter.prevent="search"/>
</div>
<button type="button" class="button grey" @click="search">조회</button>
</div>
@@ -98,6 +98,8 @@ export default {
statType: [],
cate2Code: "",
totalItems: 0,
searchType1:'',
searchType2:'custNm',
// 테이블 리스트 데이터
perPageCnt: 50,
options: [
@@ -181,6 +183,8 @@ export default {
methods: {
search: function(isKeep) {
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},

View File

@@ -304,9 +304,10 @@ export default {
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
this.startDate = moment(this.endDate)
.subtract(day, 'day')
.toDate();
// this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.closeDate('start');
this.closeDate('end');

View File

@@ -9,7 +9,6 @@
<h3 class="pop-tit" v-if="code === null || code === ''">관리자 상세정보</h3>
<h3 class="pop-tit" v-else>유치채널 상세정보</h3>
</div>
<form autocomplete="off" ref="adminDetailForm">
<table>
<tbody>
<tr>
@@ -42,9 +41,9 @@
<div v:class="select_box">
<select name="" id="right" v-model="auth" ref="_auth">
<option value="">선택</option>
<option
v-for="(option, i) in authType"
v-bind:value="option.autCd"
<option
v-for="(option, i) in authType"
v-bind:value="option.autCd"
v-bind:key="i"
:selected="auth === option.autCd">
{{ option.autNm }}
@@ -65,12 +64,11 @@
</tr>
</tbody>
</table>
</form>
<div class="pop-btn2">
<button class="btn-default" @click="adminDetailModalClose();">취소</button>
<button class="btn-pcolor" @click="doInsert">저장</button>
</div>
</div>
</div>
<!-- 관리자 상세정보 팝업 -->
</div>
</div>

View File

@@ -88,7 +88,7 @@ import sysMgtApi from "../service/sysMgtApi.js";
import { utils_mixin, chkPattern2 } from '../service/mixins';
import SearchIdPopup from '../components/SearchIdPopup.vue';
import lodash from "lodash";
import commonModal from "@/components/modal/commonModal";
import commonModal from "../components/commonModal";
export default {
name: "adminRegPop",
@@ -343,6 +343,7 @@ export default {
wrap[0].style.display = 'block';
var obj = document.getElementsByClassName('modal20');
obj[0].style.display = 'block';
this.setAuthData();
},
// 모달 끄기
ModalClose(){
@@ -377,7 +378,7 @@ export default {
}
}
},
setAuthData() {
setAuthData() {
// 권한 옵션.
api.commAuth().then(response => {
this.authType = response.data.data.list;

View File

@@ -38,7 +38,6 @@
<li>이메일 : {{email}}</li>
</ul>
<div class="pop-btn2">
<!-- this.ModalOpen('modal20'); -->
<button class="btn-default" @click="searchIdModalCancelClose();">취소</button>
<button class="btn-pcolor" @click="searchIdModalOkClose();">확인</button>
</div>
@@ -157,8 +156,8 @@ export default {
}
</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>
<!--<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>-->

View File

@@ -179,10 +179,4 @@ export default {
},
}
}
</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> -->
</script>

View File

@@ -9,7 +9,7 @@
<div class="search_wrap">
<div class="select_box">
<label for="right" class="label">권한</label>
<select name="" id="right" v-model="grid.params.searchType1" @keyup.enter="search">
<select name="" id="right" v-model="searchType1" @keyup.enter="search">
<option value="">전체</option>
<option v-for="(option, i) in authType" v-bind:value="option.autCd" v-bind:key="i">
{{ option.autNm }}
@@ -18,7 +18,7 @@
</div>
<div class="select_box">
<label for="right" class="label">상태</label>
<select name="" id="" v-model="grid.params.searchType2" @keyup.enter="search">
<select name="" id="" v-model="searchType2" @keyup.enter="search">
<option value="" selected>전체</option>
<option v-for="(option, i) in statType" v-bind:value="option.code" v-bind:key="i">
{{ option.codeNm }}
@@ -27,7 +27,7 @@
</div>
<div class="input_box id">
<label for="id1" class="label">ID</label>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" @keyup.enter="search"/>
<input type="text" id="id1" placeholder="검색어 입력" v-model="grid.params.searchText1" @keyup.enter="search"/>
</div>
<div class="input_box">
<label for="name" class="label">이름(대리점명)</label>
@@ -109,6 +109,8 @@ export default {
totalItems: 0,
// 테이블 리스트 데이터
perPageCnt: 20,
searchType1:'',
searchType2:'',
grid: {
url: '/api/v1/bo/sysMgt/adminList',
pagePerRows: 20,
@@ -176,7 +178,10 @@ export default {
methods: {
search: function(isKeep) {
console.log('this.perPageCnt'+this.perPageCnt);
//console.log(this.grid.params);
//console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
this.grid.pagePerRows = this.perPageCnt
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
},