wangjun hace 1 semana
padre
commit
67ae430e5e

+ 10 - 0
AndroidManifest.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
+	package="io.dcloud.nativeresouce">
+	<!--按下面方式配置需要移除的permissions-->
+	<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove" />
+	<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" tools:node="remove" />
+	<application>
+		<!--meta-data-->
+	</application>
+</manifest>

+ 9 - 0
common/api/data.js

@@ -0,0 +1,9 @@
+// import {baseUrl} from "@/common/js/seting.js"
+import {dorequest} from "@/common/js/request.js"
+/**
+ * 获取健康中心数据 视频列表
+ */
+export function gethealthcenterlist(data=null){
+	let url="https://app.chienxutech.com:30443/index.php/index/Healthmanger/queryvlistbypage";
+	return dorequest('get',url);
+}

+ 37 - 5
common/api/user.js

@@ -1,11 +1,12 @@
 import {baseUrl} from "@/common/js/seting.js"
 import {dorequest} from "@/common/js/request.js"
-import {saveuserinfo} from "@/common/js/common.js"
+import {saveuserinfo,clear} from "@/common/js/common.js"
 /**
  * 
  */
 export function login(data,e){
 	let url=baseUrl+"/index.php/index/Me/subuserloginbytelno";
+	console.log(data)
 	dorequest(
 		'post',
 		url,
@@ -18,7 +19,9 @@ export function login(data,e){
 		if(0==res.code){
 			e.$refs.toast.show({
 				type: 'error',
-				message: res.errmsg
+				// message: res.errmsg
+				message:e.$t('login_error')
+				// message:"ลงทะเบียนล้มเหลว"
 			})
 		}
 		if(200==res.code){
@@ -26,9 +29,13 @@ export function login(data,e){
 			userinfo.fmembercount=4
 			userinfo.fmemberid=0
 			saveuserinfo(userinfo);
-			uni.redirectTo({
-				url: '/pages/index/index'
-			});	
+			let url ='/pages/index/index?islogin=1'
+			// uni.switchTab({
+			// 	url: '/pages/index/index'
+			// });	
+			uni.reLaunch({
+				url: url
+			})
 		}
 	});
 }
@@ -45,3 +52,28 @@ export function register(data,e,callback=null){
 	);
 }
 
+export function cancelaccount(data,e,callback=null){
+	let url=baseUrl+"/index.php/index/Me/subcloseuserbyid";
+	dorequest(
+		'post',	
+		url,
+		{uid:data.uid}
+	).then(res=>{
+		res = res.data
+		if(0==res.code){
+			e.$refs.toast.show({
+				type: 'error',
+				// message: res.errmsg
+				message:e.$t('system_error')
+				// message:"ลงทะเบียนล้มเหลว"
+			})
+		}
+		if(200==res.code){
+			clear()
+			let url ='/pages/login/login'
+			uni.reLaunch({
+				url: url
+			})
+		}
+	});
+}

+ 12 - 4
common/css/common.css

