root 1 年之前
父节点
当前提交
ef793957dc
共有 100 个文件被更改,包括 4935 次插入2545 次删除
  1. 2 0
      .gitignore
  2. 11 4
      App.vue
  3. 3 3
      api/index.js
  4. 5 5
      common/config.js
  5. 105 0
      components/ProgressPlus/ProgressPlus.vue
  6. 1 1
      components/echarts-uniapp/echarts-uniapp.vue
  7. 159 110
      components/mpvueEcharts/leiDa.vue
  8. 108 23
      examWidght/components/Li-ExamWidght/Li-ExamWidght.vue
  9. 11 1
      examWidght/components/lineProgress/index.vue
  10. 77 88
      examWidght/examWidght/index.vue
  11. 33 31
      index.html
  12. 23 5
      manifest.json
  13. 560 0
      newScale/EQtest/index.vue
  14. 204 0
      newScale/EQtest/paySuccess.vue
  15. 248 0
      newScale/EQtest/paymentPage.vue
  16. 387 0
      newScale/EQtest/testPage.vue
  17. 356 0
      newScale/EQtest/testResult.vue
  18. 465 0
      package-lock.json
  19. 3 0
      package.json
  20. 45 4
      pages.json
  21. 819 720
      pages/index/index.vue
  22. 262 112
      paymentPage/paymentPage/index.vue
  23. 111 44
      paymentPage/phoneSave/index.vue
  24. 200 131
      paymentPage/queryByPhone/index.vue
  25. 27 15
      scaleTestResults/components/unTable.vue
  26. 710 1248
      scaleTestResults/testResults/index.vue
  27. 二进制
      static/images/EQtest/answer_A.png
  28. 二进制
      static/images/EQtest/answer_A_active.png
  29. 二进制
      static/images/EQtest/answer_B.png
  30. 二进制
      static/images/EQtest/answer_B_active.png
  31. 二进制
      static/images/EQtest/answer_C.png
  32. 二进制
      static/images/EQtest/answer_C_active.png
  33. 二进制
      static/images/EQtest/answer_D.png
  34. 二进制
      static/images/EQtest/answer_D_active.png
  35. 二进制
      static/images/EQtest/answer_E.png
  36. 二进制
      static/images/EQtest/answer_E_active.png
  37. 二进制
      static/images/EQtest/banner1.png
  38. 二进制
      static/images/EQtest/banner2.png
  39. 二进制
      static/images/EQtest/banner3.png
  40. 二进制
      static/images/EQtest/banner4.png
  41. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.eot
  42. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.otf
  43. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.ttf
  44. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.woff
  45. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.woff2
  46. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.eot
  47. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.otf
  48. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.ttf
  49. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff
  50. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff2
  51. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.eot
  52. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.otf
  53. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.ttf
  54. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.woff
  55. 二进制
      static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.woff2
  56. 二进制
      static/images/EQtest/index_bg.png
  57. 二进制
      static/images/EQtest/next_mark.png
  58. 二进制
      static/images/EQtest/paymentPage/complete_btn.png
  59. 二进制
      static/images/EQtest/paymentPage/dialog_bg.png
  60. 二进制
      static/images/EQtest/paymentPage/password_input_bg.png
  61. 二进制
      static/images/EQtest/paymentPage/pay_button.png
  62. 二进制
      static/images/EQtest/paymentPage/pay_scale_desc.png
  63. 二进制
      static/images/EQtest/paymentPage/pay_scale_info.png
  64. 二进制
      static/images/EQtest/paymentPage/pay_success_bg.png
  65. 二进制
      static/images/EQtest/paymentPage/payment_bg.png
  66. 二进制
      static/images/EQtest/paymentPage/phone_input_bg.png
  67. 二进制
      static/images/EQtest/paymentPage/register_bg.png
  68. 二进制
      static/images/EQtest/paymentPage/register_save_bg.png
  69. 二进制
      static/images/EQtest/paymentPage/sms_bg.png
  70. 二进制
      static/images/EQtest/paymentPage/uncomplete_btn.png
  71. 二进制
      static/images/EQtest/prev_btn.png
  72. 二进制
      static/images/EQtest/prev_mark.png
  73. 二进制
      static/images/EQtest/process_bar.png
  74. 二进制
      static/images/EQtest/process_star.png
  75. 二进制
      static/images/EQtest/question_bg.png
  76. 二进制
      static/images/EQtest/question_num_bg.png
  77. 二进制
      static/images/EQtest/result_bg_r.png
  78. 二进制
      static/images/EQtest/result_bg_w.png
  79. 二进制
      static/images/EQtest/role/role_img1.png
  80. 二进制
      static/images/EQtest/role/role_img10.png
  81. 二进制
      static/images/EQtest/role/role_img2.png
  82. 二进制
      static/images/EQtest/role/role_img3.png
  83. 二进制
      static/images/EQtest/role/role_img4.png
  84. 二进制
      static/images/EQtest/role/role_img5.png
  85. 二进制
      static/images/EQtest/role/role_img6.png
  86. 二进制
      static/images/EQtest/role/role_img7.png
  87. 二进制
      static/images/EQtest/role/role_img8.png
  88. 二进制
      static/images/EQtest/role/role_img9.png
  89. 二进制
      static/images/EQtest/role/role_medal1.png
  90. 二进制
      static/images/EQtest/role/role_medal10.png
  91. 二进制
      static/images/EQtest/role/role_medal2.png
  92. 二进制
      static/images/EQtest/role/role_medal3.png
  93. 二进制
      static/images/EQtest/role/role_medal4.png
  94. 二进制
      static/images/EQtest/role/role_medal5.png
  95. 二进制
      static/images/EQtest/role/role_medal6.png
  96. 二进制
      static/images/EQtest/role/role_medal7.png
  97. 二进制
      static/images/EQtest/role/role_medal8.png
  98. 二进制
      static/images/EQtest/role/role_medal9.png
  99. 二进制
      static/images/EQtest/role/role_name1.png
  100. 二进制
      static/images/EQtest/role/role_name10.png

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+unpackage
+node_modules

+ 11 - 4
App.vue

@@ -1,8 +1,6 @@
 <script>
 	export default {
-		onLaunch: function() {
-			console.log('App Launch')
-		},
+		onLaunch: function() {},
 		onShow: function() {
 			console.log('App Show')
 		},
@@ -14,4 +12,13 @@
 
 <style>
 	/*每个页面公共css */
-</style>
+	@font-face {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		src: url('../../static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff2') format('woff2'),
+			url('../../static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff') format('woff'),
+			url('../../static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.ttf') format('truetype');
+		font-weight: normal;
+		font-style: normal;
+		font-display: swap;
+	}
+</style>

+ 3 - 3
api/index.js

@@ -1,12 +1,12 @@
 // 答题列表
 export const getScaleInfo = "scaleInfo"
 //首页查询量表信息
-export const getScaleTitle= 'subjectInfo/getSubjectByFlagV2'
+export const getScaleTitle = 'subjectInfo/getSubjectByFlagV2'
 //点击立即测试查询或生成用户
-export const getUserInfo="scaleExternalSource/save"
+export const getUserInfo = "scaleExternalSource/save"
 //提交量表答案进行提交
 export const getResult = "result"
 //获取金额
 export const queryPromotionBySubjectId = "api/promotionInfo/queryPromotionBySubjectId"
 //获取测试记录
-export const getRecordById='getRecordById'
+export const getRecordById = 'record/getWeiboRecordById'

+ 5 - 5
common/config.js

@@ -1,17 +1,17 @@
 // const H5 = ''
 export const urlphoto = "https://test.jue-ming.com";
 // export const urlphoto =  'https://152.136.24.101'
-export const url = "https://test.jue-ming.com";
+export const url = "https://hnhong-duo.com";
 // export const url ="http://118.195.171.239";
-// export const url ="http://10.113.248.4";
-export const baseUrl = `${url}:8444/`;
+// export const url = "http://10.113.248.4";
+export const baseUrl = `${url}:8445/`;
 // export const baseUrl = `${url}:8090/`;
 export const photoUrl = `${urlphoto}:8849/`
-export const scoketUrl= "wss://cognitive.wistcm.com:8090/websocket/"
+export const scoketUrl = "wss://cognitive.wistcm.com:8090/websocket/"
 // let institution = H5 === "H5" ? "PUB001" : "PUB001"; 
 export const textContent = {
 	institutionNo: "PUB001",
 	roleType: 1
 }
 
-export const VERSION_201= "2.0.1";
+export const VERSION_201 = "2.0.1";

+ 105 - 0
components/ProgressPlus/ProgressPlus.vue

@@ -0,0 +1,105 @@
+<template>
+	<view class="progress-plus" style="width: 100%">
+		<view class="progress-box">
+			<view class="gray"></view>
+			<view class="colors" :style="setColor()"></view>
+			<view class="icon icon1"></view>
+			<view class="icon icon2"></view>
+			<view class="icon icon3"></view>
+			<view class="icon icon4"></view>
+		</view>
+		<span style="display: inline-block;padding-left: 5px" :style="{color:color}">{{ score }}</span>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'ProgressPlus',
+		props: {
+			color: {
+				type: String,
+				default: 'green'
+			},
+			percent: {
+				type: Number,
+				default: 0
+			},
+			score: {
+				type: Number,
+				default: 0
+			},
+			width: {
+				type: Number,
+				default: 200
+			}
+		},
+		methods: {
+			setColor() {
+				return {
+					'background-color': this.color,
+					'left': (this.percent - 100) + '%'
+				}
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.progress-plus {
+		display: flex;
+		align-items: center;
+
+		&>span {
+			width: 48rpx;
+			font-size: 24rpx;
+		}
+
+		.progress-box {
+			display: inline-block;
+			position: relative;
+			overflow: hidden;
+			flex: 1;
+			border-radius: 8rpx;
+
+			&>view {
+				width: 100%;
+				height: 12rpx;
+			}
+
+			.gray {
+				background-color: #E4EAF0;
+			}
+
+			.colors {
+				/*background-color: green;*/
+				position: absolute;
+				top: 0;
+				transition: left 1s;
+			}
+
+			.icon {
+				position: absolute;
+				width: 2px;
+				bottom: 0;
+				top: 0;
+				background-color: #ffffff;
+
+				&.icon1 {
+					left: 20%;
+				}
+
+				&.icon2 {
+					left: 40%;
+				}
+
+				&.icon3 {
+					left: 60%;
+				}
+
+				&.icon4 {
+					left: 80%;
+				}
+			}
+		}
+	}
+</style>

+ 1 - 1
components/echarts-uniapp/echarts-uniapp.vue

@@ -19,7 +19,7 @@
 	 */
 	// import WxCanvas from './wx-canvas.js';
 	// import * as echarts from './echarts.min.js';
-	import * as echarts from 'echarts'
+	// import * as echarts from 'echarts'
 
 	var chartList = {}
 	export default {

+ 159 - 110
components/mpvueEcharts/leiDa.vue

@@ -20,137 +20,185 @@
 			}
 		},
 		watch: {
-			indicator:{
+			indicator: {
 				immediate: true,
 				handler(newValue, oldValue) {
 					this.drawLine();
 				}
 			}
 		},
-		mounted(){
-		},
+		mounted() {},
 
 		methods: {
 			drawLine() {
 				let _this = this;
-				 
-				let legendData =
-					_this.reference?.length > 0 ? ["你的分数", "参考值"] : ["你的分数"];
 
-				_this.option = {
-					color: ["#67F9D8", "#FFE434", "#56A3F1", "#FF917C"],
+				// let legendData =
+				// 	_this.reference?.length > 0 ? ["你的分数", "参考值"] : ["你的分数"];
+				// debugger
+				// _this.option = {
+				// 	color: ["#67F9D8", "#FFE434", "#56A3F1", "#FF917C"],
+				// 	title: {
+				// 		text: "",
+				// 		left: "left",
+				// 	},
+				// 	legend: {
+				// 		data: legendData,
+				// 		orient: "vertical",
+				// 		left: "left",
+				// 	},
+				// 	radar: [{
+				// 			center: ["25%", "50%"],
+				// 			radius: 20,
+				// 			startAngle: 2,
+				// 			splitNumber: 1,
+				// 			shape: "circle",
+				// 			axisName: {
+				// 				formatter: "【{value}】",
+				// 				color: "#428BD4",
+				// 			},
+				// 			splitArea: {
+				// 				areaStyle: {
+				// 					color: ["#77EADF", "#26C3BE", "#64AFE9", "#428BD4"],
+				// 					shadowColor: "rgba(0, 0, 0, 0.2)",
+				// 					shadowBlur: 10,
+				// 				},
+				// 			},
+				// 			axisLine: {
+				// 				lineStyle: {
+				// 					color: "rgba(211, 253, 250, 0.8)",
+				// 				},
+				// 			},
+				// 			splitLine: {
+				// 				lineStyle: {
+				// 					color: "rgba(211, 253, 250, 0.8)",
+				// 				},
+				// 			},
+				// 		},
+				// 		{
+				// 			indicator: _this.indicator,
+
+				// 			center: ["50%", "50%"],
+				// 			radius: 80,
+				// 			axisName: {
+				// 				color: "#fff",
+				// 				backgroundColor: "#666",
+				// 				borderRadius: 3,
+				// 				padding: [3, 5],
+				// 			},
+				// 		},
+				// 	],
+				// 	series: [{
+				// 		type: "radar",
+				// 		radarIndex: 1,
+				// 		data: [{
+				// 				value: _this.scoreList,
+				// 				name: "你的分数",
+				// 				symbol: "rect",
+				// 				symbolSize: 12,
+				// 				lineStyle: {
+				// 					type: "dashed",
+				// 				},
+				// 				label: {
+				// 					show: true,
+				// 					formatter: function(params) {
+				// 						return params.value;
+				// 					},
+				// 				},
+				// 			},
+				// 			{
+				// 				value: _this.reference,
+				// 				name: "参考值",
+				// 				label: {
+				// 					show: true,
+				// 					formatter: function(params) {
+				// 						return params.value;
+				// 					},
+				// 				},
+				// 				areaStyle: {
+				// 					color: {
+				// 						type: 'linear',
+				// 						x: 0,
+				// 						y: 0,
+				// 						x2: 0,
+				// 						y2: 1,
+				// 						colorStops: [{
+				// 							offset: 0,
+				// 							color: 'rgba(58,132,255, 0.5)' // 0% 处的颜色
+				// 						}, {
+				// 							offset: 1,
+				// 							color: 'rgba(58,132,255, 0)' // 100% 处的颜色
+				// 						}],
+				// 						global: false // 缺省为 false
+				// 					}
+				// 				},
+				// 				// areaStyle: {
+				// 				//   color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
+				// 				//     {
+				// 				//       color: "rgba(255, 145, 124, 0.1)",
+				// 				//       offset: 0,
+				// 				//     },
+				// 				//     {
+				// 				//       color: "rgba(255, 145, 124, 0.9)",
+				// 				//       offset: 1,
+				// 				//     },
+				// 				//   ]),
+				// 				// },
+				// 			},
+				// 		],
+				// 	}, ],
+				// }
+				// console.log("==66666=====>", _this.scoreList)
+				// console.log(_this.option)
+				var option = {
 					title: {
-						text: "",
-						left: "left",
+						text: 'Basic Radar Chart'
 					},
 					legend: {
-						data: legendData,
-						orient: "vertical",
-						left: "left",
+						data: ['Allocated Budget', 'Actual Spending']
 					},
-					radar: [{
-							center: ["25%", "50%"],
-							radius: 20,
-							startAngle: 2,
-							splitNumber: 1,
-							shape: "circle",
-							axisName: {
-								formatter: "【{value}】",
-								color: "#428BD4",
+					radar: {
+						// shape: 'circle',
+						indicator: [{
+								name: 'Sales',
+								max: 6500
 							},
-							splitArea: {
-								areaStyle: {
-									color: ["#77EADF", "#26C3BE", "#64AFE9", "#428BD4"],
-									shadowColor: "rgba(0, 0, 0, 0.2)",
-									shadowBlur: 10,
-								},
+							{
+								name: 'Administration',
+								max: 16000
 							},
-							axisLine: {
-								lineStyle: {
-									color: "rgba(211, 253, 250, 0.8)",
-								},
+							{
+								name: 'Information Technology',
+								max: 30000
 							},
-							splitLine: {
-								lineStyle: {
-									color: "rgba(211, 253, 250, 0.8)",
-								},
+							{
+								name: 'Customer Support',
+								max: 38000
 							},
-						},
-						{
-							indicator: _this.indicator,
-
-							center: ["50%", "50%"],
-							radius: 80,
-							axisName: {
-								color: "#fff",
-								backgroundColor: "#666",
-								borderRadius: 3,
-								padding: [3, 5],
+							{
+								name: 'Development',
+								max: 52000
 							},
-						},
-					],
+							{
+								name: 'Marketing',
+								max: 25000
+							}
+						]
+					},
 					series: [{
-						type: "radar",
-						radarIndex: 1,
+						name: 'Budget vs spending',
+						type: 'radar',
 						data: [{
-								value: _this.scoreList,
-								name: "你的分数",
-								symbol: "rect",
-								symbolSize: 12,
-								lineStyle: {
-									type: "dashed",
-								},
-								label: {
-									show: true,
-									formatter: function(params) {
-										return params.value;
-									},
-								},
+								value: [4200, 3000, 20000, 35000, 50000, 18000],
+								name: 'Allocated Budget'
 							},
 							{
-								value: _this.reference,
-								name: "参考值",
-								label: {
-									show: true,
-									formatter: function(params) {
-										return params.value;
-									},
-								},
-								areaStyle: {
-									color: {
-										type: 'linear',
-										x: 0,
-										y: 0,
-										x2: 0,
-										y2: 1,
-										colorStops: [{
-											offset: 0,
-											color: 'rgba(58,132,255, 0.5)' // 0% 处的颜色
-										}, {
-											offset: 1,
-											color: 'rgba(58,132,255, 0)' // 100% 处的颜色
-										}],
-										global: false // 缺省为 false
-									}
-								},
-								// areaStyle: {
-								//   color: new echarts.graphic.RadialGradient(0.1, 0.6, 1, [
-								//     {
-								//       color: "rgba(255, 145, 124, 0.1)",
-								//       offset: 0,
-								//     },
-								//     {
-								//       color: "rgba(255, 145, 124, 0.9)",
-								//       offset: 1,
-								//     },
-								//   ]),
-								// },
-							},
-						],
-					}, ],
-				}
-				console.log("==66666=====>", _this.scoreList)
-				console.log(_this.option)
+								value: [5000, 14000, 28000, 26000, 42000, 21000],
+								name: 'Actual Spending'
+							}
+						]
+					}]
+				};
 			}
 		}
 	}
@@ -160,10 +208,11 @@
 	.container {
 		/* width: 750rpx; */
 		height: 320px;
-		 
+
 	}
-	.container100{
+
+	.container100 {
 		width: 100%;
 		height: 100%;
 	}
-</style>
+</style>

+ 108 - 23
examWidght/components/Li-ExamWidght/Li-ExamWidght.vue

@@ -9,7 +9,7 @@
 			</view>
 			<view class="exam-list-content fontSize16">
 				<!-- <scroll-view> -->
-				<templete v-if="QuestionList.questionType == 0">
+				<view v-if="QuestionList.questionType == 0">
 					<view class='question_select'>
 						<view v-for="(item, i) in QuestionList.QuestionOptionList" :key="i" class="disRowAroundStart"
 							:class="
@@ -21,26 +21,58 @@
 								<view class='question_circle'>
 
 								</view>
-								<view :style="{color:QuestionList.fldAnswer == item.fldOptionText?'#ffffff':'#656C74'}">
+								<view class="question_txt"
+									:style="{color:QuestionList.fldAnswer == item.fldOptionText?'#ffffff':'#656C74'}">
 									{{ item.fldOptionText }}
 								</view>
 							</view>
 						</view>
 					</view>
+				</view>
+				<view class="question_select" v-if="QuestionList.questionType == 2"><input class="ans_input"
+						@input="onKeyInput" placeholder="请输入答案" /></view>
+				<view class="question_select" v-if="QuestionList.questionType == 5">
+					<picker-view :indicator-style="indicatorStyle" :value="selectVal" @change="bindChange"
+						class="picker-view">
+						<picker-view-column>
+							<view class="item" v-for="(item,index) in selectArr" :key="index">{{item.name}}</view>
+						</picker-view-column>
+					</picker-view>
+				</view>
+				<view v-if="QuestionList.questionType == 8">
+					<view class="image_wrap">
+						<image style="width: 46%;" v-for="(item,index) in getAnswerImg(QuestionList.questionParam)"
+							:src="item" :key="index" alt="" mode="widthFix"></image>
+					</view>
+					<view class='question_select'>
+						<view v-for="(item, i) in QuestionList.QuestionOptionList" :key="i" class="disRowAroundStart"
+							:class="
+							  QuestionList.fldAnswer == item.fldOptionText
+							    ? 'checked_user'
+							    : 'checked_'
+							" @click.stop="onListItem(item)">
+							<view style='display: flex;align-items: center;'>
+								<view class='question_circle'>
 
-				</templete>
-				<view v-if="QuestionList.questionType == 2"><input class="ans_input" @input="onKeyInput"
-						placeholder="请输入答案" /></view>
+								</view>
+								<view class="question_txt"
+									:style="{color:QuestionList.fldAnswer == item.fldOptionText?'#ffffff':'#656C74'}">
+									{{ item.fldOptionText }}
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
 				<view class="exam-list-button">
 					<button v-if="currentIndex > 0" @click="goPrev" class="answer_button">
 						上一题
 					</button>
-					<!-- <button v-if="currentIndex < total && currentIndex != total - 1" @click="goNext"
+					<button v-if="currentIndex < total - 1 && QuestionList.questionType == 5" @click="goNext"
 						class="answer_button">
 						下一题
-					</button> -->
+					</button>
 
-					<button v-if="currentIndex + 1 == total" @click="subMit" style='margin-left:20px' class="answer_button">
+					<button v-if="currentIndex + 1 == total" @click="subMit" class="answer_button">
 						提交
 					</button>
 				</view>
@@ -62,8 +94,19 @@
 				// checked_: this.$imageUrl.urls.checked_,
 				isShowBtn: true,
 				blankAnswer: "",
+				indicatorStyle: `height: 50px;`,
+				selectVal: [0],
 			};
 		},
+		computed: {
+			selectArr() {
+				let arr = [];
+				if (this.QuestionList.questionType == 5) {
+					arr = JSON.parse(this.QuestionList.questionParam)
+				}
+				return arr;
+			}
+		},
 		mounted() {
 			this.isShowBtn = true;
 		},
@@ -72,8 +115,13 @@
 				this.$emit("goPrevAnswer");
 			},
 			goNext() {
-				this.$emit("goNextAnswer", this.blankAnswer);
-				this.this.blankAnswer = "";
+				if (this.QuestionList.questionType == '5') {
+					this.$emit("goNextAnswer", this.selectVal[0]);
+					this.selectVal = [0];
+				} else {
+					this.$emit("goNextAnswer", this.blankAnswer);
+					this.this.blankAnswer = "";
+				}
 			},
 			onItem(item) {
 				this.$emit("onItemAnswer", item);
@@ -95,6 +143,18 @@
 			onKeyInput: function(event) {
 				this.blankAnswer = event.target.value;
 			},
+			bindChange(e) {
+				this.selectVal = e.detail.value;
+			},
+			// 对应返回备选答案图片地址
+			getAnswerImg(param) {
+				param = JSON.parse(param);
+				let imgArr = [];
+				param.forEach(item => {
+					imgArr.push(`/static/scaleImages/${item.imgUrl}`)
+				})
+				return imgArr;
+			},
 		},
 	};
 </script>
@@ -114,12 +174,13 @@
 	}
 
 	.checked_ {
-		height: 40px;
+		display: flex;
+		align-items: center;
 		background: #E3FDFF;
 		border-radius: 10px 10px 10px 10px;
 		opacity: 1;
-		line-height: 40px;
 		margin-bottom: 18px;
+		min-height: 40px;
 	}
 
 	.checked_user {
@@ -127,8 +188,6 @@
 		color: #ffffff;
 		border-radius: 10px 10px 10px 10px;
 		opacity: 1;
-		height: 40px;
-		line-height: 40px;
 		margin-bottom: 18px;
 		/* color: #3fb4c9;
 		padding: 15px 0;
@@ -137,6 +196,7 @@
 		border-radius: 50px;
 		margin-bottom: 10px;
 		font-weight: bold; */
+		min-height: 40px;
 	}
 
 	.exam-list-button {
@@ -165,33 +225,58 @@
 		line-height: 26px;
 		background-color: #ffffff;
 		padding-top: 10px;
+		padding: 20rpx 40rpx 0 40rpx;
 
 	}
 
 	.answer_button {
-		width:100%;
+		flex: 1;
 		background-color: #03A2AD;
 		color: #ffffff;
 		font-size: 16px;
+		margin: 0 20rpx;
 	}
 
 	.question_circle {
-		width: 14px;
-		height: 14px;
+		width: 28rpx;
+		height: 28rpx;
 		border-radius: 50%;
 		border: 2px solid #03A2AD;
 		background: #ffffff;
-		margin-left: 14px;
-		margin-right: 20px
+		margin: 0 28rpx;
 	}
 
 	.question_select {
 		background-color: #ffffff;
 		padding-left: 10px;
 		padding-right: 10px;
-		padding-top: 30px;
-		padding-bottom: 40px;
-		border-bottom-left-radius:10px;
-		border-bottom-right-radius: 10px;
+		padding: 60rpx 40rpx 80rpx 40rpx;
+	}
+
+	.question_txt {
+		box-sizing: border-box;
+		padding: 10rpx 10rpx 10rpx 0;
+		flex: 1;
+		line-height: 1.8;
+		letter-spacing: 2px;
+	}
+
+	.picker-view {
+		width: 100%;
+		height: 500rpx;
+		margin-top: 20rpx;
+	}
+
+	.item {
+		line-height: 100rpx;
+		text-align: center;
+	}
+
+	.image_wrap {
+		width: 100%;
+		display: flex;
+		justify-content: space-around;
+		background: #ffffff;
+		padding-top: 20rpx;
 	}
 </style>

+ 11 - 1
examWidght/components/lineProgress/index.vue

@@ -3,6 +3,7 @@
 		<text v-show='total>0' style='color:black' space="ensp" decode="true"><text
 				class='pro-chu'>出题{{currentIndex+1}}</text><text class='pro-fen'>/{{total}}</text>
 			{{' '}}</text>
+		<view class="title_tips">选择你的答案进入下一题</view>
 		<progress style='width:100%;margin-top:8px' :percent="percentage" border-radius="20" backgroundColor='#E3FDFF'
 			activeColor="#3FB4C9" stroke-width="8" />
 	</view>
@@ -30,7 +31,6 @@
 		},
 		methods: {
 			percentageLineProgress(num, total) {
-				// debugger;
 				if (num == 0 || total == 0) {
 					return 0;
 				}
@@ -79,4 +79,14 @@
 		line-height: 20px;
 		margin-left: 3px;
 	}
+
+	.title_tips {
+		font-size: 24rpx;
+		font-family: Source Han Sans-Regular, Source Han Sans;
+		font-weight: 400;
+		color: #656C74;
+		line-height: 34rpx;
+		float: right;
+		margin: 16rpx 34rpx 0 0;
+	}
 </style>

+ 77 - 88
examWidght/examWidght/index.vue

@@ -1,8 +1,8 @@
 <template>
-	<view class='question_class'>
-		<view class=''>
-			<LineProgress class='pro-bg' :currentIndex="currentIndex" :total="total" />
-			<swiper :current="currentIndex" style="height: 98vh">
+	<view class="question_class">
+		<view class="">
+			<LineProgress class="pro-bg" :currentIndex="currentIndex" :total="total" />
+			<swiper :current="currentIndex" style="height: 98vh" :disable-touch="true">
 				<swiper-item style="overflow-y: scroll" v-for="(item, indexa) in QuestionListAll" :key="indexa" m
 					catchtouchmove="catchTouchMove">
 					<scroll-view scroll-y @scrolltolower="" style="height: 90vh">
@@ -13,12 +13,9 @@
 				</swiper-item>
 			</swiper>
 		</view>
-
 	</view>
-
 </template>
 
-
 <script>
 	import examWidght from "@/examWidght/components/Li-ExamWidght/Li-ExamWidght.vue";
 	import LineProgress from "@/examWidght/components/lineProgress";
@@ -26,13 +23,13 @@
 		getScaleInfo,
 		getUserInfo,
 		getResult,
-		queryPromotionBySubjectId
-	} from '@/api/index.js'
+		queryPromotionBySubjectId,
+	} from "@/api/index.js";
 	var _this;
 	export default {
 		components: {
 			examWidght,
-			LineProgress
+			LineProgress,
 		},
 		data() {
 			return {
@@ -59,25 +56,27 @@
 				// 当前索引
 				scale_index: 0,
 				//量表flag
-				flag: '',
+				flag: "",
 				//分享人的uid
-				uid: '',
+				uid: "",
 				//来源
-				source: '',
+				source: "",
 				//是否重复点击标志
 				loading: false,
 				//支付金额
-				price: '',
+				price: "",
 				//量表结果保存的唯一id
-				resultId: ''
-
-			}
-		},
-		destroyed() {
-
+				resultId: "",
+				userInfo: null,
+			};
 		},
+		destroyed() {},
 		onLoad(options) {
 			_this = this;
+			uni.pageScrollTo({
+				scrollTop: 0,
+				duration: 50
+			})
 			//查看是否传进来flag
 			_this.uid = options.uid;
 			_this.source = options.source;
@@ -90,19 +89,16 @@
 			}
 			//调用接口
 
