Files
shgx_tz_vue-sync/src/views/wmsManagement/WmGoodsNowProduction.vue

414 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
* @Descripttion: (成品库当前货物表/wm_goods_now_production)
* @version: (1.0)
* @Author: (admin)
* @Date: (2024-03-22)
* @LastEditors: (admin)
* @LastEditTime: (2024-03-22)
-->
<template>
<div class="app-container">
<!-- :model属性用于表单验证使用 比如下面的el-form-item prop属性用于对表单值进行验证操作 -->
<el-form :model="queryParams" size="small" label-position="right" inline ref="queryForm" clearable :label-width="labelWidth" v-show="showSearch" @submit.native.prevent>
<el-form-item label="零件号" prop="partnumber">
<el-input v-model.trim="queryParams.partnumber" clearable placeholder="请输入零件号" />
</el-form-item>
<el-form-item label="批次号" prop="packageCodeClient">
<el-input v-model.trim="queryParams.packageCodeClient" clearable placeholder="请输入批次号" />
</el-form-item>
<el-form-item label="库位编号" prop="locationCode">
<el-input v-model.trim="queryParams.locationCode" clearable placeholder="请输入库位编号" />
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model.trim="queryParams.description" clearable placeholder="请输入产品描述" />
</el-form-item>
<el-form-item label="入库时间开始" prop="entryWarehouseTimeStart">
<el-date-picker v-model="queryParams.entryWarehouseTimeStart" type="datetime" placeholder="日期时间范围开始"></el-date-picker>
</el-form-item>
<el-form-item label="入库时间结束" prop="entryWarehouseTimeEnd">
<el-date-picker v-model="queryParams.entryWarehouseTimeEnd" type="datetime" placeholder="日期时间范围结束"></el-date-picker>
</el-form-item>
<el-form-item label=" ">
<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" v-hasPermi="['wmsManagement:wmgoodsnowproduction:add']" plain icon="el-icon-plus" size="mini" @click="handleAdd">手动添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" :disabled="single" v-hasPermi="['wmsManagement:wmgoodsnowproduction:edit']" plain icon="el-icon-edit" size="mini" @click="handleUpdate">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" :disabled="multiple" v-hasPermi="['wmsManagement:wmgoodsnowproduction:delete']" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" :disabled="multiple" v-hasPermi="['wmsManagement:wmgoodsnowproduction:edit']" plain icon="el-icon-edit" size="mini" @click="handleUpdateLocationCode1">移入呆滞品仓库</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" :disabled="multiple" v-hasPermi="['wmsManagement:wmgoodsnowproduction:edit']" plain icon="el-icon-edit" size="mini" @click="handleUpdateLocationCode2">批量移库</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 数据区域 -->
<el-table :data="dataList" v-loading="loading" ref="table" border highlight-current-row @sort-change="sortChange" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column prop="partnumber" label="零件号" min-width="120" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="description" label="描述" align="center" min-width="160" :show-overflow-tooltip="true" />
<el-table-column prop="packageCodeClient" label="批次号" min-width="140" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="locationCode" label="库位编号" align="center" :show-overflow-tooltip="true" />
<!-- <el-table-column prop="goodsNumLogic" label="标签零件数" align="center" /> -->
<el-table-column prop="goodsNumAction" label="实际库存" align="center" />
<el-table-column prop="entryWarehouseTime" label="入库时间" align="center" min-width="160" :show-overflow-tooltip="true" />
<el-table-column prop="remark" label="备注" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="createdBy" label="入库人" align="center" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="140">
<template slot-scope="scope">
<el-button size="mini" v-hasPermi="['wmsManagement:wmgoodsnowproduction:edit']" type="success" icon="el-icon-edit" title="编辑" @click="handleUpdate(scope.row)"></el-button>
<el-button size="mini" v-hasPermi="['wmsManagement:wmgoodsnowproduction:delete']" type="danger" icon="el-icon-delete" title="删除" @click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination class="mt10" background :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改成品库当前货物表对话框 -->
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open" :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth">
<el-row :gutter="20">
<el-col :lg="12">
<el-form-item label="零件号" prop="partnumber">
<el-input v-model="form.partnumber" placeholder="请输入零件号" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="批次号" prop="packageCodeClient">
<el-input v-model="form.packageCodeClient" placeholder="请输入批次号" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="库位编号" prop="locationCode">
<el-input v-model="form.locationCode" placeholder="请输入库位编号" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="标签零件数" prop="goodsNumLogic">
<el-input :disabled="opertype === 2" v-model="form.goodsNumLogic" placeholder="请输入标签零件数" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="实际库存" prop="goodsNumAction">
<el-input v-model="form.goodsNumAction" placeholder="请输入实际库存" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="入库时间" prop="entryWarehouseTime">
<el-date-picker :disabled="opertype === 2" v-model="form.entryWarehouseTime" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-dialog>
<!-- 批量移库 -->
<el-dialog title="批量移库" :lock-scroll="false" :visible.sync="open2" :close-on-click-modal="false" width="500px">
<el-form :label-width="formLabelWidth">
<el-row :gutter="20">
<el-col :lg="24">
<el-form-item label="库位编号" prop="partnumber">
<el-input v-model="locationCode" placeholder="请输入库位编号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="open2 = false"> </el-button>
<el-button type="primary" @click="handleUpdateLocationCode"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listWmGoodsNowProduction,
addWmGoodsNowProduction,
delWmGoodsNowProduction,
updateWmGoodsNowProduction,
getWmGoodsNowProduction,
dictWmGoodsNowProduction,
BatchUpdateGoodsNowProductionLocationCode
} from '@/api/wmsManagement/wmGoodsNowProduction.js'
export default {
name: 'wmgoodsnowproduction',
data() {
return {
labelWidth: '100px',
formLabelWidth: '100px',
// 选中id数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 遮罩层
loading: false,
// 显示搜索条件
showSearch: true,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
description: '',
entryWarehouseTimeStart: null,
entryWarehouseTimeEnd: null,
sort: undefined,
sortType: undefined,
},
partnumberOptions: [
{ label: '全部', value: "" },
{ label: '鲨鱼鳍', value: "" },
{ label: '全部', value: "" },
{ label: '全部', value: "" },
{ label: '全部', value: "" },
{ label: '全部', value: "" },
],
// 弹出层标题
title: '',
// 操作类型 1、add 2、edit
opertype: 0,
// 是否显示弹出层
open: false,
open2: false,
// 表单参数
form: {},
columns: [
{ index: 0, key: 'id', label: `雪花id`, checked: true },
{ index: 1, key: 'packageCode', label: `箱子编号MES`, checked: true },
{ index: 2, key: 'packageCodeClient', label: `箱子编号(客户)`, checked: true },
{ index: 3, key: 'packageCodeOriginal', label: `箱子编号(原始码)`, checked: true },
{ index: 4, key: 'locationCode', label: `库位编号`, checked: true },
{ index: 5, key: 'partnumber', label: `零件号`, checked: true },
{ index: 6, key: 'goodsNumLogic', label: `箱子中货物数量(理论)`, checked: true },
{ index: 7, key: 'goodsNumAction', label: `箱子中货物数量(实际)`, checked: true },
{ index: 8, key: 'entryWarehouseTime', label: `入库时间`, checked: true },
{ index: 9, key: 'remark', label: `备注`, checked: false },
{ index: 10, key: 'updatedBy', label: `更新人`, checked: false },
{ index: 11, key: 'updatedTime', label: `更新时间`, checked: false },
{ index: 12, key: 'createdBy', label: `创建人`, checked: false },
{ index: 13, key: 'createdTime', label: `创建时间`, checked: false },
],
// 数据列表
dataList: [],
// 总记录数
total: 0,
// 提交按钮是否显示
btnSubmitVisible: true,
// 表单校验
rules: {
partnumber: [{ required: true, message: '零件号不能为空', trigger: 'blur' }],
packageCodeClient: [{ required: true, message: '批次号不能为空', trigger: 'blur' }],
locationCode: [{ required: true, message: '库位编号不能为空', trigger: 'blur' }],
},
// 批量移库
locationCode: '',
}
},
created() {
// 列表数据查询
this.queryParams.entryWarehouseTimeStart = this.$dayjs().startOf('day').toDate();
this.queryParams.entryWarehouseTimeEnd = this.$dayjs().endOf('day').toDate();
this.getList()
var dictParams = []
},
methods: {
// 查询数据
getList() {
this.loading = true
listWmGoodsNowProduction(this.queryParams).then((res) => {
if (res.code == 200) {
this.dataList = res.data.result
this.total = res.data.totalNum
this.loading = false
}
})
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 重置数据表单
reset() {
this.form = {
id: undefined,
packageCode: undefined,
packageCodeClient: undefined,
packageCodeOriginal: undefined,
locationCode: undefined,
partnumber: undefined,
goodsNumLogic: 0,
goodsNumAction: 0,
entryWarehouseTime: undefined,
remark: undefined,
updatedBy: undefined,
updatedTime: undefined,
createdBy: undefined,
createdTime: undefined,
}
this.resetForm('form')
},
// 重置查询操作
resetQuery() {
this.timeRange = []
this.resetForm('queryForm')
this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
// 自定义排序
sortChange(column) {
if (column.prop == null || column.order == null) {
this.queryParams.sort = undefined
this.queryParams.sortType = undefined
} else {
this.queryParams.sort = column.prop
this.queryParams.sortType = column.order
}
this.handleQuery()
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加'
this.opertype = 1
},
/** 删除按钮操作 */
handleDelete(row) {
const Ids = row.id || this.ids
this.$confirm('是否确认删除此数据?')
.then(function () {
return delWmGoodsNowProduction(Ids)
})
.then(() => {
this.handleQuery()
this.msgSuccess('删除成功')
})
.catch(() => {})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getWmGoodsNowProduction(id).then((res) => {
const { code, data } = res
if (code == 200) {
this.open = true
this.title = '修改数据'
this.opertype = 2
this.form = {
...data,
}
}
})
},
/** 提交按钮 */
submitForm: function () {
this.$refs['form'].validate((valid) => {
if (valid) {
if (this.form.id != undefined && this.opertype === 2) {
updateWmGoodsNowProduction(this.form)
.then((res) => {
this.msgSuccess('修改成功')
this.open = false
this.getList()
})
.catch((err) => {
//TODO 错误逻辑
})
} else {
addWmGoodsNowProduction(this.form)
.then((res) => {
this.msgSuccess('新增成功')
this.open = false
this.getList()
})
.catch((err) => {
//TODO 错误逻辑
})
}
}
})
},
/** 移入呆滞品仓库操作 */
handleUpdateLocationCode() {
const ids = this.ids;
const locationCode = this.locationCode;
this.$confirm(`是否确认所选${ids.length}箱移入${locationCode}`)
.then((res) => {
const data = {
ids,
locationCode
}
BatchUpdateGoodsNowProductionLocationCode(data).then(res => {
const { code, data } = res;
if (code === 200) {
this.handleQuery()
this.msgSuccess('移库成功!')
this.open2 = false;
}
})
})
.catch(() => {})
},
handleUpdateLocationCode1() {
const ids = this.ids;
this.$confirm(`是否确认所选${ids.length}箱移入呆滞品仓库?`)
.then((res) => {
const data = {
ids,
locationCode: 'Z1-01'
}
BatchUpdateGoodsNowProductionLocationCode(data).then(res => {
const { code, data } = res;
if (code === 200) {
this.handleQuery()
this.msgSuccess('移入呆滞品仓库成功')
}
})
})
.catch(() => {})
},
handleUpdateLocationCode2() {
this.open2 = true;
}
},
}
</script>