mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-07 02:16:34 +09:00
어드민 메뉴명, 브래드크럼 수정 및 위치 변경
This commit is contained in:
@@ -1,10 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">알림톡 템플릿 관리</h3>
|
<h3 class="title">알림톡 템플릿 관리</h3>
|
||||||
<p class="breadcrumb">채널관리 > 알림톡 템플릿 관리</p>
|
<p class="breadcrumb">카카오 채널관리 > 알림톡 템플릿 관리</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box id">
|
<div class="select_box id">
|
||||||
@@ -25,18 +24,26 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<input class="search-box" type="text" id="id1" placeholder="검색어 입력" v-model.trim="grid.params.searchText1"
|
<input
|
||||||
@keyup.enter="search" maxlength="100"/>
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
id="id1"
|
||||||
|
placeholder="검색어 입력"
|
||||||
|
v-model.trim="grid.params.searchText1"
|
||||||
|
@keyup.enter="search"
|
||||||
|
maxlength="100"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey" @click="search">조회</button>
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</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" @change="changePerPage()">
|
<select name="" id="perPage" v-model="perPageCnt" @change="changePerPage()">
|
||||||
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">{{
|
<option v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">
|
||||||
option.text
|
{{ option.text }}
|
||||||
}}
|
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -58,7 +65,6 @@
|
|||||||
></custom-grid>
|
></custom-grid>
|
||||||
|
|
||||||
<common-modal ref="commmonModal"></common-modal>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,8 +75,8 @@ import customGrid from '@/components/CustomGrid';
|
|||||||
import channelMgtApi from '../service/channelMgtApi';
|
import channelMgtApi from '../service/channelMgtApi';
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from '@/components/modal/commonModal';
|
||||||
import api from "@/service/api";
|
import api from '@/service/api';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'temltList',
|
name: 'temltList',
|
||||||
@@ -79,7 +85,7 @@ export default {
|
|||||||
row: {},
|
row: {},
|
||||||
authType: [],
|
authType: [],
|
||||||
statType: [],
|
statType: [],
|
||||||
cate2Code: "",
|
cate2Code: '',
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
pageType: 'CHANN',
|
pageType: 'CHANN',
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
@@ -89,7 +95,7 @@ export default {
|
|||||||
options: [
|
options: [
|
||||||
{ text: '20', value: 20 },
|
{ text: '20', value: 20 },
|
||||||
{ text: '50', value: 50 },
|
{ text: '50', value: 50 },
|
||||||
{text: '100', value: 100}
|
{ text: '100', value: 100 },
|
||||||
],
|
],
|
||||||
grid: {
|
grid: {
|
||||||
url: '/api/v1/bo/channelMgt/tmpltList',
|
url: '/api/v1/bo/channelMgt/tmpltList',
|
||||||
@@ -99,7 +105,6 @@ export default {
|
|||||||
initialRequest: false,
|
initialRequest: false,
|
||||||
addCls: 'box_OFvis',
|
addCls: 'box_OFvis',
|
||||||
|
|
||||||
|
|
||||||
header: [
|
header: [
|
||||||
[
|
[
|
||||||
{ header: 'No', childNames: [] },
|
{ header: 'No', childNames: [] },
|
||||||
@@ -110,8 +115,8 @@ export default {
|
|||||||
{ header: '템플릿 유형', childNames: [] },
|
{ header: '템플릿 유형', childNames: [] },
|
||||||
{ header: '상태', childNames: [] },
|
{ header: '상태', childNames: [] },
|
||||||
{ header: '발신프로필', childNames: [] },
|
{ header: '발신프로필', childNames: [] },
|
||||||
{header: '마지막 수정일', childNames: []}
|
{ header: '마지막 수정일', childNames: [] },
|
||||||
]
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
@@ -123,16 +128,16 @@ export default {
|
|||||||
{ name: 'tmpltType', header: '템플릿 유형', align: 'center', width: '8%' },
|
{ name: 'tmpltType', header: '템플릿 유형', align: 'center', width: '8%' },
|
||||||
{ name: 'stat', header: '상태', align: 'center', width: '8%' },
|
{ name: 'stat', header: '상태', align: 'center', width: '8%' },
|
||||||
{ name: 'sendProfile', header: '발신프로필', align: 'center', width: '18%' },
|
{ name: 'sendProfile', header: '발신프로필', align: 'center', width: '18%' },
|
||||||
{name: 'lastChgDt', header: '마지막 수정일', width: '10%', cls: 'td_line'}
|
{ name: 'lastChgDt', header: '마지막 수정일', width: '10%', cls: 'td_line' },
|
||||||
],
|
],
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
params: {
|
params: {
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
searchType2: 'custNm',
|
searchType2: 'custNm',
|
||||||
searchText1: ''
|
searchText1: '',
|
||||||
|
},
|
||||||
|
excelHeader: [],
|
||||||
},
|
},
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -151,13 +156,11 @@ export default {
|
|||||||
params: {
|
params: {
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
searchType2: 'custNm',
|
searchType2: 'custNm',
|
||||||
searchText1: ''
|
searchText1: '',
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
let page = 1;
|
let page = 1;
|
||||||
// 페이지 정보 및 검색 조건
|
// 페이지 정보 및 검색 조건
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
@@ -187,7 +190,7 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async getExcelDataDown() {
|
async getExcelDataDown() {
|
||||||
@@ -196,7 +199,7 @@ export default {
|
|||||||
const params = {
|
const params = {
|
||||||
searchType1: this.grid.params.searchType1,
|
searchType1: this.grid.params.searchType1,
|
||||||
searchType2: this.grid.params.searchType2,
|
searchType2: this.grid.params.searchType2,
|
||||||
searchText1: this.grid.params.searchText1
|
searchText1: this.grid.params.searchText1,
|
||||||
};
|
};
|
||||||
|
|
||||||
response = await channelMgtApi.tmpltListExcel(params);
|
response = await channelMgtApi.tmpltListExcel(params);
|
||||||
@@ -206,10 +209,10 @@ export default {
|
|||||||
result.data.list = result.data.list.map((item) => {
|
result.data.list = result.data.list.map((item) => {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
custNm: this.fromHtmlEntities(item.custNm)
|
custNm: this.fromHtmlEntities(item.custNm),
|
||||||
}
|
};
|
||||||
});
|
});
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
return result.data;
|
return result.data;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@@ -232,24 +235,24 @@ export default {
|
|||||||
const data = await this.getExcelDataDown();
|
const data = await this.getExcelDataDown();
|
||||||
let options = {
|
let options = {
|
||||||
header: this.excelHeader,
|
header: this.excelHeader,
|
||||||
dataOrder: 'header'
|
dataOrder: 'header',
|
||||||
};
|
};
|
||||||
xlsx.export(data.list, saveFileName, options).then(() => {
|
xlsx.export(data.list, saveFileName, options).then(() => {});
|
||||||
});
|
|
||||||
},
|
},
|
||||||
getExcelHeader() {
|
getExcelHeader() {
|
||||||
// 헤더를 mockup으로 관리한다.
|
// 헤더를 mockup으로 관리한다.
|
||||||
channelMgtApi.getExcelHeader(this.pageType).then(res => {
|
channelMgtApi.getExcelHeader(this.pageType).then((res) => {
|
||||||
this.excelHeader = res;
|
this.excelHeader = res;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
setCodeData() {
|
setCodeData() {
|
||||||
// 상태 옵션 셋팅.
|
// 상태 옵션 셋팅.
|
||||||
api.commCode({'grpCd': 'TMPLT_STTUS_CD'}).then(response => {
|
api.commCode({ grpCd: 'TMPLT_STTUS_CD' }).then((response) => {
|
||||||
this.statType = response.data.data.list;
|
this.statType = response.data.data.list;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
changePerPage: function () { // 페이지당 조회할 개수
|
changePerPage: function () {
|
||||||
|
// 페이지당 조회할 개수
|
||||||
this.grid.pagePerRows = this.perPageCnt;
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
this.search(true);
|
this.search(true);
|
||||||
},
|
},
|
||||||
@@ -261,15 +264,14 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
// 라우트 하기전 실행
|
// 라우트 하기전 실행
|
||||||
next();
|
next();
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">청약정보조회</h3>
|
<h3 class="title">청약고객관리</h3>
|
||||||
<p class="breadcrumb">고객관리 > 청약정보조회 > 청약고객관리</p>
|
<p class="breadcrumb">고객관리 > 청약고객관리 > 청약고객관리</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="top_tab">
|
<div class="top_tab">
|
||||||
@@ -26,8 +25,8 @@
|
|||||||
v-model="startDate"
|
v-model="startDate"
|
||||||
@selected="selectedStartDate(0)"
|
@selected="selectedStartDate(0)"
|
||||||
@closed="closeDate('start')"
|
@closed="closeDate('start')"
|
||||||
></vuejs-datepicker>
|
></vuejs-datepicker> </span
|
||||||
</span>~
|
>~
|
||||||
<span class="custom_input icon_date">
|
<span class="custom_input icon_date">
|
||||||
<vuejs-datepicker
|
<vuejs-datepicker
|
||||||
:language="ko"
|
:language="ko"
|
||||||
@@ -73,8 +72,15 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력" v-model.trim="grid.params.searchText1"
|
<input
|
||||||
maxlength="100" @keyup.enter="search"/>
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
id="search"
|
||||||
|
placeholder="검색어 입력"
|
||||||
|
v-model.trim="grid.params.searchText1"
|
||||||
|
maxlength="100"
|
||||||
|
@keyup.enter="search"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey" @click="search">조회</button>
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -82,20 +88,20 @@
|
|||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
|
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</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 v-for="option in options" v-bind:value="option.value" v-bind:key="option.value">
|
||||||
option.text
|
{{ option.text }}
|
||||||
}}
|
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue download" @click="excelDown();">엑셀 다운로드</button>
|
<button type="button" class="button blue download" @click="excelDown()">엑셀 다운로드</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<custom-grid
|
<custom-grid
|
||||||
@@ -114,7 +120,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<common-modal ref="commmonModal"></common-modal>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -123,9 +128,9 @@
|
|||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
import custMgtApi from "../service/custMgtApi.js";
|
import custMgtApi from '../service/custMgtApi.js';
|
||||||
import xlsx from '@/common/excel';
|
import xlsx from '@/common/excel';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from '@/components/modal/commonModal';
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -133,7 +138,7 @@ class CustomATagRenderer {
|
|||||||
const el = document.createElement('a');
|
const el = document.createElement('a');
|
||||||
el.href = 'javascript:void(0);';
|
el.href = 'javascript:void(0);';
|
||||||
el.className = 'btn_text';
|
el.className = 'btn_text';
|
||||||
el.innerText = String(props.colValue)
|
el.innerText = String(props.colValue);
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,8 +147,8 @@ class CustomATagRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
selEl.addEventListener("click", () => {
|
selEl.addEventListener('click', () => {
|
||||||
const {callback} = this.props["cgrido" + this.props.colName].options;
|
const { callback } = this.props['cgrido' + this.props.colName].options;
|
||||||
callback(this.props);
|
callback(this.props);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -173,7 +178,7 @@ export default {
|
|||||||
options: [
|
options: [
|
||||||
{ text: '20', value: 20 },
|
{ text: '20', value: 20 },
|
||||||
{ text: '50', value: 50 },
|
{ text: '50', value: 50 },
|
||||||
{text: '100', value: 100}
|
{ text: '100', value: 100 },
|
||||||
],
|
],
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
grid: {
|
grid: {
|
||||||
@@ -187,12 +192,16 @@ export default {
|
|||||||
columns: [
|
columns: [
|
||||||
{ name: 'no', header: 'No', align: 'center', width: '4%' },
|
{ name: 'no', header: 'No', align: 'center', width: '4%' },
|
||||||
{
|
{
|
||||||
name: 'serviceId', header: '서비스 ID\n(관리자 ID)', align: 'center', width: '12%', renderer: {
|
name: 'serviceId',
|
||||||
type: CustomATagRenderer
|
header: '서비스 ID\n(관리자 ID)',
|
||||||
, options: {
|
align: 'center',
|
||||||
|
width: '12%',
|
||||||
|
renderer: {
|
||||||
|
type: CustomATagRenderer,
|
||||||
|
options: {
|
||||||
callback: this.custDetail,
|
callback: this.custDetail,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{ name: 'custNm', header: '고객사명', align: 'center', width: '12%' },
|
{ name: 'custNm', header: '고객사명', align: 'center', width: '12%' },
|
||||||
{ name: 'regNo', header: '가입번호', align: 'center', width: '12%' },
|
{ name: 'regNo', header: '가입번호', align: 'center', width: '12%' },
|
||||||
@@ -200,7 +209,7 @@ export default {
|
|||||||
{ name: 'stat', header: '상태', align: 'center', width: '12%' },
|
{ name: 'stat', header: '상태', align: 'center', width: '12%' },
|
||||||
{ name: 'channel', header: '유치채널', align: 'center', width: '12%' },
|
{ name: 'channel', header: '유치채널', align: 'center', width: '12%' },
|
||||||
{ name: 'plan', header: '요금제', align: 'center', width: '12%' },
|
{ name: 'plan', header: '요금제', align: 'center', width: '12%' },
|
||||||
{name: 'carryOver', header: '이월누적금액', align: 'center', width: '12%'}
|
{ name: 'carryOver', header: '이월누적금액', align: 'center', width: '12%' },
|
||||||
],
|
],
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
params: {
|
params: {
|
||||||
@@ -209,10 +218,10 @@ export default {
|
|||||||
searchType3: '',
|
searchType3: '',
|
||||||
searchText1: '',
|
searchText1: '',
|
||||||
startDt: '',
|
startDt: '',
|
||||||
endDt: ''
|
endDt: '',
|
||||||
|
},
|
||||||
|
excelHeader: [],
|
||||||
},
|
},
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -221,11 +230,9 @@ export default {
|
|||||||
vuejsDatepicker,
|
vuejsDatepicker,
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
||||||
this.setCodeData();
|
this.setCodeData();
|
||||||
this.getExcelHeader();
|
this.getExcelHeader();
|
||||||
this.setPeriodDay(0);
|
this.setPeriodDay(0);
|
||||||
|
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
@@ -237,10 +244,9 @@ export default {
|
|||||||
searchType3: '',
|
searchType3: '',
|
||||||
searchText1: '',
|
searchText1: '',
|
||||||
startDt: '',
|
startDt: '',
|
||||||
endDt: ''
|
endDt: '',
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// 달력 세팅
|
// 달력 세팅
|
||||||
@@ -260,12 +266,11 @@ export default {
|
|||||||
this.search(isKeep);
|
this.search(isKeep);
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
// 라우트 하기전 실행
|
// 라우트 하기전 실행
|
||||||
next();
|
next();
|
||||||
@@ -275,9 +280,9 @@ export default {
|
|||||||
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
|
this.grid.params.startDt = moment(this.startDate).format('YYYYMMDD');
|
||||||
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
|
this.grid.params.endDt = moment(this.endDate).format('YYYYMMDD');
|
||||||
|
|
||||||
this.grid.params.searchType1 = this.searchType1
|
this.grid.params.searchType1 = this.searchType1;
|
||||||
this.grid.params.searchType2 = this.searchType2
|
this.grid.params.searchType2 = this.searchType2;
|
||||||
this.grid.params.searchType3 = this.searchType3
|
this.grid.params.searchType3 = this.searchType3;
|
||||||
|
|
||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
@@ -289,7 +294,8 @@ export default {
|
|||||||
this.row.serviceId = props.serviceId;
|
this.row.serviceId = props.serviceId;
|
||||||
this.$router.push({ name: 'subsDetail', params: this.row });
|
this.$router.push({ name: 'subsDetail', params: this.row });
|
||||||
},
|
},
|
||||||
changePerPage: function () { // 페이지당 조회할 개수
|
changePerPage: function () {
|
||||||
|
// 페이지당 조회할 개수
|
||||||
this.grid.pagePerRows = this.perPageCnt;
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
this.search(true);
|
this.search(true);
|
||||||
},
|
},
|
||||||
@@ -298,18 +304,18 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
},
|
},
|
||||||
setCodeData() {
|
setCodeData() {
|
||||||
// 상태 옵션 셋팅.
|
// 상태 옵션 셋팅.
|
||||||
api.commCode({'grpCd': 'SUBS_STTUS_CD'}).then(response => {
|
api.commCode({ grpCd: 'SUBS_STTUS_CD' }).then((response) => {
|
||||||
this.statType = response.data.data.list;
|
this.statType = response.data.data.list;
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
api.commCode({'grpCd': 'SVCUSER_TP_CD'}).then(response => {
|
api.commCode({ grpCd: 'SVCUSER_TP_CD' }).then((response) => {
|
||||||
this.userType = response.data.data.list;
|
this.userType = response.data.data.list;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -322,7 +328,7 @@ export default {
|
|||||||
searchType1: this.grid.params.searchType1,
|
searchType1: this.grid.params.searchType1,
|
||||||
searchType2: this.grid.params.searchType2,
|
searchType2: this.grid.params.searchType2,
|
||||||
searchType3: this.grid.params.searchType3,
|
searchType3: this.grid.params.searchType3,
|
||||||
searchText1: this.grid.params.searchText1
|
searchText1: this.grid.params.searchText1,
|
||||||
};
|
};
|
||||||
|
|
||||||
response = await custMgtApi.subsListExcel(params);
|
response = await custMgtApi.subsListExcel(params);
|
||||||
@@ -332,10 +338,10 @@ export default {
|
|||||||
result.data.list = result.data.list.map((item) => {
|
result.data.list = result.data.list.map((item) => {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
custNm: this.fromHtmlEntities(item.custNm)
|
custNm: this.fromHtmlEntities(item.custNm),
|
||||||
}
|
};
|
||||||
});
|
});
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
return result.data;
|
return result.data;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@@ -365,14 +371,13 @@ export default {
|
|||||||
|
|
||||||
let options = {
|
let options = {
|
||||||
header: this.excelHeader,
|
header: this.excelHeader,
|
||||||
dataOrder: 'header'
|
dataOrder: 'header',
|
||||||
};
|
};
|
||||||
xlsx.export(data.list, saveFileName, options).then(() => {
|
xlsx.export(data.list, 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;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -392,7 +397,6 @@ export default {
|
|||||||
if (this.startDate > this.endDate) {
|
if (this.startDate > this.endDate) {
|
||||||
this.startDate = this.endDate;
|
this.startDate = this.endDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
selectedEndDate(day) {
|
selectedEndDate(day) {
|
||||||
if (day != undefined && day != null) {
|
if (day != undefined && day != null) {
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">문자 발신번호 관리</h3>
|
<h3 class="title">발신번호 관리</h3>
|
||||||
<p class="breadcrumb">발신번호관리 > 문자 발신번호 관리</p>
|
<p class="breadcrumb">발신번호관리 > 발신번호 관리</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="group">
|
<div class="group">
|
||||||
@@ -42,15 +41,23 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<input class="search-box" type="text" id="search" placeholder="검색어 입력"
|
<input
|
||||||
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
id="search"
|
||||||
|
placeholder="검색어 입력"
|
||||||
v-model.trim="grid.params.searchText1"
|
v-model.trim="grid.params.searchText1"
|
||||||
maxlength="100" @keyup.enter="search"/>
|
maxlength="100"
|
||||||
|
@keyup.enter="search"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey" @click="search">조회</button>
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</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" @change="changePerPage()">
|
<select name="" id="perPage" v-model="perPageCnt" @change="changePerPage()">
|
||||||
<option value="20">20</option>
|
<option value="20">20</option>
|
||||||
@@ -60,7 +67,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</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="deleteNumber()">삭제</button>
|
<button type="button" class="button white del" @click="deleteNumber()">삭제</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -84,26 +91,24 @@
|
|||||||
<number-reg-pop ref="numberRegPop"></number-reg-pop>
|
<number-reg-pop ref="numberRegPop"></number-reg-pop>
|
||||||
<number-detail-pop ref="numberDetailPop" />
|
<number-detail-pop ref="numberDetailPop" />
|
||||||
<common-modal ref="commmonModal"></common-modal>
|
<common-modal ref="commmonModal"></common-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from '@/components/modal/commonModal';
|
||||||
import NumberRegPop from '../components/NumberRegPop';
|
import NumberRegPop from '../components/NumberRegPop';
|
||||||
import NumberDetailPop from "@/modules/sendNumMgt/components/NumberDetailPop";
|
import NumberDetailPop from '@/modules/sendNumMgt/components/NumberDetailPop';
|
||||||
import sendNumMgtApi from '../service/sendNumMgtApi';
|
import sendNumMgtApi from '../service/sendNumMgtApi';
|
||||||
|
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
this.props = props;
|
this.props = props;
|
||||||
const el = document.createElement('a');
|
const el = document.createElement('a');
|
||||||
el.href = 'javascript:void(0);';
|
el.href = 'javascript:void(0);';
|
||||||
el.className = 'btn_text';
|
el.className = 'btn_text';
|
||||||
el.innerText = String(props.colValue)
|
el.innerText = String(props.colValue);
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,8 +117,8 @@ class CustomATagRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
selEl.addEventListener("click", () => {
|
selEl.addEventListener('click', () => {
|
||||||
const {callback} = this.props["cgrido" + this.props.colName].options;
|
const { callback } = this.props['cgrido' + this.props.colName].options;
|
||||||
callback(this.props);
|
callback(this.props);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -126,7 +131,7 @@ export default {
|
|||||||
row: {},
|
row: {},
|
||||||
authType: [],
|
authType: [],
|
||||||
statType: [],
|
statType: [],
|
||||||
cate2Code: "",
|
cate2Code: '',
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
searchType4: 'regNo',
|
searchType4: 'regNo',
|
||||||
searchType3: '',
|
searchType3: '',
|
||||||
@@ -154,8 +159,8 @@ export default {
|
|||||||
{ header: '인입채널', childNames: [] },
|
{ header: '인입채널', childNames: [] },
|
||||||
{ header: '발신번호', childNames: [] },
|
{ header: '발신번호', childNames: [] },
|
||||||
{ header: '승인상태', childNames: [] },
|
{ header: '승인상태', childNames: [] },
|
||||||
{header: '등록일자', childNames: []}
|
{ header: '등록일자', childNames: [] },
|
||||||
]
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
@@ -169,15 +174,19 @@ export default {
|
|||||||
{ name: 'nmineeDivCd', header: '명의자 구분', align: 'center', width: '10%' },
|
{ name: 'nmineeDivCd', header: '명의자 구분', align: 'center', width: '10%' },
|
||||||
{ name: 'inchDivCd', header: '인입채널', align: 'center', width: '10%' },
|
{ name: 'inchDivCd', header: '인입채널', align: 'center', width: '10%' },
|
||||||
{
|
{
|
||||||
name: 'sndrno', header: '발신번호', align: 'center', width: '10%', renderer: {
|
name: 'sndrno',
|
||||||
type: CustomATagRenderer
|
header: '발신번호',
|
||||||
, options: {
|
align: 'center',
|
||||||
|
width: '10%',
|
||||||
|
renderer: {
|
||||||
|
type: CustomATagRenderer,
|
||||||
|
options: {
|
||||||
callback: this.numberDetail,
|
callback: this.numberDetail,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{ name: 'sttusCd', header: '승인상태', align: 'center', width: '10%' },
|
{ name: 'sttusCd', header: '승인상태', align: 'center', width: '10%' },
|
||||||
{name: 'regDt', header: '등록일자', width: '10%', cls: 'td_line'}
|
{ name: 'regDt', header: '등록일자', width: '10%', cls: 'td_line' },
|
||||||
],
|
],
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
params: {
|
params: {
|
||||||
@@ -187,10 +196,10 @@ export default {
|
|||||||
searchType4: '',
|
searchType4: '',
|
||||||
searchText1: '',
|
searchText1: '',
|
||||||
pagePerRows: '',
|
pagePerRows: '',
|
||||||
page: ''
|
page: '',
|
||||||
|
},
|
||||||
|
excelHeader: [],
|
||||||
},
|
},
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -201,7 +210,7 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// this.grid.pagePerRows = 50
|
// this.grid.pagePerRows = 50
|
||||||
this.isFirst=true
|
this.isFirst = true;
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
@@ -212,8 +221,8 @@ export default {
|
|||||||
searchType2: '',
|
searchType2: '',
|
||||||
searchType3: '',
|
searchType3: '',
|
||||||
searchType4: '',
|
searchType4: '',
|
||||||
searchText1: ''
|
searchText1: '',
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -233,25 +242,24 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search: function (isKeep) {
|
search: function (isKeep) {
|
||||||
this.grid.params.searchType1 = this.searchType1
|
this.grid.params.searchType1 = this.searchType1;
|
||||||
this.grid.params.searchType2 = this.searchType2
|
this.grid.params.searchType2 = this.searchType2;
|
||||||
this.grid.params.searchType3 = this.searchType3
|
this.grid.params.searchType3 = this.searchType3;
|
||||||
this.grid.params.searchType4 = this.searchType4
|
this.grid.params.searchType4 = this.searchType4;
|
||||||
if (this.isFirst) {
|
if (this.isFirst) {
|
||||||
this.grid.pagePerRows = 50
|
this.grid.pagePerRows = 50;
|
||||||
}
|
}
|
||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
this.isFirst=false
|
this.isFirst = false;
|
||||||
},
|
},
|
||||||
sendStoreData: function () {
|
sendStoreData: function () {
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
numberRegPopOpen: function () {
|
numberRegPopOpen: function () {
|
||||||
this.$refs.numberRegPop.numberRegPopopen();
|
this.$refs.numberRegPop.numberRegPopopen();
|
||||||
@@ -265,16 +273,15 @@ export default {
|
|||||||
deleteNumber() {
|
deleteNumber() {
|
||||||
if (this.doValidate()) {
|
if (this.doValidate()) {
|
||||||
this.row.title = '문자발신번호 관리';
|
this.row.title = '문자발신번호 관리';
|
||||||
this.row.msg1 = '삭제 하시겠습니까?'
|
this.row.msg1 = '삭제 하시겠습니까?';
|
||||||
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async numberDelete() {
|
async numberDelete() {
|
||||||
|
|
||||||
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.$refs.table.reloadData();
|
this.$refs.table.reloadData();
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@@ -288,7 +295,8 @@ export default {
|
|||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
doValidate() { //로우데이터 삭제하도록 수정
|
doValidate() {
|
||||||
|
//로우데이터 삭제하도록 수정
|
||||||
|
|
||||||
if (this.totalItems == 0) {
|
if (this.totalItems == 0) {
|
||||||
this.row.title = '문자발신번호 관리';
|
this.row.title = '문자발신번호 관리';
|
||||||
@@ -313,20 +321,20 @@ export default {
|
|||||||
this.numberDelete();
|
this.numberDelete();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changePerPage: function () { // 페이지당 조회할 개수
|
changePerPage: function () {
|
||||||
|
// 페이지당 조회할 개수
|
||||||
this.grid.pagePerRows = this.perPageCnt;
|
this.grid.pagePerRows = this.perPageCnt;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
// 라우트 하기전 실행
|
// 라우트 하기전 실행
|
||||||
next();
|
next();
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">관리자/유치채널 관리</h3>
|
<h3 class="title">관리자/유치채널 관리</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 관리자/유치채널 관리</p>
|
<p class="breadcrumb">운영 관리 > 관리자/유치채널 관리</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<div class="select_box">
|
<div class="select_box">
|
||||||
@@ -26,22 +26,43 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="input_box id">
|
<div class="input_box id">
|
||||||
<label for="id1" class="label">ID</label>
|
<label for="id1" class="label">ID</label>
|
||||||
<input class="search-box" type="text" id="id1" placeholder="검색어 입력" v-model.trim="grid.params.searchText1"
|
<input
|
||||||
@keyup.enter="search" :readonly="!isFocused" @focus="isFocused = true" @blur="isFocused = false"/>
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
id="id1"
|
||||||
|
placeholder="검색어 입력"
|
||||||
|
v-model.trim="grid.params.searchText1"
|
||||||
|
@keyup.enter="search"
|
||||||
|
:readonly="!isFocused"
|
||||||
|
@focus="isFocused = true"
|
||||||
|
@blur="isFocused = false"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input_box">
|
<div class="input_box">
|
||||||
<label for="name" class="label">이름(대리점명)</label>
|
<label for="name" class="label">이름(대리점명)</label>
|
||||||
<input class="search-box" type="text" id="name" placeholder="검색어 입력" v-model.trim="grid.params.searchText2"
|
<input
|
||||||
@keyup.enter="search" :readonly="!isFocused" @focus="isFocused = true" @blur="isFocused = false"/>
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
id="name"
|
||||||
|
placeholder="검색어 입력"
|
||||||
|
v-model.trim="grid.params.searchText2"
|
||||||
|
@keyup.enter="search"
|
||||||
|
:readonly="!isFocused"
|
||||||
|
@focus="isFocused = true"
|
||||||
|
@blur="isFocused = false"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="button grey" @click="search">조회</button>
|
<button type="button" class="button grey" @click="search">조회</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalItems.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') }}</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>
|
||||||
<button type="button" class="button white delete del" @click="rowDelete();">삭제</button>
|
<button type="button" class="button white delete del" @click="rowDelete()">삭제</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
@@ -69,11 +90,10 @@
|
|||||||
<script>
|
<script>
|
||||||
import customGrid from '@/components/CustomGrid';
|
import customGrid from '@/components/CustomGrid';
|
||||||
import AdminRegPop from '../components/AdminRegPop';
|
import AdminRegPop from '../components/AdminRegPop';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from '@/components/modal/commonModal';
|
||||||
import AdminDetailPop from '../components/AdminDetailPop';
|
import AdminDetailPop from '../components/AdminDetailPop';
|
||||||
import api from '@/service/api.js';
|
import api from '@/service/api.js';
|
||||||
import sysMgtApi from "../service/sysMgtApi.js";
|
import sysMgtApi from '../service/sysMgtApi.js';
|
||||||
|
|
||||||
|
|
||||||
class CustomATagRenderer {
|
class CustomATagRenderer {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -81,7 +101,7 @@ class CustomATagRenderer {
|
|||||||
const el = document.createElement('a');
|
const el = document.createElement('a');
|
||||||
el.href = 'javascript:void(0);';
|
el.href = 'javascript:void(0);';
|
||||||
el.className = 'btn_text';
|
el.className = 'btn_text';
|
||||||
el.innerText = String(props.colValue)
|
el.innerText = String(props.colValue);
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,8 +110,8 @@ class CustomATagRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
selEl.addEventListener("click", () => {
|
selEl.addEventListener('click', () => {
|
||||||
const {callback} = this.props["cgrido" + this.props.colName].options;
|
const { callback } = this.props['cgrido' + this.props.colName].options;
|
||||||
callback(this.props);
|
callback(this.props);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -105,7 +125,7 @@ export default {
|
|||||||
row: {},
|
row: {},
|
||||||
authType: [],
|
authType: [],
|
||||||
statType: [],
|
statType: [],
|
||||||
cate2Code: "",
|
cate2Code: '',
|
||||||
totalItems: 0,
|
totalItems: 0,
|
||||||
// 테이블 리스트 데이터
|
// 테이블 리스트 데이터
|
||||||
perPageCnt: 20,
|
perPageCnt: 20,
|
||||||
@@ -124,25 +144,29 @@ export default {
|
|||||||
{ name: 'auth', header: '권한', align: 'center', width: '18%' },
|
{ name: 'auth', header: '권한', align: 'center', width: '18%' },
|
||||||
{ name: 'name', header: '이름(대리점명)', align: 'center', width: '18%' },
|
{ name: 'name', header: '이름(대리점명)', align: 'center', width: '18%' },
|
||||||
{
|
{
|
||||||
name: 'adminId', header: 'ID', align: 'center', width: '18%', renderer: {
|
name: 'adminId',
|
||||||
type: CustomATagRenderer
|
header: 'ID',
|
||||||
, options: {
|
align: 'center',
|
||||||
|
width: '18%',
|
||||||
|
renderer: {
|
||||||
|
type: CustomATagRenderer,
|
||||||
|
options: {
|
||||||
callback: this.detailPop,
|
callback: this.detailPop,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{ name: 'adminStat', header: '상태', align: 'center', width: '18%', cls: 'td_line' },
|
{ name: 'adminStat', header: '상태', align: 'center', width: '18%', cls: 'td_line' },
|
||||||
{name: 'regDt', header: '등록일', align: 'center', width: '18%'}
|
{ name: 'regDt', header: '등록일', align: 'center', width: '18%' },
|
||||||
],
|
],
|
||||||
noDataStr: '검색 결과가 없습니다.',
|
noDataStr: '검색 결과가 없습니다.',
|
||||||
params: {
|
params: {
|
||||||
searchType1: '',
|
searchType1: '',
|
||||||
searchType2: '',
|
searchType2: '',
|
||||||
searchText1: '',
|
searchText1: '',
|
||||||
searchText2: ''
|
searchText2: '',
|
||||||
|
},
|
||||||
|
excelHeader: [],
|
||||||
},
|
},
|
||||||
excelHeader: []
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -157,9 +181,7 @@ export default {
|
|||||||
//let cont = document.querySelector(".wrap");
|
//let cont = document.querySelector(".wrap");
|
||||||
//cont.classList.add("main_wrap");
|
//cont.classList.add("main_wrap");
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {},
|
||||||
|
|
||||||
},
|
|
||||||
mounted() {
|
mounted() {
|
||||||
let page = 1;
|
let page = 1;
|
||||||
// 페이지 정보 및 검색 조건
|
// 페이지 정보 및 검색 조건
|
||||||
@@ -173,29 +195,26 @@ export default {
|
|||||||
isKeep = true;
|
isKeep = true;
|
||||||
}
|
}
|
||||||
this.search(isKeep);
|
this.search(isKeep);
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search: function (isKeep) {
|
search: function (isKeep) {
|
||||||
this.grid.params.searchType1 = this.searchType1
|
this.grid.params.searchType1 = this.searchType1;
|
||||||
this.grid.params.searchType2 = this.searchType2
|
this.grid.params.searchType2 = this.searchType2;
|
||||||
this.$refs.table.search(this.grid.params, isKeep);
|
this.$refs.table.search(this.grid.params, isKeep);
|
||||||
this.sendStoreData();
|
this.sendStoreData();
|
||||||
},
|
},
|
||||||
detailPop(props) {
|
detailPop(props) {
|
||||||
|
|
||||||
this.$refs.adminDetailModal.adminDetailModalOpen(props);
|
this.$refs.adminDetailModal.adminDetailModalOpen(props);
|
||||||
},
|
},
|
||||||
ModalOpen: function (target) {
|
ModalOpen: function (target) {},
|
||||||
|
|
||||||
},
|
|
||||||
adminRegPopOpen: function () {
|
adminRegPopOpen: function () {
|
||||||
this.$refs.adminRegModal.ModalOpen(1);
|
this.$refs.adminRegModal.ModalOpen(1);
|
||||||
},
|
},
|
||||||
adminReg2PopOpen: function () {
|
adminReg2PopOpen: function () {
|
||||||
this.$refs.adminRegModal.ModalOpen(2);
|
this.$refs.adminRegModal.ModalOpen(2);
|
||||||
},
|
},
|
||||||
doValidate() { //로우데이터 삭제하도록 수정
|
doValidate() {
|
||||||
|
//로우데이터 삭제하도록 수정
|
||||||
|
|
||||||
if (this.totalItems == 0) {
|
if (this.totalItems == 0) {
|
||||||
this.row.title = '관리자/유치채널 관리';
|
this.row.title = '관리자/유치채널 관리';
|
||||||
@@ -220,7 +239,7 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
@@ -228,27 +247,23 @@ export default {
|
|||||||
async setCodeData() {
|
async setCodeData() {
|
||||||
// 상태
|
// 상태
|
||||||
try {
|
try {
|
||||||
const res = await api.commCode({'grpCd': 'ADM_STTUS_CD'});
|
const res = await api.commCode({ grpCd: 'ADM_STTUS_CD' });
|
||||||
if (res.data.retCode == '0000') {
|
if (res.data.retCode == '0000') {
|
||||||
this.statType = res.data.data.list;
|
this.statType = res.data.data.list;
|
||||||
}
|
}
|
||||||
}catch(err){
|
} catch (err) {}
|
||||||
|
|
||||||
}
|
|
||||||
// 권한
|
// 권한
|
||||||
try {
|
try {
|
||||||
const response = await api.commAuth();
|
const response = await api.commAuth();
|
||||||
if (response.data.retCode == '0000') {
|
if (response.data.retCode == '0000') {
|
||||||
this.authType = response.data.data.list;
|
this.authType = response.data.data.list;
|
||||||
}
|
}
|
||||||
}catch(err){
|
} catch (err) {}
|
||||||
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
rowDelete() {
|
rowDelete() {
|
||||||
if (this.doValidate()) {
|
if (this.doValidate()) {
|
||||||
this.row.title = '관리자/유치채널 관리';
|
this.row.title = '관리자/유치채널 관리';
|
||||||
this.row.msg1 = '삭제 하시겠습니까?'
|
this.row.msg1 = '삭제 하시겠습니까?';
|
||||||
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -256,7 +271,7 @@ export default {
|
|||||||
try {
|
try {
|
||||||
let response = await sysMgtApi.deleteAdmin(this.row);
|
let response = await sysMgtApi.deleteAdmin(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
this.$refs.table.reloadData();
|
this.$refs.table.reloadData();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -277,15 +292,14 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
beforeRouteLeave(to, from, next) {
|
beforeRouteLeave(to, from, next) {
|
||||||
|
|
||||||
const getP = this.$refs.table.getPagination();
|
const getP = this.$refs.table.getPagination();
|
||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
// 라우트 하기전 실행
|
// 라우트 하기전 실행
|
||||||
next();
|
next();
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -3,10 +3,13 @@
|
|||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">권한 관리</h3>
|
<h3 class="title">권한 관리</h3>
|
||||||
<p class="breadcrumb">시스템관리 > 권한 관리</p>
|
<p class="breadcrumb">운영 관리 > 권한 관리</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="count">총 <span>{{ totalCnt }}</span>건</div>
|
<div class="count">
|
||||||
|
총 <span>{{ totalCnt }}</span
|
||||||
|
>건
|
||||||
|
</div>
|
||||||
<div class="button_group">
|
<div class="button_group">
|
||||||
<button type="button" class="button blue add" @click="insertAuth()">권한 추가</button>
|
<button type="button" class="button blue add" @click="insertAuth()">권한 추가</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,8 +41,7 @@
|
|||||||
<td>{{ option.authNm }}</td>
|
<td>{{ option.authNm }}</td>
|
||||||
<td>{{ option.authStat }}</td>
|
<td>{{ option.authStat }}</td>
|
||||||
<td>{{ option.regDt }}</td>
|
<td>{{ option.regDt }}</td>
|
||||||
<td v-if="option.authCd === '1001' || option.authCd === '1002'" class="two_btn_group">
|
<td v-if="option.authCd === '1001' || option.authCd === '1002'" class="two_btn_group"></td>
|
||||||
</td>
|
|
||||||
<td v-else class="two_btn_group">
|
<td v-else class="two_btn_group">
|
||||||
<button type="button" class="button grey" @click="updateAuth(option.authCd)">수정</button>
|
<button type="button" class="button grey" @click="updateAuth(option.authCd)">수정</button>
|
||||||
<button type="button" class="button white delete" @click="authDelete(option.authCd)">삭제</button>
|
<button type="button" class="button white delete" @click="authDelete(option.authCd)">삭제</button>
|
||||||
@@ -54,8 +56,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import sysMgtApi from "../service/sysMgtApi.js";
|
import sysMgtApi from '../service/sysMgtApi.js';
|
||||||
import commonModal from "@/components/modal/commonModal";
|
import commonModal from '@/components/modal/commonModal';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'authList',
|
name: 'authList',
|
||||||
@@ -72,23 +74,19 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
this.getAuthList();
|
this.getAuthList();
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {},
|
||||||
|
mounted() {},
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
async getAuthList() {
|
async getAuthList() {
|
||||||
try {
|
try {
|
||||||
const response = await sysMgtApi.authList(this.row);
|
const response = await sysMgtApi.authList(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
this.list = result.data.list;
|
this.list = result.data.list;
|
||||||
this.totalCnt = result.data.list.length;
|
this.totalCnt = result.data.list.length;
|
||||||
} 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 (err) {
|
} catch (err) {
|
||||||
@@ -106,23 +104,23 @@ export default {
|
|||||||
authDelete(target) {
|
authDelete(target) {
|
||||||
this.row.authCd = target;
|
this.row.authCd = target;
|
||||||
this.row.title = '권한 관리';
|
this.row.title = '권한 관리';
|
||||||
this.row.msg1 = '삭제 하시겠습니까?'
|
this.row.msg1 = '삭제 하시겠습니까?';
|
||||||
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
this.$refs.commmonModal.confirmModalOpen2(this.row);
|
||||||
},
|
},
|
||||||
async deleteAuth() {
|
async deleteAuth() {
|
||||||
try {
|
try {
|
||||||
let response = await sysMgtApi.deleteAuth(this.row);
|
let response = await sysMgtApi.deleteAuth(this.row);
|
||||||
const result = response.data;
|
const result = response.data;
|
||||||
if (result != null && result.retCode == "0000") {
|
if (result != null && result.retCode == '0000') {
|
||||||
this.getAuthList();
|
this.getAuthList();
|
||||||
return;
|
return;
|
||||||
}else if(result != null && result.retCode == "4020"){
|
} else if (result != null && result.retCode == '4020') {
|
||||||
this.row = {}
|
this.row = {};
|
||||||
this.row.title = '권한 관리';
|
this.row.title = '권한 관리';
|
||||||
this.row.msg1 = '해당 권한에 매핑된 사용자가 있습니다.';
|
this.row.msg1 = '해당 권한에 매핑된 사용자가 있습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
} else {
|
} else {
|
||||||
this.row = {}
|
this.row = {};
|
||||||
this.row.title = '권한 관리';
|
this.row.title = '권한 관리';
|
||||||
this.row.msg1 = '실패 하였습니다.';
|
this.row.msg1 = '실패 하였습니다.';
|
||||||
this.$refs.commmonModal.alertModalOpen(this.row);
|
this.$refs.commmonModal.alertModalOpen(this.row);
|
||||||
@@ -139,6 +137,6 @@ export default {
|
|||||||
this.deleteAuth();
|
this.deleteAuth();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -1,18 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="contents">
|
<div class="contents">
|
||||||
<div class="contents_wrap">
|
<div class="contents_wrap">
|
||||||
<div class="top_wrap">
|
<div class="top_wrap">
|
||||||
<h3 class="title">배치 모니터링</h3>
|
<h3 class="title">배치 모니터링</h3>
|
||||||
<p class="breadcrumb">모니터링 > 배치 모니터링</p>
|
<p class="breadcrumb">운영 관리 > 배치 모니터링</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<custom-grid
|
<custom-grid ref="table" :url="grid.url" :columns="grid.columns"></custom-grid>
|
||||||
ref="table"
|
|
||||||
:url="grid.url"
|
|
||||||
:columns="grid.columns"
|
|
||||||
|
|
||||||
></custom-grid>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,7 +21,7 @@ class CustomATagRenderer {
|
|||||||
const el = document.createElement('a');
|
const el = document.createElement('a');
|
||||||
el.href = 'javascript:void(0);';
|
el.href = 'javascript:void(0);';
|
||||||
el.className = 'btn_text';
|
el.className = 'btn_text';
|
||||||
el.innerText = String(props.colValue)
|
el.innerText = String(props.colValue);
|
||||||
this.el = el;
|
this.el = el;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,8 +30,8 @@ class CustomATagRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addEvent(selEl) {
|
addEvent(selEl) {
|
||||||
selEl.addEventListener("click", () => {
|
selEl.addEventListener('click', () => {
|
||||||
const {callback} = this.props["cgrido" + this.props.colName].options;
|
const { callback } = this.props['cgrido' + this.props.colName].options;
|
||||||
callback(this.props);
|
callback(this.props);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -55,25 +49,30 @@ export default {
|
|||||||
[
|
[
|
||||||
{ header: '배치ID', childNames: {} },
|
{ header: '배치ID', childNames: {} },
|
||||||
{ header: '배치명', childNames: {} },
|
{ header: '배치명', childNames: {} },
|
||||||
]
|
],
|
||||||
],
|
],
|
||||||
columns: [
|
columns: [
|
||||||
{ name: 'batchType', header: '배치유형', align: 'center', width: '4%' },
|
{ name: 'batchType', header: '배치유형', align: 'center', width: '4%' },
|
||||||
{ name: 'batchId', header: '배치ID', align: 'center', width: '10%' },
|
{ name: 'batchId', header: '배치ID', align: 'center', width: '10%' },
|
||||||
{
|
{
|
||||||
name: 'batchNm', header:'배치명',align:'left', width:'15%', renderer: {
|
name: 'batchNm',
|
||||||
type: CustomATagRenderer
|
header: '배치명',
|
||||||
, options: {
|
align: 'left',
|
||||||
|
width: '15%',
|
||||||
|
renderer: {
|
||||||
|
type: CustomATagRenderer,
|
||||||
|
options: {
|
||||||
callback: this.batchDetail,
|
callback: this.batchDetail,
|
||||||
}
|
},
|
||||||
}},
|
},
|
||||||
|
},
|
||||||
{ name: 'batchCycle', header: '실행일자', align: 'center', width: '7%' },
|
{ name: 'batchCycle', header: '실행일자', align: 'center', width: '7%' },
|
||||||
{ name: 'batchTime', header: '실행시간', align: 'center', width: '6%' },
|
{ name: 'batchTime', header: '실행시간', align: 'center', width: '6%' },
|
||||||
{ name: 'regDt', header: '배치 수행시간', align: 'center', width: '13%' },
|
{ name: 'regDt', header: '배치 수행시간', align: 'center', width: '13%' },
|
||||||
{ name: 'sttusCd', header: '상태', align: 'center', width: '5%' },
|
{ name: 'sttusCd', header: '상태', align: 'center', width: '5%' },
|
||||||
{name: 'errMsg', header:'메시지',align:'left', width:'40%'}
|
{ name: 'errMsg', header: '메시지', align: 'left', width: '40%' },
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -89,8 +88,8 @@ export default {
|
|||||||
perPage: 50,
|
perPage: 50,
|
||||||
params: {
|
params: {
|
||||||
startDt: '',
|
startDt: '',
|
||||||
endDt: ''
|
endDt: '',
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -103,7 +102,6 @@ export default {
|
|||||||
isKeep = true;
|
isKeep = true;
|
||||||
}
|
}
|
||||||
this.search(isKeep);
|
this.search(isKeep);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
@@ -120,14 +118,11 @@ export default {
|
|||||||
this.$store.commit('searchcondition/updateSearchCondition', {
|
this.$store.commit('searchcondition/updateSearchCondition', {
|
||||||
page: getP._currentPage,
|
page: getP._currentPage,
|
||||||
perPage: this.perPageCnt,
|
perPage: this.perPageCnt,
|
||||||
params: this.grid.params
|
params: this.grid.params,
|
||||||
});
|
});
|
||||||
|
|
||||||
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
Reference in New Issue
Block a user