From 7e33a9c7945c8643095c4eaf008e57683e5dc90d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 20 三月 2024 10:36:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/permission.js                                      |    2 
 vue.config.js                                          |    2 
 src/views/system/data-manage/index.vue                 |  119 +++++++-------
 src/views/screen/components/screen-wrapper/index.vue   |    9 
 src/views/screen/components/select-item/index.vue      |   34 +++-
 src/router/index.js                                    |    3 
 src/views/screen/components/screen-car/index.vue       |   21 +
 src/views/screen/components/screen-examine/index.vue   |    2 
 src/views/screen/components/screen-face/index.vue      |   22 +-
 src/views/system/work-order/index.vue                  |   79 +++++++++
 src/views/screen/components/screen-video/index.vue     |   26 +-
 src/main.js                                            |   38 ++++
 src/utils/format.js                                    |    3 
 src/views/screen/components/screen-title/index.vue     |    2 
 src/views/screen/components/screen-detection/index.vue |    2 
 src/views/system/vehicle-data-monitor/index.vue        |   87 +++++++---
 src/views/system/report/index.vue                      |   22 ++
 17 files changed, 329 insertions(+), 144 deletions(-)

diff --git a/src/main.js b/src/main.js
index 9ede569..7944e09 100644
--- a/src/main.js
+++ b/src/main.js
@@ -42,6 +42,9 @@
 import VScaleScreen from 'v-scale-screen'
 import dataV from '@jiaminghi/data-view'
 
+import gsap from 'gsap';
+import { formatNumber } from './utils/format';
+
 
 
 // 鍏ㄥ眬鏂规硶鎸傝浇
@@ -87,6 +90,41 @@
 
 Vue.config.productionTip = true
 
