zhengkaixin 1 rok pred
rodič
commit
9e120af67c

+ 9 - 0
apis/pagejs/tenantList.js

@@ -57,4 +57,13 @@ export function contractItemList(data) {
  		data: data,
  		url: url
  	})
+ }
+ 
+ export function tenantContractList(data) {
+ 	var url='/mobile/energyManage/tenantContractList';
+ 	return request({
+ 		method: 'post',
+ 		data: data,
+ 		url: url
+ 	})
  }

BIN
assets/img/deadline1.png


BIN
assets/img/deadline2.png


BIN
assets/img/deadline3.png


BIN
assets/img/deadline4.png


+ 6 - 0
assets/img/riLine-folder-user-line.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" width="24" height="24" style="" filter="drop-shadow(0px 2px 4px rgba(0,7,142,0.78))">
+    
+    <g>
+    <path d="M16.552 6.667h11.448c0.736 0 1.333 0.597 1.333 1.333v0 18.667c0 0.736-0.597 1.333-1.333 1.333v0h-24c-0.736 0-1.333-0.597-1.333-1.333v0-21.333c0-0.736 0.597-1.333 1.333-1.333v0h9.885l2.667 2.667zM5.333 6.667v18.667h21.333v-16h-11.219l-2.667-2.667h-7.448zM10.667 24c0-2.946 2.388-5.333 5.333-5.333s5.333 2.388 5.333 5.333v0h-10.667zM16 17.333c-1.841 0-3.333-1.492-3.333-3.333s1.492-3.333 3.333-3.333v0c1.841 0 3.333 1.492 3.333 3.333s-1.492 3.333-3.333 3.333v0z" fill="rgba(255,255,255,1)"></path>
+    </g>
+  </svg>

BIN
assets/img/wallet@3x.png


+ 7 - 0
pages.json

@@ -358,6 +358,13 @@
         		"navigationBarTitleText" : "",
         		"enablePullDownRefresh" : false
         	}
+        },
+        {
+        	"path" : "pages/tenantList/contractList",
+        	"style" : 
+        	{
+        		"navigationBarTitleText" : ""
+        	}
         }
       
        

+ 8 - 0
pages/mine/myApps.vue

@@ -75,6 +75,14 @@
 				租户管理
 			</view>
 			<view class="apps-groups">
+				<view class="item"  @click="gotoUrl('/pages/tenantList/contractList')" >
+					<view class="item-icon item-icon9">
+						<image class="img" src="@/assets/img/riLine-folder-user-line.svg" mode=""></image>
+					</view>
+					<view class="item-name">
+						租户余额
+					</view>
+				</view>
 				<view class="item"  @click="gotoUrl('/pages/tenantList/tenantList')" >
 					<view class="item-icon item-icon7">
 						<image class="img" src="@/assets/img/iconPark-order.svg" mode=""></image>

+ 266 - 0
pages/tenantList/contractList.vue

