diff --git a/public/img/mbti/est.png b/public/img/mbti/estj.png similarity index 100% rename from public/img/mbti/est.png rename to public/img/mbti/estj.png diff --git a/src/components/board/BoardProfile.vue b/src/components/board/BoardProfile.vue index 25ae89d..87e08bc 100644 --- a/src/components/board/BoardProfile.vue +++ b/src/components/board/BoardProfile.vue @@ -10,12 +10,8 @@
{{ date }}
@@ -29,112 +25,104 @@ - + diff --git a/src/components/button/EditBtn.vue b/src/components/button/EditBtn.vue index d3437b0..a5d2496 100644 --- a/src/components/button/EditBtn.vue +++ b/src/components/button/EditBtn.vue @@ -1,30 +1,30 @@ diff --git a/src/components/editor/QEditor.vue b/src/components/editor/QEditor.vue index 3ff77e9..b66537b 100644 --- a/src/components/editor/QEditor.vue +++ b/src/components/editor/QEditor.vue @@ -52,147 +52,148 @@ diff --git a/src/components/input/FormSelect.vue b/src/components/input/FormSelect.vue index 1da67e5..99fbfb3 100644 --- a/src/components/input/FormSelect.vue +++ b/src/components/input/FormSelect.vue @@ -5,7 +5,7 @@ *
- @@ -91,7 +91,7 @@ const props = defineProps({ }, }); -const emit = defineEmits(['update:data']); +const emit = defineEmits(['update:data', 'blur']); const selectData = ref(props.value); // props.value의 변경을 감지하는 watch 추가 @@ -106,6 +106,10 @@ watch(() => props.data, (newData) => { if (props.value === '0') { selectData.value = newData[0].value; emit('update:data', selectData.value); + + if (props.isColor) { + emit('blur'); + } } } }, { immediate: true }); diff --git a/src/components/user/RegisterForm.vue b/src/components/user/RegisterForm.vue index 5a5b557..0a6c7a7 100644 --- a/src/components/user/RegisterForm.vue +++ b/src/components/user/RegisterForm.vue @@ -95,9 +95,11 @@ :is-color="true" :data="colorList" @update:data="color = $event" + @blur="checkColorDuplicate" class="w-50" />
+ {{ colorError }}
{ const response = await $api.get(`/user/checkId?memberIds=${id.value}`); - if (!response.data.data) { idErrorAlert.value = true; idError.value = '이미 사용 중인 아이디입니다.'; @@ -295,9 +298,26 @@ } }; + + // 색상 중복체크 + const checkColorDuplicate = async () => { + const response = await $api.get(`/user/checkColor?memberCol=${color.value}`); + + if (response.data.data) { + colorErrorAlert.value = true; + colorError.value = '이미 사용 중인 색상입니다.'; + } else { + colorErrorAlert.value = false; + colorError.value = ''; + } + }; + + // 회원가입 const handleSubmit = async () => { + await checkColorDuplicate(); + idAlert.value = id.value.trim() === ''; passwordAlert.value = password.value.trim() === ''; passwordcheckAlert.value = passwordcheck.value.trim() === ''; @@ -317,7 +337,8 @@ } if (profilAlert.value || idAlert.value || idErrorAlert.value || passwordAlert.value || passwordcheckAlert.value || - passwordcheckErrorAlert.value || pwhintResAlert.value || nameAlert.value || birthAlert.value || addressAlert.value || phoneAlert.value || phoneErrorAlert.value) { + passwordcheckErrorAlert.value || pwhintResAlert.value || nameAlert.value || birthAlert.value || + addressAlert.value || phoneAlert.value || phoneErrorAlert.value || colorErrorAlert.value) { return; } diff --git a/src/components/wordDict/DictWrite.vue b/src/components/wordDict/DictWrite.vue index ceaa999..a08e901 100644 --- a/src/components/wordDict/DictWrite.vue +++ b/src/components/wordDict/DictWrite.vue @@ -14,13 +14,13 @@ />
- +
- +
-
- +
+ + +
+
- +
@@ -48,95 +71,167 @@ diff --git a/src/views/board/BoardView.vue b/src/views/board/BoardView.vue index 84bb8b2..d32b3e6 100644 --- a/src/views/board/BoardView.vue +++ b/src/views/board/BoardView.vue @@ -18,6 +18,21 @@ @editClick="editClick" @deleteClick="deleteClick" /> + + +
+
+ + +
+ {{ passwordAlert }} +
@@ -31,17 +46,18 @@
-
-
+
@@ -97,11 +113,7 @@ @submitEdit="handleSubmitEdit" @update:password="updatePassword" /> - +
@@ -110,677 +122,664 @@