ll
liukangdong
2024-10-24 6139494798e7f91d7864fff4ed09ce9a08395ece
screen/src/views/TaskEfficiency.vue
@@ -177,6 +177,21 @@
                <div class="num">1</div>
              </div>
            </div>
            <div class="echart_wrap">
              <div class="echart3" id="echart3"></div>
            </div>
            <div class="list">
              <div class="line" v-for=" i in 7">
                <div class="time_wrap">
                  <div class="time">12.40</div>
                  <div class="sp"></div>
                  <div class="dian"></div>
                </div>
                <div class="id_card">皖A12313</div>
                <div class="status">开始作业</div>
                <div class="desc">排队等待叫号</div>
              </div>
            </div>
          </div>
          <div class="right_box_two">
            <div class="com_header">
@@ -272,12 +287,291 @@
    myChart.resize()
  })
}
const initEchart2 = () => {
  const myChart = echarts.init(document.getElementById('echart2'))
  const option = {
    grid: {
      top: '32%',
      left: '0%',
      right: '7%',
      bottom: '0%',
      containLabel: true,
    },
    legend: {
      itemGap: 24,
      data: ['分时作业量', '累计作业量'],
      icon: 'circle',
      itemWidth: 10,
      itemHeight: 10,
      top: '6%',
      textStyle: {
        color: '#fff',
        borderColor: '#fff'
      },
    },
    tooltip: {
      trigger: "axis",
      axisPointer: {
        type: "line",
      },
      backgroundColor: "rgba(9, 24, 48, 0.5)",
      borderColor: "rgba(75, 253, 238, 0.4)",
      textStyle: {
        color: "#FFF",
      },
    },
    xAxis: [{
      nameGap: 5,
      type: 'category',
      axisLine: {
        show: true,
        lineStyle: {
          color: '#999'
        },
      },
      axisLabel: {
        color: '#9eaaba',
      },
      axisTick: {
        show: false,
      },
      data: ['2017', '2018', '2019', '2020', '2021', '2022', '2023',],
    }],
    yAxis: [
      {
        nameTextStyle: {
          color: '#9eaaba',
        },
        offset: 0,
        name: '万支',
        type: 'value',
        axisLabel: {
          show: true,
          color: "#9eaaba",
        },
        axisLine: {
          show: true,
        },
        splitLine: {
          show: true,
          lineStyle: {
            width: 1,
            color: "rgba(49,105,129,0.4)",
            type: 'dashed'
          }
        },
      },
      // {
      //   nameTextStyle: {
      //     color: '#9eaaba',
      //   },
      //   offset: 0,
      //   name: '万支',
      //   type: 'value',
      //   axisLabel: {
      //     show: true,
      //     color: "#9eaaba",
      //   },
      //   axisLine: {
      //     show: true,
      //   },
      //   splitLine: {
      //     show: true,
      //     lineStyle: {
      //       width: 1,
      //       color: "rgba(49,105,129,0.4)",
      //       type: 'dashed'
      //     }
      //   },
      // }
    ],
    series: [
      {
        name: '分时作业量',
        type: 'line',
        smooth: true,
        showAllSymbol: true,
        symbol: 'circle',
        symbolSize: 0,
        lineStyle: {
          color: '#2355f5',
          borderColor: '#2355f5'
        },
        label: {
          show: false,
          position: 'top',
          color: '#fff',
        },
        itemStyle: {
          color: "#2355f5",
          lineStyle: {
            width: 0,
            type: 'solid'
          }
        },
        areaStyle: {
          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
            {
              offset: 0,
              color: '#2355f5'
            },
            {
              offset: 1,
              color: 'rgba(14, 31, 65,0.1)'
            }
          ], false),
          shadowColor: 'rgba(124,248,255, 0)',
          shadowBlur: 20
        },
        data: [393, 438, 485, 631, 389, 224, 287]
      },
      {
        name: '累计作业量',
        type: 'bar',
        barWidth: 6,
        label: {
          show: false,
          position: 'top',
          color: '#fff',
        },
        itemStyle: {
          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
            {
              offset: 0,
              color: '#63d6fa'
            },
            {
              offset: 1,
              color: '#32718d'
            }
          ], false),
          lineStyle: {
            width: 1,
            type: 'solid'
          },
          barBorderRadius: [30, 30, 0, 0],
        },
        data: [393, 438, 485, 631, 689, 524, 687]
      },
    ]
  }
  myChart.setOption(option)
  window.addEventListener('resize', function () { // 执行
    myChart.resize()
  })
}
const initEchart3 = () => {
  const myChart = echarts.init(document.getElementById('echart3'))
  var colors = [
    new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
      offset: 0,
      color: '#7fe3fc'
    },
    {
      offset: 1,
      color: '#9ce9fc'
    }]),
    new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
      offset: 0,
      color: '#64d7fa'
    }, {
      offset: 1,
      color: '#7de3fc'
    }]),
    new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
      offset: 0,
      color: '#4679f6'
    }, {
      offset: 1,
      color: '#4674f6'
    }]),
    new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
      offset: 0,
      color: '#4370f2'
    }, {
      offset: 1,
      color: '#61d3f9'
    }])]
  const option = {
    color: colors,
    tooltip: {
      trigger: "axis",
      axisPointer: {
        type: "cross",
        label: {
          backgroundColor: "red"
        },
        lineStyle: {
          color: "#9eb2cb"
        }
      }
    },
    legend: {
      show: false,
      top: "top",
      left: "2%",
      textStyle: {
        color: "#000"
      },
      itemHeight: 2,
      data: ['预约数', '已进场', '已作业', '已离场']
    },
    series: [
      {
        type: 'funnel',
        left: '15%',
        right: '45%',
        top: '10%',
        bottom: '10%',
        minSize: '20%',
        maxSize: '80%',
        gap: 4,
        label: {
          show: true,
          position: 'outside',
          formatter: '{a|{b}}  {a|{c}%}',
          rich: {
            a: {
              color: '#869CC9',
              fontSize: 13
            },
          }
        },
        labelLine: {
          length: 80,
          lineStyle: {
            width: 1,
            type: 'dashed'
          }
        },
        itemStyle: {  //去掉默认白色边框线
          borderWidth: 0,
          borderColor: '#fff'
        },
        data: [
          { value: 100, name: '预约数', },
          { value: 50, name: '已进场' },
          { value: 20, name: '已作业' },
          { value: 30, name: '已离场' },
        ]
      },
    ]
  }
  myChart.setOption(option)
  window.addEventListener('resize', function () { // 执行
    myChart.resize()
  })
}
onMounted(() => {
  // initEnergy()
  initEchart1()
  initEchart2()
  initEchart3()
})
@@ -561,6 +855,70 @@
          }
        }
      }
      .echart_wrap {
        width: 100%;
        .echart3 {
          width: 100%;
          height: 160px;
        }
      }
      .list {
        margin: 0 20px 0;
        width: 100%;
        height: 222px;
        .line {
          display: flex;
          align-items: center;
          font-size: 12px;
          height: 33px;
          color: #D2E0FF;
          width: 100%;
          .time_wrap {
            display: flex;
            align-items: center;
            width: 52px;
            color: #FFFFFF;
            .time {
              width: 40px;
              height: 18px;
              line-height: 18px;
              text-align: center;
              background: #00A68E;
              border-radius: 2px;
            }
            .sp {
              width: 10px;
              height: 1px;
              background: #00A68E;
            }
            .dian {
              width: 4px;
              height: 4px;
              border-radius: 50%;
              background: #00A68E;
            }
          }
          .id_card {
            flex: 6;
            margin-left: 12px;
          }
          .status {
            flex: 5;
          }
          .desc {
            flex: 9;
          }
        }
      }
    }
    .right_box_two {
@@ -647,6 +1005,7 @@
                  margin-bottom: 4px;
                  display: flex;
                  align-items: center;
                  .xf {
                    width: 14px;
                    height: 14px;