+
+// 鍏ㄥ眬鎸囦护
+Vue.directive('roll', {
+  inserted: (el, binding) => {
+    let target = {
+      count: 0
+    };
+    let finalNumber = el.innerText;
+    gsap.to(target, {
+      count: finalNumber,
+      duration: 1,
+      ease: "power2.out",
+      onUpdate: () => {
+        el.innerText = formatNumber(target.count.toFixed(0));
+      }
+    })
+
+  },
+  update: (el, binding) => {
+    let target = {
+      count: el.innerText
+    };
+    let finalNumber = el.getAttribute('value');
+    gsap.to(target, {
+      count: finalNumber,
+      duration: 1,
+      ease: "power2.out",
+      onUpdate: () => {
+        el.innerText = formatNumber(target.count.toFixed(0));
+      }
+    })
+  }
+})
+
+
 new Vue({
   el: '#app',
   router,
diff --git a/src/permission.js b/src/permission.js
index 462668d..45c6285 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -8,7 +8,7 @@
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/register', '/screen']
+const whiteList = ['/login', '/register']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()
diff --git a/src/router/index.js b/src/router/index.js
index 292ae17..8850356 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -89,11 +89,8 @@
   },
   {
     path: '/screen',
-    component: Layout,
     hidden: true,
     component: () => import('@/views/screen/index'),
-    name: 'Profile',
-    meta: { title: '澶у睆淇℃伅', icon: 'user' }
   },
   {
     path: '/user',
diff --git a/src/utils/format.js b/src/utils/format.js
new file mode 100644
index 0000000..1d6c37a
--- /dev/null
+++ b/src/utils/format.js
@@ -0,0 +1,3 @@
+export const formatNumber = (value) => {
+  return new Intl.NumberFormat('en-US').format(value);
+}
\ No newline at end of file
diff --git a/src/views/screen/components/screen-car/index.vue b/src/views/screen/components/screen-car/index.vue
index a8a6446..2ae312c 100644
--- a/src/views/screen/components/screen-car/index.vue
+++ b/src/views/screen/components/screen-car/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="car-container">
-    <wrapper-title :title="'杞﹁締璁惧鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'杞﹁締璁惧鏁版嵁'" :path="'/monitorServe/car'"></wrapper-title>
 
     <div class="car-content">
       <div class="data-plane">
@@ -11,7 +11,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧鎬绘暟</div>
-              <div class="data-num">{{ formatNumber(1123) }}</div>
+              <div class="data-num type1" v-roll>{{ 1123 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -23,7 +23,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧姝e父鏁�</div>
-              <div class="data-num">{{ formatNumber(200000) }}</div>
+              <div class="data-num type2" v-roll>{{ 2000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -35,7 +35,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧寮傚父鏁�</div>
-              <div class="data-num">{{ formatNumber(112313141111) }}</div>
+              <div class="data-num type3" v-roll>{{ 1000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -63,9 +63,6 @@
   },
 
   methods: {
-    formatNumber(value) {
-      return new Intl.NumberFormat('en-US').format(value);
-    }
   },
 
   mounted() {
@@ -114,6 +111,16 @@
           font-size: 24px;
           color: #fff;
         }
+
+        .type1 {
+          color: #287cfa;
+        }
+        .type2 {
+          color: #0cd81d;
+        }
+        .type3 {
+          color: #e20c0c
+        }
       }
     }
   }
diff --git a/src/views/screen/components/screen-detection/index.vue b/src/views/screen/components/screen-detection/index.vue
index 714f076..1eccea9 100644
--- a/src/views/screen/components/screen-detection/index.vue
+++ b/src/views/screen/components/screen-detection/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="detection-container">
-    <wrapper-title :title="'杩愯鐩戞帶鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'杩愯鐩戞帶鏁版嵁'" :path="'/dataManage'"></wrapper-title>
 
     <div class="detection-content">
       <div class="water-item">
diff --git a/src/views/screen/components/screen-examine/index.vue b/src/views/screen/components/screen-examine/index.vue
index 5447573..f48d208 100644
--- a/src/views/screen/components/screen-examine/index.vue
+++ b/src/views/screen/components/screen-examine/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="examine-container">
-    <wrapper-title :title="'鑰冩牳鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'鑰冩牳鏁版嵁'" :path="'/examine/check-rule'"></wrapper-title>
     <div class="examine-content">
       <div class="examine-wrapper">
         <examine-chart class="wrapper-item"></examine-chart>
diff --git a/src/views/screen/components/screen-face/index.vue b/src/views/screen/components/screen-face/index.vue
index cf1a29a..488816b 100644
--- a/src/views/screen/components/screen-face/index.vue
+++ b/src/views/screen/components/screen-face/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="face-container">
-    <wrapper-title :title="'浜鸿劯璁惧鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'浜鸿劯璁惧鏁版嵁'" :path="'/monitorServe/face'"></wrapper-title>
 
     <div class="face-content">
       <div class="data-plane">
@@ -11,7 +11,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧鎬绘暟</div>
-              <div class="data-num">{{ formatNumber(1123) }}</div>
+              <div class="data-num type1" v-roll>{{ 1123 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -23,7 +23,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧姝e父鏁�</div>
-              <div class="data-num">{{ formatNumber(200000) }}</div>
+              <div class="data-num type2" v-roll>{{ 2000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -35,7 +35,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧寮傚父鏁�</div>
-              <div class="data-num">{{ formatNumber(112313141111) }}</div>
+              <div class="data-num type3" v-roll>{{ 1000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -62,10 +62,6 @@
   },
 
   methods: {
-
-    formatNumber(value) {
-      return new Intl.NumberFormat('en-US').format(value);
-    }
   },
 
   mounted() {
@@ -113,6 +109,16 @@
           font-size: 24px;
           color: #fff;
         }
+
+        .type1 {
+          color: #287cfa;
+        }
+        .type2 {
+          color: #0cd81d;
+        }
+        .type3 {
+          color: #e20c0c
+        }
       }
     }
   }
diff --git a/src/views/screen/components/screen-title/index.vue b/src/views/screen/components/screen-title/index.vue
index 181f81d..7dd1f76 100644
--- a/src/views/screen/components/screen-title/index.vue
+++ b/src/views/screen/components/screen-title/index.vue
@@ -5,7 +5,7 @@
         <img src="@/assets/images/screen/header_bg.png" class="width-img" alt="">
       </div>
       <div class="header-text">
-        鑷础甯傝繍缁磋�冩牳鍙鍖栧ぇ灞�
+        鑷础甯傝繍缁磋�冩牳鍙鍖�
       </div>
     </div>
   </div>
diff --git a/src/views/screen/components/screen-video/index.vue b/src/views/screen/components/screen-video/index.vue
index 3fa66d1..d97042f 100644
--- a/src/views/screen/components/screen-video/index.vue
+++ b/src/views/screen/components/screen-video/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="video-container">
-    <wrapper-title :title="'瑙嗛璁惧鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'瑙嗛璁惧鏁版嵁'" :path="'/monitorServe/video'"></wrapper-title>
 
     <div class="video-content">
       <div class="data-plane">
@@ -11,7 +11,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧鎬绘暟</div>
-              <div class="data-num">{{ formatNumber(1123) }}</div>
+              <div class="data-num type1" v-roll>{{ 1123 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -23,7 +23,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧姝e父鏁�</div>
-              <div class="data-num">{{ formatNumber(200000) }}</div>
+              <div class="data-num type2" v-roll>{{ 2000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -35,7 +35,7 @@
             </div>
             <div class="data-info">
               <div class="data-lable">璁惧寮傚父鏁�</div>
-              <div class="data-num">{{ formatNumber(112313141111) }}</div>
+              <div class="data-num type3" v-roll>{{ 1000 }}</div>
             </div>
           </div>
         </dv-border-box-13>
@@ -54,18 +54,10 @@
   },
   data() {
     return {
-      dataList: {
-        state: { '01:00': 1000, '02:00': 2131, '03:00': 1233, '04:00': 2132, '05:00': 3211, '06:00': 213, '07:00': 123, '08:00': 566 },
-        state2: { '01:00': 900, '02:00': 1131, '03:00': 1533, '04:00': 2132, '05:00': 3011, '06:00': 13, '07:00': 113, '08:00': 566 },
-      },
     }
   },
 
   methods: {
-
-    formatNumber(value) {
-      return new Intl.NumberFormat('en-US').format(value);
-    }
   },
 
   mounted() {
@@ -113,6 +105,16 @@
           font-size: 24px;
           color: #fff;
         }
+
+        .type1 {
+          color: #287cfa;
+        }
+        .type2 {
+          color: #0cd81d;
+        }
+        .type3 {
+          color: #e20c0c
+        }
       }
     }
   }
diff --git a/src/views/screen/components/screen-wrapper/index.vue b/src/views/screen/components/screen-wrapper/index.vue
index 7bdc799..6cbb50e 100644
--- a/src/views/screen/components/screen-wrapper/index.vue
+++ b/src/views/screen/components/screen-wrapper/index.vue
@@ -2,7 +2,7 @@
   <div class="wrapper-container">
     <select-item></select-item>
     <div class="return-button">
-      <el-button type="primary">杩斿洖</el-button>
+      <el-button type="primary" @click="returnPath">杩斿洖</el-button>
     </div>
     <div class="wrapper-content">
       <div class="left-container wrapper">
@@ -41,6 +41,11 @@
     ScreenCar,
     ScreenMap
   },
+  methods: {
+    returnPath() {
+      this.$router.go(-1);
+    }
+  }
 }
 </script>
 
@@ -48,7 +53,7 @@
 .return-button {
   position: absolute;
   right: 20px;
-  top: 30px;
+  top: 40px;
 }
 .wrapper-container {
   width: 100%;
diff --git a/src/views/screen/components/select-item/index.vue b/src/views/screen/components/select-item/index.vue
index 3297ce7..4bd541b 100644
--- a/src/views/screen/components/select-item/index.vue
+++ b/src/views/screen/components/select-item/index.vue
@@ -9,15 +9,8 @@
 
     <div class="date-select">
       <div class="select-label">鏃ユ湡</div>
-      <el-date-picker
-        v-model="dateValue"
-        type="daterange"
-        range-separator="鑷�"
-        start-placeholder="寮�濮嬫棩鏈�"
-        end-placeholder="缁撴潫鏃ユ湡"
-        value-format="yyyy-MM-dd"
-        @change="setConfig"
-      />
+      <el-date-picker v-model="dateValue" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+        end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd" @change="setConfig" />
     </div>
 
   </div>
@@ -56,23 +49,44 @@
 <style lang="scss" scoped>
 .select-container {
   position: absolute;
-  top: 30px;
+  top: 40px;
   left: 20px;
   display: flex;
   align-items: center;
+
   .select-label {
     font-size: 20px;
     margin-right: 10px;
     color: #2375f0;
+    flex-shrink: 0;
   }
+
   .type-select {
     display: flex;
     align-items: center;
     margin-right: 20px;
+    width: 240px;
   }
+
   .date-select {
     display: flex;
     align-items: center;
+    width: 320px;
   }
 }
+::v-deep .el-input__inner {
+  background: rgba(67, 102, 155, 0.4) !important;
+  color: #4481DD;
+  border-color: #4481DD !important;
+}
+
+::v-deep .date-select .el-range-input {
+  background-color: transparent !important;
+  color: #4481DD;
+}
+::v-deep .date-select .el-date-editor .el-range-separator {
+  color: #4481DD !important;
+}
+
+
 </style>
\ No newline at end of file
diff --git a/src/views/system/data-manage/index.vue b/src/views/system/data-manage/index.vue
index 43b150b..eef8562 100644
--- a/src/views/system/data-manage/index.vue
+++ b/src/views/system/data-manage/index.vue
@@ -1,80 +1,79 @@
 <template>
   <div>
     <div class="container">
-        <el-row type="flex" justify="center">
-            <el-col :span="24">
-                <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">浜鸿劯鏁版嵁寮傚父妫�娴�</h3>
-            </el-col>
-        </el-row>
+      <el-row type="flex" justify="center">
+        <el-col :span="24">
+          <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">浜鸿劯鏁版嵁寮傚父妫�娴�</h3>
+        </el-col>
+      </el-row>
 
-        <el-row type="flex" justify="center">
-            <el-col :span="6" v-for="(item, index) in faceData" :key="index">
-                <el-link @click="handleDetail(item)">
-                    <el-card style="width:150px;height: 150px;text-align: center;">
-                        <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
-                        <div>{{ item.name }}</div>
-                    </el-card>
-                </el-link>
-            </el-col>
-        </el-row>
+      <el-row type="flex" justify="center">
+        <el-col :span="6" v-for="(item, index) in faceData" :key="index">
+          <el-link @click="handleDetail(item)">
+            <el-card style="width:150px;height: 150px;text-align: center;">
+              <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
+              <div>{{ item.name }}</div>
+            </el-card>
+          </el-link>
+        </el-col>
+      </el-row>
     </div>
 
-  <div class="container">
-    <el-row type="flex" justify="center">
-      <el-col :span="24">
-        <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">杞︿咯鏁版嵁寮傚父妫�娴�</h3>
-      </el-col>
-    </el-row>
+    <div class="container">
+      <el-row type="flex" justify="center">
+        <el-col :span="24">
+          <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">杞︿咯鏁版嵁寮傚父妫�娴�</h3>
+        </el-col>
+      </el-row>
 
-    <el-row type="flex" >
-      <el-col :span="6" v-for="(item, index) in carData" :key="index">
-        <el-link @click="handleDetail(item)">
-          <el-card style="width:150px;height: 150px;text-align: center;">
-            <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
-            <div>{{ item.name }}</div>
-          </el-card>
-        </el-link>
-      </el-col>
-    </el-row>
-  </div>
+      <el-row type="flex">
+        <el-col :span="6" v-for="(item, index) in carData" :key="index">
+          <el-link @click="handleDetail(item)">
+            <el-card style="width:150px;height: 150px;text-align: center;">
+              <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i>
+              <div>{{ item.name }}</div>
+            </el-card>
+          </el-link>
+        </el-col>
+      </el-row>
+    </div>
   </div>
 </template>
 
 <script>
 export default {
-    data() {
-        return {
-            faceData: [
-                { name: '浜鸿劯璇嗗埆鏃堕挓鍑嗙‘鎬�', icon: 'el-icon-alarm-clock', description: '鎻忚堪淇℃伅', routerUrl: '/face/index' },
-                { name: '浜鸿劯鎶撴媿鏁版嵁鐩戞祴', icon: 'el-icon-user', description: '鎻忚堪淇℃伅', routerUrl: '/face/faceClock' },
-                { name: '浜鸿劯鏁版嵁瓒嬪娍鍒嗘瀽', icon: 'el-icon-data-line', description: '鎻忚堪淇℃伅', routerUrl: '/face/faceClock' },
-                { name: '浜鸿劯鎶撴媿璁惧娲昏穬鎬�', icon: 'el-icon-timer', description: '鎻忚堪淇℃伅', routerUrl: '/face/faceClock' },
-                { name: '浜鸿劯鎶撴媿涓婁紶鍙婃椂鎬�', icon: 'el-icon-money', description: '鎻忚堪淇℃伅', routerUrl: '/face/faceClock' },
-                { name: '浜鸿劯鎶撴媿澶у浘鍙敤鎬�', icon: 'el-icon-data-analysis', description: '鎻忚堪淇℃伅', routerUrl: '/face/faceClock' },
-            ],
-          carData: [
-            { name: '鍗″彛杩囪溅鏁版嵁涓�鑷存��', icon: 'el-icon-alarm-clock', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
-
-          ]
-        }
-    },
-    methods: {
-        handleDetail(item) {
-            this.$router.push({
-                path: item.routerUrl,
-                params: {
-                    id: item.id
-                }
-            })
-        }
+  data() {
+    return {
+      faceData: [
+        { name: '浜鸿劯璇嗗埆鏃堕挓鍑嗙‘鎬�', icon: 'el-icon-alarm-clock', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '浜鸿劯鎶撴媿鏁版嵁鐩戞祴', icon: 'el-icon-user', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '浜鸿劯鏁版嵁瓒嬪娍鍒嗘瀽', icon: 'el-icon-data-line', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '浜鸿劯鎶撴媿璁惧娲昏穬鎬�', icon: 'el-icon-timer', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '浜鸿劯鎶撴媿涓婁紶鍙婃椂鎬�', icon: 'el-icon-money', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '浜鸿劯鎶撴媿澶у浘鍙敤鎬�', icon: 'el-icon-data-analysis', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+      ],
+      carData: [
+        { name: '鍗″彛杩囪溅鏁版嵁涓�鑷存��', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }
+      ]
     }
+  },
+  methods: {
+    handleDetail(item) {
+      this.$router.push({
+        path: item.routerUrl,
+        params: {
+          id: item.id
+        }
+      })
+    }
+  }
 }
 </script>
 
 <style scoped>
 .container {
-    margin-left: 100px;
-    margin-right: 100px;
-    margin-top: 10px;
+  margin-left: 100px;
+  margin-right: 100px;
+  margin-top: 10px;
 }
 </style>
diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue
index e78d801..aff69e5 100644
--- a/src/views/system/report/index.vue
+++ b/src/views/system/report/index.vue
@@ -81,6 +81,7 @@
       <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName" />
       <el-table-column label="鎶ュ浜哄憳" align="center" prop="peopleName" />
       <el-table-column label="鐐逛綅" align="center" prop="pointName" />
+      <el-table-column label="鎶ュ绫诲瀷" align="center" prop="reportType" />
       <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" />
       <el-table-column label="涓婃姤鏉愭枡" align="center" prop="reportMaterials" />
       <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType" />
@@ -144,6 +145,12 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鎶ュ绫诲瀷" prop="reportType">
+          <el-select v-model="form.reportType">
+            <el-option label="浜嬪墠鎶ュ" value="浜嬪墠鎶ュ"/>
+            <el-option label="浜嬪悗鎶ュ" value="浜嬪悗鎶ュ"/>
+          </el-select>
+        </el-form-item>
         <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
           <el-select v-model="form.errorType">
             <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
@@ -177,6 +184,9 @@
         <el-form-item label="鎶ュ浜哄憳">
           <el-input v-model="auditingForm.peopleName" disabled />
         </el-form-item>
+        <el-form-item label="鎶ュ绫诲瀷">
+          <el-input v-model="auditingForm.reportType" disabled />
+        </el-form-item>
         <el-form-item label="鏁呴殰绫诲瀷">
           <el-input v-model="auditingForm.errorType" disabled />
         </el-form-item>
@@ -196,6 +206,7 @@
         <el-button @click="auditingCancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
   </div>
 </template>
 
@@ -242,7 +253,8 @@
         errorType: "",
         reportContent: "",
         auditing: "",
-        suggest: ""
+        suggest: "",
+        reportType: "",
       },
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -273,6 +285,9 @@
         reportMaterials: [
           { required: true, message: "涓婃姤鏉愭枡涓嶈兘涓虹┖", trigger: "blur" }
         ],
+        reportType: [
+          { required: true, message: "璇烽�夋嫨鎶ュ绫诲瀷", trigger: "blur" }
+        ],
       }
     };
   },
@@ -291,6 +306,7 @@
       this.auditingForm.peopleName =row.peopleName
       this.auditingForm.errorType =row.errorType
       this.auditingForm.reportContent =row.reportContent
+      this.auditingForm.reportType =row.reportType
     },
     // 杩滅▼鎼滅储鐐逛綅
     remoteGetPoints(query) {
@@ -382,6 +398,8 @@
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
+      // todo 鍒ゆ柇鏄簨鍓嶆姤澶�
+
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
@@ -392,7 +410,7 @@
             });
           } else {
             addReport(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.$modal.msgSuccess("鎴愬姛鎻愪氦鎶ュ");
               this.open = false;
               this.getList();
             });
diff --git a/src/views/system/vehicle-data-monitor/index.vue b/src/views/system/vehicle-data-monitor/index.vue
index 76ce1d1..44cac60 100644
--- a/src/views/system/vehicle-data-monitor/index.vue
+++ b/src/views/system/vehicle-data-monitor/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <div class="top">
+    <!-- <div class="top">
       <el-row type="flex" justify="space-between" style="width: 60%;">
         <el-col :span="6">
           <el-card class="card">
@@ -37,7 +37,43 @@
         </el-col>
       </el-row>
 
-    </div>
+    </div> -->
+
+
+    <el-card class="box-card">
+      <el-row type="flex" align="middle" justify="space-between">
+        <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6">
+          <div class="icon-container" style="background-color: #5599F7;font-size: 50px;color: #FFF;">
+            <i class="el-icon-wind-power"></i>
+          </div>
+        </el-col>
+        <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16">
+          <div class="dashboard">
+            <div class="dashboard-item">
+              <h3 style="color: #5C9BF8">{{ totalKiosks }}</h3>
+              <p>鍗″彛鎬绘暟</p>
+            </div>
+            <div class="dashboard-item">
+              <h3>{{ uniqueKiosks }}</h3>
+              <p>涓嶅敮涓�鍗″彛鏁�</p>
+            </div>
+            <div class="dashboard-item">
+              <div style="width: 1px;height: 55px;border: 1px solid #D7EBFA;"></div>
+            </div>
+            <div class="dashboard-item">
+              <h3 style="color: #5C9BF8">{{ totalCarData }}</h3>
+              <p>杩囪溅鏁版嵁鎬婚噺</p>
+            </div>
+            <div class="dashboard-item">
+              <h3>{{ uniqueCarData }}</h3>
+              <p>涓嶅敮涓�鏁版嵁閲�</p>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+    </el-card>
+
+
 
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="鍗″彛缂栧彿" prop="bayonetNumber">
@@ -276,41 +312,36 @@
 };
 </script>
 <style scoped>
