Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
d65d46e
:rocket: [cicd] : CD워크플로우 릴리즈 V대문자 문제인지 검증
hyoseong-Choi Feb 11, 2025
1729b9a
:rocket: [cicd] : CD워크플로우 릴리즈 버전 출력
hyoseong-Choi Feb 11, 2025
e298131
:rocket: [cicd] : CD워크플로우 릴리즈 버전 출력
hyoseong-Choi Feb 11, 2025
3315afc
:rocket: [cicd] : CD워크플로우 릴리즈 버전 만들어지는지 확인
hyoseong-Choi Feb 11, 2025
912504a
:rocket: [cicd] : CD워크플로우 릴리즈 버전 만들어지는지 확인2
hyoseong-Choi Feb 11, 2025
f4a1352
:rocket: [cicd] : CD워크플로우 릴리즈 버전 확인
hyoseong-Choi Feb 11, 2025
91060d3
:rocket: [cicd] : CD워크플로우 릴리즈 버전 확인
hyoseong-Choi Feb 11, 2025
66bb803
CLAP-234 CD워크플로우 도커 푸시 수정
hyoseong-Choi Feb 11, 2025
f238d84
:rocket: [cicd] : CD워크플로우 릴리즈 타입 원상복구
hyoseong-Choi Feb 11, 2025
bbd0436
:rocket: [cicd] : CD워크플로우 릴리즈 도커빌드 수정
hyoseong-Choi Feb 11, 2025
6015e0c
CLAP-234 CD워크플로우 릴리즈 도커빌드 수정
hyoseong-Choi Feb 11, 2025
f87f71c
Merge branch 'develop' of https://github.com/TaskFlow-CLAP/TaskFlow-F…
Minkyu0424 Feb 11, 2025
8afd67c
:rocket: [cicd] : CD워크플로우 릴리즈 도커빌드 latest 제거
hyoseong-Choi Feb 11, 2025
a5e093c
CLAP-234 CD워크플로우 릴리즈 도커빌드 latest 제거
hyoseong-Choi Feb 11, 2025
7069110
Merge branch 'develop' of https://github.com/TaskFlow-CLAP/TaskFlow-F…
Minkyu0424 Feb 11, 2025
a468a2a
:rocket: [cicd] : CD워크플로우 릴리즈 도커푸쉬 태그 : 추가
hyoseong-Choi Feb 11, 2025
4ada15e
CLAP-234 CD워크플로우 릴리즈 도커푸쉬 태그 : 추가
hyoseong-Choi Feb 11, 2025
402f81d
Merge branch 'develop' of https://github.com/TaskFlow-CLAP/TaskFlow-F…
Minkyu0424 Feb 11, 2025
22c85f1
:recycle: [refactor] : 시간표현 축약 + 오전, 오후 표현
Minkyu0424 Feb 11, 2025
f577b92
:recycle: [refactor] : 히스토리 양측 요청자 신분과 작성자의 정보 대조로 구분
Minkyu0424 Feb 11, 2025
3b76151
:recycle: [refactor] : 거부를 반려로 워딩 변경
Minkyu0424 Feb 11, 2025
2a2f7e4
:recycle: [refactor] : 1차 카테고리 삭제 후 최신화
Minkyu0424 Feb 11, 2025
492b5eb
:recycle: [refactor] : 요청 중복안되도록 방지
Minkyu0424 Feb 11, 2025
8807fef
:recycle: [refactor] : 상태 변경시 데이터 최신화
Minkyu0424 Feb 11, 2025
3b5a3ff
:recycle: [refactor] : 고유코드 작업코드로 변경
Minkyu0424 Feb 11, 2025
ad50fe8
:recycle: [refactor] : 처리자 변경에 따른 우측 세부사항 최신화
Minkyu0424 Feb 11, 2025
9ee3144
:recycle: [refactor] : 상세조회 변경에 따른 전체 요청 기록 최신화
Minkyu0424 Feb 11, 2025
06646f5
:recycle: [refactor] : 상세조회 변경에 따른 내 요청 최신화
Minkyu0424 Feb 11, 2025
6d16246
:recycle: [refactor] : 상세조회 구분 변경 시 디테일 데이터 최신화
Minkyu0424 Feb 11, 2025
89ca2af
:recycle: [refactor] : 상세조회 데이터 변경 시 작업보드 현황 최신화
Minkyu0424 Feb 11, 2025
5190fb9
:recycle: [refactor] : 상세조회 데이터 변경 시 내 작업 페이지 최신화
Minkyu0424 Feb 11, 2025
78299c5
:recycle: [refactor] : 재요청, 요청수정시 요청 중복되지 않게 방지
Minkyu0424 Feb 11, 2025
5e59700
Merge branch 'release' of https://github.com/TaskFlow-CLAP/TaskFlow-F…
Minkyu0424 Feb 11, 2025
5c32cf1
:twisted_rightwards_arrows: [fix] : conflict resolved
Minkyu0424 Feb 11, 2025
0cd7e13
:recycle: [refactor] : 작업수정에서 에러에 따른 입력란 경고표시
Minkyu0424 Feb 11, 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
5 changes: 2 additions & 3 deletions .github/workflows/CD.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ name: CD for front using github actions

