Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0aea6b7
:recycle: [refactor] : isApproved속성 task Detail에서 받기
Minkyu0424 Feb 7, 2025
0e77126
:recycle: [refactor] : 파일 업로드 제한
Minkyu0424 Feb 7, 2025
df98493
:recycle: [refactor] : 팀 작업 현황, 통계 요청 세부정보 조회 모달 연결
Minkyu0424 Feb 7, 2025
6cc008c
:recycle: [refactor] : 요청 생성 미 선택한 부분에 대한 경고 표시
Minkyu0424 Feb 7, 2025
f48851d
:recycle: [refactor] : 요청 승인 날짜선택 예외사항 제한하기
Minkyu0424 Feb 7, 2025
54fcdff
Merge branch 'develop' of https://github.com/TaskFlow-CLAP/TaskFlow-F…
Minkyu0424 Feb 7, 2025
94118c0
:recycle: [refactor] : 히스토리 가져오기 롤백
Minkyu0424 Feb 7, 2025
f08aacd
:recycle: [refactor] : 요청 취소 후 실패
Minkyu0424 Feb 7, 2025
1c265e2
:recycle: [refactor] : 요청 승인 경로 지정, 승인 시 카테고리 미선택 경고
Minkyu0424 Feb 7, 2025
e041821
:recycle: [refactor] : 히스토리 작성, 조회 롤백
Minkyu0424 Feb 7, 2025
9f1b5f5
:recycle: [refactor] : 2차 카테고리 선택 시 미리보기 반영
Minkyu0424 Feb 7, 2025
58efa95
:recycle: [refactor] : 요청 생성에서 길이제한
Minkyu0424 Feb 7, 2025
7c7cda3
:sparkles: [feat] : 일괄추가 파일양식 기능 추가
Minkyu0424 Feb 7, 2025
36253fb
:recycle: [refactor] : 내요청상단 버튼 스타일 추가
Minkyu0424 Feb 7, 2025
34f21c9
:recycle: [refactor] : 기본 버튼 타입 button으로 지정
Minkyu0424 Feb 7, 2025
bb30eae
:recycle: [refactor] : 콘솔 삭제
Minkyu0424 Feb 7, 2025
df180d5
:recycle: [refactor] : 미사용 선언, 목 데이터 삭제
Minkyu0424 Feb 7, 2025
f978aaf
:recycle: [refactor] : api 경로 변경 적용
Minkyu0424 Feb 7, 2025
26bfab5
:recycle: [refactor] : api 경로 변경
Minkyu0424 Feb 7, 2025
47c0670
:recycle: [refactor] : 용어 정리
Minkyu0424 Feb 7, 2025
2d7c915
:twisted_rightwards_arrows: [fix] : conflict resolved
Minkyu0424 Feb 7, 2025
b48258d
:recycle: [refactor] : 날짜 표현 유틸함수 제작
Minkyu0424 Feb 7, 2025
c934161
:twisted_rightwards_arrows: [fix] : conflict resolved
Minkyu0424 Feb 7, 2025
9af7bfc
:recycle: [refactor] : 에러 타입 지정
Minkyu0424 Feb 7, 2025
aafc1c9
:recycle: [refactor] : 파일 디렉토리 대변경
Minkyu0424 Feb 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions src/api/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export const changeProcessor = async (taskID: number, processorId: number) => {
}

export const patchChangeStatus = async (taskID: number, status: Status) => {
const response = await axiosInstance.patch(`/api/tasks/${taskID}/status`, status)
const response = await axiosInstance.patch(`/api/tasks/${taskID}/status`, { status })
return response.data
}

Expand All @@ -54,12 +54,15 @@ export const getHistory = async (taskID: number | null) => {
}

export const postComment = async (taskID: number, content: string) => {
const response = await axiosInstance.post(`/api/comments/${taskID}`, { content })
const response = await axiosInstance.post(`/api/tasks/${taskID}/comments`, { content })
return response.data
}

export const postCommentAttachment = async (taskID: number, formdata: FormData) => {
const response = await formDataAxiosInstance.post(`/api/comments/attachment/${taskID}`, formdata)
const response = await formDataAxiosInstance.post(
`/api/tasks/${taskID}/comments/attachment`,
formdata
)
return response.data
}

