diff --git a/src/api/task.js b/src/api/task.js
index 0003a7e..41238e6 100644
--- a/src/api/task.js
+++ b/src/api/task.js
@@ -1,10 +1,12 @@
 import request from '@/utils/request'
+
 export function getTaskInfo(id) {
   return request({
-    url: 'api/task/queryAsnTask?asnDetailId='+id ,
+    url: 'api/task/queryAsnTask?asnDetailId=' + id,
     method: 'get'
   })
 }
+
 export function add(data) {
   return request({
     url: 'api/task',
@@ -20,6 +22,7 @@ export function del(ids) {
     data: ids
   })
 }
+
 // 拣货确认
 export function jhQr(ids) {
   return request({
@@ -39,9 +42,16 @@ export function edit(data) {
 
 export function queryPickTask(id) {
   return request({
-    url: 'api/task/queryPickTask?pickDetailId='+id ,
+    url: 'api/task/queryPickTask?pickDetailId=' + id,
     method: 'get'
   })
 }
 
-export default { add, edit, del ,getTaskInfo,queryPickTask,jhQr}
+export function cancelAllocate(pickDetailId, quantity) {
+  return request({
+    url: 'api/task/cancelAllocate?pickDetailId=' + pickDetailId + "&quantity=" + quantity,
+    method: 'get'
+  })
+}
+
+export default {add, edit, del, getTaskInfo, queryPickTask, jhQr, cancelAllocate}
diff --git a/src/views/business-data/pickDetail/pickTask.vue b/src/views/business-data/pickDetail/pickTask.vue
index dff65e3..1cb891f 100644
--- a/src/views/business-data/pickDetail/pickTask.vue
+++ b/src/views/business-data/pickDetail/pickTask.vue
@@ -167,11 +167,21 @@
         
         
         
-        
+        
           
             翻包拣货
             
+
+            
+              手工取消
+            
+
           
         
       
@@ -364,6 +374,24 @@ export default {
         }
       })
     },
+    cancelTask(data) {
+      this.$confirm('此操作将删除该任务, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        crudTask.cancelAllocate(data.pickDetail.id, data.planQty).then(res => {
+          if (res.status == 200) {
+            this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
+            this.crud.toQuery()
+          } else {
+            this.crud.notify(res.message, CRUD.NOTIFICATION_TYPE.ERROR)
+          }
+        })
+      }).catch(() => {
+        this.crud.notify('取消操作', CRUD.NOTIFICATION_TYPE.INFO)
+      });
+    },
     resetQuery() {
       this.radio3 = '已到站';
       this.crud.resetQuery()