@@ -8,6 +8,7 @@ body {
 	overflow: hidden;
 	top: 0;
 	left: 0;
+	overflow-y: scroll;
 }
 .form{
 	background-color: rgba(200, 200, 200, 0.1);
@@ -17,7 +18,7 @@ body {
     position: absolute;
     width:100%;
     height:15%;
-    background:#648EB8;
+    background:#3f73b3;
     border-bottom-left-radius: 400rpx 70rpx;
     border-bottom-right-radius: 400rpx 70rpx;
     z-index: -999;    
@@ -25,9 +26,9 @@ body {
 .mybtn{
 	height:50rpx;
 	background:-webkit-linear-gradient(0deg, #648EB8 1%, #47689D 99%);
-	background:-moz-linear-gradient(90deg, #648EB8  1%, #47689D99%);
+	background:-moz-linear-gradient(90deg, #648EB8  1%, #47689D99);
 	background:linear-gradient(90deg, #648EB8  1%, #47689D 99%);
-	color:#FFF;
+	color:#FFFFFF;
 	border-radius:15rpx;    
 	display:flex;
 	justify-content:center;
@@ -44,7 +45,7 @@ body {
 }
 .bar{
 	height: 4rem;
-	background-color: #648EB8;
+	background-color: #3f73b3;
 	color: #fff;
 	width: 100%;
 	text-align: center;
@@ -53,4 +54,11 @@ body {
 	justify-items: center;
 	text-align: center;
 	padding-top: 30px;
+}
+.app_content{
+	margin-top: 7em;
+}
+span{
+	word-wrap: break-word;
+	word-break: break-word;
 }

+ 5 - 1
common/js/common.js

@@ -33,6 +33,7 @@ export function  islogin(){
 }
 
 export function saveuserinfo(info){
+	console.log(info)
 	uni.setStorage({
 		key: 'userinfo',
 		data: info,
@@ -114,7 +115,10 @@ export function tostemlistnext(startindex,next=0,scaleid_1=false,srid_1=false){
 }
 
 export function  tohome(){
-	uni.redirectTo({
+	// uni.redirectTo({
+	// 	url: '/pages/index/index'
+	// });
+	uni.switchTab({
 		url: '/pages/index/index'
 	});
 }

+ 4 - 2
common/js/seting.js

@@ -1,2 +1,4 @@
-export const baseUrl = "https://app.chienxutech.com:30443"
-export const uploadUrl="https://app.gasgrid.cn:30443/index.php/index/Fileoper/upQuestionsWrite"
+// export const baseUrl = "https://app.chienxutech.com:30443"
+// export const uploadUrl="https://app.gasgrid.cn:30443/index.php/index/Fileoper/upQuestionsWrite"
+
+export const baseUrl = "https://ssjth.chienxutech.com:8443/ssj/"

+ 8 - 6
common/js/slider_ruler.js

@@ -128,7 +128,6 @@ function dodrawruler(){
 	let origion = {x:origionX,y:0}
 	let i = minvalue
 	while(i <= maxvalue){
-		
 		context.beginPath()
 		let movetoX=origion.x + (i - minvalue) * ratio
 		let movetoY=0
@@ -183,23 +182,26 @@ function getCanvasConfig(){
 function drowncursor(){
 	var context = uni.createCanvasContext(getvalue('canvascursorid'))
 	var center = {x:screenWidth/2,y:0}
-	center.y = harfline*Math.sqrt(3);
+	console.log(center);
 	var right ={x:center.x-harfline,y:0}
 	var left ={x:center.x+harfline,y:0} 
-	context.beginPath()
 	context.moveTo(right.x, 0);
 	context.lineTo(left.x, 0);
-	context.lineTo(center.x, center.y);
+	context.lineTo(center.x, center.y+5);
 	context.closePath();
 	context.setFillStyle(cursorcolor) 
 	context.fill();
-
+	context.beginPath()
 	context.moveTo(center.x, 0);
 	context.lineTo(center.x, 50);
 	context.setLineWidth(lineWidth1)
 	context.setStrokeStyle(cursorcolor)
 	context.stroke();
-	context.draw(true)
+	context.closePath();
+	// context.draw(true)
+	setTimeout(()=>{// uni-app必须加上延迟,不然显示不出来, 亲测
+	  context.draw() 
+	}, 50)
 	
 	let defaultvalue = getvalue('defaultvalue')
 	if(defaultvalue>0){

+ 20 - 9
common/lang/en.json

@@ -14,11 +14,11 @@
 	"wife":"老婆",
 	"other_member":"其它亲友",
 	"add_member_text1":"父母有没有",
-	"add_member_text2":"心梗脑梗的风险?",
-	"add_member_text3":"帮他们评测!",
+	//"add_member_text2":"心梗脑梗的风险?",
+	//"add_member_text3":"帮他们评测!",
 	"add_member_text4":"爱人工作繁忙",
-	"add_member_text5":"应酬多,压力大,常喝酒",
-	"add_member_text6":"有没有心脑血管的隐患?",
+	//"add_member_text5":"应酬多,压力大,常喝酒",
+	//"add_member_text6":"有没有心脑血管的隐患?",
 	"add_member_text7":"其它男性亲友",
 	"add_member_text8":"其它女性亲友",
 	"add_member_text9":"请自行输入",
@@ -73,10 +73,10 @@
 	"weight":"น้ำหนัก",
 	"selectcanvas_text1":"请输入被评测人身高体重",
 	"selectcanvas_text2":"BMI是人体的胖瘦程度的量化指标,其大小与许多疾病风险程度相关联。",
-	"selectcanvas_text3":"身高取整数,体重按0.5公斤选取即可。",
+	//"selectcanvas_text3":"身高取整数,体重按0.5公斤选取即可。",
 	"report_user":"ผู้รับการประเมินผล",
-	"selectage_test1":"请选择被评测人年龄",
-	"selectage_test2":"从29岁开始,一些对健康影响较大的慢性病的风险就开始增加,年龄无法改变,但可以改变生活习惯。",
+	"selectage_cs1":"请选择被评测人年龄",
+	"selectage_cs2":"从29岁开始,一些对健康影响较大的慢性病的风险就开始增加,年龄无法改变,但可以改变生活习惯。",
 	"next_step":"下一步",
 	"show_info_text1":"您的BMI已超过",
 	"show_info_text2":"ผู้ใช้",
@@ -127,6 +127,9 @@
 	"share_text":"心脑血管早期筛查,简单易得,有利无害,分享给朋友家人。",
 	"member_add_text_1":"每个人都关心家人健康",
 	"member_add_text_2":"但我们可以做得更多",
+	"member_add_text_3":"保持健康,提高生活质量!",
+	"review":"评测",
+	"health_center":"健康中心",
 	//error
 	"telno_null":"手机号必填",
 	"password_null":"密码必填",
@@ -138,6 +141,14 @@
 	"completion_problem_for_valuating_people":"请为评测对象完成问题",
 	"please_completion_problem":"请填写完内容",
 	"system_error":"系统错误",
-	"not_selected":"未选择"
-	
+	"not_selected":"未选择",
+	"back":"返回",
+	"privacy_policy":"隐私政策",
+	"quit":"退出",
+	"my_center":"我的",
+	"policy":"政策",
+	"bmi_text":"身体指数(BMI)",
+	"login_error":"登录失败",
+	"continue":"继续",
+	"cancel_account":"注销账户"
 }

+ 1 - 0
common/lang/index.js

@@ -17,6 +17,7 @@ const messages={
 
 const i18n = createI18n({
 	locale:'th',
+	// locale:'zh',
 	legacy:false,
 	globalInjection:true,
 	messages,

+ 32 - 21
common/lang/th.json

@@ -9,16 +9,16 @@
 	"navigationBarTitleText":"การตรวจหัวใจและสมอง",
 	"add_member":"เพิ่มสมาชิกในครอบครัว",
 	"father":"พ่อ",
-	"mother":"แม่จ๋า",
+	"mother":"แม่",
 	"husband":"สามี",
 	"wife":"ภรรยา",
 	"other_member":"ญาติและเพื่อนอื่น ๆ",
 	"add_member_text1":"พ่อแม่เสี่ยงเป็นโรคกล้ามเนื้อหัวใจตายหรือไม่",
-	"add_member_text2":"ความเสี่ยงในการควบคุมจิตใจ",
-	"add_member_text3":"ช่วยให้พวกเขาประเมิน!",
-	"add_member_text4":"งานยุ่ง",
-	"add_member_text5":"ดื่มเป็นประจำ",
-	"add_member_text6":"มีอันตรายที่ซ่อนอยู่หรือไม่มีหัวใจและหลอดเลือดสมอง?",
+	//"add_member_text2":"ความเสี่ยงในการควบคุมจิตใจ",
+	//"add_member_text3":"ช่วยให้พวกเขาประเมิน!",
+	"add_member_text4":"ประเมินสุขภาพให้สามีและภรรยา",
+	// "add_member_text5":"ดื่มเป็นประจำ",
+	//"add_member_text6":"มีอันตรายที่ซ่อนอยู่หรือไม่มีหัวใจและหลอดเลือดสมอง?",
 	"add_member_text7":"ญาติและเพื่อนชายอื่น ๆ",
 	"add_member_text8":"ญาติและเพื่อนหญิงอื่น ๆ",
 	"add_member_text9":"กรุณากรอกข้อมูลด้วยตัวเอง",
@@ -28,8 +28,8 @@
 	"illness_title":"ชนิดโรค",
 	"report_score":"คะแนนประเมินผล",
 	"report_result":"ผลการตรวจคัดกรอง",
-	"report_error_text_1":"หากโรคอยู่แค่ชั้นผิวหนัง เพียงประคบร้อนก็รักษาได้! ก่อนหน้าคุณเราได้ช่วยให้ผู้ใช้มากมายค้นพบกับความเสี่ยง ขอเพียงให้ความสำคัญและสื่อสารกับแพทย์อย่างกระตือรือร้น ก็จะสามารถหลีกเลี่ยงความเสี่ยงต่อสุขภาพและชีวิตที่แท้จริงได้。",
-	"report_error_text_2":"เผชิญหน้าด้วยความคิดบวก ไปเข้ารับการตรวจที่เกี่ยวข้อง ณ โรงพยาบาลที่ได้มาตรฐานในพื้นที่!",
+	"report_error_text_1":"หากโรคอยู่แค่ชั้นผิวหนัง เพียงประคบร้อนก็รักษาได้! ก่อนหน้านี้ เราได้ช่วยให้ผู้ใช้มากมายค้นพบความเสี่ยงในการเกิดโรค ขอเพียงให้ความสำคัญและสื่อสารกับแพทย์อย่างกระตือรือร้น ก็จะสามารถหลีกเลี่ยงความเสี่ยงต่อสุขภาพและชีวิตได้。",
+	"report_error_text_2":"เผชิญปัญหาด้วยการคิดบวก ไปเข้ารับการตรวจที่เกี่ยวข้อง ณ โรงพยาบาลที่ได้มาตรฐานในพื้นที่!",
 	"report_error_text_3":"ปรับพฤติกรรมการดำเนินชีวิตตามคำแนะนำด้านสุขภาพ เพื่อลดความเสี่ยง。",
 	"report_text_1":"คะแนนยังไม่เกิน ",
 	"report_text_1_1":"คะแนน ปัจจุบันความเสี่ยงต่อการเกิดโรคยังไม่สูง。",
@@ -73,10 +73,10 @@
 	"weight":"น้ำหนักตัว",
 	"selectcanvas_text1":"กรุณาใส่ส่วนสูง น้ำหนัก",
 	"selectcanvas_text2":"ดัชนีมวลกายเป็นตัวบ่งชี้เชิงปริมาณของระดับความอ้วนและความผอมของร่างกายมนุษย์และมีขนาดที่เชื่อมโยงกับระดับความเสี่ยงของโรคต่างๆ。",
-	"selectcanvas_text3":"ความสูงใช้จำนวนเต็มน้ำหนักที่เลือกโดย 0.5 กิโลกรัมก็โอเค。",
+	//"selectcanvas_text3":"ความสูงใช้จำนวนเต็มน้ำหนักที่เลือกโดย 0.5 กิโลกรัมก็โอเค。",
 	"report_user":"วัตถุประเมิน",
-	"selectage_test1":"โปรดเลือกอายุของผู้ที่ได้รับการประเมิน",
-	"selectage_test2":"ความเสี่ยงต่อการเกิดโรคเรื้อรังบางชนิดที่ส่งผลกระทบต่อสุขภาพมากเริ่มเพิ่มขึ้นตั้งแต่อายุ 29 ปี,ไม่สามารถเปลี่ยนอายุได้ แต่สามารถเปลี่ยนพฤติกรรมการใช้ชีวิตได้。",
+	"selectage_cs1":"โปรดเลือกอายุของผู้ที่ได้รับการประเมิน",
+	"selectage_cs2":"ตั้งแต่อายุ 29 ปีเป็นต้นไป จะมีความเสี่ยงต่อการเกิดโรคเรื้อรังบางชนิดมากยิ่งขึ้น ในเมื่อเราเปลี่ยนแปลงอายุไม่ได้ แต่เราเปลี่ยนแปลงพฤติกรรมเพื่อลดการเกิดโรคได้ 。",
 	"next_step":"ขั้นตอนต่อไป",
 	"show_info_text1":"BMI ของคุณเกินเกณฑ์แล้ว",
 	"show_info_text2":"ผู้ใช้",
@@ -84,16 +84,16 @@
 	"greater_than":"มากกว่า",
 	"selectwaistline_text1":"โปรดเลื่อนไปทางซ้ายหรือขวาเพื่อเลือกเส้นรอบเอวของผู้รับการประเมินผล",
 	"selectwaistline_text2":"เส้นรอบเอว คือสิ่งสะท้อนว่าปริมาณไขมันในช่องท้องมากเกินไปหรือไม่ โดยปริมาณไขมันในช่องท้องที่มากเกินไปเป็นสาเหตุที่ก่อให้เกิดโรคต่าง ๆ",
-	"selectwaistline_text3":"งานวิจัยที่ตีพิมพ์ล่าสุดในวารสาร JAMA ชี้ว่า กลุ่มบุคคลที่มีอัตราส่วนรอบเอวต่อรอบสะโพกเกินค่าที่กำหนด อีกทั้งค่าความดันโลหิตตัวบนสูงเกินไป ความเสี่ยงต่อการเสียชีวิตจากโรคหัวใจและหลอดเลือดจะเพิ่มขึ้นอย่างเห็นได้ชัด ด้วยเหตุนี้ การคงอัตราส่วนรอบเอวต่อรอบสะโพกจึงไม่เพียงเป็นสิ่งจำเป็นต่อความรักสวยรักงามเท่านั้น ยังมีความสำคัญมากต่อสุขภาพร่างกายอีกด้วย",
+	"selectwaistline_text3":"งานวิจัยที่ตีพิมพ์ล่าสุดในวารสาร JAMA ชี้ว่า กลุ่มบุคคลที่มีอัตราส่วนรอบเอวต่อรอบสะโพกเกินค่าที่กำหนด และมีค่าความดันโลหิตตัวบนที่สูงเกินมาตรฐาน จะมีความเสี่ยงต่อการเสียชีวิตด้วยโรคหัวใจและหลอดเลือดอย่างเห็นได้ชัด ด้วยเหตุนี้ การคงอัตราส่วนรอบเอว จึงมีความสำคัญอย่างมากต่อสุขภาพร่างกาย ไม่เพียงแค่เพื่อความสวยงามเท่านั้น",
 	"selectwaistline_text4":"เมื่อมีผลการวิจัยเชิงปริมาณที่เกี่ยวข้องกับงานวิจัยอัตราส่วนรอบเอวต่อรอบสะโพก เราจะอัปเดตเนื้อหาการประเมินผลด้วยเช่นกัน。",
-	"selectwaistline_text5":"ในการประเมินผล ขอเพียงคุณระบุช่วงของเส้นรอบเอวที่ถูกต้องเท่านั้นเป็นพอ หากไม่แน่ใจ สามารถส่งเป็นขนาดกางเกงที่พอดีกับตัวคุณได้ ทั้งนี้มีค่าขนาดสำหรับใช้ประกอบการพิจารณาอยู่ที่ด้านล่างพิกัด。",
+	"selectwaistline_text5":"ในการประเมินผล ขอเพียงคุณระบุช่วงของเส้นรอบเอวที่ถูกต้อง หากไม่แน่ใจ สามารถส่งเป็นขนาดกางเกงที่พอดีกับตัวคุณได้ ทั้งนี้มีค่าขนาดสำหรับใช้ประกอบการพิจารณาอยู่ที่ด้านล่าง。",
 	"waistline":"เส้นรอบเอว",
 	"waistline_text1":"尺",//ไม้บรรทัด
-	"waistline_text2":"",//นิ้ว???建议取消
+	"waistline_text2":"นิ้ว",//นิ้ว???建议取消
 	"scale_evaluation":"การประเมินผล",
 	"selectsbp_text1":"โปรดกรอกช่วงความดันโลหิตของผู้รับการประเมินผล",
-	"selectsbp_text2":"ดัชนีหลักที่มีความเกี่ยวข้องกับโรคคือความดันโลหิตสูง คุณแค่ต้องระบุข้อมูลความดันโลหิตสูง และเลือกช่วงให้ถูกต้องเท่านั้น",
-	"selectsbp_text3":"หากมีการทานยาลดความดัน โปรดระบุข้อมูลความดันโลหิตสูงก่อนที่จะเข้ารับการรักษา ผู้ป่วยโรคความดันโลหิตสูงโดยทั่วไปค่าจะสูงกว่า 140 ขึ้นไป",
+	"selectsbp_text2":"ดัชนีหลักที่มีความเกี่ยวข้องกับโรคคือความดันโลหิตสูง คุณแค่ต้องระบุข้อมูลค่าความดันโลหิตสูง และเลือกช่วงให้ถูกต้องเท่านั้น",
+	"selectsbp_text3":"หากมีการทานยาลดความดัน โปรดระบุข้อมูลค่าความดันโลหิตตัวบนก่อนที่จะเข้ารับการรักษา ผู้ป่วยโรคความดันโลหิตสูงโดยทั่วไปค่าจะสูงกว่า 140 ขึ้นไป",
 	"selectsbp_text4":"หากคุณยืนยันว่าไม่รู้ค่าความดันโลหิต ไม่มีความดันโลหิตสูง คุณสามารถกรอกช่วงปกติได้ คือ 110-120 หากผลการประเมินผลอยู่ในช่วง 3 คะแนน ทางด้านซ้ายหรือขวาของเส้นเกณฑ์มาตรฐาน คุณต้องวัดความดันโลหิตเพื่อประเมินผลใหม่",
 	"hg_text1":"mmHgต่อไปนี้",
 	"hg_text2":"mmHg",
@@ -109,7 +109,7 @@
 	"have":"มี",
 	"same_as_you":"ผู้ใช้เช่นเดียวกับคุณ",
 	"select_gender_for_valuating_people":"โปรดเลือกเพศของผู้รับการประเมินผล",
-	"select_gender_text_1":"งานวิจัยชี้ว่า ความเสี่ยงต่อโรคบางชนิดในเพศชายและเพศหญิงจะแตกต่างกัน เช่น โรคเบาหวาน ความเสี่ยงต่อการเกิดโรคในเพศชายจะสูงกว่า จึงต้องใส่ใจพฤติกรรมการบริโภคอาหารให้มากขึ้นและควบคุมเส้นรอบเอว。",
+	"select_gender_text_1":"งานวิจัยชี้ว่า ความเสี่ยงต่อโรคบางชนิดในเพศชายและเพศหญิงจะแตกต่างกัน เช่น โรคเบาหวาน เพศชายมีความเสี่ยงต่อการเกิดโรคสูงกว่า จึงต้องใส่ใจพฤติกรรมการบริโภคอาหารให้มากขึ้นและควบคุมเส้นรอบเอว。",
 	"is_man":"เป็นเพศชาย",
 	"is_female":"เป็นเพศหญิง",
 	"man":"ชาย",
@@ -125,8 +125,11 @@
 	"index_btn_3":"ประเมินผลใหม่",
 	"share":"แบ่งปัน",
 	"share_text":"การตรวจคัดกรองโรคหัวใจและหลอดเลือดสมองในระยะแรกง่ายและง่ายมีประโยชน์และไม่เป็นอันตรายแบ่งปันให้เพื่อนและครอบครัว。",
-	"member_add_text_1":"ทุกคนห่วงใยครอบครัว",
-	"member_add_text_2":"แต่เราทำได้มากกว่านี้",
+	"member_add_text_1":"ขอเชิญท่านทำแบบประเมินสุขภาพ",
+	"member_add_text_2":"เพื่อดูแลตนเองและคนในครอบครัว",
+	"member_add_text_3":"ให้มีสุขภาพแข็งแรงและคุณภาพชีวิตที่ดีขึ้น!",
+	"review":"การประเมินผล",
+	"health_center":"ศูนย์สุขภาพ",
 	//error
 	"telno_null":"หมายเลขโทรศัพท์มือถือ จำเป็น",
 	"password_null":"รหัสผ่าน จำเป็น",
@@ -138,6 +141,14 @@
 	"completion_problem_for_valuating_people":"กรุณากรอกคำตอบของวัตถุประเมิน",
 	"please_completion_problem":"กรุณากรอกข้อมูลให้ครบถ้วน",
 	"system_error":"ข้อผิดพลาดของระบบ",
-	"not_selected":"ไม่มีตัวเลือก"
-	
+	"not_selected":"ไม่มีตัวเลือก",
+	"back":"กลับมา",
+	"privacy_policy":"นโยบายความเป็นส่วนตัว",
+	"quit":"ออก",
+	"my_center":"ของฉัน",
+	"policy":"ข้อกำหนด",
+	"bmi_text":"ดัชนีมวลกาย (BMI)",
+	"login_error":"ลงทะเบียนล้มเหลว",
+	"continue":"ทำต่อไป",
+	"cancel_account":"ออกจากบัญชี"
 }

+ 20 - 10
common/lang/zh.json

@@ -14,11 +14,11 @@
 	"wife":"老婆",
 	"other_member":"其它亲友",
 	"add_member_text1":"父母有没有",
-	"add_member_text2":"心梗脑梗的风险?",
-	"add_member_text3":"帮他们评测!",
+	//"add_member_text2":"心梗脑梗的风险?",
+	//"add_member_text3":"帮他们评测!",
 	"add_member_text4":"爱人工作繁忙",
-	"add_member_text5":"应酬多,压力大,常喝酒",
-	"add_member_text6":"有没有心脑血管的隐患?",
+	// "add_member_text5":"应酬多,压力大,常喝酒",
+	// "add_member_text6":"有没有心脑血管的隐患?",
 	"add_member_text7":"其它男性亲友",
 	"add_member_text8":"其它女性亲友",
 	"add_member_text9":"请自行输入",
@@ -73,10 +73,10 @@
 	"weight":"体重",
 	"selectcanvas_text1":"请输入被评测人身高体重",
 	"selectcanvas_text2":"BMI是人体的胖瘦程度的量化指标,其大小与许多疾病风险程度相关联。",
-	"selectcanvas_text3":"身高取整数,体重按0.5公斤选取即可。",
+	// "selectcanvas_text3":"身高取整数,体重按0.5公斤选取即可。",
 	"report_user":"评测对象",
-	"selectage_test1":"请选择被评测人年龄",
-	"selectage_test2":"从29岁开始,一些对健康影响较大的慢性病的风险就开始增加,年龄无法改变,但可以改变生活习惯。",
+	"selectage_cs1":"请选择被评测人年龄",
+	"selectage_cs2":"从29岁开始,一些对健康影响较大的慢性病的风险就开始增加,年龄无法改变,但可以改变生活习惯。",
 	"next_step":"下一步",
 	"show_info_text1":"您的BMI已超过",
 	"show_info_text2":"用户",
@@ -127,6 +127,9 @@
 	"share_text":"心脑血管早期筛查,简单易得,有利无害,分享给朋友家人。",
 	"member_add_text_1":"每个人都关心家人健康",
 	"member_add_text_2":"但我们可以做得更多",
+	"member_add_text_3":"保持健康,提高生活质量!",
+	"review":"评测",
+	"health_center":"健康中心",
 	//error
 	"telno_null":"手机号必填",
 	"password_null":"密码必填",
@@ -138,7 +141,14 @@
 	"completion_problem_for_valuating_people":"请为评测对象完成问题",
 	"please_completion_problem":"请填写完内容",
 	"system_error":"系统错误",
-	"not_selected":"未选择"
-
-	
+	"not_selected":"未选择",
+	"back":"返回",
+	"privacy_policy":"隐私政策",
+	"quit":"退出",
+	"my_center":"我的",
+	"policy":"政策",
+	"bmi_text":"身体指数(BMI)",
+	"login_error":"登录失败",
+	"continue":"继续",
+	"cancel_account":"注销账户"
 }

+ 136 - 0
components/navbar.vue

@@ -0,0 +1,136 @@
+<template>
+	<view>
+		<view class="head" :style="{ height: height + 'px', background:background}">
+			<!-- <view 
+			class="back"
+			@click="back"
+			v-if="backShow"
+			:style="{ 
+				top: top + 'px',
+				color:color,
+				fontSize:'24rpx'
+			}">〈 {{backtext}}</view> -->
+			<view
+			class="back"
+			@click="back"
+			v-if="backShow"
+			:style="{ 
+				top: top + 'px',
+				color:color,
+				fontSize:'30rpx',
+				textAlign:'center',
+			}">〈 </view>
+			<view
+			class="title"
+			v-if="titleShow"
+			:style="{
+				top: top + 'px',
+				color:color,
+				'font-size': size + 'rpx'
+			}">{{title}}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { getCurrentInstance } from 'vue';
+	export default {
+		name:"navbar",
+		props: {
+			backtext: {
+				type: String,
+				default: '返回'
+			},
+			title: {
+				type: String,
+				default: '自定义标题'
+			},
+			size:{
+				type: Number,
+				default: 32
+			},
+			color:{
+				type: String,
+				default: '#000'
+			},
+			titleShow: {
+				type: Boolean,
+				default: true
+			},
+			backShow: {
+				type: Boolean,
+				default: true
+			},
+			background:{
+				type: String,
+				// default: "linear-gradient(to right, #43e97b 0%, #38f9d7 100%)"
+				default:"#3f73b3"
+			}
+		},
+		data() {
+			return {
+				height :32,
+				top:0,
+			}
+		},
+		created() {
+			//设备信息
+			let app = uni.getSystemInfoSync();
+			console.log('设备信息',app)
+			// #ifdef APP-PLUS
+			this.top = app.safeArea.top
+			this.height = 64 + app.safeAreaInsets.bottom
+			//#endif
+			
+			// #ifdef MP-WEIXIN
+			
+				//胶囊信息
+				let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
+				this.height  = app.statusBarHeight + menuButtonInfo.height + (menuButtonInfo.top - app.statusBarHeight)*2
+				this.top = menuButtonInfo.top;
+			//#endif
+			
+		},
+		methods: {
+			back(){
+				console.log('点击头部返回')
+				let page = getCurrentPages();
+				let beforPage = page[page.length-2]
+				uni.navigateBack({
+					success() {
+						beforPage.onShow();
+					}
+				});
+			}
+		}
+	}
+</script>
+
+<style>
+.head{
+	position: fixed;
+	width: 100vw;
+	z-index: 999;
+	padding: 0.5em;
+	top:0;
+	left:0;
+}
+.title{
+	position: fixed;
+	/* width: 750rpx; */
+	width: 100%;
+	text-align: center;
+	line-height: 32px;
+	height: 32px;
+}
+.back{
+	position: fixed;
+	/* width: 81rpx; */
+	text-align: center;
+	line-height: 32px;
+	height: 32px;
+	font-size: 32rpx;
+	/* font-weight: 200; */
+	z-index: 9;
+}
+</style>

+ 3 - 1
main.js

@@ -1,5 +1,6 @@
 import App from './App'
 // import c_navbar from './components/c_navbar.vue'
+import navbar from '@/components/navbar.vue'
 
  
 
@@ -9,6 +10,7 @@ import './uni.promisify.adaptor'
 import i18n from "./common/lang"
 
 // Vue.component('c_navbar',c_navbar)
+Vue.component('navbar',navbar)
 Vue.config.productionTip = false 
 App.mpType = 'app'
 const app = new Vue({
@@ -25,7 +27,7 @@ import i18n from "./common/lang"
 export function createApp() {
   const app = createSSRApp(App) 
   app.use(i18n)
-  //app.component('c_navbar',c_navbar)
+  app.component('navbar',navbar)
   return {
     app
   }

+ 30 - 5
manifest.json

@@ -2,11 +2,17 @@
     "name" : "NDAid",
     "appid" : "__UNI__E99B327",
     "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
+    "versionName" : "1.0.6",
+    "versionCode" : 116,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
+        "compatible" : {
+            //uni-app兼容模式
+            "ignoreVersion" : false,
+            "runtimeVersion" : "4.19,4.17", //字符串类型,兼容的uni-app运行环境版本号,多个版本使用,分割
+            "compilerVersion" : "4.19,4.17" //字符串类型,兼容的编译器版本号
+        },
         "usingComponents" : true,
         "nvueStyleCompiler" : "uni-app",
         "compilerVersion" : 3,
@@ -18,7 +24,7 @@
         },
         /* 模块配置 */
         "modules" : {
-            "Share" : {}
+            "VideoPlayer" : {}
         },
         /* 应用发布信息 */
         "distribute" : {
@@ -32,6 +38,8 @@
                     "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                     "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    // "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
+                    // "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",
                     "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
@@ -42,14 +50,31 @@
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ],
-                "schemes" : "testapp"
+                "schemes" : "testapp",
+                "minSdkVersion" : 35,
+                "targetSdkVersion" : 35,
+                "excludePermissions" : [
+                    "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
+                ]
             },
             /* ios打包配置 */
             "ios" : {
                 "urltypes" : "testapp",
                 "urlschemewhitelist" : "weixin,wechat",
-                "dSYMs" : false
+                "dSYMs" : false,
+                "idfa" : false,
+                "privacyDescription" : {
+                    // "NSPhotoLibraryUsageDescription" : "APP需要您的同意才能访问相册,以便于扫描产品条码",
+                    // "NSPhotoLibraryAddUsageDescription" : "APP需要您的同意才能添加图片,以便于扫描产品条码",
+                    // "NSCameraUsageDescription" : "APP需要您的同意才能访问相机,以便于扫描产品条码,若不允许,您将无法使用扫码功能",
+                    // "NSLocationWhenInUseUsageDescription" : "APP需要您的同意才能在使用期间访问位置,您可随时掌握所在位置周边门店信息"
+                    "NSPhotoLibraryUsageDescription" : "แอพต้องการความยินยอมของคุณเพื่อเข้าถึงอัลบั้มเพื่อสแกนบาร์โค้ดผลิตภัณฑ์",
+                    "NSPhotoLibraryAddUsageDescription" : "แอพต้องการความยินยอมของคุณเพื่อเพิ่มรูปภาพสำหรับการสแกนบาร์โค้ดผลิตภัณฑ์",
+                    "NSCameraUsageDescription" : "แอพต้องการความยินยอมของคุณในการเข้าถึงกล้องเพื่อ ที่จะสแกนผลิตภัณฑ์บาร์โค้ดหากไม่ได้รับอนุญาตคุณจะไม่สามารถใช้ฟังก์ชันกวาดรหัสผ่านได้"
+                }
             },
+            //"NSLocationWhenInUseUsageDescription" : "แอพต้องการความยินยอมของคุณเพื่อเข้าถึงตำแหน่ง ที่ตั้งในระหว่า งการใช้งาน และคุณสามารถควบคุมได้ตลอดเวลาเกี่ยวกับตำแหน่ง ที่ตั้ง"
             /* SDK配置 */
             "sdkConfigs" : {
                 "share" : {

+ 100 - 41
pages.json

@@ -6,10 +6,10 @@
 			{
 				"navigationBarTitleText" : "show",
 				"enablePullDownRefresh" : false,
-				"disableScroll":false,
+				"disableScroll":true,
 				"app-plus":{
-					"bounce": "none",/*app禁止回弹*/
-					"popGesture":false
+					// "bounce": "none",/*app禁止回弹*/
+					"popGesture":false  
 				}
 			}
 		}, 
@@ -50,7 +50,7 @@
 				"disableScroll":false,
 				"app-plus":{
 					"bounce": "none",/*app禁止回弹*/
-					"popGesture":false
+					"popGesture":false  
 				}
 			}
 		}, 
@@ -62,7 +62,7 @@
 				"enablePullDownRefresh" : false,
 				"app-plus":{
 					"bounce": "none",/*app禁止回弹*/
-					"popGesture":false
+					"popGesture":false  
 				}
 			}
 		},
@@ -73,6 +73,7 @@
 				"navigationBarTitleText" : "",
 				"enablePullDownRefresh" : false
 			}
+			
 		},
 		{
 			"path" : "pages/member/add",
@@ -81,6 +82,7 @@
 				"navigationBarTitleText" : "",
 				"enablePullDownRefresh" : false
 			}
+			
 		},
 		{
 			"path" : "pages/report/report",
@@ -89,17 +91,18 @@
 				"navigationBarTitleText" : "",
 				"enablePullDownRefresh" : false
 			}
+			
 		},
 		{
 			"path" : "pages/topic/common",
 			"style" : 
 			{
 				"navigationBarTitleText" : "",
-				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false
+				}
 			}
 		},
 		{
@@ -107,11 +110,11 @@
 			"style" : 
 			{
 				"navigationBarTitleText" : "",
-				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false
+				}
 			}
 		},
 		{
@@ -119,11 +122,11 @@
 			"style" : 
 			{
 				"navigationBarTitleText" : "",
-				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false
+				}
 			}
 		},
 		{
@@ -131,11 +134,11 @@
 			"style" : 
 			{
 				"navigationBarTitleText" : "",
-				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false
+				}
 			}
 		},
 		{
@@ -143,36 +146,92 @@
 			"style" : 
 			{
 				"navigationBarTitleText" : "",
-				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false 
+				}
 			}
 		},
 		{
 			"path" : "pages/topic/selectwaistline",
 			"style" : 
+			{
+				"navigationBarTitleText" : "",
+				"enablePullDownRefresh" : false,
+				"app-plus":{
+					"bounce": "none",/*app禁止回弹*/
+					"popGesture":false
+				}
+			}
+		},
+		{
+			"path" : "pages/health_center/health_center",
+			"style" : 
+			{
+				"navigationBarTitleText" : "",
+				"enablePullDownRefresh" : false
+			}
+		},
+		{
+			"path" : "pages/webview/webview",
+			"style" : 
+			{
+				"navigationBarTitleText" : "",
+				"enablePullDownRefresh" : false
+			}
+		},
+		{
+			"path" : "pages/my_center/my_center",
+			"style" : 
 			{
 				"navigationBarTitleText" : "",
 				"enablePullDownRefresh" : false
-			},
-			"app-plus":{
-				"bounce": "none",/*app禁止回弹*/
-				"popGesture":false
 			}
 		}
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
-		"navigationBarTitleText": "心脑检测",
-		"navigationBarBackgroundColor": "#648EB8",
-		"backgroundColor": "#648EB8",
-		"backgroundColorBottom":"#648EB8"
+		"navigationBarTitleText": "%navigationBarTitleText%",
+		"navigationBarBackgroundColor": "#3f73b3",
+		"backgroundColor": "#3f73b3",
+		"backgroundColorBottom":"#3f73b3",
+		"navigationStyle":"custom"
 		// "app-plus":{
-		// 	"bounce": "none",/*app禁止回弹*/
-		// 	"popGesture":false
+		// 	"titleNView": {
+		// 		"buttons": [{  
+		// 			"fontSize": "48px",
+		// 			"title":"กลับมา"  
+		// 		}]  
+		// 	} 
 		// }
 	},
-	"uniIdRouter": {}
+	"uniIdRouter": {},
+	"tabBar": {
+		"color": "#7A7E83",
+		"selectedColor": "#000000",
+		"borderStyle": "black",
+		"backgroundColor": "#ffffff",
+		"list": [
+			{
+				"pagePath": "pages/index/index",
+				"iconPath": "static/image/btns/review/dangeritem-r.png",
+				"selectedIconPath": "static/image/btns/review/dangeritem.png",
+				"text": "%review%"
+			},
+			{
+				"pagePath": "pages/health_center/health_center",
+				"iconPath": "static/image/btns/health_center/videolist.png",
+				"selectedIconPath": "static/image/btns/health_center/videolist_r.png",
+				"text": "%health_center%"
+			},
+			{
+				"pagePath": "pages/my_center/my_center",
+				"iconPath": "static/image/btns/my_center/gerenzhongxin.png",
+				"selectedIconPath": "static/image/btns/my_center/gerenzhongxin_r.png",
+				// "text": "%my_center%"
+				"text":"ของฉัน"
+			}
+		]
+	}
 }

+ 76 - 0
pages/health_center/health_center.vue

@@ -0,0 +1,76 @@
+<template>
+	<uv-toast ref="toast"></uv-toast>
+	<view class="">
+		<navbar :title="$t('health_center')" size="48" :backtext="$t('back')"  color="#fff" :backShow="false"></navbar>
+	</view>
+	<view class="app_content">
+		<view class="" v-for="(item,index) in list" :key="index">
+			<uv-row customStyle="margin-bottom: 10px">
+				<uv-col span="12" >
+					<video :id="'myVideo'+item.id" class="myVideo" :src="item.vurl"
+						@error="videoErrorCallback" controls 
+						:poster-for-crawler="item.vjpg" 
+						:danmu-btn="false"
+						:poster="item.vjpg"
+						>
+					</video>
+					<uv-text type="info" :text="item.vname" align="center"></uv-text>
+				</uv-col>
+			</uv-row>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {gethealthcenterlist} from "@/common/api/data.js"
+	export default {
+		data() {
+			return {
+				list:[],
+			}
+		},
+		methods: {
+			getlist(){
+				gethealthcenterlist().then(res=>{
+					console.log(res)
+					var data =res.data
+					if(200!=data.code){
+						this.$refs.toast.show({
+							type: 'error',
+							message: data.errMsg
+						})
+						return
+					}
+					this.list = data.resultData
+				})
+			},
+			init(){
+				this.getlist()
+			},
+			videoErrorCallback: function(e) {
+				this.$refs.toast.show({
+					type: 'error',
+					message: e.target.errMsg
+				})
+			},
+		},
+		mounted(){
+			uni.setNavigationBarTitle({
+				title: this.$t('health_center')
+			});
+			this.init()
+		},
+	}
+</script>
+
+<style scoped>
+.myVideo{
+	margin: 0 auto;
+	width: 95%;
+	margin-top: 10px;
+}
+.app_content{
+	margin-top: 3em;
+	padding-top: 2em;
+}
+</style>

+ 199 - 91
pages/index/index.vue

@@ -10,106 +10,156 @@
 		  title-align="center"
 		/>
 	</page-meta> --> 
-	<uv-toast ref="toast"></uv-toast>
-	<view class="page">
-		<view class="bar">
-			<uv-text :text="$t('navigationBarTitleText')" align="center" color="#fff" size="20"></uv-text>
-		</view>
-		<view class="bottomarc"></view>
-		<view>
-			<uv-row justify="space-between" customStyle="margin-top: 6%">
-				<uv-col span="10" offset="1" class="box1">
-					<view class='hometitle'>
-					  {{$t('index_text_1')}}
-					</view>
-					<view class="userlist">
-						<uv-row>
-							<uv-col span="10" class="scroll_div">
-								<uv-scroll-list :indicator="false">
-									<view v-for="(item, index) in userlist" :key="index" class="item">	
-										<uv-image class="img" :src="item.photourl" mode="aspectFill" 
-											shape="circle" :lazy-load="true" width="60" height="60"
-											:class="{ memberphoto_select: item.selected }"
-											@click="selected(index)">
+	<!-- <view class="">
+		<navbar :title="$t('show_report')" size="48" :backtext="$t('back')"  background="#648EB8" color="#fff" :backShow="false"></navbar>
+	</view> -->
+	<view class="app_content">
+		<uv-toast ref="toast"></uv-toast>
+		<view class="page">
+			<view class="bar">
+				<uv-text :text="$t('navigationBarTitleText')" align="center" color="#fff" size="20"></uv-text>
+			</view>
+			<view class="bottomarc"></view>
+			<view style="max-width: 810px;margin: 0 auto;">
+				<uv-row justify="space-between" customStyle="margin-top: 6%">
+					<uv-col span="10" offset="1" class="box1">
+						<view class='hometitle'>
+						  {{$t('index_text_1')}}
+						</view>
+						<view class="userlist">
+							<uv-row>
+								<uv-col span="10" class="scroll_div">
+									<uv-scroll-list :indicator="false">
+										<view v-for="(item, index) in userlist" :key="index" class="item">	
+											<uv-image class="img" :src="item.photourl" mode="aspectFill" 
+												shape="circle" :lazy-load="true" width="60" height="60"
+												:class="{ memberphoto_select: item.selected }"
+												@click="selected(index)">
+											</uv-image>
+											<uv-text :text="item.membername" align="center" customStyle="margin-top:0.3rem"></uv-text>
+										</view>
+									</uv-scroll-list>
+								</uv-col>
+								<uv-col span="2">
+									<view class="addmember">
+										<uv-image class="img" src="/static/image/fabu1.png" mode="aspectFill"
+											shape="circle" :lazy-load="true" width="50" height="50"
+											@click="insertmembe">
 										</uv-image>
-										<uv-text :text="item.membername" align="center" customStyle="margin-top:0.3rem"></uv-text>
+										<uv-text :text="$t('new_member')" align="center" customStyle="margin-top:0.3rem"></uv-text>
 									</view>
-								</uv-scroll-list>
-							</uv-col>
-							<uv-col span="2">
-								<view class="addmember">
-									<uv-image class="img" src="/static/image/fabu1.png" mode="aspectFill"
-										shape="circle" :lazy-load="true" width="50" height="50"
-										@click="insertmembe">
-									</uv-image>
-									<uv-text :text="$t('new_member')" align="center" customStyle="margin-top:0.3rem"></uv-text>
+									
+								</uv-col>
+							</uv-row>
+						</view>
+					</uv-col>
+				</uv-row>
+				<view class="">
+					<uv-row justify="space-between" customStyle="margin-top: 2rem">
+						<uv-col span="10" offset="1">
+							<view class="box2">
+								<view class="scalename">
+									{{$t('index_text_2')}}
 								</view>
-								
-							</uv-col>
-						</uv-row>
-					</view>
-				</uv-col>
-			</uv-row>
-			<view class="">
-				<uv-row justify="space-between" customStyle="margin-top: 2rem">
-					<uv-col span="10" offset="1">
-						<view class="box2">
-							<view class="scalename">
-								{{$t('index_text_2')}}
-							</view>
-							<view class="div1">
-								<uv-row>
-									<uv-col span="6">
-										 <image class="img" src="http://qiniusave.chienxutech.com/sdzyy/img/xgng3.png" ></image>
-									</uv-col>
-									<uv-col span="6">
-										<view class="">
-												<uv-text :text="$t('index_text_3')"></uv-text>
-												<uv-text :text="$t('index_text_4')" align="center" customStyle="margin-top:30px;margin-bottom:40px"></uv-text>
-												<uv-text :text="$t('index_text_5')" align="center" size="12" color="#1a1a1a"></uv-text>
-										</view>
-									</uv-col>
-								</uv-row>
-							</view>
-							<view class='scalename'>{{$t('index_text_6')}}</view>
-							<view v-if="selectuser" class="btns">
-								<!-- <view v-show="1!=selectuser.fmemberid"> -->
-								<view>
-									<uv-row v-show="0==reportinfo.comstatus">
-										<uv-col span="6"  offset="3">
-											 <view class='mybtn' @click="tostem">
-											 	  {{$t('index_btn_1')}}
-											 </view>
-										</uv-col>
-									</uv-row>
-									<uv-row gutter="20" v-show="1==reportinfo.comstatus">
-										<uv-col span="6" >
-											<view class='mybtn' @click="showreport">
-												 {{$t('index_btn_2')}}
-											</view>
+								<view class="div1">
+									<uv-row>
+										<uv-col span="6">
+											 <image class="img" src="http://qiniusave.chienxutech.com/sdzyy/img/xgng3.png" ></image>
 										</uv-col>
-										<uv-col span="6" >
-											<view class='mybtn'  @click="restem">
-												  {{$t('index_btn_3')}}
+										<uv-col span="6">
+											<view class="">
+													<uv-text :text="$t('index_text_3')"></uv-text>
+													<uv-text :text="$t('index_text_4')" align="center" customStyle="margin-top:30px;margin-bottom:40px"></uv-text>
+													<uv-text :text="$t('index_text_5')" align="center" size="12" color="#1a1a1a"></uv-text>
 											</view>
 										</uv-col>
 									</uv-row>
 								</view>
+								<view class='scalename'>{{$t('index_text_6')}}</view>
+								<view v-if="selectuser" class="btns">
+									<!-- <view v-show="1!=selectuser.fmemberid"> -->
+									<view>
+										<uv-row v-show="0==reportinfo.comstatus">
+											<uv-col span="6"  offset="3">
+												 <view class='mybtn' @click="tostem">
+													  {{$t('index_btn_1')}}
+												 </view>
+											</uv-col>
+										</uv-row>
+										<uv-row gutter="20" v-show="1==reportinfo.comstatus">
+											<uv-col span="6" >
+												<view class='mybtn' @click="showreport">
+													 {{$t('index_btn_2')}}
+												</view>
+											</uv-col>
+											<uv-col span="6" >
+												<view class='mybtn'  @click="restem">
+													  {{$t('index_btn_3')}}
+												</view>
+											</uv-col>
+										</uv-row>
+									</view>
+								</view>
+								<view v-else>
+									<p>{{$t('not_selected')}}</p>
+								</view>
+								<!-- mergerscale.comstatus -->
 							</view>
-							<view v-else>
-								<p>{{$t('not_selected')}}</p>
-							</view>
-							<!-- mergerscale.comstatus -->
-						</view>
-					</uv-col>
-				</uv-row>
-				<!-- <uv-row justify="space-between" customStyle="margin-top: 6%">
-					<uv-col span="10" offset="1" >
-						<share @dosharewechat="share"></share>
-					</uv-col>
-				</uv-row> -->
+						</uv-col>
+					</uv-row>
+					<!-- <uv-row justify="space-between" customStyle="margin-top: 6%">
+						<uv-col span="10" offset="1" >
+							<share @dosharewechat="share"></share>
+						</uv-col>
+					</uv-row> -->
+				</view>
 			</view>
 		</view>
+		<view class="">
+			<!--@maskClick="maskClick"-->
+			<uv-popup ref="popup"  mode="bottom" :closeable="false" :close-on-click-overlay="false">
+				<view class="showinfo">
+				<!-- 	<h3>เรียนผู้ใช้ ยินดีต้อนรับสู่ NDAID!</h3>
+					<br />
+					<text>
+						ที่นี่ คุณจะได้รับความรู้ด้านสุขภาพเกี่ยวกับหัวใจและหลอดเลือด และเรียนรู้เกี่ยวกับนิสัยการใช้ชีวิตเพื่อสุขภาพที่ดีต่างๆ แต่โปรดทราบว่าแอปนี้มีวัตถุประสงค์เพื่อทำให้วิทยาศาสตร์สุขภาพเป็นที่นิยม และให้คำแนะนำด้านสุขภาพในชีวิตประจำวันแก่คุณ ไม่ใช่การวินิจฉัยทางการแพทย์
+					</text>
+					<br />
+					<text>
+						เรามุ่งมั่นที่จะช่วยให้คุณพัฒนาวิถีชีวิตที่ดี เช่น การรับประทานอาหารที่เหมาะสม การออกกำลังกายในระดับปานกลาง งานประจำ และเวลาพักผ่อน เป็นต้น อย่างไรก็ตาม หากคุณมีปัญหาสุขภาพโดยเฉพาะ เราขอแนะนำให้คุณไปที่สถาบันการแพทย์ทั่วไปเพื่อรับการวินิจฉัยและการรักษา
+					</text>
+					<br />
+					<text>
+						ให้เราทำงานร่วมกันเพื่อใช้ความรู้ทางวิทยาศาสตร์เพื่อส่งเสริมชีวิตที่มีสุขภาพที่ดี!
+					</text> -->
+			
+					<h4>คุณกำลังจะใช้ฟังก์ชันที่เกี่ยวข้องกับข้อมูลสุขภาพ โปรด lưu ý:</h4>
+					<br />
+					<ul>
+						<li>ผลลัพธ์ขึ้นอยู่ наการวิจัยทางการแพทย์ที่เปิดเผย อาจมีความคลาดเคลื่อน</li>
+						<li>เป็นไปไม่ได้ที่จะแทนการวินิจฉัยของแพทย์</li>
+						<li>การใช้ต่อไปหมายความว่าคุณตระหนักถึงความเสี่ยงข้างต้นสำรวจสาธารณสุขในประเทศไทยที่จัดทำโดยมหาวิทยาลัยเกลอ</li>
+					</ul>
+					<br/>
+					<h4>The feature you are about to use involves health data. Please note:</h4>
+					<br />
+					<ul>
+						<li>The results are based on publicly available medical research and may contain errors.</li>
+						<li>It is strictly prohibited to substitute a doctor's diagnosis.</li>
+						<li>Continuing to use this feature indicates that you are aware of the above risks.</li>
+					</ul>
+					<br />
+					<view class="">
+						<!-- @change="checkchange" -->
+						<uv-checkbox-group v-model="checkvalue" >
+							<uv-checkbox :customStyle="{marginBottom: '8px'}" 
+							v-for="(item, index) in checkboxrange" :key="index" :label="item.text" :name="item.value"></uv-checkbox>
+						</uv-checkbox-group>
+						<uv-button type="primary" :text="$t('continue')" v-show="checkvalue==1" @click="close_showinfo"></uv-button>
+					</view>
+				</view>
+			</uv-popup>
+		</view>
 	</view>
 </template>
 
@@ -125,13 +175,20 @@
 				userinfo:{},
 				userlist:[], 
 				reportinfo:{},
-				selectuser:false
+				selectuser:false,
+				isshowinfo:0,
+				checkvalue:0,
+				checkboxrange: [{"value": 1,"text": "ฉันได้อ่านและ đồngยอม/I have read and agree."}]
 			}
 		},
 		components:{
 			share
 		},
 		methods: {
+			checkchange(e){
+				console.log(this.checkvalue,e)
+				this.close_showinfo()
+			},
 			getlist(){
 				let data ={userid:this.userinfo.id}
 				getlist(data).then(res=>{
@@ -170,9 +227,11 @@
 								item.photourl="/static/image/member.svg"
 							}else{
 								switch(item.gender){
+									case 1:
 									case '1':
 										item.photourl="/static/image/selecttype/man.png"
 									break;
+									case 2:
 									case '2':
 										item.photourl="/static/image/selecttype/woman.png"
 									break;
@@ -240,6 +299,12 @@
 					url: '/pages/report/report'
 				});
 			},
+			init_reload(){
+				this.userinfo = uni.getStorageSync("userinfo")
+				this.selectuser = uni.getStorageSync("selectuser")
+				this.getlist()
+				this.querymergescalebyuserid()
+			},
 			init(){
 				this.userinfo = uni.getStorageSync("userinfo")
 				this.selectuser = uni.getStorageSync("selectuser")
@@ -270,6 +335,9 @@
 				// 		}
 				// 	})
 				// })
+				if(1==this.isshowinfo){
+					this.showinfo()
+				}
 			},
 			tostem(){
 				if(this.reportinfo.stemlist == undefined){
@@ -355,6 +423,16 @@
 						console.log("fail:" + JSON.stringify(err));
 					}
 				})
+			},
+			showinfo(){
+				console.log(this.$refs);
+				this.$refs.popup.open()
+			},
+			close_showinfo(){
+				this.$refs.popup.close()
+			},
+			maskClick(){
+				this.$refs.popup.close();
 			}
 		},
 		mounted() { 
@@ -362,6 +440,27 @@
 			// 	title: this.$t('navigationBarTitleText')
 			// });
 			this.init()
+			uni.setTabBarItem({
+			  index: 0,
+			  text:  this.$t('review'),
+			  iconPath: "/static/image/btns/review/dangeritem-r.png",
+			  selectedIconPath: "/static/image/btns/review/dangeritem.png",
+			})
+			uni.setTabBarItem({
+			  index: 1,
+			  text:  this.$t('health_center'),
+			  iconPath: "/static/image/btns/health_center/videolist.png",
+			  selectedIconPath: "/static/image/btns/health_center/videolist_r.png",
+			})
+		},
+		onLoad(option){
+			if(1==option.islogin){
+				this.isshowinfo=1
+			}
+		},
+		onShow(option){
+			this.init_reload()
+			// uni.reLaunch()
 		},
 		onPullDownRefresh(){
 			this.init()
@@ -436,7 +535,7 @@
 		display:flex;
 		justify-content:center;
 		align-items:center;
-		color:#648EB8;
+		color:#3f73b3;
 		margin-top:5rpx;
 		font-weight:700;
 	}
