-
알림톡 템플릿 목록 조회
+
알림톡 템플릿 관리
채널관리 > 알림톡 템플릿 관리
diff --git a/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue b/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue
index c23ea7b..fc946a0 100644
--- a/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue
+++ b/frontend/src/modules/custMgt/components/MemberBulkRegPop.vue
@@ -178,8 +178,11 @@ export default {
if(fileExpend != "xlsx"){
//alert("파일은 (xlsx) 형식만 등록 가능합니다.");
this.row.title = '파일 업로드';
- this.row.msg1 = '샘플과 동일한 확장자가 아닙니다.';
- this.row.msg1 = '다시 업로드 해주세요.';
+ this.row.msg1 = '업로드 할 수 없는 파일 형식입니다.';
+ this.row.msg2 = '샘플 파일을 내려 받아 사용해주세요.';
+ // this.row.msg1 = '샘플과 동일한 확장자가 아닙니다.';
+ // this.row.msg1 = '다시 업로드 해주세요.';
+
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
@@ -205,26 +208,60 @@ export default {
this.row.msg1 = '파일을 읽는 동안 에러가 발생 했습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
};
- reader.onloadend = (e) => {
- };
+ // reader.onloadend = (e) => {
+ // };
reader.onload = (e) => {
let data = reader.result;
let workbook = XLSX.read(data, {type: 'binary'});
+
+ /** header 규격 비교 start */
+ var readHeader = vm.get_header_row(workbook.Sheets["Sheet1"]);
+ var headersArr = [];
+ var excelHeaders = this.excelHeader[0];
+ for(var i=0; i < excelHeaders.length; i++){
+ var headerCol = excelHeaders[i];
+ headersArr.push(headerCol.name);
+ }
+
+ if(readHeader.length == headersArr.length){
+ for(var i=0; i {
const rowObj = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {raw: true});
- tmpResult = rowObj;
+ tmpResult = rowObj;
const limitCnt = 100;
this.totalCnt = Number(this.totalItems) + rowObj.length;
- this.insertRowCnt = rowObj.length;
+
+ this.insertRowCnt = rowObj.length;
if (this.totalCnt > limitCnt) {
this.row.title = '청약고객관리';
this.row.msg1 = '100건이상은 등록되지 않습니다.';
this.$refs.commmonModal.alertModalOpen(this.row);
return false;
}
-
for (const [idx, r] of rowObj.entries()) {
if (idx > limitCnt - 1) {
break;
@@ -235,7 +272,7 @@ export default {
휴대폰번호 = '' + (vm.isNull(휴대폰번호) ? '' : 휴대폰번호);
이메일 = '' + (vm.isNull(이메일) ? '' : 이메일);
ID잠금 = '' + (vm.isNull(ID잠금) ? '' : ID잠금);
-
+
// 휴대폰번호=''+휴대폰번호;
if (!vm.isMobile(휴대폰번호)) {
if (vm.isMobile2(휴대폰번호)) {
@@ -243,7 +280,7 @@ export default {
}
}
- let {retVal, msg} = vm.validXlxs({ID, 이름, 휴대폰번호, 이메일, ID잠금});
+ let {retVal, msg} = vm.validXlxs({ID, 이름, 휴대폰번호, 이메일, ID잠금});
if (retVal) {
const pVal = [
{name: '이름', val: 이름, len: 20},
@@ -265,6 +302,23 @@ export default {
};
reader.readAsBinaryString(file);
},
+
+ // sheet에서 header만 읽어 오기
+ get_header_row(sheet) {
+ var headers = [];
+ var range = XLSX.utils.decode_range(sheet['!ref']);
+ var C, R = range.s.r; /* start in the first row */
+ /* walk every column in the range */
+ for(C = range.s.c; C <= range.e.c; ++C) {
+ var cell = sheet[XLSX.utils.encode_cell({c:C, r:R})] /* find the cell in the first row */
+ var hdr = "UNKNOWN " + C; // <-- replace with your desired default
+ if(cell && cell.t) hdr = XLSX.utils.format_cell(cell);
+ headers.push(hdr);
+ }
+ return headers;
+ },
+
+
validXlxs({이름, 휴대폰번호, 이메일}) {
if (this.isNull(이름)) {
return {retVal: false, msg: '이름 누락'};
@@ -311,6 +365,16 @@ export default {
this.row.adminId = this.adminId;
this.row.list = this.nData;
+ // 대량 ID 등록시 파일 여부 체크
+ let element = document.getElementById('uploadFile');
+ if(element.firstChild == null){
+ this.row.title = '청약고객 관리';
+ this.row.msg1 = '업로드 파일이 없습니다.';
+ this.row.msg2 = '파일을 업로드 해주세요.';
+ this.$refs.commmonModal.alertModalOpen(this.row);
+ return false;
+ }
+
try {
const response = await custMgtApi.insertMassUser(this.row);
const result = response.data;
diff --git a/frontend/src/modules/custMgt/components/MemberRegPop.vue b/frontend/src/modules/custMgt/components/MemberRegPop.vue
index fec588a..39aff15 100644
--- a/frontend/src/modules/custMgt/components/MemberRegPop.vue
+++ b/frontend/src/modules/custMgt/components/MemberRegPop.vue
@@ -106,10 +106,32 @@ export default {
}
},
//사용자ID 생성 Confirm
- memberInsertConfirm() {
+ async memberInsertConfirm() {
// confirm 팝업 노출
if (this.doValidate()) {
- this.$refs.validationConfirmModalPop.confirmInsertOpen()
+ // ID 중복체크
+ try{
+ this.row.adminId = this.adminId;
+ this.row.userId = this.userId;
+ this.row.userNm = this.userNm;
+ this.row.userEmail = this.email;
+ this.row.mdn = this.mdn;
+ this.row.userStat = this.stat;
+ const response = await custMgtApi.duplicateCheckUserId(this.row);
+ const result = response.data;
+ if (result != null && result.retCode == "0000") {
+ this.$refs.validationConfirmModalPop.confirmInsertOpen();
+ } else if (result != null && result.retCode == "4018") {
+ // 이미 사용중인 ID
+ this.row.title = '청약고객관리';
+ this.row.msg1 = '중복된 아이디가 있습니다.';
+ this.row.msg2 = '아이디를 다시 확인하여 등록 부탁드립니다.';
+ this.$parent.$refs.commmonModal.alertModalOpen(this.row);
+ }
+ }catch(err){
+
+ }
+
}
},
//사용자ID 수정 처리
diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js
index 8e153d4..a65a865 100644
--- a/frontend/src/modules/custMgt/service/custMgtApi.js
+++ b/frontend/src/modules/custMgt/service/custMgtApi.js
@@ -48,6 +48,11 @@ const insertUser = (params) => {
return httpClient.post('/api/v1/bo/custMgt/insertUser', params);
}
+// 사용자 ID 중복 체크
+const duplicateCheckUserId = (params) => {
+ return httpClient.post('/api/v1/bo/custMgt/duplicateCheckUserId', params);
+}
+
// 사용자 ID 수정
const updateUser = (params) => {
return httpClient.post('/api/v1/bo/custMgt/updateUser', params);
@@ -117,4 +122,5 @@ export default {
updateAdminInfoTotal,
deleteMemo,
insertTestId,
+ duplicateCheckUserId,
}
diff --git a/frontend/src/modules/riskMgt/views/IntrcpList.vue b/frontend/src/modules/riskMgt/views/IntrcpList.vue
index e1fe985..51e3b3a 100644
--- a/frontend/src/modules/riskMgt/views/IntrcpList.vue
+++ b/frontend/src/modules/riskMgt/views/IntrcpList.vue
@@ -130,6 +130,7 @@ export default {
blckRsnCd: '',
blckYn: '',
sndblckTpCd: '',
+ isFirst:true,
options: [
{text: '20', value: 20},
{text: '50', value: 50},
@@ -137,7 +138,7 @@ export default {
],
grid: {
url: '/api/v1/bo/riskMgt/sendNum/intrcpList',
- pagePerRows: 50,
+ pagePerRows: 20,
//perPage: 50,
pagination: true,
isCheckbox: false,
@@ -177,7 +178,9 @@ export default {
blckYn: '',
sndblckTpCd: '',
sndblckTpNm: '',
- blckSndrno: ''
+ blckSndrno: '',
+ pagePerRows: '',
+ page: ''
},
excelHeader: []
}
@@ -217,8 +220,13 @@ export default {
this.grid.params.blckYn = this.blckYn
this.grid.params.sndblckTpCd = this.sndblckTpCd
+ if(this.isFirst){
+ this.grid.pagePerRows = 50
+ }
+
this.$refs.table.search(this.grid.params, isKeep);
this.sendStoreData();
+ this.isFirst=false;
},
changePerPage: function () { // 페이지당 조회할 개수
this.grid.pagePerRows = this.perPageCnt;
@@ -232,7 +240,6 @@ export default {
params: this.grid.params
});
- const getCondition = this.$store.getters['searchcondition/getSearchCondition'];
},
setCodeData() {
// 상태 옵션 셋팅.
diff --git a/frontend/src/modules/sendNumMgt/components/NumberRegPop.vue b/frontend/src/modules/sendNumMgt/components/NumberRegPop.vue
index ad520a6..9044383 100644
--- a/frontend/src/modules/sendNumMgt/components/NumberRegPop.vue
+++ b/frontend/src/modules/sendNumMgt/components/NumberRegPop.vue
@@ -51,6 +51,7 @@
+
@@ -272,11 +273,15 @@ export default {
this.custSeq = data.custSeq
},
addNumberInput() {
+ if(this.numberInputs.length == 9){
+ return false;
+ }
this.numberInputs.push({
sendNm: '',
sendNum: ''
})
},
+
delNumberInput(index) {
this.numberInputs.splice(index, 1)
},
@@ -742,6 +747,8 @@ export default {
}
this.otherBusinessFile = null;
},
+
+ /** 저장 */
async saveSendNum() {
this.saveSendNums = []
this.saveSendNums.push({
@@ -797,6 +804,7 @@ export default {
}
} else if (this.nmineeDivCd === '02') {
+ // 타사업자
const response = await sendNumMgtApi.insertNumber2(this.communicationFile, this.delegationFile, this.attorneyFile, this.otherBusinessFile ,this.delegatedIdentificationFile, this.delegateCertificateFile, this.delegatedBusinessFile, this.authorizedBusinessFile, this.corporateCertificateFile, this.identificationCardFile, this.identificationEvidenceFile, this.adminId, this.custNm, this.bRegNo, this.nmineeDivCd, this.saveSendNums, this.bizrAuthYn, this.custSeq, this.bRegNo)
const result = response.data;
diff --git a/frontend/src/modules/sendNumMgt/views/NumberList.vue b/frontend/src/modules/sendNumMgt/views/NumberList.vue
index 6eec2ea..c6107a3 100644
--- a/frontend/src/modules/sendNumMgt/views/NumberList.vue
+++ b/frontend/src/modules/sendNumMgt/views/NumberList.vue
@@ -3,8 +3,8 @@