From 2c86a8bd60deed0dd0e044bad6fb83f75d19a332 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 15:05:50 +0800
Subject: [PATCH] Merge branch 'feature-task'

---
 ruoyi-ui/src/api/task.js |  247 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 247 insertions(+), 0 deletions(-)

diff --git a/ruoyi-ui/src/api/task.js b/ruoyi-ui/src/api/task.js
new file mode 100644
index 0000000..de044c9
--- /dev/null
+++ b/ruoyi-ui/src/api/task.js
@@ -0,0 +1,247 @@
+import request from '@/utils/request'
+
+// 鏌ヨ浠诲姟绠$悊鍒楄〃
+export function listTask(query) {
+  return request({
+    url: '/task/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ浠诲姟绠$悊璇︾粏
+export function getTask(taskId) {
+  return request({
+    url: '/task/' + taskId,
+    method: 'get'
+  })
+}
+
+// 鏂板浠诲姟绠$悊
+export function addTask(data) {
+  return request({
+    url: '/task',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼浠诲姟绠$悊
+export function updateTask(data) {
+  return request({
+    url: '/task',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎浠诲姟绠$悊
+export function delTask(taskIds) {
+  return request({
+    url: '/task/' + taskIds,
+    method: 'delete'
+  })
+}
+
+// 鍒嗛厤浠诲姟
+export function assignTask(taskId, data) {
+  return request({
+    url: '/task/' + taskId + '/assign',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鏇存柊浠诲姟鐘舵��
+export function changeTaskStatus(taskId, data) {
+  return request({
+    url: '/task/' + taskId + '/status',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鏌ヨ浠诲姟缁熻淇℃伅
+export function getTaskStatistics() {
+  return request({
+    url: '/task/statistics',
+    method: 'get'
+  })
+}
+
+// 鏌ヨ瓒呮椂浠诲姟鍒楄〃
+export function getOverdueTasks() {
+  return request({
+    url: '/task/overdue',
+    method: 'get'
+  })
+}
+
+// 鏌ヨ鎴戠殑浠诲姟鍒楄〃
+export function getMyTasks() {
+  return request({
+    url: '/task/my',
+    method: 'get'
+  })
+}
+
+// 涓婁紶浠诲姟闄勪欢
+export function uploadAttachment(taskId, file) {
+  const formData = new FormData()
+  formData.append('file', file)
+  return request({
+    url: '/task/attachment/upload/' + taskId,
+    method: 'post',
+    data: formData,
+    headers: {
+      'Content-Type': 'multipart/form-data'
+    }
+  })
+}
+
+// 鍒犻櫎浠诲姟闄勪欢
+export function deleteAttachment(attachmentId) {
+  return request({
+    url: '/task/attachment/' + attachmentId,
+    method: 'delete'
+  })
+}
+
+// 鏌ヨ浠诲姟闄勪欢鍒楄〃
+export function getTaskAttachments(taskId) {
+  return request({
+    url: '/task/attachment/list/' + taskId,
+    method: 'get'
+  })
+}
+
+// 鏌ヨ浠诲姟鍏宠仈鐨勮溅杈嗗垪琛�
+export function getTaskVehicles(taskId) {
+  return request({
+    url: '/task/vehicle/list/' + taskId,
+    method: 'get'
+  })
+}
+
+// 鏌ヨ鍙敤杞﹁締鍒楄〃
+export function getAvailableVehicles(deptId, taskType) {
+  return request({
+    url: '/task/vehicle/available',
+    method: 'get',
+    params: { deptId, taskType }
+  })
+}
+
+// 鍒嗛厤杞﹁締缁欎换鍔�
+export function assignVehicleToTask(taskId, data) {
+  return request({
+    url: '/task/vehicle/assign/' + taskId,
+    method: 'post',
+    data: data
+  })
+}
+
+// 鎵归噺鍒嗛厤杞﹁締缁欎换鍔�
+export function assignVehiclesToTask(taskId, data) {
+  return request({
+    url: '/task/vehicle/assign-batch/' + taskId,
+    method: 'post',
+    data: data
+  })
+}
+
+// 鍙栨秷浠诲姟杞﹁締鍒嗛厤
+export function unassignVehicleFromTask(taskId, vehicleId) {
+  return request({
+    url: '/task/vehicle/' + taskId + '/' + vehicleId,
+    method: 'delete'
+  })
+}
+
+// ========== 浠诲姟杞﹁締鍏宠仈绠$悊鐩稿叧API ==========
+
+// 鏌ヨ浠诲姟杞﹁締鍏宠仈鍒楄〃
+export function listTaskVehicle(query) {
+  return request({
+    url: '/task/vehicle/management/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ浠诲姟杞﹁締鍏宠仈璇︾粏
+export function getTaskVehicle(id) {
+  return request({
+    url: '/task/vehicle/management/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板浠诲姟杞﹁締鍏宠仈
+export function addTaskVehicle(data) {
+  return request({
+    url: '/task/vehicle/management',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼浠诲姟杞﹁締鍏宠仈
+export function updateTaskVehicle(data) {
+  return request({
+    url: '/task/vehicle/management',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎浠诲姟杞﹁締鍏宠仈
+export function delTaskVehicle(ids) {
+  return request({
+    url: '/task/vehicle/management/' + ids,
+    method: 'delete'
+  })
+}
+
+// 鏍规嵁浠诲姟ID鏌ヨ鍏宠仈杞﹁締鍒楄〃
+export function getVehiclesByTaskId(taskId) {
+  return request({
+    url: '/task/vehicle/management/task/' + taskId,
+    method: 'get'
+  })
+}
+
+// 鍒嗛厤杞﹁締缁欎换鍔★紙绠$悊鎺ュ彛锛�
+export function assignVehicleToTaskManagement(data) {
+  return request({
+    url: '/task/vehicle/management/assign',
+    method: 'post',
+    data: data
+  })
+}
+
+// 鎵归噺鍒嗛厤杞﹁締缁欎换鍔★紙绠$悊鎺ュ彛锛�
+export function assignVehiclesToTaskManagement(data) {
+  return request({
+    url: '/task/vehicle/management/assign-batch',
+    method: 'post',
+    data: data
+  })
+}
+
+// 鍙栨秷浠诲姟杞﹁締鍒嗛厤锛堢鐞嗘帴鍙o級
+export function unassignVehicleFromTaskManagement(taskId, vehicleId) {
+  return request({
+    url: '/task/vehicle/management/unassign/' + taskId + '/' + vehicleId,
+    method: 'delete'
+  })
+}
+
+// 鏇存柊浠诲姟杞﹁締鍏宠仈鐘舵��
+export function updateTaskVehicleStatus(id, status) {
+  return request({
+    url: '/task/vehicle/management/status/' + id,
+    method: 'put',
+    params: { status }
+  })
+}
\ No newline at end of file

--
Gitblit v1.9.1