فهرست منبع

Signed-off-by: zhaobao <528046418@qq.com>

zhaobao 2 سال پیش
والد
کامیت
9f5c07a546
100فایلهای تغییر یافته به همراه844 افزوده شده و 652 حذف شده
  1. 12 5
      api/user.js
  2. 3 2
      config/index.js
  3. 6 1
      libs/request.js
  4. 40 4
      manifest.json
  5. 21 3
      pages.json
  6. 48 151
      pages/history/detail/detail.vue
  7. 15 44
      pages/history/history.vue
  8. 240 0
      pages/index/detail/detail.vue
  9. 110 0
      pages/index/form/form.vue
  10. 204 421
      pages/index/index.vue
  11. 5 4
      pages/login/index.vue
  12. 16 17
      pages/myCenter/myCenter.vue
  13. BIN
      static/index/add.png
  14. BIN
      static/index/gtt.png
  15. BIN
      static/index/gttCk.png
  16. BIN
      static/index/jsdz.png
  17. BIN
      static/index/jsdzCk.png
  18. BIN
      static/index/pqdq.png
  19. BIN
      static/index/pqdqCk.png
  20. BIN
      static/index/tqq.png
  21. BIN
      static/index/tqqCk.png
  22. BIN
      static/index/ty.png
  23. BIN
      static/index/tyCk.png
  24. BIN
      static/index/ytxs.png
  25. BIN
      static/index/ytxsCk.png
  26. BIN
      static/index/ywqz.png
  27. BIN
      static/index/ywqzCk.png
  28. BIN
      static/index/zqdq.png
  29. BIN
      static/index/zqdqCk.png
  30. BIN
      unpackage/cache/apk/__UNI__C6FF24C_cm.apk
  31. 1 0
      unpackage/cache/apk/apkurl
  32. 0 0
      unpackage/cache/apk/cmManifestCache.json
  33. 3 0
      unpackage/cache/certdata
  34. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-hdpi.png
  35. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xhdpi.png
  36. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xxhdpi.png
  37. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xxxhdpi.png
  38. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappchooselocation.js
  39. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/__uniapperror.png
  40. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappes6.js
  41. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappopenlocation.js
  42. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniapppicker.js
  43. 6 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappquill.js
  44. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappquillimageresize.js
  45. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappscan.js
  46. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappsuccess.png
  47. 25 0
      unpackage/cache/wgt/__UNI__C6FF24C/__uniappview.html
  48. 8 0
      unpackage/cache/wgt/__UNI__C6FF24C/app-config-service.js
  49. 1 0
      unpackage/cache/wgt/__UNI__C6FF24C/app-config.js
  50. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/app-service.js
  51. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/app-view.js
  52. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/manifest.json
  53. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/center/bg.png
  54. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/center/bgmask.png
  55. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/components/avatar.png
  56. 20 0
      unpackage/cache/wgt/__UNI__C6FF24C/static/customicons.css
  57. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/customicons.ttf
  58. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/history/camera.png
  59. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/index/add.png
  60. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/index/sportGradeBg.png
  61. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/history.png
  62. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/historyEd.png
  63. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/index.png
  64. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/indexEd.png
  65. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/myCenter.png
  66. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/myCenterEd.png
  67. BIN
      unpackage/cache/wgt/__UNI__C6FF24C/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
  68. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/view.css
  69. 0 0
      unpackage/cache/wgt/__UNI__C6FF24C/view.umd.min.js
  70. 0 0
      unpackage/dist/build/.automator/app-plus/.automator.json
  71. 0 0
      unpackage/dist/build/app-plus/__uniappchooselocation.js
  72. BIN
      unpackage/dist/build/app-plus/__uniapperror.png
  73. 0 0
      unpackage/dist/build/app-plus/__uniappes6.js
  74. 0 0
      unpackage/dist/build/app-plus/__uniappopenlocation.js
  75. 0 0
      unpackage/dist/build/app-plus/__uniapppicker.js
  76. 6 0
      unpackage/dist/build/app-plus/__uniappquill.js
  77. 0 0
      unpackage/dist/build/app-plus/__uniappquillimageresize.js
  78. 0 0
      unpackage/dist/build/app-plus/__uniappscan.js
  79. BIN
      unpackage/dist/build/app-plus/__uniappsuccess.png
  80. 25 0
      unpackage/dist/build/app-plus/__uniappview.html
  81. 8 0
      unpackage/dist/build/app-plus/app-config-service.js
  82. 1 0
      unpackage/dist/build/app-plus/app-config.js
  83. 0 0
      unpackage/dist/build/app-plus/app-service.js
  84. 0 0
      unpackage/dist/build/app-plus/app-view.js
  85. 0 0
      unpackage/dist/build/app-plus/manifest.json
  86. BIN
      unpackage/dist/build/app-plus/static/center/bg.png
  87. BIN
      unpackage/dist/build/app-plus/static/center/bgmask.png
  88. BIN
      unpackage/dist/build/app-plus/static/components/avatar.png
  89. 20 0
      unpackage/dist/build/app-plus/static/customicons.css
  90. BIN
      unpackage/dist/build/app-plus/static/customicons.ttf
  91. BIN
      unpackage/dist/build/app-plus/static/history/camera.png
  92. BIN
      unpackage/dist/build/app-plus/static/index/add.png
  93. BIN
      unpackage/dist/build/app-plus/static/index/sportGradeBg.png
  94. BIN
      unpackage/dist/build/app-plus/static/tabbar/history.png
  95. BIN
      unpackage/dist/build/app-plus/static/tabbar/historyEd.png
  96. BIN
      unpackage/dist/build/app-plus/static/tabbar/index.png
  97. BIN
      unpackage/dist/build/app-plus/static/tabbar/indexEd.png
  98. BIN
      unpackage/dist/build/app-plus/static/tabbar/myCenter.png
  99. BIN
      unpackage/dist/build/app-plus/static/tabbar/myCenterEd.png
  100. BIN
      unpackage/dist/build/app-plus/uni_modules/uni-icons/components/uni-icons/uniicons.ttf

+ 12 - 5
api/user.js

@@ -11,16 +11,23 @@ export function logout() {
     method: 'post'
   })
 }
