You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

493 lines
16 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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="仓库编码" prop="whCode">
<el-input
v-model="queryParams.whCode"
placeholder="请输入仓库编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库区编码" prop="waCode">
<el-input
v-model="queryParams.waCode"
placeholder="请输入库区编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库位编码" prop="wlCode">
<el-input
v-model="queryParams.wlCode"
placeholder="请输入库位编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="入库单号" prop="orderNo">-->
<!-- <el-input-->
<!-- v-model="queryParams.orderNo"-->
<!-- placeholder="请输入入库单号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品编码" prop="productCode">
<el-input
v-model="queryParams.productCode"
placeholder="请输入产品编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="托盘号" prop="sn">
<el-input
v-model="queryParams.sn"
placeholder="请输入托盘号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="条码" prop="barCode">-->
<!-- <el-input-->
<!-- v-model="queryParams.barCode"-->
<!-- placeholder="请输入条码"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="数量" prop="amount">
<el-input
v-model="queryParams.amount"
placeholder="请输入数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="备用1" prop="userDefined1">-->
<!-- <el-input-->
<!-- v-model="queryParams.userDefined1"-->
<!-- placeholder="请输入备用1"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备用2" prop="userDefined2">-->
<!-- <el-input-->
<!-- v-model="queryParams.userDefined2"-->
<!-- placeholder="请输入备用2"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="gmtCreate">-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.gmtCreate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最后更新人" prop="lastModifiedBy">-->
<!-- <el-input-->
<!-- v-model="queryParams.lastModifiedBy"-->
<!-- placeholder="请输入最后更新人"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最后更新时间" prop="gmtModified">-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.gmtModified"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择最后更新时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</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="['wms:detailed: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="['wms:detailed: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="['wms:detailed: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="['wms:detailed:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="detailedList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="唯一序列号" align="center" prop="storageId" v-if="false" />
<el-table-column label="产品名称" align="center" prop="productName" width="280" />
<el-table-column label="产品编码" align="center" prop="productCode" width="250">
<template slot-scope="scope">
<span>{{ formatProductCode(scope.row.productCode) }}</span>
</template>
</el-table-column>
<el-table-column label="工厂编码" align="center" prop="factoryCode" />
<el-table-column label="仓库编码" align="center" prop="whCode" />
<el-table-column label="库区编码" align="center" prop="waCode" />
<el-table-column label="库位编码" align="center" prop="wlCode" />
<el-table-column label="托盘号" align="center" prop="sn" />
<el-table-column label="数量" align="center" prop="amount" />
<el-table-column label="批次" align="center" prop="batchNumber" />
<el-table-column label="备用2" align="center" prop="userDefined2" v-if="false" />
<el-table-column label="备用3" align="center" prop="userDefined3" v-if="false" />
<el-table-column label="备用4" align="center" prop="userDefined4" v-if="false" />
<el-table-column label="备用5" align="center" prop="userDefined5" v-if="false" />
<el-table-column label="备用6" align="center" prop="userDefined6" v-if="false" />
<el-table-column label="备用7" align="center" prop="userDefined7" v-if="false" />
<el-table-column label="备用8" align="center" prop="userDefined8" v-if="false" />
<el-table-column label="备用9" align="center" prop="userDefined9" v-if="false" />
<el-table-column label="备用10" align="center" prop="userDefined10" v-if="false" />
</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="仓库编码" prop="whCode">
<el-input v-model="form.whCode" placeholder="请输入仓库编码" />
</el-form-item>
<el-form-item label="库区编码" prop="waCode">
<el-input v-model="form.waCode" placeholder="请输入库区编码" />
</el-form-item>
<el-form-item label="库位编码" prop="wlCode">
<el-input v-model="form.wlCode" placeholder="请输入库位编码" />
</el-form-item>
<el-form-item label="入库单号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入入库单号" />
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称" />
</el-form-item>
<el-form-item label="产品编码" prop="productCode">
<el-input v-model="form.productCode" placeholder="请输入产品编码" />
</el-form-item>
<el-form-item label="托盘号" prop="sn">
<el-input v-model="form.sn" placeholder="请输入托盘号" />
</el-form-item>
<el-form-item label="条码" prop="barCode">
<el-input v-model="form.barCode" placeholder="请输入条码" />
</el-form-item>
<el-form-item label="数量" prop="amount">
<el-input v-model="form.amount" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="备用1" prop="userDefined1">
<el-input v-model="form.userDefined1" placeholder="请输入备用1" />
</el-form-item>
<el-form-item label="备用2" prop="userDefined2">
<el-input v-model="form.userDefined2" placeholder="请输入备用2" />
</el-form-item>
<el-form-item label="备用3" prop="userDefined3">
<el-input v-model="form.userDefined3" placeholder="请输入备用3" />
</el-form-item>
<el-form-item label="备用4" prop="userDefined4">
<el-input v-model="form.userDefined4" placeholder="请输入备用4" />
</el-form-item>
<el-form-item label="备用5" prop="userDefined5">
<el-input v-model="form.userDefined5" placeholder="请输入备用5" />
</el-form-item>
<el-form-item label="备用6" prop="userDefined6">
<el-input v-model="form.userDefined6" placeholder="请输入备用6" />
</el-form-item>
<el-form-item label="备用7" prop="userDefined7">
<el-input v-model="form.userDefined7" placeholder="请输入备用7" />
</el-form-item>
<el-form-item label="备用8" prop="userDefined8">
<el-input v-model="form.userDefined8" placeholder="请输入备用8" />
</el-form-item>
<el-form-item label="备用9" prop="userDefined9">
<el-input v-model="form.userDefined9" placeholder="请输入备用9" />
</el-form-item>
<el-form-item label="备用10" prop="userDefined10">
<el-input v-model="form.userDefined10" placeholder="请输入备用10" />
</el-form-item>
<el-form-item label="创建时间" prop="gmtCreate">
<el-date-picker clearable
v-model="form.gmtCreate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
<el-form-item label="最后更新人" prop="lastModifiedBy">
<el-input v-model="form.lastModifiedBy" placeholder="请输入最后更新人" />
</el-form-item>
<el-form-item label="最后更新时间" prop="gmtModified">
<el-date-picker clearable
v-model="form.gmtModified"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择最后更新时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标记" prop="activeFlag">
<el-input v-model="form.activeFlag" placeholder="请输入有效标记" />
</el-form-item>
<el-form-item label="工厂编码" prop="factoryCode">
<el-input v-model="form.factoryCode" placeholder="请输入工厂编码" />
</el-form-item>
<el-form-item label="sap工厂编码" prop="sapFactoryCode">
<el-input v-model="form.sapFactoryCode" placeholder="请输入sap工厂编码" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listDetailed, getDetailed, delDetailed, addDetailed, updateDetailed } from "@/api/wms/detailed";
export default {
name: "Detailed",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 成品库存明细表格数据
detailedList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
whCode: null,
waCode: null,
wlCode: null,
orderNo: null,
productName: null,
productCode: null,
sn: null,
barCode: null,
amount: null,
userDefined1: null,
userDefined2: null,
userDefined3: null,
userDefined4: null,
userDefined5: null,
userDefined6: null,
userDefined7: null,
userDefined8: null,
userDefined9: null,
userDefined10: null,
gmtCreate: null,
lastModifiedBy: null,
gmtModified: null,
activeFlag: null,
factoryCode: null,
sapFactoryCode: null
},
// 表单参数
form: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询成品库存明细列表 */
getList() {
this.loading = true;
listDetailed(this.queryParams).then(response => {
this.detailedList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
storageId: null,
whCode: null,
waCode: null,
wlCode: null,
orderNo: null,
productName: null,
productCode: null,
sn: null,
barCode: null,
amount: null,
userDefined1: null,
userDefined2: null,
userDefined3: null,
userDefined4: null,
userDefined5: null,
userDefined6: null,
userDefined7: null,
userDefined8: null,
userDefined9: null,
userDefined10: null,
createBy: null,
gmtCreate: null,
lastModifiedBy: null,
gmtModified: null,
activeFlag: null,
factoryCode: null,
sapFactoryCode: 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.storageId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加成品库存明细";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const storageId = row.storageId || this.ids
getDetailed(storageId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改成品库存明细";
});
},
formatProductCode(code) {
// 检查是否有效去掉前7个零
if (!code) return code; // 处理 null 或 undefined 情况
return code.replace(/^0{1,7}/, ''); // 替换前1到7个0
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.storageId != null) {
updateDetailed(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addDetailed(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const storageIds = row.storageId || this.ids;
this.$modal.confirm('是否确认删除成品库存明细编号为"' + storageIds + '"的数据项?').then(function() {
return delDetailed(storageIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('wms/detailed/export', {
...this.queryParams
}, `detailed_${new Date().getTime()}.xlsx`)
}
}
};
</script>