Browse Source

最新需求修改

htc 1 day ago
parent
commit
25e1102f20
1 changed files with 122 additions and 116 deletions
  1. 122 116
      src/components/reportPdf/pdf.vue

+ 122 - 116
src/components/reportPdf/pdf.vue

@@ -13,7 +13,8 @@
             </div>
             <div class="fm_pre adfac" style="margin-top: 195px;">
                 <div class="fmp_l">报告撰写人:</div>
-                <div class="fmp_r">{{ reportData?.cover?.realName }}</div>
+                <!-- <div class="fmp_r">{{ reportData?.cover?.realName }}</div> -->
+                <div class="fmp_r">创衡AI教练助手</div>
             </div>
             <div class="fm_pre adfac">
                 <div class="fmp_l">客户名称:</div>
@@ -31,7 +32,7 @@
                 <div class="fmp_l">报告时间:</div>
                 <div class="fmp_r">{{ reportData?.cover?.genDate }}</div>
             </div>
-            <div class="cd_page" style="color: #FFFFFF;">1/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page" style="color: #FFFFFF;">1/{{ pageNum }}</div>
         </div>
         <!-- 介绍 -->
         <div class="cd_box js" style="border: none;">
@@ -97,7 +98,7 @@
                     </div>
                 </div>
             </div>
-            <div class="cd_page">2/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">2/{{ pageNum }}</div>
         </div>
         <!-- 总体诊断分析 -->
         <div class="cd_box">
@@ -109,13 +110,13 @@
                     <img src="@/assets/images/agent/pdf_title.png">
                     <span>总体诊断分析</span>
                 </div>
-                <p class="p2" style="margin-top: 43px;">本报告的核心是基于 PERILL 诊断分析的团队整体表现。这包括团队在 PERILL 模型每个关键要素上的总分,通过将分数与信心指数结合,我们能够展示高功能领域和功能失调领域。</p>
+                <p class="p2" style="margin-top: 43px;">{{ reportData?.overall?.diagResult }}</p>
                 <p class="p3" style="margin-top: 70px;">下面条形图中的位置标记显示了团队按支柱划分的总分。</p>
                 <div ref="zttdznRef" style="width: 100%; height: 350px;margin-top: 20px;"></div>
                 <div class="bp" style="margin-top: 20px;">诊断结果</div>
-                <p style="margin-top: 10px;">{{ reportData?.overall?.diagResult }}</p>
+                <p style="margin-top: 10px;">{{ reportData?.overall?.overall_analysis }}</p>
             </div>
-            <div class="cd_page">3/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">3/{{ pageNum }}</div>
         </div>
         <!-- 多维度 -->
         <template v-if="reportData?.dimensionAnalysis?.length">
@@ -265,7 +266,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+4}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+4}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第五页 绩效评级目的与动机 -->
                 <div class="cd_box">
@@ -339,7 +340,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+5}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+5}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第六页 绩效评级目的与动机 -->
                 <div class="cd_box">
@@ -365,7 +366,7 @@
                             <div class="jb_text" v-for="(t,i) in rd?.diagAnalysis?.suggestion" :key="i">{{ t }}</div><br>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+6}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+6}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第七页 问卷题目详细分析 -->
                 <div class="cd_box">
@@ -408,7 +409,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+7}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+7}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第八页 问卷题目详细分析 -->
                 <div class="cd_box">
@@ -439,7 +440,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+8}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+8}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第九页 团队成员回答分数 -->
                 <div class="cd_box">
@@ -472,7 +473,7 @@
                                 <div class="mt_l adfac">问题</div>
                                 <div class="mt_r adf">
                                     <div class="mr_pre" v-for="(name,index) in rd?.userNames" :key="index">{{ name }}</div>
-                                    <div class="mr_pre">总评分</div>
+                                    <!-- <div class="mr_pre">总评分</div> -->
                                     <div class="mr_pre">均分</div>
                                     <div class="mr_pre">方差</div>
                                 </div>
