cmy vor 1 Jahr
Ursprung
Commit
895530986d

+ 2 - 2
api/game.js

@@ -51,8 +51,8 @@ export  function gameBetList(data,type) {
 	});
 }
 
-// 互娱  获取交易记录
-export  function gameBetIn(data,type) {
+// 互娱  押注
+export  function gameBetIn(data) {
 	return request({
 		url: `/api/game/bet/${data.id}`,
 		method: 'post',

+ 1 - 1
libs/i18n/lang/cn.json

@@ -82,7 +82,7 @@
 	},
 	"enter": {
 		"u1": "下单金额",
-		"u2": "单笔最高200U",
+		"u2": "单期最高",
 		"u3": "k线类型",
 		"u4": "下",
 		"u5": "奇",

+ 1 - 1
libs/i18n/lang/en.json

@@ -82,7 +82,7 @@
 	},
 	"enter": {
 		"u1": "Order amount",
-		"u2": "Highest 200U",
+		"u2": "Highest",
 		"u3": "K types",
 		"u4": "Dowm",
 		"u5": "Strange",

+ 1 - 1
libs/i18n/lang/tw.json

@@ -82,7 +82,7 @@
 	},
 	"enter": {
 		"u1": "下單金額",
-		"u2": "(單筆最高200U)",
+		"u2": "單期最高",
 		"u3": "k線類型",
 		"u4": "下",
 		"u5": "奇",

+ 106 - 128
pages.json

@@ -10,29 +10,30 @@
 		},
 		// 质押
 		{
-				"path": "pages/index/pledge",
-				"style": {
-					"navigationBarTitleText": "互娛共享",
-					"navigationStyle": "custom"
-				}
+			"path": "pages/index/pledge",
+			"style": {
+				"navigationBarTitleText": "互娛共享",
+				"navigationStyle": "custom"
+			}
 		},
 		// 互娱
 		{
-				"path": "pages/index/entertainment",
-				"style": {
-					"navigationBarTitleText": "",
-					"navigationStyle": "custom"
-				}
+			"path": "pages/index/entertainment",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom"
+			}
 		},
 		// 资讯
 		{
-				"path": "pages/index/information",
-				"style": {
-					"navigationBarTitleText": "",
-					"navigationStyle": "custom"
-				}
+			"path": "pages/index/information",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom"
+			}
 		},
-		{			"path": "pages/public/register",
+		{
+			"path": "pages/public/register",
 			"style": {
 				"navigationBarTitleText": "注册",
 				"app-plus": {
@@ -120,12 +121,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/user/withdrawal",
-			"style": {
-				"navigationBarTitleText": "奖励提现"
-			}
-		},
 		{
 			"path": "pages/user/yjzz",
 			"style": {
@@ -138,7 +133,7 @@
 				"navigationBarTitleText": "推廣海報"
 			}
 		},
-		
+
 		{
 			"path": "pages/money/paySuccess",
 			"style": {
@@ -181,149 +176,132 @@
 			}
 		},
 
-	    {
-            "path" : "pages/myPledge/myPledge",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "我的质押",
-                "enablePullDownRefresh": false,
+		{
+			"path": "pages/myPledge/myPledge",
+			"style": {
+				"navigationBarTitleText": "我的质押",
+				"enablePullDownRefresh": false,
 				// "navigationBarTextStyle": "white",
-				 "backgroundColor": "#000000"
-            }
-            
-        }
-        ,{
-            "path" : "pages/introduce/introduce",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "玩法介绍",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/introduce/promotion",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "推广计划",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/jump/recharge",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "充值",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/jump/withdrawal",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "提幣",
-                "enablePullDownRefresh": false
-            }
-            
-        },
+				"backgroundColor": "#000000"
+			}
+
+		}, {
+			"path": "pages/introduce/introduce",
+			"style": {
+				"navigationBarTitleText": "玩法介绍",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/introduce/promotion",
+			"style": {
+				"navigationBarTitleText": "推广计划",
+				"enablePullDownRefresh": false
+			}
+
+		},
 		{
-		    "path" : "pages/introduce/game",
-		    "style" :                                                                                    
-		    {
-		        "navigationBarTitleText": "游戏举例",
-		        "enablePullDownRefresh": false
-		    }
-		    
-		}
-        ,{
-            "path" : "pages/jump/tabulation",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "会员列表",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/user/transaction",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "交易密码",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/myPledge/zyXingqing",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/jump/history",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "历史列表",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/jump/details",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "他的粉絲",
-                "enablePullDownRefresh": false
-            }
-            
-        },
+			"path": "pages/introduce/game",
+			"style": {
+				"navigationBarTitleText": "游戏举例",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/jump/tabulation",
+			"style": {
+				"navigationBarTitleText": "会员列表",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/user/transaction",
+			"style": {
+				"navigationBarTitleText": "交易密码",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/myPledge/zyXingqing",
+			"style": {
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/jump/history",
+			"style": {
+				"navigationBarTitleText": "历史列表",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/jump/details",
+			"style": {
+				"navigationBarTitleText": "他的粉絲",
+				"enablePullDownRefresh": false
+			}
+
+		},
 		{
 			"path": "pages/user/set",
 			"style": {
 				"navigationBarTitleText": "设置"
 			}
 		}
-    ],
+	],
+	"subPackages": [{ // 模块分包
+		"root": "pages/user",
+		"name": "shop",
+		"pages": [{
+			"path": "money/recharge",
+			"style": {
+				"navigationBarTitleText": "充值",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "money/withdrawal",
+			"style": {
+				"navigationBarTitleText": "奖励提现"
+			}
+		}]
+	}],
 	"tabBar": {
 		"color": "#C0C4CC",
 		"selectedColor": "#FEB041 ",
 		"borderStyle": "black",
 		"backgroundColor": "#000000",
 		"list": [{
-			    "visible":false,
+				"visible": false,
 				"pagePath": "pages/index/index",
 				"iconPath": "static/tabBar/shouye.png",
 				"selectedIconPath": "static/tabBar/shouye-home.png",
 				"text": "首頁"
 			},
 			{
-				"visible":false,
+				"visible": false,
 				"pagePath": "pages/index/pledge",
 				"iconPath": "static/tabBar/baoya.png",
 				"selectedIconPath": "static/tabBar/baoya-home.png",
 				"text": "質押"
 			},
 			{
-				"visible":false,
+				"visible": false,
 				"pagePath": "pages/index/entertainment",
 				"iconPath": "static/tabBar/huyu.png",
 				"selectedIconPath": "static/tabBar/huyu-home.png",
 				"text": "互娛"
 			},
 			{
-				"visible":false,
+				"visible": false,
 				"pagePath": "pages/index/information",
 				"iconPath": "static/tabBar/zixun.png",
 				"selectedIconPath": "static/tabBar/zixun-home.png",
 				"text": "資訊"
 			},
 			{
-				"visible":false,
+				"visible": false,
 				"pagePath": "pages/index/user",
 				"iconPath": "static/tabBar/my.png",
 				"selectedIconPath": "static/tabBar/my-home.png",

+ 1044 - 0
pages/index/entertainment - 副本.vue

@@ -0,0 +1,1044 @@
+<template>
+	<view class="all">
+		<view class="padding-t-30"></view>
+		<view class="tab">
+			<view class="flex-start">
+				<view class="tab-item " @click="changeTab(item,ind)" :class="{action:actionIndex==ind}"
+					v-for="(item,ind) in gameList">
+					{{item.name}}
+				</view>
+			</view>
+			<l-echart class="top" ref="chart"></l-echart>
+		</view>
+
+		<view class="center flex">
+			<!-- 左 -->
+			<view class="le">
+				<view class="tit flex-start">
+					<view class="ti1">{{$t('enter.u1')}}</view>
+					<view class="ti2">({{$t('enter.u2')}} {{history.base.max_bet*1}}U)</view>
+				</view>
+				<view class="he">
+					<view class="numbox flex-start">
+						<view class="he1 flex" @click="upOnBtnData.value=it" v-for="it in arMoneyList">
+							<view class="wen">{{it}}</view>
+						</view>
+					</view>
+				</view>
+				<view class="yi flex-start">
+					<image class="img" src="../../static/icon/le.png" mode=""></image>
+					<view class="wz padding-l-10">{{history.base.token}}</view>
+					<view class="qx padding-l-10" v-if="history.next.id">{{history.next.no}}</view>
+				</view>
+				<view class="shu">
+					{{KlineList.c*1}}
+				</view>
+			</view>
+			<!--右 -->
+			<view class="ri">
+				<view class="ti flex-center">
+					<view class="t1">{{$t('enter.u3')}}</view>
+					<view class="t2 padding-l-10">{{history.base.timebar}}</view>
+				</view>
+
+				<view class="dh">
+					<input class="input" :placeholder="'USDT'+$t('enter.a9')" type="number" v-model="upOnBtnData.value">
+				</view>
+				<view class="btn">
+					<view class="bt flex">
+						<view class="btnItem btnle" @click="onPayBet(2)">
+							<image class="imag" src="../../static/icon/xia.png" mode=""></image>
+							<text class="xia">{{$t('enter.u4')}}</text>
+						</view>
+						<view class="btnItem btnri" @click="onPayBet(1)">
+							<image class="imag" src="../../static/icon/shang.png" mode=""></image>
+							<text class="xia">{{$t('enter.u6')}}</text>
+						</view>
+					</view>
+					<view class="bt flex">
+						<view class="btnItem btnle" @click="onPayBet(3)">
+							<view class="xia">{{$t('enter.u5')}}</view>
+						</view>
+						<view class="btnItem btnri" @click="onPayBet(4)">
+							<view class="xia">{{$t('enter.u7')}}</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="db flex">
+					<view class="jl">{{$t('enter.u8')}}</view>
+					<view class="sj">
+						<text v-if="time.H<10">0</text>
+						{{time.H}}
+					</view>
+					<view class="sj">
+						<text v-if="time.M<10">0</text>
+						{{time.M}}
+					</view>
+					<view class="sj">
+						<text v-if="time.S<10">0</text>
+						{{time.S}}
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="kb"></view>
+
+		<view class="last">
+			<view class="flex">
+				<text>{{$t('enter.u9')}}</text>
+				<navigator url="/pages/history/history">
+					<view class="flex" @click="nav">
+						<text>{{$t('enter.u10')}}</text>
+						<image class="lb" src="../../static/icon/jt.png" mode=""></image>
+					</view>
+				</navigator>
+			</view>
+		</view>
+
+		<view class="bg">
+			<view class="biaotou flex">
+				<view class="biwe">{{$t('enter.u11')}}</view>
+				<view class="biwe">{{$t('enter.u12')}}</view>
+				<view class="biwe">{{$t('enter.u13')}}</view>
+				<view class="biwe">{{$t('enter.u14')}}</view>
+			</view>
+			<view class="list flex" v-for="(item,ind) in betList.list" :key="ind">
+				<view class="biwe flex-start">
+					<view class="tr">{{history.base.token}}</view>
+					<view class="nametip">{{history.base.timebar}}</view>
+					<image v-if="item.bet==1" class="zz" src="../../static/icon/shang.png" mode="scaleToFill"></image>
+					<image v-if="item.bet==2" class="zz" src="../../static/icon/xia.png" mode="scaleToFill"></image>
+					<view v-if="item.bet==3" class="nametip red">{{$t('enter.u5')}}</view>
+					<view v-if="item.bet==4" class="nametip green">{{$t('enter.u7')}}</view>
+				</view>
+				<view class="biwe">{{item.num*1}}</view>
+				<view class="biwe">{{item.get-item.num}}</view>
+				<view class="biwe flex">
+					<view v-if="item.status==1" class="list-buttom success margin-r-10">
+						{{$t('enter.u17')}}
+					</view>
+					<view class="list-buttom primary">
+						{{$t('enter.u18')}}
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<view class="chz flex">
+			<view>
+				<view class="yue padding-b-10">{{$t('enter.u15')}}</view>
+				<view class="yes">{{userWallet}}U</view>
+			</view>
+			<navigator url="/pages/recharge/recharge">
+				<view class="flex-start">
+					<view class="quc">{{$t('enter.u16')}}</view>
+					<image class="choz" src="../../static/icon/jt.png" mode=""></image>
+				</view>
+			</navigator>
+		</view>
+		<uni-popup type="bottom" ref="popup" :mask-click="false" @maskClick='colsePayPassword'>
+			<view class="page">
+				<view>
+					<view class="pay-title">
+						<text>{{$t('enter.b3')}}</text>
+					</view>
+					<view class="pay-password" @click="onPayUp">
+						<view class="list" v-for="item in 6">
+							<text v-show="upOnBtnData.passwordArr.length >= item">●</text>
+						</view>
+					</view>
+					<view class="hint">
+						<navigator url="/pages/transaction/transaction">
+							<text>忘记支付密码?</text>
+						</navigator>
+					</view>
+				</view>
+				<cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo"
+					:viewShow="true"></cc-defineKeyboard>
+			</view>
+		</uni-popup>
+		<taber tab='entertainment' v-if="!upOnBtnData.show"></taber>
+	</view>
+</template>
+
+<script>
+	import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
+	import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
+	import {
+		getGame,
+		gameKline,
+		getGameList,
+		test,
+		gameWallet,
+		gameBetList,
+		gameBetIn
+	} from "@/api/game.js";
+	import {
+		qianBao,
+	} from "@/api/wallet.js";
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	import {
+		saveUrl,
+		interceptor
+	} from '@/utils/loginUtils.js';
+	import taber from "@/components/footer/footer.vue";
+
+	export default {
+		components: {
+			taber,
+			LEchart
+		},
+		computed: {
+			...mapState("user", ["hasLogin"])
+		},
+		data() {
+			return {
+				arMoneyList: [
+					1, 5, 10, 20, 50, 100
+				],
+				actionIndex: 0,
+				// 当前游戏列表
+				gameList: [],
+				// 游戏信息
+				history: {
+					list: [], //游戏进行记录
+					page: 1,
+					limit: 10,
+					// 基础数据
+					base: {},
+					next: {},
+					now: {}
+				},
+				time: {
+					H: 0,
+					M: 0,
+					S: 0,
+					// 保存倒计时对象
+					t: ''
+				},
+				// 游戏押注记录
+				betList: {
+					list: [], //游戏进行记录
+					page: 1,
+					limit: 10,
+				},
+				userWallet: 0,
+				// 当前最新K线数据
+				KlineList:{c:''},
+				upOnBtnData: {
+					// 是否显示底部导航栏
+					show: false,
+					type: '',
+					// 当前输入的密码
+					passwordArr: [],
+					value: '',
+				},
+			};
+		},
+		onLoad() {},
+		onShow() {
+			if (!this.hasLogin) {
+				uni.showModal({
+					title: this.$t('enter.c4'),
+					content: this.$t('enter.b5'),
+					success: (e) => {
+						// 判断是否点击确认按钮
+						if (e.confirm) {
+							// 保存当前页面地址
+							saveUrl()
+							// 跳转页面
+							interceptor()
+						}
+					}
+				})
+				return
+			}
+			this.getUserWallet();
+
+		},
+		// 关闭循环
+		onHide() {
+			clearInterval(this.time.t)
+		},
+		methods: {
+			// 点击触发支付事件
+			onPayBet(type) {
+				if (!this.upOnBtnData.value) {
+					uni.showToast({
+						title: this.$t('enter.a9'),
+						icon: "error"
+					})
+					return
+				}
+				this.upOnBtnData.type = type;
+				this.openPayPassword();
+			},
+			// 打开支付弹窗
+			openPayPassword() {
+				this.upOnBtnData.show = true;
+				this.$refs.popup.open();
+			},
+			// 关闭支付弹窗
+			colsePayPassword() {
+				this.upOnBtnData.show = false;
+				this.$refs.popup.close();
+			},
+
+			KeyInfo(val) {
+				console.log(val);
+				let arr = this.upOnBtnData.passwordArr;
+				if (val.index >= 6) {
+					return;
+				}
+				// 判断是否输入的是删除键
+				if (val.keyCode === 8) {
+					// 删除最后一位
+					arr.splice(val.index + 1, 1)
+				}
+				// 判断是否输入的是取消案件
+				else if (val.keyCode == 190) {
+					this.colsePayPassword();
+					// 输入.无效
+				} else {
+					arr.push(val.key);
+				}
+				// 开始交易
+				if (arr.length == 6) {
+					this.colsePayPassword();
+					this.gameBetIn();
+				}
+			},
+			// 参与压住
+			gameBetIn(type) {
+				const that = this;
+				const upData = {
+					id: that.history.next.id,
+
+					bet: that.upOnBtnData.type,
+					num: that.upOnBtnData.value,
+					trade_password: that.upOnBtnData.passwordArr.join("")
+				};
+				this.upOnBtnData.passwordArr=[];
+				uni.showLoading({
+					mask: true
+				})
+				gameBetIn(upData).then((res) => {
+					uni.hideLoading()
+					uni.showToast({
+						title:  res.msg
+					});
+					that.gameBetList();
+				}).catch((res) => {
+					uni.hideLoading();
+					uni.showToast({
+						title:  res.msg
+					});
+				})
+			},
+			// 获取用户余额信息
+			getUserWallet() {
+				gameWallet().then((res) => {
+					this.userWallet = +res.data.back.USDT.money.money
+				})
+				if (this.history.next.id) {
+					this.opTiem();
+				} else {
+					this.gameInit();
+				}
+			},
+			// 开始倒计时
+			async opTiem() {
+				const that = this;
+				try {
+					// 关闭循环
+					clearInterval(that.time.t);
+					if (that.history.base.id) {
+						that.time.t = setInterval(() => {
+							const da = (new Date()).getTime();
+							const timenum = that.history.next.open_time * 1000 - da;
+							that.time.H = Math.floor(timenum / 1000 / 60 / 60);
+							that.time.S = Math.floor(timenum / 1000 % 60)
+							that.time.M = Math.floor(timenum / 1000 / 60 % 60);
+							if (that.time.H == 0 && that.time.M == 0 && that.time.S == 0) {
+								clearInterval(that.time.t);
+								setTimeout(() => {
+									test();
+									setTimeout(() => {
+										this.gameDataInit(that.gameList[that.actionIndex].id)
+									}, 1000)
+								}, 3000)
+
+							}
+						}, 1000)
+					}
+				} catch (e) {
+					console.log(e, '定时');
+				}
+
+			},
+			changeTab(item, ind) {
+				if (ind != this.actionIndex) {
+					this.actionIndex = ind;
+					clearInterval(this.time.t)
+					this.gameDataInit(item.id);
+				}
+			},
+			async gameInit() {
+				try {
+					await test();
+					// 获取游戏列表
+					await this.getGameList();
+					// 加载游戏数据
+					this.gameDataInit(this.history.next.id || this.gameList[0].id)
+
+				} catch (e) {
+					console.log(e, 'cuowu');
+				}
+			},
+			// 加载游戏列表
+			getGameList() {
+				return getGameList().then((res) => {
+					this.gameList = res.data.list;
+					// console.log('1111111111',this.gameList);
+				})
+			},
+			// 重新加载基础游戏信息
+			async gameDataInit(id, reload = true) {
+				// 获取基础信息
+				await this.getGame(id);
+				//获取K线
+				this.getGameKline(reload);
+				// 获取游戏压住记录
+				this.gameBetList();
+			},
+			// 获取游戏压住记录
+			gameBetList() {
+				gameBetList({
+					page: 1,
+					limit: 10,
+					id: this.history.base.id,
+				}).then((res) => {
+					this.betList.list = res.data.bet_log;
+					console.log('aaa', this.betList.list);
+				})
+			},
+			// 获取游戏K线信息
+			getGameKline(reload = true) {
+				const that = this;
+				gameKline({
+					page: 1,
+					limit: 60
+				}, that.history.base.id).then((res) => {
+					that.KlineList = res.data.list[0];
+					let list = res.data.list.reverse();
+					// x轴记录
+					let xarr = [];
+					// 打点数据
+					let linearr = [];
+					for (let i = 0; i < list.length; i++) {
+						const ll = list[i];
+						const time = new Date(+ll.ts);
+						const addar = [+(+ll.o).toFixed(5), +(+ll.c).toFixed(5), +(+ll.l).toFixed(5), +(+ll.h)
+							.toFixed(5)
+						];
+						xarr.push(`${time.getHours()}:${time.getMinutes()}`)
+						linearr.push(addar)
+					}
+					that.$nextTick(() => {
+						// 判断是否要重载数据
+						that.initKline({
+							xarr,
+							linearr
+						}, reload)
+					})
+				})
+			},
+			// 获取当前项目信息
+			getGame(type) {
+				const that = this;
+				return getGame({
+					page: that.history.page,
+					limit: that.history.limit
+				}, type).then(({
+					data
+				}) => {
+					that.history.list = data.list || [];
+					that.history.base = data.game || {};
+					that.history.next = data.next_game || {};
+					that.history.now = data.now_game || {};
+					if (that.history.next) {
+						that.opTiem();
+					}
+				})
+			},
+			// 均值计算
+			calculateMA(dayCount, data) {
+				var result = [];
+				for (var i = 0, len = data.linearr.length; i < len; i++) {
+					if (i < dayCount) {
+						result.push('-');
+						continue;
+					}
+					var sum = 0;
+					for (var j = 0; j < dayCount; j++) {
+						sum += data.linearr[i - j][1];
+					}
+					result.push(+(sum / dayCount).toFixed(5));
+				}
+				return result;
+			},
+			// 重载K线
+			async initKline(data, reload = true) {
+				const that = this;
+				try {
+					const chart = await this.$refs.chart.init(echarts);
+					if (reload) {
+						const upColor = '#00da3c';
+						const downColor = '#ec0000';
+						chart.setOption(
+							(this.option = {
+								animation: false,
+								legend: {
+									top: 10,
+									left: 10,
+									data: ['MA5', 'MA10', 'MA20'],
+									textStyle: {
+										color: '#999999'
+									}
+								},
+								tooltip: {
+									trigger: 'axis',
+									axisPointer: {
+										type: 'cross'
+									},
+									borderWidth: 1,
+									borderColor: '#ccc',
+									padding: 10,
+									textStyle: {
+										color: '#000'
+									},
+									position: function(pos, params, el, elRect, size) {
+										const obj = {
+											top: 10
+										};
+										obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 40;
+
+										return obj;
+									}
+								},
+								dataZoom: [{
+									type: 'inside',
+									xAxisIndex: 0,
+									start: 50,
+									end: 100
+								}],
+								grid: [{
+									left: 10,
+									right: 55,
+									bottom: 20,
+									top: 45
+								}],
+								xAxis: [{
+									type: 'category',
+									data: data.xarr,
+									axisLine: {
+										onZero: false
+									},
+									splitLine: {
+										show: false
+									},
+									min: 'dataMin',
+									max: 'dataMax',
+									axisPointer: {
+										z: 100
+									}
+								}],
+								yAxis: [{
+									scale: true,
+									splitNumber: 4,
+									position: 'right',
+									axisTick: {
+										show: false
+									},
+									splitLine: {
+										show: false,
+										lineStyle: {
+											color: '#e3e3e3'
+										}
+									},
+									axisLabel: {
+										inside: false,
+										formatter: '{value}\n',
+										color: '#999999'
+									}
+								}],
+								series: [{
+										name: that.history.base.token + '-USDT',
+										type: 'candlestick',
+										data: data.linearr,
+										itemStyle: {
+											color: upColor,
+											color0: downColor,
+											borderColor: undefined,
+											borderColor0: undefined
+										}
+									},
+									{
+										name: "MA5",
+										smooth: true,
+										type: 'line',
+										data: that.calculateMA(5, data),
+										showSymbol: false,
+										lineStyle: {
+											width: 1
+										}
+									},
+									{
+										name: "MA10",
+										smooth: true,
+										type: 'line',
+										data: that.calculateMA(10, data),
+										showSymbol: false,
+										lineStyle: {
+											width: 1
+										}
+									},
+									{
+										name: "MA20",
+										smooth: true,
+										type: 'line',
+										data: that.calculateMA(20, data),
+										showSymbol: false,
+										lineStyle: {
+											width: 1
+										}
+									},
+								]
+							}),
+							true
+						)
+					} else {
+						chart.setOption({
+							xAxis: [{
+								type: 'category',
+								data: data.xarr,
+							}],
+							series: [{
+									name: that.history.base.token + '-USDT',
+									data: data.linearr,
+								},
+								{
+									name: "MA5",
+									data: that.calculateMA(5, data),
+								},
+								{
+									name: "MA10",
+									data: that.calculateMA(10, data),
+								},
+								{
+									name: "MA20",
+									data: that.calculateMA(20, data),
+								},
+							]
+						})
+					}
+
+
+				} catch (e) {
+					console.log(e, 'cuowu');
+					//TODO handle the exception
+				}
+
+			},
+			// 页面跳转
+			nav() {
+				uni.navigateTo({
+					url: "/pages/history/history",
+				});
+			},
+		},
+	};
+</script>
+
+<style lang="scss">
+	.all {
+		width: 750rpx;
+		/* height: 2500rpx; */
+		height: 100%;
+		padding-top: var(--status-bar-height);
+		padding-bottom: 30rpx;
+	}
+
+	$base: orangered; // 基础颜色
+
+	.page {
+		width: 100%;
+		background-color: #FFFFFF;
+
+		.pay-title {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 100%;
+			height: 200rpx;
+
+			text {
+				font-size: 28rpx;
+				color: #555555;
+			}
+		}
+
+		.pay-password {
+			display: flex;
+			align-items: center;
+			width: 90%;
+			height: 80rpx;
+			margin: 20rpx auto;
+			border: 2rpx solid $base;
+
+			.list {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 16.666%;
+				height: 100%;
+				border-right: 2rpx solid #EEEEEE;
+
+				text {
+					font-size: 32rpx;
+				}
+			}
+
+			.list:nth-child(6) {
+				border-right: none;
+			}
+		}
+
+		.hint {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 100%;
+			height: 100rpx;
+
+			text {
+				font-size: 28rpx;
+				color: $base;
+			}
+		}
+	}
+
+
+	.tab {
+		padding: 30rpx 20rpx;
+		margin: 0 30rpx;
+		background-color: #191A1F;
+		border-radius: 20px;
+
+		.tab-item {
+			color: #FFF;
+			font-size: $font-sm;
+			padding: 0 20rpx;
+			padding-bottom: 10rpx;
+
+			&.action {
+				color: #F5A944;
+				border-bottom: 1px solid #F5A944;
+			}
+		}
+
+		.top {
+			height: 530rpx;
+			width: 100%;
+		}
+	}
+
+	.center {
+		padding: 30rpx;
+		line-height: 1;
+		align-items: flex-start;
+
+		.le,
+		.ri {
+			width: 50%;
+		}
+
+		.le {
+			.tit {
+				font-weight: bold;
+
+				.ti1 {
+					font-size: 26rpx;
+					color: #ffffff;
+				}
+
+				.ti2 {
+					font-size: 22rpx;
+					padding-left: 10rpx;
+					color: #999999;
+				}
+			}
+
+			.he {
+				padding-top: 40rpx;
+
+				.numbox {
+					flex-wrap: wrap;
+
+					.he1 {
+						background: #fdaf41;
+						border-radius: 10rpx;
+						margin-bottom: 40rpx;
+						margin-right: 20rpx;
+						width: 84rpx;
+						height: 84rpx;
+						justify-content: center;
+
+						.wen {
+							font-size: 30rpx;
+							font-weight: bold;
+							color: #000000;
+						}
+					}
+				}
+			}
+
+			.yi {
+				color: #ffffff;
+				font-size: $font-base;
+
+				.img {
+					width: 41rpx;
+					height: 42rpx;
+				}
+
+				.wz {
+					font-weight: bold;
+				}
+			}
+
+			.shu {
+				padding-top: 10rpx;
+				font-size: 51rpx;
+				font-weight: bold;
+				color: #fdb242;
+			}
+
+		}
+
+		.ri {
+			.ti {
+				font-size: 26rpx;
+				font-weight: bold;
+
+				.t1 {
+					color: #ffffff;
+				}
+
+				.t2 {
+					color: #fdaf41;
+				}
+			}
+
+			.dh {
+				width: 100%;
+				padding: 20rpx 30rpx;
+				margin-top: 30rpx;
+				background: #efefef;
+				border-radius: 10rpx;
+
+				.te {
+					font-size: 44rpx;
+					font-weight: 800;
+					color: #000000;
+				}
+			}
+
+			.btn {
+				padding-top: 30rpx;
+
+				.bt {
+					padding-bottom: 10rpx;
+
+					.btnItem {
+						width: 49%;
+						height: 70rpx;
+						line-height: 70rpx;
+						text-align: center;
+
+						.imag {
+							width: 32rpx;
+							height: 20rpx;
+						}
+
+						.xia {
+							font-size: 28rpx;
+							font-weight: 800;
+							color: #ffffff;
+						}
+
+					}
+
+					.btnle {
+						border-radius: 50rpx 0 0 50rpx;
+						background-color: #df5660;
+
+					}
+
+					.btnri {
+						border-radius: 0 50rpx 50rpx 0;
+						background-color: #5bb786;
+					}
+				}
+			}
+
+			.db {
+				justify-content: flex-end;
+				padding-top: 30rpx;
+
+				.jl {
+					font-size: 24rpx;
+					font-weight: 400;
+					color: #999999;
+				}
+
+				.sj {
+					width: 40rpx;
+					height: 40rpx;
+					background: #bfbfbf;
+					border-radius: 3rpx;
+					text-align: center;
+					line-height: 40rpx;
+					margin-left: 10rpx;
+				}
+
+			}
+		}
+	}
+
+	.kb {
+		width: 750rpx;
+		height: 20rpx;
+		background-color: #191a1f;
+	}
+
+	.last {
+		padding: 30rpx;
+		line-height: 1;
+		font-size: 24rpx;
+		font-weight: 800;
+		color: #fff;
+
+		.lb {
+			width: 14rpx;
+			height: 20rpx;
+			margin-left: 10rpx;
+		}
+
+	}
+
+
+
+
+
+	.bg {
+		padding: 0 30rpx;
+		background-color: #000000;
+		color: #fff;
+		text-align: center;
+		font-size: 28rpx;
+		padding-bottom: 30rpx;
+
+		.biaotou {
+			font-weight: 800;
+			padding-bottom: 10rpx;
+		}
+
+		.biwe {
+			width: 25%;
+
+			.zz {
+				width: 22rpx;
+				height: 14rpx;
+				margin-left: 8rpx;
+			}
+
+			.nametip {
+				font-size: 18rpx;
+				color: #999999;
+				padding-left: 8rpx;
+				&.green{
+					color:#5bb786;
+				}
+				&.red{
+					color:#df5660;
+				}
+			}
+		}
+
+		.biwe:nth-child(1) {
+			flex-shrink: 0;
+			text-align: left;
+			align-items: flex-end;
+		}
+
+		.biwe:nth-child(4) {
+			flex-shrink: 0;
+			width: 200rpx;
+		}
+
+		.list {
+			font-weight: bold;
+			padding: 20rpx 0;
+			border-bottom: 1px solid rgba(43, 42, 38, 0.52);
+		}
+
+		.list-buttom {
+			width: 100rpx;
+			border-radius: 30rpx;
+			font-size: 16rpx;
+			padding: 10rpx 0;
+
+			&.success {
+				background: #25b287;
+			}
+
+			&.primary {
+				background: #01ebf6;
+				color: #000000;
+			}
+		}
+	}
+
+	.chz {
+		background: #191a1f;
+		border-radius: 20rpx;
+		margin: 0 30rpx;
+		color: #ffffff;
+		font-weight: bold;
+		padding: 20rpx 30rpx;
+
+		.yue {
+			font-size: 28rpx;
+		}
+
+		.yes {
+			color: #fdaf41;
+		}
+
+		.quc {
+			font-size: 26rpx;
+			font-weight: 500;
+			color: #ffffff;
+		}
+
+		.choz {
+			width: 22rpx;
+			height: 14rpx;
+		}
+	}
+</style>

+ 48 - 33
pages/index/entertainment.vue

@@ -16,7 +16,7 @@
 			<view class="le">
 				<view class="tit flex-start">
 					<view class="ti1">{{$t('enter.u1')}}</view>
-					<view class="ti2">({{$t('enter.u2')}})</view>
+					<view class="ti2">({{$t('enter.u2')}} {{history.base.max_bet*1}}U)</view>
 				</view>
 				<view class="he">
 					<view class="numbox flex-start">
@@ -31,7 +31,7 @@
 					<view class="qx padding-l-10" v-if="history.next.id">{{history.next.no}}</view>
 				</view>
 				<view class="shu">
-					0.064489
+					{{KlineList.c*1}}
 				</view>
 			</view>
 			<!--右 -->
@@ -42,7 +42,7 @@
 				</view>
 
 				<view class="dh">
-					<input class="input" :placeholder="$t('enter.a9')" type="number" v-model="upOnBtnData.value">
+					<input class="input" :placeholder="'USDT'+$t('enter.a9')" type="number" v-model="upOnBtnData.value">
 				</view>
 				<view class="btn">
 					<view class="bt flex">
@@ -87,10 +87,12 @@
 		<view class="last">
 			<view class="flex">
 				<text>{{$t('enter.u9')}}</text>
-				<view class="flex" @click="nav">
-					<text>{{$t('enter.u10')}}</text>
-					<image class="lb" src="../../static/icon/jt.png" mode=""></image>
-				</view>
+				<navigator url="/pages/history/history">
+					<view class="flex" @click="nav">
+						<text>{{$t('enter.u10')}}</text>
+						<image class="lb" src="../../static/icon/jt.png" mode=""></image>
+					</view>
+				</navigator>
 			</view>
 		</view>
 
@@ -105,12 +107,15 @@
 				<view class="biwe flex-start">
 					<view class="tr">{{history.base.token}}</view>
 					<view class="nametip">{{history.base.timebar}}</view>
-					<image class="zz" src="../../static/icon/shang.png" mode=""></image>
+					<image v-if="item.bet==1" class="zz" src="../../static/icon/shang.png" mode="scaleToFill"></image>
+					<image v-if="item.bet==2" class="zz" src="../../static/icon/xia.png" mode="scaleToFill"></image>
+					<view v-if="item.bet==3" class="nametip red">{{$t('enter.u5')}}</view>
+					<view v-if="item.bet==4" class="nametip green">{{$t('enter.u7')}}</view>
 				</view>
-				<view class="biwe">23.5000</view>
-				<view class="biwe">23.5000</view>
+				<view class="biwe">{{item.num*1}}</view>
+				<view class="biwe">{{item.get-item.num}}</view>
 				<view class="biwe flex">
-					<view class="list-buttom success margin-r-10">
+					<view v-if="item.status==1" class="list-buttom success margin-r-10">
 						{{$t('enter.u17')}}
 					</view>
 					<view class="list-buttom primary">
@@ -125,10 +130,12 @@
 				<view class="yue padding-b-10">{{$t('enter.u15')}}</view>
 				<view class="yes">{{userWallet}}U</view>
 			</view>
-			<view class="flex-start" @click="navC">
-				<view class="quc">{{$t('enter.u16')}}</view>
-				<image class="choz" src="../../static/icon/jt.png" mode=""></image>
-			</view>
+			<navigator url="/pages/recharge/recharge">
+				<view class="flex-start">
+					<view class="quc">{{$t('enter.u16')}}</view>
+					<image class="choz" src="../../static/icon/jt.png" mode=""></image>
+				</view>
+			</navigator>
 		</view>
 		<uni-popup type="bottom" ref="popup" :mask-click="false" @maskClick='colsePayPassword'>
 			<view class="page">
@@ -142,7 +149,9 @@
 						</view>
 					</view>
 					<view class="hint">
-						<text @click="navW">忘记支付密码?</text>
+						<navigator url="/pages/transaction/transaction">
+							<text>忘记支付密码?</text>
+						</navigator>
 					</view>
 				</view>
 				<cc-defineKeyboard ref="CodeKeyboard" passwrdType="pay" @KeyInfo="KeyInfo"
@@ -218,6 +227,8 @@
 					limit: 10,
 				},
 				userWallet: 0,
+				// 当前最新K线数据
+				KlineList:{c:''},
 				upOnBtnData: {
 					// 是否显示底部导航栏
 					show: false,
@@ -306,19 +317,26 @@
 				const that = this;
 				const upData = {
 					id: that.history.next.id,
-					
+
 					bet: that.upOnBtnData.type,
 					num: that.upOnBtnData.value,
 					trade_password: that.upOnBtnData.passwordArr.join("")
 				};
+				this.upOnBtnData.passwordArr=[];
 				uni.showLoading({
 					mask: true
 				})
 				gameBetIn(upData).then((res) => {
 					uni.hideLoading()
+					uni.showToast({
+						title:  res.msg
+					});
+					that.gameBetList();
 				}).catch((res) => {
 					uni.hideLoading();
-					console.log(res)
+					uni.showToast({
+						title:  res.msg
+					});
 				})
 			},
 			// 获取用户余额信息
@@ -405,7 +423,7 @@
 					id: this.history.base.id,
 				}).then((res) => {
 					this.betList.list = res.data.bet_log;
-					console.log('aaa',this.betList.list );
+					console.log('aaa', this.betList.list);
 				})
 			},
 			// 获取游戏K线信息
@@ -415,6 +433,7 @@
 					page: 1,
 					limit: 60
 				}, that.history.base.id).then((res) => {
+					that.KlineList = res.data.list[0];
 					let list = res.data.list.reverse();
 					// x轴记录
 					let xarr = [];
@@ -635,21 +654,10 @@
 				}
 
 			},
-
-			// 页面逻辑
-			nav() {
-				uni.navigateTo({
-					url: "/pages/jump/history",
-				});
-			},
-			navC() {
-				uni.navigateTo({
-					url: "/pages/jump/recharge",
-				});
-			},
-			navW() {
+			// 页面跳转
+			nav(url) {
 				uni.navigateTo({
-					url: "/pages/user/transaction",
+					url,
 				});
 			},
 		},
@@ -659,6 +667,7 @@
 <style lang="scss">
 	.all {
 		width: 750rpx;
+		/* height: 2500rpx; */
 		height: 100%;
 		padding-top: var(--status-bar-height);
 		padding-bottom: 30rpx;
@@ -962,6 +971,12 @@
 				font-size: 18rpx;
 				color: #999999;
 				padding-left: 8rpx;
+				&.green{
+					color:#5bb786;
+				}
+				&.red{
+					color:#df5660;
+				}
 			}
 		}
 

+ 31 - 31
pages/index/user.vue

@@ -3,14 +3,15 @@
 		<view class="top">
 			<view class="my">{{$t('home.d4')}}</view>
 			<view class="userinfo flex">
-				<view class="flex"  @click="navTo('/pages/user/set')">
-					<image class="image margin-r-10" :src="userInfo.avatar || '/static/error/missing-face.png'" mode="scaleToFill">
+				<view class="flex" @click="navTo('/pages/user/set')">
+					<image class="image margin-r-10" :src="userInfo.avatar || '/static/error/missing-face.png'"
+						mode="scaleToFill">
 					</image>
 					<view class="info">
 						<view class="infor margin-b-20">{{ userInfo.nickname || '游客' }}</view>
-						 <view class="uservip">
-						 	{{userInfo.vip ? userInfo.vip_name: '粉丝'}}
-						 </view>
+						<view class="uservip">
+							{{userInfo.vip ? userInfo.vip_name: '粉丝'}}
+						</view>
 					</view>
 				</view>
 				<image @click="showY" class="inf" src="../../static/shouye/userinfo.png" mode="scaleToFill"></image>
@@ -26,8 +27,12 @@
 					{{userWallet}}U
 				</view>
 				<view class="btn flex">
-					<button class="btn1" @click="navigator"> <text>{{$t('user.a7')}}</text> </button>
-					<button class="btn1" @click="navigatorT"> <text>{{$t('user.a6')}}</text> </button>
+					<navigator url="/pages/user/money/wallet/recharge">
+						<button class="btn1"> <text>{{$t('user.a7')}}</text> </button>
+					</navigator>
+					<navigator url="/pages/user/money/wallet/withdrawal">
+						<button class="btn1"> <text>{{$t('user.a6')}}</text> </button>
+					</navigator>
 				</view>
 			</view>
 
@@ -155,7 +160,7 @@
 				code: '',
 				levelList: [],
 				show: true,
-				
+
 				userWallet: 0, //余额 
 			};
 		},