Expand All @@ -82,3 +85,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
}
6 changes: 3 additions & 3 deletions src/components/api-logs/ApiLogsFilterBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
<script setup lang="ts">
import FilterDropdown from '../filters/FilterDropdown.vue'
import FilterInput from '../filters/FilterInput.vue'
import { useLogsParamsStore } from '@/stores/params'
import { PAGE_SIZE_LIST, TERM_LIST } from '@/constants/common'
import { API_LOGS_DIVISION_LIST } from '@/constants/admin'
import { useLogsParamsChange } from '../hooks/useLogsParamsChange'
import FilterIpAddress from '../filters/FilterIpAddress.vue'
import FilterDropdownMulti from '../filters/FilterDropdownMulti.vue'
import { useLogsParamsChange } from '@/hooks/useLogsParamsChange'
import { PAGE_SIZE_LIST, TERM_LIST } from '@/constants/common'
import { useLogsParamsStore } from '@/stores/params'

const store = useLogsParamsStore()
store.$reset()
Expand Down
6 changes: 3 additions & 3 deletions src/components/api-logs/ApiLogsListBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
</template>

<script setup lang="ts">
import { useLogsParamsStore } from '@/stores/params'
import ListBarTab from '../lists/ListBarTab.vue'
import { LOGS_LIST_BAR_TAB } from '@/constants/admin'
import { useLogsParamsChange } from '../hooks/useLogsParamsChange'
import { useLogsParamsChange } from '@/hooks/useLogsParamsChange'
import { useLogsParamsStore } from '@/stores/params'
import { computed } from 'vue'
import ListBarTab from '../lists/ListBarTab.vue'