@@ -453,4 +552,13 @@
 		margin-top: 30rpx;
 		margin-bottom: 30rpx;
 	}
+	.app_content{
+		margin-top:0px ;
+	}
+	.showinfo{
+		height: 50%;
+		padding: 1.5em;
+		padding-bottom: 5em;
+		text-align: 12rpx;
+	}
 </style>

+ 16 - 8
pages/index/show.vue

@@ -3,14 +3,22 @@
 
 <script>
 	import {islogin} from "@/common/js/common.js"
-	if(islogin()){
-		uni.redirectTo({
-			url: '/pages/index/index'
-		});
-	}else{
-		uni.redirectTo({
-			url: '/pages/login/login'
-		});
+	export default {
+		data() {
+			return {
+			}
+		},
+		onLoad(){
+			if(islogin()){
+				uni.switchTab({
+					url: '/pages/index/index'
+				});
+			}else{
+				uni.redirectTo({
+					url: '/pages/login/login'
+				});
+			}
+		}
 	}
 </script>
 

+ 23 - 5
pages/login/login.vue

@@ -6,15 +6,15 @@
 				<uv-form labelPosition="left" :model="logininfo" :rules="rules" ref="form" >
 					<uv-col span="10" offset="1">{{$t('telno')}}</uv-col>
 					<uv-col span="10" offset="1"> 
-						<uv-form-item prop="telno" borderBottom>
-							<uv-input v-model.trim="logininfo.telno" border="none">
+						<uv-form-item prop="telno" >
+							<uv-input v-model.trim="logininfo.telno" border="surround">
 							</uv-input>
 						</uv-form-item>
 					</uv-col>
 					<uv-col span="10" offset="1" customStyle="margin-top: 20px">{{$t('password')}}</uv-col>
 					<uv-col span="10" offset="1">
-						<uv-form-item  prop="pw" borderBottom>
-							<uv-input v-model.trim="logininfo.pw" :type="passwordtype"  border="none">
+						<uv-form-item  prop="pw" >
+							<uv-input v-model.trim="logininfo.pw" :type="passwordtype"  border="surround">
 							</uv-input>
 							<template v-slot:right> 
 								<uv-icon name="eye-off-outline" color="#2979ff" size="18" v-show="!showpasswod" @click="setshowpasswod"></uv-icon>
@@ -22,6 +22,9 @@
 							</template>
 						</uv-form-item>
 					</uv-col>
+					<uv-col>
+						<text @click="showPrivacyPolicy" class="privacypolicy">นโยบายความเป็นส่วนตัว</text>
+					</uv-col>
 					<uv-col span="10" offset="1">
 						<uv-button type="primary" :throttleTime="throttleTime" :text="$t('login')" customStyle="margin-top: 2rem" @click="submit"></uv-button>
 					</uv-col>
@@ -89,6 +92,12 @@
 				uni.navigateTo({
 					url: '/pages/register/register'
 				});	
+			},
+			showPrivacyPolicy(){
+				let weburl = 'https://app.chienxutech.com:30443/Uploads/ssjprivate_en.html';
+				uni.navigateTo({
+					url: '/pages/webview/webview?weburl='+weburl+'&title='+this.$t('privacy_policy')
+				});	
 			}
 		},
 		mounted(){
@@ -102,5 +111,14 @@
 	}
 </script>
 
