doum
2026-03-06 d3c376f9aaf578e3870d9934fd30e902792f9c5d
admin/src/views/business/admissionStatistics.vue
@@ -1,123 +1,123 @@
<template>
    <div class="main_app1" v-if="info">
        <div class="main_head">
            <div class="main_head_title">
                <span>入园人员统计总览</span>
                <el-radio-group v-model="isGroupBy" @change="getData(), getRataLists(), getReportLists()">
                    <el-radio-button :label="0">按人次统计</el-radio-button>
                    <el-radio-button :label="1">按人员统计</el-radio-button>
                </el-radio-group>
            </div>
            <div class="main_head_bottom">
                <div class="main_head_item blue">
                    <span>{{info.todayTotal}}</span>
                    <span>今日</span>
                </div>
                <div class="main_head_item red">
                    <span>{{info.yesterdayTotal}}</span>
                    <span>昨日</span>
                </div>
                <div class="main_head_item yellow">
                    <span>{{info.weekTotal}}</span>
                    <span>本周</span>
                </div>
                <div class="main_head_item orange">
                    <span>{{info.monthTotal}}</span>
                    <span>本月</span>
                </div>
                <div class="main_head_item darkBlue">
                    <span>{{info.yearTotal}}</span>
                    <span>本年</span>
                </div>
            </div>
  <div class="main_app1" v-if="info">
    <div class="main_head">
      <div class="main_head_title">
        <span>入园人员统计总览</span>
        <el-radio-group v-model="isGroupBy" @change="getData(), getRataLists(), getReportLists()">
          <el-radio-button :label="0">按人次统计</el-radio-button>
          <el-radio-button :label="1">按人员统计</el-radio-button>
        </el-radio-group>
      </div>
      <div class="main_head_bottom">
        <div class="main_head_item blue">
          <span>{{info.todayTotal}}</span>
          <span>今日</span>
        </div>
        <div class="main_content">
            <div class="type_wrap">
                <div class="title">全年入园人员趋势</div>
                <div class="echart1" ref="typeRef" v-show="info.cumulativeDataList"></div>
                <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-show="!info.cumulativeDataList">
                    <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt="">
                </div>
            </div>
            <div class="dept_wrap">
                <div class="title">
                    <span>人员分类统计</span>
                    <el-radio-group style="margin-left: 43px;" v-model="dateType" @change="changeDateType">
                        <el-radio-button label="month">月度</el-radio-button>
                        <el-radio-button label="year">年度</el-radio-button>
                    </el-radio-group>
                    <el-date-picker
                        v-model="value"
                        :type="dateType"
                        :clearable="false"
                        @change="getRataLists()"
                        :value-format="dateType === 'month' ? 'yyyy-MM' : 'yyyy'"
                        style="margin-left: 10px; width: 130px;"
                        placeholder="请选择">
                    </el-date-picker>
                </div>
                <div id="echart2" v-show="listZB.length > 0"></div>
                <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-show="listZB.length === 0">
                    <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt="">
                </div>
            </div>
        <div class="main_head_item red">
          <span>{{info.yesterdayTotal}}</span>
          <span>昨日</span>
        </div>
        <div class="main_table">
            <div class="main_table_list">
                <div class="title" style="display: flex; align-items: center; justify-content: space-between;">
                    <div style="display: flex; align-items: center;">
                        <span>入园人员统计表</span>
                        <el-radio-group style="margin-left: 43px;" v-model="radio" @change="changeBB">
                            <el-radio-button label="month">月度</el-radio-button>
                            <el-radio-button label="year">年度</el-radio-button>
                        </el-radio-group>
                        <el-date-picker
                            v-model="date1"
                            :type="radio"
                            :clearable="false"
                            @change="getReportLists()"
                            :value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'"
                            style="margin-left: 10px; width: 130px;"
                            placeholder="请选择">
                        </el-date-picker>
                    </div>
                    <el-button type="primary" icon="el-icon-upload2" style="margin-left: 20px;" @click="daochu">导出</el-button>
                </div>
                <template v-if="column.length > 0">
                    <el-table
                        style="width: 100%; margin-top: 15px;"
                        :data="list"
                        :header-row-style="{ backgroundColor: '#F7F7F7' }"
                        border
                    >
                        <el-table-column :prop="item" :label="item" align="center" :fixed="index === 0 ? true : index === column.length - 1 ? 'right' : false" v-for="(item, index) in column" :key="index"></el-table-column>
                    </el-table>
                </template>
                <div class="list_wu" v-else>暂无数据</div>
            </div>
            <div class="main_table_list1">
                <div class="title">
                    <span>本年人员累计入园统计</span>
                </div>
                <el-table
                    style="width: 100%; margin-top: 15px;"
                    :data="info.yearSortList"
                    :header-row-style="{ backgroundColor: '#F7F7F7' }"
                    border
                >
                    <el-table-column prop="name" label="人员分类" align="center"></el-table-column>
                    <el-table-column prop="total" label="入园次数" align="center"></el-table-column>
                </el-table>
            </div>
        <div class="main_head_item yellow">
          <span>{{info.weekTotal}}</span>
          <span>本周</span>
        </div>
        <div class="main_head_item orange">
          <span>{{info.monthTotal}}</span>
          <span>本月</span>
        </div>
        <div class="main_head_item darkBlue">
          <span>{{info.yearTotal}}</span>
          <span>本年</span>
        </div>
      </div>
    </div>
    <div class="main_content">
      <div class="type_wrap">
        <div class="title">全年入园人员趋势</div>
        <div class="echart1" ref="typeRef" v-show="info.cumulativeDataList"></div>
        <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-show="!info.cumulativeDataList">
          <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt="">
        </div>
      </div>
      <div class="dept_wrap">
        <div class="title">
          <span>人员分类统计</span>
          <el-radio-group style="margin-left: 43px;" v-model="dateType" @change="changeDateType">
            <el-radio-button label="month">月度</el-radio-button>
            <el-radio-button label="year">年度</el-radio-button>
          </el-radio-group>
          <el-date-picker
              v-model="value"
              :type="dateType"
              :clearable="false"
              @change="getRataLists()"
              :value-format="dateType === 'month' ? 'yyyy-MM' : 'yyyy'"
              style="margin-left: 10px; width: 130px;"
              placeholder="请选择">
          </el-date-picker>
        </div>
        <div id="echart2" v-show="listZB.length > 0"></div>
        <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-show="listZB.length === 0">
          <img style="width: 200px;" src="@/assets/images/default_homeimg.png" alt="">
        </div>
      </div>
    </div>
    <div class="main_table">
      <div class="main_table_list">
        <div class="title" style="display: flex; align-items: center; justify-content: space-between;">
          <div style="display: flex; align-items: center;">
            <span>入园人员统计表</span>
            <el-radio-group style="margin-left: 43px;" v-model="radio" @change="changeBB">
              <el-radio-button label="month">月度</el-radio-button>
              <el-radio-button label="year">年度</el-radio-button>
            </el-radio-group>
            <el-date-picker
                v-model="date1"
                :type="radio"
                :clearable="false"
                @change="getReportLists()"
                :value-format="radio === 'month' ? 'yyyy-MM' : 'yyyy'"
                style="margin-left: 10px; width: 130px;"
                placeholder="请选择">
            </el-date-picker>
          </div>
          <el-button type="primary" icon="el-icon-upload2" style="margin-left: 20px;" @click="daochu">导出</el-button>
        </div>
        <template v-if="column.length > 0">
          <el-table
              style="width: 100%; margin-top: 15px;"
              :data="list"
              header-row-style="background-color: #F7F7F7;"
              border
          >
            <el-table-column :prop="item" :label="item" align="center" :fixed="index === 0 ? true : index === column.length - 1 ? 'right' : false" v-for="(item, index) in column" :key="index"></el-table-column>
          </el-table>
        </template>
        <div class="list_wu" v-else>暂无数据</div>
      </div>
      <div class="main_table_list1">
        <div class="title">
          <span>本年人员累计入园统计</span>
        </div>
        <el-table
            style="width: 100%; margin-top: 15px;"
            :data="info.yearSortList"
            header-row-style="background-color: #F7F7F7;"
            border
        >
          <el-table-column prop="name" label="人员分类" align="center"></el-table-column>
          <el-table-column prop="total" label="入园次数" align="center"></el-table-column>
        </el-table>
      </div>
    </div>
  </div>
