瀏覽代碼

预约相关页面接口

一懒众山小 3 年之前
父節點
當前提交
9c72a69297

+ 6 - 1
src/core/apiUrl.js

xqd
@@ -82,7 +82,12 @@ const apiUrl = {
 		evaluate_list:'api/order-comments/list',
 		del_evaluate:'api/order-comments/del',
 		suggestion:'api/user/submit-suggestion',
-		visit_house:'api/user/visit-house'
+		// visit_house:'api/user/visit-house'
+		
+		//预约
+		visit_list:'api/visit/list',
+		visit_detail:'api/visit/detail',
+		visit_appoint:'api/visit/appoint',
     },
     article: {
         list: 'api/default/article-list',

+ 25 - 21
src/pages.json

xqd xqd
@@ -114,16 +114,22 @@
 					"enablePullDownRefresh": false
 				}
 
-			}    ,{
-                    "path" : "caseList",
-                    "style" :                                                                                    
-                {
-                    "navigationBarTitleText": "",
-                    "enablePullDownRefresh": false
-                }
-                
-                }
-            ]
+			}, {
+				"path": "caseList",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
+			}, {
+				"path": "appointment/appointment-list",
+				"style": {
+					"navigationBarTitleText": "预约列表",
+					"enablePullDownRefresh": false,
+					"navigationBarBackgroundColor": "#ffffff"
+				}
+
+			}]
 		},
 		{
 			"root": "pages/sale",
@@ -194,18 +200,16 @@
 						"enablePullDownRefresh": false
 					}
 
+				}, {
+					"path": "salePersonInfo",
+					"style": {
+						"navigationBarTitleText": "个人信息",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff"
+					}
+
 				}
-			    ,{
-                    "path" : "salePersonInfo",
-                    "style" :                                                                                    
-                {
-                    "navigationBarTitleText": "个人信息",
-                    "enablePullDownRefresh": false,
-					"navigationBarBackgroundColor": "#fff"
-                }
-                
-                }
-            ]
+			]
 		},
 		// {
 		// 	"root": "plugins/fission",

+ 11 - 23
src/pages/case/appointment/appointment-form.vue

xqd xqd xqd
@@ -4,23 +4,23 @@
 		<app-nav-bar v-if="true" :fixed="true" :xStyle="1" :hasMallSetting="2" :title="'预约'" color="#fff" :background-color="'#e2c47b'"></app-nav-bar>
 		<!-- <app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2" -->
 		<view class="main-between-y builInfo">
-			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
+			<view class="main-between cross-center" style="height: 72rpx;" >
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘名称</view>
 				<view class="hjx-ts-30 hjx-tc-222">
 					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
 						:class="{'hjx-tc-999':estate_name==''?true:false,'hjx-tc-000':estate_name!=''?true:false}">{{estate_name===''?'请选择':estate_name}}
-						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
-							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						<!-- <image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image> -->
 					</view>
 				</view>
 			</view>
-			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
+			<view class="main-between cross-center" style="height: 72rpx;" >
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘地址</view>
 				<view class="hjx-ts-30 hjx-tc-222">
 					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
 						:class="{'hjx-tc-999':estate_address==''?true:false,'hjx-tc-000':estate_address!=''?true:false}">{{estate_address===''?'请选择':estate_address}}
-						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
-							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						<!-- <image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image> -->
 					</view>
 				</view>
 			</view>
@@ -105,20 +105,8 @@
 				date: '请选择'
 			};
 		},
