Prechádzať zdrojové kódy

添加线纱规格统计功能

liling 2 mesiacov pred
rodič
commit
e4b0ea40ca

+ 9 - 0
src/api/calc/calcXiansha.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function GetData(vday) {
+    return request({
+        url: `/api/view/yarn-specifications`,
+        method: "get",
+        params: {day:vday}
+    })
+}

+ 2 - 2
src/views/calc/calcDay/index.vue

@@ -75,12 +75,12 @@
     <el-table v-loading="loading" :data="calcDayList" @selection-change="handleSelectionChange">
       <!--<el-table-column type="selection" width="55" align="center" v-show="false" />
       <el-table-column label="ID" align="center" prop="id" v-show="false"/>-->
-      <el-table-column label="日期" align="center" prop="time" width="120">
+      <el-table-column label="日期" align="center" prop="time" width="120" fixed>
         <template #default="scope">
           <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="设备ID" align="center" prop="deviceId" />
+      <el-table-column label="设备ID" align="center" prop="deviceId" fixed/>
       <el-table-column label="总米长" align="center" prop="length" />
       <el-table-column label="总重量" align="center" prop="weight" />
       <el-table-column label="稼动率" align="center" prop="efficiency" />

+ 0 - 2
src/views/calc/calcMaogao/index.vue

