diff --git a/src/main/java/com/ns/mobile/website/biz/dto/BusinessPartnerDto.java b/src/main/java/com/ns/mobile/website/biz/dto/BusinessPartnerDto.java index b21445d..f093500 100644 --- a/src/main/java/com/ns/mobile/website/biz/dto/BusinessPartnerDto.java +++ b/src/main/java/com/ns/mobile/website/biz/dto/BusinessPartnerDto.java @@ -17,12 +17,14 @@ public class BusinessPartnerDto extends BaseDto{ String partnerName; String carrierName; + boolean serialYn; public static BusinessPartnerDto of(BusinessPartner businessPartner) { BusinessPartnerDto businessPartnerDto = BusinessPartnerDto.builder() .partnerName(businessPartner.getPartnerName()) .carrierName(businessPartner.getCarrierName()) + .serialYn(businessPartner.isSerialYn()) .build(); businessPartnerDto.base(businessPartner); diff --git a/src/main/java/com/ns/mobile/website/biz/entity/BusinessPartner.java b/src/main/java/com/ns/mobile/website/biz/entity/BusinessPartner.java index efb7a7f..c6a62a7 100644 --- a/src/main/java/com/ns/mobile/website/biz/entity/BusinessPartner.java +++ b/src/main/java/com/ns/mobile/website/biz/entity/BusinessPartner.java @@ -16,5 +16,6 @@ public class BusinessPartner extends BaseEntity{ private String partnerName; private String carrierName; + private boolean serialYn; } diff --git a/src/main/resources/static/res/front/js/biz/guest/add.js b/src/main/resources/static/res/front/js/biz/guest/add.js index 0b55ecd..2b2ad53 100644 --- a/src/main/resources/static/res/front/js/biz/guest/add.js +++ b/src/main/resources/static/res/front/js/biz/guest/add.js @@ -9,6 +9,10 @@ let appVue = new Vue({ phoneList: [], subRatePlanList: [] }, + view :{ + mainRatePlanList: [], + subRatePlanList: [] + }, openingDate : '', businessPartner : '', mobileCarrier: '', @@ -17,9 +21,15 @@ let appVue = new Vue({ phoneNumber: '', pname: '', pbirthday: '', - pphoneNumber: '', - - mainRatePlan: '' + pphoneNumber: '', + mainRatePlan: '', + subRatePlan: '', + serialNumber: '', + installment: '0', + petName: '', + insertType: 'change', + usim: '0', + formula: '' }, mounted: function () { this.init(); @@ -32,6 +42,20 @@ let appVue = new Vue({ init: function () { let $this = this; $this.bindData(); + $this.insertTypeChange(); + + $(".money").on('blur', function(e){ + e.stopPropagation(); + e.stopImmediatePropagation(); + let value = e.target.value; + value = Number(value.replaceAll(',', '')); + if(isNaN(value)) { //NaN인지 판별 + e.target.value = 0; + }else { //NaN이 아닌 경우 + const formatValue = value.toLocaleString('ko-KR'); + e.target.value = formatValue; + } + }); }, bindData: function () { let $this = this; @@ -52,20 +76,13 @@ let appVue = new Vue({ $('.selectpicker').selectpicker(); }); - }, - businessPartnerChange: function (){ - let $this = this; - $this.mobileCarrier = $('#businessPartner').find(':selected').data('carrier') - - for(var count = 0; count < changeItem.size(); count++){ - var option = $(""); - $('#mainRatePlan').append(option); - } }, birthdayChange: function (){ let $this = this; if($this.birthday.length != 8){ //생일 입력 안됨 - console.log($this.birthday.length); + $('#pname').removeAttr('disabled'); + $('#pbirthday').removeAttr('disabled'); + $('#pphoneNumber').removeAttr('disabled'); return false; } var date = new Date(); @@ -81,17 +98,82 @@ let appVue = new Vue({ var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy; if(18 < age){ //성인 - console.log(age+"성인"); $('#pname').attr('disabled', 'disabled'); $('#pbirthday').attr('disabled', 'disabled'); $('#pphoneNumber').attr('disabled', 'disabled'); }else{ //민짜 - console.log(age+"민짜"); $('#pname').removeAttr('disabled'); $('#pbirthday').removeAttr('disabled'); $('#pphoneNumber').removeAttr('disabled'); } + }, + insertTypeChange: function(){ + let $this = this; + switch($this.insertType){ + case 'change': + case 'other': + $this.usim = '0'; + break; + case 'move': + case 'new': + $this.usim = '7,700'; + break; + } + }, + businessPartnerChange: function (){ + let index = $('#businessPartner').find(':selected').index(); + let $this = this; + //통신사 셋팅 + $this.mobileCarrier = $this.info.businessPartnerList[index].carrierName; + + //요금제 셋팅 + $this.view.mainRatePlanList = []; //배열 초기화 + Array.prototype.push.apply($this.view.mainRatePlanList, $this.info.mainRatePlanList.filter(function(x){ + if(x.carrierName === $this.mobileCarrier){ + return true; + } + })); + $('#mainRatePlan').selectpicker('refresh'); + //$('#mainRatePlan').find(':selected').index(); //선택값쓸떄 + + //시리얼 입력 여부 + if($this.info.businessPartnerList[index].serialYn){ + $("#serialNumber").removeAttr('disabled'); + }else{ + $("#serialNumber").attr('disabled', 'disabled'); + } + + }, + formulaChange: function(e){ + let $this = this; + var result = 0; + var calc = e.target.value; //1+7+8-5-4+4 = 11 + var calcList = calc.split('+');//1//7//8-5-4//4 + calcList.forEach(function(num1, i){ + if(num1.indexOf('-') == -1){ //only 숫자 + result += parseInt(num1); + console.log("+"+num1); + }else{//빼기 8-5-4 + num1.split('-').forEach(function(num2, j){ + if(j==0 && i==0){ + result =parseInt(num1); + console.log("="+num1); + j++; + }else if(j==0){ + result +=parseInt(num2); + console.log("+"+num2); + } + else{ + result -=parseInt(num2); + console.log("-"+num1); + } + }); + } + }); + + console.log(result); + } } }); \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/guest/add.jsp b/src/main/webapp/WEB-INF/view/guest/add.jsp index a72e840..19c8510 100644 --- a/src/main/webapp/WEB-INF/view/guest/add.jsp +++ b/src/main/webapp/WEB-INF/view/guest/add.jsp @@ -33,7 +33,7 @@