-<style >
+<style scoped>
+	.privacypolicy{
+		margin-top: 10px;
+		text-align: center;
+		color: #2979ff;
+		font-size: 12px;
+	}
+	.uv-border{
+		border-color: #909191 !important;
+	}
 </style>

+ 11 - 7
pages/member/add.vue

@@ -2,14 +2,18 @@
 	<uv-toast ref="toast"></uv-toast>
 	<view class="titlearea">
 		<view class="firsttitle">{{$t('member_add_text_1')}}</view>
-		<view class="title_2">{{$t('member_add_text_2')}}</view>
+		<view class="title_2">
+			{{$t('member_add_text_2')}}
+			<br/>
+			{{$t('member_add_text_3')}}
+		</view>
 	</view>
 	<view class="memberarea2">
 		<uv-row class="item">
 			<uv-col span="7">
 				<uv-text :text="$t('add_member_text1')"></uv-text>
-				<uv-text :text="$t('add_member_text2')"></uv-text>
-				<uv-text :text="$t('add_member_text3')"></uv-text>
+				<!-- <uv-text :text="$t('add_member_text2')"></uv-text> -->
+				<!-- <uv-text :text="$t('add_member_text3')"></uv-text> -->
 			</uv-col>
 			<uv-col span="5">
 					<uv-row justify="around">