</template>
<script>
import * as echarts from 'echarts'
import { getInParkUserData, getRataList, getReportList, reportExportExcel } from '@/api/business'
export default {
  data () {
  data() {
    return {
      info: null,
      isGroupBy: 0,
@@ -132,10 +132,10 @@
      list: []
    }
  },
  mounted () {
    var now = new Date()
    var year = now.getFullYear()
    var month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`
  mounted() {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`;
    this.value = `${year}-${month}`
    this.date1 = `${year}-${month}`
@@ -145,79 +145,80 @@
  },
  methods: {
    // 导出
    daochu () {
    daochu() {
      reportExportExcel({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 }).then(res => {
        this.download(res)
      })
    },
    changeBB () {
    changeBB() {
      if (this.radio === 'month') {
        const now = new Date()
        const year = now.getFullYear()
        const month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`
        let now = new Date();
        let year = now.getFullYear();
        let month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`;
        this.date1 = `${year}-${month}`
      } else {
        const now = new Date()
        const year = now.getFullYear()
        let now = new Date();
        let year = now.getFullYear();
        this.date1 = `${year}`
      }
      this.getReportLists()
    },
    // 入园车辆统计表
    getReportLists () {
    getReportLists() {
      getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 })
        .then(res => {
          if (!res || res.length === 0) {
            this.column = []
            this.list = []
            return
          }
          this.column = res[0]
          this.list = res.slice(1).map(row => {
            const obj = {}
            this.column.forEach((header, index) => {
              obj[header] = row[index]
            })
            return obj
          .then(res => {
            if (!res || res.length === 0) {
              this.column = []
              this.list = []
              return
            }
            this.column = res[0]
            this.list = res.slice(1).map(row => {
              const obj = {};
              this.column.forEach((header, index) => {
                obj[header] = row[index];
              });
              return obj;
            });
            // if (res.length === 0) {
            //   this.column = []
            //   this.list = []
            //   return
            // }
            //
            // this.column = res[0]
            // this.list = res.slice(1, res.length);
          })
          // if (res.length === 0) {
          //   this.column = []
          //   this.list = []
          //   return
          // }
          //
          // this.column = res[0]
          // this.list = res.slice(1, res.length);
        })
    },
    changeDateType () {
    changeDateType() {
      if (this.dateType === 'month') {
        const now = new Date()
        const year = now.getFullYear()
        const month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`
        let now = new Date();
        let year = now.getFullYear();
        let month = now.getMonth() + 1 > 9 ? now.getMonth() + 1 : `0${now.getMonth() + 1}`;
        this.value = `${year}-${month}`
      } else {
        const now = new Date()
        const year = now.getFullYear()
        let now = new Date();
        let year = now.getFullYear();
        this.value = `${year}`
      }
      this.getRataLists()
    },
    // 车辆分类统计
    getRataLists () {
    getRataLists() {
      getRataList({ dateStr: this.value, isGroupBy: this.isGroupBy, type: 1 })
        .then(res => {
          this.listZB = res
          // this.$nextTick(() => {
          //   this.initDept()
          // })
          setTimeout(() => {
            this.initDept()
          }, 1000)
        })
          .then(res => {
            this.listZB = res
            // this.$nextTick(() => {
            //   this.initDept()
            // })
            setTimeout(() => {
              this.initDept()
            }, 1000)
          })
    },
    // 基础数据
    getData () {
    getData() {
      getInParkUserData({ isGroupBy: this.isGroupBy, type: 1 }).then(res => {
        this.info = res
        // this.$nextTick(() => {
@@ -229,15 +230,15 @@
      })
    },
    // 全年入园车辆趋势
    initType () {
    initType() {
      if (!this.info.cumulativeDataList) return
      const myChart = echarts.init(document.querySelector('.echart1'))
      const names = this.info.cumulativeDataList.map(item => item.name)
      const datas = this.info.cumulativeDataList.map(item => item.total)
      let names = this.info.cumulativeDataList.map(item => item.name)
      let datas = this.info.cumulativeDataList.map(item => item.total)
      const option = {
      let option = {
        grid: {
          left: '0%',
          right: '5%',
@@ -263,7 +264,7 @@
          axisLabel: {
            formatter: function (value) {
              // 四舍五入到最近的整数
              return Math.round(value)
              return Math.round(value);
            }
          }
        },
@@ -335,30 +336,30 @@
      })
    },
    // 车辆分类统计
    initDept () {
    initDept() {
      if (!this.listZB) return
      const dom = document.getElementById('echart2')
      console.log(dom)
      const myChart = echarts.init(dom)
      const data = this.listZB.map(item => {
      let data = this.listZB.map(item => {
        return {
          value: item.total,
          name: item.name
        }
      })
      const option = {
      let option = {
        tooltip: {
          trigger: 'item'
          trigger: 'item',
        },
        legend: {
          show: false,
          orient: 'vertical',
          left: 'left'
        },
        series: [
        series : [
          {
            name: '访问来源',
            type: 'pie',
@@ -366,11 +367,11 @@
            labelLine: {
              normal: {
                length: 30,
                length2: 70
                length2: 70,
              }
            },
            label: {
              formatter: '{a|{b}} {d}%',
              formatter: "{a|{b}} {d}%",
              rich: {
                a: {
                  color: '#333333',
@@ -378,7 +379,7 @@
                  fontWeight: 500
                }
              },
              padding: [0, -50, 20, -100]
              padding: [0,-50,20,-100]
            },
            data: data
          }
@@ -389,10 +390,10 @@
        myChart.resize()
      })
    },
    initDept3 () {
    initDept3() {
      const myChart = echarts.init(document.querySelector('#echart3'))
      const option = {
      let option = {
        grid: {
          left: '5%',
          right: '10%',
@@ -424,265 +425,266 @@
</script>
<style lang="scss" scoped>
    .main_app1 {
        width: 100%;
        height: calc(100% - 44px);
        overflow-y: auto;
        overflow-x: hidden;
        padding: 15px;
        box-sizing: border-box;
        background-color: #F4F7FC;
        .main_head {
            width: 100%;
            display: flex;
            align-items: center;
            flex-direction: column;
            margin-bottom: 10px;
            background-color: #ffffff;
            padding: 20px;
            box-sizing: border-box;
            .main_head_title {
                width: 100%;
                display: flex;
                align-items: center;
                margin-bottom: 20px;
                span {
                    font-weight: 500;
                    font-size: 18px;
                    color: #222222;
                    margin-right: 30px;
                }
            }
            .main_head_bottom {
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: space-between;
                .blue {
                    border-left: 8px solid #12BB8B;
                }
                .red {
                    border-left: 8px solid #F6CF46;
                }
                .yellow {
                    border-left: 8px solid #5DC9FB;
                }
                .orange {
                    border-left: 8px solid #FF9E56;
                }
                .darkBlue {
                    border-left: 8px solid #6B6EFF;
                }
                .main_head_item {
                    width: 19%;
                    height: 112px;
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    justify-content: center;
                    box-sizing: border-box;
                    border-radius: 5px;
                    background-color: #F4F7FC;
                    span {
                        &:nth-child(1) {
                            font-weight: 600;
                            font-size: 30px;
                            color: #222222;
                        }
                        &:nth-child(2) {
                            font-weight: 400;
                            font-size: 14px;
                            color: #222222;
                        }
                    }
                }
            }
        }
        .main_table {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            margin-top: 10px;
            .main_table_list {
                background-color: #ffffff;
                padding: 20px;
                box-sizing: border-box;
                width: 69%;
                .title {
                    display: flex;
                    align-items: center;
                    span {
                        font-weight: 500;
                        font-size: 18px;
                        color: #222222;
                    }
                }
                .list_wu {
                    width: 100%;
                    height: 100px;
                    line-height: 100px;
                    text-align: center;
                    font-size: 16px;
                    color: #222222;
                }
                .list_head {
                    width: 100%;
                    height: 50px;
                    display: flex;
                    align-items: center;
                    background-color: #F7F7F7;
                    border-left: 1px solid #DFE2E8;
                    border-top: 1px solid #DFE2E8;
                    margin-top: 15px;
                    .list_head_item {
                        flex: 1;
                        height: 100%;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        font-size: 13px;
                        color: #222222;
                        font-weight: 500;
                        border-right: 1px solid #DFE2E8;
                    }
                }
                .table_box {
                    width: 100%;
                    border-bottom: 1px solid #DFE2E8;
                    .list_content {
                        width: 100%;
                        height: 50px;
                        display: flex;
                        align-items: center;
                        border-left: 1px solid #DFE2E8;
                        border-top: 1px solid #DFE2E8;
                        .list_head_item {
                            flex: 1;
                            height: 100%;
                            display: flex;
                            border-right: 1px solid #DFE2E8;
                            align-items: center;
                            justify-content: center;
                            font-size: 13px;
                            color: #222222;
                        }
                    }
                }
            }
            .main_table_list1 {
                margin-left: 10px;
                width: 30%;
                padding: 20px;
                box-sizing: border-box;
                flex-shrink: 0;
                background-color: #ffffff;
                .title {
                    font-weight: 500;
                    font-size: 18px;
                    color: #222222;
                }
                .list_wu {
                    width: 100%;
                    height: 100px;
                    line-height: 100px;
                    text-align: center;
                    font-size: 16px;
                    color: #222222;
                }
                .list_head {
                    width: 100%;
                    height: 50px;
                    display: flex;
                    align-items: center;
                    background-color: #F7F7F7;
                    border-left: 1px solid #DFE2E8;
                    border-top: 1px solid #DFE2E8;
                    margin-top: 15px;
                    .list_head_item {
                        flex: 1.8;
                        height: 100%;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        font-size: 13px;
                        color: #222222;
                        font-weight: 500;
                        border-right: 1px solid #DFE2E8;
                        &:last-child {
                            flex: 1;
                        }
                    }
                }
                .table_box {
                    width: 100%;
                    border-bottom: 1px solid #DFE2E8;
                    .list_content {
                        width: 100%;
                        height: 50px;
                        display: flex;
                        align-items: center;
                        border-left: 1px solid #DFE2E8;
                        border-top: 1px solid #DFE2E8;
                        .list_head_item {
                            flex: 1.8;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            border-right: 1px solid #DFE2E8;
                            justify-content: center;
                            text-align: center;
                            font-size: 13px;
                            color: #222222;
                            &:last-child {
                                flex: 1;
                            }
                        }
                    }
                }
            }
        }
        .main_content {
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 350px;
            .title {
                font-weight: 500;
                font-size: 18px;
                color: #222222;
            }
            .type_wrap {
                flex: 1;
                height: 100%;
                background-color: #ffffff;
                padding: 20px;
                box-sizing: border-box;
                /*border-right: 12px solid #f7f7f7;*/
                .echart1 {
                    width: 100%;
                    height: 100%;
                    margin-top: 18px;
                }
            }
            .dept_wrap {
                width: 520px;
                flex-shrink: 0;
                height: 100%;
                background-color: #ffffff;
                padding: 20px;
                box-sizing: border-box;
                margin-left: 10px;
                #echart2 {
                    width: 100%;
                    height: 100%;
                }
            }
        }
.main_app1 {
  width: 100%;
  height: calc(100% - 44px);
  overflow-y: auto;
  overflow-x: hidden;
  padding: 15px;
  box-sizing: border-box;
  background-color: #F4F7FC;
  .main_head {
    width: 100%;
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-bottom: 10px;
    background-color: #ffffff;
    padding: 20px;
    box-sizing: border-box;
    .main_head_title {
      width: 100%;
      display: flex;
      align-items: center;
      margin-bottom: 20px;
      span {
        font-weight: 500;
        font-size: 18px;
        color: #222222;
        margin-right: 30px;
      }
    }
    .main_head_bottom {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      .blue {
        border-left: 8px solid #12BB8B;
      }
      .red {
        border-left: 8px solid #F6CF46;
      }
      .yellow {
        border-left: 8px solid #5DC9FB;
      }
      .orange {
        border-left: 8px solid #FF9E56;
      }
      .darkBlue {
        border-left: 8px solid #6B6EFF;
      }
      .main_head_item {
        width: 19%;
        height: 112px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        border-radius: 5px;
        background-color: #F4F7FC;
        span {
          &:nth-child(1) {
            font-weight: 600;
            font-size: 30px;
            color: #222222;
          }
          &:nth-child(2) {
            font-weight: 400;
            font-size: 14px;
            color: #222222;
          }
        }
      }
    }
  }
  .main_table {
    display: flex;
    align-items: start;
    justify-content: space-between;
    margin-top: 10px;
    .main_table_list {
      background-color: #ffffff;
      padding: 20px;
      box-sizing: border-box;
      width: 69%;
      .title {
        display: flex;
        align-items: center;
        span {
          font-weight: 500;
          font-size: 18px;
          color: #222222;
        }
      }
      .list_wu {
        width: 100%;
        height: 100px;
        line-height: 100px;
        text-align: center;
        font-size: 16px;
        color: #222222;
      }
      .list_head {
        width: 100%;
        height: 50px;
        display: flex;
        align-items: center;
        background-color: #F7F7F7;
        border-left: 1px solid #DFE2E8;
        border-top: 1px solid #DFE2E8;
        margin-top: 15px;
        .list_head_item {
          flex: 1;
          height: 100%;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 13px;
          color: #222222;
          font-weight: 500;
          border-right: 1px solid #DFE2E8;
        }
      }
      .table_box {
        width: 100%;
        border-bottom: 1px solid #DFE2E8;
        .list_content {
          width: 100%;
          height: 50px;
          display: flex;
          align-items: center;
          border-left: 1px solid #DFE2E8;
          border-top: 1px solid #DFE2E8;
          .list_head_item {
            flex: 1;
            height: 100%;
            display: flex;
            border-right: 1px solid #DFE2E8;
            align-items: center;
            justify-content: center;
            font-size: 13px;
            color: #222222;
          }
        }
      }
    }
    .main_table_list1 {
      margin-left: 10px;
      width: 30%;
      padding: 20px;
      box-sizing: border-box;
      flex-shrink: 0;
      background-color: #ffffff;
      .title {
        font-weight: 500;
        font-size: 18px;
        color: #222222;
      }
      .list_wu {
        width: 100%;
        height: 100px;
        line-height: 100px;
        text-align: center;
        font-size: 16px;
        color: #222222;
      }
      .list_head {
        width: 100%;
        height: 50px;
        display: flex;
        align-items: center;
        background-color: #F7F7F7;
        border-left: 1px solid #DFE2E8;
        border-top: 1px solid #DFE2E8;
        margin-top: 15px;
        .list_head_item {
          flex: 1.8;
          height: 100%;
          display: flex;
          align-items: center;
          justify-content: center;
          font-size: 13px;
          color: #222222;
          font-weight: 500;
          border-right: 1px solid #DFE2E8;
          &:last-child {
            flex: 1;
          }
        }
      }
      .table_box {
        width: 100%;
        border-bottom: 1px solid #DFE2E8;
        .list_content {
          width: 100%;
          height: 50px;
          display: flex;
          align-items: center;
          border-left: 1px solid #DFE2E8;
          border-top: 1px solid #DFE2E8;
          .list_head_item {
            flex: 1.8;
            height: 100%;
            display: flex;
            align-items: center;
            border-right: 1px solid #DFE2E8;
            justify-content: center;
            text-align: center;
            font-size: 13px;
            color: #222222;
            &:last-child {
              flex: 1;
            }
          }
        }
      }
    }
  }
  .main_content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 350px;
    .title {
      font-weight: 500;
      font-size: 18px;
      color: #222222;
    }
    .type_wrap {
      flex: 1;
      height: 100%;
      background-color: #ffffff;
      padding: 20px;
      box-sizing: border-box;
      /*border-right: 12px solid #f7f7f7;*/
      .echart1 {
        width: 100%;
        height: 100%;
        margin-top: 18px;
      }
    }
    .dept_wrap {
      width: 520px;
      flex-shrink: 0;
      height: 100%;
      background-color: #ffffff;
      padding: 20px;
      box-sizing: border-box;
      margin-left: 10px;
      #echart2 {
        width: 100%;
        height: 100%;
      }
    }
  }
}
</style>