修改借料管理页面

This commit is contained in:
zx
2026-01-22 17:11:36 +08:00
parent 6901af9579
commit 234d787247
5 changed files with 580 additions and 721 deletions

View File

@@ -1,20 +1,4 @@
import request from '@/utils/request' import request from '@/utils/request'
//借料记录列表
export function listOutbound(data) {
return request({
url: '/wisdom/stock/borrow/list',
method: 'post',
data: data
})
}
// 借料出库保存
export function addOutbound(data) {
return request({
url: '/wisdom/stock/outStock',
method: 'put',
data: data
})
}
// 还料入库保存 // 还料入库保存
export function returnSubmit(data) { export function returnSubmit(data) {
return request({ return request({
@@ -23,3 +7,11 @@ export function returnSubmit(data) {
data: data data: data
}) })
} }
// 新增借调查询项目号列表
export function listStockByXm(data) {
return request({
url: '/wisdom/stock/list',
method: 'get',
params: data
})
}

View File

@@ -177,6 +177,8 @@
<el-table-column label="订单编号" align="center" prop="sapNo" width="100"/> <el-table-column label="订单编号" align="center" prop="sapNo" width="100"/>
<el-table-column label="行号" align="center" prop="xh" /> <el-table-column label="行号" align="center" prop="xh" />
<el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/> <el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/>
<el-table-column label="实际入库数量" align="center" prop="realQty" width="120"/>
<el-table-column label="待入库数量" align="center" prop="waitQty" width="120"/>
<el-table-column label="合同数量" align="center" prop="htQty" /> <el-table-column label="合同数量" align="center" prop="htQty" />
<el-table-column label="计量单位" align="center" prop="dw" /> <el-table-column label="计量单位" align="center" prop="dw" />
<el-table-column label="身份码" align="center" prop="entityId" width="150"/> <el-table-column label="身份码" align="center" prop="entityId" width="150"/>

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-splitter> <el-splitter>
<el-splitter-panel size="40%"> <el-splitter-panel size="40%" style="margin-right:24px">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="90"> <el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="90">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
@@ -11,7 +11,7 @@
@keyup.enter="handleQuery" /> @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="12">
<el-form-item label="单据号" prop="billNo"> <el-form-item label="单据号" prop="billNo">
<el-input v-model="queryParams.billNo" placeholder="请输入单据号" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.billNo" placeholder="请输入单据号" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
@@ -27,7 +27,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="12">
<el-form-item label="库存状态" prop="execStatus"> <el-form-item label="库存状态" prop="execStatus">
<el-select v-model="queryParams.execStatus" placeholder="请选择库存状态" clearable @keyup.enter="handleQuery"> <el-select v-model="queryParams.execStatus" placeholder="请选择库存状态" clearable @keyup.enter="handleQuery">
<el-option v-for="dict in execStatusMenu" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in execStatusMenu" :key="dict.value" :label="dict.label" :value="dict.value" />
@@ -37,17 +37,13 @@
</el-row> </el-row>
</el-form> </el-form>
<el-row class="mb8"> <el-row class="mb8">
<el-col :span="4"> <el-col :span="14">
<el-button type="primary" plain @click="handleAdd(false)" v-hasPermi="['wisdom:bill:add']">新增入库</el-button> <el-button type="primary" plain @click="handleAdd(false)" v-hasPermi="['wisdom:bill:add']">新增入库</el-button>
</el-col>
<el-col :span="4">
<el-button type="warning" plain @click="handleExport" v-hasPermi="['wisdom:bill:export']">导出</el-button> <el-button type="warning" plain @click="handleExport" v-hasPermi="['wisdom:bill:export']">导出</el-button>
</el-col>
<el-col :span="4">
<el-button type="primary" plain @click="rkUpload">图片上传</el-button> <el-button type="primary" plain @click="rkUpload">图片上传</el-button>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="9" class="searchBtn">
<el-form-item> <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -1542,17 +1538,12 @@ function autoFillFun() {
} }
// 上传成功回调 // 上传成功回调
function handleAvatarSuccess(res, id, pcode) { function handleAvatarSuccess(res, id, pcode) {
// console.log(222222)
// console.log(id)
// console.log(pcode)
for (let i = 0; i < planList.value.length; i++) { for (let i = 0; i < planList.value.length; i++) {
if (planList.value[i].id == id && planList.value[i].pcode == pcode) { if (planList.value[i].id == id && planList.value[i].pcode == pcode) {
planList.value[i].photoUrl = res.url; planList.value[i].photoUrl = res.url;
} }
} }
// console.log(222222)
// console.log(res)
// console.log(row)
} }
//删除图片 //删除图片
function handleRemove(res, id, pcode) { function handleRemove(res, id, pcode) {
@@ -1561,11 +1552,6 @@ function handleRemove(res, id, pcode) {
planList.value[i].photoUrl = ""; planList.value[i].photoUrl = "";
} }
} }
// console.log(33333333)
// console.log(planList.value)
// console.log(res)
// console.log(id)
// console.log(pcode)
} }
function delPic(picId) { function delPic(picId) {
proxy.$modal proxy.$modal
@@ -1787,4 +1773,9 @@ isAudit();
z-index: 1; z-index: 1;
top: -15px; top: -15px;
} }
.searchBtn {
display: flex;
justify-content: flex-end;
}
</style> </style>

