어드민 -> 청약고객관리 상세 : 사용자 데이터 -> 담당자 데이터 / 사용자명 -> 담당자명 (문구 수정)

고객사명 엔티티코드 노출되는 부분 수정
This commit is contained in:
kimjhjjang
2022-10-14 09:40:57 +09:00
parent e178306dca
commit 4b8f8beff9
3 changed files with 603 additions and 510 deletions

View File

@@ -12,51 +12,51 @@
<!-- <form autocomplete="off">--> <!-- <form autocomplete="off">-->
<table> <table>
<colgroup> <colgroup>
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
</colgroup> </colgroup>
<tbody> <tbody>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>고객사명</th> <th>고객사명</th>
<td colspan="2"><input type="text" disabled v-model="custNm"></td> <td colspan="2"><input type="text" disabled v-model="custNm" /></td>
</tr> </tr>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>대표자명</th> <th>대표자명</th>
<td colspan="2"><input type="text" disabled v-model="reprNm"></td> <td colspan="2"><input type="text" disabled v-model="reprNm" /></td>
<th>사용자 구분</th> <th>사용자 구분</th>
<td colspan="2"><input type="text" disabled v-model="custType"></td> <td colspan="2"><input type="text" disabled v-model="custType" /></td>
</tr> </tr>
<tr class="tr_input"> <tr class="tr_input">
<th>사업장 주소</th> <th>사업장 주소</th>
<td colspan="5"> <td colspan="5">
<div class="input-address"> <div class="input-address">
<input type="text" disabled v-model="adr1"> <input type="text" disabled v-model="adr1" />
<input type="text" disabled v-model="adr2"> <input type="text" disabled v-model="adr2" />
<input type="text" disabled v-model="adr3"> <input type="text" disabled v-model="adr3" />
</div> </div>
</td> </td>
</tr> </tr>
<tr class="tr_input"> <tr class="tr_input">
<th>사업자등록번호</th> <th>사업자등록번호</th>
<td colspan="2"> <td colspan="2">
<div class="input-bnumber"> <div class="input-bnumber">
<input type="text" disabled v-model="bregNo1"> <input type="text" disabled v-model="bregNo1" />
<input type="text" disabled v-model="bregNo2"> <input type="text" disabled v-model="bregNo2" />
<input type="text" disabled v-model="bregNo3"> <input type="text" disabled v-model="bregNo3" />
</div> </div>
</td> </td>
<th>법인등록번호</th> <th>법인등록번호</th>
<td colspan="2"> <td colspan="2">
<div class="input-double"> <div class="input-double">
<input type="text" disabled v-model="cprRegNo1"> <input type="text" disabled v-model="cprRegNo1" />
<input type="text" disabled v-model="cprRegNo2"> <input type="text" disabled v-model="cprRegNo2" />
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<!-- </form>--> <!-- </form>-->
@@ -67,98 +67,98 @@
<div class="table table_form"> <div class="table table_form">
<table> <table>
<colgroup> <colgroup>
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
</colgroup> </colgroup>
<tbody> <tbody>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>가입일</th> <th>가입일</th>
<td colspan="2"><input type="text" disabled v-model="subsDt"></td> <td colspan="2"><input type="text" disabled v-model="subsDt" /></td>
<th>상태</th> <th>상태</th>
<td colspan="2"> <td colspan="2">
<input type="text" disabled v-model="stat"> <input type="text" disabled v-model="stat" />
</td> </td>
</tr> </tr>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>요금제</th> <th>요금제</th>
<td colspan="2"><input type="text" disabled v-model="plan"></td> <td colspan="2"><input type="text" disabled v-model="plan" /></td>
<th>가입번호</th> <th>가입번호</th>
<td colspan="2"><input type="text" disabled v-model="subsNo"></td> <td colspan="2"><input type="text" disabled v-model="subsNo" /></td>
</tr> </tr>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>관리자명</th> <th>관리자명</th>
<td colspan="2"> <td colspan="2">
<div class="input-double"> <div class="input-double">
<input type="text" disabled v-model="adminId"> <input type="text" disabled v-model="adminId" />
<input type="text" disabled v-model="adminNm"> <input type="text" disabled v-model="adminNm" />
<button type="button" class="button grey btn-a" @click="searchIDPopOpen">변경</button> <button type="button" class="button grey btn-a" @click="searchIDPopOpen">변경</button>
</div> </div>
</td> </td>
<th>유치자명</th> <th>유치자명</th>
<td colspan="2"> <td colspan="2">
<div class="input-double"> <div class="input-double">
<input type="text" disabled v-model="channelId"> <input type="text" disabled v-model="channelId" />
<input type="text" disabled v-model="channelNm"> <input type="text" disabled v-model="channelNm" />
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="info"> <div class="info">
<div class="title">사용 데이터</div> <div class="title">담당 데이터</div>
</div> </div>
<div class="table table_form"> <div class="table table_form">
<form autocomplete="off"> <form autocomplete="off">
<table> <table>
<colgroup> <colgroup>
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:140px"> <col style="width: 140px" />
<col style="width:auto"> <col style="width: auto" />
<col style="width:auto"> <col style="width: auto" />
</colgroup> </colgroup>
<tbody> <tbody>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>서비스 ID</th> <th>서비스 ID</th>
<td colspan="2"><input type="text" disabled v-model="serviceId"></td> <td colspan="2"><input type="text" disabled v-model="serviceId" /></td>
<th>이용권한</th> <th>이용권한</th>
<td colspan="2"><input type="text" disabled v-model="useAuth"></td> <td colspan="2"><input type="text" disabled v-model="useAuth" /></td>
</tr> </tr>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>사용자명</th> <th>담당자명</th>
<td colspan="2"><input type="text" disabled v-model="userNm"></td> <td colspan="2"><input type="text" disabled v-model="userNm" /></td>
<th>휴대폰 번호</th> <th>휴대폰 번호</th>
<td colspan="2"><input type="text" disabled v-model="mdn"></td> <td colspan="2"><input type="text" disabled v-model="mdn" /></td>
</tr> </tr>
<tr class="tr_input w75"> <tr class="tr_input w75">
<th>이월누적금액</th> <th>이월누적금액</th>
<td colspan="2"> <td colspan="2">
<div class="input-double button-double"> <div class="input-double button-double">
<input type="text" disabled v-model="carryOver"> <input type="text" disabled v-model="carryOver" />
<button type="button" class="button grey" @click="carryOverListPopOpen();">이월금액보기</button> <button type="button" class="button grey" @click="carryOverListPopOpen()">이월금액보기</button>
</div> </div>
</td> </td>
<th>사용자ID 개수</th> <th>사용자ID 개수</th>
<td colspan="2"> <td colspan="2">
<div class="input-double button-double"> <div class="input-double button-double">
<input type="text" disabled v-model="userCnt"> <input type="text" disabled v-model="userCnt" />
<button type="button" class="button grey" @click="goMemberDetail">사용자ID 확인</button> <button type="button" class="button grey" @click="goMemberDetail">사용자ID 확인</button>
</div> </div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</form> </form>
</div> </div>
<div class="pop-btn2"> <div class="pop-btn2">
<button class="btn-pcolor" type="button" @click="confirmPopOpen();">저장</button> <button class="btn-pcolor" type="button" @click="confirmPopOpen()">저장</button>
<button class="btn-default" type="button" @click="toComplete();">취소</button> <button class="btn-default" type="button" @click="toComplete()">취소</button>
</div> </div>
<!--이월금액 모달.--> <!--이월금액 모달.-->
@@ -167,24 +167,21 @@
<validation-confirm-pop ref="validationConfirmPop"></validation-confirm-pop> <validation-confirm-pop ref="validationConfirmPop"></validation-confirm-pop>
<!--관리자명 조회 모달--> <!--관리자명 조회 모달-->
<common-modal ref="commmonModal"></common-modal> <common-modal ref="commmonModal"></common-modal>
</div> </div>
<admin-nm-pop ref="adminNmPop"></admin-nm-pop> <admin-nm-pop ref="adminNmPop"></admin-nm-pop>
</div> </div>
</template> </template>
<script> <script>
import api from '@/service/api'; import custMgtApi from '../service/custMgtApi.js';
import custMgtApi from "../service/custMgtApi.js";
import CarryOverListPop from '../components/CarryOverListPop'; import CarryOverListPop from '../components/CarryOverListPop';
import ValidationConfirmPop from '../components/ValidationConfirmPop'; import ValidationConfirmPop from '../components/ValidationConfirmPop';
import AdminNmPop from '../components/AdminNmPop'; import AdminNmPop from '../components/AdminNmPop';
import commonModal from "../components/commonModal"; import commonModal from '../components/commonModal';
//import { mapGetters } from 'vuex'; //import { mapGetters } from 'vuex';
export default { export default {
name: "subsDetail", name: 'subsDetail',
data() { data() {
return { return {
row: {}, row: {},
@@ -218,12 +215,12 @@ export default {
userCnt: '', userCnt: '',
saveConfirm: false, saveConfirm: false,
props: {}, props: {},
} };
}, },
props: { props: {
serviceId: { serviceId: {
type: String, type: String,
default: "", default: '',
}, },
}, },
components: { components: {
@@ -231,12 +228,12 @@ export default {
ValidationConfirmPop, ValidationConfirmPop,
AdminNmPop, AdminNmPop,
commonModal, commonModal,
}, },
created() { created() {
this.$store.commit("login/isLogin", true); this.$store.commit('login/isLogin', true);
if(this.$route.params.serviceId != null){ // 리스트에서 상세 호출시 if (this.$route.params.serviceId != null) {
// 리스트에서 상세 호출시
this.$store.commit('dataStore/updateDataStore', this.$route.params.serviceId); this.$store.commit('dataStore/updateDataStore', this.$route.params.serviceId);
this.subsDetail(this.$route.params.serviceId); this.subsDetail(this.$route.params.serviceId);
//this.setMenuActive(); //this.setMenuActive();
@@ -251,14 +248,14 @@ export default {
// //$router.push({ path: '/custMgt/subsList', params: }) // //$router.push({ path: '/custMgt/subsList', params: })
// //} // //}
// this.subsDetail(serviceId); // this.subsDetail(serviceId);
// } // }
}, },
destroyed() { destroyed() {
this.$store.commit('dataStore/updateDataStore', ''); this.$store.commit('dataStore/updateDataStore', '');
}, },
methods: { methods: {
callAlert(props) { callAlert(props) {
this.$refs.commmonModal.alertModalOpen(props); this.$refs.commmonModal.alertModalOpen(props);
}, },
doValidate() { doValidate() {
@@ -275,17 +272,17 @@ export default {
this.row.page = 1; this.row.page = 1;
this.row.serviceId = this.$route.params.serviceId; this.row.serviceId = this.$route.params.serviceId;
console.log(this.row); console.log(this.row);
this.$router.push({name: 'subsList', params: this.row}); this.$router.push({ name: 'subsList', params: this.row });
}, },
async subsDetail(serviceId) { async subsDetail(serviceId) {
this.row.serviceId = serviceId; this.row.serviceId = serviceId;
try { try {
const response = await custMgtApi.subsDetail(this.row); const response = await custMgtApi.subsDetail(this.row);
const result = response.data; const result = response.data;
if (result != null && result.retCode == "0000") { if (result != null && result.retCode == '0000') {
//데이터값이 널이면 오류처리 //데이터값이 널이면 오류처리
this.custNm = result.data.custNm; this.custNm = this.fromHtmlEntities(result.data.custNm);
this.reprNm = result.data.reprNm; this.reprNm = result.data.reprNm;
this.custType = result.data.custType; this.custType = result.data.custType;
this.adr1 = result.data.adr1; this.adr1 = result.data.adr1;
@@ -318,17 +315,16 @@ export default {
this.cprRegNo1 = this.cprRegNo.substr(0, 6); this.cprRegNo1 = this.cprRegNo.substr(0, 6);
this.cprRegNo2 = this.cprRegNo.substr(6); this.cprRegNo2 = this.cprRegNo.substr(6);
} }
}else{ } 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 (error) { } catch (error) {
this.row.title = '청약고객관리'; this.row.title = '청약고객관리';
this.row.msg1 = '실패 하였습니다.'; this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row); this.$refs.commmonModal.alertModalOpen(this.row);
} }
}, },
// updateAdminInfo 청약고객-사용정보-관리자ID,관리자명 수정 // updateAdminInfo 청약고객-사용정보-관리자ID,관리자명 수정
@@ -340,7 +336,7 @@ export default {
try { try {
const response = await custMgtApi.updateAdminInfo(this.row); const response = await custMgtApi.updateAdminInfo(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);
@@ -355,49 +351,50 @@ export default {
this.row.msg1 = '실패 하였습니다.'; this.row.msg1 = '실패 하였습니다.';
this.$refs.commmonModal.alertModalOpen(this.row); this.$refs.commmonModal.alertModalOpen(this.row);
} }
}, },
carryOverListPopOpen: function () { carryOverListPopOpen: function () {
this.$refs.carryOverListPop.carryOverListPopOpen(this.serviceId); this.$refs.carryOverListPop.carryOverListPopOpen(this.serviceId);
}, },
confirmPopOpen: function () { confirmPopOpen: function () {
if (this.doValidate()) { if (this.doValidate()) {
this.$refs.validationConfirmPop.confirmUpdateSubOpen(); this.$refs.validationConfirmPop.confirmUpdateSubOpen();
} }
}, },
confirmCalbackFnc: function (props) { /* confirmCalbackFnc: function (props) {
if (props.result) { if (props.result) {
} }
}, }, */
searchIDPopOpen: function () { searchIDPopOpen: function () {
var params = { var params = {
"serviceId": this.serviceId, serviceId: this.serviceId,
"serviceSeq": '', serviceSeq: '',
"parentDiv": 'subsDetail' parentDiv: 'subsDetail',
} };
this.$refs.adminNmPop.ModalOpen(params); this.$refs.adminNmPop.ModalOpen(params);
}, },
goMemberDetail: function (props) { goMemberDetail: function () {
this.$router.push({name: 'memberAdminDetail', params: {serviceId: this.row.serviceId}}); this.$router.push({ name: 'memberAdminDetail', params: { serviceId: this.row.serviceId } });
}, },
// 메뉴 활성화 // 메뉴 활성화
setMenuActive(){ setMenuActive() {
const activedMenu = document.querySelectorAll('.main_menu .is-current'); const activedMenu = document.querySelectorAll('.main_menu .is-current');
activedMenu[0].classList.remove('is-current'); activedMenu[0].classList.remove('is-current');
const nowMenu = document.querySelectorAll('.customer'); const nowMenu = document.querySelectorAll('.customer');
nowMenu[0].classList.add('is-current'); nowMenu[0].classList.add('is-current');
//menuList.classList.add('is-current'); //menuList.classList.add('is-current');
}, },
// 조회후 모달창 닫기 // 조회후 모달창 닫기
checkFocus(){ checkFocus() {
this.$router.go(-1); this.$router.go(-1);
} },
} fromHtmlEntities(str) {
} return (str + '').replace(/&#\d+;/gm, function (s) {
return String.fromCharCode(s.match(/\d+/gm)[0]);
});
</script> },
},
};
</script>

View File

@@ -1,204 +1,268 @@
<template> <template>
<!-- <div class="wrap bg-wrap"> --> <!-- <div class="wrap bg-wrap"> -->
<div> <div>
<div class="dimmed modal55" @click="apprDetailPopClose"></div> <div class="dimmed modal55" @click="apprDetailPopClose"></div>
<div class="popup-wrap modal55"> <div class="popup-wrap modal55">
<!-- 발신번호 상세 (타사업자)--> <!-- 발신번호 상세 (타사업자)-->
<div class="popup modal55 popup_form"> <div class="popup modal55 popup_form">
<div class="pop-head"> <div class="pop-head">
<h3 class="pop-tit">발신번호 승인 요청 내역</h3> <h3 class="pop-tit">발신번호 승인 요청 내역</h3>
</div> </div>
<table> <table>
<tbody> <tbody>
<tr> <tr>
<th>요청일</th> <th>요청일</th>
<td>{{ regDt }}</td> <td>{{ regDt }}</td>
</tr> </tr>
<tr v-show="cmpltDt !== '' && cmpltDt !== null"> <tr v-show="cmpltDt !== '' && cmpltDt !== null">
<th>완료일</th> <th>완료일</th>
<td>{{ cmpltDt }}</td> <td>{{ cmpltDt }}</td>
</tr> </tr>
<tr> <tr>
<th>관리자 ID</th> <th>관리자 ID</th>
<td>{{ adminId }}</td> <td>{{ adminId }}</td>
</tr> </tr>
<tr> <tr>
<th>고객사명</th> <th>고객사명</th>
<td>{{ custNm }}</td> <td>{{ custNm }}</td>
</tr> </tr>
<tr> <tr>
<th>사업자번호</th> <th>사업자번호</th>
<td>{{ bizrno }}</td> <td>{{ bizrno }}</td>
</tr> </tr>
<tr> <tr>
<th>명의자 구분</th> <th>명의자 구분</th>
<td>{{ nmineeDivCd }}</td> <td>{{ nmineeDivCd }}</td>
</tr> </tr>
<tr> <tr>
<th class="two-tit">본인인증 휴대폰번호</th> <th class="two-tit">본인인증 휴대폰번호</th>
<td>{{ slfAuthHp }}</td> <td>{{ slfAuthHp }}</td>
</tr> </tr>
<tr> <tr>
<th>발신번호</th> <th>발신번호</th>
<td class="sender"> <td class="sender">
<div class="sender-head"> <div class="sender-head">
<div class="count"> <div class="count">
<span>{{ numList.length }}</span> <span>{{ numList.length }}</span
</div> >
<div class="radio_group">
<input type="radio" name="state" ref="apprRadio" value="02" id="popup_radio13" @change="allApprSttus($event)">
<label for="popup_radio13">전체승인</label>
<input type="radio" name="state" ref="rejRadio" value="03" id="popup_radio14" @change="allApprSttus($event)">
<label for="popup_radio14">전체반려</label>
</div>
</div>
<ul>
<li v-for="(item, idx) in numList">{{idx+1}}. {{ item.sndrno }}
<div class="select-btn">
<button :class="{'btn-pcolor' : item.sttusCd === '02', 'btn-default' : item.sttusCd === '01' || item.sttusCd === '03'}" @click="change(idx, '02')">승인</button>
<button :class="{'btn-pcolor' : item.sttusCd === '03', 'btn-default' : item.sttusCd === '01' || item.sttusCd === '02'}" @click="change(idx, '03')">반려</button>
</div> </div>
</li> <div class="radio_group">
</ul> <input
</td> type="radio"
</tr> name="state"
<tr> ref="apprRadio"
<th>제출서류</th> value="02"
<td class="sender"> id="popup_radio13"
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd !== '06' && item.docTpCd !== '07' && item.docTpCd !== '13' && item.docTpCd !== '14'">{{ item.docTitle }} <br></a> @change="allApprSttus($event)"
</td> />
</tr> <label for="popup_radio13">전체승인</label>
<tr> <input
<th>사업자등록증</th> type="radio"
<td class="sender"> name="state"
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '06'">{{ item.docTitle }}<br></a> ref="rejRadio"
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '07'">{{ item.docTitle }}<br></a> value="03"
</td> id="popup_radio14"
</tr> @change="allApprSttus($event)"
<tr> />
<th>본인확인</th> <label for="popup_radio14">전체반려</label>
<td class="sender"> </div>
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '13'">{{ item.docTitle }}<br></a> </div>
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '14'">{{ item.docTitle }}<br></a> <ul>
</td> <li v-for="(item, idx) in numList">
</tr> {{ idx + 1 }}. {{ item.sndrno }}
<tr> <div class="select-btn">
<th>메모</th> <button
<td class="sender"><textarea class="memo_text" v-model="memo">{{memo}}</textarea></td> :class="{
</tr> 'btn-pcolor': item.sttusCd === '02',
'btn-default': item.sttusCd === '01' || item.sttusCd === '03',
}"
@click="change(idx, '02')"
>
승인
</button>
<button
:class="{
'btn-pcolor': item.sttusCd === '03',
'btn-default': item.sttusCd === '01' || item.sttusCd === '02',
}"
@click="change(idx, '03')"
>
반려
</button>
</div>
</li>
</ul>
</td>
</tr>
<tr>
<th>제출서류</th>
<td class="sender">
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="
item.docTpCd !== '06' && item.docTpCd !== '07' && item.docTpCd !== '13' && item.docTpCd !== '14'
"
>{{ item.docTitle }} <br
/></a>
</td>
</tr>
<tr>
<th>사업자등록증</th>
<td class="sender">
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '06'"
>{{ item.docTitle }}<br
/></a>
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '07'"
>{{ item.docTitle }}<br
/></a>
</td>
</tr>
<tr>
<th>본인확인</th>
<td class="sender">
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '13'"
>{{ item.docTitle }}<br
/></a>
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '14'"
>{{ item.docTitle }}<br
/></a>
</td>
</tr>
<tr>
<th>메모</th>
<td class="sender">
<textarea class="memo_text" v-model="memo">{{ memo }}</textarea>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="popup-btn2"> <div class="popup-btn2">
<button class="btn-pcolor" @click="updateSttus">저장</button> <button class="btn-pcolor" @click="updateSttus">저장</button>
<button class="btn-default" @click="apprDetailPopClose">취소</button> <button class="btn-default" @click="apprDetailPopClose">취소</button>
</div>
</div> </div>
</div>
<common-modal ref="commmonModal"></common-modal> <common-modal ref="commmonModal"></common-modal>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import sendNumMgtApi from "@/modules/sendNumMgt/service/sendNumMgtApi"; import sendNumMgtApi from '@/modules/sendNumMgt/service/sendNumMgtApi';
import commonModal from "@/components/modal/commonModal"; import commonModal from '@/components/modal/commonModal';
export default { export default {
name: "numberRegPop", name: 'numberRegPop',
watch:{ watch: {
nmineeDivCd(){ nmineeDivCd() {},
}
}, },
data(){ data() {
return{ return {
row: {}, row: {},
regReqNo:'', regReqNo: '',
docNo:'', docNo: '',
reqNo:'', reqNo: '',
seqNo:'', seqNo: '',
cmpltDt:'', cmpltDt: '',
adminId:'', adminId: '',
custNm:'', custNm: '',
bizrno:'', bizrno: '',
nmineeDivCd:'', nmineeDivCd: '',
slfAuthHp:'', slfAuthHp: '',
regDt:'', regDt: '',
memo:'', memo: '',
docList: [], docList: [],
numList: [], numList: [],
};
}
}, },
components: { components: {
commonModal, commonModal,
}, },
model: { model: {
prop: 'sendData', prop: 'sendData',
event: 'event-data' event: 'event-data',
},
props: ['sendData'],
created(){
this.formReset();
}, },
methods :{ props: ['sendData'],
created() {
this.formReset();
},
methods: {
//파일 다운로드 //파일 다운로드
download(filePath, fileName, docTitle){ download(filePath, fileName, docTitle) {
this.row = {} this.row = {};
this.row.docTitle = docTitle this.row.docTitle = docTitle;
this.row.filePath = filePath this.row.filePath = filePath;
this.row.fileNm = fileName this.row.fileNm = fileName;
sendNumMgtApi.fileDownload(this.row); sendNumMgtApi.fileDownload(this.row);
}, },
// 모달 띄우기 // 모달 띄우기
apprDetailPopOpen(props){ apprDetailPopOpen(props) {
var dimmed = document.getElementsByClassName('modal55'); var dimmed = document.getElementsByClassName('modal55');
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';
} }
this.apprDetail(props); this.apprDetail(props);
},
}, async apprDetail(props) {
async apprDetail(props){
try { try {
this.row.regReqNo = props.regReqNo this.row.regReqNo = props.regReqNo;
this.row.docNo = props.docNo this.row.docNo = props.docNo;
const response = await sendNumMgtApi.apprDetail(this.row); const response = await sendNumMgtApi.apprDetail(this.row);
const result = response.data; const result = response.data;
if (result != null && result.retCode == "0000") { if (result != null && result.retCode == '0000') {
this.regReqNo = result.data.regReqNo;
this.docNo = result.data.docNo;
this.docTitle = result.data.docTitle;
this.regDt = result.data.regDt;
this.custNm = this.fromHtmlEntities(result.data.custNm);
this.adminId = result.data.adminId;
this.chgDt = result.data.chgDt;
this.bizrno =
result.data.bizrno.substring(0, 3) +
'-' +
result.data.bizrno.substring(3, 5) +
'-' +
result.data.bizrno.substring(5, 10);
this.nmineeDivCd = result.data.nmineeDivCd;
this.slfAuthHp = result.data.slfAuthHp;
this.docList = result.data.docList;
this.numList = result.data.numList;
this.memo = result.data.memo;
this.cmpltDt = result.data.cmpltDt;
this.regReqNo = result.data.regReqNo var apprCnt = 0;
this.docNo = result.data.docNo var rejtCnt = 0;
this.docTitle = result.data.docTitle this.numList.forEach(function (value, index) {
this.regDt = result.data.regDt
this.custNm = result.data.custNm
this.adminId = result.data.adminId
this.chgDt = result.data.chgDt
this.bizrno = result.data.bizrno.substring(0,3)+'-'+result.data.bizrno.substring(3,5)+'-'+result.data.bizrno.substring(5,10)
this.nmineeDivCd = result.data.nmineeDivCd
this.slfAuthHp = result.data.slfAuthHp
this.docList = result.data.docList
this.numList = result.data.numList
this.memo = result.data.memo
this.cmpltDt = result.data.cmpltDt
var apprCnt=0;
var rejtCnt=0;
this.numList.forEach(function(value, index) {
// value.sttusCd = data // value.sttusCd = data
if(value.sttusCd == '01' || value.sttusCd == '02' ){ if (value.sttusCd == '01' || value.sttusCd == '02') {
apprCnt = apprCnt + 1; apprCnt = apprCnt + 1;
}else if(value.sttusCd == '03'){ } else if (value.sttusCd == '03') {
rejtCnt = rejtCnt + 1; rejtCnt = rejtCnt + 1;
} }
}); });
if(apprCnt == this.numList.length){ if (apprCnt == this.numList.length) {
this.$refs.apprRadio.checked = true; this.$refs.apprRadio.checked = true;
}else if(rejtCnt == this.numList.length){ } else if (rejtCnt == this.numList.length) {
this.$refs.rejRadio.checked = true; this.$refs.rejRadio.checked = true;
} }
} }
} catch (error) { } catch (error) {
this.row.title = '발신번호승인'; this.row.title = '발신번호승인';
@@ -206,54 +270,54 @@ export default {
this.$refs.commmonModal.alertModalOpen(this.row); this.$refs.commmonModal.alertModalOpen(this.row);
} }
}, },
// 모달 끄기 // 모달 끄기
apprDetailPopClose(){ apprDetailPopClose() {
var dimmed = document.getElementsByClassName('modal55'); var dimmed = document.getElementsByClassName('modal55');
for (var i = 0; i < dimmed.length; i++) { for (var i = 0; i < dimmed.length; i++) {
dimmed[i].style.display = 'none'; dimmed[i].style.display = 'none';
} }
}, },
allApprSttus(event) { allApprSttus(event) {
var data = event.target.value; var data = event.target.value;
this.numList.forEach(function(value, index) { this.numList.forEach(function (value, index) {
value.sttusCd = data value.sttusCd = data;
}); });
}, },
change(idx, val){ change(idx, val) {
this.numList[idx].sttusCd = val this.numList[idx].sttusCd = val;
this.$refs.apprRadio.checked = false; this.$refs.apprRadio.checked = false;
this.$refs.rejRadio.checked = false; this.$refs.rejRadio.checked = false;
// radio_group 클래스 하위 라디오 박스 체크 유무 변경 필요. // radio_group 클래스 하위 라디오 박스 체크 유무 변경 필요.
var apprCnt=0; var apprCnt = 0;
var rejtCnt=0; var rejtCnt = 0;
this.numList.forEach(function(value, index) { this.numList.forEach(function (value, index) {
if(value.sttusCd == '01' || value.sttusCd == '02' ){ if (value.sttusCd == '01' || value.sttusCd == '02') {
apprCnt = apprCnt + 1; apprCnt = apprCnt + 1;
}else if(value.sttusCd == '03'){ } else if (value.sttusCd == '03') {
rejtCnt = rejtCnt + 1; rejtCnt = rejtCnt + 1;
} }
}); });
if(apprCnt == this.numList.length){ if (apprCnt == this.numList.length) {
this.$refs.apprRadio.checked = true; this.$refs.apprRadio.checked = true;
}else if(rejtCnt == this.numList.length){ } else if (rejtCnt == this.numList.length) {
this.$refs.rejRadio.checked = true; this.$refs.rejRadio.checked = true;
} }
}, },
updateSttus(){ updateSttus() {
this.doSave() this.doSave();
}, },
async doSave(){ async doSave() {
this.row.memo = this.memo this.row.memo = this.memo;
this.row.regReqNo = this.regReqNo this.row.regReqNo = this.regReqNo;
this.row.adminId = this.adminId this.row.adminId = this.adminId;
this.row.list = this.numList this.row.list = this.numList;
try{ try {
const response = await sendNumMgtApi.updateAppr(this.row); const response = await sendNumMgtApi.updateAppr(this.row);
const result = response.data; const result = response.data;
if (result != null && result.retCode == "0000") { if (result != null && result.retCode == '0000') {
this.apprDetailPopClose() this.apprDetailPopClose();
this.$parent.search() this.$parent.search();
} }
} catch (error) { } catch (error) {
this.row.title = '발신번호 승인'; this.row.title = '발신번호 승인';
@@ -261,9 +325,14 @@ export default {
this.$refs.commmonModal.alertModalOpen(this.row); this.$refs.commmonModal.alertModalOpen(this.row);
} }
}, },
formReset(){ formReset() {
Object.assign(this.$data, this.$options.data()); Object.assign(this.$data, this.$options.data());
}, },
} fromHtmlEntities(str) {
} return (str + '').replace(/&#\d+;/gm, function (s) {
</script> return String.fromCharCode(s.match(/\d+/gm)[0]);
});
},
},
};
</script>

View File

@@ -1,7 +1,7 @@
<template> <template>
<!-- <div class="wrap bg-wrap"> --> <!-- <div class="wrap bg-wrap"> -->
<div> <div>
<div class="dimmed" @click="numberDetailPopClose"></div> <div class="dimmed" @click="numberDetailPopClose"></div>
<!-- 발신번호 상세 (타사업자)--> <!-- 발신번호 상세 (타사업자)-->
<div class="popup modal53 popup_form register"> <div class="popup modal53 popup_form register">
<div class="pop-head"> <div class="pop-head">
@@ -10,78 +10,110 @@
<form autocomplete="off"> <form autocomplete="off">
<table> <table>
<tbody> <tbody>
<tr> <tr>
<th>관리자 ID</th> <th>관리자 ID</th>
<td><input type="text" disabled v-model="adminId"></td> <td><input type="text" disabled v-model="adminId" /></td>
</tr> </tr>
<tr> <tr>
<th>고객사명</th> <th>고객사명</th>
<td><input type="text" disabled v-model="custNm"></td> <td><input type="text" disabled v-model="custNm" /></td>
</tr> </tr>
<tr> <tr>
<th>등록자 ID</th> <th>등록자 ID</th>
<td><input type="text" disabled v-model="register"></td> <td><input type="text" disabled v-model="register" /></td>
</tr> </tr>
<tr> <tr>
<th>사업자번호</th> <th>사업자번호</th>
<td><input type="text" disabled v-model="bRegNo"></td> <td><input type="text" disabled v-model="bRegNo" /></td>
</tr> </tr>
<tr> <tr>
<th>명의자 구분</th> <th>명의자 구분</th>
<td><input type="text" disabled v-model="nmineeDivCd"></td> <td><input type="text" disabled v-model="nmineeDivCd" /></td>
</tr> </tr>
<tr> <tr>
<th>인입채널</th> <th>인입채널</th>
<td><input type="text" disabled v-model="inchDivCd"></td> <td><input type="text" disabled v-model="inchDivCd" /></td>
</tr> </tr>
<tr> <tr>
<th>발신번호</th> <th>발신번호</th>
<td> <td>
<div class="input_add"> <div class="input_add">
<div> <div>
<input type="text" disabled v-model="sndrnoNm"> <input type="text" disabled v-model="sndrnoNm" />
<input type="text" disabled v-model="sndrno"> <input type="text" disabled v-model="sndrno" />
</div>
</div> </div>
</div> </td>
</td> </tr>
</tr> <tr>
<tr> <th>승인상태</th>
<th>승인상태</th> <td class="red">{{ sttusCd }}</td>
<td class="red">{{ sttusCd }}</td> </tr>
</tr> <tr>
<tr> <th>등록일자</th>
<th>등록일자</th> <td><input type="text" disabled v-model="regDt" /></td>
<td><input type="text" disabled v-model="regDt"></td> </tr>
</tr> <tr>
<tr> <th>제출서류</th>
<th>제출서류</th> <td>
<td> <p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p> <div class="sender">
<div class="sender"> <a
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd !== '06' && item.docTpCd !== '07' && item.docTpCd !== '13' && item.docTpCd !== '14'">{{ item.docTitle }} <br></a> href="javascript:void(0);"
</div> @click="download(item.filePath, item.fileNm, item.docTitle)"
</td> v-for="(item, idx) in docList"
</tr> v-if="
<tr> item.docTpCd !== '06' && item.docTpCd !== '07' && item.docTpCd !== '13' && item.docTpCd !== '14'
<th>사업자등록증</th> "
<td> >{{ item.docTitle }} <br
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p> /></a>
<div class="sender"> </div>
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '06'">{{ item.docTitle }}<br></a> </td>
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '07'">{{ item.docTitle }}<br></a> </tr>
</div> <tr>
</td> <th>사업자등록증</th>
</tr> <td>
<tr> <p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
<th>본인 확인</th> <div class="sender">
<td> <a
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p> href="javascript:void(0);"
<div class="sender"> @click="download(item.filePath, item.fileNm, item.docTitle)"
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '13'">{{ item.docTitle }}<br></a> v-for="(item, idx) in docList"
<a href="javascript:void(0);" @click="download(item.filePath, item.fileNm, item.docTitle)" v-for="(item, idx) in docList" v-if="item.docTpCd === '14'">{{ item.docTitle }}<br></a> v-if="item.docTpCd === '06'"
</div> >{{ item.docTitle }}<br
</td> /></a>
</tr> <a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '07'"
>{{ item.docTitle }}<br
/></a>
</div>
</td>
</tr>
<tr>
<th>본인 확인</th>
<td>
<p class="file">파일형식 : jpg, png, pdf, tiff (최대 5MB)</p>
<div class="sender">
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '13'"
>{{ item.docTitle }}<br
/></a>
<a
href="javascript:void(0);"
@click="download(item.filePath, item.fileNm, item.docTitle)"
v-for="(item, idx) in docList"
v-if="item.docTpCd === '14'"
>{{ item.docTitle }}<br
/></a>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</form> </form>
@@ -89,98 +121,89 @@
<button class="btn-default" @click="numberDetailPopClose">닫기</button> <button class="btn-default" @click="numberDetailPopClose">닫기</button>
</div> </div>
</div> </div>
</div>
</div>
</template> </template>
<script> <script>
import sendNumMgtApi from "@/modules/sendNumMgt/service/sendNumMgtApi"; import sendNumMgtApi from '@/modules/sendNumMgt/service/sendNumMgtApi';
export default { export default {
name: "numberRegPop", name: 'numberRegPop',
// mixins: [utils_mixin, chkPattern2], // mixins: [utils_mixin, chkPattern2],
watch:{ watch: {
nmineeDivCd(){ nmineeDivCd() {
// console.log('watch : ', this.nmineeDivCd) // console.log('watch : ', this.nmineeDivCd)
} },
}, },
data(){ data() {
return{ return {
row: {}, row: {},
adminId:'', adminId: '',
custNm:'', custNm: '',
register:'', register: '',
bRegNo:'', bRegNo: '',
nmineeDivCd:'', nmineeDivCd: '',
inchDivCd:'', inchDivCd: '',
sndrnoNm:'', sndrnoNm: '',
sndrno:'', sndrno: '',
sttusCd:'', sttusCd: '',
regDt:'', regDt: '',
docList: [], docList: [],
regRegNo:'', regRegNo: '',
};
}
}, },
components: { components: {},
model: {
prop: 'sendData',
event: 'event-data',
}, },
model: { props: ['sendData'],
prop: 'sendData', created() {
event: 'event-data' // this.formReset();
},
props: ['sendData'],
created(){
// this.formReset();
}, },
destroyed() { destroyed() {},
methods: {
}, download(filePath, fileName, docTitle) {
methods :{ this.row = {};
this.row.docTitle = docTitle;
download(filePath, fileName, docTitle){ this.row.filePath = filePath;
this.row = {} this.row.fileNm = fileName;
this.row.docTitle = docTitle
this.row.filePath = filePath
this.row.fileNm = fileName
sendNumMgtApi.fileDownload(this.row); sendNumMgtApi.fileDownload(this.row);
}, },
// 모달 띄우기 // 모달 띄우기
numberDetailPopOpen(props){ numberDetailPopOpen(props) {
// this.formReset();
// this.formReset(); var dimmed = document.getElementsByClassName('dimmed');
var dimmed = document.getElementsByClassName('dimmed'); dimmed[0].style.display = 'block';
dimmed[0].style.display = 'block'; var wrap = document.getElementsByClassName('popup-wrap');
var wrap = document.getElementsByClassName('popup-wrap'); wrap[0].style.display = 'block';
wrap[0].style.display = 'block'; var obj = document.getElementsByClassName('modal53');
var obj = document.getElementsByClassName('modal53'); obj[0].style.display = 'block';
obj[0].style.display = 'block';
this.numberDetail(props); this.numberDetail(props);
},
}, async numberDetail(props) {
async numberDetail(props){
try { try {
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 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;
if (result != null && result.retCode == "0000") { if (result != null && result.retCode == '0000') {
this.adminId = result.data.adminId;
this.adminId = result.data.adminId this.custNm = this.fromHtmlEntities(result.data.custNm);
this.custNm = result.data.custNm this.register = result.data.register;
this.register = result.data.register this.bRegNo = result.data.bregNo;
this.bRegNo = result.data.bregNo this.nmineeDivCd = result.data.nmineeDivCd;
this.nmineeDivCd = result.data.nmineeDivCd this.inchDivCd = result.data.inchDivCd;
this.inchDivCd = result.data.inchDivCd this.sndrnoNm = result.data.sndrnoNm;
this.sndrnoNm = result.data.sndrnoNm this.sndrno = result.data.sndrno;
this.sndrno = result.data.sndrno this.sttusCd = result.data.sttusCd;
this.sttusCd = result.data.sttusCd this.regDt = result.data.regDt;
this.regDt = result.data.regDt
// result.data.list.forEach() // result.data.list.forEach()
this.docList = result.data.list this.docList = result.data.list;
this.regRegNo = result.data.regRegNo this.regRegNo = result.data.regRegNo;
} }
} catch (error) { } catch (error) {
// this.row.title = '청약고객관리'; // this.row.title = '청약고객관리';
@@ -189,21 +212,25 @@ export default {
alert(error); alert(error);
} }
}, },
// 모달 끄기 // 모달 끄기
numberDetailPopClose(){ numberDetailPopClose() {
var dimmed = document.getElementsByClassName('dimmed'); var dimmed = document.getElementsByClassName('dimmed');
dimmed[0].style.display = 'none'; dimmed[0].style.display = 'none';
var wrap = document.getElementsByClassName('popup-wrap'); var wrap = document.getElementsByClassName('popup-wrap');
wrap[0].style.display = 'none'; wrap[0].style.display = 'none';
var popup = document.getElementsByClassName('modal53'); var popup = document.getElementsByClassName('modal53');
popup[0].style.display = 'none'; popup[0].style.display = 'none';
this.formReset(); this.formReset();
},
}, formReset() {
formReset(){ Object.assign(this.$data, this.$options.data());
Object.assign(this.$data, this.$options.data()); },
}, fromHtmlEntities(str) {
} return (str + '').replace(/&#\d+;/gm, function (s) {
} return String.fromCharCode(s.match(/\d+/gm)[0]);
</script> });
},
},
};
</script>