Kaynağa Gözat

基础版报告接口联调(分母数值未确定)

htc 3 gün önce
ebeveyn
işleme
fd46157853

+ 8 - 6
pagesHome/components/receiveList.vue

@@ -140,15 +140,17 @@
 				} else if(type===2){
 					this.showTeamInfo()
 				} else if(type===3){
-					let url = '/pagesHome/pdf';
-					if(this.dto.type==2) url = '/pagesHome/pdfZyb'
-					uni.navigateTo({ url })
+					// let url = '/pagesHome/pdf';
+					// if(this.dto.type==2) url = '/pagesHome/pdfZyb'
+					// uni.navigateTo({ url })
+					if(!this.dto.fileUrl) return this.$showModal('该报告尚未生成,请耐心等待或联系发起人。')
 				}
 			},
 			reviewReport(item){
-				let url = '/pagesHome/pdf';
-				if(item.type==2) url = '/pagesHome/pdfZyb'
-				uni.navigateTo({ url })
+				// let url = '/pagesHome/pdf';
+				// if(item.type==2) url = '/pagesHome/pdfZyb'
+				// uni.navigateTo({ url })
+				if(!item.fileUrl) return this.$showModal('该报告尚未生成,请耐心等待或联系发起人。')
 			},
 			handleKnow(){
 				uni.navigateTo({

+ 4 - 4
pagesHome/components/report/generateList.vue

@@ -29,7 +29,7 @@
 							<view class="gbox-item-bottom-left-text">创建时间:</view>
 							<view class="gbox-item-bottom-left-time">{{item.createDate||''}}</view>
 						</view>
-						<view class="gbox-item-bottom-right" @click="reviewPdf(item.type)" v-if="item.state==1">预览</view>
+						<view class="gbox-item-bottom-right" @click="reviewPdf(item)" v-if="item.state==1">预览</view>
 						<view class="gbox-item-bottom-right" @click="sendReport(item)" v-if="item.state!=-1">发送报告</view>
 						<view class="gbox-item-bottom-right" @click="reSendReport(item)" v-else>重新生成</view>
 					</view>
@@ -70,9 +70,9 @@
 			scrolltolower(){
 				this.$emit('scrolltolower')
 			},
-			reviewPdf(type){
-				let url = '/pagesHome/pdf';
-				if(type==2) url = '/pagesHome/pdfZyb'
+			reviewPdf(item){
+				let url = `/pagesHome/pdf?reportId=${item.reportId}`;
+				if(item.type==2) url = `/pagesHome/pdfZyb?reportId=${item.reportId}`
 				uni.navigateTo({ url })
 			},
 			sendReport(item){

+ 59 - 30
pagesHome/pdf.vue

@@ -10,10 +10,10 @@
 				<view class="fm2-line"></view>
 				<view class="fm2-p">团队发展动态评估报告(基础版)</view>
 				<view class="fm2-texts adf">
-					<view class="fm2-texts-pre"><span style="letter-spacing: 6px;">客户公司:</span>{{ '甜梦(中国)巧克力有限公司' }}</view>
-					<view class="fm2-texts-pre"><span style="letter-spacing: 6px;">团队名称:</span>{{ '团队结构类型:' }}</view>
-					<view class="fm2-texts-pre"><span style="letter-spacing: 2.5px;">评估发起人:</span>{{ '团队职能类型:' }}</view>
-					<view class="fm2-texts-pre"><span>报告生成时间:</span>{{ '2025-11-25' }}</view>
+					<view class="fm2-texts-pre"><span style="letter-spacing: 6px;">客户公司:</span>{{ reportData.teamInfo.enterpriseName||'' }}</view>
+					<view class="fm2-texts-pre"><span style="letter-spacing: 6px;">团队名称:</span>{{ reportData.teamInfo.teamName||'' }}</view>
+					<view class="fm2-texts-pre"><span style="letter-spacing: 2.5px;">评估发起人:</span>{{ reportData.teamInfo.initiator||'' }}</view>
+					<view class="fm2-texts-pre"><span>报告生成时间:</span>{{ reportData.teamInfo.reportDate||'' }}</view>
 				</view>
 			</view>
 			<!-- 介绍 -->
@@ -27,7 +27,7 @@
 					<img class="vb-img2" :src="'https://gitee.com/hw_0302/chuang-heng-wechat-images/raw/master/versionTwo/'+'intro'+'_box_img2.png'">
 					<view class="v2-p">PERILL团队发展动态评估源于团队教练辅导领域的先驱、管理思维与团队绩效领域的权威、全球顶尖团队教练David Clutterbuck教授及其团队通过深入研究,提炼出影响团队绩效的140多个基于实证的因素,整合而成的团队评估和提升工具-PERILL模型。</view>
 					<view class="v2-p" style="margin-top: 8px;">创衡国际基于10多年来在全球与200多家具有前瞻性的国际公司以及国内具有行业代表性公司的合作经验,结合CCMI的PERILL评估工具,在中国推出的团队发展动态评估系统,旨在帮助团队更全面、更有效地从六个维度评估团队的发展现状,为支持团队成为高价值团队提供全景式的客观评估。</view>
-					<view class="v2-p" style="margin-top: 8px;">PERILL团队发展动态评估的主体内容由<span>36</span>个关于团队的描述组成。</view>
+					<view class="v2-p" style="margin-top: 8px;">PERILL团队发展动态评估的主体内容由<span>{{ reportData.teamInfo.questionCount||0 }}</span>个关于团队的描述组成。</view>
 				</view>
 				<view class="v2-six">
 					<view class="vsix-title">PERILL六大纬度</view>
@@ -63,11 +63,11 @@
 				</view>
 				<view class="v2-data">
 					<view class="vd-title" :style="{'background-image':'url(https://gitee.com/hw_0302/chuang-heng-wechat-images/raw/master/versionTwo/'+'intro'+'_title_bg1.png)'}">评估结果</view>
-					<view class="v2-p" v-html="'后端返回数据后端返回数据 后端返回数据 '"></view>
+					<!-- <view class="v2-p" v-html="(reportData.totalDiagnosticOutput||'').replaceAll('\n\n','<br>')"></view> -->
 				</view>
 				<view class="v2-data" style="flex: 1;margin-top: 20px;">
 					<view class="vd-title vt2" :style="{'background-image':'url(https://gitee.com/hw_0302/chuang-heng-wechat-images/raw/master/versionTwo/'+'intro'+'_title_bg2.png)'}">团队提升&教练建议</view>
-					<view class="v2-p" v-html="'后端返回数据后端返回数据 后端返回数据 '"></view>
+					<!-- <view class="v2-p" v-html="(reportData.totalDiagnosisSuggest||'').replaceAll('\n\n','<br>')"></view> -->
 				</view>
 			</view>
 			<!-- 多维度 -->
@@ -84,13 +84,13 @@
 						<view class="v2-p2">{{ item.desc }}</view>
 						<view class="v2-p2" style="margin-top: 16px;">评分总体分布</view>
 						<view class="vb-table" :style="{'border':'1px solid '+item.bcolor}">
-							<view class="vbt-pre adfac" v-for="(scoreItem, scoreIndex) in scoreData" :key="scoreIndex">
-								<view class="vbtp-left adfacjc" :class="{'black':(item.title=='人际关系'||item.title=='学习'||item.title=='内部流程及系统与架构')}" :style="{'background':item.titlecolor}">{{ scoreItem.title }}</view>
+							<view class="vbt-pre adfac" v-for="(ss,si) in item.scoreSpreads" :key="si">
+								<view class="vbtp-left adfacjc" :class="{'black':(item.title=='人际关系'||item.title=='学习'||item.title=='内部流程、系统与结构')}" :style="{'background':item.titlecolor}">{{ ss.theme||'' }}</view>
 								<view class="vbtp-right" :style="{'border':'1px solid '+item.bcolor}">
-									<view class="vbtpr-title">{{ scoreItem.desc }}</view>
+									<view class="vbtpr-title">{{ ss.question||'' }}</view>
 									<view class="vbtpr-jd">
-										<view class="vj_num" :style="{'width':(scoreItem.score/5*100)+'%','background':item.pfztfb}"></view>   
-										<view class="vj-val" :style="{'border':'1px solid '+item.bcolor,'left':'calc('+(scoreItem.score/5*100)+'% - 12px)','box-shadow':'0px 2px 6px 0px '+item.bcolor}">{{ scoreItem.score }}</view>
+										<view class="vj_num" :style="{'width':(4/5*100)+'%','background':item.pfztfb}"></view>   
+										<view class="vj-val" :style="{'border':'1px solid '+item.bcolor,'left':'calc('+(4/5*100)+'% - 12px)','box-shadow':'0px 2px 6px 0px '+item.bcolor}">{{ 4 }}</view>
 									</view>
 								</view>
 							</view>
@@ -100,15 +100,15 @@
 						<view class="vd-title vt3" :class="{'black':(item.title=='人际关系'||item.title=='学习')}" :style="{'background-image':'url(https://gitee.com/hw_0302/chuang-heng-wechat-images/raw/master/versionTwo/'+typeDict[item.title]+'_title_bg1.png)'}">评估结果</view>
 						<view class="v2-p3">纬度得分</view>
 						<view class="vd-wd adfac" :style="{'background':item.wddf}">
-							<view class="vdwd-pre">维度加权总分:<span>{{ 34 }}</span></view>
-							<view class="vdwd-pre vp">维度同意度总分(未加权):<span>{{ 34 }}</span></view>
-							<view class="vdwd-pre">维度权重:<span>{{ 34 }}</span></view>
+							<view class="vdwd-pre">维度加权总分:<span>{{ item.weightedTotal||0 }}</span></view>
+							<view class="vdwd-pre vp">维度同意度总分(未加权):<span>{{ item.consentTotal||0 }}</span></view>
+							<view class="vdwd-pre">维度权重:<span>{{ item.weight||0 }}</span></view>
 						</view>
-						<view class="v2-p" style="margin-top: 8px;" v-html="'后端返回数据 后端返回数据 后端返回数据 后端返回数据 后端返回数据 后端返回数据 '"></view>
+						<view class="v2-p" style="margin-top: 8px;" v-html="(item.diagnosisOutput||'').replaceAll('\n\n','<br>')"></view>
 					</view>
 					<view class="v2-data" :style="{'border':'1px solid '+item.bcolor}" style="flex: 1;margin-top: 15px;">
 						<view class="vd-title vt3" :class="{'black':(item.title=='人际关系'||item.title=='学习')}" :style="{'background-image':'url(https://gitee.com/hw_0302/chuang-heng-wechat-images/raw/master/versionTwo/'+typeDict[item.title]+'_title_bg1.png)'}">评估建议</view>
-						<view class="v2-p" v-html="'后端返回数据 后端返回数据 后端返回数据 后端返回数据 后端返回数据 后端返回数据 '"></view>
+						<view class="v2-p" v-html="(item.diagnosisSuggest||'').replaceAll('\n\n','<br>')"></view>
 					</view>
 				</view>
 			</template>
@@ -124,15 +124,10 @@
     
     export default {
         name: 'ZtzdfxChart',
-   //      props: {
-			// reportData: {
-			//     type: Object,
-			//     default: null
-			// }
-   //      },
 		components:{ lEchart },
         data() {
         return {
+			reportId:'',
 			scoreData: [
 				{
 					title: "宗旨共融,同心共识",
@@ -172,9 +167,9 @@
 			containerScaledHeight: 'auto', 
             typeDict: {
 				'宗旨与动机': 'zzdj',
-				'外部流程及系统与架构': 'wbjg',
+				'外部流程、系统与结构': 'wbjg',
 				'人际关系': 'rjgx',
-				'内部流程及系统与架构': 'nbjg',
+				'内部流程、系统与结构': 'nbjg',
 				'学习': 'xx',
 				'领导力': 'ldl'
             },
@@ -225,20 +220,23 @@
 			pdfImages:[],
 		};
     },
+	onLoad(options) {
+		this.reportId = options.reportId;
+		this.getReportData();
+	},
     mounted() {
-        // reportData.value = props.reportData;
         this.reportData = {
             dimensionAnalysis: [
 				{title:'宗旨与动机',bcolor:'#E4D2E1',titlecolor:'#BA8EB4',wddf:'linear-gradient( 90deg, #F5EFF5 0%, #FAF2F9 100%)',
 					pfztfb:'linear-gradient( 270deg, #BA8EB4 0%, #761E6A 100%)',
 					desc:`「宗旨与动机」维度,我们旨在探究是否存在一个清晰的存在理由和明确的方向,能够激发团队成员的动力并吸引他们的想象力,以及个人与集体的身份认同是否围绕共同的目标,并达成一致。`},
-				{title:'外部流程及系统与架构',bcolor:'#B3DEDE',titlecolor:'#80C8C8',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
+				{title:'外部流程、系统与结构',bcolor:'#B3DEDE',titlecolor:'#80C8C8',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
 					pfztfb:'linear-gradient( 90deg, #009191 0%, #80C8C8 100%)',
 					desc:`「外部流程、系统与结构」维度,我们旨在探究团队如何与各种利益相关者互动,他们与团队的利益相关方各自如何寻求了解对方,以及现有系统和流程的有效性,以帮助管理不同的期望和需求。`},
 				{title:'人际关系',bcolor:'#FFDF73',titlecolor:'#FFEBA8',wddf:'linear-gradient( 90deg, rgba(255,215,80,0.34) 0%, rgba(251,225,130,0.09) 100%)',
 					pfztfb:'linear-gradient( 90deg, #FFD750 0%, #FFEBA8 100%)',
 					desc:`「人际关系」维度,我们旨在探究团队成员如何相互交流、信任程度、尊重和关心的程度,以及团队成员之间的关系如何促进(或破坏)协作。`},
-                {title:'内部流程及系统与架构',bcolor:'#B3DEDE',titlecolor:'#CDE9EA',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
+                {title:'内部流程、系统与结构',bcolor:'#B3DEDE',titlecolor:'#CDE9EA',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
                     pfztfb:'linear-gradient( 270deg, #CDE9EA 0%, #4EB2B2 100%)',
                     desc:`「内部流程、系统与结构」维度,我们旨在探究团队如何在平衡责任与自主权方面进行协作。我们关注团队的敏捷程度、沟通方式以及决策过程的有效性。`},
                 {title:'学习',bcolor:'#E6EAED',titlecolor:'#D7E5FA',wddf:'linear-gradient( 270deg, #F2F5F9 0%, #E3ECF8 100%)',
@@ -256,6 +254,37 @@
 		});
     },
     methods: {
+		getReportData(){
+			this.$api.get(`/core/report/previewReport/${this.reportId}`).then(({data:res})=>{
+				if(res.code!==0) return this.$showToast(res.msg)
+				this.reportData = res.data;
+				const tempDimensionAnalysis = [
+					{title:'宗旨与动机',bcolor:'#E4D2E1',titlecolor:'#BA8EB4',wddf:'linear-gradient( 90deg, #F5EFF5 0%, #FAF2F9 100%)',
+						pfztfb:'linear-gradient( 270deg, #BA8EB4 0%, #761E6A 100%)',
+						desc:`「宗旨与动机」维度,我们旨在探究是否存在一个清晰的存在理由和明确的方向,能够激发团队成员的动力并吸引他们的想象力,以及个人与集体的身份认同是否围绕共同的目标,并达成一致。`},
+					{title:'外部流程、系统与结构',bcolor:'#B3DEDE',titlecolor:'#80C8C8',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
+						pfztfb:'linear-gradient( 90deg, #009191 0%, #80C8C8 100%)',
+						desc:`「外部流程、系统与结构」维度,我们旨在探究团队如何与各种利益相关者互动,他们与团队的利益相关方各自如何寻求了解对方,以及现有系统和流程的有效性,以帮助管理不同的期望和需求。`},
+					{title:'人际关系',bcolor:'#FFDF73',titlecolor:'#FFEBA8',wddf:'linear-gradient( 90deg, rgba(255,215,80,0.34) 0%, rgba(251,225,130,0.09) 100%)',
+						pfztfb:'linear-gradient( 90deg, #FFD750 0%, #FFEBA8 100%)',
+						desc:`「人际关系」维度,我们旨在探究团队成员如何相互交流、信任程度、尊重和关心的程度,以及团队成员之间的关系如何促进(或破坏)协作。`},
+					{title:'内部流程、系统与结构',bcolor:'#B3DEDE',titlecolor:'#CDE9EA',wddf:'linear-gradient( 90deg, #E8F5F5 0%, #F0F8F8 100%)',
+						pfztfb:'linear-gradient( 270deg, #CDE9EA 0%, #4EB2B2 100%)',
+						desc:`「内部流程、系统与结构」维度,我们旨在探究团队如何在平衡责任与自主权方面进行协作。我们关注团队的敏捷程度、沟通方式以及决策过程的有效性。`},
+					{title:'学习',bcolor:'#E6EAED',titlecolor:'#D7E5FA',wddf:'linear-gradient( 270deg, #F2F5F9 0%, #E3ECF8 100%)',
+						pfztfb:'linear-gradient( 270deg, #D7E5FA 0%, #AFCDF5 100%)',
+						desc:`「学习」维度,我们旨在探究团队如何提高其绩效、技能和资源以应对当前和未来的任务。我们还希望了解团队如何管理能力和提高效率。`},
+					{title:'领导力',bcolor:'#E6EAED',titlecolor:'#8093A3',wddf:'linear-gradient( 270deg, #F2F4F6 0%, #EDF0F2 100%)',
+						pfztfb:'linear-gradient( 270deg, #8093A3 0%, #002846 100%)',
+						desc:`「领导力」维度,我们旨在探究领导素质和行为如何对团队功能和其他因素产生调节影响,以及这是积极的还是消极的。`}
+				]
+				if(this.reportData&&this.reportData.dimensionAnalysis){
+					this.reportData.dimensionAnalysis.forEach((d,i)=>{
+						this.reportData.dimensionAnalysis[i] = {...d,...tempDimensionAnalysis[i]}
+					})
+				}
+			})
+		},
 		// async createPdf(){
 		// 	uni.showLoading({
 		// 		title:'正在生成PDF所需的图片...'
@@ -414,7 +443,7 @@
 			}
 			
 			// 绘制左侧标题文字 (要求 1)
-			const isBlackLeftTitle = (dimensionData.title == '人际关系' || dimensionData.title == '学习' || dimensionData.title == '内部流程及系统与架构');
+			const isBlackLeftTitle = (dimensionData.title == '人际关系' || dimensionData.title == '学习' || dimensionData.title == '内部流程、系统与结构');
 			ctx.fillStyle = isBlackLeftTitle ? '#002846' : '#FFFFFF';
 			ctx.font = '10px sans-serif';
 			ctx.textAlign = 'center';
@@ -616,7 +645,7 @@
 		  });
 		},
 		async initZtzdfxChart() {
-            let xdata = ['宗旨与动机', '外部流程及系统与架构', '关系', '内部流程及系统与架构', '学习', '领导力'].reverse();
+            let xdata = ['宗旨与动机', '外部流程、系统与结构', '关系', '内部流程、系统与结构', '学习', '领导力'].reverse();
             let yvalue = [40, 25, 30, 35, 33, 47].reverse();
 			let ycolor = [['#771E6A','#771E6A'],['#009191','#009191'],['#FFD750','#FFD750'],['#4EB2B2','#4EB2B2'],['#AFCDF5','#AFCDF5'],['#002846','#002846']].reverse();
             let yData = yvalue.map((v, i) => {

+ 2 - 1
static/pdf.scss

@@ -1246,7 +1246,8 @@
 		background: #ffffff;
 		border-radius: 10px;
 		border: 1px solid #aedada;
-		width: calc(100% - 9px);
+		width: calc(100% - 9px);
+		min-height: 400rpx;
 		padding: 46px 16px 16px;
 		box-sizing: border-box;
 		margin: 27px 0 0 8px;