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