@@ -200,17 +205,6 @@
 			showY() {
 				this.show = !this.show
 			},
-			navigatorT() {
-				uni.navigateTo({
-					url: '/pages/jump/withdrawal'
-				})
-			},
-			navigator() {
-				uni.navigateTo({
-					url: '/pages/jump/recharge'
-				})
-			},
-
 			// 获取用户余额信息
 			getUserWallet() {
 				gameWallet().then((res) => {
@@ -249,7 +243,7 @@
 					});
 				}
 			},
-			
+
 			cast() {
 				set_waiter({
 						uid: this.id
@@ -303,6 +297,7 @@
 					font-weight: 500;
 					color: #FFFFFF;
 				}
+
 				.uservip {
 					display: flex;
 					align-items: center;
@@ -337,43 +332,49 @@
 		border-top-right-radius: 60rpx;
 		border-top-left-radius: 60rpx;
 		color: #FFFFFF;
+
 		.yue {
 			border-radius: 60rpx;
 			background-color: #000000;
 			text-align: center;
 			padding-top: 40rpx;
 			padding-bottom: 35rpx;
+
 			.te {
 				font-size: 26rpx;
 				font-weight: 500;
 				padding-bottom: 30rpx;
 			}
-			
+
 			.tex {
 				font-size: 48rpx;
 				font-weight: bold;
 				padding-bottom: 50rpx;
 			}
-			
-			.btn1 {
-				min-width: 270rpx;
-				background: #FDB242;
-				border-radius: 10rpx;
-				font-size: $font-base;
+			.btn{
+				padding: 0 50rpx;
+				.btn1 {
+					min-width: 270rpx;
+					background: #FDB242;
+					border-radius: 10rpx;
+					font-size: $font-base;
+				}
 			}
 		}
-		
+
 		.yue1 {
 			background-color: #000000;
 			padding: 30rpx;
 			color: #FFFFFF;
 			border-radius: 60rpx;
+
 			.tj {
 				font-size: 30rpx;
 				font-weight: bold;
 				text-align: center;
 			}
-			.tj-item{
+
+			.tj-item {
 				padding-top: 26rpx;
 				font-size: 24rpx;
 				opacity: 0.65;
@@ -396,7 +397,7 @@
 		margin: 0 auto;
 		padding: 30rpx 25rpx;
 		border-bottom: 1px solid rgba(240, 240, 240, 0.2);
-		
+
 		.left-img {
 			width: 40rpx;
 			height: 40rpx;
@@ -415,5 +416,4 @@
 			height: 27rpx;
 		}
 	}
-
 </style>

+ 1 - 1
pages/jump/recharge.vue → pages/user/money/recharge.vue

@@ -13,7 +13,7 @@
 				>
 				<image
 					class="SSS"
-					src="../../static/icon/cz.png"
+					src="/static/icon/cz.png"
 					mode=""
 					@click="copy(address)">
 				</image>

+ 0 - 0
pages/jump/withdrawal.vue → pages/user/money/withdrawal.vue