托盘设置

This commit is contained in:
打豆豆 2024-01-19 17:21:01 +08:00
parent 0be0c2deb1
commit 63c0b75ca4
3 changed files with 204 additions and 124 deletions

54
src/api/mes/md/pallet.js Normal file
View File

@ -0,0 +1,54 @@
import request from "@/utils/request";
// 分页查询托盘设置列表
export function listMdItem(query) {
return request({
url: "/propallet/findProPallet",
method: "get",
params: query,
});
}
// 新增托盘设置
export function addMdItem(data) {
return request({
url: "/propallet/addProPallet",
method: "post",
data: data,
});
}
// 修改托盘设置
export function updateMdItem(data) {
return request({
url: "/propallet/updateProPallet",
method: "post",
data: data,
});
}
// 删除托盘设置
export function delMdItem(data) {
return request({
url: "/propallet/deleteProPallet",
method: "post",
data: data,
});
}
// 批量删除托盘设置
export function batchDeleteProPallet(itemId) {
return request({
url: "/propallet/batchDeleteProPallet" + "?proPalletIds=" + itemId,
method: "get",
});
}
// 自动生成托盘编码
export function findPalletCode(query) {
return request({
url: "/propallet/findPalletCode",
method: "get",
params: query,
});
}

View File

@ -206,7 +206,7 @@
<div style="height: 10%"> <div style="height: 10%">
<el-radio-group <el-radio-group
size="mini" size="mini"
v-model="radio1" v-model="radio2"
style=" style="
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -288,7 +288,7 @@
<div style="height: 10%"> <div style="height: 10%">
<el-radio-group <el-radio-group
size="mini" size="mini"
v-model="radio1" v-model="radio3"
style=" style="
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -408,6 +408,8 @@ export default {
thisYear: false, thisYear: false,
isFullscreen: false, isFullscreen: false,
radio1: 1, radio1: 1,
radio2: 1,
radio3: 1,
}; };
}, },

View File

