diff --git a/src/api/common.ts b/src/api/common.ts index 3a9ecfa0..13b673fa 100644 --- a/src/api/common.ts +++ b/src/api/common.ts @@ -1,42 +1,56 @@ +import { useMemberStore } from '@/stores/member' import { axiosInstance, formDataAxiosInstance } from '../utils/axios' +import { createPinia, setActivePinia, storeToRefs } from 'pinia' + +setActivePinia(createPinia()) + +const memberStore = useMemberStore() +const { isLogined } = storeToRefs(memberStore) export const patchEditInfo = async (formdata: FormData) => { + if (!isLogined) return const response = await formDataAxiosInstance.patch('/api/members/info', formdata) return response.data } export const getNotification = async (pageNum: number, sizeNum: number) => { + if (!isLogined) return const response = await axiosInstance.get(`/api/notifications?page=${pageNum}&size=${sizeNum}`) - return response.data } export const patchNotificationRead = async (notificationId: number) => { + if (!isLogined) return const response = await axiosInstance.patch(`/api/notifications/${notificationId}`) return response.data } export const getNotifiCount = async () => { + if (!isLogined) return const response = await axiosInstance.get(`/api/notifications/count`) return response.data } export const getMainCategory = async () => { + if (!isLogined) return const response = await axiosInstance.get('/api/main-category') return response.data } export const getSubCategory = async () => { + if (!isLogined) return const response = await axiosInstance.get('/api/sub-category') return response.data } export const getLabels = async () => { + if (!isLogined) return const response = await axiosInstance.get('/api/labels') return response.data } export const getCategory = async () => { + if (!isLogined) return const response = await axiosInstance.get('/api/category') return response.data } diff --git a/src/assets/styles.css b/src/assets/styles.css index cb3f2ba3..ece208ba 100644 --- a/src/assets/styles.css +++ b/src/assets/styles.css @@ -38,7 +38,7 @@ body { } .button-large { - @apply flex w-full py-3 font-bold border rounded items-center justify-center min-w-[138px]; + @apply flex w-full py-3 font-semibold border rounded items-center justify-center min-w-[138px]; } .button-large-default { @apply button-large bg-white text-disabled border-border-1 hover:bg-background-2; @@ -51,7 +51,7 @@ body { } .button-medium { - @apply flex items-center justify-center rounded px-4 py-2 font-bold gap-1 text-xs cursor-pointer shrink-0 h-full; + @apply flex items-center justify-center rounded px-4 py-2 font-semibold gap-1 text-xs cursor-pointer shrink-0 h-full max-h-[34px]; } .button-medium-primary { @apply button-medium bg-primary1 text-white hover:bg-[#6869DE]; @@ -70,7 +70,7 @@ body { } .button-small { - @apply flex items-center gap-1 text-xs font-bold; + @apply flex items-center gap-1 text-xs font-semibold; } .button-small-primary { @apply text-primary1; @@ -93,7 +93,7 @@ body { @apply flex flex-col gap-1 shrink-0; } .filter-title { - @apply text-[10px] font-bold text-body; + @apply text-[10px] font-semibold text-body; } .filter-dropdown { @apply flex justify-center items-center w-full h-8 px-2 border-b border-border-1 relative text-xs cursor-pointer; @@ -110,7 +110,7 @@ body { } .task-detail { - @apply text-xs text-body font-bold mb-2; + @apply text-xs text-body font-semibold mb-2; } .request-task-dropdown { @@ -131,7 +131,7 @@ body { @apply max-w-1200 min-h-screen flex flex-col gap-6; } .task-management-title { - @apply flex w-full h-8 pl-6 gap-6 items-center text-xs bg-background-2 text-body font-bold border-b border-b-border-1; + @apply flex w-full h-8 pl-6 gap-6 items-center text-xs bg-background-2 text-body font-semibold border-b border-b-border-1; } .category-management-line { @apply flex items-center px-4 w-full h-11 border-b border-b-border-1; diff --git a/src/components/charts/LineChart.vue b/src/components/charts/LineChart.vue index 4fb21907..f3584b8b 100644 --- a/src/components/charts/LineChart.vue +++ b/src/components/charts/LineChart.vue @@ -57,14 +57,26 @@ const teamData = { ] } +const calculateStepSize = (data: number[]) => { + const max = Math.max(...data) + const min = Math.min(...data) + const range = max - min + + if (range <= 10) return 1 + if (range <= 100) return 5 + if (range <= 1000) return 50 + return Math.ceil(range / 10) +} + const options = { responsive: true, maintainAspectRatio: false, scales: { y: { - beginAtZero: true, ticks: { - stepSize: 1 + stepSize: calculateStepSize(series), + maxTicksLimit: 10, + autoSkip: true }, suggestedMax: Math.max(...series) + 1 } diff --git a/src/components/common/EditInformation.vue b/src/components/common/EditInformation.vue index 84829893..0dd5b366 100644 --- a/src/components/common/EditInformation.vue +++ b/src/components/common/EditInformation.vue @@ -3,7 +3,7 @@ + @close="isModalVisible = !isModalVisible"> @@ -26,7 +26,7 @@
-

프로필 사진

+

프로필 사진

@@ -56,7 +56,7 @@ class="hidden" />
-

이름

+

이름

{{ name.length }} / 10 {{ nameError }}
-

아이디

+

아이디

{{ info.nickname }}

-

이메일

+

이메일

{{ info.email }}

-

부서

+

부서

{{ info.departmentName }}

-

직무

+

직무

{{ info.departmentRole }}

-

알림 수신 여부

+

알림 수신 여부

-

비밀번호 재설정

+

비밀번호 재설정

@@ -48,7 +47,7 @@ const myRequestTabList: ListCardProps[] = [ { content: info.categoryName, width: 80 }, { content: info.title }, { content: info.requesterName, width: 120, profileImg: info.requesterImg }, - { content: info.taskStatus, width: 64, isStatus: true }, + { content: info.taskStatus, width: 80, isStatus: true }, { content: info.finishedAt ? formatDate(info.finishedAt) : '', width: 80 } ] diff --git a/src/components/request-approve/LabelDropdown.vue b/src/components/request-approve/LabelDropdown.vue index ab2a866b..24a83764 100644 --- a/src/components/request-approve/LabelDropdown.vue +++ b/src/components/request-approve/LabelDropdown.vue @@ -1,6 +1,6 @@