@@ -0,0 +1,266 @@
+<template>
+	<view>
+		<u-navbar title="租户余额管理" title-color="#101010"></u-navbar>
+		<view class="main">
+			<view class="tenant" v-for="(tenant,i) in tenantList" :key="i" >
+				<view class="tenant-name">
+					{{tenant.name}}
+
+				</view>
+				<view class="balance">
+					<view class="title">
+						<view class="icon">
+							<image class="img" src="@/assets/img/wallet@3x.png" mode=""></image>
+						</view>
+						<view class="text">
+							账户余额
+							<span class="state" v-if="tenant.balance<0">已欠费</span>
+						</view>
+					</view>
+				
+					<view class="balance-number">
+						<view class="number" :class="{
+							number2:tenant.balance<0
+						}" >
+							{{tenant.balance}}元
+						</view>
+						
+					</view>
+				</view>
+				<view>
+					<view  class="deadline" v-for="(obj,i) in tenant.tenantContractList" :key="i">
+					<view class="deadline-item"  v-for="(item,i) in obj.contractItemList" :key="i" v-if="item.paymentMethod==1" >
+						<view class="item-icon">
+							
+							<image class="img" v-if="item.name.indexOf('水')>-1" src="@/assets/img/deadline2.png" mode=""></image>
+								<image class="img"  v-else-if="item.name.indexOf('房')>-1||item.name.indexOf('租')>-1" src="@/assets/img/deadline1.png" mode=""></image>
+								<image class="img"  v-else-if="item.name.indexOf('保洁')>-1" src="@/assets/img/deadline4.png" mode=""></image>
+								<image class="img" v-else-if="item.name.indexOf('物业')>-1"  src="@/assets/img/deadline3.png" mode=""></image>
+								
+							<image class="img" v-else src="@/assets/img/deadline3.png" mode=""></image>
+							
+							
+						</view>
+						<view class="date-box" :class="{
+							stateBl:stateBl(item.prepaidEndTime)
+						}">
+							<view class="classify">
+								{{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>
+							</view>
+							
+						</view>
+					</view>
+					</view>
+				</view>
+			</view>
+			
+		</view>
+		<u-divider :isnone="tenantList.length==0"  nonetext="无记录"
+			border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/tenantList.js'
+	import {
+		newDate
+	} from '@/apis/utils'
+	export default {
+		data() {
+			return {
+				tenantList:[],
+				getTenantListReady:false,
+			}
+		},
+		onReady() {
+			// this.current=1
+			 this.getTenantList()
+		
+		},
+		methods: {
+			stateBl(time){
+				var get=newDate(time)
+				var time=new Date()
+				return get<time;
+			},
+			getTenantList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				API.tenantContractList().then((response) => {
+					uni.hideLoading();
+					this.getTenantListReady=true
+					this.tenantList=response.data.tenantInfoList;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main{
+		
+		margin-top: 24rpx;
+		.tenant{
+			background-color: #fff;
+			
+			color: rgba(51,51,51,1);
+			font-size: 32rpx;
+			 margin: 24rpx;
+			border-radius: 8px;
+			.tenant-name{
+				font-size: 40rpx;
+				font-weight: bold;
+				 padding: 24rpx;
+
+			}
+		}
+		
+	}
+	
+	.balance{
+		 padding: 24rpx 24rpx;
+		  border-bottom: 1px solid #F4F4F4;
+		      display: flex;
+		      justify-content: space-between;
+	}
+	
+	.title {
+		display: flex;
+	
+		.icon {
+			width: 40rpx;
+			height: 40rpx;
+	
+			.img {
+				width: 100%;
+				height: 100%;
+	
+			}
+		}
+	
+		.text {
+			margin-left: 16rpx;
+			color: rgba(51, 51, 51, 1);
+			font-size: 32rpx;
+			font-weight: bold;
+	
+			.state {
+				    white-space: pre;
+				
+				margin-left: 16rpx;
+				color: rgba(238, 49, 56, 1);
+			}
+		}
+	}
+	
+	.balance-number {
+		// display: flex;
+		// align-items: center;
+		// justify-content: space-between;
+		// margin-top: 16rpx;
+		// margin-left: 56rpx;
+		.number2 {
+		
+			color: rgba(238, 49, 56, 1);
+		
+		}
+		.number {
+			
+			//font-size: 56rpx;
+			font-weight: bold;
+	
+		}
+	
+		.recharge {
+			width: 144rpx;
+			height: 56rpx;
+			line-height: 56rpx;
+			border-radius: 50px;
+			background: linear-gradient(85.19deg, rgba(255, 61, 0, 1) 4.89%, rgba(255, 123, 0, 1) 95.37%);
+			color: rgba(255, 255, 255, 1);
+			text-align: center;
+		}
+	}
+	
+	// 期限
+		.deadline {
+			
+			display: flex;
+			flex-wrap: wrap;
+	        
+	
+			 .deadline-item:first-of-type{
+				 
+				  //border-top: 1px solid #F4F4F4;
+			 }
+			 .deadline-item:last-of-type{
+				
+				// border-left: 1px solid #F4F4F4;
+			 }
+			.deadline-item {
+				border-bottom: 1px solid #F4F4F4;
+				border-right: 1px solid #F4F4F4;
+				width: 50%;
+				display: flex;
+	            padding: 24rpx ;
+				
+				
+				.item-icon {
+					width: 40rpx;
+					height: 40rpx;
+					margin-right: 12rpx;
+					.img {
+						width: 100%;
+						height: 100%;
+						vertical-align: middle;
+					}
+				}
+				.stateBl{
+					.state {
+						// white-space: pre;
+						color: rgba(238, 49, 56, 1);
+					}
+				}
+				.date-box {
+					
+					.state {
+						 white-space: pre;
+						//color: rgba(238, 49, 56, 1);
+					}
+					text{
+						margin-left: 8rpx;
+					}
+	
+					.classify {
+						color: rgba(51, 51, 51, 1);
+						font-size: 32rpx;
+						font-weight: bold;
+						
+	
+					}
+					.date{
+						color: rgba(51,51,51,1);
+						font-size: 24rpx;
+						margin-top: 4rpx;
+					}
+				}
+			}
+		}
+	
+
+</style>