View File

@@ -1,59 +1,28 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" > <el-form :model="queryParams" ref="queryRef" v-show="showSearch">
<!-- <el-form-item label="所属仓库" prop="cangku">-->
<!-- <el-input-->
<!-- v-model="queryParams.cangku"-->
<!-- placeholder="请输入所属仓库"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-row :gutter="40"> <el-row :gutter="40">
<el-col :span="5"> <el-col :span="5">
<el-form-item label="借用时间" prop="borrowTime"> <el-form-item label="借用时间" prop="borrowTime">
<el-date-picker <el-date-picker v-model="borrowTime" type="datetimerange" range-separator="至" start-placeholder="开始日期"
v-model="borrowTime" end-placeholder="结束日期" clearable placeholder="请选择借用时间" format="YYYY/MM/DD HH:mm:ss"
type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss">
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
clearable
placeholder="请选择出库时间"
format="YYYY/MM/DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="项目号" prop="xmNo"> <el-form-item label="项目号" prop="xmNo">
<el-input <el-input v-model="queryParams.xmNo" placeholder="请输入项目号" clearable @keyup.enter="handleQuery" />
v-model="queryParams.xmNo"
placeholder="请输入项目号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="订单编号" prop="sapNo"> <el-form-item label="订单编号" prop="sapNo">
<el-input <el-input v-model="queryParams.sapNo" placeholder="请输入订单编号" clearable @keyup.enter="handleQuery" />
v-model="queryParams.sapNo"
placeholder="请输入订单编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="单据号" prop="billNo"> <el-form-item label="单据号" prop="billNo">
<el-input <el-input v-model="queryParams.billNo" placeholder="请输入单据号" clearable @keyup.enter="handleQuery" />
v-model="queryParams.billNo"
placeholder="请输入订单编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
@@ -67,163 +36,119 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" plain icon="Plus" @click="handleAdd"
type="primary" v-hasPermi="['wisdom:borrow:add']">新增借料</el-button>
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['wisdom:borrow:add']"
>新增借料</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['wisdom:borrow:export']"
>导出</el-button>
</el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="Printer" @click="handlePrint" v-print="printViewInfo"
type="success" v-hasPermi="['wisdom:borrow:print']">打印单据</el-button>
plain
icon="Printer"
@click="handlePrint"
v-print="printViewInfo"
v-hasPermi="['wisdom:borrow:print']"
>打印单据</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleReturnAll"
>一键还料</el-button>
</el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="outboundList" @selection-change="printSelectionChange" border show-overflow-tooltip> <el-table v-loading="loading" :data="outboundList" @selection-change="printSelectionChange" border
show-overflow-tooltip>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
<el-table-column label="单据号" align="center" prop="billNoCk" width="180"/> <el-table-column label="单据号" align="center" prop="billNo" width="180" />
<el-table-column label="状态" align="center" > <el-table-column label="状态" align="center">
<template #default="scope"> <template #default="scope">
<dict-tag :options="dictTagData()" :value="scope.row.isBorrowed" /> <dict-tag :options="dictTagData()" :value="scope.row.isBorrowed" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单编号" align="center" prop="sapNo" width="150"/> <el-table-column label="订单编号" align="center" prop="sapNo" width="150" />
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/> <el-table-column label="项目号" align="center" prop="xmNo" width="150" />
<el-table-column label="项目描述" align="center" prop="xmMs" width="150"/> <el-table-column label="项目描述" align="center" prop="xmMs" width="150" />
<el-table-column label="(借用方)项目号" align="center" prop="xmNoCk" width="150"/> <el-table-column label="(借用方)项目号" align="center" prop="xmNoCk" width="150" />
<el-table-column label="(借用方)项目描述" align="center" prop="xmMsCk" width="150"/> <el-table-column label="(借用方)项目描述" align="center" prop="xmMsCk" width="150" />
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/> <el-table-column label="物料号" align="center" prop="wlNo" width="100" />
<el-table-column label="物料描述" align="center" prop="wlMs" width="150"/> <el-table-column label="物料描述" align="center" prop="wlMs" width="150" />
<el-table-column label="供应商编码" align="center" prop="gysNo" width="150"/> <el-table-column label="供应商编码" align="center" prop="gysNo" width="150" />
<el-table-column label="供应商名称" align="center" prop="gysMc" width="150"/> <el-table-column label="供应商名称" align="center" prop="gysMc" width="150" />
<!-- <el-table-column label="计划交货金额" align="center" prop="jhAmt" width="120"/> -->
<el-table-column label="合同单价" align="center" prop="htDj" /> <el-table-column label="合同单价" align="center" prop="htDj" />
<!-- <el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/> -->
<!-- <el-table-column label="合同数量" align="center" prop="htQty" /> -->
<el-table-column label="计量单位" align="center" prop="dw" /> <el-table-column label="计量单位" align="center" prop="dw" />
<el-table-column label="借用数量" align="center" prop="realQty" width="120"/> <el-table-column label="借用数量" align="center" prop="realQty" width="120" />
<el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150"/> <el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150" />
<el-table-column label="所属小库" align="center" prop="cangkuName" width="150"/> <el-table-column label="所属小库" align="center" prop="warehouseName" width="150" />
<el-table-column label="库位码" align="center" prop="pcode" width="120"/> <el-table-column label="库位码" align="center" prop="pcode" width="120" />
<el-table-column label="托盘码" align="center" prop="trayCode" /> <el-table-column label="托盘码" align="center" prop="trayCode" />
<el-table-column label="身份码" align="center" prop="entityId" width="150"/> <el-table-column label="身份码" align="center" prop="entityId" width="150" />
<el-table-column label="出库类型" align="center" prop="ckTypeName" /> <el-table-column label="出库类型" align="center" prop="operationTypeName" />
<!-- <el-table-column label="物资类型" align="center" prop="wlTypeName" />-->
<el-table-column label="借用时间" align="center" width="100"> <el-table-column label="借用时间" align="center" width="100">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.borrowTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.borrowTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="库龄" align="center" prop="stockAge" /> --> <el-table-column label="理货员" align="center" prop="operator" />
<el-table-column label="理货员" align="center" prop="ckLihuoY" /> <el-table-column label="备注" align="center" prop="remark" width="150" />
<!-- <el-table-column label="是否已出库" align="center" prop="isChuku" /> -->
<el-table-column label="备注" align="center" prop="ckRemark" width="150"/>
<!-- <el-table-column label="是否删除" align="center" prop="isDelete" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-button v-show="scope.row.isBorrowed==1" link type="primary" icon="Edit" @click="handleReturn(scope.row)" >还料</el-button> <el-button v-show="scope.row.isBorrowed == 1" link type="primary" icon="Edit"
@click="handleReturn(scope.row)">还料</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-show="total>0" v-model:limit="queryParams.pageSize" @pagination="getList" />
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 打印 --> <!-- 打印 -->
<div id="printMe" class="printMeBox" v-show="showContent"> <div id="printMe" class="printMeBox" v-show="showContent">
<printBill :billAllObj="printList" /> <printBill :billAllObj="printList" />
</div> </div>
<!-- 添加或修改库存单据主对话框 --> <!-- 添加或修改库存单据主对话框 -->
<el-dialog :title="title" v-model="open" append-to-body width="70%"> <el-dialog :title="title" v-model="open" append-to-body width="70%">
<el-form ref="stockRef" :model="storeData" :rules="rules" > <el-form ref="stockRef" :model="storeData" :rules="rules">
<el-row :gutter="20"> <el-row :gutter="20">
<!-- <el-col :span="12">
<el-form-item label="关键字" >
<el-input v-model="orderNum" placeholder="请输入项目编号或者订单号" />
</el-form-item>
</el-col> -->
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目号" > <el-form-item label="项目号">
<el-input v-model="outQueryParams.xmNo" placeholder="请输入项目号" /> <el-input v-model="outQueryParams.xmNo" placeholder="请输入项目号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="订单号" > <el-form-item label="订单号">
<el-input v-model="outQueryParams.sapNo" placeholder="请输入订单号" /> <el-input v-model="outQueryParams.sapNo" placeholder="请输入订单号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="物料号" > <el-form-item label="物料号">
<el-input v-model="outQueryParams.wlNo" placeholder="请输入物料号" /> <el-input v-model="outQueryParams.wlNo" placeholder="请输入物料号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="primary" @click="searchPlan" >查询</el-button> <el-button type="primary" @click="searchPlan">查询</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="出库类型" prop="ckType"> <el-form-item label="出库类型" prop="ckType">
<el-select v-model="storeData.ckType" placeholder="请选择出库类型" disabled > <el-select v-model="storeData.ckType" placeholder="请选择出库类型" disabled>
<el-option v-for="dict in storeTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" /> <el-option v-for="dict in storeTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="施工队" prop="teamCode"> <el-form-item label="施工队" prop="teamCode">
<el-select v-model="storeData.teamCode" placeholder="请选择物资类型" clearable > <el-select v-model="storeData.teamCode" placeholder="请选择施工队" clearable>
<el-option v-for="dict in wzTypeList" :key="dict.id" :label="dict.teamName" :value="dict.teamCode" /> <el-option v-for="dict in wzTypeList" :key="dict.id" :label="dict.teamName" :value="dict.teamCode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="理货员" prop="ckLihuoY"> <el-form-item label="理货员" prop="operator">
<el-select v-model="storeData.ckLihuoY" placeholder="请选择理货员" clearable > <el-select v-model="storeData.operator" placeholder="请选择理货员" clearable>
<el-option v-for="dict in personList" :key="dict.userId" :label="dict.userName" :value="dict.userName" /> <el-option v-for="dict in personList" :key="dict.userId" :label="dict.userName"
:value="dict.userId" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="借用时间" prop="borrowTime"> <el-form-item label="借用时间" prop="borrowTime">
<el-date-picker clearable <el-date-picker clearable v-model="storeData.borrowTime" type="date" value-format="YYYY-MM-DD"
v-model="storeData.borrowTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择借用时间"> placeholder="请选择借用时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@@ -231,32 +156,30 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="归还时间" > <el-form-item label="归还时间">
<el-date-picker clearable <el-date-picker clearable v-model="storeData.returnTime" type="date" value-format="YYYY-MM-DD"
v-model="storeData.returnTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择归还时间"> placeholder="请选择归还时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="项目号" > <el-form-item label="项目号">
<el-input v-model="storeData.xmNoCk" placeholder="请输入项目号" /> <el-input v-model="storeData.xmNoCk" placeholder="请输入项目号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目名称" > <el-form-item label="项目名称">
<el-input v-model="storeData.xmMsCk" placeholder="请输入项目描述" /> <el-input v-model="storeData.xmMsCk" placeholder="请输入项目名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-table :data="planList" height="400" show-overflow-tooltip style="width: 100%" @selection-change="handleSelectionChange"> <el-table :data="planList" height="400" show-overflow-tooltip style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/> <el-table-column label="物料号" align="center" prop="wlNo" width="100" />
<el-table-column label="订单号" align="center" prop="sapNo" width="100" /> <el-table-column label="订单号" align="center" prop="sapNo" width="100" />
<el-table-column label="物料描述" align="center" prop="wlMs" width="300"/> <el-table-column label="物料描述" align="center" prop="wlMs" width="300" />
<el-table-column label="出库数量" align="center" prop="realQty" width="120"> <el-table-column label="出库数量" align="center" prop="realQty" width="120">
<template #default="scope"> <template #default="scope">
<el-input v-model="scope.row.realQty" placeholder="请输入出库数量" /> <el-input v-model="scope.row.realQty" placeholder="请输入出库数量" />
@@ -269,12 +192,12 @@
<el-table-column label="身份码" align="center" prop="entityId" width="200"></el-table-column> <el-table-column label="身份码" align="center" prop="entityId" width="200"></el-table-column>
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/> <el-table-column label="项目号" align="center" prop="xmNo" width="150" />
<el-table-column label="项目名称" align="center" prop="xmMs" width="250"/> <el-table-column label="项目名称" align="center" prop="xmMs" width="250" />
<el-table-column label="供应商" align="center" prop="gysMc" width="200"/> <el-table-column label="供应商" align="center" prop="gysMc" width="200" />
<el-table-column label="备注" align="center" width="200"> <el-table-column label="备注" align="center" width="200">
<template #default="scope"> <template #default="scope">
<el-input v-model="scope.row.ckRemark" placeholder="请输入备注"></el-input> <el-input v-model="scope.row.remark" placeholder="请输入备注"></el-input>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -289,10 +212,12 @@
<el-dialog title="还料" v-model="returnOpen" append-to-body width="40%"> <el-dialog title="还料" v-model="returnOpen" append-to-body width="40%">
<el-form ref="returnRef" :model="returnData" label-width="100px"> <el-form ref="returnRef" :model="returnData" label-width="100px">
<el-form-item label="所属仓库" prop="warehouseCode"> <el-form-item label="所属仓库" prop="warehouseCode">
<el-cascader :options="warehouseData" style="width: 100%;" v-model="returnData.warehouseCode" @change="pcodeList" :props="{children: 'children', label: 'warehouseName', value: 'warehouseCode'}" clearable /> <el-cascader :options="warehouseData" style="width: 100%;" v-model="returnData.warehouseCode"
@change="pcodeList" :props="{ children: 'children', label: 'warehouseName', value: 'warehouseCode' }"
clearable />
</el-form-item> </el-form-item>
<el-form-item label="库位" > <el-form-item label="库位">
<el-select v-model="returnData.pcode" clearable :filterable="true" placeholder="请选择库位" > <el-select v-model="returnData.pcode" clearable :filterable="true" placeholder="请选择库位">
<el-option v-for="item in kwOptions" :key="item.id" :label="item.pcode" :value="item.pcode" /> <el-option v-for="item in kwOptions" :key="item.id" :label="item.pcode" :value="item.pcode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -305,103 +230,98 @@
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script setup name="outbound"> <script setup name="outbound">
// import { listOutbound,addOutbound} from "@/api/wisdom/outbound"; //列表 import { returnSubmit ,listStockByXm} from "@/api/wisdom/borrow"; //列表
import { listOutbound,addOutbound,returnSubmit} from "@/api/wisdom/borrow"; //列表 import { warehouseAll } from "@/api/information/warehouseinfo";
import {warehouseAll} from "@/api/information/warehouseinfo"; import { listOuttype } from "@/api/information/outtype"; //出库类型
import {listOuttype} from "@/api/information/outtype"; //出库类型 import { listConstruction } from "@/api/information/construction"; //施工队
import {listConstruction} from "@/api/information/construction"; //施工队 import { personListDict } from "@/api/system/user"; //理货员
// import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓 import { getKwAllList } from "@/api/information/pcdedetail"; //库位下拉数据
import {personListDict} from "@/api/system/user"; //理货员 import printBill from '@/components/printBill/bill.vue'
import {getKwList, getKwAllList} from "@/api/information/pcdedetail"; //库位下拉数据
import printBill from '@/components/printBill/bill.vue'
import { ref } from "vue"; import { ref } from "vue";
// import { Plus } from '@element-plus/icons-vue' import { listStock } from "@/api/wisdom/record"
import { addOutbound } from "@/api/wisdom/outbound"
const { proxy } = getCurrentInstance();
const { proxy } = getCurrentInstance(); const outboundList = ref([]);
const open = ref(false);
const returnOpen = ref(false)
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const outboundList = ref([]); const total = ref(0);
const open = ref(false); const title = ref("");
const returnOpen = ref(false)
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const planLoading = ref(true);
const planList = ref([]); //从供应计划中添加列表
const storeTypeList = ref([]); //出库类型下拉数据 const planList = ref([]); //从供应计划中添加列表
const wzTypeList = ref([]); //施工队下拉数据
const personList = ref([]); //理货员下拉数据 const storeTypeList = ref([]); //出库类型下拉数据
const orderNum = ref("") //搜索条件:订单号 const wzTypeList = ref([]); //施工队下拉数据
const showContent = ref(false); // 控制打印内容是否显示
const dateStr = ref("") //打印单据生成的日期 const personList = ref([]); //理货员下拉数据
const printList = ref([]) //要打印的数据列表 const orderNum = ref("") //搜索条件:订单号
const kwOptions = ref([]); //库位下拉 const showContent = ref(false); // 控制打印内容是否显示
const borrowTime = ref([]) const dateStr = ref("") //打印单据生成的日期
const data = reactive({ const printList = ref([]) //要打印的数据列表
const kwOptions = ref([]); //库位下拉
const borrowTime = ref([])
const data = reactive({
form: {}, form: {},
storeData:{ storeData: {
ckType:"JLCK" ckType: "JLCK"
}, //借料数据 }, //借料数据
returnData:{ returnData: {
originalId:null, originalId: null,
pcode:"", pcode: "",
rkType:"RK029" //入库类型:借料归还入库 rkType: "RK029" //入库类型:借料归还入库
}, //还料数据 }, //还料数据
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
isChuku:3, //出库固定传1 后来改成传3
ckType:"JLCK", //出库类型:借料出库
isBorrowed: "1", isBorrowed: "1",
// borrowTime:[], //借料时间 // borrowTime:[], //借料时间
xmNo:"", xmNo: "",
sapNo:"", sapNo: "",
billNo:"", billNo: "",
ids: [] ids: []
}, },
outQueryParams:{ outQueryParams: {
xmNo:"", xmNo: "",
wlNo:"", wlNo: "",
sapNo:"", sapNo: "",
pageNum:1, pageNum: 1,
pageSize:50, pageSize: 50,
isChuku:0, isChuku: 0,
}, },
rules: { rules: {
ckType: [{ required: true, message: "出库类型不能为空", trigger: "change" }], ckType: [{ required: true, message: "出库类型不能为空", trigger: "change" }],
teamCode: [{ required: true, message: "施工队不能为空", trigger: "change" }], teamCode: [{ required: true, message: "施工队不能为空", trigger: "change" }],
borrowTime: [{ required: true, message: "借用时间不能为空", trigger: "change" }], borrowTime: [{ required: true, message: "借用时间不能为空", trigger: "change" }],
ckLihuoY: [{ required: true, message: "理货员不能为空", trigger: "change" }] operator: [{ required: true, message: "理货员不能为空", trigger: "change" }]
}, },
printViewInfo: { printViewInfo: {
id: "printMe", //打印区域的唯一的id属性 id: "printMe", //打印区域的唯一的id属性
popTitle: '入库信息打印', // 页眉文字 不设置时显示undifined页眉页脚可以在打印页面的更多设置的选项中取消勾选 popTitle: '入库信息打印',
beforeOpenCallback () { beforeOpenCallback() {
showContent.value = false; showContent.value = false;
}, // 开始打印之前的callback }, // 开始打印之前的callback
openCallback () { }, // 调用打印时的callback openCallback() { }, // 调用打印时的callback
closeCallback () { }, // 关闭打印的callback(无法区分确认or取消) closeCallback() { }, // 关闭打印的callback(无法区分确认or取消)
clickMounted () { }, clickMounted() { },
standard: '', standard: '',
extarCss: '' extarCss: ''
} }
}); });
const { queryParams, storeData, rules,form,printViewInfo,outQueryParams,returnData } = toRefs(data); const { queryParams, storeData, rules, form, printViewInfo, outQueryParams, returnData } = toRefs(data);
const statusList = ref([ const statusList = ref([
{ value: 1, label: '未还料', elTagType: "danger", elTagClass: null }, { value: 1, label: '未还料', elTagType: "danger", elTagClass: null },
{ value: 2, label: '已还料', elTagType: "primary", elTagClass: null } { value: 2, label: '已还料', elTagType: "primary", elTagClass: null }
]) ])
@@ -413,65 +333,65 @@ const dictTagData = () => {
})); }));
} }
/** 查询库存单据主列表 */ /** 查询库存单据主列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
listOutbound(queryParams.value).then(response => { listStock({ ...queryParams.value, bizType: '2' }).then(response => {
outboundList.value = response.rows; outboundList.value = response.rows;
total.value = response.total; total.value = response.total;
loading.value = false; loading.value = false;
}); });
} }
// 取消按钮 // 取消按钮
function cancel() { function cancel() {
open.value = false; open.value = false;
reset(); reset();
} }
// 表单重置 // 表单重置
function reset() { function reset() {
planList.value = [] planList.value = []
storeData.value = { storeData.value = {
ckType:"JLCK" ckType: "JLCK"
} }
orderNum.value = "" orderNum.value = ""
proxy.resetForm("stockRef"); proxy.resetForm("stockRef");
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
function handleQuery() { function handleQuery() {
if(borrowTime.value && borrowTime.value.length>0){ if (borrowTime.value && borrowTime.value.length > 0) {
queryParams.value.startTime = borrowTime.value[0] queryParams.value.startTime = borrowTime.value[0]
queryParams.value.endTime = borrowTime.value[1] queryParams.value.endTime = borrowTime.value[1]
}else{ } else {
queryParams.value.startTime = "" queryParams.value.startTime = ""
queryParams.value.endTime = "" queryParams.value.endTime = ""
} }
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
getList(); getList();
} }
/** 重置按钮操作 */ /** 重置按钮操作 */
function resetQuery() { function resetQuery() {
proxy.resetForm("queryRef"); proxy.resetForm("queryRef");
borrowTime.value = [] borrowTime.value = []
handleQuery(); handleQuery();
} }
//出库 多选框选中数据 //出库 多选框选中数据
function handleSelectionChange(selection) { function handleSelectionChange(selection) {
ids.value = selection.map(info=>info.id) ids.value = selection.map(info => info.id)
} }
//打印单据 多选框选中数据 //打印单据 多选框选中数据
function printSelectionChange(selection){ function printSelectionChange(selection) {
printList.value = selection printList.value = selection
queryParams.value.ids = selection.map(item => item.id) queryParams.value.ids = selection.map(item => item.id)
// console.log(queryParams.value.ids) // console.log(queryParams.value.ids)
} }
//打印单据 //打印单据
function handlePrint(){ function handlePrint() {
if(printList.value.length==0){ if (printList.value.length == 0) {
proxy.$modal.msgError("请勾选数据"); proxy.$modal.msgError("请勾选数据");
return return
} }
@@ -482,121 +402,81 @@ const dictTagData = () => {
const hour = date.getHours(); const hour = date.getHours();
const minute = date.getMinutes(); const minute = date.getMinutes();
const second = date.getSeconds(); const second = date.getSeconds();
dateStr.value = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second dateStr.value = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second
showContent.value = true showContent.value = true
} }
/** 新增按钮操作 */ /** 新增按钮操作 */
function handleAdd() { function handleAdd() {
reset(); reset();
open.value = true; open.value = true;
title.value = "添加借料单据"; title.value = "添加借料单据";
//获取出库类型下拉数据 //获取出库类型下拉数据
listOuttype({pageNum:1,pageSize:50}).then(response=>{ listOuttype({ pageNum: 1, pageSize: 50 }).then(response => {
storeTypeList.value = response.rows storeTypeList.value = response.rows
}) })
//获取施工队下拉数据 //获取施工队下拉数据
listConstruction({pageNum:1,pageSize:50}).then(response=>{ listConstruction({ pageNum: 1, pageSize: 50 }).then(response => {
wzTypeList.value = response.rows wzTypeList.value = response.rows
}) })
//理货员下拉数据 //理货员下拉数据
personListDict().then(response=>{ personListDict().then(response => {
personList.value = response.data personList.value = response.data
}) })
} }
//查询库存中数据 搜索 //查询库存中数据 搜索
function searchPlan(){ function searchPlan() {
// if(!orderNum.value){ if (!outQueryParams.value.xmNo && !outQueryParams.value.wlNo && !outQueryParams.value.sapNo) {
// proxy.$modal.msgWarning("请输入项目编号或者订单号");
// return
// }
//查库存
// let params = {
// pageNum:1,
// pageSize:50,
// isChuku:0,
// // xmNo:orderNum.value
// keyword:orderNum.value
// }
if(!outQueryParams.value.xmNo && !outQueryParams.value.wlNo && !outQueryParams.value.sapNo){
proxy.$modal.msgWarning("查询条件不能为空"); proxy.$modal.msgWarning("查询条件不能为空");
return return
} }
listOutbound(outQueryParams.value).then(response=>{ listStockByXm(outQueryParams.value).then(response => {
response.rows.forEach(e => { response.rows.forEach(e => {
e.ckRemark = e.remark e.remark = e.remark
}); });
// let planData = response.rows if (response.rows.length == 0) {
if(response.rows.length==0){
proxy.$modal.msgWarning("库存无数据"); proxy.$modal.msgWarning("库存无数据");
planList.value = [] planList.value = []
}else{ } else {
planList.value = response.rows planList.value = response.rows
} }
// console.log(planData)
// planLoading.value = false
}) })
} }
// function selectKw(row){
// console.log(row)
// }
/** 修改按钮操作 */
// function handleUpdate(row) {
// reset();
// const _id = row.id || ids.value
// getStock(_id).then(response => {
// form.value = response.data;
// open.value = true;
// title.value = "修改库存单据主";
// });
// }
/** 借料出库 提交按钮 */ /** 借料出库 提交按钮 */
function submitForm() { function submitForm() {
// console.log(submitData);return
// // /pc/wisdom/stock/add
// console.log(planList);return
proxy.$refs["stockRef"].validate(valid => { proxy.$refs["stockRef"].validate(valid => {
if (valid) { if (valid) {
// if(planList.value.filter(x=>x.realQty=="").length>0){ if (ids.value.length == 0) {
// proxy.$modal.msgError("入库数量不能为空");
// return
// }
// console.log(ids.value)
if(ids.value.length==0){
proxy.$modal.msgError("请勾选数据"); proxy.$modal.msgError("请勾选数据");
return return
} }
let dataList = planList.value.filter(x=>ids.value.includes(x.id)).map(info=>({ let dataList = planList.value.filter(x => ids.value.includes(x.id)).map(info => ({
id:info.id, id: info.id,
realQty:info.realQty, realQty: info.realQty,
ckRemark:info.ckRemark remark: info.remark
})) }))
// console.log(3333)
// return
let submitData = { let submitData = {
borrowTime:storeData.value.borrowTime, //借用时间 rkBill: {
returnTime:storeData.value.returnTime, // 归还时间 borrowTime: storeData.value.borrowTime, //借用时间
teamCode:storeData.value.teamCode, //施工队 returnTime: storeData.value?.returnTime , // 归还时间
ckType:storeData.value.ckType, //出库类型 teamCode: storeData.value.teamCode, //施工队
ckLihuoY:storeData.value.ckLihuoY, //理货员 operator: storeData.value.operator, //理货员
xmNoCk:storeData.value.xmNoCk?storeData.value.xmNoCk:"", //原本要出的项目号 xmNoCk: storeData.value.xmNoCk ? storeData.value.xmNoCk : "", //原本要出的项目号-借用方项目
xmMsCk:storeData.value.xmMsCk?storeData.value.xmMsCk:"", //原本要出的项目描述 xmMsCk: storeData.value.xmMsCk ? storeData.value.xmMsCk : "", //原本要出的项目描述-借用方项目号
// rkList:planList.value bizType: '2',
ckList:dataList operationType:'JLCK'
},
rkInfoList: dataList,
} }
// console.log(submitData)
// return
addOutbound(submitData).then(response => { addOutbound(submitData).then(response => {
proxy.$modal.msgSuccess("操作成功"); proxy.$modal.msgSuccess("操作成功");
open.value = false; open.value = false;
@@ -604,22 +484,21 @@ const dictTagData = () => {
}); });
} }
}); });
} }
//打开还料弹框 //打开还料弹框
function handleReturn(row){ function handleReturn(row) {
// console.log(row)
returnData.value.pcode = row.pcode returnData.value.pcode = row.pcode
returnData.value.warehouseCode = [row.parentWarehouseCode, row.warehouseCode] returnData.value.warehouseCode = [row.parentWarehouseCode, row.warehouseCode]
returnData.value.originalId = row.id returnData.value.originalId = row.id
console.log(returnData.value) console.log(returnData.value)
returnOpen.value = true returnOpen.value = true
} }
//取消还料弹框 //取消还料弹框
function cancelReturn(){ function cancelReturn() {
returnOpen.value = false returnOpen.value = false
} }
//还料保存 //还料保存
function returnForm(){ function returnForm() {
let obj = JSON.parse(JSON.stringify(returnData.value)) let obj = JSON.parse(JSON.stringify(returnData.value))
obj.warehouseCode = returnData.value.warehouseCode[1] obj.warehouseCode = returnData.value.warehouseCode[1]
returnSubmit(obj).then(response => { returnSubmit(obj).then(response => {
@@ -627,86 +506,79 @@ const dictTagData = () => {
returnOpen.value = false; returnOpen.value = false;
getList(); getList();
}); });
} }
// //库位字典 // //库位字典
// function pcodeList(){
// getKwList().then(response=>{
// kwOptions.value = response.data
// })
// }
/** 删除按钮操作 */
// function handleDelete(row) {
// const _ids = row.id || ids.value;
// proxy.$modal.confirm('是否确认删除库存单据主编号为"' + _ids + '"的数据项?').then(function() {
// return delStock(_ids);
// }).then(() => {
// getList();
// proxy.$modal.msgSuccess("删除成功");
// }).catch(() => {});
// }
/** 导出按钮操作 */
function handleExport() { /** 导出按钮操作 */
function handleExport() {
proxy.download('wisdom/stock/export', { proxy.download('wisdom/stock/export', {
...queryParams.value ...queryParams.value
}, `stock_${new Date().getTime()}.xlsx`) }, `stock_${new Date().getTime()}.xlsx`)
} }
const warehouseData = ref([]) //仓库下拉列表 const warehouseData = ref([]) //仓库下拉列表
function warehouseFun(){ function warehouseFun() {
//所属仓库下拉数据 //所属仓库下拉数据
warehouseAll().then(response=>{ warehouseAll().then(response => {
warehouseData.value = response.data warehouseData.value = response.data
}) })
} }
warehouseFun() warehouseFun()
//库位字典 //库位字典
function pcodeList(value){ function pcodeList(value) {
console.log(value) console.log(value)
getKwAllList(value[1]).then(response=>{ getKwAllList(value[1]).then(response => {
kwOptions.value = response.data kwOptions.value = response.data
returnData.value.pcode = "" returnData.value.pcode = ""
}) })
} }
getList(); getList();
//库位下拉数据
// pcodeList() </script>
</script> <style scoped lang="scss">
<style scoped lang="scss"> .el-table .warning-row {
.el-table .warning-row {
--el-table-tr-bg-color: var(--el-color-warning-light-9); --el-table-tr-bg-color: var(--el-color-warning-light-9);
} }
.el-table .success-row {
.el-table .success-row {
--el-table-tr-bg-color: var(--el-color-success-light-9); --el-table-tr-bg-color: var(--el-color-success-light-9);
} }
.titleBox{
.titleBox {
text-align: center; text-align: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.printMeBox{
div{ .printMeBox {
div {
line-height: 30px; line-height: 30px;
} }
} }
.topBox{
.topBox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.topEveryBox{
width: 50%;
}
.tableBox{
margin-top: 10px;
}
.oneLineBox{
display: flex;
}
.everyBox{
width: 25%;
}
.bottomBox{
margin-top: 10px;
}
</style>
.topEveryBox {
width: 50%;
}
.tableBox {
margin-top: 10px;
}
.oneLineBox {
display: flex;
}
.everyBox {
width: 25%;
}
.bottomBox {
margin-top: 10px;
}
</style>

View File

@@ -101,7 +101,8 @@
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="stockList" show-overflow-tooltip border :row-class-name="tableBillRowClassName"> <el-table v-loading="loading" :data="stockList" show-overflow-tooltip border
:row-class-name="tableBillRowClassName">
<el-table-column label="序号" align="center" type="index" width="70" /> <el-table-column label="序号" align="center" type="index" width="70" />
<el-table-column label="操作类型" align="center" prop="bizType" width="100"> <el-table-column label="操作类型" align="center" prop="bizType" width="100">
<template #default="scope"> <template #default="scope">
@@ -161,11 +162,12 @@ const storeStatusList = ref([
{ id: '0', statusName: "已入库" }, { id: '0', statusName: "已入库" },
{ id: '1', statusName: "已出库" } { id: '1', statusName: "已出库" }
])//库存状态 ])//库存状态
// 0入库1出库2借料出库3还料入库
const isChukuList = ref([ const isChukuList = ref([
{ value: '0', label: '入库', elTagType: "success", elTagClass: null }, { value: '0', label: '入库', elTagType: "success", elTagClass: null },
{ value: '1', label: '借料出库', elTagType: "warning", elTagClass: null }, { value: '1', label: '出库', elTagType: "warning", elTagClass: null },
{ value: '3', label: '还料入库', elTagType: "warning", elTagClass: null }, { value: '2', label: '借料出库', elTagType: "", elTagClass: null },
{ value: '3', label: '还料入库', elTagType: "danger", elTagClass: null },
]) ])
const data = reactive({ const data = reactive({