root před 4 měsíci
rodič
revize
0a7fae689c

+ 34 - 36
components/mpvueEcharts/leiDa.vue

@@ -9,7 +9,6 @@
 	export default {
 		name: "leiDa",
 		props: ["indicator", "reference", "scoreList"],
-
 		components: {
 			echarts
 		},
@@ -151,54 +150,52 @@
 				// console.log("==66666=====>", _this.scoreList)
 				// console.log(_this.option)
 				var option = {
+					color: ["#FF917C", "#77EADF", "#56A3F1", "#FF917C"],
 					title: {
-						text: 'Basic Radar Chart'
-					},
-					legend: {
-						data: ['Allocated Budget', 'Actual Spending']
+						text: '报告图表'
 					},
+					legend: {},
 					radar: {
-						// shape: 'circle',
-						indicator: [{
-								name: 'Sales',
-								max: 6500
-							},
-							{
-								name: 'Administration',
-								max: 16000
-							},
-							{
-								name: 'Information Technology',
-								max: 30000
-							},
-							{
-								name: 'Customer Support',
-								max: 38000
+						center: ["50%", "55%"],
+						radius: 100,
+						axisName: {
+							color: '#999999',
+						},
+						indicator: this.indicator,
+						splitNumber: 4,
+						splitArea: {
+							areaStyle: {
+								color: ["#ffd5cf", "#ffdfda", "#ffe9e6", "#fff4f2"],
+								shadowColor: "rgba(0, 0, 0, 0.2)",
+								shadowBlur: 10,
 							},
-							{
-								name: 'Development',
-								max: 52000
-							},
-							{
-								name: 'Marketing',
-								max: 25000
+						},
+						axisLine: {
+							lineStyle: {
+								color: '#FFBA92'
 							}
-						]
+						},
+						splitLine: {
+							lineStyle: {
+								color: '#FFBA92'
+							}
+						},
 					},
 					series: [{
 						name: 'Budget vs spending',
 						type: 'radar',
 						data: [{
-								value: [4200, 3000, 20000, 35000, 50000, 18000],
-								name: 'Allocated Budget'
+								value: [45, 45, 45, 45, 45, 45, 45, 45, 45, 45, ],
+								name: '最大值'
 							},
 							{
-								value: [5000, 14000, 28000, 26000, 42000, 21000],
-								name: 'Actual Spending'
+								value: this.scoreList,
+								name: '你的得分'
 							}
 						]
 					}]
 				};
+				this.option = option;
 			}
 		}
 	}
