瀏覽代碼

change ui

eraser 3 年之前
當前提交
8b74fbd456

+ 32 - 0
App.vue

@@ -0,0 +1,32 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		},
+		globeData:
+		{
+			gender:-1,
+			weight:-1,
+			high:-1,
+			age:-1,
+			waist:-1,
+			bmr:-1,
+			calorie:-1,
+			heartRate:-1,
+			lowestHeartRate:-1,
+			highestHeartRate:-1,
+			fatWeight:-1,
+			fatRate:-1,
+		},
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>

+ 21 - 0
main.js

@@ -0,0 +1,21 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+    ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif

+ 72 - 0
manifest.json

@@ -0,0 +1,72 @@
+{
+    "name" : "NingGeAssistant",
+    "appid" : "__UNI__FF7C450",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 96 - 0
pages.json

@@ -0,0 +1,96 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				// "navigationBarTitleText": "uni-app"
+			}
+		},
+		{
+			"path": "pages/login/login",
+			"style": {
+				
+			}
+		},
+		{
+			"path": "pages/register/register",
+			"style": {
+				
+			}
+		},
+		{
+			"path": "pages/home/home",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/basalMetabolism/basalMetabolism",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/dayCalorie/dayCalorie",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/heartRhythms/heartRhythms",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/bodyFatRatio/bodyFatRatio",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/basalMetabolism/help",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/bodyFatRatio/help",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/dayCalorie/help",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/heartRhythms/help",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/heartRhythms/staticHeartRateHelp",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		}
+		
+	],
+	"globalStyle": {
+		"navigationStyle": "custom"
+		// "navigationBarTextStyle": "white",
+		// "navigationBarTitleText": "燃脂功能训练",
+		// "navigationBarBackgroundColor": "rgb(115,164,164)",
+		// "backgroundColor": "#F8F8F8",
+		// "scrollIndicator": "none",
+		// "app-plus":{
+		// 	// "titleNView":false
+		// 	"scrollIndicator":"none" //全局 在APP页面都不显示滚动条
+		// }
+	}
+	
+}

+ 297 - 0
pages/basalMetabolism/basalMetabolism.vue