on:
release:
types: [created, edited, published, released, prereleased]

types: [created]

permissions:
contents: read
Expand Down Expand Up @@ -48,7 +47,7 @@ jobs:
- name: Docker build & push
run: |
docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} .
docker build -t ${{ secrets.DOCKER_REPO }}${{ steps.version.outputs.VERSION }} .
docker push ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }}
## deploy
- name: Deploy
Expand Down
17 changes: 15 additions & 2 deletions src/components/common/TaskCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -42,24 +42,37 @@

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

const { data } = defineProps<{ data: TaskCardProps; draggable?: boolean }>()
const emit = defineEmits(['toggleModal'])
const selectedID = ref<number | null>(null)
const queryClient = useQueryClient()
const { params } = useTeamBoardParamsStore()

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

const handleModal = (id: number | null) => {
if (!id) {
queryClient.invalidateQueries({
queryKey: ['taskBoard']
})
queryClient.invalidateQueries({
queryKey: ['teamStatus', params]
})
document.body.style.overflow = ''
}
emit('toggleModal')
selectedID.value = id
}
Expand Down
8 changes: 4 additions & 4 deletions src/components/my-request/MyRequestList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<template #listCards>
<MyRequestListCard
v-for="info in data?.content"
:key="info.taskId"
:key="info.taskStatus + info.processorName + info.taskId"
:info="info" />
<NoContent v-if="data?.content.length === 0" />
</template>
Expand All @@ -22,19 +22,19 @@
</template>

<script setup lang="ts">
import { useParseParams } from '@/hooks/useParseParams'
import { useMemberStore } from '@/stores/member'
import { useRequestParamsStore } from '@/stores/params'
import type { MyRequestResponse } from '@/types/user'
import { axiosInstance } from '@/utils/axios'
import { useQuery } from '@tanstack/vue-query'
import { storeToRefs } from 'pinia'
import { computed } from 'vue'
import ListContainer from '../lists/ListContainer.vue'
import ListPagination from '../lists/ListPagination.vue'
import NoContent from '../lists/NoContent.vue'
import MyRequestListBar from './MyRequestListBar.vue'
import MyRequestListCard from './MyRequestListCard.vue'
import { useMemberStore } from '@/stores/member'
import { storeToRefs } from 'pinia'
import { useParseParams } from '@/hooks/useParseParams'

const { params } = useRequestParamsStore()
const onPageChange = (value: number) => {
Expand Down
9 changes: 9 additions & 0 deletions src/components/my-request/MyRequestListCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,26 @@
</template>

<script setup lang="ts">
import { useRequestParamsStore } from '@/stores/params'
import type { ListCardProps } from '@/types/common'
import type { MyRequestListData } from '@/types/user'
import { formatDate } from '@/utils/date'
import { useQueryClient } from '@tanstack/vue-query'
import { ref } from 'vue'
import ListCardTab from '../lists/ListCardTab.vue'
import TaskDetail from '../task-detail/TaskDetail.vue'

const { info } = defineProps<{ info: MyRequestListData }>()
const selectedID = ref<number | null>(null)
const { params } = useRequestParamsStore()
const queryClient = useQueryClient()

const handleModal = (id: number | null) => {
if (!id) {
queryClient.invalidateQueries({
queryKey: ['myRequest', params]
})
}
selectedID.value = id
}

Expand Down
2 changes: 1 addition & 1 deletion src/components/my-task/MyTaskList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<template #listCards>
<MyTaskListCard
v-for="info in data?.content"
:key="info.taskId"
:key="info.taskStatus + info.taskId"
:info="info" />
<NoContent v-if="data?.content.length === 0" />
</template>
Expand Down
9 changes: 9 additions & 0 deletions src/components/my-task/MyTaskListCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,26 @@
</template>

<script setup lang="ts">
import { useRequestParamsStore } from '@/stores/params'
import type { ListCardProps } from '@/types/common'
import type { MyTaskListData } from '@/types/manager'
import { formatDate } from '@/utils/date'
import { useQueryClient } from '@tanstack/vue-query'
import { ref } from 'vue'
import ListCardTab from '../lists/ListCardTab.vue'
import TaskDetail from '../task-detail/TaskDetail.vue'

const { info } = defineProps<{ info: MyTaskListData }>()
const selectedID = ref<number | null>(null)
const queryClient = useQueryClient()
const { params } = useRequestParamsStore()

const handleModal = (id: number | null) => {
if (!id) {
queryClient.invalidateQueries({
queryKey: ['myTask', params]
})
}
selectedID.value = id
}
const myRequestTabList: ListCardProps[] = [
Expand Down
18 changes: 9 additions & 9 deletions src/components/request-history/RequestHistoryList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<template #listCards>
<RequestHistoryListCard
v-for="info in data?.content"
:key="info.taskId"
:key="info.taskStatus + info.processorName + info.taskId"
:info="info" />
<NoContent v-if="data?.content.length === 0" />
</template>
Expand All @@ -22,19 +22,19 @@
</template>

<script setup lang="ts">
import ListPagination from '../lists/ListPagination.vue'
import ListContainer from '../lists/ListContainer.vue'
import { useParseParams } from '@/hooks/useParseParams'
import { useMemberStore } from '@/stores/member'
import { useRequestParamsStore } from '@/stores/params'
import RequestHistoryListBar from './RequestHistoryListBar.vue'
import RequestHistoryListCard from './RequestHistoryListCard.vue'
import type { RequestHistoryResponse } from '@/types/manager'
import { axiosInstance } from '@/utils/axios'
import { useQuery } from '@tanstack/vue-query'
import { storeToRefs } from 'pinia'
import { computed } from 'vue'
import type { RequestHistoryResponse } from '@/types/manager'
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 { useParseParams } from '@/hooks/useParseParams'
import RequestHistoryListBar from './RequestHistoryListBar.vue'
import RequestHistoryListCard from './RequestHistoryListCard.vue'

const { params } = useRequestParamsStore()
const onPageChange = (value: number) => {
Expand Down
9 changes: 9 additions & 0 deletions src/components/request-history/RequestHistoryListCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,26 @@
</template>

<script setup lang="ts">
import { useRequestParamsStore } from '@/stores/params'
import type { ListCardProps } from '@/types/common'
import type { RequestHistoryListData } from '@/types/manager'
import { formatDate } from '@/utils/date'
import { useQueryClient } from '@tanstack/vue-query'
import { ref } from 'vue'
import ListCardTab from '../lists/ListCardTab.vue'
import TaskDetail from '../task-detail/TaskDetail.vue'

const { info } = defineProps<{ info: RequestHistoryListData }>()
const selectedID = ref<number | null>(null)
const { params } = useRequestParamsStore()
const queryClient = useQueryClient()

const handleModal = (id: number | null) => {
if (!id) {
queryClient.invalidateQueries({
queryKey: ['requestHistory', params]
})
}
selectedID.value = id
}
const myRequestTabList: ListCardProps[] = [
Expand Down
22 changes: 17 additions & 5 deletions src/components/request-task/ReRequestTask.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,18 @@
cancelText="취소"
submitText="수정" />
<ModalView
:isOpen="isModalVisible"
:isOpen="isModalVisible === 'success'"
:type="'successType'"
@close="handleCancel">
<template #header>작업이 수정되었습니다</template>
</ModalView>
<ModalView
:isOpen="isModalVisible === 'fail'"
:type="'failType'"
@close="handleCancel">
<template #header>작업요청을 실패했습니다</template>
<template #body>잠시후 시도해주세요</template>
</ModalView>
</div>
</template>

Expand All @@ -59,7 +66,8 @@ const title = ref('')
const description = ref('')
const file = ref(null as File[] | null)
const isInvalidate = ref('')
const isModalVisible = ref(false)
const isModalVisible = ref('')
const isSubmitting = ref(false)

const mainCategoryArr = ref<Category[]>([])
const subCategoryArr = ref<SubCategory[]>([])
Expand Down Expand Up @@ -105,6 +113,7 @@ watch(category1, async newValue => {
})

const handleSubmit = async () => {
if (isSubmitting.value || isModalVisible.value) return
if (!category2.value) {
isInvalidate.value = 'category'
return
Expand Down Expand Up @@ -158,9 +167,12 @@ const handleSubmit = async () => {
} else {
await patchTaskRequest(id, formData)
}
isModalVisible.value = true
} catch (error) {
console.error('요청 실패:', error)
isModalVisible.value = 'success'
} catch (e) {
isModalVisible.value = 'fail'
console.error('요청 실패:', e)
} finally {
isSubmitting.value = false
}
}
</script>
29 changes: 22 additions & 7 deletions src/components/request-task/RequestTask.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,18 @@
cancelText="취소"
submitText="요청" />
<ModalView
:isOpen="isModalVisible"
:isOpen="isModalVisible === 'success'"
:type="'successType'"
@close="handleCancel">
<template #header>작업이 요청되었습니다</template>
</ModalView>
<ModalView
:isOpen="isModalVisible === 'fail'"
:type="'failType'"
@close="handleCancel">
<template #header>작업요청을 실패했습니다</template>
<template #body>잠시후 시도해주세요</template>
</ModalView>
</div>
</template>

Expand All @@ -58,7 +65,8 @@ const title = ref('')
const description = ref('')
const file = ref(null as File[] | null)
const isInvalidate = ref('')
const isModalVisible = ref(false)
const isModalVisible = ref('')
const isSubmitting = ref(false)

const mainCategoryArr = ref<Category[]>([])
const subCategoryArr = ref<SubCategory[]>([])
Expand Down Expand Up @@ -92,10 +100,13 @@ const handleCancel = () => {
title.value = ''
description.value = ''
file.value = []
isModalVisible.value = ''
router.back()
}

const handleSubmit = async () => {
if (isSubmitting.value || isModalVisible.value) return

if (!category1.value || !category2.value) {
isInvalidate.value = 'category'
return
Expand All @@ -109,26 +120,30 @@ const handleSubmit = async () => {
isInvalidate.value = 'description'
return
}

isSubmitting.value = true

const formData = new FormData()
const taskInfo = {
categoryId: category2.value.subCategoryId,
title: title.value,
description: description.value
}

const jsonTaskInfo = JSON.stringify(taskInfo)
const newBlob = new Blob([jsonTaskInfo], { type: 'application/json' })

formData.append('taskInfo', newBlob)

if (file.value && file.value.length > 0) {
file.value.forEach(f => formData.append('attachment', f))
}
try {
await postTaskRequest(formData)
isModalVisible.value = true
} catch (error) {
console.error('요청 실패:', error)
isModalVisible.value = 'success'
} catch (e) {
console.error(e)
isModalVisible.value = 'fail'
} finally {
isSubmitting.value = false
}
}
</script>
2 changes: 1 addition & 1 deletion src/components/request-task/RequestTaskFileInput.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
type="failType"
@close="handleModal">
<template #header>파일추가를 실패했습니다</template>
<template #body>최대 5개, 각 5mb까지 가능합니다.</template>
<template #body>최대 5개, 각 5mb까지 가능합니다</template>
</ModalView>
</div>
</template>
Expand Down
2 changes: 1 addition & 1 deletion src/components/request-task/RequestTaskInput.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<p
v-if="isInvalidateState === 'code'"
class="text-red-1 text-xs absolute top-[calc(100%+4px)]">
사용할 수 없는 고유코드입니다.
사용할 수 없는 작업코드입니다.
</p>
</div>
</template>
Expand Down
Loading
Loading