From bb156855a7273e91af1f1123a5b84c606cb44c15 Mon Sep 17 00:00:00 2001
From: 叶松 <2217086471@qq.com>
Date: 星期五, 03 十一月 2023 10:26:27 +0800
Subject: [PATCH] 增加搅拌站消耗页面

---
 web/src/views/GoodManage/components/MixingExpend.vue |  203 ++++++++++++++++++++++++++++++++++++++++++++++++++
 web/src/views/GoodManage/MixingManage.vue            |   10 ++
 web/src/api/modules/materials.js                     |    7 +
 3 files changed, 219 insertions(+), 1 deletions(-)

diff --git a/web/src/api/modules/materials.js b/web/src/api/modules/materials.js
index 39e7b43..fc954a2 100644
--- a/web/src/api/modules/materials.js
+++ b/web/src/api/modules/materials.js
@@ -128,6 +128,13 @@
      responseType: 'blob',
      data: params
  }),
+
+ /**
+ * 搅拌站消耗
+ */
+  mixingExpendLists: (params) =>
+  axios.post('/materials/materialRelease/materialRew', params),
+  
   /* 预埋件管理 */
   embedded: {
     // 库存管理
diff --git a/web/src/views/GoodManage/MixingManage.vue b/web/src/views/GoodManage/MixingManage.vue
index 595c8c7..c73d0f9 100644
--- a/web/src/views/GoodManage/MixingManage.vue
+++ b/web/src/views/GoodManage/MixingManage.vue
@@ -17,6 +17,9 @@
             <el-tab-pane label="原料实际放量" name="five">
                 <real-raw ref="realRaws"></real-raw>
             </el-tab-pane>
+            <el-tab-pane label="搅拌站消耗" name="six">
+                <mixing-expend ref="expendm"></mixing-expend>
+            </el-tab-pane>
         </el-tabs>
     </div>
   </div>
@@ -27,13 +30,15 @@
 import MixingCost from './components/MixingCost.vue'//消耗记录
 import MixingCheck from './components/MixingCheck.vue'//校正记录
 import RealRaw from './components/RealRaw.vue'//原料实际放量
+import MixingExpend from './components/MixingExpend.vue'//搅拌站消耗
 export default {
     components:{
         MixingInvent,
         MixingIncome,
         MixingCost,
         MixingCheck,
-        RealRaw
+        RealRaw,
+        MixingExpend
     },
     data(){
         return{
@@ -66,6 +71,9 @@
                     this.$refs.realRaws.getLists();
                     this.$refs.realRaws.getMaterialNames();
                     break;
+                case 'six':
+                    this.$refs.expendm.searchButtonInfo(true);
+                    break;
                 default:
                     this.$refs.inventm.searchButtonInfo(true);
             }
diff --git a/web/src/views/GoodManage/components/MixingExpend.vue b/web/src/views/GoodManage/components/MixingExpend.vue
new file mode 100644
index 0000000..20d0934
--- /dev/null
+++ b/web/src/views/GoodManage/components/MixingExpend.vue
@@ -0,0 +1,203 @@
+<template>
+  <div class="main tabs_main" style="height:89%">
+    <div class="main_header">
+      <div class="header_item">
+        <span class="header_label">盘次:</span>
+        <el-input v-model="search.byId" :size="size" clearable placeholder="请输入盘次"></el-input>
+      </div>
+      <div class="header_item">
+        <el-button  :size="size" icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
+        <!-- <el-button  :size="size" icon="el-icon-upload2" v-if="showButton('export')" @click="exportCkeckFile()">导出Excel</el-button> -->
+      </div>
+    </div>
+    <div class="main_content">
+        <div class="content_tables" v-for="(item,index) in tablesList" :key="index">
+            <div class="content_tables_headers">
+                <div class="tables_headers_title">盘次:</div>
+                <div class="tables_headers_datas">{{item.byId}}</div>
+            </div>
+            <div class="content_tables_alone">
+                <el-table
+                    v-loading="loading"
+                    :data="item.rawMaterials"
+                    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="storage" label="料仓" align="center" width="180"></el-table-column>
+                    <el-table-column prop="material" label="原料名称" align="center" ></el-table-column>
+                    <el-table-column prop="recamnt" label="配方用量(t)" align="center" ></el-table-column>
+                    <el-table-column prop="planamnt" label="计划用量(t)" align="center" ></el-table-column>
+                    <el-table-column prop="factamnt" label="实际用量(t)" align="center" ></el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </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>
+  </div>
+</template>
+
+<script>
+import { buttonPinia } from '../../../pinia/index';
+import { changeSize,downFiles } from '../../../plugins/public'; // 导入节流、动态切换组件尺寸方法
+  export default {
+    data() {
+      return {
+        size: changeSize(), // 组件尺寸
+        pageNum: 1,
+        pageSize: 10,
+        search:{},//查询条件
+        total: 0,
+        loading: false,
+        tablesList: [], //校正记录管理信息列表
+        optionsDicts:[],//原料名称
+      }
+    },
+    watch: {
+      asyncVisible(bol) {
+        if(!bol) {
+          this.ruleForm = {};
+          this.$refs.ruleForm.resetFields();
+        }
+      }
+    },
+    mounted() {
+      const that = this;
+      // 根据窗口大小动态修改组件尺寸
+      window.onresize = () => {
+        that.size = changeSize();
+      }
+    },
+    methods: {
+      // 转圈圈
+      functionLoading() {
+          this.loadingView = this.$loading({
+              lock: true,
+              text: '请稍后...',
+              spinner: 'el-icon-loading',
+              background: 'rgba(0, 0, 0, 0.7)'
+          });
+      },
+      //导出excel
+      exportCkeckFile(){
+        this.functionLoading();
+        let params  = Object.assign({},this.search)
+        params.startTime = this.search.time==null?'':this.search.time&&this.search.time[0]
+        params.endTime = this.search.time==null?'':this.search.time&&this.search.time[1]
+        delete params.time
+        this.$api.Materials.mixingChecksexports(params).then(res => {
+            downFiles(res, '校正记录信息', 'xls')
+            this.loadingView.close()
+        })
+        .catch(() => {
+          this.loadingView.close();
+        })
+      },
+      // 查询按钮列表信息
+      searchButtonInfo(bol) {
+        if(bol) {
+          this.pageNum = 1;
+        }
+        let params = Object.assign({},this.search,{
+          pageNum: this.pageNum,
+          pageSize: this.pageSize
+        })
+        this.loading = true;
+        this.$api.Materials.mixingExpendLists(params).then((res) => {
+          if(res.statusMsg === 'ok') {
+            this.total = res.data.total;
+            this.tablesList = res.data.list;
+          }
+          this.loading = false;
+        })
+      },
+      // 判断按钮权限信息
+      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="scss" scoped>
+@import'@/style/layout-main.scss';
+//滚动条样式
+/deep/ ::-webkit-scrollbar {
+    width: 4px; 
+    height: 8px;   
+}
+/deep/ ::-webkit-scrollbar-thumb {
+    border-radius: 10px;
+    box-shadow: inset 0 0 5px #084E6B;
+    background: rgba(0,0,0,0.2);
+}
+/deep/ ::-webkit-scrollbar-track {
+    box-shadow: inset 0 0 5px transparent;
+    border-radius: 0;
+    background: transparent;
+}
+.main_content{
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    overflow: auto!important;
+    padding: 0 43px 0px 5px;
+    
+    .content_tables{
+        width: calc(50% - 10px);
+        height: 500px;
+        background-color: #031A46;
+        display: flex;
+        flex-direction: column;
+        margin-bottom: 10px;
+
+        .content_tables_headers{
+            width: 100%;
+            line-height: 55px;
+            background-color: #13497E;
+            border-top-left-radius: 4px;
+            border-top-right-radius: 4px;
+            display: flex;
+            padding-left: 15px;
+            .tables_headers_title{
+                color: #fff;
+                font-size: 18px;
+            }
+            .tables_headers_datas{
+                font-size: 20px;
+                font-weight: bold;
+                color: #fff;
+            }
+        }
+        .content_tables_alone{
+            padding: 5px 2px;
+            height: calc(100% - 55px);
+        }
+    }
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3