瀏覽代碼

首页调整, 消息调整调整

zhengkaixin 6 天之前
父節點
當前提交
293cae4a46
共有 6 個文件被更改,包括 950 次插入790 次删除
  1. 8 1
      apis/pagejs/pagejsIndex.js
  2. 1 1
      config/.env.dev.js
  3. 930 782
      pages/index/index.vue
  4. 1 1
      pages/station/stationInfo.vue
  5. 1 1
      pages/task/listTask.vue
  6. 9 4
      pages/task/maintenanceTaks.vue

+ 8 - 1
apis/pagejs/pagejsIndex.js

@@ -1,7 +1,14 @@
 import request from '@/apis/utils/request'
 
 
-
+export function recordList(data) {
+	var url='/mobile/inspectionRecord/recordList';
+	return request({
+		method: 'post',
+		data: data,
+		url: url
+	})
+}
 
 export function errList(data) {
 	var url='/mobile/inspectionError/errList';

+ 1 - 1
config/.env.dev.js

@@ -5,7 +5,7 @@ const UNI_APP = {
 	
 	BASE_URL: 'https://youdian.hbjp.com.cn/charging-station-server/',
 	
-	//BASE_URL: 'https://youdian-test.hbjp.com.cn/charging-station-test/',
+	BASE_URL: 'https://youdian-test.hbjp.com.cn/charging-station-test/',
 	
 	
 	//BASE_URL:'http://192.168.8.162:8081/charging-station/', //sz

+ 930 - 782
pages/index/index.vue

@@ -1,792 +1,940 @@
-<template>
-	<view>
-		<u-navbar v-show="false" title="首页" title-color="#101010"></u-navbar>
-		<view class="back-blue">
-			<view class="back-color">
-
-			</view>
-		</view>
-		<view class="main_top">
-			<view class="main_top1">
-				<view class="logo_img">
-					<image class="img" src="@/assets/img/logo/logo.png" mode=""></image>
-				</view>
-				<view class="logo_text">
-					<view class="logo_text1">
-						优电联盟
-
-					</view>
-					<view class="logo_text2">
-						巡检端
-					</view>
-				</view>
-			</view>
-			<view class="main_top2">
-				<!-- 消息提醒位置 -->
-			</view>
-		</view>
-		<view class="main_navigation panel"  >
-			<view class="item-na end" @click="gotoUrl('/pages/task/addTask')">
-				<view class="na-img">
-					<image class="img" src="@/assets/img/index/na-1.png" mode=""></image>
-				</view>
-				<view class="na-text ">
-					故障上报
-				</view>
-			</view>
-			<view class="item-na-b"  v-if="isAdmin"  >
-
-			</view>
-			<view class="item-na end"   @click="gotoUrl('/pages/team/teamList')" v-if="isAdmin"  >
-				<view class="na-img">
-					<image class="img" src="@/assets/img/index/na-3.png" mode=""></image>
-				</view>
-				<view class="na-text">
-					团队管理
-				</view>
-			</view>
-			
-			<view class="item-na-b"  >
-			
-			</view>
-			
-			<view class="item-na end"   @click="gotoUrl('/pages/inspection/list')"   >
-				<view class="na-img">
-					<image class="img" src="@/assets/img/index/na-2.png" mode=""></image>
-				</view>
-				<view class="na-text">
-					巡检记录
-				</view>
-			</view>
-			
-			
-		</view>
-		<view class="main_statuspanel panel">
-			<view class="top-main">
-				<view class="title-main">
-					充电枪状态
-
-				</view>
-				<view class="goto-main"  @click="gotoUrl('/pages/station/stationList')">
-					查看详情
-					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-				</view>
-			</view>
-			<view class="body">
-				<view class="pie">
-					<view id="body1pie1" class="body1pie">
-
-					</view>
-					
-					<view  class="body2pie" v-if="datafloorStatus.gunNum">
-						<view class="v1">{{datafloorStatus.gunNum}}</view>
-						<view class="v2">单位:把</view>
-					</view>
-				</view>
-				<view class="item-list">
-					<view class="item-status">
-						<view class="num">
-							{{datafloorStatus.gunWorkNum}}
-						</view>
-						<view class="statusN">
-							<view class="statusC status1">
-
-							</view>
-							<view class="statusT">
-								在用
-							</view>
-						</view>
-					</view>
-					<view class="item-status">
-						<view class="num">
-							{{datafloorStatus.gunFaultNum}}
-						</view>
-						<view class="statusN">
-							<view class="statusC status2">
-
-							</view>
-							<view class="statusT">
-								故障
-
-							</view>
-						</view>
-					</view>
-					
-					<view class="item-status" >
-						<view class="num">
-							{{datafloorStatus.gunFreeNum}}
-						</view>
-						<view class="statusN">
-							<view class="statusC status4">
-
-							</view>
-							<view class="statusT">
-								空闲
-
-							</view>
-						</view>
-					</view>
-					
-					<view class="item-status">
-						<view class="num">
-							{{datafloorStatus.gunOfflineNum}}
-						</view>
-						<view class="statusN">
-							<view class="statusC status3">
-					
-							</view>
-							<view class="statusT">
-								离线
-					
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="main_list1 ">
-			
-			<view class="top-main" >
-			<u-tabs :list="tabslist"
-			
-			 :current="current" @change="change"></u-tabs>
-				<view class="goto-main"  @click="gotoUrl('/pages/task/listTask')">
-					全部故障记录
-					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-				</view>
-			</view>
-			 
-			<view class="list"  >
-				<view class="item" 
-				 v-for="(item,index) in dataerrList" 
-				 @click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)"
-				 :key="index">
-					<view class="icon">
-						
-						<image class="img" v-if="item.errorCodeImage" :src="item.errorCodeImage" mode=""></image>
+<template>
+	<view>
+		<u-navbar v-show="false" title="首页" title-color="#101010"></u-navbar>
+		<view class="back-blue">
+			<view class="back-color">
+
+			</view>
+		</view>
+		<view class="main_top">
+			<view class="main_top1">
+				<view class="logo_img">
+					<image class="img" src="@/assets/img/logo/logo.png" mode=""></image>
+				</view>
+				<view class="logo_text">
+					<view class="logo_text1">
+						优电联盟
+
+					</view>
+					<view class="logo_text2">
+						巡检端
+					</view>
+				</view>
+			</view>
+			<view class="main_top2">
+				<!-- 消息提醒位置 -->
+			</view>
+		</view>
+		<view class="main_navigation panel">
+			<view class="item-na end" @click="gotoUrl('/pages/task/addTask')">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-1.png" mode=""></image>
+				</view>
+				<view class="na-text ">
+					故障上报
+				</view>
+			</view>
+			<view class="item-na-b" v-if="isAdmin">
+
+			</view>
+			<view class="item-na end" @click="gotoUrl('/pages/team/teamList')" v-if="isAdmin">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-3.png" mode=""></image>
+				</view>
+				<view class="na-text">
+					团队管理
+				</view>
+			</view>
+
+			<view class="item-na-b">
+
+			</view>
+
+			<view class="item-na end" @click="gotoUrl('/pages/inspection/list')">
+				<view class="na-img">
+					<image class="img" src="@/assets/img/index/na-2.png" mode=""></image>
+				</view>
+				<view class="na-text">
+					巡检记录
+				</view>
+			</view>
+
+
+		</view>
+		<view class="main_statuspanel panel">
+			<view class="top-main">
+				<view class="title-main">
+					充电枪状态
+
+				</view>
+				<view class="goto-main" @click="gotoUrl('/pages/station/stationList')">
+					查看详情
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
+			</view>
+			<view class="body">
+				<view class="pie">
+					<view id="body1pie1" class="body1pie">
+
+					</view>
+
+					<view class="body2pie" v-if="datafloorStatus.gunNum">
+						<view class="v1">{{datafloorStatus.gunNum}}</view>
+						<view class="v2">单位:把</view>
+					</view>
+				</view>
+				<view class="item-list">
+					<view class="item-status">
+						<view class="num">
+							{{datafloorStatus.gunWorkNum}}
+						</view>
+						<view class="statusN">
+							<view class="statusC status1">
+
+							</view>
+							<view class="statusT">
+								在用
+							</view>
+						</view>
+					</view>
+					<view class="item-status">
+						<view class="num">
+							{{datafloorStatus.gunFaultNum}}
+						</view>
+						<view class="statusN">
+							<view class="statusC status2">
+
+							</view>
+							<view class="statusT">
+								故障
+
+							</view>
+						</view>
+					</view>
+
+					<view class="item-status">
+						<view class="num">
+							{{datafloorStatus.gunFreeNum}}
+						</view>
+						<view class="statusN">
+							<view class="statusC status4">
+
+							</view>
+							<view class="statusT">
+								空闲
+
+							</view>
+						</view>
+					</view>
+
+					<view class="item-status">
+						<view class="num">
+							{{datafloorStatus.gunOfflineNum}}
+						</view>
+						<view class="statusN">
+							<view class="statusC status3">
+
+							</view>
+							<view class="statusT">
+								离线
+
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="main_list1 panel ">
+			<view class="top-main">
+				<view class="title-main">
+					故障未处理记录
+
+
+				</view>
+				<view class="goto-main" @click="gotoUrl('/pages/task/listTask')">
+					全部故障记录
+
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
+			</view>
+
+			<view class="top-main">
+				<u-tabs :list="tabslist" v-if="0" :current="current" @change="change"></u-tabs>
+
+			</view>
+
+			<view class="list">
+				<view class="item" v-for="(item,index) in dataerrList"
+					@click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)" :key="index">
+
+					<view class="body">
+						<view class="line1">
+
+							<view class="title">
+
+
+								{{item.stationName}}
+							</view>
+							<view class="value">
+								{{item.errorCodeText}}
+
+							</view>
+
+
+						</view>
+
+						<view class="line2">
+							<view v-if="getHourDistanceArr(item.errorReportTime)==0" :class="{
+								getHourDistanceArrNum10:true,
+							
+							}">
+
+							</view>
+							<view v-else :class="{
+								getHourDistanceArrNum10:true,
+								getHourDistanceArrNum12:getHourDistanceArr(item.errorReportTime)>12,
+								getHourDistanceArrNum24:getHourDistanceArr(item.errorReportTime)>24,
+							}">
+								超{{getHourDistanceArr(item.errorReportTime) }}小时未处理</view>
+
+							<view class="value" style=" white-space: pre;">
+
+								{{item.errorReportTime}}
+							</view>
+
+						</view>
+
+
+
+					</view>
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
+
+				<u-divider color="#F44336" :isnone="dataerrRecordsTotal==0" nonetext="暂无数据"
+					v-if="dataerrRecordsTotal==0"></u-divider>
+
+
+
+
+			</view>
+
+		</view>
+
+		<view class="main_list1 panel ">
+			<view class="top-main">
+				<view class="title-main">
+					未巡检记录
+
+				</view>
+				<view class="goto-main" @click="gotoUrl('/pages/inspection/list')">
+					全部巡检记录
+
+
+					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+				</view>
+			</view>
+
+			<view class="top-main">
+				<u-tabs :list="tabslist" v-if="0" :current="current" @change="change"></u-tabs>
+
+			</view>
+
+			<view class="list-body">
+				<view class="item" v-for="(item,index) in datainsList"
+					@click="gotoUrl('/pages/inspection/add?back=1&stationId='+item.stationId)" :key="index">
+
+
+					<view class="line1">
+
+						<view class="title">
+
+
+							{{item.stationName}}
+						</view>
+						<view class="value">
+							上次巡检时间:{{lastChargeTime(item.lastInspectionTime)}}
+
+						</view>
+
+
+					</view>
+
+
+
+					<view class="line2">
 						
