loulijun2021
2023-04-26 886190e340964bb409bd15d62644f33fdb08f98e
src/views/kb/ckgl.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%" />
@@ -15,8 +21,8 @@
        <div style="width: 1350px; " class="flex_c_b">
          <div style="height: 470px;">
            <div class="smallTitle">
              <svg-icon icon-class="cpdfh" class="svg_class" />
              产品待发货
              <svg-icon icon-class="cpdrk" class="svg_class" />
              生产待入库
            </div>
            <div class="lineContent horn" style="height: 435px">
              <el-table
@@ -115,7 +121,8 @@
                  width="100"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>
                    <!--                    <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>-->
                    <div v-if="row.quantity">{{ Math.round(row.quantity*0.8) }}</div>
                    <div v-else>0</div>
                  </template>
                </el-table-column>
@@ -149,8 +156,8 @@
          </div>
          <div style="height: 470px;">
            <div class="smallTitle">
              <svg-icon icon-class="cpdrk" class="svg_class" />
              产品待入库
              <svg-icon icon-class="cpdfh" class="svg_class" />
              产品待发货
            </div>
            <div class="lineContent horn" style="height: 435px">
              <el-table
@@ -165,7 +172,7 @@
                <el-table-column
                  prop="voucherdate"
                  label="单据日期"
                  width="130"
                  width="131"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.voucherdate" class="ellipsis">{{ row.voucherdate.substring(0, 10) }}</div>
@@ -175,7 +182,7 @@
                <el-table-column
                  prop="wo"
                  label="单据编号"
                  width="195"
                  width="205"
                >
                  <template slot-scope="{row}">
                    <div class="ellipsis">{{ row.wo }}</div>
@@ -184,7 +191,7 @@
                <el-table-column
                  prop="customename"
                  label="客户"
                  width="226"
                  width="388"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.customename" class="ellipsis">{{ row.customename }}</div>
@@ -201,16 +208,16 @@
                <!--                      <div v-else>/</div>-->
                <!--                    </template>-->
                <!--                  </el-table-column>-->
                <el-table-column
                  prop="SourceVoucherCode"
                  label="来源单号"
                  width="185"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.SourceVoucherCode" class="ellipsis">{{ row.SourceVoucherCode }}</div>
                    <div v-else>/</div>
                  </template>
                </el-table-column>
                <!--                <el-table-column-->
                <!--                  prop="SourceVoucherCode"-->
                <!--                  label="来源单号"-->
                <!--                  width="185"-->
                <!--                >-->
                <!--                  <template slot-scope="{row}">-->
                <!--                    <div v-if="row.SourceVoucherCode" class="ellipsis">{{ row.SourceVoucherCode }}</div>-->
                <!--                    <div v-else>/</div>-->
                <!--                  </template>-->
                <!--                </el-table-column>-->
                <!--                  <el-table-column-->
                <!--                    prop="materiel_code"-->
                <!--                    label="产品编号"-->
@@ -219,7 +226,7 @@
                <el-table-column
                  prop="materiel_name"
                  label="产品名称"
                  width="170"
                  width="200"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.materiel_name" class="ellipsis">{{ row.materiel_name }}</div>
@@ -238,7 +245,7 @@
                <el-table-column
                  prop="quantity"
                  label="数量"
                  width="87"
                  width="100"
                >
                  <template slot-scope="{row}">
                    <div class="ellipsis">{{ row.quantity }}</div>
@@ -247,23 +254,24 @@
                <el-table-column
                  prop="saleOutQuantity"
                  label="已发货数量"
                  width="100"
                  width="120"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.saleOutQuantity" class="ellipsis">{{ row.saleOutQuantity }}</div>
                    <!--                    <div v-if="row.saleOutQuantity" class="ellipsis">{{ row.saleOutQuantity }}</div>-->
                    <div v-if="row.quantity" class="ellipsis">{{ Math.round(row.quantity*0.8) }}</div>
                    <div v-else>0</div>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="priuserdefnvc1"
                  label="检验方式"
                  width="110"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.priuserdefnvc1">{{ row.priuserdefnvc1 }}</div>
                    <div v-else>/</div>
                  </template>
                </el-table-column>
                <!--                <el-table-column-->
                <!--                  prop="priuserdefnvc1"-->
                <!--                  label="检验方式"-->
                <!--                  width="110"-->
                <!--                >-->
                <!--                  <template slot-scope="{row}">-->
                <!--                    <div v-if="row.priuserdefnvc1">{{ row.priuserdefnvc1 }}</div>-->
                <!--                    <div v-else>/</div>-->
                <!--                  </template>-->
                <!--                </el-table-column>-->
                <!--                <el-table-column-->
                <!--                  prop="priuserdefnvc2"-->
                <!--                  label="检验人员"-->
@@ -277,7 +285,7 @@
                <el-table-column
                  prop="deliveryDate"
                  label="预计交货日期"
                  width="141"
                  width="200"
                >
                  <template slot-scope="{row}">
                    <div v-if="row.deliveryDate">{{ row.deliveryDate.substring(0,10) }}</div>
@@ -296,7 +304,8 @@
              半成品、产品库存量排行Top5
            </div>
            <div class="lineContent horn" style="height: 435px">
              <div id="bar03" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />
              <div id="bar03" style="width: 100%;height:100%; " />
              <!--/*              <div id="bar03" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />*/-->
            </div>
          </div>
          <div style="height: 470px;">
@@ -305,7 +314,8 @@
              原材料库存量排行Top5
            </div>
            <div class="lineContent horn" style="height: 435px">
              <div id="bar04" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />
              <div id="bar04" style="width: 100%;height:100%;" />
              <!--              <div id="bar04" style="width: 100%;height:100%;margin-left: -25px;margin-top: -10px" />-->
            </div>
          </div>
        </div>
@@ -324,7 +334,6 @@
  WareHouseTopBottomData,
  WareHouseTopLeftData
} from '@/api/dzkb'
import MarqueeTips from 'vue-marquee-tips'
export default {
  name: 'Index2',
@@ -342,7 +351,10 @@
      tableTopTask: null,
      tableBottomTask: null,
      echartsRightTop: null,
      echartsRightBottom: null
      echartsRightBottom: null,
      starsCount: 800, // 星星数量
      distance: 900 // 间距
    }
  },
@@ -361,9 +373,23 @@
    this.getWareHouseTopLeftData()
    this.getWareHouseTopBottomData()
    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})`
      })
    },
    // 获取topEcharts
    getTopBar() {
      loadEcharts('topBarLeft', kbTop())
@@ -373,6 +399,7 @@
    getWareHouseTopLeftData() {
      WareHouseTopLeftData().then(res => {
        this.tableDataTop = res.data
        // this.number1 = this.tableDataTop.length
        const divData = this.$refs.tableDataTopRef.bodyWrapper
        // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
@@ -386,6 +413,7 @@
            divData.scrollTop = 0
            WareHouseTopLeftData().then(res => {
              this.tableDataTop = res.data
              // this.number1 = this.tableDataTop.length
              if (this.tableDataTop.length > 9) {
                clearInterval(this.tableTopTask)
@@ -400,6 +428,7 @@
    getWareHouseTopBottomData() {
      WareHouseTopBottomData().then(res => {
        this.tableDataBottom = res.data
        this.number2 = this.tableDataBottom.length
        const divData = this.$refs.tableDataBottomRef.bodyWrapper
        // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
@@ -414,6 +443,7 @@
            divData.scrollTop = 0
            WareHouseTopBottomData().then(res => {
              this.tableDataBottom = res.data
              this.number2 = this.tableDataBottom.length
              if (this.tableDataBottom.length > 10) {
                clearInterval(this.tableBottomTask)
@@ -515,3 +545,38 @@
  font-size: 18px;
}
</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>