@@ -487,7 +488,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+9}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+9}}/{{ pageNum }}</div>
                 </div>
                 <!-- 第十页 团队成员回答分数 -->
                 <div class="cd_box">
@@ -500,7 +501,7 @@
                                 <div class="mt_l adfac">问题</div>
                                 <div class="mt_r adf">
                                     <div class="mr_pre" v-for="(name,index) in rd?.userNames" :key="index">{{ name }}</div>
-                                    <div class="mr_pre">总评分</div>
+                                    <!-- <div class="mr_pre">总评分</div> -->
                                     <div class="mr_pre">均分</div>
                                     <div class="mr_pre">方差</div>
                                 </div>
@@ -515,7 +516,7 @@
                             </div>
                         </div>
                     </div>
-                    <div class="cd_page">{{ridx*7+10}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+                    <div class="cd_page">{{ridx*7+10}}/{{ pageNum }}</div>
                 </div>
             </div>
         </template>
@@ -561,7 +562,7 @@
                 </div>
                 <div class="next_tip">如需了解更多背景和细节,可以向创衡团队寻求支持。联系:William@transcend-intl.cn</div>
             </div>
-            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+4}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+4}}/{{ pageNum }}</div>
         </div>
         <!-- 团队情况概述 -->
         <div class="cd_box">
@@ -586,7 +587,7 @@
                 <!-- <div class="team_title">团队教练:</div>
                 <div class="team_p">{{ '' }}</div> -->
             </div>
-            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+5}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+5}}/{{ pageNum }}</div>
         </div>
         <!-- 团队情况概述2 -->
         <div class="cd_box">
@@ -612,7 +613,32 @@
                     </table>
                 </div>
             </div>
-            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+6}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+6}}/{{ pageNum }}</div>
+        </div>
+        <div class="cd_box" v-if="membersPageCount>1">
+            <div class="cb_db adf">
+                <div class="cb_db_l cdl">{{ datetime }}</div>
+            </div>
+            <div class="cb_content">
+                <div class="bp">团队成员</div>
+                <div class="team_table">
+                    <table>
+                        <tr class="th">
+                            <td>姓名</td>
+                            <td>类型</td>
+                            <td>人物简介</td>
+                            <td>人物故事</td>
+                        </tr>
+                        <tr v-for="(item,index) in reportData?.nextSteps?.teamInfo?.team_info?.slice(4*(membersPageCount-1),4*membersPageCount)" :key="index">
+                            <td class="mw">{{ item.name }}</td>
+                            <td class="mw">{{ UserCategory.find(u=>u.value==item.type)?.label }}</td>
+                            <td class="tc">{{item.brief}}</td>
+                            <td class="tc">{{item.story}}</td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+6}}/{{ pageNum }}</div>
         </div>
         <!-- 团队教练目标及方案 -->
         <div class="cd_box">
@@ -626,65 +652,52 @@
                 </div>
                 <div class="bp" style="margin-top: 20px;">团队教练目标</div>
                 <p style="margin-top: 10px;" v-html="reportData?.nextSteps?.coachGoal?.summary.replace(/(\r\n|\n|\r)+/g, '<br>').replaceAll(';', ';<br>')"></p>
+                <p class="bp">教练计划建议</p>
                 <div class="cc_table">
                     <table>
                         <tr>
-                            <td colspan="3" class="red th">条目</td>
-                            <td class="red th">内容</td>
+                            <td colspan="2" class="red th">教练阶段</td>
+                            <td class="red th">阶段教练方案详述</td>
                             <td class="red th">备注</td>
                         </tr>
