mirror of
https://gitee.com/y_project/RuoYi-Cloud.git
synced 2026-02-02 15:01:57 +08:00
完成简单入出库功能
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# 页面标题
|
||||
VITE_APP_TITLE=RYAS管理系统
|
||||
VITE_APP_TITLE=RYAS
|
||||
|
||||
# 环境指定
|
||||
VITE_APP_ENV='development'
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<title>RYAS管理系统</title>
|
||||
<title>RYAS</title>
|
||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||
<style>
|
||||
html,
|
||||
|
||||
@@ -17,3 +17,23 @@ export function getBaseStock(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 入库
|
||||
export function instock(data) {
|
||||
data.stockType = 1;
|
||||
return request({
|
||||
url: '/wms/BaseStock/instock',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 出库
|
||||
export function outstock(data) {
|
||||
data.stockType = 2;
|
||||
return request({
|
||||
url: '/wms/BaseStock/outstock',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2,12 +2,6 @@
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="仓库" prop="whsCd">
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.whsCd"-->
|
||||
<!-- placeholder="请输入仓库代码"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter="handleQuery"-->
|
||||
<!-- />-->
|
||||
<data-select v-model="queryParams.whsCd" :fetch-data="fetchWarehouseData" />
|
||||
</el-form-item>
|
||||
<el-form-item label="货架号" prop="stgBinCd">
|
||||
@@ -52,25 +46,25 @@
|
||||
v-hasPermi="['wms:BaseStock:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="Plus"-->
|
||||
<!-- @click="handleInstock"-->
|
||||
<!-- v-hasPermi="['wms:BaseStock:instock']"-->
|
||||
<!-- >入库</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="Edit"-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- @click="handleOutstock"-->
|
||||
<!-- v-hasPermi="['wms:BaseStock:outstock']"-->
|
||||
<!-- >出库</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleInstock"
|
||||
v-hasPermi="['wms:BaseStock:instock']"
|
||||
>入库</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleOutstock"
|
||||
v-hasPermi="['wms:BaseStock:outstock']"
|
||||
>出库</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
@@ -92,8 +86,8 @@
|
||||
<el-table-column label="包装单位" align="center" prop="pkgUnitName" />
|
||||
</el-table-column>
|
||||
<el-table-column label="序列号" align="center" prop="serialNo" />
|
||||
<el-table-column label="托盘ID" align="center" prop="palletId" />
|
||||
<el-table-column label="父托盘ID" align="center" prop="parentPalletId" />
|
||||
<!-- <el-table-column label="托盘ID" align="center" prop="palletId" />-->
|
||||
<!-- <el-table-column label="父托盘ID" align="center" prop="parentPalletId" />-->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
@@ -105,8 +99,99 @@
|
||||
/>
|
||||
|
||||
<!-- 入出库对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="BaseStockRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-dialog :title="title" v-model="open" width="650px" append-to-body>
|
||||
<el-form ref="BaseStockRef" :model="form" :rules="rules" label-width="90px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="仓库代码" prop="whsCd">
|
||||
<data-select v-model="form.whsCd" :fetch-data="fetchWarehouseData" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="货架号" prop="stgBinCd">
|
||||
<el-input v-model="form.stgBinCd" placeholder="请输入货架号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="物品代码" prop="itemCd">
|
||||
<el-input v-model="form.itemCd" placeholder="请输入物品代码" @blur="handleItemInfoBlur"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="物品名称" prop="itemName">
|
||||
<el-input v-model="form.itemName" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="批号" prop="lotNo">
|
||||
<el-input v-model="form.lotNo" placeholder="请输入批号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="子批号" prop="itemName">
|
||||
<el-input v-model="form.subLotNo" placeholder="请输入子批号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数量" prop="stdUnitQty">
|
||||
<el-input-number v-model="form.stdUnitQty" placeholder="标准单位数量" style="width: 100%;" :precision="6" :min="0"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="标准单位" prop="stdUnitName">
|
||||
<el-input v-model="form.stdUnitName" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="数量" prop="pkgUnitQty">
|
||||
<el-input-number v-model="form.pkgUnitQty" placeholder="包装单位数量" style="width: 100%;" :precision="6" :min="0"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="包装单位" prop="pkgUnitName">
|
||||
<el-input v-model="form.pkgUnitName" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="reasonTitle" prop="reason">
|
||||
<el-input v-model="form.reason" placeholder="请输入理由"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="业务区分" prop="businessCls">
|
||||
<el-input v-model="form.businessCls" placeholder="请输入业务区分"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="序列号" prop="serialNo">
|
||||
<el-input v-model="form.serialNo" placeholder="请输入序列号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="交易单号" prop="transOrderNo">
|
||||
<el-input v-model="form.transOrderNo" placeholder="请输入交易单号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="交易明细号" prop="transOrderDetlNo">
|
||||
<el-input v-model="form.transOrderDetlNo" placeholder="请输入交易明细号"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@@ -119,9 +204,11 @@
|
||||
</template>
|
||||
|
||||
<script setup name="BaseStock">
|
||||
import { listBaseStock, getBaseStock } from "@/api/wms/BaseStock"
|
||||
import { listBaseStock, getBaseStock, instock, outstock } from "@/api/wms/BaseStock"
|
||||
import { listWarehouseInfo } from "@/api/wms/WarehouseInfo";
|
||||
import { getItemInfo } from "@/api/wms/ItemInfo";
|
||||
import DataSelect from "@/components/DataSelect/index.vue";
|
||||
import {ElLoading} from "element-plus";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
@@ -134,6 +221,7 @@ const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const reasonTitle = ref("");
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
@@ -146,6 +234,18 @@ const data = reactive({
|
||||
lotNo: null,
|
||||
},
|
||||
rules: {
|
||||
whsCd: [
|
||||
{required: true, message: "仓库代码不能为空", trigger: "blur"}
|
||||
],
|
||||
stgBinCd: [
|
||||
{required: true, message: "货架号不能为空", trigger: "blur"}
|
||||
],
|
||||
itemCd: [
|
||||
{required: true, message: "物品代码不能为空", trigger: "blur"}
|
||||
],
|
||||
stdUnitQty: [
|
||||
{required: true, message: "标准单位数量不能为空", trigger: "blur"},
|
||||
],
|
||||
}
|
||||
});
|
||||
|
||||
@@ -170,29 +270,26 @@ function cancel() {
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
deptId: null,
|
||||
stockType: null,
|
||||
whsCd: null,
|
||||
stgBinCd: null,
|
||||
itemCd: null,
|
||||
lotNo: null,
|
||||
subLotNo: null,
|
||||
lotNo: '',
|
||||
subLotNo: '',
|
||||
stdUnitQty: null,
|
||||
pkgUnitQty: null,
|
||||
serialNo: null,
|
||||
palletId: null,
|
||||
parentPalletId: null,
|
||||
remark1: null,
|
||||
remark2: null,
|
||||
remark3: null,
|
||||
remark4: null,
|
||||
remark5: null,
|
||||
updateCount: null,
|
||||
deleteFlag: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
remark: null
|
||||
operator: null,
|
||||
businessCls: null,
|
||||
reason: null,
|
||||
transOrderNo: null,
|
||||
transOrderDetlNo: null,
|
||||
itemName: null,
|
||||
stdUnitName: null,
|
||||
pkgUnitName: null,
|
||||
itemNotExists: false,
|
||||
lastItemCd: null, //避免反复查询未改变的物品代码
|
||||
};
|
||||
proxy.resetForm("BaseStockRef");
|
||||
}
|
||||
@@ -227,38 +324,49 @@ function handleSelectionChange(selection) {
|
||||
/** 入库按钮操作 */
|
||||
function handleInstock() {
|
||||
reset();
|
||||
open.value = true;
|
||||
form.value.stockType = 1;
|
||||
title.value = "入库";
|
||||
reasonTitle.value = "入库理由";
|
||||
open.value = true;
|
||||
}
|
||||
|
||||
/** 出库按钮操作 */
|
||||
function handleOutstock() {
|
||||
reset();
|
||||
let primaryKey = ids.value[0]
|
||||
let primaryKey = ids.value[0];
|
||||
getBaseStock(primaryKey).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
form.value.stockType = 2;
|
||||
form.value.stdUnitQty = 0;
|
||||
form.value.pkgUnitQty = 0;
|
||||
title.value = "出库";
|
||||
reasonTitle.value = "出库理由";
|
||||
open.value = true;
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
//TODO 未完成
|
||||
proxy.$refs["BaseStockRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.deptId != null) {
|
||||
// instock(form.value).then(response => {
|
||||
// proxy.$modal.msgSuccess("出库成功");
|
||||
// open.value = false;
|
||||
// getList();
|
||||
// });
|
||||
if (form.value.itemNotExists) {
|
||||
proxy.$modal.msgError("此物品代码不存在");
|
||||
return;
|
||||
}
|
||||
if (form.value.stockType === 1) {
|
||||
// 入库
|
||||
instock(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("入库成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
// outstock(form.value).then(response => {
|
||||
// proxy.$modal.msgSuccess("入库成功");
|
||||
// open.value = false;
|
||||
// getList();
|
||||
// });
|
||||
// 出库
|
||||
outstock(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("出库成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -271,7 +379,7 @@ function handleExport() {
|
||||
}, `BaseStock_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
// 获取仓库数据
|
||||
/** 获取仓库数据 */
|
||||
async function fetchWarehouseData() {
|
||||
const response = await listWarehouseInfo({})
|
||||
const dataList = []
|
||||
@@ -284,6 +392,29 @@ async function fetchWarehouseData() {
|
||||
return dataList
|
||||
}
|
||||
|
||||
/** 查询物品信息 */
|
||||
function handleItemInfoBlur() {
|
||||
if (form.value.itemCd && form.value.itemCd !== ' ' && form.value.lastItemCd !== form.value.itemCd) {
|
||||
const loadingObj = ElLoading.service({text: "正在查询物品信息 ... ...", background: "rgba(0, 0, 0, 0.7)",})
|
||||
getItemInfo(form.value.itemCd).then(response => {
|
||||
if (response.data) {
|
||||
form.value.itemName = response.data.itemName
|
||||
form.value.stdUnitName = response.data.stdUnitName
|
||||
form.value.pkgUnitName = response.data.pkgUnitName
|
||||
form.value.itemNotExists = false
|
||||
} else {
|
||||
form.value.itemName = '无此物品信息'
|
||||
form.value.stdUnitName = ''
|
||||
form.value.pkgUnitName = ''
|
||||
form.value.itemNotExists = true
|
||||
}
|
||||
}).finally(() => {
|
||||
loadingObj.close()
|
||||
form.value.lastItemCd = form.value.itemCd
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
//页面打开时查询
|
||||
//getList();
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user