@@ -32,8 +36,8 @@
 		<uv-row  class="item">
 			<uv-col span="7">
 				<uv-text :text="$t('add_member_text4')"></uv-text>
-				<uv-text :text="$t('add_member_text5')"></uv-text>
-				<uv-text :text="$t('add_member_text6')"></uv-text>
+				<!-- <uv-text :text="$t('add_member_text5')"></uv-text> -->
+				<!-- <uv-text :text="$t('add_member_text6')"></uv-text> -->
 			</uv-col>
 			<uv-col span="5">
 					<uv-row justify="around">
@@ -252,7 +256,7 @@
 							type: 'success',
 							message: this.$t('do_success')
 						})
-						uni.navigateTo({
+						uni.switchTab({
 							url: '/pages/index/index'
 						})
 					}
@@ -312,7 +316,7 @@
 							type: 'success',
 							message: this.$t('do_success')
 						})
-						uni.navigateTo({
+						uni.switchTab({
 							url: '/pages/index/index'
 						})
 					}

+ 80 - 0
pages/my_center/my_center.vue

@@ -0,0 +1,80 @@
+<template>
+	<uv-toast ref="toast"></uv-toast>
+	<view class="">
+		<navbar :title="$t('my_center')" size="48" :backtext="$t('back')"  color="#fff" :backShow="false"></navbar>
+	</view>
+	<view class="app_content">
+		<uv-cell-group :title="$t('policy')">
+			<uv-cell :title="$t('privacy_policy')" :isLink="true" @click="showPrivacyPolicy"></uv-cell>
+		</uv-cell-group>
+		<br />
+		<uv-cell-group title="">
+			<uv-cell :title="$t('quit')" :isLink="true" @click="quit"></uv-cell>
+		</uv-cell-group>
+		<br />
+	<!-- 	<uv-cell-group title="">
+			<uv-cell :title="$t('cancel_account')" :isLink="true" @click="cancel_account"></uv-cell>
+		</uv-cell-group> -->
+		<uv-cell-group title="">
+			<uv-cell>
+				<template v-slot:title>
+					<text class="cancel_account" @click="cancel_account">{{$t('cancel_account')}}</text>
+				</template>
+			</uv-cell>
+		</uv-cell-group>
+	</view>
+</template>
+
+<script>
+	import {cancelaccount} from "@/common/api/user.js"
+	export default {
+		data() {
+			return {
+				userinfo:{},
+			}
+		},
+		methods: {
+			init_reload(){
+				this.userinfo = uni.getStorageSync("userinfo")
+			},
+			quit(){
+				uni.removeStorage({
+					key: 'userinfo',
+				});
+				uni.redirectTo({
+					url: '/pages/login/login'
+				});
+			},
+			showPrivacyPolicy(){
+				let weburl = 'https://app.chienxutech.com:30443/Uploads/ssjprivate_en.html';
+				uni.navigateTo({
+					url: '/pages/webview/webview?weburl='+weburl+'&title='+this.$t('privacy_policy')
+				});	
+			},
+			cancel_account(){
+				let uid = this.userinfo.id
+				let data={uid:uid}
+				cancelaccount(data)
+			}
+		},
+		mounted(){
+			uni.setNavigationBarTitle({
+				title: this.$t('my_center')
+			});
+		},
+		onShow(option){
+			this.init_reload()
+		},
+	}
+</script>
+
+<style scoped>
+	.app_content{
+		padding: 0 1em;
+	}
+</style>
+<style lang="scss" scoped>
+	.cancel_account{
+		color: $uni-color-error;
+	}
+</style>

+ 27 - 10
pages/register/register.vue

@@ -7,15 +7,15 @@
 					<uv-form labelPosition="left" :model="logininfo" :rules="rules" ref="form" >
 						<uv-col span="10" offset="1">{{$t('telno')}}</uv-col>
 						<uv-col span="10" offset="1"> 
-							<uv-form-item prop="telno" borderBottom>
-								<uv-input v-model.trim="logininfo.telno" border="none">
+							<uv-form-item prop="telno">
+								<uv-input v-model.trim="logininfo.telno" border="surround">
 								</uv-input>
 							</uv-form-item>
 						</uv-col>
 						<uv-col span="10" offset="1" customStyle="margin-top: 20px">{{$t('password')}}</uv-col>
 						<uv-col span="10" offset="1">
-							<uv-form-item  prop="pw1" borderBottom>
-								<uv-input v-model.trim="logininfo.pw1" :type="passwordtype1"  border="none">
+							<uv-form-item  prop="pw1">
+								<uv-input v-model.trim="logininfo.pw1" :type="passwordtype1"  border="surround">
 								</uv-input>
 								<template v-slot:right> 
 									<uv-icon name="eye-off-outline" color="#2979ff" size="18" v-show="!showpasswod1" @click="setshowpasswod1"></uv-icon>
@@ -26,8 +26,8 @@
 						
 						<uv-col span="10" offset="1" customStyle="margin-top: 20px">{{$t('password_repeat')}}</uv-col>
 						<uv-col span="10" offset="1">
-							<uv-form-item  prop="pw2" borderBottom>
-								<uv-input v-model.trim="logininfo.pw2" :type="passwordtype2"  border="none">
+							<uv-form-item  prop="pw2">
+								<uv-input v-model.trim="logininfo.pw2" :type="passwordtype2"  border="surround">
 								</uv-input>
 								<template v-slot:right> 
 									<uv-icon name="eye-off-outline" color="#2979ff" size="18" v-show="!showpasswod2" @click="setshowpasswod2"></uv-icon>
@@ -35,13 +35,16 @@
 								</template>
 							</uv-form-item>
 						</uv-col>
+						<uv-col>
+							<text @click="showPrivacyPolicy" class="privacypolicy">{{$t('privacy_policy')}}</text>
+						</uv-col>
 						<uv-col span="10" offset="1">
 							<uv-button type="primary" :text="$t('register')" customStyle="margin-top: 20px" @click="submit"></uv-button>
 						</uv-col>
 						
 					</uv-form>
 						<uv-col span="10" offset="1">
-							<uv-button type="primary" :plain="true" :throttleTime="throttleTime" :text="$t('login')" customStyle="margin-top: 2rem" @click="toregister"></uv-button>
+							<uv-button type="primary" :plain="true" :throttleTime="throttleTime" :text="$t('login')" customStyle="margin-top: 2rem" @click="tolgoin"></uv-button>
 						</uv-col>
 				</uv-col>
 			</uv-row>
@@ -143,6 +146,12 @@
 				uni.navigateTo({
 					url: '/pages/login/login'
 				});	
+			},
+			showPrivacyPolicy(){
+				let weburl = 'https://app.chienxutech.com:30443/Uploads/ssjprivate_en.html';
+				uni.navigateTo({
+					url: '/pages/webview/webview?weburl='+weburl+'&title='+this.$t('privacy_policy')
+				});	
 			}
 		},
 		mounted(){
@@ -154,6 +163,14 @@
 	}
 </script>
 
-<style>
-
-</style>
+<style scoped>
+	.privacypolicy{
+		margin-top: 10px;
+		text-align: center;
+		color: #2979ff;
+		font-size: 12px;
+	}
+	.uv-border{
+		border-color: #909191 !important;
+	}
+</style>

+ 165 - 133
pages/report/report.vue

@@ -1,150 +1,165 @@
 <template>
+	<view class="">
+		<navbar :title="$t('show_report')" size="48" :backtext="$t('back')"  color="#fff"></navbar>
+	</view>
 	<uv-toast ref="toast"></uv-toast>
-	<view class="page">
-		<view class="bottomarc"></view>
-		<uv-row justify="space-between" customStyle="margin-top: 6%">
-			<uv-col span="10" offset="1" class="box1">
-				<uv-row justify="space-between" class="item">
-					<uv-col span="4" align="center">{{$t('illness_title')}}</uv-col>
-					<uv-col span="4" align="center">{{$t('report_score')}}</uv-col>
-					<uv-col span="4" align="center">{{$t('report_result')}}</uv-col>
-				</uv-row>
-				<uv-row justify="space-between" v-for="(item,index) in list" :key="index" class="item">
-					<uv-col span="4" align="center"> {{item.diseasename}}</uv-col>
-					<uv-col span="4">
-						<uv-text :type="item.havrisk>0?'error':'success'" :text="item.scoreresult?item.scoreresult:0"  align="center"></uv-text>
-					</uv-col>
-					<uv-col span="4">
-							<uv-text :type="item.havrisk>0?'error':'success'" :text="item.havrisk>0?$t('risk'):$t('low_risk')" align="center"></uv-text>
-					</uv-col>
-				</uv-row>
-			</uv-col>
-		</uv-row>
-		<view class="advicearea">
-			<uv-row justify="space-between" class="item">
-				<uv-col span="12" align="center">
-					<view class="advicelabel">{{$t('report_detail')}}</view>
-				</uv-col>
-			</uv-row>
-		</view>
-		<view v-if="labellist.length>0"> 
-			<uv-tabs :list="labellist" @click="click" customStyle="align-items: center"
-			itemStyle="font-size:20px;height:40px;" current="0" @change="change"
-			:activeStyle="activeStyle" lineWidth="30"
-			></uv-tabs>
-		</view>
-		<view class="info_div">
-			<view class=""  v-if="selectitem">
-				<view class='diseasetitlestr'>
-				  {{selectitem.titlestr}}
-				</view>
-				<view v-show="selectitem.havrisk==0">
-					<uv-text :text="$t('report_text_1')+selectitem.risklimit+$t('report_text_1_1')" align="center" type="success"></uv-text>
-				</view>
-				<view v-if="selectitem.havrisk==1">
-					<uv-text :text="selectitem.riskmsg" align="center" type="error" :customStyle="customStyleRiskmsg"></uv-text>
-					<uv-text :text="$t('report_error_text_1')" align="center" :customStyle="customStyleErrorText"></uv-text>
-					<uv-text :text="$t('report_error_text_2')" align="center" :customStyle="customStyleErrorText"></uv-text>
-					<uv-text :text="$t('report_error_text_3')" align="center" :customStyle="customStyleErrorText"></uv-text>
-					<uv-row customStyle="margin-top:20rpx">
-						<uv-col span="12">
-							 <view v-show="selectitem.noticelist.length>0">
-							 	<view v-for="(item,index) in  selectitem.noticelist" :key="index">
-							 		<uv-text :text="index+1+'、'+item"></uv-text>
-							     </view>
-							 </view>
-						</uv-col>
+	<view class="app_content">
+		<view class="page">
+			<view class="bottomarc"></view>
+			<uv-row justify="space-between" customStyle="margin-top: 30%">
+				<uv-col span="10" offset="1" class="box1">
+					<uv-row justify="space-between" class="item">
+						<uv-col span="4" align="center">{{$t('illness_title')}}</uv-col>
+						<uv-col span="4" align="center">{{$t('report_score')}}</uv-col>
+						<uv-col span="4" align="center">{{$t('report_result')}}</uv-col>
 					</uv-row>
