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