rk
昨天 5841a771d4455d25adb185b8a0637c9ba498aab2
admin/src/views/business/admissionStatistics.vue
@@ -34,8 +34,8 @@
        <div class="main_content">
            <div class="type_wrap">
                <div class="title">全年入园人员趋势</div>
                <div class="echart1" ref="typeRef" v-if="info.cumulativeDataList"></div>
                <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-else>
                <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>
@@ -56,8 +56,8 @@
                        placeholder="请选择">
                    </el-date-picker>
                </div>
                <div class="echart2" ref="deptRef" v-if="listZB.length > 0"></div>
                <div style="width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;" v-else>
                <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>
@@ -83,29 +83,31 @@
                    </div>
                    <el-button type="primary" icon="el-icon-upload2" style="margin-left: 20px;" @click="daochu">导出</el-button>
                </div>
                <div class="list_head">
                    <div class="list_head_item" v-for="(item, index) in column" :key="index">{{item}}</div>
                </div>
                <div class="table_box">
                    <div class="list_content" v-for="(item, index) in list" :key="index">
                        <div class="list_head_item" v-for="(child, i) in item" :key="i">{{child}}</div>
                    </div>
                </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>
                <div class="list_head">
                    <div class="list_head_item">人员分类</div>
                    <div class="list_head_item">入园次数</div>
                </div>
                <div class="table_box">
                    <div class="list_content" v-for="(item, index) in info.yearSortList" :key="index">
                        <div class="list_head_item">{{item.name}}</div>
                        <div class="list_head_item">{{item.total}}</div>
                    </div>
                </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>
@@ -137,9 +139,9 @@
      this.value = `${year}-${month}`
      this.date1 = `${year}-${month}`
      this.getData()
      this.getRataLists()
      this.getReportLists()
    this.getData()
    this.getRataLists()
    this.getReportLists()
    },
    methods: {
      // 导出
@@ -165,10 +167,25 @@
      getReportLists() {
        getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 })
          .then(res => {
            if (res.length === 0) return
            this.column = res[0]
            this.list = res.slice(1, res.length);
            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);
          })
      },
      changeDateType() {
@@ -189,18 +206,24 @@
        getRataList({ dateStr: this.value, isGroupBy: this.isGroupBy, type: 1 })
          .then(res => {
            this.listZB = res
            this.$nextTick(() => {
            // this.$nextTick(() => {
            //   this.initDept()
            // })
            setTimeout(() => {
              this.initDept()
            })
            }, 1000)
          })
      },
      // 基础数据
      getData() {
        getInParkUserData({ isGroupBy: this.isGroupBy, type: 1 }).then(res => {
          this.info = res
          this.$nextTick(() => {
          // this.$nextTick(() => {
          //   this.initType()
          // })
          setTimeout(() => {
            this.initType()
          })
          }, 1000)
        })
      },
      // 全年入园车辆趋势
@@ -221,14 +244,40 @@
            containLabel: true
          },
          tooltip: {
            trigger: 'item'
            trigger: 'axis',
            axisPointer: {
              type: 'line'
            }
          },
          xAxis: {
            type: 'category',
            data: names
          },
          yAxis: {
            type: 'value'
            type: 'value',
            axisLine: {
              show: true
            },
            axisLabel: {
              formatter: function (value) {
                // 四舍五入到最近的整数
                return Math.round(value);
              }
            }
          },
          graphic: {
            elements: [
              {
                  type: 'text',
                  left: 'left',
                  top: 'top',
                  style: {
                    text: '人员数',
                    textAlign: 'center',
                    fill: '#333'
                  }
                }
            ]
          },
          series: [
            {
@@ -287,7 +336,9 @@
      initDept() {
        if (!this.listZB) return
        const myChart = echarts.init(document.querySelector('.echart2'))
        const dom = document.getElementById('echart2')
        console.log(dom)
        const myChart = echarts.init(dom)
        let data = this.listZB.map(item => {
          return {
@@ -298,7 +349,7 @@
        let option = {
          tooltip: {
            trigger: 'item'
            trigger: 'item',
          },
          legend: {
            show: false,
@@ -313,7 +364,7 @@
              labelLine: {
                normal: {
                  length: 30,
                  length2: 100,
                  length2: 70,
                }
              },
              label: {
@@ -455,7 +506,7 @@
                background-color: #ffffff;
                padding: 20px;
                box-sizing: border-box;
                flex: 1;
                width: 69%;
                .title {
                    display: flex;
                    align-items: center;
@@ -464,6 +515,14 @@
                        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%;
@@ -511,7 +570,7 @@
            }
            .main_table_list1 {
                margin-left: 10px;
                width: 520px;
                width: 30%;
                padding: 20px;
                box-sizing: border-box;
                flex-shrink: 0;
@@ -519,6 +578,14 @@
                .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 {
@@ -578,7 +645,7 @@
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 400px;
            height: 350px;
            .title {
                font-weight: 500;
@@ -598,6 +665,7 @@
                .echart1 {
                    width: 100%;
                    height: 100%;
                    margin-top: 18px;
                }
            }
@@ -609,7 +677,7 @@
                padding: 20px;
                box-sizing: border-box;
                margin-left: 10px;
                .echart2 {
                #echart2 {
                    width: 100%;
                    height: 100%;
                }