Browse Source

账单 消息通知, 优化显示内容

zhengkaixin 1 year ago
parent
commit
fd57311658
5 changed files with 130 additions and 36 deletions
  1. 10 1
      apis/pagejs/message.js
  2. 2 2
      config/.env.dev.js
  3. 67 6
      pages/index/index.vue
  4. 24 19
      pages/message/message.vue
  5. 27 8
      pages/mine/mine.vue

+ 10 - 1
apis/pagejs/message.js

@@ -54,4 +54,13 @@ import request from '@/apis/utils/request'
  		url: url
  	})
  }
- 
+ 
+ export function headlineBill(data) {
+ 	var url='/mobile/billPush/headlineBill';
+ 	return request({
+ 		method: 'post',
+ 		data: data,
+ 		url: url
+ 	})
+ }
+ 

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

@@ -10,9 +10,9 @@ const UNI_APP = {
 	NODE_ENV :"dev",
 	SIMPLE_RUN:true,// 无视权限控制跳转页面   , 用于样式人员快速访问各种功能 ,快速测试等
 	openId:"111111",//zq
-	openId:"123",//zq
+	//openId:"oLowyuMMjIkA_bLA4MXzRQ3KJB2E",//zq
 	//openId:"oLowyuNkSxqovYoobKbeHB1nSkm0",//测试人员 开发环境
-	openId:"oLowyuAJ1Ld0ivnLj4qp1k5Vy_l4", //王晓春
+	//openId:"oLowyuAJ1Ld0ivnLj4qp1k5Vy_l4", //王晓春
 	// openId:"oK9Wr54VbEh3xvWYmD_zT5NbH4AY",
 	openId:"oLowyuOJvTszgk96C0f8j0XfcEXg",//zkx
 	//openId:"oLowyuHCGgMomNBQEXZSbb5SJxfQ",//ys

+ 67 - 6
pages/index/index.vue

@@ -59,6 +59,9 @@
 					<u-grid-item   @click="gotoUrl('/pages/message/messageList?type=AA&typeName=账单提醒')">
 						<view class="icon icon3">
 							<image class="img" src="@/assets/img/antFill-account-book.svg" mode=""></image>
+							<view class="dot" v-if="headlineBill.unReadtNum" >
+								
+							</view>
 						</view>
 						<view class="grid-text">账单提醒
 						</view>
@@ -66,6 +69,9 @@
 					<u-grid-item   @click="gotoUrl('/pages/message/messageList?type=3&typeName=断电提醒')">
 						<view class="icon icon9">
 							<image class="img" src="@/assets/img/fas fa-exclamation-triangle.svg" mode=""></image>
+							<view class="dot" v-if="unReadtNum(3)" >
+								
+							</view>
 						</view>
 						<view class="grid-text">断电提醒
 						</view>
@@ -73,6 +79,9 @@
 					<u-grid-item   @click="gotoUrl('/pages/message/messageList?type=5&typeName=停电通知')">
 						<view class="icon icon5">
 							<image class="img" src="@/assets/img/antFill-notification.svg" mode=""></image>
+							<view class="dot" v-if="unReadtNum(5)" >
+								
+							</view>
 						</view>
 						<view class="grid-text">停电通知
 
@@ -81,6 +90,9 @@
 					<u-grid-item   @click="gotoUrl('/pages/message/messageList?type=4?type=5&typeName=故障警报')">
 						<view class="icon icon6">
 							<image class="img" src="@/assets/img/fas fa-exclamation-triangle.svg" mode=""></image>
+							<view class="dot" v-if="unReadtNum(4)" >
+								
+							</view>
 						</view>
 						<view class="grid-text">故障警报
 
@@ -147,26 +159,67 @@
 				background: {
 					backgroundColor: '#3D86FF',
 				},
-				prefetchNum:0
-
+				prefetchNum:0,
+				headlineBill:{},
+				messageList:[],
 			}
 		},
 		onLoad() {
+			
+		},
+		onShow(){
 			this.homePage()
 			this.prefetch()
 		},
 		methods: {
+			unReadtNum(num){
+				for(var i in this.messageList){
+					var item=this.messageList[i];
+					if(item.typeId==num){
+						return item.unReadtNum
+					}
+				}
+				return 0
+			},
 			prefetch(){
 				API_message.prefetch({
 					
 				}).then((response) => {
-					//this.prefetchNum=response.data
+					this.prefetchNum=response.data
+					
+					this.getBillList()
+					this.getMessageTypeList()
+					
+				
+					
+				}).catch(error => {
+					//uni.hideLoading();
+					
+				})
+			},
+			getMessageTypeList(){
+				
+				API_message.messageTypeList().then((response) => {
+				
+					this.messageList=response.data.typeList;
+				}).catch(error => {
+					uni.hideLoading();
+					
+				})
+			},
+			getBillList(){
+				
+				API_message.headlineBill().then((response) => {
+				
+					this.headlineBill=response.data;
+					var num=response.data.unReadtNum;
+					
 					if (this.$refs.tabbarMain) {
-						this.$refs.tabbarMain.setprefetchNum(response.data);
+						this.$refs.tabbarMain.setprefetchNum(this.prefetchNum+num);
 					}
 					
 				}).catch(error => {
-					//uni.hideLoading();
+					uni.hideLoading();
 					
 				})
 			},
@@ -260,7 +313,15 @@
 			color: #333333;
 			font-weight: bold;
 		}