-
 			//根据传过来的参数进行渲染题目
 			// console.log(_this.$request)
 			// this.queryTopic()
 		},
 
 		onHide() {
-
 			// clearInterval(this.timer);
 			// https://blog.csdn.net/weixin_42738504/article/details/125521004
 		},
 		methods: {
-
 			//根据flag查询渲染的结果
 			// queryTopic() {
 			// 	this.$request.get({
@@ -115,20 +111,16 @@
 			// },
 			//查询用户信息
 			selectUser() {
-				_this.$request
-					.post({
-						url: `${getUserInfo}`,
-						loadingTip: "加载中...",
-						data: {
-							uid: this.uid,
-							source: this.source,
-							flag: this.flag
-						},
-					}).then((res) => {
-						//查询到数据将用户信息
-						sessionStorage.setItem('user', JSON.stringify(res.data.user))
-						sessionStorage.setItem('token', res.data.token)
+				this.$request
+					.get({
+						url: 'system/temporaryUser',
+						loadingTip: "加载中..."
 					})
+					.then((res) => {
+						this.userInfo = res.data.user;
+						sessionStorage.setItem("user", JSON.stringify(res.data.user));
+						sessionStorage.setItem("token", res.data.token);
+					});
 			},
 			//上一题
 			goPrevAnswer() {
@@ -147,6 +139,11 @@
 			},
 			//下一题
 			goNextAnswer(blankAnswer) {
+				if (_this.scale_infos[_this.currentIndex].questionType == "5") {
+					let paramsArr = JSON.parse(_this.scale_infos[_this.currentIndex].questionParam);
+					blankAnswer = paramsArr[blankAnswer].label
+				}
+
 				if (blankAnswer) {
 					_this.QuestionListAll[_this.currentIndex].checkItems = blankAnswer;
 					_this.QuestionListAll[_this.currentIndex].fldAnswer = blankAnswer;
@@ -230,14 +227,13 @@
 					return;
 				} else {
 					_this.currentIndex = _this.currentIndex + 1;
-
-					_this.QuestionListAll[_this.currentIndex - 1].checkItems = item.fldOptionText;
+					_this.QuestionListAll[_this.currentIndex - 1].checkItems =
+						item.fldOptionText;
 					_this.QuestionListAll[_this.currentIndex - 1].fldAnswer =
 						item.fldOptionText;
 					let QuestionListNew = Object.assign({},
 						_this.QuestionListAll[_this.currentIndex]
 					);
-
 					_this.QuestionList = QuestionListNew;
 				}
 			},
@@ -264,8 +260,7 @@
 
 				//调用提交答案的接口
 
-				this.createResult()
-
+				this.createResult();
 
 				// uni.navigateTo({
 				// 	url:'/paymentPage/paymentPage/index'
@@ -274,11 +269,12 @@
 				// console.log(uni.$u)
 				// uni.$u.throttle(this.createResult, 2500);
 			},
+
 			// 生成测试结果
 			createResult() {
 				let _this = this;
 				if (this.loading) {
-					return
+					return;
 				}
 				this.loading = true;
 				let subMitListData = _this.QuestionListAll;
@@ -288,12 +284,10 @@
 					delete item.questionID;
 				});
 
-
-
 				let params = {
 					testPlanId: "",
 					scale_result: subMitListData,
-					userId: JSON.parse(sessionStorage.getItem('user')).id,
+					userId: JSON.parse(sessionStorage.getItem("user")).id,
 				};
 				console.log("提交的参数", params);
 
@@ -305,15 +299,27 @@
 					.post({
 						url: `${getResult}/${_this.flag}`,
 						loadingTip: "加载中...",
-						data: params
+						data: params,
 					})
 					.then((res) => {
 						_this.resultId = res.data;
+						_this.$request.post({
+							url: `scaleExternalSource/save`,
+							loadingTip: "加载中...",
+							data: {
+								currentUserId: _this.userInfo.id,
+								resultId: _this.resultId,
+								uid: _this.uid,
+								source: _this.source,
+								flag: _this.flag,
+							},
+						}).then(() => {})
 						uni.hideLoading();
 						// 答题结束获取支付
 						_this.getQueryPromotionBySubjectId(_this.flag);
 						_this.loading = false;
-					}).catch(() => {
+					})
+					.catch(() => {
 						uni.showToast({
 							icon: "none",
 							title: "提交失败",
@@ -323,6 +329,7 @@
 			},
 			// 获取支付金额
 			async getQueryPromotionBySubjectId(id) {
+				let _this = this;
 				let urls = queryPromotionBySubjectId + "/" + id;
 				await _this.$request
 					.get({
@@ -331,48 +338,29 @@
 						data: {},
 					})
 					.then((res) => {
-						_this.price = res.data.price;
-						if (res.data.price == 0) {
-							console.log("=获取支付金额接口数据==1==》", res);
+						console.log('量表支付信息', res.data);
+						let data = res.data;
+						if (data.price == 0) {
 							uni.navigateTo({
-								url: "/scaleTestResults/testResults/index?resultId=" +
-									_this.resultId +
-									"&messageShare=1",
+								url: `/scaleTestResults/testResults/index?resultId=${_this.resultId}&messageShare=1`
 							});
 						} else {
-							console.log("=获取支付金额接口数据=2===》", res);
-							let params = null
-							// #ifdef MP-WEIXIN
-							params = {
+							let params = {
 								productId: id,
-								userId: _this.userInfo?.user?.id,
+								userId: _this.userInfo?.id,
 								resultId: _this.resultId,
-								description: res.data.name,
-								total: res.data.price,
-								openId: _this.userInfo?.openId?.openId,
+								description: data.name,
+								total: data.price,
+								sceneType: uni.getSystemInfoSync().platform == "android" ?
+									"Android" : "iOS",
 							};
-							_this.getNative(params);
-							// #endif
-							// #ifdef MP-TOUTIAO	
-							params = {
-								resultId: _this.resultId,
-								subject: res.data.name,
-								body: res.data.name,
-								total_amount: res.data.price * 100,
-								msgPage: '',
-							};
-							_this.getNative(params);
-							// #endif
-							// #ifdef H5
-							let ips = "125.70.61.175";
-							params.payerClientIp = sessionStorage.getItem("ip") || ips;
-							params.sceneType = uni.getSystemInfoSync().platform == "android" ? "Android" : "iOS";
-							debugger;
-							_this.getH5Pay(params);
-							// #endif
+							sessionStorage.setItem('orderInfo', JSON.stringify(params))
+							uni.navigateTo({
+								url: "/paymentPage/paymentPage/index",
+							});
 						}
 					});
-			},
+			}
 		},
 	};
 </script>
@@ -382,7 +370,7 @@
 	}
 
 	.question_class {
-		background: linear-gradient(180deg, #D8FFF2 0%, #46E2ED 42%, #BEFFE8 98%);
+		background: linear-gradient(180deg, #d8fff2 0%, #46e2ed 42%, #beffe8 98%);
 		border-radius: 0px 0px 0px 0px;
 		padding-left: 10px;
 		padding-right: 10px;
@@ -394,20 +382,21 @@
 		padding-right: 10px;
 		padding-top: 20px;
 		/* background: url('/static/images/question_main.png') no-repeat 100% 100%; */
-		background-image: url('/static/images/question_main.png');
+		background-image: url("/static/images/question_main.png");
 		/* background-size:contain; */
 		background-size: 100% 100px;
 		background-repeat: no-repeat;
 		background-position: top;
 	}
+
 	.pro-bg {
-		background-image: url('/static/images/question_main1.png');
+		background-image: url("/static/images/question_main1.png");
 		/* background-size: contain; */
-		background-size:100% 100%;
+		background-size: 100% 100%;
 		background-position: top;
 		background-repeat: no-repeat;
-		padding-top:20px;
-		padding-left:10px;
-		padding-right:10px;
+		padding-top: 80rpx;
+		padding-left: 40rpx;
+		padding-right: 40rpx;
 	}
 </style>

+ 33 - 31
index.html

@@ -1,32 +1,34 @@
 <!DOCTYPE html>
-<html lang="en" >
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title></title>
-    <!--preload-links-->
-    <!--app-context-->
-  </head>
-  <body>
-    <div id="app"><!--app-html--></div>
-    <script type="module" src="/main.js"></script>
-  </body>
-  <style>
-      html{
-		  font-size: 54px !important;
-		  background: #f6f6f6;
-	  }
-	  #app{
-		  width:100%;
-		  max-width: 10rem;
-		  margin:auto;
-		  min-height:100vh;
-	  }
-  </style>
-</html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8" />
+		<script>
+			var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+				CSS.supports('top: constant(a)'))
+			document.write(
+				'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+				(coverSupport ? ', viewport-fit=cover' : '') + '" />')
+		</script>
+		<title>丁香解忧</title>
+		<link rel="icon" href="/static/images/favicon.ico">
+		<script src="https://cdn.jsdelivr.net/npm/echarts@5.3.0/dist/echarts.min.js"></script>
+		<!--preload-links-->
+		<!--app-context-->
+	</head>
+	<body>
+		<div id="app"><!--app-html--></div>
+		<script type="module" src="/main.js"></script>
+	</body>
+	<style>
+		html {
+			background: #f6f6f6;
+		}
+
+		#app {
+			width: 100%;
+			max-width: 750rpx;
+			margin: auto;
+			min-height: 100vh;
+		}
+	</style>
+</html>

+ 23 - 5
manifest.json

@@ -1,7 +1,7 @@
 {
-    "name" : "psychic_pub",
-    "appid" : "",
-    "description" : "",
+    "name" : "psy_web_share",
+    "appid" : "__UNI__2917BA0",
+    "description" : "丁香解忧",
     "versionName" : "1.0.0",
     "versionCode" : "100",
     "transformPx" : false,
@@ -63,10 +63,28 @@
         "usingComponents" : true
     },
     "mp-toutiao" : {
-        "usingComponents" : true
+        "usingComponents" : true,
+        "optimization" : {
+            "subPackages" : true
+        }
     },
     "uniStatistics" : {
         "enable" : false
     },
-    "vueVersion" : "3"
+    "vueVersion" : "3",
+    "locale" : "zh-Hans",
+    "fallbackLocale" : "zh-Hans",
+    "h5" : {
+        "router" : {
+            "mode" : "history",
+            "base" : "/webo/"
+        },
+        "template" : "index.html",
+        "title" : "丁香解忧",
+        "optimization" : {
+            "treeShaking" : {
+                "enable" : true
+            }
+        }
+    }
 }

+ 560 - 0
newScale/EQtest/index.vue

@@ -0,0 +1,560 @@
+<template>
+	<view class="bg">
+		<image class="banner banner1" src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner1.png"
+			mode="widthFix"></image>
+		<image class="banner banner2" src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner2.png"
+			mode="widthFix"></image>
+		<image class="banner banner3" src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner3.png"
+			mode="widthFix"></image>
+		<image class="banner banner4" src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner4.png"
+			mode="widthFix"></image>
+		<view class="contral_box">
+			<view class="agreement" :class="{ 'shake-animation': isShake }">
+				<checkbox-group @change="checkboxChange">
+					<checkbox value="cb" :checked="isChecked" color="#999999" style="transform:scale(0.7)" />
+				</checkbox-group>
+				同意<text @click="toggle">《测评服务条款》</text>立即开始测试
+			</view>
+
+			<view class="go_test" @click="goTest">
+				<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/start_btn.png"
+					mode="widthFix"></image>
+			</view>
+		</view>
+		<view class="popup-main">
+			<!-- 普通弹窗 -->
+			<uni-popup ref="popup" class='' type="bottom" background-color="#fff">
+
+				<view class="popup-content">
+					<view class='popup-cuo'>
+						<uni-icons @click="close()" type="clear" size="30"></uni-icons>
+					</view>
+					<view class='popup-title-cla'>测评平台服务协议</view>
+					<view class='popup-detail'>
+						<view>【更新时间:2023年10月25日】</view>
+
+						<view>【生效时间:2023年10月25日】</view>
+
+
+						<view>尊敬的用户:</view>
+						<view>欢迎您选择并使用红朵心理测评产品。</view>
+						<view>
+							红朵提醒您,请仔细阅读以下全部内容,请您重点阅读的条款(尤其是知识产权授权、个人信息使用授权条款)。如果您不同意本协议的任一或全部条款内容,请不要以确认的形式(包括但不限于:点击确认、进入使用程序等)进行下一步操作或使用本协议项下服务。
+						</view>
+
+						<view>一、本协议的确认及相关定义</view>
+
+						<view>二、本协议的生效与终止</view>
+
+						<view>三、账户的注册、使用和注销</view>
+						<view>四、用户信息发布规则</view>
+						<view>五、【知识产权授权】*</view>
+						<view>六、【个人信息使用授权】*</view>
+						<view>七、个人信息与隐私保护</view>
+						<view>八、保密义务</view>
+						<view>九、反贿赂</view>
+						<view>十、免责条款</view>
+						<view>十一、违约责任</view>
+						<view>十二、有效通知及平台联系信息</view>
+						<view>十三、其他</view>
+						<view>一、本协议的确认及相关定义</view>
+						<view>(一)用户注册协议的确认</view>
+						<view>
+							当您确认接受用户注册协议(以下简称“本协议”或“用户协议”)或同意通过平台使用红朵心理产品,即表示您作为乙方(以下简称“乙方”“用户”)与红朵(平台运营主体:广州市人心网络科技有限公司,以下简称“甲方”、“红朵”)已达成协议关系,并自愿接受并遵守红朵提供服务涉及的,包括本协议在内的所有服务规范及相关子协议、管理规范、咨询服务规则等。您可以根据自主需要,在平台上使用包括但不限于测评、咨询、倾诉、课程、问答、读书会等产品,您在使用上述产品前,应当了解相关产品的使用规则,在详尽阅读了解并同意后使用。
+							红朵有权就本协议及相关子协议、管理规范、产品使用规则等文件(以下合称“服务协议”)进行更新,包括但不限于不定时发布或修订红朵服务规则、使用规则、公告、提示、通知等内容,更新将会通过系统提示、站内信息推送和/或您在平台留下的联系方式通知和提醒您注意,更新内容将在前述通知和提醒指定日期开始生效。如您继续使用服务,即意味着您同意接受我方更新后的服务协议,您的权利以及义务的表述、服务内容和费用及其结算标准等,均以最新的服务协议为准。如您不同意变更后的服务协议,请您停止使用本产品和服务。
+						</view>
+						<view>(二)相关定义</view>
+						<view>红朵:指甲方运营的心理测评网站(含手机端、PC端)、APP程序、其他网络渠道等。</view>
+						<view>红朵平台服务:包括但不限于红朵在平台上提供的测评、咨询、倾诉、课程、问答、读书会、知识科普等产品服务。</view>
+
+						<view>根据本协议,红朵为您提供平台产品服务,您将通过红朵心理测评平台进行产品服务的使用,协议具体内容供双方遵守执行:</view>
+						<view>(三)平台服务</view>
+						<view>1.甲方为乙方在平台提供一个心理服务媒介,乙方通过该服务媒介有权使用红朵心理测评平台提供的心理产品服务。</view>
+						<view>2.用户协议内容与其他单项产品规则、服务规则、网站规则或服务协议存在冲突的,以其他特别规则约定为准。</view>
+						<view>3.用户在使用相关产品前,应当充分阅读并理解产品规则的内容(如有),同意按照页面规则享有、使用产品服务。</view>
+						<view>4.红朵有权根据运营需要更新、优化、下架、暂停、终止平台功能、产品、服务等。红朵上线新的模块、功能、产品或服务的,均适用本用户协议的内容。</view>
+						<view>5.红朵有权因定期、不定期的平台维护或运营需要,暂缓、终止提供平台服务,用户将会提前得到平台通知。因此造成的传输或连接迟延、不准确、错误、疏漏或无法使用等,平台不承担相关责任。
+						</view>
+						<view>二、本协议的生效与终止</view>
+						<view>(一)生效</view>
+						<view>1.本协议在用户点击确认本用户协议,并登录使用平台时开始生效。</view>
+						<view>(二)、终止的情形</view>
+						<view>1.【用户发起的终止】用户有权通过以下任一方式终止本协议:</view>
+						<view>(1) 服务协议更新后,用户停止使用平台及其产品服务的;</view>
+						<view>(2)服务协议更新后,用户明示不接受更新后服务协议的;</view>
+						<view>(3)用户主动注销帐户的。</view>
+						<view>2.【红朵发起的终止】出现以下情况时,红朵有权无须通知用户即终止本协议:</view>
+						<view>(1) 乙方违反用户协议规定的,甲方有权不通知乙方即时终止本协议;</view>
+						<view>(2) 乙方盗用他人帐户、发布违法/侵权信息、骗取他人财物、扰乱网站秩序、采取不正当手段牟利或有其他违法/违约行为的,红朵有权对用户的帐户予以查封、注销;</view>
+						<view>(3) 除上述情形外,若用户3次(或以上)违反红朵服务协议相关产品服务规则的,红朵有权对用户的帐户予以查封、注销;</view>
+						<view>(4)用户的帐户被红朵依据用户协议注销的;</view>
+						<view>(5) 其它违反用户协议、服务协议的行为。</view>
+						<view>3.协议终止后的处理</view>
+						<view>(1)【用户信息披露】本协议终止后,除法律、法规有明确规定外,红朵不向用户或任何第三方提供帐户中的任何信息;同时也没有义务保留乙方的任何信息,乙方应当在协议终止前保存。
+						</view>
+						<view>(2)【平台权利】本协议终止后,红朵仍享有下列权利:</view>
+						<view>
+							①继续保存用户使用平台及产品服务时,对服务协议等各类文件的勾选、确认记录,对产品服务的使用痕迹、路径等(该信息不得涉及用户使用信息缓存、用户个人信息或用户隐私信息等,不得将该信息提供给任何第三方);
+						</view>
+						<view>② 对于用户的违约行为、造成的侵权损害等,平台保留追究违约责任的权利。</view>
+						<view>三、账户的注册、使用和注销</view>
+						<view>1.您确认:在注册、使用红朵平台及其产品服务时,您应当具备完全民事行为能力。</view>
+						<view>2.您是未满18周岁的未成年人的,应当取得监护人同意,由监护人进行用户注册,并在监护人同意和监护下使用红朵平台产品服务。</view>
+						<view>3.用户不具备用户资格的,由此产生一切责任、后果由使用人及其监护人承担,红朵有权立即注销不具备用户资格的帐户。</view>
+						<view>4.乙方注册、使用的帐户所有权归属甲方,乙方享有帐户的排他使用权,非经乙方许可,任何第三方不得使用乙方注册的帐户,任何第三方使用乙方帐户进行操作的,视为乙方本人的操作。
+						</view>
+						<view>5.用户按照平台注册流程完成注册程序后,可以获得平台帐户的使用权并成为平台用户。用户可以按平台显示的功能使用帐户,设置或修改帐户密码等,用户对自己的帐户和密码安全负责。
+						</view>
+						<view>6.帐户不得以任何方式转让、赠与或继承,发生任何不当使用帐户的行为或可能危害帐户使用安全的,用户应当立即通知红朵,要求红朵暂停帐户服务;红朵亦有权主动介入,暂停提供帐户服务。
+						</view>
+						<view>
+							7.一位用户限使用一个帐户。凡存在不当注册或不当使用多个帐户的,红朵有权注销多余帐户(保留最早注册帐户,数据保留以最早注册帐户为准)并视情况拒绝提供用户服务,因此对红朵造成损失的,用户应当承担赔偿责任。
+						</view>
+
+						<view>
+							8.实名认证:根据中华人民共和国法律、法规的规定,为了保护网络信息安全及更好地向用户提供用户服务,红朵有权要求用户及时完成实名认证;用户在使用红朵产品服务时,按使用规则要求需要进行实名认证的,应当在完成实名认证后使用相关产品服务。
+						</view>
+						<view>9.账户注销:</view>
+						<view>(1)用户有权主动注销账户,账户注销后,红朵不得继续保留用户个人信息,用户个人信息应当在十个工作日内删除;</view>
+						<view>
+							(2)用户使用帐户过程中,可以要求红朵删除其个人信息;用户在帐户使用过程中要求红朵删除其个人信息的,可能会导致部分产品服务无法提供,因此造成的用户损失由用户自行承担;删除个人信息后,长期未登录使用的帐户,红朵有权暂停帐户服务。
+						</view>
+						<view>10.合法性</view>
+						<view>(1)用户应当遵守中华人民共和国法律、法规的规定,不得将红朵产品服务用于任何违法、违规、违背道德的行为,否则红朵有权拒绝提供产品服务、注销帐户等。严禁包括但不限于以下行为:
+						</view>
+						<view>① 违反中华人民共和国宪法、法律、法规、政策规定的;</view>
+						<view>② 危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统一的;</view>
+						<view>③ 损害国家、民族荣誉和利益的,损害社会公共利益的;</view>
+						<view>④ 煽动民族仇恨、民族歧视、破坏民族团结的;</view>
+						<view>⑤ 宣扬邪教、封建迷信的;</view>
+						<view>⑥ 散布谣言、扰乱社会秩序、破坏社会稳定的;</view>
+						<view>⑦ 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆违法、犯罪的;</view>
+						<view>⑧ 侮辱、诽谤他人,侵害他人合法权益的;</view>
+						<view>⑨ 违背社会公序良俗,影响恶劣的;</view>
+						<view>⑩ 以非法目的使用帐户、产品服务、网络服务系统的;</view>
+						<view>⑪ 故意制作、传播计算机病毒等破坏性程序的;</view>
+						<view>⑫ 其他危害计算机信息网络安全的行为;</view>
+						<view>⑬ 有法律、行政法规、政府政策禁止的其他行为。</view>
+						<view>
+							(2)用户设置的帐户昵称不得违反国家法律、法规及红朵相关规则,不得使用国家政要人名、不得使用侮辱诽谤他人的名称、不得使用侵犯第三方知识产权或企业字号的名称,否则红朵有权终止用户的帐户昵称使用;因此造成任何权属争议、赔偿、损失等均由用户承担。
+						</view>
+						<view>11.真实性</view>
+						<view>(1)用户完成实名注册和使用产品服务时,应当提供真实、准确、最新及完整的本人资料,对于资料更新的应该及时进行帐户信息更新,以确保资料的时效性。</view>
+						<view>(2)用户提供的资料错误、不实、超过时效、不完整或具误导性的,红朵有权暂停或终止提供帐户服务。</view>
+						<view>12.更新维护</view>
+						<view>(1)用户应当及时更新帐户信息,以保证提供的信息最新、真实、完整、有效。</view>
+						<view>
+							(2)红朵按用户提供的最新联系信息无法与用户取得联系、用户未按红朵的要求及时提供信息、用户提供的信息明显不实或经行政司法机关核实为无效信息的,用户应当承担因此造成的全部损失与不利后果。
+						</view>
+						<view>(3)红朵有权暂停或终止提供帐户服务,直至用户更新最新的用户信息,红朵不因此承担任何责任。</view>
+						<view>四、用户信息发布规则</view>
+						<view>
+							1.用户发布的信息、评论、文章等内容的著作权归属用户所有或已获得著作权人授权可用于红朵平台发布,不得违反法律法规的规定、不得违背社会公序良俗、不得侵犯任何第三方或红朵的合法权益、不得虚构任何不实信息或传播谣言、不得发布广告内容或联系方式、引用内容不超过发布内容的20%等,否则,红朵有权下架、删除、屏蔽上述信息、封禁或注销帐户等,造成的任何法律责任由用户自行承担。
+						</view>
+						<view>2.您应当确保所发布的内容不包含以下类目:</view>
+						<view>(1)违反国家法律、法规规定的;</view>
+						<view>(2)干涉政治宣传、封建迷信、淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;</view>
+						<view>(3)欺诈、虚假、不准确或存在误导性的;</view>
+						<view>(4)侵犯他人知识产权、涉及第三方商业秘密或其他专有权利的;</view>
+						<view>(5)侮辱、诽谤、恐吓、涉及他人隐私等侵害他人合法权益的;</view>
+						<view>(6)可能破坏、篡改、删除、影响网站系统正常运行、窃取平台数据、窃取用户数据及个人资料的;</view>
+						<view>(7)发布含病毒、木马、爬虫等恶意软件、程序代码的;</view>
+						<view>(8)发布未经证实的信息、谣言的;</view>
+						<view>(9)发布非红朵的广告宣传内容、个人或他人联系信息的;</view>
+						<view>(10)其他损害社会公共利益、违背公序良俗或依据平台其他规定不得在网站发布的。</view>
+						<view>3.权利主张</view>
+						<view>若您认为本平台的内容(含其他用户发布的内容)或通过本平台获得的内容可能侵犯您的或任何第三方的合法权益,请您以书面形式或通过平台“投诉/举报”渠道向红朵反馈。
+
+							反馈时,请提供您的身份证明(身份证信息、联系信息)、内容权属证明、具体链接(URL)及详细侵权情况说明等,红朵将尽快核实相应内容并与您取得联系;确定争议双方信息后,将联系双方协调处理。
+
+							如果您陈述的权利通知失实,由您承担由此造成的全部法律责任。</view>
+						<view>五、【知识产权授权】*</view>
+						<view>
+							1.红朵拥有平台内的所有产品、技术、程序、资料、信息内容(包括但不限于文字、图片、图像、照片、音频、视频、图表、色彩、版面设计、电子文档)的所有权利(包括但不限于著作权、商标权、专利权、商业秘密及其他所有相关权利)。
+						</view>
+						<view>
+							2.用户在平台发表的各类作品,同意将作品的著作权【独家】【永久】【无偿】授权给红朵商业使用:包括但不限于复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权、维权权利以及应当由著作权人享有的其他著作财产权利。
+						</view>
+						<view>3.用户在平台发表的各类作品,被第三人侵权转载、使用的,红朵有权单独起诉向第三人主张维权,红朵提起诉讼所支付的成本由红朵承担,获得的全部赔偿由红朵享有。</view>
+						<view>
+							4.红朵有权使用上述各类授权作品,包括但不限于在平台发表、在其他自媒体渠道发表、改编为其他类型作品、汇编为其他作品或与红朵其他作品共同进行汇编等,红朵改编为其他类型作品的,改编作品的所有权归属红朵所有。
+						</view>
+						<view>5.用户有权在自有渠道、个人的自媒体帐户发表上述各类授权作品,但不得授权任何第三方使用(包括不得授权供职单位使用),用户使用上述各类授权作品同时不得阻碍红朵使用。</view>
+						<view>六、【个人信息使用授权】*</view>
+						<view>
+							1.红朵平台记录的运营数据,包括但不限于用户信息、用户列表、用户关系、用户的使用数据、交易数据、订单数据等(如有),其全部的权利均归属于红朵。红朵不得超过提供产品服务的范围收集上述信息,亦不得超过提供产品服务的范围使用上述信息。
+						</view>
+						<view>
+							2.未经红朵书面同意,任何人不得利用用户列表、用户关系等向用户发送宣传信息,不得擅自保存、备份、泄露、使用或授权他人使用前述运营数据。用户协议终止或解除后,红朵不向用户提供或备份上述数据。
+						</view>
+						<view>3.用户授权红朵在必要的范围内,在提供产品服务过程中使用甲方的个人信息。</view>
+						<view>4.用户注销帐户的,红朵应当及时删除用户的个人信息;用户有权在帐户使用过程中要求删除其个人信息。</view>
+						<view>七、个人信息与隐私保护</view>
+						<view>1.您应当妥善保管好帐户号码及密码等帐户信息,若发现帐户被他人使用的,应当立即通知红朵处理。</view>
+						<view>2.因不可抗力(包括黑客行为、计算机病毒、系统不稳定等)、遭受他人诈骗或您主动泄露、保管疏忽导致账号、密码被他人使用的,红朵不承担任何责任。</view>
+						<view>3.红朵重视对您信息的保护,关于您的个人信息将依照《红朵隐私政策》受到规范和保护,请用户点击并完整阅读 《红朵隐私政策》,以帮助您更好地保护个人信息。</view>
+						<view>八、保密义务</view>
+						<view>
+							1.双方对本协议内容和因签署、履行本协议而获得或接触到的对方商业信息、商业秘密及其他未披露的资料和信息(包括但不限于产品服务内容信息、个人隐私、财务信息、技术信息等)应当严格保密;未经对方书面同意,任何一方不得将上述信息的全部或部分通过任何方式使用或以任何方式泄露给第三方,为履行本协议使用除外:
+						</view>
+						<view>(1)接受方内部有必要了解相关信息的雇员或其关联公司及其雇员;</view>
+						<view>(2)对接受方负有保密义务的事务性合作伙伴,包括律师事务所(律师)、会计师事务所(会计师)、审计事务所(审计师)、评估事务所(评估师)等;</view>
+						<view>(3)依据有关法律法规要求、行政指令等而向政府部门、司法部门、证券交易所或其他监管机构披露。</view>
+						<view>2.未经对方书面同意,不得擅自使用、复制对方的商标、标志、商业信息、技术及其他资料。</view>
+						<view>3.任何一方不得以任何方式直接或间接对另一方进行诋毁性评价、负面/消极评价,或有任何对另一方声誉造成不利影响的行为。</view>
+						<view>4.保密期限至相关信息置于公开领域为止。</view>
+						<view>九、反贿赂</view>
+						<view>1.红朵坚持并认真贯彻国家关于反商业贿赂的各项规定,建立健全反不正当交易行为和反商业贿赂的长效机制。</view>
+						<view>
+							2.红朵坚持严厉打击商业贿赂行为,对违反相关规定的员工,严肃查处、惩罚和教育,情节严重的,移送司法机关处理;对违反相关规定的用户或合作伙伴,一经查实,红朵有权终止对用户提供服务或合作关系,情节严重的,移送司法机关处理。
+						</view>
+						<view>
+							3.红朵愿意在公开透明、公正平等、诚实信用的合作机制下,与所有用户及合作伙伴“共赢”美好明天。真诚希望用户及合作伙伴能理解并支持本红朵的反商业贿赂政策,并欢迎对红朵及员工进行监督,发现相关情况的时候及时向红朵反馈。
+						</view>
+						<view>十、免责条款</view>
+						<view>1.避风港原则</view>
+						<view>(1)用户发布并授权红朵使用的信息、评论、文章、图片等内容应当遵守“用户信息发布规则”,红朵对于用户发布的上述内容不提供担保义务。</view>
+						<view>(2)由于第三方认为用户发表的内容违法、侵权的,相关责任及损害由用户出面主动解决并承担相应的责任,红朵有权及时删除上述内容。</view>
+						<view>2.外部链接</view>
+						<view>
+							红朵原则上不允许在平台中传播任何外部链接,因此不对平台外部链接的可用性、安全性负责,不认可外部链接的任何内容、宣传、产品、服务等,任何人发现外部链接应当及时向红朵举报,由红朵下架处理。
+							任何使用外部链接引起的纠纷与红朵无关,红朵不对任何外部链接承担任何责任。</view>
+						<view>3.心理咨询</view>
+						<view>
+							(1)用户理解、知悉并同意心理咨询的效果取决于咨询师与用户双方配合作用的结果。无论用户采用什么样的咨询方式,红朵、咨询师并不保证用户接受心理咨询后一定能达到某种效果;未达到用户心理预期的心理咨询效果,不属于服务质量问题。心理咨询服务结束后一般不予退款,且红朵、咨询师对服务结果、退费等不承担任何法律责任。
+						</view>
+						<view>
+							(2)在心理咨询服务过程中,由于用户自身原因引起的突发疾病或意外死亡,或由于自身原因引起的自伤、自残、自杀等,红朵及其咨询师尽可能采取措施控制事态恶化,必要时与用户的紧急联系人、相关部门、医疗机构取得联系。由此造成的损害后果由用户本人(或监护人)承担,平台、心理咨询师不承担损害责任。
+						</view>
+
+
+						<view>(3)平台提供的心理咨询服务不属于疾病诊断、治疗或医疗服务,不属于国务院《医疗机构管理条例》的医疗机构,用户同意:不得以接受的心理咨询服务为非医疗服务为由主张任何权利</view>
+
+						<view>
+							(4)有自杀倾向或自杀未遂的用户,应当向危机干预机构或符合法律规定的医疗机构寻求治疗帮助。心理咨询师不提供危机干预或治疗服务,用户因此最终选择自杀、自伤、自残的,责任及后果由用户自行承担。
+						</view>
+
+						<view>(5)用户对心理咨询服务引起的争议、费用纠纷、服务质量纠纷等,争议的解决方案以咨询师和用户协商一致为准,红朵对争议提供平等协商干预,红朵不承担任何责任。</view>
+
+						<view>(6)禁止私下交易:</view>
+
+						<view>① 咨询师与用户不得私下交易(包括但不限于私下转账交易或通过第三方平台交易);</view>
+
+						<view>② 私下交易属于严重根本违约,红朵有权直接注销用户的帐户,因此给甲方造成的任何损失,用户承担全部赔偿责任;</view>
+
+						<view>③ 咨询师与用户因私下交易发生纠纷的,由其双方自行解决,与甲方无关;因此给甲方造成的任何损失,用户承担全部赔偿责任;</view>
+
+						<view>(7)心理咨询服务自完成起超过一年的,红朵不提供争议的平等协商干预,由用户与心理咨询师另行协商解决。</view>
+
+						<view>(8)用户使用平台心理咨询服务的,应当遵守心理咨询相关协议、规则、知情同意书等。</view>
+
+						<view>4.红朵测评</view>
+
+						<view>
+							(1)红朵测评根据心理学一般规则研发,用户完成测试后的结果由系统自动生成,测评结果和个人分析报告仅供用户单方参考,红朵对测评结果不负任何保证义务,不承担任何形式的法律责任;不得用于心理疾病的治疗、心理危机的干预或解除等。
+						</view>
+						<view>(2)当您选择使用红朵的心理测评服务时,请注意以下内容:
+						</view>
+
+						<view>①测评题目可免费查看作答,测评结果报告需付费阅读【价格以产品首页展示为准】;</view>
+
+						<view>②因每个人不同,测评结果亦因人而异,测评结果仅供参考,不作为医学心理诊断;</view>
+
+						<view>③测评过程没有严格的时间限制,但一般建议在20分钟内完成;</view>
+
+						<view>④测评答案无对错之分,且您的作答将得到严格保密,请您放心如实作答。</view>
+
+						<view>(3)非测评系统造成的问题,不予退费。</view>
+
+						<view>
+							5.红朵不保证由不可抗力因素或第三方引起的网络服务及时性、安全性、准确性问题。请用户务必及时保存自己的相关资料,否则因网络服务中断、维修、检修、维护等导致的任何损失,平台不承担相关责任。
+						</view>
+
+						<view>十一、违约责任</view>
+
+						<view>
+							1.协议双方应当严格遵守用户协议及相关服务协议、规则的约定,不得违反协议约定或损害对方合法权益、利用平台损害第三方合法权益。
+						</view>
+						<view>
+							2.协议一方在知悉对方违约时,有权通知违约方采取有效合理的补救措施纠正违约行为,并赔偿守约方损失。违约方在收到通知后七日内仍未纠正违约行为的,守约方有权单方书面解除本协议,注销帐户。
+						</view>
+						<view>3.守约方解除本协议或违约方采取补救措施并不妨碍守约方依照合同约定追究违约方的违约责任。
+						</view>
+						<view>4.违约责任:</view>
+						<view>
+							平台由于违约、侵权等事由造成来访者损害的,损害赔偿额以来访者实际支付款项总额为限承担责任。
+						</view>
+						<view>来访者由于违约、侵权等事由造成咨询师损害的,损害赔偿额以咨询师实际损失为限承担责任。
+						</view>
+						<view>5.损失:即包括但不限于因此对第三方的赔偿金、收入损失、投入成本损失、维权差旅费用、诉讼费、公证费、律师费等。
+						</view>
+
+
+						<view>十二、有效通知及平台联系信息</view>
+						<view>
+							1.用户应当准确填写并及时更新提供给红朵的电子邮箱地址、联系电话、联系地址、邮政编码等联系信息,保证联系信息的有效性,以便红朵通过用户提供的联系信息可以有效、及时联系。
+						</view>
+						<view>2.通过用户提供的联系信息无法与用户取得联系,因此导致平台的任何损失或增加成本、咨询师费用、用户自身损失、未及时知悉服务协议更新等,由用户承担全部责任。
+						</view>
+						<view>3.平台联系信息:</view>
+						<view>
+							收件地址:河南省郑州市高新技术产业开发区西四环206号3号楼
+						</view>
+						<view>收件人:红朵信息科技心理平台部 (收)</view>
+
+						<view>邮编:450000</view>
+
+						<view>电子邮箱:hongduo_tech@126.com</view>
+
+						<view>红朵按以上平台联系信息为有效送达信息,红朵通过用户提供的电子邮箱地址向用户送达的通知等相关文件,属于有效送达。
+						</view>
+
+
+						<view>十三、其他</view>
+						<view>
+							1.本协议双方均无权对外代表另一方明示或默示作出任何陈述或保证。</view>
+						<view>
+							2.本协议的任何条款,因法律、法规、政策变更导致无效或无法执行,该条款的单独无效不影响其他条款的效力,其他条款仍具有法律效力。
+						</view>
+						<view>3.甲乙双方应共同遵守本协议的内容,在执行过程中发生纠纷的,应友好协商,协商不成的,双方均有权向广州市天河区人民法院提起诉讼解决
+						</view>
+					</view>
+					<view style="padding: 10px;">
+						<button class='popup-know' @click="close()">我知道了</button>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+		<view class='modal_box' v-show='modalFlag'>
+			<view class='modal_box_inner'>
+				<view class='modal_tk'>
+					请阅读<text class="tk_link" @click="toggle()">《测评服务条款》</text>,点击同意并立即测试,开始测评答题!
+				</view>
+				<view class='ty_class' @click='agreeFun()'>同意并进入产品</view>
+				<view class='bty_class' @click="unAgreeFun()">不同意</view>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				isChecked: true,
+				isShake: false
+			}
+		},
+		onLoad() {
+			this.createUser();
+		},
+
+		methods: {
+			//查询用户信息
+			createUser() {
+				this.$request
+					.get({
+						url: 'system/temporaryUser',
+						loadingTip: "加载中..."
+					})
+					.then((res) => {
+						sessionStorage.setItem("user", JSON.stringify(res.data.user));
+						sessionStorage.setItem("token", res.data.token);
+					});
+			},
+
+			checkboxChange(e) {
+				this.isChecked = !this.isChecked;
+			},
+			goTest() {
+				if (!this.isChecked) {
+					uni.showToast({
+						icon: 'none',
+						title: '请勾选并同意测评服务条款'
+					})
+					this.isShake = true;
+					setTimeout(() => {
+						this.isShake = false;
+					}, 500);
+					return
+				}
+
+				uni.navigateTo({
+					url: '/newScale/EQtest/testPage'
+				})
+			},
+			toggle() {
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open()
+			},
+			close() {
+				this.$refs.popup.close();
+				this.isChecked = true;
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.bg {
+		width: 100%;
+		height: 3707rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/index_bg.png) no-repeat center;
+		background-size: cover;
+		text-align: center;
+	}
+
+	.banner {
+		width: 702rpx;
+	}
+
+	.banner1 {
+		margin: 34rpx auto 12rpx;
+	}
+
+	.banner2 {
+		margin: 12rpx auto 12rpx;
+	}
+
+	.banner3 {
+		margin: 12rpx auto 12rpx;
+	}
+
+	.banner4 {
+		margin: 12rpx auto 12rpx;
+	}
+
+	.contral_box {
+		box-sizing: border-box;
+		width: 100%;
+		height: 182rpx;
+		background: #FFFFFF;
+		overflow: hidden;
+	}
+
+	.agreement {
+		display: flex;
+		align-items: center;
+		font-family: Alibaba PuHuiTi 2.0;
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 39rpx;
+		margin: 26rpx 0 16rpx 53rpx;
+	}
+
+	.agreement input {
+		width: 43rpx;
+		height: 43rpx;
+		background: #FFFFFF;
+		border-radius: 4rpx;
+		border: 1px solid #999999;
+		margin-right: 23rpx;
+	}
+
+	.agreement text {
+		color: #0060FF;
+	}
+
+	.go_test {
+		margin: 0 auto;
+		cursor: pointer;
+		margin-bottom: 46rpx;
+	}
+
+	.go_test:active {
+		opacity: 0.8;
+	}
+
+	.go_test img {
+		width: 640rpx
+	}
+
+	::v-deep .uni-checkbox-input {
+		width: 43rpx;
+		height: 43rpx;
+		background: #FFFFFF;
+		border-radius: 4rpx;
+		border: 1px solid #999999;
+	}
+
+	::v-deep uni-checkbox:not([disabled]) .uni-checkbox-input:hover {
+		border-color: #666666;
+	}
+
+	/* 关键帧 */
+	@keyframes shake {
+		0% {
+			transform: translateX(0);
+		}
+
+		10%,
+		30%,
+		50%,
+		70%,
+		90% {
+			transform: translateX(-5px);
+		}
+
+		20%,
+		40%,
+		60%,
+		80% {
+			transform: translateX(5px);
+		}
+
+		100% {
+			transform: translateX(0);
+		}
+	}
+
+	/* 动画class样式 */
+	.shake-animation {
+		animation: shake 0.5s;
+	}
+
+	.popup-main>>>uni-view {
+		max-width: 750rpx;
+
+		margin: auto;
+		/* border-radius: 20px; */
+		border-top-left-radius: 20px;
+		border-top-right-radius: 20px;
+	}
+
+	.popup-detail {
+		padding-left: 20px;
+		padding-right: 20px;
+		font-size: 14px;
+		line-height: 20px;
+		/* letter-spacing: 4px; */
+		overflow-y: auto;
+		height: 78vh;
+		border-top-left-radius: 0px !important;
+		border-top-right-radius: 0px !important;
+		text-align: left;
+		/* overflow-y: auto;
+		height:90vh; */
+	}
+
+	.popup-title-cla {
+		text-align: center;
+		font-size: 20px;
+		font-weight: 700;
+		margin-bottom: 20px !important;
+	}
+
+	.popup-cuo {
+		padding: 20rpx;
+		text-align: right;
+	}
+
+	.popup-know {
+		width: 92%;
+		background: linear-gradient(269deg, #FF443D 0%, #FF9C00 100%);
+		color: #ffffff;
+		border-radius: 20px;
+
+	}
+</style>

+ 204 - 0
newScale/EQtest/paySuccess.vue

@@ -0,0 +1,204 @@
+<template>
+	<view class="pay_success_bg">
+		<view class="register_bg">
+			<view class="phone_input"><input @blur="checkPhone()" v-model="phone" type="tel" placeholder="请输入手机号">
+			</view>
+			<view class="password_input"><input v-model="code" type="number" placeholder="请输入验证码">
+				<view class="sms" @click='sendCode()'>{{sendCodeFlag}}</view>
+			</view>
+		</view>
+
+		<view class="send_btn" @click="saveAndView">
+			<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/register_save_bg.png"
+				mode="widthFix"></image>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				phone: '',
+				code: '',
+				//时间标志
+				time: null,
+				//倒计时数字
+				timeCount: 60,
+				//显示倒计时还是发送验证码
+				sendCodeFlag: '发送验证码',
+				userId: '',
+				resultId: ''
+			}
+		},
+		onLoad(options) {
+			if (options.userId && options.resultId) {
+				this.userId = options.userId;
+				this.resultId = options.resultId;
+			}
+		},
+		onUnload() {
+			clearInterval(this.time);
+			this.phone = '';
+			this.code = '';
+			this.timeCount = 60;
+			this.sendCodeFlag = '发送验证码';
+		},
+		methods: {
+			//对手机号进行校验
+			checkPhone() {
+				var phoneReg = /^[1][3,4,5,7,8][0-9]{9}$/;
+				if (phoneReg.test(this.phone)) {
+					return true;
+				} else {
+					uni.showToast({
+						title: '请输入正确手机号',
+						icon: 'error'
+					})
+					return false;
+				}
+			},
+			sendCode() {
+				if (!this.checkPhone()) {
+					return;
+				}
+				if (this.sendCodeFlag == '重新发送' || this.sendCodeFlag == '发送验证码') {
+					this.timeCount = 60;
+					clearInterval(this.time)
+					//起一个定时器开始倒计时
+					this.sendCodeFlag = this.timeCount + 's'
+					this.time = setInterval(() => {
+						this.timeCount -= 1;
+						this.sendCodeFlag = this.timeCount + 's'
+						//如果倒计时为0时则停止倒计时
+						if (this.timeCount == 0) {
+							clearInterval(this.time)
+							this.sendCodeFlag = '重新发送'
+						}
+					}, 1000)
+					this.$request.get({
+						url: 'user/authCode',
+						loadingTip: "加载中...",
+						data: {
+							phone: this.phone
+						},
+					}).then((res) => {
+						uni.showToast({
+							title: '验证码已发送',
+							icon: 'success',
+						})
+					})
+				}
+
+			},
+			// 绑定手机号并查看报告
+			saveAndView() {
+				// 校验手机和验证码格式
+				if (this.checkPhone() && this.code != '') {
+					this.$request.get({
+						url: 'user/updateMobile',
+						loadingTip: "加载中...",
+						data: {
+							id: this.userId,
+							mobile: this.phone,
+							authCode: this.code,
+						},
+					}).then((res) => {
+						if (res.code == 200) {
+							uni.showToast({
+								icon: 'success',
+								title: '保存成功'
+							})
+							uni.navigateTo({
+								url: `/newScale/EQtest/testResult?resultId=${this.resultId}&messageShare=1`
+							});
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: res.msg
+							})
+						}
+					})
+				}
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.pay_success_bg {
+		width: 100%;
+		min-height: 100vh;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_success_bg.png) no-repeat top;
+		background-size: 100% auto;
+		overflow: hidden;
+	}
+
+	.register_bg {
+		width: 750rpx;
+		height: 498rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/register_bg.png) no-repeat top;
+		background-size: 100% auto;
+		margin-top: 348rpx;
+		overflow: hidden;
+	}
+
+	.register_bg input {
+		border: 0;
+		outline: none;
+		width: 529rpx;
+		height: 91rpx;
+		padding-left: 100rpx;
+	}
+
+	.phone_input input {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/phone_input_bg.png) no-repeat top;
+		background-size: cover;
+		margin: 176rpx 0 0 64rpx;
+	}
+
+
+	.password_input {
+		margin: 29rpx 0 0 64rpx;
+		position: relative;
+	}
+
+	.password_input input {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/password_input_bg.png) no-repeat top;
+		background-size: auto 100%;
+	}
+
+	::v-deep .uni-input-input::placeholder {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #999999;
+		line-height: 64rpx;
+	}
+
+	.sms {
+		width: 168rpx;
+		background: #FFEDF1;
+		border-radius: 36rpx;
+		position: absolute;
+		top: 9rpx;
+		right: 71rpx;
+		font-family: Alibaba PuHuiTi 2.0;
+		font-weight: bold;
+		font-size: 24rpx;
+		color: #EC3126;
+		line-height: 71rpx;
+		text-align: center;
+	}
+
+	.sms:active {
+		border: 1rpx solid #cccccc;
+		opacity: 0.8;
+		border-radius: 40rpx;
+	}
+
+	.send_btn {
+		margin: 340rpx auto 0;
+		text-align: center;
+	}
+</style>

+ 248 - 0
newScale/EQtest/paymentPage.vue

@@ -0,0 +1,248 @@
+<template>
+	<view class="payment_bg">
+		<view class="payment_info">
+			<view class="people_num"><text>{{peopleNum}}人已测</text></view>
+			<view class="price_num"><text>¥{{orderInfo.total}}</text></view>
+			<view class="pay_btn_sm" @click="getH5Pay()">{{orderInfo.total}}元解锁专属测试报告</view>
+		</view>
+		<view class="payment_desc">
+			<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_scale_desc.png"
+				mode="widthFix"></image>
+		</view>
+		<view class="pay_btn_lg" @click="getH5Pay()">
+			{{orderInfo.total}}元解锁专属测试报告
+		</view>
+		<uni-popup ref="popup" type="center">
+			<view class="pay_dialog">
+				<view class="btn_area">
+					<image style="margin-right: 89rpx;" @click="completeHandle"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/complete_btn.png"
+						mode="widthFix"></image>
+					<image @click="uncompleteHandle"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/uncomplete_btn.png"
+						mode="widthFix"></image>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				orderNo: '',
+				orderInfo: {},
+				peopleNum: 0
+			}
+		},
+		onLoad(options) {
+			if (options.orderNo) {
+				this.orderNo = options.orderNo;
+				setTimeout(() => {
+					this.payEnsure();
+				}, 200)
+			}
+			this.orderInfo = JSON.parse(sessionStorage.getItem('orderInfo'));
+			this.getPeople();
+		},
+		methods: {
+			// 检查订单支付状态
+			checkOrder() {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `api/wx-pay/queryOrder/${_this.orderNo}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						uni.hideLoading();
+						let resultInfo = JSON.parse(res.data.body)
+						if (resultInfo.trade_state === 'SUCCESS') {
+							uni.navigateTo({
+								url: `/newScale/EQtest/paySuccess?resultId=${this.orderInfo.resultId}&userId=${this.orderInfo.userId}`
+							});
+						} else {
+							return;
+						}
+					});
+			},
+			// 拉起微信支付
+			getH5Pay(params) {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `api/orderInfo/queryOrderByResultIdAndUserId/${this.orderInfo.userId}/${this.orderInfo.resultId}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						uni.hideLoading();
+						if (res.data && res.data.orderStatus === '支付成功') {
+							uni.navigateTo({
+								url: `/newScale/EQtest/paySuccess?resultId=${this.orderInfo.resultId}&userId=${this.orderInfo.userId}`
+							});
+						} else {
+							// _this.orderInfo.total = _this.hasDiscount ? _this.promotionPrice : _this.price;
+							_this.$request
+								.post({
+									url: "api/wx-pay/h5Pay",
+									loadingTip: "加载中...",
+									data: _this.orderInfo
+								})
+								.then((res) => {
+									let redirect_url = encodeURI(
+										`http://hnhong-duo.com/webo/newScale/EQtest/paymentPage?orderNo=${res.data.orderNo}`
+									)
+									window.location.href = `${res.data.codeUrl}&redirect_url=${redirect_url}`;
+								});
+						}
+					});
+			},
+			// 查询测试人数
+			getPeople() {
+				let _this = this;
+				_this.$request
+					.get({
+						url: "record/countByFlag?flag=20210820143117",
+						loadingTip: "加载中..."
+					})
+					.then((res) => {
+						_this.peopleNum = res.data + 57000
+					});
+			},
+			payEnsure() {
+				// console.log(11111)
+				this.$refs.popup.open();
+			},
+			uncompleteHandle() {
+				this.$refs.popup.close();
+			},
+			completeHandle() {
+				uni.showLoading({
+					title: ''
+				});
+				this.checkOrder();
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.payment_bg {
+		width: 100%;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/payment_bg.png) no-repeat top;
+		background-size: 100% auto;
+		overflow: hidden;
+	}
+
+	.payment_info {
+		width: 750rpx;
+		height: 531rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_scale_info.png) no-repeat center;
+		background-size: cover;
+		position: relative;
+		margin-top: 143rpx;
+		overflow: hidden;
+	}
+
+	.payment_info image {
+		width: 100%;
+		height: auto;
+		margin-top: 134rpx;
+	}
+
+	.payment_info .pay_btn_sm {
+		width: 640rpx;
+		height: 73rpx;
+		line-height: 73rpx;
+		position: absolute;
+		left: 55rpx;
+		bottom: 73rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_button.png) no-repeat center;
+		background-size: 100% auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 36rpx;
+		color: #FFFFFF;
+		text-shadow: 0rpx 0rpx 5rpx rgba(168, 63, 90, 0.5);
+		text-align: center;
+	}
+
+	.payment_desc image {
+		width: 750rpx;
+	}
+
+	.pay_btn_lg {
+		width: 640rpx;
+		height: 73rpx;
+		line-height: 73rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_button.png) no-repeat center;
+		background-size: 100% auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 36rpx;
+		color: #FFFFFF;
+		text-shadow: 0rpx 0rpx 5rpx rgba(168, 63, 90, 0.5);
+		text-align: center;
+		margin: 20rpx auto 60rpx;
+	}
+
+	.pay_dialog {
+		width: 594rpx;
+		height: 360rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/dialog_bg.png) no-repeat top;
+		background-size: cover;
+		position: fixed;
+		top: 540rpx;
+		left: 50%;
+		transform: translate(-50%, -50%);
+	}
+
+	.btn_area {
+		margin: 240rpx 0 0 96rpx;
+	}
+
+	.btn_area image {
+		width: 160rpx;
+	}
+
+	.btn_area image:active {
+		border: 1rpx solid #999999;
+		opacity: 0.8;
+		border-radius: 28rpx;
+	}
+
+	.people_num {
+		margin-top: 177rpx;
+	}
+
+	.people_num text {
+		min-width: 157rpx;
+		height: 44rpx;
+		padding: 0 10rpx;
+		background: #FFEDF1;
+		border-radius: 22rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-size: 28rpx;
+		color: #FC716D;
+		line-height: 44rpx;
+		text-align: center;
+		margin-left: 373rpx;
+	}
+
+	.price_num {
+		margin-top: 72rpx;
+	}
+
+	.price_num text {
+		min-width: 74rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #FC716D;
+		line-height: 24rpx;
+		margin-left: 374rpx;
+	}
+</style>

+ 387 - 0
newScale/EQtest/testPage.vue

@@ -0,0 +1,387 @@
+<template>
+	<view class="bg">
+		<view class="process">
+			<view class="process_bar" :style="{'width': percentage}"></view>
+		</view>
+		<view class="tips">请选择你的答案进入下一题</view>
+		<view class="question_box">
+			<view class="question_num">
+				<text class="num_front">出题{{currentIndex + 1}}</text><text class="num_behond">/{{maxLength}}</text>
+			</view>
+			<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/prev_mark.png" mode="widthFix">
+			</image>
+			<text class="qs_txt">{{currentQuestion.answer}}</text>
+			<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/next_mark.png" mode="widthFix">
+			</image>
+		</view>
+		<view class="answer_list">
+			<view :class="['answer', `answer${index+1}`, checkActive(item)]" v-for="(item, index) in currentAnswerList"
+				@click="nextHandle(item)">
+				{{item}}
+			</view>
+		</view>
+		<view class="contral_box">
+			<view class="prev_btn" v-show="currentIndex > 0" @click="prevHandle">
+				<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/prev_btn.png"
+					mode="widthFix"></image>
+			</view>
+			<view class="prev_btn" v-show="currentIndex >= maxLength - 1" @click="submitResult">
+				<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/submit_btn.png"
+					mode="widthFix"></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getResult,
+		queryPromotionBySubjectId,
+	} from "@/api/index.js";
+	export default {
+		data() {
+			return {
+				isChecked: true,
+				isShake: false,
+				scaleDetail: {},
+				questionList: [],
+				currentQuestion: {},
+				currentAnswerList: [],
+				currentIndex: 0,
+				userAnswerList: [],
+				resultId: '',
+				isLoading: false,
+				isDisbale: false,
+				maxLength: 0,
+				userInfo: {}
+			}
+		},
+		computed: {
+			percentage() {
+				return ((this.currentIndex / this.maxLength) * 652) + 'rpx'
+			}
+		},
+		created() {
+			this.loadData();
+			this.userInfo = JSON.parse(sessionStorage.getItem("user"));
+		},
+		methods: {
+			loadData() {
+				this.$request
+					.get({
+						url: `scaleInfo/20210820143117`,
+						loadingTip: "加载中...",
+						data: {},
+					}).then((res) => {
+						this.questionList = JSON.parse(JSON.stringify(res.data));
+						this.maxLength = this.questionList.length;
+						this.currentQuestion = this.questionList[this.currentIndex];
+						this.currentAnswerList = this.getAnswerItem(this.currentQuestion.checkItems);
+					})
+			},
+
+			nextHandle(str) {
+				if (this.isDisbale) {
+					return;
+				}
+				this.isDisbale = true;
+				this.userAnswerList[this.currentIndex] = JSON.parse(JSON.stringify(this.currentQuestion));
+				this.userAnswerList[this.currentIndex].checkItems = str;
+				if (this.currentIndex >= this.questionList.length - 1) {
+					this.isDisbale = false;
+					// this.submitResult();
+				} else {
+					setTimeout(() => {
+						this.currentIndex++;
+						this.currentQuestion = this.questionList[this.currentIndex];
+						this.currentAnswerList = this.getAnswerItem(this.currentQuestion.checkItems);
+						this.isDisbale = false;
+					}, 150)
+				}
+			},
+
+			prevHandle() {
+				setTimeout(() => {
+					this.currentIndex--;
+					this.currentQuestion = this.questionList[this.currentIndex];
+					this.currentAnswerList = this.getAnswerItem(this.currentQuestion.checkItems);
+				}, 300)
+			},
+
+			submitResult() {
+				let _this = this;
+				if (_this.isLoading) {
+					return
+				}
+				_this.isLoading = true;
+				let params = {
+					testPlanId: "",
+					scale_result: _this.userAnswerList,
+					userId: JSON.parse(sessionStorage.getItem("user")).id,
+				};
+
+				uni.showLoading({
+					title: "测试结果生成中",
+				});
+				_this.$request
+					.post({
+						url: `${getResult}/20210820143117`,
+						loadingTip: "加载中...",
+						data: params,
+					})
+					.then((res) => {
+						_this.isLoading = false;
+						_this.resultId = res.data;
+						// _this.$request.post({
+						// 	url: `scaleExternalSource/save`,
+						// 	loadingTip: "加载中...",
+						// 	data: {
+						// 		currentUserId: _this.userInfo.id,
+						// 		resultId: _this.resultId,
+						// 		uid: _this.uid,
+						// 		source: _this.source,
+						// 		flag: _this.flag,
+						// 	},
+						// }).then(() => {})
+						uni.hideLoading();
+						// 答题结束获取支付
+						_this.getQueryPromotionBySubjectId();
+					})
+					.catch(() => {
+						_this.isLoading = false;
+						uni.showToast({
+							icon: "none",
+							title: "提交失败",
+						});
+						uni.hideLoading();
+					});
+			},
+
+			// 获取支付金额
+			async getQueryPromotionBySubjectId() {
+				let _this = this;
+				let urls = queryPromotionBySubjectId + "/20210820143117";
+				await _this.$request
+					.get({
+						url: urls,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						console.log('量表支付信息', res.data);
+						let data = res.data;
+						if (data.price == 0) {
+							uni.navigateTo({
+								url: `/newScale/EQtest/testResult?resultId=${_this.resultId}&messageShare=1`
+							});
+						} else {
+							let params = {
+								productId: '20210820143117',
+								userId: _this.userInfo?.id,
+								resultId: _this.resultId,
+								description: data.name,
+								total: data.price,
+								sceneType: uni.getSystemInfoSync().platform == "android" ?
+									"Android" : "iOS",
+							};
+							sessionStorage.setItem('orderInfo', JSON.stringify(params))
+							uni.navigateTo({
+								url: "/newScale/EQtest/paymentPage",
+							});
+						}
+					});
+			},
+
+			checkActive(item) {
+				return this.userAnswerList[this.currentIndex] && this.userAnswerList[this.currentIndex]
+					.checkItems ==
+					item ? 'active' : ''
+			},
+
+			getAnswerItem(arr) {
+				return arr.split(';')
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.bg {
+		width: 100%;
+		min-height: 100vh;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/testPage_bg.png) no-repeat top;
+		background-size: 100% auto;
+		overflow: hidden;
+	}
+
+	.tips {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 24rpx;
+		color: #FFFFFF;
+		line-height: 55rpx;
+		margin: 11rpx 0 0 44rpx;
+	}
+
+	.question_box {
+		box-sizing: border-box;
+		width: 726.9rpx;
+		height: 332rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/question_bg.png);
+		background-size: cover;
+		margin: -28rpx 11rpx 54rpx 11rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 40rpx;
+		color: #333333;
+		padding: 96rpx 30rpx 0 54rpx;
+		position: relative;
+	}
+
+	.question_box text.qs_txt {
+		padding-bottom: 4rpx;
+		border-bottom: 4rpx solid #2E9AFF;
+		line-height: 1.6;
+	}
+
+	.question_box image {
+		width: 43rpx;
+		margin: 0 10rpx;
+	}
+
+	.answer {
+		width: 577rpx;
+		padding: 0 50rpx 0 70rpx;
+		line-height: 126rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 36rpx;
+		color: #333333;
+		text-align: center;
+		margin: 0 auto 28rpx;
+		cursor: pointer;
+		transition: background 200ms linear;
+	}
+
+	.answer1 {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_A.png);
+		background-size: cover;
+	}
+
+	.answer1.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_A_active.png);
+		background-size: cover;
+		color: #FFFFFF;
+	}
+
+	.answer2 {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_B.png);
+		background-size: cover;
+	}
+
+	.answer2.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_B_active.png);
+		background-size: cover;
+		color: #FFFFFF;
+	}
+
+	.answer3 {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_C.png);
+		background-size: cover;
+	}
+
+	.answer3.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_C_active.png);
+		background-size: cover;
+		color: #FFFFFF;
+	}
+
+	.answer4 {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_D.png);
+		background-size: cover;
+	}
+
+	.answer4.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_D_active.png);
+		background-size: cover;
+		color: #FFFFFF;
+	}
+
+	.answer5 {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_E.png);
+		background-size: cover;
+	}
+
+	.answer5.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/answer_E_active.png);
+		background-size: cover;
+		color: #FFFFFF;
+	}
+
+	.prev_btn {
+		text-align: center;
+	}
+
+	.process {
+		box-sizing: border-box;
+		width: 656rpx;
+		height: 25rpx;
+		padding: 2rpx;
+		background: #FFFFFF;
+		border-radius: 12rpx;
+		border: 1px solid #2E9AFF;
+		overflow: hidden;
+		margin: 190rpx auto 0;
+	}
+
+	.process_bar {
+		height: 19rpx;
+		background: #2E9AFF;
+		border-radius: 10rpx;
+		transition: width 200ms linear;
+	}
+
+	.question_num {
+		width: 238rpx;
+		line-height: 70rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/question_num_bg.png) no-repeat;
+		background-size: cover;
+		text-align: center;
+		position: absolute;
+		top: 30rpx;
+		left: 20rpx;
+	}
+
+	.num_front {
+		font-family: Alibaba PuHuiTi 2.0;
+		font-weight: bold;
+		font-size: 48rpx;
+		color: #FEFEFE;
+		line-height: 55rpx;
+		text-shadow: 2rpx 2rpx 5rpx rgba(146, 9, 0, 0.45);
+	}
+
+	.num_behond {
+		font-family: Alibaba PuHuiTi 2.0;
+		font-weight: bold;
+		font-size: 32rpx;
+		color: #FEFEFE;
+		line-height: 55rpx;
+		text-shadow: 2rpx 2rpx 5rpx rgba(146, 9, 0, 0.45);
+	}
+
+	.contral_box {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin: 54rpx 0 100rpx 0;
+	}
+
+	.prev_btn {
+		margin: 0 20rpx;
+	}
+
+	.prev_btn image {
+		width: 304rpx;
+	}
+</style>

+ 356 - 0
newScale/EQtest/testResult.vue

@@ -0,0 +1,356 @@
+<template>
+	<view class="bg">
+		<view class="process"></view>
+		<view class="role_name">
+			<image v-if="roleList[role]" :src="roleList[role].name" mode="widthFix"></image>
+		</view>
+		<view class="role_img">
+			<image v-if="roleList[role]" :src="roleList[role].img" mode="widthFix"></image>
+		</view>
+		<view class="result_box">
+			<view class="role_medal">
+				<image v-if="roleList[role]" :src="roleList[role].medal" mode="widthFix"></image>
+			</view>
+			<view class="score_bar">
+				<view class="score_title">得分:</view>
+				<view class="score_num">{{scoreNum}}</view>
+				<view class="score_percentage">
+					<view class="score_wrap">
+						<image class="process_bar" :style="{'left': percentage}"
+							src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/process_bar.png"
+							mode="widthFix"></image>
+					</view>
+					<view class="score_text">{{parseInt(scoreNum)}}/{{parseInt(maxScore)}}</view>
+				</view>
+			</view>
+			<view class="result_box_r">
+				<view class="sm_title">说明:</view>
+				{{improvementSuggestions}}
+			</view>
+		</view>
+		<view class="report_desc">
+			<view class="desc_title">报告阅读说明</view>
+			<view class="desc_txt">谢谢您的参与,阅读本报告时,请注意以下内容:</view>
+			<view style="display: flex;">
+				<view class="list_mark">·</view>
+				<view class="desc_txt">本结果仅供参考,不可作为临床诊断的依据
+					如对报告有不理解的地方,建议向专业资质人员进行咨询;
+					如结果与你自己或他人感知的有出入,可回忆在测试时是否有事情影响到你,或自己答辩时是否有所顾虑。</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		getRecordById
+	} from "@/api/index.js";
+	import {
+		photoUrl
+	} from "@/common/config.js"
+	const photoUrls = `${photoUrl}api/show?filePath=./webo`
+	console.log(photoUrl);
+	export default {
+		data() {
+			return {
+				isChecked: true,
+				isShake: false,
+				scaleDetail: {},
+				questionList: [],
+				currentQuestion: {},
+				currentAnswerList: [],
+				currentIndex: 0,
+				userAnswerList: [],
+				resultId: '',
+				isLoading: false,
+				isDisbale: false,
+				roleList: {
+					'坚韧黑铁': {
+						name: `${photoUrls}/EQtest/role/role_name1.png`,
+						img: `${photoUrls}/EQtest/role/role_img1.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal1.png`
+					},
+					'英勇黄铜': {
+						name: `${photoUrls}/EQtest/role/role_name2.png`,
+						img: `${photoUrls}/EQtest/role/role_img2.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal1.png`
+					},
+					'英勇黄铜+': {
+						name: `${photoUrls}/EQtest/role/role_name3.png`,
+						img: `${photoUrls}/EQtest/role/role_img2.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal2.png`
+					},
+					'不屈白银': {
+						name: `${photoUrls}/EQtest/role/role_name4.png`,
+						img: `${photoUrls}/EQtest/role/role_img3.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal3.png`
+					},
+					'不屈白银+': {
+						name: `${photoUrls}/EQtest/role/role_name5.png`,
+						img: `${photoUrls}/EQtest/role/role_img3.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal3.png`
+					},
+					'荣耀黄金': {
+						name: `${photoUrls}/EQtest/role/role_name6.png`,
+						img: `${photoUrls}/EQtest/role/role_img4.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal4.png`
+					},
+					'荣耀黄金+': {
+						name: `${photoUrls}/EQtest/role/role_name7.png`,
+						img: `${photoUrls}/EQtest/role/role_img4.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal4.png`
+					},
+					'华贵铂金': {
+						name: `${photoUrls}/EQtest/role/role_name8.png`,
+						img: `${photoUrls}/EQtest/role/role_img5.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal5.png`
+					},
+					'华贵铂金+': {
+						name: `${photoUrls}/EQtest/role/role_name9.png`,
+						img: `${photoUrls}/EQtest/role/role_img5.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal5.png`
+					},
+					'流光翡翠': {
+						name: `${photoUrls}/EQtest/role/role_name10.png`,
+						img: `${photoUrls}/EQtest/role/role_img6.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal6.png`
+					},
+					'璀璨钻石': {
+						name: `${photoUrls}/EQtest/role/role_name11.png`,
+						img: `${photoUrls}/EQtest/role/role_img7.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal7.png`
+					},
+					'超凡大师': {
+						name: `${photoUrls}/EQtest/role/role_name12.png`,
+						img: `${photoUrls}/EQtest/role/role_img8.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal8.png`
+					},
+					'傲世宗师': {
+						name: `${photoUrls}/EQtest/role/role_name13.png`,
+						img: `${photoUrls}/EQtest/role/role_img9.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal9.png`
+					},
+					'最强王者': {
+						name: `${photoUrls}/EQtest/role/role_name14.png`,
+						img: `${photoUrls}/EQtest/role/role_img10.png`,
+						medal: `${photoUrls}/EQtest/role/role_medal10.png`
+					}
+				},
+				resultId: '',
+				role: '',
+				improvementSuggestions: '',
+				scoreNum: 0,
+				maxScore: 0,
+				minScore: 0
+			}
+		},
+		onLoad(options) {
+			if (options && options.resultId) {
+				this.resultId = options.resultId
+				this.getScaleTestResults(this.resultId);
+			}
+		},
+		computed: {
+			percentage() {
+				return (((this.scoreNum / this.maxScore) * 318) - 318) + 'rpx'
+			}
+		},
+		methods: {
+			getScaleTestResults(id) {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `${getRecordById}?id=${id}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then(
+						(res) => {
+							console.log('222:', new Date().getTime());
+							console.log("----测试结果--->", res);
+							if (res.code == 200) {
+								_this.testResult = JSON.parse(res.data?.userRecordEntity?.testResult)[0];
+								_this.role = _this.testResult.newTableContext.result[0].symptom;
+								_this.improvementSuggestions = _this.testResult.newTableContext.result[0]
+									.improvementSuggestions;
+								_this.scoreNum = _this.testResult.newTableContext.result[0].score;
+								_this.maxScore = _this.testResult.newTableContext.result[0].maxScore;
+							} else if (res.code == 401) {} else {
+								(res) => {
+									console.log("世界上绝对绝对绝对绝对绝对的", res);
+								}
+							}
+						})
+			},
+			getNameUrl() {
+				console.log(`${photoUrls}/EQtest/role/role_name1.png`)
+				return `${photoUrls}/EQtest/role/role_name1.png`
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.bg {
+		width: 100%;
+		height: 1900rpx;
+		background: url(../../static/images/EQtest/test_result_bg.png) no-repeat center;
+		background-size: 100% auto;
+	}
+
+	.role_name {
+		text-align: center;
+		margin: 202rpx 0 0 0;
+	}
+
+	.role_name image {
+		width: 308rpx;
+	}
+
+	.role_img {
+		text-align: center;
+		margin-top: -30rpx;
+	}
+
+	.role_img image {
+		width: 660rpx;
+	}
+
+	.result_box {
+		width: 706rpx;
+		min-height: 548rpx;
+		padding-bottom: 28rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/result_bg_w.png) no-repeat top;
+		background-size: 100% auto;
+		overflow: hidden;
+		margin: -180rpx auto 0;
+		border-radius: 33rpx;
+		position: relative;
+	}
+
+	.role_medal {
+		position: absolute;
+		right: 50rpx;
+		top: 0;
+	}
+
+	.role_medal image {
+		width: 155rpx;
+	}
+
+	.result_box_r {
+		box-sizing: border-box;
+		width: 660rpx;
+		min-height: 283rpx;
+		padding: 26rpx;
+		margin: 0 auto 0;
+		background: #FFFFFF url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/result_bg_r.png) no-repeat top;
+		background-size: 100% auto;
+		border-radius: 33rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 46rpx;
+	}
+
+	.score_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 36rpx;
+		color: #333333;
+		line-height: 31rpx;
+		margin: 104rpx 0 0 42rpx;
+	}
+
+	.score_num {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 81rpx;
+		color: #FF9C00;
+		line-height: 51rpx;
+		/* text-stroke: 4px #FFFFFF;
+		background: linear-gradient(269deg, #FF443D 0%, #FF9C00 100%);
+		-webkit-text-stroke: 4px #FFFFFF;
+		-webkit-background-clip: text;
+		-webkit-text-fill-color: transparent; */
+		margin: 12rpx 0 7rpx 156rpx;
+	}
+
+	.score_percentage {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		width: 420rpx;
+		height: 46rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/score_percentage_bg.png) no-repeat center;
+		background-size: cover;
+		margin: 14rpx 0 8rpx 72rpx;
+	}
+
+	.score_wrap {
+		width: 318rpx;
+		height: 32rpx;
+		margin: 0 0 0 12rpx;
+		position: relative;
+		overflow-x: hidden;
+		border-radius: 25rpx;
+	}
+
+	.process {
+		overflow: hidden;
+	}
+
+	.process_bar {
+		width: 318rpx;
+		position: absolute;
+		left: -100rpx;
+	}
+
+	.score_text {
+		font-family: Alibaba PuHuiTi 2.0;
+		font-weight: normal;
+		font-size: 18rpx;
+		color: #FFFFFF;
+		line-height: 16rpx;
+		margin-right: 16rpx;
+	}
+
+	.sm_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 36rpx;
+		color: #333333;
+		line-height: 31rpx;
+		margin-bottom: 22rpx;
+	}
+
+	.report_desc {
+		margin: 30rpx 38rpx;
+		letter-spacing: 1px;
+	}
+
+	.desc_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #FFFFFF;
+		line-height: 46rpx;
+	}
+
+	.desc_txt {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 20rpx;
+		color: #FFFFFF;
+		line-height: 30rpx;
+	}
+
+	.list_mark {
+		line-height: 0.7;
+		font-size: 36rpx;
+		color: #ffffff;
+		font-weight: 600;
+		margin-right: 5rpx;
+	}
+</style>

+ 465 - 0
package-lock.json

@@ -9,11 +9,47 @@
       "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.4.28.tgz",
       "integrity": "sha512-e/lSbvR79KH9+d3D4ueNbvD6szigjO/5IyjBNmiTqaj0PTS324fBV3L6f3s1qpkYonM4rdOl000hVOcAg6Gh/A=="
     },
+    "@gar/promisify": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz",
+      "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+      "dev": true
+    },
+    "@npmcli/fs": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz",
+      "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+      "dev": true,
+      "requires": {
+        "@gar/promisify": "^1.0.1",
+        "semver": "^7.3.5"
+      }
+    },
+    "@npmcli/move-file": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz",
+      "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+      "dev": true,
+      "requires": {
+        "mkdirp": "^1.0.4",
+        "rimraf": "^3.0.2"
+      }
+    },
     "@types/json-schema": {
       "version": "7.0.13",
       "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.13.tgz",
       "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ=="
     },
+    "aggregate-error": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz",
+      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+      "dev": true,
+      "requires": {
+        "clean-stack": "^2.0.0",
+        "indent-string": "^4.0.0"
+      }
+    },
     "ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@@ -39,6 +75,12 @@
         "picomatch": "^2.0.4"
       }
     },
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
     "big.js": {
       "version": "5.2.2",
       "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
@@ -49,6 +91,16 @@
       "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
     },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
     "braces": {
       "version": "3.0.2",
       "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
@@ -57,6 +109,32 @@
         "fill-range": "^7.0.1"
       }
     },
+    "cacache": {
+      "version": "15.3.0",
+      "resolved": "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz",
+      "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+      "dev": true,
+      "requires": {
+        "@npmcli/fs": "^1.0.0",
+        "@npmcli/move-file": "^1.0.1",
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "glob": "^7.1.4",
+        "infer-owner": "^1.0.4",
+        "lru-cache": "^6.0.0",
+        "minipass": "^3.1.1",
+        "minipass-collect": "^1.0.2",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.2",
+        "mkdirp": "^1.0.3",
+        "p-map": "^4.0.0",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^3.0.2",
+        "ssri": "^8.0.1",
+        "tar": "^6.0.2",
+        "unique-filename": "^1.1.1"
+      }
+    },
     "chokidar": {
       "version": "3.5.3",
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
@@ -72,6 +150,43 @@
         "readdirp": "~3.6.0"
       }
     },
+    "chownr": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
+      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+      "dev": true
+    },
+    "clean-stack": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz",
+      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+      "dev": true
+    },
+    "compression-webpack-plugin": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-6.1.1.tgz",
+      "integrity": "sha512-BEHft9M6lwOqVIQFMS/YJGmeCYXVOakC5KzQk05TFpMBlODByh1qNsZCWjUBxCQhUP9x0WfGidxTbGkjbWO/TQ==",
+      "dev": true,
+      "requires": {
+        "cacache": "^15.0.5",
+        "find-cache-dir": "^3.3.1",
+        "schema-utils": "^3.0.0",
+        "serialize-javascript": "^5.0.1",
+        "webpack-sources": "^1.4.3"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
     "echarts": {
       "version": "5.4.3",
       "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz",
@@ -104,12 +219,62 @@
         "to-regex-range": "^5.0.1"
       }
     },
+    "find-cache-dir": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+      "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^3.0.2",
+        "pkg-dir": "^4.1.0"
+      }
+    },
+    "find-up": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+      "dev": true,
+      "requires": {
+        "locate-path": "^5.0.0",
+        "path-exists": "^4.0.0"
+      }
+    },
+    "fs-minipass": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true
+    },
     "fsevents": {
       "version": "2.3.3",
       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
       "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
       "optional": true
     },
+    "glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dev": true,
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
     "glob-parent": {
       "version": "5.1.2",
       "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -123,6 +288,40 @@
       "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz",
       "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
     },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true
+    },
+    "indent-string": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz",
+      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+      "dev": true
+    },
+    "infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz",
+      "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dev": true,
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
     "is-binary-path": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -174,6 +373,15 @@
         "json5": "^2.1.2"
       }
     },
+    "locate-path": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+      "dev": true,
+      "requires": {
+        "p-locate": "^4.1.0"
+      }
+    },
     "lru-cache": {
       "version": "6.0.0",
       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -182,6 +390,84 @@
         "yallist": "^4.0.0"
       }
     },
+    "make-dir": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
+      "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+      "dev": true,
+      "requires": {
+        "semver": "^6.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.1",
+          "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
+          "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+          "dev": true
+        }
+      }
+    },
+    "minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "requires": {
+        "yallist": "^4.0.0"
+      }
+    },
+    "minipass-collect": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz",
+      "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-flush": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz",
+      "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-pipeline": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+      "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minizlib": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz",
+      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0",
+        "yallist": "^4.0.0"
+      }
+    },
+    "mkdirp": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz",
+      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+      "dev": true
+    },
     "neo-async": {
       "version": "2.6.2",
       "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
@@ -192,16 +478,94 @@
       "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
       "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
     },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "requires": {
+        "p-try": "^2.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+      "dev": true,
+      "requires": {
+        "p-limit": "^2.2.0"
+      }
+    },
+    "p-map": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
+      "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+      "dev": true,
+      "requires": {
+        "aggregate-error": "^3.0.0"
+      }
+    },
+    "p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true
+    },
     "picomatch": {
       "version": "2.3.1",
       "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
     },
+    "pkg-dir": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
+      "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+      "dev": true,
+      "requires": {
+        "find-up": "^4.0.0"
+      }
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+      "dev": true
+    },
     "punycode": {
       "version": "2.3.0",
       "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
       "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
     },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
     "readdirp": {
       "version": "3.6.0",
       "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
@@ -210,6 +574,21 @@
         "picomatch": "^2.2.1"
       }
     },
+    "rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "dev": true
+    },
     "sass": {
       "version": "1.69.0",
       "resolved": "https://registry.npmmirror.com/sass/-/sass-1.69.0.tgz",
@@ -250,11 +629,63 @@
         "lru-cache": "^6.0.0"
       }
     },
+    "serialize-javascript": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+      "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz",
+      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true
+    },
     "source-map-js": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
       "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
     },
+    "ssri": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz",
+      "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.1.1"
+      }
+    },
+    "tar": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz",
+      "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
+      "dev": true,
+      "requires": {
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "minipass": "^5.0.0",
+        "minizlib": "^2.1.1",
+        "mkdirp": "^1.0.3",
+        "yallist": "^4.0.0"
+      },
+      "dependencies": {
+        "minipass": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz",
+          "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+          "dev": true
+        }
+      }
+    },
     "to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -268,6 +699,24 @@
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
       "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
     },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz",
+      "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
     "uri-js": {
       "version": "4.4.1",
       "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
@@ -276,6 +725,22 @@
         "punycode": "^2.1.0"
       }
     },
+    "webpack-sources": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz",
+      "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true
+    },
     "yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",

+ 3 - 0
package.json

@@ -23,5 +23,8 @@
     "vuex-persistedstate": "^4.1.0",
     "wxml-to-canvas": "^1.1.1",
     "wxml2canvas": "^1.0.1"
+  },
+  "devDependencies": {
+    "compression-webpack-plugin": "^6.1.1"
   }
 }

+ 45 - 4
pages.json

@@ -16,9 +16,50 @@
 		{
 			"path": "pages/index/index",
 			"style": {
+				"navigationStyle": "default",
 				// "navigationBarTitleText": "uni-app"
 				"navigationStyle": "custom"
 			}
+		},
+		{
+			"path": "newScale/EQtest/index",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "newScale/EQtest/testPage",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "newScale/EQtest/testResult",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "newScale/EQtest/paymentPage",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "newScale/EQtest/paySuccess",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
 		}
 		// {   "root":"examWidght",
 		// 	"pages":[{
@@ -71,8 +112,8 @@
 			"style": {
 				"navigationStyle": "custom",
 				"navigationBarTitleText": "",
-				"enablePullDownRefresh": true,
-				"onReachBottomDistance":100
+				"enablePullDownRefresh": false,
+				"onReachBottomDistance": 100
 			}
 		}]
 	}, {
@@ -85,10 +126,10 @@
 				"enablePullDownRefresh": false
 			}
 		}]
-	} ],
+	}],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "uni-app",
+		"navigationBarTitleText": "丁香解忧",
 		"navigationBarBackgroundColor": "#F8F8F8",
 		"backgroundColor": "#F8F8F8"
 	},

+ 819 - 720
pages/index/index.vue

@@ -1,153 +1,158 @@
 <template>
 	<view class='main_cl'>
 		<!-- <image class="logo" src="/static/logo.png"></image> -->
+		<view class="history_bar"><text>历史测评记录</text>
+			<view class="history_button" @click="goHistory">立即查看</view>
+		</view>
 		<view class='main_scale_out'>
-			<img class='main_scale_top_img' :src="topimg" />
+			<a href="/webo/?flag=20210617000853&uid=b1778397670a11eea1c3525400e76da4&source=0">
+				<image class='main_scale_top_img' src="../../static/images/topImg.png" mode="widthFix"></image>
+			</a>
 			<view class='main_scale_name'>
-				<img style='width:50px;height:30px' src='/static/images/main-left.png' />
-				<view class='main_top_name'>{{scaleInfo.name}}</view>
-				<img style='width:50px;height:28px' src='/static/images/main-right.png' />
+				<!-- <img style='width:50px;height:30px' src='/static/images/main-left.png' /> -->
+				<view class='main_top_name'>{{ scaleInfoNew.scaleName }}</view>
+				<!-- <img style='width:50px;height:28px' src='/static/images/main-right.png' /> -->
 			</view>
 
 			<!-- <view class='main_scale_des'>{{scaleDes}}</view> -->
-			<view class='main_scale_num'>{{scaleNumber}}</view>
+			<view class='main_scale_num'>{{ scaleInfoNew.testNum }}人测试过</view>
 		</view>
-		<view class='main_scale_introduce'>
-			<img class='main_xing_left' src="/static/images/xing_left1.png" />
-			<view class='main_scale_font'>测评介绍</view>
-			<img class='main_xing_right' src="/static/images/xing_right1.png" />
+		<view class='main_scale_cpll_out'>
+			<view class="scale_introduce_title">
+				<img class='main_xing_left' src="/static/images/xing_left2.png" />
+				<view class='main_scale_font'>测评介绍</view>
+				<img class='main_xing_right' src="/static/images/xing_right2.png" />
+			</view>
+			<view style='display: flex;justify-content: center;align-items: center;margin:10px 0;'>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
+				<view style='height:1px;background-color:#03A2AD;flex: 1;'></view>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
+			</view>
+			<view class="cpjs">
+				<text>
+					{{ scaleInfoNew.evaluationIntroduction }}本测试共{{ questionNum }}个问题,预计测试时长为{{ Math.ceil(questionNum *
+						0.25)}}分钟<span v-if="questionNum > 30">,请耐心测试</span><span v-else>。</span>
+				</text>
+			</view>
+			<view v-if="scaleInfoNew.celebrityAphorism" class="myjj">
+				<view>{{ getMyjj(scaleInfoNew.celebrityAphorism, 0) }}</view>
+				<view v-if="getMyjj(scaleInfoNew.celebrityAphorism, 1)" style="text-align: right;">
+					——{{ getMyjj(scaleInfoNew.celebrityAphorism, 1) }}</view>
+			</view>
+			<view>
+				<view class="bx" v-for="item in formatArr(scaleInfoNew.relatedQuestion)">
+					<view class="bx_left"></view>
+					<view class="bx_right">{{ item }}</view>
+				</view>
+			</view>
 		</view>
 		<view class='main_scale_cpll_out'>
-			<view class='main_scale_cpll'>
+			<view class="scale_introduce_title">
 				<img class='main_xing_left' src="/static/images/xing_left2.png" />
 				<view class='main_scale_font'>测评理论</view>
 				<img class='main_xing_right' src="/static/images/xing_right2.png" />
 			</view>
-			<view style='display: flex;justify-content: center;align-items: center;margin:10px;'>
+			<view style='display: flex;justify-content: center;align-items: center;margin:10px 0;'>
 				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
 				<view style='height:1px;background-color:#03A2AD;flex: 1;'></view>
 				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
 			</view>
 			<view class='main_scale_cpll_mi'>
-				<text class='main_scale_cpll_text'>{{scaleInfoNew.evaluationIntroduction}}</text>
+				<view class='main_scale_cpll_text'>{{ scaleInfoNew.evaluationTheory }}</view>
 			</view>
 			<view class='main_scale_cpll_zhu'>
-				<text class='main_scale_cpll_zhu_text'>注:1.因每个人不同,测评结果因人而异,仅供参考。
-					2.因每个人不同,测评结果因人而异,仅供参考,因每个人
-					不同测评结果因人而异,仅供参考。
+				<text class='main_scale_cpll_zhu_text'>
+					{{ scaleInfoNew.evaluationTheoryAttention }}
 				</text>
 			</view>
 		</view>
-		<view class='main_scale_njhd_out'>
-			<view class='main_scale_njhd'>
-				<img class='main_xing_left' src="/static/images/xing_left3.png" />
-				<view class='main_scale_font_njhd'>你将获得</view>
-				<img class='main_xing_right' src="/static/images/xing_right3.png" />
+		<view class='main_scale_cpll_out'>
+			<view class="scale_introduce_title">
+				<img class='main_xing_left' src="/static/images/xing_left2.png" />
+				<view class='main_scale_font'>你将获得</view>
+				<img class='main_xing_right' src="/static/images/xing_right2.png" />
 			</view>
-			<view style='display: flex;justify-content: center;align-items: center;margin:10px 10px 10px 10px;'>
-				<view style='height:1px;background-color:#F09931;height:5px;width:5px;border-radius:50%;'></view>
-				<view style='height:1px;background-color:#F09931;flex: 1;'></view>
-				<view style='height:1px;background-color:#F09931;height:5px;width:5px;border-radius:50%;'></view>
+			<view style='display: flex;justify-content: center;align-items: center;margin:10px 0;'>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
+				<view style='height:1px;background-color:#03A2AD;flex: 1;'></view>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
 			</view>
 			<view style='margin-top:20px'>
-				<view>
-					<view class="main_scale_njhd_title">评估你的抑郁程度</view>
-				</view>
-				<view class='main_scale_njhd_text_out'>
-					<text class='main_scale_njhd_text'>分析当下你得复兴情绪状态,可能存在的潜在问题等一系列问题。</text>
-				</view>
-				<view>
-					<view class="main_scale_njhd_title">评估你的抑郁程度</view>
-				</view>
-				<view class='main_scale_njhd_text_out'>
-					<text class='main_scale_njhd_text'>分析当下你得复兴情绪状态,可能存在的潜在问题等一系列问题。</text>
-				</view>
-
+				<template v-for="item in formatArr(scaleInfoNew.obtained)">
+					<view>
+						<view class="main_scale_njhd_title">{{ Object.keys(item)[0] }}</view>
+					</view>
+					<view class='main_scale_njhd_text_out'>
+						<text class='main_scale_njhd_text'>{{ formatObj(item) }}</text>
+					</view>
+				</template>
 			</view>
 		</view>
 
-		<view class='main_scale_shsc_out'>
-			<view class='main_scale_shsc'>
-				<img class='main_xing_left' src="/static/images/xing_left4.png" />
-				<view class='main_scale_font_shsc'>适合谁测</view>
-				<img class='main_xing_right' src="/static/images/xing_right4.png" />
+		<view class='main_scale_cpll_out'>
+			<view class="scale_introduce_title">
+				<img class='main_xing_left' src="/static/images/xing_left2.png" />
+				<view class='main_scale_font'>适合谁测</view>
+				<img class='main_xing_right' src="/static/images/xing_right2.png" />
 			</view>
-			<view style='display: flex;justify-content: center;align-items: center;margin:10px 10px 10px 10px;'>
-				<view style='height:1px;background-color:#94A9FF;height:5px;width:5px;border-radius:50%;'></view>
-				<view style='height:1px;background-color:#94A9FF;flex: 1;'></view>
-				<view style='height:1px;background-color:#94A9FF;height:5px;width:5px;border-radius:50%;'></view>
+			<view style='display: flex;justify-content: center;align-items: center;margin:10px 0;'>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
+				<view style='height:1px;background-color:#03A2AD;flex: 1;'></view>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
 			</view>
-			<view>
-				<view class='shsc_dui'>
+			<view style="margin-top: 40rpx;overflow: hidden;">
+				<view class='shsc_dui' v-for="item in formatArr(scaleInfoNew.suitCrowd)">
 					<view class='dui_out'>
 						<img class='dui_self' src='/static/images/dui.png' />
-
-					</view>
-					<view class='dui_text'>
-						<view class='dui_text_self'>长期不快乐的人</view>
-					</view>
-				</view>
-				<view class='shsc_dui'>
-					<view class='dui_out'>
-						<img class='dui_self' src='/static/images/dui.png' />
-
 					</view>
 					<view class='dui_text'>
-						<view class='dui_text_self'>长期不快乐的人</view>
+						<view class='dui_text_self'>{{ item }}</view>
 					</view>
 				</view>
 			</view>
 		</view>
 
-		<view class='main_scale_cpbbnr_out'>
-			<view class='main_scale_cpbbnr'>
-				<img class='main_xing_left1' src="/static/images/xing_left3.png" />
-				<view class='main_scale_font_cpbbnr'>测评报告内容</view>
-				<img class='main_xing_right1' src="/static/images/xing_right3.png" />
+		<view class='main_scale_cpll_out'>
+			<view class="scale_introduce_title">
+				<img class='main_xing_left' src="/static/images/xing_left2.png" />
+				<view class='main_scale_font'>测评报告内容</view>
+				<img class='main_xing_right' src="/static/images/xing_right2.png" />
 			</view>
-			<view style='display: flex;justify-content: center;align-items: center;margin:10px 10px 10px 10px;'>
-				<view style='height:1px;background-color:#F09931;height:5px;width:5px;border-radius:50%;'></view>
-				<view style='height:1px;background-color:#F09931;flex: 1;'></view>
-				<view style='height:1px;background-color:#F09931;height:5px;width:5px;border-radius:50%;'></view>
+			<view style='display: flex;justify-content: center;align-items: center;margin:10px 0;'>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
+				<view style='height:1px;background-color:#03A2AD;flex: 1;'></view>
+				<view style='height:1px;background-color:#03A2AD;height:5px;width:5px;border-radius:50%;'></view>
 			</view>
 			<view class="main_scale_cpbbnr_con">
-				<view>
-					<view class='cpbbnr_con_out'>
-						<view class='cpbbnr_con_part'>Part1</view>
-						<view class='cpbbnr_con_text'>你的抑郁结果</view>
-					</view>
-					<view class='cpbbnr_con_shu'>
-
-					</view>
-				</view>
-				<view>
+				<view v-for="(item, index) in formatArr(scaleInfoNew.reportContent)">
 					<view class='cpbbnr_con_out'>
-						<view class='cpbbnr_con_part'>Part2</view>
-						<view class='cpbbnr_con_text'>你的抑郁结果</view>
+						<view class='cpbbnr_con_part'>Part{{ index + 1 }}</view>
+						<view class='cpbbnr_con_text'>{{ item }}</view>
 					</view>
-					<view class='cpbbnr_con_shu' v-show='false'>
-
+					<view class='cpbbnr_con_shu' v-show="index < formatArr(scaleInfoNew.reportContent).length - 1">
 					</view>
 				</view>
 			</view>
-			<view>
-				<view class="main_scale_njhd_title" style='margin-top:10px'>参考文献</view>
-			</view>
-			<view style='margin-top:10px'>
-				<text class="main_ckwx_text">段泉泉。(2021)。抑郁及焦虑临床表现。20-23574</text>
-				<text class="main_ckwx_text">段泉泉。(2021)。抑郁及焦虑临床表现。20-23574</text>
-				<text class="main_ckwx_text">段泉泉。(2021)。抑郁及焦虑临床表现。20-23574</text>
-			</view>
+			<template v-if="scaleInfoNew.reference && scaleInfoNew.reference.length > 0">
+				<view class="bx">
+					<view class="bx_left"></view>
+					<view class="bx_right" style="width: 200rpx;">参考文献</view>
+				</view>
+				<view class="main_scale_njhd_desc" v-for="(item, index) in formatArr(scaleInfoNew.reference)"
+					style='margin-top:10px'>
+					<view class="reference_index">[{{ index + 1 }}]</view>
+					<view class="main_ckwx_text">{{ item }}</view>
+				</view>
+			</template>
 		</view>
 
 
-		<view class='m_s_i'>
+		<!-- <view class='m_s_i'>
 			<view class='main_kuai'>
 				<view class='main_kuai_k'>&nbsp;</view>
 			</view>
 			<view class='scale_js'>
 				<text>{{scaleInfoNew.evaluationIntroduction}}</text>
-
 			</view>
 
 
@@ -188,24 +193,23 @@
 
 			<view class='main_kuai'>
 				<view class='main_kuai_k'>&nbsp;</view>
-			</view>
-			<!-- <view class='scale_js'>
+			</view> -->
+		<!-- <view class='scale_js'>
 				{{scaleInfoNew.dimensionIntroduction}}
 			</view> -->
-			<view class='scale_js'>
+		<!-- <view class='scale_js'>
 				<text>{{scaleInfoNew.dimensionIntroduction}}</text>
-			</view>
-			<!-- <img style='width:100%' :src="scaleimg1" />
+			</view> -->
+		<!-- <img style='width:100%' :src="scaleimg1" />
 			<img style='width:100%' :src="scaleimg2" />
 			<img style='width:100%' :src="scaleimg3" /> -->
 
-		</view>
+		<!-- </view> -->
 		<view class='main_bottom_class'>
 			<view class='main_check_pub'>
 				<checkbox-group @change='checkChange'>
 					<label class='main_check_class'>
-						<checkbox value="selected" checked="true" />
-
+						<checkbox value="selected" :checked="false" />
 					</label>
 				</checkbox-group>
 				<view class='main_check'>同意<view class='main_tiao' @click="toggle()">《测评服务条款》</view>立即开始测试
@@ -534,641 +538,736 @@
 </template>
 
 <script>
-	import {
-		getScaleTitle
-	} from '@/api/index.js'
-	export default {
-		data() {
-			return {
-				scaleInfoNew: {},
-				scaleInfo: {
-					name: ''
-				},
-				isCheck: true,
-				type: null,
-				topimg: '../../static/images/topImg.png',
-				// scalName: '抑郁测试「简单评估版」',
-				scaleDes: '测一测?',
-				scaleNumber: '43.8W人测试过',
-				scaleimg1: '../../static/images/1.jpg',
-				scaleimg2: '../../static/images/2.jpg',
-				scaleimg3: '../../static/images/3.jpg',
-				//量表
-				flag: '',
-				//分享人的id
-				uid: '',
-				//来源
-				source: '',
-				//模态框是否弹出的标志
-				modalFlag: false
-
+import {
+	getScaleTitle
+} from '@/api/index.js'
+export default {
+	data() {
+		return {
+			scaleInfoNew: {},
+			scaleInfo: {
+				name: ''
+			},
+			isCheck: false,
+			type: null,
+			topimg: '../../static/images/topImg.png',
+			// scalName: '抑郁测试「简单评估版」',
+			scaleDes: '测一测?',
+			scaleNumber: '43.8W人测试过',
+			scaleimg1: '../../static/images/1.jpg',
+			scaleimg2: '../../static/images/2.jpg',
+			scaleimg3: '../../static/images/3.jpg',
+			//量表
+			flag: '',
+			//分享人的id
+			uid: '',
+			//来源
+			source: '',
+			//模态框是否弹出的标志
+			modalFlag: false,
+			questionNum: 0
+		}
+	},
+	onLoad() {
+		//先获取路径上的参数
+		// this.$route.query.flag
+		console.log(this.$route.query.flag)
+		console.log(this.$route.query.uid)
+		console.log(this.$route.query.source)
+		this.flag = this.$route.query.flag;
+		this.uid = this.$route.query.uid;
+		this.source = this.$route.query.source;
+		this.selectScale();
+	},
+	methods: {
+		selectScale() {
+			this.$request
+				.get({
+					url: `${getScaleTitle}/${this.flag}?uid=${this.uid}&source=${this.source}`,
+					loadingTip: "加载中...",
+					data: {},
+				}).then((res) => {
+					this.questionNum = res.data.questionNum;
+					this.scaleInfo = res.data.subjectEntityDto2List[0];
+					this.scaleInfoNew = res.data.ScaleDetailsEntity;
+				})
+		},
+		checkChange(e) {
+			if (e.detail.value.length == 0) {
+				this.isCheck = false
+			} else {
+				this.isCheck = true
 			}
 		},
-		onLoad() {
-			//先获取路径上的参数
-			// this.$route.query.flag
-			console.log(this.$route.query.flag)
-			console.log(this.$route.query.uid)
-			console.log(this.$route.query.source)
-			this.flag = this.$route.query.flag;
-			this.uid = this.$route.query.uid;
-			this.source = this.$route.query.source;
-
-			this.selectScale();
+		toggle() {
+			// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+			this.$refs.popup.open()
 		},
-		methods: {
-
-			selectScale() {
-				this.$request
-					.get({
-						url: `${getScaleTitle}/${this.flag}?uid=${this.uid}&source=${this.source}`,
-						loadingTip: "加载中...",
-						data: {},
-					}).then((res) => {
-						this.scaleInfo = res.data.subjectEntityDto2List[0];
-						this.scaleInfoNew = res.data.ScaleDetailsEntity;
-					})
-			},
-			checkChange(e) {
-				if (e.detail.value.length == 0) {
-					this.isCheck = false
-				} else {
-					this.isCheck = true
-				}
-			},
-			toggle() {
-				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
-				this.$refs.popup.open()
-			},
-			close() {
-				this.$refs.popup.close()
-			},
-			//同意条框进行进入
-			agreeFun() {
-				this.modalFlag = false;
+		close() {
+			this.$refs.popup.close()
+		},
+		//同意条框进行进入
+		agreeFun() {
+			this.modalFlag = false;
+			uni.navigateTo({
+				url: `/examWidght/examWidght/index?flag=${this.flag}&uid=${this.uid}&source=${this.source}`
+			})
+		},
+		//不同意方法
+		unAgreeFun() {
+			this.modalFlag = false;
+		},
+		startTest() {
+			console.log(this.isCheck)
+			if (this.isCheck) {
+				//跳转到指定页面
 				uni.navigateTo({
 					url: `/examWidght/examWidght/index?flag=${this.flag}&uid=${this.uid}&source=${this.source}`
 				})
-			},
-			//不同意方法
-			unAgreeFun() {
-				this.modalFlag = false;
-			},
-			startTest() {
-				console.log(this.isCheck)
-				if (this.isCheck) {
-					//跳转到指定页面
-					uni.navigateTo({
-						url: `/examWidght/examWidght/index?flag=${this.flag}&uid=${this.uid}&source=${this.source}`
-					})
-				} else {
-					//否则弹出弹框
-					//点击弹框的继续按钮则进入测试
-					this.modalFlag = true;
-
-					// uni.showToast({
-					// 	title: '请选择测评服务条款',
-					// 	icon: 'error'
-					// })
-				}
+			} else {
+				//否则弹出弹框
+				//点击弹框的继续按钮则进入测试
+				this.modalFlag = true;
+
+				// uni.showToast({
+				// 	title: '请选择测评服务条款',
+				// 	icon: 'error'
+				// })
 			}
+		},
+		goHistory() {
+			uni.navigateTo({
+				url: '/paymentPage/queryByPhone/index'
+			})
+		},
+		formatArr(str) {
+			return str ? JSON.parse(str) : [];
+		},
+		formatObj(obj) {
+			let key = Object.keys(obj)[0]
+			return obj[key];
+		},
+		// 分割名言警句
+		getMyjj(str, i) {
+			return str ? str.split("——")[i] : '';
 		}
 	}
+}
 </script>
 
 <style>
-	.main_scale_name {
-		width: 100%;
-		display: flex;
-		flex-direction: row;
-		justify-content: center;
-		font-size: 18px;
-		font-weight: 700;
-		margin-top: 0.26667rem;
-		align-items: center;
-	}
-
-
-	.main_scale_top_img {
-		width: 100%;
-	}
-
-	.main_scale_des {
-		text-align: center;
-		font-size: 12px;
-		color: #999;
-		margin-top: 0.24rem;
-	}
-
-	.main_scale_num {
-		font-size: 10px;
-		color: #A6A6A6;
-		display: flex;
-		flex-direction: row;
-		justify-content: right;
-		margin-right: 11px;
-		margin-top: 8px;
-		height: 14px;
-		line-height: 14px;
-	}
-
-	.main_scale_out {
-		/* 	background: #ffffff;
+.main_scale_name {
+	width: 100%;
+	display: flex;
+	flex-direction: row;
+	justify-content: center;
+	font-size: 18px;
+	font-weight: 700;
+	margin-top: 0.26667rem;
+	align-items: center;
+}
+
+
+.main_scale_top_img {
+	display: block;
+	width: 710rpx;
+	height: 320rpx;
+	margin: 19rpx auto;
+}
+
+.main_scale_des {
+	text-align: center;
+	font-size: 12px;
+	color: #999;
+	margin-top: 0.24rem;
+}
+
+.main_scale_num {
+	font-size: 20rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 400;
+	color: #A6A6A6;
+	line-height: 28rpx;
+	width: 98%;
+	text-align: right;
+	padding-right: 2%;
+	margin: 16rpx 0;
+}
+
+.main_scale_out {
+	/* 	background: #ffffff;
 		padding-bottom: 0.667rem;
 		margin-bottom: 0.26667rem;
 		border-bottom: 0.01333rem solid #ddd; */
-	}
-
-	.main_scale_introduce {
-		margin-top: 21px;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		/* margin-top: 20px;
-		text-align: center;
-		font-size: 16px;
-		line-height: 40px;
-		font-weight: 700; */
-		/* background-image: url('/static/images/xing1.png'); */
-
-
-	}
-
-	.m_s_i {
-		background-color: #ffffff;
-		padding-top: 0.53rem;
-		padding-bottom: 2rem;
-		;
-
-	}
-
-	.main_user_evaluate {
-		text-align: center;
-		font-size: 16px;
-		font-weight: 700;
-	}
-
-	.main_kuai {
-		display: flex;
-		flex-direction: row;
-		justify-content: center;
-	}
-
-	.main_kuai_k {
-		margin-top: 10px;
-		width: 50px;
-		border-radius: 10px;
-		line-height: 6px;
-
-		background-color: #ddd;
-	}
-
-	.main_start_button {
-		/* 	width: 100%; */
-		background: linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%);
-		box-shadow: 0px 4px 10px 0px rgba(244, 107, 107, 0.302);
-		border-radius: 10px 10px 10px 10px;
-		opacity: 1;
-		border: 1px solid #FFE8BA;
-		/* font-weight: 700; */
-		margin-left: 10px;
-		margin-right: 10px;
-	}
-
-	.main_check {
-		display: flex;
-		flex-direction: row;
-
-	}
-
-	.main_tiao {
-		color: #5a95f1;
-	}
-
-	.main_check_class {
-		margin-left: 5px;
-	}
-
-	.main_check_pub {
-		background-color: #ffffff;
-		display: flex;
-		flex-direction: row;
-		padding-bottom: 5px;
-	}
-
-	.main_bottom_class {
-		width: 100%;
-		position: fixed;
-		max-width: 10rem;
-
-		bottom: 0;
-
-	}
-
-	.main_cl {
-		position: relative;
-		background-color: #FFF8F4;
-	}
-
-	.popup-content {
-		height: 100vh;
-
-		/* border-top-left-radius: 20px;
-		border-top-right-radius: 20px; */
-
-	}
-
-	.popup-main>>>uni-view {
-		max-width: 10rem;
-
-		margin: auto;
-		/* border-radius: 20px; */
-		border-top-left-radius: 20px;
-		border-top-right-radius: 20px;
-	}
-
-	.popup-detail {
-		padding-left: 20px;
-		padding-right: 20px;
-		font-size: 14px;
-		line-height: 20px;
-		/* letter-spacing: 4px; */
-		overflow-y: auto;
-		height: 78vh;
-		border-top-left-radius: 0px !important;
-		border-top-right-radius: 0px !important;
-		/* overflow-y: auto;
+}
+
+.main_scale_introduce {}
+
+.scale_introduce_title {
+	margin-top: 46rpx;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.m_s_i {
+	background-color: #ffffff;
+	padding-top: 0.53rem;
+	padding-bottom: 2rem;
+	;
+
+}
+
+.main_user_evaluate {
+	text-align: center;
+	font-size: 16px;
+	font-weight: 700;
+}
+
+.main_kuai {
+	display: flex;
+	flex-direction: row;
+	justify-content: center;
+}
+
+.main_kuai_k {
+	margin-top: 10px;
+	width: 50px;
+	border-radius: 10px;
+	line-height: 6px;
+
+	background-color: #ddd;
+}
+
+.main_start_button {
+	/* 	width: 100%; */
+	background: linear-gradient(270deg, #FC3C3C 0%, #FF9D41 100%);
+	box-shadow: 0px 4px 10px 0px rgba(244, 107, 107, 0.302);
+	border-radius: 10px 10px 10px 10px;
+	opacity: 1;
+	border: 1px solid #FFE8BA;
+}
+
+.main_check {
+	display: flex;
+	flex-direction: row;
+
+}
+
+.main_tiao {
+	color: #5a95f1;
+}
+
+.main_check_class {
+	margin-left: 5px;
+}
+
+.main_check_pub {
+	background-color: #ffffff;
+	display: flex;
+	flex-direction: row;
+	padding-bottom: 5px;
+}
+
+.main_bottom_class {
+	box-sizing: border-box;
+	width: 100%;
+	position: fixed;
+	max-width: 750rpx;
+	bottom: 0;
+	background: #ffffff;
+	padding: 32rpx 18rpx;
+}
+
+.main_cl {
+	position: relative;
+	background-color: #ffffff;
+	padding: 68rpx 0 240rpx;
+}
+
+.popup-content {
+	height: 100vh;
+}
+
+.popup-main>>>uni-view {
+	max-width: 750rpx;
+
+	margin: auto;
+	/* border-radius: 20px; */
+	border-top-left-radius: 20px;
+	border-top-right-radius: 20px;
+}
+
+.popup-detail {
+	padding-left: 20px;
+	padding-right: 20px;
+	font-size: 14px;
+	line-height: 20px;
+	/* letter-spacing: 4px; */
+	overflow-y: auto;
+	height: 78vh;
+	border-top-left-radius: 0px !important;
+	border-top-right-radius: 0px !important;
+	/* overflow-y: auto;
 		height:90vh; */
+}
+
+.popup-title-cla {
+	text-align: center;
+	font-size: 20px;
+	font-weight: 700;
+	margin-bottom: 20px !important;
+}
+
+.popup-cuo {
+	text-align: right;
+}
+
+.popup-know {
+	background-color: #fad031;
+	color: #4c4b58;
+	margin-left: 10px;
+	margin-right: 10px;
+	border-radius: 20px;
+	margin-top: 15px;
+}
+
+.scale_js {
+	padding-left: 20px;
+	padding-right: 20px;
+	font-size: 16px;
+	letter-spacing: 4px;
+	line-height: 36px;
+}
+
+.main_top_name {
+	font-size: 40rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 700;
+	color: #03A2AD;
+	line-height: 58rpx;
+	margin-top: 40rpx;
+}
+
+.main_scale_font {
+	font-size: 40rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 900;
+	color: #069EBC;
+	line-height: 58rpx;
+}
+
+.main_scale_font_njhd {
+	font-size: 20px;
+	color: #500000;
+	font-weight: 900;
+	height: 20px;
+	line-height: 20px;
+}
+
+.main_xing_left {
+	width: 76rpx;
+	margin: -32rpx 32rpx 0 0;
+}
+
+.main_xing_right {
+	width: 76rpx;
+	margin: -32rpx 0 0 32rpx;
+}
+
+.main_xing_left1 {
+	width: 64rpx;
+	margin-right: 40rpx;
+}
+
+.main_xing_right1 {
+	width: 64rpx;
+	margin-left: 40rpx;
+}
+
+.main_scale_cpll_out {
+	overflow: hidden;
+	background: linear-gradient(180deg, #D5F9FF 0%, #94FFF1 100%);
+	border-radius: 10px;
+	padding: 14rpx 26rpx;
+	margin: 36rpx 20rpx;
+}
+
+.main_scale_cpll {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.main_scale_cpll_mi {
+	margin-top: 20px;
+}
+
+.main_scale_cpll_text {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 500;
+	color: #03A2AD;
+	line-height: 1.6;
+	letter-spacing: 4rpx;
+	text-align: justify;
+	text-indent: 2em;
+}
+
+.main_scale_cpll_zhu {
+	padding: 12rpx 22rpx;
+	margin: 28rpx 0;
+	background: #FFFFFF;
+	border-radius: 16rpx 16rpx 16rpx 16rpx;
+	opacity: 1;
+}
+
+.main_scale_cpll_zhu_text {
+	font-size: 12px;
+	font-family: Source Han Sans-Regular, Source Han Sans;
+	font-weight: 400;
+	color: #3D3D3D;
+	line-height: 17px;
+}
+
+.main_scale_njhd_out {
+	padding-top: 14px;
+	margin-top: 21px;
+	background: linear-gradient(180deg, #FFEFD3 0%, #FFB587 100%);
+	margin-left: 10px;
+	margin-right: 10px;
+	border-radius: 10px;
+	padding-bottom: 14px;
+	padding-left: 10px;
+	padding-right: 10px;
+}
+
+.main_scale_njhd {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.main_scale_njhd_title {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 500;
+	color: #03A2AD;
+	line-height: 40rpx;
+}
+
+.main_scale_njhd_text_out {
+	background-color: #ffffff;
+	padding: 14rpx 26rpx;
+	border-radius: 10px;
+	margin-top: 5px;
+	margin-bottom: 22rpx;
+}
+
+.main_scale_njhd_text {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 400;
+	color: #5E5E5E;
+	line-height: 40rpx;
+	letter-spacing: 2rpx;
+}
+
+.main_scale_shsc_out {
+	padding-top: 14px;
+	margin-top: 21px;
+	background: linear-gradient(180deg, #D6D5FF 0%, #94A9FF 100%);
+	margin-left: 10px;
+	margin-right: 10px;
+	border-radius: 10px;
+	padding-bottom: 14px;
+	padding-left: 10px;
+	padding-right: 10px;
+}
+
+.main_scale_shsc {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.main_scale_font_shsc {
+	font-size: 20px;
+	color: #0624BC;
+	font-weight: 900;
+	height: 20px;
+	line-height: 20px;
+}
+
+.dui_out {
+	height: 23px;
+	width: 23px;
+	border-radius: 50%;
+	background-color: #ffffff;
+}
+
+.dui_self {
+	width: 13px;
+	height: 8px;
+	margin-left: 5px;
+	margin-top: 7px
+}
+
+.dui_text {
+	background-color: #ffffff;
+	padding: 20rpx 24rpx;
+	border-radius: 8px;
+	margin-left: 8px;
+	flex: 1;
+}
+
+.shsc_dui {
+	display: flex;
+	align-items: center;
+	margin-bottom: 20rpx;
+
+}
+
+.dui_text_self {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 400;
+	color: #069EBC;
+	line-height: 40rpx;
+}
+
+.main_scale_cpbbnr_out {
+	padding-top: 14px;
+	margin-top: 21px;
+	background: linear-gradient(180deg, #FFEFD3 0%, #FFB587 100%);
+	margin-left: 10px;
+	margin-right: 10px;
+	border-radius: 10px;
+	padding-bottom: 14px;
+	padding-left: 10px;
+	padding-right: 10px;
+}
+
+.main_scale_cpbbnr {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+
+.main_scale_font_cpbbnr {
+	font-size: 20px;
+	color: #500000;
+	font-weight: 900;
+	height: 20px;
+	line-height: 20px;
+}
+
+.main_scale_cpbbnr_con {
+	margin-top: 56rpx;
+}
+
+.cpbbnr_con_out {
+	display: flex;
+	align-items: center;
+}
+
+.cpbbnr_con_part {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 900;
+	color: #069EBC;
+	line-height: 40rpx;
+}
+
+.cpbbnr_con_text {
+	font-size: 28rpx;
+	font-family: Source Han Sans, Source Han Sans;
+	font-weight: 500;
+	color: #3D3D3D;
+	line-height: 40rpx;
+	margin-left: 20rpx;
+	letter-spacing: 2rpx;
+}
+
+.cpbbnr_con_shu {
+	height: 17px;
+	width: 0px;
+	border: 2rpx solid #069EBC;
+	margin-left: 15px;
+}
+
+.main_ckwx_text {
+	font-size: 24rpx;
+	font-family: Source Han Sans-Regular, Source Han Sans;
+	font-weight: 400;
+	color: #3D3D3D;
+	line-height: 1.6;
+	letter-spacing: 2rpx;
+}
+
+.modal_box {
+	position: fixed;
+	z-index: 2;
+	height: 100%;
+	top: 0;
+	left: 0;
+	right: 0;
+	background-color: rgba(0, 0, 0, 0.6);
+}
+
+.modal_box_inner {
+	/* background-color: #000000; */
+	position: relative;
+	z-index: 999;
+	margin: 100px auto;
+	width: 302px;
+	height: 293px;
+	opacity: 1;
+	background-image: url('/static/images/modal.png');
+	background-size: contain;
+	background-repeat: no-repeat;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+}
+
+.modal_tk {
+	margin-top: 80px;
+	border-radius: 10px;
+	width: 200px;
+	background-color: rgba(255, 255, 255, 0.6);
+	padding: 12px;
+	font-size: 14px;
+	font-family: Source Han Sans-Normal, Source Han Sans;
+	font-weight: 350;
+	color: #656C74;
+	line-height: 22px;
+
+}
+
+.ty_class {
+	color: #ffffff;
+	background: linear-gradient(180deg, #30E4F0 0%, #2FD2DE 100%);
+	border-radius: 20px;
+	text-align: center;
+	margin-top: 40px;
+	font-size: 14px;
+	height: 36px;
+	width: 177px;
+	line-height: 36px;
+}
+
+.bty_class {
+	color: #03A2AD;
+	margin-top: 13px;
+	font-size: 14px;
+	font-family: Source Han Sans-Regular, Source Han Sans;
+	font-weight: 400;
+	color: #03A2AD;
+	line-height: 20px;
+}
+
+.tk_link {
+	font-size: 14px;
+	font-family: Source Han Sans-Normal, Source Han Sans;
+	font-weight: 350;
+	color: #03A2AD;
+}
+
+.history_bar {
+	box-sizing: border-box;
+	max-width: 750rpx;
+	position: fixed;
+	top: 0;
+	left: 50%;
+	transform: translateX(-50%);
+	width: 100%;
+	line-height: 68rpx;
+	background: #30c5b2;
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	font-size: 14px;
+	color: #f5f5f5;
+	padding: 0 4%;
+	z-index: 9999;
+
+	.history_button {
+		height: 48rpx;
+		line-height: 48rpx;
+		background: linear-gradient(270deg, #00D8E7 0%, #069EBC 100%);
+		padding: 0 16rpx;
+		border-radius: 24rpx;
+
+		&:active {
+			opacity: 0.8;
+		}
 	}
-
-	.popup-title-cla {
-		text-align: center;
-		font-size: 20px;
-		font-weight: 700;
-		margin-bottom: 20px !important;
-	}
-
-	.popup-cuo {
-		text-align: right;
-	}
-
-	.popup-know {
-		background-color: #fad031;
-		color: #4c4b58;
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 20px;
-		margin-top: 15px;
-	}
-
-	.scale_js {
-		padding-left: 20px;
-		padding-right: 20px;
-		font-size: 16px;
-		letter-spacing: 4px;
-		line-height: 36px;
-	}
-
-	.main_top_name {
-		font-size: 20px;
-		font-family: Source Han Sans-Bold, Source Han Sans;
-		font-weight: 700;
-		color: #03A2AD;
-		line-height: 29px;
-	}
-
-	.main_scale_font {
-		font-size: 20px;
-		color: #069EBC;
-		font-weight: 900;
-		height: 20px;
-		line-height: 20px;
-	}
-
-	.main_scale_font_njhd {
-		font-size: 20px;
-		color: #500000;
-		font-weight: 900;
-		height: 20px;
-		line-height: 20px;
-	}
-
-	.main_xing_left {
-		height: 30px;
-		weight: 20px;
-		margin-right: 40px;
-	}
-
-	.main_xing_right {
-		height: 30px;
-		weight: 20px;
-		margin-left: 40px;
-	}
-
-	.main_xing_left1 {
-		height: 30px;
-		weight: 20px;
-		margin-right: 20px;
-	}
-
-	.main_xing_right1 {
-		height: 30px;
-		weight: 20px;
-		margin-left: 20px;
-	}
-
-	.main_scale_cpll_out {
-		padding-top: 14px;
-		margin-top: 21px;
-		background: linear-gradient(180deg, #D5F9FF 0%, #94FFF1 100%);
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 10px;
-		padding-bottom: 14px;
-	}
-
-	.main_scale_cpll {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.main_scale_cpll_mi {
-		margin-top: 20px;
-		background-color: #ffffff;
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 10px;
-		opacity: 1;
-		padding-left: 8px;
-		padding-right: 8px;
-		padding-top: 13px;
-		padding-bottom: 16px;
-	}
-
-	.main_scale_cpll_text {
-		font-size: 14px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #656C74;
-		line-height: 20px;
-	}
-
-	.main_scale_cpll_zhu {
-		margin-top: 23px;
-		margin-left: 10px;
-		margin-right: 10px;
-	}
-
-	.main_scale_cpll_zhu_text {
-		font-size: 12px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #3D3D3D;
-		line-height: 17px;
-	}
-
-	.main_scale_njhd_out {
-		padding-top: 14px;
-		margin-top: 21px;
-		background: linear-gradient(180deg, #FFEFD3 0%, #FFB587 100%);
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 10px;
-		padding-bottom: 14px;
-		padding-left: 10px;
-		padding-right: 10px;
-	}
-
-	.main_scale_njhd {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.main_scale_njhd_title {
-		/* 	background: linear-gradient(142deg, #FFB689 0%, #FFE1B2 100%); */
-		opacity: 1;
-		font-size: 14px;
-		line-height: 20px;
-		padding: 4px 7px;
-		background: url('/static/images/sj1.png') no-repeat 100%;
-	}
-
-	.main_scale_njhd_text_out {
-		background-color: #ffffff;
-		padding: 13px 7px;
-		border-radius: 10px;
-		margin-top: 5px;
-		margin-bottom: 20px;
-	}
-
-	.main_scale_njhd_text {
-		font-size: 14px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #656C74;
-		line-height: 20px;
-	}
-
-	.main_scale_shsc_out {
-		padding-top: 14px;
-		margin-top: 21px;
-		background: linear-gradient(180deg, #D6D5FF 0%, #94A9FF 100%);
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 10px;
-		padding-bottom: 14px;
-		padding-left: 10px;
-		padding-right: 10px;
-	}
-
-	.main_scale_shsc {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.main_scale_font_shsc {
-		font-size: 20px;
-		color: #0624BC;
-		font-weight: 900;
-		height: 20px;
-		line-height: 20px;
-	}
-
-	.dui_out {
-		height: 23px;
-		width: 23px;
-		border-radius: 50%;
-		background-color: #ffffff;
-	}
-
-	.dui_self {
-		width: 13px;
-		height: 8px;
-		margin-left: 5px;
-		margin-top: 7px
-	}
-
-	.dui_text {
-		background-color: #ffffff;
-		padding: 10px 12px;
-		border-radius: 8px;
-		margin-left: 8px;
-		flex: 1;
-	}
-
-	.shsc_dui {
-		display: flex;
-		align-items: center;
-		margin-bottom: 8px;
-
-	}
-
-	.dui_text_self {
-		font-size: 14px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #0624BC;
-		line-height: 20px;
-	}
-
-	.main_scale_cpbbnr_out {
-		padding-top: 14px;
-		margin-top: 21px;
-		background: linear-gradient(180deg, #FFEFD3 0%, #FFB587 100%);
-		margin-left: 10px;
-		margin-right: 10px;
-		border-radius: 10px;
-		padding-bottom: 14px;
-		padding-left: 10px;
-		padding-right: 10px;
-	}
-
-	.main_scale_cpbbnr {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.main_scale_font_cpbbnr {
-		font-size: 20px;
-		color: #500000;
-		font-weight: 900;
-		height: 20px;
-		line-height: 20px;
-	}
-
-	.main_scale_cpbbnr_con {
-		background-color: #ffffff;
-		padding: 12px 10px;
-		border-radius: 8px;
-	}
-
-	.cpbbnr_con_out {
-		display: flex;
-		align-items: center;
-	}
-
-	.cpbbnr_con_part {
-		font-size: 14px;
-		font-family: Source Han Sans-Heavy, Source Han Sans;
-		font-weight: 900;
-		color: #500000;
-		line-height: 20px;
-		margin-right: 15px;
-	}
-
-	.cpbbnr_con_text {
-		font-size: 14px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #3D3D3D;
-		line-height: 20px;
-	}
-
-	.cpbbnr_con_shu {
-		height: 17px;
-		width: 0px;
-		border: 1px solid #500000;
-		margin-left: 15px;
-	}
-
-	.main_ckwx_text {
-		font-size: 12px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #3D3D3D;
-		line-height: 17px;
-	}
-
-	.modal_box {
-		position: fixed;
-		z-index: 2;
-		height: 100%;
-		top: 0;
-		left: 0;
-		right: 0;
-		background-color: rgba(0, 0, 0, 0.6);
-	}
-
-	.modal_box_inner {
-		/* background-color: #000000; */
-		position: relative;
-		z-index: 999;
-		margin: 100px auto;
-		width: 302px;
-		height: 293px;
-		opacity: 1;
-		background-image: url('/static/images/modal.png');
-		background-size: contain;
-		background-repeat: no-repeat;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-	}
-
-	.modal_tk {
-		margin-top: 80px;
-		border-radius: 10px;
-		width: 200px;
-		background-color: rgba(255, 255, 255, 0.6);
-		padding: 12px;
-		font-size: 14px;
-		font-family: Source Han Sans-Normal, Source Han Sans;
-		font-weight: 350;
-		color: #656C74;
-		line-height: 22px;
-
-	}
-
-	.ty_class {
-		color: #ffffff;
-		background: linear-gradient(180deg, #30E4F0 0%, #2FD2DE 100%);
-		border-radius: 20px;
-		text-align: center;
-		margin-top: 40px;
-		font-size: 14px;
-		height: 36px;
-		width: 177px;
-		line-height: 36px;
-	}
-
-	.bty_class {
-		color: #03A2AD;
-		margin-top: 13px;
-		font-size: 14px;
-		font-family: Source Han Sans-Regular, Source Han Sans;
-		font-weight: 400;
-		color: #03A2AD;
-		line-height: 20px;
-	}
-
-	.tk_link {
-		font-size: 14px;
-		font-family: Source Han Sans-Normal, Source Han Sans;
-		font-weight: 350;
-		color: #03A2AD;
-	}
+}
+
+.cpjs {
+	box-sizing: border-box;
+	margin: 20rpx auto;
+	padding: 24rpx;
+	background: #FFFFFF;
+	border-radius: 10px;
+	font-size: 24rpx;
+	color: #656C74;
+	line-height: 1.8;
+	letter-spacing: 4rpx;
+	text-align: justify;
+	text-indent: 2em;
+}
+
+.myjj {
+	box-sizing: border-box;
+	margin: 20rpx auto;
+	padding: 24rpx;
+	background: #FFFFFF;
+	border-radius: 10px;
+	font-size: 28rpx;
+	color: #03A2AD;
+	line-height: 1.6;
+	letter-spacing: 3rpx;
+	text-indent: 2em;
+}
+
+.bx {
+	box-sizing: border-box;
+	display: flex;
+	align-items: center;
+	margin: 24rpx 0;
+}
+
+.bx_left {
+	width: 12rpx;
+	height: 56rpx;
+	background: #00D8E7;
+	border-radius: 4rpx 4rpx 4rpx 4rpx;
+	opacity: 1;
+}
+
+.bx_right {
+	line-height: 56rpx;
+	background: url(../../static/images/bx.png) no-repeat center;
+	background-size: 100% 100%;
+	font-size: 28rpx;
+	font-family: Source Han Sans-Regular, Source Han Sans;
+	font-weight: 400;
+	color: #ffffff;
+	margin-left: 4rpx;
+	padding: 0 16rpx;
+}
+
+.main_scale_njhd_desc {
+	display: flex;
+	align-items: flex-start;
+}
+
+.reference_index {
+	font-size: 24rpx;
+	color: #3D3D3D;
+	line-height: 1.6;
+	margin-right: 10rpx;
+}
 </style>

+ 262 - 112
paymentPage/paymentPage/index.vue

@@ -1,79 +1,72 @@
 <template>
-	<view class='top_main'>
-		<view class='top_page_out'>
-			<view class='top_page'>
+	<view class="top_main">
+		<view class="top_page_out">
+			<view class="top_page">
 				<view>
-					<view class='pay_title'>已为您生成深度分析报告</view>
+					<view class="pay_title">已为您生成深度分析报告</view>
 					<!-- <img class='top_page_img' src='/static/images/top_1.png' /> -->
-					<view class='top_page_tab'>
-						<view class='top_page_m'>
-							<view style='margin-left:23px;'>
-								<img style='width:80px;height:80px' src='/static/images/top_2.png' />
+					<view class="top_page_tab">
+						<view class="top_page_m">
+							<view style="margin-left: 23px">
+								<img style="width: 80px; height: 80px" src="/static/images/top_2.png" />
 							</view>
-							<view class='top_page_tab_right'>
-								<view class='top_page_scale_title'>抑郁简明量表</view>
-								<view class='top_page_scale_title'>个人深度分析报告</view>
-								<view class='top_page_yh'>新用户专享优惠价</view>
-								<view class="top_page_price">
-									¥9.9
-								</view>
+							<view class="top_page_tab_right">
+								<view class="top_page_scale_title">{{orderInfo.description}}</view>
+								<view class="top_page_scale_title">个人深度分析报告</view>
+								<view class="top_page_yh">{{hasDiscount? '限时专享优惠价' : '专享价'}}</view>
+								<view class="top_page_price"> ¥{{hasDiscount? promotionPrice : price}} </view>
 								<!-- <view class='top_people'>
 									100.3w<text class='page_yice'>人已测</text>
 								</view> -->
 							</view>
 						</view>
-						<view class='top_page_b'>
-							<button class='top_page_b_b'>9.9元解锁报告数据</button>
+						<view class="top_page_b">
+							<button class="top_page_b_b">{{hasDiscount? promotionPrice : price}}元解锁报告数据</button>
 						</view>
-
 					</view>
 				</view>
-				<view style='margin-top:40px;'>
-					<view class='main_scale_gmcp'>
-						<img class='main_xing_left' src="/static/images/xing_left3.png" />
-						<view class='main_scale_font_gmcp'>购买测评的这样说</view>
-						<img class='main_xing_right' src="/static/images/xing_right3.png" />
+				<!-- <view style="margin-top: 40px">
+					<view class="main_scale_gmcp">
+						<img class="main_xing_left" src="/static/images/xing_left3.png" />
+						<view class="main_scale_font_gmcp">购买测评的这样说</view>
+						<img class="main_xing_right" src="/static/images/xing_right3.png" />
 					</view>
 				</view>
-				<view class='scale_gmcp_connent'>
-					<view style='display:flex;margin-bottom:20px;'>
-						<img style="width:43px;height:43px;border-radius: 50%;" src="/static/images/topImg1.png" />
-						<view style='margin-left:20px'>
-							<view class='pub_time'>发布时间:2023-01-01 12:00</view>
-							<view class='pub_connnet'>测得很准</view>
+				<view class="scale_gmcp_connent">
+					<view style="display: flex; margin-bottom: 20px">
+						<img style="width: 43px; height: 43px; border-radius: 50%" src="/static/images/topImg1.png" />
+						<view style="margin-left: 20px">
+							<view class="pub_time">发布时间:2023-01-01 12:00</view>
+							<view class="pub_connnet">测得很准</view>
 						</view>
 					</view>
-					<view style='display:flex'>
-						<img style="width:43px;height:43px;border-radius: 50%;" src="/static/images/phone2.png" />
-						<view style='margin-left:20px'>
-							<view class='pub_time'>发布时间:2023-05-01 12:00</view>
-							<view class='pub_connnet'>确实不错</view>
+					<view style="display: flex">
+						<img style="width: 43px; height: 43px; border-radius: 50%" src="/static/images/phone2.png" />
+						<view style="margin-left: 20px">
+							<view class="pub_time">发布时间:2023-05-01 12:00</view>
+							<view class="pub_connnet">确实不错</view>
 						</view>
 					</view>
-
-				</view>
+				</view> -->
 			</view>
-
 		</view>
 
-		<view class='top_footer'>
-			<view class='pay_price'>
-				<!-- <view class='pay_price_y'>优惠价</view> -->
-				<view class='pay_price_p'>¥9.9</view>
-			</view>
-			<view style='display: flex;justify-content: space-between;margin-bottom:20px;'>
-				<view class='people_sy'>
-					本次优惠剩余名额:200
+		<view class="top_footer">
+			<template v-if="hasDiscount">
+				<view class="pay_price">
+					<!-- <view class='pay_price_y'>优惠价</view> -->
+					<view class="pay_price_p">¥{{price}}</view>
+					<view class="pro_tag">优惠价:¥<text class="price"> {{promotionPrice}}</text></view>
 				</view>
-				<view class='people_sy_time'>
-					<view>倒计时:</view>
-					<view>
-						<text class='time_ol'>10</text><text class='time_mao'>:</text>
-						<text class='time_ol'>08</text><text class='time_mao'>:</text>
-						<text class='time_ol'>34</text>
+				<view style="display: flex;justify-content: space-between; align-items: center; margin: 20rpx 0;">
+					<view class="people_sy"> 本次优惠剩余名额:{{residueNum}} </view>
+					<view class="people_sy_time">
+						<!-- <uni-countdown :show-day="false" :hour="testHour" :minute="testMinute" :second="testSecond" /> -->
+						<text>倒计时:</text><uni-countdown :show-day="true" background-color="#FF9D41" color="#ffffff"
+							:start="start" :hour="testHour" :minute="testMinute" :second="testSecond" />
 					</view>
 				</view>
-			</view>
+			</template>
 			<!-- <view>
 				<radio-group @change="radioChange" class='radio_class_1'>
 					<label class='radio_class' v-for="(item, index) in payList" :key="item.value">
@@ -85,9 +78,9 @@
 					</label>
 				</radio-group>
 			</view> -->
-			<view>
-				<button class='top_page_b_1' @click='goShow()'>
-					<text class='price-suo'>9.9元解锁报告数据</text>
+			<view style="margin-bottom: 20rpx;">
+				<button class="top_page_b_1" @click="getH5Pay()">
+					<text class="price-suo">{{hasDiscount? promotionPrice : price}}元解锁报告数据</text>
 				</button>
 			</view>
 		</view>
@@ -95,30 +88,172 @@
 </template>
 
 <script>
+	import {
+		timestampFormatter
+	} from '../../utils/util.js'
 	export default {
 		data() {
 			return {
 				current: 0,
 				payList: [{
-					index: 1,
-					value: "微信支付",
-					url: new URL(`/static/images/wx.png`, import.meta.url).href,
-					checked: true
-				}, {
-					index: 1,
-					value: "支付宝支付",
-					url: new URL(`/static/images/zfb.png`, import.meta.url).href,
-					checked: false
-				}]
+						index: 1,
+						value: "微信支付",
+						url: new URL(`/static/images/wx.png`, import.meta.url).href,
+						checked: true,
+					},
+					{
+						index: 1,
+						value: "支付宝支付",
+						url: new URL(`/static/images/zfb.png`, import.meta.url).href,
+						checked: false,
+					},
+				],
+				orderInfo: null,
+				residueNum: 0, // 剩余名额
+				price: 0, // 正常价格
+				promotionPrice: 0, // 优惠价格
+				promotionEndTime: 0, // 结束时间(时间戳)
+				testHour: 0, // 时
+				testMinute: 0, // 分
+				testSecond: 0, // 秒
+				start: false
+			};
+		},
+		computed: {
+			// 是否有折扣
+			hasDiscount() {
+				let timeSpan = new Date().getTime();
+				let endTime = this.promotionEndTime - timeSpan;
+				return this.residueNum > 0 && endTime > 0
+			}
+		},
+		onLoad(options) {
+			if (options.orderNo) {
+				this.orderNo = options.orderNo;
+				this.payEnsure();
 			}
+			this.orderInfo = JSON.parse(sessionStorage.getItem('orderInfo'));
+			this.queryPromotion();
 		},
 		methods: {
-			radioChange() {
-
+			radioChange() {},
+			// 查询优惠信息
+			queryPromotion() {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `api/promotionInfo/queryPromotionDetail/${this.orderInfo.productId}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						this.residueNum = res.data.residueNum
+						this.price = res.data.price;
+						this.promotionPrice = res.data.promotionPrice;
+						this.promotionEndTime = new Date(res.data.promotionEndTime).getTime()
+						this.getDhms();
+						uni.hideLoading();
+					});
+			},
+
+			// 查询是否有订单
+			queryHasOrder() {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `api/orderInfo/queryOrderByResultIdAndUserId/${this.orderInfo.userId}/${this.orderInfo.resultId}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						uni.hideLoading();
+					});
+			},
+
+			// 检查订单支付状态
+			checkOrder() {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `api/wx-pay/queryOrder/${_this.orderNo}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						uni.hideLoading();
+						let resultInfo = JSON.parse(res.data.body)
+						if (resultInfo.trade_state === 'SUCCESS') {
+							uni.navigateTo({
+								url: `/paymentPage/phoneSave/index?resultId=${this.orderInfo.resultId}&userId=${this.orderInfo.userId}`
+							});
+						} else {
+							return;
+						}
+					});
+			},
+			// 拉起微信支付
+			getH5Pay(params) {
+				let _this = this;
+				uni.showLoading();
+				_this.$request
+					.get({
+						url: `api/orderInfo/queryOrderByResultIdAndUserId/${this.orderInfo.userId}/${this.orderInfo.resultId}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then((res) => {
+						uni.hideLoading();
+						if (res.data && res.data.orderStatus === '支付成功') {
+							uni.navigateTo({
+								url: `/paymentPage/phoneSave/index?resultId=${this.orderInfo.resultId}&userId=${this.orderInfo.userId}`
+							});
+						} else {
+							_this.orderInfo.total = _this.hasDiscount ? _this.promotionPrice : _this.price;
+							_this.$request
+								.post({
+									url: "api/wx-pay/h5Pay",
+									loadingTip: "加载中...",
+									data: _this.orderInfo
+								})
+								.then((res) => {
+									let redirect_url = encodeURI(
+										`http://hnhong-duo.com/webo/paymentPage/paymentPage/index?orderNo=${res.data.orderNo}`
+									)
+									window.location.href = `${res.data.codeUrl}&redirect_url=${redirect_url}`;
+								});
+						}
+					});
+			},
+			payEnsure() {
+				let _this = this;
+				uni.showModal({
+					title: '支付确认',
+					content: '请在微信内完成支付,如您已支付成功,请点击"已完成支付按钮"',
+					cancelText: '未支付',
+					confirmText: '已完成支付',
+					success() {
+						uni.showLoading({
+							title: ''
+						});
+						_this.checkOrder();
+					},
+					fail() {
+
+					}
+				})
+			},
+
+			// 获取天时分秒
+			getDhms() {
+				let timeSpan = this.promotionEndTime - new Date().getTime();
+				let time = timestampFormatter(timeSpan);
+				this.testHour = time.h;
+				this.testMinute = time.m;
+				this.testSecond = time.s;
+				this.start = true;
 			}
-
-		}
-	}
+		},
+	};
 </script>
 
 <style scoped>
@@ -126,16 +261,16 @@
 		width: 90%;
 
 		/* height: 400px; */
-		background-image: url(/static/images/top-bg.png);
 		padding-left: 5%;
 		padding-right: 5%;
 		overflow-y: scroll;
-
 	}
 
 	.top_page_out {
-		background: linear-gradient(180deg, #FFECD5 0%, #FFFFFF 100%);
-
+		width: 100%;
+		height: 100vh;
+		background: url(/static/images/top-bg.png) no-repeat center;
+		background-size: cover;
 	}
 
 	.top_page_img {
@@ -144,7 +279,11 @@
 		margin-top: 100px;
 	}
 
-	.top_main {}
+	.top_main {
+		width: 100%;
+		height: 100vh;
+		background: linear-gradient(180deg, #ffecd5 0%, #ffffff 100%);
+	}
 
 	.top_page_tab {
 		width: 100%;
@@ -154,7 +293,7 @@
 		margin-top: 5px;
 		display: flex;
 		flex-direction: column;
-		justify-content: space-between
+		justify-content: space-between;
 	}
 
 	.top_page_m {
@@ -173,7 +312,6 @@
 		/* width: 100%; */
 		/* height:150px; */
 		margin-bottom: 10px;
-
 	}
 
 	.top_page_tab_right {
@@ -181,31 +319,25 @@
 	}
 
 	.top_page_b_b {
-		/* border-radius: 32px;
-		margin-left: 10px;
-		margin-right: 10px;
-		background: linear-gradient(172deg, #fde2b4, #ff514b);
-		color: #ffffff; */
-		font-size: 16px;
-		line-height: 36px;
-		height: 36px;
-		background: linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%);
-		box-shadow: 0px 4px 10px 0px rgba(244, 107, 107, 0.302);
+		font-size: 32rpx;
+		line-height: 72rpx;
+		height: 72rpx;
+		background: linear-gradient(270deg, #fc3c3c 0%, #ff9d41 100%);
+		box-shadow: 0px 8rpx 20rpx 0px rgba(244, 107, 107, 0.302);
 		border-radius: 20px 20px 20px 20px;
 		opacity: 1;
-		border: 1px solid #FFE8BA;
+		border: 1px solid #ffe8ba;
 		color: #ffffff;
-
 	}
 
 	.top_page_b_1 {
 		color: #ffffff;
-		height: 40px;
-		background: linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%);
+		line-height: 80rpx;
+		background: linear-gradient(270deg, #fc3c3c 0%, #ff9d41 100%);
 		box-shadow: 0px 4px 10px 0px rgba(244, 107, 107, 0.302);
 		border-radius: 10px 10px 10px 10px;
 		opacity: 1;
-		border: 1px solid #FFE8BA;
+		border: 1px solid #ffe8ba;
 		margin-left: 10px;
 		margin-right: 10px;
 	}
@@ -222,7 +354,7 @@
 	}
 
 	.top_page_price {
-		color: #F94206;
+		color: #f94206;
 		font-size: 14px;
 	}
 
@@ -252,7 +384,7 @@
 	}
 
 	.middle_get::before {
-		background: url('/static/images/middle_left.png');
+		background: url("/static/images/middle_left.png");
 		background-size: 100% 100%;
 		content: "";
 		display: inline-flex;
@@ -261,7 +393,7 @@
 	}
 
 	.middle_get::after {
-		background: url('/static/images/middle_right.png');
+		background: url("/static/images/middle_right.png");
 		background-size: 100% 100%;
 		content: "";
 		display: inline-flex;
@@ -290,9 +422,8 @@
 
 	.pay_price {
 		display: flex;
+		align-items: center;
 		padding-top: 10px;
-		
-
 	}
 
 	.pay_price_y {
@@ -300,20 +431,18 @@
 		margin-left: 20px;
 		margin-right: 5px;
 		color: #ffffff;
-
 	}
 
 	.pay_price_p {
-		font-size: 20px;
+		font-size: 32rpx;
 		font-family: Source Han Sans-Bold, Source Han Sans;
 		font-weight: 700;
-		color: #F94206;
+		color: #f94206;
 		/* line-height: 38px; */
 		margin-left: 10px;
 	}
 
 	.radio_class {
-
 		display: flex;
 		background-color: #ffffff;
 		margin-bottom: 10px;
@@ -344,7 +473,7 @@
 		font-size: 14px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #656C74;
+		color: #656c74;
 		line-height: 20px;
 	}
 
@@ -363,13 +492,13 @@
 
 	.main_xing_left {
 		height: 30px;
-		weight: 20px;
+		width: 20px;
 		margin-right: 20px;
 	}
 
 	.main_xing_right {
 		height: 30px;
-		weight: 20px;
+		width: 20px;
 		margin-left: 20px;
 	}
 
@@ -388,7 +517,7 @@
 		font-size: 12px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #C4C4C4;
+		color: #c4c4c4;
 		line-height: 17px;
 	}
 
@@ -396,7 +525,7 @@
 		font-size: 14px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #3D3D3D;
+		color: #3d3d3d;
 		line-height: 20px;
 	}
 
@@ -404,7 +533,7 @@
 		font-size: 14px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #656C74;
+		color: #656c74;
 		line-height: 20px;
 		margin-left: 4px;
 	}
@@ -413,27 +542,48 @@
 		font-size: 14px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #656C74;
+		color: #656c74;
 		line-height: 20px;
 		display: flex;
 		margin-right: 4px;
+		display: flex;
+		justify-content: center;
+		align-items: center;
 	}
 
 	.time_ol {
-		background: linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%);
+		background: linear-gradient(270deg, #ff9d41 0%, #fc3c3c 100%);
 		border-radius: 4px 4px 4px 4px;
 		padding: 2px;
 		color: #ffffff;
 	}
 
 	.time_mao {
-		color: #FF9D41;
+		color: #ff9d41;
 	}
-	.price-suo{
+
+	.price-suo {
 		font-size: 16px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
-		color: #FFFFFF;
+		color: #ffffff;
 		line-height: 40px;
 	}
+
+	.pro_tag {
+		padding: 12rpx 20rpx;
+		background: #EA0000;
+		border-radius: 40rpx 40rpx 40rpx 40rpx;
+		margin-left: 16rpx;
+		color: #ffffff;
+		display: flex;
+		align-items: center;
+		font-size: 24rpx;
+
+		.price {
+			font-size: 39rpx !important;
+			font-weight: 700;
+			margin: 0 0 10rpx 10rpx;
+		}
+	}
 </style>

+ 111 - 44
paymentPage/phoneSave/index.vue

@@ -1,7 +1,9 @@
 <template>
 	<div>
 		<div class='top-page'>
-			<view style='text-align: center;padding-top:15px'><img style='width:73px;height:73px' src='/static/images/success_icon.png' /></view>
+			<view style='text-align: center;padding-top:15px'>
+				<image style='width:146rpx' src='/static/images/success_icon.png' mode="widthFix"></image>
+			</view>
 			<view class='main_scale_njhd'>
 				<img class='main_xing_left' src="/static/images/xing_left2.png" />
 				<view class='main_scale_font_njhd'>支付成功</view>
@@ -17,11 +19,13 @@
 				<view class="phone_tip">请输入您的手机号码,我们将为您推送专属报告链接</view>
 				<div class='verification-phone'>
 					<uni-easyinput class="uni-mt-5 verification-phone1" @blur="checkPhone()" trim="all"
-						placeholder="请输入手机号" v-model='phone'></uni-easyinput>
+						placeholder="请输入手机号" v-model='phone' placeholder-style="font-size:32rpx"></uni-easyinput>
 				</div>
 				<div class='verification-code'>
-					<uni-easyinput class="uni-mt-5 verification-code1" placeholder="请输入验证码" v-model="code">
-						<template #right><text style="margin-right:20px;background:#F8F6F7;color:#03A2AD;line-height:35px;"
+					<uni-easyinput class="uni-mt-5 verification-code1" placeholder="请输入验证码" v-model="code"
+						placeholder-style="font-size:32rpx">
+						<template #right><text
+								style="font-size:32rpx; margin-right:20px;background:#F8F6F7;color:#03A2AD;line-height:35px;"
 								@click='sendCode()'>{{sendCodeFlag}}</text></template>
 					</uni-easyinput>
 				</div>
@@ -43,9 +47,24 @@
 				//倒计时数字
 				timeCount: 60,
 				//显示倒计时还是发送验证码
-				sendCodeFlag: '发送验证码'
+				sendCodeFlag: '发送验证码',
+				userId: '',
+				resultId: ''
+			}
+		},
+		onLoad(options) {
+			if (options.userId && options.resultId) {
+				this.userId = options.userId;
+				this.resultId = options.resultId;
 			}
 		},
+		onUnload() {
+			clearInterval(this.time);
+			this.phone = '';
+			this.code = '';
+			this.timeCount = 60;
+			this.sendCodeFlag = '发送验证码';
+		},
 		methods: {
 			//对手机号进行校验
 			checkPhone() {
@@ -61,9 +80,9 @@
 				}
 			},
 			sendCode() {
-				if(!this.checkPhone()){
+				if (!this.checkPhone()) {
 					return;
-				}	
+				}
 				if (this.sendCodeFlag == '重新发送' || this.sendCodeFlag == '发送验证码') {
 					this.timeCount = 60;
 					clearInterval(this.time)
@@ -78,15 +97,49 @@
 							this.sendCodeFlag = '重新发送'
 						}
 					}, 1000)
+					this.$request.get({
+						url: 'user/authCode',
+						loadingTip: "加载中...",
+						data: {
+							phone: this.phone
+						},
+					}).then((res) => {
+						uni.showToast({
+							title: '验证码已发送',
+							icon: 'success',
+						})
+					})
 				}
 
 			},
-			saveAndView(){
-				//查看手机号是否合法,
-				//查看code是否存在
-				//如果手机号合法且code存在就发送信息
-				if(this.checkPhone()&&this.code!=''){
-					//开始调用接口发送数据
+			// 绑定手机号并查看报告
+			saveAndView() {
+				// 校验手机和验证码格式
+				if (this.checkPhone() && this.code != '') {
+					this.$request.get({
+						url: 'user/updateMobile',
+						loadingTip: "加载中...",
+						data: {
+							id: this.userId,
+							mobile: this.phone,
+							authCode: this.code,
+						},
+					}).then((res) => {
+						if (res.code == 200) {
+							uni.showToast({
+								icon: 'success',
+								title: '保存成功'
+							})
+							uni.navigateTo({
+								url: `/scaleTestResults/testResults/index?resultId=${this.resultId}&messageShare=1`
+							});
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: res.msg
+							})
+						}
+					})
 				}
 			}
 		}
