diff --git a/src/api/user.ts b/src/api/user.ts index 4b6d2eaf..72940f3b 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -57,3 +57,23 @@ export const getHistory = async (taskID: number) => { const response = await axiosInstance.get(`/api/tasks/${taskID}/histories`) return response.data } + +export const postComment = async (taskID: number, content: string) => { + const response = await axiosInstance.post(`/api/comment/${taskID}`, { content }) + return response.data +} + +export const postCommentAttachment = async (taskID: number, formdata: FormData) => { + const response = await formDataAxiosInstance.post(`/api/comment/attachment/${taskID}`, formdata) + return response.data +} + +export const patchComment = async (commentId: number, content: string) => { + const response = await axiosInstance.patch(`/api/comment/${commentId}`, { content }) + return response.data +} + +export const deleteComment = async (commentId: number) => { + const response = await axiosInstance.delete(`/api/comment/${commentId}`) + return response.data +} diff --git a/src/assets/styles.css b/src/assets/styles.css index 4627248b..ea127e9c 100644 --- a/src/assets/styles.css +++ b/src/assets/styles.css @@ -11,6 +11,7 @@ body { font-family: 'SUIT-Variable', sans-serif; + color: #18181B; } .shadow-custom { diff --git a/src/components/my-request/MyRequestList.vue b/src/components/my-request/MyRequestList.vue index a53cfe21..8409cfd3 100644 --- a/src/components/my-request/MyRequestList.vue +++ b/src/components/my-request/MyRequestList.vue @@ -26,13 +26,13 @@ import { useRequestParamsStore } from '@/stores/params' import type { MyRequestResponse } from '@/types/user' import { axiosInstance } from '@/utils/axios' import { useQuery } from '@tanstack/vue-query' +import { computed } from 'vue' import { useParseParams } from '../hooks/useParseParams' 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 { computed } from 'vue' const { params } = useRequestParamsStore() const onPageChange = (value: number) => { diff --git a/src/components/request-task/RequestTask.vue b/src/components/request-task/RequestTask.vue index 985e3d3f..34d716ed 100644 --- a/src/components/request-task/RequestTask.vue +++ b/src/components/request-task/RequestTask.vue @@ -96,7 +96,6 @@ const handleSubmit = async () => { const formData = new FormData() const taskInfo = { categoryId: category2.value.id, - title: title.value, description: description.value } diff --git a/src/components/requested/RequestedListCard.vue b/src/components/requested/RequestedListCard.vue index ccfb088d..d792a4c8 100644 --- a/src/components/requested/RequestedListCard.vue +++ b/src/components/requested/RequestedListCard.vue @@ -2,6 +2,7 @@
거부 -
+ () const requestedTabList: ListCardProps[] = [ @@ -69,6 +71,12 @@ const requestedTabList: ListCardProps[] = [ { content: info.requesterName, width: 120, profileImg: info.requesterImg } ] +const selectedID = ref(null) + +const handleModal = (id: number | null) => { + selectedID.value = id +} + const router = useRouter() const queryClient = useQueryClient() diff --git a/src/components/task-detail/TaskDetail.vue b/src/components/task-detail/TaskDetail.vue index 69e1a5ac..897fdac3 100644 --- a/src/components/task-detail/TaskDetail.vue +++ b/src/components/task-detail/TaskDetail.vue @@ -3,19 +3,21 @@
+ :isProcessor="data?.processorNickName === info.nickname || info.memberRole === 'ROLE_'" + :isRequestor="data?.requesterNickName === info.nickname" />
-
+
+ :task-id="selectedId" + :requestor-name="data.requesterNickName" />
diff --git a/src/components/task-detail/TaskDetailHistoryChat.vue b/src/components/task-detail/TaskDetailHistoryChat.vue index 83679ae9..2763ab9f 100644 --- a/src/components/task-detail/TaskDetailHistoryChat.vue +++ b/src/components/task-detail/TaskDetailHistoryChat.vue @@ -1,15 +1,79 @@ - + diff --git a/src/components/task-detail/TaskDetailHistoryFile.vue b/src/components/task-detail/TaskDetailHistoryFile.vue new file mode 100644 index 00000000..fbfd2642 --- /dev/null +++ b/src/components/task-detail/TaskDetailHistoryFile.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/components/task-detail/TaskDetailHistoryInput.vue b/src/components/task-detail/TaskDetailHistoryInput.vue index db6b0ba8..3ce09df5 100644 --- a/src/components/task-detail/TaskDetailHistoryInput.vue +++ b/src/components/task-detail/TaskDetailHistoryInput.vue @@ -1,20 +1,23 @@ diff --git a/src/components/task-detail/TaskDetailLeft.vue b/src/components/task-detail/TaskDetailLeft.vue index 0f466524..95fdade4 100644 --- a/src/components/task-detail/TaskDetailLeft.vue +++ b/src/components/task-detail/TaskDetailLeft.vue @@ -14,7 +14,7 @@

부가 설명

-

{{ data.description }}

+

{{ data.description }}

첨부 파일

diff --git a/src/components/task-detail/TaskDetailRight.vue b/src/components/task-detail/TaskDetailRight.vue index bf992b9f..7332f94e 100644 --- a/src/components/task-detail/TaskDetailRight.vue +++ b/src/components/task-detail/TaskDetailRight.vue @@ -1,8 +1,8 @@ diff --git a/src/components/task-detail/TaskDetailTopBar.vue b/src/components/task-detail/TaskDetailTopBar.vue index 46e31bb1..a8944afc 100644 --- a/src/components/task-detail/TaskDetailTopBar.vue +++ b/src/components/task-detail/TaskDetailTopBar.vue @@ -2,13 +2,13 @@

재요청

요청 수정

@@ -22,7 +22,7 @@

요청취소

@@ -57,7 +57,8 @@ import CommonIcons from '../common/CommonIcons.vue' import ModalView from '../ModalView.vue' const router = useRouter() -const { isApproved, closeTaskDetail, id, isProcessor } = defineProps() +const { isApproved, closeTaskDetail, id, isProcessor, isRequestor } = + defineProps() const isModalOpen = ref({ cancel: false, diff --git a/src/components/task-detail/TaskStatusList.vue b/src/components/task-detail/TaskStatusList.vue index 51e2995f..3c071422 100644 --- a/src/components/task-detail/TaskStatusList.vue +++ b/src/components/task-detail/TaskStatusList.vue @@ -1,5 +1,25 @@