loulijun2021
2022-09-14 5eeb8864bebb1dc4f97f2feef32b742d8a9a10d5
src/views/kb/cgdd.vue
@@ -10,7 +10,12 @@
          <span>{{ headTime }}</span>
        </div>
      </div>
      <MarqueeTips
        :content="MarqueeTipsContent"
        class="MarqueeTipsContentClass"
        style="top:100px"
        :speed="speed"
      />
      <div class="kb_content">
        <div class="kb_left">
          <!-- 1-->
@@ -39,7 +44,7 @@
          <!-- 2-->
          <div class="kb_left_bottom kb_pd10">
            <div class="kb_left_bottom_content">
              <div class="content_head">采购到货跟踪:</div>
              <div class="content_head kb_title_text">采购到货跟踪</div>
              <div class="content_body">
                <el-table
                  ref="tableData"
@@ -63,33 +68,53 @@
                  <el-table-column
                    prop="suppername"
                    label="供应商"
                    width="163"
                  />
                    width="125"
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>
                      <div v-else />
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="username"
                    label="采购员"
                    width="68"
                  />
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.username">{{ row.username }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="partcode"
                    label="产品编码"
                    width="84"
                    width="108"
                  />
                  <el-table-column
                    prop="partname"
                    label="产品名称"
                    width="168"
                    width="155"
                  />
                  <el-table-column
                    prop="partspec"
                    label="规格型号"
                    width="84"
                  />
                    width="130"
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="quantity"
                    label="订单数量"
                    width="84"
                  />
                    width="74"
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>
                      <div v-else>0</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="checktype"
                    label="检验状态"
@@ -108,23 +133,30 @@
                  <el-table-column
                    prop="quantity1"
                    label="已收数量"
                    width="84"
                  />
                  <el-table-column
                    label="未收数量"
                    width="84"
                    width="74"
                  >
                    <template slot-scope="{row}">
                      <div>{{ parseFloat(row.quantity- row.quantity1) }}</div>
                      <div v-if="row.quantity1">{{ parseFloat(row.quantity1) }}</div>
                      <div v-else>0</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="未收数量"
                    width="74"
                  >
                    <template slot-scope="{row}">
                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity- row.quantity1) }}</div>
                      <div v-else>0</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="acceptDate"
                    label="预计交期"
                    width="84"
                    width="95"
                  >
                    <template slot-scope="{row}">
                      <div>{{ row.acceptDate.substring(5, 10) }}</div>
                      <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>
                      <div v-else>/</div>
                    </template>
                  </el-table-column>
                  <el-table-column
@@ -134,8 +166,9 @@
                  >
                    <template slot-scope="{row}">
                      <div v-if="parseFloat(row.warning)<0" style="color: red">{{ Math.abs(parseFloat(row.warning)) }}</div>
                      <div v-else-if="row.warning===null">0</div>
                      <div v-else>{{ row.warning }}</div>
                      <div v-else-if="row.warning===null||row.warning===''||row.warning===0">0</div>
                      <div v-else-if="parseFloat(row.warning)>3">{{ row.warning }}</div>
                      <div v-else-if="parseFloat(row.warning)>0&&parseFloat(row.warning)<=3" style="color:yellow;">{{ row.warning }}</div>
                    </template>
                  </el-table-column>
                </el-table>
@@ -146,7 +179,7 @@
        <div class="kb_right kb_pd10">
          <div class="kb_right_top kb_pd10">
            <div class="kb_right_top_content">
              <div class="content_head">供应商延期交货排行:</div>
              <div class="content_head kb_title_text">供应商延期交货排行</div>
              <div class="content_body">
                <el-table
                  ref="tableDataRank"
@@ -155,15 +188,16 @@
                  :header-cell-style="headerCellStyle"
                  :cell-style="cellStyle"
                  :row-class-name="tableRowClassName"
                  height="923"
                  height="865"
                >
                  <el-table-column
                    type="index"
                    label="序号"
                    width="100"
                    width="70"
                  >
                    <template slot-scope="{row}">
                      <div>NO.{{ row.index }}</div>
                      <!--                      <div>NO.100</div>-->
                    </template>
                  </el-table-column>
                  <!--                  <el-table-column-->
@@ -174,17 +208,21 @@
                  <el-table-column
                    prop="suppercode"
                    label="供应商编码"
                    width="145"
                    width="130"
                  />
                  <el-table-column
                    prop="suppername"
                    width="163"
                    width="283"
                    label="供应商名称"
                  />
                  >
                    <template slot-scope="{row}">
                      <div class="ellipsis">{{ row.suppername }}</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="cont"
                    label="延期次数"
                    width="125"
                    label="次数"
                    width="50"
                  />
                </el-table>
              </div>
@@ -202,16 +240,23 @@
import { bar02, loadEcharts, pie01 } from '@/utils/myEcharts'
import * as echarts from 'echarts'
import { PurchaseLeftBottom, PurchaseLeftTop, PurchaseRight } from '@/api/dzkb'
import MarqueeTips from 'vue-marquee-tips'
export default {
  name: 'Index2',
  components: {
    MarqueeTips
  },
  data() {
    return {
      headTime: '',
      purchaseLeftTopData: [],
      tableData: [],
      tableDataRank: []
      tableDataRank: [],
      MarqueeTipsContent: '', // 公告
      speed: 100// 公告播放的速度
    }
  },
@@ -223,13 +268,21 @@
    this.getPurchaseLeftTop()
    this.getPurchaseLeftBottom()
    this.getPurchaseRight()
    this.getMarqueeTipsContent()
  },
  methods: {
    // 获取公告
    getMarqueeTipsContent() {
      this.MarqueeTipsContent = '各位员工们:根据上级的通知,结合我企实际情况,现将20xx年的元旦放假通知如下:一、1月1日至1月3日放假调休,共3天。1月4日正式上班。二、节假日期间,各班组要严格落实上级的重要指示精神,按照上级的具体要求,认真抓好落实节日期间值班备勤工作,确保节日期间企业各项工作正常运转。xx企业20xx年12月28日'
      const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ')
      this.MarqueeTipsContent = this.MarqueeTipsContent + spance
      this.speed = this.MarqueeTipsContent.length / 10
    },
    getPurchaseLeftTop() {
      PurchaseLeftTop().then(res => {
        this.purchaseLeftTopData = res.data[0]
        console.log(this.purchaseLeftTopData)
        // console.log(this.purchaseLeftTopData)
      })
      setInterval(() => {
        PurchaseLeftTop().then(res => {
@@ -241,45 +294,50 @@
    getPurchaseLeftBottom() {
      PurchaseLeftBottom().then(res => {
        this.tableData = res.data
      })
      const divData = this.$refs.tableData.bodyWrapper
      // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
      setInterval(() => {
        // 元素自增距离顶部1像素
        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
        divData.scrollTop += 1
        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
          // 重置table距离顶部距离
          divData.scrollTop = 0
          PurchaseLeftBottom().then(res => {
            this.tableData = res.data
          })
        }
      }, this.tableData.length <= 14 ? 1000 * 6 : 100)
        const divData = this.$refs.tableData.bodyWrapper
        // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
        const task = setInterval(() => {
          // 元素自增距离顶部1像素
          divData.scrollTop += 1
          // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
            // 重置table距离顶部距离
            divData.scrollTop = 0
            PurchaseLeftBottom().then(res => {
              this.tableData = res.data
              if (this.tableData.length > 14) {
                clearInterval(task)
                this.getPurchaseLeftBottom()
              }
            })
          }
        }, this.tableData.length <= 14 ? 1000 * 3 : 100)
      })
    },
    getPurchaseRight() {
      PurchaseRight().then(res => {
        this.tableDataRank = res.data
        const divData = this.$refs.tableDataRank.bodyWrapper
        // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
        const task = setInterval(() => {
          // 元素自增距离顶部1像素
          divData.scrollTop += 1
          // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
            // 重置table距离顶部距离
            divData.scrollTop = 0
            PurchaseRight().then(res => {
              this.tableDataRank = res.data
              if (this.tableDataRank.length > 21) {
                clearInterval(task)
                this.getPurchaseRight()
              }
            })
          }
        }, this.tableDataRank.length <= 21 ? 1000 * 3 : 100)
      })
      const divData = this.$refs.tableDataRank.bodyWrapper
      // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
      setInterval(() => {
        // 元素自增距离顶部1像素
        // divData.scrollTop += divData.scrollHeight / this.tableDataRank.length
        divData.scrollTop += 1
        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
        if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
          // 重置table距离顶部距离
          divData.scrollTop = 0
          PurchaseRight().then(res => {
            this.tableDataRank = res.data
          })
        }
      }, this.tableDataRank.length <= 22 ? 1000 * 6 : 100)
    },
    tableRowClassName({ row, rowIndex }) {
@@ -335,7 +393,8 @@
</script>
<style scoped lang="scss">
$kbBorderColor: #09d8f2;
//$kbBorderColor: #09d8f2;
$kbBorderColor: rgba(9,216,242,0.4);
.kb_content {
  display: flex;
@@ -354,11 +413,12 @@
      height: 345px;
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      //justify-content: space-around;
      justify-content: flex-end;
      .kb_left_top_block {
        width: 100%;
        height: 267px;
        height: 237px;
        display: flex;
        //border: 1px solid rgba(255, 255, 255, 0.6);
        justify-content: space-around;
@@ -422,7 +482,8 @@
    height: 100%;
    .kb_right_top {
      height: 964px;
      height: 906px;
      margin-top: 58px;
      width: 100%;
      .kb_right_top_content {
@@ -459,4 +520,9 @@
  /* width: 0;宽度为0暗藏 */
  width: 0;
}
::v-deep .cell {
  padding: 0 !important;
}
</style>