const { params } = useLogsParamsStore()
const orderRequest = computed(() => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import {
Colors,
Filler
} from 'chart.js'
import NoContent from './lists/NoContent.vue'
import type { PeriodType } from '@/types/manager'
import NoContent from '../lists/NoContent.vue'

ChartJS.register(
Title,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import {
type ChartEvent,
type ActiveElement
} from 'chart.js'
import NoContent from './lists/NoContent.vue'
import type { PeriodType } from '@/types/manager'
import NoContent from '../lists/NoContent.vue'
ChartJS.register(Title, Tooltip, Legend, ArcElement, Colors)

const { labels, series, periodType, content } = defineProps<{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
<div>
<p class="text-body text-xs font-bold">비밀번호 재설정</p>
<button
type="button"
class="button-medium-secondary mt-2"
@click="handlePwChange">
재설정하기
Expand All @@ -116,16 +117,16 @@
</template>

<script lang="ts" setup>
import { useMemberStore } from '@/stores/member'
import { storeToRefs } from 'pinia'
import { nextTick, ref, watchEffect } from 'vue'
import { useRouter } from 'vue-router'
import ModalView from './ModalView.vue'
import FormButtonContainer from './common/FormButtonContainer.vue'
import FormCheckbox from './common/FormCheckbox.vue'
const router = useRouter()
import { useMemberStore } from '@/stores/member'
import { storeToRefs } from 'pinia'
import { patchEditInfo } from '@/api/common'
import ImageContainer from './common/ImageContainer.vue'
import FormButtonContainer from './FormButtonContainer.vue'
import FormCheckbox from './FormCheckbox.vue'
import ImageContainer from './ImageContainer.vue'
const router = useRouter()

const memberStore = useMemberStore()
const { info } = storeToRefs(memberStore)
Expand Down
2 changes: 2 additions & 0 deletions src/components/common/FormButtonContainer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
<div class="w-full mt-4 flex justify-center">
<div class="w-[400px] flex gap-6">
<button
type="button"
class="button-large-default"
@click="handleCancel">
{{ cancelText }}
</button>
<button
type="button"
class="button-large-primary"
@click="handleSubmit">
{{ submitText }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,15 @@
</div>

<button
type="button"
class="button-large-primary"
v-if="type == 'successType'"
@click="closeModal">
확인
</button>

<button
type="button"
class="button-large-default"
v-if="type == 'failType'"
@click="closeModal">
Expand All @@ -56,11 +58,13 @@
class="flex items-center gap-6"
v-if="type == 'warningType' || type == 'inputType'">
<button
type="button"
class="button-large-default"
@click="closeModal">
취소
</button>
<button
type="button"
class="button-large-red"
@click="confirmModal">
{{ type === 'inputType' ? '거부' : '삭제' }}
Expand All @@ -72,9 +76,8 @@
</template>

<script setup lang="ts">
import { failIcon, successIcon, warningIcon } from '@/constants/iconPath'
import { ref, watch } from 'vue'
import CommonIcons from './common/CommonIcons.vue'
import { successIcon, failIcon, warningIcon } from '../constants/iconPath'

const props = defineProps<{
isOpen: boolean
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/components/common/ResultModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</template>

<script setup lang="ts">
import ModalView from '../ModalView.vue'
import ModalView from './ModalView.vue'

const { type, isOpen, message } = defineProps<{
type: string
Expand Down
25 changes: 17 additions & 8 deletions src/components/TaskCard.vue → src/components/common/TaskCard.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<template>
<div
class="w-full max-w-80 border-l-8 bg-white py-4 pl-6 pr-4 flex flex-col gap-6 rounded-lg shadow-custom hover:bg-background-2"
class="w-full max-w-80 border-l-8 bg-white py-4 pl-6 pr-4 flex flex-col gap-6 rounded-lg shadow-custom hover:bg-background-2 cursor-pointer"
:class="borderLeft"
@click="onTaskClick">
@click="handleModal(data.taskId)">
<div class="flex flex-col gap-1">
<div class="flex justify-between items-center gap-4">
<div class="flex items-center gap-2 overflow-hidden">
Expand Down Expand Up @@ -34,26 +34,35 @@
</div>
</div>
</div>
<TaskDetail
v-if="selectedID"
:is-approved="data.taskStatus !== 'REQUESTED'"
:selected-id="selectedID"
:close-task-detail="() => handleModal(null)" />
</div>
</template>

<script setup lang="ts">
import { bentoIcon } from '@/constants/iconPath'
import type { Status } from '@/types/common'
import { computed } from 'vue'
import type { TaskCardProps } from '@/types/manager'
import CommonIcons from './common/CommonIcons.vue'
import { statusAsColor } from '@/utils/statusAsColor'
import TaskLabel from './common/TaskLabel.vue'
import ImageContainer from './common/ImageContainer.vue'
import { computed, ref } from 'vue'
import CommonIcons from './CommonIcons.vue'
import TaskLabel from './TaskLabel.vue'
import ImageContainer from './ImageContainer.vue'
import TaskDetail from '../task-detail/TaskDetail.vue'

const { data } = defineProps<{ data: TaskCardProps; draggable?: boolean }>()
const selectedID = ref<number | null>(null)

const borderLeft = computed(() => {
return `border-${statusAsColor(data.taskStatus as Status)}-1`
})

const onTaskClick = () => {
console.log('clicked')
const handleModal = (id: number | null) => {
if (data.taskId) document.body.style.overflow = 'hidden'
else document.body.style.overflow = ''
selectedID.value = id
}
</script>
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<span class="text-2xl font-bold text-black">{{ title }}</span>
<div
v-if="$slots.button"
class="flex gap-4">
class="flex gap-2">
<slot
name="button"
class="flex gap-4" />
Expand Down
2 changes: 1 addition & 1 deletion src/components/filters/FilterCategory.vue
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ import { dropdownIcon } from '@/constants/iconPath'
import type { Category, FilterCategoryProps } from '@/types/common'
import { computed, ref, watchEffect } from 'vue'
import CommonIcons from '../common/CommonIcons.vue'
import { useOutsideClick } from '../hooks/useOutsideClick'
import { useOutsideClick } from '@/hooks/useOutsideClick'

const { categoryList = [], main, sub } = defineProps<FilterCategoryProps>()
const emit = defineEmits(['update:main', 'update:sub'])
Expand Down
4 changes: 2 additions & 2 deletions src/components/filters/FilterDropdown.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
</template>

<script setup lang="ts">
import { dropdownIcon } from '@/constants/iconPath'
import { useOutsideClick } from '@/hooks/useOutsideClick'
import type { Filter } from '@/types/common'
import { ref } from 'vue'
import { dropdownIcon } from '@/constants/iconPath'
import CommonIcons from '../common/CommonIcons.vue'
import { useOutsideClick } from '../hooks/useOutsideClick'

const { title, value, width = '120', optionList } = defineProps<Filter>()
const emit = defineEmits(['update:value'])
Expand Down
4 changes: 2 additions & 2 deletions src/components/filters/FilterDropdownMulti.vue
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
</template>

<script setup lang="ts">
import { dropdownIcon } from '@/constants/iconPath'
import { useOutsideClick } from '@/hooks/useOutsideClick'
import type { Filter } from '@/types/common'
import { ref } from 'vue'
import { dropdownIcon } from '@/constants/iconPath'
import CommonIcons from '../common/CommonIcons.vue'
import { useOutsideClick } from '../hooks/useOutsideClick'

const { title, width = '120', optionList, value } = defineProps<Filter>()
const emit = defineEmits(['update:value'])
Expand Down
5 changes: 3 additions & 2 deletions src/components/lists/ListBarTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
:class="`${!width && 'grow'} ${justifyCenter && 'justify-center'}`">
{{ content }}
<button
type="button"
v-if="sortBy"
@click="$emit('toggleSortBy', sortBy)">
<OrderIcon
Expand All @@ -15,9 +16,9 @@
</template>

<script setup lang="ts">
import { computed } from 'vue'
import OrderIcon from '../OrderIcon.vue'
import type { ListBarTabProps } from '@/types/common'
import { computed } from 'vue'
import OrderIcon from '../common/OrderIcon.vue'

const { content, width, sortBy, currentOrderRequest } = defineProps<ListBarTabProps>()
defineEmits(['toggleSortBy'])
Expand Down
2 changes: 1 addition & 1 deletion src/components/lists/ListCardTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

<script setup lang="ts">
import type { ListCardProps, Status } from '@/types/common'
import TaskStatus from '../TaskStatus.vue'
import TaskStatus from '../common/TaskStatus.vue'

const { content, width, isTextXs, profileImg, isStatus, isStatusCode, isTextBody } =
defineProps<ListCardProps>()
Expand Down
2 changes: 2 additions & 0 deletions src/components/lists/ListPagination.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<div class="flex gap-1 absolute left-0 top-1/2 -translate-x-[calc(100%+8px)] -translate-y-1/2">
<button
v-if="pageSet[0] !== 1"
type="button"
@click="onPrevSetClick"
class="rounded hover:bg-primary2">
<CommonIcons :name="prevSetIcon" />
Expand All @@ -17,6 +18,7 @@
</div>
<button
v-for="page in pageSet"
type="button"
:key="page"
class="w-6 h-6 flex justify-center items-center rounded text-sm"
:class="
Expand Down
2 changes: 1 addition & 1 deletion src/components/login-logs/LoginLogsFilterBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ import FilterDropdown from '../filters/FilterDropdown.vue'
import FilterInput from '../filters/FilterInput.vue'
import { useLogsParamsStore } from '@/stores/params'
import { PAGE_SIZE_LIST, TERM_LIST } from '@/constants/common'
import { useLogsParamsChange } from '../hooks/useLogsParamsChange'
import FilterIpAddress from '../filters/FilterIpAddress.vue'
import FilterDropdownMulti from '../filters/FilterDropdownMulti.vue'
import { LOGIN_LOGS_DIVISION_LIST } from '@/constants/admin'
import { useLogsParamsChange } from '@/hooks/useLogsParamsChange'

const store = useLogsParamsStore()
store.$reset()
Expand Down
14 changes: 7 additions & 7 deletions src/components/login-logs/LoginLogsList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@
</template>

<script setup lang="ts">
import ListPagination from '../lists/ListPagination.vue'
import ListContainer from '../lists/ListContainer.vue'
import { useMemberStore } from '@/stores/member'
import { useLogsParamsStore } from '@/stores/params'
import LoginLogsListBar from './LoginLogsListBar.vue'
import LoginLogsListCard from './LoginLogsListCard.vue'
import type { LoginLogsResponse } from '@/types/admin'
import { axiosInstance } from '@/utils/axios'
import { useQuery } from '@tanstack/vue-query'
import { storeToRefs } from 'pinia'
import { computed } from 'vue'
import type { LoginLogsResponse } from '@/types/admin'
import ListContainer from '../lists/ListContainer.vue'
import ListPagination from '../lists/ListPagination.vue'
import NoContent from '../lists/NoContent.vue'
import { useMemberStore } from '@/stores/member'
import { storeToRefs } from 'pinia'
import LoginLogsListBar from './LoginLogsListBar.vue'
import LoginLogsListCard from './LoginLogsListCard.vue'

const { params } = useLogsParamsStore()
const onPageChange = (value: number) => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/login-logs/LoginLogsListBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import ListBarTab from '../lists/ListBarTab.vue'
import { useLogsParamsStore } from '@/stores/params'
import { LOGS_LIST_BAR_TAB } from '@/constants/admin'
import { useLogsParamsChange } from '../hooks/useLogsParamsChange'
import { computed } from 'vue'
import { useLogsParamsChange } from '@/hooks/useLogsParamsChange'

const { params } = useLogsParamsStore()
const orderRequest = computed(() => ({
Expand Down
Loading