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 @@
프로필 사진
+프로필 사진
이름
+이름
{{ name.length }} / 10 {{ nameError }}아이디
+아이디
{{ info.nickname }}
이메일
+이메일
{{ info.email }}
부서
+부서
{{ info.departmentName }}
직무
+직무
{{ info.departmentRole }}
알림 수신 여부
+알림 수신 여부
비밀번호 재설정
+비밀번호 재설정
담당자 변경
+담당자 변경
*
마감기한
+마감기한
@@ -71,6 +71,8 @@ import CategoryDropDown from '../request-task/CategoryDropDown.vue'
import DueDateInput from './DueDateInput.vue'
import LabelDropdown from './LabelDropdown.vue'
import ManagerDropdown from './ManagerDropdown.vue'
+import { useErrorStore } from '@/stores/error'
+import { redirectToLogin } from '@/utils/redirectToLogin'
const isModalVisible = ref(false)
const category1 = ref
{{ labelName }}
+{{ labelName }}
diff --git a/src/components/request-task/ReRequestTask.vue b/src/components/request-task/ReRequestTask.vue
index 7586c8da..af78547f 100644
--- a/src/components/request-task/ReRequestTask.vue
+++ b/src/components/request-task/ReRequestTask.vue
@@ -6,14 +6,14 @@
:label-name="'1차 카테고리'"
:placeholderText="'1차 카테고리를 선택해주세요'"
:isDisabled="false"
- :is-invalidate="isInvalidate" />
+ :is-invalidate="isInvalidate === 'category1' ? 'category' : ''" />
{{ labelName }} {{ labelName }} * 카테고리를 선택해주세요 파일명 용량