-                        <tr>
-                            <td rowspan="15" class="red title">
-                                <span>团</span>
-                                <span>队</span>
-                                <span>教</span>
-                                <span>练</span>
-                                <span>目</span>
-                                <span>标</span>
-                                <span>及</span>
-                                <span>方</span>
-                                <span>案</span>
-                            </td>
-                            <td colspan="2" class="red">团队教练目标</td>
-                            <td>
-                                {{ reportData?.nextSteps?.coachGoal?.summary }}<br/>
-                                衡量指标:<span v-for="(rnci,ridx) in reportData?.nextSteps?.coachGoal?.indicators" :key="ridx">{{ rnci }}<br/></span>
-                            </td>
-                            <td></td>
-                        </tr>
-                        <template v-for="(rncc,ridx) in reportData?.nextSteps?.coachPlans?.slice(0,3)">
-                            <tr>
-                                <td rowspan="4" class="pink">Stage{{ ridx+1 }}</td>
-                                <td class="pink">Purose</td>
-                                <td>{{ rncc?.purpose }}</td>
-                                <td>阶段教练目标</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">duration</td>
-                                <td>{{ rncc?.duration }}</td>
-                                <td>环节时长建议</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">format</td>
-                                <td>{{ rncc?.format }}</td>
-                                <td>关于教练辅导形式的建议</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">questions</td>
-                                <td>
-                                    <span v-for="(rq,ridx) in rncc?.questions" :key="ridx">{{ rq }}<br/></span>
-                                </td>
-                                <td>关于教练问题的推荐</td>
-                            </tr>
-                            <tr v-if="ridx<2">
-                                <td colspan="2" class="yellow">{{ ridx===0?'Break 15分钟':'Lunch Time' }}</td>
-                                <td colspan="2" class="yellow"></td>
+                        <template v-for="(rncc,ridx) in reportData?.nextSteps?.coachPlans?.slice(0,5)">
+                            <tr v-if="!rncc.format&&!rncc.purpose&!rncc.questions">
+                                <td colspan="4" class="yellow">{{ rncc?.stagename }} {{ rncc?.duration }}</td>
                             </tr>
+                            <template v-else>
+                                <tr>
+                                    <td rowspan="4" class="pink" style="width: 80px;">{{ rncc?.stagename }}</td>
+                                    <td class="pink" style="width: 70px;">阶段教练目标</td>
+                                    <td>{{ rncc?.purpose }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td style="width: 150px;">{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">环节时长建议</td>
+                                    <td>{{ rncc?.duration }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">教练形式建议</td>
+                                    <td>{{ rncc?.format }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">推荐教练问题</td>
+                                    <td>
+                                        <span v-for="(rq,ridx) in rncc?.questions" :key="ridx">{{ rq }}<br/></span>
+                                    </td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                            </template>
                         </template>
                     </table>
                 </div>
             </div>
-            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+7}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+7}}/{{ pageNum }}</div>
         </div>
         <!-- 团队教练目标及方案2 -->
         <div class="cd_box">
@@ -696,64 +709,52 @@
                     <img src="@/assets/images/agent/pdf_title.png">
                     <span>团队教练目标及方案</span>
                 </div>
+                <p class="bp">教练计划建议</p>
                 <div class="cc_table">
                     <table>
                         <tr>
-                            <td colspan="3" class="red th">条目</td>
-                            <td class="red th">内容</td>
+                            <td colspan="2" class="red th">教练阶段</td>
+                            <td class="red th">阶段教练方案详述</td>
                             <td class="red th">备注</td>
                         </tr>
-                        <tr>
-                            <td rowspan="7" class="red title">
-                                <span>团</span>
-                                <span>队</span>
-                                <span>教</span>
-                                <span>练</span>
-                                <span>目</span>
-                                <span>标</span>
-                                <span>及</span>
-                                <span>方</span>
-                                <span>案</span>
-                            </td>
-                            <td colspan="2" class="yellow">Break 15分钟</td>
-                            <td colspan="2" class="yellow"></td>
-                        </tr>
-                        <template v-for="(rncc,ridx) in reportData?.nextSteps?.coachPlans?.slice(3,4)">
-                            <tr>
-                                <td rowspan="5" class="pink">Stage4</td>
-                                <td class="pink">Purose</td>
-                                <td>{{ rncc?.purpose }}</td>
-                                <td>阶段教练目标</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">duration</td>
-                                <td>{{ rncc?.duration }}</td>
-                                <td>环节时长建议</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">format</td>
-                                <td>{{ rncc?.format }}</td>
-                                <td>关于教练辅导形式的建议</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">questions</td>
-                                <td>
-                                    <span v-for="(rq,ridx) in rncc?.questions" :key="ridx">{{ rq }}<br/></span>
-                                </td>
-                                <td>关于教练问题的推荐</td>
-                            </tr>
-                            <tr>
-                                <td class="pink">sharing_topics</td>
-                                <td>
-                                    <span v-for="(rq,ridx) in rncc?.sharingTopics" :key="ridx">{{ rq }}<br/></span>
-                                </td>
-                                <td>供团队成员教练辅导后反思、分享的问题建议</td>
+                        <template v-for="(rncc,ridx) in reportData?.nextSteps?.coachPlans?.slice(5,reportData?.nextSteps?.coachPlans?.length)">
+                            <tr v-if="!rncc.format&&!rncc.purpose&!rncc.questions">
+                                <td colspan="4" class="yellow">{{ rncc?.stagename }} {{ rncc?.duration }}</td>
                             </tr>
+                            <template v-else>
+                                <tr>
+                                    <td rowspan="4" class="pink" style="width: 80px;">{{ rncc?.stagename }}</td>
+                                    <td class="pink" style="width: 70px;">阶段教练目标</td>
+                                    <td>{{ rncc?.purpose }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td style="width: 150px;">{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">环节时长建议</td>
+                                    <td>{{ rncc?.duration }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">教练形式建议</td>
+                                    <td>{{ rncc?.format }}</td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                                <tr>
+                                    <td class="pink">推荐教练问题</td>
+                                    <td>
+                                        <span v-for="(rq,ridx) in rncc?.questions" :key="ridx">{{ rq }}<br/></span>
+                                    </td>
+                                    <!-- 备注暂时为空 -->
+                                    <td>{{ '' }}</td>
+                                </tr>
+                            </template>
                         </template>
                     </table>
                 </div>
             </div>
-            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+8}}/{{ reportData?.dimensionAnalysis?.length*7+8 }}</div>
+            <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+8}}/{{ pageNum }}</div>
         </div>
     </div>
 </template>
@@ -771,6 +772,8 @@
     const reportData = ref(null);
     const zttdznRef = ref(null)
     const pjgxRef = ref(null);
+    const pageNum = ref('');
+    const membersPageCount = ref(0);
     const datetime = proxy.parseTime(new Date(), '{yy}-{mm}-{dd} {hh}:{ii}');
     const { UserCategory} = proxy.useDict("UserCategory");
 
@@ -898,11 +901,14 @@
 
     onMounted(() => {
         reportData.value = props.reportData;
+        membersPageCount.value = Math.ceil(reportData.value?.nextSteps?.teamInfo?.team_info?.length/4);
+        pageNum.value = reportData.value?.dimensionAnalysis?.length*7+7+(membersPageCount.value);
         reportData.value?.dimensionAnalysis?.forEach(item=>{
             item.userNames = item?.teamMemberScores[0]?.memberScores?.map(d=>d.realName)||[];
             item?.teamMemberScores.forEach((tms,idx)=>{
                 tms.scores = tms?.memberScores?.map(d=>d.score)||[];
-                tms.scores = [...tms.scores,tms.totalScore,tms.avgScore,tms.variance]
+                // tms.scores = [...tms.scores,tms.totalScore,tms.avgScore,tms.variance]
+                tms.scores = [...tms.scores,tms.avgScore,tms.variance]
             })
         })
         initZttdznChart();