-
+		.dot{
+			width: 20rpx;
+			height: 20rpx;
+			border-radius:999px;
+			background-color: rgba(255,0,0,1);
+			position: absolute;
+			top:24rpx;
+			right:24rpx;
+		}
 		.grid-text {
 			margin-top: 28rpx;
 			color: rgba(51, 51, 51, 1);

+ 24 - 19
pages/message/message.vue

@@ -3,11 +3,11 @@
 		<u-navbar title="消息"  title-color="#101010" ></u-navbar>
 		<!-- 消息列表 -->
 		
-			<view class="message-list" v-if="list.length">
+			<view class="message-list" >
 				<view class="message-item"  @click="messageList1()" >
 					<view class="icon icon2">
 						<image class="img" src="@/assets/img/antFill-account-book.svg" mode=""></image>
-						<view class="dot" >
+						<view class="dot" v-if="headlineBill.unReadtNum" >
 							
 						</view>
 					</view>
@@ -16,12 +16,15 @@
 							<view class="title-name">
 								账单提醒
 							</view>
-							<view class="title-time">
-								{{list[0].createTime}}
+							<view class="title-time" v-if="headlineBill.billPush">
+								{{headlineBill.billPush.createTime}}
+							</view>
+							<view class="title-time"  v-else>
+								无
 							</view>
 						</view>
-						<view class="value">
-							{{list[0].name}}
+						<view class="value" v-if="headlineBill.billPush" >
+							{{headlineBill.billPush.name}}
 						</view>
 					</view>
 				</view>
@@ -171,6 +174,7 @@
 		data() {
 			return {
 				list:[],
+				headlineBill:{},
 				messageList:[],
 				prefetchNum:0
 			}
@@ -180,7 +184,7 @@
 			
 		},
 		onShow() {
-			this.getBillList()
+			
 			this.prefetch()
 		},
 		methods: {
@@ -188,10 +192,9 @@
 				API.prefetch({
 					
 				}).then((response) => {
-					//this.prefetchNum=response.data
-					if (this.$refs.tabbarMain) {
-						this.$refs.tabbarMain.setprefetchNum(response.data);
-					}
+					this.prefetchNum=response.data
+					
+					this.getBillList()
 					this.getMessageTypeList()
 				}).catch(error => {
 					//uni.hideLoading();
@@ -199,12 +202,8 @@
 				})
 			},
 			messageList1(){
-				if(this.list.length==1){
-					this.gotoUrl('/pages/deductionRecord/billPush?site=1&id='+this.list[0].id)
-					
-				}else{
-					this.gotoUrl('/pages/message/messageList?type=AA&typeName=账单提醒')
-				}
+				this.gotoUrl('/pages/message/messageList?type=AA&typeName=账单提醒')
+				
 			},
 			getMessageTypeList(){
 				uni.showLoading({
@@ -222,9 +221,15 @@
 				uni.showLoading({
 					mask:true,title:'加载中...'
 				})
-				API.billList().then((response) => {
+				API.headlineBill().then((response) => {
 					uni.hideLoading();
-					this.list=response.data.data;
+					this.headlineBill=response.data;
+					var num=response.data.unReadtNum;
+					
+					if (this.$refs.tabbarMain) {
+						this.$refs.tabbarMain.setprefetchNum(this.prefetchNum+num);
+					}
+					
 				}).catch(error => {
 					uni.hideLoading();
 					

+ 27 - 8
pages/mine/mine.vue

@@ -69,8 +69,11 @@
 							stateBl:stateBl(item.prepaidEndTime)
 						}">
 							<view class="classify">
-								{{item.name}} <text class="state" v-if="item.prepaidEndTime&&stateBl(item.prepaidEndTime)">已到期</text>
-								<text class="state" v-if="!item.prepaidEndTime">未交费</text>
+								{{item.name}} 
+							</view>
+							<view class="classify">
+								 <span class="state" v-if="item.prepaidEndTime&&stateBl(item.prepaidEndTime)">已到期</span>
+								<span class="state" v-if="!item.prepaidEndTime">未交费</span>
 							</view>
 							<view class="date" v-if="item.prepaidEndTime">
 								已缴费至 <text class="state">{{item.prepaidEndTime}}</text>
@@ -237,7 +240,7 @@
 			//this.prefetch()
 
 			//this.personalCenter()
-			this.getContractList()
+			
 		},
 		onShow() {
 			this.query()
@@ -267,15 +270,30 @@
 				API_message.prefetch({
 
 				}).then((response) => {
-					//this.prefetchNum=response.data
-					if (this.$refs.tabbarMain) {
-						this.$refs.tabbarMain.setprefetchNum(response.data);
-					}
+					this.prefetchNum=response.data
+					this.getBillList()
+					
 				}).catch(error => {
 					//uni.hideLoading();
 
 				})
 			},
+			getBillList(){
+				
+				API_message.headlineBill().then((response) => {
+				
+					this.headlineBill=response.data;
+					var num=response.data.unReadtNum;
+					
+					if (this.$refs.tabbarMain) {
+						this.$refs.tabbarMain.setprefetchNum(this.prefetchNum+num);
+					}
+					
+				}).catch(error => {
+					uni.hideLoading();
+					
+				})
+			},
 			query() {
 				uni.showLoading({
 					title: "加载中",
@@ -300,6 +318,7 @@
 
 					this.personInfo = response.data.tenantInfo;
 					this.prefetch();
+					this.getContractList()
 					//this.homePage()
 
 				}).catch(error => {
@@ -520,7 +539,7 @@
 					.item-icon {
 						width: 40rpx;
 						height: 40rpx;
-						margin-right: 16rpx;
+						margin-right: 12rpx;
 						.img {
 							width: 100%;
 							height: 100%;