mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-07 03:28:39 +09:00
로그인 / 고객관리 / 시스템관리 ... 디자인 및 기능 수정 적용
This commit is contained in:
@@ -1428,7 +1428,7 @@ header .user_wrap .user_info .logout {
|
|||||||
padding: 5px 0 5px 10px;
|
padding: 5px 0 5px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popup.b-popup tr:nth-child(1) .memo:nth-child(1){
|
.popup.b-popup tr:nth-child(n) .memo:nth-child(n){
|
||||||
height: 100px;
|
height: 100px;
|
||||||
display: block;
|
display: block;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div>
|
||||||
<header>
|
<header>
|
||||||
<h1 class="logo"><a href="javascript:void(0)">uplus 메시지허브이지<span>BACKOFFICE</span></a></h1>
|
<h1 class="logo"><a href="javascript:void(0)">uplus 메시지허브이지<span>BACKOFFICE</span></a></h1>
|
||||||
<div class="user_wrap">
|
<div class="user_wrap">
|
||||||
@@ -12,12 +13,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
<logout-modal ref="logoutModal"></logout-modal>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
//import tokenSvc from '@/common/token-service';
|
//import tokenSvc from '@/common/token-service';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import loginApi from '@/modules/login/service/api';
|
import loginApi from '@/modules/login/service/api';
|
||||||
|
import logoutModal from "./logoutModal";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "hubWebHeader",
|
name: "hubWebHeader",
|
||||||
@@ -27,6 +31,7 @@ export default {
|
|||||||
isLogin: false,
|
isLogin: false,
|
||||||
isErrPage: false,
|
isErrPage: false,
|
||||||
navActive: false,
|
navActive: false,
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -59,6 +64,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
logoutModal,
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
userInfoToggle(){
|
userInfoToggle(){
|
||||||
var click = "clicked";
|
var click = "clicked";
|
||||||
@@ -71,19 +79,22 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
logout(){
|
logout(){
|
||||||
let result = confirm("로그아웃 하시겠습니까?");
|
//commonModal
|
||||||
if (result) {
|
this.$refs.logoutModal.logoutModalOpen();
|
||||||
loginApi.logout().then(response => {
|
|
||||||
if(response.data.retCode == '0000'){
|
|
||||||
|
|
||||||
// tokenSvc.removeToken();
|
// let result = confirm("로그아웃 하시겠습니까?");
|
||||||
|
// if (result) {
|
||||||
this.$router.push({
|
// loginApi.logout().then(response => {
|
||||||
path: "/login"
|
// if(response.data.retCode == '0000'){
|
||||||
});
|
//
|
||||||
}
|
// // tokenSvc.removeToken();
|
||||||
});
|
//
|
||||||
}
|
// this.$router.push({
|
||||||
|
// path: "/login"
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
81
frontend/src/components/logoutModal.vue
Normal file
81
frontend/src/components/logoutModal.vue
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
<template>
|
||||||
|
<div class="wrap bg-wrap">
|
||||||
|
<div class="dimmed logoutConfirm" @click="logoutModalCancel();"></div>
|
||||||
|
<div class="popup-wrap logoutConfirm">
|
||||||
|
<!-- 수정 확인 -->
|
||||||
|
<div class="popup logoutConfirm">
|
||||||
|
<div class="pop-head">
|
||||||
|
<h3 class="pop-tit">로그아웃</h3>
|
||||||
|
</div>
|
||||||
|
<div class="pop-cont">
|
||||||
|
<p>로그아웃 하시겠습니까?</p>
|
||||||
|
</div>
|
||||||
|
<div class="popup-btn2">
|
||||||
|
<button class="btn-pcolor" @click="logoutModalClose();">확인</button>
|
||||||
|
<button class="btn-default" @click="logoutModalCancel();">취소</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import loginApi from "@/modules/login/service/api";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "confirm",
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
row:{},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
// 모달 오픈
|
||||||
|
logoutModalOpen() {
|
||||||
|
var dimmed = document.getElementsByClassName('logoutConfirm');
|
||||||
|
for (var i = 0; i < dimmed.length; i++) {
|
||||||
|
dimmed[i].style.display = 'block';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 모달 끄기(ok)
|
||||||
|
logoutModalClose() {
|
||||||
|
var dimmed = document.getElementsByClassName('logoutConfirm');
|
||||||
|
for (var i = 0; i < dimmed.length; i++) {
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
loginApi.logout().then(response => {
|
||||||
|
if(response.data.retCode == '0000'){
|
||||||
|
this.$store.commit("login/isLogin", false);
|
||||||
|
this.$store.commit("login/isAuthChk", false);
|
||||||
|
this.$router.push({
|
||||||
|
path: "/login"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 모달 끄기(취소)
|
||||||
|
logoutModalCancel() {
|
||||||
|
var dimmed = document.getElementsByClassName('logoutConfirm');
|
||||||
|
for (var i = 0; i < dimmed.length; i++) {
|
||||||
|
dimmed[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
var click = "clicked";
|
||||||
|
var userBtn = document.querySelector('.user_wrap .user');
|
||||||
|
if(userBtn.classList.contains(click)){
|
||||||
|
userBtn.classList.remove(click);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
userBtn.classList.add(click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.dimmed {z-index:1;}
|
||||||
|
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0; z-index:10;}
|
||||||
|
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
||||||
|
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
||||||
|
.popup {z-index:10;}
|
||||||
|
</style>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- <div class="wrap bg-wrap"> -->
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
<div>
|
<div>
|
||||||
<div class="dimmed modal33" @click="excelPopClose();"></div>
|
<div class="dimmed modal33" @click="excelPopClose()"></div>
|
||||||
<div class="popup-wrap modal33">
|
<div class="popup-wrap modal33">
|
||||||
<div class="popup modal33 popup_form">
|
<div class="popup modal33 popup_form">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -11,13 +11,19 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>관리자 ID</th>
|
<th>관리자 ID</th>
|
||||||
<td>{{adminId}}</td>
|
<td>{{ adminId }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>사용자 ID 업로드</th>
|
<th>사용자 ID 업로드</th>
|
||||||
<td>
|
<td>
|
||||||
<div class="popup-btn2 bulk">
|
<div class="popup-btn2 bulk">
|
||||||
<input type="file" ref="file" style="display: none" @change="readFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
|
<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="btn-default" @click="sampleDown">샘플 다운로드</button>
|
||||||
<button class="button btn-p2color" @click="$refs.file.click()">파일 업로드</button>
|
<button class="button btn-p2color" @click="$refs.file.click()">파일 업로드</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,98 +44,105 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import api from '@/service/api';
|
import api from '@/service/api';
|
||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from '../service/custMgtApi.js';
|
||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import XLSX from 'xlsx';
|
import XLSX from 'xlsx';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from './commonModal';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "memberBulkRegPop",
|
name: 'memberBulkRegPop',
|
||||||
mixins: [utils_mixin, chkPattern2],
|
mixins: [utils_mixin, chkPattern2],
|
||||||
data(){
|
data() {
|
||||||
return{
|
return {
|
||||||
row: {},
|
row: {},
|
||||||
excelHeader: [],
|
excelHeader: [],
|
||||||
pageType: 'SAMPLE',
|
pageType: 'SAMPLE',
|
||||||
adminId:'',
|
adminId: '',
|
||||||
varList : ["이름","휴대폰번호","기타1","기타2","기타3","기타4"],
|
varList: ['이름', '휴대폰번호', '기타1', '기타2', '기타3', '기타4'],
|
||||||
varList2 : ["이름","기타1","기타2","기타3","기타4"],
|
varList2: ['이름', '기타1', '기타2', '기타3', '기타4'],
|
||||||
nData : [],
|
nData: [],
|
||||||
oData : [],
|
oData: [],
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
commonModal,
|
commonModal,
|
||||||
},
|
},
|
||||||
created(){
|
created() {
|
||||||
this.getExcelHeader();
|
this.getExcelHeader();
|
||||||
},
|
},
|
||||||
methods :{
|
methods: {
|
||||||
// 모달 띄우기
|
// 모달 띄우기
|
||||||
excelPopOpen(adminId, totalItems){
|
excelPopOpen(adminId, totalItems) {
|
||||||
this.adminId = adminId;
|
this.adminId = adminId;
|
||||||
this.totalItems = totalItems;
|
this.totalItems = totalItems;
|
||||||
console.log(totalItems)
|
console.log(totalItems);
|
||||||
var excelPop = document.getElementsByClassName('modal33');
|
var excelPop = document.getElementsByClassName('modal33');
|
||||||
for(var i = 0; i < excelPop.length; i++){
|
for (var i = 0; i < excelPop.length; i++) {
|
||||||
excelPop[i].style.display = 'block';
|
excelPop[i].style.display = 'block';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 모달 끄기
|
// 모달 끄기
|
||||||
excelPopClose(){
|
excelPopClose() {
|
||||||
//this.formReset();
|
//this.formReset();
|
||||||
var excelPop = document.getElementsByClassName('modal33');
|
var excelPop = document.getElementsByClassName('modal33');
|
||||||
for(var i = 0; i < excelPop.length; i++){
|
for (var i = 0; i < excelPop.length; i++) {
|
||||||
excelPop[i].style.display = 'none';
|
excelPop[i].style.display = 'none';
|
||||||
}
|
}
|
||||||
|
// this.$refs.file.reset()
|
||||||
|
let element = document.getElementById('uploadFile');
|
||||||
|
while (element.firstChild) {
|
||||||
|
element.removeChild(element.firstChild);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 저장 후 부모창 호출.
|
// 저장 후 부모창 호출.
|
||||||
toComplete(){
|
toComplete() {
|
||||||
this.getParent('custList').$refs.table.reloadData();
|
this.row.serviceId = this.adminId;
|
||||||
|
// 팝업으로 교체 예정
|
||||||
|
if (confirm('정상 업로드 되었습니다.')){
|
||||||
this.excelPopClose();
|
this.excelPopClose();
|
||||||
|
this.$parent.memberDetail(this.adminId);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
async doInsert(){
|
async doInsert() {
|
||||||
if(this.doValidate() && window.confirm('등록 하시겠습니까?')){
|
if (this.doValidate() && window.confirm('등록 하시겠습니까?')) {
|
||||||
try {
|
try {
|
||||||
const response = await custMgtApi.insertTestId(this.row);
|
const response = await custMgtApi.insertTestId(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '저장 하였습니다.';
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch (err) {
|
||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '실패 하였습니다.';
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async sampleDown(){
|
async sampleDown() {
|
||||||
let today = moment().format('YYYYMMDDHHmmss');
|
let today = moment().format('YYYYMMDDHHmmss');
|
||||||
const saveFileName = `어드민_사용자ID 대량생성_${today}.xlsx`;
|
const saveFileName = `어드민_사용자ID 대량생성_${today}.xlsx`;
|
||||||
|
|
||||||
let options = {
|
let options = {
|
||||||
header: this.excelHeader,
|
header: this.excelHeader,
|
||||||
dataOrder: 'header'
|
dataOrder: 'header',
|
||||||
};
|
};
|
||||||
xlsx.export([], saveFileName, options).then(() => {});
|
xlsx.export([], saveFileName, options).then(() => {});
|
||||||
},
|
},
|
||||||
getExcelHeader() {
|
getExcelHeader() {
|
||||||
// 헤더를 mockup으로 관리한다.
|
// 헤더를 mockup으로 관리한다.
|
||||||
custMgtApi.getExcelHeader(this.pageType).then(res => {
|
custMgtApi.getExcelHeader(this.pageType).then((res) => {
|
||||||
this.excelHeader = res;
|
this.excelHeader = res;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
readFile(event) {
|
readFile(event) {
|
||||||
|
this.nData = [];
|
||||||
this.nData = []
|
this.oData = [];
|
||||||
this.oData = []
|
|
||||||
|
|
||||||
const file = event.target.files[0];
|
const file = event.target.files[0];
|
||||||
console.log(file.name);
|
console.log(file.name);
|
||||||
@@ -140,13 +153,12 @@ export default {
|
|||||||
text.innerText = file.name;
|
text.innerText = file.name;
|
||||||
button.addEventListener('click', () => {
|
button.addEventListener('click', () => {
|
||||||
this.delFile(event);
|
this.delFile(event);
|
||||||
})
|
});
|
||||||
|
button.innerText = 'X';
|
||||||
const root = document.getElementById('uploadFile');
|
const root = document.getElementById('uploadFile');
|
||||||
root.appendChild(text);
|
root.appendChild(text);
|
||||||
root.appendChild(button);
|
root.appendChild(button);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let reader = new FileReader();
|
let reader = new FileReader();
|
||||||
let tmpResult = {};
|
let tmpResult = {};
|
||||||
const vm = this;
|
const vm = this;
|
||||||
@@ -154,62 +166,60 @@ export default {
|
|||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '파일을 읽는 동안 에러가 발생 했습니다.';
|
this.row.msg1 = '파일을 읽는 동안 에러가 발생 했습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
};
|
||||||
reader.onloadend = (e) => {
|
reader.onloadend = (e) => {};
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
reader.onload = (e) => {
|
reader.onload = (e) => {
|
||||||
let data = reader.result;
|
let data = reader.result;
|
||||||
let workbook = XLSX.read(data, {type: 'binary'});
|
let workbook = XLSX.read(data, { type: 'binary' });
|
||||||
workbook.SheetNames.forEach(sheetName => {
|
workbook.SheetNames.forEach((sheetName) => {
|
||||||
|
const rowObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], { raw: true });
|
||||||
const rowObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{raw:true});
|
|
||||||
tmpResult = rowObj;
|
tmpResult = rowObj;
|
||||||
const limitCnt = 100;
|
const limitCnt = 100;
|
||||||
|
|
||||||
const totalCnt = Number(this.totalItems) + rowObj.length;
|
const totalCnt = Number(this.totalItems) + rowObj.length;
|
||||||
|
|
||||||
if(totalCnt > limitCnt){
|
if (totalCnt > limitCnt) {
|
||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '100건이상은 등록되지 않습니다.';
|
this.row.msg1 = '100건이상은 등록되지 않습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const [idx,r] of rowObj.entries()) {
|
for (const [idx, r] of rowObj.entries()) {
|
||||||
if(idx > limitCnt-1 ) {
|
if (idx > limitCnt - 1) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let {ID,이름,휴대폰번호,이메일,ID잠금} = r;
|
let { ID, 이름, 휴대폰번호, 이메일, ID잠금 } = r;
|
||||||
ID = ''+(vm.isNull(ID)?'':ID);
|
ID = '' + (vm.isNull(ID) ? '' : ID);
|
||||||
이름 = ''+(vm.isNull(이름)?'':이름);
|
이름 = '' + (vm.isNull(이름) ? '' : 이름);
|
||||||
휴대폰번호 = ''+(vm.isNull(휴대폰번호)?'':휴대폰번호);
|
휴대폰번호 = '' + (vm.isNull(휴대폰번호) ? '' : 휴대폰번호);
|
||||||
이메일 = ''+(vm.isNull(이메일)?'':이메일);
|
이메일 = '' + (vm.isNull(이메일) ? '' : 이메일);
|
||||||
ID잠금 = ''+(vm.isNull(ID잠금)?'':ID잠금);
|
ID잠금 = '' + (vm.isNull(ID잠금) ? '' : ID잠금);
|
||||||
|
|
||||||
// 휴대폰번호=''+휴대폰번호;
|
// 휴대폰번호=''+휴대폰번호;
|
||||||
if(!vm.isMobile(휴대폰번호)){
|
if (!vm.isMobile(휴대폰번호)) {
|
||||||
if(vm.isMobile2(휴대폰번호)){
|
if (vm.isMobile2(휴대폰번호)) {
|
||||||
휴대폰번호='0'+휴대폰번호;
|
휴대폰번호 = '0' + 휴대폰번호;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let {retVal,msg } = vm.validXlxs({ID,이름,휴대폰번호,이메일,ID잠금});
|
let { retVal, msg } = vm.validXlxs({ ID, 이름, 휴대폰번호, 이메일, ID잠금 });
|
||||||
if(retVal){
|
if (retVal) {
|
||||||
const pVal = [{ name:'이름',val:이름, len:20,},
|
const pVal = [
|
||||||
{ name:'ID잠금',val:ID잠금, len:4,},];
|
{ name: '이름', val: 이름, len: 20 },
|
||||||
|
{ name: 'ID잠금', val: ID잠금, len: 4 },
|
||||||
|
];
|
||||||
|
|
||||||
const rVal = vm.isTitle(pVal);
|
const rVal = vm.isTitle(pVal);
|
||||||
|
|
||||||
if(rVal.retVal){
|
if (rVal.retVal) {
|
||||||
vm.nData.push({userId:ID,userNm:이름,mdn:휴대폰번호,email:이메일,stat:ID잠금,msg});
|
vm.nData.push({ userId: ID, userNm: 이름, mdn: 휴대폰번호, email: 이메일, stat: ID잠금, msg });
|
||||||
}else{
|
} else {
|
||||||
vm.oData.push({ID,이름,휴대폰번호,이메일,ID잠금,오류내용:rVal.msg});
|
vm.oData.push({ ID, 이름, 휴대폰번호, 이메일, ID잠금, 오류내용: rVal.msg });
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
}else{
|
vm.oData.push({ ID, 이름, 휴대폰번호, 이메일, ID잠금, 오류내용: msg });
|
||||||
vm.oData.push({ID,이름,휴대폰번호,이메일,ID잠금,오류내용:msg});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -220,81 +230,87 @@ export default {
|
|||||||
};
|
};
|
||||||
reader.readAsBinaryString(file);
|
reader.readAsBinaryString(file);
|
||||||
},
|
},
|
||||||
validXlxs({이름,휴대폰번호,이메일}){
|
validXlxs({ 이름, 휴대폰번호, 이메일 }) {
|
||||||
if(this.isNull(이름)){
|
if (this.isNull(이름)) {
|
||||||
return {retVal:false,msg:'이름 누락'};
|
return { retVal: false, msg: '이름 누락' };
|
||||||
}
|
}
|
||||||
if(this.isNull(휴대폰번호)){
|
if (this.isNull(휴대폰번호)) {
|
||||||
return {retVal:false,msg:'휴대폰번호 누락'};
|
return { retVal: false, msg: '휴대폰번호 누락' };
|
||||||
}
|
}
|
||||||
if(!this.isMobile(휴대폰번호)){
|
if (!this.isMobile(휴대폰번호)) {
|
||||||
if(!this.isMobile2(휴대폰번호)){
|
if (!this.isMobile2(휴대폰번호)) {
|
||||||
return {retVal:false,msg:'휴대폰번호 형식 오류'};
|
return { retVal: false, msg: '휴대폰번호 형식 오류' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!this.emailCheck(이메일)){
|
if (!this.emailCheck(이메일)) {
|
||||||
return {retVal:false,msg:'이메일 형식 오류'};
|
return { retVal: false, msg: '이메일 형식 오류' };
|
||||||
}
|
}
|
||||||
return {retVal:true,msg:'정상'};
|
return { retVal: true, msg: '정상' };
|
||||||
},
|
},
|
||||||
isTitle(pVal) {
|
isTitle(pVal) {
|
||||||
for (const o of pVal) {
|
for (const o of pVal) {
|
||||||
if (this.bytes(o.val) > o.len) {
|
if (this.bytes(o.val) > o.len) {
|
||||||
return {retVal:false,msg:`${o.name} 컬럼: 문자열 길이 오류(${o.len}자)`};
|
return { retVal: false, msg: `${o.name} 컬럼: 문자열 길이 오류(${o.len}자)` };
|
||||||
}
|
}
|
||||||
const strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$';
|
const strRegExp = '^[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]*$';
|
||||||
const regExp_g = new RegExp(strRegExp,'g');
|
const regExp_g = new RegExp(strRegExp, 'g');
|
||||||
if(!(regExp_g.test(o.val))){
|
if (!regExp_g.test(o.val)) {
|
||||||
return {retVal:false,msg:`${o.name} 컬럼: 특수 문자 오류`};
|
return { retVal: false, msg: `${o.name} 컬럼: 특수 문자 오류` };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {retVal:true,msg:'정상'};
|
return { retVal: true, msg: '정상' };
|
||||||
},
|
},
|
||||||
delFile(event){
|
delFile(event) {
|
||||||
console.log("del~~~~");
|
|
||||||
const file = event.target.files[0];
|
const file = event.target.files[0];
|
||||||
console.log(file.name);
|
console.log(file.name);
|
||||||
//this.$refs.file.reset();
|
//this.$refs.file.reset();
|
||||||
this.$refs.file.value=null;
|
this.$refs.file.value = null;
|
||||||
let element = document.getElementById("uploadFile");
|
let element = document.getElementById('uploadFile');
|
||||||
while (element.firstChild) {
|
while (element.firstChild) {
|
||||||
element.removeChild(element.firstChild);
|
element.removeChild(element.firstChild);
|
||||||
}
|
}
|
||||||
// uploadFile
|
// uploadFile
|
||||||
},
|
},
|
||||||
async saveExcel(){
|
async saveExcel() {
|
||||||
//
|
//
|
||||||
this.row.adminId = this.adminId;
|
this.row.adminId = this.adminId;
|
||||||
this.row.list = this.nData;
|
this.row.list = this.nData;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await custMgtApi.insertMassUser(this.row);
|
const response = await custMgtApi.insertMassUser(this.row);
|
||||||
|
//console.log(response);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
|
this.totalCnt = result.data.totalCnt;
|
||||||
|
this.successCnt = result.data.successCnt;
|
||||||
|
this.failCnt = result.data.failCnt;
|
||||||
|
|
||||||
// this.totalCnt = result.data.totalCnt;
|
if(result.data.failCnt > 0){
|
||||||
// this.successCnt = result.data.successCnt;
|
// 팝업으로 교체 예정
|
||||||
// this.failCnt = result.data.failCnt;
|
var resultMsg = '파일 업로드 중 오류가 발생하여 정상건만 업로드 완료하였습니다.\n\n 총 '+result.data.totalCnt+'건, 정상 '+ result.data.successCnt+'건, 오류 '+result.data.failCnt+'건\n\n오류건은 확인 후 재등록 부탁 드립니다.';
|
||||||
// this.toComplete();/
|
alert(resultMsg);
|
||||||
|
this.excelPopClose();
|
||||||
|
this.$parent.memberDetail(this.adminId);
|
||||||
|
}else{
|
||||||
|
this.toComplete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
this.row.title = '청약고객관리';
|
// 팝업으로 교체 예정
|
||||||
this.row.msg1 = '실패 하였습니다.';
|
var title ='청약고객 관리\n';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
var msg1 = '실패 하였습니다.';
|
||||||
|
alert(title + msg1);
|
||||||
|
|
||||||
|
// this.row.title = '청약고객관리';
|
||||||
|
// this.row.msg1 = '실패 하였습니다.';
|
||||||
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 오류건수.
|
// 오류건수.
|
||||||
console.log(this.oData.length);
|
console.log(this.oData.length);
|
||||||
},
|
},
|
||||||
|
},
|
||||||
}
|
};
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
|
||||||
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
|
||||||
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
|
||||||
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
|
||||||
</style>
|
|
||||||
@@ -3,59 +3,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="dimmed memberUpdate" @click="memberUpdateModalClose();"></div>
|
<div class="dimmed memberUpdate" @click="memberUpdateModalClose();"></div>
|
||||||
<div class="popup-wrap memberUpdate">
|
<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 modal32 popup_form memberUpdate">
|
<div class="popup modal32 popup_form memberUpdate">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
<h3 class="pop-tit">사용자 ID 수정</h3>
|
<h3 class="pop-tit">사용자 ID 수정</h3>
|
||||||
@@ -212,9 +159,9 @@ export default {
|
|||||||
console.log(result);
|
console.log(result);
|
||||||
this.row = {}
|
this.row = {}
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
this.row.title = '청약고객관리';
|
// this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '수정 완료하였습니다.';
|
// this.row.msg1 = '수정 완료하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.memberUpdateModalClose();
|
// this.memberUpdateModalClose();
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
|
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ export default {
|
|||||||
this.adminId = targetAdminId;
|
this.adminId = targetAdminId;
|
||||||
},
|
},
|
||||||
doValidate(){
|
doValidate(){
|
||||||
|
console.log(this.userTotalCnt)
|
||||||
if(this.userTotalCnt >= 100){
|
if(this.userTotalCnt >= 100){
|
||||||
// 사용자등록제한_최대100개까지
|
// 사용자등록제한_최대100개까지
|
||||||
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
|
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
<div class="popup memoTotal popup_form b-popup">
|
<div class="popup memoTotal popup_form b-popup">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
<h3 class="pop-tit">전체 메모보기</h3>
|
<h3 class="pop-tit">전체 메모보기</h3>
|
||||||
|
총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</span>건
|
||||||
</div>
|
</div>
|
||||||
<table class="table-c">
|
<table class="table-c">
|
||||||
<custom-grid
|
<custom-grid
|
||||||
@@ -79,13 +80,13 @@ export default {
|
|||||||
memorow: {},
|
memorow: {},
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
// 테이블 리스트 데이터
|
// 테이블 리스트 데이터
|
||||||
perPageCnt: 10,
|
perPageCnt: 5,
|
||||||
userId: '',
|
userId: '',
|
||||||
seqNo:'',
|
seqNo:'',
|
||||||
|
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/custMgt/allMemoList',
|
url: '/api/v1/bo/custMgt/allMemoList',
|
||||||
pagePerRows: 10,
|
pagePerRows: 5,
|
||||||
pagination: true,
|
pagination: true,
|
||||||
isCheckbox: false, // true:첫번째 컬럼 앞에 체크박스 생성 / false:체크박스 제거
|
isCheckbox: false, // true:첫번째 컬럼 앞에 체크박스 생성 / false:체크박스 제거
|
||||||
initialRequest: false,
|
initialRequest: false,
|
||||||
@@ -119,22 +120,40 @@ export default {
|
|||||||
created(){
|
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() {
|
mounted() {
|
||||||
let pageMemo = 1;
|
// 달력 세팅
|
||||||
|
|
||||||
|
let page = 1;
|
||||||
// 페이지 정보 및 검색 조건
|
// 페이지 정보 및 검색 조건
|
||||||
const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
console.log('getCondition_memo : '+getCondition_memo);
|
console.log('getCondition : '+getCondition);
|
||||||
|
|
||||||
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
||||||
let isKeepMemo = false;
|
let isKeep = false;
|
||||||
if (getCondition_memo) {
|
if (getCondition) {
|
||||||
this.grid.pagePerRows = getCondition_memo.perPage;
|
this.grid.pagePerRows = getCondition.perPage;
|
||||||
this.grid.params = getCondition_memo.params;
|
this.grid.params = getCondition.params;
|
||||||
pageMemo = getCondition_memo.page;
|
page = getCondition.page;
|
||||||
isKeepMemo = true;
|
isKeep = true;
|
||||||
}
|
}
|
||||||
|
this.search(isKeep);
|
||||||
// this.search(isKeep);
|
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
search: function(isKeep) {
|
search: function(isKeep) {
|
||||||
@@ -148,9 +167,7 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP_memo._currentPage,
|
page: getP_memo._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: {
|
params: this.grid.params
|
||||||
userId : this.userId,
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition_memo = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
@@ -169,11 +186,10 @@ export default {
|
|||||||
dimmed[i].style.display = 'block';
|
dimmed[i].style.display = 'block';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 리스트 그리드 오픈
|
|
||||||
let page = 1;
|
let page = 1;
|
||||||
// 페이지 정보 및 검색 조건
|
// 페이지 정보 및 검색 조건
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
console.log('getCondition : '+getCondition);
|
console.log('momo getCondition : '+getCondition);
|
||||||
|
|
||||||
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
// store에 저장된 페이지 정보 및 검색 조건을 불러오기
|
||||||
let isKeep = false;
|
let isKeep = false;
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 사용자 등록 - 최대 등록 제한 -->
|
<!-- 사용자 등록 - 최대 등록 제한 -->
|
||||||
<div class="dimmed valication-maxlimit" @click="validationMaxlimitClose();"></div>
|
<div class="dimmed validation-maxlimit" @click="validationMaxlimitClose();"></div>
|
||||||
<div class="popup-wrap validation-maxlimit">
|
<div class="popup-wrap validation-maxlimit">
|
||||||
<div class="popup validation-maxlimit">
|
<div class="popup validation-maxlimit">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<div class="pop-cont">
|
<div class="pop-cont">
|
||||||
<p>사용자는 최대 100개까지 등록 가능합니다.</p>
|
<p>사용자는 최대 100개까지 등록 가능합니다.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="pop-btn1">
|
<div class="popup-btn1">
|
||||||
<button class="btn-pcolor" @click="validationMaxlimitClose();">확인</button>
|
<button class="btn-pcolor" @click="validationMaxlimitClose();">확인</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
<div class="pop-cont">
|
<div class="pop-cont">
|
||||||
<p>변경된 내용을 저장하시겠습니까?</p>
|
<p>변경된 내용을 저장하시겠습니까?</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="pop-btn2">
|
<div class="popup-btn2">
|
||||||
<button class="btn-pcolor" @click="confirmUpdateSub();">확인</button>
|
<button class="btn-pcolor" @click="confirmUpdateSub();">확인</button>
|
||||||
<button class="btn-default" @click="confirmUpdateSubClose();">취소</button>
|
<button class="btn-default" @click="confirmUpdateSubClose();">취소</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -327,11 +327,11 @@ export default {
|
|||||||
},
|
},
|
||||||
// 최대 등록 제한 Open
|
// 최대 등록 제한 Open
|
||||||
validationMaxlimitOpen(){
|
validationMaxlimitOpen(){
|
||||||
|
console.log("1231232323")
|
||||||
var dimmed = document.getElementsByClassName('validation-maxlimit');
|
var dimmed = document.getElementsByClassName('validation-maxlimit');
|
||||||
for(var i = 0; i < dimmed.length; i++){
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
dimmed[i].style.display = 'block';
|
dimmed[i].style.display = 'block';
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// 최대 등록 제한 Close
|
// 최대 등록 제한 Close
|
||||||
validationMaxlimitClose(){
|
validationMaxlimitClose(){
|
||||||
@@ -340,7 +340,7 @@ export default {
|
|||||||
dimmed[i].style.display = 'none';
|
dimmed[i].style.display = 'none';
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$parent.toComplete();
|
// this.$parent.toComplete();
|
||||||
|
|
||||||
},
|
},
|
||||||
// 휴대폰번호 형식 체크 Open
|
// 휴대폰번호 형식 체크 Open
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<div class="count">사용자ID 정보
|
<div class="count">사용자ID 정보
|
||||||
<p>( 최대 100개까지 등록 가능 )</p>
|
<p>( 최대 100개까지 등록 가능 )</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group" v-show="isActive">
|
||||||
<button type="button" class="button blue add" @click="memberInsertPopOpen();">사용자 ID 생성</button>
|
<button type="button" class="button blue add" @click="memberInsertPopOpen();">사용자 ID 생성</button>
|
||||||
<button type="button" class="button blue add" @click="excelPopOpen();">사용자 ID 대량생성</button>
|
<button type="button" class="button blue add" @click="excelPopOpen();">사용자 ID 대량생성</button>
|
||||||
<button type="button" class="button white del" @click="deleteMember();">삭제</button>
|
<button type="button" class="button white del" @click="deleteMember();">삭제</button>
|
||||||
@@ -135,7 +135,8 @@
|
|||||||
<input type="checkbox" id="user_id_status01" name="user_id_status" v-model="option.userStat" true-value='정상' false-value='사용중지' disabled/>
|
<input type="checkbox" id="user_id_status01" name="user_id_status" v-model="option.userStat" true-value='정상' false-value='사용중지' disabled/>
|
||||||
<label class="toggle_switch" for="user_id_status01"></label>
|
<label class="toggle_switch" for="user_id_status01"></label>
|
||||||
</td>
|
</td>
|
||||||
<td><button type="button" class="button white btn-a" @click="memberUpdatePopOpen(option.userId);">수정</button></td>
|
<td v-if="isActive"><button type="button" class="button white btn-a" @click="memberUpdatePopOpen(option.userId);">수정</button></td>
|
||||||
|
<td v-else></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="list.length === 0">
|
<tr v-if="list.length === 0">
|
||||||
<td colspan="7">등록된 사용자 정보가 없습니다.</td>
|
<td colspan="7">등록된 사용자 정보가 없습니다.</td>
|
||||||
@@ -155,7 +156,7 @@
|
|||||||
<member-modify-pop ref="memberModifyPop"> </member-modify-pop>
|
<member-modify-pop ref="memberModifyPop"> </member-modify-pop>
|
||||||
<memo-total-pop ref="memoTatalListPop"> </memo-total-pop>
|
<memo-total-pop ref="memoTatalListPop"> </memo-total-pop>
|
||||||
<common-modal ref="commmonModal"></common-modal>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
<validation-confirm-pop ref="validationConfirmPopModal"> </validation-confirm-pop>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -167,6 +168,7 @@ import MemberRegPop from '../components/MemberRegPop';
|
|||||||
import MemberModifyPop from '../components/MemberModifyPop';
|
import MemberModifyPop from '../components/MemberModifyPop';
|
||||||
import MemoTotalPop from '../components/MemoTotalPop';
|
import MemoTotalPop from '../components/MemoTotalPop';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from "@/components/modal/commonModal";
|
||||||
|
import ValidationConfirmPop from "@/modules/custMgt/components/ValidationConfirmPop";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'memberAdminDetail',
|
name: 'memberAdminDetail',
|
||||||
@@ -197,7 +199,8 @@ export default {
|
|||||||
userTotalCnt:0,
|
userTotalCnt:0,
|
||||||
selected: [],
|
selected: [],
|
||||||
svcUserId:'',
|
svcUserId:'',
|
||||||
ezSvcUserAuthKey:''
|
ezSvcUserAuthKey:'',
|
||||||
|
isActive:true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
@@ -212,6 +215,7 @@ export default {
|
|||||||
MemberModifyPop,
|
MemberModifyPop,
|
||||||
MemoTotalPop,
|
MemoTotalPop,
|
||||||
commonModal,
|
commonModal,
|
||||||
|
ValidationConfirmPop,
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.memberDetail(this.$route.params.serviceId);
|
this.memberDetail(this.$route.params.serviceId);
|
||||||
@@ -273,6 +277,9 @@ export default {
|
|||||||
this.sendingLimit = result.data.sendingLimit.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
this.sendingLimit = result.data.sendingLimit.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||||
this.lineType = result.data.lineType;
|
this.lineType = result.data.lineType;
|
||||||
this.userStat = result.data.userStat;
|
this.userStat = result.data.userStat;
|
||||||
|
if(this.userStat === '02'){
|
||||||
|
this.isActive = false;
|
||||||
|
}
|
||||||
this.lastLoginDt = result.data.lastLoginDt;
|
this.lastLoginDt = result.data.lastLoginDt;
|
||||||
this.memo = result.data.memo;
|
this.memo = result.data.memo;
|
||||||
this.mdn = result.data.mdn;
|
this.mdn = result.data.mdn;
|
||||||
@@ -291,7 +298,7 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
async updateAdminInfoTotal(){
|
async updateAdminInfoTotal(){
|
||||||
|
this.row = {}
|
||||||
this.row.userId = this.adminId;
|
this.row.userId = this.adminId;
|
||||||
this.row.sendingLimit = this.sendingLimit;
|
this.row.sendingLimit = this.sendingLimit;
|
||||||
this.row.lineType = this.lineType;
|
this.row.lineType = this.lineType;
|
||||||
@@ -302,13 +309,14 @@ export default {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await custMgtApi.updateAdminInfoTotal(this.row);
|
const response = await custMgtApi.updateAdminInfoTotal(this.row);
|
||||||
|
console.log(response)
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
|
|
||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '저장 하였습니다.';
|
this.row.msg1 = '저장 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
this.memberDetail(this.row.userId);
|
||||||
}else if(result != null && result.retCode == "4019"){
|
}else if(result != null && result.retCode == "4019"){
|
||||||
this.row.title = '청약고객관리';
|
this.row.title = '청약고객관리';
|
||||||
this.row.msg1 = '발송한도금액이 정액한도금액보다 작습니다.';
|
this.row.msg1 = '발송한도금액이 정액한도금액보다 작습니다.';
|
||||||
@@ -331,6 +339,12 @@ export default {
|
|||||||
this.$router.push({ name: 'memberList', params: this.row });
|
this.$router.push({ name: 'memberList', params: this.row });
|
||||||
},
|
},
|
||||||
excelPopOpen() {
|
excelPopOpen() {
|
||||||
|
console.log("memberInsertPopOpen >> " + this.userTotalCnt)
|
||||||
|
if(this.userTotalCnt >= 100){
|
||||||
|
// 사용자등록제한_최대100개까지
|
||||||
|
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
console.log(this.adminId);
|
console.log(this.adminId);
|
||||||
this.$refs.memberBulkRegPop.excelPopOpen(this.adminId, this.totalItems);
|
this.$refs.memberBulkRegPop.excelPopOpen(this.adminId, this.totalItems);
|
||||||
},
|
},
|
||||||
@@ -340,6 +354,12 @@ export default {
|
|||||||
this.$refs.memberModifyPop.memberUpdateModalOpen(this.row);
|
this.$refs.memberModifyPop.memberUpdateModalOpen(this.row);
|
||||||
},
|
},
|
||||||
memberInsertPopOpen() {
|
memberInsertPopOpen() {
|
||||||
|
console.log("memberInsertPopOpen >> " + this.userTotalCnt)
|
||||||
|
if(this.userTotalCnt >= 100){
|
||||||
|
// 사용자등록제한_최대100개까지
|
||||||
|
this.$refs.validationConfirmPopModal.validationMaxlimitOpen();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
this.row.adminId = this.adminId;
|
this.row.adminId = this.adminId;
|
||||||
this.row.userTotalCnt = this.userTotalCnt;
|
this.row.userTotalCnt = this.userTotalCnt;
|
||||||
this.$refs.memberRegPop.memberInsertModalOpen(this.row);
|
this.$refs.memberRegPop.memberInsertModalOpen(this.row);
|
||||||
|
|||||||
@@ -125,26 +125,21 @@ export default {
|
|||||||
const rsp = response.data;
|
const rsp = response.data;
|
||||||
console.log("RESULT_CODE : "+rsp.retCode);
|
console.log("RESULT_CODE : "+rsp.retCode);
|
||||||
if(rsp.retCode == '0000') {
|
if(rsp.retCode == '0000') {
|
||||||
// vm.chgChkUserId();
|
|
||||||
this.row.title = '비밀번호 변경';
|
this.row.title = '비밀번호 변경';
|
||||||
this.row.msg1 = '비밀번호가 정상적으로 변경되었습니다.';
|
this.row.msg1 = '비밀번호가 정상적으로 변경되었습니다.';
|
||||||
this.row.msg2 = '변경된 비밀번호로 다시 로그인 해주세요.';
|
this.row.msg2 = '변경된 비밀번호로 다시 로그인 해주세요.';
|
||||||
|
this.callFnc = 'login'
|
||||||
this.$refs.commonModal.alertModalOpen(this.row);
|
this.$refs.commonModal.alertModalOpen(this.row);
|
||||||
// if(vm.ModalOpen('modal16')){
|
|
||||||
|
|
||||||
// }
|
|
||||||
} else if(rsp.retCode == '4016') {
|
} else if(rsp.retCode == '4016') {
|
||||||
this.row.title = '비밀번호 변경';
|
this.row.title = '비밀번호 변경';
|
||||||
this.row.msg1 = '비밀번호를 확인해주세요.';
|
this.row.msg1 = '비밀번호를 확인해주세요.';
|
||||||
this.$refs.commonModal.alertModalOpen(this.row);
|
this.$refs.commonModal.alertModalOpen(this.row);
|
||||||
// vm.ModalOpen('modal14')
|
|
||||||
} else if(rsp.retCode == '4017') {
|
} else if(rsp.retCode == '4017') {
|
||||||
this.row.title = '비밀번호 오류';
|
this.row.title = '비밀번호 오류';
|
||||||
this.row.msg1 = '비밀번호를 사용할 수 없습니다.';
|
this.row.msg1 = '비밀번호를 사용할 수 없습니다.';
|
||||||
this.row.msg2 = '비밀번호는 영문/숫자/특수기호를 혼합하여';
|
this.row.msg2 = '비밀번호는 영문/숫자/특수기호를 혼합하여';
|
||||||
this.row.msg3 = '8~16자리로 설정해주세요.';
|
this.row.msg3 = '8~16자리로 설정해주세요.';
|
||||||
this.$refs.commonModal.alertModalOpen(this.row);
|
this.$refs.commonModal.alertModalOpen(this.row);
|
||||||
// vm.ModalOpen('modal15')
|
|
||||||
} else if(rsp.retCode == '4003') {
|
} else if(rsp.retCode == '4003') {
|
||||||
this.row.title = '아이디 오류';
|
this.row.title = '아이디 오류';
|
||||||
this.row.msg1 = '등록되지 않은 아이디입니다.';
|
this.row.msg1 = '등록되지 않은 아이디입니다.';
|
||||||
@@ -159,39 +154,6 @@ export default {
|
|||||||
this.$refs.commonModal.alertModalOpen(this.row);
|
this.$refs.commonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// api.updatePassword(params).then(function(response) {
|
|
||||||
// var rsp = response.data;
|
|
||||||
// // var pofo = document.getElementById('oldPw');
|
|
||||||
//
|
|
||||||
// if(rsp.retCode == '0000') {
|
|
||||||
// // vm.chgChkUserId();
|
|
||||||
// this.row.title = '비밀번호 변경';
|
|
||||||
// this.row.msg1 = '비밀번호가 정상적으로 변경되었습니다.';
|
|
||||||
// this.row.msg2 = '변경된 비밀번호로 다시 로그인 해주세요.';
|
|
||||||
// this.$refs.commonModal.alertModalOpen(this.row);
|
|
||||||
// // if(vm.ModalOpen('modal16')){
|
|
||||||
// vm.$router.push({ path: '/login' });
|
|
||||||
// // }
|
|
||||||
// } else if(rsp.retCode == '4016') {
|
|
||||||
// this.row.title = '비밀번호 변경';
|
|
||||||
// this.row.msg1 = '비밀번호를 확인해주세요.';
|
|
||||||
// this.$refs.commonModal.alertModalOpen(this.row);
|
|
||||||
// // vm.ModalOpen('modal14')
|
|
||||||
// } else if(rsp.retCode == '4017') {
|
|
||||||
// this.row.title = '비밀번호 오류';
|
|
||||||
// this.row.msg1 = '비밀번호를 사용할 수 없습니다.';
|
|
||||||
// this.row.msg2 = '비밀번호는 영문/숫자/특수기호를 혼합하여';
|
|
||||||
// this.row.msg3 = '8~16자리로 설정해주세요.';
|
|
||||||
// this.$refs.commonModal.alertModalOpen(this.row);
|
|
||||||
// // vm.ModalOpen('modal15')
|
|
||||||
// } else if(rsp.retCode == '4003') {
|
|
||||||
// this.row.title = '아이디 오류';
|
|
||||||
// this.row.msg1 = '등록되지 않은 아이디입니다.';
|
|
||||||
// this.row.msg1 = '아이디를 다시 확인하세요';
|
|
||||||
// this.$refs.commonModal.alertModalOpen(this.row);
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -213,7 +175,11 @@ export default {
|
|||||||
this.$refs.LoginPopup.ModalOpen(target);
|
this.$refs.LoginPopup.ModalOpen(target);
|
||||||
this.$refs.oldPw.focus(target);
|
this.$refs.oldPw.focus(target);
|
||||||
},
|
},
|
||||||
|
alertCalbackFnc(callFnc){
|
||||||
|
if(callFnc === 'login'){
|
||||||
|
this.$router.push({ name: 'login',params: {}});
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<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">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="" v-model="perPageCnt" @change="changePerPage()">
|
<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>
|
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{ option.text }}</option>
|
||||||
|
|||||||
@@ -120,6 +120,9 @@ export default {
|
|||||||
props: ['sendData'],
|
props: ['sendData'],
|
||||||
created(){
|
created(){
|
||||||
// this.formReset();
|
// this.formReset();
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
// 모달 띄우기
|
// 모달 띄우기
|
||||||
@@ -142,6 +145,7 @@ export default {
|
|||||||
console.log(props)
|
console.log(props)
|
||||||
this.row.regReqNo = props.regReqNo
|
this.row.regReqNo = props.regReqNo
|
||||||
this.row.sndrno = props.sndrno
|
this.row.sndrno = props.sndrno
|
||||||
|
this.row.seqNo = props.seqNo
|
||||||
const response = await sendNumMgtApi.numberDetail(this.row);
|
const response = await sendNumMgtApi.numberDetail(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
console.log(result);
|
console.log(result);
|
||||||
@@ -177,6 +181,8 @@ export default {
|
|||||||
var popup = document.getElementsByClassName('modal53');
|
var popup = document.getElementsByClassName('modal53');
|
||||||
popup[0].style.display = 'none';
|
popup[0].style.display = 'none';
|
||||||
|
|
||||||
|
this.formReset();
|
||||||
|
|
||||||
},
|
},
|
||||||
formReset(){
|
formReset(){
|
||||||
Object.assign(this.$data, this.$options.data());
|
Object.assign(this.$data, this.$options.data());
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<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">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="" v-model="perPageCnt" @keyup.enter="search">
|
<select name="" id="" v-model="perPageCnt" @keyup.enter="search">
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<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">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="perPage" v-model="perPageCnt" @keyup.enter="search">
|
<select name="" id="perPage" v-model="perPageCnt" @keyup.enter="search">
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue add" @click="numberRegPopOpen();">등록</button>
|
<button type="button" class="button blue add" @click="numberRegPopOpen();">등록</button>
|
||||||
<button type="button" class="button white del" @click="numberDelete">삭제</button>
|
<button type="button" class="button white del" @click="deleteNumber()">삭제</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
@@ -272,27 +272,31 @@ export default {
|
|||||||
commonModalOpen(row){
|
commonModalOpen(row){
|
||||||
this.$refs.commmonModal.alertModalOpen(row);
|
this.$refs.commmonModal.alertModalOpen(row);
|
||||||
},
|
},
|
||||||
|
deleteNumber(){
|
||||||
|
if(this.doValidate()){
|
||||||
|
this.row.title ='문자발신번호 관리';
|
||||||
|
this.row.msg1 ='삭제 하시겠습니까?'
|
||||||
|
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
||||||
|
}
|
||||||
|
},
|
||||||
async numberDelete(){
|
async numberDelete(){
|
||||||
if(this.doValidate() && window.confirm('삭제 하시겠습니까?')){
|
|
||||||
try {
|
try {
|
||||||
let response = await sendNumMgtApi.deleteNumber(this.row);
|
let response = await sendNumMgtApi.deleteNumber(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
this.row.title = '문자발신번호 관리';
|
|
||||||
this.row.msg1 = '삭제 하였습니다.';
|
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
|
||||||
this.$refs.table.reloadData();
|
this.$refs.table.reloadData();
|
||||||
return;
|
return;
|
||||||
}
|
} else {
|
||||||
this.row.title = '문자발신번호 관리';
|
this.row.title = '문자발신번호 관리';
|
||||||
this.row.msg1 = '실패 하였습니다.';
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
this.row.title = '문자발신번호 관리';
|
this.row.title = '문자발신번호 관리';
|
||||||
this.row.msg1 = '실패 하였습니다.';
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
doValidate(){ //로우데이터 삭제하도록 수정
|
doValidate(){ //로우데이터 삭제하도록 수정
|
||||||
|
|
||||||
@@ -310,15 +314,19 @@ export default {
|
|||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// for(var i = 0; i < chkList.length; i++){
|
//const param = chkList.map((row)=>({regReqNo:row.regReqNo} ));
|
||||||
// alert(chkList[i].adminId);
|
const param = chkList.map((row)=>({seqNo:row.seqNo} ));
|
||||||
// }
|
|
||||||
const param = chkList.map((row)=>({regReqNo:row.regReqNo} ));
|
|
||||||
console.log(param)
|
console.log(param)
|
||||||
this.row.list = param;
|
this.row.list = param;
|
||||||
console.log(this.row);
|
console.log(this.row);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
confirmCalbackFnc(props){
|
||||||
|
console.log(props)
|
||||||
|
if(props.result){
|
||||||
|
this.numberDelete();
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
// beforeRouteLeave(to, from, next) {
|
// beforeRouteLeave(to, from, next) {
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<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">
|
<div class="select_box NumberSe">
|
||||||
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
|
<select name="" id="perpage" v-model="grid.pagePerRows" @keyup.enter="search">
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
@@ -142,7 +142,7 @@ export default {
|
|||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: 1,
|
page: 1,
|
||||||
perPage: 20,
|
perPage: 50,
|
||||||
params: {
|
params: {
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
searchType2: '',
|
searchType2: '',
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ export default {
|
|||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
this.setPeriodDay(0);
|
this.setPeriodDay(0);
|
||||||
|
this.getExcelHeader();
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.grid.params.custNm='';
|
this.grid.params.custNm='';
|
||||||
@@ -406,7 +406,7 @@ export default {
|
|||||||
},
|
},
|
||||||
getExcelHeader() {
|
getExcelHeader() {
|
||||||
// 헤더를 mockup으로 관리한다.
|
// 헤더를 mockup으로 관리한다.
|
||||||
custMgtApi.getExcelHeader(this.pageType).then(res => {
|
statsApi.getExcelHeader(this.pageType).then(res => {
|
||||||
this.excelHeader = res;
|
this.excelHeader = res;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -380,7 +380,7 @@ export default {
|
|||||||
},
|
},
|
||||||
getExcelHeader() {
|
getExcelHeader() {
|
||||||
// 헤더를 mockup으로 관리한다.
|
// 헤더를 mockup으로 관리한다.
|
||||||
custMgtApi.getExcelHeader(this.pageType).then(res => {
|
statsApi.getExcelHeader(this.pageType).then(res => {
|
||||||
this.excelHeader = res;
|
this.excelHeader = res;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ export default {
|
|||||||
row: {},
|
row: {},
|
||||||
list:[],
|
list:[],
|
||||||
totalCnt: '',
|
totalCnt: '',
|
||||||
|
pageType:'MONTH'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -153,6 +154,7 @@ export default {
|
|||||||
created(){
|
created(){
|
||||||
this.setPeriodDay(0);
|
this.setPeriodDay(0);
|
||||||
this.getMonthList();
|
this.getMonthList();
|
||||||
|
this.getExcelHeader();
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
},
|
},
|
||||||
@@ -264,6 +266,7 @@ export default {
|
|||||||
header: this.excelHeader,
|
header: this.excelHeader,
|
||||||
dataOrder: 'header'
|
dataOrder: 'header'
|
||||||
};
|
};
|
||||||
|
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
xlsx.export(this.list, saveFileName, options).then(() => {});
|
xlsx.export(this.list, saveFileName, options).then(() => {});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
<!-- 관리자/유치채널 상세정보 -->
|
<!-- 관리자/유치채널 상세정보 -->
|
||||||
<div class="popup modal21 popup_form">
|
<div class="popup modal21 popup_form">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
<h3 class="pop-tit" v-if="code === null || code === ''">관리자 상세정보</h3>
|
<h3 class="pop-tit">관리자 상세정보</h3>
|
||||||
<h3 class="pop-tit" v-else>유치채널 상세정보</h3>
|
|
||||||
</div>
|
</div>
|
||||||
|
<form autocomplete="off">
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>권한</th>
|
<th>권한</th>
|
||||||
<td v-if="code === null || code === ''">
|
<td v-if="auth === '1001'">
|
||||||
<div v:class="select_box">
|
<div v:class="select_box">
|
||||||
<select name="" id="right" v-model="auth" ref="_auth">
|
<select name="" id="right" v-model="auth" ref="_auth">
|
||||||
<option value="">선택</option>
|
<option value="">선택</option>
|
||||||
@@ -64,13 +64,15 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="pop-btn2">
|
</form>
|
||||||
<button class="btn-default" @click="adminDetailModalClose();">취소</button>
|
<div class="popup-btn2">
|
||||||
<button class="btn-pcolor" @click="doInsert">저장</button>
|
<button class="btn-pcolor" @click="doInsert">저장</button>
|
||||||
|
<button class="btn-default" @click="adminDetailModalClose();">취소</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 관리자 상세정보 팝업 끝-->
|
<!-- 관리자 상세정보 팝업 끝-->
|
||||||
</div>
|
</div>
|
||||||
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -80,6 +82,8 @@ import api from '@/service/api';
|
|||||||
import sysMgtApi from "../service/sysMgtApi.js";
|
import sysMgtApi from "../service/sysMgtApi.js";
|
||||||
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
import { utils_mixin, chkPattern2 } from '../service/mixins';
|
||||||
import lodash from "lodash";
|
import lodash from "lodash";
|
||||||
|
import commonModal from "../components/commonModal";
|
||||||
|
import SearchIdPopup from "@/modules/sysMgt/components/SearchIdPopup";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "adminDetailPop",
|
name: "adminDetailPop",
|
||||||
@@ -115,22 +119,34 @@ export default {
|
|||||||
//this.formReset();
|
//this.formReset();
|
||||||
this.setAuthData();
|
this.setAuthData();
|
||||||
this.formReset();
|
this.formReset();
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
commonModal,
|
||||||
},
|
},
|
||||||
methods :{
|
methods :{
|
||||||
doPwdValidate(){
|
doPwdValidate(){
|
||||||
if(this.isNull(this.userPwd2)){
|
if(this.isNull(this.userPwd2)){
|
||||||
alert("비밀번호 확인을 입력해 주세요.");
|
// alert("비밀번호 확인을 입력해 주세요.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호를 입력해 주세요.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
if(!lodash.isEqual(this.userPwd1, this.userPwd2)){
|
||||||
alert("비밀번호가 일치하지 않습니다.");
|
// alert("비밀번호가 일치하지 않습니다.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호가 일치하지 않습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd2.focus();
|
this.$refs._pwd2.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pwdLen = this.bytes(this.userPwd1);
|
const pwdLen = this.bytes(this.userPwd1);
|
||||||
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
if(!(pwdLen >= 8 && pwdLen <= 16)){
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
// alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -138,9 +154,12 @@ export default {
|
|||||||
const pNum = /[0-9]/g; // 숫자
|
const pNum = /[0-9]/g; // 숫자
|
||||||
const pSpc = /[!@$%^&*]/g; // 특수문자
|
const pSpc = /[!@$%^&*]/g; // 특수문자
|
||||||
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
if(!(pEng.test(this.userPwd1) && pNum.test(this.userPwd1) && pSpc.test(this.userPwd1))) {
|
||||||
alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
// alert("비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '비밀번호는 8~16자의 영문, 숫자, 특수문자(!,@, $, %, ^, &, *) 조합이 필요합니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
this.row.adminPw=this.userPwd1;
|
this.row.adminPw=this.userPwd1;
|
||||||
return true;
|
return true;
|
||||||
@@ -166,6 +185,8 @@ export default {
|
|||||||
},
|
},
|
||||||
// 모달 띄우기
|
// 모달 띄우기
|
||||||
async adminDetailModalOpen(props){
|
async adminDetailModalOpen(props){
|
||||||
|
this.formReset();
|
||||||
|
this.setAuthData();
|
||||||
this.row.adminId = props.adminId;
|
this.row.adminId = props.adminId;
|
||||||
try {
|
try {
|
||||||
const response = await sysMgtApi.adminDetail(this.row);
|
const response = await sysMgtApi.adminDetail(this.row);
|
||||||
@@ -180,7 +201,10 @@ export default {
|
|||||||
this.stat = result.data.stat;
|
this.stat = result.data.stat;
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
// alert("실패 하였습니다.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
var dimmed = document.getElementsByClassName('modal21');
|
var dimmed = document.getElementsByClassName('modal21');
|
||||||
for(var i = 0; i < dimmed.length; i++){
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
@@ -205,11 +229,14 @@ export default {
|
|||||||
const response = await sysMgtApi.updateAdmin(this.row);
|
const response = await sysMgtApi.updateAdmin(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == "0000") {
|
||||||
alert('저장 하였습니다.');
|
// alert('저장 하였습니다.');
|
||||||
this.toComplete();
|
this.toComplete();
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
alert("실패 하였습니다.");
|
alert("실패 하였습니다.");
|
||||||
|
this.row.title = '관리자/유치채널 관리';
|
||||||
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -227,8 +254,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
|
||||||
.popup-btn-wrap {width: 500px; margin: auto; padding: 100px 0;}
|
|
||||||
.popup-btn-wrap button {width: 100%; margin-bottom: 10px; height: 50px; border-radius: 5px; box-shadow: none; border: 1px solid #000; }
|
|
||||||
.popup-btn-wrap button:hover {background: #000; color: #fff;}
|
|
||||||
</style>
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- <div class="wrap bg-wrap"> -->
|
<!-- <div class="wrap bg-wrap"> -->
|
||||||
<div>
|
<div>
|
||||||
<div class="dimmed" @click="ModalClose();"></div>
|
<div class="dimmed modal20" @click="ModalClose();"></div>
|
||||||
<div class="popup-wrap">
|
<div class="popup-wrap modal20">
|
||||||
<!-- 관리자/유치채널 등록 -->
|
<!-- 관리자/유치채널 등록 -->
|
||||||
<div class="popup modal20 popup_form">
|
<div class="popup modal20 popup_form">
|
||||||
<div class="pop-head">
|
<div class="pop-head">
|
||||||
@@ -254,9 +254,10 @@ export default {
|
|||||||
async searchMadangId(){
|
async searchMadangId(){
|
||||||
|
|
||||||
if(!this.madangId){
|
if(!this.madangId){
|
||||||
this.row.title = '관리자/유치채널 관리';
|
// this.row.title = '관리자/유치채널 관리';
|
||||||
this.row.msg1 = '마당ID를 입력해주세요.';
|
// this.row.msg1 = '마당ID를 입력해주세요.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
|
// this.$refs.searchIdPopModal.searchIdModalOpen();
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -281,32 +282,32 @@ export default {
|
|||||||
|
|
||||||
this.idCheck = true;
|
this.idCheck = true;
|
||||||
this.$refs._pwd1.focus();
|
this.$refs._pwd1.focus();
|
||||||
|
return false;
|
||||||
}else if(result.retCode == '1004'){
|
}else if(result.retCode == '1004'){
|
||||||
//alert('마당ID 정보가 없습니다.');
|
//alert('마당ID 정보가 없습니다.');
|
||||||
this.row.title = '관리자/유치채널 관리';
|
// this.row.title = '관리자/유치채널 관리';
|
||||||
this.row.msg1 = '마당ID 정보가 없습니다.';
|
// this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.searchIdFailPop();
|
this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}else {
|
}else {
|
||||||
//alert('마당ID 조회에 실패하였습니다.');
|
//alert('마당ID 조회에 실패하였습니다.');
|
||||||
this.row.title = '관리자/유치채널 관리';
|
// this.row.title = '관리자/유치채널 관리';
|
||||||
this.row.msg1 = '마당ID 정보가 없습니다.';
|
// this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.searchIdFailPop();
|
this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
//alert("실패 하였습니다.");
|
//alert("실패 하였습니다.");
|
||||||
this.row.title = '관리자/유치채널 관리';
|
// this.row.title = '관리자/유치채널 관리';
|
||||||
this.row.msg1 = '마당ID 정보가 없습니다.';
|
// this.row.msg1 = '마당ID 정보가 없습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
// this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
// this.searchIdFailPop();
|
this.searchIdFailPop();
|
||||||
this.idCheck = false;
|
this.idCheck = false;
|
||||||
this.$refs.madangId.focus();
|
this.$refs.madangId.focus();
|
||||||
return false;
|
return false;
|
||||||
@@ -337,22 +338,18 @@ export default {
|
|||||||
ModalOpen(insertType){
|
ModalOpen(insertType){
|
||||||
this.formReset();
|
this.formReset();
|
||||||
this.insertType=insertType;
|
this.insertType=insertType;
|
||||||
var dimmed = document.getElementsByClassName('dimmed');
|
var dimmed = document.getElementsByClassName('modal20');
|
||||||
dimmed[0].style.display = 'block';
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
var wrap = document.getElementsByClassName('popup-wrap');
|
dimmed[i].style.display = 'block';
|
||||||
wrap[0].style.display = 'block';
|
}
|
||||||
var obj = document.getElementsByClassName('modal20');
|
|
||||||
obj[0].style.display = 'block';
|
|
||||||
this.setAuthData();
|
this.setAuthData();
|
||||||
},
|
},
|
||||||
// 모달 끄기
|
// 모달 끄기
|
||||||
ModalClose(){
|
ModalClose(){
|
||||||
var dimmed = document.getElementsByClassName('dimmed');
|
var dimmed = document.getElementsByClassName('modal20');
|
||||||
dimmed[0].style.display = 'none';
|
for(var i = 0; i < dimmed.length; i++){
|
||||||
var wrap = document.getElementsByClassName('popup-wrap');
|
dimmed[i].style.display = 'none';
|
||||||
wrap[0].style.display = 'none';
|
}
|
||||||
var popup = document.getElementsByClassName('modal20');
|
|
||||||
popup[0].style.display = 'none';
|
|
||||||
|
|
||||||
},
|
},
|
||||||
// 저장 후 부모창 호출.
|
// 저장 후 부모창 호출.
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
<h3 class="pop-tit">ID 조회</h3>
|
<h3 class="pop-tit">ID 조회</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="pop-cont">
|
<div class="pop-cont">
|
||||||
<p>입력하신 마당ID를 조회할 수 없습니다</p>
|
<p>입력하신 마당ID를 조회할 수 없습니다.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="pop-btn1">
|
<div class="popup-btn1">
|
||||||
<button class="btn-pcolor" @click="searchIdFailModalClose();">확인</button>
|
<button class="btn-pcolor" @click="searchIdFailModalClose();">확인</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalItems }}</span>건</div>
|
<div class="count">총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</span>건</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue admin add" @click="adminRegPopOpen();">관리자 등록</button>
|
<button type="button" class="button blue admin add" @click="adminRegPopOpen();">관리자 등록</button>
|
||||||
<button type="button" class="button blue channel add" @click="adminReg2PopOpen();">유치채널 등록</button>
|
<button type="button" class="button blue channel add" @click="adminReg2PopOpen();">유치채널 등록</button>
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public interface CustMgtMapper {
|
|||||||
int selectMemberDetailListTotalCnt(MemberAdminDetailReqDto memberDetailListReqDto);
|
int selectMemberDetailListTotalCnt(MemberAdminDetailReqDto memberDetailListReqDto);
|
||||||
/** 사용자 아이디 목록 조회.*/
|
/** 사용자 아이디 목록 조회.*/
|
||||||
List<MemberDetail> selectMemberDetailList(MemberAdminDetailReqDto memberDetailListReqDto);
|
List<MemberDetail> selectMemberDetailList(MemberAdminDetailReqDto memberDetailListReqDto);
|
||||||
|
|
||||||
|
int selectMemoListTotalCnt(AllMemoListReqDto allMemoListReqDto);
|
||||||
/** 사용자 메모 목록 조회.*/
|
/** 사용자 메모 목록 조회.*/
|
||||||
List<AllMemoList> selectMemoList(AllMemoListReqDto allMemoListReqDto);
|
List<AllMemoList> selectMemoList(AllMemoListReqDto allMemoListReqDto);
|
||||||
/** 사용자 유무 확인.*/
|
/** 사용자 유무 확인.*/
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import kr.co.uplus.ez.common.components.HubeasyApiComponents;
|
|||||||
import kr.co.uplus.ez.common.data.*;
|
import kr.co.uplus.ez.common.data.*;
|
||||||
import kr.co.uplus.ez.common.utils.EncryptionUtil;
|
import kr.co.uplus.ez.common.utils.EncryptionUtil;
|
||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -452,14 +453,38 @@ public class CustMgtService {
|
|||||||
|
|
||||||
CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class);
|
CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class);
|
||||||
|
|
||||||
List<AllMemoList> allMemoLists = custMgtMapper.selectMemoList(allMemoListReqDto);
|
String nowPage = String.valueOf(allMemoListReqDto.getPage());
|
||||||
|
int totalCnt = custMgtMapper.selectMemoListTotalCnt(allMemoListReqDto);
|
||||||
|
|
||||||
// 조회 결과 없음.
|
if (totalCnt == 0) {
|
||||||
if (allMemoLists == null) {
|
|
||||||
return new AllMemoListResDto(ApiResponseCode.CM_NOT_FOUND);
|
AllMemoListRes allMemoListRes = new AllMemoListRes();
|
||||||
|
allMemoListRes.setList(new ArrayList<>());
|
||||||
|
|
||||||
|
Paging paging = new Paging();
|
||||||
|
paging.setPage(nowPage);
|
||||||
|
paging.setTotalCnt(String.valueOf(totalCnt));
|
||||||
|
allMemoListRes.setPaging(paging);
|
||||||
|
|
||||||
|
return new AllMemoListResDto(ApiResponseCode.CM_NOT_FOUND, allMemoListRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new AllMemoListResDto(new AllMemoListRes(allMemoLists));
|
int page = allMemoListReqDto.getPage();
|
||||||
|
int pagePerRows = allMemoListReqDto.getPagePerRows();
|
||||||
|
page = (page - 1) * pagePerRows;
|
||||||
|
allMemoListReqDto.setPage(page);
|
||||||
|
|
||||||
|
List<AllMemoList> allMemoLists = custMgtMapper.selectMemoList(allMemoListReqDto);
|
||||||
|
|
||||||
|
AllMemoListRes allMemoListRes = new AllMemoListRes();
|
||||||
|
allMemoListRes.setList(allMemoLists);
|
||||||
|
|
||||||
|
Paging paging = new Paging();
|
||||||
|
paging.setPage(nowPage);
|
||||||
|
paging.setTotalCnt(String.valueOf(totalCnt));
|
||||||
|
allMemoListRes.setPaging(paging);
|
||||||
|
|
||||||
|
return new AllMemoListResDto(ApiResponseCode.SUCCESS, allMemoListRes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -788,7 +813,7 @@ public class CustMgtService {
|
|||||||
|
|
||||||
// 3. 발송 한도 update
|
// 3. 발송 한도 update
|
||||||
if(updateAdminInfoTotalReqDto.getSendingLimit() != null) {
|
if(updateAdminInfoTotalReqDto.getSendingLimit() != null) {
|
||||||
BigDecimal sendingLimitAmt = new BigDecimal(updateAdminInfoTotalReqDto.getSendingLimit());
|
BigDecimal sendingLimitAmt = new BigDecimal(StringUtils.remove(updateAdminInfoTotalReqDto.getSendingLimit(), ","));
|
||||||
|
|
||||||
paramMap.put("userId", updateAdminInfoTotalReqDto.getUserId());
|
paramMap.put("userId", updateAdminInfoTotalReqDto.getUserId());
|
||||||
// 3-1. 기존 정액한도금액 조회
|
// 3-1. 기존 정액한도금액 조회
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package kr.co.uplus.ez.api.custMgt.dto;
|
package kr.co.uplus.ez.api.custMgt.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class AllMemoListReqDto implements Serializable {
|
public class AllMemoListReqDto implements Serializable {
|
||||||
@@ -15,4 +14,11 @@ public class AllMemoListReqDto implements Serializable {
|
|||||||
@ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String")
|
@ApiModelProperty(example = "사용자 ID", name = "사용자 ID", dataType = "String")
|
||||||
private String userId;
|
private String userId;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(example = "페이지당 조회할 목록 수",notes = "페이지당 조회할 목록 수", name = "페이지당 조회할 목록 수", dataType = "int")
|
||||||
|
private int pagePerRows;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@ApiModelProperty(example = "현재 페이지", name = "현재 페이지", dataType = "int")
|
||||||
|
private int page;
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,22 @@
|
|||||||
package kr.co.uplus.ez.api.custMgt.dto;
|
package kr.co.uplus.ez.api.custMgt.dto;
|
||||||
|
|
||||||
|
import kr.co.uplus.ez.common.data.Paging;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Data
|
@Data
|
||||||
public class AllMemoListRes implements Serializable{
|
public class AllMemoListRes implements Serializable{
|
||||||
|
|
||||||
|
private Paging paging;
|
||||||
private List<AllMemoList> list;
|
private List<AllMemoList> list;
|
||||||
|
|
||||||
|
public AllMemoListRes(){
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
public AllMemoListRes(List<AllMemoList> list) {
|
public AllMemoListRes(List<AllMemoList> list) {
|
||||||
super();
|
super();
|
||||||
this.list = list;
|
this.list = list;
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ public class LoginService {
|
|||||||
authUser.setTmpPwdYn(Const.COMM_YES);
|
authUser.setTmpPwdYn(Const.COMM_YES);
|
||||||
authUser.setPwd(EncryptionUtil.getCustomSHA512(resetPasswordReqDto.getUserId(), randomPw));
|
authUser.setPwd(EncryptionUtil.getCustomSHA512(resetPasswordReqDto.getUserId(), randomPw));
|
||||||
authUser.setPwdChgDt(Const.COMM_YES);
|
authUser.setPwdChgDt(Const.COMM_YES);
|
||||||
|
authUser.setAuthchrFailCnt(0);
|
||||||
|
|
||||||
int reslut = loginMapper.updateAdmUser(authUser);
|
int reslut = loginMapper.updateAdmUser(authUser);
|
||||||
|
|
||||||
@@ -294,6 +295,7 @@ public class LoginService {
|
|||||||
authUser.setOprtrId(updatePasswordReqDto.getUserId());
|
authUser.setOprtrId(updatePasswordReqDto.getUserId());
|
||||||
authUser.setPwd(newPw);
|
authUser.setPwd(newPw);
|
||||||
authUser.setPwdChgDt(Const.COMM_YES);
|
authUser.setPwdChgDt(Const.COMM_YES);
|
||||||
|
authUser.setAuthchrFailCnt(0);
|
||||||
|
|
||||||
int reslut = loginMapper.updateAdmUser(authUser);
|
int reslut = loginMapper.updateAdmUser(authUser);
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import java.io.Serializable;
|
|||||||
@Data
|
@Data
|
||||||
public class DeleteNumber implements Serializable{
|
public class DeleteNumber implements Serializable{
|
||||||
|
|
||||||
@ApiModelProperty(example = "등록번호", name = "등록번호", dataType = "String")
|
// @ApiModelProperty(example = "등록번호", name = "등록번호", dataType = "String")
|
||||||
private String regReqNo;
|
// private String regReqNo;
|
||||||
|
@ApiModelProperty(example = "발신일련번호", name = "발신일련번호", dataType = "String")
|
||||||
|
private String seqNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,4 +15,7 @@ public class DetailNumberReqDto implements Serializable{
|
|||||||
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
|
@ApiModelProperty(example = "발신번호", name = "발신번호", dataType = "String")
|
||||||
private String sndrno;
|
private String sndrno;
|
||||||
|
|
||||||
|
@ApiModelProperty(example = "발신일련번호", name = "발신일련번호", dataType = "String")
|
||||||
|
private String seqNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,5 +33,7 @@ public class SendNumberInfo implements Serializable{
|
|||||||
private String regDt;
|
private String regDt;
|
||||||
@ApiModelProperty(example = "발신번호등록번호", name = "발신번호등록번호", dataType = "String")
|
@ApiModelProperty(example = "발신번호등록번호", name = "발신번호등록번호", dataType = "String")
|
||||||
private String regReqNo;
|
private String regReqNo;
|
||||||
|
@ApiModelProperty(example = "발신일련번호", name = "발신일련번호", dataType = "String")
|
||||||
|
private String seqNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,10 +114,10 @@
|
|||||||
</select>
|
</select>
|
||||||
<sql id="subsListCondition">
|
<sql id="subsListCondition">
|
||||||
<if test="startDt != null and startDt != ''">
|
<if test="startDt != null and startDt != ''">
|
||||||
AND esi.SUBS_DT <![CDATA[ >= ]]> STR_TO_DATE(REPLACE( #{startDt}, '-', '' ), '%Y%m%d')
|
AND esi.SUBS_DT <![CDATA[ >= ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s')
|
||||||
</if>
|
</if>
|
||||||
<if test="endDt != null and endDt != ''">
|
<if test="endDt != null and endDt != ''">
|
||||||
AND esi.SUBS_DT <![CDATA[ <= ]]> STR_TO_DATE(REPLACE( #{endDt}, '-', '' ), '%Y%m%d')
|
AND esi.SUBS_DT <![CDATA[ <= ]]> STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s')
|
||||||
</if>
|
</if>
|
||||||
<if test="searchType1 != null and searchType1 != ''">
|
<if test="searchType1 != null and searchType1 != ''">
|
||||||
AND esu.USER_STTUS_CD = #{searchType1}
|
AND esu.USER_STTUS_CD = #{searchType1}
|
||||||
@@ -432,10 +432,10 @@
|
|||||||
|
|
||||||
<sql id="svcUserListCondition">
|
<sql id="svcUserListCondition">
|
||||||
<if test="startDt != null and startDt != ''">
|
<if test="startDt != null and startDt != ''">
|
||||||
AND esu.REG_DT <![CDATA[ >= ]]> STR_TO_DATE(REPLACE( #{startDt}, '-', '' ), '%Y%m%d')
|
AND esu.REG_DT <![CDATA[ >= ]]> STR_TO_DATE(concat(REPLACE(#{startDt}, '-', '' ),'000000') , '%Y%m%d%H%i%s')
|
||||||
</if>
|
</if>
|
||||||
<if test="endDt != null and endDt != ''">
|
<if test="endDt != null and endDt != ''">
|
||||||
AND esu.REG_DT <![CDATA[ <= ]]> STR_TO_DATE(REPLACE( #{endDt}, '-', '' ), '%Y%m%d')
|
AND esu.REG_DT <![CDATA[ <= ]]> STR_TO_DATE(concat(REPLACE(#{endDt}, '-', '' ),'235959'), '%Y%m%d%H%i%s')
|
||||||
</if>
|
</if>
|
||||||
<if test="searchType1 != null and searchType1 != ''">
|
<if test="searchType1 != null and searchType1 != ''">
|
||||||
AND esu.USER_STTUS_CD = #{searchType1}
|
AND esu.USER_STTUS_CD = #{searchType1}
|
||||||
@@ -539,6 +539,18 @@
|
|||||||
( SELECT @ROWNUM := 0 ) AS R
|
( SELECT @ROWNUM := 0 ) AS R
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMemoListTotalCnt" parameterType="kr.co.uplus.ez.api.custMgt.dto.AllMemoListReqDto" resultType="int">
|
||||||
|
/* custMgt-mapper.xml(selectMemoList) */
|
||||||
|
SELECT
|
||||||
|
COUNT(*)
|
||||||
|
FROM
|
||||||
|
hubez_common.EZ_USER_MEMO EUM
|
||||||
|
INNER JOIN hubez_common.EZ_SVC_USER ESU
|
||||||
|
ON EUM.USER_SEQ = ESU.USER_SEQ
|
||||||
|
WHERE
|
||||||
|
ESU.USER_ID = #{userId}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectMemoList" parameterType="kr.co.uplus.ez.api.custMgt.dto.AllMemoListReqDto" resultType="kr.co.uplus.ez.api.custMgt.dto.AllMemoList">
|
<select id="selectMemoList" parameterType="kr.co.uplus.ez.api.custMgt.dto.AllMemoListReqDto" resultType="kr.co.uplus.ez.api.custMgt.dto.AllMemoList">
|
||||||
/* custMgt-mapper.xml(selectMemoList) */
|
/* custMgt-mapper.xml(selectMemoList) */
|
||||||
SELECT
|
SELECT
|
||||||
@@ -553,6 +565,7 @@
|
|||||||
WHERE
|
WHERE
|
||||||
ESU.USER_ID = #{userId}
|
ESU.USER_ID = #{userId}
|
||||||
ORDER BY EUM.REG_DT DESC
|
ORDER BY EUM.REG_DT DESC
|
||||||
|
LIMIT #{page}, #{pagePerRows}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectCustInfoCount" parameterType="String" resultType="int">
|
<select id="selectCustInfoCount" parameterType="String" resultType="int">
|
||||||
|
|||||||
@@ -100,6 +100,9 @@
|
|||||||
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
||||||
ON
|
ON
|
||||||
esr.USER_SEQ = esu.USER_SEQ
|
esr.USER_SEQ = esu.USER_SEQ
|
||||||
|
INNER JOIN hubez_common.EZ_SVC_SNDRNO ess
|
||||||
|
ON
|
||||||
|
esr.REG_REQ_NO = ess.REG_REQ_NO
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<include refid="numberListCondition"></include>
|
<include refid="numberListCondition"></include>
|
||||||
</select>
|
</select>
|
||||||
@@ -118,30 +121,29 @@
|
|||||||
(SELECT esu2.USER_ID FROM hubez_common.EZ_SVC_USER esu2 WHERE esu2.USER_SEQ = esu.PRNTS_USER_SEQ)AS ADMIN_ID,
|
(SELECT esu2.USER_ID FROM hubez_common.EZ_SVC_USER esu2 WHERE esu2.USER_SEQ = esu.PRNTS_USER_SEQ)AS ADMIN_ID,
|
||||||
esr.REG_ID AS register,
|
esr.REG_ID AS register,
|
||||||
eci.BIZRNO AS bRegNo,
|
eci.BIZRNO AS bRegNo,
|
||||||
(SELECT (
|
(SELECT
|
||||||
SELECT
|
|
||||||
ecd.DTL_CD_NM
|
ecd.DTL_CD_NM
|
||||||
FROM
|
FROM
|
||||||
hubez_common.EZ_CD_DTL ecd
|
hubez_common.EZ_CD_DTL ecd
|
||||||
WHERE
|
WHERE
|
||||||
ecd.GRP_CD = 'NMINEE_DIV_CD'
|
ecd.GRP_CD = 'NMINEE_DIV_CD'
|
||||||
AND ecd.DTL_CD = ess.NMINEE_DIV_CD) FROM hubez_common.EZ_SVC_SNDRNO ess WHERE ess.REG_REQ_NO = esr.REG_REQ_NO LIMIT 1) AS NMINEE_DIV_CD,
|
AND ecd.DTL_CD = ess.NMINEE_DIV_CD) AS NMINEE_DIV_CD,
|
||||||
(SELECT (SELECT
|
(SELECT
|
||||||
ecd.DTL_CD_NM
|
ecd.DTL_CD_NM
|
||||||
FROM
|
FROM
|
||||||
hubez_common.EZ_CD_DTL ecd
|
hubez_common.EZ_CD_DTL ecd
|
||||||
WHERE
|
WHERE
|
||||||
ecd.GRP_CD = 'INCH_DIV_CD'
|
ecd.GRP_CD = 'INCH_DIV_CD'
|
||||||
AND ecd.DTL_CD = ess.INCH_DIV_CD) FROM hubez_common.EZ_SVC_SNDRNO ess WHERE ess.REG_REQ_NO = esr.REG_REQ_NO LIMIT 1) AS INCH_DIV_CD,
|
AND ecd.DTL_CD = ess.INCH_DIV_CD) AS INCH_DIV_CD,
|
||||||
(
|
(SELECT
|
||||||
SELECT
|
|
||||||
ecd.DTL_CD_NM
|
ecd.DTL_CD_NM
|
||||||
FROM
|
FROM
|
||||||
hubez_common.EZ_CD_DTL ecd
|
hubez_common.EZ_CD_DTL ecd
|
||||||
WHERE
|
WHERE
|
||||||
ecd.GRP_CD = 'SNDRNO_REQ_STTUS_CD'
|
ecd.GRP_CD = 'SNDRNO_REQ_STTUS_CD'
|
||||||
AND ecd.DTL_CD = esr.REQ_STTUS_CD) AS sttusCd,
|
AND ecd.DTL_CD = esr.REQ_STTUS_CD) AS sttusCd,
|
||||||
(SELECT ess.SNDRNO FROM hubez_common.EZ_SVC_SNDRNO ess WHERE ess.REG_REQ_NO = esr.REG_REQ_NO LIMIT 1) AS SNDRNO,
|
ess.SNDRNO AS SNDRNO,
|
||||||
|
ess.SEQ_NO,
|
||||||
DATE_FORMAT(esr.REG_DT, '%Y-%m-%d') AS REG_DT
|
DATE_FORMAT(esr.REG_DT, '%Y-%m-%d') AS REG_DT
|
||||||
FROM
|
FROM
|
||||||
hubez_common.EZ_CUST_INFO eci
|
hubez_common.EZ_CUST_INFO eci
|
||||||
@@ -151,6 +153,9 @@
|
|||||||
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
INNER JOIN hubez_common.EZ_SNDRNO_REG esr
|
||||||
ON
|
ON
|
||||||
esr.USER_SEQ = esu.USER_SEQ
|
esr.USER_SEQ = esu.USER_SEQ
|
||||||
|
INNER JOIN hubez_common.EZ_SVC_SNDRNO ess
|
||||||
|
ON
|
||||||
|
esr.REG_REQ_NO = ess.REG_REQ_NO
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<include refid="numberListCondition"></include>
|
<include refid="numberListCondition"></include>
|
||||||
ORDER BY eci.BIZRNO
|
ORDER BY eci.BIZRNO
|
||||||
@@ -228,20 +233,12 @@
|
|||||||
/* sendNumMgt-mapper.xml(deleteNumber) */
|
/* sendNumMgt-mapper.xml(deleteNumber) */
|
||||||
DELETE
|
DELETE
|
||||||
FROM
|
FROM
|
||||||
esr
|
hubez_common.EZ_SVC_SNDRNO
|
||||||
, esd
|
|
||||||
USING hubez_common.EZ_SNDRNO_REG AS esr
|
|
||||||
INNER JOIN hubez_common.EZ_SNDRNO_DOC AS esd
|
|
||||||
ON
|
|
||||||
esr.REG_REQ_NO = esd.REG_REQ_NO
|
|
||||||
INNER JOIN hubez_common.EZ_SVC_SNDRNO AS ess
|
|
||||||
ON
|
|
||||||
esr.REG_REQ_NO = ess.REG_REQ_NO
|
|
||||||
<where>
|
<where>
|
||||||
esr.REG_REQ_NO IN
|
SEQ_NO IN
|
||||||
<foreach collection="list" item="item" index="i" open="("
|
<foreach collection="list" item="item" index="i" open="("
|
||||||
separator="," close=")">
|
separator="," close=")">
|
||||||
#{item.regReqNo}
|
#{item.seqNo}
|
||||||
</foreach>
|
</foreach>
|
||||||
</where>
|
</where>
|
||||||
</delete>
|
</delete>
|
||||||
@@ -451,10 +448,9 @@
|
|||||||
esu.USER_SEQ = esr.USER_SEQ
|
esu.USER_SEQ = esr.USER_SEQ
|
||||||
INNER JOIN hubez_common.EZ_SVC_SNDRNO ess
|
INNER JOIN hubez_common.EZ_SVC_SNDRNO ess
|
||||||
ON
|
ON
|
||||||
eci.CUST_SEQ = ess.CUST_SEQ
|
esr.REG_REQ_NO = ess.REG_REQ_NO
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
AND ess.SNDRNO = #{sndrno}
|
AND ess.SEQ_NO = #{seqNo}
|
||||||
AND esr.REG_REQ_NO = #{regReqNo}
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectAuthFileList" parameterType="kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto" resultType="kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileInfo">
|
<select id="selectAuthFileList" parameterType="kr.co.uplus.ez.api.sendNumMgt.dto.DetailNumberReqDto" resultType="kr.co.uplus.ez.api.sendNumMgt.dto.AuthFileInfo">
|
||||||
|
|||||||
Reference in New Issue
Block a user