From f35aefec0991c6b787a47e4a5309450655f48524 Mon Sep 17 00:00:00 2001 From: 叶松 <2217086471@qq.com> Date: 星期一, 20 十一月 2023 09:17:50 +0800 Subject: [PATCH] 料仓界面完成 --- web/src/views/MixingInfo/messageInfo.vue | 8 web/src/views/GoodManage/StockManage.vue | 377 +++++++++++++++++++++++++++++++++++++++++++++++++++++ web/src/api/modules/materials.js | 19 ++ web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue | 1 4 files changed, 400 insertions(+), 5 deletions(-) diff --git a/web/src/api/modules/materials.js b/web/src/api/modules/materials.js index fc954a2..a8bb76d 100644 --- a/web/src/api/modules/materials.js +++ b/web/src/api/modules/materials.js @@ -134,6 +134,25 @@ */ mixingExpendLists: (params) => axios.post('/materials/materialRelease/materialRew', params), + + + /** + * 料仓屏管理 + */ + // 料仓屏列表 + searchStockInfoLists: (params) => + axios.post('/materials/suMaterialWarehouse/selectPageList', params), + //料仓屏添加/修改 + addStockInfos: (params) => + axios.post('/materials/suMaterialWarehouse/insertAndUpdate', params), + // 删除料仓屏信息 + deleteStockInfos: params => + axios.get('/materials/suMaterialWarehouse/delete', {params}), + // 料仓屏信息 + detailStockInfos: params => + axios.get('/materials/suMaterialWarehouse/selectInfo', {params}), + + /* 预埋件管理 */ embedded: { diff --git a/web/src/views/GoodManage/StockManage.vue b/web/src/views/GoodManage/StockManage.vue new file mode 100644 index 0000000..eb58d90 --- /dev/null +++ b/web/src/views/GoodManage/StockManage.vue @@ -0,0 +1,377 @@ +<template> + <div class="main"> + <div class="main_header"> + <div class="header_item"> + <span class="header_label">料仓屏号码:</span> + <el-select v-model="search.tableNum" placeholder="请选择料仓屏号码" clearable> + <el-option + v-for="item in 12" + :key="item" + :label="item" + :value="item"> + </el-option> + </el-select> + </div> + <div class="header_item"> + <span class="header_label">录入方式:</span> + <el-select v-model="search.type" placeholder="请选择录入方式" clearable> + <el-option + v-for="item in optionsIncome" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + <div class="header_item"> + <span class="header_label">创建时间:</span> + <el-date-picker + v-model="search.time" + type="daterange" + value-format="yyyy-MM-dd HH:mm:ss" + :default-time="['00:00:00','23:59:59']" + range-separator="-" + start-placeholder="起始时间" + end-placeholder="结束时间"> + </el-date-picker> + </div> + <div class="header_item"> + <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> + <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> + </div> + </div> + <div class="main_content"> + <el-table + v-loading="loading" + :data="dataList" + height="100%"> + <el-table-column align="center" label="序号" width="60"> + <template #default="scope"> + <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> + </template> + </el-table-column> + <el-table-column prop="tableNum" label="料仓屏号码" align="center" width="120"></el-table-column> + <el-table-column prop="materialName" label="原料类型" align="center" width="120"></el-table-column> + <el-table-column prop="nameOfOrigin" label="产地名称" align="center" width="120"></el-table-column> + <el-table-column prop="incomingQuantity" label="进场数量" align="center" width="150"></el-table-column> + <el-table-column prop="inTime" label="进场日期" align="center" width="150"></el-table-column> + <el-table-column prop="inspectionDate" label="检验日期" align="center" width="120"></el-table-column> + <el-table-column prop="status" label="检验状态" align="center" width="150"> + <template #default="{row}"> + {{optionsCheckstatus&&optionsCheckstatus[row.status - 1].label}} + </template> + </el-table-column> + <el-table-column prop="reportNumber" label="报告编号" align="center" width="150"></el-table-column> + <el-table-column prop="type" label="录入方式" align="center"> + <template #default="{row}"> + {{optionsIncome&&optionsIncome[row.type - 1].label}} + </template> + </el-table-column> + <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column> + <el-table-column label="操作" align="center" width="200"> + <template #default="{ row }"> + <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button> + <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button> + </template> + </el-table-column> + </el-table> + </div> + <div class="main_footer"> + <el-pagination + background + @current-change="changePageNum" + @size-change="changePageSize" + :current-page="pageNum" + :page-sizes="[10, 20, 50, 100]" + :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="total"> + </el-pagination> + </div> + <el-dialog + class="prop_dialog" + :title="asyncTitle ? '添加' : '修改'" + :close-on-click-modal="false" + :visible.sync="asyncVisible" + width="35%"> + <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> + <el-form-item label="料仓屏号码:" prop="tableNum"> + <el-select v-model="ruleForm.tableNum" placeholder="请选择料仓屏号码"> + <el-option + v-for="item in 12" + :key="item" + :label="item" + :value="item"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="原料类型:" prop="materialName"> + <el-input v-model="ruleForm.materialName" :size="size" clearable placeholder="请输入原料类型"></el-input> + </el-form-item> + <el-form-item label="产地名称:" prop="nameOfOrigin"> + <el-input v-model="ruleForm.nameOfOrigin" :size="size" clearable placeholder="请输入产地名称"></el-input> + </el-form-item> + <el-form-item label="进场数量:" prop="incomingQuantity"> + <el-input v-model="ruleForm.incomingQuantity" :size="size" type="number" clearable placeholder="请输入进场数量"></el-input> + </el-form-item> + <el-form-item label="进场日期:" prop="inTime"> + <el-date-picker + v-model="ruleForm.inTime" + type="date" + :size="size" + clearable + value-format="yyyy-MM-dd" + placeholder="请选择进场日期"> + </el-date-picker> + </el-form-item> + <el-form-item label="检验日期:" prop="inspectionDate"> + <el-date-picker + v-model="ruleForm.inspectionDate" + type="date" + :size="size" + clearable + value-format="yyyy-MM-dd" + placeholder="请选择检验日期"> + </el-date-picker> + </el-form-item> + <el-form-item label="检验状态:" prop="status"> + <el-select v-model="ruleForm.status" placeholder="请选择检验状态"> + <el-option + v-for="item in optionsCheckstatus" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="报告编号:" prop="reportNumber"> + <el-input v-model="ruleForm.reportNumber" :size="size" clearable placeholder="请输入报告编号"></el-input> + </el-form-item> + </el-form> + <div slot="footer"> + <el-button @click="asyncVisible = false">取 消</el-button> + <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { buttonPinia } from '../../pinia/index'; +import { throttle, changeSize } from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法 + export default { + data() { + return { + size: changeSize(), // 组件尺寸 + pageNum: 1, + pageSize: 10, + search:{},//查询条件 + total: 0, + loading: false, + dataList: [], //料仓屏管理信息列表 + asyncTitle: true, // 对话框title 新增:true 修改:false + asyncVisible: false, // 添加 修改对话框 + ruleForm: { + }, // 按钮表单 + rules: { + reportNumber: [{ + required: true, + message: '请输入报告编号', + trigger: 'blur' + }], + status: [{ + required: true, + message: '请选择检验类型', + trigger: 'change' + }], + tableNum: [{ + required: true, + message: '请选择料仓屏号码', + trigger: 'change' + }], + inspectionDate: [{ + required: true, + message: '请选择检验日期', + trigger: 'change' + }], + inTime: [{ + required: true, + message: '请选择进场日期', + trigger: 'change' + }], + incomingQuantity: [{ + required: true, + message: '请输入进场数量', + trigger: 'blur' + }], + nameOfOrigin: [{ + required: true, + message: '请输入产地名称', + trigger: 'blur' + }], + materialName: [{ + required: true, + message: '请输入原料类型', + trigger: 'blur' + }], + }, + optionsIncome:[ + { + label:'手动', + value:1 + }, + { + label:'自动', + value:2 + } + ], + optionsCheckstatus:[ + { + label:'合格', + value:1 + }, + { + label:'待检', + value:2 + } + ], + } + }, + watch: { + asyncVisible(bol) { + if(!bol) { + this.ruleForm = {}; + this.$refs.ruleForm.resetFields(); + } + } + }, + mounted() { + const that = this; + // 根据窗口大小动态修改组件尺寸 + window.onresize = () => { + that.size = changeSize(); + } + that.searchButtonInfo(true); + }, + methods: { + // 查询按钮列表信息 + searchButtonInfo(bol) { + if(bol) { + this.pageNum = 1; + } + let params = Object.assign({},this.search,{ + pageNum: this.pageNum, + pageSize: this.pageSize + }) + params.startTime=this.search.time&&this.search.time[0], + params.endTime=this.search.time&&this.search.time[1] + delete params.time + this.loading = true; + this.$api.Materials.searchStockInfoLists(params).then((res) => { + if(res.statusMsg === 'ok') { + this.total = res.data.total; + this.dataList = res.data.list; + } + this.loading = false; + }) + }, + // 新增按钮信息 + insertProp() { + this.asyncTitle = true; + this.asyncVisible = true; + }, + // 修改按钮信息 + updateProp(row) { + this.asyncTitle = false; + this.asyncVisible = true; + this.$api.Materials.detailStockInfos({id: row.id}).then(res=>{ + if(res.statusMsg === 'ok'){ + this.ruleForm = res.data + let projectArr = [] + res.data.supplierPros.forEach(item=>{ + projectArr.push(item.proId) + }) + this.$set(this.ruleForm,'proIds',projectArr) + }else{ + this.$message.warning(res.statusMsg) + } + }) + }, + // 删除按钮信息 + deleteInfo(row) { + this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.$api.Materials.deleteStockInfos({id: row.id}) + .then(res => { + if(res.statusMsg === 'ok') { + this.searchButtonInfo(true); + this.$message.success("删除成功!"); + } else { + this.$message.warning(res.statusMsg); + } + }) + }) + .catch(() => { + this.$message.warning("您已取消"); + }) + }, + // 提交添加按钮信息 + submitInsert: throttle(function() { + this.$refs.ruleForm.validate((valid) => { + if(valid) { + const params = Object.assign({}, this.ruleForm); + this.$api.Materials.addStockInfos(params).then((res) => { + if(res.statusMsg === 'ok') { + this.asyncVisible = false; + this.searchButtonInfo(true); + this.$message.success('添加成功!'); + } else { + this.$message.warning(res.statusMsg); + } + }) + } + }) + }, 3000), + // 提交修改按钮信息 + submitUpdate: throttle(function() { + this.$refs.ruleForm.validate((valid) => { + if(valid) { + const params = Object.assign({}, this.ruleForm); + this.$api.Materials.addStockInfos(params).then((res) => { + if(res.statusMsg === 'ok') { + this.asyncVisible = false; + this.searchButtonInfo(true); + this.$message.success('修改成功!'); + } else { + this.$message.warning(res.statusMsg); + } + }) + } + }) + }, 3000), + // 判断按钮权限信息 + showButton(str) { + const pinia = buttonPinia(); + return pinia.$state.buttonInfo.includes(str); + }, + // 切换页数 + changePageNum(page) { + this.pageNum = page; + this.searchButtonInfo(); + }, + // 切换每页条数 + changePageSize(size) { + this.pageSize = size; + this.searchButtonInfo(); + } + } + } +</script> + +<style lang="sass" scoped> +@import '../../style/layout-main.scss'; +</style> \ No newline at end of file diff --git a/web/src/views/MixingInfo/messageInfo.vue b/web/src/views/MixingInfo/messageInfo.vue index 1316de0..cf87556 100644 --- a/web/src/views/MixingInfo/messageInfo.vue +++ b/web/src/views/MixingInfo/messageInfo.vue @@ -20,14 +20,14 @@ <div class="mixing_rows_datas">{{mixingList&&mixingList.inTime}}</div> </div> <div class="mixing_rows"> - <div class="mixing_rows_titles">检验状态:</div> - <div class="mixing_rows_datas" :class="{'standardStyle':mixingList.status===1,'notStandardStyle':mixingList.status!==1}">{{mixingList&&mixingList.status===1?'合格':'待检'}}</div> - </div> - <div class="mixing_rows"> <div class="mixing_rows_titles">检验日期:</div> <div class="mixing_rows_datas">{{mixingList&&mixingList.inspectionDate}}</div> </div> <div class="mixing_rows"> + <div class="mixing_rows_titles">检验状态:</div> + <div class="mixing_rows_datas" :class="{'standardStyle':mixingList.status===1,'notStandardStyle':mixingList.status!==1}">{{mixingList&&mixingList.status===1?'合格':'待检'}}</div> + </div> + <div class="mixing_rows"> <div class="mixing_rows_titles">报告编号:</div> <div class="mixing_rows_datas">{{mixingList&&mixingList.reportNumber}}</div> </div> diff --git a/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue index bd03c77..16d20ed 100644 --- a/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue +++ b/web/src/views/SecureManage/NipCheck/components/ScoreMarket.vue @@ -81,7 +81,6 @@ window.onresize = () => { that.size = changeSize(); } - that.searchButtonInfo(true); }, methods: { // 查询按钮列表信息 -- Gitblit v1.9.3