-export function updateSportVide(data) {
+export function updateMemory(data) {
 	return request({
-		url: '/user/updateSportVideo',
-		method:"post",
+		url: '/memasst/update',
+		method:"POST",
 		data
 	})
 }
-export function getSportGradeByPage(data) {
+export function createMemory(data) {
 	return request({
-		url: '/user/getSportGradeByPage',
+		url: '/memasst/add',
+		method: 'post',
+		data
+	})
+}
+export function getMemorylistByPage(data) {
+	return request({
+		url: '/memasst/page',
 		data
 	})
 }

+ 3 - 2
config/index.js

@@ -1,7 +1,8 @@
 export default {
     base: {
-      dev: 'https://goo.anquanzhuli.com',
-      pro: 'https://goo.anquanzhuli.com'
+      // dev: 'http://192.168.3.5:1891',
+	  dev: 'http://113.141.93.143:1891',
+      pro: 'http://113.141.93.143:1891'
     },
 	TokenKey:"Authorization",
 	uploadFile:{//上传图片地址

+ 6 - 1
libs/request.js

@@ -26,7 +26,7 @@ export async function request(parmas) {
 								mask: true,
 								icon: "none",
 								complete() {
-									uni.navigateTo({
+									uni.reLaunch({
 										url: '/pages/login/index'
 									})
 								}
@@ -79,5 +79,10 @@ function formatRequestBody(parmas) {
 		method,
 		dataType
 	};
+	if(!getToken()){
+		uni.reLaunch({
+			url: '/pages/login/index'
+		})
+	}
 	return requestBody;
 };

+ 40 - 4
manifest.json

@@ -1,6 +1,6 @@
 {
-    "name" : "motor-scores-app",
-    "appid" : "__UNI__F80609D",
+    "name" : "科学记忆",
+    "appid" : "__UNI__C6FF24C",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",
@@ -40,9 +40,45 @@
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ]
             },
-            "ios" : {},
+            "ios" : {
+                "dSYMs" : false
+            },
             /* ios打包配置 */
-            "sdkConfigs" : {}
+            "sdkConfigs" : {
+                "ad" : {}
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
+            }
         }
     },
     /* SDK配置 */

+ 21 - 3
pages.json

@@ -10,7 +10,7 @@
 		"path" : "pages/history/history",
 		"style" :                                                                                    
 		{
-			"navigationBarTitleText": "历史",
+			"navigationBarTitleText": "数据",
 			"navigationBarBackgroundColor": "#DEEDFB",
 			"enablePullDownRefresh": false
 		}
@@ -31,7 +31,7 @@
 			"path" : "pages/history/detail/detail",
 			"style" :                                                                                    
 			{
-				"navigationBarTitleText": "运动详情",
+				"navigationBarTitleText": "数据详情",
 				"navigationBarBackgroundColor": "#3D90F4",
 				"enablePullDownRefresh": false
 			}
@@ -70,6 +70,24 @@
 		    }
 		    
 		}
+        ,{
+            "path" : "pages/index/form/form",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "新增项目",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/detail/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "记忆详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
@@ -94,7 +112,7 @@
 			"pagePath": "pages/history/history",
 			"iconPath": "static/tabbar/history.png",
 			"selectedIconPath": "static/tabbar/historyEd.png",
-			"text": "历史"
+			"text": "数据"
 		}, {
 			"pagePath": "pages/myCenter/myCenter",
 			"iconPath": "static/tabbar/myCenter.png",

+ 48 - 151
pages/history/detail/detail.vue

@@ -1,65 +1,62 @@
 <template>
 	<view class="wrap">
 		<div class="preview-conatiner">
-			<view class="title">视频详情</view>
-			<view class="preview">
-				<video v-if="result.sportVedioPath" id="video" :src="result.sportVedioPath" @error="videoErrorCallback" controls></video>
-				<uni-icons color="#AEAEAE" type="videocam-filled" size="70" v-else></uni-icons>
-			</view>			
+			<view class="title">{{viewData.taskTitle}}</view>		
 		</div>
 		<view class="content">				
 			<view class="result">
-				<view class="title">识别结果</view>
+				<view class="title">
+					<text>内容</text>
+				</view>
 				<view class="result-conatiner">
-					<h3>{{!isEmpty(result.sportGrade)?'':'正在评分中请稍后重试'}}</h3>
-					<view class="collapse-item-content" v-if="!isEmpty(result.sportGrade)">
-						<div class="sportGrade-card">
-							<div class="sportGrade">
-								<text>{{result.sportGrade}}</text>
-								<text class="util">分</text>
-							</div>
-							<view class="text">{{result.sportSuggestion}}</view>							
-						</div>
-						<view class="text" >
-							<view class="text-item" v-for="(item,key) in formateSportRetReport(result.sportRetReport)" :key="key">
-								<view class="explain-title">{{item.explain}}</view>
-								<video class="sportVideo" :src="item.url"></video>									
-							</view>
-						</view>
-					</view>
+					<span class="tag" v-for="(item,key) in viewData.taskContent" :key="key" >{{item.text}}</span>
 				</view>
-			</view>			
+			</view>		
 		</view>
 	</view>
 </template>
 
 <script>
+	import {updateMemory} from '@/api/user.js'
 	export default{
 		data(){
 			return{
-				result:{
-					sportGrade:undefined,
-					sportSuggestion:"",
-					sportRetReport:[]
-				}
+				readSrc:"",
+				viewData:{
+					taskTitle:"",
+					taskContent:[]	
+				},
+				formData:{}
 			}
 		},
 		onShow() {
 			let info=uni.getStorageSync('detail-info')
-			this.result=info
+			this.viewData=info
+			let taskContentNew=[]
+			let items=info.taskContent.split(/[\s\n]/).filter(item=>item!=="");
+			items=items.map((item,index)=>{
+				return {
+					text: item,
+					value: index,
+					checked:0
+				}
+			})
+			if(!this.isEmpty(info.taskContentNew)){
+				taskContentNew=info.taskContentNew.split(/[\s\n]/).filter(item=>item!=="");
+				taskContentNew=taskContentNew.map((item,index)=>{
+					return {
+						text: item,
+						value: index,
+						checked:1
+					}
+				})				
+			}
+			this.viewData.taskContent=items.concat(taskContentNew)
 		},
 		onUnload() {
 			uni.removeStorageSync('detail-info')
 		},
 		methods:{
-			formateSportRetReport(items){
-				try{
-				  if(this.isEmpty(items)) return []
-				  return JSON.parse(items)					
-				}catch(e){
-					return []
-				}
-			},
 			isEmpty(val){
 				if(val!=="undefined"&&val!==undefined&&val!==""&&val!==null){
 					return false
@@ -100,125 +97,25 @@
 			top: 8rpx;
 		}
 	}	
-	.preview{
-		width: 670rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		background-color: #ccc;
-		height: 300rpx;
-		margin: 0 auto;
-		background:#E8E8E8;
-		opacity: 1;
-		border-radius: 20rpx;
-		#video{
-			width:750rpx;
-			height: 300rpx;
-			display: block;
-			border-radius: 20rpx;
-		}		
-	}
 	.content{
 		padding: 10rpx;
 		margin-top: 24rpx;
-		.upload-bt{
-			width: 446rpx;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: 28rpx;
-			color: #fff;
-			background-color: #409eff;
-			border-color: #409eff;
-			text-align: center;
-			margin: 0 auto;
-			border-radius: 42rpx;
-		}	
-		.search-bt-container{
-			padding: 24rpx 0 42rpx 0;
+		::v-deep .uni-forms-item__content{
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
 		}
-		.search-bt{
-			width: 446rpx;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: 28rpx;
-			color: #fff;
-			background-color: #ED834A;
-			border-color: #ED834A;
-			text-align: center;
-			margin: 0 auto;
-			display: block;
-			border-radius: 42rpx;
+		.title{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
 		}
-		.result{
-			.sportGrade-card{
-				&{
-					width: 670rpx;
-					background-image: url('/static/index/sportGradeBg.png');
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
-					margin: 0 auto 40rpx;
-				}
-				.sportGrade{
-					font-size: 120rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					line-height: 168rpx;
-					color: #FFFFFF;
-					text-align: center;
-					.util{
-						font-size: 32rpx;
-						font-family: PingFang SC;
-						font-weight: bold;
-						line-height: 44rpx;
-						color: #FFFFFF;					
-					}							
-				}	
-				.text{
-					width: 94%;
-					min-height: 40rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: 400;
-					line-height: 40rpx;
-					color: #FFFFFF;		
-					text-align: center;
-					// white-space:nowrap;
-					// overflow:hidden;
-					// text-overflow:ellipsis;
-					margin: 0 auto;
-					padding-bottom: 20rpx;
-				}
-			}
-			.text-item{
-				padding-bottom: 10px;
-				.explain-title{
-					height: 40rpx;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					line-height: 40rpx;
-					color: #333333;
-					padding:0 0 24rpx 20rpx;
-					position: relative;
-					&::after{
-						width: 12rpx;
-						height: 12rpx;
-						background:#2A83EF;
-						border-radius: 50%;				
-						content: "";
-						display: block;
-						position: absolute;
-						left: 0;
-						top: 16rpx;
-					}					
-				}
-				.sportVideo{
-					width:100%;
-					height: 293rpx;
-					display: block;
-					border-radius: 20rpx;
-				}
-			}
+		.tag{
+			padding: 8rpx 20rpx;
+			margin:10rpx ;
+			background-color: #2A83EF;
+			color: #fff;
+			border-radius: 5rpx;
 		}
 	}	
 }

+ 15 - 44
pages/history/history.vue

@@ -2,27 +2,16 @@
 	<view class="history-container">
 		<view class="item-list">
 			<view class="item" v-for="(item,index) in items" :key="index">
-				<view class="time">{{formatTime(item.createDate)}}</view>
+				<view class="time">{{formatTime(item.expectedFinishDate)}}</view>
 				<div class="item-cont" @click="linkTo(item)">
-					<view class="logo">
-						<img :src="formatImage(item.sportVedioPath)" v-if="item.sportVedioPath" >
-						<uni-icons type="videocam" size="30" v-else></uni-icons>
-					</view>
 					<view class="center">
 						<view class="sportType">
-							<text>{{formatSportType(item.sportType)}}</text>
-							<view class="camera-box" @click.stop="onClick(item)">
-								<image class="camera" src="/static/history/camera.png" ></image>
-							</view>
+							<text>{{item.taskTitle}}</text>
 						</view>
 					</view>
-					<view class="rt">
-						<text class="name">评分:</text>
-						<template>
-							<text class="score" v-if="item.sportGrade">{{item.sportGrade}}</text>
-							<text class="score" v-else>--</text>
-						</template>
-					</view>				
+<!-- 					<view class="rt">
+						<text class="name">{{item.taskContent}}</text>
+					</view>	 -->			
 				</div>
 			</view>
 		</view>
@@ -38,17 +27,13 @@
 				</view>
 			</template>
 		</template>
-		<uni-popup ref="video-popup" type="center" :animation="false" is-mask-click>
-			<video id="video" :src="sportVedioPath" controls></video>
-		</uni-popup>
-		<getPhone ref="getPhone" v-if="!isLogin" showByPlatform />
 	</view>
 </template>
 
 <script>
 	import config from "@/config/index.js"
 	const baseUrl = process.env.NODE_ENV === 'development' ? config.base.dev : config.base.pro;
-	import {getSportGradeByPage,getSportGradeById} from '@/api/user.js'
+	import {getMemorylistByPage,getDataById} from '@/api/user.js'
 	import getPhone from '@/components/getPhone.vue'
 	export default {
 		data() {
@@ -67,7 +52,7 @@
 			getPhone
 		},
 		onShow() {
-			this.getSportGrade()
+			this.getData()
 			this.init()
 		},
 		methods: {
@@ -82,43 +67,29 @@
 					this.isLogin=true
 				}			
 			},			
-			getSportGrade(){
+			getData(){
 				let page=this.page;
 				let limit=this.limit;
-				const accountName=uni.getStorageSync('phone')
-				if(!accountName){
-					this.isLogin=false
-					return
-				}else{
-					this.isLogin=true
-				}
-				getSportGradeByPage({
-					accountName,
+				let accountId=uni.getStorageSync('accountId')				
+				getMemorylistByPage({
+					accountId,
 					page, limit
 				}).then((res)=>{
-					this.items=res.data
-					this.total=res.total;
+					console.log({res})
+					this.items=res.data.list
+					this.total=res.data.totalCount;
 				})
 			},
 			init(){
-				if(this.sportVedioPath){
-					this.sportVedioPath="";
-					this.$refs['video-popup'].close()
-				}
 				this.items=[]
 				this.total=0
 				this.limit=15
 				this.page=1
-				// this.initPhoneModal()
 			},
 			onClick(item){
 				let gradeId=item.gradeId
 				let sportVedioPath=item.sportVedioPath;
 				this.sportVedioPath=sportVedioPath
-				if(this.sportVedioPath){
-					this.$refs['video-popup'].open()
-				}
-				return
 			}
 			,formatTime(date) {
 			  if (!date) return null
@@ -154,7 +125,7 @@
 			},			
 			changePageNumber({type,current}){
 				this.page=current
-				this.getSportGrade()
+				this.getData()
 			},
 			linkTo(item){
 				uni.setStorageSync('detail-info',item)

+ 240 - 0
pages/index/detail/detail.vue

@@ -0,0 +1,240 @@
+<template>
+	<view class="wrap">
+		<div class="preview-conatiner">
+			<view class="title">{{viewData.taskTitle}}</view>		
+		</div>
+		<view class="content">				
+			<view class="result">
+				<view class="title">
+					<text>内容</text>
+					<button @click="read" class="submit-bt read">朗读</button>
+				</view>
+				<view class="result-conatiner">
+					<uni-forms ref="form" :modelValue="formData" :label-width="90">
+						<uni-forms-item :label="item.text" v-for="(item,key) in viewData.taskContent" :key="key" required >
+							<uni-data-checkbox v-model="item.checked" :localdata="range"></uni-data-checkbox>
+						</uni-forms-item>
+						<uni-forms-item>
+							<button @click="submitForm" class="submit-bt">提交</button>							
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+			</view>		
+		</view>
+	</view>
+</template>
+
+<script>
+	import {updateMemory} from '@/api/user.js'
+	export default{
+		data(){
+			return{
+				readSrc:"",
+				viewData:{
+					taskTitle:"",
+					taskContent:[]	
+				},
+				range: [{
+						"value": 0,
+						"text": "正确"
+					},
+					{
+						"value": 1,
+						"text": "错误"
+					}
+				],
+				formData:{}
+			}
+		},
+		onShow() {
+			let info=uni.getStorageSync('index-detail-info')
+			this.viewData=info
+			let taskContentNew=[]
+			let items=info.taskContent.split(/[\s\n]/).filter(item=>item!=="");
+			items=items.map((item,index)=>{
+				return {
+					text: item,
+					value: index,
+					checked:0
+				}
+			})
+			if(!this.isEmpty(info.taskContentNew)){
+				taskContentNew=info.taskContentNew.split(/[\s\n]/).filter(item=>item!=="");
+				taskContentNew=taskContentNew.map((item,index)=>{
+					return {
+						text: item,
+						value: index,
+						checked:1
+					}
+				})				
+			}
+			this.viewData.taskContent=items.concat(taskContentNew)
+		},
+		created() {
+			this.getTTStoken()
+		},
+		onUnload() {
+			uni.removeStorageSync('index-detail-info')
+		},
+		methods:{
+			submitForm(){
+				let right=this.viewData.taskContent
+							  .filter(item=>item.checked==0)
+							  .map(item=>item.text)
+							  .join(" ")
+				let error=this.viewData.taskContent
+							  .filter(item=>item.checked==1)
+							  .map(item=>item.text)
+							  .join(" ")
+				updateMemory({
+				  "taskId": this.viewData.taskId,
+				  "accountId":  this.viewData.accountId,
+				  "taskTitle":  this.viewData.taskTitle,
+				  "taskContent": right,
+				  "expectedFinishDate": this.viewData.expectedFinishDate,
+				  "taskPhase": this.viewData.taskPhase,
+				  "taskContentNew": error					
+				}).then(()=>{
+						uni.showToast({
+							title:"提交成功!",
+							icon:"none"
+						})	
+						setTimeout(()=>{
+							uni.switchTab({
+								url:'/pages/index/index'
+							})	
+						},1000)
+				})			
+			},
+			async read(){
+			  let taskContent=this.viewData.taskContent
+			  let time=2;
+			  for(let i=0;i<taskContent.length;i++){
+				await this.playAudio(this.getreadSrc(taskContent[i].text))
+				await this.playAudio(this.getreadSrc(taskContent[i].text))
+				await this.playAudio(this.getreadSrc(taskContent[i].text))
+			  }
+			},
+			getreadSrc(ttsText){
+				let cuid="hyy-"+(new Date().getTime());
+				let access_token=this.tts_token
+				let readUrl=`https://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=${cuid}&tok=${access_token}&vol=9&per=0&spd=5&pit=5&aue=3&tex=${ttsText}`;		
+				return readUrl;
+			},
+			playAudio(src,sleep=3000){
+				return new Promise((resolve, reject)=>{
+					var innerAudioContext = uni.createInnerAudioContext();
+					innerAudioContext.autoplay = true;
+					innerAudioContext.src = src;
+					innerAudioContext.onPlay(() => {
+					  console.log('开始播放');
+					});
+					innerAudioContext.onError((res) => {
+						uni.showToast({
+							title:"播放异常!"
+						})
+					});
+					innerAudioContext.onEnded(()=>{
+						setTimeout(()=>{
+							innerAudioContext=null
+							resolve()
+						},sleep)
+					})					
+				})
+			},
+			async getTTStoken() {
+			  let tts_token=uni.getStorageSync('tts-token')
+			  if(this.isEmpty(tts_token)||tts_token&&this.detectionToken(tts_token.time)){
+					var [err, res] = await uni.request({
+					  url: "http://back.haiyaya.club:8083/hyy/GetAccessToken",
+					});	 
+					 uni.setStorageSync('tts-token',{
+						 token:res.data.refresh_token,
+						 time:new Date().getTime()
+					 })
+					 tts_token=res.data.refresh_token
+			  }else{
+				  tts_token=tts_token.token
+			  }
+			  this.tts_token=tts_token;
+			},
+			detectionToken(token){
+				let now=new Date().getTime();
+				return now-token.time>5*60*60*24*1000
+			},
+			isEmpty(val){
+				if(val!=="undefined"&&val!==undefined&&val!==""&&val!==null){
+					return false
+				}
+				return true
+			}			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+*{
+	padding: 0;
+	margin: 0;
+}
+.wrap{	
+	padding:20rpx;
+	.title{
+		height: 40rpx;
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		line-height: 40rpx;
+		color: #333333;
+		opacity: 1;	
+		padding:0 0 36rpx 20rpx;
+		position: relative;
+		&::after{
+			width: 12rpx;
+			height: 28rpx;
+			background:#2A83EF;
+			opacity: 1;
+			border-radius: 6px;					
+			content: "";
+			display: block;
+			position: absolute;
+			left: 0;
+			top: 8rpx;
+		}
+	}	
+	.content{
+		padding: 10rpx;
+		margin-top: 24rpx;
+		::v-deep .uni-forms-item__content{
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
+		}
+		.title{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+		}
+	}	
+	.submit-bt{
+		width: 400rpx;
+		height: 72rpx;
+		line-height: 72rpx;	
+		text-align: center;							
+		background:#3D90F4;
+		border-radius: 36rpx;	
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #FFFFFF;
+		z-index: 999;
+		margin-top: 50rpx;
+		&.read{
+			width: 140rpx;
+			height: 60rpx;
+			line-height: 60rpx;	
+			margin-top: 20rpx;
+		}
+	}
+}
+</style>

+ 110 - 0
pages/index/form/form.vue

@@ -0,0 +1,110 @@
+<template>
+	<view class="wrap">
+		<uni-forms :modelValue="formData" :label-width="50" ref="form">
+			<uni-forms-item label="标题" name="taskTitle" required>
+				<uni-easyinput type="text" v-model="formData.taskTitle" placeholder="请输入标题" />
+			</uni-forms-item>
+			<uni-forms-item label="内容" name="taskContent" required>
+				<uni-easyinput type="textarea" v-model="formData.taskContent" placeholder="请输入内容" />
+			</uni-forms-item>
+		</uni-forms>
+		<button @click="submitForm" class="submit-bt">提交</button>
+	</view>
+</template>
+<script>
+	import {createMemory} from '@/api/user.js'
+	export default {
+		data() {
+			return {
+				rules: {
+					taskTitle: {
+						rules:[
+							{
+								required: true,
+								errorMessage: '请填写标题',
+							}
+						],
+						label:'标题',
+						validateTrigger:'submit'
+					},
+					taskContent: {
+						rules:[
+							{
+								required: true,
+								errorMessage: '请填写内容',
+							}
+						],
+						label:'内容',
+						validateTrigger:'submit'
+					}
+				},
+				formData:{
+					taskTitle:"",
+					taskContent:""
+				}
+			}
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules)
+		},
+		methods: {		
+			submitForm(){
+				let accountId=uni.getStorageSync('accountId')
+				this.$refs.form.validate().then(res => {
+					createMemory({
+						...res,
+						accountId
+					}).then((resq)=>{
+						uni.showToast({
+							title:"提交成功!",
+							icon:"none"
+						})	
+						setTimeout(()=>{
+							uni.switchTab({
+								url:'/pages/history/history'
+							})	
+						},1000)
+					})
+				}).catch(err => {
+					console.log('表单错误信息:', err);
+				})
+			}
+		},
+		onShareAppMessage() {
+			return {
+			  title: '记忆',
+			  path: '/pages/index/index'
+			}			
+		},
+		onShareTimeline() {
+			return {
+			  title: '记忆',
+			  path: '/pages/index/index'
+			}			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+*{
+	padding: 0;
+	margin: 0;
+}
+.wrap{	
+	padding:20rpx;
+	.submit-bt{
+		width: 240rpx;
+		height: 72rpx;
+		line-height: 72rpx;	
+		text-align: center;							
+		background:#3D90F4;
+		border-radius: 36rpx;	
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #FFFFFF;
+		z-index: 999;
+		float: right;
+	}
+}
+</style>

+ 204 - 421
pages/index/index.vue

@@ -1,469 +1,252 @@
 <template>
-	<view class="wrap">
-		<view class="motionType-conatiner">
-			<view class="title">选择运动类型</view>
-			<div class="motionType-list">
-				<div class="item" v-for="(item,index) in motionType" :key="index" @click="changeMotionType(item)">
-					<image class="icon" :src="sportType===item.value?item.selectedIconPath:item.icon"></image>
-					<view class="name">{{item.text}}</view>
-				</div>				
-			</div>
-		</view>
-		<div class="preview-conatiner">
-			<view class="title">上传视频</view>
-			<view class="preview">
-				<video v-if="videoSrc" id="video" :src="videoSrc" @error="videoErrorCallback" controls></video>
-				<uni-icons color="#AEAEAE" type="videocam-filled" size="70" v-else></uni-icons>
-			</view>			
-		</div>
-		<view class="content">				
-			<button class="upload-bt" @click="upload">上传视频</button>
-			<view  class="search-bt-container" v-if="!isEmpty(gradeId)">
-				<button class="search-bt" @click="search" size="mini">
-					<uni-icons type="search" size="12" color="#fff"></uni-icons>
-					<text>查询评分结果</text>
-				</button>
-			</view>
-			<view class="result" v-if="status===1">
-				<view class="title">识别结果</view>
-				<view class="result-conatiner">
-					<h3>{{!isEmpty(result.sportGrade)?'':'正在评分中请稍后重试'}}</h3>
-					<view class="collapse-item-content" v-if="!isEmpty(result.sportGrade)">
-						<div class="sportGrade-card">
-							<div class="sportGrade">
-								<text>{{result.sportGrade}}</text>
-								<text class="util">分</text>
-							</div>
-							<view class="text">{{result.sportSuggestion}}</view>							
-						</div>
-						<view class="text" >
-							<view class="text-item" v-for="(item,key) in formateSportRetReport(result.sportRetReport)" :key="key">
-								<view class="explain-title">{{item.explain}}</view>
-								<video class="sportVideo" :src="item.url"></video>									
+	<view class="history-container">
+		<template>
+			<view class="item-list">
+				<view class="item" v-for="(item,index) in items" :key="index">
+					<view class="time">{{formatTime(item.expectedFinishDate)}}</view>
+					<div class="item-cont" @click="linkTo(item)">
+						<view class="center">
+							<view class="sportType">
+								<text>{{item.taskTitle}}</text>
 							</view>
-						</view>
-					</view>
+						</view>		
+					</div>
 				</view>
-			</view>			
-		</view>
-		<getPhone ref="getPhone" v-if="!isLogin" showByPlatform />
+			</view>
+			<template>
+				<view class="pagination-box" v-if="total>0">
+					<uni-pagination @change="changePageNumber"
+					:pageSize="limit" :current="page"
+					:total="total"></uni-pagination>				
+				</view>
+				<template v-else>
+					<view class="isEmpty" >
+						<p class="word">没有数据 ^_^ </p>
+					</view>
+				</template>
+			</template>
+		</template>
+		<div class="create_bt">
+			<image class="create_bt_image" src="/static/index/add.png" @click="create" mode="widthFix"></image>			
+		</div>		
 	</view>
 </template>
+
 <script>
-	import {setToken} from '@/libs/auth.js'
-	import getPhone from '@/components/getPhone.vue'
-	import {uploadApi} from '@/api/upload.js'
-	import {updateSportVide,getSportGradeById,login} from '@/api/user.js'
+	import config from "@/config/index.js"
+	const baseUrl = process.env.NODE_ENV === 'development' ? config.base.dev : config.base.pro;
+	import {getMemorylistByPage,getDataById} from '@/api/user.js'
+	import {parseTime} from '@/libs/index.js'
 	export default {
 		data() {
 			return {
-				collapseVal:['0'],
-				videoSrc: '',
-				status:0,
-				iscollapse:false,
-				gradeId:undefined,
-				result:{sportGrade:undefined},
-				isLogin:true,
-				sportType:undefined,
-				motionType:[
-					{ 
-						value: "0000",
-						text: "引体向上",
-						icon:'/static/index/ytxs.png',
-						selectedIconPath:'/static/index/ytxsCk.png'
-					},
-					{ 
-						value: "0001",
-						text: "仰卧起坐",
-						icon:'/static/index/ywqz.png',
-						selectedIconPath:'/static/index/ywqzCk.png'
-					},
-					{ 
-						value: "0002",
-						text: "跳远",
-						icon:'/static/index/ty.png',
-						selectedIconPath:'/static/index/tyCk.png'
-					},
-					{ 
-						value: "0003",
-						text: "坐位体前屈",
-						icon:'/static/index/tqq.png',
-						selectedIconPath:'/static/index/tqqCk.png'
-					},
-					{
-						value: "0004",
-						text: "健身动作",
-						icon:'/static/index/jsdz.png',
-						selectedIconPath:'/static/index/jsdzCk.png'
-					},
-					{
-						value: "0005",
-						text: "高抬腿",
-						icon:'/static/index/gtt.png',
-						selectedIconPath:'/static/index/gttCk.png'
-					},
-					{
-						value: "0006",
-						text: "排球垫球",
-						icon:'/static/index/pqdq.png',
-						selectedIconPath:'/static/index/pqdqCk.png'
-					},
-					{
-						value: "0007",
-						text: "足球垫球",
-						icon:'/static/index/zqdq.png',
-						selectedIconPath:'/static/index/zqdqCk.png'
-					}
-				]
+				time:new Date(),
+				note:"",
+				page:1,
+				limit:15,
+				total:0,
+				items:[],
+				sportVedioPath:"",
+				isLogin:true
 			}
 		},
-		components:{
-			getPhone
-		},
 		onShow() {
-			// this.initPhoneModal()			
-		},
-		destroyed() {
-			this.status=0;
-			this.videoSrc="";
-			this.result={}
-			this.gradeId=undefined
+			this.getData()
+			this.init()
 		},
-		methods: {
-			initPhoneModal(){
-				const accountName=uni.getStorageSync('phone')
-				if(!accountName){
-					this.isLogin=false
-					this.$nextTick(()=>{
-						this.$refs['getPhone'].isAuthorize=false
-					})
-				}else{
-					this.isLogin=true
-				}			
-			},			
-			upload(){
-				const sportType=this.sportType
-				const accountName=uni.getStorageSync('phone')
-				if(!accountName){
-					this.isLogin=false
-					this.$nextTick(()=>{
-						this.$refs['getPhone'].isAuthorize=false
-					})
-					return
-				}
-				if(!sportType){
-						uni.showToast({
-							icon:'error',
-							title: "请选择运动类型"
-						})	
-					return;
-				}
-				uni.chooseVideo({
-					sourceType: ['camera', 'album'],
-					success: (res)=>{
-						 this.uploadSubmit(res.tempFilePath)
-					},
-					fail(res) {
-						uni.showToast({
-							icon:'none',
-							title:res.errMsg
-						})
-					}
-				});
-			},
-			uploadSubmit(filePath) {
-				uni.showLoading({
-					mask:true,
-					title:"上传中……"
-				})
-				const sportType=this.sportType;
-				const accountName=uni.getStorageSync('phone')
-				uploadApi({formData:{sportType}, filePath }).then((res) => {
-					let result=JSON.parse(res);
-					uni.hideLoading()
-					if(result.code==="0000"){
-						updateSportVide({
-							accountName,
-							sportType,
-							sportVedioPath:result.data.sportVedioPath,
-							sportVedioId:result.data.sportVedioId
-						}).then((res)=>{
-							if(res.code===0){
-								uni.showToast({
-									icon:'none',
-									duration:2000,
-									title: "上传成功,系统正在评分请稍等"
-								})
-							    this.gradeId=res.data
-								this.videoSrc=filePath;																						
-							}						
-						})				 
-					}else{
-						uni.showToast({
-							icon:'error',
-							title: result.msg||"上传失败"
-						})						
-					}
-				}).catch((msg) => {
-					uni.hideLoading()
-					uni.showToast({
-						icon:'error',
-						title: "上传失败"
-					})
-				})
-			},	
-			search(){
-				let gradeId=this.gradeId;
-				if(!gradeId){
-					uni.showToast({
-						icon:'none',
-						title:"请先上传视频!"
-					})
-					return
-				}
-				getSportGradeById({
-					gradeId
+		methods: {		
+			getData(){
+				let page=this.page;
+				let limit=this.limit;
+				let accountId=uni.getStorageSync('accountId')
+				let nowTime=parseTime(new Date(),"{y}-{m}-{d}")+' 00:00:00'
+				getMemorylistByPage({
+					accountId,
+					nowTime,
+					page, limit
 				}).then((res)=>{
-					this.status=1;	
-					this.result=res.data
-				})
-			},	
-			videoErrorCallback: function(e) {
-				uni.showModal({
-					content: e.target.errMsg,
-					showCancel: false
+					this.items=res.data.list
+					this.total=res.data.totalCount;
 				})
 			},
-			changeMotionType(item){
-				this.sportType=item.value
+			init(){
+				this.items=[]
+				this.total=0
+				this.limit=15
+				this.page=1
 			},
-			formateSportRetReport(items){
-				try{
-				  if(this.isEmpty(items)) return []
-				  return Array.isArray(items)?items:JSON.parse(items)					
-				}catch(e){
-					return []
-				}
+			onClick(item){
+				let gradeId=item.gradeId
+				let sportVedioPath=item.sportVedioPath;
+				this.sportVedioPath=sportVedioPath
+			}
+			,formatTime(date) {
+			  if (!date) return null
+			  if(typeof(date)==="string"){date = new Date(date)}
+			  var y = date.getFullYear()
+			  var M = date.getMonth() + 1
+			  var d = date.getDate()
+			  var H = date.getHours()
+			  var m = date.getMinutes()
+			  var s = date.getSeconds()
+			  M = M > 9 ? M : '0' + M; d = d > 9 ? d : '0' + d; H = H > 9 ? H : '0' + H
+			  m = m > 9 ? m : '0' + m; s = s > 9 ? s : '0' + s
+			  return `${y}-${M}-${d} ${H}:${m}:${s}`
+			},
+			formatImage(path){
+				if(!path) return
+				let fileName=path.substring(0,path.lastIndexOf('.'))
+				return `${fileName}.jpg`;
+			},			
+			changePageNumber({type,current}){
+				this.page=current
+				this.getData()
+			},
+			linkTo(item){
+				uni.setStorageSync('index-detail-info',item)
+				uni.navigateTo({
+					url:'/pages/index/detail/detail'
+				})
+			},
+			create(){
+				uni.navigateTo({
+					url:'/pages/index/form/form'
+				})				
 			},
 			isEmpty(val){
 				if(val!=="undefined"&&val!==undefined&&val!==""&&val!==null){
 					return false
 				}
 				return true
-			}
-		},
-		onShareAppMessage() {
-			return {
-			  title: 'GOOMove',
-			  path: '/pages/index/index'
-			}			
-		},
-		onShareTimeline() {
-			return {
-			  title: 'GOOMove',
-			  path: '/pages/index/index'
 			}			
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-*{
-	padding: 0;
-	margin: 0;
+.history-container{
+	background:#E4F0FB;
+}
+.pagination-box{
+	margin: 40rpx 0;
+	background-color: #fff;
 }
-.wrap{	
-	padding:20rpx;
-	.title{
-		height: 40rpx;
+.isEmpty{
+	width: 100%;
+	height: 100vh;
+	background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjM4Ljg1JSIgeTE9IjAlIiB4Mj0iNjEuMTUlIiB5Mj0iMTAwJSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDRkNGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFRUVGRjMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMCUiIHkxPSI5LjUlIiB5Mj0iOTAuNSUiPjxzdG9wIHN0b3AtY29sb3I9IiNGQ0ZDRkQiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTlFQkVGIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGlkPSJjIiBkPSJNMCAwaDE3djM2SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTM5LjUgODZDNjEuMzE1IDg2IDc5IDgzLjkxIDc5IDgxLjMzM1M1Ny4zMTUgNzggMzUuNSA3OCAwIDc4Ljc1NiAwIDgxLjMzM0MwIDgzLjkxMSAxNy42ODUgODYgMzkuNSA4NnoiIGZpbGw9IiNGN0Y4RkMiLz48cGF0aCBmaWxsPSIjRTVFN0U5IiBkPSJNMTMgNDVoNDBMNDIgNThIMnpNNjUuNTUxIDI5Ljk4bC0xNi4zMTMtNy42MDctMi44NDEtNS43MzggMTYuMzEzIDcuNjA3eiIvPjxwYXRoIGZpbGw9IiNFREVFRjIiIGQ9Ik02NS41NTEgMjkuOThsLTM0LjQ0LTE2LjA1OS0xNS4yMTQgMzIuNjI3IDM0LjQ0IDE2LjA2eiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIHRyYW5zZm9ybT0icm90YXRlKDI1IDI3LjQ0NiAtNDMuNDE2KSIgZD0iTTM4IDdoMTd2MzZIMzh6Ii8+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTE1LjcwNSA2LjczN2wxNS40MDcgNy4xODQgMTUuNjQ2LS40MjctMTUuNDA3LTcuMTg1eiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMyA0NWg0MHYzNkgxM3oiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MyA0NSkiPjxtYXNrIGlkPSJkIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNjIi8+PC9tYXNrPjx1c2UgZmlsbD0iI0UwRTNFOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTcgMCkiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggZmlsbD0iI0Q1RDdERSIgbWFzaz0idXJsKCNkKSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjQgMCkiIGQ9Ik03IDBoMTdsLTQgMTgtMjAtMnoiLz48L2c+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTcwIDQ1SDUzbDkgMTNoMTd6Ii8+PC9nPjwvc3ZnPg==);
+	background-size: contain;
+	background-repeat: no-repeat;
+	position: relative;
+	background-color: #fff;
+	/* #ifndef MP-WEIXIN */
+		height: calc( 100vh - 100px);	
+	/* #endif */
+	.word{
+		width: 100%;
+		text-align: center;
+		position: absolute;
+		top: 80vh;
+		left: 0;
+		color: #999;
 		font-size: 28rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		line-height: 40rpx;
-		color: #333333;
-		opacity: 1;	
-		padding:0 0 36rpx 20rpx;
-		position: relative;
-		&::after{
-			width: 12rpx;
-			height: 28rpx;
-			background:#2A83EF;
-			opacity: 1;
-			border-radius: 6px;					
-			content: "";
-			display: block;
-			position: absolute;
-			left: 0;
-			top: 8rpx;
+		letter-spacing: 2rpx;
+	}
+}
+.item-list{
+	.item{
+		&{
+			padding: 0 20rpx;
 		}
-	}	
-	.motionType-conatiner{	
-		.motionType-list{
-			display: flex;
-			justify-content: flex-start;
-			align-items: center;
-			flex-wrap: wrap;
-			padding: 0 20rpx 44rpx 20rpx;
-			.item{
-				width: 25%;
+		.time{
+			font-size: 24rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			line-height: 28rpx;
+			color: #666666;		
+			padding: 24rpx 0;
+		}
+		.item-cont{
+			&{
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 20rpx 16rpx;
+				background-color: #fff;
+				border-radius: 20rpx;
+			}
+			.logo{
+				width: 80rpx;
+				height: 80rpx;
+				border-radius: 8px;
 				display: flex;
 				justify-content:center;
 				align-items: center;
-				flex-direction: column;	
-				padding-top: 20rpx;
-				&:nth-child(-n+4){
-					padding-top:0;
-				}
-				.icon{
+				background-color: #e2e2e2;
+				img{
 					display: block;
-					width: 104rpx;
-					height: 104rpx;
-				}
-				.name{
-					width: 100%;
-					font-size: 28rpx;
-					height: 40rpx;
-					line-height: 40rpx;
-					color: #333;
-					font-weight: bold;
-					padding-top: 16rpx;
-					overflow: hidden;
-					white-space: nowrap;
-					text-overflow: ellipsis;
-					text-align: center;
+					width: 80rpx;
+					height: 80rpx;
+					border-radius: 8px;
 				}
-			}
-		}
-	}
-	.flex-between-center{
-		display: flex;
-		justify-content:space-between;
-		align-items: center;
-		&.search-conatiner{
-			padding-bottom: 20rpx;
-			.custom-select{
-				width: 300rpx;
-			}
-		}
-	}
-	.preview{
-		width: 670rpx;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		background-color: #ccc;
-		height: 300rpx;
-		margin: 0 auto;
-		background:#E8E8E8;
-		opacity: 1;
-		border-radius: 20rpx;
-		#video{
-			width:750rpx;
-			height: 300rpx;
-			display: block;
-		}		
-	}
-	.content{
-		padding: 10rpx;
-		margin-top: 24rpx;
-		.upload-bt{
-			width: 446rpx;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: 28rpx;
-			color: #fff;
-			background-color: #409eff;
-			border-color: #409eff;
-			text-align: center;
-			margin: 0 auto;
-			border-radius: 42rpx;
-		}	
-		.search-bt-container{
-			padding: 24rpx 0 42rpx 0;
-		}
-		.search-bt{
-			width: 446rpx;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: 28rpx;
-			color: #fff;
-			background-color: #ED834A;
-			border-color: #ED834A;
-			text-align: center;
-			margin: 0 auto;
-			display: block;
-			border-radius: 42rpx;
-		}
-		.result{
-			.sportGrade-card{
-				&{
-					width: 670rpx;
-					background-image: url('/static/index/sportGradeBg.png');
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
-					margin: 0 auto 40rpx;
-				}
-				.sportGrade{
-					font-size: 120rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					line-height: 168rpx;
-					color: #FFFFFF;
-					text-align: center;
-					.util{
-						font-size: 32rpx;
+			}	
+			.center{
+				color: #999;
+				font-size: 12px;
+				flex: 1;
+				padding-left: 20rpx;
+				.sportType{
+					&{
+						font-size: 28rpx;
 						font-family: PingFang SC;
 						font-weight: bold;
-						line-height: 44rpx;
-						color: #FFFFFF;					
-					}							
-				}	
-				.text{
-					width: 90%;
-					height: 40px;
-					font-size: 28rpx;
-					font-family: PingFang SC;
-					font-weight: 400;
-					line-height: 40px;
-					color: #FFFFFF;		
-					text-align: center;
-					white-space:nowrap;
-					overflow:hidden;
-					text-overflow:ellipsis;
-					margin: 0 auto;
+						line-height: 1;	
+						display: flex;
+						justify-content: flex-start;
+						align-items: center;
+						color: #333333;	
+					}
+					.camera-box{
+						padding-left: 26rpx;
+						.camera{
+							display: block;
+							width: 36rpx;
+							height: 36rpx;
+						}
+					}
 				}
 			}
-			.text-item{
-				padding-bottom: 10px;
-				.explain-title{
-					height: 40rpx;
+			.rt{
+				font-size: 32rpx;
+				display: flex;
+				justify-content:space-between;
+				align-items: center;
+				.name{
 					font-size: 28rpx;
 					font-family: PingFang SC;
 					font-weight: bold;
-					line-height: 40rpx;
-					color: #333333;
-					padding:0 0 24rpx 20rpx;
-					position: relative;
-					&::after{
-						width: 12rpx;
-						height: 12rpx;
-						background:#2A83EF;
-						border-radius: 50%;				
-						content: "";
-						display: block;
-						position: absolute;
-						left: 0;
-						top: 16rpx;
-					}					
+					color: #F97743;	
+					line-height: 1;
 				}
-				.sportVideo{
-					width:100%;
-					height: 293rpx;
-					display: block;
-					border-radius: 20rpx;
+				.score{
+					font-weight: 900;
+					padding-right: 10rpx;
+					font-size: 40rpx;
+					font-family: PingFang SC;
+					font-weight: bold;
+					color: #FF4600;
+					line-height: 1;
 				}
-			}
+			}			
 		}
-	}	
+	}
+}
+.create_bt,.create_bt_image{
+	display: block;
+	width: 100rpx;
+	position: fixed;
+	right: 10rpx;
+	top: 55vh;
+	opacity: 0.9;
 }
-</style>
+</style>

+ 5 - 4
pages/login/index.vue

@@ -8,11 +8,11 @@
 				<text>账号:</text>
 				<uni-easyinput :inputBorder="false" class="login_input" type="text" v-model="username" placeholder="请输入账号" />
 			</view>
-<!-- 			<view class="password item">
+			<view class="password item">
 				<text>密码:</text>
 				<uni-easyinput :inputBorder="false" class="login_input" type="password" v-model="password" placeholder="请输入密码">
 				</uni-easyinput>
-			</view> -->
+			</view>
 <!-- 			<getPhone showByPlatform />	 -->
 			<button type="primary" @click="loginSubmit" class="submit-BT">登录</button>
 		</view>
@@ -27,7 +27,7 @@
 		data() {
 			return {
 				username: "",
-				password: "888888",
+				password: "",
 			}
 		},
 		onLoad({username,password}) {
@@ -49,10 +49,11 @@
 				}
 				login({
 					accountName:username,
-					password
+					pwd:password
 				}).then((res) => {
 					let token = res.data.token;
 					uni.setStorageSync('phone',username)
+					uni.setStorageSync('accountId',res.data.id)
 					setToken(token);
 					uni.switchTab({
 						url: '/pages/index/index'

+ 16 - 17
pages/myCenter/myCenter.vue

@@ -26,11 +26,11 @@
 					link="navigateTo"
 					to="/pages/myCenter/personalData/personalData"
 					showArrow></uni-list-item>
-				<uni-list-item title="人脸录入" @click="faceRecording" clickable showArrow></uni-list-item>
+				<!-- <uni-list-item title="人脸录入" @click="faceRecording" clickable showArrow></uni-list-item> -->
 			</uni-list>			
 		</view>	
-		<div class="logoutBt" @click="logout" v-if="isLogin">退出登录</div>
-		<getPhone ref="getPhone" v-if="!isLogin" showByPlatform />	
+		<div class="logoutBt" @click="logout">退出登录</div>
+<!-- 		<getPhone ref="getPhone" v-if="!isLogin" showByPlatform />	 -->
 		<view class="faceRecord-box" v-if="cameraModel">
 			<camera device-position="front" flash="off" @error="error" class="camera"></camera>
 			<button class="takePhotoBt" type="primary" @click="takePhoto">抓拍</button>
@@ -65,19 +65,18 @@
 			this.init();
 		},	
 		methods:{
-			initPhoneModal(){
-				const accountName=uni.getStorageSync('phone')
-				if(!accountName){
-					this.isLogin=false
-					this.$nextTick(()=>{
-						this.$refs['getPhone'].isAuthorize=false
-					})
-				}else{
-					this.isLogin=true
-				}			
-			},			
+			// initPhoneModal(){
+			// 	const accountName=uni.getStorageSync('phone')
+			// 	if(!accountName){
+			// 		this.isLogin=false
+			// 		this.$nextTick(()=>{
+			// 			this.$refs['getPhone'].isAuthorize=false
+			// 		})
+			// 	}else{
+			// 		this.isLogin=true
+			// 	}			
+			// },			
 			init(){
-				this.initPhoneModal()
 				let user=uni.getStorageSync('accountInfo');
 				if(user){
 					user=JSON.parse(user)
@@ -113,8 +112,8 @@
 						if (res.confirm) {
 							logout().then(()=>{
 								uni.clearStorageSync()
-								uni.switchTab({
-									url:'/pages/index/index'
+								uni.reLaunch({
+									url:'/pages/login/index'
 								})							
 							})
 						}					

BIN
static/index/add.png


BIN
static/index/gtt.png


BIN
static/index/gttCk.png


BIN
static/index/jsdz.png


BIN
static/index/jsdzCk.png


BIN
static/index/pqdq.png


BIN
static/index/pqdqCk.png


BIN
static/index/tqq.png


BIN
static/index/tqqCk.png


BIN
static/index/ty.png


BIN
static/index/tyCk.png


BIN
static/index/ytxs.png


BIN
static/index/ytxsCk.png


BIN
static/index/ywqz.png


BIN
static/index/ywqzCk.png


BIN
static/index/zqdq.png


BIN
static/index/zqdqCk.png


BIN
unpackage/cache/apk/__UNI__C6FF24C_cm.apk


+ 1 - 0
unpackage/cache/apk/apkurl

@@ -0,0 +1 @@
+https://ide.dcloud.net.cn/build/download/da6e6e90-1fd6-11ee-9ac2-b3b6718f891c

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


+ 3 - 0
unpackage/cache/certdata

@@ -0,0 +1,3 @@
+andrCertfile=E:/software/HBuilderX/plugins/app-safe-pack/Test.keystore
+andrCertAlias=android
+andrCertPass=ep/Tdjka4Y7WYqDB6/S7dw==

BIN
unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-hdpi.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xhdpi.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xxhdpi.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/.manifest/icon-android-xxxhdpi.png


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappchooselocation.js


BIN
unpackage/cache/wgt/__UNI__C6FF24C/__uniapperror.png


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappes6.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappopenlocation.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniapppicker.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 6 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappquill.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappquillimageresize.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappscan.js


BIN
unpackage/cache/wgt/__UNI__C6FF24C/__uniappsuccess.png


+ 25 - 0
unpackage/cache/wgt/__UNI__C6FF24C/__uniappview.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      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>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

+ 8 - 0
unpackage/cache/wgt/__UNI__C6FF24C/app-config-service.js

@@ -0,0 +1,8 @@
+
+var isReady=false;var onReadyCallbacks=[];
+var isServiceReady=false;var onServiceReadyCallbacks=[];
+var __uniConfig = {"pages":["pages/index/index","pages/history/history","pages/myCenter/myCenter","pages/history/detail/detail","pages/login/index","pages/myCenter/personalData/personalData","pages/myCenter/updatePassword/updatePassword","pages/service_agreement/service_agreement","pages/index/form/form","pages/index/detail/detail"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","background":"#efeff4"},"tabBar":{"color":"#7A7E83","selectedColor":"#1296db","borderStyle":"black","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","iconPath":"static/tabbar/index.png","selectedIconPath":"static/tabbar/indexEd.png","text":"首页"},{"pagePath":"pages/history/history","iconPath":"static/tabbar/history.png","selectedIconPath":"static/tabbar/historyEd.png","text":"数据"},{"pagePath":"pages/myCenter/myCenter","iconPath":"static/tabbar/myCenter.png","selectedIconPath":"static/tabbar/myCenterEd.png","text":"我的"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"科学记忆","compilerVersion":"3.8.7","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
+var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"首页","navigationBarBackgroundColor":"#DEEDFB"}},{"path":"/pages/history/history","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"数据","navigationBarBackgroundColor":"#DEEDFB","enablePullDownRefresh":false}},{"path":"/pages/myCenter/myCenter","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的","navigationBarBackgroundColor":"#3D90F4","enablePullDownRefresh":false,"navigationStyle":"custom"}},{"path":"/pages/history/detail/detail","meta":{},"window":{"navigationBarTitleText":"数据详情","navigationBarBackgroundColor":"#3D90F4","enablePullDownRefresh":false}},{"path":"/pages/login/index","meta":{},"window":{"navigationBarTitleText":"登录"}},{"path":"/pages/myCenter/personalData/personalData","meta":{},"window":{"navigationBarTitleText":"个人资料","enablePullDownRefresh":false}},{"path":"/pages/myCenter/updatePassword/updatePassword","meta":{},"window":{"navigationBarTitleText":"修改密码","enablePullDownRefresh":false}},{"path":"/pages/service_agreement/service_agreement","meta":{},"window":{"navigationBarTitleText":"服务协议","enablePullDownRefresh":false}},{"path":"/pages/index/form/form","meta":{},"window":{"navigationBarTitleText":"新增项目","enablePullDownRefresh":false}},{"path":"/pages/index/detail/detail","meta":{},"window":{"navigationBarTitleText":"记忆详情","enablePullDownRefresh":false}}];
+__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

+ 1 - 0
unpackage/cache/wgt/__UNI__C6FF24C/app-config.js

@@ -0,0 +1 @@
+(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/app-service.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/app-view.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/manifest.json


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/center/bg.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/center/bgmask.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/components/avatar.png


+ 20 - 0
unpackage/cache/wgt/__UNI__C6FF24C/static/customicons.css

@@ -0,0 +1,20 @@
+@font-face {
+  font-family: "customicons"; /* Project id 2878519 */
+  src:url('/static/customicons.ttf') format('truetype');
+}
+
+.customicons {
+  font-family: "customicons" !important;
+}
+
+.youxi:before {
+  content: "\e60e";
+}
+
+.wenjian:before {
+  content: "\e60f";
+}
+
+.zhuanfa:before {
+  content: "\e610";
+}

BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/customicons.ttf


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/history/camera.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/index/add.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/index/sportGradeBg.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/history.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/historyEd.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/index.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/indexEd.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/myCenter.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/static/tabbar/myCenterEd.png


BIN
unpackage/cache/wgt/__UNI__C6FF24C/uni_modules/uni-icons/components/uni-icons/uniicons.ttf


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/view.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/cache/wgt/__UNI__C6FF24C/view.umd.min.js


+ 0 - 0
unpackage/dist/build/.automator/app-plus/.automator.json


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniappchooselocation.js


BIN
unpackage/dist/build/app-plus/__uniapperror.png


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniappes6.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniappopenlocation.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniapppicker.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 6 - 0
unpackage/dist/build/app-plus/__uniappquill.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniappquillimageresize.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/__uniappscan.js


BIN
unpackage/dist/build/app-plus/__uniappsuccess.png


+ 25 - 0
unpackage/dist/build/app-plus/__uniappview.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      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>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

+ 8 - 0
unpackage/dist/build/app-plus/app-config-service.js

@@ -0,0 +1,8 @@
+
+var isReady=false;var onReadyCallbacks=[];
+var isServiceReady=false;var onServiceReadyCallbacks=[];
+var __uniConfig = {"pages":["pages/index/index","pages/history/history","pages/myCenter/myCenter","pages/history/detail/detail","pages/login/index","pages/myCenter/personalData/personalData","pages/myCenter/updatePassword/updatePassword","pages/service_agreement/service_agreement","pages/index/form/form","pages/index/detail/detail"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8","background":"#efeff4"},"tabBar":{"color":"#7A7E83","selectedColor":"#1296db","borderStyle":"black","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","iconPath":"static/tabbar/index.png","selectedIconPath":"static/tabbar/indexEd.png","text":"首页"},{"pagePath":"pages/history/history","iconPath":"static/tabbar/history.png","selectedIconPath":"static/tabbar/historyEd.png","text":"数据"},{"pagePath":"pages/myCenter/myCenter","iconPath":"static/tabbar/myCenter.png","selectedIconPath":"static/tabbar/myCenterEd.png","text":"我的"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"科学记忆","compilerVersion":"3.8.7","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
+var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"首页","navigationBarBackgroundColor":"#DEEDFB"}},{"path":"/pages/history/history","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"数据","navigationBarBackgroundColor":"#DEEDFB","enablePullDownRefresh":false}},{"path":"/pages/myCenter/myCenter","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"我的","navigationBarBackgroundColor":"#3D90F4","enablePullDownRefresh":false,"navigationStyle":"custom"}},{"path":"/pages/history/detail/detail","meta":{},"window":{"navigationBarTitleText":"数据详情","navigationBarBackgroundColor":"#3D90F4","enablePullDownRefresh":false}},{"path":"/pages/login/index","meta":{},"window":{"navigationBarTitleText":"登录"}},{"path":"/pages/myCenter/personalData/personalData","meta":{},"window":{"navigationBarTitleText":"个人资料","enablePullDownRefresh":false}},{"path":"/pages/myCenter/updatePassword/updatePassword","meta":{},"window":{"navigationBarTitleText":"修改密码","enablePullDownRefresh":false}},{"path":"/pages/service_agreement/service_agreement","meta":{},"window":{"navigationBarTitleText":"服务协议","enablePullDownRefresh":false}},{"path":"/pages/index/form/form","meta":{},"window":{"navigationBarTitleText":"新增项目","enablePullDownRefresh":false}},{"path":"/pages/index/detail/detail","meta":{},"window":{"navigationBarTitleText":"记忆详情","enablePullDownRefresh":false}}];
+__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

+ 1 - 0
unpackage/dist/build/app-plus/app-config.js

@@ -0,0 +1 @@
+(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/app-service.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/app-view.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
unpackage/dist/build/app-plus/manifest.json


BIN
unpackage/dist/build/app-plus/static/center/bg.png


BIN
unpackage/dist/build/app-plus/static/center/bgmask.png


BIN
unpackage/dist/build/app-plus/static/components/avatar.png


+ 20 - 0
unpackage/dist/build/app-plus/static/customicons.css

@@ -0,0 +1,20 @@
+@font-face {
+  font-family: "customicons"; /* Project id 2878519 */
+  src:url('/static/customicons.ttf') format('truetype');
+}
+
+.customicons {
+  font-family: "customicons" !important;
+}
+
+.youxi:before {
+  content: "\e60e";
+}
+
+.wenjian:before {
+  content: "\e60f";
+}
+
+.zhuanfa:before {
+  content: "\e610";
+}

BIN
unpackage/dist/build/app-plus/static/customicons.ttf


BIN
unpackage/dist/build/app-plus/static/history/camera.png


BIN
unpackage/dist/build/app-plus/static/index/add.png


BIN
unpackage/dist/build/app-plus/static/index/sportGradeBg.png


BIN
unpackage/dist/build/app-plus/static/tabbar/history.png


BIN
unpackage/dist/build/app-plus/static/tabbar/historyEd.png


BIN
unpackage/dist/build/app-plus/static/tabbar/index.png


BIN
unpackage/dist/build/app-plus/static/tabbar/indexEd.png


BIN
unpackage/dist/build/app-plus/static/tabbar/myCenter.png


BIN
unpackage/dist/build/app-plus/static/tabbar/myCenterEd.png


BIN
unpackage/dist/build/app-plus/uni_modules/uni-icons/components/uni-icons/uniicons.ttf


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است