@ -11,9 +11,9 @@
v-show="showSearch" v-show="showSearch"
label-width="68px" label-width="68px"
> >
<el-form-item label="托盘编码" prop="itemCode"> <el-form-item label="托盘编码" prop="palletCode">
<el-input <el-input
v-model="queryParams.itemCode" v-model="queryParams.palletCode"
placeholder="请输入托盘编码" placeholder="请输入托盘编码"
clearable clearable
style="width: 240px" style="width: 240px"
@ -46,7 +46,7 @@
>新增</el-button >新增</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
@ -57,7 +57,7 @@
v-hasPermi="['mes:md:mditem:edit']" v-hasPermi="['mes:md:mditem:edit']"
>修改</el-button >修改</el-button
> >
</el-col> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="danger" type="danger"
@ -65,7 +65,7 @@
icon="el-icon-delete" icon="el-icon-delete"
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDeleteData"
v-hasPermi="['mes:md:mditem:remove']" v-hasPermi="['mes:md:mditem:remove']"
>删除</el-button >删除</el-button
> >
@ -108,52 +108,45 @@
label="托盘码" label="托盘码"
width="120" width="120"
align="center" align="center"
key="itemCode" key="palletCode"
prop="itemCode" prop="palletCode"
v-if="columns[0].visible"
> >
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleView(scope.row)"
v-hasPermi="['mes:md:mditem:query']"
>{{ scope.row.itemCode }}</el-button
>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="托盘尺寸" label="托盘尺寸"
align="center" align="center"
key="specification" key="palletSize"
prop="specification" prop="palletSize"
v-if="columns[2].visible"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column <el-table-column
label="动裁承重" label="动裁承重"
align="center" align="center"
key="specification" key="dynamicBear"
prop="specification" prop="dynamicBear"
v-if="columns[2].visible"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> >
<template slot-scope="scope">
{{ scope.row.dynamicBear + "kg" }}
</template>
</el-table-column>
<el-table-column <el-table-column
label="静载承重" label="静载承重"
align="center" align="center"
key="unitOfMeasure" key="staticBear"
prop="unitOfMeasure" prop="staticBear"
v-if="columns[3].visible"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
<template slot-scope="scope">
{{ scope.row.staticBear + "kg" }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="当前位置" label="当前位置"
align="center" align="center"
key="unitOfMeasure" key="currentLocation"
prop="unitOfMeasure" prop="currentLocation"
v-if="columns[3].visible"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
@ -200,15 +193,15 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="托盘编码" prop="itemCode"> <el-form-item label="托盘编码" prop="palletCode">
<el-input <el-input
v-model="form.itemCode" v-model="form.palletCode"
readonly="readonly" readonly="readonly"
maxlength="64" maxlength="64"
v-if="optType == 'view'" v-if="optType == 'view'"
/> />
<el-input <el-input
v-model="form.itemCode" v-model="form.palletCode"
placeholder="请输入托盘编码" placeholder="请输入托盘编码"
maxlength="64" maxlength="64"
v-else v-else
@ -228,15 +221,15 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="托盘尺寸" prop="itemName"> <el-form-item label="托盘尺寸" prop="palletSize">
<el-input <el-input
v-model="form.itemName" v-model="form.palletSize"
maxlength="255" maxlength="255"
readonly="readonly" readonly="readonly"
v-if="optType == 'view'" v-if="optType == 'view'"
/> />
<el-input <el-input
v-model="form.itemName" v-model="form.palletSize"
placeholder="请输入托盘尺寸" placeholder="请输入托盘尺寸"
maxlength="255" maxlength="255"
v-else v-else
@ -244,35 +237,79 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="动载承里" prop=""> <el-form-item label="动载承重" prop="dynamicBear">
<el-input <el-input
v-model="form.itemName" v-model="form.dynamicBear"
maxlength="255" maxlength="255"
readonly="readonly" readonly="readonly"
v-if="optType == 'view'" v-if="optType == 'view'"
/> >
<i
slot="suffix"
style="
font-style: normal;
margin-right: 10px;
line-height: 30px;
color: #1e1e1e;
"
>kg</i
>
</el-input>
<el-input <el-input
v-model="form.itemName" v-model="form.dynamicBear"
placeholder="请输入动载承里" placeholder="请输入动载承"
maxlength="255" maxlength="255"
v-else v-else
/> >
<i
slot="suffix"
style="
font-style: normal;
margin-right: 10px;
line-height: 30px;
color: #1e1e1e;
"
>kg</i
>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="静载承里" prop=""> <el-form-item label="静载承重" prop="staticBear">
<el-input <el-input
v-model="form.itemName" v-model="form.staticBear"
maxlength="255" maxlength="255"
readonly="readonly" readonly="readonly"
v-if="optType == 'view'" v-if="optType == 'view'"
/> >
<i
slot="suffix"
style="
font-style: normal;
margin-right: 10px;
line-height: 30px;
color: #1e1e1e;
"
>kg</i
>
</el-input>
<el-input <el-input
v-model="form.itemName" v-model="form.staticBear"
placeholder="请输入静载承里" placeholder="请输入静载承"
maxlength="255" maxlength="255"
v-else v-else
/> >
<i
slot="suffix"
style="
font-style: normal;
margin-right: 10px;
line-height: 30px;
color: #1e1e1e;
"
>kg</i
>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -333,11 +370,12 @@
<script> <script>
import { import {
listMdItem, listMdItem,
getMdItem,
delMdItem, delMdItem,
addMdItem, addMdItem,
updateMdItem, updateMdItem,
} from "@/api/mes/md/mdItem"; findPalletCode,
batchDeleteProPallet,
} from "@/api/mes/md/pallet";
import { genCode } from "@/api/system/autocode/rule"; import { genCode } from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
@ -345,7 +383,7 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "MdItem", name: "Pallet",
dicts: ["sys_yes_no", "mes_item_product"], dicts: ["sys_yes_no", "mes_item_product"],
components: { Treeselect }, components: { Treeselect },
data() { data() {
@ -397,25 +435,13 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
itemCode: undefined, palletCode: undefined,
itemName: undefined, itemName: undefined,
itemTypeId: 0, itemTypeId: 0,
}, },
//
columns: [
{ key: 0, label: `物料/产品编码`, visible: true },
{ key: 1, label: `物料/产品名称`, visible: true },
{ key: 2, label: `规格型号`, visible: true },
{ key: 3, label: `单位`, visible: true },
{ key: 4, label: `物料/产品`, visible: true },
{ key: 5, label: `物料分类`, visible: true },
{ key: 6, label: `是否启用`, visible: true },
{ key: 7, label: `是否设置安全库存`, visible: true },
{ key: 8, label: `创建时间`, visible: true },
],
// //
rules: { rules: {
itemCode: [ palletCode: [
{ required: true, message: "托盘编码不能为空", trigger: "blur" }, { required: true, message: "托盘编码不能为空", trigger: "blur" },
{ {
max: 64, max: 64,
@ -441,7 +467,7 @@ export default {
methods: { methods: {
/** 查询物料编码列表 */ /** 查询物料编码列表 */
getList() { getList() {
this.loading = true; this.loading = false;
listMdItem(this.queryParams).then((response) => { listMdItem(this.queryParams).then((response) => {
this.itemList = response.rows; this.itemList = response.rows;
this.total = response.total; this.total = response.total;
@ -457,20 +483,12 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
itemId: undefined, proPalletId: undefined,
itemTypeId: undefined, palletCode: undefined,
itemCode: undefined, palletSize: undefined,
itemName: undefined, dynamicBear: undefined,
specification: undefined, staticBear: undefined,
unitOfMeasrue: undefined, currentLocation: undefined,
enableFlag: undefined,
itemOrProduct: undefined,
enableFlag: "Y",
safeStockFlag: "N",
minStock: 0,
maxStock: 0,
optType: undefined,
remark: undefined,
}; };
this.autoGenFlag = true; this.autoGenFlag = true;
this.resetForm("form"); this.resetForm("form");
@ -487,47 +505,34 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map((item) => item.itemId); this.ids = selection.map((item) => item.proPalletId);
this.single = selection.length != 1; this.single = selection.length != 1;
this.multiple = !selection.length; this.multiple = !selection.length;
}, },
//
handleView(row) {
this.reset();
const itemId = row.itemId || this.ids;
getMdItem(itemId).then((response) => {
this.form = response.data;
this.open = true;
this.title = "查看物料/产品";
this.optType = "view";
});
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.optType = "add"; this.optType = "add";
this.open = true; this.open = true;
this.title = "新增托盘"; this.title = "新增托盘";
genCode("ITEM_CODE").then((response) => { findPalletCode().then((response) => {
this.form.itemCode = response; this.form.palletCode = response.data.palletCode;
}); });
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
console.log(row);
this.reset(); this.reset();
const itemId = row.itemId || this.ids; this.form = row;
getMdItem(itemId).then((response) => {
this.form = response.data;
this.open = true; this.open = true;
this.optType = "edit"; this.optType = "edit";
this.title = "修改物料/产品"; this.title = "修改";
});
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function () { submitForm: function () {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.itemId != undefined) { if (this.form.proPalletId != undefined) {
updateMdItem(this.form).then((response) => { updateMdItem(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
@ -546,11 +551,30 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const itemIds = row.itemId || this.ids; const itemIds = row.proPalletId;
delMdItem({ proPalletId: itemIds }).then((response) => {
this.$modal this.$modal
.confirm("确认删除数据项?") .confirm("是否确认删除当前的数据项?")
.then(() => {
if (response.code === 200) {
this.$notify({
title: "删除成功",
message: response.msg,
type: "success",
});
this.getList();
}
})
.catch(() => {});
});
},
/** 批量删除按钮操作 */
handleDeleteData() {
const itemIds = this.ids;
this.$modal
.confirm("是否确认删除班次?")
.then(function () { .then(function () {
return delMdItem(itemIds); return batchDeleteProPallet(itemIds);
}) })
.then(() => { .then(() => {
this.getList(); this.getList();
@ -560,26 +584,26 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download( // this.download(
"mes/md/mditem/export", // "mes/md/mditem/export",
{ // {
...this.queryParams, // ...this.queryParams,
}, // },
`user_${new Date().getTime()}.xlsx` // `user_${new Date().getTime()}.xlsx`
); // );
}, },
/** 导入按钮操作 */ /** 导入按钮操作 */
handleImport() { handleImport() {
this.upload.title = "物料/产品导入"; // this.upload.title = "/";
this.upload.open = true; // this.upload.open = true;
}, },
/** 下载模板操作 */ /** 下载模板操作 */
importTemplate() { importTemplate() {
this.download( // this.download(
"mes/md/mditem/importTemplate", // "mes/md/mditem/importTemplate",
{}, // {},
`md_item_${new Date().getTime()}.xlsx` // `md_item_${new Date().getTime()}.xlsx`
); // );
}, },
// //
handleFileUploadProgress(event, file, fileList) { handleFileUploadProgress(event, file, fileList) {
@ -606,11 +630,11 @@ export default {
// //
handleAutoGenChange(autoGenFlag) { handleAutoGenChange(autoGenFlag) {
if (autoGenFlag) { if (autoGenFlag) {
genCode("ITEM_CODE").then((response) => { findPalletCode().then((response) => {
this.form.itemCode = response; this.form.palletCode = response.data.palletCode;
}); });
} else { } else {
this.form.itemCode = null; this.form.palletCode = null;
} }
}, },
}, },