瀏覽代碼

2023-10-19

cmy 1 年之前
父節點
當前提交
01c7582c17
共有 5 個文件被更改,包括 419 次插入415 次删除
  1. 1 1
      api/game.js
  2. 0 1
      pages/index/user.vue
  3. 253 126
      pages/user/favorites.vue
  4. 96 208
      pages/user/money/team.vue
  5. 69 79
      pages/user/shareQrCode.vue

+ 1 - 1
api/game.js

@@ -34,7 +34,7 @@ export  function gameWallet() {
 	});
 }
 // 互娱  获取交易记录
-export  function gameBetList(data,type) {
+export  function gameBetList(data) {
 	return request({
 		url: `/api/game/bet/${data.id}`,
 		method: 'get',

+ 0 - 1
pages/index/user.vue

@@ -147,7 +147,6 @@
 		moveY = 0,
 		pageAtTop = true;
 	export default {
-
 		components: {
 			taber
 		},

+ 253 - 126
pages/user/favorites.vue

@@ -1,146 +1,273 @@
 <template>
 	<view class="container">
-		<image @longtap="bc_code" class="backImg" :src="backImg"></image>
-		<view class="tki-qrcode"><canvas @longtap="bc_code" canvas-id="qrcode" /></view>
+		<swiper class="posters-box" :autoplay="false" :circular="false" :interval="3000" :duration="500"
+			@change="bindchange" previous-margin="40px" next-margin="40px">
+			<block v-for="(item, index ) in shareList" :key="index">
+				<swiper-item>
+					<!-- #ifndef MP -->
+					<image class="slide-image" :class="swiperIndex == index ? 'active' : 'quiet'" mode='aspectFill'
+						:src="item.wap_poster"></image>
+					<!-- #endif -->
+
+					<!-- #ifdef MP -->
+					<image class="slide-image" :class="swiperIndex == index ? 'active' : 'quiet'" mode='aspectFill'
+						:src="item.poster"></image>
+					<!-- #endif -->
+
+				</swiper-item>
+			</block>
+		</swiper>
+		<!-- #ifndef MP -->
+		<div class="preserve">
+			<div class="line"></div>
+			<div class="tip">长按保存图片</div>
+			<div class="line"></div>
+		</div>
+		<!-- #endif -->
+
+		<!-- #ifdef MP -->
+		<view class='keep' @click='savePosterPath'>保存海报</view>
+		<!-- #endif -->
+
 	</view>
 </template>
 
 <script>
-import { spreadBanner } from '@/api/user.js';
-export default {
-	// components: { tkiQrcode },
-	data() {
-		return {
-			url: '',
-			backImg: '',
-			userInfo: ''
-		};
-	},
-	onLoad() {
-		this.spread();
-		uni.setNavigationBarTitle({
-			title: this.$t("tab.b2"),
-		});
-	},
-	computed: {
-		cpSize() {
-			if (this.unit == 'upx') {
-				return uni.upx2px(this.size);
-			} else {
-				return this.size;
+	import {
+		spreadBanner
+	} from '@/api/user.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		// #ifdef MP
+		onShareAppMessage: function(res) {
+			// 保存邀请人
+			let path = '/pages/index/index?' + 'spread=' + this.userInfo.uid;
+			let data = {
+				path: path,
+				imageUrl: this.poster,
+				title: this.userInfo.nickname + '邀请您进入绿津'
+			};
+			return data;
+		},
+		// #endif
+		data() {
+			return {
+				shareList: [],
+				swiperIndex: 0,
+				poster: '', // 当前海报
 			}
-		}
-	},
-	methods: {
-		spread() {
-			uni.showLoading({
-				title: '加载中'
-			});
-			let obj = this;
-			spreadBanner({
-				//#ifdef H5
-				type: 2,
-				//#endif
-				//#ifdef MP
-				type:1,
-				//#endif
-				//#ifdef APP-PLUS
-				type:2,
-				//#endif
-			}).then(({ data }) => {
-				console.log(data);
-				//#ifdef MP
-				obj.backImg = data[0].poster;
-				//#endif
-				//#ifdef H5
-				obj.backImg = data[0].wap_poster;
-				//#endif
-				//#ifdef APP-PLUS
-				obj.backImg = data[0].wap_poster;
-				//#endif
-				uni.hideLoading();
+		},
+		onLoad(option) {
+			uni.setNavigationBarTitle({
+				title: this.$t("tab.b2"),
 			});
+			this.loadData();
 		},
-		bc_code() {
-			let that = this;
-			console.log('保存二维码', this.backImg);
-			uni.downloadFile({
-				//获得二维码的临时地址
-				url: this.backImg,
-				success: res => {
-					//console.log('获取url',res)
-					if (res.statusCode == 200) {
-						uni.saveImageToPhotosAlbum({
-							filePath: res.tempFilePath, //传入临时地址
-							success() {
-								that.$api.msg('保存成功'); //封装的提示
-							},
-							fail() {
-								that.$api.msg('保存失败');
-							}
+		computed: {
+			...mapState('user', ['userInfo']),
+		},
+		methods: {
+			bindchange(e) {
+				let shareList = this.shareList;
+				this.swiperIndex = e.detail.current;
+				// #ifdef MP
+				this.poster = shareList[this.swiperIndex].poster;
+				// #endif 
+
+				console.log(this.poster)
+			},
+
+			// 保存海报
+			savePosterPath: function() {
+				let that = this;
+				if (that.poster == '') {
+					that.poster = that.shareList[0].poster;
+				}
+				uni.downloadFile({
+					url: that.poster,
+					success(resFile) {
+						if (resFile.statusCode === 200) {
+							uni.getSetting({
+								success(res) {
+									if (!res.authSetting['scope.writePhotosAlbum']) {
+										uni.authorize({
+											scope: 'scope.writePhotosAlbum',
+											success() {
+												uni.saveImageToPhotosAlbum({
+													filePath: resFile.tempFilePath,
+													success: function(res) {
+														return that.$api.msg(
+															'保存成功');
+													},
+													fail: function(res) {
+														return that.$api.msg(res
+															.errMsg);
+													},
+													complete: function(res) {},
+												})
+											},
+											fail() {
+												uni.showModal({
+													title: '您已拒绝获取相册权限',
+													content: '是否进入权限管理,调整授权?',
+													success(res) {
+														if (res.confirm) {
+															uni.openSetting({
+																success: function(
+																	res) {
+																	console
+																		.log(
+																			res
+																			.authSetting
+																			)
+																}
+															});
+														} else if (res.cancel) {
+															return that.$api.msg(
+																'已取消!');
+														}
+													}
+												})
+											}
+										})
+									} else {
+										uni.saveImageToPhotosAlbum({
+											filePath: resFile.tempFilePath,
+											success: function(res) {
+												return that.$api.msg('保存成功');
+											},
+											fail: function(res) {
+												return that.$api.msg(res.errMsg);
+											},
+											complete: function(res) {},
+										})
+									}
+								},
+								fail(res) {
+
+								}
+							})
+						} else {
+							return that.$api.msg(resFile.errMsg);
+						}
+					},
+					fail(res) {
+						return that.$api.msg(res.errMsg);
+					}
+				})
+			},
+
+			// #ifdef MP-WEIXIN
+			// 保存画图图片到本地
+			seav(url) {
+				uni.showLoading({
+					title: '生成中...',
+					mask: true
+				});
+				uni.saveImageToPhotosAlbum({
+					filePath: this.poster,
+					complete(result) {
+						uni.hideLoading();
+						console.log(result);
+						uni.showToast({
+							title: '保存图片成功!',
+							duration: 2000,
+							icon: 'none'
 						});
 					}
-				}
-			});
+				});
+			},
+			// #endif
+
+			// 获取海报
+			loadData() {
+				let obj = this;
+				uni.showLoading({
+					title: '获取中',
+					mask: true,
+				});
+				spreadBanner({
+					// #ifdef H5
+					type: 2,
+					// #endif
+					// #ifdef MP
+					type: 1
+					// #endif
+				}).then(res => {
+					uni.hideLoading();
+					obj.shareList = res.data;
+					console.log('obj.shareList', obj.shareList);
+				}).catch(err => {
+					uni.hideLoading();
+				});
+			},
 		}
 	}
-};
 </script>
 
 <style lang="scss">
-page {
-	width: 100%;
-	min-height: 100%;
+	page {
+		background: #a3a3a3;
+		height: 100%;
+	}
+
 	.container {
 		width: 100%;
-		height: 100%;
+
+		.posters-box {
+			width: 100%;
+			height: 1000rpx;
+			margin-top: 40rpx;
+
+			.slide-image {
+				width: 100%;
+				height: 100%;
+				border-radius: 15rpx;
+			}
+		}
+
+		.posters-box .slide-image.active {
+			transform: none;
+			transition: all 0.2s ease-in 0s;
+		}
+
+		.posters-box .slide-image.quiet {
+			transform: scale(0.8333333);
+			transition: all 0.2s ease-in 0s;
+		}
+
+		.keep {
+			font-size: 30rpx;
+			background: $base-color;
+			color: #fff;
+			width: 600rpx;
+			height: 80rpx;
+			border-radius: 50rpx;
+			text-align: center;
+			line-height: 80rpx;
+			margin: 38rpx auto;
+		}
 	}
-}
-.backImg {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-}
-.portrait {
-	width: 100%;
-	text-align: center;
-	padding-top: 80rpx;
-	padding-bottom: 30rpx;
-	image {
-		width: 250rpx;
-		height: 250rpx;
+
+	.preserve {
+		color: #fff;
+		text-align: center;
+		margin-top: 38rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.line {
+			width: 100rpx;
+			height: 1px;
+			background-color: #fff;
+		}
+
+		.tip {
+			margin: 0 20rpx;
+			font-size: 28rpx;
+		}
 	}
-}
-.text {
-	text-align: center;
-	width: 100%;
-	color: #ffffff;
-	font-size: 55rpx;
-	letter-spacing: 15rpx;
-}
-.uid-name {
-	padding: 50rpx 0rpx;
-	text-align: center;
-	width: 100%;
-	color: #ffffff;
-}
-.copy-btn {
-	color: #ffffff;
-	background-color: #4ba6ed;
-	border-radius: 50rpx;
-	width: 170rpx;
-	line-height: 70rpx;
-	margin: 0rpx auto;
-	text-align: center;
-}
-.tki-qrcode {
-	position: fixed;
-	bottom: 10%;
-	left: 30%;
-}
-canvas {
-	width: 150px;
-	height: 150px;
-	margin: auto;
-}
-</style>
+</style>

+ 96 - 208
pages/user/money/team.vue

@@ -1,38 +1,27 @@
 <template>
 	<view class="content">
-		<view class="content-money">
-			<view class="status_bar"><!-- 这里是状态栏 --></view>
-			<view class="body-title">
-				<view class="goback-box" @click="toBack">
-					<image class="goback" src="/static/img/fanhui.png" mode=""></image>
-				</view>
-				<view class="header">{{$t('money.a1')}}</view>
-			</view>
-			<view class="content-bg">
-			</view>
+		<view class="content-money flex">
 			<view class="money-box">
-				<view>{{$t('money.a2')}}</view>
-				<view class="money">{{userWallet}}U</view>
-				
+				<view class="margin-b-20">{{$t('money.a2')}}</view>
+				<view class="money">{{userWallet}}</view>
 			</view>
 			<!-- 数据代办 -->
 			<view class="box">
-				<view class="moneybtn-box1">
+				<view class="moneybtn-box">
 					<view class="money-btn"></view>
 					<view class="money-btn" @click="navto('/pages/user/money/recharge')">{{$t('money.a3')}}</view>
 				</view>
-				<view class="moneybtn-box">
+				<view class="moneybtn-box margin-t-10">
 					<view class="money-btn"></view>
 					<view class="money-btn" @click="navto('/pages/user/money/withdrawal')">{{$t('money.a4')}}</view>
 				</view>
 			</view>
-			
 		</view>
-		
+
 		<view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">{{$t('money.a7')}}</view>
-				<view class="info-num">{{userInfo.brokerage  || '0'}}</view>
+				<view class="info-num">{{userInfo.brokerage || '0'}}</view>
 			</view>
 			<view class="shu"></view>
 			<view class="info-item">
@@ -40,43 +29,41 @@
 				<view class="info-num">{{userInfo.extract || '0'}}</view>
 			</view>
 		</view>
-		<view class="list flex" v-for="(item, index) in navList" :key="index">
-			<view class="">
-				<view class="tit" v-if="item.title === '充值'">{{$t('user.a7')}}</view>
-				<view class="tit" v-else>{{$t('user.a6')}}</view>
-				<view class="tim">{{item.time}}</view>
-			</view>
-			<view class="boxT">
-				<view class="mon">{{item.money}}</view>
+
+		<scroll-view :style="{height:height}" scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
+			<!-- 空白页 -->
+			<empty v-if="loaded === true &&list.length === 0"></empty>
+			<!-- 订单列表 -->
+			<view class="list flex" v-for="(item, index) in list" :key="index">
+				<view class="">
+					<view class="tit" v-if="item.title === '充值'">{{$t('user.a7')}}</view>
+					<view class="tit" v-else>{{$t('user.a6')}}</view>
+					<view class="tim">{{item.time}}</view>
+				</view>
+				<view class="boxT">
+					<view class="mon">{{item.money}}</view>
+				</view>
 			</view>
-		</view>
+		</scroll-view>
 	</view>
 </template>
 
 <script>
-	import {qianBao} from "@/api/wallet.js"
+	import {
+		qianBao
+	} from "@/api/wallet.js"
 	import {
 		gameWallet,
 	} from "@/api/game.js";
 	import {
-		mapState,
-		mapMutations
-	} from 'vuex';
-	import {
-		getCommissionInfo,
 		getUserInfo,
-		// getUser
 	} from '@/api/user.js';
 	import {
 		getMoneyStyle
 	} from '@/utils/rocessor.js';
-	import {
-		mapGetters
-	} from 'vuex';
 	import empty from '@/components/empty';
 	import {
 		spreadCommission,
-		userBalance,
 	} from '@/api/wallet.js';
 	export default {
 		filters: {
@@ -85,36 +72,33 @@
 		components: {
 			empty,
 		},
-		
 		data() {
 			return {
 				userInfo: {},
 				userWallet: '', //余额
 				height: '',
-				// 头部图高度
-				maxheight: '',
-				tabCurrentIndex: 0,
-				orderStatusSum: 0,
-				recharge: 0,
-				navList: [
-					{
-					title: '充值',
-					time: '10.12',
-					money: '100',
-					},
-					{
-					title: '提现',
-					time: '10.12',
-					money: '300',
-					}
-				],
+				loaded: false,
+				list: [],
 				money: ''
 			};
 		},
 		onLoad(options) {},
+		onReady(res) {
+			var _this = this;
+			uni.getSystemInfo({
+				success: resu => {
+					const query = uni.createSelectorQuery();
+					query.select('.list-scroll-content').boundingClientRect();
+					query.exec(function(res) {
+						_this.height = resu.windowHeight - res[0].top + 'px';
+					});
+				},
+				fail: res => {}
+			});
+		},
 		onShow() {
 			this.getUserInfo();
-			this.loadData();
+			// this.loadData();
 			this.getUserWallet();
 			this.qianBao()
 		},
@@ -124,7 +108,6 @@
 				const res = await qianBao()
 				console.log('qian', res);
 			},
-			
 			// 获取用户余额信息
 			getUserWallet() {
 				gameWallet().then((res) => {
@@ -149,7 +132,7 @@
 					url: e
 				});
 			},
-			
+
 			//获取收入支出信息
 			async loadData(source) {
 				let obj = this;
@@ -167,9 +150,8 @@
 				}
 				// 修改当前对象状态为加载中
 				navItem.loadingType = 'loading';
-			
-				spreadCommission({
-					}, state)
+
+				spreadCommission({}, state)
 					.then(({
 						data
 					}) => {
@@ -199,92 +181,54 @@
 			tabClick(index) {
 				this.tabCurrentIndex = index;
 			},
-			
+
 		}
 	};
 </script>
 
 <style lang="scss">
-	page {
-		background: $page-color-base;
-		height: 100%;
+	.content{
+		line-height: 1;
 	}
-
-	.status_bar {
-		height: var(--status-bar-height);
-		width: 100%;
-	}
-
 	.content-money {
 		position: relative;
-		height: 480rpx;
+		padding: 60rpx 30rpx;
 
-		.content-bg {
+		.box {
 			position: absolute;
-			top: 0;
-			left: 0;
 			right: 0;
-			width: 750rpx;
-			height: 480rpx;
+			top: 50rpx;
+			font-size: 30rpx;
+			font-weight: bold;
+			color: #ffffff;
 
-			image {
-				width: 100%;
-				height: 100%;
+			.moneybtn-box {
+				padding: 14rpx 40rpx;
+				border: 2px solid #FFFFFF;
+				border-bottom-left-radius: 100rpx;
+				border-top-left-radius: 100rpx;
+				border-right: none;
 			}
 		}
-
-		.body-title {
-			height: 80rpx;
-			text-align: center;
-			font-size: 35rpx;
+		.money-box {
 			position: relative;
-
-			.header {
-				position: absolute;
-				left: 0;
-				top: 0;
-				width: 100%;
-				font-size: 36rpx;
-				font-family: PingFang SC;
+			z-index: 2;
+			color: #ffffff;
+			text-align: left;
+			
+			.money {
 				font-weight: bold;
-				color: #ffffff;
-				height: 80rpx;
-				font-size: 36rpx;
-				font-weight: 700;
-				z-index: 9;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-			}
-
-			.goback-box {
-				position: absolute;
-				left: 18rpx;
-				top: 0;
-				height: 80rpx;
-				display: flex;
-				align-items: center;
-			}
-
-			.goback {
-				z-index: 100;
-				width: 34rpx;
-				height: 34rpx;
-				color: #ffffff
+				font-size: 72rpx;
+				color: #fdb242;
 			}
 		}
 	}
 
 	.info-box {
-		width: 670rpx;
-		height: 186rpx;
 		background: #1d1d22;
-		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
 		border-radius: 20rpx;
-		margin: -100rpx auto 0;
-		position: relative;
-		z-index: 2;
-
+		margin: 0 30rpx;
+		padding: 30rpx;
 		.info-item {
 			width: 50%;
 			display: flex;
@@ -315,68 +259,10 @@
 		}
 	}
 
-	.money-box {
-		position: relative;
-		z-index: 2;
-		/* #ifdef H5 */
-		padding-top: 90rpx;
-		/* #endif */
-		color: #ffffff;
-		text-align: center;
-		/* #ifdef APP-PLUS */
-		height: 200rpx;
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		/* #endif */
-		/* #ifdef MP-WEIXIN */
-		padding-top: 40rpx;
-		/* #endif */
+	
 
-		.money {
-			font-size: 72rpx;
-			font-family: PingFang SC;
-			font-weight: bold;
-			color: #fdb242;
-		}
 
-		.text {
-			font-size: 30rpx;
-		}
-	}
-	.box {
-		width: 670rpx;
-		height: 50rpx;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-	}
 
-	.moneybtn-box {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		// color: #ffffff;
-		padding: -20rpx 10rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	.moneybtn-box1 {
-		display: flex;
-		justify-content: space-between;
-		position: relative;
-		z-index: 2;
-		color: #ffffff;
-		padding: 40rpx 60rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #ffffff;
-	}
-	
 	.content {
 		height: 100%;
 
@@ -385,32 +271,34 @@
 		}
 
 	}
-   
-   // border-bottom: 1px solid #ffffff;
+
+	// border-bottom: 1px solid #ffffff;
 	.list {
 		margin: 40rpx 31rpx;
-			.tit {
-				height: 26rpx;
-				font-size: 28rpx;
-				font-weight: 500;
-				color: #FFFFFF;
-			}
-			.tim {
-				padding-top: 30rpx;
-				height: 17rpx;
-				font-size: 22rpx;
-				font-weight: 400;
-				color: #999999;
-			}
-			.boxT {
-				.mon {
-					height: 23rpx;
-					font-size: 30rpx;
-					font-weight: bold;
-					color: #FDB242;
-				}
-				
+
+		.tit {
+			height: 26rpx;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #FFFFFF;
+		}
+
+		.tim {
+			padding-top: 30rpx;
+			height: 17rpx;
+			font-size: 22rpx;
+			font-weight: 400;
+			color: #999999;
+		}
+
+		.boxT {
+			.mon {
+				height: 23rpx;
+				font-size: 30rpx;
+				font-weight: bold;
+				color: #FDB242;
 			}
+
+		}
 	}
-	
 </style>

+ 69 - 79
pages/user/shareQrCode.vue

@@ -1,25 +1,25 @@
 <template>
-	<view class="all" >
-		<view class="list" v-for="item in list" :key="id">
-			<view class="listO">
+	<view class="all">
+		<view class="list" v-for="item in list">
+			<view class="flex padding-b-20">
 				<view class="li">{{$t('set.a7')}}{{item.room.no}}{{$t('set.a8')}}</view>
 				<view class="lis" v-if="item.status === 1">
-					<view class="liss">{{$t('gameList.a6')}}</view>
+					<view class="liss green">{{$t('gameList.a6')}}</view>
 				</view>
 				<view class="lis" v-else>
-					<view class="liss">{{$t('gameList.a1')}}</view>
+					<view class="liss red">{{$t('gameList.a1')}}</view>
 				</view>
 			</view>
 			<view class="listT">
-				<view class="TT">
+				<view class="TT flex-start">
 					<view class="lsT">{{$t('gameList.a2')}}:</view>
 					<view class="lisT">{{item.room.game.timebar}}</view>
 				</view>
-				<view class="TT">
+				<view class="TT flex-start">
 					<view class="lsT">{{$t('gameList.a4')}}:</view>
 					<view class="lisT">{{item.num}}U</view>
 				</view>
-				<view class="TT">
+				<view class="TT flex-start">
 					<view class="lsT">{{$t('gameList.a5')}}:</view>
 					<view class="lisT">{{item.open_time}}</view>
 				</view>
@@ -28,33 +28,31 @@
 	</view>
 </template>
 <script>
-	import {gameBetList} from '@/api/game.js'
+	import {
+		gameBetList
+	} from '@/api/game.js'
+	import {
+		getTime
+	} from '@/utils/rocessor.js';
 	export default {
 		data() {
 			return {
-				id: '',
+				id: 0,
 				page: 1,
 				limit: 10,
 				list: []
 			};
 		},
-		onLoad(option) {
-			this.id = option.id
+		onLoad() {
 			this.gameBetList()
-			
 			uni.setNavigationBarTitle({
 				title: this.$t("tab.a9"),
 			});
 		},
-		//下拉刷新
-		onPullDownRefresh() {
-			let obj = this;
-			//监听下拉刷新动作的执行方法,每次手动下拉刷新都会执行一次
-			setTimeout(function() {
-				obj.loadCodeList();
-				uni.stopPullDownRefresh(); //停止下拉刷新动画
-			}, 1000);
+		onReachBottom() {
+			this.gameBetList()
 		},
+		//下拉刷新
 		methods: {
 			// 互娱记录
 			gameBetList() {
@@ -67,10 +65,13 @@
 					limit: that.limit,
 					id: that.id,
 				}).then(res => {
-					let list = res.data.bet_log
+					let list = res.data.bet_log.map((res) => {
+						res.num = +res.num;
+						res.open_time = getTime(res.open_time)
+						return res
+					})
 					that.list = that.list.concat(list)
 					that.page++
-					console.log('11111111', list);
 					if (list.length == that.limit) {
 						that.loadingType = 'more'
 					} else {
@@ -86,66 +87,55 @@
 
 <style lang="scss">
 	.all {
-		width: 750rpx;
-		min-height: 100vh;
-		background-color: $page-color-base;
+		color: #FFFFFF;
+		padding: 30rpx;
+		line-height: 1;
 	}
+
 	.list {
-		width: 710rpx;
-		height: 300rpx;
 		background: #191A1F;
-		box-shadow: 0rpx 5rpx 24rpx 0rpx rgba(4,0,0,0.06);
+		box-shadow: 0rpx 5rpx 24rpx 0rpx rgba(4, 0, 0, 0.06);
 		border-radius: 15rpx;
-		margin-left: 20rpx;
-		margin-top: 30rpx;
-	}
-	.listO {
-		display: flex;
-		justify-content: space-between;
-	}
-	.li {
-		height: 31rpx;
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #FFFFFF;
-		line-height: 47rpx;
-		margin-left: 26rpx;
-		margin-top: 35rpx;
-	}
-	.lis {
-		width: 97rpx;
-		height: 38rpx;
-		background: #008001;
-		border-radius: 5rpx;
-		margin-top: 35rpx;
-		margin-right: 30rpx;
-	}
-	.liss {
-		height: 21rpx;
-		font-size: 22rpx;
-		font-weight: 500;
-		color: #FFFFFF;
-		line-height: 37rpx;
-		margin-left: 13rpx;
-	}
-	.TT {
-		display: flex;
-		justify-content: start;
-	}
-	.lsT {
-		// height: 100rpx;
-		font-size: 28rpx;
-		font-weight: 500;
-		color: #999999;
-		line-height: 47rpx;
-		margin-left: 28rpx;
-		margin-top: 20rpx;
+		padding: 30rpx;
+		margin-bottom: 30rpx;
+
+		.li {
+			font-size: $font-lg;
+			font-weight: bold;
+		}
+
+		.lis {
+			.liss {
+				border-radius: 5rpx;
+				padding: 10rpx 20rpx;
+				font-size: 22rpx;
+				font-weight: 500;
+				&.red{
+					background: $color-yellow;
+				}
+				&.green{
+					background: $color-green;
+				}
+			}
+		}
+
 	}
-	.lisT {
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #FFFFFF;
-		line-height: 47rpx;
-		margin-top: 20rpx;
+
+	.listT {
+		.TT {
+			margin-top: 20rpx;
+
+			.lsT {
+				font-weight: 500;
+				color: #999999;
+				font-size: $font-base;
+				min-width: 140rpx;
+			}
+
+			.lisT {
+				font-size: $font-lg;
+				font-weight: bold;
+			}
+		}
 	}
 </style>