<template>
    <div class="n_container">
        <div class="n_header">
            <div class="n_header_h1">
                <h1>据控制中心</h1>
            </div>
        </div>
        <div class="n_body_container">
            <div class="n_body_container_wraper">
                <div class="n_content">
                    <div class="item_wrap item_wrap_bg">
                        <div class="item_tip">
                            <div class="item_tip_left">当日拆码垛</div>
                        </div>
                        <div class="item_content">
                            <div id="sortpack_echart_1" style="width: 100%; height: 100%;"></div>
                        </div>
                    </div>
                    <div class="item_wrap item_wrap_bg">
                        <div class="item_tip">
                            <div class="item_tip_left">当日成品</div>
                        </div>
                        <div class="item_content">
                            <div id="sortpack_echart_2" style="width: 100%; height: 100%;"></div>
                        </div>
                    </div>
                </div>
                <div class="n_content">
                    <div class="item_wrap">
                        <div class="item_tip">
                            <div class="item_tip_left">半托缓存</div>
                        </div>
                        <div class="item_content">
                            <div class="scroll_wrap">
                                <ul class="scroll_tab_1">
                                    <li>货位</li>
                                    <li>物料编码</li>
                                    <li>数量</li>
                                    <li>压机号</li>
                                    <li>碾次</li>
                                    <li>入库时间</li>
                                </ul>
                                <div class="scroll_container_1 scroll_container_2">
                                    <vue-seamless-scroll :data="HalfSupportCacheList" :class-option="defaultOption1">
                                        <ul class="scroll-ul_1">
                                            <li v-for="(e, i) in HalfSupportCacheList" :key="i">
                                                <div class="scroll-ul_1_div">{{e.point_name}}</div>
                                                <div class="scroll-ul_1_div">{{e.material_code}}</div>
                                                <div class="scroll-ul_1_div">{{e.qty}}</div>
                                                <div class="scroll-ul_1_div">{{e.device_code}}</div>
                                                <div class="scroll-ul_1_div">{{ e.mix_num }}</div>
                                                <div class="scroll-ul_1_div">{{ e.instorage_time }}</div>
                                            </li>
                                        </ul>
                                    </vue-seamless-scroll>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="item_wrap">
                        <div class="item_tip">
                            <div class="item_tip_left">包装区物料</div>
                        </div>
                        <div class="item_content">
                            <div class="scroll_wrap">
                                <ul class="scroll_tab_1 scroll_tab_3">
                                    <li>点位</li>
                                    <li>物料编码</li>
                                    <li>数量</li>
                                    <li>压机号</li>
                                    <li>碾次</li>
                                    <li>出入时间</li>
                                </ul>
                                <div class="scroll_container_1">
                                    <vue-seamless-scroll :data="PackingAreaTaskList" :class-option="defaultOption2">
                                        <ul class="scroll-ul_1">
                                            <li v-for="(e, i) in PackingAreaTaskList" :key="i">
                                                <div class="scroll-ul_1_div">{{e.point_name}}</div>
                                                <div class="scroll-ul_1_div">{{e.material_code}}</div>
                                                <div class="scroll-ul_1_div">{{e.qty}}</div>
                                                <div class="scroll-ul_1_div">{{e.device_code}}</div>
                                                <div class="scroll-ul_1_div">{{ e.mix_num }}</div>
                                                <div class="scroll-ul_1_div">{{ e.instorage_time }}</div>
                                            </li>
                                        </ul>
                                    </vue-seamless-scroll>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="tooltip_wrap right_tooltip_wrap" :style="expand ? 'opacity: 1' : 'opacity: 0.1'">
          <div class="tooltip_pages" :style="expand ? 'width: 300px' : 'width: 0'">
            <router-link to="/setup" class="tooltip_page">配置</router-link>
            <router-link to="/hnlktwo" class="tooltip_page">1</router-link>
            <router-link to="/takeshapetwo" class="tooltip_page">2</router-link>
            <router-link to="/firedrytwo" class="tooltip_page">3</router-link>
            <div class="tooltip_page current_page pointer">4</div>
            <router-link to="/pdtwo" class="tooltip_page">5</router-link>
          </div>
          <div class="tooltip_arrow pointer" @click="expandTooltip" v-text="expand ? '&lt;&lt;' : '&gt;&gt;'"></div>
        </div>
        <div class="style_block" style="left: calc(100% / 3);top:0;"></div>
        <div class="style_block" style="background: green;left: calc(100% / 3);top:calc(100% / 3);"></div>
        <div class="style_block" style="left: calc(100% / 3);bottom: 0"></div>
        <div class="style_block" style="background: green;left: calc(200% / 3);top:0;"></div>
        <div class="style_block" style="left: calc(200% / 3);top:calc(100% / 3);"></div>
        <div class="style_block" style="background: blue;left: calc(200% / 3);bottom: 0"></div>
        <div class="style_block" style="background: green;left: 0;top:0;"></div>
        <div class="style_block" style="left: 0;top:calc(100% / 3);"></div>
        <div class="style_block" style="background: green;left: 0;bottom: 0"></div>
    </div>
</template>

<script>
import { sortingAndPackaging } from '@js/getData2'
export default {
  data () {
    return {
      interTime: this.$store.getters.setTime,
      timer: null,
      expand: false,
      myCharts1: '',
      myCharts2: '',
      SortingDayList: [],
      PackingAreaTaskList: [],
      HalfSupportCacheList: [],
      CPDayList: []
    }
  },
  computed: {
    defaultOption1 () {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 9, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 1, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
      }
    },
    defaultOption2 () {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 8, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 1, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
      }
    },
    defaultOption3 () {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 8, // 开始无缝滚动的数据量 this.dataList.length
        hoverStop: true, // 是否开启鼠标悬停stop
        direction: 1, // 0向下 1向上 2向左 3向右
        openWatch: true, // 开启数据实时监控刷新dom
        singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
        singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
        waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
      }
    }
  },
  mounted () {
    this._sortingAndPackaging()
    this.refresh()
  },
  beforeDestroy () {
    clearInterval(this.timer)
  },
  methods: {
    refresh () {
      this.timer = setInterval(() => {
        this._sortingAndPackaging()
      }, this.interTime)
    },
    async _sortingAndPackaging () {
      let res = await sortingAndPackaging()
      if (res.code === 200) {
        if (res.result.hasOwnProperty('SortingDayList')) {
          this.SortingDayList = [...res.result.SortingDayList]
          if (this.SortingDayList.length) {
            this.setEchart1()
          }
        }
        if (res.result.hasOwnProperty('PackingAreaTaskList')) {
          this.PackingAreaTaskList = [...res.result.PackingAreaTaskList]
        }
        if (res.result.hasOwnProperty('HalfSupportCacheList')) {
          this.HalfSupportCacheList = [...res.result.HalfSupportCacheList]
        }
        if (res.result.hasOwnProperty('CPDayList')) {
          this.CPDayList = [...res.result.CPDayList]
          if (this.CPDayList.length) {
            this.setEchart2()
          }
        }
      }
    },
    setEchart1 () {
      let barName = []
      let barData1 = []
      let barData2 = []
      this.SortingDayList.map(el => {
        barName.push(el.material_code)
        barData1.push(el.total_stripping_qty)
        barData2.push(el.total_palletizing_qty)
      })
      let option = {
        grid: {
          top: 50,
          left: 0,
          right: 0,
          bottom: 0,
          containLabel: true
        },
        legend: {
          icon: 'rect',
          textStyle: {
            color: '#fff',
            fontSize: 14,
            lineHeight: 14
          },
          itemGap: 30.86,
          itemWidth: 14.16,
          itemHeight: 7.38,
          data: [{name: '拆垛数', itemStyle: {color: '#0E90FD'}}, {name: '码垛数', itemStyle: {color: '#33CCCC'}}]
        },
        xAxis: {
          type: 'category',
          axisTick: {
            show: false
          },
          axisLine: {
            show: true,
            lineStyle: {
              width: 2,
              color: '#8FABBF'
            }
          },
          axisLabel: {
            interval: 0,
            textStyle: {
              color: '#8FABBF',
              fontSize: 16
            }
            // rotate: 50
          },
          data: barName
        },
        yAxis: {
          type: 'value',
          name: '单位：块',
          axisLine: {
            show: false
          },
          splitNumber: 2,
          axisTick: {
            show: false
          },
          axisLabel: {
            textStyle: {
              color: '#8FABBF',
              fontSize: 14
            }
          },
          splitLine: {
            show: true,
            lineStyle: {
              type: [8, 4],
              dashOffset: 4,
              color: '#8FABBF'
            }
          }
        },
        series: [
          {
            name: '拆垛数',
            type: 'bar',
            barWidth: '8',
            barGap: '200%',
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 1,
                    color: 'rgba(96,112,128,0.10)',
                    opacity: 1
                  },
                  {
                    offset: 0,
                    color: '#0E90FD',
                    opacity: 0.1
                  }
                ])
              }
            },
            data: barData1
          },
          {
            name: '码垛数',
            type: 'bar',
            barWidth: '8',
            barGap: '200%',
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 0,
                    color: '#33CCCC',
                    opacity: 1
                  },
                  {
                    offset: 1,
                    color: 'rgba(31,89,89,0.25)',
                    opacity: 0.25
                  }
                ])
              }
            },
            data: barData2
          }
        ]
      }
      let echart = document.getElementById('sortpack_echart_1')
      if (this.myCharts1 !== '') {
        this.myCharts1.dispose()
      }
      if (echart !== null) {
        this.myCharts1 = this.$echarts.init(echart)
        this.myCharts1.setOption(option)
        window.addEventListener('resize', () => {
          this.myCharts1.resize()
        })
      }
    },
    setEchart2 () {
      let barName = []
      let barData1 = []
      let barData2 = []
      let barData3 = []
      this.CPDayList.map(el => {
        barName.push(el.material_code)
        barData1.push(el.inventory_qty)
        barData2.push(el.qualified_in_qty)
        barData3.push(el.unqualified_in_qty)
      })
      let option = {
        grid: {
          top: 50,
          left: 0,
          right: 0,
          bottom: 0,
          containLabel: true
        },
        legend: {
          icon: 'rect',
          textStyle: {
            color: '#fff',
            fontSize: 14,
            lineHeight: 14
          },
          itemGap: 30.86,
          itemWidth: 14.16,
          itemHeight: 7.38,
          data: [{name: '库存数', itemStyle: {color: '#0E90FD'}}, {name: '合格入库', itemStyle: {color: '#33CCCC'}}, {name: '不合格入库', itemStyle: {color: '#EAAD24'}}]
        },
        xAxis: {
          type: 'category',
          axisTick: {
            show: false
          },
          axisLine: {
            show: true,
            lineStyle: {
              width: 2,
              color: '#8FABBF'
            }
          },
          axisLabel: {
            interval: 0,
            textStyle: {
              color: '#8FABBF',
              fontSize: 16
            }
            // rotate: 50
          },
          data: barName
        },
        yAxis: {
          type: 'value',
          name: '单位：块',
          axisLine: {
            show: false
          },
          splitNumber: 2,
          axisTick: {
            show: false
          },
          axisLabel: {
            textStyle: {
              color: '#8FABBF',
              fontSize: 14
            }
          },
          splitLine: {
            show: true,
            lineStyle: {
              type: [8, 4],
              dashOffset: 4,
              color: '#8FABBF'
            }
          }
        },
        series: [
          {
            name: '库存数',
            type: 'bar',
            barWidth: '8',
            barGap: '200%',
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 1,
                    color: 'rgba(96,112,128,0.10)',
                    opacity: 1
                  },
                  {
                    offset: 0,
                    color: '#0E90FD',
                    opacity: 0.1
                  }
                ])
              }
            },
            data: barData1
          },
          {
            name: '合格入库',
            type: 'bar',
            barWidth: '8',
            barGap: '200%',
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 0,
                    color: '#33CCCC',
                    opacity: 1
                  },
                  {
                    offset: 1,
                    color: 'rgba(31,89,89,0.25)',
                    opacity: 0.25
                  }
                ])
              }
            },
            data: barData2
          },
          {
            name: '不合格入库',
            type: 'bar',
            barWidth: '8',
            barGap: '200%',
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 0,
                    color: '#B68845',
                    opacity: 1
                  },
                  {
                    offset: 1,
                    color: 'rgba(134,98,45,0.25)',
                    opacity: 0.25
                  }
                ])
              }
            },
            data: barData3
          }
        ]
      }
      let echart = document.getElementById('sortpack_echart_2')
      if (this.myCharts2 !== '') {
        this.myCharts2.dispose()
      }
      if (echart !== null) {
        this.myCharts2 = this.$echarts.init(echart)
        this.myCharts2.setOption(option)
        window.addEventListener('resize', () => {
          this.myCharts2.resize()
        })
      }
    },
    expandTooltip () {
      this.expand = !this.expand
    }
  }
}
</script>

