feat(wms): 确认出库请求接口

dev
wanghao 3 weeks ago
parent 28d690f653
commit cb09571d4e

@ -1,6 +1,6 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import {AxiosPromise} from 'axios';
import { OutStockBillVO, OutStockBillForm, OutStockBillQuery } from '@/api/wms/outStockBill/types'; import {OutStockBillForm, OutStockBillQuery, OutStockBillVO} from '@/api/wms/outStockBill/types';
/** /**
* *
@ -61,16 +61,25 @@ export const delOutStockBill = (outStockBillId: string | number | Array<string |
method: 'delete' method: 'delete'
}); });
}; };
/**
*
* @param outStockBillId
*/
export const deliverOutStockBill = (outStockBillId: string | number) => {
return request({
url: '/wms/outStockBill/deliver/' + outStockBillId,
method: 'put'
});
};
/** /**
* *
* @param query * @param query
* @returns {*} * @returns {*}
*/ */
export function getWmsOutStockBillList (query) { export function getWmsOutStockBillList(query) {
return request({ return request({
url: '/wms/outStockBill/getWmsOutStockBillList', url: '/wms/outStockBill/getWmsOutStockBillList',
method: 'get', method: 'get',
params: query params: query
}); });
}; }

@ -27,11 +27,11 @@
<el-form-item label="联系人" prop="customerUser"> <el-form-item label="联系人" prop="customerUser">
<el-input v-model="queryParams.customerUser" placeholder="请输入联系人" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.customerUser" placeholder="请输入联系人" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="出库(单状态1暂存 2审批中 3完成)" prop="outStockBillStatus"> <el-form-item label="出库单状态" prop="outStockBillStatus">
<el-select v-model="queryParams.outStockBillStatus" placeholder="请选择出库(单状态1暂存 2审批中 3完成)" clearable> <el-select v-model="queryParams.outStockBillStatus" placeholder="请选择出库单状态" clearable>
<el-option v-for="dict in wms_in_stock_bill_status" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in wms_out_bill_status" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item>--> </el-form-item>
<el-form-item label="仓库" prop="warehouseId"> <el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable filterable> <el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable filterable>
<el-option v-for="item in warehouseInfoList" :key="item.warehouseId" :label="item.warehouseName" :value="item.warehouseId" /> <el-option v-for="item in warehouseInfoList" :key="item.warehouseId" :label="item.warehouseName" :value="item.warehouseId" />
@ -64,16 +64,16 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wms:outStockBill:add']"> </el-button> <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['wms:outStockBill:add']"> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!--<el-col :span="1.5">-->
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wms:outStockBill:edit']" <!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['wms:outStockBill:edit']"-->
>修改 <!-- >修改-->
</el-button> <!-- </el-button>-->
</el-col> <!--</el-col>-->
<el-col :span="1.5"> <!--<el-col :span="1.5">-->
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wms:outStockBill:remove']" <!-- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['wms:outStockBill:remove']"-->
>删除 <!-- >删除-->
</el-button> <!-- </el-button>-->
</el-col> <!--</el-col>-->
<!--<el-col :span="1.5">--> <!--<el-col :span="1.5">-->
<!-- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wms:outStockBill:export']"> </el-button>--> <!-- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['wms:outStockBill:export']"> </el-button>-->
<!--</el-col>--> <!--</el-col>-->
@ -105,11 +105,11 @@
<el-table-column label="出库单ID" align="center" prop="outStockBillId" v-if="columns[0].visible" /> <el-table-column label="出库单ID" align="center" prop="outStockBillId" v-if="columns[0].visible" />
<el-table-column label="租户编号" align="center" prop="tenantId" v-if="columns[1].visible" /> <el-table-column label="租户编号" align="center" prop="tenantId" v-if="columns[1].visible" />
<el-table-column label="出库单号" align="center" prop="outStockCode" v-if="columns[2].visible" /> <el-table-column label="出库单号" align="center" prop="outStockCode" v-if="columns[2].visible" />
<el-table-column label="仓库" align="center" prop="warehouseId" v-if="columns[12].visible"> <!--<el-table-column label="仓库" align="center" prop="warehouseId" v-if="columns[12].visible">-->
<template #default="scope"> <!-- <template #default="scope">-->
<span>{{ getWarehouseName(scope.row.warehouseId) }}</span> <!-- <span>{{ getWarehouseName(scope.row.warehouseId) }}</span>-->
</template> <!-- </template>-->
</el-table-column> <!--</el-table-column>-->
<el-table-column label="出库单类型" align="center" prop="outStockType" v-if="columns[3].visible"> <el-table-column label="出库单类型" align="center" prop="outStockType" v-if="columns[3].visible">
<template #default="scope"> <template #default="scope">
<dict-tag :options="out_stock_type" :value="scope.row.outStockType" /> <dict-tag :options="out_stock_type" :value="scope.row.outStockType" />
@ -129,9 +129,9 @@
<el-table-column label="联系人" align="center" prop="customerUser" v-if="columns[7].visible" /> <el-table-column label="联系人" align="center" prop="customerUser" v-if="columns[7].visible" />
<el-table-column label="联系电话" align="center" prop="customerNumber" v-if="columns[8].visible" /> <el-table-column label="联系电话" align="center" prop="customerNumber" v-if="columns[8].visible" />
<el-table-column label="出库说明" align="center" prop="directions" v-if="columns[9].visible" /> <el-table-column label="出库说明" align="center" prop="directions" v-if="columns[9].visible" />
<el-table-column label="出库(单状态1暂存 2审批中 3完成)" align="center" prop="outStockBillStatus" v-if="columns[10].visible"> <el-table-column label="出库单状态" align="center" prop="outStockBillStatus" v-if="columns[10].visible">
<template #default="scope"> <template #default="scope">
<dict-tag :options="wms_in_stock_bill_status" :value="scope.row.outStockBillStatus" /> <dict-tag :options="wms_out_bill_status" :value="scope.row.outStockBillStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="流程状态" align="center" prop="flowStatus" v-if="columns[11].visible"> <el-table-column label="流程状态" align="center" prop="flowStatus" v-if="columns[11].visible">
@ -162,6 +162,20 @@
<el-tooltip content="删除" placement="top"> <el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wms:outStockBill:remove']"></el-button> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wms:outStockBill:remove']"></el-button>
</el-tooltip> </el-tooltip>
<!-- 补录按钮状态为1或3且projectId为空时显示 -->
<el-tooltip content="补录项目" placement="top">
<el-button
link
type="success"
icon="DocumentAdd"
@click="handleProjectAdd(scope.row)"
v-hasPermi="['wms:outStockBill:edit']"
></el-button>
</el-tooltip>
<!-- 发货按钮状态为2时显示 -->
<el-tooltip content="出库" placement="top">
<el-button link type="warning" icon="guide" @click="handleDeliver(scope.row)" v-hasPermi="['wms:outStockBill:edit']"></el-button>
</el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -300,11 +314,32 @@
<!--</div>--> <!--</div>-->
</template> </template>
</el-dialog> </el-dialog>
<!--补录项目-->
<el-dialog :title="addProjectDialog.title" v-model="addProjectDialog.visible" width="500px" append-to-body>
<el-form ref="outStockBillFormRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目" prop="projectId">
<el-select v-model="form.projectId" placeholder="请选择项目" filterable clearable>
<el-option
v-for="item in projectInfoList"
:key="item.projectId"
:label="`${item.projectCode} - ${item.projectName}`"
:value="item.projectId"
></el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitAddProjectForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div> </div>
</template> </template>
<script setup name="OutStockBill" lang="ts"> <script setup name="OutStockBill" lang="ts">
import { addOutStockBill, delOutStockBill, getOutStockBill, listOutStockBill } from '@/api/wms/outStockBill'; import { addOutStockBill, deliverOutStockBill, delOutStockBill, getOutStockBill, listOutStockBill, updateOutStockBill } from '@/api/wms/outStockBill';
import { OutStockBillForm, OutStockBillQuery, OutStockBillVO } from '@/api/wms/outStockBill/types'; import { OutStockBillForm, OutStockBillQuery, OutStockBillVO } from '@/api/wms/outStockBill/types';
import { getErpProjectInfoList } from '@/api/oa/erp/projectInfo'; import { getErpProjectInfoList } from '@/api/oa/erp/projectInfo';
import { getCrmCustomerInfoList } from '@/api/oa/crm/customerInfo'; import { getCrmCustomerInfoList } from '@/api/oa/crm/customerInfo';
@ -314,9 +349,7 @@ import { ElMessage } from 'element-plus';
import { getWmsOutStockDetailsList } from '@/api/wms/outStockDetails'; import { getWmsOutStockDetailsList } from '@/api/wms/outStockDetails';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wms_in_stock_bill_status, out_stock_type, flow_status } = toRefs<any>( const { wms_out_bill_status, out_stock_type, flow_status } = toRefs<any>(proxy?.useDict('wms_out_bill_status', 'out_stock_type', 'flow_status'));
proxy?.useDict('wms_in_stock_bill_status', 'out_stock_type', 'flow_status')
);
const outStockBillList = ref<OutStockBillVO[]>([]); const outStockBillList = ref<OutStockBillVO[]>([]);
const buttonLoading = ref(false); const buttonLoading = ref(false);
@ -345,6 +378,11 @@ const dialog = reactive<DialogOption>({
visible: false, visible: false,
title: '' title: ''
}); });
//
const addProjectDialog = reactive<DialogOption>({
visible: false,
title: '补录项目'
});
// //
const columns = ref<FieldOption[]>([ const columns = ref<FieldOption[]>([
@ -358,9 +396,9 @@ const columns = ref<FieldOption[]>([
{ key: 7, label: `联系人`, visible: true }, { key: 7, label: `联系人`, visible: true },
{ key: 8, label: `联系电话`, visible: true }, { key: 8, label: `联系电话`, visible: true },
{ key: 9, label: `出库说明`, visible: true }, { key: 9, label: `出库说明`, visible: true },
{ key: 10, label: `出库(单状态1暂存 2审批中 3完成)`, visible: false }, { key: 10, label: `出库单状态`, visible: true },
{ key: 11, label: `流程状态`, visible: false }, { key: 11, label: `流程状态`, visible: false },
{ key: 12, label: `仓库ID`, visible: true }, { key: 12, label: `仓库ID`, visible: false },
{ key: 13, label: `备注`, visible: false }, { key: 13, label: `备注`, visible: false },
{ key: 14, label: `删除标志`, visible: false }, { key: 14, label: `删除标志`, visible: false },
{ key: 15, label: `创建部门`, visible: false }, { key: 15, label: `创建部门`, visible: false },
@ -550,6 +588,11 @@ const handleAdd = () => {
/** 修改按钮操作 */ /** 修改按钮操作 */
const handleUpdate = async (row?: OutStockBillVO) => { const handleUpdate = async (row?: OutStockBillVO) => {
// 0
if (row?.outStockBillStatus !== '0') {
ElMessage.warning('只能修改状态为暂存的出库单');
return;
}
reset(); reset();
const _outStockBillId = row?.outStockBillId || ids.value[0]; const _outStockBillId = row?.outStockBillId || ids.value[0];
const res = await getOutStockBill(_outStockBillId); const res = await getOutStockBill(_outStockBillId);
@ -558,6 +601,28 @@ const handleUpdate = async (row?: OutStockBillVO) => {
dialog.title = '修改出库单'; dialog.title = '修改出库单';
}; };
/** 补录 */
const handleProjectAdd = async (row?: OutStockBillVO) => {
// if (row.projectId) {
// ElMessage.warning('');
// return;
// }
reset();
const _outStockBillId = row?.outStockBillId || ids.value[0];
const res = await getOutStockBill(_outStockBillId);
Object.assign(form.value, res.data);
addProjectDialog.visible = true;
};
/** 提交添加项目表单 */
const submitAddProjectForm = () => {
outStockBillFormRef.value?.validate(async (valid: boolean) => {
if (valid && form.value.outStockBillId) {
await updateOutStockBill(form.value).finally(() => (buttonLoading.value = false));
}
});
};
/** 提交按钮 */ /** 提交按钮 */
const submitForm = () => { const submitForm = () => {
outStockBillFormRef.value?.validate(async (valid: boolean) => { outStockBillFormRef.value?.validate(async (valid: boolean) => {
@ -601,15 +666,36 @@ const submitForm = () => {
} }
}); });
}; };
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (row?: OutStockBillVO) => { const handleDelete = async (row?: OutStockBillVO) => {
// 0
if (row?.outStockBillStatus !== '0') {
ElMessage.warning('只能删除备货状态的出库单');
return;
}
const _outStockBillIds = row?.outStockBillId || ids.value; const _outStockBillIds = row?.outStockBillId || ids.value;
await proxy?.$modal.confirm('是否确认删除出库单编号为"' + _outStockBillIds + '"的数据项?').finally(() => (loading.value = false)); await proxy?.$modal.confirm('是否确认删除出库单编号为"' + _outStockBillIds + '"的数据项?').finally(() => (loading.value = false));
await delOutStockBill(_outStockBillIds); await delOutStockBill(_outStockBillIds);
proxy?.$modal.msgSuccess('删除成功'); proxy?.$modal.msgSuccess('删除成功');
await getList(); await getList();
}; };
/** 发货操作 */
const handleDeliver = async (row?: OutStockBillVO) => {
if (row.outStockBillStatus !== '0') {
ElMessage.warning('不符合发货条件');
return;
}
try {
await proxy?.$modal.confirm('是否确认出库?').finally(() => (loading.value = false));
//
await deliverOutStockBill(row.outStockBillId);
ElMessage.success('出库成功');
//
await getList();
} catch (error) {
ElMessage.error('出库失败');
}
};
/** 导出按钮操作 */ /** 导出按钮操作 */
const handleExport = () => { const handleExport = () => {

Loading…
Cancel
Save