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); + }, }, ];