-						<image class="img" v-else src="@/assets/img/taskstatus/status3.png" mode=""></image>
-					</view>
-					<view class="body">
-						<view class="line1">
-							<view class="title">
-								
-								{{item.errorCodeText}}
-
-							</view>
-							<span  v-if="item.type" :class="'typeN typeN'+item.type">
-								{{item.typeN}}
-							</span>
-							
-						</view>
+						<view   v-if="getdaysDistance(item.lastInspectionTime,item.inspectionEndTime)=='-'"
 						
-						<view class="line2">
-							<view class="value">
-								{{item.stationName}} 
-							
-							</view>
-							<view class="value"    style=" white-space: pre;">
-								<span style="color: red;" v-if="isToday(item.errorReportTime)">(今日)</span>
-								{{item.errorReportTime}}
-							</view>
-							
-						</view>
-					
-
-					</view>
-					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
-				</view>
-				
-				<u-divider color="#F44336" 
-				 :isnone="dataerrRecordsTotal==0" nonetext="暂无数据"
-				 v-if="dataerrRecordsTotal>5||dataerrRecordsTotal==0"
-				 @click="gotoUrl('/pages/task/listTask?status='+tabslist[current].code)"  >故障记录{{dataerrRecordsTotal}}条,点击查看更多</u-divider>
-				
-				  
-				
-			</view>
-
-		</view>
-
-
-
-		 
-		
-		<tabbar :current="0"></tabbar>
-		
-	</view>
-</template>
-
-<script>
-	import * as API from '@/apis/pagejs/pagejsIndex.js'
-	
-	import * as echarts from 'echarts';
-	import Tabbar from '@/components/Tabbar.vue'
-
-import {
-	
-		newDate
-	} from '@/apis/utils'
-	export default {
-		components: {
-			Tabbar,
-			
-		},
-		data() {
-			return {
-				echartsList: {},
-				isReadyfloorStatus:false,
-				datafloorStatus:{},
-				roleList:[],
-				isReadyerrList:false,
-				dataerrList:[],
-				dataerrRecordsTotal:0,
-				tabslist:[
-					{
-						name: '待处理',
-						code:"geterrList0"
+						 style="color:#777777 ;" >
 						
-					}, {
-						name: '已处理',
-						code:"geterrList1"
-					}
-				],
-				current:0,
-			};
-		},
-		onLoad() {
-		//	this.roleList=
-		},
-		onShow() {
-		//	this.roleList=this.jphelp.getPersonInfoPlus().roleList
-			if(this.isReadyfloorStatus){
-				this.getfloorStatus()
-			}
-			if(this.isReadyerrList){
-				this.geterrList()
-			}
-			
-		},
-		computed:{
-				isAdmin(){
-					console.log(this.jphelp.getPersonInfo().role)
-					if(this.jphelp.getPersonInfo().role=='1'){
-							return true
-					}
-					return false
-				}
-		},
-		onReady() {
-			this.geterrList()
-			this.getfloorStatus()
-			//this.getbody1pie1()
-			this.query()
-		},
-		methods: {
-			change(e){
-				this.current=e
-				
-				this.dataerrList =[]
-				
-				this.geterrList()
-			},
-			
-			isToday(dateStr) {
-				if(!dateStr){
-					return false
-				}
-			    // 将传入的日期字符串转换为Date对象
-			    const targetDate = newDate(dateStr);
-			    // 获取当前日期
-			    const today = new Date();
-			
-			    // 比较年份、月份和日期是否相等
-			    return (
-			        targetDate.getFullYear() === today.getFullYear() &&
-			        targetDate.getMonth() === today.getMonth() &&
-			        targetDate.getDate() === today.getDate()
-			    );
-			},
-			query(){
-				uni.showLoading({
-					title: "加载中",
-					mask: true,
-				})
-				
-				API.findByOpenId({
-					noerror:true,
-					openId: this.jphelp.getOpenId(),
-				 
-				
-				}).then((response) => {
-					uni.hideLoading();
-					if(response.message){
-						uni.hideLoading();
+							未初始化
 						
-					}else{
-						this.loginset(response)
+						</view>
+						
+						<view   v-else-if="getdaysDistance(item.lastInspectionTime,item.inspectionEndTime)<5"
+						 style="color:#FF7B00 ;" >
+
+							{{getdaysDistance(item.lastInspectionTime,item.inspectionEndTime)}}天后到期
+
+						</view>
+
+						<view   v-else  style="color: #EE3138 ;" >
 						
-						 
-					}
-					this.roleList=this.jphelp.getPersonInfoPlus().roleList
-					
-					
-				
-				}).catch(error => {
-					
-					uni.hideLoading();
-					
-				})
-			},
-			geterrList(){
-				var status=0
-				var code=this.tabslist[this.current].code
-				if(code=="geterrList0"){
-					status=0
-				}
-				if(code=="geterrList1"){
-					status=1
-				}
-				API.errList({
-					pageIndex:1,
-					pageSize:5,
-					status:status,
-				}).then((response) => {
-					this.dataerrList=response.data.data
-					this.dataerrRecordsTotal=response.data.recordsTotal
-					this.isReadyerrList=true
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				
-				})
-			},
-			getfloorStatus(){
-				
-				API.floorStatus().then((response) => {
-					var obj=response.data;
-					var sz=['gunFaultNum','gunFreeNum','gunOfflineNum','gunWorkNum']
-					var bl=false
-					for(var i in sz){
-						if(obj[sz[i]]!=this.datafloorStatus[sz[i]]){
-							bl=true
-							this.datafloorStatus=obj
-						}
-					}
-					
-					this.isReadyfloorStatus=true
-					if(bl){
-						this.getbody1pie1()
-					}
-					
-				}).catch(error => {
-					uni.showToast({
-						title: error,
-						icon: "none"
-					})
-				
-				})
-			},
-			getbody1pie1() {
-				var key = "body1pie1"
-				var myChart = this.echartsList[key];
-				if (!myChart) {
-					myChart = echarts.init(document.getElementById(key), null, {
-						width: uni.upx2px(88 * 2),
-						height: uni.upx2px(88 * 2)
-					})
-
-				}
-				myChart.clear()
-				var option = {
-				  
-					series: [{
-						silent: true,
-						type: 'pie',
-						radius: ['80%', '100%'],
-						label: {
-							show: false,
-						},
-
-						data: [{
-								value: this.datafloorStatus.gunWorkNum,
-								itemStyle: {
-									color: 'rgba(0, 185, 98, 1)'
-								}
-							},
-							{
-									value: this.datafloorStatus.gunFreeNum,
-									itemStyle: {
-										color: '#999999'
-									}
-								},
-							{
-								value: this.datafloorStatus.gunOfflineNum,
-								itemStyle: {
-									color: '#FF9600'
-								}
-							},
-							{
-								value: this.datafloorStatus.gunFaultNum,
-								itemStyle: {
-									color: '#FF3D00'
-								}
-							}
-						]
-					}],
-					grid: {
-						top: 0,
-						left: 0,
-						right: 0,
-						bottom: 0,
-						containLabel: true
-					},
-
-				}
-				myChart.setOption(option);
-				console.log(option)
-				this.echartsList[key] = myChart;
-			}
-		}
-	}
-</script>
-<style>
-	page{
-		background-color: #FFFFFF;
-	}
-</style>
-<style lang="scss">
-	.back-blue {
-		height: 0px;
-
-		.back-color {
-			height: 656rpx;
-			background: linear-gradient(180deg, rgba(22, 119, 255, 1) 53%, rgba(203, 234, 255, 0) 100%);
-
-		}
-	}
-
-	.top-main {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-
-		.title-main {
-			color: rgba(51, 51, 51, 1);
-			font-size: 32rpx;
-			font-weight: bold;
-		}
-
-		.goto-main {
-			color: rgba(131, 131, 131, 1);
-			font-size: 24rpx;
-		}
-	}
-
-	.panel,
-	.main_top {
-		margin: 0 32rpx;
-	}
-
-	.panel {
-		border-radius: 16rpx;
-		background-color: rgba(255, 255, 255, 1);
-		box-shadow: 0px 8rpx 16rpx 0px rgba(22, 119, 255, 0.1);
-	}
-
-	.main_top {
-		margin-top: 32rpx;
-		display: flex;
-		justify-content: space-between;
-
-		.main_top1 {
-			display: flex;
-			align-items: center;
+							已逾期
 
-			.logo_img {
-				.img {
-					border-radius: 16rpx;
-					width: 96rpx;
-					height: 96rpx;
-				}
-
-				margin-right: 16rpx;
-			}
-
-			.logo_text {
-				color: #fff;
-
-				.logo_text1 {
-					font-size: 40rpx;
-				}
-
-				.logo_text2 {
-					font-size: 32rpx;
-
-				}
-			}
-		}
-
-		.main_top2 {}
-	}
-
-	.main_navigation {
-		margin-top: 32rpx;
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-		padding: 24rpx 0 20rpx 0;
-
-		.item-na-b {
-			border-left: 2rpx solid rgba(187, 187, 187, 0.43);
-			height: 70rpx;
-		}
-
-		.item-na {
-			width: 32%;
-			text-align: center;
-
-			.na-img {
-				display: flex;
-				justify-content: center;
-
-				.img {
-					width: 80rpx;
-					height: 80rpx;
-				}
-			}
-		}
-	}
-
-	.main_statuspanel {
-		margin-top: 24rpx;
-		padding: 24rpx;
-		.body2pie{
-			    position: relative;
-			    top: -140rpx;
-			    height: 0px;
-			    left: 0px;
-				width: 176rpx;
-				text-align: center;
-				.v1{
-					color: rgba(16,16,16,1);
-					font-size: 48rpx;
-					font-weight: bold;
-				}
-				.v2{
-					color: rgba(119,119,119,1);
-					font-size: 24rpx;
-				}
-		}
-		.body {
-			display: flex;
-			padding: 24rpx;
-
-			.item-list {
-				margin-left: 48rpx;
-				display: flex;
-				width: 100%;
-				flex-wrap: wrap;
-
-				.item-status {
-					width: 50%;
-
-					.num {
-						color: rgba(51, 51, 51, 1);
-						font-size: 36rpx;
-						font-weight: bold;
-					}
-				}
-
-				.statusN {
-					display: flex;
-					align-items: center;
-
-					.statusC {
-						margin-right: 8rpx;
-						width: 16rpx;
-						height: 16rpx;
-						background-color: rgba(153, 153, 153, 1);
-					}
-
-					.status1 {
-						background-color: rgba(0, 185, 98, 1);
-					}
-
-					.status2 {
-						background-color: #FF3D00 ;
-					}
-
-					.status3 {
-						background-color: #FF9600;
-					}
-
-					.status4 {
-						background-color: #999999;
-					}
-				}
-
-			}
-		}
-	}
-
-	.main_list1 {
-		background-color: #fff;
-		margin-top: 24rpx;
-		padding: 24rpx;
-		padding-bottom: 36rpx;
-		.list-body{
-			padding: 24rpx 0;
-			.item {
-				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
-			}
-			
-			.title {
-				display: flex;
-				    justify-content: space-between;
-					.name{
-						color: rgba(51,51,51,1);
-						font-size: 32rpx;
-						font-weight: bold;
-					}
-					.status{
-						
-					}
-					.statusN1{
 						
-					}
-					.statusN2{
-						
-					}
-					.statusN3{
-						
-					}
-			}
-			.body{
-				    display: flex;
-					color: rgba(51,51,51,1);
-					font-size: 28rpx;
-				.name{
-					width: 150rpx;
-				}
-				.value{
-					
-				}
-			}
-		}
-		.item:not(:first-child) {
-			//background-color: red;
-			border-top: 0rpx solid rgba(232, 232, 232, 1);
-		}
-		
-		.list {
-			//padding: 24rpx 0;
-			
-			.item {
-				display: flex;
-				border-top: 2rpx solid rgba(232, 232, 232, 1);
-				padding: 12rpx 0;
-				margin: 12rpx 0;
-
-				.img {
-					width: 72rpx;
-					height: 72rpx;
-
-				}
-
-				.body {
-					margin: 0 12rpx;
-					width: 100%;
-
-					.line1,
-					.line2 {
-
-						display: flex;
-						justify-content: space-between;
-					}
-					.line2 {
-						color: rgba(119,119,119,1);
+						</view>
+
+						<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
+
+					</view>
+
+
+
+
+				</view>
+
+				<u-divider color="#F44336" :isnone="datainsRecordsTotal==0" nonetext="暂无数据"
+					v-if="datainsRecordsTotal==0"></u-divider>
+
+
+
+
+			</view>
+
+		</view>
+
+
+
+
+
+		<tabbar :current="0"></tabbar>
+
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/pagejsIndex.js'
+
+	import * as echarts from 'echarts';
+	import Tabbar from '@/components/Tabbar.vue'
+
+	import {
+
+		newDate,
+		hourDistanceArr,
+		daysDistance
+	} from '@/apis/utils'
+	export default {
+		components: {
+			Tabbar,
+
+		},
+		data() {
+			return {
+				echartsList: {},
+				isReadyfloorStatus: false,
+				datafloorStatus: {},
+				roleList: [],
+				isReadyerrList: false,
+				isReadyinsList: false,
+				dataerrList: [],
+				dataerrRecordsTotal: 0,
+
+				datainsList: [],
+				datainsRecordsTotal: 0,
+
+				tabslist: [{
+					name: '电动车充电站',
+					code: "geterrList0"
+
+				}, {
+					name: '电单车充电站',
+					code: "geterrList1"
+				}],
+				current: 0,
+			};
+		},
+		onLoad() {
+			//	this.roleList=
+		},
+		onShow() {
+			//	this.roleList=this.jphelp.getPersonInfoPlus().roleList
+			if (this.isReadyfloorStatus) {
+				this.getfloorStatus()
+			}
+			if (this.isReadyerrList) {
+				this.geterrList()
+			}
+
+			if (this.isReadyinsList) {
+				this.getinsList()
+			}
+		},
+		computed: {
+			isAdmin() {
+				console.log(this.jphelp.getPersonInfo().role)
+				if (this.jphelp.getPersonInfo().role == '1') {
+					return true
+				}
+				return false
+			}
+		},
+		onReady() {
+			this.geterrList()
+			this.getfloorStatus()
+			this.getinsList()
+			//this.getbody1pie1()
+			this.query()
+		},
+		methods: {
+			lastChargeTime(time) {
+				if (time) {
+					return time.split(" ")[0]
+				} else {
+					return ''
+				}
+			},
+			getinsList() {
+				var status = 0
+				var code = this.tabslist[this.current].code
+				if (code == "geterrList0") {
+					status = 0
+				}
+				if (code == "geterrList1") {
+					status = 1
+				}
+				API.recordList({
+					pageIndex: 1,
+					pageSize: 20,
+					status: 0,
+				}).then((response) => {
+					this.datainsList = response.data.data
+					this.datainsRecordsTotal = response.data.recordsTotal
+					this.isReadyinsList = true
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+
+				})
+			},
+			getdaysDistance(time1, time2) {
+				if (!time1) {
+					return '-'
+				}
+
+				return daysDistance(time1, time2)
+			},
+			getHourDistanceArr(time) {
+				if (!time) {
+					return '-'
+				}
+				return hourDistanceArr(time, new Date())[0]
+
+
+			},
+			change(e) {
+				this.current = e
+
+				this.dataerrList = []
+
+				this.geterrList()
+			},
+
+			isToday(dateStr) {
+				if (!dateStr) {
+					return false
+				}
+				// 将传入的日期字符串转换为Date对象
+				const targetDate = newDate(dateStr);
+				// 获取当前日期
+				const today = new Date();
+
+				// 比较年份、月份和日期是否相等
+				return (
+					targetDate.getFullYear() === today.getFullYear() &&
+					targetDate.getMonth() === today.getMonth() &&
+					targetDate.getDate() === today.getDate()
+				);
+			},
+			query() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+
+				API.findByOpenId({
+					noerror: true,
+					openId: this.jphelp.getOpenId(),
+
+
+				}).then((response) => {
+					uni.hideLoading();
+					if (response.message) {
+						uni.hideLoading();
+
+					} else {
+						this.loginset(response)
+
+
+					}
+					this.roleList = this.jphelp.getPersonInfoPlus().roleList
+
+
+
+				}).catch(error => {
+
+					uni.hideLoading();
+
+				})
+			},
+			geterrList() {
+				var status = 0
+				var code = this.tabslist[this.current].code
+				if (code == "geterrList0") {
+					status = 0
+				}
+				if (code == "geterrList1") {
+					status = 1
+				}
+				API.errList({
+					pageIndex: 1,
+					pageSize: 5,
+					status: 0,
+				}).then((response) => {
+					this.dataerrList = response.data.data
+					this.dataerrRecordsTotal = response.data.recordsTotal
+					this.isReadyerrList = true
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+
+				})
+			},
+			getfloorStatus() {
+
+				API.floorStatus().then((response) => {
+					var obj = response.data;
+					var sz = ['gunFaultNum', 'gunFreeNum', 'gunOfflineNum', 'gunWorkNum']
+					var bl = false
+					for (var i in sz) {
+						if (obj[sz[i]] != this.datafloorStatus[sz[i]]) {
+							bl = true
+							this.datafloorStatus = obj
+						}
+					}
+
+					this.isReadyfloorStatus = true
+					if (bl) {
+						this.getbody1pie1()
+					}
+
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+
+				})
+			},
+			getbody1pie1() {
+				var key = "body1pie1"
+				var myChart = this.echartsList[key];
+				if (!myChart) {
+					myChart = echarts.init(document.getElementById(key), null, {
+						width: uni.upx2px(88 * 2),
+						height: uni.upx2px(88 * 2)
+					})
+
+				}
+				myChart.clear()
+				var option = {
+
+					series: [{
+						silent: true,
+						type: 'pie',
+						radius: ['80%', '100%'],
+						label: {
+							show: false,
+						},
+
+						data: [{
+								value: this.datafloorStatus.gunWorkNum,
+								itemStyle: {
+									color: 'rgba(0, 185, 98, 1)'
+								}
+							},
+							{
+								value: this.datafloorStatus.gunFreeNum,
+								itemStyle: {
+									color: '#999999'
+								}
+							},
+							{
+								value: this.datafloorStatus.gunOfflineNum,
+								itemStyle: {
+									color: '#FF9600'
+								}
+							},
+							{
+								value: this.datafloorStatus.gunFaultNum,
+								itemStyle: {
+									color: '#FF3D00'
+								}
+							}
+						]
+					}],
+					grid: {
+						top: 0,
+						left: 0,
+						right: 0,
+						bottom: 0,
+						containLabel: true
+					},
+
+				}
+				myChart.setOption(option);
+				console.log(option)
+				this.echartsList[key] = myChart;
+			}
+		}
+	}
+</script>
+<style>
+	page {
+		/* 	background-color: #FFFFFF; */
+	}
+</style>
+<style lang="scss">
+	.back-blue {
+		height: 0px;
+
+		.back-color {
+			height: 656rpx;
+			background: linear-gradient(180deg, rgba(22, 119, 255, 1) 53%, rgba(203, 234, 255, 0) 100%);
+
+		}
+	}
+
+	.top-main {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.title-main {
+			color: rgba(51, 51, 51, 1);
+			font-size: 32rpx;
+			font-weight: bold;
+		}
+
+		.goto-main {
+			color: rgba(131, 131, 131, 1);
+			font-size: 24rpx;
+		}
+	}
+
+	.panel,
+	.main_top {
+		margin: 0 32rpx;
+	}
+
+	.panel {
+		border-radius: 16rpx;
+		background-color: rgba(255, 255, 255, 1);
+		box-shadow: 0px 8rpx 16rpx 0px rgba(22, 119, 255, 0.1);
+	}
+
+	.main_top {
+		margin-top: 32rpx;
+		display: flex;
+		justify-content: space-between;
+
+		.main_top1 {
+			display: flex;
+			align-items: center;
+
+			.logo_img {
+				.img {
+					border-radius: 16rpx;
+					width: 96rpx;
+					height: 96rpx;
+				}
+
+				margin-right: 16rpx;
+			}
+
+			.logo_text {
+				color: #fff;
+
+				.logo_text1 {
+					font-size: 40rpx;
+				}
+
+				.logo_text2 {
+					font-size: 32rpx;
+
+				}
+			}
+		}
+
+		.main_top2 {}
+	}
+
+	.main_navigation {
+		margin-top: 32rpx;
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+		padding: 24rpx 0 20rpx 0;
+
+		.item-na-b {
+			border-left: 2rpx solid rgba(187, 187, 187, 0.43);
+			height: 70rpx;
+		}
+
+		.item-na {
+			width: 32%;
+			text-align: center;
+
+			.na-img {
+				display: flex;
+				justify-content: center;
+
+				.img {
+					width: 80rpx;
+					height: 80rpx;
+				}
+			}
+		}
+	}
+
+	.main_statuspanel {
+		margin-top: 24rpx;
+		padding: 24rpx;
+		padding-bottom: 0;
+		.body2pie {
+			position: relative;
+			top: -140rpx;
+			height: 0px;
+			left: 0px;
+			width: 176rpx;
+			text-align: center;
+
+			.v1 {
+				color: rgba(16, 16, 16, 1);
+				font-size: 48rpx;
+				font-weight: bold;
+			}
+
+			.v2 {
+				color: rgba(119, 119, 119, 1);
+				font-size: 24rpx;
+			}
+		}
+
+		.body {
+			display: flex;
+			padding: 24rpx;
+
+			.item-list {
+				margin-left: 48rpx;
+				display: flex;
+				width: 100%;
+				flex-wrap: wrap;
+
+				.item-status {
+					width: 50%;
+
+					.num {
+						color: rgba(51, 51, 51, 1);
+						font-size: 36rpx;
+						font-weight: bold;
+					}
+				}
+
+				.statusN {
+					display: flex;
+					align-items: center;
+
+					.statusC {
+						margin-right: 8rpx;
+						width: 16rpx;
+						height: 16rpx;
+						background-color: rgba(153, 153, 153, 1);
+					}
+
+					.status1 {
+						background-color: rgba(0, 185, 98, 1);
+					}
+
+					.status2 {
+						background-color: #FF3D00;
+					}
+
+					.status3 {
+						background-color: #FF9600;
+					}
+
+					.status4 {
+						background-color: #999999;
+					}
+				}
+
+			}
+		}
+	}
+
+	.main_list1 {
+		background-color: #fff;
+		margin-top: 24rpx;
+		padding: 24rpx;
+		padding-bottom: 36rpx;
+
+		.title {
+			display: flex;
+			color: rgba(51, 51, 51, 1);
+			font-size: 32rpx;
+			font-weight: bold;
+		}
+
+		.list-body {
+			padding: 24rpx 0;
+
+			.item {
+				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
+				display: flex;
+				justify-content: space-between;
+				padding: 12rpx 0;
+				margin: 12rpx 0;
+
+				.line1 {
+					.value {
+						color: #777777;
 						font-size: 24rpx;
-						margin-top: 8rpx;
-					}
-					.line1 {
-						.typeN{
-							font-size: 24rpx;
-							margin-right: 8rpx;
-							display: flex;
-							align-items: center;
-								border-radius: 8rpx;
-								padding: 4rpx 8rpx;
-								color: #fff;
-								font-weight: 400;
-						}
-						.typeN1{
-							background-color:#1677ff;
-							//border: 2rpx solid #1677ff;
-						}
-						.typeN2{
-							background-color:#19be6b;
-							//border: 2rpx solid #19be6b;
-							 
-						}
-						.title {
-							display: flex;
-							color: rgba(51, 51, 51, 1);
-							font-size: 28rpx;
-							font-weight: bold;
-						}
-
-						.status {
-							background-color:  rgba(255, 61, 0, 1);
-							font-size: 24rpx;
-							color:#fff;
-							padding: 2rpx 8rpx;
-							//border-radius: 8rpx;
-
-						}
+						margin-top: 8rpx;
+					}
+				}
+
+				.line2 {
+					display: flex;
+					align-items: center;
+					font-size: 32rpx;
+					white-space: pre;
+				}
+			}
+
+
+		}
+
+		.item:not(:first-child) {
+			//background-color: red;
+			border-top: 0rpx solid rgba(232, 232, 232, 1);
+		}
+
+		.list {
+			//padding: 24rpx 0;
+
+			.item {
+				display: flex;
+				border-top: 2rpx solid rgba(232, 232, 232, 1);
+				padding: 12rpx 0;
+				margin: 12rpx 0;
+
+				.img {
+					width: 72rpx;
+					height: 72rpx;
+
+				}
+
+				.body {
+					//margin: 0 12rpx;
+					width: 100%;
+
+					.line1,
+					.line2 {
+
+						display: flex;
+						justify-content: space-between;
+					}
+
+					.line2 {
+						color: rgba(119, 119, 119, 1);
+						font-size: 24rpx;
+						margin-top: 8rpx;
+					}
+
+					.line1 {
 						
-						.status0 {
-							background-color:  #FF7B00;
-							
-						}
-						.status1 {
-							background-color:  #007aff;
-							
-						}
-
-						.status2 {
-							background-color:  #ff9900;
-							
-						}
-
-						.status3 {
-							background-color:  #19be6b;
-							
-						}
-
-						.status4 {
-							border: 2rpx solid rgba(255, 61, 0, 1);
-							color: rgba(255, 61, 0, 1);
-						}
-					}
-					
-					.errorDesc{
-						margin: 8rpx 0;
-						 width: 480rpx;
-						     color: #777777;
-						     font-size: 24rpx;
-						 overflow: hidden;
-						    text-overflow: ellipsis;
-						    white-space: nowrap; /* 禁止换行,强制单行 */
-					}
-				}
-			}
-
-			// .item:not(:last-child) {
-			//   border-bottom:2rpx solid rgba(232,232,232,1);
-			// }
-		}
-	}
+						font-size: 32rpx;
+
+
+						.status {
+							background-color: rgba(255, 61, 0, 1);
+							font-size: 24rpx;
+							color: #fff;
+							padding: 2rpx 8rpx;
+							//border-radius: 8rpx;
+
+						}
+
+						.status0 {
+							background-color: #FF7B00;
+
+						}
+
+						.status1 {
+							background-color: #007aff;
+
+						}
+
+						.status2 {
+							background-color: #ff9900;
+
+						}
+
+						.status3 {
+							background-color: #19be6b;
+
+						}
+
+						.status4 {
+							border: 2rpx solid rgba(255, 61, 0, 1);
+							color: rgba(255, 61, 0, 1);
+						}
+					}
+
+					.errorDesc {
+						margin: 8rpx 0;
+						width: 480rpx;
+						color: #777777;
+						font-size: 24rpx;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+						/* 禁止换行,强制单行 */
+					}
+				}
+			}
+
+			// .item:not(:last-child) {
+			//   border-bottom:2rpx solid rgba(232,232,232,1);
+			// }
+		}
+	}
+
+	.getHourDistanceArrNum10 {
+		color: #FF7B00;
+	}
+
+	.getHourDistanceArrNum12 {
+		color: red;
+	}
+
+	.getHourDistanceArrNum24 {
+		color: #8161FF;
+	}
 </style>