@@ -134,23 +187,24 @@
 	}
 
 	.phone-button {
-		margin-top: 40px;
-		border-radius: 40px;
-		background: linear-gradient(270deg, #00D8E7 0%, #069EBC 100%);
-		box-shadow: inset 0px 0px 0px 0px rgba(47,146,255,0.1936);
-		border-radius: 37px 37px 37px 37px;
-		color:#ffffff;
-		font-size: 16px;
+		margin-top: 80rpx;
+		background: linear-gradient(270deg, #069EBC 0%, #00D8E7 100%);
+		box-shadow: inset 0rpx 0rpx 0rpx 0rpx rgba(47, 146, 255, 0.1936);
+		border-radius: 73rpx 73rpx 73rpx 73rpx;
+		color: #ffffff;
+		font-size: 32rpx;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		color: #FFFFFF;
-		line-height: 40px;
+		line-height: 92rpx;
 	}
-	.verification-phone>>>.content-clear-icon{
-		color:#57eded !important;
+
+	.verification-phone>>>.content-clear-icon {
+		color: #57eded !important;
 	}
-	.verification-code>>>.content-clear-icon{
-		color:#57eded !important;
+
+	.verification-code>>>.content-clear-icon {
+		color: #57eded !important;
 	}
 
 	uni-button:after {
@@ -168,7 +222,6 @@
 	}
 
 	.page-connent {
-	
 		background-color: #ffffff;
 		padding-top: 20px;
 		padding-bottom: 20px;
@@ -179,61 +232,75 @@
 	}
 
 	.verification-phone1>>>uni-view {
+		height: 92rpx;
 		background-color: #F8F6F7 !important;
-		border:0px;
+		border: 0px;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
 	}
 
 	.verification-code1>>>uni-view {
+		font-size: 32rpx;
+		height: 92rpx;
 		background-color: #F8F6F7 !important;
-		border:0px;
+		border: 0px;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
 	}
+
 	.verification-code {
 		margin-top: 23px;
 	}
-	
+
 	.verification-phone {
 		/* background-color: #6e6a6a; */
 		margin-top: 26px;
 	}
-	
+
 	.phone-button {
 		margin-top: 40px;
 		border-radius: 40px;
 		border-color: transparent;
 		background-color: #fff82a;
-		margin-bottom:30px;
+		margin-bottom: 30px;
 	}
+
 	.main_scale_njhd {
 		display: flex;
 		justify-content: center;
 		align-items: center;
 	}
-	.main_scale_font_njhd{
-		font-size: 24px;
+
+	.main_scale_font_njhd {
+		font-size: 52rpx;
 		font-family: AlibabaPuHuiTi-Heavy, AlibabaPuHuiTi;
 		font-weight: 900;
 		color: #069EBC;
 		line-height: 30px;
 	}
+
 	.main_xing_left {
-		height: 30px;
-		weight: 20px;
-		margin-right: 20px;
+		height: 60rpx;
+		margin-right: 20rpx;
 	}
-	
+
 	.main_xing_right {
-		height: 30px;
-		weight: 20px;
+		height: 60rpx;
 		margin-left: 20px;
 	}
-	.phone_tip{
-		height: 17px;
-		font-size: 12px;
+
+	.phone_tip {
+		font-size: 24rpx;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		color: #656C74;
-		line-height: 17px;
+		line-height: 34rpx;
 		text-align: center;
 	}
-	
+
+	/deep/ .uni-easyinput__content-input {
+		line-height: inherit;
+	}
+
+	/deep/ .uni-input-input {
+		font-size: 32rpx;
+	}
 </style>

+ 200 - 131
paymentPage/queryByPhone/index.vue

@@ -2,12 +2,12 @@
 	<div class='phone-order'>
 		<view class='query_tab'>
 			<view :class="{'phone_query_tab':tabFlag=='phone','phone_query_tab_no':tabFlag=='order'}"
-				@click='tabClick(1)'>
+				@click.native='tabClick(1)'>
 				<text
 					:class="{'phone_query_tab_font':tabFlag=='phone','phone_query_tab_font_no':tabFlag=='order'}">用手机号查找</text>
 			</view>
 			<view :class="{'phone_query_tab':tabFlag=='order','phone_query_tab_no':tabFlag=='phone'}"
-				@click='tabClick(2)'>
+				@click.native='tabClick(2)'>
 				<text
 					:class="{'phone_query_tab_font':tabFlag=='order','phone_query_tab_font_no':tabFlag=='phone'}">用订单号查找</text>
 			</view>
@@ -17,29 +17,34 @@
 				<div class='phone_tip_t'>请输入支付时的手机号码,即可查看已付款的测试结果:</div>
 				<div class='page-connent'>
 					<div class='verification-phone'>
-						<uni-easyinput class="uni-mt-5 verification-phone1" style='height:40px' @blur="checkPhone()" trim="all"
-							placeholder="请输入手机号" v-model='phone'></uni-easyinput>
+						<uni-easyinput class="uni-mt-5 verification-phone1" style='height:40px' trim="all"
+							placeholder="请输入手机号" v-model='phone' placeholder-style="font-size:28rpx"></uni-easyinput>
 					</div>
 					<div class='verification-code'>
-						<uni-easyinput class="uni-mt-5 verification-code1" placeholder="请输入验证码" v-model="code">
-							<template #right><text style="margin-right:20px;background:#F8F6F7;line-height:35px;color:#03A2AD"
+						<uni-easyinput class="uni-mt-5 verification-code1" placeholder="请输入验证码" v-model.number="code"
+							placeholder-style="font-size:28rpx">
+							<template #right><text
+									style="margin-right:20px;background:#F8F6F7;line-height:35px;color:#03A2AD"
 									@click='sendCode()'>{{sendCodeFlag}}</text></template>
 						</uni-easyinput>
 					</div>
-					<view style='text-align:right;color: #767676;font-size: 12px;margin-top:10px'>没收到验证码?</view>
+					<view style='width:600rpx;text-align:right;color: #767676;font-size: 24rpx;margin-top:20rpx'>没收到验证码?
+					</view>
 					<!-- <div class='tip-des'>请输入您在支付时填的手机号~ 如未留下过手机号,请切换用订单号查询</div> -->
-					<div><button class='phone-button' @click='saveAndView()'>立即查询</button></div>
+					<div><button class='phone-button' @click='immediateQuery(1)'>立即查询</button></div>
 				</div>
 			</div>
 			<div v-show="tabFlag=='order'" style='padding-bottom:20px'>
 				<div style='padding-top:10px;margin-left:10px;' class='order_tip_t'>请输入支付后的订单编号,即可查看已付款的测试结果:</div>
-				<div class='verification-phone' style='padding-left:10px;padding-right: 10px;margin-top:30px;'>
-					<uni-easyinput class="uni-mt-5 verification-phone1" @blur="checkOrder()" trim="all"
-						placeholder="请输入订单号号" v-model='orderNum'></uni-easyinput>
+				<div class='verification-phone' style='padding-left:10px;padding-right: 10px;margin-top:60rpx;'>
+					<uni-easyinput class="uni-mt-5 verification-phone1" trim="all" placeholder="请输入订单号号"
+						v-model='orderNo' placeholder-style="font-size:28rpx"></uni-easyinput>
 				</div>
-				<view style='text-align: right;color:#767676;margin-top:30px;margin-bottom:60px;font-size: 12px;margin-right:10px'>不知道订单编号?</view>
+				<view @click="dialogToggle"
+					style='width: 600rpx; margin: 40rpx auto; text-align: right;color:#767676;font-size: 24rpx;'>
+					不知道订单编号?</view>
 				<div style='padding-left:10px;padding-right:10px;'><button class='phone-button'
-						@click='immediateQuery(1)'>立即查询</button></div>
+						@click='immediateQuery(2)'>立即查询</button></div>
 			</div>
 
 		</div>
@@ -49,25 +54,30 @@
 				<view class='main_scale_font_njhd'>历史订单</view>
 				<img class='main_xing_right' src="/static/images/xing_right2.png" />
 			</view>
-			
+
 			<div v-for="(item ,index) in historyList " :key="index" class='history-tab'>
 				<div class='history-name'>
-					{{item.name}}
+					{{item.title}}
 				</div>
 				<div class='history-num'>
 					<div>订单编号:</div>
-					<div class='history-order-des'>{{item.order}}</div>
+					<div class='history-order-des'>{{item.orderNo}}</div>
 				</div>
 				<div class='history-status'>
 					<div class='history-status-font'>订单状态:</div>
 					<div class='history-status-des'>{{item.orderStatus}}</div>
 				</div>
-				<div class='view-report-out'><button class='view-report' @click="immediateQuery(2)"
-						size='mini'>立即查</button></div>
+				<div class='view-report-out'><button class='view-report' @click="goResult(item.resultId)"
+						size='mini'>立即查</button></div>
 			</div>
 			<view><uni-load-more :status="status" /></view>
 		</div>
-
+		<!-- 提示窗示例 -->
+		<uni-popup ref="alertDialog" type="dialog">
+			<uni-popup-dialog :type="msgType" confirmText="确定" title="提示" @confirm="dialogConfirm" @close="dialogClose">
+				<image src="../../static/images/order_no.png" mode="widthFix" style="width: 600rpx;"></image>
+			</uni-popup-dialog>
+		</uni-popup>
 	</div>
 </template>
 
@@ -78,52 +88,31 @@
 				//more 上拉加载更多
 				//loading  加载中
 				//no-more 没有更多数据
-				status:'no-more',
+				status: 'no-more',
 				//订单编号
-				orderNum: '',
+				orderNo: '',
 				//点击手机号查看还是订单号查看
 				tabFlag: 'phone',
 				//手机号
 				phone: '',
 				code: '',
+				verification: null,
 				//时间标志
 				time: null,
 				//倒计时数字
 				timeCount: 60,
 				//显示倒计时还是发送验证码
 				sendCodeFlag: '发送验证码',
-				historyList: [{
-						name: '抑郁测试',
-						order: '891289128912891218372913',
-						orderStatus: '已支付'
-					},
-					{
-						name: '抑郁测试',
-						order: '891289128912891218372913',
-						orderStatus: '未完成'
-					},
-					{
-						name: '抑郁测试',
-						order: '891289128912891218372913',
-						orderStatus: '未完成'
-					},
-					{
-						name: '抑郁测试',
-						order: '891289128912891218372913',
-						orderStatus: '未完成'
-					},
-					{
-						name: '抑郁测试',
-						order: '891289128912891218372913',
-						orderStatus: '未完成'
-					}
-				]
+				historyList: [
+
+				],
+				pageNum: 1,
+				pageSize: 10
 			}
 		},
-		onReachBottom() {   
-		    console.log('滑动到距离底部100px的时候触发,可以放 。。业务逻辑');
-		
-		}, 
+		onReachBottom() {
+			console.log('滑动到距离底部100px的时候触发,可以放 。。业务逻辑');
+		},
 		methods: {
 			tabClick(val) {
 				if (val == 1) {
@@ -134,7 +123,7 @@
 			},
 			//对订单号进行校验
 			checkOrder() {
-				if (this.orderNum == null || this.orderNum == '') {
+				if (this.orderNo == null || this.orderNo == '') {
 					uni.showToast({
 						title: '订单编号不能为空',
 						icon: 'error'
@@ -155,6 +144,19 @@
 					return false;
 				}
 			},
+			// 校验短信验证码
+			checkCode() {
+				let reg = /^[0-9]\d{5}$/;
+				if (reg.test(this.code)) {
+					return true;
+				} else {
+					uni.showToast({
+						title: '请输入6位短信验证码',
+						icon: 'error'
+					})
+					return false;
+				}
+			},
 			sendCode() {
 				if (!this.checkPhone()) {
 					return;
@@ -173,38 +175,109 @@
 							this.sendCodeFlag = '重新发送'
 						}
 					}, 1000)
+					this.$request.get({
+						url: 'user/authCode',
+						loadingTip: "加载中...",
+						data: {
+							phone: this.phone
+						},
+					}).then((res) => {
+						if (res.code == 200) {
+							this.verification = res.data;
+							uni.showToast({
+								title: '验证码已发送',
+								icon: 'success',
+							})
+						}
+					})
 				}
 
 			},
 			immediateQuery(val) {
 				if (val == '1') {
 					//参数传输手机号和验证码,然后后台进行查询
+					this.queryByphone();
 				} else {
 					//参数查询订单号,然后后台进行查询
+					this.queryByorder();
+				}
+			},
+			queryByphone() {
+				if (this.checkPhone() && this.checkCode()) {
+					this.$request.post({
+						url: 'record/getRecordByModelPhone',
+						loadingTip: "加载中...",
+						data: {
+							modelPhone: this.phone,
+							authCode: this.code,
+							pageNum: this.pageNum,
+							pageSize: this.pageSize,
+							verification: this.verification
+						}
+					}).then((res) => {
+						if (res.data) {
+							this.historyList = res.data.orderList;
+						} else {
+							this.historyList = [];
+							uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							})
+						}
+					}).catch(err => {
+						err = JSON.parse(err);
+						uni.showToast({
+							title: err.msg,
+							icon: 'none'
+						})
+					})
+				}
+			},
+
+			queryByorder() {
+				if (!this.orderNo) {
+					uni.showToast({
+						icon: 'none',
+						title: '请输入订单号'
+					})
+					return
 				}
+				this.$request.get({
+					url: `api/orderInfo/queryOrderDetail/${this.orderNo}`,
+					loadingTip: "加载中...",
+					data: {
+
+					}
+				}).then((res) => {
+					if (res.data) {
+						this.historyList = [res.data];
+					} else {
+						this.historyList = [];
+					}
+				})
+			},
+
+			goResult(id) {
+				uni.navigateTo({
+					url: `/scaleTestResults/testResults/index?resultId=${id}&messageShare=1`
+				})
+			},
+
+			dialogToggle(type) {
+				this.msgType = type
+				this.$refs.alertDialog.open()
 			}
-			// saveAndView() {
-			// 	//查看手机号是否合法,
-			// 	//查看code是否存在
-			// 	//如果手机号合法且code存在就发送信息
-			// 	if (this.checkPhone() && this.code != '') {
-			// 		//开始调用接口发送数据
-			// 	}
-			// }
 		}
 	}
 </script>
 
 <style scoped>
 	.phone-order {
-		/* 	width: 100%; */
-		max-width: 10rem;
-		;
+		max-width: 750rpx;
 		background: linear-gradient(180deg, #D8FFF2 0%, #46E2ED 42%, #BEFFE8 98%);
 		padding-top: 30px;
 		padding-left: 10px;
 		padding-right: 10px;
-		/* padding-right:10px; */
 		min-height: 100vh;
 	}
 
@@ -241,13 +314,10 @@
 		height: 1.2rem;
 		background: url(../../static/images/order1.png) no-repeat 50%;
 		background-size: 100% 100%;
-
-		/*   top: 0.26667rem; */
 		right: 0;
 	}
 
 	.order2 {
-
 		position: absolute;
 		width: 3.5rem;
 		height: 1.1rem;
@@ -255,13 +325,7 @@
 		background-size: 100% 100%;
 		z-index: -1;
 		top: 0.1rem;
-		/*   top: 0.26667rem; */
 		right: 0;
-		/* height: 0.8rem;
-		font-size: .42667rem;
-		color: #a95842;
-		margin-left: 1.61333rem;
-		margin-top: 0.45333rem; */
 	}
 
 	.phone-1 {
@@ -281,26 +345,19 @@
 
 	.order-1 {
 		text-align: center;
-		margin-top: 20px;
-		/* margin-left: 15px; */
 		font-size: 18px;
 		font-weight: 700;
 	}
 
 	.order-2 {
-		/* text-align: center; */
 		color: #a95842;
 		margin-top: 18px;
 		margin-left: 40px;
-		/* margin-top: 18px;
-		margin-left: 35px; */
 		font-size: 18px;
 		font-weight: 700;
 	}
 
 	.phone-class {
-		/* background: url(../../static/images/phone-class.png) no-repeat 100%; */
-		/* background-size: 100% 100%; */
 		background-color: #ffffff;
 		border-bottom-left-radius: 10px;
 		border-bottom-right-radius: 10px;
@@ -308,53 +365,58 @@
 	}
 
 	.page-connent {
-		/* background-color: #fdeae1; */
 		padding-top: 5px;
 		padding-bottom: 20px;
 		padding-left: 10px;
 		padding-right: 10px;
 		border-radius: 10px;
-		/* margin-top: 20px; */
 	}
 
 	.verification-phone1>>>uni-view {
-		background-color: #F8F6F7 !important;
-		border:0px;
+		width: 600rpx;
+		height: 80rpx;
+		background: #F8F6F7 !important;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		opacity: 1;
+		margin: 0 auto;
+		border: none;
 	}
 
 	.verification-code1>>>uni-view {
-		background-color: #F8F6F7 !important;
-		border:0px;
+		width: 600rpx;
+		height: 80rpx;
+		background: #F8F6F7 !important;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+		opacity: 1;
+		margin: 0 auto;
+		border: none;
 	}
 
 	.phone-button {
-		margin-top: 15px;
-		background: linear-gradient(90deg, #00D8E7 0%, #069EBC 100%);
-		box-shadow: inset 0px 0px 0px 0px rgba(47,146,255,0.1936);
-		border-radius: 37px 37px 37px 37px;;
-		color:#ffffff;
-		margin-bottom:30px;
+		width: 616rpx;
+		background: linear-gradient(270deg, #00D8E7 0%, #069EBC 100%);
+		box-shadow: inset 0rpx 0rpx 0rpx 0rpx rgba(47, 146, 255, 0.1936);
+		border-radius: 73rpx 73rpx 73rpx 73rpx;
+		opacity: 1;
+		margin: 94rpx auto 60rpx;
+		font-size: 32rpx;
+		font-family: Source Han Sans-Regular, Source Han Sans;
+		font-weight: 400;
+		color: #FFFFFF;
+		line-height: 80rpx;
 	}
 
 	.verification-code {
-		margin-top: 32px;
+		margin-top: 46rpx;
 	}
 
 	.verification-phone {
-		/* background-color: #6e6a6a; */
 		margin-top: 20px;
 	}
-	.verification-phone>>>.content-clear-icon{
-		color:#57eded !important;
-		border:0px;
-		
-	}
-	
-	.verification-phone>>>.uni-easyinput__content-input{
-		height:40px !important;
-	}
-	.verification-code>>>.uni-easyinput__content-input{
-		height:40px !important;
+
+	.verification-phone>>>.content-clear-icon {
+		color: #57eded !important;
+		border: 0px;
 	}
 
 	.tip-des {
@@ -370,14 +432,14 @@
 	}
 
 	.history-name {
-		color:#656C74;
+		color: #656C74;
 		font-size: 16px;
 		line-height: 23px;
 		margin-bottom: 10px;
 	}
 
 	.history-tab {
-		background-color:#ffffff;
+		background-color: #ffffff;
 		border-radius: 10px;
 		padding-left: 10px;
 		padding-top: 10px;
@@ -405,14 +467,9 @@
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		line-height: 20px;
-		/* color: linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%); */
-	/* 	background: -webkit-linear-gradient(270deg, #FF9D41 0%, #FC3C3C 100%);
-		webkit-text-fill-color: transparent;
-		webkit-background-clip: text; */
-		
-		background-image:-webkit-linear-gradient(top, #bc2f08,#d75d10,#de6912);
-		-webkit-background-clip:text;
-		-webkit-text-fill-color:transparent;
+		background-image: -webkit-linear-gradient(top, #bc2f08, #d75d10, #de6912);
+		-webkit-background-clip: text;
+		-webkit-text-fill-color: transparent;
 	}
 
 	.history-order-des {
@@ -420,18 +477,16 @@
 	}
 
 	.view-report {
-		margin-top:10px;
+		margin-top: 10px;
 		margin-left: unset;
 		margin-right: 12px;
 		color: #ffffff;
-		background:#E1FDFF;
+		background: #E1FDFF;
 		border: 1px solid #069EBC;
 		color: #069EBC;
 		border-radius: 36px;
-		height:40px;
+		height: 40px;
 		font-size: 16px;
-		/* background: linear-gradient(172deg, #fde2b4, #ff514b); */
-		/* width:100px; */
 	}
 
 	.view-report-out {
@@ -478,52 +533,66 @@
 	}
 
 	.phone_tip_t {
-		font-size: 12px;
+		font-size: 24rpx;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		color: #656C74;
-		line-height: 17px;
+		line-height: 34rpx;
 		text-align: center;
-		padding-top:22px;
+		padding-top: 44rpx;
 	}
-	.order_tip_t{
-		font-size: 12px;
+
+	.order_tip_t {
+		font-size: 24rpx;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		color: #656C74;
-		line-height: 17px;
+		line-height: 34rpx;
 		text-align: center;
+		margin: 60rpx 0;
 	}
+
 	.main_scale_njhd {
-		margin-top:39px;
+		margin-top: 39px;
 		display: flex;
 		justify-content: center;
 		align-items: center;
-		margin-bottom:20px;
+		margin-bottom: 20px;
 	}
-	.main_scale_font_njhd{
+
+	.main_scale_font_njhd {
 		font-size: 16px;
 		font-family: AlibabaPuHuiTi-Heavy, AlibabaPuHuiTi;
 		font-weight: 900;
 		color: #000000;
 		line-height: 30px;
 	}
+
 	.main_xing_left {
 		height: 30px;
 		weight: 20px;
 		margin-right: 20px;
 	}
-	
+
 	.main_xing_right {
 		height: 30px;
 		weight: 20px;
 		margin-left: 20px;
 	}
-	.history-status-font{
+
+	.history-status-font {
 		font-size: 14px;
 		font-family: Source Han Sans-Regular, Source Han Sans;
 		font-weight: 400;
 		color: #656C74;
 		line-height: 20px;
 	}
+
+	/deep/ .uni-easyinput__content {
+		font-size: 32rpx;
+	}
+
+	/deep/ .uni-easyinput__content-input {
+		font-size: 32rpx;
+	}
 </style>

+ 27 - 15
scaleTestResults/components/unTable.vue

@@ -1,24 +1,26 @@
 <template>
 	<view class="warp_">
-		<view class="box">  
+		<view class="box">
 			<t-table @change="change" v-for="(items,index) in scoresList" :key="index">
-				<t-tr >
-					<t-th v-for="(itemTitle,i) in items.colNames" :key="i">{{itemTitle}}</t-th>
-					 
+				<t-tr>
+					<t-th v-for="(itemTitle,i) in items.colNames" :key="i" style="width: 100%;">{{itemTitle}}</t-th>
+
 				</t-tr>
-				<t-tr v-for="(c,p) in  testResult == 2 ?items.newTableContext.result : items.tableContext" :key="p"
-						 >
+				<t-tr v-for="(c,p) in  testResult == 2 ?items.newTableContext.result : items.tableContext" :key="p">
 					<t-td>{{c.name != undefined?c.name:'总分'}}</t-td>
-					<t-td v-if="c.name != undefined">{{testResult == 2?c.score:c.value[0]}}</t-td>
+					<t-td
+						v-if="(c.name != undefined) && (c.percent == undefined)">{{testResult == 2?c.score:c.value[0]}}</t-td>
+					<t-td v-if="(c.name != undefined) && (c.percent != undefined)"><progress-plus style="width: 100%"
+							:color="colors[p%6]" :percent="c.percent" :score="c.score" /></t-td>
 				</t-tr>
 				<!-- <t-tr v-if='items.newTableContext.result.length==0 &&testResult == 2'>
 					<t-td>总分</t-td>
 					<t-td>0.00</t-td>
 				</t-tr> -->
-	 
+
 			</t-table>
 		</view>
-		 
+
 	</view>
 </template>
 <script>
@@ -27,29 +29,39 @@
 	import tTh from '@/components/t-table/t-th.vue';
 	import tTr from '@/components/t-table/t-tr.vue';
 	import tTd from '@/components/t-table/t-td.vue';
+	import ProgressPlus from '@/components/ProgressPlus/ProgressPlus.vue'
 	export default {
-		props:['scoresList','testResult'],
+		props: ['scoresList', 'testResult'],
 		components: {
 			tTable,
 			tTh,
 			tTr,
-			tTd
+			tTd,
+			ProgressPlus
 		},
 		data() {
-			return { 
+			return {
+				colors: [
+					'#1C82F3',
+					'#21C9CF',
+					'#ECB84F',
+					'#EC6F4F',
+					'#CF63D6',
+					'#4F5FEC'
+				]
 			};
 		},
 		methods: {
 			change(e) {
 				console.log(e.detail);
-			} 
+			}
 		}
 	};
 </script>
 <style scoped>
-	.warp_{
+	.warp_ {
 		/* width: 94%; */
 		width: 100%;
 		margin: 0 auto;
 	}
-</style>
+</style>

+ 710 - 1248
scaleTestResults/testResults/index.vue

@@ -1,8 +1,5 @@
 <template>
 	<view class="test-result-warp">
-	<!-- 	<u-sticky>
-			<backHead :title="'量表报告'" @backClick="leftClick"></backHead>
-		</u-sticky> -->
 		<view class="test-result-inner" v-show="showContent">
 			<view class="test-result-content">
 				<view class="target-content" ref="targetDom" id="targetDom">
@@ -14,40 +11,29 @@
 							</view>
 							<u-avatar size="100" :src="avatarUrl"></u-avatar>
 						</view>
-						<u-row>
-							<u-col span="12">
-								<div class="report-tip">
-									<div class="tip-title">报告阅读说明</div>
-									<p class="tip-desc">谢谢您的参与,阅读本报告时,请注意以下内容:</p>
-									<p class="tip-content">本结果仅供参考,不可作为临床诊断的依据;</p>
-									<p class="tip-content">如对报告有不理解的地方,建议向专业资质人员进行咨询;</p>
-									<p class="tip-content">如结果与你自己或他人感知的有出入,可回忆在测试<br>时是否有事情影响到你,或自己答辩时是否有所顾虑。</p>
-								</div>
-							</u-col>
-						</u-row>
 					</view>
-					<view class="table-title" v-if="scoresList">分值</view>
-					<unTable :scoresList="scoresList" :testResult="testResult" />
+					<!-- <view class="table-title" v-if="scoresList">分值</view>
+					<unTable :scoresList="scoresList" :testResult="testResult" /> -->
 					<view class="radar-title" v-if="scoreList && scoreList.length > 0">你的分数</view>
 					<leiDa :reference="reference" :scoreList="scoreList" :indicator="indicator" />
 					<view class="over-style" v-if="showResultText">结果分析</view>
 					<view v-if="showResultText">
 						<view class="dimension-warp" v-for="(list, j) in symptomDescription" :key="j">
-							<view class="dimension-name">维度名称:{{ list.name }}</view>
+							<view class="dimension-name">名称:{{ list.name }}</view>
 							<view class="dimension-content">
 								<view class="dimension-item" v-if="list.score && list.score != '无'">
 									<text class="dimension-item-title">得分</text>
 									<text class="dimension-item-mh">:</text>
-									<text class="dimension-item-desc">{{ list.score }}</text>
+									<text class="dimension-item-desc">{{ list.percent }}</text>
 								</view>
 								<view class="dimension-item" v-if="list.symptom && list.symptom != '无'">
-									<text class="dimension-item-title">症状</text>
+									<text class="dimension-item-title">解释</text>
 									<text class="dimension-item-mh">:</text>
 									<text class="dimension-item-desc">{{ list.symptom }}</text>
 								</view>
 								<view class="dimension-item"
 									v-if="list.improvementSuggestions && list.improvementSuggestions != '无'">
-									<text class="dimension-item-title">维度说明</text>
+									<text class="dimension-item-title">说明</text>
 									<text class="dimension-item-mh">:</text>
 									<text class="dimension-item-desc">{{ list.improvementSuggestions }}</text>
 								</view>
@@ -59,1314 +45,790 @@
 							</view>
 						</view>
 					</view>
+					<u-row>
+						<u-col span="12">
+							<div class="report-tip">
+								<div class="tip-title">报告阅读说明</div>
+								<p class="tip-desc">谢谢您的参与,阅读本报告时,请注意以下内容:</p>
+								<p class="tip-content">本结果仅供参考,不可作为临床诊断的依据;</p>
+								<p class="tip-content">如对报告有不理解的地方,建议向专业资质人员进行咨询;</p>
+								<p class="tip-content">如结果与你自己或他人感知的有出入,可回忆在测试<br>时是否有事情影响到你,或自己答辩时是否有所顾虑。</p>
+							</div>
+						</u-col>
+					</u-row>
 				</view>
 				<u-line></u-line>
-				<!-- 点赞操作 -->
-		<!-- 		<view class="operate_wrap">
-					<view class="operate_item" @click="clickHandle(0)">
-						<image v-if="praiseStatu" class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/like_active.png" mode="widthFix">
-						</image>
-						<image v-else class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/operate1.png" mode="widthFix">
-						</image>
-						<text class="like-num">{{ likeNum }}</text>
-					</view>
-					<view class="operate_item" @click="clickHandle(1)">
-						<image v-if="treadStatu" class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/notlike_active.png"
-							mode="widthFix"></image>
-						<image v-else class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/operate2.png" mode="widthFix">
-						</image>
-						<text class="not-like-num">{{ notLikeNum }}</text>
-					</view>
-					<view class="operate_item" @click="goComment">
-						<image class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/operate3.png" mode="widthFix">
-						</image>
-						<text class="comment-num">{{ commentNum }}</text>
-					</view>
-					<view class="operate_item" @click="goSearch">
-						<image class="operate_item_img"
-							src="https://test.jue-ming.com:8849/api/show?filePath=./images/operate4.png" mode="widthFix">
-						</image>
-					</view>
-				</view> -->
-				<u-line></u-line>
-				<!-- 相关测评 -->
-			<!-- 	<template v-if="relevantList.length > 0">
-					<view class="comment">
-						<view class="comment_top">
-							<view class="comment_title">相关测评</view>
-						</view>
-						<swiper class="swiper" circular :interval="interval" :next-margin="25" :indicator-dots="true"
-							indicator-color="#ABABAB" indicator-active-color="#1B90B2" :duration="duration">
-							<swiper-item v-for="item in relevantList" :key="item">
-								<uni-list :border="false">
-									<uni-list-item v-for="it in item" showArrow clickable @click="navgetToBeginTest(it)"
-										:key="it" ellipsis="1">
-										<template v-slot:header>
-											<image style="
-											  width: 131px;
-											  height: 131px;
-											  border-radius: 40px 40px 40px 40px;
-											" class="slot-image" :src="`https://test.jue-ming.com:8849/api/show?filePath=${it.imageUrl}`"></image>
-										</template>
-										<template v-slot:body>
-											<view class="slot-title">{{ dealLongTxt(it.name, 10) }}</view>
-											<view class="slot-text">{{ dealLongTxt(it.description, 15) }}</view>
-											<view class="slot-desc">
-												<text class="slot-desc-tag" v-if="scaleInfo.reportVersion == 2">专业型</text>
-												<text class="slot-desc-num">已测{{ it.testNum }}人次</text>
-											</view>
-										</template>
-									</uni-list-item>
-								</uni-list>
-							</swiper-item>
-						</swiper>
-					</view>
-				</template> -->
-				<view class="custom-style-list">
-					<!-- #ifdef MP-WEIXIN -->
-		
-					<!-- <view class="btn-content">
-						<view class="">
-							<u-button @click="downloadReport" :custom-style="downloadBtn" type="info" size="mini"
-								shape="circle">下载报告</u-button>
-						</view>
-						<view class="">
-							<u-button :custom-style="returnBtn" @click="navgetToBeginTest(scaleInfo)" type="info"
-								size="mini" shape="circle">再测一次</u-button>
-						</view>
-						<view class="">
-							<u-button :custom-style="shareBtn" type="info" size="mini" data-name="shareBtn" open-type="share" shape="circle">
-								<image src="https://test.jue-ming.com:8849/api/show?filePath=./images/share.png"
-									style="height: 100%;width:100%;" mode=""></image>
-							</u-button>
-						</view>
-
-					</view> -->
-					<!-- #endif -->
-					<!-- #ifdef H5 -->
-					<!-- <center>
-						<view class="custom-style-list-right marTop20 mrr">
-							<u-button @click="navBackTest" type="success" size="mini"
-								class="content_app11 textColorff weight fontSize30" shape="circle" style="height:40px">再测一次
-							</u-button>
-						</view>
-						<view class="custom-style-list-right marTop20">
-							<u-button @click="navBack" type="success" size="mini"
-								class="content_app11 textColorff weight fontSize30" shape="circle" style="height:40px">返回
-							</u-button>
-						</view>
-					</center> -->
-					<!-- #endif -->
-				</view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-// import backHead from "@/components/back-head/index.vue"
-import leiDa from "@/components/mpvueEcharts/leiDa.vue"
-import unTable from "../components/unTable.vue"
-import {
-	baseUrl,
-	photoUrl
-} from '@/common/config.js'
-// import {
-// 	mapGetters
-// } from "vuex";
-// var app = getApp().globalData;
-var loginRes;
-import {
-	getRecordById
-} from "@/api/index.js";
-var _this;
-export default {
-	name: "testResults",
-	components: {
-		leiDa,
-		unTable
-
-	},
-	computed: {
-		// ...mapGetters(["userInfo"]),
-	},
-	data() {
-		return {
-			getBenDatas: null,
-			avatarUrl: "",
-			petName: "",
-			showTestedPerson: false,
-			baseUrl: baseUrl,
-			name: "",
-			time: "",
-			// persion: this.$imageUrl.urls.persion,
-			totalScores: 0,
-			symptomScore: [],
-			symptomDescription: [],
-			symptom: "",
-			reference: [],
-			scoreList: [],
-			indicator: [],
-			improvementSuggestions: "无",
-			scoresList: [],
-			resultId: "",
-			subjectOrCognitiveId: "",
-			testResult: 2,
-			imgUrl: '',
-			messageShare: 0,
-			productList: [{
-				name: '谢谢您的参与,阅读本报告时,请注意以下内容:'
-			},
-			{
-				name: '. 本结果仅供参考,不可作为临床诊断的依据'
-			},
-			{
-				name: '. 如结果与你自己或他人感知的有出入,可回忆在测试'
-			},
-			{
-				name: '时是否有事情影响了你,或自己答题时是否有所顾虑'
-			},
-			{
-				name: '. 如对报告有不理解的地方,建议向专业人员进行咨询'
+	import leiDa from "@/components/mpvueEcharts/leiDa.vue"
+	import unTable from "../components/unTable.vue"
+	import {
+		baseUrl,
+		photoUrl
+	} from '@/common/config.js'
+	var loginRes;
+	import {
+		getRecordById
+	} from "@/api/index.js";
+	var _this;
+	export default {
+		name: "testResults",
+		components: {
+			leiDa,
+			unTable
+		},
+		data() {
+			return {
+				getBenDatas: null,
+				avatarUrl: "",
+				petName: "",
+				showTestedPerson: false,
+				baseUrl: baseUrl,
+				name: "",
+				time: "",
+				totalScores: 0,
+				symptomScore: [],
+				symptomDescription: [],
+				symptom: "",
+				reference: [],
+				scoreList: [],
+				indicator: [],
+				improvementSuggestions: "无",
+				scoresList: [],
+				resultId: "",
+				subjectOrCognitiveId: "",
+				testResult: 2,
+				imgUrl: '',
+				messageShare: 0,
+				productList: [{
+						name: '谢谢您的参与,阅读本报告时,请注意以下内容:'
+					},
+					{
+						name: '. 本结果仅供参考,不可作为临床诊断的依据'
+					},
+					{
+						name: '. 如结果与你自己或他人感知的有出入,可回忆在测试'
+					},
+					{
+						name: '时是否有事情影响了你,或自己答题时是否有所顾虑'
+					},
+					{
+						name: '. 如对报告有不理解的地方,建议向专业人员进行咨询'
+					}
+				],
+				showResultText: false,
+				relevantList: [],
+				scaleInfo: {},
+				flag: '',
+				treadStatu: false, //踩赞状态
+				praiseStatu: false, //点赞状态
+				treadId: '',
+				praiseId: '',
+				downloadBtn: {
+					height: '80px !important',
+					width: '250px !important',
+					fontSize: '32px',
+					color: '#FFFFFF',
+					background: '#FF9710',
+					border: 'none',
+				},
+				returnBtn: {
+					height: '80px !important',
+					width: '250px !important',
+					fontSize: '32px',
+					color: '#FF9710',
+					background: '#FFE6C7',
+					border: 'none',
+				},
+				shareBtn: {
+					height: '80px !important',
+					width: '80px !important',
+					fontSize: '32px',
+					color: '#FF9710',
+					background: '#FFE6C7',
+					border: 'none',
+				},
+				// arrow_left_bold: this.$imageUrl.urls.arrow_left_bold, //左侧箭头图标
+				likeNum: 0, //点赞数量
+				notLikeNum: 0, //不喜欢数量
+				commentNum: 0, //评论数量
+				showContent: false, //等接口返回数据初始化完成再
+			};
+		},
+		onBackPress(event) {
+			uni.redirectTo({
+				url: "/pages/tab/scaleTest/index"
+			});
+			return true;
+		},
+		onLoad(options) {
+			_this = this;
+			let bings = uni.getStorageSync('beginTextData')
+			if (bings) {
+				let bing = JSON.parse(bings);
+				_this.getBenDatas = bing;
 			}
-			],
-			showResultText: false,
-			relevantList: [],
-			scaleInfo: {},
-			flag: '',
-			treadStatu: false, //踩赞状态
-			praiseStatu: false, //点赞状态
-			treadId: '',
-			praiseId: '',
-			downloadBtn: {
-				height: '80px !important',
-				width: '250px !important',
-				fontSize: '32px',
-				color: '#FFFFFF',
-				background: '#FF9710',
-				border: 'none',
-			},
-			returnBtn: {
-				height: '80px !important',
-				width: '250px !important',
-				fontSize: '32px',
-				color: '#FF9710',
-				background: '#FFE6C7',
-				border: 'none',
-			},
-			shareBtn: {
-				height: '80px !important',
-				width: '80px !important',
-				fontSize: '32px',
-				color: '#FF9710',
-				background: '#FFE6C7',
-				border: 'none',
-			},
-			// arrow_left_bold: this.$imageUrl.urls.arrow_left_bold, //左侧箭头图标
-			likeNum: 0, //点赞数量
-			notLikeNum: 0, //不喜欢数量
-			commentNum: 0, //评论数量
-			showContent: false, //等接口返回数据初始化完成再
-		};
-	},
-	onShareAppMessage(options) {
-		var that = this;
-		var userInfonickName = uni.getStorageSync('uerInfonickName');
-		that.$dot.share(2, that.resultId);
-		var shareObj = {
-			// title: that.name,    // 默认是小程序的名称(可以写slogan等)
-			path: '/scaleTestResults/testResults/index?resultId=' + that.resultId + "&avatarUrl=" + uni
-				.getStorageSync("userInfoavatarUrl") + "&petName=" + userInfonickName, // 默认是当前页面,必须是以‘/'开头的完整路径
-			imageUrl: '', //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
-			success: function (res) {
-				// 转发成功之后的回调
-				if (res.errMsg == 'shareAppMessage:ok') {
-
+			if (options.resultId || options.scene) {
+				if (options.messageShare == 1) {
+					this.messageShare = options.messageShare
 				}
-			},
-			fail: function () {
-				// 转发失败之后的回调
-				if (res.errMsg == 'shareAppMessage:fail cancel') {
-					// 用户取消转发
-				} else if (res.errMsg == 'shareAppMessage:fail') {
-					// 转发失败,其中 detail message 为详细失败信息
-				}
-			}
-		};
-		// 来自页面内的按钮的转发
-		if (options.from == 'button') {
-			var eData = options.target.dataset;
-			// 此处可以修改 shareObj 中的内容
-			shareObj.path = '/scaleTestResults/testResults/index?resultId=' + that.resultId + "&avatarUrl=" + uni
-				.getStorageSync("userInfoavatarUrl") + "&petName=" + that.userInfo?.user?.petName + "&messageShare=1";
-		}
-		// 返回shareObj
-		return shareObj;
-	},
-	onBackPress(event) {
-		uni.redirectTo({
-			url: "/pages/tab/scaleTest/index"
-		});
-		return true;
-	},
-	onLoad(options) {
-		_this = this;
-		let bings = uni.getStorageSync('beginTextData')
-		if (bings) {
-			let bing = JSON.parse(bings);
-			_this.getBenDatas = bing;
-		}
-		if (options.resultId || options.scene) {
-			if (options.messageShare == 1) {
-				this.messageShare = options.messageShare
-			}
-			_this.resultId = options.resultId || options.scene;
-			_this.getScaleTestResults(_this.resultId);
-		}
-	},
-	onShow() {
-		this.showTestedPerson = this.petName && this.avatarUrl;
-	},
-	onReachBottom() { },
-	methods: {
-		navBackTest() {
-			uni.$emit('updateData', encodeURIComponent(JSON.stringify(this.getBenDatas)))
-			uni.navigateBack({
-				delta: 2
-			})
-		},
-
-		leftClick() {
-			console.log("-this.messageShare------>", this.messageShare)
-			if (this.messageShare == 1) {
-				uni.switchTab({
-					url: "/pages/tab/scaleTest/index"
-				})
-			} else {
-				uni.navigateBack();
+				_this.resultId = options.resultId || options.scene;
+				_this.getScaleTestResults(_this.resultId);
 			}
 		},
-		downloads() {
-			getApp().download(_this.resultId)
+		onShow() {
+			this.showTestedPerson = this.petName && this.avatarUrl;
 		},
-		navBack() {
-			this.leftClick()
-		},
-		getScaleTestResults(id) {
-			_this.$request
-				.get({
-					url: `${getRecordById}?id=${id}`,
-					loadingTip: "加载中...",
-					data: {},
+		onReachBottom() {},
+		methods: {
+			navBackTest() {
+				uni.$emit('updateData', encodeURIComponent(JSON.stringify(this.getBenDatas)))
+				uni.navigateBack({
+					delta: 2
 				})
-				.then(
-					(res) => {
-						console.log("----测试结果--->", res);
-						if (res.code == 200) {
-							_this.testResult = parseInt(JSON.parse(res.data?.userRecordEntity?.testResult)[0].version);
-							_this.name = res.data.userRecordEntity.name;
-							_this.flag = res.data.subject.flag;
-							_this.scaleInfo = res.data.subject;
-							_this.avatarUrl = `${photoUrl}api/show?filePath=${res.data.userInfo.avatarUrl}`;
-							_this.petName = res.data.userInfo.petName;
-							_this.showTestedPerson = this.petName && this.avatarUrl;
-							_this.getRelevantList();
-							// _this.getPraiseStatu(0);
-							// _this.getPraiseStatu(1);
-							_this.getPraiseNum();
-							_this.getCommentNum();
-							let testDateTime = res.data.userRecordEntity.testDate;
-							let yearMonthDay = testDateTime
-								.replace("年", "/")
-								.replace("月", "/")
-								.replace("日", " ")
-								.replace("时", ":")
-								.replace("分", ":")
-								.replace("秒", "");
-							_this.time = yearMonthDay;
-							if (_this.testResult == 2) {
-								_this.getDataList(res.data);
-							} else {
-								_this.scoresList = JSON.parse(res.data.userRecordEntity.testResult);
-								_this.init(_this.scoresList[0].tableContext[0].value[0])
-							}
-							this.showContent = true;
-						} else if (res.code == 401) { } else {
-							// uni.showToast({
-							// 	title: "加载有误",
-							// 	icon: "none",
-							// })
-							(res) => {
-								console.log("世界上绝对绝对绝对绝对绝对的", res);
-							}
-						}
-					})
-		},
-		init(v) {
-			_this.totalScores = Number(v);
-		},
-		getDataList(data) {
-			let v = JSON.parse(data.userRecordEntity.testResult);
-			_this.scoresList = v;
-			console.log("-----传入的参数----->", v);
-			v.forEach((items) => {
-				if (items.newTableContext.iconInfo != "") {
-					let indicatorList = items?.newTableContext?.iconInfo?.indicator;
-					if (indicatorList.length > 0) {
-						indicatorList.forEach((data) => {
-							_this.indicator.push({
-								text: data.text,
-								max: Number(data.max)
-							});
-						});
-					}
-					let referenceList = items?.newTableContext?.iconInfo?.reference || [];
-					if (referenceList.length > 0) {
-						referenceList.forEach((data) => {
-							_this.reference.push(Number(data));
-						});
-					}
-					let scoreLists = items?.newTableContext?.iconInfo?.scoreList;
-					if (scoreLists.length > 0) {
-						scoreLists.forEach((data) => {
-							_this.scoreList.push(Number(data));
-						});
-					}
-					console.log("==1111=====>", _this.indicator)
-					console.log("==2222=====>", _this.reference)
-					console.log("==3333=====>", _this.scoreList)
-				}
-				// _this.symptomDescription=[]
-				items.newTableContext.result.forEach((item) => {
-					if (!item) return;
-					if (item.name === "总分" || item.name === "压力综合指数") {
-						_this.init(item.score);
-						_this.symptom = item.symptom;
-					}
-					if (item.isTotalScoreExplain === "是") {
-						_this.improvementSuggestions = item.symptom;
-					}
-
-					_this.symptomScore.push({
-						name: item.name,
-						score: item.score
-					});
-					// _this.symptomDescription.push({
-					// 	symptom: item.symptom,
-					// 	name: item.name,
-					// 	improvementSuggestions: item.improvementSuggestions,
-					// });
-					// if (item.improvementSuggestions && item.improvementSuggestions != '无') _this.showResultText = true;
-
-					// 获取维度数据
-					this.symptomDescription.push(item);
+			},
 
-				});
-				if (this.symptomDescription && this.symptomDescription.length > 0) {
-					//判断维度显示
-					this.showResultText = true;
+			leftClick() {
+				console.log("-this.messageShare------>", this.messageShare)
+				if (this.messageShare == 1) {
+					uni.switchTab({
+						url: "/pages/tab/scaleTest/index"
+					})
+				} else {
+					uni.navigateBack();
 				}
-				console.log("0000-----000", _this.symptomDescription);
-			});
-		},
-		getPDF() {
-			let _this = this;
-			let target = uni.createSelectorQuery().select("#targetDom");
-			console.log("------>", target)
-			target.scrollWidth = 750
-			// // #ifdef H5
-			//             let target = document.querySelector('#targetDom')  
-			// _this.$createPdf(target, _this.name) 
-			// // #endif
-
-		},
-		// 查询相关测试
-		getRelevantList() {
-			this.$request.get({
-				url: 'category/getRelevantEvaluation',
-				data: {
-					flag: this.flag,
-					type: '0',
-				},
-			}).then(
-				(res) => {
-					if (res?.code == 200 && res?.data) {
-						this.relevantList = [];
-						for (let i = 0; i < res.data.length - 1; i += 2) {
-							let temp = [res.data[i], res.data[i + 1]];
-							this.relevantList.push(temp);
+			},
+			navBack() {
+				this.leftClick()
+			},
+			getScaleTestResults(id) {
+				console.log('111:', new Date().getTime());
+				_this.$request
+					.get({
+						url: `${getRecordById}?id=${id}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then(
+						(res) => {
+							console.log('222:', new Date().getTime());
+							console.log("----测试结果--->", res);
+							if (res.code == 200) {
+								_this.testResult = parseInt(JSON.parse(res.data?.userRecordEntity?.testResult)[0].version);
+								_this.name = res.data.userRecordEntity.name;
+								_this.flag = res.data.userRecordEntity.flag;
+								_this.scaleInfo = res.data.userRecordEntity;
+								let testDateTime = res.data.userRecordEntity.testDate;
+								let yearMonthDay = testDateTime
+									.replace("年", "/")
+									.replace("月", "/")
+									.replace("日", " ")
+									.replace("时", ":")
+									.replace("分", ":")
+									.replace("秒", "");
+								_this.time = yearMonthDay;
+								if (_this.testResult == 2) {
+									_this.getDataList(res.data);
+								} else {
+									_this.scoresList = JSON.parse(res.data.userRecordEntity.testResult);
+									_this.init(_this.scoresList[0].tableContext[0].value[0])
+								}
+								this.showContent = true;
+							} else if (res.code == 401) {} else {
+								// uni.showToast({
+								// 	title: "加载有误",
+								// 	icon: "none",
+								// })
+								(res) => {
+									console.log("世界上绝对绝对绝对绝对绝对的", res);
+								}
+							}
+						})
+			},
+			init(v) {
+				_this.totalScores = Number(v);
+			},
+			getDataList(data) {
+				let v = JSON.parse(data.userRecordEntity.testResult);
+				_this.scoresList = v;
+				console.log("-----传入的参数----->", v);
+				v.forEach((items) => {
+					if (items.newTableContext.iconInfo != "") {
+						let indicatorList = items?.newTableContext?.iconInfo?.indicator;
+						if (indicatorList.length > 0) {
+							indicatorList.forEach((data) => {
+								_this.indicator.push({
+									text: data.text,
+									max: Number(data.max)
+								});
+							});
 						}
-					} else {
-						uni.showToast({
-							title: res?.msg,
-						});
-					}
-				}
-			);
-		},
-		dealLongTxt(str, num) {
-			if (str.length > num) {
-				return `${str.slice(0, num)}...`
-			} else {
-				return str
-			}
-		},
-		// 查询点赞状态
-		getPraiseStatu(type) {
-			this.$request.get({
-				url: 'praise/isPraise',
-				data: {
-					businessId: this.scaleInfo.id,
-					// userId: this.$store.state.userInfo.user.id,
-					type: type
-				}
-			}).then((res) => {
-				if (res?.code == 200) {
-					if (res.data) {
-						if (type == 0) {
-							this.praiseStatu = true;
-							this.praiseId = res.data.id;
-						} else {
-							this.treadStatu = true;
-							this.treadId = res.data.id;
+						let referenceList = items?.newTableContext?.iconInfo?.reference || [];
+						if (referenceList.length > 0) {
+							referenceList.forEach((data) => {
+								_this.reference.push(Number(data));
+							});
 						}
-					} else {
-						if (type == 0) {
-							this.praiseStatu = false;
-						} else {
-							this.treadStatu = false;
+						let scoreLists = items?.newTableContext?.iconInfo?.scoreList;
+						if (scoreLists.length > 0) {
+							scoreLists.forEach((data) => {
+								_this.scoreList.push(Number(data));
+							});
 						}
+						console.log("==1111=====>", _this.indicator)
+						console.log("==2222=====>", _this.reference)
+						console.log("==3333=====>", _this.scoreList)
 					}
-				} else {
-					uni.showToast({
-						title: res?.msg,
-					});
-				}
-			})
-		},
-		// 赞同/不赞同
-		praiseHandle(type) {
-			this.$request.post({
-				url: 'praise/save',
-				data: {
-					// userId: this.$store.state.userInfo.user.id,
-					businessId: this.scaleInfo.id,
-					type: type
-				},
-			}).then(
-				(res) => {
-					if (res?.code == 200) {
-						if (type == 0) {
-							this.praiseStatu = true;
-							this.praiseId = res.data.id;
-							//新增点赞状态管理
-							this.treadStatu = false;
-						} else {
-							this.treadStatu = true;
-							this.treadId = res.data.id;
-							//新增点赞状态管理
-							this.praiseStatu = false;
+					// _this.symptomDescription=[]
+					items.newTableContext.result.forEach((item) => {
+						if (!item) return;
+						if (item.name === "总分" || item.name === "压力综合指数") {
+							_this.init(item.score);
+							_this.symptom = item.symptom;
 						}
-
-						//每次赞完查询点赞状态
-						// this.getPraiseStatu(0);
-						// this.getPraiseStatu(1);
-						//每次点赞完查询点赞数量
-						this.getPraiseNum();
-					} else {
-						uni.showToast({
-							title: res?.msg,
-						});
-					}
-				},
-				(err) => {
-					uni.showToast({
-						title: err.msg,
-					});
-				}
-			);
-		},
-		// 取消点赞
-		cancelHandle(type, id) {
-			this.$request.get({
-				url: 'praise/cancel',
-				data: {
-					id: id
-				},
-			}).then(
-				(res) => {
-					if (res?.code == 200 && res?.data) {
-						if (type == 0) {
-							this.praiseStatu = false;
-						} else {
-							this.treadStatu = false;
+						if (item.isTotalScoreExplain === "是") {
+							_this.improvementSuggestions = item.symptom;
 						}
-						this.getPraiseNum();
-					} else {
-						uni.showToast({
-							title: res?.msg,
-						});
-					}
-				},
-				(err) => {
-					uni.showToast({
-						title: err.msg,
-					});
-				}
-			);
-		},
-		clickHandle(type) {
-			if (type == 0) {
-				if (this.praiseStatu) {
-					this.cancelHandle(type, this.praiseId)
-				} else {
-					this.praiseHandle(type);
-				}
-			} else {
-				if (this.treadStatu) {
-					this.cancelHandle(type, this.treadId)
-				} else {
-					this.praiseHandle(type);
-				}
-			}
-		},
-		// 查询点赞数量
-		getPraiseNum() {
-			this.$request.get({
-				url: 'praise/query',
-				data: {
-					businessId: this.scaleInfo.id,
-					// userId: this.$store.state.userInfo.user.id,
-				}
-			}).then((res) => {
-				if (res?.code == 200) {
-					if (res.data) {
-
-						this.likeNum = res.data[0];
-						this.notLikeNum = res.data[1];
-					} else {
-						this.likeNum = 0;
-						this.notLikeNum = 0;
-					}
-				} else {
-					uni.showToast({
-						title: res?.msg,
-					});
-				}
-			})
-		},
-		// 查看评论
-		goComment() {
-			let params = encodeURIComponent(JSON.stringify(this.scaleInfo));
-			uni.navigateTo({
-				url: `/scalePage/comments/index?params=${params}`
-			});
-		},
-		// 查询评论数量
-		getCommentNum() {
-			this.$request.get({
-				url: 'comment/queryNum',
-				data: {
-					flag: this.flag,
 
-				}
-			}).then((res) => {
-				if (res?.code == 200) {
-					if (res.data) {
-						this.commentNum = res.data;
-					} else {
-						this.commentNum = 0;
+						_this.symptomScore.push({
+							name: item.name,
+							score: item.score
+						});
+						// 获取维度数据
+						this.symptomDescription.push(item);
 
-					}
-				} else {
-					uni.showToast({
-						title: res?.msg,
 					});
-				}
-			})
-		},
-		// 去搜索
-		goSearch() {
-			uni.navigateTo({
-				url: `/scalePage/searchRecord/index`
-			});
-		},
-		navgetToBeginTest(item) {
-			if (this.deviceInfo == "ios" && item.price != 0) {
-				uni.showModal({
-					title: "提示",
-					content: "十分抱歉,由于相关规范,ios设备暂无法进行测试。",
-					showCancel: false,
-					confirmText: "知道啦",
-				});
-			} else {
-				uni.navigateTo({
-					// url: getApp().getUrl("/scalePage/beginTest/index?params=" + params)
-					url: "/scalePage/beginTest/index?flag=" + item.flag,
-				});
-			}
-		},
-		navToBeginTestAnswer(item) {
-			if (this.deviceInfo == "ios" && item.price != 0) {
-				uni.showModal({
-					title: "提示",
-					content: "十分抱歉,由于相关规范,ios设备暂无法进行测试。",
-					showCancel: false,
-					confirmText: "知道啦",
-				});
-			} else {
-				let url =
-					"/examWidght/examWidght/index?flag=" +
-					item.flag +
-					"&id=" +
-					item.id +
-					"&name=" +
-					item.name +
-					"&reportVersion=" +
-					item.reportVersion;
-				// console.log('---user-----', item.name);
-				// if (this.$store.state.userInfo.user.id != "") {
-				let datas = JSON.stringify(item);
-				uni.setStorageSync("beginTextData", datas);
-				uni.navigateTo({
-					url: url,
+					if (this.symptomDescription && this.symptomDescription.length > 0) {
+						//判断维度显示
+						this.showResultText = true;
+					}
+					console.log("0000-----000", _this.symptomDescription);
 				});
-				// } else {
-				// 	getApp().jumpToTestRecordLogin(url, 'examWidght')
-				// }
 			}
 		},
-		// 查看更多
-		seeAll() {
-			uni.navigateTo({
-				url: "/scalePage/sideCategory/index?indx=0&ename=ALL"
-			})
-		},
-		// 下载分享海报
-		downloadReport() {
-			let that = this;
-			uni.showLoading({
-				title: '报告生成中'
-			})
-			uni.getSetting({
-				success: res => {
-					// 非初始化且未授权的情况,需要再次弹窗提示授权
-					if (res.authSetting['scope.writePhotosAlbum'] != undefined && res
-						.authSetting['scope.writePhotosAlbum'] != true) {
-						uni.showModal({
-							title: '是否授权相册权限',
-							content: '需要获取相册权限,请确认授权,否则无法使用相关功能',
-							success: res => {
-								if (res.confirm) {
-									uni.openSetting({
-										success: dataAu => {
-											if (dataAu.authSetting[
-												"scope.writePhotosAlbum"
-											] == true) {
-												uni.showToast({
-													title: '授权成功',
-													icon: 'none',
-													duration: 1000
-												});
-												that.saveIMg();
-											} else {
-												uni.showToast({
-													title: '授权失败',
-													icon: 'success',
-													duration: 1000
-												});
-											}
-										},
-										fail(err) {
-											uni.hideLoading()
-										}
-									});
-								}
-							},
-							fail() {
-								uni.hideLoading()
-							}
-						});
-					} else {
-						// 初始化且未授权,系统默认会弹窗提示授权
-						// 非初始化且已授权,也会进入这里
-						that.saveIMg();
-					}
-				},
-				fail(err) {
-					uni.hideLoading()
-				}
-			});
-		},
-
-		// 保存到相册
-		async saveIMg(tempFilePath) {
-			uni.request({
-				url: `${baseUrl}result/download/testResultPng?id=${this.resultId}`,
-				header: {
-					"content-type": "application/json",
-				},
-				responseType: "arraybuffer", //注意这里的responseType
-				success: (result) => {
-					var fileManager = uni.getFileSystemManager();
-					var FilePath = uni.env.USER_DATA_PATH + "/" + this.flag + "-详情.png";
-					fileManager.writeFile({
-						data: result.data,
-						filePath: FilePath,
-						encoding: "binary", //编码方式 
-						success: res => {
-							uni.saveImageToPhotosAlbum({
-								filePath: FilePath,
-								success: async (res) => {
-									uni.hideLoading();
-									uni.showModal({
-										content: '已保存至相册,去分享给好友吧!',
-										showCancel: false,
-										confirmText: '好的',
-										confirmColor: '#333',
-										success: function (res) { },
-										fail: function (res) {
-											uni.hideLoading()
-										}
-									});
-								},
-								fail: function (res) {
-									uni.hideLoading()
-								}
-							})
-						}
-					})
-				},
-				fail(err) {
-					uni.hideLoading()
-				}
-			})
-		},
-	},
-};
+	};
 </script>
 <style lang="scss" scoped>
-.test-result-warp {
-	// width: 100%;
-	max-width: 10rem;
-	height: 100%;
-	box-sizing: border-box;
-	background-image: linear-gradient(#A9EBFF, #FFFFFF);
-}
-
-.test-result-inner {
-	width: 100%;
-	// height: calc(100vh - var(--status-bar-height) - 80px);
-	overflow: hidden;
-	overflow-y: scroll;
-	box-sizing: border-box;
-	padding: 0 20px;
-
-	.test-result-content {
+	.test-result-warp {
+		// width: 100%;
+		max-width: 750rpx;
+		height: 100%;
+		box-sizing: border-box;
+		background-image: linear-gradient(#A9EBFF, #FFFFFF);
+	}
+
+	.test-result-inner {
 		width: 100%;
-		background: #FFFFFF;
+		// height: calc(100vh - var(--status-bar-height) - 80px);
+		overflow: hidden;
+		overflow-y: scroll;
 		box-sizing: border-box;
-		padding: 18px 18px 0;
-		border-radius: 18px 18px 0 0;
-		margin-top: 15px;
+		padding: 0 20px;
 
-		.target-content {
-			margin-bottom: 18px;
+		.test-result-content {
+			width: 100%;
+			background: #FFFFFF;
+			box-sizing: border-box;
+			padding: 18px 18px 0;
+			border-radius: 18px 18px 0 0;
+			margin-top: 15px;
+
+			.target-content {
+				margin-bottom: 18px;
+			}
 		}
 	}
-}
-
-.report-tip {
-	width: 100%;
-	margin-top: 20px;
-	// padding-left: 40px;
-}
-
-.tip-title {
-	width: 100px;
-	height: 35px;
-	font-size: 15px;
-	font-family: PingFang SC;
-	font-weight: 500;
-	// color: #308594;
-	color: #000;
-	line-height: 35px;
-	text-align: left;
-	// background-image: linear-gradient(to right, #6fc1cf, #deeff4);
-	// border-top-right-radius: 18px;
-	// border-bottom-left-radius: 18px;
-}
-
-.tip-desc {
-	box-sizing: border-box;
-	font-size: 12px;
-	font-family: PingFang SC;
-	// color: #666666;
-	color: #A3A3A3;
-	line-height: 25px;
-	padding-left: 0px;
-}
-
-.tip-content {
-	box-sizing: border-box;
-	font-size: 12px;
-	font-family: PingFang SC;
-	// color: #000;
-	color: #575757;
-	line-height: 25px;
-	display: list-item;
-	list-style-type: disc;
-	margin-left: 5px;
-}
-
-/* .container {
+
+	.report-tip {
+		width: 100%;
+		margin-top: 20px;
+		// padding-left: 40px;
+	}
+
+	.tip-title {
+		width: 100px;
+		height: 35px;
+		font-size: 15px;
+		font-family: PingFang SC;
+		font-weight: 500;
+		// color: #308594;
+		color: #000;
+		line-height: 35px;
+		text-align: left;
+		// background-image: linear-gradient(to right, #6fc1cf, #deeff4);
+		// border-top-right-radius: 18px;
+		// border-bottom-left-radius: 18px;
+	}
+
+	.tip-desc {
+		box-sizing: border-box;
+		font-size: 12px;
+		font-family: PingFang SC;
+		// color: #666666;
+		color: #A3A3A3;
+		line-height: 25px;
+		padding-left: 0px;
+	}
+
+	.tip-content {
+		box-sizing: border-box;
+		font-size: 12px;
+		font-family: PingFang SC;
+		// color: #000;
+		color: #575757;
+		line-height: 25px;
+		display: list-item;
+		list-style-type: disc;
+		margin-left: 5px;
+	}
+
+	/* .container {
 		width: 750px;
 		height: 320px;
 		background-color: aquamarine;
 	} */
-.total-score-progress-content {
-	// padding: 20px 0;
-	// margin-top: 120px;
-	margin-bottom: 20px;
+	.total-score-progress-content {
+		// padding: 20px 0;
+		// margin-top: 120px;
+		margin-bottom: 20px;
+
+		.test-result-first-floor {
+			display: flex;
+			flex-direction: row;
+			justify-content: space-between;
+			align-items: center;
+
+			.scale-name {
+				font-size: 18px;
+				font-family: PingFang SC-Regular, PingFang SC;
+				font-weight: 600;
+				color: #FFAC41;
+				line-height: 40px;
+			}
+
+			.test-time {
+				font-size: 16px;
+				font-family: PingFang SC-Regular, PingFang SC;
+				color: rgba(65, 65, 65, 0.49);
+				line-height: 20px;
+			}
+		}
+
+	}
+
+	.table-title {
+		width: 76px;
+		height: 24px;
+		font-size: 18px;
+		font-family: PingFang SC;
+		font-weight: 500;
+		line-height: 24px;
+		text-indent: 12px;
+		color: #fff;
+		text-align: left;
+		background: #FF6A97;
+		border-radius: 0 36px 36px 0;
+		margin: 25px 0;
+	}
+
+	.radar-title {
+		width: 106px;
+		height: 24px;
+		font-size: 18px;
+		font-family: PingFang SC;
+		font-weight: 500;
+		line-height: 24px;
+		text-indent: 12px;
+		color: #fff;
+		text-align: left;
+		background: #2CC5F2;
+		border-radius: 0 36px 36px 0;
+		margin: 25px 0;
+	}
+
+	.total-score-progress-width {
+		width: 80%;
+	}
+
+	.total-score-progress {
+		font-size: 40px;
+		font-weight: bold;
+		width: 120px
+	}
+
+	.total-score-progress-test {
+		font-size: 32px;
+	}
 
-	.test-result-first-floor {
+	.demo-layout-bg-purple-light {
 		display: flex;
-		flex-direction: row;
-		justify-content: space-between;
-		align-items: center;
+		padding: 0 40px;
+	}
 
-		.scale-name {
-			font-size: 18px;
-			font-family: PingFang SC-Regular, PingFang SC;
-			font-weight: 600;
-			color: #FFAC41;
-			line-height: 40px;
+	.demo-layout-bg-purple {
+		width: 200px;
+		height: 200px
+	}
+
+	.demo-layout-bg-purple image {
+		width: 100%;
+		height: 100%
+	}
+
+	.custom-style-list {
+		// width: 94%;
+		width: 100%;
+		margin: 0 auto;
+
+	}
+
+	.b-b {
+		border: 1px solid #f5f5f5;
+	}
+
+	.b-d {
+
+		border-right: 1px solid #f5f5f5;
+	}
+
+	.custom-style-list-left {
+		text-align: left
+	}
+
+	.custom-style-list-right {
+		text-align: center
+	}
+
+	.padding20 {
+		margin-top: 20px
+	}
+
+	.textIndent {
+
+		text-indent: 33px;
+	}
+
+	.content_app11 {
+		width: 210px !important;
+		height: 91px !important;
+	}
+
+	::v-deep .u-button--mini {
+		height: 90px !important;
+		width: 210px !important;
+
+	}
+
+	.over-style {
+		// color: #666666;
+		// font-size: 16px;
+		// font-weight: 400;
+		// border-left: 4px solid #666;
+		// padding-left: 10px;
+		// margin-left: 20px;
+
+		width: 106px;
+		height: 24px;
+		font-size: 18px;
+		font-family: PingFang SC;
+		font-weight: 500;
+		line-height: 24px;
+		text-indent: 12px;
+		color: #fff;
+		text-align: left;
+		// background: #B1DF56;
+		background: #FF9B6E;
+		border-radius: 0 36px 36px 0;
+		margin: 25px 0;
+	}
+
+	.dimension-warp {
+		width: 100%;
+		margin-top: 20px;
+	}
+
+	.dimension-name {
+		height: 20px;
+		line-height: 20px;
+		font-size: 16px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		color: #E8B643;
+		border-left: 6px solid #E8B643;
+		padding-left: 13px;
+	}
+
+	.dimension-content {
+		width: 100%;
+		box-sizing: border-box;
+		padding: 10px 6px;
+		background: #F6F5F5;
+		border-radius: 8px;
+		margin-top: 20px;
+		font-size: 14px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		color: #505050;
+
+		.dimension-item {
+			display: flex;
+			flex-direction: row;
+			justify-content: flex-start;
+			line-height: 24px;
+
+			.dimension-item-title {
+				width: 25%;
+				height: 20px;
+				font-weight: bold;
+				text-align: justify;
+				// text-align-last: justify;
+				text-justify: distribute-all-lines;
+			}
+
+			.dimension-item-title::after {
+				width: 100%;
+				display: inline-block;
+				content: ''; //这三个都不可以少
+			}
+
+			.dimension-item-mh {
+				width: 20px;
+				font-weight: bold;
+			}
+
+			.dimension-item-desc {
+				width: calc(75% - 20px);
+			}
 		}
+	}
 
-		.test-time {
-			font-size: 16px;
-			font-family: PingFang SC-Regular, PingFang SC;
-			color: rgba(65, 65, 65, 0.49);
-			line-height: 20px;
+
+
+	.analysis-title {
+		font-size: 26px;
+		font-family: PingFang SC-Heavy, PingFang SC;
+		font-weight: 800;
+		color: #575757;
+		line-height: 50px;
+	}
+
+	.analysis-desc {
+		font-size: 24px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #575757;
+		line-height: 45px;
+	}
+
+	.operate_wrap {
+		display: flex;
+		width: 710px;
+		padding: 60px 0;
+		margin: 0 auto;
+		justify-content: space-around;
+		align-items: flex-start;
+
+		image {
+			width: 80px;
 		}
 	}
 
-}
-
-.table-title {
-	width: 76px;
-	height: 24px;
-	font-size: 18px;
-	font-family: PingFang SC;
-	font-weight: 500;
-	line-height: 24px;
-	text-indent: 12px;
-	color: #fff;
-	text-align: left;
-	background: #FF6A97;
-	border-radius: 0 36px 36px 0;
-	margin: 25px 0;
-}
-
-.radar-title {
-	width: 106px;
-	height: 24px;
-	font-size: 18px;
-	font-family: PingFang SC;
-	font-weight: 500;
-	line-height: 24px;
-	text-indent: 12px;
-	color: #fff;
-	text-align: left;
-	background: #2CC5F2;
-	border-radius: 0 36px 36px 0;
-	margin: 25px 0;
-}
-
-.total-score-progress-width {
-	width: 80%;
-}
-
-.total-score-progress {
-	font-size: 40px;
-	font-weight: bold;
-	width: 120px
-}
-
-.total-score-progress-test {
-	font-size: 32px;
-}
-
-.demo-layout-bg-purple-light {
-	display: flex;
-	padding: 0 40px;
-}
-
-.demo-layout-bg-purple {
-	width: 200px;
-	height: 200px
-}
-
-.demo-layout-bg-purple image {
-	width: 100%;
-	height: 100%
-}
-
-.custom-style-list {
-	// width: 94%;
-	width: 100%;
-	margin: 0 auto;
-
-}
-
-.b-b {
-	border: 1px solid #f5f5f5;
-}
-
-.b-d {
-
-	border-right: 1px solid #f5f5f5;
-}
-
-.custom-style-list-left {
-	text-align: left
-}
-
-.custom-style-list-right {
-	text-align: center
-}
-
-.padding20 {
-	margin-top: 20px
-}
-
-.textIndent {
-
-	text-indent: 33px;
-}
-
-.content_app11 {
-	width: 210px !important;
-	height: 91px !important;
-}
-
-::v-deep .u-button--mini {
-	height: 90px !important;
-	width: 210px !important;
-
-}
-
-.over-style {
-	// color: #666666;
-	// font-size: 16px;
-	// font-weight: 400;
-	// border-left: 4px solid #666;
-	// padding-left: 10px;
-	// margin-left: 20px;
-
-	width: 106px;
-	height: 24px;
-	font-size: 18px;
-	font-family: PingFang SC;
-	font-weight: 500;
-	line-height: 24px;
-	text-indent: 12px;
-	color: #fff;
-	text-align: left;
-	// background: #B1DF56;
-	background: #FF9B6E;
-	border-radius: 0 36px 36px 0;
-	margin: 25px 0;
-}
-
-.dimension-warp {
-	width: 100%;
-	margin-top: 20px;
-}
-
-.dimension-name {
-	height: 20px;
-	line-height: 20px;
-	font-size: 16px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	color: #E8B643;
-	border-left: 6px solid #E8B643;
-	padding-left: 13px;
-}
-
-.dimension-content {
-	width: 100%;
-	box-sizing: border-box;
-	padding: 10px 6px;
-	background: #F6F5F5;
-	border-radius: 8px;
-	margin-top: 20px;
-	font-size: 14px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	color: #505050;
-
-	.dimension-item {
+	.operate_item {
 		display: flex;
 		flex-direction: row;
-		justify-content: flex-start;
-		line-height: 24px;
+		justify-content: center;
+		align-items: center;
+		position: relative;
 
-		.dimension-item-title {
-			width: 19%;
-			height: 20px;
-			font-weight: bold;
-			text-align: justify;
-			// text-align-last: justify;
-			text-justify: distribute-all-lines;
+		.like-num,
+		.not-like-num,
+		.comment-num {
+			font-size: 22px;
+			font-family: PingFang SC-Bold, PingFang SC;
+			color: #04919B;
+			margin-left: 10px;
 		}
 
-		.dimension-item-title::after {
-			width: 100%;
-			display: inline-block;
-			content: ''; //这三个都不可以少
+		&_img {
+			width: 80px;
+			height: 80px;
 		}
+	}
 
-		.dimension-item-mh {
-			width: 20px;
-			font-weight: bold;
-		}
+	.operate_item:active {
+		opacity: 0.8;
+	}
 
-		.dimension-item-desc {
-			width: calc(81% - 20px);
-		}
+	.comment {
+		// width: 709px;
+		width: 100%;
+		background: #FFFFFF;
+		opacity: 1;
+		margin: 34px auto;
 	}
-}
-
-
-
-.analysis-title {
-	font-size: 26px;
-	font-family: PingFang SC-Heavy, PingFang SC;
-	font-weight: 800;
-	color: #575757;
-	line-height: 50px;
-}
-
-.analysis-desc {
-	font-size: 24px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	font-weight: 400;
-	color: #575757;
-	line-height: 45px;
-}
-
-.operate_wrap {
-	display: flex;
-	width: 710px;
-	padding: 60px 0;
-	margin: 0 auto;
-	justify-content: space-around;
-	align-items: flex-start;
-
-	image {
-		width: 80px;
+
+	.comment_top {
+		display: flex;
+		flex-direction: row;
+		justify-content: space-between;
+		align-items: center;
+		// margin: 35px 0 10px;
+		margin-bottom: 20px;
 	}
-}
-
-.operate_item {
-	display: flex;
-	flex-direction: row;
-	justify-content: center;
-	align-items: center;
-	position: relative;
-
-	.like-num,
-	.not-like-num,
-	.comment-num {
-		font-size: 22px;
-		font-family: PingFang SC-Bold, PingFang SC;
+
+	.comment_title {
+		// display: flex;
+		// justify-content: space-between;
+		font-size: 30px;
+		font-family: PingFang SC-Heavy, PingFang SC;
+		font-weight: 800;
 		color: #04919B;
-		margin-left: 10px;
 	}
 
-	&_img {
-		width: 80px;
-		height: 80px;
+	.comment_more {
+		font-size: 22px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		color: #04919B;
 	}
-}
-
-.operate_item:active {
-	opacity: 0.8;
-}
-
-.comment {
-	// width: 709px;
-	width: 100%;
-	background: #FFFFFF;
-	opacity: 1;
-	margin: 34px auto;
-}
-
-.comment_top {
-	display: flex;
-	flex-direction: row;
-	justify-content: space-between;
-	align-items: center;
-	// margin: 35px 0 10px;
-	margin-bottom: 20px;
-}
-
-.comment_title {
-	// display: flex;
-	// justify-content: space-between;
-	font-size: 30px;
-	font-family: PingFang SC-Heavy, PingFang SC;
-	font-weight: 800;
-	color: #04919B;
-}
-
-.comment_more {
-	font-size: 22px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	color: #04919B;
-}
-
-
-.swiper {
-	height: 410px;
-	border-radius: 20px;
-	// overflow: hidden;
-}
-
-// .comment .swiper {
-// 	height: 180px;
-// }
-
-.swiper-item {
-	box-sizing: border-box;
-	// display: flex;
-	min-height: 180px;
-	// text-align: center;
-	margin-right: 16px;
-	justify-content: center;
-	align-items: center;
-	// padding: 0 50px;
-	border-radius: 36px 36px 36px 36px;
-	background: #EEFDFE;
-	opacity: 1;
-	overflow: hidden;
-
-	&_image {
-		width: 54px;
-		height: 54px;
-		border-radius: 50%;
+
+
+	.swiper {
+		height: 410px;
+		border-radius: 20px;
+		// overflow: hidden;
 	}
 
-	&_right {
-		min-width: 60%;
-		font-size: 26px;
-		font-family: PingFang SC-Heavy, PingFang SC;
-		font-weight: 800;
-		color: #575757;
-		margin-left: 20px;
-		text-align: left;
+	// .comment .swiper {
+	// 	height: 180px;
+	// }
 
-		text {
+	.swiper-item {
+		box-sizing: border-box;
+		// display: flex;
+		min-height: 180px;
+		// text-align: center;
+		margin-right: 16px;
+		justify-content: center;
+		align-items: center;
+		// padding: 0 50px;
+		border-radius: 36px 36px 36px 36px;
+		background: #EEFDFE;
+		opacity: 1;
+		overflow: hidden;
+
+		&_image {
+			width: 54px;
+			height: 54px;
+			border-radius: 50%;
+		}
+
+		&_right {
+			min-width: 60%;
+			font-size: 26px;
+			font-family: PingFang SC-Heavy, PingFang SC;
+			font-weight: 800;
+			color: #575757;
+			margin-left: 20px;
+			text-align: left;
+
+			text {
+				font-size: 22px;
+				font-family: PingFang SC-Regular, PingFang SC;
+				font-weight: 400;
+				color: rgba(65, 65, 65, 0.49);
+				line-height: 48px;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				-webkit-box-orient: vertical;
+				-webkit-line-clamp: 2;
+			}
+		}
+
+		&_end {
 			font-size: 22px;
 			font-family: PingFang SC-Regular, PingFang SC;
 			font-weight: 400;
 			color: rgba(65, 65, 65, 0.49);
 			line-height: 48px;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
 		}
 	}
 
-	&_end {
+	.comment>>>.uni-list {
+		width: 98%;
+
+		.uni-list-item:nth-child(1) {
+			margin-bottom: 10px;
+		}
+	}
+
+	.comment>>>.uni-list-item {
+		// background-color: #EEFDFE;
+		background: #EEFDFE;
+		border-radius: 36px;
+	}
+
+	.comment>>>.uni-list-chat {
+		background-color: #EEFDFE;
+		margin-top: 20px;
+	}
+
+	.slot-title {
+		width: 90%;
+		// font-size: 28px;
+		// font-family: PingFang SC-Heavy, PingFang SC;
+		// font-weight: 800;
+		// color: #575757;
+		margin-left: 15px;
+		font-size: 28px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #1B90B2;
+		// line-height: 48px;
+	}
+
+	.slot-text {
+		margin-left: 15px;
+		// font-size: 22px;
+		// font-family: PingFang SC-Regular, PingFang SC;
+		// font-weight: 400;
+		// color: #575757;
+		// line-height: 1.8;
 		font-size: 22px;
 		font-family: PingFang SC-Regular, PingFang SC;
 		font-weight: 400;
-		color: rgba(65, 65, 65, 0.49);
+		color: #575757;
 		line-height: 48px;
 	}
-}
 
-.comment >>> .uni-list {
-	width: 98%;
+	.slot-desc {
+		margin-top: 6px;
+		margin-left: 15px;
+		font-size: 22px;
+		font-family: PingFang SC-Regular, PingFang SC;
+		// font-weight: 400;
+		color: #FFAC41;
 
-	.uni-list-item:nth-child(1) {
-		margin-bottom: 10px;
-	}
-}
-
-.comment>>>.uni-list-item {
-	// background-color: #EEFDFE;
-	background: #EEFDFE;
-	border-radius: 36px;
-}
-
-.comment>>>.uni-list-chat {
-	background-color: #EEFDFE;
-	margin-top: 20px;
-}
-
-.slot-title {
-	width: 90%;
-	// font-size: 28px;
-	// font-family: PingFang SC-Heavy, PingFang SC;
-	// font-weight: 800;
-	// color: #575757;
-	margin-left: 15px;
-	font-size: 28px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	font-weight: 400;
-	color: #1B90B2;
-	// line-height: 48px;
-}
-
-.slot-text {
-	margin-left: 15px;
-	// font-size: 22px;
-	// font-family: PingFang SC-Regular, PingFang SC;
-	// font-weight: 400;
-	// color: #575757;
-	// line-height: 1.8;
-	font-size: 22px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	font-weight: 400;
-	color: #575757;
-	line-height: 48px;
-}
-
-.slot-desc {
-	margin-top: 6px;
-	margin-left: 15px;
-	font-size: 22px;
-	font-family: PingFang SC-Regular, PingFang SC;
-	// font-weight: 400;
-	color: #FFAC41;
-
-	// line-height: 48px;
-	.slot-desc-tag {
-		margin-right: 14px;
+		// line-height: 48px;
+		.slot-desc-tag {
+			margin-right: 14px;
+		}
+
+		.slot-desc-num {
+			opacity: 0.49;
+			// margin-left: 14px;
+			color: #414141;
+		}
 	}
 
-	.slot-desc-num {
-		opacity: 0.49;
-		// margin-left: 14px;
-		color: #414141;
+	.btn-content {
+		width: 100%;
+		display: flex;
+		flex-direction: row;
+		justify-content: space-around;
+		align-items: center;
+		padding: 30px 0 60px;
 	}
-}
-
-.btn-content {
-	width: 100%;
-	display: flex;
-	flex-direction: row;
-	justify-content: space-around;
-	align-items: center;
-	padding: 30px 0 60px;
-}
 </style>

二进制
static/images/EQtest/answer_A.png


二进制
static/images/EQtest/answer_A_active.png


二进制
static/images/EQtest/answer_B.png


二进制
static/images/EQtest/answer_B_active.png


二进制
static/images/EQtest/answer_C.png


二进制
static/images/EQtest/answer_C_active.png


二进制
static/images/EQtest/answer_D.png


二进制
static/images/EQtest/answer_D_active.png


二进制
static/images/EQtest/answer_E.png


二进制
static/images/EQtest/answer_E_active.png


二进制
static/images/EQtest/banner1.png


二进制
static/images/EQtest/banner2.png


二进制
static/images/EQtest/banner3.png


二进制
static/images/EQtest/banner4.png


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.eot


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.otf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.ttf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.woff


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-115-Black/AlibabaPuHuiTi-2-115-Black.woff2


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.eot


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.otf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.ttf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff2


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.eot


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.otf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.ttf


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.woff


二进制
static/images/EQtest/font/AlibabaPuHuiTi-2-85-Bold/AlibabaPuHuiTi-2-85-Bold.woff2


二进制
static/images/EQtest/index_bg.png


二进制
static/images/EQtest/next_mark.png


二进制
static/images/EQtest/paymentPage/complete_btn.png


二进制
static/images/EQtest/paymentPage/dialog_bg.png


二进制
static/images/EQtest/paymentPage/password_input_bg.png


二进制
static/images/EQtest/paymentPage/pay_button.png


二进制
static/images/EQtest/paymentPage/pay_scale_desc.png


二进制
static/images/EQtest/paymentPage/pay_scale_info.png


二进制
static/images/EQtest/paymentPage/pay_success_bg.png


二进制
static/images/EQtest/paymentPage/payment_bg.png


二进制
static/images/EQtest/paymentPage/phone_input_bg.png


二进制
static/images/EQtest/paymentPage/register_bg.png


二进制
static/images/EQtest/paymentPage/register_save_bg.png


二进制
static/images/EQtest/paymentPage/sms_bg.png


二进制
static/images/EQtest/paymentPage/uncomplete_btn.png


二进制
static/images/EQtest/prev_btn.png


二进制
static/images/EQtest/prev_mark.png


二进制
static/images/EQtest/process_bar.png


二进制
static/images/EQtest/process_star.png


二进制
static/images/EQtest/question_bg.png


二进制
static/images/EQtest/question_num_bg.png


二进制
static/images/EQtest/result_bg_r.png


二进制
static/images/EQtest/result_bg_w.png


二进制
static/images/EQtest/role/role_img1.png


二进制
static/images/EQtest/role/role_img10.png


二进制
static/images/EQtest/role/role_img2.png


二进制
static/images/EQtest/role/role_img3.png


二进制
static/images/EQtest/role/role_img4.png


二进制
static/images/EQtest/role/role_img5.png


二进制
static/images/EQtest/role/role_img6.png


二进制
static/images/EQtest/role/role_img7.png


二进制
static/images/EQtest/role/role_img8.png


二进制
static/images/EQtest/role/role_img9.png


二进制
static/images/EQtest/role/role_medal1.png


二进制
static/images/EQtest/role/role_medal10.png


二进制
static/images/EQtest/role/role_medal2.png


二进制
static/images/EQtest/role/role_medal3.png


二进制
static/images/EQtest/role/role_medal4.png


二进制
static/images/EQtest/role/role_medal5.png


二进制
static/images/EQtest/role/role_medal6.png


二进制
static/images/EQtest/role/role_medal7.png


二进制
static/images/EQtest/role/role_medal8.png


二进制
static/images/EQtest/role/role_medal9.png


二进制
static/images/EQtest/role/role_name1.png


二进制
static/images/EQtest/role/role_name10.png


部分文件因为文件数量过多而无法显示