新增入库单据管理页面
This commit is contained in:
@@ -3,7 +3,7 @@ import request from '@/utils/request'
|
||||
// 查询入库单据列表
|
||||
export function listStockIn(query) {
|
||||
return request({
|
||||
url: '/in/stockIn/list',
|
||||
url: '/in/stockIn/listAll',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
|
||||
41
ruoyi-ui/src/api/system/inStockinDetailN.js
Normal file
41
ruoyi-ui/src/api/system/inStockinDetailN.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// 说明:入库子单(N版)相关接口封装
|
||||
// 理由:后端已提供 /system/inStockinDetailN/list 与 /{stockinDetailId},
|
||||
// 前端统一通过模块化方式调用,便于维护与复用
|
||||
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 查询入库子单(N版)列表
|
||||
* @param {Object} query 查询参数
|
||||
* @param {number} query.pageNum 页码
|
||||
* @param {number} query.pageSize 每页条数
|
||||
* @param {string} [query.stockinId] 主单号(通过主单过滤子单)
|
||||
* 设计说明:后端 Mapper.xml 支持按 stockinId 过滤,故通过 params 传递即可
|
||||
*/
|
||||
export function listInStockinDetailN(query) {
|
||||
return request({
|
||||
url: '/system/inStockinDetailN/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function listInStockinDetailNFinish(query) {
|
||||
return request({
|
||||
url: '/system/stockindetailNfinish/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 查询入库子单(N版)详情
|
||||
* @param {string|number} stockinDetailId 子单主键ID
|
||||
* 设计说明:后端提供 REST 风格详情接口,便于前端查看单条明细
|
||||
*/
|
||||
export function getInStockinDetailN(stockinDetailId) {
|
||||
return request({
|
||||
url: '/system/inStockinDetailN/' + stockinDetailId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="单据类型" prop="inType"><!--单据类型-->
|
||||
<el-select v-model="form.inType" placeholder="请选择单据类型" >
|
||||
<el-select v-model="form.inType" placeholder="请选择单据类型">
|
||||
<el-option
|
||||
v-for="dict in dict.type.in_bill_type"
|
||||
:key="dict.value"
|
||||
@@ -40,20 +40,22 @@
|
||||
<span>入库物料</span>
|
||||
<el-row>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-download" size="mini" @click="handleAddProduct" v-hasPermi="['receive:stockin:add']">
|
||||
添加物料</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-download" size="mini" @click="handleAddProduct"
|
||||
v-hasPermi="['receive:stockin:add']">
|
||||
添加物料
|
||||
</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport" v-hasPermi="['receive:stockin:import']">
|
||||
导入物料</el-button>
|
||||
</el-col>-->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport" v-hasPermi="['receive:stockin:import']">
|
||||
导入物料</el-button>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<el-table :data="productList" border style="width: 100%">
|
||||
<el-table-column type="index" label="序号" align="center"/>
|
||||
<el-table-column fixed label="物料编码" align="left" prop="productId" />
|
||||
<el-table-column fixed label="物料名称" align="left" prop="productName" />
|
||||
<el-table-column fixed label="物料编码" align="left" prop="productId"/>
|
||||
<el-table-column fixed label="物料名称" align="left" prop="productName"/>
|
||||
<el-table-column label="供应商" align="left" prop="supplierId">
|
||||
<template slot-scope="scope">
|
||||
<el-input
|
||||
@@ -64,9 +66,9 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规格型号" align="left" prop="spec" />
|
||||
<el-table-column label="生产图号" align="left" prop="cargoNo" />
|
||||
<el-table-column label="单位" align="left" prop="unit" />
|
||||
<el-table-column label="规格型号" align="left" prop="spec"/>
|
||||
<el-table-column label="生产图号" align="left" prop="cargoNo"/>
|
||||
<el-table-column label="单位" align="left" prop="unit"/>
|
||||
<!-- <el-table-column label="单价" align="left" prop="price" /> -->
|
||||
<!-- <el-table-column label="来源" align="left" prop="spare1" >
|
||||
<template slot-scope="scope">
|
||||
@@ -74,7 +76,7 @@
|
||||
<el-option
|
||||
v-for="dict in dict.type.origin_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -136,31 +138,31 @@
|
||||
<el-input v-model="scope.row.lotNo" placeholder="请输入批次"></el-input>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="单价" align="left" prop="price" >
|
||||
<el-table-column label="单价" align="left" prop="price">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.price" placeholder="请输入单价"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="管理号" align="left" prop="spare9" >
|
||||
<el-table-column label="管理号" align="left" prop="spare9">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.spare9" placeholder="请输入管理号"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" align="left" prop="quantity" >
|
||||
<el-table-column label="数量" align="left" prop="quantity">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.quantity" placeholder="请输入数量"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="质量" align="left" prop="spare8">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-model="scope.row.spare8" placeholder="请选择质量" >
|
||||
<el-option
|
||||
v-for="dict in dict.type.quality_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="scope.row.spare8" placeholder="请选择质量">
|
||||
<el-option
|
||||
v-for="dict in dict.type.quality_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="100" align="center">
|
||||
@@ -170,7 +172,8 @@
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDeleteProduct(scope.$index)"
|
||||
>删除</el-button>
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -185,7 +188,7 @@
|
||||
<el-dialog title="选择物料" :visible.sync="productSelectVisible" width="1300px" append-to-body>
|
||||
<el-form ref="productForm" :model="queryProductParams" size="small">
|
||||
<el-row>
|
||||
<el-col :span="6" >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="物料名称" prop="productName" label-width="90px">
|
||||
<el-input
|
||||
v-model="queryProductParams.productName"
|
||||
@@ -207,7 +210,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6" >
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="getProductList">{{ '搜索' }}
|
||||
<!--搜索--></el-button>
|
||||
@@ -225,19 +228,19 @@
|
||||
<el-table :data="productOptions" border @selection-change="handleProductSelectionChange">
|
||||
<el-table-column type="selection" width="55"/>
|
||||
<!-- <el-table-column label="主键" align="center" prop="productGuid" />-->
|
||||
<el-table-column label="物料编码" align="center" prop="productId" />
|
||||
<el-table-column label="物料名称" align="center" prop="productName" />
|
||||
<el-table-column label="规格型号" align="center" prop="spec" />
|
||||
<el-table-column label="图号" align="center" prop="cargoNo" />
|
||||
<el-table-column label="产品分类" align="center" prop="parentId" />
|
||||
<el-table-column label="物料状态" align="center" prop="spare1" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="启用标识" align="center" prop="spare7" >
|
||||
<el-table-column label="物料编码" align="center" prop="productId"/>
|
||||
<el-table-column label="物料名称" align="center" prop="productName"/>
|
||||
<el-table-column label="规格型号" align="center" prop="spec"/>
|
||||
<el-table-column label="图号" align="center" prop="cargoNo"/>
|
||||
<el-table-column label="产品分类" align="center" prop="parentId"/>
|
||||
<el-table-column label="物料状态" align="center" prop="spare1"/>
|
||||
<el-table-column label="单位" align="center" prop="unit"/>
|
||||
<el-table-column label="启用标识" align="center" prop="spare7">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.spare7"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否系统项" align="center" prop="spare2" >
|
||||
<el-table-column label="是否系统项" align="center" prop="spare2">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.spare2"/>
|
||||
</template>
|
||||
@@ -246,8 +249,8 @@
|
||||
<el-table-column label="创建用户" align="center" prop="spare4" />
|
||||
<el-table-column label="库存上限" align="center" prop="spare5" />
|
||||
<el-table-column label="库存下限" align="center" prop="spare6" /> -->
|
||||
<el-table-column label="单价" align="center" prop="price" />
|
||||
<el-table-column label="备注" align="center" prop="remak" />
|
||||
<el-table-column label="单价" align="center" prop="price"/>
|
||||
<el-table-column label="备注" align="center" prop="remak"/>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="productTotal>0"
|
||||
@@ -265,12 +268,16 @@
|
||||
|
||||
<!-- 物料导入对话框 -->
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"
|
||||
:disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
|
||||
:auto-upload="false" drag>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip text-center" slot="tip">
|
||||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
|
||||
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
|
||||
@click="importTemplate">下载模板
|
||||
</el-link>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -316,10 +323,10 @@
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||
<el-table-column label="供应商编号" align="center" prop="supplierNo" />
|
||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||
<el-table-column label="简称" align="center" prop="simpleName" />
|
||||
<el-table-column type="index" label="序号" width="50" align="center"/>
|
||||
<el-table-column label="供应商编号" align="center" prop="supplierNo"/>
|
||||
<el-table-column label="供应商名称" align="center" prop="supplierName"/>
|
||||
<el-table-column label="简称" align="center" prop="simpleName"/>
|
||||
<el-table-column label="是否可用" align="center" prop="useable">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.is_available" :value="scope.row.useable"/>
|
||||
@@ -353,7 +360,7 @@ import {listWarehouse} from "@/api/bas/warehouse"
|
||||
|
||||
export default {
|
||||
name: "InAdd",
|
||||
dicts: ['sys_normal_disable', 'is_active', 'storage_cond', 'is_available','in_bill_type','product_type','origin_type','account_type','turnover_type','purpose_type','quality_type'],
|
||||
dicts: ['sys_normal_disable', 'is_active', 'storage_cond', 'is_available', 'in_bill_type', 'product_type', 'origin_type', 'account_type', 'turnover_type', 'purpose_type', 'quality_type'],
|
||||
data() {
|
||||
return {
|
||||
// 表单参数
|
||||
@@ -362,15 +369,15 @@ export default {
|
||||
supplierId: undefined,
|
||||
supplierName: undefined,
|
||||
remark: undefined,
|
||||
erpBill:undefined,
|
||||
inType:undefined,
|
||||
erpBill: undefined,
|
||||
inType: undefined,
|
||||
totalQuantity: 0,
|
||||
// totalAmount: 0,
|
||||
totalNetWeight:0,
|
||||
netWeight:0,
|
||||
grossWeight:0,
|
||||
totalNetWeight: 0,
|
||||
netWeight: 0,
|
||||
grossWeight: 0,
|
||||
file: undefined,
|
||||
productTpe:undefined,
|
||||
productTpe: undefined,
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
@@ -380,7 +387,7 @@ export default {
|
||||
supplierId: [
|
||||
{required: true, message: "请选择供应商", trigger: "change"}
|
||||
],
|
||||
inType:[
|
||||
inType: [
|
||||
{required: true, message: "请选择形态类型", trigger: "change"}
|
||||
]
|
||||
},
|
||||
@@ -422,9 +429,9 @@ export default {
|
||||
totalQuantity: 0,
|
||||
// 总金额
|
||||
// totalAmount: 0,
|
||||
totalNetWeight:0,
|
||||
netWeight:0,
|
||||
grossWeight:0,
|
||||
totalNetWeight: 0,
|
||||
netWeight: 0,
|
||||
grossWeight: 0,
|
||||
//物料总数
|
||||
productTotal: 0,
|
||||
//物料查询参数
|
||||
@@ -432,7 +439,7 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
//仓库查询参数
|
||||
//仓库查询参数
|
||||
queryWarehouseParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 99
|
||||
@@ -450,7 +457,7 @@ export default {
|
||||
// 是否更新已经存在的用户数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: "Bearer " + getToken() },
|
||||
headers: {Authorization: "Bearer " + getToken()},
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/receive/stockin/analyseExportFile",
|
||||
}
|
||||
@@ -595,8 +602,8 @@ export default {
|
||||
// remark: item.remark,
|
||||
productName: item.productName,
|
||||
quantity: 1,
|
||||
spare9:"",
|
||||
lotNo:"",
|
||||
spare9: "",
|
||||
lotNo: "",
|
||||
totalNetWeight: 0,
|
||||
netWeight: 0,
|
||||
grossWeight: 0
|
||||
@@ -608,7 +615,7 @@ export default {
|
||||
handleDeleteProduct(index) {
|
||||
this.productList.splice(index, 1);
|
||||
},
|
||||
cancelPri(){
|
||||
cancelPri() {
|
||||
// 重置表单数据
|
||||
this.form = {
|
||||
warehouseId: undefined,
|
||||
@@ -644,9 +651,9 @@ export default {
|
||||
warehouseId: "01",
|
||||
supplierId: this.form.supplierId,
|
||||
remark: this.form.remark,
|
||||
inType:this.form.inType,
|
||||
erpBill:this.form.erpBill,
|
||||
productType:this.form.productType,
|
||||
inType: this.form.inType,
|
||||
erpBill: this.form.erpBill,
|
||||
productType: this.form.productType,
|
||||
productVoList: this.productList.map(item => ({
|
||||
productId: item.productId,
|
||||
quantity: item.quantity,
|
||||
@@ -661,10 +668,10 @@ export default {
|
||||
spare7: item.spare7,
|
||||
spare8: item.spare8,
|
||||
spare9: item.spare9,
|
||||
unit:item.unit,
|
||||
unit: item.unit,
|
||||
productName: item.productName,
|
||||
price: item.price,
|
||||
spec : item.spec,
|
||||
spec: item.spec,
|
||||
cargoNo: item.cargoNo,
|
||||
supplierId: item.supplierId,
|
||||
}))
|
||||
@@ -688,8 +695,7 @@ export default {
|
||||
},
|
||||
/** 下载模板操作 */
|
||||
importTemplate() {
|
||||
this.download('/receive/stockin/importTemplate', {
|
||||
}, `product_template_${new Date().getTime()}.xlsx`)
|
||||
this.download('/receive/stockin/importTemplate', {}, `product_template_${new Date().getTime()}.xlsx`)
|
||||
},// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
this.upload.isUploading = true
|
||||
|
||||
Reference in New Issue
Block a user