+ 1 - 1
pages/station/stationInfo.vue

@@ -81,7 +81,7 @@
 			</view>
 			<view class="body">
 				<view class="line" v-for="(item,index) in errList"
-				 @click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)"
+				 @click="gotoUrl('/pages/task/maintenanceTaks?back=1&id='+item.id)"
 				 :key="index">
 					<view class="p1">
 						<view class="name">

+ 1 - 1
pages/task/listTask.vue

@@ -282,7 +282,7 @@
 			},
 			gotoTask(k){
 				uni.navigateTo({
-				  url: '/pages/task/maintenanceTaks?id='+k.id,
+				  url: '/pages/task/maintenanceTaks?back=1&id='+k.id,
 				  events: {
 				    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
 				    acceptDataFromOpenerPage: (data)=>{

+ 9 - 4
pages/task/maintenanceTaks.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="jpmain  ">
-		<u-navbar title="维修结果" title-color="#101010"></u-navbar>
+		<u-navbar title="维修结果" title-color="#101010"  :bkUrl="!isBack?'/pages/index/index':''" ></u-navbar>
 
 		<u-picker mode="time" v-model="completionTimeShow" @confirm="completionTimeConfirm"
 			:default-time="taskInfo.completionTime" :params="params"></u-picker>
@@ -268,7 +268,8 @@
 					minute: true,
 					second: true,
 					timestamp: true,
-				},
+				},
+					isBack:false,
 				codeN: "",
 				selectTaskInfoCode: false,
 				selectTaskInfoCodeValue: [0],
@@ -305,7 +306,9 @@
 			this.errDetails()
 			this.getteamMembers()
 
-
+			if(op.back){
+				this.isBack=op.back
+			}
 		},
 		onReady() {
 			WxJsApi.getWxConfig(['openLocation']).then((res) => {
@@ -613,7 +616,9 @@
 
 				.img {
 					width: 40rpx;
-					height: 40rpx;
+					height: 40rpx;
+					min-width: 40rpx;
+					min-height: 40rpx;
 
 				}