-		onShow() {
-			var pages = getCurrentPages();
-			var currPage = pages[pages.length - 1]; //当前页面
-		
-			'estateInfo' in currPage.$vm ? this.estate_name = currPage.$vm.estateInfo.name : ''
-			'estateInfo' in currPage.$vm ? this.estate_id = currPage.$vm.estateInfo.id : ''
-			// 'estateInfo' in currPage.$vm ? this.multiIndex = currPage.$vm.estateInfo.multiIndex : ''
-			if('estateInfo' in currPage.$vm){
-				let address=currPage.$vm.estateInfo.address.split(' ').filter((s)=>{
-					return s && s.trim()
-				})
-				this.estate_address=address[2]+address[3]
-			}''
-			
+		onLoad(option) {
+			this.visit_id=option.id
 			
 		},
 		methods: {
@@ -145,11 +133,11 @@
 			},
 			goAppointment() {
 				this.$request({
-					url: this.$api.user.visit_house,
+					url: this.$api.user.visit_appoint,
 					data: {
-						estate_id: this.estate_id,
+						visit_id: this.visit_id,
 						username: this.username,
-						phone: this.mobile,
+						mobile: this.mobile,
 						visit_date: this.date + ' ' + this.time,
 					},
 					method: 'post'

+ 168 - 0
src/pages/case/appointment/appointment-list.vue

xqd
@@ -0,0 +1,168 @@
+<template>
+	<view class="page">
+		<view class="center">
+			<view class="item" v-for="(item,index) in VisitList" :key="index" @click="goPage(item.id)">
+					<view style="width: 100%;height: 396rpx;">
+						<image style="width: 100%;height: 396rpx;" :src="item.cover_img" mode=""></image>
+					</view>
+				<view class="main-between pl" >
+					<view class="main-between-y">
+						<view class="title t-omit">{{item.name}}</view>
+						<view class="desc t-omit">活动时间:{{`${item.begin_time}-${item.end_time}`}}</view>
+					</view>
+					<view class="right-bt">
+						<view class="t-omit">{{item.num}}</view>
+						<view class="ee">名额仅剩</view>
+					</view>
+				</view>
+				<view class="line"></view>
+				<view class="addr">
+					<view class="t-omit">活动地点:{{item.address}}</view>
+				</view>
+			</view>
+			<view class="no-more">没有更多了...</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				page:1,
+				is_myself:0,
+				VisitList:[],
+			};
+		},
+		onLoad(option) {
+			this.getVisitList()
+		},
+		methods:{
+			goPage(id){
+				uni.navigateTo({
+					url:'/pages/case/appointment/appointment?id='+id
+				})
+			},
+			getVisitList(){
+				this.$request({
+					url:this.$api.user.visit_list,
+					methods:'post',
+					data:{
+						page:this.page,
+						is_myself:this.is_myself
+					}
+				}).then(res=>{
+					if(res.code===0){
+						this.VisitList=res.data.list
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.no-more {
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #666666;
+		margin-top: 37rpx;
+		text-align: center;
+	}
+	.page{
+		position: relative;
+		min-height: 100vh;
+	}
+	.tpbg{
+		width: 750rpx;
+		height: 368rpx;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: -1;
+	}
+	.w{
+		width: 750rpx;
+	}
+	.center{
+		width: 750rpx;
+		height: auto;
+		background: #F8F8F8;
+		border-radius: 20rpx;
+		overflow: hidden;
+		padding: 36rpx;
+		.tagf{
+			padding-bottom: 26rpx;
+		}
+		.tag{
+			min-width: 131rpx;
+			height: 51rpx;
+			background: #EFEFEF;
+			border-radius: 10rpx;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #999999;
+			text-align: center;
+			line-height: 51rpx;
+			padding: 0 15rpx;
+			margin-right: 20rpx;
+		}
+		.active{
+			background: #A18353;
+			color: #FFFFFF;
+		}
+		.item{
+			width: 678rpx;
+			height: auto;
+			background: #FFFFFF;
+			border-radius: 14rpx;
+			margin:0 auto 24rpx;
+			overflow: hidden;
+
+			.pl{
+				padding: 28rpx 22rpx;
+				margin-top: 25rpx;
+				.title{
+					width: 480rpx;
+					font-size: 32rpx;
+					font-weight: bold;
+					color: #222222;
+				}
+				.desc{
+					width: 480rpx;
+					font-size: 22rpx;
+					font-weight: 500;
+					color: #999999;
+				}
+				.right-bt{
+					width: 118rpx;
+					height: 82rpx;
+					background: #FFFFFF;
+					border: 2rpx solid #A18353;
+					
+
+					font-size: 30rpx;
+					font-weight: 500;
+					color: #A18353;
+					text-align: center;
+					.ee{
+						font-size: 18rpx;
+					}
+				}
+			}
+			.line{
+				padding: 0 28rpx;
+				background-color: #D8D8D8;
+				width: 100%;
+				height: 1px;
+			}
+			.addr{
+				padding: 24rpx 28rpx 32rpx;
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #999999;
+				line-height: 22rpx;
+			}
+		}
+	}
+</style>

+ 164 - 150
src/pages/case/appointment/appointment.vue

xqd xqd xqd xqd
@@ -3,11 +3,10 @@
 		<!-- <app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2"
 			:hasHeight="false"></app-nav-bar> -->
 		<view class="swiper_cent tpbg">
-			<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000"
-				@change="swiperChange">
-				<swiper-item v-for="(item,index) in 3" :key="index" @click="gopage">
+			<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000" @change="swiperChange">
+				<swiper-item v-for="(item, index) in 1" :key="index" @click="gopage">
 					<view style="width: 100%;height: 534rpx;position: relative;">
-						<image src="https://t17.9026.com/web/statics/image/index/14.png" style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
+						<image :src="dataDetail.cover_img" style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -50,11 +49,14 @@
 				</view>
 			</view> -->
 			<view class="details">
-				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">龙湖·揽镜</view>
+				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">{{dataDetail.name}}</view>
 				<view class="content hjx-tc-666 hjx-ts-26">
-					<view>地址:<text class="hjx-tc-B19D60">成都市双流区天府大道南段2716号</text></view>
-					<view class="content-text">
-						简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
+					<view>
+						地址:
+						<text class="hjx-tc-B19D60">{{dataDetail.address}}</text>
+					</view>
+					<view class="content-text" v-html="dataDetail.details">
+						<!-- 简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。 -->
 					</view>
 					<!-- <view class="content-image">
 						<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
@@ -77,16 +79,17 @@
 					</view> -->
 				</view>
 			</view>
-			<view class="details">
+			<view class="details" v-if="false">
 				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">基本信息</view>
 				<view class="content hjx-tc-666 hjx-ts-26">
-					<view v-for="(item,index) in 7" :key="index" class="hxj-mb-10">物业类型:<text class="hjx-tw-600 hjx-tc-222">住宅</text></view>
+					<view v-for="(item, index) in 7" :key="index" class="hxj-mb-10">
+						物业类型:
+						<text class="hjx-tw-600 hjx-tc-222">住宅</text>
+					</view>
 					<!-- <view class="content-text">
 						简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
 					</view> -->
-					<view class="content-image">
-						<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
-					</view>
+					<view class="content-image"><image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image></view>
 					<!-- <view class="main-between content-goods">
 						<view class="main-left desc">
 							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png" mode=""></image>
@@ -106,183 +109,194 @@
 				</view>
 			</view>
 		</view>
-		<view class="noMake cross-center">
-			<button type="default" @tap="goAppointment">立即预约</button>
-		</view>
+		<view class="noMake cross-center"><button type="default" @tap="goAppointment">立即预约</button></view>
 	</view>
 </template>
 
 <script>
-	import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
-	export default {
-		components: {
-			appNavBar
-		},
-		data() {
-			return {
-swiperKey:0
-			};
-		},
-		methods: {
-			swiperChange(e){
-				console.log(e.detail.current)
-				this.swiperKey = e.detail.current
+import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
+export default {
+	components: {
+		appNavBar
+	},
+	data() {
+		return {
+			swiperKey: 0,
+			dataDetail:{}
+		};
+	},
+	onLoad(option) {
+		this.$request({
+			url: this.$api.user.visit_detail,
+			data: {
+				visit_id: option.id
 			},
-			goAppointment(){
-				uni.navigateTo({
-					url:'/pages/case/appointment/appointment-form'
-				})
+			method: 'post'
+		}).then(res => {
+			if (res.code === 0) {
+				this.dataDetail=res.data
 			}
+		});
+	},
+	methods: {
+		swiperChange(e) {
+			console.log(e.detail.current);
+			this.swiperKey = e.detail.current;
+		},
+		goAppointment() {
+			uni.navigateTo({
+				url: '/pages/case/appointment/appointment-form?id='+this.dataDetail.id
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss" scoped>
-	.noMake{
-		position: fixed;
-		bottom: 0;
-		width: 100%;
-		height: 156rpx;
-		background: #FFFFFF;
-		box-shadow: 0px 7rpx 45rpx 1rpx rgba(85, 82, 82, 0.64);
-		button{
-			width: 678rpx;
-			height: 84rpx;
-			background: #A18353;
-			border-radius: 6rpx;
-			margin: 0 auto;
-			font-size: 30rpx;
-			font-weight: bold;
-			color: #FFFFFF;
-		}
-	}
-	.page {
-		position: relative;
-		min-height: 100vh;
+.noMake {
+	position: fixed;
+	bottom: 0;
+	width: 100%;
+	height: 156rpx;
+	background: #ffffff;
+	box-shadow: 0px 7rpx 45rpx 1rpx rgba(85, 82, 82, 0.64);
+	button {
+		width: 678rpx;
+		height: 84rpx;
+		background: #a18353;
+		border-radius: 6rpx;
+		margin: 0 auto;
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #ffffff;
 	}
+}
+.page {
+	position: relative;
+	min-height: 100vh;
+}
 
-	.tpbg {
-		width: 750rpx;
-		height: 534rpx;
-	}
+.tpbg {
+	width: 750rpx;
+	height: 534rpx;
+}
 
-	.w {
-		width: 750rpx;
-	}
+.w {
+	width: 750rpx;
+}
 
-	.center {
-		width: 750rpx;
-		height: auto;
-		background: #F8F8F8;
-		border-radius: 20rpx;
-		overflow: hidden;
-		padding: 36rpx;
-		margin-top: -20rpx;
-		.summary {
-			padding-bottom: 30rpx;
-			background-color: #F8F8F8;
+.center {
+	width: 750rpx;
+	height: auto;
+	background: #f8f8f8;
+	border-radius: 20rpx;
+	overflow: hidden;
+	padding: 36rpx;
+	margin-top: -20rpx;
+	.summary {
+		padding-bottom: 30rpx;
+		background-color: #f8f8f8;
 
-			.title {
-				padding-bottom: 20rpx;
+		.title {
+			padding-bottom: 20rpx;
 
-				.text {
-					width: 579rpx;
-				}
+			.text {
+				width: 579rpx;
 			}
+		}
 
-			.gg {
-				padding: 20rpx 0;
+		.gg {
+			padding: 20rpx 0;
 
-				image {
-					width: 28rpx;
-					height: 28rpx;
-				}
+			image {
+				width: 28rpx;
+				height: 28rpx;
+			}
 
-				.item {
-					width: 25%;
-					height: 73rpx;
-				}
+			.item {
+				width: 25%;
+				height: 73rpx;
 			}
 		}
+	}
 
-		.details {
-			// padding-top: 38rpx;
+	.details {
+		// padding-top: 38rpx;
 
-			.content {
-				.content-text {
-					font-size: 30rpx;
-					font-weight: 500;
-					line-height: 46rpx;
-					padding: 15rpx 0;
-				}
+		.content {
+			.content-text {
+				font-size: 30rpx;
+				font-weight: 500;
+				line-height: 46rpx;
+				padding: 15rpx 0;
+			}
 
-				.content-image {
-					width: 100%;
-					max-height: 738rpx;
+			.content-image {
+				width: 100%;
+				max-height: 738rpx;
 
-					image {
-						width: 100%;
-					}
+				image {
+					width: 100%;
 				}
+			}
 
-				.content-goods {
-					margin-top: 12rpx;
-					background: #F2F2F2;
-
-					.desc {
-						width: 511rpx;
-						height: 141rpx;
-						border-radius: 6rpx;
-						padding: 18rpx 24rpx;
+			.content-goods {
+				margin-top: 12rpx;
+				background: #f2f2f2;
 
-						.goods-img {
-							width: 101rpx;
-							height: 99rpx;
-							border-radius: 8rpx;
-							margin-right: 21rpx;
-						}
+				.desc {
+					width: 511rpx;
+					height: 141rpx;
+					border-radius: 6rpx;
+					padding: 18rpx 24rpx;
 
-						.title {
-							font-size: 26rpx;
-							font-weight: 500;
-							color: #222222;
-							line-height: 46rpx;
-						}
+					.goods-img {
+						width: 101rpx;
+						height: 99rpx;
+						border-radius: 8rpx;
+						margin-right: 21rpx;
+					}
 
-						.col {
-							font-size: 24rpx;
-							font-weight: 500;
-							color: #666666;
-							line-height: 46rpx;
-						}
+					.title {
+						font-size: 26rpx;
+						font-weight: 500;
+						color: #222222;
+						line-height: 46rpx;
 					}
 
-					.priceBox {
-						padding: 18rpx 24rpx;
+					.col {
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #666666;
+						line-height: 46rpx;
 					}
+				}
 
+				.priceBox {
+					padding: 18rpx 24rpx;
 				}
 			}
 		}
 	}
-	.swiper_cent {
-		position: relative;
-		.swiper_zhishi {
-			display: flex;
-			align-items: center;
-			width: 100%;
-			justify-content: center;
-			position: absolute;
-			bottom: 39rpx;
-	
-			view {
-				width: 81rpx;
-				height: 4rpx;
-				background: #c8c8c8;
-			}
-			.view_active {
-				background: #f4f4f4;
-			}
+}
+.swiper_cent {
+	position: relative;
+	.swiper_zhishi {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		justify-content: center;
+		position: absolute;
+		bottom: 39rpx;
+
+		view {
+			width: 81rpx;
+			height: 4rpx;
+			background: #c8c8c8;
+		}
+		.view_active {
+			background: #f4f4f4;
 		}
 	}
+}
 </style>

+ 5 - 5
src/pages/case/hot_sale_project.vue

xqd xqd
@@ -19,11 +19,11 @@
 			<view class="item" v-for="(item,index) in CompositionList" :key="index" @click="goPage(item.id)">
 				<view class="main-between img">
 					<view style="width: 419rpx;height: 281rpx;">
-						<image style="width: 419rpx;height: 281rpx;" :src="item.cover_img" mode=""></image>
+						<image style="width: 420rpx;height: 420rpx;" :src="item.cover_img" mode=""></image>
 					</view>
 					<view style="width: 206rpx;">
-						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[0].banner_imgs" mode=""></image>
-						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[1].banner_imgs" mode=""></image>
+						<image style="width: 206rpx;height: 206rpx;" :src="item.banner_imgs[0].banner_imgs" mode=""></image>
+						<image style="width: 206rpx;height: 206rpx;" :src="item.banner_imgs[1].banner_imgs" mode=""></image>
 					</view>
 				</view>
 				<view class="main-between pl" >
@@ -151,13 +151,13 @@
 		}
 		.item{
 			width: 678rpx;
-			height: 477rpx;
+			height: auto;
 			background: #FFFFFF;
 			border-radius: 8rpx;
 			margin:0 auto 24rpx;
 			padding: 27rpx 22rpx;
 			.img{
-				height: 281rpx;
+				height: 420rpx;
 				border-radius: 10rpx;
 				overflow: hidden;
 			}

+ 1 - 1
src/pages/sale/components/app-my-income.vue

xqd
@@ -1,5 +1,5 @@
 <template>
-	<view class="main-between income">
+	<view class="main-between income" style="margin-top: 29rpx;">
 		<view class="item" @click="goPage('/pages/sale/mySaleOrder')">
 			<view class="title">订单总额(万)</view>
 			<view class="main-between cross-center">

+ 2 - 2
src/pages/sale/sale-user-center.vue

xqd
@@ -1,11 +1,11 @@
 <template>
 	<app-layout :haveBackground="false">
 		<image style="height: 396rpx;width: 100%;position: absolute;top: 0;left: 0;z-index: -1;"
-			src="https://t17.9026.com/web/statics/image/index/sale_top_bg.png" mode=""></image>
+			src="https://swdzshopv4.oss-cn-chengdu.aliyuncs.com/uploads/mall10000/20211209/0adfeb029f95892255541fd43cb70358.png" mode=""></image>
 		<app-nav-bar v-if="true" :fixed="true" :title="mall.name" color="#000" :hasMallSetting="2" background-color="">
 		</app-nav-bar>
 		<app-user-center-top :top-style="5" :member-pic-url="userCenter.member_pic_url"
-			:is_icon_super_vip="is_icon_super_vip" user-name-color="#ffffff" :isRealname="false"></app-user-center-top>
+			:is_icon_super_vip="is_icon_super_vip" user-name-color="#222" :isRealname="false"></app-user-center-top>
 
 		<app-my-income></app-my-income>