<style lang="stylus" scoped>
@import '~@css/mixin'
.n_container
    position relative
    _wh(100%, 100%)
    overflow hidden
.n_header
    position relative
    z-index 0
    _wh(100%, 8%)
    _bis('../../../images/bg_header.jpg')
.n_header_h1
    _wh(100%, 100%)
    _fj(row, flex-start)
    _bis('../../../images/top_right.png',auto,,left)
    h1
        _font(32px, 1, #fff,,right)
        padding-bottom 2%
        letter-spacing 6px
        font-family "阿里妈妈数黑体" !important
        padding-left 3px
.n_body_container
    position relative
    z-index 8
    _wh(100%, 92%)
    padding 10px 50px 20px 40px
    _bis('../../../images/bg_content_r.jpg')
.n_body_container_wraper
    _wh(100%, 100%)
.n_content
    _wh(100%, 49.75%)
    _fj(row)
    &:nth-child(2)
        margin-top .5%
.item_wrap
    _wh(calc(50% - 8px), 100%)
    &:nth-child(2)
        margin-left 16px
.item_wrap_bg
    background-image linear-gradient(to bottom, #070b1c, transparent)
.item_tip
    _wh(100%, 32px)
    line-height 32px
    padding 0 10px
    _bis('../../../images/bg_title_s.png')
.item_tip_left
    _wh(60%, 100%)
    font-family "SourceHanSansCN"
    _font(18px, inherit, #fff, 700, left)
    letter-spacing 2px
    text-shadow 0 0 9px #159AFF
    padding-left 34px
    _bis('../../../images/bg_title_tip.png', 22px, 22px, left)
.item_content
    _wh(100%, calc(100% - 32px))
    padding 10px 0
.scroll_wrap
    _wh(100%, 100%)
    padding 0 5px
    border 1px solid rgba(8,205,248,0.3)
.scroll_tab_1
  _wh(100%, 40px)
  border-bottom 1px solid rgba(8,205,248,0.3)
  li
    float left
    width 16%
    _font(14px,40px,#78B1DE,,center)
    word-wrap break-word
    word-break break-all
    white-space nowrap
    padding 0 5px
    overflow hidden
    box-sizing border-box
    &:nth-child(6)
        width 20%
.scroll_container_1
  width 100%
  height calc(100% - 40px)
  overflow hidden
.scroll-ul_1
  li
    _wh(100%, 44px)
    border-bottom 1px solid rgba(8,205,248,0.3)
    &:nth-child(even)
      background rgba(1,24,52,0.60)
      box-shadow inset 0px 1px 0px 0px rgba(13,89,115,0.3)
    .scroll-ul_1_div
      float left
      _wh(16%, 44px)
      _fj(row, center)
      _font(14px, 16px, #fff,,center)
      word-wrap break-word
      word-break break-all
      // white-space nowrap
      padding 0 5px
      overflow hidden
      &:nth-child(6)
        width 20%
</style>