@@ -0,0 +1,297 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">基础代谢率</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		
+		<view class="content">
+			
+			<text class="result-area">{{result}}</text>
+			<button class="help" @click="onHelp(0, $event)">宁哥笔记</button>
+			
+			<view class="input-area">
+				<view class="weight">
+					<view class="input-title">体重 : </view>
+					<!-- <input  class="input" type="number"  placeholder="请输入体重" v-model="weight" @input="onInput(0, $event)" :value="weight"/> -->
+					<input  class="input" type="number"  placeholder="请输入体重" v-model="weight" />
+				</view>
+				
+				<view class="high">
+					<view class="input-title">身高 : </view>
+					<input  class="input" type="number"  placeholder="请输入身高" v-model="high" />
+				</view>
+				
+				<view class="age">
+					<view class="input-title">年龄 : </view>
+					<input  class="input" type="number"  placeholder="请输入年龄" v-model="age" />
+				</view>
+			</view>
+			
+			<button class="confirm" @click="onClick(0, $event)">确定</button>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				weight:-1,
+				high:-1,
+				age:-1,
+				//基础代谢率
+				bmr:-1,
+				result:'',
+			}
+		},
+		onLoad() {
+			
+			this.weight = 0;
+			this.high = 0;
+			this.age = 0;
+			
+			// console.log('gender=',getApp().globalData.gender)
+			// console.log('weight=',getApp().globalData.weight)
+			// console.log('high=',getApp().globalData.high)
+			// console.log('age=',getApp().globalData.age)
+			if(getApp().globalData.weight != undefined)
+			{
+				this.weight = getApp().globalData.weight;
+			}
+			
+			if(getApp().globalData.high != undefined)
+			{
+				this.high = getApp().globalData.high;
+			}
+
+			if(getApp().globalData.age != undefined)
+			{
+				this.age = getApp().globalData.age;
+			}
+		
+		},
+		methods: {
+			onBack: function(id,e) {
+				//uni.navigateBack()//默认delta:1
+				uni.navigateBack({
+					delta:1,//返回层数,2则上上页
+				})
+			},
+			onHelp: function(id,e) {
+				uni.navigateTo({
+					url: '/pages/bodyFatRatio/help',
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			},
+			onClick: function(id,e) {
+				
+				if(this.weight != -1 && this.high !=-1 && this.age != -1)
+				{
+					let gender = getApp().globalData.gender;
+					
+					getApp().globalData.weight = this.weight;				
+					getApp().globalData.high = this.high;					
+					getApp().globalData.age = this.age;
+					
+					if(gender == 0)
+					{
+						this.bmr = 66+(13.7*this.weight)+(5*this.high)-(6.8*this.age);
+					}
+					else
+					{
+						this.bmr = 655+(9.6*this.weight)+(1.8*this.high)-(4.7*this.age);
+					}
+					
+					this.result = '你的基础代谢率为: '+ Math.round(this.bmr);
+					
+					getApp().globalData.bmr = this.bmr;
+				}
+				else
+				{
+					switch (id)
+					{
+						case 0:
+							alert('请输入体重');
+							break;
+						
+						case 1:
+							alert('请输入身高');
+							break;
+							
+						case 2:
+							alert('请输入年龄');
+							break;
+							
+						default:
+							break;
+					}
+					
+				}
+			},
+		}
+	}
+</script>
+
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.result-area{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:30%;
+		margin: 1%;
+		
+		border-radius: 25rpx;
+		background-color: rgb(115,164,164);
+	}
+	
+	.help{
+		color: azure;
+		background-color: rgb(0,0,0);
+	}
+	
+	.input-area{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:60%;
+		margin: 1%;
+		
+		.weight{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 1%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.high{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 1%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.age{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 3%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.input-title{
+			//testing
+			// border: 1px solid rgb(255,0,0);
+		}
+		.input{
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			background: #F4F4F4;
+			border-radius: 4upx;
+			height: 70upx;
+			font-size: 28upx;
+			line-height: 70upx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #848484;
+			
+			text-align:center;
+			
+			margin: 1%;
+		}
+	}
+	
+	.confirm{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:10%;
+		height:10%;
+		margin: 1%;
+	}
+
+</style>

+ 96 - 0
pages/basalMetabolism/help.vue

@@ -0,0 +1,96 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">基础代谢率</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="block">
+				基础代谢率是指你一天躺在床上不动,但不睡觉身体维持生命所需消耗的热量
+			</view>
+			<view class="block">
+				男:66+(13.7x体重kg)+(5x身高cm)-(6.8x年龄)= BMR
+			</view>
+			<view class="block">
+				女:655+(9.6x体重kg)+(1.8x身高cm)-(4.7x年龄)= BMR
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			onBack: function(id,e) {
+				uni.navigateBack({
+					delta:1,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.block
+	{
+		margin: 2%;
+	}
+</style>

+ 270 - 0
pages/bodyFatRatio/bodyFatRatio.vue

@@ -0,0 +1,270 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">体脂率</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		
+		<view class="content">
+			
+			<text class="result-area">{{result}}</text>
+			<button class="help" @click="onHelp(0, $event)">宁哥笔记</button>
+			
+			<view class="input-area">
+				<view class="waistline">
+					<view class="input-title">腰围 : </view>
+					<input  class="input" type="number"  placeholder="请输入腰围" v-model="waistline" />
+				</view>
+				
+				<view class="weight">
+					<view class="input-title">体重 : </view>
+					<input  class="input" type="number"  placeholder="请输入体重" v-model="weight" />
+				</view>
+			</view>
+			
+			<button class="confirm" @click="onClick(0, $event)">确定</button>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				waistline:-1,
+				weight:-1,
+				result:'',
+			}
+		},
+		onLoad() {
+			this.waistline = 0;
+			this.weight = 0;
+			
+			// console.log('waistline=',getApp().globalData.waistline);
+			// console.log('weight=',getApp().globalData.weight);
+			
+			if(getApp().globalData.waistline != undefined)
+			{
+				this.waistline = getApp().globalData.waistline;
+			}
+			
+			if(getApp().globalData.weight != undefined)
+			{
+				this.weight = getApp().globalData.weight;
+			}
+		},
+		methods: {
+			onBack: function(id,e) {
+				//uni.navigateBack()//默认delta:1
+				uni.navigateBack({
+					delta:1,//返回层数,2则上上页
+				})
+			},
+			onHelp: function(id,e) {
+				uni.navigateTo({
+					url: '/pages/bodyFatRatio/help',
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			},
+			onClick: function(id,e) {
+				
+				if(this.heartRate != -1 && this.age != -1)
+				{
+					getApp().globalData.waistline = this.waistline;							
+					getApp().globalData.weight = this.weight;
+					//身体脂肪总重量(单位:千克)
+					let fatWeight = -1;
+					//体脂率=(身体脂肪总量÷体重)
+					let fatRate = -1;
+					
+					if(getApp().globalData.gender)
+					{
+						fatWeight = this.waistline - (this.weight*0.082+34.89);
+						fatRate = fatWeight/this.weight * 100;
+					}
+					else
+					{
+						fatWeight = this.waistline - (this.weight*0.082+44.74);
+						fatRate = fatWeight/this.weight * 100;
+					}
+					
+				
+					this.result = '身体脂肪总重量: '+ Math.round(fatWeight) + '千克\n' + '体脂率: '+ Math.round(fatRate)+'%';
+					
+					getApp().globalData.fatWeight = this.fatWeight;
+					getApp().globalData.fatRate = this.fatRate;
+				}
+				else
+				{
+					switch (id)
+					{
+						case 0:
+							alert('请输入体重');
+							break;
+						
+						case 1:
+							alert('请输入身高');
+							break;
+							
+						case 2:
+							alert('请输入年龄');
+							break;
+							
+						default:
+							break;
+					}
+					
+				}
+			},
+		}
+	}
+</script>
+
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.result-area{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:30%;
+		margin: 1%;
+		
+		border-radius: 25rpx;
+		background-color: rgb(115,164,164);
+	}
+	
+	.help{
+		color: azure;
+		background-color: rgb(0,0,0);
+	}
+	
+	.input-area{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:60%;
+		margin: 1%;
+		
+		.waistline{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 1%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.weight{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 3%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.input-title{
+			//testing
+			// border: 1px solid rgb(255,0,0);
+		}
+		.input{
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			background: #F4F4F4;
+			border-radius: 4upx;
+			height: 70upx;
+			font-size: 28upx;
+			line-height: 70upx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #848484;
+			
+			text-align:center;
+			
+			margin: 1%;
+		}
+	}
+	
+	.confirm{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:10%;
+		height:10%;
+		margin: 1%;
+	}
+
+</style>

+ 130 - 0
pages/bodyFatRatio/help.vue

@@ -0,0 +1,130 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">每日消耗总热量</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="block">
+				每日消耗热量计算方法
+			</view>
+			<view class="block">
+				基础代谢简称(BMR)
+			</view>
+			<view class="block">
+				<uni-table border stripe emptyText="暂无更多数据" >
+					<!-- 表头行 -->
+					<uni-tr>
+						<uni-th align="center">运动量/天</uni-th>
+						<uni-th align="center">运动表现描述</uni-th>
+						<uni-th align="left">预估消耗/天</uni-th>
+					</uni-tr>
+					<!-- 表格数据行 -->
+					<uni-tr>
+						<uni-td>久坐</uni-td>
+						<uni-td>办公室久坐没有什么运动</uni-td>
+						<uni-td>BMR x 1.2 = 消耗热量/天</uni-td>
+					</uni-tr>
+					<uni-tr>
+						<uni-td>轻度运动</uni-td>
+						<uni-td>每周轻松1-3次运动</uni-td>
+						<uni-td>BMR x 1.375= 消耗热量/天</uni-td>
+					</uni-tr>
+					<uni-tr>
+						<uni-td>中度运动</uni-td>
+						<uni-td>每周中等强度3-5次</uni-td>
+						<uni-td>BMR x 1.5 = 消耗热量/天</uni-td>
+					</uni-tr>
+					<uni-tr>
+						<uni-td>大强度运动</uni-td>
+						<uni-td>每周大强度运动5-7次以上</uni-td>
+						<uni-td>BMR x 1.725 = 消耗热量/天</uni-td>
+					</uni-tr>
+					<uni-tr>
+						<uni-td>专业运动员强度</uni-td>
+						<uni-td>大强度训练每周8次以上</uni-td>
+						<uni-td>BMR x 1.9 = 消耗热量/天</uni-td>
+					</uni-tr>
+				
+				</uni-table>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			onBack: function(id,e) {
+				uni.navigateBack({
+					delta:1,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.block
+	{
+		margin: 2%;
+	}
+</style>

+ 202 - 0
pages/dayCalorie/dayCalorie.vue

@@ -0,0 +1,202 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">每天消耗总热量</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		
+		<view class="content">
+			<text class="result-area">{{resultStr}}</text>
+			<button class="help" @click="onHelp(0, $event)">宁哥笔记</button>
+			
+			<view class="select-area">
+				<view :class="(selected != index)?'block':'block-selected'" v-for="(option,index) in optionArr" @click="onClick(index, $event)">{{option}}</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				resultStr:'',
+				optionArr:[
+					'办公室久坐没有什么运动',
+					'每周轻松1-3次运动',
+					'每周中等强度3-5次',
+					'每周大强度运动5-7次以上',
+					'大强度训练每周8次以上',
+				],
+				selected:0,
+			}
+		},
+		onLoad() {
+			if(getApp().globalData.bmr !=undefined)
+			{
+				let calorie = getApp().globalData.bmr * 1.2;
+				this.resultStr = '每天消耗的总热量: ' + Math.round(calorie);
+			}
+			else
+			{
+				uni.navigateBack({
+					delta:1,
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {
+						alert('清先测量基础代谢');
+					},
+					fail: () => {},
+					complete: () => {}
+				});
+			}
+		},
+		methods: {
+			onBack: function(id,e) {
+				//uni.navigateBack()//默认delta:1
+				uni.navigateBack({
+					delta:1,//返回层数,2则上上页
+				})
+			},
+			onHelp: function(id,e) {
+				uni.navigateTo({
+					url: '/pages/dayCalorie/help',
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			},
+			onClick: function(id,e) {
+				// console.log(id);
+				this.selected = id;
+			
+				let calorie = -1;
+				
+				switch (id){
+					case 0:
+						calorie = getApp().globalData.bmr * 1.2;
+						break;
+					
+					case 1:
+						calorie = getApp().globalData.bmr * 1.375;
+						break;
+					
+					case 2:
+						calorie = getApp().globalData.bmr * 1.5;
+						break;
+						
+					case 3:
+						calorie = getApp().globalData.bmr * 1.725;
+						break;
+						
+					case 4:
+						calorie = getApp().globalData.bmr * 1.9;
+						break;
+					default:
+						break;
+				}
+				getApp().globalData.calorie = calorie;
+				this.resultStr = '每天消耗的总热量: ' + Math.round(calorie);
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh;  
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.result-area{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:30%;
+		margin: 1%;
+		
+		border-radius: 25rpx;
+		background-color: rgb(115,164,164);
+	}
+	
+	.help{
+		color: azure;
+		background-color: rgb(0,0,0);
+	}
+	
+	.select-area{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:60%;
+		margin: 1%;
+	}
+	.block{
+		width:60%;
+		height:60%;
+		margin: 1%;
+		
+		background-color: rgb(115,164,164);
+	}
+	.block-selected{
+		width:60%;
+		height:60%;
+		margin: 1%;
+		
+		box-shadow: 3px 3px 6px 3px rgba(0, 0, 0, 1);
+		
+		background-color: rgb(115,164,164);
+	}
+</style>

+ 109 - 0
pages/dayCalorie/help.vue

@@ -0,0 +1,109 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">每日消耗总热量</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="block">
+				基础代谢率是指你一天躺在床上不动,但不睡觉身体维持生命所需消耗的热量
+			</view>
+			<view class="block">
+				最低有氧心率 = 220-年龄-静态心率x0.55+静态心率
+			</view>
+			<view class="block">
+				最高有氧心率 = 220-年龄-静态心率x0.75+静态心率
+			</view>
+			<view class="">
+				有氧简直运动注意事项:
+			</view>
+			<view class="">
+				1,在运动时心率要控制在最高和最低之间。
+			</view>
+			<view class="">
+				2,持续25分钟以上才开始脂肪供能,前5分钟是糖原供能
+			</view>
+			<view class="">
+				3,整个过程无间歇
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			onBack: function(id,e) {
+				uni.navigateBack({
+					delta:1,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.block
+	{
+		margin: 2%;
+	}
+</style>

+ 288 - 0
pages/heartRhythms/heartRhythms.vue

@@ -0,0 +1,288 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">有氧运动心率</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		
+		<view class="content">
+			<text class="result-area">{{result}}</text>
+			<button class="help" @click="onHelp(0, $event)">宁哥笔记</button>
+			
+			<view class="input-area">
+				<view class="age">
+					<view class="input-title">年龄 : </view>
+					<input  class="input" type="number"  placeholder="请输入年龄" v-model="age" />
+				</view>
+				
+				<view class="static-heart-rate">
+					<view class="input-block">
+						<view class="input-title">静态心率 : </view>
+						<input class="input" type="number"  placeholder="请输入静态心率" v-model="heartRate" />
+						<button class="heart-rate-help" @click="onClickHelp(0, $event)">?</button>
+					</view>
+					
+				</view>
+			</view>
+			
+			<button class="confirm" @click="onClick(0, $event)">确定</button>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				age:-1,
+				heartRate:-1,
+				result:'',
+			}
+		},
+		onLoad() {
+			this.heartRate = 0;
+			this.age = 0;
+			
+			// console.log('heartRate=',getApp().globalData.heartRate);
+			// console.log('age=',getApp().globalData.age);
+			
+			if(getApp().globalData.heartRate != undefined)
+			{
+				this.heartRate = getApp().globalData.heartRate;
+			}
+			
+			if(getApp().globalData.age != undefined)
+			{
+				this.age = getApp().globalData.age;
+			}
+		},
+		methods: {
+			onBack: function(id,e) {
+				//uni.navigateBack()//默认delta:1
+				uni.navigateBack({
+					delta:1,//返回层数,2则上上页
+				})
+			},
+			onHelp: function(id,e) {
+				uni.navigateTo({
+					url: '/pages/heartRhythms/help',
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			},
+			onClickHelp: function(id,e) {
+				uni.navigateTo({
+					url: '/pages/heartRhythms/staticHeartRateHelp',
+					animationType: 'slide-in-left',
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			},
+			onClick: function(id,e) {
+				
+				if(this.heartRate != -1 && this.age != -1)
+				{
+					getApp().globalData.heartRate = this.heartRate;							
+					getApp().globalData.age = this.age;
+					
+					let lowestHeartRate  = 220 - this.age-(this.heartRate*0.55)+this.heartRate;
+					let highestHeartRate = 220 - this.age-(this.heartRate*0.75)+this.heartRate;
+				
+					this.result = '你的最低有氧心率: '+ Math.round(lowestHeartRate) + '\n' + '最高有氧心率: '+ Math.round(highestHeartRate);
+					
+					getApp().globalData.lowestHeartRate = this.lowestHeartRate;
+					getApp().globalData.highestHeartRate = this.highestHeartRate;
+				}
+				else
+				{
+					switch (id)
+					{
+						case 0:
+							alert('请输入体重');
+							break;
+						
+						case 1:
+							alert('请输入身高');
+							break;
+							
+						case 2:
+							alert('请输入年龄');
+							break;
+							
+						default:
+							break;
+					}
+					
+				}
+			},
+		}
+	}
+</script>
+
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.result-area{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:30%;
+		margin: 1%;
+		
+		border-radius: 25rpx;
+		background-color: rgb(115,164,164);
+	}
+	
+	.help{
+		color: azure;
+		background-color: rgb(0,0,0);
+	}
+	
+	.input-area{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:60%;
+		height:60%;
+		margin: 1%;
+		
+		.static-heart-rate{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 1%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+			
+			.input-block
+			{
+				display: flex;
+				flex-direction: row;
+				align-items: center;
+				justify-content: center;
+				
+				width:40%;
+			}
+			.heart-rate-help
+			{
+				// position: absolute;
+				// right: 40%;
+				//testing
+				// border: 1px solid rgb(255,0,0);
+			}
+		}
+		
+		.age{
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: center;
+			
+			width:100%;
+			height:100%;
+			margin: 3%;
+			
+			border-radius: 25rpx;
+			background-color: rgb(115,164,164);
+		}
+		
+		.input-title{
+			margin-right: 1%;
+			//testing
+			// border: 1px solid rgb(255,0,0);
+		}
+		.input{
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			background: #F4F4F4;
+			border-radius: 4upx;
+			height: 70upx;
+			font-size: 28upx;
+			line-height: 70upx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #848484;
+			
+			text-align:center;
+			
+			margin: 1%;
+		}
+	}
+	
+	.confirm{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:10%;
+		height:10%;
+		margin: 1%;
+	}
+
+</style>

+ 115 - 0
pages/heartRhythms/help.vue

@@ -0,0 +1,115 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">每日消耗总热量</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="block">
+				成年女性的体脂率计算公式:
+			</view>
+			<view class="">
+				参数a=腰围(单位:厘米)x0.74;
+			</view>
+			<view class="">
+				身体脂肪总重量(单位:千克)=a-b;
+			</view>
+			<view class="">
+				体脂率=(身体脂肪总量÷体重)x100%;
+			</view>
+			<view class="block">
+				成年男性的体脂率计算公式:
+			</view>
+			<view class="">
+				参数a=腰围(单位:厘米)x0.74;
+			</view>
+			<view class="">
+				参数b=体重(单位:千克)x0.082+44.74;
+			</view>
+			<view class="">
+				身体脂肪总重量(单位:千克)=a-b;
+			</view>
+			<view class="">
+				体脂率=(身体脂肪总量÷体重)x100%;
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			onBack: function(id,e) {
+				uni.navigateBack({
+					delta:1,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.block
+	{
+		margin: 2%;
+	}
+</style>

+ 93 - 0
pages/heartRhythms/staticHeartRateHelp.vue

@@ -0,0 +1,93 @@
+<template>
+	<view class="container">
+		<view class="navigation-bar">静态心率测量</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="block">
+				静态心率测量方法
+			</view>
+			<view class="block">
+				早晨起床做起来第一件事,掐脉搏一分钟的心跳次数 = 你的静态心率
+			</view>
+		</view>	
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			onBack: function(id,e) {
+				uni.navigateBack({
+					delta:1,
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 100%;
+		height: 10%;
+		
+		font-weight: 700;
+		color: white;
+		
+		background-color: rgb(115,164,164);
+	}
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 3%;
+		left: 1%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.block
+	{
+		margin: 2%;
+	}
+</style>

+ 327 - 0
pages/home/home.vue

@@ -0,0 +1,327 @@
+<template>
+ 
+	<view class="container">
+		<view class="navigation-bar">燃脂功能训练帮手</view>
+		<view class="back" @click="onBack(0, $event)">
+			<image src="/static/backArrow.png" mode="aspectFit" style="width:100%"></image>
+		</view>
+		<view class="content">
+			<view class="row">
+				<view class="block" style="background-color: #EBF3F2;">
+					<view class="item-bg" style="background-color: #B6D4CF ;">
+						<view class="item" style="background-color: #B6D4CF ;" @click="onClick(0, $event)">
+							<image class="item-logo" src="/static/home/basalMetabolismLogo.png" mode="aspectFit"></image>
+							<view class="item-title" style="color: #4D857C;">基础代谢率</view>
+							<image class="item-unlock-logo" src="/static/home/basalMetabolismUnlock.png" mode="aspectFit"></image>
+						</view>
+					</view>
+					<view class="label" style="background-color: #D8E8E5  ; color: #4D857C;">基础代谢: {{bmr}}</view>
+				</view>
+				<view class="block" style="background-color: #FEECEC;">
+					<view class="item-bg" style="background-color: #FABAB9;">
+						<view class="item" style="background-color: #FABAB9;" @click="onClick(1, $event)">
+							<image class="item-logo" src="/static/home/dayCalorieLogo.png" mode="aspectFit"></image>
+							<view class="item-title" style="color: #C65E5C;">每天消耗总热量</view>
+							<image class="item-unlock-logo" src="/static/home/dayCalorieUnlock.png" mode="aspectFit"></image>
+						</view>
+					</view>
+					<view class="label" style="background-color: #FCD9D9 ; color: #C65E5C;">每日消耗总热量: {{calorie}}</view>
+				</view>
+			</view>
+			<view class="row">
+				<view class="block" style="background-color: #FCF1EB;">
+					<view class="item-bg" style="background-color: #F2CDB7;">
+						<view class="item" style="background-color: #F2CDB7;" @click="onClick(2, $event)">
+							<image class="item-logo" src="/static/home/heartRhythmsLogo.png" mode="aspectFit"></image>
+							<view class="item-title" style="color: #BE7F59;">有氧运动心律</view>
+							<image class="item-unlock-logo" src="/static/home/heartRhythmsUnlock.png" mode="aspectFit"></image>
+						</view>
+					</view>
+					<view class="label" style="background-color: #F8E3D8; color: #BE7F59;">最低有氧心率:{{lowestHeartRate}}</view>
+					<view class="label" style="background-color: #F8E3D8; color: #BE7F59;">最高有氧心率:{{highestHeartRate}}</view>
+				</view>
+				<view class="block" style="background-color: #F0F0E9;">
+					<view class="item-bg" style="background-color: #C9C7AF;">
+						<view class="item" style="background-color: #C9C7AF;" @click="onClick(3, $event)">
+							<image class="item-logo" src="/static/home/bodyFatRatioLogo.png" mode="aspectFit"></image>
+							<view class="item-title" style="color: #7B784E;">体脂率</view>
+							<image class="item-unlock-logo" src="/static/home/bodyFatRatioUnlock.png" mode="aspectFit"></image>
+						</view>
+					</view>
+					<view class="label" style="background-color: #E2E1D3; color: #7B784E;">脂肪总重量:{{fatWeight}}</view>
+					<view class="label" style="background-color: #E2E1D3; color: #7B784E;">体脂率:{{fatRate}}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				gender:0,
+				weight:0,
+				high:0,
+				age:0,
+				waist:0,
+				bmr:0,
+				calorie:0,
+				heartRate:0,
+				lowestHeartRate:0,
+				highestHeartRate:0,
+				fatWeight:0,
+				fatRate:0,
+			}
+		},
+		onShow() {
+			if(getApp().globalData.bmr != undefined)
+			{
+				this.bmr = Math.round(getApp().globalData.bmr);
+			}
+			
+			if(getApp().globalData.calorie != undefined)
+			{
+				this.calorie = Math.round(getApp().globalData.calorie);
+			}
+			
+			if(getApp().globalData.lowestHeartRate != undefined)
+			{
+				this.lowestHeartRate = Math.round(getApp().globalData.lowestHeartRate);
+			}
+			if(getApp().globalData.highestHeartRate != undefined)
+			{
+				this.highestHeartRate = Math.round(getApp().globalData.highestHeartRate);
+			}
+			
+			if(getApp().globalData.fatWeight != undefined)
+			{
+				this.fatWeight = Math.round(getApp().globalData.fatWeight);
+			}
+			if(getApp().globalData.fatRate != undefined)
+			{
+				this.fatRate = Math.round(getApp().globalData.fatRate);
+			}
+		},
+		methods: {
+			onBack: function(id,e) {
+				//uni.navigateBack()//默认delta:1
+				uni.navigateBack({
+					delta:1,//返回层数,2则上上页
+				})
+			},
+			onClick: function(id,e) {
+				// console.log(id); // 1
+				// console.log(e); // 事件对象
+		
+				switch (id){
+					case 0:
+					{
+						uni.navigateTo({
+							url: "/pages/basalMetabolism/basalMetabolism",
+						});
+					}
+						break;
+					case 1:
+					{
+						uni.navigateTo({
+							url: "/pages/dayCalorie/dayCalorie",
+						});
+					}
+						break;
+					case 2:
+					{
+						uni.navigateTo({
+							url: "/pages/heartRhythms/heartRhythms",
+						});
+					}
+						break;
+					case 3:
+					{
+						uni.navigateTo({
+							url: "/pages/bodyFatRatio/bodyFatRatio",
+						});
+					}
+						break;
+						
+					default:
+						break;
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+		
+		// 测试
+		// border: 1px solid rgb(255,0,0);
+		// box-shadow: 3px 0px 6px 0px rgba(0, 0, 0, 1);
+		// border-bottom: 1px solid #DDDDDD;
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 6%;
+		
+		font-weight: 700;
+		color: black;
+		font-size: 75rpx;
+		
+		 background-color: white;
+		// testing
+		// border: 1px solid rgb(255,0,0);
+		// background-color: rgb(253,222,157);
+	}
+	
+	.back{
+		position: absolute;
+		
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width: 2%;
+		height: 2%;
+		top: 2.5%;
+		left: 3%;
+		//testing
+		// border: 1px solid rgb(255,0,0);
+	}
+	.content{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+		// border: 3px solid rgb(144,238,144);
+	}
+	
+	.row{
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 50%;
+
+		// 测试
+		// margin: 10rpx;
+		// border: 3px solid rgb(144,238,144);
+	}
+	
+	.block{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height:100%;
+	}
+	
+	.item-bg{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:90%;
+		height:70%;
+		margin: 5%;
+	}	
+	
+	.item{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		height: 80%;
+		width: 80%;
+		
+		border: 3px solid #FFFFFF;
+		// 测试
+		// margin: 10rpx;
+		// border: 1px solid rgb(0,0,255);
+	}
+	
+	.item-logo
+	{
+		z-index: 4;
+		height: 30%;
+		width: 30%;
+		// margin: 1%;
+	}
+	
+	.item-title
+	{
+		font-size: 100rpx;
+		font-weight: 700;
+		margin: 2%;
+	}
+	
+	.item-unlock-logo
+	{
+		height: 40%;
+		width: 40%;
+	}
+	
+	.label
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		font-size: 80rpx;
+		font-weight: 700;
+		
+		width:90%;
+		height:10%;
+		margin: 5%;
+		
+		// 测试
+		// margin: 10rpx;
+		// border: 1px solid rgb(0,0,255);
+	}
+	
+	/* 解决⼩程序和app滚动条的问题 */
+	/* #ifdef MP-WEIXIN || APP-PLUS */
+	::-webkit-scrollbar {
+	display: none;
+	width: 0 !important;
+	height: 0 !important;
+	-webkit-appearance: none;
+	background: transparent;
+	color: transparent;
+	}
+	/* #endif */
+	/* 解决H5 的问题 */
+	/* #ifdef H5 */
+	uni-scroll-view .uni-scroll-view::-webkit-scrollbar {
+	/* 隐藏滚动条,但依旧具备可以滚动的功能 */
+	display: none;
+	width: 0 !important;
+	height: 0 !important;
+	-webkit-appearance: none;
+	background: transparent;
+	color: transparent;
+	}
+	/* #endif */
+</style>

+ 45 - 0
pages/index/index.vue

@@ -0,0 +1,45 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/logo.png"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+			// console.log('1111111111')
+			// 关闭当前页面,跳转到应用内的某个页面。
+			uni.redirectTo({
+				url: "/pages/login/login",
+			});
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss">
+
+.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	}
+	
+</style>

+ 163 - 0
pages/login/login.vue

@@ -0,0 +1,163 @@
+<template>
+	<view class="container">
+		
+		<view class="navigation-bar">燃脂功能训练帮手</view>
+		<view class="bg">
+			<image class="bg-img" src="../../static/login/Bg.png" mode="aspectFit"></image>
+			
+			<view class="boy">
+				<image class="logo" src="/static/login/Beard.png" mode="aspectFit" @click="onClick(0, $event)"></image>
+				<view class="boy-title">我是男生</view>
+			</view>
+			<view class="girl" >
+				<image class="logo" src="/static/login/Lips.png" mode="aspectFit" @click="onClick(1, $event)"></image>
+				<view class="girl-title">我是女生</view>
+			</view>
+		</view>
+		<!-- <view class="gender">
+			<view class="boy" @click="onClick(0, $event)">
+				<image class="logo" src="/static/login/Beard.png" mode="aspectFit"></image>
+			</view>
+			<view class="girl" @click="onClick(1, $event)">
+				<image class="logo" src="/static/login/Lips.png" mode="aspectFit"></image>
+			</view>
+		</view> -->
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+
+			}
+		},
+		onLoad() {
+	
+		},
+		methods: {
+			onClick: function(id,e) {
+				getApp().globalData.gender = id;
+			
+				uni.navigateTo({
+					url: '/pages/home/home',
+					animationType: 'slide-in-left',
+					/*
+					slide-in-right 右侧
+					slide-in-left 左侧
+					slide-in-top 顶部
+					slide-in-bottom 底部
+					pop-in 新窗体从左侧进入,且老窗体被挤压而出
+					fade-in 新窗体从透明到不透明逐渐显示
+					zoom-out 新窗体从小到大缩放显示
+					zoom-fade-out 新窗体从小到大逐渐放大并且从透明到不透明逐渐显示
+					none 无动画
+					*/
+					animationDuration: 2000,
+					success: res => {},
+					fail: () => {},
+					complete: () => {}
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.container {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100vh; 
+		
+		// testing
+		//border: 1px solid rgb(0,0,0);
+	}
+	
+	.navigation-bar
+	{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 6%;
+		
+		font-weight: 700;
+		color: black;
+		font-size: 75rpx;
+		
+		 background-color: white;
+		// testing
+		// border: 1px solid rgb(255,0,0);
+		// background-color: rgb(253,222,157);
+	}
+	
+	.bg
+	{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:100%;
+		height: 100%;
+		
+		.bg-img{
+			position: absolute;
+			width:100%;
+			height: 100%;
+			top:0;
+			left:0;
+			z-index: 0;
+		}
+		
+		// testing
+		// border: 13px solid rgb(253,222,157);
+		// background-color: rgb(253,222,157);
+	}
+
+	.boy{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:50%;
+		height:100%;
+		
+		z-index: 1;
+		// 测试
+		// margin: 10rpx;
+		// border: 3px solid rgb(144,238,144);
+	}
+	.girl{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		
+		width:50%;
+		height:100%;
+	}
+	.logo
+	{
+		margin: 75rpx;
+	}
+	.boy-title {
+		color: #4D857C;
+		font-weight: 700;
+		font-size: 95rpx;
+		z-index: 1;
+	}
+	
+	.girl-title {
+		color: #B35D5C;
+		font-weight: 700;
+		font-size: 95rpx;
+		z-index: 1;
+	}
+</style>

+ 8 - 0
pages/register/register.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style lang="scss">
+</style>

二進制
static/backArrow.png


二進制
static/home/basalMetabolismLogo.png


二進制
static/home/basalMetabolismUnlock.png


二進制
static/home/bodyFatRatioLogo.png


二進制
static/home/bodyFatRatioUnlock.png


二進制
static/home/dayCalorieLogo.png


二進制
static/home/dayCalorieUnlock.png


二進制
static/home/heartRhythmsLogo.png


二進制
static/home/heartRhythmsUnlock.png


二進制
static/login/Beard.png


二進制
static/login/Bg.png


二進制
static/login/Lips.png


+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;