叶松
2023-11-03 bb156855a7273e91af1f1123a5b84c606cb44c15
增加搅拌站消耗页面
已修改2个文件
已添加1个文件
220 ■■■■■ 文件已修改
web/src/api/modules/materials.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/GoodManage/MixingManage.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/GoodManage/components/MixingExpend.vue 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/api/modules/materials.js
@@ -128,6 +128,13 @@
     responseType: 'blob',
     data: params
 }),
 /**
 * 搅拌站消耗
 */
  mixingExpendLists: (params) =>
  axios.post('/materials/materialRelease/materialRew', params),
  /* 预埋件管理 */
  embedded: {
    // 库存管理
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);
            }
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>