no message

main
HUOJIN\92525 2026-01-18 00:08:01 +08:00
parent a4eb09b017
commit 4761f7036d
3 changed files with 94 additions and 28 deletions

View File

@ -1,12 +1,12 @@
import {defHttp} from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { useMessage } from "/@/hooks/web/useMessage"; import { useMessage } from '/@/hooks/web/useMessage';
const { createConfirm } = useMessage(); const { createConfirm } = useMessage();
enum Api { enum Api {
list = '/receive/asn/list', list = '/receive/asn/list',
save='/receive/asn/add', save = '/receive/asn/add',
edit='/receive/asn/edit', edit = '/receive/asn/edit',
deleteOne = '/receive/asn/delete', deleteOne = '/receive/asn/delete',
deleteBatch = '/receive/asn/deleteBatch', deleteBatch = '/receive/asn/deleteBatch',
importExcel = '/receive/asn/importExcel', importExcel = '/receive/asn/importExcel',
@ -15,7 +15,9 @@ enum Api {
asnDetailList = '/receive/asn/queryAsnDetailByMainId', asnDetailList = '/receive/asn/queryAsnDetailByMainId',
receiveAsn = '/receive/asn/receiveAsn', receiveAsn = '/receive/asn/receiveAsn',
receiveBack = '/receive/asn/receiveBack', receiveBack = '/receive/asn/receiveBack',
closeAsn = '/receive/asn/closeAsn',
} }
/** /**
* api * api
* @param params * @param params
@ -31,23 +33,26 @@ export const getImportUrl = Api.importExcel;
* *
* @param params * @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 * @param params
*/ */
export const list = (params) => export const list = (params) => defHttp.get({ url: Api.list, params });
defHttp.get({url: Api.list, params});
/** /**
* *
*/ */
export const deleteOne = (params,handleSuccess) => { export const deleteOne = (params, handleSuccess) => {
return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { return defHttp.delete({ url: Api.deleteOne, params }, { joinParamsToUrl: true }).then(() => {
handleSuccess(); handleSuccess();
}); });
} };
/** /**
* *
* @param params * @param params
@ -60,33 +65,41 @@ export const batchDelete = (params, handleSuccess) => {
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onOk: () => { onOk: () => {
return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { return defHttp
handleSuccess(); .delete(
}); {
} url: Api.deleteBatch,
data: params,
},
{ joinParamsToUrl: true }
)
.then(() => {
handleSuccess();
});
},
}); });
} };
/** /**
* *
* @param params * @param params
*/ */
export const saveOrUpdate = (params, isUpdate) => { export const saveOrUpdate = (params, isUpdate) => {
const url = isUpdate ? Api.edit : Api.save; const url = isUpdate ? Api.edit : Api.save;
return defHttp.post({url: url, params}); return defHttp.post({ url: url, params });
} };
/** /**
* id * id
* @param params * @param params
*/ */
export const queryDataById = (id) => defHttp.get({url: Api.queryDataById, params:{ id }}); export const queryDataById = (id) => defHttp.get({ url: Api.queryDataById, params: { id } });
/** /**
* *
* @param params * @param params
*/ */
export const receiveAsn = (id,handleSuccess) => { export const receiveAsn = (id, handleSuccess) => {
return defHttp.get({ url: Api.receiveAsn, params: { id } }, { joinParamsToUrl: true }).then(() => { return defHttp.get({ url: Api.receiveAsn, params: { id } }, { joinParamsToUrl: true }).then(() => {
handleSuccess(); handleSuccess();
}); });
}; };
@ -95,8 +108,18 @@ export const receiveAsn = (id,handleSuccess) => {
* *
* @param params * @param params
*/ */
export const receiveBack = (id,handleSuccess) => { export const receiveBack = (id, handleSuccess) => {
return defHttp.get({ url: Api.receiveBack, params: { id } }, { joinParamsToUrl: true }).then(() => { 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(); handleSuccess();
}); });
}; };

View File

@ -17,12 +17,11 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12"> <a-col :lg="12">
<a-form-item name="status_MultiString" :labelCol="{ span: 2 }" :wrapperCol="{ span: 20 }" > <a-form-item name="status_MultiString" :labelCol="{ span: 2 }" :wrapperCol="{ span: 20 }">
<template #label><span title="状态">状态</span></template> <template #label><span title="状态">状态</span></template>
<JSelectMultiple v-model:value="queryParam.status_MultiString" dictCode="asn_status" /> <JSelectMultiple v-model:value="queryParam.status_MultiString" dictCode="asn_status" />
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
@ -74,6 +73,16 @@
> >
入库回传 入库回传
</a-button> </a-button>
<a-button
type="warning"
:loading="closeAsn_loading"
:disabled="selectedRowKeys.length === 0"
v-auth="'receive:data_asn:closeAsn'"
@click="handleCloseAsn"
preIcon="ant-design:edit-outlined"
>
手工关单
</a-button>
<a-button type="primary" v-auth="'receive:data_asn:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> </a-button> <a-button type="primary" v-auth="'receive:data_asn:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> </a-button>
<j-upload-button <j-upload-button
@ -119,7 +128,7 @@
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import AsnModal from './components/AsnModal.vue'; import AsnModal from './components/AsnModal.vue';
import { columns } from './Asn.data'; import { columns } from './Asn.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, receiveAsn, receiveBack } from './Asn.api'; import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, receiveAsn, receiveBack, closeAsn } from './Asn.api';
import { getDateByPicker } from '/@/utils'; import { getDateByPicker } from '/@/utils';
import { JInputTypeEnum } from '@/enums/cpteEnum'; import { JInputTypeEnum } from '@/enums/cpteEnum';
import { JInput, JDictSelectTag } from '@/components/Form'; import { JInput, JDictSelectTag } from '@/components/Form';
@ -301,6 +310,34 @@
} }
} }
/**
* 关单事件
*/
const closeAsn_loading = ref(false);
async function handleCloseAsn() {
// 123 true,false
const validStatuses = [1, 2, 3];
const allValidStatus = selectedRows.value.every((row: any) => 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;
}
}
/** /**
* 成功回调 * 成功回调
*/ */

View File

@ -290,10 +290,16 @@ export const taskColumns: JVxeColumn[] = [
title: '请求报文', title: '请求报文',
key: 'reqMessage', key: 'reqMessage',
type: JVxeTypes.normal, type: JVxeTypes.normal,
formatter: ({ cellValue }) => {
return render.renderTip(cellValue);
},
}, },
{ {
title: '返回报文', title: '返回报文',
key: 'resMessage', key: 'resMessage',
type: JVxeTypes.normal, type: JVxeTypes.normal,
formatter: ({ cellValue }) => {
return render.renderTip(cellValue);
},
}, },
]; ];