diff --git a/src/api/common.ts b/src/api/common.ts
new file mode 100644
index 00000000..a0d4fd4e
--- /dev/null
+++ b/src/api/common.ts
@@ -0,0 +1,11 @@
+import { axiosInstance } from '../utils/axios'
+
+export const getMainCategory = async () => {
+ const response = await axiosInstance.get('/api/main-category')
+ return response.data
+}
+
+export const getSubCategory = async () => {
+ const response = await axiosInstance.get('/api/sub-category')
+ return response.data
+}
diff --git a/src/api/test.ts b/src/api/test.ts
index e28e9dd8..bb6f3d0b 100644
--- a/src/api/test.ts
+++ b/src/api/test.ts
@@ -1,4 +1,4 @@
-import axiosInstance from '../utils/axios'
+import { axiosInstance } from '../utils/axios'
export const getNotifications = async () => {
const response = await axiosInstance.get('/api/notifications?page=0&size=5')
diff --git a/src/api/user.ts b/src/api/user.ts
new file mode 100644
index 00000000..86bbbbf4
--- /dev/null
+++ b/src/api/user.ts
@@ -0,0 +1,6 @@
+import { formDataAxiosInstance } from '@/utils/axios'
+
+export const postTaskRequest = async (formdata: FormData) => {
+ const response = await formDataAxiosInstance.post('/api/tasks', formdata)
+ return response.data
+}
diff --git a/src/components/my-request/MyRequestFilterBar.vue b/src/components/my-request/MyRequestFilterBar.vue
index e1c2735a..cd96cacd 100644
--- a/src/components/my-request/MyRequestFilterBar.vue
+++ b/src/components/my-request/MyRequestFilterBar.vue
@@ -33,15 +33,15 @@
diff --git a/src/components/request-task/RequestTask.vue b/src/components/request-task/RequestTask.vue
index 6ee6e2f8..1374053b 100644
--- a/src/components/request-task/RequestTask.vue
+++ b/src/components/request-task/RequestTask.vue
@@ -1,69 +1,120 @@
-
-
+
+ :is-invalidate="isInvalidate"
+ :isDisabled="!category1" />
+ :placeholderText="'제목을 입력해주세요'"
+ :label-name="'제목'"
+ :is-invalidate="isInvalidate" />
+ :placeholderText="'부가 정보를 입력해주세요'" />
+
+ 작업이 요청되었습니다
+
diff --git a/src/components/request-task/RequestTaskFileInput.vue b/src/components/request-task/RequestTaskFileInput.vue
index 6ee08c50..74cc26b9 100644
--- a/src/components/request-task/RequestTaskFileInput.vue
+++ b/src/components/request-task/RequestTaskFileInput.vue
@@ -9,7 +9,7 @@
@change="handleFileUpload" />
()
const emit = defineEmits(['update:modelValue'])
-const hasFiles = computed(() => props.modelValue && props.modelValue.length > 0)
+const hasFiles = computed(() => modelValue && modelValue.length > 0)
const handleFileUpload = (event: Event) => {
const target = event.target as HTMLInputElement
if (target.files && target.files.length > 0) {
const newFiles = Array.from(target.files)
- const updatedFiles = props.modelValue ? [...props.modelValue, ...newFiles] : newFiles
+ const updatedFiles = modelValue ? [...modelValue, ...newFiles] : newFiles
emit('update:modelValue', updatedFiles)
}
}
const removeFile = (index: number) => {
- if (props.modelValue) {
- const updatedFiles = [...props.modelValue]
+ if (modelValue) {
+ const updatedFiles = [...modelValue]
updatedFiles.splice(index, 1)
emit('update:modelValue', updatedFiles)
}
diff --git a/src/components/request-task/RequestTaskInput.vue b/src/components/request-task/RequestTaskInput.vue
index 7646a033..df55151e 100644
--- a/src/components/request-task/RequestTaskInput.vue
+++ b/src/components/request-task/RequestTaskInput.vue
@@ -7,6 +7,11 @@
class="text-red-1">
*
+
+ {{ labelName }}을 입력해주세요
+
import type { RequestTaskInputProps } from '@/types/user'
-
-const { modelValue, placeholderText, labelName, isNotRequired, isEdit } =
+import { computed } from 'vue'
+const { modelValue, placeholderText, labelName, isNotRequired, isEdit, isInvalidate } =
defineProps()
+
+const isInvalidateState = computed(() => isInvalidate)
+
const emit = defineEmits(['update:modelValue'])
const updateValue = (value: string) => {
diff --git a/src/components/requested/RequestedFilterBar.vue b/src/components/requested/RequestedFilterBar.vue
index cfecbcec..7c28ce9e 100644
--- a/src/components/requested/RequestedFilterBar.vue
+++ b/src/components/requested/RequestedFilterBar.vue
@@ -35,7 +35,7 @@ import { PAGE_SIZE_LIST, TERM_LIST } from '@/constants/common'
import { useRequestParamsStore } from '@/stores/params'
import { useRequestParamsChange } from '../hooks/useRequestParamsChange'
import { useQuery } from '@tanstack/vue-query'
-import axiosInstance from '@/utils/axios'
+import {axiosInstance} from '@/utils/axios'
const store = useRequestParamsStore()
store.$reset()
diff --git a/src/components/task-board/TaskBoardFilterBar.vue b/src/components/task-board/TaskBoardFilterBar.vue
index a4841f5d..d9c2f338 100644
--- a/src/components/task-board/TaskBoardFilterBar.vue
+++ b/src/components/task-board/TaskBoardFilterBar.vue
@@ -29,7 +29,7 @@ import FilterInput from '../filters/FilterInput.vue'
import { DUMMY_DIVISION_LIST } from '@/datas/dummy'
import { useTaskBoardParamsStore } from '@/stores/params'
import { useQuery } from '@tanstack/vue-query'
-import axiosInstance from '@/utils/axios'
+import {axiosInstance} from '@/utils/axios'
const { params } = useTaskBoardParamsStore()
diff --git a/src/components/task-management/CategoryAdd.vue b/src/components/task-management/CategoryAdd.vue
index b0a0ca07..22686e00 100644
--- a/src/components/task-management/CategoryAdd.vue
+++ b/src/components/task-management/CategoryAdd.vue
@@ -42,10 +42,10 @@
import { CATEGORY_FIRST_ADD, CATEGORY_SECOND_ADD, RoleKeys } from '@/constants/admin'
import { ref } from 'vue'
import { useRouter } from 'vue-router'
+import FormButtonContainer from '../common/FormButtonContainer.vue'
import ModalView from '../ModalView.vue'
import RequestTaskDropdown from '../request-task/RequestTaskDropdown.vue'
import RequestTaskInput from '../request-task/RequestTaskInput.vue'
-import FormButtonContainer from '../common/FormButtonContainer.vue'
const router = useRouter()
diff --git a/src/components/team-board/TeamBoardFilterBar.vue b/src/components/team-board/TeamBoardFilterBar.vue
index 729e046e..e76be4e1 100644
--- a/src/components/team-board/TeamBoardFilterBar.vue
+++ b/src/components/team-board/TeamBoardFilterBar.vue
@@ -22,13 +22,13 @@