diff --git a/src/views/receive/asn/Asn.api.ts b/src/views/receive/asn/Asn.api.ts
index 6ef8215..2928948 100644
--- a/src/views/receive/asn/Asn.api.ts
+++ b/src/views/receive/asn/Asn.api.ts
@@ -1,12 +1,12 @@
-import {defHttp} from '/@/utils/http/axios';
-import { useMessage } from "/@/hooks/web/useMessage";
+import { defHttp } from '/@/utils/http/axios';
+import { useMessage } from '/@/hooks/web/useMessage';
const { createConfirm } = useMessage();
enum Api {
list = '/receive/asn/list',
- save='/receive/asn/add',
- edit='/receive/asn/edit',
+ save = '/receive/asn/add',
+ edit = '/receive/asn/edit',
deleteOne = '/receive/asn/delete',
deleteBatch = '/receive/asn/deleteBatch',
importExcel = '/receive/asn/importExcel',
@@ -15,7 +15,9 @@ enum Api {
asnDetailList = '/receive/asn/queryAsnDetailByMainId',
receiveAsn = '/receive/asn/receiveAsn',
receiveBack = '/receive/asn/receiveBack',
+ closeAsn = '/receive/asn/closeAsn',
}
+
/**
* 导出api
* @param params
@@ -31,23 +33,26 @@ export const getImportUrl = Api.importExcel;
* 查询子表数据
* @param params
*/
-export const queryAsnDetailListByMainId = (id) => defHttp.get({url: Api.asnDetailList, params:{ id }});
+export const queryAsnDetailListByMainId = (id) =>
+ defHttp.get({
+ url: Api.asnDetailList,
+ params: { id },
+ });
/**
* 列表接口
* @param params
*/
-export const list = (params) =>
- defHttp.get({url: Api.list, params});
+export const list = (params) => defHttp.get({ url: Api.list, params });
/**
* 删除单个
*/
-export const deleteOne = (params,handleSuccess) => {
- return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+export const deleteOne = (params, handleSuccess) => {
+ return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => {
handleSuccess();
});
-}
+};
/**
* 批量删除
* @param params
@@ -60,33 +65,41 @@ export const batchDelete = (params, handleSuccess) => {
okText: '确认',
cancelText: '取消',
onOk: () => {
- return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
- handleSuccess();
- });
- }
+ return defHttp
+ .delete(
+ {
+ url: Api.deleteBatch,
+ data: params,
+ },
+ { joinParamsToUrl: true }
+ )
+ .then(() => {
+ handleSuccess();
+ });
+ },
});
-}
+};
/**
* 保存或者更新
* @param params
*/
export const saveOrUpdate = (params, isUpdate) => {
const url = isUpdate ? Api.edit : Api.save;
- return defHttp.post({url: url, params});
-}
+ return defHttp.post({ url: url, params });
+};
/**
-* 根据id查询数据
-* @param params
-*/
-export const queryDataById = (id) => defHttp.get({url: Api.queryDataById, params:{ id }});
+ * 根据id查询数据
+ * @param params
+ */
+export const queryDataById = (id) => defHttp.get({ url: Api.queryDataById, params: { id } });
/**
* 整单入库
* @param params
*/
-export const receiveAsn = (id,handleSuccess) => {
- return defHttp.get({ url: Api.receiveAsn, params: { id } }, { joinParamsToUrl: true }).then(() => {
+export const receiveAsn = (id, handleSuccess) => {
+ return defHttp.get({ url: Api.receiveAsn, params: { id } }, { joinParamsToUrl: true }).then(() => {
handleSuccess();
});
};
@@ -95,8 +108,18 @@ export const receiveAsn = (id,handleSuccess) => {
* 回传
* @param params
*/
-export const receiveBack = (id,handleSuccess) => {
- return defHttp.get({ url: Api.receiveBack, params: { id } }, { joinParamsToUrl: true }).then(() => {
+export const receiveBack = (id, handleSuccess) => {
+ return defHttp.get({ url: Api.receiveBack, params: { id } }, { joinParamsToUrl: true }).then(() => {
+ handleSuccess();
+ });
+};
+
+/**
+ * 出库单关闭
+ * @param params
+ */
+export const closeAsn = (ids, handleSuccess) => {
+ return defHttp.get({ url: Api.closeAsn, params: { ids } }, { joinParamsToUrl: true }).then(() => {
handleSuccess();
});
};
diff --git a/src/views/receive/asn/AsnList.vue b/src/views/receive/asn/AsnList.vue
index acfc993..1018289 100644
--- a/src/views/receive/asn/AsnList.vue
+++ b/src/views/receive/asn/AsnList.vue
@@ -17,12 +17,11 @@
-
+
状态
-
@@ -74,6 +73,16 @@
>
入库回传
+
+ 手工关单
+
导出
validStatuses.includes(row.status));
+ if (!allValidStatus) {
+ return createMessage.error('【已创建、部分收货、收货完成】状态的入库单才允许关单');
+ }
+ if (closeAsn_loading.value) {
+ return;
+ }
+ // 设置加载状态,防止重复提交
+ closeAsn_loading.value = true;
+ try {
+ await closeAsn(selectedRowKeys.value, handleSuccess);
+ } catch (e) {
+ console.error('关单失败:', e);
+ handleSuccess();
+ } finally {
+ // 重置加载状态
+ closeAsn_loading.value = false;
+ }
+ }
+
/**
* 成功回调
*/
diff --git a/src/views/shipping/Pick.data.ts b/src/views/shipping/Pick.data.ts
index 4102bff..e71951c 100644
--- a/src/views/shipping/Pick.data.ts
+++ b/src/views/shipping/Pick.data.ts
@@ -290,10 +290,16 @@ export const taskColumns: JVxeColumn[] = [
title: '请求报文',
key: 'reqMessage',
type: JVxeTypes.normal,
+ formatter: ({ cellValue }) => {
+ return render.renderTip(cellValue);
+ },
},
{
title: '返回报文',
key: 'resMessage',
type: JVxeTypes.normal,
+ formatter: ({ cellValue }) => {
+ return render.renderTip(cellValue);
+ },
},
];