Files
FT501-WMS/ruoyi-ui/src/views/search/ViewStockDetail/index.vue

509 lines
21 KiB
Vue

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<!-- <el-form-item label="id" prop="onlyIdentity">-->
<!-- <el-input-->
<!-- v-model="queryParams.onlyIdentity"-->
<!-- placeholder="请输入id"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item :label="$t('searchViewStockDetail.stockId')" prop="stockId"> <!-- 库存ID -->
<el-input
v-model="queryParams.stockId"
:placeholder="$t('searchViewStockDetail.inputStockId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.cargoSpaceId')" prop="cargoSpaceId"> <!-- 货位ID -->
<el-input
v-model="queryParams.cargoSpaceId"
:placeholder="$t('searchViewStockDetail.inputCargoSpaceId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.trayCode')" prop="trayCode"> <!-- 托盘条码 -->
<el-input
v-model="queryParams.trayCode"
:placeholder="$t('searchViewStockDetail.inputTrayCode')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.quantity')" prop="quantity"> <!-- 数量 -->
<el-input
v-model="queryParams.quantity"
:placeholder="$t('searchViewStockDetail.inputQuantity')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.jobId')" prop="jobId"> <!-- 作业ID -->
<el-input
v-model="queryParams.jobId"
:placeholder="$t('searchViewStockDetail.inputJobId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.lotNo')" prop="lotNo"> <!-- 批号 -->
<el-input
v-model="queryParams.lotNo"
:placeholder="$t('searchViewStockDetail.inputLotNo')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.stockinDetailId')" prop="stockinDetailId" style="white-space: nowrap"> <!-- 入库子单ID -->
<el-input
v-model="queryParams.stockinDetailId"
:placeholder="$t('searchViewStockDetail.inputStockinDetailId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.inDate')" prop="inDate"> <!-- 入库时间 -->
<el-input
v-model="queryParams.inDate"
:placeholder="$t('searchViewStockDetail.inputInDate')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.warehouseId')" prop="warehouseId"> <!-- 仓库 -->
<el-input
v-model="queryParams.warehouseId"
:placeholder="$t('searchViewStockDetail.inputWarehouseId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.stackingId')" prop="stackingId"> <!-- 剁型ID -->
<el-input
v-model="queryParams.stackingId"
:placeholder="$t('searchViewStockDetail.inputStackingId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.cargoSpaceName')" prop="cargoSpaceName"> <!-- 货位名称 -->
<el-input
v-model="queryParams.cargoSpaceName"
:placeholder="$t('searchViewStockDetail.inputCargoSpaceName')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.roadwayId')" prop="roadwayId"> <!-- 巷道ID -->
<el-input
v-model="queryParams.roadwayId"
:placeholder="$t('searchViewStockDetail.inputRoadwayId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.locked')" prop="locked"> <!-- 是否锁定 -->
<el-input
v-model="queryParams.locked"
:placeholder="$t('searchViewStockDetail.inputLocked')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.productId')" prop="productId"> <!-- 物料ID -->
<el-input
v-model="queryParams.productId"
:placeholder="$t('searchViewStockDetail.inputProductId')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.productName')" prop="productName"> <!-- 物料名称 -->
<el-input
v-model="queryParams.productName"
:placeholder="$t('searchViewStockDetail.inputProductName')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.spec')" prop="spec"> <!-- 规格 -->
<el-input
v-model="queryParams.spec"
:placeholder="$t('searchViewStockDetail.inputSpec')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.unit')" prop="unit"> <!-- 单位 -->
<el-input
v-model="queryParams.unit"
:placeholder="$t('searchViewStockDetail.inputUnit')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.price')" prop="price"> <!-- 价格 -->
<el-input
v-model="queryParams.price"
:placeholder="$t('searchViewStockDetail.inputPrice')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{$t('searchViewStockDetail.search')}} <!-- 搜索 --></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{$t('searchViewStockDetail.reset')}} <!-- 重置 --></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['search:ViewStockDetail:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['search:ViewStockDetail:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['search:ViewStockDetail:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['search:ViewStockDetail:export']"
>{{$t('searchViewStockDetail.export')}} <!-- 导出 --></el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="ViewStockDetailList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="id" align="center" prop="onlyIdentity" />-->
<el-table-column :label="$t('searchViewStockDetail.stockId')" align="center" prop="stockId" />
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceId')" align="center" prop="cargoSpaceId" />
<el-table-column :label="$t('searchViewStockDetail.trayCode')" align="center" prop="trayCode" />
<el-table-column :label="$t('searchViewStockDetail.quantity')" align="center" prop="quantity" />
<el-table-column :label="$t('searchViewStockDetail.jobId')" align="center" prop="jobId" />
<el-table-column :label="$t('searchViewStockDetail.lotNo')" align="center" prop="lotNo" />
<el-table-column :label="$t('searchViewStockDetail.stockinDetailId')" align="center" prop="stockinDetailId" />
<el-table-column :label="$t('searchViewStockDetail.inDate')" align="center" prop="inDate" />
<el-table-column :label="$t('searchViewStockDetail.warehouseId')" align="center" prop="warehouseId" />
<el-table-column :label="$t('searchViewStockDetail.stackingId')" align="center" prop="stackingId" />
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceName')" align="center" prop="cargoSpaceName" />
<el-table-column :label="$t('searchViewStockDetail.roadwayId')" align="center" prop="roadwayId" />
<el-table-column :label="$t('searchViewStockDetail.cargoSpaceStatus')" align="center" prop="cargoSpaceStatus" />
<el-table-column :label="$t('searchViewStockDetail.locked')" align="center" prop="locked" />
<el-table-column :label="$t('searchViewStockDetail.productId')" align="center" prop="productId" />
<el-table-column :label="$t('searchViewStockDetail.productName')" align="center" prop="productName" />
<el-table-column :label="$t('searchViewStockDetail.spec')" align="center" prop="spec" />
<el-table-column :label="$t('searchViewStockDetail.unit')" align="center" prop="unit" />
<el-table-column :label="$t('basproduct1.englishName')" align="center" prop="spare1" /><!-- 英文名称 -->
<el-table-column :label="$t('basproduct1.netWeightPerUnit')" align="center" prop="spare2" /><!-- 单件净重 -->
<el-table-column :label="$t('basproduct1.long')" align="center" prop="spare5" /><!-- 长MM -->
<el-table-column :label="$t('basproduct1.wide')" align="center" prop="spare6" /><!-- 宽MM -->
<el-table-column :label="$t('basproduct1.tall')" align="center" prop="spare7" /><!-- 高MM -->
<el-table-column :label="$t('basproduct1.volume')" align="center" prop="spare8" /><!-- 体积m³ -->
<el-table-column :label="$t('basproduct1.price')" align="center" prop="price" /> <!-- 价格 -->
<el-table-column :label="$t('basproduct1.notes')" align="center" prop="remark" /> <!-- 描述 -->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['search:ViewStockDetail:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['search:ViewStockDetail:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改库存明细查询对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item :label="$t('searchViewStockDetail.onlyIdentity')" prop="onlyIdentity">
<el-input v-model="form.onlyIdentity" :placeholder="$t('searchViewStockDetail.inputOnlyIdentity')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.stockId')" prop="stockId">
<el-input v-model="form.stockId" :placeholder="$t('searchViewStockDetail.inputStockId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.cargoSpaceId')" prop="cargoSpaceId">
<el-input v-model="form.cargoSpaceId" :placeholder="$t('searchViewStockDetail.inputCargoSpaceId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.trayCode')" prop="trayCode">
<el-input v-model="form.trayCode" :placeholder="$t('searchViewStockDetail.inputTrayCode')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.quantity')" prop="quantity">
<el-input v-model="form.quantity" :placeholder="$t('searchViewStockDetail.inputQuantity')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.jobId')" prop="jobId">
<el-input v-model="form.jobId" :placeholder="$t('searchViewStockDetail.inputJobId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.lotNo')" prop="lotNo">
<el-input v-model="form.lotNo" :placeholder="$t('searchViewStockDetail.inputLotNo')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.stockinDetailId')" prop="stockinDetailId">
<el-input v-model="form.stockinDetailId" :placeholder="$t('searchViewStockDetail.inputStockinDetailId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.inDate')" prop="inDate">
<el-input v-model="form.inDate" :placeholder="$t('searchViewStockDetail.inputInDate')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.warehouseId')" prop="warehouseId">
<el-input v-model="form.warehouseId" :placeholder="$t('searchViewStockDetail.inputWarehouseId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.stackingId')" prop="stackingId">
<el-input v-model="form.stackingId" :placeholder="$t('searchViewStockDetail.inputStackingId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.cargoSpaceName')" prop="cargoSpaceName">
<el-input v-model="form.cargoSpaceName" :placeholder="$t('searchViewStockDetail.inputCargoSpaceName')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.roadwayId')" prop="roadwayId">
<el-input v-model="form.roadwayId" :placeholder="$t('searchViewStockDetail.inputRoadwayId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.locked')" prop="locked">
<el-input v-model="form.locked" :placeholder="$t('searchViewStockDetail.inputLocked')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.productId')" prop="productId">
<el-input v-model="form.productId" :placeholder="$t('searchViewStockDetail.inputProductId')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.productName')" prop="productName">
<el-input v-model="form.productName" :placeholder="$t('searchViewStockDetail.inputProductName')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.spec')" prop="spec">
<el-input v-model="form.spec" :placeholder="$t('searchViewStockDetail.inputSpec')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.unit')" prop="unit">
<el-input v-model="form.unit" :placeholder="$t('searchViewStockDetail.inputUnit')" />
</el-form-item>
<el-form-item :label="$t('searchViewStockDetail.price')" prop="price">
<el-input v-model="form.price" :placeholder="$t('searchViewStockDetail.inputPrice')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">{{$t('searchViewStockDetail.confirm')}} <!-- 确 定 --></el-button>
<el-button @click="cancel">{{$t('searchViewStockDetail.cancel')}} <!-- 取 消 --></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listViewStockDetail, getViewStockDetail, delViewStockDetail, addViewStockDetail, updateViewStockDetail } from "@/api/search/ViewStockDetail"
export default {
name: "ViewStockDetail",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 库存明细查询表格数据
ViewStockDetailList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
onlyIdentity: null,
stockId: null,
cargoSpaceId: null,
trayCode: null,
quantity: null,
jobId: null,
lotNo: null,
stockinDetailId: null,
inDate: null,
warehouseId: null,
stackingId: null,
cargoSpaceName: null,
roadwayId: null,
cargoSpaceStatus: null,
locked: null,
productId: null,
productName: null,
spec: null,
unit: null,
price: null
},
// 表单参数
form: {},
// 表单校验
rules: {
stockId: [
{ required: true, message: "库存ID不能为空", trigger: "blur" }
],
}
}
},
created() {
this.getList()
},
methods: {
/** 查询库存明细查询列表 */
getList() {
this.loading = true
listViewStockDetail(this.queryParams).then(response => {
this.ViewStockDetailList = response.rows
this.total = response.total
this.loading = false
})
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
onlyIdentity: null,
stockId: null,
cargoSpaceId: null,
trayCode: null,
quantity: null,
jobId: null,
lotNo: null,
stockinDetailId: null,
inDate: null,
warehouseId: null,
stackingId: null,
cargoSpaceName: null,
roadwayId: null,
cargoSpaceStatus: null,
locked: null,
productId: null,
productName: null,
spec: null,
unit: null,
price: null
}
this.resetForm("form")
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm")
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.onlyIdentity)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = this.$t('searchViewStockDetail.addTitle')
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const onlyIdentity = row.onlyIdentity || this.ids
getViewStockDetail(onlyIdentity).then(response => {
this.form = response.data
this.open = true
this.title = this.$t('searchViewStockDetail.editTitle')
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.onlyIdentity != null) {
updateViewStockDetail(this.form).then(response => {
this.$modal.msgSuccess(this.$t('searchViewStockDetail.editSuccess'))
this.open = false
this.getList()
})
} else {
addViewStockDetail(this.form).then(response => {
this.$modal.msgSuccess(this.$t('searchViewStockDetail.addSuccess'))
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const onlyIdentitys = row.onlyIdentity || this.ids
this.$modal.confirm(this.$t('searchViewStockDetail.deleteConfirm', {id: onlyIdentitys})).then(function() {
return delViewStockDetail(onlyIdentitys)
}).then(() => {
this.getList()
this.$modal.msgSuccess(this.$t('searchViewStockDetail.deleteSuccess'))
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('search/ViewStockDetail/export', {
...this.queryParams
}, `ViewStockDetail_${new Date().getTime()}.xlsx`)
}
}
}
</script>