-				</view>
-				<view  v-show="selectitem.havrisk==1" class="noticearea">
-					<uv-row customStyle="">
-						<uv-col span="12" align="center">
-							 <view class="noticelabel">{{$t('health_advice')}}</view>
+					<uv-row justify="space-between" v-for="(item,index) in list" :key="index" class="item">
+						<uv-col span="4" align="center"> {{item.diseasename}}</uv-col>
+						<uv-col span="4">
+							<uv-text :type="item.havrisk>0?'error':'success'" :text="item.scoreresult?item.scoreresult:0"  align="center"></uv-text>
 						</uv-col>
-					</uv-row>
-					<uv-row customStyle="">
-						<uv-col span="12">
-							<view v-show="selectitem.advicelist.length>0">
-								<view v-for="(item,index) in  selectitem.advicelist" :key="index">
-									<uv-text :text="index+1+'、'+item"></uv-text>
-								</view>
-							</view>
+						<uv-col span="4">
+								<uv-text :type="item.havrisk>0?'error':'success'" :text="item.havrisk>0?$t('risk'):$t('low_risk')" align="center"></uv-text>
 						</uv-col>
 					</uv-row>
-				</view>
+				</uv-col>
+			</uv-row>
+			<view class="advicearea">
+				<uv-row justify="space-between" class="item">
+					<uv-col span="12" align="center">
+						<view class="advicelabel">{{$t('report_detail')}}</view>
+					</uv-col>
+				</uv-row>
 			</view>
-			<view class="report_explain">
-				<view class="advicearea">
-				    <uv-row justify="space-between" class="item">
-				    	<uv-col span="12" align="center">
-				    		<view class="advicelabel">{{$t('report_explain')}}</view>
-				    	</uv-col>
-				    </uv-row>
+			<view v-if="labellist.length>0"> 
+				<uv-tabs :list="labellist" @click="click" customStyle="align-items: center"
+				itemStyle="font-size:20px;height:40px;" current="0" @change="change"
+				:activeStyle="activeStyle" lineWidth="30"
+				></uv-tabs>
+			</view>
+			<view class="info_div">
+				<view class=""  v-if="selectitem">
+					<!-- <view class='diseasetitlestr'>
+					  {{selectitem.titlestr}}
+					</view> -->
+					<br />
+					<view v-show="selectitem.havrisk==0">
+						<uv-text :text="$t('report_text_1')+selectitem.risklimit+$t('report_text_1_1')" align="center" type="success"></uv-text>
+					</view>
+					<view v-if="selectitem.havrisk==1">
+						<uv-text :text="selectitem.riskmsg" align="center" type="error" :customStyle="customStyleRiskmsg"></uv-text>
+						<uv-text :text="$t('report_error_text_1')" align="center" :customStyle="customStyleErrorText"></uv-text>
+						<uv-text :text="$t('report_error_text_2')" align="center" :customStyle="customStyleErrorText"></uv-text>
+						<uv-text :text="$t('report_error_text_3')" align="center" :customStyle="customStyleErrorText"></uv-text>
+						<uv-row customStyle="margin-top:20rpx">
+							<uv-col span="12">
+								 <view v-show="selectitem.noticelist.length>0">
+									<view v-for="(item,index) in  selectitem.noticelist" :key="index">
+										<uv-text :text="index+1+'、'+item"></uv-text>
+									 </view>
+								 </view>
+							</uv-col>
+						</uv-row>
+					</view>
+					<view  v-show="selectitem.havrisk==1" class="noticearea">
+						<uv-row customStyle="">
+							<uv-col span="12" align="center">
+								 <view class="noticelabel">{{$t('health_advice')}}</view>
+							</uv-col>
+						</uv-row>
+						<uv-row customStyle="">
+							<uv-col span="12">
+								<view v-show="selectitem.advicelist.length>0">
+									<view v-for="(item,index) in  selectitem.advicelist" :key="index">
+										<uv-text :text="index+1+'、'+item"></uv-text>
+									</view>
+								</view>
+							</uv-col>
+						</uv-row>
+					</view>
 				</view>
-				<view class="info_div1">
-					<uv-text v-if="info.age>=40" :text="$t('report_explain_text_1')" type="info" align="center"></uv-text>
-					<uv-text v-if="info.gender=='男'" :text="$t('report_explain_text_2')" type="info" align="center"></uv-text>
-					<uv-text v-if="info.bmi>24" 
-						:text="$t('report_explain_text_3')+info.bmi+$t('report_explain_text_3_1')+info.height+$t('report_explain_text_3_2')+info.weightbmi24+$t('report_explain_text_3_3')" type="info" align="center"></uv-text>
-					<uv-text v-if="info.sbp>=140" :text="$t('report_explain_text_4')" type="info"></uv-text>
+				<view class="report_explain">
+					<view class="advicearea">
+						<uv-row justify="space-between" class="item">
+							<uv-col span="12" align="center">
+								<view class="advicelabel">{{$t('report_explain')}}</view>
+							</uv-col>
+						</uv-row>
+					</view>
+					<view class="info_div1">
+						<uv-text v-if="info.age>=40" :text="$t('report_explain_text_1')" type="info" align="center"></uv-text>
+						<uv-text v-if="info.gender=='男'" :text="$t('report_explain_text_2')" type="info" align="center"></uv-text>
+						<uv-text v-if="info.bmi>24" 
+							:text="$t('report_explain_text_3')+info.bmi+$t('report_explain_text_3_1')+info.height+$t('report_explain_text_3_2')+info.weightbmi24+$t('report_explain_text_3_3')" type="info" align="center"></uv-text>
+						<uv-text v-if="info.sbp>=140" :text="$t('report_explain_text_4')" type="info"></uv-text>
+					</view>
+					<view class='info_div1'>
+						<uv-text v-if="info.fhstroke>0||info.fhheart>0" :text="$t('report_explain_text_5')" type="info" align="center"></uv-text>
+						<uv-text v-if="info.issmoke>0||info.isdrink>0||info.isunsport>0" :text="$t('report_explain_text_6')" type="info" align="center"></uv-text>
+						<uv-text v-if="info.age>=40&&info.issmoke>0" :text="$t('report_explain_text_7')" type="info" align="center"></uv-text>
+						<view class="" v-if="info.isinspectabodomen>0||info.isteghtness>0">
+							<uv-text v-if="info.isinspectabodomen>1" :text="$t('report_explain_text_8')" type="info" align="center"></uv-text>
+							<uv-text v-if="info.isteghtness>1" :text="$t('report_explain_text_9')" type="info" align="center"></uv-text>
+						</view>
+					</view>
 				</view>
-				<view class='info_div1'>
-					<uv-text v-if="info.fhstroke>0||info.fhheart>0" :text="$t('report_explain_text_5')" type="info" align="center"></uv-text>
-					<uv-text v-if="info.issmoke>0||info.isdrink>0||info.isunsport>0" :text="$t('report_explain_text_6')" type="info" align="center"></uv-text>
-					<uv-text v-if="info.age>=40&&info.issmoke>0" :text="$t('report_explain_text_7')" type="info" align="center"></uv-text>
-					<view class="" v-if="info.isinspectabodomen>0||info.isteghtness>0">
-						<uv-text v-if="info.isinspectabodomen>1" :text="$t('report_explain_text_8')" type="info" align="center"></uv-text>
-						<uv-text v-if="info.isteghtness>1" :text="$t('report_explain_text_9')" type="info" align="center"></uv-text>
+				<uv-line color="#933333"></uv-line>
+				<view class="healthinfolist">
+					<view class="grid">
+						<uv-row justify="space-between" class="item">
+							<uv-col span="3" align="center">
+								<uv-text :text="$t('healthy_habits')" :bold="true" align="center"></uv-text>
+							</uv-col>
+							<uv-col span="2" align="center">
+								<uv-text :text="$t('y_n')" :bold="true" align="center"></uv-text>
+							</uv-col>
+							<uv-col span="7" align="center">
+								<uv-text :text="$t('healthy_personal_ratios')" :bold="true" align="center"></uv-text>
+							</uv-col>
+						</uv-row>
+						<uv-row justify="space-between" class="item" v-for="(item,index) in healthlist" :key="index">
+							<uv-col span="3" align="center">
+								<uv-text :text="item.disstr" align="center" size="12"></uv-text>
+							</uv-col>
+							<uv-col span="2" align="center">
+								<uv-text :text="item.strvalue" align="center"  size="12"></uv-text>
+							</uv-col>
+							<uv-col span="4" align="center">
+								<uv-text :text="$t('all_people')+item.allpre+'%'" align="center"  size="12"></uv-text>
+							</uv-col>
+							<uv-col span="3" align="center">
+								<uv-text :text="$t('group_people')+item.agepre+'%'" align="center"  size="12"></uv-text>
+							</uv-col>
+						</uv-row>
 					</view>
+					<uv-text :text="$t('report_text_4')"  align="center" type="info" :bold="true"></uv-text>
 				</view>
-			</view>
-			<uv-line color="#933333"></uv-line>
-			<view class="healthinfolist">
-				<view class="grid">
-					<uv-row justify="space-between" class="item">
-						<uv-col span="3" align="center">
-							<uv-text :text="$t('healthy_habits')" :bold="true" align="center"></uv-text>
-						</uv-col>
-						<uv-col span="2" align="center">
-							<uv-text :text="$t('y_n')" :bold="true" align="center"></uv-text>
-						</uv-col>
-						<uv-col span="7" align="center">
-							<uv-text :text="$t('healthy_personal_ratios')" :bold="true" align="center"></uv-text>
-						</uv-col>
-					</uv-row>
-					<uv-row justify="space-between" class="item" v-for="(item,index) in healthlist" :key="index">
-						<uv-col span="3" align="center">
-							<uv-text :text="item.disstr" align="center" size="12"></uv-text>
-						</uv-col>
-						<uv-col span="2" align="center">
-							<uv-text :text="item.strvalue" align="center"  size="12"></uv-text>
-						</uv-col>
-						<uv-col span="4" align="center">
-							<uv-text :text="$t('all_people')+item.allpre+'%'" align="center"  size="12"></uv-text>
-						</uv-col>
-						<uv-col span="3" align="center">
-							<uv-text :text="$t('group_people')+item.agepre+'%'" align="center"  size="12"></uv-text>
-						</uv-col>
-					</uv-row>
+				<!-- <uv-line color="#933333"></uv-line>
+				<view class="info_div1">
+					<uv-text :text="$t('report_text_5')"  align="center" :bold="true"></uv-text>
+					<br />
+					<uv-text :text="$t('report_text_6')"  type="info"></uv-text>
+					<uv-text :text="$t('report_text_7')"  type="info"></uv-text>
+					<uv-text :text="$t('report_text_8')"  type="info"></uv-text>
+				</view> -->
+				<uv-line color="#933333"></uv-line>
+				<view class="info_div1">
+					<uv-text :text="$t('report_text_9')" :bold="true"  align="center"></uv-text>
 				</view>
-				<uv-text :text="$t('report_text_4')"  align="center" type="info" :bold="true"></uv-text>
-			</view>
-			<!-- <uv-line color="#933333"></uv-line>
-			<view class="info_div1">
-				<uv-text :text="$t('report_text_5')"  align="center" :bold="true"></uv-text>
+				<uv-line color="#933333"></uv-line>
 				<br />
-				<uv-text :text="$t('report_text_6')"  type="info"></uv-text>
-				<uv-text :text="$t('report_text_7')"  type="info"></uv-text>
-				<uv-text :text="$t('report_text_8')"  type="info"></uv-text>
-			</view> -->
-			<uv-line color="#933333"></uv-line>
-			<view class="info_div1">
-				<uv-text :text="$t('report_text_9')" :bold="true"  align="center"></uv-text>
+				<!-- <share @dosharewechat="share"></share> -->
+				<br>
+				<view class="statement">
+					<text class="statement_title">Data source:</text>	
+					<br />
+					<text class="statement_item">【1】Guideline for the prevention and treatment of type 2 diabetes mellitus in China(2020 edition)(Part 1) [J]. Chinese Journal of Practical Internal Medicine, 2021, 41 (08): 668-695. DOI:10.19538/j.nk2021080106.</text>
+					<br />
+					<text class="statement_item">【2】Guideline for the prevention and treatment of type 2 diabetes mellitus in China(2020 edition)(Part 2) [J]. Chinese Journal of Practical Internal Medicine, 2021, 41 (09): 757-784. DOI:10.19538/j.nk2021090106.</text>
+					<br />
+					<text class="statement_item">【3】Yang X, Li J, Hu D, Chen J, Li Y, Huang J, Liu X, Liu F, Cao J, Shen C, Yu L, Lu F, Wu X, Zhao L, Wu X and Gu Dongfeng. Predicting the 10-Year Risks of Atherosclerotic Cardiovascular Disease in Chinese Population: The China-PAR Project (Prediction for ASCVD Risk in China). Circulation. 2016;134:1430-40.</text>
+				</view>
 			</view>
-			<uv-line color="#933333"></uv-line>
-			<br />
-			<!-- <share @dosharewechat="share"></share> -->
-			<br>
 		</view>
 	</view>
 </template>
@@ -431,4 +446,21 @@
 	.healthinfolist .grid {
 		margin-bottom: 8rpx;
 	}
+	.app_content{
+	}
+	.bottomarc{
+		 height:30%;
+	}
+	.statement{
+		padding: 10rpx;
+	}
+	.statement .statement_title{
+		font-size: 24rpx;
+		font-weight: bold;
+	}
+	.statement .statement_item{
+		font-size:20rpx;
+		line-height: 22rpx !important;
+		display: inline-block;
+	}
 </style>

+ 65 - 57
pages/topic/common.vue

@@ -1,67 +1,73 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>        
-		<text class='title_2'>{{$t('completion_problem_for_valuating_people')}}</text>
-		<text class='title_member'>{{$t('valuating_people')}}:{{selectuser.membername}}</text>
+	<view class="">
+		<navbar :title="$t('scale_evaluation')" size="48" :backtext="$t('back')"  color="#fff"></navbar>
 	</view>
-	<view class="info_div">
-		<view class="text_div">
-			<text class="title1">{{stemitem.stem}}</text>
+	<view class="app_content">
+		<view class='titlearea'>        
+			<text class='title_2'>{{$t('completion_problem_for_valuating_people')}}</text>
+			<text class='title_member'>{{$t('valuating_people')}}:{{selectuser.membername}}</text>
 		</view>
