diff --git a/smart-admin-web-typescript/src/api/business/receive/asnDetail/asn-detail-api.ts b/smart-admin-web-typescript/src/api/business/receive/asnDetail/asn-detail-api.ts
index fce8e14..50645b4 100644
--- a/smart-admin-web-typescript/src/api/business/receive/asnDetail/asn-detail-api.ts
+++ b/smart-admin-web-typescript/src/api/business/receive/asnDetail/asn-detail-api.ts
@@ -45,4 +45,11 @@ export const asnDetailApi = {
         return postRequest('/asnDetail/batchDelete', idList);
     },
 
+    /**
+     * 批量收货  @author  霍锦
+     */
+    batchReceive: (idList: number[]) => {
+        return postRequest('/asnDetail/batchReceive', idList);
+    },
+
 };
diff --git a/smart-admin-web-typescript/src/api/business/receive/receive-api.ts b/smart-admin-web-typescript/src/api/business/receive/receive-api.ts
new file mode 100644
index 0000000..55ce390
--- /dev/null
+++ b/smart-admin-web-typescript/src/api/business/receive/receive-api.ts
@@ -0,0 +1,19 @@
+/**
+ * 入库明细 api 封装
+ *
+ * @Author:    霍锦
+ * @Date:      2025-03-26 15:16:28
+ * @Copyright  友仓
+ */
+import {postRequest} from '/@/lib/axios';
+
+export const receiveApi = {
+
+    /**
+     * 批量收货  @author  霍锦
+     */
+    batchReceive: (idList: number[]) => {
+        return postRequest('/receive/batchReceive', idList);
+    },
+
+};
diff --git a/smart-admin-web-typescript/src/views/business/base/location/location-form.vue b/smart-admin-web-typescript/src/views/business/base/location/location-form.vue
index 8b4fc1c..627639f 100644
--- a/smart-admin-web-typescript/src/views/business/base/location/location-form.vue
+++ b/smart-admin-web-typescript/src/views/business/base/location/location-form.vue
@@ -118,7 +118,7 @@ function changeAreaSelect(selectValue: any) {
 async function onSubmit() {
   try {
     await formRef.value.validateFields();
-    save();
+    await save();
   } catch (err) {
     message.error('参数验证错误,请仔细填写表单数据!');
   }
diff --git a/smart-admin-web-typescript/src/views/business/receive/asn/asn-list.vue b/smart-admin-web-typescript/src/views/business/receive/asn/asn-list.vue
index 5df6c2b..20c1de3 100644
--- a/smart-admin-web-typescript/src/views/business/receive/asn/asn-list.vue
+++ b/smart-admin-web-typescript/src/views/business/receive/asn/asn-list.vue
@@ -92,6 +92,10 @@
 
       
 
+        
+          {{ record.asnNumber }}
+        
+
         
           {{ $smartEnumPlugin.getDescByValue('ASN_ORDER_TYPE_ENUM', text) }}
         
@@ -111,7 +115,8 @@
               
               编辑
             
-            
+            
               
                 
               
@@ -214,6 +219,7 @@ const columns = ref([
   {
     title: '操作',
     dataIndex: 'action',
+    align: 'center',
     fixed: 'right',
     width: 140,
   },
diff --git a/smart-admin-web-typescript/src/views/business/receive/asn/receive-detail-list.vue b/smart-admin-web-typescript/src/views/business/receive/asn/receive-detail-list.vue
index c0d7194..f576a0e 100644
--- a/smart-admin-web-typescript/src/views/business/receive/asn/receive-detail-list.vue
+++ b/smart-admin-web-typescript/src/views/business/receive/asn/receive-detail-list.vue
@@ -18,19 +18,29 @@
       
 
       
-        
+        
           
             
           
           添加明细
         
-        
+          
+            
+          
+          批量收货
+        
+        
           
             
           
           批量移除
         
+
         
        
 
@@ -48,13 +58,15 @@
       
         
           
-            
+            
               
                 
               
               编辑
             
-            
+            
               
                 
               
@@ -92,6 +104,7 @@ import {smartSentry} from '/@/lib/smart-sentry';
 import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
 import TableOperator from "/@/components/support/table-operator/index.vue";
 import {asnDetailApi} from "/@/api/business/receive/asnDetail/asn-detail-api";
+import {receiveApi} from "/@/api/business/receive/receive-api";
 import AsnDetailForm from "/@/views/business/receive/asnDetail/asn-detail-form.vue";
 import {message, Modal} from "ant-design-vue";
 import {SmartLoading} from '/@/components/framework/smart-loading';
@@ -139,7 +152,7 @@ const columns = reactive([
 const defaultQueryForm = {
   pageNum: 1,
   pageSize: PAGE_SIZE,
-  asnId: undefined,
+  asnId: 0,
   keyword: undefined,
 }
 
@@ -197,7 +210,7 @@ function showForm(data: object) {
 }
 
 //确认是否删除?
-function onDelete(data) {
+function onDelete(data: object) {
   Modal.confirm({
     title: '提示',
     content: '确定要删除选吗?',
@@ -213,11 +226,89 @@ function onDelete(data) {
 }
 
 //请求删除
-async function requestDelete(data) {
+async function requestDelete(data: any) {
   SmartLoading.show();
   try {
-    await asnDetailApi.delete(data.asnDetailId);
-    message.success('删除成功');
+    const response = await asnDetailApi.delete(data.asnDetailId);
+    const {error, success} = JSON.parse(response.msg);
+    if (error) {
+      message.error(error);
+    }
+    if (success) {
+      message.success(success);
+    }
+    await queryData();
+  } catch (e) {
+    smartSentry.captureError(e);
+  } finally {
+    SmartLoading.hide();
+  }
+}
+
+//批量删除
+function confirmBatchDelete() {
+  Modal.confirm({
+    title: '提示',
+    content: '确定要批量删除这些数据吗?',
+    okText: '删除',
+    okType: 'danger',
+    onOk() {
+      requestBatchDelete();
+    },
+    cancelText: '取消',
+    onCancel() {
+    },
+  });
+}
+
+//请求批量删除
+async function requestBatchDelete() {
+  try {
+    SmartLoading.show();
+    const response = await asnDetailApi.batchDelete(selectedRowKeyList.value);
+    const {error, success} = JSON.parse(response.msg);
+    if (error) {
+      message.error(error);
+    }
+    if (success) {
+      message.success(success);
+    }
+    await queryData();
+  } catch (e) {
+    smartSentry.captureError(e);
+  } finally {
+    SmartLoading.hide();
+  }
+}
+
+//批量收货 confirmBatchReceive
+function confirmBatchReceive() {
+  Modal.confirm({
+    title: '提示',
+    content: '确定是否批量收货?',
+    okText: '确认',
+    okType: 'danger',
+    onOk() {
+      requestBatchReceive();
+    },
+    cancelText: '取消',
+    onCancel() {
+    },
+  });
+}
+
+//请求批量收货
+async function requestBatchReceive() {
+  try {
+    SmartLoading.show();
+    const response = await receiveApi.batchReceive(selectedRowKeyList.value);
+    const {error, success} = JSON.parse(response.msg);
+    if (error) {
+      message.error(error);
+    }
+    if (success) {
+      message.success(success);
+    }
     await queryData();
   } catch (e) {
     smartSentry.captureError(e);
diff --git a/smart-admin-web-typescript/src/views/business/receive/asnDetail/asn-detail-form.vue b/smart-admin-web-typescript/src/views/business/receive/asnDetail/asn-detail-form.vue
index 584a055..fd2b3e0 100644
--- a/smart-admin-web-typescript/src/views/business/receive/asnDetail/asn-detail-form.vue
+++ b/smart-admin-web-typescript/src/views/business/receive/asnDetail/asn-detail-form.vue
@@ -116,7 +116,7 @@ async function save() {
     }
     message.success('操作成功');
     emits('reloadList');
-    onClose();
+    continueResetForm()
   } catch (err) {
     smartSentry.captureError(err);
   } finally {
@@ -124,6 +124,15 @@ async function save() {
   }
 }
 
+function continueResetForm() {
+  const asnId = form.asnId;
+  Object.assign(form, formDefault);
+  form.asnId = asnId;
+  nextTick(() => {
+    formRef.value.clearValidate();
+  });
+}
+
 defineExpose({
   show,
 });