-.top {
-  height: 150px;
+.box-card {
+  background-color: #F5F9FE;
+  width: 100%;
   margin-bottom: 20px;
-  background-color: #F2F9FF;
-  border: 1px solid #77befd;
+  height: 120px
 }
 
-.container {
-  max-width: 1000px;
-  margin: auto;
+.icon-container {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: 20px;
+  width: 20%;
+  height: 80px;
+  margin-left: 5%;
 }
 
-.number {
-  font-size: 36px;
-  font-weight: bold;
-  color: #00A5FE;
+.el-icon-refresh-left {
+  font-size: 50px;
+  color: #FFFFFF;
 }
 
-.numberTwo {
-  font-size: 36px;
-  font-weight: bold;
-  color: #505051;
+.dashboard {
+  display: flex;
+  gap: 10%;
+  align-items: center;
+  margin-left: -50%;
 }
 
-.card {
-  width: 100px;
-  height: 100px;
+.dashboard-item {
   text-align: center;
-  background-color: #00A5FE;
-  color: aliceblue;
-  border-radius: 10%;
-  margin: 25px;
-}
-
-.mod {
-  margin-top: 40px;
 }
 </style>
\ No newline at end of file
diff --git a/src/views/system/work-order/index.vue b/src/views/system/work-order/index.vue
index 0ebfc45..a40125e 100644
--- a/src/views/system/work-order/index.vue
+++ b/src/views/system/work-order/index.vue
@@ -78,6 +78,11 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="宸ュ崟鍙�" align="center" prop="workOrderNo" width="170"/>
       <el-table-column label="宸ュ崟鏉ユ簮" align="center" prop="source" width="170"/>
+      <el-table-column label="鏄惁鎶ュ" align="center" width="170">
+        <template slot-scope="scope">
+          <el-tag>宸叉姤澶�(浜嬪墠)</el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType" width="170"/>
       <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName" width="150"/>
       <el-table-column label="杩愮淮浜哄憳" align="center" prop="ywPeopleName" />
@@ -91,13 +96,6 @@
 
       <el-table-column label="鎿嶄綔" fixed="right" width="150"  align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-<!--          <el-button-->
-<!--            size="mini"-->
-<!--            type="text"-->
-<!--            icon="el-icon-edit"-->
-<!--            @click="handleUpdate(scope.row)"-->
-<!--            v-hasPermi="['x:work-order:edit']"-->
-<!--          >淇敼</el-button>-->
           <el-button
             size="mini"
             type="text"
@@ -125,6 +123,11 @@
             type="text"
             @click="handleFlow(scope.row)"
           >杩囩▼鍥�</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleReport(scope.row)"
+          >浜嬪悗鎶ュ</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -136,6 +139,35 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
+
+    <!-- 浜嬪悗鎶ュ -->
+    <el-dialog title="浜嬪悗鎶ュ" :visible.sync="reportOpen" width="600px" append-to-body>
+      <el-form ref="reportForm" :model="reportForm" :rules="reportFormRules" label-width="80px">
+        <el-form-item label="鐐逛綅" prop="pointId">
+          <el-input v-model="reportForm.pointId" disabled />
+        </el-form-item>
+        <el-form-item label="鎶ュ绫诲瀷">
+          <el-input v-model="reportForm.reportType" disabled />
+        </el-form-item>
+        <el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
+          <el-select v-model="reportForm.errorType">
+            <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
+            <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
+            <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎶ュ鍐呭" prop="reportContent">
+          <editor v-model="reportForm.reportContent" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="涓婃姤鏉愭枡" prop="reportMaterials">
+          <file-upload v-model="reportForm.reportMaterials"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitReportForm">鎻� 浜�</el-button>
+        <el-button @click="reportOpen = false">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
 
     <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="500px" append-to-body>
       <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
@@ -421,6 +453,22 @@
   },
   data() {
     return {
+      reportFormRules: {
+        reportContent: [
+          { required: true, message: "鎶ュ鍐呭涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        reportMaterials: [
+          { required: true, message: "涓婃姤鏉愭枡涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      },
+      reportOpen: false,
+      reportForm: {
+        reportType: "浜嬪悗鎶ュ",
+        pointId: "鐞间簬闀�3琛�1鍙锋憚鍍忓ご",
+        errorType: "",
+        reportContent: "",
+        reportMaterials: ""
+      },
       // 杩囩▼鍥�
       flowOpen: false,
       flowForm: {},
@@ -505,6 +553,23 @@
     this.getList();
   },
   methods: {
+    // 鎶ュ
+    submitReportForm() {
+      this.$refs["reportForm"].validate(valid => {
+        if (valid) {
+          addReport(this.form).then(response => {
+            this.$modal.msgSuccess("鎴愬姛鎻愪氦鎶ュ");
+            this.open = false;
+            this.getList();
+          });
+        }
+      });
+    },
+    // 浜嬪悗鎶ュ鎸夐挳
+    handleReport(row) {
+      this.reportForm.pointId = row.source;
+      this.reportOpen = true;
+    },
     // 瀹℃牳鎸夐挳
     handleAuditing(row) {
       this.auditingForm = row;
diff --git a/vue.config.js b/vue.config.js
index e61f74f..cf11cc5 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -35,7 +35,7 @@
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://localhost:8080`,
+        target: `http://192.168.3.88:8080`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''

--
Gitblit v1.8.0