loulijun2021
2023-04-14 e2660740818a17f4b5d97df4c224affa87b95ebc
src/views/kb/cjzl.vue
@@ -1,6 +1,12 @@
<template>
  <div>
    <div class="kb_dashboard">
      <!--    星空背景-->
      <!--      <div ref="starsRef" class="stars">-->
      <!--        <div v-for="(item, index) in starsCount" :key="index" class="star" />-->
      <!--      </div>-->
      <div class="kb_header">
        <div class="flex_c_c kb_header_text">
          <div id="topBarLeft" style="width:600px;height:100%" />
@@ -44,7 +50,7 @@
            <el-table
              ref="tableDataLeftCenterRef"
              :data="tableDataCenterTop"
              class="tableData"
              class="tableData tableDataCell"
              style="width: 100%;"
              :header-cell-style="headerCellStyleCenter"
              :cell-style="cellStyleCenter"
@@ -53,7 +59,7 @@
              <el-table-column
                prop="lm_date"
                label="日期"
                width="115"
                width="100"
              >
                <template slot-scope="{row}">
                  <div
@@ -65,18 +71,18 @@
                </template>
              </el-table-column>
              <el-table-column
                prop="cxmc"
                width="95"
                prop="eqp_name"
                width="80"
                label="产线名称"
              >
                <template slot-scope="{row}">
                  <div>{{ row.cxmc }}</div>
                  <div>{{ row.eqp_name }}</div>
                </template>
              </el-table-column>
              <el-table-column
                prop="wo_code"
                label="生产单号"
                width="188"
                width="173"
              >
                <template slot-scope="{row}">
                  <div style="color: #00FFFF">{{ row.wo_code }}</div>
@@ -84,12 +90,12 @@
              </el-table-column>
              <el-table-column
                prop="cpmc"
                width="100"
                prop="partname"
                width="190"
                label="产品名称"
              >
                <template slot-scope="{row}">
                  <div class="ellipsis">{{ row.cpmc }}</div>
                  <div class="ellipsis">{{ row.partname }}</div>
                </template>
              </el-table-column>
              <el-table-column
@@ -104,16 +110,16 @@
              <el-table-column
                prop="ng_qty"
                label="不良数量"
                width="92"
                width="77"
              />
              <el-table-column
                prop="report_qty"
                label="报工数量"
                width="92"
                width="77"
              />
              <el-table-column
                label="不良占比"
                width="92"
                width="77"
              >
                <template slot-scope="{row}">
                  <div>{{ parseFloat((row.ng_qty*100/(row.ng_qty+row.report_qty)).toFixed(2)) }}%</div>
@@ -162,7 +168,12 @@
      headTime: '',
      tableDataCenterTop: [],
      tableDataCenterTopTemp: []
      tableDataCenterTopTemp: [],
      StepCode: '02',
      starsCount: 800, // 星星数量
      distance: 900 // 间距
    }
  },
  created() {
@@ -179,8 +190,23 @@
    this.getCenterTableDataSetInterval()
    this.getEcharts()
    // this.setStarsRef()
  },
  methods: {
    setStarsRef() {
      const starNodes = Array.from(this.$refs.starsRef.children)
      starNodes.forEach(item => {
        const speed = 0.2 + Math.random() * 1
        const thisDistance = this.distance + Math.random() * 300
        item.style.transformOrigin = `0 0 ${thisDistance}px`
        item.style.transform = `
        translate3d(0,0,-${thisDistance}px)
        rotateY(${Math.random() * 360}deg)
        rotateX(${Math.random() * -50}deg)
        scale(${speed},${speed})`
      })
    },
    // 获取Echarts
    getEcharts() {
      this.getLeftTopEcharts()
@@ -204,26 +230,26 @@
      }, 1000 * 10)
    },
    getLeftTopEcharts() {
      BadTop5({ StepCode: 'Step02' }).then(res => {
      BadTop5({ StepCode: this.StepCode }).then(res => {
        const dataArr = res.data.map(i => i.cont)
        const titlenameArr = res.data.map(i => i.name)
        loadEcharts('bar01', bar02(dataArr, titlenameArr))
      })
    },
    getLeftBottomEcharts() {
      BadWeek({ StepCode: 'Step02' }).then(res => {
      BadWeek({ StepCode: this.StepCode }).then(res => {
        const dataX = res.data.map(i => i.click_date)
        const dataY = res.data.map(i => i.count)
        loadEcharts('line01', line02(dataX, dataY))
      })
    },
    getRightTopEcharts() {
      BadDayDistriBute({ StepCode: 'Step02' }).then(res => {
      BadDayDistriBute({ StepCode: this.StepCode }).then(res => {
        loadEcharts('bar02', bar04(res.data))
      })
    },
    getRightBottomEcharts() {
      BadWeekDistriBute({ StepCode: 'Step02' }).then(res => {
      BadWeekDistriBute({ StepCode: this.StepCode }).then(res => {
        loadEcharts('pie01', pie02(res.data))
      })
    },
@@ -231,7 +257,7 @@
    getCenterTableDataSetInterval() {
      let startValue = 0 // 初始值
      const scale = 23// 刻度
      BadContManger({ StepCode: 'Step02' }).then(res => {
      BadContManger({ StepCode: this.StepCode }).then(res => {
        this.tableDataCenterTopTemp = res.data
        this.tableDataCenterTop = this.tableDataCenterTopTemp.slice(startValue, startValue + scale)
@@ -333,4 +359,46 @@
.el-table__empty-text{
  color: $main_color;
}
.tableDataCell {
  ::v-deep .cell{
    padding: 0 2px ;
  }
}
</style>
<!--星空-->
<style lang="css" scoped>
@keyframes rotate {
  0% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
  }
  100% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
  }
}
.stars {
  transform: perspective(500px);
  transform-style: preserve-3d;
  position: absolute;
  perspective-origin: 50% 100%;
  left: 45%;
  animation: rotate 90s infinite linear;
  bottom: 0;
  z-index: 102;
}
.star {
  width: 2px;
  height: 2px;
  /*background: #f7f7b6;*/
  background: #8edffc;
  position: absolute;
  left: 0;
  top: 0;
  backface-visibility: hidden;
  z-index: 102;
}
</style>