批量收货
parent
ece5371380
commit
89c0ea49d1
|
|
@ -45,4 +45,11 @@ export const asnDetailApi = {
|
|||
return postRequest('/asnDetail/batchDelete', idList);
|
||||
},
|
||||
|
||||
/**
|
||||
* 批量收货 @author 霍锦
|
||||
*/
|
||||
batchReceive: (idList: number[]) => {
|
||||
return postRequest('/asnDetail/batchReceive', idList);
|
||||
},
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
},
|
||||
|
||||
};
|
||||
|
|
@ -118,7 +118,7 @@ function changeAreaSelect(selectValue: any) {
|
|||
async function onSubmit() {
|
||||
try {
|
||||
await formRef.value.validateFields();
|
||||
save();
|
||||
await save();
|
||||
} catch (err) {
|
||||
message.error('参数验证错误,请仔细填写表单数据!');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,6 +92,10 @@
|
|||
|
||||
<template #bodyCell="{ text, record, column }">
|
||||
|
||||
<template v-if="column.dataIndex === 'asnNumber'">
|
||||
<a @click="showForm(record)">{{ record.asnNumber }}</a>
|
||||
</template>
|
||||
|
||||
<template v-if="column.dataIndex === 'orderType'">
|
||||
{{ $smartEnumPlugin.getDescByValue('ASN_ORDER_TYPE_ENUM', text) }}
|
||||
</template>
|
||||
|
|
@ -111,7 +115,8 @@
|
|||
</template>
|
||||
编辑
|
||||
</a-button>
|
||||
<a-button @click="onDelete(record)" danger type="link" v-privilege="'asn:delete'">
|
||||
<a-button @click="onDelete(record)" danger type="link"
|
||||
:disabled="record.orderQuantity-record.receivedQuantity==0" v-privilege="'asn:delete'">
|
||||
<template #icon>
|
||||
<DeleteOutlined/>
|
||||
</template>
|
||||
|
|
@ -214,6 +219,7 @@ const columns = ref([
|
|||
{
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 140,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -18,19 +18,29 @@
|
|||
</div>
|
||||
|
||||
<div class="smart-table-setting-block">
|
||||
<a-button class="button-style" type="primary" @click="showForm" :disabled="props.asnId==0">
|
||||
<a-button class="button-style" type="primary" v-privilege="'asnDetail:add'" @click="showForm"
|
||||
:disabled="props.asnId==0">
|
||||
<template #icon>
|
||||
<PlusOutlined/>
|
||||
</template>
|
||||
添加明细
|
||||
</a-button>
|
||||
<a-button class="button-style" type="primary" danger
|
||||
<a-button class="button-style" type="primary" v-privilege="'receive:batchReceive'" @click="confirmBatchReceive"
|
||||
:disabled="props.asnId==0 || selectedRowKeyList.length == 0">
|
||||
<template #icon>
|
||||
<EditOutlined/>
|
||||
</template>
|
||||
批量收货
|
||||
</a-button>
|
||||
<a-button class="button-style" type="primary" v-privilege="'asnDetail:batchDelete'" @click="confirmBatchDelete"
|
||||
danger
|
||||
:disabled="props.asnId==0 || selectedRowKeyList.length == 0">
|
||||
<template #icon>
|
||||
<DeleteOutlined/>
|
||||
</template>
|
||||
批量移除
|
||||
</a-button>
|
||||
|
||||
<TableOperator v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.RECEIVE.ASN_DETAIL" :refresh="queryData"/>
|
||||
</div>
|
||||
|
||||
|
|
@ -48,13 +58,15 @@
|
|||
<template #bodyCell="{ text, record, index, column }">
|
||||
<template v-if="column.dataIndex === 'action'">
|
||||
<div class="smart-table-operate">
|
||||
<a-button @click="showForm(record)" type="link" v-privilege="'asnDetail:update'">
|
||||
<a-button @click="showForm(record)" type="link" :disabled="record.orderQuantity-record.receivedQuantity==0"
|
||||
v-privilege="'asnDetail:update'">
|
||||
<template #icon>
|
||||
<EditOutlined/>
|
||||
</template>
|
||||
编辑
|
||||
</a-button>
|
||||
<a-button @click="onDelete(record)" danger type="link" v-privilege="'asnDetail:delete'">
|
||||
<a-button @click="onDelete(record)" danger type="link"
|
||||
:disabled="record.orderQuantity-record.receivedQuantity==0" v-privilege="'asnDetail:delete'">
|
||||
<template #icon>
|
||||
<DeleteOutlined/>
|
||||
</template>
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue