From 0aea6b76dc9754f26728c94b753c77a0c1abc666 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 13:55:57 +0900
Subject: [PATCH 01/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20isApproved?=
=?UTF-8?q?=EC=86=8D=EC=84=B1=20task=20Detail=EC=97=90=EC=84=9C=20?=
=?UTF-8?q?=EB=B0=9B=EA=B8=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/task-detail/TaskDetail.vue | 4 ++--
src/types/user.ts | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/components/task-detail/TaskDetail.vue b/src/components/task-detail/TaskDetail.vue
index 0f929cd8..8834d11a 100644
--- a/src/components/task-detail/TaskDetail.vue
+++ b/src/components/task-detail/TaskDetail.vue
@@ -10,7 +10,7 @@
class="flex flex-col overflow-y-auto rounded-lg w-full max-w-[1104px] min-w-[768px] h-[calc(100%-96px)] bg-white shadow-custom p-6 fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50">
()
+const { closeTaskDetail, selectedId } = defineProps()
const queryClient = useQueryClient()
const memberStore = useMemberStore()
diff --git a/src/types/user.ts b/src/types/user.ts
index d298ec61..c001e18c 100644
--- a/src/types/user.ts
+++ b/src/types/user.ts
@@ -119,7 +119,6 @@ export interface CommentFileDetails {
export interface TaskDetailProps {
selectedId: number | null
closeTaskDetail: () => void
- isApproved?: boolean
}
export interface ManagerInfoTypes {
nickName: string
From 0e7712629a50efd64d6716b69cb95f5f3e962818 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 15:36:51 +0900
Subject: [PATCH 02/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=ED=8C=8C?=
=?UTF-8?q?=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=A0=9C=ED=95=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../request-task/RequestTaskFileInput.vue | 28 +++++++++++++++++--
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/components/request-task/RequestTaskFileInput.vue b/src/components/request-task/RequestTaskFileInput.vue
index 74cc26b9..d14d3738 100644
--- a/src/components/request-task/RequestTaskFileInput.vue
+++ b/src/components/request-task/RequestTaskFileInput.vue
@@ -22,13 +22,21 @@
파일 선택
+
+ 파일추가를 실패했습니다
+ 최대 5개, 각 5mb까지 가능합니다.
+
diff --git a/src/layout/TheView.vue b/src/layout/TheView.vue
index bb11551a..bc17b6f5 100644
--- a/src/layout/TheView.vue
+++ b/src/layout/TheView.vue
@@ -1,10 +1,8 @@
@@ -16,7 +14,7 @@ import { useRoute } from 'vue-router'
import TaskDetail from '@/components/task-detail/TaskDetail.vue'
const route = useRoute()
-const selectedID = ref(route.query.taskId || null)
+const selectedID = ref(route.query?.taskId || null)
watch(
() => route.query.taskId,
From 6cc008cda5755e5053537a9879c5396c0c4efe6e Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 15:59:54 +0900
Subject: [PATCH 04/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=EC=9A=94?=
=?UTF-8?q?=EC=B2=AD=20=EC=83=9D=EC=84=B1=20=EB=AF=B8=20=EC=84=A0=ED=83=9D?=
=?UTF-8?q?=ED=95=9C=20=EB=B6=80=EB=B6=84=EC=97=90=20=EB=8C=80=ED=95=9C=20?=
=?UTF-8?q?=EA=B2=BD=EA=B3=A0=20=ED=91=9C=EC=8B=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/request-task/RequestTask.vue | 2 ++
src/components/request-task/RequestTaskFileInput.vue | 5 ++---
src/components/request-task/RequestTaskInput.vue | 11 ++++++-----
3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/components/request-task/RequestTask.vue b/src/components/request-task/RequestTask.vue
index 34d716ed..22f85939 100644
--- a/src/components/request-task/RequestTask.vue
+++ b/src/components/request-task/RequestTask.vue
@@ -5,12 +5,14 @@
:options="mainCategoryArr"
:label-name="'1차 카테고리'"
:placeholderText="'1차 카테고리를 선택해주세요'"
+ :is-invalidate="isInvalidate"
:isDisabled="false" />
{
handleModal()
return
}
- const updatedFiles = modelValue ? [...modelValue, ...target.files] : target.files
+ const updatedFiles = modelValue ? [...modelValue, ...newFiles] : newFiles
if (updatedFiles.length > 5) {
handleModal()
return
}
-
- emit('update:modelValue', updatedFiles)
+ emit('update:modelValue', updatedFiles.length === 1 ? [updatedFiles[0]] : updatedFiles)
}
}
diff --git a/src/components/request-task/RequestTaskInput.vue b/src/components/request-task/RequestTaskInput.vue
index ac036112..2258e37d 100644
--- a/src/components/request-task/RequestTaskInput.vue
+++ b/src/components/request-task/RequestTaskInput.vue
@@ -7,6 +7,11 @@
class="text-red-1">
*
+
+ {{ labelName }}을 입력해주세요
+
-
- {{ labelName }}을 입력해주세요
-
+
From f48851d6f27c39860ab621cbd8a99d3e03435c92 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 16:51:57 +0900
Subject: [PATCH 05/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=EC=9A=94?=
=?UTF-8?q?=EC=B2=AD=20=EC=8A=B9=EC=9D=B8=20=EB=82=A0=EC=A7=9C=EC=84=A0?=
=?UTF-8?q?=ED=83=9D=20=EC=98=88=EC=99=B8=EC=82=AC=ED=95=AD=20=EC=A0=9C?=
=?UTF-8?q?=ED=95=9C=ED=95=98=EA=B8=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../request-approve/DueDateInput.vue | 2 ++
.../request-approve/RequestApprove.vue | 20 ++++++++++++++++++-
src/utils/date.ts | 3 ++-
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/components/request-approve/DueDateInput.vue b/src/components/request-approve/DueDateInput.vue
index 166a4ee2..888fb356 100644
--- a/src/components/request-approve/DueDateInput.vue
+++ b/src/components/request-approve/DueDateInput.vue
@@ -2,6 +2,7 @@
(e.target as HTMLInputElement).showPicker()"
@input="updateValue(($event.target as HTMLInputElement).value)" />
@@ -12,6 +13,7 @@ import type { DueDateInputProps } from '@/types/common'
import { defineEmits, defineProps, onMounted } from 'vue'
const { modelValue, inputType } = defineProps()
+
const emit = defineEmits(['update:modelValue'])
const updateValue = (value: string) => {
emit('update:modelValue', value)
diff --git a/src/components/request-approve/RequestApprove.vue b/src/components/request-approve/RequestApprove.vue
index 9e7cefbf..77e17d5d 100644
--- a/src/components/request-approve/RequestApprove.vue
+++ b/src/components/request-approve/RequestApprove.vue
@@ -23,13 +23,22 @@
:placeholderText="'담당자를 선택해주세요'"
:is-invalidate="isInvalidate" />
-
마감기한
+
+
마감기한
+
+ 기한정보를 모두 입력하세요
+
+
@@ -110,6 +119,8 @@ const handleCancel = () => {
}
const handleSubmit = async () => {
+ console.log(approveData.value.dueDate)
+ console.log(approveData.value.dueTime)
if (!category1.value || !category2.value) {
isInvalidate.value = 'category'
return
@@ -118,6 +129,13 @@ const handleSubmit = async () => {
isInvalidate.value = 'manager'
return
}
+ if (
+ (approveData.value.dueDate && !approveData.value.dueTime) ||
+ (!approveData.value.dueDate && approveData.value.dueTime)
+ ) {
+ isInvalidate.value = 'date'
+ return
+ }
const requestData = {
categoryId: category2.value.id,
diff --git a/src/utils/date.ts b/src/utils/date.ts
index 269f5ef1..d1cfcc84 100644
--- a/src/utils/date.ts
+++ b/src/utils/date.ts
@@ -20,7 +20,8 @@ export const formatDateWithDay = (dateString: string) => {
}
export const convertToISO = (dateStr: string, timeStr: string) => {
- if (dateStr === '' || timeStr === '') return null
+ if (dateStr === '') return null
+ if (!timeStr) timeStr = '00:00'
const date = new Date(`${dateStr}T${timeStr}:00`)
return date.toISOString()
}
From 94118c07629eb7bfa6abd79330dd6f420f921fdf Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 17:16:49 +0900
Subject: [PATCH 06/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=ED=9E=88?=
=?UTF-8?q?=EC=8A=A4=ED=86=A0=EB=A6=AC=20=EA=B0=80=EC=A0=B8=EC=98=A4?=
=?UTF-8?q?=EA=B8=B0=20=EB=A1=A4=EB=B0=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/task-detail/TaskDetail.vue | 7 ++++++-
src/components/task-detail/TaskDetailHistoryInput.vue | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/components/task-detail/TaskDetail.vue b/src/components/task-detail/TaskDetail.vue
index 14c74a4c..ce5bfce9 100644
--- a/src/components/task-detail/TaskDetail.vue
+++ b/src/components/task-detail/TaskDetail.vue
@@ -73,7 +73,7 @@ const { data, refetch } = useQuery({
enabled: false
})
-const { data: historyData } = useQuery({
+const { data: historyData, refetch: refetchHistory } = useQuery({
queryKey: ['historyData', selectedId],
queryFn: () => getHistory(selectedId),
enabled: isDataFetched.value
@@ -89,4 +89,9 @@ watch(
},
{ immediate: true }
)
+watch(isDataFetched, async newValue => {
+ if (newValue) {
+ await refetchHistory()
+ }
+})
diff --git a/src/components/task-detail/TaskDetailHistoryInput.vue b/src/components/task-detail/TaskDetailHistoryInput.vue
index d160af20..5c042635 100644
--- a/src/components/task-detail/TaskDetailHistoryInput.vue
+++ b/src/components/task-detail/TaskDetailHistoryInput.vue
@@ -56,7 +56,8 @@ const isComposing = ref(false)
const isPossible = computed(
() =>
- history.length !== 0 && (info.value.role !== 'ROLE_USER' || info.value.role === requestorName)
+ history.length !== 0 &&
+ (info.value.role !== 'ROLE_USER' || info.value.nickname === requestorName)
)
const isSendable = computed(() => isPossible.value && messageText.value.trim() !== '')
From f08aacde0ed963ee341647a6e3d25ef4a5f9a731 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 18:36:05 +0900
Subject: [PATCH 07/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=EC=9A=94?=
=?UTF-8?q?=EC=B2=AD=20=EC=B7=A8=EC=86=8C=20=ED=9B=84=20=EC=8B=A4=ED=8C=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/task-detail/TaskDetailTopBar.vue | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/components/task-detail/TaskDetailTopBar.vue b/src/components/task-detail/TaskDetailTopBar.vue
index 9f63ab2f..a97c1310 100644
--- a/src/components/task-detail/TaskDetailTopBar.vue
+++ b/src/components/task-detail/TaskDetailTopBar.vue
@@ -46,7 +46,7 @@
+ @close="finishCancel">
요청이 취소되었습니다
@@ -71,6 +71,10 @@ const router = useRouter()
const { isApproved, closeTaskDetail, id, isProcessor, isRequestor } =
defineProps()
+import { useQueryClient } from '@tanstack/vue-query'
+
+const queryClient = useQueryClient()
+
const isModalOpen = ref({
cancel: false,
success: false
@@ -90,6 +94,15 @@ const cancelTask = async () => {
toggleModal('success')
}
+const finishCancel = async () => {
+ await queryClient.refetchQueries({
+ queryKey: ['myRequest']
+ })
+
+ toggleModal('success')
+ closeTaskDetail()
+}
+
const ApproveTask = () => {
router.push(`/request-approve/${id}`)
}
From 1c265e289bdc057c59edab06016430a24203a511 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 19:28:00 +0900
Subject: [PATCH 08/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=EC=9A=94?=
=?UTF-8?q?=EC=B2=AD=20=EC=8A=B9=EC=9D=B8=20=EA=B2=BD=EB=A1=9C=20=EC=A7=80?=
=?UTF-8?q?=EC=A0=95,=20=EC=8A=B9=EC=9D=B8=20=EC=8B=9C=20=EC=B9=B4?=
=?UTF-8?q?=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EB=AF=B8=EC=84=A0=ED=83=9D=20?=
=?UTF-8?q?=EA=B2=BD=EA=B3=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/request-task/ReRequestTask.vue | 6 ++++--
src/components/task-detail/TaskDetailTopBar.vue | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/components/request-task/ReRequestTask.vue b/src/components/request-task/ReRequestTask.vue
index 270a2ff9..77889ca5 100644
--- a/src/components/request-task/ReRequestTask.vue
+++ b/src/components/request-task/ReRequestTask.vue
@@ -5,13 +5,15 @@
:options="mainCategoryArr"
:label-name="'1차 카테고리'"
:placeholderText="'1차 카테고리를 선택해주세요'"
- :isDisabled="false" />
+ :isDisabled="false"
+ :is-invalidate="isInvalidate" />
+ :isDisabled="!category1"
+ :is-invalidate="isInvalidate" />
{
}
const ApproveTask = () => {
- router.push(`/request-approve/${id}`)
+ router.push(`/request-approve?requestId=${id}`)
}
From 9f1b5f51946574bdb567e339f10fe1add8663e90 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 21:00:02 +0900
Subject: [PATCH 09/21] =?UTF-8?q?:recycle:=20[refactor]=20:=202=EC=B0=A8?=
=?UTF-8?q?=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EC=84=A0=ED=83=9D=20?=
=?UTF-8?q?=EC=8B=9C=20=EB=AF=B8=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=EB=B0=98?=
=?UTF-8?q?=EC=98=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/user.ts | 5 +++++
src/components/TaskCard.vue | 3 ++-
src/components/request-task/RequestTask.vue | 9 ++++++++-
src/components/task-detail/TaskDetail.vue | 5 +----
4 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/api/user.ts b/src/api/user.ts
index 8bcfa9f7..1ca9590c 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -82,3 +82,8 @@ export const cancelTaskUser = async (taskId: number) => {
const response = await axiosInstance.patch(`/api/tasks/${taskId}/cancel`)
return response.data
}
+
+export const getSubCategoryDetail = async (categoryId: number) => {
+ const response = await axiosInstance.get(`/api/sub-categories/${categoryId}`)
+ return response.data
+}
diff --git a/src/components/TaskCard.vue b/src/components/TaskCard.vue
index d4090acd..80dd26b0 100644
--- a/src/components/TaskCard.vue
+++ b/src/components/TaskCard.vue
@@ -35,6 +35,7 @@
@@ -48,8 +49,8 @@ import type { TaskCardProps } from '@/types/manager'
import { statusAsColor } from '@/utils/statusAsColor'
import { computed, ref } from 'vue'
import CommonIcons from './common/CommonIcons.vue'
-import TaskLabel from './common/TaskLabel.vue'
import ImageContainer from './common/ImageContainer.vue'
+import TaskLabel from './common/TaskLabel.vue'
import TaskDetail from './task-detail/TaskDetail.vue'
const { data } = defineProps<{ data: TaskCardProps; draggable?: boolean }>()
diff --git a/src/components/request-task/RequestTask.vue b/src/components/request-task/RequestTask.vue
index 22f85939..b11f539e 100644
--- a/src/components/request-task/RequestTask.vue
+++ b/src/components/request-task/RequestTask.vue
@@ -39,7 +39,7 @@
From 58efa95eecc89ac6b34cd63cf6634f2bef475038 Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 21:09:36 +0900
Subject: [PATCH 10/21] =?UTF-8?q?:recycle:=20[refactor]=20:=20=EC=9A=94?=
=?UTF-8?q?=EC=B2=AD=20=EC=83=9D=EC=84=B1=EC=97=90=EC=84=9C=20=EA=B8=B8?=
=?UTF-8?q?=EC=9D=B4=EC=A0=9C=ED=95=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/request-task/RequestTaskInput.vue | 3 ++-
src/components/request-task/RequestTaskTextArea.vue | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/request-task/RequestTaskInput.vue b/src/components/request-task/RequestTaskInput.vue
index 2258e37d..6bb85033 100644
--- a/src/components/request-task/RequestTaskInput.vue
+++ b/src/components/request-task/RequestTaskInput.vue
@@ -19,7 +19,8 @@
:disabled="isEdit"
@input="updateValue(($event.target as HTMLInputElement).value)"
:placeholder="placeholderText"
- :class="{ 'text-gray-500': isEdit, 'text-black': !isEdit }" />
+ :class="{ 'text-gray-500': isEdit, 'text-black': !isEdit }"
+ :maxlength="labelName === '제목' ? 30 : undefined" />
From 7c7cda3138a4db3fed367f29e3685854d037fece Mon Sep 17 00:00:00 2001
From: Minkyu0424
Date: Fri, 7 Feb 2025 21:39:12 +0900
Subject: [PATCH 11/21] =?UTF-8?q?:sparkles:=20[feat]=20:=20=EC=9D=BC?=
=?UTF-8?q?=EA=B4=84=EC=B6=94=EA=B0=80=20=ED=8C=8C=EC=9D=BC=EC=96=91?=
=?UTF-8?q?=EC=8B=9D=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/TitleBar.vue | 2 +-
.../MemberManagementAddByCsv.vue | 42 ++++++++++---------
.../task-detail/TaskDetailHistoryInput.vue | 2 +-
src/constants/admin.ts | 3 ++
src/views/MemberManagement.vue | 17 +++++---
5 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/src/components/TitleBar.vue b/src/components/TitleBar.vue
index ec6bc0e0..a28382af 100644
--- a/src/components/TitleBar.vue
+++ b/src/components/TitleBar.vue
@@ -3,7 +3,7 @@
{{ title }}
+ class="flex gap-2">
diff --git a/src/components/member-management/MemberManagementAddByCsv.vue b/src/components/member-management/MemberManagementAddByCsv.vue
index fc25fadd..94cdac6e 100644
--- a/src/components/member-management/MemberManagementAddByCsv.vue
+++ b/src/components/member-management/MemberManagementAddByCsv.vue
@@ -1,24 +1,26 @@
-
-
-
- 회원이 추가되었습니다
-
+
+
+
+
+ 회원이 추가되었습니다
+
+
diff --git a/src/components/team-board/TeamBoardFilterBar.vue b/src/components/team-board/TeamBoardFilterBar.vue
index 5011517e..9f8ccff2 100644
--- a/src/components/team-board/TeamBoardFilterBar.vue
+++ b/src/components/team-board/TeamBoardFilterBar.vue
@@ -27,10 +27,10 @@ import { useQuery } from '@tanstack/vue-query'
import FilterCategory from '../filters/FilterCategory.vue'
import FilterDropdown from '../filters/FilterDropdown.vue'
import FilterInput from '../filters/FilterInput.vue'
-import { useTeamBoardParamsChange } from '../hooks/useTeamBoardParamsChange'
import { getCategory } from '@/api/common'
import { useMemberStore } from '@/stores/member'
import { storeToRefs } from 'pinia'
+import { useTeamBoardParamsChange } from '@/hooks/useTeamBoardParamsChange'
const { params } = useTeamBoardParamsStore()
diff --git a/src/components/top-bar/ProfileModal.vue b/src/components/top-bar/ProfileModal.vue
index 82de3e14..3ed586a2 100644
--- a/src/components/top-bar/ProfileModal.vue
+++ b/src/components/top-bar/ProfileModal.vue
@@ -40,14 +40,13 @@
diff --git a/src/views/CategoryFirstAdd.vue b/src/views/CategoryFirstAddView.vue
similarity index 84%
rename from src/views/CategoryFirstAdd.vue
rename to src/views/CategoryFirstAddView.vue
index a0c0c1ec..1e40776e 100644
--- a/src/views/CategoryFirstAdd.vue
+++ b/src/views/CategoryFirstAddView.vue
@@ -6,6 +6,6 @@
diff --git a/src/views/CategorySecondAdd.vue b/src/views/CategorySecondAddView.vue
similarity index 85%
rename from src/views/CategorySecondAdd.vue
rename to src/views/CategorySecondAddView.vue
index cdea7edf..f2949fe9 100644
--- a/src/views/CategorySecondAdd.vue
+++ b/src/views/CategorySecondAddView.vue
@@ -7,6 +7,6 @@
diff --git a/src/views/EditInformationView.vue b/src/views/EditInformationView.vue
index 08e21859..255e1e0f 100644
--- a/src/views/EditInformationView.vue
+++ b/src/views/EditInformationView.vue
@@ -8,8 +8,8 @@
diff --git a/src/views/LoginLogsView.vue b/src/views/LoginLogsView.vue
index ac076e1a..9b84a234 100644
--- a/src/views/LoginLogsView.vue
+++ b/src/views/LoginLogsView.vue
@@ -9,7 +9,7 @@
diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue
index 1c6e9d04..02cf29cd 100644
--- a/src/views/LoginView.vue
+++ b/src/views/LoginView.vue
@@ -51,8 +51,8 @@
diff --git a/src/views/PwChangeEmail.vue b/src/views/PwChangeEmail.vue
index 12f4ed07..58709f8c 100644
--- a/src/views/PwChangeEmail.vue
+++ b/src/views/PwChangeEmail.vue
@@ -55,8 +55,8 @@ import { postPasswordEmailSend } from '@/api/auth'
import TitleContainer from '@/components/common/TitleContainer.vue'
import axios from 'axios'
import { ref } from 'vue'
-import ModalView from '../components/ModalView.vue'
import router from '../router/index'
+import ModalView from '@/components/common/ModalView.vue'
const messageHeader = ref('')
const messageBody = ref('')
diff --git a/src/views/PwChange.vue b/src/views/PwChangeView.vue
similarity index 98%
rename from src/views/PwChange.vue
rename to src/views/PwChangeView.vue
index ec488f4e..9feca27f 100644
--- a/src/views/PwChange.vue
+++ b/src/views/PwChangeView.vue
@@ -70,12 +70,12 @@
diff --git a/src/views/RequestHistory.vue b/src/views/RequestHistoryView.vue
similarity index 87%
rename from src/views/RequestHistory.vue
rename to src/views/RequestHistoryView.vue
index 5c826a57..09a4600d 100644
--- a/src/views/RequestHistory.vue
+++ b/src/views/RequestHistoryView.vue
@@ -9,7 +9,7 @@
diff --git a/src/views/RequestedView.vue b/src/views/RequestedView.vue
index a200f185..6562c289 100644
--- a/src/views/RequestedView.vue
+++ b/src/views/RequestedView.vue
@@ -9,7 +9,7 @@
diff --git a/src/views/StatisticsView.vue b/src/views/StatisticsView.vue
index d61562b6..bdaf194f 100644
--- a/src/views/StatisticsView.vue
+++ b/src/views/StatisticsView.vue
@@ -23,7 +23,7 @@
diff --git a/src/views/TaskBoardView.vue b/src/views/TaskBoardView.vue
index 4f35c089..7ecf62aa 100644
--- a/src/views/TaskBoardView.vue
+++ b/src/views/TaskBoardView.vue
@@ -9,7 +9,7 @@
diff --git a/src/views/TaskManagementView.vue b/src/views/TaskManagementView.vue
index 3a1fc58a..75eeb77f 100644
--- a/src/views/TaskManagementView.vue
+++ b/src/views/TaskManagementView.vue
@@ -14,7 +14,7 @@
diff --git a/src/views/TaskRequestView.vue b/src/views/TaskRequestView.vue
index a7e152a5..90483d91 100644
--- a/src/views/TaskRequestView.vue
+++ b/src/views/TaskRequestView.vue
@@ -9,9 +9,9 @@
diff --git a/src/views/UserRegistrationView.vue b/src/views/UserRegistrationView.vue
index 929b11c5..37e2b411 100644
--- a/src/views/UserRegistrationView.vue
+++ b/src/views/UserRegistrationView.vue
@@ -6,6 +6,6 @@
diff --git a/src/views/UserUpdateView.vue b/src/views/UserUpdateView.vue
index e0481a79..7e6beae6 100644
--- a/src/views/UserUpdateView.vue
+++ b/src/views/UserUpdateView.vue
@@ -7,6 +7,6 @@