-		<view class="text_div">
-			<text class="title2">{{stemitem.disstr}}</text>
+		<view class="info_div">
+			<view class="text_div">
+				<view class="title1">{{stemitem.stem}}</view>
+			</view>
+			<view class="text_div">
+				<view class="title2">{{stemitem.disstr}}</view>
+			</view>
 		</view>
-	</view>
-	<view class="info_div">
-		<view class="" v-if="1==stemitem.stemtype">
-			<!-- 单选 -->
+		<view class="info_div">
+			<view class="" v-if="1==stemitem.stemtype">
+				<!-- 单选 -->
+			</view>
+			<view class="" v-if="2==stemitem.stemtype"> 
+				<!-- 多选 -->
+			</view>
+			<!-- <uv-radio-group v-model="selectanswer" placement="column" @change="change" >
+				<uv-radio 
+					shape="square"
+					iconSize="30"
+					labelSize="30"
+					size="30"
+					:customStyle="{margin: '10px'}" 
+					v-for="(item, index) in stemitem.alist" 
+					:key="index" 
+					:name="item">
+					<slot name="default">
+						<text class="select_label"> {{item.option}} 1</text>
+					</slot>
+				</uv-radio>
+			</uv-radio-group> -->
+			<radio-group @change="change" style="width: 90%;">
+				<Radio :selectvalue="index" :label="item.option" v-for="(item, index) in stemitem.alist" :key="index" />
+			</radio-group>
 		</view>
-		<view class="" v-if="2==stemitem.stemtype"> 
-			<!-- 多选 -->
+		<view class="donext_div">
+			<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
 		</view>
-		<!-- <uv-radio-group v-model="selectanswer" placement="column" @change="change" >
-			<uv-radio 
-				shape="square"
-				iconSize="30"
-				labelSize="30"
-				size="30"
-				:customStyle="{margin: '10px'}" 
-				v-for="(item, index) in stemitem.alist" 
-				:key="index" 
-				:name="item">
-				<slot name="default">
-					<text class="select_label"> {{item.option}} 1</text>
-				</slot>
-			</uv-radio>
-		</uv-radio-group> -->
-		<radio-group @change="change" style="width: 90%;">
-			<Radio :selectvalue="index" :label="item.option" v-for="(item, index) in stemitem.alist" :key="index" />
-		</radio-group>
-	</view>
-	<view class="donext_div">
-		<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
-	</view>
-	<view v-if="sindex==11&&scaleid==4" class="completedis">
-		<text class='pregresstext'>{{$t('completion_text_1')}}</text>
-		<text class='pregresstext'>{{$t('completion_text_2')}}</text>
-	</view>
-	<view class="progressarea" v-if="surplusstems<9&&surplusstems>1">
-		<text class='pregresstext'>{{surplusstems-1}}{{$t('questions_remaining')}}</text>
-    </view>
-	<view>
-		<uv-popup ref="popup" mode="bottom" @maskClick="maskClick">
-			<view  class="over_percent_div">
-				<view class="content">
-					<uv-text :text="stemitem.stem" align="center" size="25"></uv-text>
-					<uv-text :text="$t('have')+percent" type="success" bold="true" align="center" size="30"></uv-text>
-					<uv-text :text="$t('same_as_you')" align="center" size="25"></uv-text>
+		<view v-if="sindex==11&&scaleid==4" class="completedis">
+			<text class='pregresstext'>{{$t('completion_text_1')}}</text>
+			<text class='pregresstext'>{{$t('completion_text_2')}}</text>
+		</view>
+		<view class="progressarea" v-if="surplusstems<9&&surplusstems>1">
+			<text class='pregresstext'>{{surplusstems-1}}{{$t('questions_remaining')}}</text>
+		</view>
+		<view>
+			<uv-popup ref="popup" mode="bottom" @maskClick="maskClick">
+				<view  class="over_percent_div">
+					<view class="content">
+						<uv-text :text="stemitem.stem" align="center" size="25"></uv-text>
+						<uv-text :text="$t('have')+percent" type="success" bold="true" align="center" size="30"></uv-text>
+						<uv-text :text="$t('same_as_you')" align="center" size="25"></uv-text>
+					</view>
 				</view>
-			</view>
-		</uv-popup>
+			</uv-popup>
+		</view>
 	</view>
 </template>
 
 <script>
+	import nav from "@/components/navbar.vue"
 	import {tohome,tostemlistnext} from "/common/js/common.js"
 	import {subanswerbyuserid} from "/common/api/scale.js"
 	import {querypercentagebystemid} from "/common/api/health.js"
@@ -91,7 +97,7 @@
 				selectbutton2:{
 					fontSize:'30px',
 					width:'500rpx',
-					background:'#648EB8',
+					background:'#3f73b3',
 					border:"0px",
 				},
 				selectbutton3:{
@@ -282,7 +288,7 @@
 	margin-top: 20px;
 }
 .info_div .text_div{
-	text-align: center;
+	/* text-align: center; */
 	letter-spacing: "0.5em";
 	padding-left: 2em;
 	padding-right: 2em;
@@ -291,11 +297,13 @@
 	color: #363636 ;
 	font-size: 25px;
 	font-weight: bold;
+	text-align: center;
 }
 .title2{
-		color: gray;
-		font-size: 18px;
-	}
+	color: gray;
+	font-size: 18px;
+	text-align: left; 
+}
 .select_label{
 	margin-left: 20px;
 	font-size: 30px;

+ 36 - 30
pages/topic/selectage.vue

@@ -1,36 +1,42 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>        
-		<text class='title_2'>{{$t('selectage_test1')}}</text>
-		<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectage_test2')}}</text>
+	<view class="">
+		<navbar :title="$t('select_age')" size="48" :backtext="$t('back')"   color="#fff"></navbar>
 	</view>
-	<view class="agevalue">
-		<view class="">
-			{{$t('select_age')}}:
-			<text class='strage' v-show="viewage<=29">29{{$t("select_age_3")}}</text>
-			<text class='strage' v-show="viewage>29&&viewage<70">{{viewage}}{{$t("select_age_1")}}</text>
-			<text class='strage' v-show="viewage>=70">70{{$t("select_age_2")}}</text>
+	<view class="app_content">
+		<view class='titlearea'>
+			<text class='title_2'>{{$t('selectage_cs1')}}</text>
+			<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectage_cs2')}}</text>
 		</view>
-		<!-- <uv-button type="primary" :plain="true" :text="$t('select')" @click="showselectage" :customStyle="selectbutton1" :customTextStyle="selectbutton3"></uv-button> -->
-	</view>
-	<!-- <view class="">
-		<uv-picker ref="picker" :columns="columns" @confirm="confirm" @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
-	</view> -->
-	<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
-		<scroll-view style="width:100%;height: 100%;" 
-		:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
-			<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
-			canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+		<view class="agevalue">
+			<view class="">
+				{{$t('select_age')}}:
+				<text class='strage' v-show="viewage<=29">29{{$t("select_age_3")}}</text>
+				<text class='strage' v-show="viewage>29&&viewage<70">{{viewage}}{{$t("select_age_1")}}</text>
+				<text class='strage' v-show="viewage>=70">70{{$t("select_age_2")}}</text>
+			</view>
+			<!-- <uv-button type="primary" :plain="true" :text="$t('select')" @click="showselectage" :customStyle="selectbutton1" :customTextStyle="selectbutton3"></uv-button> -->
+		</view>
+		<!-- <view class="">
+			<uv-picker ref="picker" :columns="columns" @confirm="confirm" @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
+		</view> -->
+		<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
+			<scroll-view style="width:100%;height: 100%;" 
+			:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
+				<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
+				canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+				</canvas>
+			</scroll-view>
+			<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
+			canvas-id="canvas-cursor" id="canvas-cursor">
 			</canvas>
-		</scroll-view>
-		<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
-		canvas-id="canvas-cursor" id="canvas-cursor">
-		</canvas>
-	</view>
-	<view class="donext_div">
-		<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
+		</view>
+		<view class="donext_div">
+			<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
+		</view>
 	</view>
+	
 </template>
 
 <script>
@@ -48,13 +54,13 @@
 				selectbutton1:{
 					fontSize:'30px',
 					width:'500rpx', 
-					borderColor:"#648EB8",
-					color:"#648EB8",
+					borderColor:"#3f73b3",
+					color:"#ffffff",
 				},
 				selectbutton2:{
 					fontSize:'30px',
 					width:'500rpx',
-					background:'#648EB8',
+					background:'#3f73b3',
 					border:"0px",
 				},
 				selectbutton3:{

+ 67 - 59
pages/topic/selectcanvas.vue

@@ -1,71 +1,77 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>        
-	    <text class='title_2'>{{$t('selectcanvas_text1')}}</text>
-	    <text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
-	    <text class='title_desstr' decode='true'>{{$t('selectcanvas_text2')}}</text>
-	    <text class='title_desstr' decode='true'>{{$t('selectcanvas_text3')}}</text>
+	<view class="">
+		<navbar :title="$t('calculate_BMI')" size="48" :backtext="$t('back')"   color="#fff"></navbar>
 	</view>
-	<view class="info_div">
-		<view class="text_div">
-			<text class="title1">BMI:</text>
-			<text class="text">{{bmi}}</text>
+	<view class="app_content">
+		<view class='titlearea'>        
+			<text class='title_2'>{{$t('selectcanvas_text1')}}</text>
+			<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectcanvas_text2')}}</text>
+			<!-- <text class='title_desstr' decode='true'>{{$t('selectcanvas_text3')}}</text> -->
 		</view>
-	</view>
-	<view class="info_div">
-		<view class="text_div">
-			<text class="title3">{{$t('height')}}:</text>
-			<text class="text">&nbsp;{{heightvalue}}</text>
-			<text class="title2">&nbsp;CM</text>
+		<view class="info_div">
+			<view class="text_div">
+				<!-- <text class="title1">BMI:</text> -->
+				<text class="title1">{{$t("bmi_text")}}:</text>
+				<text class="text">{{bmi}}</text>
+			</view>
 		</view>
-		<!-- <view class="mybtn" @click="setheight">{{$t('select')}}</view> -->
-		<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
-			<scroll-view style="width:100%;height: 100%;" 
-			:scroll-x="true"  @scroll="scroll1" :scroll-left="scroll_left_1" :show-scrollbar="false">
-				<canvas :style="{width:style.canvasWidth_1,height:style.canvasHeight}" 
-				canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth_1">
+		<view class="info_div">
+			<view class="text_div">
+				<text class="title3">{{$t('height')}}:</text>
+				<text class="text">&nbsp;{{heightvalue}}</text>
+				<text class="title2">&nbsp;CM</text>
+			</view>
+			<!-- <view class="mybtn" @click="setheight">{{$t('select')}}</view> -->
+			<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
+				<scroll-view style="width:100%;height: 100%;" 
+				:scroll-x="true"  @scroll="scroll1" :scroll-left="scroll_left_1" :show-scrollbar="false">
+					<canvas :style="{width:style.canvasWidth_1,height:style.canvasHeight}" 
+					canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth_1">
+					</canvas>
+				</scroll-view>
+				<canvas :style="{width:style.screenWidth_1,height:style.canvasHeight}"
+				canvas-id="canvas-cursor" id="canvas-cursor">
 				</canvas>
-			</scroll-view>
-			<canvas :style="{width:style.screenWidth_1,height:style.canvasHeight}"
-			canvas-id="canvas-cursor" id="canvas-cursor">
-			</canvas>
-		</view>
-	</view>
-	<view class="info_div">
-		<view class="text_div">
-			<text class="title3">{{$t('weight')}}:</text>
-			<text class="text">&nbsp;{{weightvalue}}</text>
-			<text class="title2">&nbsp;KG</text>
+			</view>
 		</view>
-		<!-- <view class="mybtn" @click="setweight">{{$t('select')}}</view> -->
-		<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
-			<scroll-view style="width:100%;height: 100%;" 
-			:scroll-x="true"  @scroll="scroll2" :scroll-left="scroll_left_2" :show-scrollbar="false">
-				<canvas :style="{width:style.canvasWidth_2,height:style.canvasHeight}" 
-				canvas-id="canvas_ruler_2" id="canvas_ruler_2" :width="canvasWidth_2">
+		<view class="info_div">
+			<view class="text_div">
+				<text class="title3">{{$t('weight')}}:</text>
+				<text class="text">&nbsp;{{weightvalue}}</text>
+				<text class="title2">&nbsp;KG</text>
+			</view>
+			<!-- <view class="mybtn" @click="setweight">{{$t('select')}}</view> -->
+			<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
+				<scroll-view style="width:100%;height: 100%;" 
+				:scroll-x="true"  @scroll="scroll2" :scroll-left="scroll_left_2" :show-scrollbar="false">
+					<canvas :style="{width:style.canvasWidth_2,height:style.canvasHeight}" 
+					canvas-id="canvas_ruler_2" id="canvas_ruler_2" :width="canvasWidth_2">
+					</canvas>
+				</scroll-view>
+				<canvas :style="{width:style.screenWidth_2,height:style.canvasHeight}"
+				canvas-id="canvas-cursor_2" id="canvas-cursor_2">
 				</canvas>
-			</scroll-view>
-			<canvas :style="{width:style.screenWidth_2,height:style.canvasHeight}"
-			canvas-id="canvas-cursor_2" id="canvas-cursor_2">
-			</canvas>
+			</view>
 		</view>
-	</view>
-	<!-- <view class="">
-		<uv-picker ref="picker" :columns="columns" @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
-	</view> -->
-	<view class="donext_div">
-		<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
-	</view>
-	<view>
-		<uv-popup ref="popup" mode="bottom" @maskClick="maskClick">
-			<view  class="over_percent_div">
-				<view class="content">
-					<uv-text :text="$t('show_info_text1')" align="center" size="25"></uv-text>
-					<uv-text :text="over_percent" type="success" bold="true" align="center" size="30"></uv-text>
-					<uv-text :text="$t('show_info_text2')" align="center" size="25"></uv-text>
+		<!-- <view class="">
+			<uv-picker ref="picker" :columns="columns" @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
+		</view> -->
+		<view class="donext_div">
+			<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
+		</view>
+		<view>
+			<uv-popup ref="popup" mode="bottom" @maskClick="maskClick">
+				<view  class="over_percent_div">
+					<view class="content">
+						<uv-text :text="$t('show_info_text1')" align="center" size="25"></uv-text>
+						<uv-text :text="over_percent" type="success" bold="true" align="center" size="30"></uv-text>
+						<uv-text :text="$t('show_info_text2')" align="center" size="25"></uv-text>
+					</view>
 				</view>
-			</view>
-		</uv-popup>
+			</uv-popup>
+		</view>
 	</view>
 </template>
 
@@ -94,7 +100,7 @@
 				selectbutton2:{
 					fontSize:'30px',
 					width:'500rpx',
-					background:'#648EB8',
+					background:'#3f73b3',
 					border:"0px",
 				},
 				selectbutton3:{
@@ -330,6 +336,8 @@
 	    flex-direction:column;
 	    justify-content: center;  
 	    align-items:center;
+		margin-bottom: 30px;
+		font-size: 13px;
 	}
 	.title_2{
 	    margin-top:15rpx;

+ 40 - 33
pages/topic/selectsbp.vue

@@ -1,36 +1,41 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>
-		<text class='title_2'>{{$t('selectsbp_text1')}}</text>
-		<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectsbp_text2')}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectsbp_text3')}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectsbp_text4')}}</text>
+	<view class="">
+		<navbar :title="$t('blood_pressure')" size="48" :backtext="$t('back')"   color="#fff"></navbar>
 	</view>
-	<view class="agevalue">
-		<view class="">
-			{{$t('blood_pressure')}}:
-			&nbsp;{{label}}&nbsp;
-			<text class='title2'>{{label_text}}</text>
+	<view class="app_content">
+		<view class='titlearea'>
+			<text class='title_2'>{{$t('selectsbp_text1')}}</text>
+			<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectsbp_text2')}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectsbp_text3')}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectsbp_text4')}}</text>
 		</view>
