yjryu / KERIS star
류윤주 류윤주 2023-11-29
231129 이세현 관리자 회원가입 유효성 검사
@9c3e0992c02122d97fbfc85f2d88f2621eb29fd5
client/views/pages/admin/user/UserSelectList.vue
--- client/views/pages/admin/user/UserSelectList.vue
+++ client/views/pages/admin/user/UserSelectList.vue
@@ -110,23 +110,23 @@
                 </div>
                 <div v-show="modalType == 'userInsert'" class="modal-content-monthly">
                     <div class="flex">
-                        <input type="text" placeholder="ID" v-model="mngr.mngr_id" class="id-input" />
-                        <button type="button" class="idchk blue-btn" @click="idChcek">중복확인</button>
+                        <input type="text" placeholder="ID" v-model="mngr.mngr_id" class="id-input" ref="mngr_id"/>
+                        <button type="button" class="idchk blue-btn" @click="idCheck">중복확인</button>
                     </div>
-                    <div><input type="password" name="pw" id="pw" placeholder="password" v-model="mngr.mngr_pw"
+                    <div><input type="password" name="pw" id="pw" placeholder="password" v-model="mngr.mngr_pw" ref="mngr_pw"
                             @change="passwordSyncCheck()" /></div>
                     <div>
-                        <input type="password" name="pwCk" id="pwCk" placeholder="password 확인" v-model="passwordCheck"
+                        <input type="password" name="pwCk" id="pwCk" placeholder="password 확인" v-model="passwordCheck" ref="mngr_pwCheck"
                             @change="passwordSyncCheck()" />
                         <div v-if="this.passwordCheckFlag" style="color:rgb(0, 198, 60); display:block" class="warning">비밀번호
                             일치</div>
                         <div v-else style="color:red; display:block" class="warning">비밀번호 불일치</div>
                     </div>
-                    <div><input type="text" placeholder="이름" v-model="mngr.mngr_nm" /></div>
+                    <div><input type="text" placeholder="이름" v-model="mngr.mngr_nm" ref="mngr_nm" /></div>
                     <div class="flex">
-                        <input type="text" v-model="email_id" placeholder="email">
+                        <input type="text" v-model="email_id" placeholder="email" ref="email_id">
                         <div class="at">@</div>
-                        <input class="mail-input" type="text" v-model="email_domain" :disabled="email_disabled === true">
+                        <input class="mail-input" type="text" v-model="email_domain" :disabled="email_disabled === true" ref="email_domain">
                         <select @change="emailValue($event.target.value)" class="mail-select">
                             <option selected disabled>선택하세요</option>
                             <option value="naver.com">naver.com</option>
@@ -175,7 +175,7 @@
             passwordCheck: null,
             passwordCheckFlag: false,
             //아이디 중복
-            idChcek_boolean: false,
+            idCheck_boolean: false,
 
             //이메일
             email_disabled: true,
@@ -237,11 +237,12 @@
 
         //비밀번호 매칭 확인
         passwordSyncCheck: function () {
-            if (this.mngr.mngr_pw != this.passwordCheck) this.passwordCheckFlag = false;
-            else this.passwordCheckFlag = true;
+            if (this.mngr.mngr_pw != this.passwordCheck) {
+                this.passwordCheckFlag = false;
+            } else { this.passwordCheckFlag = true; }
         },
         //ID 중복 검사
-        idChcek: function () {
+        idCheck: function () {
             const vm = this;
             axios({
                 url: '/managerSelectOne.json',
@@ -255,17 +256,17 @@
                 // console.log("idCheck - response : ", response.data);
                 if (response.data != null) {
                     alert("중복된 ID 입니다.");
-                    vm.idChcek_boolean = false;
+                    vm.idCheck_boolean = false;
                     return false;
                 } else {
                     alert("사용가능한 ID 입니다.");
-                    vm.idChcek_boolean = true;
+                    vm.idCheck_boolean = true;
                     return true;
                 }
             }).catch(function (error) {
                 console.log("idCheck - error : ", error);
                 alert("중복검사 오류, 다시 시도해주세요.");
-                vm.idChcek_boolean = false;
+                vm.idCheck_boolean = false;
             });
         },
 
@@ -284,32 +285,44 @@
         managerInsertCheck: function () {
             if (COMMON_UTIL.isEmpty(this.mngr.mngr_id) === false) {
                 alert('ID를 입력해주세요.');
+                this.$refs.mngr_id.focus()
                 return false;
             }
 
-            if (this.idChcek_boolean === false) {
+            if (this.idCheck_boolean === false) {
                 alert("ID중복검사를 완료해주세요.")
+                this.$refs.mngr_id.focus()
+                return false;
+            }
+            console.log("this.mngr.mngr_pw",this.mngr.mngr_pw)
+            if (this.mngr.mngr_pw == '' || this.mngr.mngr_pw == null){
+                alert("비밀번호를 입력하세요.")
+                this.$refs.mngr_pw.focus()
                 return false;
             }
 
-            if (COMMON_UTIL.isEmpty(this.mngr.mngr_pw) === false) {
-                alert('비밀번호를 입력해주세요.');
+            if (this.passwordCheckFlag === false){
+                alert("비밀번호가 일치하지 않습니다.")
+                this.$refs.mngr_pwCheck.focus()
                 return false;
             }
 
             if (COMMON_UTIL.isEmpty(this.mngr.mngr_nm) === false) {
                 alert('이름을 입력해주세요.');
+                this.$refs.mngr_nm.focus()
                 return false;
             }
 
 
             if (COMMON_UTIL.isEmpty(this.email_id) === false) {
                 alert('이메일 ID를 입력해주세요.');
+                this.$refs.email_id.focus()
                 return false;
             }
 
             if (COMMON_UTIL.isEmpty(this.email_domain) === false) {
-                alert('이메일을 선택 혹은 입력해주세요.');
+                alert('도메인을 선택 혹은 입력해주세요.');
+                this.$refs.email_domain.focus()
                 return false;
             }
 
@@ -485,6 +498,11 @@
                 this.openModal();
             }
         },
+        "mngr.mngr_id": function(newVal, oldVal){
+            this.idCheck_boolean = false;
+            console.log("this.idCheck_boolean",this.idCheck_boolean)
+        }
+        
     },
     computed: {},
     components: {
Add a comment
List