@@ -206,9 +203,10 @@
 
 <style>
 	.container {
-		/* width: 750rpx; */
-		height: 320px;
-
+		box-sizing: border-box;
+		width: 100%;
+		height: 650rpx;
+		padding: 25rpx;
 	}
 
 	.container100 {

+ 4 - 13
newScale/Burnout/testPage.vue

@@ -178,20 +178,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Burnout&resultId=${_this.resultId}`
+						});
 					})
 					.catch((err) => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Career/testPage.vue

@@ -138,20 +138,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Career&resultId=${_this.resultId}`
+						});
 					})
 					.catch(() => {
 						_this.isLoading = false;

+ 4 - 2
newScale/Charm/testPage.vue

@@ -197,8 +197,10 @@
 						// 	},
 						// }).then(() => {})
 						uni.hideLoading();
-						// 答题结束获取支付
-						_this.getQueryPromotionBySubjectId();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Charm&resultId=${_this.resultId}`
+						});
 					})
 					.catch(() => {
 						_this.isLoading = false;

+ 4 - 13
newScale/EQtest/testPage.vue

@@ -138,20 +138,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=EQtest&resultId=${_this.resultId}`
+						});
 					})
 					.catch(() => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Family/testPage.vue

@@ -180,20 +180,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Family&resultId=${_this.resultId}`
+						});
 					})
 					.catch((err) => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Marriage/testPage.vue

@@ -138,20 +138,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Marriage&resultId=${_this.resultId}`
+						});
 					})
 					.catch(() => {
 						_this.isLoading = false;

+ 566 - 0
newScale/MarriageQuality/index.vue

@@ -0,0 +1,566 @@
+<template>
+	<view class="bg">
+		<image class="banner banner1"
+			src="https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/banner1.png" mode="widthFix">
+		</image>
+		<image class="banner banner2"
+			src="https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/banner2.png" mode="widthFix">
+		</image>
+		<image class="banner banner3"
+			src="https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/banner3.png" mode="widthFix">
+		</image>
+		<image class="banner banner4"
+			src="https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/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/MarriageQuality/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() {
+			if (!uni.getStorageSync("user")) {
+				this.createUser();
+			}
+		},
+
+		methods: {
+			//查询用户信息
+			createUser() {
+				this.$request
+					.get({
+						url: 'system/temporaryUser',
+						loadingTip: "加载中..."
+					})
+					.then((res) => {
+						console.log(res.data.user)
+						uni.setStorageSync("user", res.data.user);
+						uni.setStorageSync("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/MarriageQuality/testPage'
+				})
+			},
+			toggle() {
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open()
+			},
+			close() {
+				this.$refs.popup.close();
+				this.isChecked = true;
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.bg {
+		width: 100%;
+		min-height: 3218rpx;
+		background: #E53700 url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/index_bg.png) no-repeat top;
+		background-size: 100% auto;
+		text-align: center;
+		padding-bottom: 202rpx;
+	}
+
+	.banner {
+		width: 712rpx;
+	}
+
+	.banner1 {
+		margin: 861rpx auto 8rpx;
+	}
+
+	.banner2 {
+		margin: 8rpx auto 8rpx;
+	}
+
+	.banner3 {
+		margin: 12rpx auto 12rpx;
+	}
+
+	.contral_box {
+		box-sizing: border-box;
+		width: 750rpx;
+		height: 182rpx;
+		background: #FFFFFF;
+		overflow: hidden;
+		position: fixed;
+		bottom: 0;
+	}
+
+	.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/MarriageQuality/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/Charm/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>

+ 345 - 0
newScale/MarriageQuality/testPage.vue

@@ -0,0 +1,345 @@
+<template>
+	<view class="bg">
+		<view class="question_box">
+			<view class="process">
+				<view class="process_bar" :style="{'width': percentage}"></view>
+			</view>
+			<view style="display: flex; justify-content: space-between;align-items: center;">
+				<view class="question_num">
+					<text class="num_front">出题{{currentIndex + 1}}</text><text class="num_behond">/{{maxLength}}</text>
+				</view>
+				<view class="tips">请选择你的答案进入下一题</view>
+			</view>
+			<view class="qs_txt">{{currentQuestion.answer}}</view>
+			<view class="answer_list">
+				<view :class="['answer', checkActive(item)]" v-for="(item, index) in currentAnswerList"
+					@click="nextHandle(item)">
+					<text>
+						{{item}}
+					</text>
+				</view>
+			</view>
+		</view>
+		<view class="contral_box">
+			<view class="prev_btn" v-if="currentIndex > 0" @click="prevHandle">上一题</view>
+			<view class="prev_btn" v-if="userAnswerList.length >= maxLength" @click="submitResult">提交</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: {},
+				canPrev: false
+			}
+		},
+		computed: {
+			percentage() {
+				return ((this.userAnswerList.length / this.maxLength) * 645) + 'rpx'
+			}
+		},
+		created() {
+			this.loadData();
+			this.userInfo = uni.getStorageSync('user');
+		},
+		methods: {
+			loadData() {
+				this.$request
+					.get({
+						url: `scaleInfo/20220124203027`,
+						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() {
+				if (this.canPrev || this.currentIndex == 0) {
+					return;
+				}
+				this.canPrev = true;
+				setTimeout(() => {
+					this.canPrev = false;
+					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: uni.getStorageSync('user').id
+				};
+
+				uni.showLoading({
+					title: "测试结果生成中",
+				});
+				_this.$request
+					.post({
+						url: `${getResult}/20220124203027`,
+						loadingTip: "加载中...",
+						data: params,
+					})
+					.then((res) => {
+						_this.isLoading = false;
+						_this.resultId = res.data;
+						uni.hideLoading();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=MarriageQuality&resultId=${_this.resultId}`
+						});
+					})
+					.catch(() => {
+						_this.isLoading = false;
+						uni.showToast({
+							icon: "none",
+							title: "提交失败",
+						});
+						uni.hideLoading();
+					});
+			},
+
+			// 获取支付金额
+			async getQueryPromotionBySubjectId() {
+				let _this = this;
+				let urls = queryPromotionBySubjectId + "/20220124203027";
+				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/MarriageQuality/testResult?resultId=${_this.resultId}&messageShare=1`
+							});
+						} else {
+							let params = {
+								productId: '20220124203027',
+								userId: _this.userInfo?.id,
+								resultId: _this.resultId,
+								description: data.name,
+								total: data.price,
+								sceneType: uni.getSystemInfoSync().platform == "android" ?
+									"Android" : "iOS",
+							};
+							uni.setStorageSync('orderInfo', params);
+							uni.navigateTo({
+								url: "/newScale/paymentPage/index?tName=MarriageQuality"
+							});
+						}
+					});
+			},
+
+			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: #E53700 url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/testPage_bg.png) no-repeat top;
+		background-size: 100% auto;
+		overflow: hidden;
+	}
+
+	.tips {
+		width: 50%;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 24rpx;
+		color: #666666;
+		line-height: 55rpx;
+	}
+
+	.question_box {
+		box-sizing: border-box;
+		width: 712rpx;
+		height: 967rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/question_bg.png);
+		background-size: 100% 100%;
+		margin: 290rpx auto 20rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 40rpx;
+		color: #333333;
+		padding: 107rpx 40rpx 0 40rpx;
+		position: relative;
+	}
+
+	.question_box .qs_txt {
+		width: 632rpx;
+		min-height: 120rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 40rpx;
+		color: #333333;
+		margin: 0 auto 10rpx;
+		text-align: justify;
+	}
+
+	.question_box image {
+		width: 43rpx;
+		margin: 0 10rpx;
+	}
+
+	.answer {
+		display: flex;
+		align-items: center;
+		box-sizing: border-box;
+		width: 632rpx;
+		padding-left: 100rpx;
+		margin: 0 auto;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/answer_bg.png) no-repeat;
+		background-size: 100% 100%;
+		transition: background 200ms linear;
+		margin: 0 auto 9rpx;
+	}
+
+	.answer.active {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/answer_bg_active.png) no-repeat;
+		background-size: 100% 100%;
+		color: #FFFFFF;
+	}
+
+	.answer text {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 36rpx;
+		color: #333333;
+		line-height: 110rpx;
+		letter-spacing: 2rpx;
+	}
+
+	.prev_btn {
+		width: 288rpx;
+		line-height: 71rpx;
+		background: #FFFFFF;
+		border-radius: 36rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 36rpx;
+		color: #333333;
+		text-align: center;
+	}
+
+	.process {
+		box-sizing: border-box;
+		width: 627rpx;
+		height: 20rpx;
+		padding: 1rpx;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		overflow: hidden;
+		margin-bottom: 10rpx;
+	}
+
+	.process_bar {
+		height: 18rpx;
+		background: #FF1E00;
+		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/MarriageQuality/question_num_bg.png) no-repeat;
+		background-size: cover;
+	}
+
+	.num_front {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 40rpx;
+		color: #333333;
+		line-height: 30px;
+		text-shadow: 2rpx 2rpx 5rpx rgba(146, 9, 0, 0.45);
+	}
+
+	.num_behond {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 28rpx;
+		color: #333333;
+		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>

+ 790 - 0
newScale/MarriageQuality/testResult.vue

@@ -0,0 +1,790 @@
+<template>
+	<view v-if="role" class="bg">
+		<view style="overflow: hidden;">
+			<!-- <unTable :scoresList="scoresList" :testResult="testResult" /> -->
+		</view>
+		<view class="scale_name">你的婚姻质量有多高?</view>
+		<view class="test_time">测试时间:{{time}}</view>
+		<view class="role_medal">测试结果</view>
+		<view class="chart_wrap">
+			<leiDa :reference="reference" :scoreList="scoreList" :indicator="indicator" />
+			<view class="my_table">
+				<view class="t-head">
+					<view width="50%">维度</view>
+					<view>得分</view>
+					<view>满分</view>
+				</view>
+				<view class="t-body" v-for="(item, index) in scoreList">
+					<view>{{indicator[index].text}}</view>
+					<view>{{item}}</view>
+					<view style="border-right: 0;">45</view>
+				</view>
+			</view>
+		</view>
+		<view class="rgtd_box">
+			<view class="rgtd_box_title"><text>测评解读</text></view>
+			<view class="rgtd_box_wrap">
+				<view style="overflow: hidden;"></view>
+				<view class="score_title">你的测评总分:(满分450)</view>
+				<view class="score_num">{{scoreNum}}</view>
+				<view class="score_percentage">
+					<view class="process_bar" v-if="scoreNum > 0" :style="{'width': percentage}">
+					</view>
+				</view>
+				<view class="score_explain">注: 评分越高表示婚姻质量越好</view>
+				<view class="dimension_content">
+					婚姻被视为两颗心融合的神圣仪式,是承诺共度风雨、共享欢乐的约定。然而,现实往往比童话复杂,有人感叹婚姻是爱情的终点站,甜蜜的誓言在锅碗瓢盆的交响曲中渐渐消散,曾经的闪光点在日复一日的磨合中变得模糊不清。但也有那么一群人,他们携手走过风风雨雨,将平凡的日子编织成最动人的诗篇,证明了真正的幸福并非遥不可及。
+				</view>
+			</view>
+		</view>
+		<view class="rgtd_box">
+			<view class="rgtd_box_title"><text>维度分析</text></view>
+			<view class="rgtd_box_wrap">
+				<view style="overflow: hidden;"></view>
+				<view v-for="(item, index) in resultObj">
+					<template v-if="index > 0">
+						<view class="dimension_name"><text>{{item.name}}</text></view>
+						<view class="dimension_title">
+							得分
+						</view>
+						<view class="dimension_content dc1">
+							<text>{{item.score}}</text>
+						</view>
+						<view class="dimension_title">
+							维度结论
+						</view>
+						<view class="dimension_content dc1">
+							<text>{{item.symptom}}</text>
+						</view>
+						<view class="dimension_title">
+							维度说明
+						</view>
+						<view class="dimension_content">
+							{{item.improvementSuggestions}}
+						</view>
+						<view class="dimension_explain">*维度解释:{{getTips(tips[index])}}</view>
+					</template>
+				</view>
+			</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 style="display: flex;">
+				<view class="list_mark">·</view>
+				<view class="desc_txt">如对报告有不理解的地方,建议咨询专业人员;</view>
+			</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`
+	import {
+		getTestTime
+	} from "@/utils/util.js"
+	import leiDa from "@/components/mpvueEcharts/leiDa.vue"
+	// import unTable from "@/components/unTable.vue"
+	export default {
+		components: {
+			leiDa
+		},
+		data() {
+			return {
+				photoUrl: photoUrl,
+				isChecked: true,
+				isShake: false,
+				scaleDetail: {},
+				questionList: [],
+				currentQuestion: {},
+				currentAnswerList: [],
+				currentIndex: 0,
+				userAnswerList: [],
+				resultId: '',
+				isLoading: false,
+				isDisbale: false,
+				roleList: {
+					'无职业倦怠': {
+						type: 1,
+						img: `${photoUrls}/MarriageQuality/role/role1.png`,
+						mrBg: '#E4FFD3',
+						mrBorder: '#66C666',
+						mrColor: '#0B7000'
+					},
+					'轻度职业倦怠': {
+						type: 2,
+						img: `${photoUrls}/MarriageQuality/role/role2.png`,
+						mrBg: '#E4FFD3',
+						mrBorder: '#66C666',
+						mrColor: '#0B7000'
+					},
+					'中度职业倦怠': {
+						type: 3,
+						img: `${photoUrls}/MarriageQuality/role/role3.png`,
+						mrBg: '#F7E9FF',
+						mrBorder: '#B262E1',
+						mrColor: '#962ED4'
+					},
+					'重度职业倦怠': {
+						type: 4,
+						img: `${photoUrls}/MarriageQuality/role/role4.png`,
+						mrBg: '#F7E9FF',
+						mrBorder: '#B262E1',
+						mrColor: '#962ED4'
+					}
+				},
+				resultObj: [],
+				resultId: '',
+				role: '',
+				scoreNum: 0,
+				maxScore: 450,
+				minScore: 0,
+				keywords: '',
+				characteristic: '', // 特点
+				time: '',
+				indicator: [],
+				scoreList: [],
+				tips: [
+					'',
+					'性格相容:对伴侣行为方式的满意程度。',
+					'夫妻交流:夫妻之间的沟通质量和彼此的理解程度。',
+					'化解冲突:夫妻应对争吵或分歧的方法和态度。',
+					'经济安排:夫妻在处理家庭财务上的态度和方法。',
+					'业余活动:夫妻在闲暇时间的活动安排和对此的满意度。',
+					'情感与性生活:对夫妻感情与性关系的关注度与感受。',
+					'子女与婚姻:夫妻对生育以及子女养育的方法与态度。',
+					'亲友关系:夫妻如何看待和处理与双方家庭和朋友的关系。',
+					'家庭角色:夫妻对彼此在家庭中所扮演角色的看法。',
+					'生活观念:夫妻对婚姻的看法以及对彼此观点的认可程度。'
+				]
+			}
+		},
+		onLoad(options) {
+			if (options && options.resultId) {
+				this.resultId = options.resultId
+				this.getScaleTestResults(this.resultId);
+			}
+		},
+		computed: {
+			percentage() {
+				return ((this.scoreNum / this.maxScore) * 627) + 'rpx'
+			}
+		},
+		methods: {
+			getScaleTestResults(id) {
+				let _this = this;
+				_this.$request
+					.get({
+						url: `${getRecordById}?id=${id}`,
+						loadingTip: "加载中...",
+						data: {},
+					})
+					.then(
+						(res) => {
+							if (res.code == 200) {
+								_this.testResult = JSON.parse(res.data?.userRecordEntity?.testResult)[0];
+								_this.role = _this.testResult.tableContext[1].value[0];
+								this.role = '无职业倦怠';
+								_this.resultObj = _this.testResult.newTableContext.result;
+								this.scoreNum = this.testResult.newTableContext.result[0].score;
+								this.time = getTestTime(res.data.userRecordEntity.testDate);
+								this.indicator = this.testResult.newTableContext.iconInfo.indicator;
+								this.scoreList = this.testResult.newTableContext.iconInfo.scoreList;
+							} else if (res.code == 401) {} else {
+								(res) => {
+									console.log("世界上绝对绝对绝对绝对绝对的", res);
+								}
+							}
+						})
+			},
+			getAdvantage(str) {
+				let tempArr = str.split("——");
+				let title = tempArr[0].split(".")
+				let advant = {
+					title: title[1],
+					content: tempArr[1]
+				}
+				return advant
+			},
+			getTips(str) {
+				let temp = str.split(':');
+				return `${temp[0]}是指${temp[1]}`
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.bg {
+		width: 100%;
+		background: #E53700;
+		position: relative;
+		padding-bottom: 100rpx;
+	}
+
+	.scale_name {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 42rpx;
+		color: #FFFFFF;
+		margin: 20rpx 0 0 32rpx;
+	}
+
+	.test_time {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #ffffff;
+		margin-left: 32rpx;
+	}
+
+	.role_medal {
+		width: 205rpx;
+		line-height: 53rpx;
+		background: #FFFFFF;
+		border-radius: 27rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		text-align: center;
+		position: absolute;
+		top: 36rpx;
+		right: 25rpx;
+	}
+
+
+	.role_wrap {
+		position: relative;
+	}
+
+	.role_char {
+		width: 714rpx;
+		height: 156rpx;
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+		position: absolute;
+		left: 18rpx;
+		bottom: 0;
+	}
+
+	.char_item {
+		width: 30%;
+		font-family: 'ZhankuKuaiLeTi';
+		font-weight: 800;
+		font-size: 36rpx;
+		color: #333333;
+		line-height: 52rpx;
+		text-align: center;
+	}
+
+
+	.shadow_img {
+		display: block;
+		width: 170rpx;
+		position: absolute;
+		left: 50%;
+		bottom: -6rpx;
+		transform: translateX(-50%);
+	}
+
+	.role_name {
+		text-align: center;
+		margin: 202rpx 0 0 0;
+	}
+
+	.role_name image {
+		width: 550rpx;
+	}
+
+	.temp_type {
+		width: 714rpx;
+		margin: 0 auto;
+	}
+
+	.carton {
+		width: 718rpx;
+		margin: 0 16rpx;
+	}
+
+	.score_percentage {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		width: 627rpx;
+		height: 20rpx;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		border-radius: 14rpx;
+		margin: 14rpx 0 8rpx 20rpx;
+		position: relative;
+		z-index: 3;
+		overflow-x: hidden;
+	}
+
+	.process_bar {
+		width: 0rpx;
+		height: 16rpx;
+		background: #FF1E00;
+		border-radius: 8rpx;
+		box-shadow: 0rpx 0rpx 4rpx 2rpx #FFC600;
+		position: absolute;
+		top: 3rpx;
+		left: 4rpx;
+	}
+
+	.rgtd_box {
+		box-sizing: border-box;
+		width: 702rpx;
+		min-height: 700rpx;
+		margin: 0 auto 124rpx;
+		position: relative;
+		z-index: 0;
+	}
+
+	.rgtd_box_title {
+		width: 701rpx;
+		height: 97rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/title_bg.png) no-repeat;
+		background-size: cover;
+		position: absolute;
+		left: 0;
+		top: -80rpx;
+		z-index: 0;
+		text-align: center;
+	}
+
+	.rgtd_box_title text {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 44rpx;
+		color: #FFFEFE;
+		margin-top: 20rpx;
+	}
+
+	.dimension_name {
+		width: 465rpx;
+		height: 79rpx;
+		padding-top: 2rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/dimension_name.png) no-repeat;
+		background-size: cover;
+		margin: 60rpx auto 0;
+		text-align: center;
+	}
+
+	.dimension_name text {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 44rpx;
+		color: #FFFEFE;
+	}
+
+	.dimension_title {
+		box-sizing: border-box;
+		width: 100%;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/list_style_bg.png) no-repeat 16rpx center;
+		background-size: 19rpx auto;
+		padding: 26rpx 0 0 0;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 32rpx;
+		color: #FF1E00;
+		line-height: 27rpx;
+	}
+
+	.dt1 {
+		margin-top: 78rpx;
+	}
+
+	.dimension_content {
+		box-sizing: border-box;
+		width: 655rpx;
+		min-height: 91rpx;
+		padding: 30rpx 24rpx;
+		background: #FFFFFF;
+		border-radius: 18rpx;
+		margin: 20rpx auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #333333;
+		line-height: 50rpx;
+		text-align: justify;
+	}
+
+	.dimension_explain {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 20rpx;
+		color: #D3987E;
+		line-height: 24rpx;
+		margin-top: 10rpx;
+	}
+
+	.dc1 {
+		text-align: center;
+	}
+
+	.rgtd_box_wrap {
+		box-sizing: border-box;
+		width: 702rpx;
+		min-height: 700rpx;
+		background: #FFE9DC;
+		border-radius: 27rpx;
+		padding: 30rpx 23rpx;
+		position: relative;
+		z-index: 1;
+	}
+
+	.rgtd_box_content {
+		box-sizing: border-box;
+		width: 674rpx;
+		min-height: 390rpx;
+		padding: 28rpx 47rpx;
+		background: #FFF9FA;
+		border-radius: 18rpx;
+		margin: 0 auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 50rpx;
+		letter-spacing: 2rpx;
+	}
+
+	.rgtd_text {
+		width: 181rpx;
+		margin: 6rpx 0 0 39rpx;
+	}
+
+	.emo_img {
+		width: 112rpx;
+		margin-right: 7rpx;
+	}
+
+	.rgtg_content {
+		box-sizing: border-box;
+		width: 714rpx;
+		padding: 40rpx;
+		background: #FFFFFF;
+		border-radius: 35rpx;
+		margin: 0 auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #333333;
+		line-height: 1.8;
+		letter-spacing: 2rpx;
+	}
+
+	.mrmj_content {
+		display: flex;
+		flex-wrap: wrap;
+		min-height: 255rpx;
+	}
+
+	.star_img {
+		width: 92rpx;
+		margin-right: 43rpx;
+	}
+
+	.mrmj_content .mr_name {
+		height: 44rpx;
+		padding: 0 34rpx;
+		margin: 4rpx 10rpx;
+		background: #E4FFD3;
+		border-radius: 22rpx;
+		border: 1px solid #66C666;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #0B7000;
+		line-height: 44rpx;
+		text-align: center;
+	}
+
+	.mr_pic_box {
+		width: 100%;
+	}
+
+	.mr_pic {
+		width: 316rpx;
+		margin: 5rpx 8rpx;
+	}
+
+	.advantage_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 32rpx;
+		color: #333333;
+		margin: 25rpx 5rpx 8rpx;
+	}
+
+	.advantage_content {
+		box-sizing: border-box;
+		width: 632rpx;
+		background: #E4FFD3;
+		border-radius: 22rpx;
+		border: 1px solid #66C666;
+		padding: 28rpx;
+		margin: 0 auto;
+	}
+
+	.ad_item_title {
+		display: flex;
+		align-items: center;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 32rpx;
+		color: #156300;
+	}
+
+	.love_role {
+		width: 571rpx;
+		margin: 0 auto;
+	}
+
+	.single_star {
+		width: 32rpx;
+		margin: 0 8rpx 4rpx 0;
+	}
+
+	.heart_img {
+		width: 93rpx;
+		margin-right: 16rpx;
+	}
+
+	.lover_type_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 43rpx;
+	}
+
+	.lover_type {
+		width: 571rpx;
+		font-family: 'ZhankuKuaiLeTi';
+		font-weight: 400;
+		font-size: 133rpx;
+		color: #333333;
+		line-height: 149rpx;
+		text-align: center;
+		margin: 50rpx auto 30rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/role/lover_type_bg.png) no-repeat center bottom;
+		background-size: 100% auto;
+	}
+
+	.love_decode {
+		box-sizing: border-box;
+		width: 632rpx;
+		padding: 39rpx 30rpx;
+		background: #FFE8FD;
+		border-radius: 22rpx;
+		border: 1px solid #FF59F1;
+		margin: 0 auto;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #333333;
+	}
+
+
+	.result_box {
+		width: 702rpx;
+		min-height: 807rpx;
+		background: #ffffff;
+		box-shadow: 0rpx 3rpx 24rpx 0rpx rgba(126, 77, 0, 0.13);
+		border-radius: 26rpx;
+		margin: 168rpx auto 0;
+		position: relative;
+	}
+
+	.pad_box {
+		width: 100%;
+		height: 200rpx;
+		border-radius: 26rpx;
+		overflow: hidden;
+	}
+
+	.title_img {
+		height: 60rpx;
+		margin: 37rpx 0 0 96rpx;
+	}
+
+	.result_box_r {
+		box-sizing: border-box;
+		width: 702rpx;
+		min-height: 453rpx;
+		margin: -188rpx auto 0;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/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: #555555;
+		line-height: 50rpx;
+		position: relative;
+		z-index: 2;
+	}
+
+
+	.r_content {
+		width: 600rpx;
+		min-height: 307rpx;
+		background: #FFE1E1;
+		border-radius: 20rpx;
+		border: 1px solid #FF6666;
+		margin: 20rpx auto 0;
+		padding: 30rpx;
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 50rpx;
+		display: flex;
+		align-items: flex-start;
+	}
+
+
+	.report_desc {
+		padding: 0 38rpx;
+		letter-spacing: 1px;
+	}
+
+	.desc_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 28rpx;
+		color: #333333;
+		line-height: 46rpx;
+	}
+
+	.stext {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 20rpx;
+		color: #333333;
+		line-height: 30rpx;
+	}
+
+	.desc_txt {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 20rpx;
+		color: #333333;
+		line-height: 30rpx;
+	}
+
+	.list_mark {
+		line-height: 0.7;
+		font-size: 36rpx;
+		color: #333333;
+		font-weight: 600;
+		margin-right: 5rpx;
+	}
+
+	.analysis_title {
+		width: 362rpx;
+		position: absolute;
+		top: -30rpx;
+		left: 50%;
+		transform: translateX(-50%);
+	}
+
+	.paperclip {
+		width: 55rpx;
+		position: absolute;
+		top: -40rpx;
+		left: 38rpx;
+	}
+
+	.score_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 32rpx;
+		color: #333333;
+		line-height: 24rpx;
+		margin: 0 0 0 5rpx;
+	}
+
+	.score_num {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 93rpx;
+		color: #FF1E00;
+		text-align: center;
+		margin-top: 20rpx;
+		line-height: 1.2;
+	}
+
+	.score_explain {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 24rpx;
+		color: #999999;
+		line-height: 34rpx;
+		text-align: center;
+	}
+
+	.chart_wrap {
+		width: 702rpx;
+		min-height: 1053rpx;
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		margin: 30rpx auto 100rpx;
+		padding-bottom: 30rpx;
+	}
+
+	.my_table {
+		width: 634rpx;
+		line-height: 52rpx;
+		margin: 0 auto;
+		text-align: center;
+		border: 0;
+	}
+
+	.my_table {}
+
+	.my_table .t-head {
+		width: 634rpx;
+		height: 52rpx;
+		background: #E6EFF5;
+	}
+
+	.my_table .t-head,
+	.my_table .t-body {
+		display: flex;
+	}
+
+	.my_table .t-head view,
+	.my_table .t-body view {
+		flex: 1;
+	}
+
+	.my_table .t-body view {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 20rpx;
+		color: #333333;
+		line-height: 50rpx;
+		border-right: 1px solid #E6EFF5;
+		border-bottom: 1px solid #E6EFF5;
+	}
+</style>

+ 4 - 13
newScale/Mbti/testPage.vue

@@ -180,20 +180,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Mbti&resultId=${_this.resultId}`
+						});
 					})
 					.catch((err) => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Mental/testPage.vue

@@ -167,20 +167,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Mental&resultId=${_this.resultId}`
+						});
 					})
 					.catch((err) => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Senile/testPage.vue

@@ -137,20 +137,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Senile&resultId=${_this.resultId}`
+						});
 					})
 					.catch(() => {
 						_this.isLoading = false;

+ 4 - 13
newScale/Sleep/testPage.vue

@@ -165,20 +165,11 @@
 					.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();
+						// 跳转支付页面
+						uni.navigateTo({
+							url: `/newScale/paymentPage/index?tName=Sleep&resultId=${_this.resultId}`
+						});
 					})
 					.catch((err) => {
 						_this.isLoading = false;

+ 9 - 3
newScale/Sleep/testResult.vue

@@ -118,7 +118,7 @@
 						startAngle: 180,
 						endAngle: 0,
 						center: ['50%', '77%'],
-						radius: '130%',
+						radius: '100%',
 						min: 0,
 						max: 54,
 						splitNumber: 3,
@@ -471,8 +471,9 @@
 	}
 
 	.my_echarts {
-		width: 100%;
-		height: 100%;
+		width: 356rpx;
+		height: 356rpx;
+		margin: 0 auto;
 	}
 
 	.score_tips {
@@ -483,4 +484,9 @@
 		left: 50%;
 		transform: translateX(-50%)
 	}
+
+	.container100 {
+		width: 100%;
+		height: 100%;
+	}
 </style>

+ 150 - 58
newScale/paymentPage/index.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="payment_bg">
 		<view class="payment_info"
-			:style="{'background': `url(${currentScale.infoImg}) no-repeat center`, 'background-size': 'cover'}">
-			<view class=" people_num"><text>{{peopleNum}}人已测</text></view>
-			<view class="price_num"><text>¥{{orderInfo.total}}</text></view>
-			<view class="pay_btn_sm" @click="payHandle">{{promotionPrice}}元解锁专属测试报告</view>
+			:style="{ 'background': `url(${currentScale.infoImg}) no-repeat center`, 'background-size': 'cover' }">
+			<view class=" people_num"><text>{{ peopleNum }}人已测</text></view>
+			<view class="price_num"><text>¥{{ price }}</text></view>
+			<view class="pay_btn_sm" @click="payHandle">{{ promotionPrice }}元解锁专属测试报告</view>
 		</view>
 		<view v-if="currentScale.showDesc" class="payment_desc">
 			<image v-if="currentScale" :src="currentScale.descImg" mode="widthFix"></image>
@@ -12,21 +12,33 @@
 		<view class="top_footer">
 			<template v-if="hasDiscount">
 				<view class="pay_price">
-					<view class="pay_price_p"><text class='pay_price_y'>原价:</text><text>¥{{price}}</text></view>
-					<view class="pro_tag"><text style="margin: 6rpx 5rpx 0 0;">优惠后:</text><text
-							class="price">¥{{promotionPrice}}</text></view>
-				</view>
-				<view style="display: flex;justify-content: center; 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 class="pay_price_p">
+						<view class="price_left">
+							<view class="yh">
+								<view class="yh_title">限时优惠</view>
+								<view class="yh_yj"><text>原价</text><text>¥{{ price }}</text></view>
+							</view>
+							<view class="price_center"><text
+									style="font-size: 40rpx;margin-left: 10rpx;">¥</text><text>{{ promotionPrice }}</text>
+							</view>
+						</view>
+						<view class="price_right">
+							<text>{{ getPriceMod(price, promotionPrice) }}</text>
+						</view>
 					</view>
 				</view>
 			</template>
 			<view class="pay_btn_lg" @click="payHandle">
-				{{hasDiscount? promotionPrice : price}}元解锁专属测试报告
+				{{ hasDiscount ? promotionPrice : price }}元解锁专属测试报告
+			</view>
+			<view v-if="hasDiscount"
+				style="display: flex;justify-content: center; 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>
 		<uni-popup ref="popup" type="center">
@@ -56,6 +68,12 @@
 		data() {
 			return {
 				scaleList: {
+					'MarriageQuality': {
+						infoImg: `${photoUrls}/MarriageQuality/pay_scale_info.png`,
+						descImg: `${photoUrls}/MarriageQuality/pay_scale_desc.png`,
+						flag: '20220124203027',
+						showDesc: true
+					},
 					'Burnout': {
 						infoImg: `${photoUrls}/Burnout/pay_scale_info.png`,
 						descImg: `${photoUrls}/Burnout/pay_scale_desc.png`,
@@ -129,7 +147,8 @@
 				testHour: 0, // 时
 				testMinute: 0, // 分
 				testSecond: 0, // 秒
-				start: false
+				start: false,
+				userInfo: {}
 			}
 		},
 		onLoad(options) {
@@ -145,7 +164,11 @@
 				this.currentScale = this.scaleList[options.tName];
 			}
 
-			this.orderInfo = uni.getStorageSync('orderInfo');
+			if (options && options.resultId) {
+				this.resultId = options.resultId;
+			}
+
+			this.userInfo = uni.getStorageSync('user');
 			this.getPeople();
 			this.queryPromotion();
 		},
@@ -189,35 +212,41 @@
 			},
 			// 拉起微信支付
 			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/${this.scaleName}/testResult?resultId=${this.orderInfo.resultId}&messageShare=1`
-							});
-						} 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 = encodeURIComponent(
-										`https://hnhong-duo.com/webo/newScale/paymentPage/index?orderNo=${res.data.orderNo}&tName=${_this.scaleName}`
-									)
-									window.location.href = `${res.data.codeUrl}&redirect_url=${redirect_url}`;
+				this.orderInfo.total = this.hasDiscount ? this.promotionPrice : this.price;
+				if (this.orderInfo.total > 0) {
+					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/${this.scaleName}/testResult?resultId=${this.orderInfo.resultId}&messageShare=1`
 								});
-						}
+							} else {
+								_this.$request
+									.post({
+										url: "api/wx-pay/h5Pay",
+										loadingTip: "加载中...",
+										data: _this.orderInfo
+									})
+									.then((res) => {
+										let redirect_url = encodeURIComponent(
+											`https://hnhong-duo.com/webo/newScale/paymentPage/index?orderNo=${res.data.orderNo}&tName=${_this.scaleName}&resultId=${this.resultId}`
+										)
+										window.location.href = `${res.data.codeUrl}&redirect_url=${redirect_url}`;
+									});
+							}
+						});
+				} else {
+					uni.navigateTo({
+						url: `/newScale/EQtest/testResult?resultId=${this.resultId}&messageShare=1`
 					});
+				}
 			},
 			createOrder() {
 				let _this = this;
@@ -330,15 +359,33 @@
 				let _this = this;
 				_this.$request
 					.get({
-						url: `api/promotionInfo/queryPromotionDetail/${this.orderInfo.productId}`,
+						url: `api/promotionInfo/queryPromotionDetail/${this.currentScale.flag}`,
 						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()
+						let {
+							price,
+							name,
+							residueNum,
+							promotionPrice,
+							promotionEndTime
+						} = res.data;
+						let params = {
+							productId: this.currentScale.flag,
+							userId: this.userInfo?.id,
+							resultId: this.resultId,
+							description: name,
+							total: price,
+							sceneType: uni.getSystemInfoSync().platform == "android" ?
+								"Android" : "iOS",
+						};
+						this.orderInfo = params;
+						uni.setStorageSync('orderInfo', params);
+						this.residueNum = residueNum;
+						this.price = price;
+						this.promotionPrice = promotionPrice;
+						this.promotionEndTime = new Date(promotionEndTime).getTime()
 						this.getDhms();
 						uni.hideLoading();
 					});
@@ -351,6 +398,11 @@
 				this.testMinute = time.m;
 				this.testSecond = time.s;
 				this.start = true;
+			},
+
+			getPriceMod(p1, p2) {
+				let p = p1 * 1000 - p2 * 1000;
+				return (p / 1000).toFixed(2);
 			}
 		}
 	}
