<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_left_content">
                    <div class="status_wrap">
                        <div class="status_item">
                            <div class="status_tip green"></div>
                            <div class="status_name">运行中/困料中</div>
                        </div>
                        <div class="status_item">
                            <div class="status_tip yellow"></div>
                            <div class="status_name">待机/困料完成</div>
                        </div>
                        <div class="status_item">
                            <div class="status_tip gray"></div>
                            <div class="status_name">关机</div>
                        </div>
                        <div class="status_item">
                            <div class="status_tip red"></div>
                            <div class="status_name">故障/困料超时</div>
                        </div>
                    </div>
                    <div class="right_wrap"></div>
                </div>
                <div class="n_right_content">
                    <div class="item_wrap">
                        <div class="item_tip item_tip_bg_s">
                            <div class="item_tip_left">设备运行情况</div>
                        </div>
                        <div class="item_content">
                            <div id="home_echart_4" style="width: 100%; height: 100%;"></div>
                        </div>
                    </div>
                    <div class="item_wrap">
                        <div class="item_tip item_tip_bg_s">
                            <div class="item_tip_left">近一月故障次数前5设备</div>
                        </div>
                        <div class="item_content">
                            <div id="home_echart_5" style="width: 100%; height: 100%;"></div>
                        </div>
                    </div>
                    <div class="item_wrap">
                        <div class="item_tip item_tip_bg_s">
                            <div class="item_tip_left">最近10次设备故障</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>
                                </ul>
                                <div class="scroll_container_1">
                                    <vue-seamless-scroll :data="array1" :class-option="defaultOption1">
                                        <ul class="scroll-ul_1">
                                            <li v-for="(e, i) in array1" :key="i">
                                                <div class="scroll-ul_1_div">{{e.time}}</div>
                                                <div class="scroll-ul_1_div">{{e.code}}</div>
                                                <div class="scroll-ul_1_div">{{e.name}}</div>
                                                <div class="scroll-ul_1_div">{{e.info}}</div>
                                                <div class="scroll-ul_1_div">{{e.status}}</div>
                                            </li>
                                        </ul>
                                    </vue-seamless-scroll>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
