Эх сурвалжийг харах

Signed-off-by: zhaobao <528046418@qq.com>

zhaobao 1 жил өмнө
parent
commit
fccbb6a7ba

+ 112 - 0
api/aqpt/alertApi.js

@@ -0,0 +1,112 @@
+import {request} from '@/libs/request.js'
+/**
+ * 分页查询
+ */
+export function getAlertByPage(data) {
+  return request({
+    url: '/alert/page',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 列表查询
+ */
+export function getAlertByList(data) {
+  return request({
+    url: '/alert',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 列表查询待处理告警
+ */
+export function getAlertWaitingByList(data) {
+  return request({
+    url: '/alert/waiting',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 基于ID查询Alert
+ */
+export function getAlertById(alertId) {
+  return request({
+    url: `/alert/${alertId}`,
+    method: 'GET'
+  })
+}
+
+/**
+ * 完成处理
+ * @param data
+ * @returns
+ */
+export function completeAlert(data) {
+  return request({
+    url: `/alert/complete`,
+    method: 'POST',
+    data
+  })
+}
+
+/**
+ * 转交他人
+ * @param alertId
+ * @param data
+ * @returns
+ */
+export function transferAlert(alertId, data) {
+  return request({
+    url: `/alert/transfer/${alertId}`,
+    method: 'POST',
+    data
+  })
+}
+
+/**
+ * 撤消
+ * @param alertId
+ * @returns
+ */
+export function cancelAlert(alertId) {
+  return request({
+    url: `/alert/cancel/${alertId}`,
+    method: 'GET'
+  })
+}
+/**
+ * 删除
+ */
+export function deleteAlertById(alertId) {
+  return request({
+    url: `/alert/${alertId}`,
+    method: 'DELETE'
+  })
+}
+
+/**
+ * 查询统计结果
+ */
+export function counterByStatus(data) {
+  return request({
+    url: '/alert/statis/counterByStatus',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 查询统计结果
+ */
+export function getAlertCounter() {
+  return request({
+    url: '/alert/statis/getCounter',
+    method: 'GET'
+  })
+}

+ 90 - 0
api/aqpt/dangerApi.js

@@ -0,0 +1,90 @@
+import {request} from '@/libs/request.js'
+
+/**
+ * 获取Danger列表
+ * @param data
+ * @returns
+ */
+export function getDangerByList(data) {
+  return request({
+    url: '/danger',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 获取Danger列表
+ * @param data
+ * @returns
+ */
+export function getRecentDangerByList(data) {
+  return request({
+    url: '/danger/recent',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 查询待处理Danger列表
+ * @param data
+ * @returns
+ */
+export function getDangerWaitingByList(data) {
+  return request({
+    url: '/danger/waiting',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 获取Danger分页
+ * @param data
+ * @returns
+ */
+export function getDangerByPage(data) {
+  return request({
+    url: '/danger/page',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 根据Id获取Danger
+ * @param dangerId
+ * @returns
+ */
+export function getDangerById(dangerId) {
+  return request({
+    url: `/danger/${dangerId}`,
+    method: 'GET'
+  })
+}
+
+/**
+ * 删除Danger
+ * @param dangerId
+ * @returns
+ */
+export function deleteDangerById(dangerId) {
+  return request({
+    url: `/danger/${dangerId}`,
+    method: 'DELETE'
+  })
+}
+
+/**
+ * 处理Danger
+ * @param data
+ * @returns
+ */
+export function handleDanger(data) {
+  return request({
+    url: `/danger/handle`,
+    method: 'POST',
+    data
+  })
+}

+ 139 - 0
api/aqpt/taskApi.js

@@ -0,0 +1,139 @@
+import {request} from '@/libs/request.js'
+
+/**
+ * 分页查询Task
+ * @param data
+ * @returns
+ */
+export function getTaskByPage(data) {
+  return request({
+    url: '/task/page',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 列表查询Task
+ * @param data
+ * @returns
+ */
+export function getTaskByList(data) {
+  return request({
+    url: '/task',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 列表查询未执行Task
+ * @param data
+ * @returns
+ */
+export function getWaitingTaskByList(data) {
+  return request({
+    url: '/task/waiting',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * 列表查询Task: 50笔
+ * @param data
+ * @returns
+ */
+export function getRecentTaskByList(data) {
+  return request({
+    url: '/task/recent',
+    method: 'GET',
+    data
+  })
+}
+
+/**
+ * @param taskId
+ * @returns
+ */
+export function getTaskById(taskId) {
+  return request({
+    url: `/task/${taskId}`,
+    method: 'GET'
+  })
+}
+
+/**
+ * 添加Task
+ * @param data
+ * @returns
+ */
+export function createTask(data) {
+  return request({
+    url: `/task/add`,
+    method: 'POST',
+    data
+  })
+}
+
+/**
+ * 更新Task
+ * @param data
+ * @returns
+ */
+export function updateTask(data) {
+  return request({
+    url: `/task/update`,
+    method: 'PUT',
+    data
+  })
+}
+
+/**
+ * 删除Task
+ * @param taskId
+ * @returns
+ */
+export function deleteTaskById(taskId) {
+  return request({
+    url: `/task/${taskId}`,
+    method: 'DELETE'
+  })
+}
+
+/**
+ * Handle Task
+ * @param taskId
+ * @returns
+ */
+export function handleTask(taskId) {
+  return request({
+    url: `/task/handle/${taskId}`,
+    method: 'PUT'
+  })
+}
+
+/**
+ * Transfer Task
+ * @param data
+ * @returns
+ */
+export function transferTask(data) {
+  return request({
+    url: `/task/transfer`,
+    method: 'PUT',
+    data
+  })
+}
+
+/**
+ * Cancel Task
+ * @param taskId
+ * @returns
+ */
+export function cancelTask(taskId) {
+  return request({
+    url: `/task/cancel/${taskId}`,
+    method: 'PUT'
+  })
+}

+ 12 - 9
libs/enum.js

@@ -58,20 +58,22 @@ export function taskType(i) {
   const strs = [
     '未知',
     '常规',
-    '临时',
-    '立即'
+    '审批任务',
+    '巡检任务'
   ]
   return strs[i]
 }
 
 export function taskStatus(i) {
   const strs = [
-    '未开始',
-    '处理中',
-    '已取消',
+    '待处理',
     '已完成'
   ]
-  return strs[i]
+  if (i === -1) {
+    return '已撤消'
+  } else {
+    return strs[i]
+  }
 }
 
 export function checkResult(i) {
@@ -101,8 +103,10 @@ export function dangerStatus(i) {
 export function dangerLevel(i) {
   const strs = [
     '未知',
-    '一般隐患',
-    '重大隐患'
+    '重大',
+    '较大',
+    '严重',
+    '一般'
   ]
   return strs[i]
 }
@@ -170,7 +174,6 @@ export function alertLevel(i) {
 export function alertStatus(i) {
   if (i >= 0) {
     const strs = [
-      '未知',
       '待处理',
       '已处理'
     ]

+ 9 - 0
pages.json

@@ -79,6 +79,15 @@
             }
             
         }
+        ,{
+            "path" : "pages/index/detail/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "详情",
+                "enablePullDownRefresh": true
+            }
+            
+        }
     ],
 	"tabBar": {
 		"color": "#7A7E83",

+ 339 - 0
pages/index/detail/detail.vue

@@ -0,0 +1,339 @@
+<template>
+	
+	<view class="index-detail-page">
+		<view class="container">
+			<view class="tab-cont">
+				<view class="part" v-if="type==='task'">
+					<view class="tab">
+						<view class="tab-item" :class="activeTab===1?'active':''" @click="tabChange(0,1)">待处理</view>
+						<view class="tab-item" :class="activeTab===2?'active':''" @click="tabChange(1,2)">已完成</view>
+						<view class="tab-item" :class="activeTab===3?'active':''" @click="tabChange(-1,3)">已撤销</view>
+					</view>
+					<view class="part-cont">
+						<view class="item" v-for="item in taskList" :key="item.taskId">
+							<view class="title">
+								<view class="name">{{item.taskTitle}}</view>
+								<view class="state">{{taskStatus(item.status)}}</view>
+							</view>
+							<view class="tags">
+								<text class="tag">{{taskPriority(item.taskPriority)}}</text>
+								<text class="tag">{{item.taskCatTitle}}</text>
+								<text class="tag">{{taskType(item.taskTypeId)}}</text>
+							</view>
+							<view class="time">
+								预期结束时间:{{item.expectedEndTime}}
+							</view>
+							<view class="bottom">
+								<view class="user">
+									<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
+									处理人:{{item.handleAccountName}}
+								</view>		
+								<view class="hand-time">
+									{{item.launchTime}}
+								</view>																
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="part" v-if="type==='alert'">
+					<view class="tab">
+						<view class="tab-item" :class="activeTab===1?'active':''" @click="tabChange(0,1)">待处理</view>
+						<view class="tab-item" :class="activeTab===2?'active':''" @click="tabChange(1,2)">已处理</view>
+						<view class="tab-item" :class="activeTab===3?'active':''" @click="tabChange(-1,3)">已撤销</view>
+					</view>
+					<view class="part-cont">
+						<view class="item" v-for="item in alertList" :key="item.alertId">
+							<view class="title">
+								<view class="name">{{item.alertTitle}}</view>
+								<view class="state">{{alertStatus(item.status)}}</view>
+							</view>
+							<view class="tags">
+								<text class="tag">{{alertLevel(item.alertLevel)}}</text>
+							</view>
+							<view class="time">
+								发生时间:{{item.alertTime}}
+							</view>
+							<view class="bottom">
+								<view class="user">
+									<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
+									处理人:{{item.handleAccountName}}
+								</view>		
+								<view class="hand-time">
+									{{item.handleTime}}
+								</view>																
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="part" v-if="type==='danger'">
+					<view class="tab">
+						<view class="tab-item" :class="activeTab===1?'active':''" @click="tabChange(0,1)">待处理</view>
+						<view class="tab-item" :class="activeTab===2?'active':''" @click="tabChange(1,2)">我提交</view>
+						<view class="tab-item" :class="activeTab===3?'active':''" @click="tabChange(1,3)">我处理</view>
+						<view class="tab-item" :class="activeTab===4?'active':''" @click="tabChange(-1,4)">我撤销</view>
+					</view>
+					<view class="part-cont">
+						<view class="item" v-for="item in dangerList" :key="item.dangerId">
+							<view class="title">
+								<view class="name">{{item.dangerTitle}}</view>
+								<view class="state">{{dangerStatus(item.status)}}</view>
+							</view>
+							<view class="tags">
+								<text class="tag">{{dangerLevel(item.dangerLevel)}}</text>
+								<text class="tag">{{item.dangerCatTitle}}</text>
+							</view>
+							<view class="time">
+								预期结束时间:{{item.dangerDeadLine}}
+							</view>
+							<view class="bottom">
+								<view class="user">
+									<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
+									处理人:{{item.curAccountName}}
+								</view>		
+								<view class="hand-time">
+									{{item.submitTime}}
+								</view>																
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>										
+		</view>
+		<template v-if="total<1">
+			<view class="isEmpty" >
+				<p class="word">没有数据 ^_^ </p>
+			</view>
+		</template>
+	</view>
+</template>
+
+<script>
+	import { getAlertByPage } from '@/api/aqpt/alertApi.js';
+	import { getDangerByPage } from '@/api/aqpt/dangerApi.js';
+	import { getTaskByPage } from '@/api/aqpt/taskApi.js';
+	import{
+		taskStatus,taskPriority,taskType,
+		alertLevel,alertStatus,
+		dangerStatus,dangerLevel,
+	} from '@/libs/enum.js';	
+	export default {
+		data() {
+			return {
+				type:undefined,
+				activeTab:1,
+				user:{},
+			    conditions: {
+					page: 1,
+					limit: 10,
+					status:0
+			    },
+				total:0,
+				alertList:[],
+				dangerList:[],
+				taskList:[]			
+			}
+		},
+		onLoad({type,name}) {
+			this.type=type
+			let user=uni.getStorageSync('accountInfo');
+			this.user=user
+			uni.setNavigationBarTitle({
+				title:`${name||'详情'}`
+			})
+			this.getData()
+		},
+		methods: {
+			taskStatus,taskPriority,taskType,
+			alertLevel,alertStatus,
+			dangerStatus,dangerLevel,
+			getData(){
+				if(this.type==='task'){
+					this.getTaskByPage()
+				}
+				if(this.type==='danger'){
+					delete this.conditions.status
+					this.getDangerByPage()
+				}				
+				if(this.type==='alert'){
+					this.getAlertByPage()
+				}
+			},
+			getAlertByPage(){
+				getAlertByPage(this.conditions).then((res)=>{
+					this.alertList=res.data
+					this.total=res.total
+				})				
+			},
+			getDangerByPage(){
+				getDangerByPage(this.conditions).then((res)=>{
+					this.dangerList=res.data
+					this.total=res.total
+				})				
+			},
+			getTaskByPage(){
+				getTaskByPage(this.conditions).then((res)=>{
+					this.taskList=res.data
+					this.total=res.total
+				})				
+			},
+			tabChange(value,index){
+				this.activeTab=index
+				if(this.type==='task'){
+					this.conditions.status=value
+				}
+				if(this.type==='danger'){
+					  if (value === 1) {
+						this.conditions.curAccountId = this.user.userId
+					  } else if (value === 2) {
+						this.conditions.submitAccountId = this.user.userId
+					  } else if (value === 3) {
+						this.conditions.handleAccountId = this.user.userId
+					  } else if (value === 4) {
+						this.conditions.submitAccountId = this.user.userId
+						this.conditions.status = -1
+					  }
+				}				
+				if(this.type==='alert'){
+					this.conditions.status=value
+				}	
+				this.getData()
+			},
+			onPullDownRefresh() {				
+				this.activeTab=1,
+			    this.conditions= {page: 1,limit: 10},
+				this.total=0,
+				this.alertList=[]
+				this.dangerList=[]
+				this.taskList=[]	
+				this.getData()
+			},
+			onReachBottom() {
+				if(this.total>=this.conditions.page*this.conditions.limit){
+					this.conditions.page++
+					this.getData()
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.index-detail-page {
+		min-height: 100vh;
+		padding-bottom: 100rpx;
+		background-color: rgba(245, 246, 248, 1);
+		.container{	
+			padding: 0 32rpx;
+			.tab-cont{				
+				.part{
+					.tab{
+						display: flex;
+						align-items: center;
+						padding-bottom: 10rpx;
+						overflow-x: auto;
+						.tab-item{
+							display: inline-block;
+							padding: 16rpx 20rpx;
+							background-color: #fff;
+							text-align: center;      
+							flex-shrink: 0;
+							line-height: 1;
+							font-size: 32rpx;
+							color: #333;
+							border: 1px solid #eaeaea;
+							box-sizing: border-box;
+							border-left: 0;
+							&.active{
+								background-color: #1e80ff;
+								color: #fff;
+								border-color: #1e80ff;
+							}
+						}
+					}
+					.part-cont{
+						.item{
+							background-color: #fff;
+							border-radius: 12rpx;
+							margin-top: 16rpx;
+							padding: 24rpx 20rpx;
+							.title{
+								display: flex;
+								justify-content: space-between;
+								align-items: center;
+								.name{
+									font-size: 36rpx;
+									color: rgba(0, 0, 0, 0.8);
+								}
+								.state{
+									font-size: 32rpx;
+									color: rgba(250, 139, 55, 1);
+								}
+							}
+							.tags{
+								padding-top: 24rpx;
+								.tag{
+									background: rgba(245, 246, 248, 1);	
+									font-size: 20rpx;
+									margin-left: 10rpx;
+									padding: 10rpx 20rpx;
+									&:nth-child(1){
+										color: rgba(234, 130, 89, 1);
+										background: rgba(251, 241, 237, 1);
+									}
+								}
+							}
+							.time{
+																padding-top: 20rpx;
+								font-size: 28rpx;									
+								color:rgba(241, 57, 57, 0.8);
+							}
+							.bottom{
+								display: flex;
+								justify-content: space-between;
+								align-items: center;
+								padding-top: 20rpx;
+								.user{
+									display: flex;
+									align-items: center;
+									font-size: 24rpx;
+									color: rgba(0, 0, 0, 1);
+									.avatar{
+										width: 44rpx;
+										margin-right: 10rpx;
+									}
+								}
+								.hand-time{
+									font-size: 24rpx;
+									color: rgba(0, 0, 0, 1);
+								}
+							}							
+						}
+					}
+				}
+			}
+		}
+		.isEmpty{
+			width: 100%;
+			height: 100vh;
+			background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjM4Ljg1JSIgeTE9IjAlIiB4Mj0iNjEuMTUlIiB5Mj0iMTAwJSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDRkNGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFRUVGRjMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMCUiIHkxPSI5LjUlIiB5Mj0iOTAuNSUiPjxzdG9wIHN0b3AtY29sb3I9IiNGQ0ZDRkQiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTlFQkVGIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGlkPSJjIiBkPSJNMCAwaDE3djM2SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTM5LjUgODZDNjEuMzE1IDg2IDc5IDgzLjkxIDc5IDgxLjMzM1M1Ny4zMTUgNzggMzUuNSA3OCAwIDc4Ljc1NiAwIDgxLjMzM0MwIDgzLjkxMSAxNy42ODUgODYgMzkuNSA4NnoiIGZpbGw9IiNGN0Y4RkMiLz48cGF0aCBmaWxsPSIjRTVFN0U5IiBkPSJNMTMgNDVoNDBMNDIgNThIMnpNNjUuNTUxIDI5Ljk4bC0xNi4zMTMtNy42MDctMi44NDEtNS43MzggMTYuMzEzIDcuNjA3eiIvPjxwYXRoIGZpbGw9IiNFREVFRjIiIGQ9Ik02NS41NTEgMjkuOThsLTM0LjQ0LTE2LjA1OS0xNS4yMTQgMzIuNjI3IDM0LjQ0IDE2LjA2eiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIHRyYW5zZm9ybT0icm90YXRlKDI1IDI3LjQ0NiAtNDMuNDE2KSIgZD0iTTM4IDdoMTd2MzZIMzh6Ii8+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTE1LjcwNSA2LjczN2wxNS40MDcgNy4xODQgMTUuNjQ2LS40MjctMTUuNDA3LTcuMTg1eiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMyA0NWg0MHYzNkgxM3oiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MyA0NSkiPjxtYXNrIGlkPSJkIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNjIi8+PC9tYXNrPjx1c2UgZmlsbD0iI0UwRTNFOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTcgMCkiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggZmlsbD0iI0Q1RDdERSIgbWFzaz0idXJsKCNkKSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjQgMCkiIGQ9Ik03IDBoMTdsLTQgMTgtMjAtMnoiLz48L2c+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTcwIDQ1SDUzbDkgMTNoMTd6Ii8+PC9nPjwvc3ZnPg==);
+			background-size: contain;
+			background-repeat: no-repeat;
+			position: relative;
+			background-color: #fff;
+			/* #ifndef MP-WEIXIN */
+				height: calc( 100vh - 100px);	
+			/* #endif */
+			.word{
+				width: 100%;
+				text-align: center;
+				position: absolute;
+				top: 80vh;
+				left: 0;
+				color: #999;
+				font-size: 28rpx;
+				letter-spacing: 2rpx;
+			}
+		}		
+	}
+
+</style>

+ 120 - 17
pages/index/index.vue

@@ -53,44 +53,103 @@
 					<view class="tab">
 						<div class="tab-item">
 							<image class="icon" src="/static/index/tab1.png" mode="widthFix"></image>
-							<view class="tab-name">待办任务 3 个</view>
+							<view class="tab-name">待办任务 {{taskTotal>99?'99+':taskTotal}} 个</view>
 						</div>
 						<div class="tab-item">
 							<image class="icon" src="/static/index/tab2.png" mode="widthFix"></image>
-							<view class="tab-name">告警事件 2个</view>
+							<view class="tab-name">告警事件  {{alertTotal>99?'99+':alertTotal}}个</view>
 						</div>
 						<div class="tab-item">
 							<image class="icon" src="/static/index/tab3.png" mode="widthFix"></image>
-							<view class="tab-name">待处理隐患  2个</view>
+							<view class="tab-name">待处理隐患   {{dangerTotal>99?'99+':dangerTotal}}个</view>
 						</div>
 					</view>
 					<view class="tab-cont">
-						<div class="part" v-for="part in 4" :key="part">
+						<div class="part">
 							<div class="head">
-								<text class="head-name">办任务</text>
-								<view class="more">更多</view>
+								<text class="head-name">办任务</text>
+								<view class="more" @click="linkTo('task','待办任务')">更多</view>
 							</div>
 							<div class="part-cont">
-								<div class="item" v-for="item in 4" :key="item">
+								<div class="item" v-for="item in taskList" :key="item.taskId">
 									<div class="title">
-										<div class="name">任务名称</div>
-										<view class="state">状态</view>
+										<div class="name">{{item.taskTitle}}</div>
+										<view class="state">{{taskStatus(item.status)}}</view>
 									</div>
 									<div class="tags">
-										<text class="tag">优先级</text>
-										<text class="tag">分类名称</text>
-										<text class="tag">普通任务</text>
+										<text class="tag">{{taskPriority(item.taskPriority)}}</text>
+										<text class="tag">{{item.taskCatTitle}}</text>
+										<text class="tag">{{taskType(item.taskTypeId)}}</text>
 									</div>
 									<view class="time">
-										预期结束时间:21天12小时23分32秒
+										预期结束时间:{{item.expectedEndTime}}
 									</view>
 									<div class="bottom">
 										<view class="user">
 											<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
-											处理人:孙小白
+											处理人:{{item.handleAccountName}}
 										</view>		
 										<view class="hand-time">
-											2023.08.25 09:00
+											{{item.launchTime}}
+										</view>																
+									</div>
+								</div>
+							</div>
+						</div>
+						<div class="part">
+							<div class="head">
+								<text class="head-name">告警事件</text>
+								<view class="more" @click="linkTo('alert','告警事件')">更多</view>
+							</div>
+							<div class="part-cont">
+								<div class="item" v-for="item in alertList" :key="item.alertId">
+									<div class="title">
+										<div class="name">{{item.alertTitle}}</div>
+										<view class="state">{{alertStatus(item.status)}}</view>
+									</div>
+									<div class="tags">
+										<text class="tag">{{alertLevel(item.alertLevel)}}</text>
+									</div>
+									<view class="time">
+										发生时间:{{item.alertTime}}
+									</view>
+									<div class="bottom">
+										<view class="user">
+											<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
+											处理人:{{item.handleAccountName}}
+										</view>		
+										<view class="hand-time">
+											{{item.handleTime}}
+										</view>																
+									</div>
+								</div>
+							</div>
+						</div>
+						<div class="part">
+							<div class="head">
+								<text class="head-name">待处理隐患</text>
+								<view class="more" @click="linkTo('danger','待处理隐患')">更多</view>
+							</div>
+							<div class="part-cont">
+								<div class="item" v-for="item in dangerList" :key="item.dangerId">
+									<div class="title">
+										<div class="name">{{item.dangerTitle}}</div>
+										<view class="state">{{dangerStatus(item.status)}}</view>
+									</div>
+									<div class="tags">
+										<text class="tag">{{dangerLevel(item.dangerLevel)}}</text>
+										<text class="tag">{{item.dangerCatTitle}}</text>
+									</div>
+									<view class="time">
+										预期结束时间:{{item.dangerDeadLine}}
+									</view>
+									<div class="bottom">
+										<view class="user">
+											<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
+											处理人:{{item.curAccountName}}
+										</view>		
+										<view class="hand-time">
+											{{item.submitTime}}
 										</view>																
 									</div>
 								</div>
@@ -105,6 +164,14 @@
 
 <script>
 	import {getNotices} from '@/api/system/art.js'
+	import { getAlertByPage } from '@/api/aqpt/alertApi.js';
+	import { getDangerByPage } from '@/api/aqpt/dangerApi.js';
+	import { getTaskByPage } from '@/api/aqpt/taskApi.js';
+	import{
+		taskStatus,taskPriority,taskType,
+		alertLevel,alertStatus,
+		dangerStatus,dangerLevel,
+	} from '@/libs/enum.js';
 	export default {
 		data() {
 			return {
@@ -122,13 +189,22 @@
 					userPhone: "",
 					userPhoto: "",
 					userRealName: ""					
-			    }
+			    },
+				alertList:[],
+				dangerList:[],
+				taskList:[],
+				alertTotal:0,
+				dangerTotal:0,
+				taskTotal:0
 			}
 		},
 		onShow() {
 			this.getData()
 		},
 		methods: {
+			taskStatus,taskPriority,taskType,
+			alertLevel,alertStatus,
+			dangerStatus,dangerLevel,
 			scanQrcode(){
 				uni.scanCode({
 					onlyFromCamera: true,
@@ -164,6 +240,33 @@
 					}
 					this.notice=notice
 				})
+				let params={
+					page: 1,
+					limit: 5,
+					status: 0,
+					handleAccountId: user.userId							
+				}
+				getAlertByPage(params).then((res)=>{
+					this.alertList=res.data
+					this.alertTotal=res.total
+				})
+				getDangerByPage({
+					page: 1,
+					limit: 5,
+					curAccountId: user.userId
+				}).then((res)=>{
+					this.dangerList=res.data
+					this.dangerTotal=res.total
+				})
+				getTaskByPage(params).then((res)=>{
+					this.taskList=res.data
+					this.taskTotal=res.total
+				})				
+			},
+			linkTo(type,name){
+				uni.navigateTo({
+					url:`/pages/index/detail/detail?type=${type}&name=${name}`
+				})
 			}
 		}
 	}
@@ -329,7 +432,7 @@
 					display: flex;
 					justify-content: center;
 					align-items: center;
-					padding: 40rpx 32rpx 20rpx 32rpx;
+					padding: 40rpx 0 20rpx 0;
 					.tab-item{
 						width: 33.33%;
 						height: 150rpx;