From 07c39bebefd1244dfccd83de82895e6c1f896e01 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 12 五月 2025 11:20:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/index.vue                        |   28 +++++++++
 admin/src/views/business/dangerStatic.vue        |    8 ++
 admin/src/views/business/admissionStatistics.vue |   62 ++++++++++++--------
 admin/src/views/business/carStatistics.vue       |   77 ++++++++++++++++---------
 4 files changed, 120 insertions(+), 55 deletions(-)

diff --git a/admin/src/views/business/admissionStatistics.vue b/admin/src/views/business/admissionStatistics.vue
index 91c4840..afcddff 100644
--- a/admin/src/views/business/admissionStatistics.vue
+++ b/admin/src/views/business/admissionStatistics.vue
@@ -84,14 +84,14 @@
                     <el-button type="primary" icon="el-icon-upload2" style="margin-left: 20px;" @click="daochu">瀵煎嚭</el-button>
                 </div>
                 <template v-if="column.length > 0">
-                    <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>
+                    <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>
@@ -99,16 +99,15 @@
                 <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>
@@ -168,14 +167,25 @@
       getReportLists() {
         getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 1 })
           .then(res => {
-            if (res.length === 0) {
-              this.column = []
-              this.list = []
-              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() {
@@ -496,7 +506,7 @@
                 background-color: #ffffff;
                 padding: 20px;
                 box-sizing: border-box;
-                flex: 1;
+                width: 69%;
                 .title {
                     display: flex;
                     align-items: center;
@@ -560,7 +570,7 @@
             }
             .main_table_list1 {
                 margin-left: 10px;
-                width: 520px;
+                width: 30%;
                 padding: 20px;
                 box-sizing: border-box;
                 flex-shrink: 0;
diff --git a/admin/src/views/business/carStatistics.vue b/admin/src/views/business/carStatistics.vue
index d179507..6d31df8 100644
--- a/admin/src/views/business/carStatistics.vue
+++ b/admin/src/views/business/carStatistics.vue
@@ -84,14 +84,14 @@
                     <el-button type="primary" style="margin-left: 20px;" icon="el-icon-upload2" @click="daochu">瀵煎嚭</el-button>
                 </div>
                 <template v-if="column.length > 0">
-                    <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>
+                    <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>
@@ -99,16 +99,15 @@
                 <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>
@@ -169,16 +168,39 @@
       getReportLists() {
         getReportList({ dateStr: this.date1, isGroupBy: this.isGroupBy, type: 0 })
             .then(res => {
-              if (res.length === 0) {
-                this.column = []
-                this.list = []
-                return
-              }
 
               this.column = res[0]
-              this.list = res.slice(1, res.length);
 
-              console.log(res)
+              this.list = res.slice(1).map(row => {
+                const obj = {};
+                this.column.forEach((header, index) => {
+                  obj[header] = row[index];
+                });
+                return obj;
+              });
+              // const keys = res.map(row => row[0]); // 鑾峰彇閿悕
+              // const values = res.map(row => row.slice(1, row.length)); // 鑾峰彇鍊�
+              //
+              // this.list = values[0].map((_, index) => {
+              //   return keys.reduce((obj, key, i) => {
+              //     obj[key] = values[i][index];
+              //     return obj;
+              //   }, {});
+              // });
+
+              console.log(this.column)
+              console.log(this.list)
+
+              // if (res.length === 0) {
+              //   this.column = []
+              //   this.list = []
+              //   return
+              // }
+              //
+              // this.column = res[0]
+              // this.list = res.slice(1, res.length);
+              //
+              // console.log(res)
             })
       },
       changeDateType() {
@@ -505,7 +527,7 @@
                 background-color: #ffffff;
                 padding: 20px;
                 box-sizing: border-box;
-                flex: 1;
+                width: 69%;
                 .title {
                     display: flex;
                     align-items: center;
@@ -568,8 +590,7 @@
                 }
             }
             .main_table_list1 {
-                margin-left: 10px;
-                width: 420px;
+                width: 30%;
                 padding: 20px;
                 box-sizing: border-box;
                 flex-shrink: 0;
diff --git a/admin/src/views/business/dangerStatic.vue b/admin/src/views/business/dangerStatic.vue
index d94b902..c14a486 100644
--- a/admin/src/views/business/dangerStatic.vue
+++ b/admin/src/views/business/dangerStatic.vue
@@ -287,7 +287,7 @@
           minInterval: 1,
           axisLine: {
             show: true,
-          },
+          }
         },
         series: [
           {
@@ -345,6 +345,12 @@
           type: 'value',
           axisLine: {
             show: true
+          },
+          axisLabel: {
+            formatter: function (value) {
+              // 鍥涜垗浜斿叆鍒版渶杩戠殑鏁存暟
+              return Math.round(value);
+            }
           }
         },
         series: [
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index bdc4cd3..cf2594d 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -513,6 +513,34 @@
       const myChart = echarts.init(document.getElementById('echart2'))
       const that = this
       myChart.setOption({
+        dataZoom: [
+          {
+            type: 'slider', // 婊戝姩鏉$被鍨�
+            orient: 'vertical',
+            left: 'left',
+            start: 0,       // 璧峰浣嶇疆锛堢櫨鍒嗘瘮锛�
+            end: 40,        // 缁撴潫浣嶇疆锛堢櫨鍒嗘瘮锛夛紝鎺у埗鍒濆鏄剧ず鑼冨洿
+            width: 4,
+            dataBackground: {
+              areaStyle: { opacity: 0 }, // 璁剧疆鑳屾櫙閫忔槑
+              lineStyle: { opacity: 0 } // 璁剧疆鑳屾櫙閫忔槑
+            },
+            moveOnMouseWheel: true,
+          },
+          {
+            type: 'inside',     // 鐢ㄤ簬鐩戝惉婊氳疆浜嬩欢
+            orient: 'vertical',
+            start: 0,
+            end: 40,
+            minSpan: 40,
+            dataBackground: {
+              areaStyle: { opacity: 0 } // 璁剧疆鑳屾櫙閫忔槑
+            },
+            maxSpan: 40,
+            zoomLock: true,     // 閿佸畾缂╂斁锛堜粎鍏佽骞崇Щ锛�
+            moveOnMouseWheel: true, // 鍚敤婊氳疆骞崇Щ
+          }
+        ],
         grid: {
           top: '4%',
           left: '2%',

--
Gitblit v1.9.3