Explorar el Código

Merge branch 'master' into dev1.0

yuxingxing hace 2 años
padre
commit
3a82e944e0

+ 18 - 1
api/home.js

@@ -160,6 +160,12 @@ export function postLoginAuth(data) {
 	});
 }
 
+// 服务商数据
+export function postStatistics(data) {
+	let url = "?userId="+data.userId
+	return request.post("v1/linked/getStatistics"+url,data);
+}
+
 // 获取分享连接
 export function postLinkedUrl(data) {
 	// let url = "?code="+data.code+"&getPhoneNumberCode="+data.getPhoneNumberCode
@@ -170,9 +176,20 @@ export function postLinkedUrl(data) {
 export function leaderboard(data) {
 	return request.get('v1/re/leaderboard', data)
 }
+
 // 红包首页数据-统计
 export function todayStatistics(data) {
-	return request.get('/v1/re/todayStatistics', data)
+	return request.get('v1/re/todayStatistics', data)
+}
+
+// 绑定记录
+export function linkedBindLogList(data) {
+	return request.get('v1/linked/linkedBindLogList', data)
+}
+
+// 收益记录
+export function earningsList(data) {
+	return request.get('v1/linked/earningsList', data)
 }
 // 查询当前登录人领取的红包金额记录
 export function logListByUserId(data) {

+ 21 - 0
api/user.js

@@ -159,6 +159,27 @@ export function getIntegralList(q) {
 	return request.get("integral/list", q);
 }
 
+/*
+ * 红色积分记录
+ * */
+export function getRedIntegralList(q) {
+	return request.get("/v1/re/integralList", q);
+}
+
+/*
+ * 红色积分记录
+ * */
+export function getGreenIntegralList(q) {
+	return request.get("/v1/userTicket-page", q);
+}
+
+/*
+ * 红色积分记录
+ * */
+export function getBalanceList(q) {
+	return request.post("/v1/balance/page", q);
+}
+
 /**
  * 获取分销海报图片
  * 

+ 79 - 4
pages.json

@@ -480,7 +480,7 @@
 				{
 					"path": "user_invoice_list/index",
 					"style": {
-						"navigationBarTitleText": "发票管理",
+						"navigationBarTitleText": "共富1580",
 						"app-plus": {
 							// #ifdef APP-PLUS
 							"titleNView": {
@@ -661,6 +661,82 @@
 						}
 					}
 				},
+				{
+					"path": "user_red_integral/index",
+					"style": {
+						"navigationBarTitleText": "红色积分明细"
+						// #ifdef MP
+					,
+						"navigationBarTextStyle": "black",
+						"navigationBarBackgroundColor": "#FFFFFF"
+						// #endif
+					,
+						"app-plus": {
+							// #ifdef APP-PLUS
+							"titleNView": {
+								"type": "default"
+							}
+							// #endif
+						}
+					}
+				},
+				{
+					"path": "user_earningsCount/index",
+					"style": {
+						"navigationBarTitleText": "收益记录"
+						// #ifdef MP
+					,
+						"navigationBarTextStyle": "black",
+						"navigationBarBackgroundColor": "#FFFFFF"
+						// #endif
+					,
+						"app-plus": {
+							// #ifdef APP-PLUS
+							"titleNView": {
+								"type": "default"
+							}
+							// #endif
+						}
+					}
+				},
+				{
+					"path": "user_green_integral/index",
+					"style": {
+						"navigationBarTitleText": "绿色积分明细"
+						// #ifdef MP
+					,
+						"navigationBarTextStyle": "black",
+						"navigationBarBackgroundColor": "#FFFFFF"
+						// #endif
+					,
+						"app-plus": {
+							// #ifdef APP-PLUS
+							"titleNView": {
+								"type": "default"
+							}
+							// #endif
+						}
+					}
+				},
+				{
+					"path": "user_wallet/index",
+					"style": {
+						"navigationBarTitleText": "我的钱包"
+						// #ifdef MP
+					,
+						"navigationBarTextStyle": "black",
+						"navigationBarBackgroundColor": "#FFFFFF"
+						// #endif
+					,
+						"app-plus": {
+							// #ifdef APP-PLUS
+							"titleNView": {
+								"type": "default"
+							}
+							// #endif
+						}
+					}
+				},
 				{
 					"path": "user_coupon/index",
 					"style": {
@@ -989,8 +1065,7 @@
 						"navigationBarTextStyle": "#fff"
 						// #endif
 					}
-				}
-			]
+				}]
 		},
 		{
 			"root": "pages/goods_details",
@@ -1332,4 +1407,4 @@
 			}
 		]
 	}
-}
+}

+ 9 - 14
pages/user/index.vue

@@ -105,22 +105,17 @@
 
 						</view>
 						<view class="num-wrapper">
-							<view class="num-item" v-if="userInfo.nowMoney"
-								@click="goMenuPage('/pages/users/user_money/index')">
+							<view class="num-item"
+								@click="goMenuPage('/pages/users/user_wallet/index')">
 								<text class="num">{{userInfo.nowMoney || 0}}</text>
 								<view class="txt">{{$t('钱包余额')}}</view>
 							</view>
-							<view class="num-item" v-else
-								@click="goMenuPage('/pages/users/user_goods_collection/index')">
-								<text class="num">{{userInfo.collectCount || 0}}</text>
-								<view class="txt">{{$t('收藏')}}</view>
-							</view>
-							<view class="num-item" @click="goMenuPage('/pages/users/user_coupon/index')">
+							<view class="num-item" @click="goMenuPage('/pages/users/user_green_integral/index')">
 								<text class="num">{{userInfo.ticket || 0}}</text>
 								<view class="txt">{{$t('绿色积分')}}</view>
 							</view>
-							<view class="num-item" @click="goMenuPage('/pages/users/user_integral/index')">
-								<text class="num">{{userInfo.redMoney || 0}}</text>
+							<view class="num-item" @click="goMenuPage('/pages/users/user_red_integral/index')">
+								<text class="num">{{userInfo.integral || 0}}</text>
 								<view class="txt">{{$t('红色积分')}}</view>
 							</view>
 						</view>
@@ -237,9 +232,9 @@
 						<!-- #endif -->
 						<!-- #ifdef MP -->
 						<block v-for="(item,index) in MyMenus" :key="index">
-							<view class="item" v-if="item.url!='#' 
-							&& item.url!='/pages/service/index' 
-							&& item.url!='/pages/extension/customer_list/chat' 
+							<view class="item" v-if="item.url!='#'
+							&& item.url!='/pages/service/index'
+							&& item.url!='/pages/extension/customer_list/chat'
 							|| (item.url=='/pages/extension/customer_list/chat' && routineContact == 0)"
 								@click="goMenuPage(item.url, item.name)">
 								<image :src="item.pic"></image>
@@ -578,7 +573,7 @@ export default {
 			toLogin();
 		},
 		/**
-		 * 
+		 *
 		 * 获取个人中心图标
 		 */
 		switchTab(order) {

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 153 - 0
pages/users/user_earningsCount/index.vue


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 161 - 0
pages/users/user_green_integral/index.vue


+ 444 - 0
pages/users/user_invoice_list/index copy.vue

@@ -0,0 +1,444 @@
+<template>
+	<view :style="colorStyle">
+		<view class="acea-row nav">
+			<view class="acea-row row-center-wrapper" :class="{ on: nav === 1 }" @click="navTab(1)">{{$t(`发票记录`)}}</view>
+			<view class="acea-row row-center-wrapper" :class="{ on: nav === 2 }" @click="navTab(2)">{{$t(`抬头管理`)}}</view>
+		</view>
+		<view v-show="nav === 1" class="record-wrapper">
+			<view v-for="item in orderList" :key="item.id" class="item">
+				<view class="item-hd acea-row">
+					<image class="image" :src="item.order.cartInfo[0].productInfo.image"></image>
+					<view class="text">{{ item.order.cartInfo[0].productInfo.store_name + item.order.cartInfo[0].productInfo.attrInfo.suk || '' }}</view>
+				</view>
+				<view class="item-bd acea-row row-between-wrapper">
+					<view>
+						<view class="name">{{ item.header_type === 1 ? $t(`个人`) : $t(`企业`) }}{{ item.type === 1 ? $t(`普通`) : $t(`专用`) }}{{$t(`发票`)}}</view>
+						<view>{{$t(`申请时间`)}} {{ item.add_time }}</view>
+					</view>
+					<view class="money">{{$t(`¥`)}}<text class="num">{{ item.order.pay_price }}</text></view>
+				</view>
+				<view class="item-ft acea-row row-between-wrapper">
+					<view>{{ item.is_invoice ? $t(`已开票`) : $t(`未开票`) }}</view>
+					<navigator class="link" :url="`/pages/users/user_invoice_order/index?order_id=${item.order.order_id}`">{{$t(`查看详情`)}}</navigator>
+				</view>
+			</view>
+			<view v-show="page === 2 && !orderList.length" class="nothing">
+				<image :src="imgHost + '/statics/images/noInvoice.png'"></image>
+				<view>{{$t(`没有发票信息哟~`)}}</view>
+			</view>
+		</view>
+		<view v-show="nav === 2">
+			<view v-if="invoiceList.length" class="list">
+				<template v-for="item in invoiceList">
+					<view v-if="item.type === 1 || item.type === 2 && specialInvoice" :key="item.id" class="item">
+						<view class="acea-row item-hd">
+							<view class="acea-row row-middle">
+								<view class="name">{{ item.name }}</view>
+								<view v-if="item.is_default" class="label">{{$t(`默认`)}}</view>
+							</view>
+							<view class="type" :class="{ special: item.type === 2 }">{{ item.type === 1 && item.header_type === 1 ? $t(`个人普通发票`) : item.type === 1 && item.header_type === 2?$t(`企业普通发票`):$t(`企业专用发票`) }}</view>
+						</view>
+						<view class="item-bd">
+							<view class="cell">{{$t(`联系邮箱`)}} {{ item.email }}</view>
+							<view v-if="item.header_type === 2" class="cell">{{$t(`企业税号`)}} {{ item.duty_number }}</view>
+							<view v-if="item.header_type === 1 && item.drawer_phone" class="cell">{{$t(`联系电话`)}} {{ item.drawer_phone }}</view>
+						</view>
+						<view class="acea-row row-right item-ft">
+							<view class="btn" @click="editInvoice(item.id)"><text class="iconfont icon-bianji"></text>{{$t(`编辑`)}}</view>
+							<view class="btn" @click="deleteInvoice(item.id)"><text class="iconfont icon-shanchu"></text>{{$t(`删除`)}}</view>
+						</view>
+					</view>
+				</template>
+			</view>
+			<view v-show="page === 2 && !invoiceList.length" class="nothing">
+				<image :src="imgHost + '/statics/images/noInvoice.png'"></image>
+				<view>{{$t(`没有发票信息哟~`)}}</view>
+			</view>
+			<navigator class="add-link" :url="`/pages/users/user_invoice_form/index?specialInvoice=${specialInvoice}`"><text
+				 class="iconfont icon-fapiao"></text>{{$t(`添加新发票`)}}</navigator>
+		</view>
+		<!-- #ifndef MP -->
+		<home></home>
+		<!-- #endif -->
+	</view>
+</template>
+
+<script>
+	import home from '@/components/home';
+	import {
+		mapGetters
+	} from "vuex";
+	import {
+		invoiceList,
+		invoiceDelete,
+		getUserInfo
+	} from '@/api/user.js';
+	import {
+		orderInvoiceList
+	} from '@/api/order.js';
+	import colors from '@/mixins/color.js';
+	import {HTTP_REQUEST_URL} from '@/config/app';
+	export default {
+		components: {
+			home
+		},
+		mixins:[colors],
+		data() {
+			return {
+				imgHost:HTTP_REQUEST_URL,
+				orderList: [],
+				invoiceList: [],
+				nav: 1, // 1:发票记录 2:抬头管理
+				page: 1,
+				limit: 30,
+				loading: false,
+				finished: false,
+				specialInvoice: true
+			};
+		},
+		watch: {
+			nav: {
+				immediate: true,
+				handler(value) {
+					this.page = 1;
+					switch (value) {
+						case 1:
+							this.orderList = [];
+							this.getOrderList();
+							break;
+						case 2:
+							this.invoiceList = [];
+							this.getInvoiceList();
+							break;
+					}
+				}
+			}
+		},
+		computed: mapGetters(['isLogin']),
+		onLoad(option) {
+			if (option.from === 'invoice_form') {
+				this.nav = 2;
+			}
+			this.getUserInfo();
+		},
+		methods: {
+			getUserInfo() {
+				getUserInfo().then(res => {
+					const {
+						special_invoice
+					} = res.data;
+					this.specialInvoice = special_invoice
+				});
+			},
+			// 菜单切换
+			navTab(nav) {
+				if (this.nav !== nav) {
+					this.nav = nav;
+				}
+			},
+			// 记录列表
+			getOrderList() {
+				uni.showLoading({
+					title: this.$t(`加载中`)
+				});
+				orderInvoiceList({
+					page: this.page,
+					limit: this.limit
+				}).then(res => {
+					const {
+						data
+					} = res;
+					uni.hideLoading();
+					this.orderList = this.orderList.concat(data);
+					this.finished = data.length < this.limit;
+					this.page += 1;
+				}).catch(err => {
+					uni.showToast({
+						title: err.msg,
+						icon: 'none'
+					});
+				});
+			},
+			// 发票列表
+			getInvoiceList() {
+				uni.showLoading({
+					title: this.$t(`加载中`)
+				});
+				invoiceList({
+					page: this.page,
+					limit: this.limit
+				}).then(res => {
+					const {
+						data
+					} = res;
+					uni.hideLoading();
+					this.invoiceList = this.invoiceList.concat(data);
+					this.finished = data.length < this.limit;
+					this.page += 1;
+				}).catch(err => {
+					uni.showToast({
+						title: err.msg,
+						icon: 'none'
+					});
+				});
+			},
+			// 编辑发票
+			editInvoice(id) {
+				uni.navigateTo({
+					url: `/pages/users/user_invoice_form/index?id=${id}`
+				});
+			},
+			// 删除发票
+			deleteInvoice(id) {
+				let that = this;
+				uni.showModal({
+					content: that.$t(`删除该发票?`),
+					confirmColor: '#E93323',
+					success(res) {
+						if (res.confirm) {
+							invoiceDelete(id).then(() => {
+								that.$util.Tips({
+									title: that.$t(`删除成功`),
+									icon: 'success'
+								}, () => {
+									let index = that.invoiceList.findIndex(value => {
+										return value.id == id;
+									});
+									that.invoiceList.splice(index, 1);
+								});
+							}).catch(err => {
+								return that.$util.Tips({
+									title: err
+								});
+							});
+						}
+					}
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.nav {
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9;
+		width: 100%;
+		height: 90rpx;
+		background-color: #FFFFFF;
+	}
+
+	.nav .acea-row {
+		flex: 1;
+		border-top: 3rpx solid transparent;
+		border-bottom: 3rpx solid transparent;
+		font-size: 30rpx;
+		color: #282828;
+	}
+
+	.nav .on {
+		border-bottom-color: var(--view-theme);
+		color: var(--view-theme);
+	}
+
+	.list {
+		padding: 14rpx 32rpx;
+		margin-top: 90rpx;
+		margin-bottom: 140rpx;
+	}
+
+	.list .item {
+		padding: 28rpx 32rpx;
+		background-color: #FFFFFF;
+	}
+
+	.list .item~.item {
+		margin-top: 14rpx;
+	}
+
+	.list .item-hd .acea-row {
+		flex: 1;
+		min-width: 0;
+	}
+
+	.list .name {
+		font-weight: 600;
+		font-size: 30rpx;
+		color: #282828;
+	}
+
+	.list .label {
+		width: 56rpx;
+		height: 28rpx;
+		border: 1rpx solid var(--view-theme);
+		margin-left: 18rpx;
+		font-size: 20rpx;
+		line-height: 26rpx;
+		text-align: center;
+		color: var(--view-theme);
+	}
+
+	.list .type {
+		// width: 172rpx;
+		height: 42rpx;
+		margin-left: 30rpx;
+		background-color: #FCF0E0;
+		font-size: 24rpx;
+		line-height: 42rpx;
+		text-align: center;
+		color: #D67300;
+	}
+
+	.list .type.special {
+		background-color: #FDE9E7;
+		color: #E93323;
+	}
+
+	.list .item-bd {
+		margin-top: 18rpx;
+	}
+
+	.list .cell {
+		font-size: 26rpx;
+		color: #666666;
+	}
+
+	.list .cell~.cell {
+		margin-top: 12rpx;
+	}
+
+	.list .item-ft {
+		margin-top: 11rpx;
+	}
+
+	.list .btn {
+		font-size: 26rpx;
+		color: #282828;
+		cursor: pointer;
+	}
+
+	.list .btn~.btn {
+		margin-left: 35rpx;
+	}
+
+	.list .btn .iconfont {
+		margin-right: 10rpx;
+		font-size: 24rpx;
+		color: #000000;
+	}
+
+	.add-link {
+		position: fixed;
+		right: 30rpx;
+		bottom: 53rpx;
+		left: 30rpx;
+		height: 86rpx;
+		border-radius: 43rpx;
+		background-color: var(--view-theme);
+		font-size: 30rpx;
+		line-height: 86rpx;
+		text-align: center;
+		color: #FFFFFF;
+
+		.iconfont {
+			margin-right: 14rpx;
+			font-size: 28rpx;
+		}
+	}
+
+	.nothing {
+		margin-top: 254rpx;
+		font-size: 26rpx;
+		text-align: center;
+		color: #999999;
+
+		.image {
+			width: 400rpx;
+			height: 260rpx;
+			margin-bottom: 20rpx;
+		}
+	}
+
+	.record-wrapper {
+		margin-top: 110rpx;
+
+		.item {
+			padding-right: 30rpx;
+			padding-left: 30rpx;
+			border-radius: 6rpx;
+			margin: 30rpx;
+			background-color: #FFFFFF;
+
+			.item-hd {
+				padding-top: 36rpx;
+				padding-bottom: 36rpx;
+
+				.image {
+					width: 78rpx;
+					height: 78rpx;
+					border-radius: 6rpx;
+				}
+
+				.text {
+					flex: 1;
+					display: -webkit-box;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+					margin-left: 24rpx;
+					font-size: 26rpx;
+					line-height: 37rpx;
+					color: #282828;
+				}
+			}
+
+			.item-bd {
+				padding: 26rpx 30rpx 25rpx 32rpx;
+				border-radius: 20rpx;
+				background-color: #F5F6F7;
+				font-size: 26rpx;
+				line-height: 37rpx;
+				color: #818181;
+
+				.name {
+					margin-bottom: 8rpx;
+					font-weight: bold;
+					font-size: 26rpx;
+					color: #282828;
+				}
+
+				.money {
+					font-weight: bold;
+					font-size: 24rpx;
+					color: #282828;
+
+					.num {
+						font-size: 32rpx;
+					}
+				}
+			}
+
+			.item-ft {
+				padding-top: 30rpx;
+				padding-bottom: 30rpx;
+				font-weight: bold;
+				font-size: 28rpx;
+				color: #282828;
+
+				.link {
+					width: 150rpx;
+					height: 57rpx;
+					border: 1rpx solid #707070;
+					border-radius: 29rpx;
+					font-weight: normal;
+					font-size: 26rpx;
+					line-height: 57rpx;
+					text-align: center;
+					color: #282828;
+				}
+			}
+		}
+	}
+</style>

+ 465 - 387
pages/users/user_invoice_list/index.vue

@@ -1,61 +1,53 @@
 <template>
 	<view :style="colorStyle">
 		<view class="acea-row nav">
-			<view class="acea-row row-center-wrapper" :class="{ on: nav === 1 }" @click="navTab(1)">{{$t(`发票记录`)}}</view>
-			<view class="acea-row row-center-wrapper" :class="{ on: nav === 2 }" @click="navTab(2)">{{$t(`抬头管理`)}}</view>
+			<view class="acea-row row-center-wrapper" :class="{ on: nav === 1 }" @click="navTab(1)">{{ $t(`消费商`) }}
+			</view>
+			<view class="acea-row row-center-wrapper" :class="{ on: nav === 2 }" @click="navTab(2)">{{ $t(`绑定记录`) }}
+			</view>
 		</view>
-		<view v-show="nav === 1" class="record-wrapper">
-			<view v-for="item in orderList" :key="item.id" class="item">
-				<view class="item-hd acea-row">
-					<image class="image" :src="item.order.cartInfo[0].productInfo.image"></image>
-					<view class="text">{{ item.order.cartInfo[0].productInfo.store_name + item.order.cartInfo[0].productInfo.attrInfo.suk || '' }}</view>
-				</view>
-				<view class="item-bd acea-row row-between-wrapper">
-					<view>
-						<view class="name">{{ item.header_type === 1 ? $t(`个人`) : $t(`企业`) }}{{ item.type === 1 ? $t(`普通`) : $t(`专用`) }}{{$t(`发票`)}}</view>
-						<view>{{$t(`申请时间`)}} {{ item.add_time }}</view>
+		<view v-show="(nav === 2)" class="record-wrapper">
+			<u-cell-group>
+				<u-cell v-for="(item, index) in invoiceList" :key="index">
+					<view slot="title" class="u-slot-title">
+						<u--text mode="name" :text="item.userName" bold></u--text>
+						<u--text :text="('前上级:'+item.beforeParentName)" size="12"></u--text>
+						<u--text :text="('现上级:'+item.afterParentName)" size="12"></u--text>
 					</view>
-					<view class="money">{{$t(`¥`)}}<text class="num">{{ item.order.pay_price }}</text></view>
-				</view>
-				<view class="item-ft acea-row row-between-wrapper">
-					<view>{{ item.is_invoice ? $t(`已开票`) : $t(`未开票`) }}</view>
-					<navigator class="link" :url="`/pages/users/user_invoice_order/index?order_id=${item.order.order_id}`">{{$t(`查看详情`)}}</navigator>
-				</view>
-			</view>
-			<view v-show="page === 2 && !orderList.length" class="nothing">
+					<view slot="right-icon" style="margin-top: 20px">
+						<u--text :text="item.typeMsg" bold align="right"></u--text>
+						<u--text :text="item.updateTime" size="12"></u--text>
+					</view>
+				</u-cell>
+			</u-cell-group>
+			<view v-show="page === 2 && !invoiceList.length" class="nothing">
 				<image :src="imgHost + '/statics/images/noInvoice.png'"></image>
-				<view>{{$t(`没有发票信息哟~`)}}</view>
+				<view>{{ $t(`没有绑定信息哟~`) }}</view>
 			</view>
 		</view>
-		<view v-show="nav === 2">
-			<view v-if="invoiceList.length" class="list">
-				<template v-for="item in invoiceList">
-					<view v-if="item.type === 1 || item.type === 2 && specialInvoice" :key="item.id" class="item">
-						<view class="acea-row item-hd">
-							<view class="acea-row row-middle">
-								<view class="name">{{ item.name }}</view>
-								<view v-if="item.is_default" class="label">{{$t(`默认`)}}</view>
-							</view>
-							<view class="type" :class="{ special: item.type === 2 }">{{ item.type === 1 && item.header_type === 1 ? $t(`个人普通发票`) : item.type === 1 && item.header_type === 2?$t(`企业普通发票`):$t(`企业专用发票`) }}</view>
-						</view>
-						<view class="item-bd">
-							<view class="cell">{{$t(`联系邮箱`)}} {{ item.email }}</view>
-							<view v-if="item.header_type === 2" class="cell">{{$t(`企业税号`)}} {{ item.duty_number }}</view>
-							<view v-if="item.header_type === 1 && item.drawer_phone" class="cell">{{$t(`联系电话`)}} {{ item.drawer_phone }}</view>
-						</view>
-						<view class="acea-row row-right item-ft">
-							<view class="btn" @click="editInvoice(item.id)"><text class="iconfont icon-bianji"></text>{{$t(`编辑`)}}</view>
-							<view class="btn" @click="deleteInvoice(item.id)"><text class="iconfont icon-shanchu"></text>{{$t(`删除`)}}</view>
-						</view>
+		<view v-show="(nav === 1)">
+			<view class="list">
+				<u-grid :border="true" col="2" @click="click">
+					<u-grid-item v-for="(listItem, listIndex) in list" :key="listIndex">
+						<text class="grid-text">{{( listItem.title) }}{{listIndex ==0 ?' >':''}}</text>
+						<text class="grid-text-amount">{{ listItem.count }}{{listIndex <=1?'元':''}}</text>
+					</u-grid-item>
+				</u-grid>
+				<view class="imageUrl">
+					<view class="imageUrlin">
+						<u--image src="https://cdn.uviewui.com/uview/album/1.jpg" height="200px" width="100%"
+							:showLoading="true">
+							<view slot="error" style="font-size: 24rpx;">加载失败</view>
+						</u--image>
 					</view>
-				</template>
+				</view>
 			</view>
-			<view v-show="page === 2 && !invoiceList.length" class="nothing">
+			<!-- <view v-show="page === 2 && !invoiceList.length" class="nothing">
 				<image :src="imgHost + '/statics/images/noInvoice.png'"></image>
-				<view>{{$t(`没有发票信息哟~`)}}</view>
-			</view>
-			<navigator class="add-link" :url="`/pages/users/user_invoice_form/index?specialInvoice=${specialInvoice}`"><text
-				 class="iconfont icon-fapiao"></text>{{$t(`添加新发票`)}}</navigator>
+				<view>{{ $t(`没有消费商信息哟~`) }}</view>
+			</view> -->
+			<navigator class="add-link" :url="`/pages/users/user_invoice_form/index?specialInvoice=${specialInvoice}`">
+				{{ $t(`邀请用户立即参与`) }}</navigator>
 		</view>
 		<!-- #ifndef MP -->
 		<home></home>
@@ -64,381 +56,467 @@
 </template>
 
 <script>
-	import home from '@/components/home';
-	import {
-		mapGetters
-	} from "vuex";
-	import {
-		invoiceList,
-		invoiceDelete,
-		getUserInfo
-	} from '@/api/user.js';
-	import {
-		orderInvoiceList
-	} from '@/api/order.js';
-	import colors from '@/mixins/color.js';
-	import {HTTP_REQUEST_URL} from '@/config/app';
-	export default {
-		components: {
-			home
-		},
-		mixins:[colors],
-		data() {
-			return {
-				imgHost:HTTP_REQUEST_URL,
-				orderList: [],
-				invoiceList: [],
-				nav: 1, // 1:发票记录 2:抬头管理
-				page: 1,
-				limit: 30,
-				loading: false,
-				finished: false,
-				specialInvoice: true
-			};
-		},
-		watch: {
-			nav: {
-				immediate: true,
-				handler(value) {
-					this.page = 1;
-					switch (value) {
-						case 1:
-							this.orderList = [];
-							this.getOrderList();
-							break;
-						case 2:
-							this.invoiceList = [];
-							this.getInvoiceList();
-							break;
-					}
+import home from '@/components/home';
+import {
+	mapGetters
+} from "vuex";
+import {
+	invoiceList,
+	invoiceDelete,
+	getUserInfo
+} from '@/api/user.js';
+import {
+	postStatistics,
+	linkedBindLogList
+} from '@/api/home.js';
+import {
+	orderInvoiceList
+} from '@/api/order.js';
+import colors from '@/mixins/color.js';
+import { HTTP_REQUEST_URL } from '@/config/app';
+export default {
+	components: {
+		home
+	},
+	mixins: [colors],
+	data() {
+		return {
+			list: [{
+				name: 'photo',
+				title: '累计收益',
+				count: 0
+			},
+			{
+				name: 'lock',
+				title: '今日收益',
+				count: 0
+			},
+			{
+				name: 'star',
+				title: '直属伙伴',
+				count: 0
+			},
+			{
+				name: 'hourglass',
+				title: '团队伙伴',
+				count: 0
+			},
+			{
+				name: 'home',
+				title: '我的幸运数',
+				count: 0
+			},
+			{
+				name: 'star',
+				title: '当前幸运数',
+				count: 0
+			},
+			],
+			imgHost: HTTP_REQUEST_URL,
+			orderList: [],
+			invoiceList: [],
+			nav: 1, // 1:发票记录 2:抬头管理
+			page: 1,
+			limit: 300,
+			loading: false,
+			finished: false,
+			specialInvoice: true
+		};
+	},
+	watch: {
+		nav: {
+			immediate: true,
+			handler(value) {
+				this.page = 1;
+				switch (value) {
+					case 1:
+						this.orderList = [];
+						this.getStatistics();
+						break;
+					case 2:
+						this.invoiceList = [];
+						this.getInvoiceList();
+						break;
 				}
 			}
+		}
+	},
+	computed: mapGetters(['isLogin']),
+	onLoad(option) {
+		if (option.from === 'invoice_form') {
+			this.nav = 2;
+		}
+		this.getStatistics();
+	},
+	methods: {
+		click(index) {
+			if (index == 0 ){
+				uni.navigateTo({
+					url: '/pages/users/user_earningsCount/index'
+				})
+			}
 		},
-		computed: mapGetters(['isLogin']),
-		onLoad(option) {
-			if (option.from === 'invoice_form') {
-				this.nav = 2;
+		getStatistics() {
+			uni.showLoading({
+				title: this.$t(`加载中`)
+			});
+			postStatistics({
+				userId: this.$store.state.app.uid
 			}
-			this.getUserInfo();
+			).then(res => {
+				this.list[0].count = res.data.earningsCount || 0
+				this.list[1].count = res.data.todayEarnings || 0
+				this.list[2].count = res.data.oneCount || 0
+				this.list[3].count = res.data.twoCount || 0
+				this.list[4].count = res.data.sort || 0
+				this.list[5].count = res.data.outSort || 0
+				this.specialInvoice = true
+				uni.hideLoading();
+			});
+			
 		},
-		methods: {
-			getUserInfo() {
-				getUserInfo().then(res => {
-					const {
-						special_invoice
-					} = res.data;
-					this.specialInvoice = special_invoice
-				});
-			},
-			// 菜单切换
-			navTab(nav) {
-				if (this.nav !== nav) {
-					this.nav = nav;
-				}
-			},
-			// 记录列表
-			getOrderList() {
-				uni.showLoading({
-					title: this.$t(`加载中`)
-				});
-				orderInvoiceList({
-					page: this.page,
-					limit: this.limit
-				}).then(res => {
-					const {
-						data
-					} = res;
-					uni.hideLoading();
-					this.orderList = this.orderList.concat(data);
-					this.finished = data.length < this.limit;
-					this.page += 1;
-				}).catch(err => {
-					uni.showToast({
-						title: err.msg,
-						icon: 'none'
-					});
-				});
-			},
-			// 发票列表
-			getInvoiceList() {
-				uni.showLoading({
-					title: this.$t(`加载中`)
-				});
-				invoiceList({
-					page: this.page,
-					limit: this.limit
-				}).then(res => {
-					const {
-						data
-					} = res;
-					uni.hideLoading();
-					this.invoiceList = this.invoiceList.concat(data);
-					this.finished = data.length < this.limit;
-					this.page += 1;
-				}).catch(err => {
-					uni.showToast({
-						title: err.msg,
-						icon: 'none'
-					});
+		// 菜单切换
+		navTab(nav) {
+			if (this.nav !== nav) {
+				this.nav = nav;
+			}
+		},
+		// 记录列表
+		getOrderList() {
+			uni.showLoading({
+				title: this.$t(`加载中`)
+			});
+			orderInvoiceList({
+				page: this.page,
+				limit: this.limit
+			}).then(res => {
+				const {
+					data
+				} = res;
+				uni.hideLoading();
+				this.orderList = this.orderList.concat(data);
+				this.finished = data.length < this.limit;
+				this.page += 1;
+			}).catch(err => {
+				uni.showToast({
+					title: err.msg,
+					icon: 'none'
 				});
-			},
-			// 编辑发票
-			editInvoice(id) {
-				uni.navigateTo({
-					url: `/pages/users/user_invoice_form/index?id=${id}`
+			});
+		},
+		// 发票列表
+		getInvoiceList() {
+			uni.showLoading({
+				title: this.$t(`加载中`)
+			});
+			linkedBindLogList({
+				userId: this.$store.state.app.uid,
+				current: this.page,
+				size: this.limit
+			}).then(res => {
+				const {
+					data
+				} = res;
+				uni.hideLoading();
+				this.invoiceList = this.invoiceList.concat(data);
+				this.finished = data.length < this.limit;
+				this.page += 1;
+			}).catch(err => {
+				uni.showToast({
+					title: err.msg,
+					icon: 'none'
 				});
-			},
-			// 删除发票
-			deleteInvoice(id) {
-				let that = this;
-				uni.showModal({
-					content: that.$t(`删除该发票?`),
-					confirmColor: '#E93323',
-					success(res) {
-						if (res.confirm) {
-							invoiceDelete(id).then(() => {
-								that.$util.Tips({
-									title: that.$t(`删除成功`),
-									icon: 'success'
-								}, () => {
-									let index = that.invoiceList.findIndex(value => {
-										return value.id == id;
-									});
-									that.invoiceList.splice(index, 1);
-								});
-							}).catch(err => {
-								return that.$util.Tips({
-									title: err
+			});
+		},
+		// 编辑发票
+		editInvoice(id) {
+			uni.navigateTo({
+				url: `/pages/users/user_invoice_form/index?id=${id}`
+			});
+		},
+		// 删除发票
+		deleteInvoice(id) {
+			let that = this;
+			uni.showModal({
+				content: that.$t(`删除该发票?`),
+				confirmColor: '#E93323',
+				success(res) {
+					if (res.confirm) {
+						invoiceDelete(id).then(() => {
+							that.$util.Tips({
+								title: that.$t(`删除成功`),
+								icon: 'success'
+							}, () => {
+								let index = that.invoiceList.findIndex(value => {
+									return value.id == id;
 								});
+								that.invoiceList.splice(index, 1);
+							});
+						}).catch(err => {
+							return that.$util.Tips({
+								title: err
 							});
-						}
+						});
 					}
-				});
-			}
+				}
+			});
 		}
 	}
+}
 </script>
 
 <style lang="scss" scoped>
-	.nav {
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 9;
-		width: 100%;
-		height: 90rpx;
-		background-color: #FFFFFF;
+.imageUrl {
+	text-align: center !important;
+	margin-top: 30px;
+	width: 100%;
+	height: 230px
+}
+
+.imageUrlin {
+	width: 80%;
+	height: 200px;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.grid-text {
+	font-size: 16px;
+	color: #3b3c3d;
+	padding: 20rpx 20px 20rpx 0rpx;
+	/* #ifndef APP-PLUS */
+	box-sizing: border-box;
+	/* #endif */
+}
+
+.grid-text-amount {
+	font-size: 16px;
+	color: #d82a64;
+	padding: 10rpx 20px 20rpx 0rpx;
+	/* #ifndef APP-PLUS */
+	box-sizing: border-box;
+	/* #endif */
+}
+
+.nav {
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 9;
+	width: 100%;
+	height: 90rpx;
+	background-color: #FFFFFF;
+}
+
+.nav .acea-row {
+	flex: 1;
+	border-top: 3rpx solid transparent;
+	border-bottom: 3rpx solid transparent;
+	font-size: 30rpx;
+	color: #282828;
+}
+
+.nav .on {
+	border-bottom-color: var(--view-theme);
+	color: var(--view-theme);
+}
+
+.list {
+	padding: 14rpx 32rpx;
+	margin-top: 90rpx;
+	margin-bottom: 140rpx;
+}
+
+.list .item {
+	padding: 28rpx 32rpx;
+	background-color: #FFFFFF;
+}
+
+.list .item~.item {
+	margin-top: 14rpx;
+}
+
+.list .item-hd .acea-row {
+	flex: 1;
+	min-width: 0;
+}
+
+.list .name {
+	font-weight: 600;
+	font-size: 30rpx;
+	color: #282828;
+}
+
+.list .label {
+	width: 56rpx;
+	height: 28rpx;
+	border: 1rpx solid var(--view-theme);
+	margin-left: 18rpx;
+	font-size: 20rpx;
+	line-height: 26rpx;
+	text-align: center;
+	color: var(--view-theme);
+}
+
+.list .type {
+	// width: 172rpx;
+	height: 42rpx;
+	margin-left: 30rpx;
+	background-color: #FCF0E0;
+	font-size: 24rpx;
+	line-height: 42rpx;
+	text-align: center;
+	color: #D67300;
+}
+
+.list .type.special {
+	background-color: #FDE9E7;
+	color: #E93323;
+}
+
+.list .item-bd {
+	margin-top: 18rpx;
+}
+
+.list .cell {
+	font-size: 26rpx;
+	color: #666666;
+}
+
+.list .cell~.cell {
+	margin-top: 12rpx;
+}
+
+.list .item-ft {
+	margin-top: 11rpx;
+}
+
+.list .btn {
+	font-size: 26rpx;
+	color: #282828;
+	cursor: pointer;
+}
+
+.list .btn~.btn {
+	margin-left: 35rpx;
+}
+
+.list .btn .iconfont {
+	margin-right: 10rpx;
+	font-size: 24rpx;
+	color: #000000;
+}
+
+.add-link {
+	position: fixed;
+	right: 30rpx;
+	bottom: 33rpx;
+	left: 30rpx;
+	height: 86rpx;
+	border-radius: 43rpx;
+	background-color: var(--view-theme);
+	font-size: 30rpx;
+	line-height: 86rpx;
+	text-align: center;
+	color: #FFFFFF;
+
+	.iconfont {
+		margin-right: 14rpx;
+		font-size: 28rpx;
 	}
-
-	.nav .acea-row {
-		flex: 1;
-		border-top: 3rpx solid transparent;
-		border-bottom: 3rpx solid transparent;
-		font-size: 30rpx;
-		color: #282828;
+}
+
+.nothing {
+	margin-top: 254rpx;
+	font-size: 26rpx;
+	text-align: center;
+	color: #999999;
+
+	.image {
+		width: 400rpx;
+		height: 260rpx;
+		margin-bottom: 20rpx;
 	}
+}
 
-	.nav .on {
-		border-bottom-color: var(--view-theme);
-		color: var(--view-theme);
-	}
-
-	.list {
-		padding: 14rpx 32rpx;
-		margin-top: 90rpx;
-		margin-bottom: 140rpx;
-	}
+.record-wrapper {
+	margin-top: 110rpx;
 
-	.list .item {
-		padding: 28rpx 32rpx;
+	.item {
+		padding-right: 30rpx;
+		padding-left: 30rpx;
+		border-radius: 6rpx;
+		margin: 30rpx;
 		background-color: #FFFFFF;
-	}
-
-	.list .item~.item {
-		margin-top: 14rpx;
-	}
 
-	.list .item-hd .acea-row {
-		flex: 1;
-		min-width: 0;
-	}
-
-	.list .name {
-		font-weight: 600;
-		font-size: 30rpx;
-		color: #282828;
-	}
-
-	.list .label {
-		width: 56rpx;
-		height: 28rpx;
-		border: 1rpx solid var(--view-theme);
-		margin-left: 18rpx;
-		font-size: 20rpx;
-		line-height: 26rpx;
-		text-align: center;
-		color: var(--view-theme);
-	}
-
-	.list .type {
-		// width: 172rpx;
-		height: 42rpx;
-		margin-left: 30rpx;
-		background-color: #FCF0E0;
-		font-size: 24rpx;
-		line-height: 42rpx;
-		text-align: center;
-		color: #D67300;
-	}
-
-	.list .type.special {
-		background-color: #FDE9E7;
-		color: #E93323;
-	}
-
-	.list .item-bd {
-		margin-top: 18rpx;
-	}
-
-	.list .cell {
-		font-size: 26rpx;
-		color: #666666;
-	}
-
-	.list .cell~.cell {
-		margin-top: 12rpx;
-	}
-
-	.list .item-ft {
-		margin-top: 11rpx;
-	}
-
-	.list .btn {
-		font-size: 26rpx;
-		color: #282828;
-		cursor: pointer;
-	}
-
-	.list .btn~.btn {
-		margin-left: 35rpx;
-	}
-
-	.list .btn .iconfont {
-		margin-right: 10rpx;
-		font-size: 24rpx;
-		color: #000000;
-	}
-
-	.add-link {
-		position: fixed;
-		right: 30rpx;
-		bottom: 53rpx;
-		left: 30rpx;
-		height: 86rpx;
-		border-radius: 43rpx;
-		background-color: var(--view-theme);
-		font-size: 30rpx;
-		line-height: 86rpx;
-		text-align: center;
-		color: #FFFFFF;
-
-		.iconfont {
-			margin-right: 14rpx;
-			font-size: 28rpx;
-		}
-	}
+		.item-hd {
+			padding-top: 36rpx;
+			padding-bottom: 36rpx;
 
-	.nothing {
-		margin-top: 254rpx;
-		font-size: 26rpx;
-		text-align: center;
-		color: #999999;
-
-		.image {
-			width: 400rpx;
-			height: 260rpx;
-			margin-bottom: 20rpx;
-		}
-	}
-
-	.record-wrapper {
-		margin-top: 110rpx;
-
-		.item {
-			padding-right: 30rpx;
-			padding-left: 30rpx;
-			border-radius: 6rpx;
-			margin: 30rpx;
-			background-color: #FFFFFF;
-
-			.item-hd {
-				padding-top: 36rpx;
-				padding-bottom: 36rpx;
-
-				.image {
-					width: 78rpx;
-					height: 78rpx;
-					border-radius: 6rpx;
-				}
-
-				.text {
-					flex: 1;
-					display: -webkit-box;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					margin-left: 24rpx;
-					font-size: 26rpx;
-					line-height: 37rpx;
-					color: #282828;
-				}
+			.image {
+				width: 78rpx;
+				height: 78rpx;
+				border-radius: 6rpx;
 			}
 
-			.item-bd {
-				padding: 26rpx 30rpx 25rpx 32rpx;
-				border-radius: 20rpx;
-				background-color: #F5F6F7;
+			.text {
+				flex: 1;
+				display: -webkit-box;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+				overflow: hidden;
+				margin-left: 24rpx;
 				font-size: 26rpx;
 				line-height: 37rpx;
-				color: #818181;
-
-				.name {
-					margin-bottom: 8rpx;
-					font-weight: bold;
-					font-size: 26rpx;
-					color: #282828;
-				}
+				color: #282828;
+			}
+		}
 
-				.money {
-					font-weight: bold;
-					font-size: 24rpx;
-					color: #282828;
+		.item-bd {
+			padding: 26rpx 30rpx 25rpx 32rpx;
+			border-radius: 20rpx;
+			background-color: #F5F6F7;
+			font-size: 26rpx;
+			line-height: 37rpx;
+			color: #818181;
 
-					.num {
-						font-size: 32rpx;
-					}
-				}
+			.name {
+				margin-bottom: 8rpx;
+				font-weight: bold;
+				font-size: 26rpx;
+				color: #282828;
 			}
 
-			.item-ft {
-				padding-top: 30rpx;
-				padding-bottom: 30rpx;
+			.money {
 				font-weight: bold;
-				font-size: 28rpx;
+				font-size: 24rpx;
 				color: #282828;
 
-				.link {
-					width: 150rpx;
-					height: 57rpx;
-					border: 1rpx solid #707070;
-					border-radius: 29rpx;
-					font-weight: normal;
-					font-size: 26rpx;
-					line-height: 57rpx;
-					text-align: center;
-					color: #282828;
+				.num {
+					font-size: 32rpx;
 				}
 			}
 		}
+
+		.item-ft {
+			padding-top: 30rpx;
+			padding-bottom: 30rpx;
+			font-weight: bold;
+			font-size: 28rpx;
+			color: #282828;
+
+			.link {
+				width: 150rpx;
+				height: 57rpx;
+				border: 1rpx solid #707070;
+				border-radius: 29rpx;
+				font-weight: normal;
+				font-size: 26rpx;
+				line-height: 57rpx;
+				text-align: center;
+				color: #282828;
+			}
+		}
 	}
+}
 </style>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 159 - 0
pages/users/user_red_integral/index.vue


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 173 - 0
pages/users/user_wallet/index.vue


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio