|
@@ -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>
|