웹취약점, 모의해킹 조치

This commit is contained in:
USER
2022-08-24 14:04:30 +09:00
parent d0e0ef7020
commit a2273154d1
92 changed files with 1193 additions and 1246 deletions

View File

@@ -81,12 +81,10 @@ export default {
var params = {
"adminId": this.madangId
}
console.log(this.madangId);
try {
const response = await custMgtApi.selectSearchMadangId(params);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.madangId = result.data.adminId;
this.userNm = result.data.adminNm;
@@ -95,10 +93,8 @@ export default {
// 마당ID조회 성공 팝업노출
this.searchIdPop();
//console.log(this.userNm);
this.idCheck = true;
//this.$refs._pwd1.focus();
}else if(result.retCode == '1004'){
//alert('마당ID 정보가 없습니다.');
@@ -147,13 +143,10 @@ export default {
"adminNm": this.userNm,
"serviceId": this.serviceId
}
console.log(params);
try {
const response = await custMgtApi.updateAdminInfo(params);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
console.log('adminNm modal close');
//alert('관리자정보 수정에 성공하였습니다.');
// adminNm modal close
var dimmed = document.getElementsByClassName('modal26');
@@ -197,7 +190,6 @@ export default {
},
// 모달 띄우기
ModalOpen(target){
console.log(target);
this.formReset();
var dimmed = document.getElementsByClassName('modal26');
for(var i = 0; i < dimmed.length; i++){
@@ -209,7 +201,6 @@ export default {
},
// 모달 끄기
ModalClose(){
console.log('adminNm modal close');
var dimmed = document.getElementsByClassName('modal26');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'none';

View File

@@ -71,12 +71,10 @@ export default {
// 모달 띄우기
async carryOverListPopOpen(serviceId) {
console.log(serviceId);
this.row.serviceId = serviceId;
try {
const response = await custMgtApi.carryOverList(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.list = result.data.list;
this.totalCnt = result.data.list.length;
@@ -103,7 +101,6 @@ export default {
this.ModalClose();
},
excelDown() {
console.log(this.list.length)
if (this.list.length <= 0) {
this.row.title = '청약고객관리';
this.row.msg1 = '조회된 데이터가 없습니다.';
@@ -113,13 +110,12 @@ export default {
}
let today = moment().format('YYYYMMDDHHmmss');
const saveFileName = `이월금액_${today}.xlsx`;
const saveFileName = `이월금액_${today}.xls`;
let options = {
header: this.excelHeader,
dataOrder: 'header'
};
// console.log(data);
xlsx.export(this.list, saveFileName, options).then(() => {
});
},

View File

@@ -85,7 +85,6 @@ export default {
excelPopOpen(adminId, totalItems) {
this.adminId = adminId;
this.totalItems = totalItems;
console.log(totalItems);
var excelPop = document.getElementsByClassName('modal33');
for (var i = 0; i < excelPop.length; i++) {
excelPop[i].style.display = 'block';
@@ -139,8 +138,6 @@ export default {
header: this.excelHeader,
dataOrder: 'header',
};
console.log('============');
console.log(this.sampleList);
xlsx.export(this.sampleList, saveFileName, options).then(() => {
});
},
@@ -175,7 +172,6 @@ export default {
element.removeChild(element.firstChild);
}
}
console.log(file.name);
// 파일 이름 체크
var fileName = file.name;
var fileExpend = fileName .slice(fileName .indexOf(".") + 1).toLowerCase();
@@ -217,13 +213,11 @@ export default {
let workbook = XLSX.read(data, {type: 'binary'});
workbook.SheetNames.forEach((sheetName) => {
const rowObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {raw: true});
console.log(rowObj);
tmpResult = rowObj;
const limitCnt = 100;
this.totalCnt = Number(this.totalItems) + rowObj.length;
this.insertRowCnt = rowObj.length;
console.log('totalCnt : '+this.totalCnt +' limitCnt : '+limitCnt);
if (this.totalCnt > limitCnt) {
this.row.title = '청약고객관리';
this.row.msg1 = '100건이상은 등록되지 않습니다.';
@@ -268,10 +262,6 @@ export default {
}
}
});
console.log(vm.nData);
console.log(vm.nData.length);
console.log(vm.oData);
console.log(vm.oData.length);
};
reader.readAsBinaryString(file);
},
@@ -306,9 +296,7 @@ export default {
return {retVal: true, msg: '정상'};
},
delFile(event) {
const file = event.target.files[0];
console.log(file.name);
//this.$refs.file.reset();
const file = event.target.files[0];
this.$refs.file.value = null;
let element = document.getElementById('uploadFile');
while (element.firstChild) {
@@ -325,13 +313,9 @@ export default {
try {
const response = await custMgtApi.insertMassUser(this.row);
//console.log(response);
const result = response.data;
console.log(result);
if (result != null && result.retCode == '0000') {
//this.totalCnt = result.data.totalCnt;
this.successCnt = result.data.successCnt;
console.log(this.oData.length);
this.failCnt = Number(this.oData.length) + Number(result.data.failCnt);
if (result.data.failCnt > 0) {
@@ -350,20 +334,12 @@ export default {
}
}
} catch (error) {
console.log(error);
// 팝업으로 교체 예정
var title = '청약고객 관리\n';
var msg1 = '실패 하였습니다.';
// alert(title + msg1);
// this.row.title = '청약고객관리';
// this.row.msg1 = '실패 하였습니다.';
// this.$refs.validationConfirmPop.failFileuploadOpen(this.row);
}
// 오류건수.
console.log(this.oData.length);
}
},
failFileuploadOk(result) {
console.log(result)
if (result) {
this.excelPopClose();
this.$parent.memberDetail(this.adminId);

View File

@@ -66,7 +66,6 @@ export default {
},
created() {
console.log(this.$route.params.serviceId);
this.grid.params.searchText=this.$route.params.searchText;
},
mounted() {

View File

@@ -79,7 +79,7 @@ export default {
mixins: [utils_mixin, chkPattern2],
watch: {
stat() {
console.log('watch : ', this.stat)
}
},
components: {
@@ -88,13 +88,8 @@ export default {
commonModal,
},
model: {
//prop: 'sendData',
//event: 'event-data'
},
//props: ['sendData'],
created() {
// this.setAuthData();
// this.formReset();
},
data() {
return {
@@ -122,7 +117,6 @@ export default {
try {
const response = await custMgtApi.memberDetail(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.userId = result.data.userId;
this.userNm = result.data.userNm;
@@ -163,13 +157,8 @@ export default {
try {
const response = await custMgtApi.updateUser(this.row);
const result = response.data;
console.log(result);
this.row = {}
if (result != null && result.retCode == "0000") {
// this.row.title = '청약고객관리';
// this.row.msg1 = '수정 완료하였습니다.';
// this.$refs.commmonModal.alertModalOpen(this.row);
// this.memberUpdateModalClose();
this.toComplete();
} else {

View File

@@ -67,20 +67,14 @@ export default {
mixins: [utils_mixin, chkPattern2],
watch: {
stat() {
console.log('watch : ', this.stat)
}
},
components: {
validationConfirmModalPop,
// commonModal,
},
model: {
//prop: 'sendData',
//event: 'event-data'
},
//props: ['sendData'],
created() {
// this.setAuthData();
this.formReset();
},
data() {
@@ -129,7 +123,6 @@ export default {
try {
const response = await custMgtApi.insertUser(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.row.title = '청약고객관리';
this.row.msg1 = '사용자 생성 완료하였습니다.';
@@ -177,7 +170,6 @@ export default {
this.adminId = targetAdminId;
},
doValidate() {
console.log(this.userTotalCnt)
if (this.userTotalCnt >= 100) {
// 사용자등록제한_최대100개까지
this.$parent.$refs.validationConfirmPopModal.validationMaxlimitOpen();

View File

@@ -120,31 +120,13 @@ export default {
},
created(){
},
// mounted() {
// let pageMemo = 1;
// // 페이지 정보 및 검색 조건
// const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
// console.log('getCondition_memo : '+getCondition_memo);
//
// // store에 저장된 페이지 정보 및 검색 조건을 불러오기
// let isKeepMemo = false;
// if (getCondition_memo) {
// this.grid.pagePerRows = getCondition_memo.perPage;
// this.grid.params = getCondition_memo.params;
// pageMemo = getCondition_memo.page;
// isKeepMemo = true;
// }
//
// // this.search(isKeep);
// },
},
mounted() {
// 달력 세팅
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log('getCondition : '+getCondition);
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
@@ -158,8 +140,6 @@ export default {
},
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();
},
@@ -172,14 +152,12 @@ export default {
});
const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
console.log("getCondition_memo : "+ getCondition_memo.perPage);
},
//메모전체 모달 Open
async memoTotalModalOpen(props){
this.grid.params.userId = props.adminId;
this.userId = props.adminId;
console.log(props.adminId);
// 메모 모달팝업 오픈
var dimmed = document.getElementsByClassName('memoTotal');
@@ -190,7 +168,6 @@ export default {
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log('momo getCondition : '+getCondition);
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
@@ -218,7 +195,6 @@ export default {
this.$parent.memberDetail(this.adminId);
},
deleteMemo: function(props) {
console.log(props);
this.seqNo=props.seqNo;
this.memorow = {}
this.memorow.title = '메모';
@@ -229,15 +205,12 @@ export default {
try {
const response = await custMgtApi.deleteMemo(target);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
// alert('삭제 성공');
// 그리드 reload
// 리스트 그리드 오픈
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log('getCondition : '+getCondition);
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
@@ -254,14 +227,12 @@ export default {
this.$refs.commmonMemoModal.alertModalOpen(this.memorow);
}
} catch (error) {
console.log(error);
this.memorow.title = '메모 삭제';
this.memorow.msg1 = '실패 하였습니다.';
this.$refs.commmonMemoModal.alertModalOpen(this.memorow);
}
},
confirmCalbackFnc(props){
console.log(props)
if(props.result){
this.memorow = {}
this.memorow.seqNo = this.seqNo;

View File

@@ -45,9 +45,6 @@
</template>
<script>
import custMgtApi from "../service/custMgtApi.js";
export default {
data(){
return{
@@ -67,7 +64,6 @@ export default {
methods :{
// 모달 띄우기(성공모달)
searchIdModalOpen(target){
console.log("SearchIdModalOpen");
var dimmed = document.getElementsByClassName('dimmed modal28');
var wrap = document.getElementsByClassName('popup-wrap modal28');
var obj = document.getElementsByClassName(target);
@@ -94,7 +90,6 @@ export default {
},
// 모달 띄우기(실패모달)
searchIdFailModalOpen(target){
console.log("SearchIdFailModalOpen");
var dimmed = document.getElementsByClassName('dimmed modal27');
var wrap = document.getElementsByClassName('popup-wrap modal27');
var obj = document.getElementsByClassName(target);
@@ -117,15 +112,12 @@ export default {
this.code = params.code;
this.agencyNm = params.agencyNm;
//alert( userName + ': 조회 성공');
var dimmed = document.getElementsByClassName('modal28');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'block';
}
//this.searchIdModalModalOpen('modal18');
},
searchIdFailPop(){
//alert( '조회 실패');
var dimmed = document.getElementsByClassName('modal27');
for(var i = 0; i < dimmed.length; i++){
dimmed[i].style.display = 'block';
@@ -133,10 +125,4 @@ export default {
},
}
}
// import '../../../assets/css/layout.css?ver=02';
// import '../../../assets/css/contents.css?ver=01';
// import '../../../assets/css/common.css?ver=02';
// import '../../../assets/css/style.css';
</script>

View File

@@ -58,19 +58,16 @@
</template>
<script>
import api from '@/service/api';
import custMgtApi from "../service/custMgtApi.js";
import { utils_mixin, chkPattern2 } from '../service/mixins';
import lodash from "lodash";
import commonModal from "@/components/modal/commonModal";
import ValidationConfirmPop from "@/modules/custMgt/components/ValidationConfirmPop";
export default {
name: "subsRegPop",
mixins: [utils_mixin, chkPattern2],
watch:{
stat(){
console.log('watch : ', this.stat)
}
},
data(){

View File

@@ -76,7 +76,6 @@ export default {
mixins: [utils_mixin, chkPattern2],
watch: {
stat() {
console.log('watch : ', this.stat)
}
},
data() {
@@ -244,7 +243,6 @@ export default {
},
async doInsert() {
if (this.doValidate()) {
console.log(this.row)
try {
const response = await custMgtApi.insertTestId(this.row);

View File

@@ -145,7 +145,6 @@ export default {
for (var i = 0; i < dimmed.length; i++) {
dimmed[i].style.display = 'none';
}
console.log("this.$parent.memberInsert() ~~~~~~")
this.$parent.memberInsert();
},
//사용자등록 - 최초등록 Close

View File

@@ -101,13 +101,11 @@ export default {
},
methods: {
alertModalOpen(props) {
console.log(props.msg1);
this.title = props.title;
this.msg1 = props.msg1;
this.msg2 = props.msg2;
this.msg3 = props.msg3;
this.msg4 = props.msg4;
console.log(props)
var dimmed = document.getElementsByClassName('alertModal');
for (var i = 0; i < dimmed.length; i++) {
dimmed[i].style.display = 'block';
@@ -130,7 +128,6 @@ export default {
},
// 모달 오픈
confirmModalOpen(props) {
console.log(props)
var dimmed = document.getElementsByClassName('confirm');
for (var i = 0; i < dimmed.length; i++) {
dimmed[i].style.display = 'block';

View File

@@ -208,7 +208,6 @@ export default {
mixins: [utils_mixin, chkPattern2],
watch: {
stat() {
console.log('watch : ', this.stat);
},
},
data() {
@@ -235,7 +234,7 @@ export default {
svcUserId: '',
ezSvcUserAuthKey: '',
homePageUrl: '',
isActive: true
isActive: true,
//applyTbStyle: 'cursor: default;',
};
},
@@ -254,13 +253,13 @@ export default {
ValidationConfirmPop,
},
created() {
if(this.$route.params.serviceId != null){
if (this.$route.params.serviceId != null) {
this.$store.commit('dataStore/updateUserId', this.$route.params.serviceId);
this.userId = this.$route.params.serviceId;
this.memberDetail(this.$route.params.serviceId);
}else{
var userId2 = this.$store.getters["dataStore/getUserId"];
this.userId = userId2;
this.userId = this.$route.params.serviceId;
this.memberDetail(this.$route.params.serviceId);
} else {
var userId2 = this.$store.getters['dataStore/getUserId'];
this.userId = userId2;
this.memberDetail(this.userId);
}
},
@@ -286,8 +285,6 @@ export default {
const selected = [];
if (value) {
this.list.forEach((com) => {
//var chkList = {userId :com.userId};
//console.log(chkList)
selected.push(com.userId);
});
}
@@ -297,14 +294,13 @@ export default {
},
},
methods: {
valAlert(props) {
//alert("호출됨!");
valAlert(props) {
this.$refs.commmonModal.alertModalOpen(props);
},
valConfirm(props) {
this.$refs.commmonModal.confirmModalOpen(props);
},
async memberDetail(serviceId) {
async memberDetail(serviceId) {
this.row.userId = serviceId;
try {
const response = await custMgtApi.memberAdminDetail(this.row);
@@ -330,13 +326,11 @@ export default {
this.email = result.data.email;
this.list = result.data.list;
this.userTotalCnt = result.data.list.length;
console.log('userTotalCnt:' + result.data.list.length);
this.totalItems = result.data.paging.totalCnt;
this.homePageUrl = result.data.homePageUrl;
this.ezSvcUserAuthKey = result.data.authKey;
this.ezSvcUserAuthKey = result.data.authKey;
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
@@ -350,11 +344,8 @@ export default {
this.row.userStat = this.userStat;
this.row.memo = this.memo;
console.log(this.row);
try {
const response = await custMgtApi.updateAdminInfoTotal(this.row);
console.log(response);
const result = response.data;
if (result != null && result.retCode == '0000') {
this.row.title = '청약고객관리';
@@ -371,7 +362,6 @@ export default {
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
@@ -382,13 +372,11 @@ export default {
this.$router.push({ name: 'memberList', params: this.row });
},
excelPopOpen() {
console.log('memberInsertPopOpen >> ' + this.userTotalCnt);
if (this.userTotalCnt >= 100) {
// 사용자등록제한_최대100개까지
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
return false;
}
console.log(this.adminId);
this.$refs.memberBulkRegPop.excelPopOpen(this.adminId, this.totalItems);
},
memberUpdatePopOpen(target) {
@@ -397,7 +385,6 @@ export default {
this.$refs.memberModifyPop.memberUpdateModalOpen(this.row);
},
memberInsertPopOpen() {
console.log('memberInsertPopOpen >> ' + this.userTotalCnt);
if (this.userTotalCnt >= 100) {
// 사용자등록제한_최대100개까지
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
@@ -412,7 +399,6 @@ export default {
this.$refs.memoTatalListPop.memoTotalModalOpen(this.row);
},
deleteMember() {
console.log('delete count:' + this.selected.length);
if (this.selected.length === 0) {
this.row.title = '청약고객관리';
this.row.msg1 = '삭제대상을 체크해주세요.';
@@ -427,7 +413,6 @@ export default {
var serviceId = this.adminId;
this.row.list = this.selected.map((row) => ({ userId: row }));
this.row.adminId = this.adminId;
console.log(this.row);
try {
let response = await custMgtApi.deleteUser(this.row);
const result = response.data;
@@ -440,7 +425,6 @@ export default {
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch (error) {
console.log(error);
this.row = {};
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
@@ -462,7 +446,6 @@ export default {
this.$refs.form.submit();
},
confirmCalbackFnc(props) {
console.log(props);
if (props.result) {
this.memberDelete();
}

View File

@@ -1,295 +1,274 @@
<template>
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">청약고객관리</h3>
<p class="breadcrumb">고객관리 &gt; 청약고객관리 &gt; 회원관리</p>
</div>
<div class="table table_form">
<form action=""
target="_blank"
method="post"
ref="form">
<input type="hidden" name="svcUserId" id="svcUserId" v-model="svcUserId"/>
<input type="hidden" name="ezSvcUserAuthKey" id="ezSvcUserAuthKey" v-model="ezSvcUserAuthKey"/>
</form>
<table>
<colgroup>
<col style="width:140px">
<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">
<th>이름</th>
<td colspan="2">
<input type="text" v-model="userNm" ref="_userNm">
</td>
</tr>
<tr>
<th>등록일</th>
<td colspan="2">{{regDt}}</td>
<th class="center">관리자 ID</th>
<td colspan="2">{{adminId}}</td>
</tr>
<tr>
<th>ID</th>
<td colspan="2">
{{userId}}
<button type="button" class="button grey btn-a" @click="homeLogin">로그인</button>
</td>
<th class="center">구분</th>
<td colspan="2">{{userType}}</td>
</tr>
<tr class="tr_input">
<th>휴대폰번호</th>
<td colspan="2">
<input type="text" v-model="mdn" ref="_phone">
</td>
<th class="center">이메일</th>
<td colspan="2">
<input type="text" v-model="email" ref="_email">
</td>
</tr>
<tr class="w30">
<th>잠금</th>
<td colspan="2">
<input type="radio" name="userStat" value="01" id="right_radio1" v-model="stat">
<label for="right_radio1">사용</label>
<input type="radio" name="userStat" value="02" id="right_radio2" v-model="stat">
<label for="right_radio2">정지</label>
</td>
<th class="center">최종접속일</th>
<td colspan="2">{{lastLoginDt}}</td>
</tr>
</tbody>
</table>
</div>
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">청약고객관리</h3>
<p class="breadcrumb">고객관리 &gt; 청약고객관리 &gt; 회원관리</p>
</div>
<div class="pop-btn2">
<button class="btn-default" type="button" @click="toComplete();">취소</button>
<button class="btn-pcolor" type="button" @click="memberUpdate();">저장</button>
</div>
<div class="table table_form">
<form action="" target="_blank" method="post" ref="form">
<input type="hidden" name="svcUserId" id="svcUserId" v-model="svcUserId" />
<input type="hidden" name="ezSvcUserAuthKey" id="ezSvcUserAuthKey" v-model="ezSvcUserAuthKey" />
</form>
<table>
<colgroup>
<col style="width: 140px" />
<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">
<th>이름</th>
<td colspan="2">
<input type="text" v-model="userNm" ref="_userNm" />
</td>
</tr>
<tr>
<th>등록일</th>
<td colspan="2">{{ regDt }}</td>
<th class="center">관리자 ID</th>
<td colspan="2">{{ adminId }}</td>
</tr>
<tr>
<th>ID</th>
<td colspan="2">
{{ userId }}
<button type="button" class="button grey btn-a" @click="homeLogin">로그인</button>
</td>
<th class="center">구분</th>
<td colspan="2">{{ userType }}</td>
</tr>
<tr class="tr_input">
<th>휴대폰번호</th>
<td colspan="2">
<input type="text" v-model="mdn" ref="_phone" />
</td>
<th class="center">이메일</th>
<td colspan="2">
<input type="text" v-model="email" ref="_email" />
</td>
</tr>
<tr class="w30">
<th>잠금</th>
<td colspan="2">
<input type="radio" name="userStat" value="01" id="right_radio1" v-model="stat" />
<label for="right_radio1">사용</label>
<input type="radio" name="userStat" value="02" id="right_radio2" v-model="stat" />
<label for="right_radio2">정지</label>
</td>
<th class="center">최종접속일</th>
<td colspan="2">{{ lastLoginDt }}</td>
</tr>
</tbody>
</table>
</div>
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
<div class="pop-btn2">
<button class="btn-default" type="button" @click="toComplete()">취소</button>
<button class="btn-pcolor" type="button" @click="memberUpdate()">저장</button>
</div>
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
<common-modal ref="commmonModal"></common-modal>
</div>
</div>
</div>
</div>
</template>
<script>
import custMgtApi from "../service/custMgtApi.js";
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 lodash from 'lodash';
import commonModal from '@/components/modal/commonModal';
export default {
name: 'memberDetail',
mixins: [utils_mixin, chkPattern2],
watch:{
stat(){
console.log('watch : ', this.stat)
}
},
name: 'memberDetail',
mixins: [utils_mixin, chkPattern2],
watch: {
stat() {
},
},
data() {
return {
row:{},
userNm:'',
regDt: '',
userType: '',
userId: '',
adminId:'',
adminNm: '',
sendingLimit: '',
lineType: '',
userStat: '',
lastLoginDt: '',
userStat:'',
memo: '',
mdn : '',
email: '',
stat:'',
svcUserId:'',
ezSvcUserAuthKey:'',
homePageUrl: ''
}
},
return {
row: {},
userNm: '',
regDt: '',
userType: '',
userId: '',
adminId: '',
adminNm: '',
sendingLimit: '',
lineType: '',
userStat: '',
lastLoginDt: '',
userStat: '',
memo: '',
mdn: '',
email: '',
stat: '',
svcUserId: '',
ezSvcUserAuthKey: '',
homePageUrl: '',
};
},
props: {
serviceId: {
type: String,
default: "",
},
},
serviceId: {
type: String,
default: '',
},
},
components: {
commonModal,
ValidationConfirmPop,
},
created(){
if(this.$route.params.serviceId != null){
created() {
if (this.$route.params.serviceId != null) {
this.$store.commit('dataStore/updateUserId', this.$route.params.serviceId);
this.userId = this.$route.params.serviceId;
console.log('created : '+this.userId);
this.userId = this.$route.params.serviceId;
this.memberDetail(this.$route.params.serviceId);
}else{
var userId2 = this.$store.getters["dataStore/getUserId"];
this.userId = userId2;
console.log('created2 : '+this.userId);
} else {
var userId2 = this.$store.getters['dataStore/getUserId'];
this.userId = userId2;
this.memberDetail(this.userId);
}
},
},
destroyed() {
this.$store.commit('dataStore/updateUserId', '');
},
mounted() {
},
mounted() {},
methods: {
async memberDetail(serviceId){
this.svcUserId = serviceId;
this.row.userId = serviceId;
try {
const response = await custMgtApi.memberDetail(this.row);
const result = response.data;
console.log('>>>>>>>>>>>>');
console.log(result);
if (result != null && result.retCode == "0000") {
// isView
this.userNm = result.data.userNm;
this.userId = result.data.userId;
this.regDt = result.data.regDt;
this.userType = result.data.userType;
this.adminId = result.data.adminId;
this.adminNm = result.data.adminNm;
this.sendingLimit = result.data.sendingLimit;
this.lineType = result.data.lineType;
this.stat = result.data.userStat;
this.lastLoginDt = result.data.lastLoginDt;
this.memo = result.data.memo;
this.mdn = result.data.mdn;
this.email = result.data.email;
this.homePageUrl = result.data.homePageUrl;
this.ezSvcUserAuthKey = result.data.authKey;
}
} catch (error) {
console.log(error);
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
async memberDetail(serviceId) {
this.svcUserId = serviceId;
this.row.userId = serviceId;
try {
const response = await custMgtApi.memberDetail(this.row);
const result = response.data;
if (result != null && result.retCode == '0000') {
// isView
this.userNm = result.data.userNm;
this.userId = result.data.userId;
this.regDt = result.data.regDt;
this.userType = result.data.userType;
this.adminId = result.data.adminId;
this.adminNm = result.data.adminNm;
this.sendingLimit = result.data.sendingLimit;
this.lineType = result.data.lineType;
this.stat = result.data.userStat;
this.lastLoginDt = result.data.lastLoginDt;
this.memo = result.data.memo;
this.mdn = result.data.mdn;
this.email = result.data.email;
this.homePageUrl = result.data.homePageUrl;
this.ezSvcUserAuthKey = result.data.authKey;
}
} catch (error) {
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
},
async memberUpdate() {
if (!this.doValidate()) {
return false;
}
},
async memberUpdate(){
if(!this.doValidate()){
return false;
}
this.row.userId = this.userId;
this.row.userNm = this.userNm;
this.row.userEmail = this.email;
this.row.mdn = this.mdn;
this.row.userStat = this.stat;
try {
const response = await custMgtApi.updateUser(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.row.userId = this.userId;
this.row.userNm = this.userNm;
this.row.userEmail = this.email;
this.row.mdn = this.mdn;
this.row.userStat = this.stat;
try {
const response = await custMgtApi.updateUser(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.toComplete();
} else {
} else {
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch(err) {
}
} catch (err) {
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
}
},
// 저장 후 부모창 호출.
toComplete(){
this.$router.push({ name: 'memberList', params: this.row });
},
doValidate(){
if(this.isNull(this.userNm)){
this.row.title = '청약고객관리';
this.row.msg1 = '이름을 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._userNm.focus();
return false;
}
if(this.isNull(this.email)){
this.row.title = '청약고객관리';
this.row.msg1 = '이메일을 입력해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._email.focus();
return false;
}
const email = this.email;
if(!this.isNull(email) && !lodash.isEqual(email,'@') && !this.emailCheck(email)){
// 저장 후 부모창 호출.
toComplete() {
this.$router.push({ name: 'memberList', params: this.row });
},
doValidate() {
if (this.isNull(this.userNm)) {
this.row.title = '청약고객관리';
this.row.msg1 = '이름을 입력해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._userNm.focus();
return false;
}
if (this.isNull(this.email)) {
this.row.title = '청약고객관리';
this.row.msg1 = '이메일을 입력해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._email.focus();
return false;
}
const email = this.email;
if (!this.isNull(email) && !lodash.isEqual(email, '@') && !this.emailCheck(email)) {
this.row.title = '청약고객관리';
this.row.msg1 = '이메일 형식이 잘못되었습니다. 확인해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._email.focus();
//this.$refs.validationConfirmPopModal.validationEmailOpen();
return false;
}
if(this.isNull(this.mdn)){
return false;
}
if (this.isNull(this.mdn)) {
this.row.title = '청약고객관리';
this.row.msg1 = '휴대폰번호를 입력해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._phone.focus();
return false;
}
const hp = this.mdn;
if(!this.isNull(hp) && !this.isMobile(hp)){
this.$refs._phone.focus();
return false;
}
const hp = this.mdn;
if (!this.isNull(hp) && !this.isMobile(hp)) {
this.row.title = '청약고객관리';
this.row.msg1 = '휴대폰 번호 형식이 잘못되었습니다. 확인해 주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
this.$refs._phone.focus();
//this.$refs.validationConfirmPopModal.validationPhonenumberOpen();
return false;
}
if(this.isNull(this.stat)){
return false;
}
if (this.isNull(this.stat)) {
this.row.title = '청약고객관리';
this.row.msg1 = '상태를 선택 해주세요.';
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
return false;
}
return true;
},
checkPhoneFocus(){
//this.mdn = '';
this.$refs._phone.focus();
return true;
},
checkEmailFocus(){
//this.email = '';
this.$refs._email.focus();
checkPhoneFocus() {
//this.mdn = '';
this.$refs._phone.focus();
},
homeLogin(){
this.$refs.form.action = this.homePageUrl;
this.svcUserId = this.userId
console.log('--------');
console.log(this.svcUserId);
checkEmailFocus() {
//this.email = '';
this.$refs._email.focus();
},
homeLogin() {
this.$refs.form.action = this.homePageUrl;
this.svcUserId = this.userId;
this.$refs.form.submit();
},
},

View File

@@ -241,7 +241,6 @@ export default {
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log('getCondition : ' + getCondition);
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
@@ -256,7 +255,6 @@ export default {
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,
@@ -269,8 +267,6 @@ export default {
search: function (isKeep) {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt' + this.perPageCnt);
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1;
this.grid.params.searchType2 = this.searchType2;
this.grid.params.searchType3 = this.searchType3;
@@ -299,7 +295,6 @@ export default {
},
sendStoreData: function () {
const getP = this.$refs.table.getPagination();
// console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
@@ -307,7 +302,6 @@ export default {
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
// console.log("getCondition : "+ getCondition.perPage);
},
setCodeData() {
@@ -323,9 +317,6 @@ export default {
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
//this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.closeDate('start');
@@ -339,8 +330,6 @@ export default {
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) {
@@ -371,7 +360,6 @@ export default {
let setYear = Number(moment(new Date()).format('YYYY'));
let initStartDate = new Date(setYear, 0, 1);
this.startDate = initStartDate;
console.log(moment(this.startDate).format('YYYY-MM-DD'));
},
},

View File

@@ -180,7 +180,7 @@ import custMgtApi from "../service/custMgtApi.js";
import CarryOverListPop from '../components/CarryOverListPop';
import ValidationConfirmPop from '../components/ValidationConfirmPop';
import AdminNmPop from '../components/AdminNmPop';
import commonModal from "@/components/modal/commonModal";
import commonModal from "../components/commonModal";
//import { mapGetters } from 'vuex';
export default {
@@ -228,15 +228,12 @@ export default {
},
components: {
CarryOverListPop,
//ConfirmPop,
//SearchIDPop,
ValidationConfirmPop,
AdminNmPop,
commonModal,
},
created() {
console.log(this.$route.params.serviceId);
this.$store.commit("login/isLogin", true);
if(this.$route.params.serviceId != null){ // 리스트에서 상세 호출시
@@ -245,7 +242,6 @@ export default {
this.setMenuActive();
}else{ // 상세 화면에서 새로고침 호출시
var serviceId = this.$store.getters["dataStore/getDataStore"];
console.log('serviceId : '+serviceId);
this.subsDetail(serviceId);
}
},
@@ -254,16 +250,10 @@ export default {
this.$store.commit('dataStore/updateDataStore', '');
},
methods: {
callAlert(props) {
//alert("호출됨!");
callAlert(props) {
this.$refs.commmonModal.alertModalOpen(props);
},
doValidate() {
// if(this.isNull(this.userId)){
// alert("아이디를 입력해 주세요.");
// this.$refs._userId.focus();
// return false;
// }
return true;
},
// 저장 후 부모창 호출.
@@ -283,7 +273,6 @@ export default {
try {
const response = await custMgtApi.subsDetail(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
//데이터값이 널이면 오류처리
this.custNm = result.data.custNm;
@@ -319,6 +308,10 @@ export default {
this.cprRegNo1 = this.cprRegNo.substr(0, 6);
this.cprRegNo2 = this.cprRegNo.substr(6);
}
}else{
this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
}
} catch (error) {
this.row.title = '청약고객관리';
@@ -337,7 +330,6 @@ export default {
try {
const response = await custMgtApi.updateAdminInfo(this.row);
const result = response.data;
console.log(result);
if (result != null && result.retCode == "0000") {
this.row.title = '청약고객관리';
this.row.msg1 = '저장 하였습니다.';
@@ -365,14 +357,11 @@ export default {
},
confirmCalbackFnc: function (props) {
console.log(props);
if (props.result) {
// this.doInsert(props.result);
}
},
searchIDPopOpen: function () {
var params = {
// "serviceId": this.row.serviceId,
"serviceId": this.serviceId,
"serviceSeq": '',
"parentDiv": 'subsDetail'
@@ -380,7 +369,6 @@ export default {
this.$refs.adminNmPop.ModalOpen(params);
},
goMemberDetail: function (props) {
console.log(this.row);
this.$router.push({name: 'memberAdminDetail', params: {serviceId: this.row.serviceId}});
},
@@ -392,6 +380,11 @@ export default {
nowMenu[0].classList.add('is-current');
//menuList.classList.add('is-current');
},
// 조회후 모달창 닫기
checkFocus(){
this.$router.go(-1);
}
}
}

View File

@@ -1,6 +1,6 @@
<template>
<div class="contents">
<div class="contents">
<div class="contents_wrap">
<div class="top_wrap">
<h3 class="title">청약고객관리</h3>
@@ -248,7 +248,6 @@ export default {
let page = 1;
// 페이지 정보 및 검색 조건
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log('getCondition : ' + getCondition);
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
let isKeep = false;
@@ -263,7 +262,6 @@ export default {
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,
@@ -276,8 +274,6 @@ export default {
search: function (isKeep) {
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
console.log('this.perPageCnt' + this.perPageCnt);
console.log(this.grid.params);
this.grid.params.searchType1 = this.searchType1
this.grid.params.searchType2 = this.searchType2
@@ -290,7 +286,6 @@ export default {
this.$router.push({name: routeName, params: {page: 1, searchText: ''}});
},
custDetail(props) {
console.log(props);
this.row.serviceId = props.serviceId;
this.$router.push({name: 'subsDetail', params: this.row});
},
@@ -300,7 +295,6 @@ export default {
},
sendStoreData: function () {
const getP = this.$refs.table.getPagination();
console.log("==========getP : " + getP._currentPage);
this.$store.commit('searchcondition/updateSearchCondition', {
page: getP._currentPage,
perPage: this.perPageCnt,
@@ -308,7 +302,6 @@ export default {
});
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
console.log("getCondition : " + getCondition.perPage);
},
setCodeData() {
// 상태 옵션 셋팅.
@@ -360,7 +353,6 @@ export default {
header: this.excelHeader,
dataOrder: 'header'
};
// console.log(data);
xlsx.export(data.list, saveFileName, options).then(() => {
});
},
@@ -373,9 +365,6 @@ export default {
setPeriodDay(day) {
this.periodDay = day;
this.endDate = new Date();
// this.startDate = moment(this.endDate)
// .subtract(day, 'day')
// .toDate();
this.initSetStartDate();
this.closeDate('start');
@@ -389,8 +378,7 @@ export default {
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) {
@@ -421,7 +409,6 @@ export default {
let setYear = Number(moment(new Date()).format('YYYY'));
let initStartDate = new Date(setYear, 0, 1);
this.startDate = initStartDate;
console.log(moment(this.startDate).format('YYYY-MM-DD'));
},
},
};