@@ -74,7 +74,6 @@
               loading.value = true;
               GetMaoGao().then((res)=>{
                   loading.value = false;
-                  console.log(res)
                   msg.close();
                   if(res.code!=0){
                       return;
@@ -97,7 +96,6 @@
                       duration:0, //一直显示
               });
               GetMaoGaoDetail(v.height).then((res)=>{
-                  console.log(res)
                   msg.close();
                   if(res.code!=0){
                       return;

+ 301 - 0
src/views/calc/calcxiansha/index.vue

@@ -0,0 +1,301 @@
+<template>
+  <div style="padding:10px" @click.stop="void(0)">
+      <div class="" style="text-align: center;top:2%;width: 100%;letter-spacing: 5px;color: #cdd2fb;font-size: 18px;">
+          <span style="position: relative;">
+              <el-button style="margin-left:10px" @click="impquery">刷新</el-button>
+              <el-button style="margin-left:10px" @click="impdata">导出</el-button>
+          </span>                
+      </div>
+      <el-tabs v-model="activeTab" @tab-click="handleTabClick" style="height: 40px;">
+        <el-tab-pane label="线纱规格" name="tab1">
+          <div style="height: 700px;width: 100%;background-color: rgb(237 237 237 / 23%);margin-top: 10px;display: flex;">          
+              <div style="height: 100%;width: 20%;margin-left: 1%;">
+                <div class="table_caption" style="height: 30px;line-height: 30px;">线纱规格D</div>
+                <el-table v-loading="loading" height="670px" :data="xsDlist">
+                      <el-table-column label="L1、L5" align="center" prop="f1"></el-table-column>
+                      <el-table-column label="L2、L4" align="center" prop="f2"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="f3"></el-table-column>
+                      <el-table-column label="明细" align="center">
+                        <template #default="scope">
+                          <el-button @click="getDetail(scope.row)">查看</el-button>
+                        </template>
+                      </el-table-column>
+                    </el-table>
+              </div>
+              <div style="height: 700px;width: 78%;margin-left: 1%;">
+                  <div class="table_caption" style="height: 30px;line-height: 30px;">规格D({{detailValue}})明细数据</div>
+                  <el-table class="titletable" cellspacing="0" cellpadding="0" height="670px" width="800px" :data="detailDataList">
+                    <el-table-column label="设备名" align="center" prop="device" fixed></el-table-column>
+                    <el-table-column label="机台号" align="center" prop="formula_data_2"></el-table-column>
+                    <el-table-column label="毛高" align="center" prop="formula_data_15"></el-table-column>
+                    <el-table-column label="配方号" align="center" prop="formula_data_1"></el-table-column>
+                    <el-table-column label="米克重" align="center" prop="formula_data_3"></el-table-column>
+                    <el-table-column label="卷曲幅宽" align="center" prop="formula_data_13"></el-table-column>
+                    <el-table-column label="下布长度" align="center" prop="formula_data_14"></el-table-column>
+                    <el-table-column label="成品" align="center" >
+                      <el-table-column label="宽" align="center" prop="formula_data_17"></el-table-column>
+                      <el-table-column label="长" align="center" prop="formula_data_16"></el-table-column>
+                      <el-table-column label="重" align="center" prop="formula_data_18"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="牵拉密度" align="center" prop="formula_data_24"></el-table-column>
+                    <el-table-column label="卷曲张力系数" align="center" prop="formula_data_25"></el-table-column>
+                    <el-table-column label="盘头剩余周长" align="center">
+                      <el-table-column label="GB1" align="center" prop="capacity_data_10"></el-table-column>
+                      <el-table-column label="GB2" align="center" prop="capacity_data_11"></el-table-column>
+                      <el-table-column label="GB3" align="center" prop="capacity_data_12"></el-table-column>
+                      <el-table-column label="GB4" align="center" prop="capacity_data_13"></el-table-column>
+                      <el-table-column label="GB5" align="center" prop="capacity_data_14"></el-table-column>
+                    </el-table-column>  
+                    <el-table-column label="盘头剩余圈数" align="center">
+                      <el-table-column label="GB1" align="center" prop="capacity_data_15"></el-table-column>
+                      <el-table-column label="GB2" align="center" prop="capacity_data_16"></el-table-column>
+                      <el-table-column label="GB3" align="center" prop="capacity_data_17"></el-table-column>
+                      <el-table-column label="GB4" align="center" prop="capacity_data_18"></el-table-column>
+                      <el-table-column label="GB5" align="center" prop="capacity_data_19"></el-table-column>
+                    </el-table-column>             
+                    <el-table-column label="送经量" align="center">
+                      <el-table-column label="GB1" align="center" prop="formula_data_19"></el-table-column>
+                      <el-table-column label="GB2" align="center" prop="formula_data_20"></el-table-column>
+                      <el-table-column label="GB3" align="center" prop="formula_data_21"></el-table-column>
+                      <el-table-column label="GB4" align="center" prop="formula_data_22"></el-table-column>
+                      <el-table-column label="GB5" align="center" prop="formula_data_23"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="纱线规格D" align="center">
+                      <el-table-column label="L1\L5" align="center" prop="formula_data_4"></el-table-column>
+                      <el-table-column label="L2\L4" align="center" prop="formula_data_5"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="formula_data_6"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="纱线规格F" align="center">
+                      <el-table-column label="L1\L5" align="center" prop="formula_data_7"></el-table-column>
+                      <el-table-column label="L2\L4" align="center" prop="formula_data_8"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="formula_data_9"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="盘头根数" align="center">
+                      <el-table-column label="L1\L5" align="center" prop="formula_data_10"></el-table-column>
+                      <el-table-column label="L2\L4" align="center" prop="formula_data_11"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="formula_data_12"></el-table-column>
+                    </el-table-column>
+
+                  </el-table>
+                </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="产能预期" name="tab2" style="display: flex;">
+          <div style="height: 700px;width: 50%;margin: 1%;">
+            <el-table class="titletable" cellspacing="0" cellpadding="0" height="700px" :data="calcDataList">
+                    <el-table-column label="规格序号" type="index" align="center" width="80" fixed>
+                      <template #default="{$index}">
+                          {{ $index+1 }} 
+                       </template>
+                    </el-table-column>
+                    <el-table-column label="纱线规格D" align="center">
+                      <el-table-column label="L1\L5" align="center" prop="formula_data_4"></el-table-column>
+                      <el-table-column label="L2\L4" align="center" prop="formula_data_5"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="formula_data_6"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="盘头根数" align="center">
+                      <el-table-column label="L1\L5" align="center" prop="formula_data_10"></el-table-column>
+                      <el-table-column label="L2\L4" align="center" prop="formula_data_11"></el-table-column>
+                      <el-table-column label="L3" align="center" prop="formula_data_12"></el-table-column>
+                    </el-table-column>
+                    <el-table-column label="毛高" align="center" prop="formula_data_15"></el-table-column>
+                    <el-table-column label="最近生产日米长" align="center" prop="lastLength"></el-table-column>
+                    <el-table-column label="预计生产日米长" align="center" prop="nextLength"></el-table-column>
+                    <el-table-column label="规格占比" align="center" prop="percentD">
+                      <template #default="scope">
+                          {{ (scope.row.percentD*100).toFixed(2) }} %
+                       </template>
+                    </el-table-column>
+                    <el-table-column label="底纱占比" align="center" prop="percentDd">
+                      <template #default="scope">
+                          {{ (scope.row.percentDd*100).toFixed(2) }} %
+                      </template>
+                    </el-table-column>
+            </el-table>
+          </div>
+          <div style="height: 700px;width: 46%;margin: 1%;padding: 1%;background: #f4f4f4;border-radius: 5px;" ref="echarts1">
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+  </div>
+</template>
+<script>
+  import { ref,onMounted,watch } from 'vue';
+  import {GetData} from "@/api/calc/calcXiansha";
+  import { ElDatePicker,ElMessage } from 'element-plus';
+  import 'element-plus/dist/index.css'; // 确保导入样式文件
+  import * as echarts from 'echarts';
+  export default {
+      props:{
+      },
+      components:{
+          
+      },
+      setup(props,{emit}){
+          const { proxy } = getCurrentInstance();
+          let datalist=ref([]);
+          let xsDlist = ref([]);
+          let detailDataList=ref([]);
+          let detailValue=ref('');
+          const calcDataList = ref([])
+          const prevDay = ref(7);
+          const loading=ref(true);
+          const echarts1 = ref(null);
+          let echarts1_ins = null;
+          const activeTab = ref('tab1');
+
+          const handleTabClick = (tab) => {
+            activeTab.value = tab.props.name;
+            if(tab.props.name=='tab2'){
+              //showEcahtrs
+              setTimeout(() => {
+                showEcahtrs();
+              }, 200);              
+            }
+          };
+          function impquery(){
+              detailDataList.value=[];
+              datalist.value=[];
+              const msg = ElMessage({
+                      message:"正在加载数据",
+                      type:"info",
+                      duration:0, //一直显示
+              });
+              loading.value = true;
+              GetData(prevDay.value).then((res)=>{
+                  loading.value = false;
+                  msg.close();
+                  if(res.code!=200){
+                      return;
+                  }
+                  datalist.value = res.data.list;
+                  let tmp = [];
+                  for(let key in res.data.list){
+                    let ds=key.split('/');
+                    tmp.push({"f1":ds[0],"f2":ds[1],"f3":ds[2]});
+                  }
+                  xsDlist.value = tmp;
+                  calcDataList.value = res.data.calc;
+              }).catch(res=>{
+                  ElMessage({
+                      message:"数据获取失败!",
+                      type:"error",
+                  });
+              });
+          }
+
+          function getDetail(v){
+              detailValue.value = [v.f1,v.f2,v.f3].join('/') ;
+              detailDataList.value=datalist.value[detailValue.value];
+          }
+
+          function showEcahtrs(){
+            if(echarts1_ins!=null) echarts1_ins.dispose();
+            let times =[];
+            let sers=[];
+            for (let index = 0; index < calcDataList.value.length; index++) {
+              const element = calcDataList.value[index];
+              times.push(index+1);
+              sers.push((element.percentD*100).toFixed(2));
+            }
+            var option = {
+                title: {
+                    show: true,
+                    text: '规格占比',
+                    left: 'center',
+                    top: '1%',
+                    bottom: '0'
+                },
+                color: ["#ffb649"],
+                tooltip: {
+                    trigger: 'axis',
+                    formatter: function (params) {
+                        let xv='';
+                        let result = '';
+                        params.forEach(function (item) {
+                            xv=`规格序号:${item.name}`;                           
+                            result += ` ${item.marker} ${item.seriesName}:  ${item.value}(%)<br/>`;
+                        });
+                        return xv+result;
+                    }
+                },
+                legend: {
+                    show:false,
+                    data: ['规格占比'],
+                    button: '5%',
+                    icon:"circle",
+                    textStyle: {color: "#fff"},
+                    top: "0px",
+                    padding:[0,0],
+                },
+                grid: {
+                    containLabel: true,
+                    top: '15%',
+                    bottom: '0',
+                    right: '1%',
+                    left: '1%'
+                },
+                xAxis: [{
+                    type: 'category',
+                    boundaryGap: true,
+                    data: times,
+                    axisLabel: {
+                        rotate: 0,
+                        color: "#26e2fb",
+                        formatter:function(v){
+                            return v.split(',')[0];
+                        }
+                    },
+                    axisPointer: {snap: false}
+                }],
+                yAxis: [{
+                    type: 'value',
+                    axisPointer: {snap: false},
+                    axisLabel: {
+                        color: "#26e2fb"
+                    },
+                    splitLine: {
+                        lineStyle: {
+                            color: "#7DA7CD",
+                            type: "dashed",
+                            width: 1
+                        }
+                    }
+                }],
+                series: {
+                    name: '规格占比',
+                    type: 'bar',
+                    barWidth: 5,
+                    data: sers
+              }
+            };
+            echarts1_ins = echarts.init(echarts1.value);
+            echarts1_ins.setOption(option);
+          }
+
+          function impdata(){
+            proxy.download('/api/export/yarn-specifications?day='+prevDay.value, {}, `线纱规格_${new Date().getTime()}.xlsx`)
+          }
+
+          onMounted(()=>{
+              impquery();
+          })
+
+          return{
+              xsDlist,
+              datalist,
+              detailDataList,
+              detailValue,
+              prevDay,
+              activeTab,
+              calcDataList,
+              impdata,
+              getDetail,
+              impquery,
+              handleTabClick,
+              loading,
+              echarts1,
+          }
+      }
+  }
+</script>

+ 4 - 4
src/views/calc/pingfangmi/index.vue

@@ -7,7 +7,7 @@
           </span>                
       </div>
       <div style="height: 700px;width: 100%;background-color: rgb(237 237 237 / 23%);margin-top: 10px;display: flex;">          
-          <div style="height: 700px;width: 30%;margin-left: 1%;">
+          <div style="height: 700px;width: 20%;margin-left: 1%;">
             <div class="table_caption" style="height: 30px;line-height: 30px;">汇总统计</div>
             <el-table v-loading="loading" height="750px" :data="datalist">
                   <el-table-column label="平方米克重" align="center" prop="gramMass"></el-table-column>
@@ -15,15 +15,15 @@
                   <el-table-column label="占比" align="center" prop="percent"></el-table-column>
                   <el-table-column label="明细" align="center">
                     <template #default="scope">
-                      <el-button @click="getDetail(scope.row)">查看明细</el-button>
+                      <el-button @click="getDetail(scope.row)">查看</el-button>
                     </template>
                   </el-table-column>
                 </el-table>
           </div>
-          <div style="height: 700px;width: 68%;margin-left: 1%;">
+          <div style="height: 700px;width: 78%;margin-left: 1%;">
               <div class="table_caption" style="height: 30px;line-height: 30px;">{{detailValue}}明细数据</div>
               <el-table class="titletable" cellspacing="0" cellpadding="0" height="750px" width="800px" :data="detailDataList">
-                <el-table-column label="设备名" align="center" prop="device"></el-table-column>
+                <el-table-column label="设备名" align="center" prop="device" fixed></el-table-column>
                 <el-table-column label="送经量" align="center">
                   <el-table-column label="GB1" align="center" prop="formula_data_19"></el-table-column>
                   <el-table-column label="GB2" align="center" prop="formula_data_20"></el-table-column>