From 75428aa3f870b62c7ccc7ebc7c0360c5fa4fb3e6 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 13 十二月 2024 20:03:07 +0800
Subject: [PATCH] ll
---
h5/pages/driver/index.vue | 2
screen/src/utils/request.js | 2
admin/src/views/platform/LogisticsRecord/operationCity.vue | 2
screen/src/views/LogisticsEfficiency.vue | 290 ++++++----
h5/pages/staff/vehicle/shinei.vue | 2
screen/src/views/SecurityControl.vue | 9
h5/pages/userinfo/userinfo.vue | 873 +++++++++++++++++---------------
screen/src/views/TaskEfficiency.vue | 113 ++-
screen/src/assets/images/FireFighting/fire_right.png | 0
admin/src/views/index.vue | 2
h5/pages/driver/taskDetail.vue | 18
screen/src/api/index.js | 14
screen/src/views/LogisticsCenter.vue | 1
h5/pages/driver/taskConfirm.vue | 2
h5/pages/staff/task/vDangetAppr.vue | 3
screen/src/views/EnergyConsum.vue | 71 +-
h5/pages/staff/vehicle/apply.vue | 17
screen/src/views/FireFighting.vue | 92 ++
18 files changed, 879 insertions(+), 634 deletions(-)
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index d7a404d..f97c7b7 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -1,6 +1,6 @@
<template>
<div class="main_home">
- <div style="position: fixed;z-index: 99999"><video style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div>
+ <!-- <div style="position: fixed;z-index: 99999"><video style="height: 100px;width: 500px" src="rtsp://10.50.250.253:554/openUrl/K2y2vE4" controls></video></div> -->
<div class="home_header">
<div class="mb10 fs17">涓嬪崍濂斤紝{{ userInfo.realname }}</div>
<div class="fs13">
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 3dceb78..8b0634f 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -19,7 +19,7 @@
<el-table class="mb20" v-loading="loading" :data="list" stripe>
<el-table-column prop="contractNum" label="鍚堝悓鍙�" min-width="100" show-overflow-tooltip />
<el-table-column prop="reason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip />
- <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="120" show-overflow-tooltip />
<el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip />
<el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip />
<!-- <el-table-column prop="taskOrigin" label="浠诲姟鏉ユ簮" min-width="100" show-overflow-tooltip />
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 29134b3..b2f5b0c 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -327,7 +327,7 @@
background: #ffffff;
box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
border-radius: 16rpx;
- height: 280rpx;
+ height: 260rpx;
width: 98%;
margin-left: 1%;
diff --git a/h5/pages/driver/taskConfirm.vue b/h5/pages/driver/taskConfirm.vue
index 622fc0c..f8327f9 100644
--- a/h5/pages/driver/taskConfirm.vue
+++ b/h5/pages/driver/taskConfirm.vue
@@ -109,7 +109,7 @@
</view>
<view class="line">
<view class="label">鏁伴噺锛�</view>
- <view class="value">{{ line.ioQty }}</view>
+ <view class="value">{{ line.ioQty }}涓囨敮</view>
</view>
</view>
</view>
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index e2aab9b..dedc18e 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -7,7 +7,9 @@
<view class="name" v-if="param.status == 3">鍏ュ洯绛夊緟</view>
<view class="name" v-if="param.status == 4">璇峰叆鍥仠闈爗{param.platformName}}浣滀笟</view>
<view class="name" v-if="param.status == 5">鏈堝彴浣滀笟涓�</view>
- <view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+ <view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
+ <view class="name" v-if="param.status == 7">杞Щ涓�</view>
+ <view class="name red" v-if="param.status == 8">寮傚父鎸傝捣</view>
<view class="id_card">{{ param.carCodeFront }}</view>
<view class="status">{{statusMap[param.status]}}</view>
</view>
@@ -104,7 +106,6 @@
<view class="time">{{nowTime}}</view>
</view>
</view>
- <view class="space"></view>
<!-- 绛夊緟鍙彿 -->
<view v-if="param.status == 2" class="padding_wrap">
<view class="btn check" @click="handleQueue">鏌ョ湅鎺掗槦鎯呭喌</view>
@@ -152,7 +153,7 @@
</view>
<view class="line">
<view class="label">鏁伴噺锛�</view>
- <view class="value">{{ line.ioQty }}</view>
+ <view class="value">{{ line.ioQty }}涓囨敮</view>
</view>
</view>
</view>
@@ -181,10 +182,10 @@
status: '0'
},
jobId: '',
- lat: '',
- lnt: '',
- // lat: '31.783205',
- // lnt: '117.262635',
+ // lat: '',
+ // lnt: '',
+ lat: '31.783205',
+ lnt: '117.262635',
nowTime: '',
wmsInfo: {},
signDistance: uni.getStorageSync('driverGuide').signDistance,
@@ -205,7 +206,8 @@
// 'openLocation'
// ] // 蹇呭~锛岄渶瑕佷娇鐢ㄧ殑JS鎺ュ彛鍒楄〃
// })
- this.getLocation()
+ // this.getLocation()
+ this.getDetail()
} else {
this.getDetail()
}
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 74c1459..b92706c 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -374,7 +374,8 @@
},
handleOpen() {
this.isShowHandle = true;
- const submitFileList = this.info.submitFileList || []
+ const submitFileList = this.info.submitFileList || []
+ this.dealBeforeFileList = [...submitFileList]
this.submitFileList = [...submitFileList];
this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
},
diff --git a/h5/pages/staff/vehicle/apply.vue b/h5/pages/staff/vehicle/apply.vue
index 23ad5ae..d0fa466 100644
--- a/h5/pages/staff/vehicle/apply.vue
+++ b/h5/pages/staff/vehicle/apply.vue
@@ -227,13 +227,19 @@
</script>
<style lang="scss">
+ page{
+ background-color: #f7f7f7;
+ }
.main_wrap {
.line {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1rpx solid #e5e5e5;
- padding: 30rpx 0;
+ padding: 30rpx;
+ background-color: #fff;
+ width: 750rpx;
+ margin: 0 -30rpx;
.label {
font-size: 30rpx;
font-weight: 400;
@@ -262,11 +268,14 @@
}
}
.upload_line {
- padding: 30rpx 0;
+ padding: 30rpx;
+ width: 750rpx;
+ margin: 0 -30rpx;
+ background-color: #fff;
textarea {
margin-top: 12rpx;
width: 100%;
- height: 180rpx;
+ height: 120rpx;
font-size: 28rpx;
font-weight: 400;
color: #222222;
@@ -307,7 +316,7 @@
}
.tip {
background: #f7f7f7;
- padding: 30rpx 30rpx 180rpx;
+ padding: 30rpx 30rpx 10rpx;
margin: 0 -30rpx;
.title {
line-height: 40rpx;
diff --git a/h5/pages/staff/vehicle/shinei.vue b/h5/pages/staff/vehicle/shinei.vue
index 3e00088..0c4d8da 100644
--- a/h5/pages/staff/vehicle/shinei.vue
+++ b/h5/pages/staff/vehicle/shinei.vue
@@ -262,7 +262,7 @@
// if (dayjs().format('YYYY-MM-DD') == param.queryDate) {
// let endTime = new Date(i.endTime).getTime()
// let nowTime = new Date().getTime()
- i.pastFlag = new Date().getTime() > new Date(i.startTime).getTime()
+ i.pastFlag = new Date().getTime() > new Date(i.endTime).getTime()
// if (endTime < nowTime) {
// i.isUse = 1
// }
diff --git a/h5/pages/userinfo/userinfo.vue b/h5/pages/userinfo/userinfo.vue
index 6d579f0..c825b10 100644
--- a/h5/pages/userinfo/userinfo.vue
+++ b/h5/pages/userinfo/userinfo.vue
@@ -1,409 +1,468 @@
-<template>
- <view class="container">
- <view class="visitor-form">
- <view class="cell">
- <view class="title"><b>*</b>濮撳悕</view>
- <view class="content">
- <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>鎵嬫満鍙�</view>
- <view class="content">
- <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11" placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>璇佷欢绫诲瀷</view>
- <view class="content" @click="show = true">
- <text :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
- <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
- </view>
- </view>
- <view class="cell">
- <view class="title"><b>*</b>璇佷欢鍙风爜</view>
- <view class="content">
- <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
- </view>
- </view>
- <view class="empty"></view>
- <view class="cell">
- <view class="title"><b>*</b>鍏徃鍚嶇О</view>
- <view class="content">
- <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false" placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
- </view>
- </view>
- <view class="cell">
- <view class="title1">
- <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
- <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
- <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
- </view>
- <view class="content">
- <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
- <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
- </view>
- <view class="content_uplaod" @click="upload('faceImg')" v-else>
- <image :src="visitorData.faceImgUrl" mode="widthFix"></image>
- </view>
- </view>
- </view>
- <view style="height: 20rpx; background-color: #F7F7F7;"></view>
- <!-- <view class="cell">
- <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
- <view class="content">
- <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
- <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
- </view>
- <view class="content_uplaod" @click="upload('imgurl')" v-else>
- <image :src="visitorData.imgurlUrl" mode="widthFix"></image>
- </view>
- </view>
- </view> -->
- </view>
- <view v-if="!showKeyboard" class="footer-box">
- <view class="submit-button" @click="submit">涓嬩竴姝�</view>
- </view>
- <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
- <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
- <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg" @crop="uploadImg"></qf-image-cropper>
- </view>
-</template>
-
-<script>
- import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
- import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
- import { mapState } from 'vuex'
- import { uploadAvatar } from "@/utils/config"
- import { getSystemDictData, visitorSub } from '@/api'
- export default {
- data() {
- return {
- photoSrc: "",
- show: false,
- showKeyboard: false,
- visit: '',
- type: '',
- columns: [[{name: '韬唤璇�', id: 0}, {name: '娓境璇佷欢', id: 1},{name: '鎶ょ収', id: 2}]],
- fileList: [],
- visitorData: {
- userAnswerId: '',
- name: '',
- phone: '',
- idcardType: 0,
- idcardTypeName: '韬唤璇�',
- idcardNo: '',
- faceImg: '',
- faceImgUrl: '',
- imgurl: '',
- imgurlUrl: '',
- companyName: ''
- }
+<template>
+ <view class="container">
+ <view class="visitor-form">
+ <view class="cell">
+ <view class="title"><b>*</b>濮撳悕</view>
+ <view class="content">
+ <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>鎵嬫満鍙�</view>
+ <view class="content">
+ <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11"
+ placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>璇佷欢绫诲瀷</view>
+ <view class="content" @click="show = true">
+ <text
+ :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>璇佷欢鍙风爜</view>
+ <view class="content">
+ <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
+ </view>
+ </view>
+ <view class="empty"></view>
+ <view class="cell">
+ <view class="title"><b>*</b>鍏徃鍚嶇О</view>
+ <view class="content">
+ <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title1">
+ <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
+ <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
+ <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
+ </view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('faceImg')" v-else>
+ <image :src="visitorData.faceImgUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view>
+ <view style="height: 20rpx; background-color: #F7F7F7;"></view>
+ <!-- <view class="cell">
+ <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('imgurl')" v-else>
+ <image :src="visitorData.imgurlUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view> -->
+ </view>
+ <view v-if="!showKeyboard" class="footer-box">
+ <view class="submit-button" @click="submit">涓嬩竴姝�</view>
+ </view>
+ <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
+ <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
+ <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg"
+ @crop="uploadImg"></qf-image-cropper>
+ </view>
+</template>
+
+<script>
+ import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
+ import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
+ import {
+ mapState
+ } from 'vuex'
+ import {
+ uploadAvatar
+ } from "@/utils/config"
+ import {
+ getSystemDictData,
+ visitorSub
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ photoSrc: "",
+ show: false,
+ showKeyboard: false,
+ visit: '',
+ type: '',
+ columns: [
+ [{
+ name: '韬唤璇�',
+ id: 0
+ }, {
+ name: '娓境璇佷欢',
+ id: 1
+ }, {
+ name: '鎶ょ収',
+ id: 2
+ }]
+ ],
+ fileList: [],
+ visitorData: {
+ userAnswerId: '',
+ name: '',
+ phone: '',
+ idcardType: 0,
+ idcardTypeName: '韬唤璇�',
+ idcardNo: '',
+ faceImg: '',
+ faceImgUrl: '',
+ imgurl: '',
+ imgurlUrl: '',
+ companyName: ''
+ }
+ }
+ },
+ components: {
+ tlyPictureCut,
+ QfImageCropper
+ },
+
+ onLoad(option) {
+ const visitorData = uni.getStorageSync('member')
+ if (visitorData.faceImg) {
+ visitorData.faceImgUrl = visitorData.prefixUrl + visitorData.faceImg
+ }
+ if (visitorData && visitorData.name) {
+ this.visitorData = visitorData
+ }
+ this.visitorData.companyName = visitorData.visitCompanyName
+ this.visitorData.idcardNo = visitorData.idcardDecode
+ if (this.visitorData.idcardType === 0) {
+ this.visitorData.idcardTypeName = '韬唤璇�'
+ } else if (this.visitorData.idcardType === 1) {
+ this.visitorData.idcardTypeName = '娓境璇佷欢'
+ } else if (this.visitorData.idcardType === 2) {
+ this.visitorData.idcardTypeName = '鎶ょ収'
}
- },
- components: { tlyPictureCut, QfImageCropper },
-
- onLoad(option) {
- const visitorData = uni.getStorageSync('visitorData')
- if(visitorData && visitorData.name){
- this.visitorData = visitorData
- }
- // if (this.member ) {
- // this.visitorData.name = this.member.name
- // this.visitorData.phone = this.member.phone
- // this.visitorData.idcardNo = this.member.idcardDecode
- // this.visitorData.companyName = this.member.visitCompanyName
- // this.visitorData.faceImg = this.member.faceImg
- // if (this.member.faceImg) {
- // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
- // }
- // this.visitorData.imgurl = this.member.imgurl
- // if (this.member.imgurl) {
- // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
- // }
- // this.visitorData.idcardType = this.member.idcardType
- // if (this.member.idcardType === 0) {
- // this.visitorData.idcardTypeName = '韬唤璇�'
- // } else if (this.member.idcardType === 1) {
- // this.visitorData.idcardTypeName = '娓境璇佷欢'
- // } else if (this.member.idcardType === 2) {
- // this.visitorData.idcardTypeName = '鎶ょ収'
- // }
- // }
- this.visitorData.userAnswerId = option.answerId || ''
- // this.getVisit()
- // uni.$on('update', (data) => {
- // this.uploadImg(data.tempFilePath)
- // })
- },
-
- methods: {
- submit() {
- const { visitorData } = this
- if (!this.visitorData.name) return uni.showToast({
- title: '濮撳悕涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.phone) return uni.showToast({
- title: '鎵嬫満鍙蜂笉鑳戒负绌�',
- icon: 'none'
- })
- const regExp = /^1[3456789]\d{9}$/;
- if (!regExp.test(this.visitorData.phone)) return uni.showToast({
- title: '鎵嬫満鍙锋牸寮忛敊璇�',
- icon: 'none'
- })
- if (!String(this.visitorData.idcardType)) return uni.showToast({
- title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.idcardNo) return uni.showToast({
- title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (this.visitorData.idcardType === 0) {
- const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
- if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
- title: '璇佷欢鍙风爜鏍煎紡閿欒',
- icon: 'none'
- })
- }
- if (!this.visitorData.companyName) return uni.showToast({
- title: '鍏徃涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!this.visitorData.faceImg) return uni.showToast({
- title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
- icon: 'none'
- })
- // if (this.visit === '1') {
- // if (!this.visitorData.imgurl) return uni.showToast({
- // title: '鍋ュ悍璇佷笉鑳戒负绌�',
- // icon: 'none'
- // })
- // }
- uni.setStorageSync('visitorData', this.visitorData)
- uni.navigateTo({
- url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
- });
- },
- getVisit() {
- // 鏄惁闇�瑕� 鍋ュ悍璇�
- getSystemDictData({
- dictCode: 'SYSTEM',
- label: 'HEALTH_CARD'
- }).then(res => {
- if (res.code === 200) {
- this.visit = res.data.code
- }
- })
- },
- uploadImg(file) {
- var that = this
- that.$refs.cropper.close()
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
- uni.uploadFile({
- url: uploadAvatar,
- filePath: file.tempFilePath,
- name: 'file',
- formData: {
- folderCode: 'MEMBER_IMG',
- isFace: 0
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- this.visitorData.faceImg = res.data.halfPath
- this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
- },
- fail(err) {
- alert('澶辫触')
- },
- complete() {
- uni.hideLoading();
- }
- });
- },
- upload(type) {
- var that = this
- that.type = type
- if (type === 'faceImg') {
- that.$refs.cropper.chooseImage()
- return
- }
- uni.chooseImage({
- count: 1,
- success: (chooseImageRes) => {
- // if (type === 'faceImg') {
- // that.photoSrc = chooseImageRes.tempFilePaths[0];
- // that.$refs.tlyPictureCut.showPop();
- // }
- if (type === 'imgurl') {
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
- uni.uploadFile({
- url: uploadAvatar,
- filePath: chooseImageRes.tempFilePaths[0],
- name: 'file',
- formData: {
- folderCode: 'MEMBER_IMG'
- },
- timeout: 60000,
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- that.visitorData.imgurl = res.data.halfPath
- that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
- },
- complete() {
- uni.hideLoading();
- }
- });
- }
- },
- fail(err) {
- alert('api鎶ラ敊')
- }
- });
- },
- confirm(e) {
- this.visitorData.idcardType = e.value[0].id
- this.visitorData.idcardTypeName = e.value[0].name
- this.show = false
- }
- }
- }
-</script>
-
-<style lang="scss">
- page {
- background-color: #F7F7F7 !important;
- }
- .u-upload__button {
- margin: 0 !important;
- }
- .content_uplaod {
- width: 120rpx;
- height: 120rpx;
- background: #F7F7F7;
- border-radius: 8rpx;
- border: 2rpx solid #E5E5E5;
- display: flex;
- align-items: center;
- justify-content: center;
- overflow: hidden;
- }
- .content_uplaod image {
- width: 100%;
- height: 100%;
- }
- .empty{
- width: 750rpx;
- height: 20rpx;
- margin: 0 -30rpx;
- background-color: #f7f7f7;;
- }
- .title {
- font-size: 30rpx;
- font-weight: 400;
- color: #222222;
- display: flex;
- align-items: center;
- }
-
- .title b {
- color: #E42D2D;
- margin-right: 4rpx;
- }
-
- .title1 {
- display: flex;
- flex-direction: column;
- .title1_a {
- font-size: 30rpx !important;
- font-weight: 400;
- color: #222222;
- display: flex;
- align-items: center;
- margin-bottom: 20rpx;
- b {
- color: #E42D2D;
- margin-right: 4rpx;
-
- }
- }
- .title1_b {
- font-size: 24rpx !important;
- font-weight: 400;
- color: #999999;
- }
- }
-
- .add-other {
- border: 1rpx solid #4d99a8;
- color: #4d99a8;
- font-size: 11rpx;
- padding: 0 12rpx;
- height: 32rpx;
- line-height: 32rpx;
- width: 120rpx;
- text-align: center;
- border-radius: 24rpx;
- margin: 20rpx auto;
- }
-
- .footer-box {
- width: 100%;
- position: fixed;
- bottom: 30rpx;
- height: 80rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- .submit-button {
- width: calc(100% - 60rpx);
- height: 88rpx;
- line-height: 88rpx;
- background: #4d99a8;
- border-radius: 4rpx;
- color: #fff;
- border-radius: 44rpx;
- font-size: 32rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-</style>
-
-<style lang="scss" scoped>
- .popup-content {
- padding: 20rpx;
- height: 100%;
- overflow: hidden;
- display: flex;
- flex-flow: column;
-
- .input {
- border: 1rpx solid #ccc;
- border-radius: 4rpx;
- padding: 4rpx 12rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: #333333;
- }
-
- .respondent-item {
- padding: 10rpx;
- border-bottom: 1rpx solid #eee;
- cursor: pointer;
-
- &:hover {
- background-color: #eee;
- }
- }
-
- .van-list {
- flex: 1;
- overflow: auto;
- }
- }
+ if (this.visitorData.imgurl) {
+ this.visitorData.imgurlUrl = this.visitorData.prefixUrl + this.visitorData.imgurl
+ }
+ // if (this.member ) {
+ // this.visitorData.name = this.member.name
+ // this.visitorData.phone = this.member.phone
+ // this.visitorData.idcardNo = this.member.idcardDecode
+ // this.visitorData.companyName = this.member.visitCompanyName
+ // this.visitorData.faceImg = this.member.faceImg
+ // if (this.member.faceImg) {
+ // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
+ // }
+ // this.visitorData.imgurl = this.member.imgurl
+ // if (this.member.imgurl) {
+ // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
+ // }
+ // this.visitorData.idcardType = this.member.idcardType
+ // if (this.member.idcardType === 0) {
+ // this.visitorData.idcardTypeName = '韬唤璇�'
+ // } else if (this.member.idcardType === 1) {
+ // this.visitorData.idcardTypeName = '娓境璇佷欢'
+ // } else if (this.member.idcardType === 2) {
+ // this.visitorData.idcardTypeName = '鎶ょ収'
+ // }
+ // }
+ this.visitorData.userAnswerId = option.answerId || ''
+ // this.getVisit()
+ // uni.$on('update', (data) => {
+ // this.uploadImg(data.tempFilePath)
+ // })
+ },
+
+ methods: {
+ submit() {
+ const {
+ visitorData
+ } = this
+ if (!this.visitorData.name) return uni.showToast({
+ title: '濮撳悕涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.phone) return uni.showToast({
+ title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+ icon: 'none'
+ })
+ const regExp = /^1[3456789]\d{9}$/;
+ if (!regExp.test(this.visitorData.phone)) return uni.showToast({
+ title: '鎵嬫満鍙锋牸寮忛敊璇�',
+ icon: 'none'
+ })
+ if (!String(this.visitorData.idcardType)) return uni.showToast({
+ title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.idcardNo) return uni.showToast({
+ title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (this.visitorData.idcardType === 0) {
+ const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+ if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
+ title: '璇佷欢鍙风爜鏍煎紡閿欒',
+ icon: 'none'
+ })
+ }
+ if (!this.visitorData.companyName) return uni.showToast({
+ title: '鍏徃涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.faceImg) return uni.showToast({
+ title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ // if (this.visit === '1') {
+ // if (!this.visitorData.imgurl) return uni.showToast({
+ // title: '鍋ュ悍璇佷笉鑳戒负绌�',
+ // icon: 'none'
+ // })
+ // }
+ uni.setStorageSync('visitorData', this.visitorData)
+ uni.navigateTo({
+ url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
+ });
+ },
+ getVisit() {
+ // 鏄惁闇�瑕� 鍋ュ悍璇�
+ getSystemDictData({
+ dictCode: 'SYSTEM',
+ label: 'HEALTH_CARD'
+ }).then(res => {
+ if (res.code === 200) {
+ this.visit = res.data.code
+ }
+ })
+ },
+ uploadImg(file) {
+ var that = this
+ that.$refs.cropper.close()
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: file.tempFilePath,
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG',
+ isFace: 0
+ },
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ this.visitorData.faceImg = res.data.halfPath
+ this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ fail(err) {
+ alert('澶辫触')
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ },
+ upload(type) {
+ var that = this
+ that.type = type
+ if (type === 'faceImg') {
+ that.$refs.cropper.chooseImage()
+ return
+ }
+ uni.chooseImage({
+ count: 1,
+ success: (chooseImageRes) => {
+ // if (type === 'faceImg') {
+ // that.photoSrc = chooseImageRes.tempFilePaths[0];
+ // that.$refs.tlyPictureCut.showPop();
+ // }
+ if (type === 'imgurl') {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: chooseImageRes.tempFilePaths[0],
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG'
+ },
+ timeout: 60000,
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ that.visitorData.imgurl = res.data.halfPath
+ that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ },
+ fail(err) {
+ alert('api鎶ラ敊')
+ }
+ });
+ },
+ confirm(e) {
+ this.visitorData.idcardType = e.value[0].id
+ this.visitorData.idcardTypeName = e.value[0].name
+ this.show = false
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F7F7F7 !important;
+ }
+
+ .u-upload__button {
+ margin: 0 !important;
+ }
+
+ .content_uplaod {
+ width: 120rpx;
+ height: 120rpx;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 2rpx solid #E5E5E5;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ }
+
+ .content_uplaod image {
+ width: 100%;
+ height: 100%;
+ }
+
+ .empty {
+ width: 750rpx;
+ height: 20rpx;
+ margin: 0 -30rpx;
+ background-color: #f7f7f7;
+ ;
+ }
+
+ .title {
+ font-size: 30rpx;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ }
+
+ .title b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+ }
+
+ .title1 {
+ display: flex;
+ flex-direction: column;
+
+ .title1_a {
+ font-size: 30rpx !important;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ margin-bottom: 20rpx;
+
+ b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+
+ }
+ }
+
+ .title1_b {
+ font-size: 24rpx !important;
+ font-weight: 400;
+ color: #999999;
+ }
+ }
+
+ .add-other {
+ border: 1rpx solid #4d99a8;
+ color: #4d99a8;
+ font-size: 11rpx;
+ padding: 0 12rpx;
+ height: 32rpx;
+ line-height: 32rpx;
+ width: 120rpx;
+ text-align: center;
+ border-radius: 24rpx;
+ margin: 20rpx auto;
+ }
+
+ .footer-box {
+ width: 100%;
+ position: fixed;
+ bottom: 30rpx;
+ height: 80rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .submit-button {
+ width: calc(100% - 60rpx);
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #4d99a8;
+ border-radius: 4rpx;
+ color: #fff;
+ border-radius: 44rpx;
+ font-size: 32rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+</style>
+
+<style lang="scss" scoped>
+ .popup-content {
+ padding: 20rpx;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ flex-flow: column;
+
+ .input {
+ border: 1rpx solid #ccc;
+ border-radius: 4rpx;
+ padding: 4rpx 12rpx;
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #333333;
+ }
+
+ .respondent-item {
+ padding: 10rpx;
+ border-bottom: 1rpx solid #eee;
+ cursor: pointer;
+
+ &:hover {
+ background-color: #eee;
+ }
+ }
+
+ .van-list {
+ flex: 1;
+ overflow: auto;
+ }
+ }
</style>
\ No newline at end of file
diff --git a/screen/src/api/index.js b/screen/src/api/index.js
index ab60818..a20cb1c 100644
--- a/screen/src/api/index.js
+++ b/screen/src/api/index.js
@@ -49,6 +49,10 @@
export const getFighalarmDataList = (data) => {
return request('visitsAdmin/cloudService/board/api/fightingAdmin/alarmDataList', data)
}
+// 娓╂箍搴︽暟鎹�
+export const getTemperatureHumidityData = (data) => {
+ return request('visitsAdmin/cloudService/board/api/fightingAdmin/getTemperatureHumidityData', data)
+}
// 鍦哄唴璋冨害鐪嬫澘 浠婃棩鏈堝彴瀹屾垚璁㈠崟缁熻
@@ -68,7 +72,7 @@
return request('visitsAdmin/cloudService/board/api/onSitDispatch/centerData', data)
}
// 鍦哄唴璋冨害鐪嬫澘 浠婃棩杞﹁締浣滀笟鎯呭喌
-export const cncarWorkSituation = (data) => {
+export const cncarWorkSituation = (data) => {
return request('visitsAdmin/cloudService/board/api/onSitDispatch/carWorkSituation', data)
}
// 鍦哄唴璋冨害鐪嬫澘 瀹炴椂浣滀笟鏁堢巼
@@ -104,6 +108,14 @@
export const wltransportMeasure = (data) => {
return request('visitsAdmin/cloudService/board/api/platformJobRun/transportMeasure', data)
}
+// 鐗╂祦杩愯璋冨害鐪嬫澘 杞﹁締
+export const carsListPost = (data) => {
+ return request('/visitsAdmin/cloudService/board/api/platformJobRun/carsList', data)
+}
+// 鐗╂祦杩愯璋冨害鐪嬫澘 鏍规嵁杞﹁締鏌ヤ俊鎭�
+export const getCarsJobDetails = (data) => {
+ return request('/visitsAdmin/cloudService/board/api/platformJobRun/getCarsJobDetails', data, 'POST')
+}
// 瀹夐槻绠℃帶澶у睆 涓績鏁版嵁
diff --git a/screen/src/assets/images/FireFighting/fire_right.png b/screen/src/assets/images/FireFighting/fire_right.png
new file mode 100644
index 0000000..4302af9
--- /dev/null
+++ b/screen/src/assets/images/FireFighting/fire_right.png
Binary files differ
diff --git a/screen/src/utils/request.js b/screen/src/utils/request.js
index a20accf..0beb37a 100644
--- a/screen/src/utils/request.js
+++ b/screen/src/utils/request.js
@@ -2,7 +2,7 @@
const instance = axios.create({
baseURL: '/gateway_interface',
- timeout: 10000,
+ timeout: 30000,
withCredentials: true,
headers: {
shopId: 1
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 8e383e4..8035926 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -25,7 +25,7 @@
<img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
<div>
<div class="name">鏈勾绱寰幆鐑熺</div>
- <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
+ <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
data1.smokeBoxTotal.toLocaleString()
}}</span><span>鍙�</span></div>
</div>
@@ -81,25 +81,30 @@
</div>
<div class="static" v-if="data1.electricityQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.electricityQuantity.sameNum">
+ <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val"
v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
Math.abs(((data1.electricityQuantity.totalNum -
data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.electricityQuantity.ringNum">
+ <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+
<span class="val"
v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
Math.abs(((data1.electricityQuantity.totalNum -
data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</span>
</div>
</div>
<div class="item">
@@ -112,21 +117,25 @@
</div>
<div class="static" v-if="data1.waterQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
- <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+ <template v-if="data1.waterQuantity.sameNum">
+ <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+ <span class="val" v-if="data1.waterQuantity.sameNum && data1.waterQuantity.sameNum != 0">{{
Math.abs(((data1.waterQuantity.totalNum -
- data1.waterQuantity.sameNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
- <span class="val" v-else>-</span>
+ data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
- <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+ <template v-if="data1.waterQuantity.ringNum">
+ <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
+ <span class="val" v-if="data1.waterQuantity.ringNum && data1.waterQuantity.ringNum != 0">{{
Math.abs(((data1.waterQuantity.totalNum -
- data1.waterQuantity.ringNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
- <span class="val" v-else>-</span>
+ data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
</div>
</div>
<div class="item">
@@ -139,23 +148,27 @@
</div>
<div class="static" v-if="data1.gasQuantity">
<span class="lab">鍚屾瘮</span>
- <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.gasQuantity.sameNum">
+ <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
* 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
<span class="lab">鐜瘮</span>
- <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
- src="@/assets/images/ic_up.webp" alt="" />
- <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ <template v-if="data1.gasQuantity.sameNum">
+ <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
+ src="@/assets/images/ic_up.webp" alt="" />
+ <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+ </template>
<span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
* 100).toFixed(1))
}}%</span>
- <span class="val" v-else>-</span>
+ <span class="val" v-else style="margin-left: 4px;">-</span>
</div>
</div>
</div>
diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue
index 8e63144..3049f9f 100644
--- a/screen/src/views/FireFighting.vue
+++ b/screen/src/views/FireFighting.vue
@@ -37,7 +37,7 @@
<div class="line">
<span class="item name">{{ item.typeName }}</span>
<span class="item">{{ item.totalDeviceNum || 0 }}</span>
- <span class="item">{{ item.alarmDeviceNum || 0 }}</span>
+ <span class="item" style="color: #FEAF01;">{{ item.alarmDeviceNum || 0 }}</span>
<span class="item">{{ item.shieldDeviceNum || 0 }}</span>
<span class="item">{{ item.errDeviceNum || 0 }}</span>
<span class="item">{{ item.offlineDeviceNum || 0 }}</span>
@@ -130,9 +130,9 @@
<span>娓╁害/婀垮害浼犳劅鍣�</span>
</div>
<div class="right">
- <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
- <div class="num">1/5</div>
- <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
+ <img @click="changeData8(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
+ <div class="num">{{dataIndex8 + 1}}/{{ dataList8.length }}</div>
+ <img @click="changeData8(1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
</div>
</div>
<div class="list_wrap">
@@ -140,19 +140,19 @@
<img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
<span>鍗歌揣鍖�1</span>
</div>
- <div class="list">
+ <div class="list" v-if="dataList8 && dataList8.length > 0">
<div class="item">
<img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
<div class="content">
- <div class="num">23<span>掳C</span></div>
- <div class="la">闃堝�� 0锝�100掳C</div>
+ <div class="num">{{ dataList8[dataIndex8].temperatureData?.latestValue }}<span>掳C</span></div>
+ <div class="la">闃堝�� {{ dataList8[dataIndex8].temperatureData?.alarmLow }}锝瀧{ dataList8[dataIndex8].temperatureData?.alarmHigh }}掳C</div>
</div>
</div>
<div class="item">
<img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
<div class="content">
- <div class="num">23<span>%</span></div>
- <div class="la">闃堝�� 0锝�100%</div>
+ <div class="num">{{ dataList8[dataIndex8].humidityData?.latestValue }}<span>%</span></div>
+ <div class="la">闃堝�� {{ dataList8[dataIndex8].humidityData?.alarmLow }}锝瀧{ dataList8[dataIndex8].humidityData?.alarmHigh }}</div>
</div>
</div>
</div>
@@ -191,9 +191,9 @@
<div class="liquidlevel_wrap">
<div class="liquidlevel" id="liquidlevel"></div>
<div class="unit">3.45 <span>M</span></div>
- <div class="place">闃堝�� 0锝�4.50M</div>
+ <div class="placeT">闃堝��</div>
</div>
-
+ <div class="place">闃堝�� 0锝�4.50M</div>
</div>
</div>
</div>
@@ -218,12 +218,12 @@
<div class="separate"></div>
<div class="item">
<div>璁″垝缁翠繚</div>
- <div class="num active">{{ dataList5.planProtectTotal }}</div>
+ <div class="num acc">{{ dataList5.planProtectTotal }}</div>
</div>
<div class="separate"></div>
<div class="item">
<div>缁翠繚鐜�</div>
- <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="num active">{{
+ <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="acc num">{{
((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
</div>
</div>
@@ -326,7 +326,8 @@
getFightingcenterData,
getFightingDeAlarm,
getFightingDeviceY,
- getFighalarmDataList
+ getFighalarmDataList,
+ getTemperatureHumidityData
} from '@/api'
const colors = ['#FEAF01', '#01ABFE', '#51F9E4']
@@ -746,8 +747,9 @@
const data4 = dataList3.value.map(i => i.errNum)
const months = dataList3.value.map(i => {
return i.startDate.substring(5, 7) + '鏈�'
- }
- )
+ })
+
+
const option = {
legend: {
x: "center",
@@ -919,6 +921,23 @@
})
}
+const dataList8 = ref([])
+const dataIndex8 = ref(0)
+const getData8 = () => {
+ getTemperatureHumidityData().then(res => {
+ dataList8.value = res.data || []
+ })
+}
+const changeData8 = (num) => {
+ if(dataIndex8.value == dataList8.value.length - 1 && num > 0){
+ dataIndex8.value = 0
+ }else if (dataIndex8.value == 0 && num < 0){
+ dataIndex8.value = dataList8.value.length - 1
+ }else{
+ dataIndex8.value = dataIndex8.value + num
+ }
+}
+
const autoplayFlag = (list = [], leng = 4, time = 2000) => {
if (list.length > leng) {
return { delay: time, disableOnInteraction: false }
@@ -953,6 +972,7 @@
getData5()
// getData6()
getData7()
+ getData8()
setInterval(() => {
getData2()
getData3()
@@ -963,6 +983,7 @@
setInterval(() => {
getData5()
+ getData8()
}, 60 * 60 * 1000)
@@ -973,7 +994,7 @@
loopFn1()
loopFn2()
}, 12000)
-
+
})
@@ -1173,6 +1194,7 @@
.content_wrap {
flex: 1;
+ flex-shrink: 0;
margin-right: 20px;
.title_wrap {
@@ -1216,8 +1238,9 @@
}
.icon {
- width: 13px;
- height: 16px;
+ width: 30px;
+ cursor: pointer;
+ /* height: 16px; */
}
}
}
@@ -1248,7 +1271,17 @@
.item {
display: flex;
align-items: center;
-
+ position: relative;
+ .place{
+ position: absolute;
+ top: 120px;
+ right: 70px;
+ z-index: 999;
+ font-size: 13px;
+ color: #869CC9;
+ width: 120px;
+ text-align: center;
+ }
.icon {
width: 70px;
height: 70px;
@@ -1278,7 +1311,6 @@
text-align: center;
position: relative;
left: 30px;
-
.watergage {
width: 130px;
height: 112px;
@@ -1327,17 +1359,18 @@
}
}
- .place {
+ .placeT {
position: relative;
bottom: 10px;
left: 4px;
font-size: 44px;
color: #869CC9;
+ opacity: 0;
}
.liquidlevel {
- width: 320px;
- height: 420px;
+ width: 300px;
+ height: 396px;
}
}
@@ -1372,6 +1405,17 @@
margin-top: 12px;
font-weight: bold;
font-size: 32px;
+
+ }
+
+ .acc {
+ background-image: -webkit-linear-gradient(top,
+ #ffffff 0%,
+ #c8ddff 66%,
+ #95eefc 72%,
+ #95eefc 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
}
.active {
diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue
index ccf7558..5e96964 100644
--- a/screen/src/views/LogisticsCenter.vue
+++ b/screen/src/views/LogisticsCenter.vue
@@ -722,7 +722,6 @@
})
myChart.on('click', function (params) {
console.log(params.name)
-
})
window.addEventListener('resize', function () {//鎵ц
myChart.resize()
diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue
index 8a4cebb..51cf166 100644
--- a/screen/src/views/LogisticsEfficiency.vue
+++ b/screen/src/views/LogisticsEfficiency.vue
@@ -3,7 +3,7 @@
<div class="main_app">
<img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" />
<div class="main_header">
- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
+ <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> -->
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-璋冨害鑳芥晥璺熻釜</div>
<div class="time_wrap">
<span class="date">{{ date }}</span>
@@ -151,21 +151,33 @@
<div class="list">
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_zaitu@2x.png" alt="">
- <span>鍦ㄩ�旓細{{ 8 }}</span>
+ <span>鍦ㄩ�旓細{{ data7.busyNum }}</span>
</div>
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_kongxian@2x.png" alt="">
- <span>绌洪棽锛歿{ 8 }}</span>
+ <span>绌洪棽锛歿{ data7.idleNum }}</span>
</div>
<div class="item">
<img src="@/assets/images/LogisticsCenter/car_lixian@2x.png" alt="">
- <span>绂荤嚎锛歿{ 8 }}</span>
+ <span>绂荤嚎锛歿{ data7.offlineNum }}</span>
</div>
</div>
<div class="echart_wrap">
<div ref="echartMap" class="echart_map" id="echartMap"></div>
</div>
-
+ <div class="warnning_info">
+ <div class="head" @click="isShowCarW = !isShowCarW">
+ <img src="../assets/images/FireFighting/fire_right.png" alt="">
+ <span>杞﹁締鎶ヨ</span>
+ </div>
+ <div v-if="isShowCarW" class="war_list">
+ <div class="line" v-for="item in data7.eventList">
+ <div class="id_card">{{ item.carCode }}</div>
+ <div class="title">{{ item.title }}</div>
+ <div v-if="item.time">{{ item.time.slice(11) }}</div>
+ </div>
+ </div>
+ </div>
</div>
</div>
<div class="right_box">
@@ -259,7 +271,7 @@
</div>
</div>
<!-- -->
- <div class="modal" v-if="showModal">
+ <div class="modal" v-if="activeCar && activeCar.phone">
<div class="title_head">
<img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt="">
<span>鐨朼222</span>
@@ -314,7 +326,7 @@
</div>
</div>
</div>
- <div class="modal_mask" v-if="showModal" @click="showModal = false"></div>
+ <div class="modal_mask" v-if="activeCar && activeCar.phone" @click="activeCar = {}"></div>
</div>
</v-scale-screen>
</template>
@@ -336,6 +348,8 @@
wlstockList,
wltotalInList,
wltransportMeasure,
+ carsListPost,
+ getCarsJobDetails
} from '@/api'
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
@@ -351,13 +365,6 @@
time.value = dayjs().format('HH:mm:ss')
}, 1000)
-
-const showModal = ref(false)
-const modalTab = ref(0)
-const modalTabClick = (val) => {
- modalTab.value = val
-}
-
const initEnergy = () => {
@@ -381,42 +388,62 @@
left: '3%',
right: '4%',
bottom: '3%',
- top: '18%',
+ top: '26%',
containLabel: true
},
tooltip: {
trigger: 'axis'
},
- xAxis: [{
- nameGap: 5,
- type: 'category',
- axisLine: {
- show: true,
- lineStyle: {
- color: '#999'
+ xAxis: [
+ {
+ nameGap: 5,
+ type: 'category',
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#999'
+ },
},
- },
- axisLabel: {
- color: '#869CC9'
- // fontSize: 24,
- },
- axisTick: {
- show: false,
- },
- data: dataList2.value.map(i => i.planDate),
- }],
+ axisLabel: {
+ color: '#869CC9'
+ // fontSize: 24,
+ },
+ axisTick: {
+ show: false,
+ },
+ data: dataList2.value.map(i => i.planDateStrT),
+ }
+ ],
yAxis: [
{
- nameTextStyle: {
- color: '#869CC9',
- },
- offset: 0,
- name: '涓囨敮',
type: 'value',
+ name: '涓�',
+ min: 0,
axisLabel: {
show: true,
color: "#869CC9",
},
+ splitLine: {
+ show: true,
+ lineStyle: {
+ width: 1,
+ color: "rgba(49,105,129,0.4)",
+ type: 'dashed'
+ }
+ },
+ // interval: 5,
+ axisLabel: {
+ formatter: '{value}'
+ }
+ },
+ {
+ type: 'value',
+ name: '涓囨敮',
+ nameTextStyle: {
+ color: '#869CC9',
+ },
+ offset: 0,
+ type: 'value',
axisLine: {
show: true,
},
@@ -428,18 +455,10 @@
type: 'dashed'
}
},
- },
- {
- type: 'value',
- name: '%',
- min: 0,
- max: 100,
- // interval: 5,
axisLabel: {
- formatter: '{value}%'
- },
- splitLine: false
- }
+ formatter: '{value}'
+ }
+ },
],
series: [
{
@@ -452,6 +471,7 @@
position: 'top',
color: '#fff',
},
+ yAxisIndex: 1,
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
@@ -475,6 +495,7 @@
name: '浠诲姟瀹屾垚閲�',
type: 'bar',
barWidth: 10,
+ yAxisIndex: 1,
label: {
show: false,
position: 'top',
@@ -504,6 +525,7 @@
type: 'line',
smooth: false,
showAllSymbol: true,
+ yAxisIndex: 0,
symbol: 'none',
lineStyle: {
color: "#1a43bc"
@@ -555,26 +577,24 @@
const initMap = () => {
var myChart = echarts.init(echartMap.value)
echarts.registerMap('js', ahJSON)
- var scatterData = [
- {
- name: '骞煎効鍥�',
- num: 15,
- color: ['#1984ff', '#184b8d'],
- img: icKongxian,
- data: [
- { name: '', value: [117.25, 31.49] },
- ],
- },
- {
- name: '灏忓',
- num: 11,
- color: ['#f16c08', '#7f3710'],
- img: icLixian,
- data: [
- { name: '', value: [118.5, 31.08] },
- ],
+ const scatterData = data7.value.carsList.map(item => {
+ return {
+ name: item.terminalId,
+ img: item.status == 0 ? icLixian : item.status == 1 || item.status == 2 ? icZaitu : icKongxian,
+ data: [{code: item.plateNum, value: [item.longitude,item.latitude]}]
}
- ]
+ })
+ // var scatterData = [
+ // {
+ // name: '骞煎効鍥�',
+ // num: 15,
+ // // color: ['#1984ff', '#184b8d'],
+ // img: icKongxian,
+ // data: [
+ // { name: 'asdasdas ', value: [117.25, 31.49] },
+ // ],
+ // },
+ // ]
let serData = []
scatterData.forEach((item) => {
serData.push({
@@ -609,30 +629,11 @@
},
symbolSize: [32, 40],
hoverAnimation: true,
-
zlevel: 99,
data: item.data,
})
}
)
- var center = {
- '鍚堣偉甯�': [117.25, 31.83],
- '婊佸窞甯�': [118.32, 32.3],
- '鑺滄箹甯�': [118.43, 31.35],
- '闃滈槼甯�': [115.38, 32.89],
- '铓屽煚甯�': [117.39, 32.92],
- '娣崡甯�': [116.99, 32.63],
- '椹瀺灞卞競': [118.5, 31.71],
- '瀹夊簡甯�': [117.05, 30.52],
- '榛勫北甯�': [118.33, 29.71],
- '閾滈櫟甯�': [117.81, 30.94],
- '瀹垮窞甯�': [116.98, 33.64],
- '娣寳甯�': [116.8, 33.9],
- '鍏畨甯�': [116.51, 31.75],
- '姹犲窞甯�': [117.49, 30.66],
- '瀹e煄甯�': [118.76, 30.94],
- '浜冲窞甯�': [115.78, 33.84],
- }
var data = [
{ name: "鍚堣偉甯�", value: 3 },
{ name: "婊佸窞甯�", value: 0 },
@@ -659,16 +660,6 @@
x: 'center',
textStyle: {
color: '#ffffff'
- }
- },
- tooltip: {
- trigger: 'item',
- formatter: function (params) {
- if (typeof (params.value)[2] == "undefined") {
- return params.name + ' : ' + params.value
- } else {
- return params.name + ' : ' + params.value[2]
- }
}
},
visualMap: {
@@ -712,7 +703,7 @@
symbolSize: 14,
label: {
normal: {
- show: true,
+ show: false,
formatter: function (params) {
return '{fline|鍦扮偣锛�' + params.data.city + '}\n{tline|' + (params.data.info || '鍙戠敓xx闆嗕欢') + '}'
},
@@ -751,10 +742,7 @@
label: {
show: true,
color: '#ffffff',
- emphasis: {
- color: 'white',
- show: false
- }
+
},
itemStyle: {
normal: {
@@ -763,9 +751,15 @@
areaColor: '#1d3b60'
},
emphasis: {
- areaColor: '#FA8C16',
- borderWidth: 1,
- color: '#428598'
+ disabled: true,
+ // areaColor: '#FA8C16',
+ // borderWidth: 1,
+ // color: '#428598',
+ label: {
+ show: true, // 濮嬬粓鏄剧ず鏂囧瓧
+ color: '#fff' // 璁剧疆鏂囧瓧棰滆壊
+ },
+ areaColor: null
}
},
data: data
@@ -775,10 +769,22 @@
}
myChart.setOption(option)
+ myChart.on('click', function (params) {
+ const item = params.data
+ getCarsJobDetails({carCode: item.code}).then(res => {
+ activeCar.value = res.data
+ })
+ })
window.addEventListener('resize', function () {//鎵ц
myChart.resize()
})
}
+const activeCar = ref({})
+const modalTab = ref(0)
+const modalTabClick = (val) => {
+ modalTab.value = val
+}
+
const data1 = ref({})
const activeTab1 = ref(0)
@@ -798,11 +804,17 @@
const dataList2 = ref([])
const activeTab2 = ref(0)
-const tabClick2 = (val) => { activeTab2.value = val }
+const tabClick2 = (val) => {
+ activeTab2.value = val
+ getData2()
+}
const getData2 = () => {
wltransportMeasure({ queryType: activeTab2.value }).then(res => {
- const result = res.data
+ const result = res.data || []
dataList2.value = result
+ dataList2.value.forEach(item => {
+ item.planDateStrT = activeTab2.value == 2 ? dayjs(item.planDateStr).format('M') : dayjs(item.planDateStr).format('M.D')
+ })
initEnergy()
})
}
@@ -831,7 +843,10 @@
}
const data4 = ref({})
const activeTab4 = ref(0)
-const tabClick4 = (val) => { activeTab4.value = val }
+const tabClick4 = (val) => {
+ activeTab4.value = val
+ getData4()
+}
const getData4 = () => {
wljobData({ queryType: activeTab4.value }).then(res => {
const result = res.data
@@ -861,6 +876,16 @@
wlstockList().then(res => {
const result = res.data
dataList6.value = result
+ })
+}
+
+const isShowCarW = ref(false)
+const data7 = ref({})
+const getData7 = () => {
+ carsListPost().then(res => {
+ const result = res.data || {}
+ data7.value = result
+ initMap()
})
}
@@ -896,8 +921,7 @@
getData4()
getData5()
getData6()
-
- initMap()
+ getData7()
setTimeout(() => {
loopFn1()
@@ -1212,7 +1236,7 @@
}
.echart_wrap {
- width: 100%;
+ width: 86%;
height: 100%;
.echart_map {
@@ -1221,6 +1245,52 @@
/* transform: rotate(60deg); */
}
}
+
+ .warnning_info {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ border-top: 1px solid #5ecbce;
+ border-bottom: 1px solid #5ecbce;
+ .head {
+ display: flex;
+ width: 280px;
+ height: 57px;
+ background: rgba(0, 30, 63, 0.4);
+ backdrop-filter: blur(5px);
+ display: flex;
+ align-items: center;
+ padding-left: 10px;
+ font-weight: bold;
+ font-size: 16px;
+ cursor: pointer;
+ img {
+ width: 14px;
+ margin-right: 10px;
+ }
+ }
+
+ .war_list {
+ max-height: 300px;
+ overflow: auto;
+ .line {
+ font-size: 13px;
+ color: #D2E0FF;
+ display: flex;
+ align-items: center;
+ height: 30px;
+ div{
+ flex: 3;
+ }
+ .id_card{
+ color: #00F2F3;
+ }
+ .title{
+ flex: 4;
+ }
+ }
+ }
+ }
}
}
diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue
index 1496439..17f7c0a 100644
--- a/screen/src/views/SecurityControl.vue
+++ b/screen/src/views/SecurityControl.vue
@@ -422,7 +422,7 @@
</div>
<div class="list two-swiper">
<div class="swiper-wrapper">
- <template v-for="item, i in dataList2">
+ <template v-for="item, i in dataList2.filter(i => i.total > 0)">
<div class="item two-swiper-slide swiper-slide">
<div class="line">
<div class="driver">{{ item.deviceType }}</div>
@@ -948,7 +948,7 @@
initialSlide: 0,
direction: 'vertical', //绔栫洿鏂瑰悜
slidesPerView: 3,
- autoplay: autoplayFlag(dataList2.value, 3, 4000),
+ autoplay: autoplayFlag(dataList2.value.filter(i => i.total > 0), 3, 4000),
observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
})
}
@@ -1688,7 +1688,8 @@
display: flex;
justify-content: center;
align-items: center;
- padding: 16px 24px;
+ padding-top: 16px;
+ padding-left: 24px;
.echart_wrap {
position: relative;
@@ -1724,7 +1725,7 @@
}
.list {
- margin-left: 36px;
+ margin-left: 32px;
flex: 1;
display: flex;
flex-direction: column;
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index 4bc1764..159aea2 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -2,7 +2,6 @@
<v-scale-screen width="1920" height="960">
<div class="main_app">
<img src="@/assets/images/task/bg@2x.png" class="main_bg" alt="" />
- <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
<div class="main_header">
<img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-浣滀笟鏁堣兘缁熺</div>
@@ -66,7 +65,7 @@
<div class="list one-swiper">
<div class="swiper-wrapper">
<div class="line one-swiper-slide swiper-slide" v-for="item, i in dataList2" :key="i">
- <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
+ <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
<div class="id_card">{{ item.platformName }}</div>
<div class="wrap">
<ChargeRate :rate="item.rate" />
@@ -130,9 +129,7 @@
</div>
</div>
<div class="center_box_bg">
- <!-- <div class="no no1" @click="workModalClick">1</div>
- <div class="no no2" @click="workModalClick">2</div>
- <div class="no no3" @click="workModalClick">3</div> -->
+ <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt="">
<div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal">
<img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt="">
<div class="head">
@@ -165,9 +162,11 @@
</div>
</div>
<div class="center_box_two">
- <!-- <div class="videos">
- <div class="video" v-for="i in 4"></div>
- </div> -->
+ <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos">
+ <div class="video" v-for="indexCode in data4.videoIndexCodes">
+ <Video v-if="indexCode" :href="data4.videoPluginUrl" :indexCode="indexCode" />
+ </div>
+ </div>
<div class="list">
<div class="line header">
<div>鏈堝彴鍚嶇О</div>
@@ -227,22 +226,24 @@
<div class="echart_wrap">
<div class="echart3" id="echart3"></div>
</div>
- <div class="list">
- <div class="line" v-for="item, i in data6?.platformLogList">
- <div class="time_wrap">
- <div class="time" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
- <div class="sp" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }"></div>
- <div class="dian" :style="{
- backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
- }"></div>
+ <div class="list four-swiper">
+ <div class="swiper-wrapper">
+ <div class="line four-swiper-slide swiper-slide" v-for="item, i in data6?.platformLogList">
+ <div class="time_wrap">
+ <div class="time" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }" v-if="item.createDate">{{ item.createDate.slice(11, 16) }}</div>
+ <div class="sp" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }"></div>
+ <div class="dian" :style="{
+ backgroundColor: item.objType == 5 ? '#4ca8f7' : item.objType == 6 ? '#f2b23e' : item.objType == 10 ? '#4673f6' : '#4aa38f'
+ }"></div>
+ </div>
+ <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
+ <div class="status">{{ statusMap[item.objType] }}</div>
+ <div class="desc">{{ item.content }}</div>
</div>
- <div class="id_card">{{ item.carCodeFront || item.param4 }}</div>
- <div class="status">{{ statusMap[item.objType] }}</div>
- <div class="desc">{{ item.content }}</div>
</div>
</div>
</div>
@@ -273,7 +274,7 @@
<span>鍛婅锛歿{ item.eventContent }}</span>
</div>
<div class="wrap">
- <!-- <span style="margin-right: 30px;">鐘舵�侊細寰呭鐞�</span> -->
+ <span style="margin-right: 50px;">{{ item.platformName }}</span>
<span>宸插彂鐢燂細{{ item.haveTime }}</span>
</div>
</div>
@@ -305,6 +306,7 @@
dayjs.extend(duration)
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
+import Video from './videoUrl/Video.vue'
import {
cnplatformGroupFinish,
cnplatformDuration,
@@ -563,7 +565,7 @@
}]),
]
const temp = []
- temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100.0' : 0 })
+ temp.push({ name: '绛惧埌鏁�', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100' : 0 })
temp.push({ name: '宸插彨鍙�', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
temp.push({ name: '宸蹭綔涓�', value: data4.value?.workedNum || 0, rate: data4.value?.signedNum ? (data4.value.workedNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
temp.push({ name: '宸插畬鎴�', value: data4.value?.doneNum || 0, rate: data4.value?.signedNum ? (data4.value.doneNum / data4.value?.signedNum * 100).toFixed(1) : 0 })
@@ -754,7 +756,7 @@
const data6 = ref({})
const getData6 = () => {
- cncarWorkSituation({ size: 7 }).then(res => {
+ cncarWorkSituation({ size: 30 }).then(res => {
const result = res.data
data6.value = result
})
@@ -773,6 +775,23 @@
const showWorkModal = ref(false)
const workModalParam = ref({})
+// point_icon
+const pointList = ref([
+ { left: 230, top: 190 },
+ { left: 265, top: 180 },
+ { left: 300, top: 170 },
+ { left: 335, top: 160 },
+ { left: 370, top: 150 },
+
+ { left: 530, top: 50 },
+ { left: 550, top: 65 },
+ { left: 570, top: 75 },
+ { left: 590, top: 75 },
+ { left: 600, top: 80 },
+ { left: 850, top: 60 },
+
+])
+
const platformClick = (val) => {
workModalParam.value = val
console.log(val)
@@ -812,6 +831,15 @@
observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
})
}
+const loopFn6 = () => {
+ var newSwiper1 = new Swiper('.four-swiper', {
+ initialSlide: 0,
+ direction: 'vertical', //绔栫洿鏂瑰悜
+ slidesPerView: 7,
+ autoplay: autoplayFlag(data6.value.platformLogList, 7, 4000),
+ observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+ })
+}
const autoplayFlag = (list = [], leng = 4, time = 2000) => {
if (list.length > leng) {
return { delay: time, disableOnInteraction: false }
@@ -845,6 +873,7 @@
loopFn2()
loopFn5()
loopFn7()
+ loopFn6()
}, 12000)
})
@@ -1068,6 +1097,13 @@
display: flex;
justify-content: center;
align-items: center;
+ position: relative;
+ .point_icon {
+ position: absolute;
+ left: 850px;
+ top: 60px;
+ }
+
.no {
width: 28px;
height: 28px;
@@ -1149,8 +1185,7 @@
.center_box_two {
width: 100%;
- background: rgba(0, 86, 255, 0.05);
- backdrop-filter: blur(5px);
+
.videos {
width: 100%;
@@ -1173,7 +1208,8 @@
width: 100%;
height: 210px;
overflow-y: auto;
-
+ background: rgba(0, 86, 255, 0.05);
+ backdrop-filter: blur(5px);
.two-swiper {
height: 180px;
overflow: hidden;
@@ -1203,7 +1239,7 @@
}
.lined {
- background: rgba(0,160,255,0.6) !important;
+ background: rgba(0, 160, 255, 0.6) !important;
font-weight: 600 !important;
}
@@ -1226,6 +1262,7 @@
backdrop-filter: blur(5px);
background: rgba(0, 86, 255, 0.05);
backdrop-filter: blur(5px);
+
.static_wrap {
display: flex;
padding: 20px 0 15px;
@@ -1261,14 +1298,16 @@
.list {
margin: 0 20px 0;
- width: 100%;
- height: 222px;
+ width: 430px;
+ height: 231px;
+ overflow: hidden;
+ scrollbar-width: none;
.line {
display: flex;
align-items: center;
font-size: 12px;
- height: 33px;
+ height: 33px !important;
color: #D2E0FF;
width: 100%;
@@ -1321,6 +1360,7 @@
.right_box_two {
padding: 20px 20px 0;
margin-top: 20px;
+
.list {
height: 220px;
overflow: hidden;
@@ -1328,6 +1368,7 @@
background: rgba(0, 86, 255, 0.05);
backdrop-filter: blur(5px);
padding-top: 15px;
+
.item {
display: flex;
font-size: 13px;
@@ -1561,12 +1602,6 @@
position: relative;
z-index: -2;
font-size: 14px;
-
- .point_icon {
- position: absolute;
- left: 800px;
- top: 420px;
- }
.main_bg {
position: absolute;
--
Gitblit v1.9.3