-		<!-- <uv-button type="primary" :plain="true" :text="$t('select')" @click="showselectage" :customStyle="selectbutton1" :customTextStyle="selectbutton3"></uv-button> -->
-		<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
-			<scroll-view style="width:100%;height: 100%;" 
-			:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
-				<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
-				canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+		<view class="agevalue">
+			<view class="">
+				{{$t('blood_pressure')}}:
+				&nbsp;{{label}}&nbsp;
+				<text class='title2'>{{label_text}}</text>
+			</view>
+			<!-- <uv-button type="primary" :plain="true" :text="$t('select')" @click="showselectage" :customStyle="selectbutton1" :customTextStyle="selectbutton3"></uv-button> -->
+			<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
+				<scroll-view style="width:100%;height: 100%;" 
+				:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
+					<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
+					canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+					</canvas>
+				</scroll-view>
+				<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
+				canvas-id="canvas-cursor" id="canvas-cursor">
 				</canvas>
-			</scroll-view>
-			<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
-			canvas-id="canvas-cursor" id="canvas-cursor">
-			</canvas>
+			</view>
+		</view>
+		<view class="">
+			<uv-picker ref="picker" :columns="columns" @change="change" keyName="value" :showToolbar="false"  fontSize="25px"></uv-picker>
+		</view>
+		<view class="donext_div">
+			<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
 		</view>
-	</view>
-	<view class="">
-		<uv-picker ref="picker" :columns="columns" @change="change" keyName="value" :showToolbar="false"  fontSize="25px"></uv-picker>
-	</view>
-	<view class="donext_div">
-		<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
 	</view>
 </template>
 
@@ -94,13 +99,13 @@
 				selectbutton1:{
 					fontSize:'30px',
 					width:'500rpx', 
-					borderColor:"#648EB8",
-					color:"#648EB8",
+					borderColor:"#3f73b3",
+					color:"#3f73b3",
 				},
 				selectbutton2:{
 					fontSize:'30px',
 					width:'500rpx',
-					background:'#648EB8',
+					background:'#3f73b3',
 					border:"0px",
 				},
 				selectbutton3:{
@@ -273,10 +278,12 @@
 		margin-top:15rpx;
 		font-size:36rpx;
 		font-weight:400;
-		color:#666666 
+		color:#666666;
+		margin-left: 0.5em;
+		margin-right: 0.5em;
 	}
 	.title_member{
-		margin-top:30rpx;
+		margin-top:15rpx;
 		font-size:36rpx;
 		font-weight:400;
 		color:#648EB8; 
@@ -284,7 +291,7 @@
 	.title_desstr{
 		width:700rpx;
 		margin-left:25rpx;
-		margin-top:30rpx;
+		margin-top:15rpx;
 		font-size:36rpx;
 		font-weight:400;
 		color:#9C9C9C;

+ 29 - 21
pages/topic/selectsex.vue

@@ -1,25 +1,31 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>        
-		<text class='title_2'>{{$t('select_gender_for_valuating_people')}}</text>
-		<text class='title_member'>{{$t('valuating_people')}}:{{selectuser.membername}}</text>
-		<text class='title_desstr' decode='true'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{$t('select_gender_text_1')}}</text>
+	<view class="">
+		<navbar :title="$t('select_sex')" size="48" :backtext="$t('back')"   color="#FFFFFF"></navbar>
 	</view>
-	<view>
-		<uv-row justify="space-between" customStyle="margin-top: 6%">
-			<uv-col span="6" align="center" @click="selectsex(1)">
-				<uv-image class="img" src="/static/image/selecttype/man.png" mode="aspectFill"
-					shape="circle" :lazy-load="true" width="150" height="150">
-				</uv-image>
-				<view class='mybtn' >{{$t('is_man')}}</view>
-			</uv-col>
-			<uv-col span="6" align="center" @click="selectsex(2)">
-				<uv-image class="img" src="/static/image/selecttype/woman.png" mode="aspectFill"
-					shape="circle" :lazy-load="true" width="150" height="150">
-				</uv-image>
-				<view class='mybtn'  >{{$t('is_female')}}</view>
-			</uv-col>
-		</uv-row>
+	<view class="app_content">
+		<uv-toast ref="toast"></uv-toast>
+		<view class='titlearea'>        
+			<text class='title_2'>{{$t('select_gender_for_valuating_people')}}</text>
+			<text class='title_member'>{{$t('valuating_people')}}:{{selectuser.membername}}</text>
+			<text class='title_desstr' decode='true'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{$t('select_gender_text_1')}}</text>
+		</view>
+		<view>
+			<uv-row justify="space-between" customStyle="margin-top: 6%">
+				<uv-col span="6" align="center" @click="selectsex(1)">
+					<uv-image class="img" src="/static/image/selecttype/man.png" mode="aspectFill"
+						shape="circle" :lazy-load="true" width="150" height="150">
+					</uv-image>
+					<view class='mybtn' >{{$t('is_man')}}</view>
+				</uv-col>
+				<uv-col span="6" align="center" @click="selectsex(2)">
+					<uv-image class="img" src="/static/image/selecttype/woman.png" mode="aspectFill"
+						shape="circle" :lazy-load="true" width="150" height="150">
+					</uv-image>
+					<view class='mybtn'  >{{$t('is_female')}}</view>
+				</uv-col>
+			</uv-row>
+		</view>
 	</view>
 </template>
 
@@ -65,7 +71,9 @@
 					fmemberid:this.selectuser.fmemberid,
 					stemid:this.stemid,
 					answertype:this.answertype,
-					answervalue:answervalue,
+					// answervalue:answervalue,
+					// answeroptionid:answeroptionid,
+					answeroption:answervalue,
 					answeroptionid:answeroptionid
 				}
 				let data={
@@ -113,7 +121,7 @@
 		onBackPress:function(option){
 			tohome()
 			return true
-		}
+		},
 	}
 </script>
 

+ 67 - 42
pages/topic/selectwaistline.vue

@@ -1,45 +1,63 @@
 <template>
 	<uv-toast ref="toast"></uv-toast>
-	<view class='titlearea'>        
-		<text class='title_2'>{{$t('selectwaistline_text1')}}</text>
-		<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectwaistline_text2')}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectwaistline_text3')}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectwaistline_text4')}}</text>
-		<text class='title_desstr' decode='true'>{{$t('selectwaistline_text5')}}</text>
+	<view class="">
+		<navbar :title="$t('waistline')" size="48" :backtext="$t('back')"   color="#fff"></navbar>
 	</view>
-	<view class="info_div info_div_1">
-		<view class="text_div">
-			<text class="title3">{{$t('waistline')}}:</text>
-			<text class="text">{{value}}</text>
-			<text class="title3">CM</text>
+	<view class="app_content">
+		<view class='titlearea'>        
+			<text class='title_2' style="text-align: center;">{{$t('selectwaistline_text1')}}</text>
+			<text class='title_member'>{{$t('report_user')}}:{{selectuser.membername}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectwaistline_text2')}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectwaistline_text3')}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectwaistline_text4')}}</text>
+			<text class='title_desstr' decode='true'>{{$t('selectwaistline_text5')}}</text>
+		</view>
+		<view class="info_div info_div_1">
+			<view class="text_div">
+				<text class="title3">{{$t('waistline')}}:</text>
+				<text class="text">{{value}}</text>
+				<text class="title3">CM</text>
+				<!-- <text class="text" style="font-size: 20px;">{{cun}}</text>
+				<text class="title3">{{$t('waistline_text2')}}</text> -->
+			</view>
+			<!-- <view class="text_div">
+				<text class="text">{{chi}}</text>
+				<text class="title3">{{$t('waistline_text1')}}</text>
+				<text class="text">{{cun}}</text>
+				<text class="title3">{{$t('waistline_text2')}}</text>
+			</view> -->
+			<view class="text_div">
+				<text class="text" style="font-size: 20px;">{{cun}}</text>
+				<text class="title3">{{$t('waistline_text2')}}</text>
+			</view>
 		</view>
-		<!-- <view class="text_div">
-			<text class="text">{{chi}}</text>
-			<text class="title3">{{$t('waistline_text1')}}</text>
-			<text class="text">{{cun}}</text>
-			<text class="title3">{{$t('waistline_text2')}}</text>
+		<!-- <view class="info_div info_div_2">
+			<view class="mybtn" @click="setvalue">{{$t('select')}}</view>
 		</view> -->
-	</view>
-	<!-- <view class="info_div info_div_2">
-		<view class="mybtn" @click="setvalue">{{$t('select')}}</view>
-	</view> -->
-	<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
-		<scroll-view style="width:100%;height: 100%;" 
-		:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
-			<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
-			canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+		<view class="showdiv" id="showdiv" :style="{height:style.canvasHeight}">
+			<scroll-view style="width:100%;height: 100%;" 
+			:scroll-x="true"  @scroll="scroll" :scroll-left="scroll_left" :show-scrollbar="false">
+				<canvas :style="{width:style.canvasWidth,height:style.canvasHeight}" 
+				canvas-id="canvas_ruler" id="canvas_ruler" :width="canvasWidth">
+				</canvas>
+			</scroll-view>
+			<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
+			canvas-id="canvas-cursor" id="canvas-cursor">
 			</canvas>
-		</scroll-view>
-		<canvas :style="{width:style.screenWidth,height:style.canvasHeight}"
-		canvas-id="canvas-cursor" id="canvas-cursor">
-		</canvas>
-	</view>
-	<view class="">
-		<uv-picker ref="picker" :columns="columns"  @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
-	</view>
-	<view class="donext_div">
-		<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
+		</view>
+		<br />
+		<!-- <view class="info_div info_div_1">
+			<view class="text_div">
+				<text class="text" style="font-size: 20px;">{{cun}}</text>
+				<text class="title3">{{$t('waistline_text2')}}</text>
+			</view>
+		</view> -->
+		<view class="">
+			<uv-picker ref="picker" :columns="columns"  @change="change" keyName="label" :showToolbar="false"  fontSize="25px"></uv-picker>
+		</view>
+		<view class="donext_div">
+			<uv-button type="primary" :text="$t('next_step')" @click="donext" :customStyle="selectbutton2" :customTextStyle="selectbutton3"></uv-button>
+		</view>
 	</view>
 </template>
 
@@ -61,7 +79,7 @@
 				selectbutton2:{
 					fontSize:'30px',
 					width:'500rpx',
-					background:'#648EB8',
+					background:'#3f73b3',
 					border:"0px",
 				},
 				selectbutton3:{
@@ -99,8 +117,10 @@
 				return value
 			},
 			cun(){
-				var chicun = Math.round(this.value*0.3)
-				let value = chicun%10
+				// var chicun = Math.round(this.value*0.3)
+				// let value = chicun%10
+				var chicun = Math.round(this.value/2.5)
+				let value = chicun
 				return value
 			},
 			style(){
@@ -213,10 +233,12 @@
 		margin-top:15rpx;
 		font-size:36rpx;
 		font-weight:400;
-		color:#666666 
+		color:#666666;
+		padding-left: 0.5em;
+		padding-right: 0.5em;
 	}
 	.title_member{
-		margin-top:30rpx;
+		margin-top:15rpx;
 		font-size:36rpx;
 		font-weight:400;
 		color:#648EB8; 
@@ -224,7 +246,7 @@
 	.title_desstr{
 		width:700rpx;
 		margin-left:25rpx;
-		margin-top:30rpx;
+		margin-top:15rpx;
 		font-size:30rpx;
 		font-weight:300;
 		color:#9C9C9C;
@@ -289,4 +311,7 @@
 		z-index: 100;
 		pointer-events:none;
 	}
+	.app_content{
+		margin-top: 5em;
+	}
 </style>

+ 39 - 0
pages/webview/webview.vue

@@ -0,0 +1,39 @@
+<template>
+	<uv-toast ref="toast"></uv-toast>
+	<view class="">
+		<navbar title="" :size="48" :backtext="$t('back')"   color="#fff"></navbar>
+	</view>
+	<view class="app_content">
+		<web-view :src="weburl" :update-title="false" :webview-styles="wvstyles"></web-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				weburl:"",
+				usetitle:'',
+				wvstyles:{
+					height:"100%",
+					width:"100%",
+					top:"10%"
+				},
+			}
+		},
+		onLoad: function (option) {
+			this.$nextTick(()=>{
+				this.weburl = option.weburl,
+				this.usetitle = option.title
+			})
+		
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style scoped>
+	
+</style>

BIN
static/image/btns/health_center/videolist.png


BIN
static/image/btns/health_center/videolist_r.png


BIN
static/image/btns/my_center/gerenzhongxin.png


BIN
static/image/btns/my_center/gerenzhongxin_r.png


BIN
static/image/btns/review/dangeritem-r.png


BIN
static/image/btns/review/dangeritem.png