| | |
| | | import VScaleScreen from 'v-scale-screen' |
| | | import dataV from '@jiaminghi/data-view' |
| | | |
| | | import gsap from 'gsap'; |
| | | import { formatNumber } from './utils/format'; |
| | | |
| | | |
| | | |
| | | // 全局方法挂载 |
| | |
| | | |
| | | 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, |
New file |
| | |
| | | export const formatNumber = (value) => { |
| | | return new Intl.NumberFormat('en-US').format(value); |
| | | } |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | </div> |
| | | <div class="data-info"> |
| | | <div class="data-lable">设备正常数</div> |
| | | <div class="data-num">{{ formatNumber(200000) }}</div> |
| | | <div class="data-num type2" v-roll>{{ 2000 }}</div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box-13> |
| | |
| | | </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> |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | formatNumber(value) { |
| | | return new Intl.NumberFormat('en-US').format(value); |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | |
| | | font-size: 24px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .type1 { |
| | | color: #287cfa; |
| | | } |
| | | .type2 { |
| | | color: #0cd81d; |
| | | } |
| | | .type3 { |
| | | color: #e20c0c |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | </div> |
| | | <div class="data-info"> |
| | | <div class="data-lable">设备正常数</div> |
| | | <div class="data-num">{{ formatNumber(200000) }}</div> |
| | | <div class="data-num type2" v-roll>{{ 2000 }}</div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box-13> |
| | |
| | | </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> |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | formatNumber(value) { |
| | | return new Intl.NumberFormat('en-US').format(value); |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | |
| | | font-size: 24px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .type1 { |
| | | color: #287cfa; |
| | | } |
| | | .type2 { |
| | | color: #0cd81d; |
| | | } |
| | | .type3 { |
| | | color: #e20c0c |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <img src="@/assets/images/screen/header_bg.png" class="width-img" alt=""> |
| | | </div> |
| | | <div class="header-text"> |
| | | 自贡市运维考核可视化大屏 |
| | | 自贡市运维考核可视化 |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <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"> |
| | |
| | | </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> |
| | |
| | | </div> |
| | | <div class="data-info"> |
| | | <div class="data-lable">设备正常数</div> |
| | | <div class="data-num">{{ formatNumber(200000) }}</div> |
| | | <div class="data-num type2" v-roll>{{ 2000 }}</div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box-13> |
| | |
| | | </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> |
| | |
| | | }, |
| | | 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() { |
| | |
| | | font-size: 24px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .type1 { |
| | | color: #287cfa; |
| | | } |
| | | .type2 { |
| | | color: #0cd81d; |
| | | } |
| | | .type3 { |
| | | color: #e20c0c |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <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"> |
| | |
| | | ScreenCar, |
| | | ScreenMap |
| | | }, |
| | | methods: { |
| | | returnPath() { |
| | | this.$router.go(-1); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | 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]: '' |