export default {
  name: 'two',
  data () {
    return {
      myCharts1: '',
      myCharts2: '',
      array1: [{time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}, {time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}, {time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}, {time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}, {time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}, {time: '12-01 09:09:09', code: 'hn01', name: '混碾01', info: '机械故障 ', status: '故障'}]
    }
  },
  computed: {
    defaultOption1 () {
      return {
        step: 0.4, // 数值越大速度滚动越快
        limitMoveNum: 15, // 开始无缝滚动的数据量 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.setEchart1()
    this.setEchart2()
  },
  methods: {
    setEchart1 () {
      let colors = ['#30EBC9', '#E2BB0E', '#516282', '#F96700']
      let status = ['运行', '待机', '关机', '故障']
      let barName = ['混料', '压制', '干燥', '包装']
      let data = [[16, 14, 6, 9], [2, 1, 2, 3], [0, 0, 2, 2], [2, 1, 2, 3]]
      let option = {
        grid: {
          top: 50,
          left: 0,
          right: 0,
          bottom: 0,
          containLabel: true
        },
        legend: {
          textStyle: {
            color: '#fff',
            fontSize: 14,
            lineHeight: 14
          },
          itemGap: 30.86,
          itemWidth: 14.16,
          itemHeight: 7.38,
          data: status
        },
        color: colors,
        xAxis: {
          type: 'category',
          axisTick: {
            show: false
          },
          axisLine: {
            show: true,
            lineStyle: {
              width: 2,
              color: '#8FABBF'
            }
          },
          axisLabel: {
            interval: 0,
            textStyle: {
              color: '#8FABBF',
              fontSize: 16
            }
          },
          data: barName
        },
        yAxis: {
          type: 'value',
          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: []
      }
      for (let j = 0; j < status.length; j++) {
        option.series.push({
          name: status[j],
          type: 'bar',
          stack: '总数',
          barWidth: '20',
          label: {
            show: false,
            position: 'insideRight'
          },
          data: data[j]
          // itemStyle: {
          //   normal: {
          //     label: {
          //       show: true, // 开启显示
          //       position: 'top', // 在上方显示
          //       textStyle: {
          //         // 数值样式
          //         color: '#fff',
          //         fontSize: 14,
          //         fontWeight: 600
          //       }
          //     }
          //   }
          // }
        })
      }
      let echart = document.getElementById('home_echart_4')
      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 = ['机器5', '混碾5', '机器1', '混碾2', '压机1']
      let barData = [6, 7, 8, 9, 10]
      let maxNum = 0
      for (let i = 0; i < barData.length; i++) {
        if (barData[i] > maxNum) {
          maxNum = barData[i]
        }
      }

      var option = {
        grid: {
          top: 5,
          left: 0,
          right: 70,
          bottom: 0,
          containLabel: true
        },
        xAxis: {
          show: false,
          type: 'value'
        },
        yAxis: [{
          type: 'category',
          axisLabel: {
            show: true,
            textStyle: {
              color: '#8FABBF', // y轴字体颜色
              fontSize: '12'
            }
          },
          splitLine: {
            show: false
          },
          axisTick: {
            show: false
          },
          axisLine: {
            lineStyle: {
              type: [8, 4],
              dashOffset: 4,
              color: '#3D5266', // y轴线颜色
              opacity: 0.4
            }
          },
          data: barName
        }, {
          type: 'category',
          inverse: true,
          axisTick: 'none',
          axisLine: 'none',
          show: false,
          axisLabel: {
            textStyle: {
              color: '#ffffff',
              fontSize: 12
            },
            formatter: function (value) {
              return value + ' %'
            }
          },
          data: barData
        }],
        series: [
          {
            name: '故障次数',
            type: 'bar',
            zlevel: 1,
            itemStyle: {
              normal: {
                color: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [
                  {
                    offset: 0,
                    color: '#B68845',
                    opacity: 1
                  },
                  {
                    offset: 1,
                    color: 'rgba(134,98,45,0.25)',
                    opacity: 0.25
                  }
                ]),
                barBorderRadius: 0
              }
            },
            barWidth: 10,
            data: barData
          },
          {
            type: 'bar',
            barWidth: 10,
            barGap: '-100%',
            data: barData.map(function (item) {
              return {
                realValue: item,
                value: maxNum
              }
            }),
            label: {
              show: true,
              position: 'right',
              distance: 70,
              align: 'right',
              formatter: function (params) {
                return params.data.realValue + ' 台'
              },
              color: '#fff',
              fontSize: 15
            },
            itemStyle: {
              normal: {
                color: 'rgba(255, 255, 255, 0)'
              }
            }
          }
        ]
      }
      let echart = document.getElementById('home_echart_5')
      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()
        })
      }
    }
  }
}
</script>

<style lang="stylus" scoped>
@import '~@css/mixin'
.n_container
    _wh(100%, 100%)
.n_header
    _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
    _wh(100%, 92%)
    padding 40px 20px 20px 0
    _bis('../../../images/bg_content.jpg')
.n_body_container_wraper
    _wh(100%, 100%)
    _fj(row)
.n_left_content
    position relative
    _wh(calc(67% - 16px), 100%)
.n_right_content
    _wh(33%, 100%)
    background-color #070b1c
.item_wrap
    _wh(100%, 33%)
    +.item_wrap
        margin-top .5%
.item_tip
    _wh(100%, 32px)
    line-height 32px
    padding 0 10px
.item_tip_bg_s
    _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 5px
.right_wrap
    position relative
    z-index 1
    _wh(100%, 100%)
    _bis('../../../images/workshop/workshop_r.png')
.scroll_wrap
    _wh(100%, 100%)
    border 1px solid rgba(8,205,248,0.3)
.scroll_tab_1
  _wh(100%, 40px)
  border-bottom 1 solid rgba(8,205,248,0.3)
  li
    float left
    width 20%
    _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
.scroll_container_1
  width 100%
  height calc(100% - 40px)
  overflow hidden
.scroll-ul_1
  li
    _wh(100%, 44px)
    border-bottom 1 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(20%, 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
.status_wrap
    position absolute
    top -26px
    right 40px
    z-index 1
    _fj(row)
.status_item
    _fj(row)
    +.status_item
        margin-left 20px
.status_tip
    _wh(15px, 15px)
    border-radius 50%
    margin-right 10px
    box-shadow 0px 0px 4px 0px rgba(33,121,195,0.88)
.status_name
    _font(16px, 1, #fff)
.green
  background-color $green2
.yellow
  background-color $yellow
.gray
  background-color $gray1
.red
  background-color $orange
</style>