@@ -412,7 +464,7 @@
 		color: #FFFFFF;
 		text-shadow: 0rpx 0rpx 5rpx rgba(168, 63, 90, 0.5);
 		text-align: center;
-		margin: 20rpx auto 60rpx;
+		margin: 20rpx auto 20rpx;
 	}
 
 	.pay_dialog {
@@ -441,7 +493,7 @@
 	}
 
 	.people_num {
-		margin-top: 177rpx;
+		margin-top: 197rpx;
 	}
 
 	.people_num text {
@@ -459,7 +511,7 @@
 	}
 
 	.price_num {
-		margin-top: 72rpx;
+		margin-top: 62rpx;
 	}
 
 	.price_num text {
@@ -474,7 +526,6 @@
 
 	.top_footer {
 		width: 750rpx;
-		height: 261rpx;
 		background: #FFFFFF;
 		padding-bottom: 20rpx;
 		position: fixed;
@@ -499,12 +550,53 @@
 	}
 
 	.pay_price_p {
+		width: 100%;
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.price_left {
+		display: flex;
+	}
+
+	.yh_title {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 35rpx;
+		color: #FF2F29;
+		margin-top: 21rpx;
+	}
+
+	.yh_yj {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: normal;
+		font-size: 24rpx;
+		color: #999999;
+		text-decoration-line: line-through;
+	}
+
+	.price_center {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
+		font-size: 78rpx;
+		color: #FF2F29;
+		margin-top: 7rpx;
+	}
+
+	.price_right {
+		width: 176rpx;
+		height: 70rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/MarriageQuality/lijian.png) no-repeat;
+		background-size: cover;
+		padding-top: 50rpx;
+	}
+
+	.price_right text {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		font-weight: bold;
 		font-size: 32rpx;
-		font-family: Source Han Sans-Bold, Source Han Sans;
-		font-weight: 700;
-		color: #f94206;
-		/* line-height: 38px; */
-		margin-left: 10rpx;
+		color: #FFFFFF;
+		margin-left: 35rpx;
 	}
 
 	.radio_class {

+ 28 - 0
pages.json

@@ -72,6 +72,34 @@
 				}
 			}]
 		},
+		{
+			"root": "newScale/MarriageQuality",
+			"pages": [{
+					"path": "index",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "testPage",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "testResult",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "",
+						"enablePullDownRefresh": false
+					}
+				}
+			]
+		},
 		{
 			"root": "newScale/Burnout",
 			"pages": [{