pdfUser.vue 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  1. <template>
  2. <div>
  3. <!-- 封面 -->
  4. <div class="cd_box fm" style="border: none;margin-top: 20px;height: 868px;">
  5. <div class="cb_db adf">
  6. <div class="cb_db_l">{{ datetime }}</div>
  7. </div>
  8. <img class="fm_img" src="@/assets/images/agent/logo4.png">
  9. <div class="fm_title">
  10. <div class="pt_p" style="font-size: 60px;">PERILL</div>
  11. <div class="pt_name" style="font-size: 50px;">团队诊断报告-个人版</div>
  12. <div class="pt_tip">{{ useCommonStore()?.$state?.userRealName }}</div>
  13. </div>
  14. <div class="fm_pre adfac" style="margin-top: 165px;">
  15. <div class="fmp_l">报告撰写人:</div>
  16. <div class="fmp_r">创衡AI教练助手</div>
  17. </div>
  18. <div class="fm_pre adfac">
  19. <div class="fmp_l">项目名称:</div>
  20. <div class="fmp_r">{{ reportData?.cover?.programName }}</div>
  21. </div>
  22. <div class="fm_pre adfac">
  23. <div class="fmp_l">客户名称:</div>
  24. <div class="fmp_r">{{ reportData?.cover?.enterpriseName }}</div>
  25. </div>
  26. <div class="fm_pre adfac">
  27. <div class="fmp_l">团队名称:</div>
  28. <div class="fmp_r">{{ reportData?.cover?.teamName }}</div>
  29. </div>
  30. <div class="fm_pre adfac">
  31. <div class="fmp_l">成员人数:</div>
  32. <div class="fmp_r">{{ reportData?.cover?.userNum }}</div>
  33. </div>
  34. <div class="fm_pre adfac">
  35. <div class="fmp_l">报告时间:</div>
  36. <div class="fmp_r">{{ reportData?.cover?.genDate }}</div>
  37. </div>
  38. <div class="cd_page" style="color: #FFFFFF;">1/{{ pageNum }}</div>
  39. </div>
  40. <!-- 介绍 -->
  41. <div class="cd_box js" style="border: none;">
  42. <div class="cb_db adf">
  43. <div class="cb_db_l cdl">{{ datetime }}</div>
  44. </div>
  45. <div class="cb_content">
  46. <div class="mddj_title adfac">
  47. <img src="@/assets/images/agent/pdf_title.png">
  48. <span>介绍</span>
  49. </div>
  50. <p>PERILL模型由发展辅导领域的先驱、全球顶尖教练以及管理思维与团队绩效领域的权威David Clutterbuck教授研发。该模型运用复杂、适应性思维,通过 PERILL 六大支柱对团队进行分析。这六大支柱概括了相互作用、推动或阻碍团队绩效的六大关键影响因素。</p>
  51. <p>以下报告提取了参与 PERILL 诊断问卷的团队成员提供的评分,并将其应用于 PERILL 模型。报告旨在总结团队的高绩效领域与潜在功能失调领域,以助力提升团队整体绩效。</p>
  52. <p>这份 PERILL 报告的结果可帮助企业与团队更好地了解自身优势、存在的问题、差距或需要克服的潜在挑战,从而提升团队绩效、声誉与协作能力。</p>
  53. <div class="big_title">PERILL的六大支柱</div>
  54. <p>PERILL 诊断提供了一个复杂的团队系统概览,它并非针对孤立的问题,也不是简单的优缺点,而是着眼于团队系统的复杂性。它通过 6 个影响因素(如下所述)提出问题,以揭示团队系统各要素之间的联系,以及这些联系如何影响团队的高效运作能力。</p>
  55. <div class="js_boxs">
  56. <div class="jb_pre jp1">
  57. <div class="jbp_zm">P</div>
  58. <img src="@/assets/images/agent/pdf_img_p.png">
  59. <div class="jbp_title" style="line-height: 30px;">目的与动机</div>
  60. <p style="margin-top: 0;">是否存在一个明确的存在理由和清晰的方向,能够激发团队成员的动力并抓住他们的想象力?</p>
  61. <p>个人身份和集体身份是否围绕共同目标达成一致?</p>
  62. </div>
  63. <div class="jb_pre jp2">
  64. <div class="jbp_zm">E</div>
  65. <img src="@/assets/images/agent/pdf_img_e.png">
  66. <div class="jbp_title" style="line-height: 12px;">外部流程及系统与架构</div>
  67. <p style="margin-top: 0;">团队如何与其各类利益相关者互动?</p>
  68. <p>团队如何理解这些利益相关者以及利益相关者如何理解团队?此外,团队又该如何管理相互冲突的期望、获取资源等?</p>
  69. </div>
  70. <div class="jb_pre jp3">
  71. <div class="jbp_zm">R</div>
  72. <img src="@/assets/images/agent/pdf_img_r.png">
  73. <div class="jbp_title" style="line-height: 30px;">关系</div>
  74. <p style="margin-top: 0;">团队成员之间是否相互信任和尊重?</p>
  75. <p>团队成员之间是否相互信任和尊重?</p>
  76. <p>团队成员之间的关系是否有助于实现真正紧密的协作?</p>
  77. </div>
  78. <div class="jb_pre jp4">
  79. <div class="jbp_zm">I</div>
  80. <img src="@/assets/images/agent/pdf_img_i.png">
  81. <div class="jbp_title" style="line-height: 12px;">内部流程及系统与架构</div>
  82. <p style="margin-top: 0;">团队在平衡责任与自主权方面是如何实现功能性协作的?</p>
  83. <p>它的敏捷性如何,沟通方式怎样,决策流程的运作效果有多好?</p>
  84. </div>
  85. <div class="jb_pre jp5">
  86. <div class="jbp_zm">L</div>
  87. <img src="@/assets/images/agent/pdf_img_l.png">
  88. <div class="jbp_title" style="line-height: 30px;">学习</div>
  89. <p style="margin-top: 0;">团队如何提高绩效,提高技能和资源,以应对当前和未来的任务?</p>
  90. <p>它如何管理能力和提高效率?</p>
  91. </div>
  92. </div>
  93. <div class="js_single_box adf">
  94. <div class="jsb_zm">L</div>
  95. <div class="jsb_l adffcacjc">
  96. <img src="@/assets/images/agent/pdf_img_l.png">
  97. <p>领导力</p>
  98. </div>
  99. <div class="jsb_r adffcacjc">
  100. 领导力的特质与行为如何对团队运作及其他因素产生调节影响,且这种影响是正向还是负向的?
  101. </div>
  102. </div>
  103. </div>
  104. <div class="cd_page">2/{{ pageNum }}</div>
  105. </div>
  106. <!-- 总体诊断分析 -->
  107. <div class="cd_box">
  108. <div class="cb_db adf">
  109. <div class="cb_db_l cdl">{{ datetime }}</div>
  110. </div>
  111. <div class="cb_content">
  112. <div class="mddj_title adfac">
  113. <img src="@/assets/images/agent/pdf_title.png">
  114. <span>总体诊断分析</span>
  115. </div>
  116. <p class="p2" style="margin-top: 43px;">{{ reportData?.overall?.diagResult }}</p>
  117. <div class="pdfEchart" id="zttdznRef" ref="zttdznRef" style="width: 100%; height: 350px;margin-top: 20px;"></div>
  118. <div class="bp" style="margin-top: 40px;">诊断结果</div>
  119. <p style="margin-top: 10px;">{{ reportData?.overall?.overall_analysis }}</p>
  120. </div>
  121. <div class="cd_page">3/{{ pageNum }}</div>
  122. </div>
  123. <!-- 多维度 -->
  124. <template v-if="reportData?.dimensionAnalysis?.length">
  125. <div v-for="(rd,ridx) in reportData.dimensionAnalysis" :key="ridx">
  126. <!-- 第四页 目的与动机 -->
  127. <div class="cd_box">
  128. <div class="cb_db adf">
  129. <div class="cb_db_l cdl">{{ datetime }}</div>
  130. </div>
  131. <div class="cb_content">
  132. <div class="mddj_title adfac">
  133. <img src="@/assets/images/agent/pdf_title.png">
  134. <span>{{ rd?.performanceRatings?.title }}</span>
  135. </div>
  136. <p class="p2" style="margin-top: 43px;">在目标与动机支柱中,我们旨在探究是否存在一个清晰的存在理由和明确的方向,能够激发团队成员的动力并吸引他们的想象力,以及个人与集体的身份认同是否围绕共同目标达成一致。</p>
  137. <p class="p3" style="margin-top: 42px;">为了帮助我们理解这一点,我们将从 5 个关键主题的角度审视团队的运作情况,具体如下:</p>
  138. <div class="mddj_boxs" v-if="rd?.performanceRatings?.title=='目的和动机'">
  139. <div class="mb_item" style="border-top: 1px dotted #833478;">
  140. <div class="mbi_title">一致性:</div>
  141. <div class="mbi_text">存在共同的目标和使命意识。个人目标与集体目标之间具有凝聚力。团队成员共享价值观,且集体议程优先于个人议程。</div>
  142. </div>
  143. <div class="mb_item">
  144. <div class="mbi_title">清晰度:</div>
  145. <div class="mbi_text">团队对个人及集体的角色和职责有高度清晰的认知。他们清楚地理解自身未来的方向、目标和使命。</div>
  146. </div>
  147. <div class="mb_item">
  148. <div class="mbi_title">热情与贡献:</div>
  149. <div class="mbi_text">团队对自身的工作目的有强烈的认同感,并展现出高昂的热情,以应对既定的挑战和目标。他们认为自己的工作富有意义,并感觉正在为世界贡献特殊的价值。</div>
  150. </div>
  151. <div class="mb_item">
  152. <div class="mbi_title">愉悦感:</div>
  153. <div class="mbi_text">团队从工作角色中获得快乐和 / 或满足感,欣赏并与团队中的同事保持联结。</div>
  154. </div>
  155. <div class="mb_item">
  156. <div class="mbi_title">支持与协作:</div>
  157. <div class="mbi_text">团队成员拥有团结感和高度的同志情谊。他们对团队目标有着共同的承诺,并愿意相互支持以实现这些目标。</div>
  158. </div>
  159. </div>
  160. <div class="mddj_boxs" v-else-if="rd?.performanceRatings?.title=='外部流程及系统与架构'">
  161. <div class="mb_item" style="border-top: 1px dotted #833478;">
  162. <div class="mbi_title">环境意识:</div>
  163. <div class="mbi_text">该团队拥有环境扫描和竞争对手监控的流程,并对相关情况有强烈的意识。在更广泛的环境中正在发生的事情。他们对更广泛市场背景下的宏观和微观趋势有所了解,这有助于团队做出明智、合理且富有成效的商业决策。</div>
  164. </div>
  165. <div class="mb_item">
  166. <div class="mbi_title">利益相关者与客户协同:</div>
  167. <div class="mbi_text">该团队拥有良好的系统,使他们能够与客户保持良好且定期的互动利益相关者,并确保他们的优先事项、目标和价值观保持一致。</div>
  168. </div>
  169. <div class="mb_item">
  170. <div class="mbi_title">人才与资源获取:</div>
  171. <div class="mbi_text">团队在需要时能够获取额外或替代的人才和资源,并且他们了解这一流程他们需要遵循这些规则才能获得成功。这有助于团队实现平稳高效的运营。</div>
  172. </div>
  173. <div class="mb_item">
  174. <div class="mbi_title">利益相关者与客户沟通:</div>
  175. <div class="mbi_text">该团队建立了强大的系统,以便随时向利益相关者和客户通报其工作进展,以及为什么。他们愿意倾听并从利益相关者和客户那里学习,以支持他们实现目标目标并提升绩效。</div>
  176. </div>
  177. <div class="mb_item">
  178. <div class="mbi_title">关系中的信任与诚信:</div>
  179. <div class="mbi_text">利益相关者对团队及其能力充满信心,团队也因其行事方式而受到尊重他们自己的行为。</div>
  180. </div>
  181. </div>
  182. <div class="mddj_boxs" v-else-if="rd?.performanceRatings?.title=='关系'">
  183. <div class="mb_item" style="border-top: 1px dotted #833478;">
  184. <div class="mbi_title">技能和专业知识:</div>
  185. <div class="mbi_text">团队具备恰当的技能与专业能力平衡,以实现团队目标。成员彼此信任,认为各自具备互补的优势与劣势,能支持目标达成。<br/>尊重与信任团队成员无论在私下还是公开场合都高度尊重彼此。他们信任对方会言行一致,并相互欣赏。</div>
  186. </div>
  187. <div class="mb_item">
  188. <div class="mbi_title">情谊与凝聚力</div>
  189. <div class="mbi_text">团队成员彼此关怀,情谊深厚。任何冲突或挑战都具有建设性,成员期望彼此获得成功。</div>
  190. </div>
  191. <div class="mb_item">
  192. <div class="mbi_title">人才与资源获取:</div>
  193. <div class="mbi_text">团队在需要时能够获取额外或替代的人才和资源,并且他们了解这一流程他们需要遵循这些规则才能获得成功。这有助于团队实现平稳高效的运营。</div>
  194. </div>
  195. <div class="mb_item">
  196. <div class="mbi_title">安全沟通环境:</div>
  197. <div class="mbi_text">团队内部具备高度的心理安全感。成员之间能坦诚相待、善于倾听,敢于暴露自身脆弱之处并承认错误。</div>
  198. </div>
  199. <div class="mb_item">
  200. <div class="mbi_title">重视多样性与包容性:</div>
  201. <div class="mbi_text">团队高度重视多样性与包容性。所有成员都认为自己的声音被倾听与尊重,可自由提问与质疑,并在适当情况下欣然认同彼此的技能、价值观与经验。</div>
  202. </div>
  203. </div>
  204. <div class="mddj_boxs" v-else-if="rd?.performanceRatings?.title=='内部流程及系统与架构'">
  205. <div class="mb_item" style="border-top: 1px dotted #833478;">
  206. <div class="mbi_title">合理资源配置:</div>
  207. <div class="mbi_text">团队拥有实现目标所需的合理资源配置,具备恰当的能力与知识平衡,并能在必要时补充额外技能。<br/>尊重与信任团队成员无论在私下还是公开场合都高度尊重彼此。他们信任对方会言行一致,并相互欣赏。</div>
  208. </div>
  209. <div class="mb_item">
  210. <div class="mbi_title">团队敏捷性:</div>
  211. <div class="mbi_text">团队能够高效且迅速地响应外部变化,并实现快速创新。必要时,团队可分担责任,相互支持以减轻任务负担。</div>
  212. </div>
  213. <div class="mb_item">
  214. <div class="mbi_title">问责机制:</div>
  215. <div class="mbi_text">团队内部在问责制与自主权之间实现了良好平衡。成员可在自身专业领域承担领导角色,并负责相互同步信息(而非依赖团队领导者)。</div>
  216. </div>
  217. <div class="mb_item">
  218. <div class="mbi_title">系统效能:</div>
  219. <div class="mbi_text">团队建立了完善的系统,并定期审视系统背后的假设及其有效性。团队通过可靠的流程支持科学决策,避免决策偏差。</div>
  220. </div>
  221. <div class="mb_item">
  222. <div class="mbi_title">团队保护:</div>
  223. <div class="mbi_text">团队领导者助力成员专注于工作,确保将外部干扰降至最低,团队韧性较强。</div>
  224. </div>
  225. </div>
  226. <div class="mddj_boxs" v-else-if="rd?.performanceRatings?.title=='学习'">
  227. <div class="mb_item" style="border-top: 1px dotted #833478;">
  228. <div class="mbi_title">发展规划:</div>
  229. <div class="mbi_text">团队认识到学习与成长的重要性,所有成员均制定了个人发展计划。团队还制定了全员认同的团队发展计划,聚焦团队在未来 12-24 个月需实现的整体进化方向。</div>
  230. </div>
  231. <div class="mb_item">
  232. <div class="mbi_title">学习相关性:</div>
  233. <div class="mbi_text">团队重视根据环境变化的需求持续提升技能和重新学习技能。发展方向反映了市场和业务战略的演变。</div>
  234. </div>
  235. <div class="mb_item">
  236. <div class="mbi_title">嵌入式学习:</div>
  237. <div class="mbi_text">团队内部拥有根深蒂固的学习文化,并高度重视持续学习。他们开展相互辅导,并将学习作为团队会议议程的常规议题。</div>
  238. </div>
  239. <div class="mb_item">
  240. <div class="mbi_title">发展导向:</div>
  241. <div class="mbi_text">团队频繁挑战自身假设,并主动邀请外部挑战。他们专注于效能与创新,并投资构建支持这一目标的网络。</div>
  242. </div>
  243. <div class="mb_item">
  244. <div class="mbi_title">反思性学习:</div>
  245. <div class="mbi_text">团队分配时间进行反思性学习,拥有完善的流程和实践,可对错误和挫折进行回顾、反思与学习,并利用所学主动实施积极变革。</div>
  246. </div>
  247. </div>
  248. <div class="mddj_boxs" v-else-if="rd?.performanceRatings?.title=='领导力'">
  249. <div class="mb_item" style="border-top: 1px dotted #833478;">
  250. <div class="mbi_title">愿景与背景:</div>
  251. <div class="mbi_text">团队明确自身的发展方向及原因。团队领导者专注于阐释目标背后的背景,并帮助每位成员理解自身目标。协作赋能型领导力团队与领导者就合适的管理风格达成共识。成员被赋予自主权与问责制,且在需要时可承担领导角色。</div>
  252. </div>
  253. <div class="mb_item">
  254. <div class="mbi_title">协作赋能型领导力:</div>
  255. <div class="mbi_text">团队与领导者就合适的管理风格达成共识。成员被赋予自主权与问责制,且在需要时可承担领导角色。</div>
  256. </div>
  257. <div class="mb_item">
  258. <div class="mbi_title">人际领导力:</div>
  259. <div class="mbi_text">团队成员与领导者沟通时感到自在,他们关心并尊重领导者,而领导者也展现出对成员的关怀。</div>
  260. </div>
  261. <div class="mb_item">
  262. <div class="mbi_title">领导勇气:</div>
  263. <div class="mbi_text">领导者展现出勇气,具备即便面临个人风险也坚持做正确之事的能力。他们保护团队免受外部过度干扰,专注于提升团队声誉与公信力。</div>
  264. </div>
  265. <div class="mb_item">
  266. <div class="mbi_title">启发性领导力:</div>
  267. <div class="mbi_text">团队领导者是成员的榜样,以身作则践行团队的价值观与行为准则。领导者关注团队的使命与目标,其经验与才智深受成员尊敬与重视。</div>
  268. </div>
  269. </div>
  270. </div>
  271. <div class="cd_page">{{ridx*7+4}}/{{ pageNum }}</div>
  272. </div>
  273. <!-- 第五页 绩效评级目的与动机 -->
  274. <div class="cd_box">
  275. <div class="cb_db adf">
  276. <div class="cb_db_l cdl">{{ datetime }}</div>
  277. </div>
  278. <div class="cb_content jxpjmddj">
  279. <div class="mddj_title adfac">
  280. <img src="@/assets/images/agent/pdf_title.png">
  281. <span>{{ rd?.performanceRatings?.title }}</span>
  282. </div>
  283. <div class="bp" style="margin-top: 24px;">评分总体分布</div>
  284. <div :id="'pfztfbRef'+ridx" style="width: 100%; height: 200px;" class="pdfEchart"></div>
  285. <div class="bp" style="margin-top: 7px;">均分及差异分析</div>
  286. <div class="cyfx_boxs">
  287. <div class="cyfxb_box" style="border-left: none;">
  288. <div class="cbb_top">均分前五</div>
  289. <div class="cbb_bottom">
  290. <div class="cbbb_item" v-for="rph in rd?.performanceRatings?.highestMeanScores">
  291. <div class="ci_l">{{ rph?.question }}</div>
  292. <div class="ci_r">
  293. <div class="circle">
  294. <div class="semi-circle" :style="{'--percentage': rph?.score}"></div>
  295. <div class="number">{{ rph?.score }}</div>
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. <div class="cyfxb_box">
  302. <div class="cbb_top red">均分后五</div>
  303. <div class="cbb_bottom">
  304. <div class="cbbb_item" v-for="rph in rd?.performanceRatings?.lowestMeanScores">
  305. <div class="ci_l">{{ rph?.question }}</div>
  306. <div class="ci_r">
  307. <div class="circle">
  308. <div class="semi-circle red" :style="{'--percentage': rph?.score}"></div>
  309. <div class="number red">{{ rph?.score }}</div>
  310. </div>
  311. </div>
  312. </div>
  313. </div>
  314. </div>
  315. <div class="cyfxb_box">
  316. <div class="cbb_top">方差前五</div>
  317. <div class="cbb_bottom">
  318. <div class="cbbb_item" v-for="rph in rd?.performanceRatings?.highestVarianceScores">
  319. <div class="ci_l">{{ rph?.question }}</div>
  320. <div class="ci_r">
  321. <div class="circle">
  322. <div class="semi-circle" :style="{'--percentage': rph?.score}"></div>
  323. <div class="number">{{ rph?.score }}</div>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. </div>
  329. <div class="cyfxb_box">
  330. <div class="cbb_top red">方差后五</div>
  331. <div class="cbb_bottom">
  332. <div class="cbbb_item" v-for="rph in rd?.performanceRatings?.lowestVarianceScores">
  333. <div class="ci_l">{{ rph?.question }}</div>
  334. <div class="ci_r">
  335. <div class="circle">
  336. <div class="semi-circle red" :style="{'--percentage': rph?.score}"></div>
  337. <div class="number red">{{ rph?.score }}</div>
  338. </div>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. </div>
  344. </div>
  345. <div class="cd_page">{{ridx*7+5}}/{{ pageNum }}</div>
  346. </div>
  347. <!-- 第六页 绩效评级目的与动机 -->
  348. <div class="cd_box">
  349. <div class="cb_db adf">
  350. <div class="cb_db_l cdl">{{ datetime }}</div>
  351. </div>
  352. <div class="cb_content">
  353. <div class="mddj_title adfac">
  354. <img src="@/assets/images/agent/pdf_title.png">
  355. <span>{{ rd?.performanceRatings?.title }}</span>
  356. </div>
  357. <div class="bp" style="margin-top: 44px;">诊断分析</div>
  358. <p style="margin-top: 17px;">{{ rd?.diagAnalysis?.summary }}</p>
  359. <div class="jxpjmddj_box">
  360. <div class="jb_title">主题:纬度评价分:{{ rd?.diagAnalysis?.avgScore }}<span style="margin-left: 17px;">标准方差:{{ rd?.diagAnalysis?.variance }}</span></div>
  361. </div>
  362. <div class="jxpjmddj_box">
  363. <div class="jb_title2">诊断结果:</div>
  364. <div class="jb_text" v-html="rd?.diagAnalysis?.diagResult.replace(/(\r\n|\n|\r)+/g, '<br>')"></div>
  365. </div>
  366. <div class="jxpjmddj_box">
  367. <div class="jb_title2">建议:</div>
  368. <div class="jb_text" v-for="(t,i) in rd?.diagAnalysis?.suggestion" :key="i">{{ t }}</div><br>
  369. </div>
  370. </div>
  371. <div class="cd_page">{{ridx*7+6}}/{{ pageNum }}</div>
  372. </div>
  373. <!-- 第七页 问卷题目详细分析 -->
  374. <div class="cd_box">
  375. <div class="cb_db adf">
  376. <div class="cb_db_l cdl">{{ datetime }}</div>
  377. </div>
  378. <div class="cb_content">
  379. <div class="mddj_title adfac">
  380. <img src="@/assets/images/agent/pdf_title.png">
  381. <span>{{ rd?.performanceRatings?.title }}</span>
  382. </div>
  383. <div class="bp" style="margin-top: 20px;">问卷题目详细分析</div>
  384. <p class="p2" style="margin-top: 21px;padding-left: 8px;">以下问题均与 “{{rd?.performanceRatings?.title}}” 这一核心支柱以及上述分析中强调的主题紧密相关。</p>
  385. <p class="p3" style="margin-top: 10px;padding-left: 8px;">此处的线性图示将从总体上展示团队的绩效得分情况、得分之间的差异百分比,同时以可视化方式呈现这些分数及其范围。</p>
  386. <div class="xxfx_title adfac">
  387. <div class="xt_pre">问题</div>
  388. <div class="xt_pre">平均分</div>
  389. <div class="xt_pre">方差</div>
  390. </div>
  391. <div class="xxfx_list">
  392. <div class="xl_item adfac" v-for="(rda,index) in rd?.dataAnalysis?.slice(0,9)" :key="index">
  393. <div class="xli_l adfac">
  394. <div class="xl_pre">{{ index+1 }}</div>
  395. <div class="xl_pre red">{{ rda?.avgScore }}</div>
  396. <div class="xl_pre">{{ rda?.variance }}</div>
  397. </div>
  398. <div class="xli_r">
  399. <div class="xr_p">{{ rda?.question }}</div>
  400. <div class="xr_tb adfac">
  401. <div class="xt_pre p1"></div>
  402. <div class="xt_pre p2"></div>
  403. <div class="xt_pre p3"></div>
  404. <div class="xt_score adfac" :style="{'left':rda?.lowestScore==50?'calc(100% - 63px)':rda?.lowestScore*2+'%','width':((rda?.highestScore-rda?.lowestScore)*2)+'%'}">
  405. <div class="xts_num red">{{ rda?.lowestScore }}</div>
  406. <div class="xts_box"></div>
  407. <div class="xts_num green">{{ rda?.highestScore }}</div>
  408. </div>
  409. </div>
  410. </div>
  411. </div>
  412. </div>
  413. </div>
  414. <div class="cd_page">{{ridx*7+7}}/{{ pageNum }}</div>
  415. </div>
  416. <!-- 第八页 问卷题目详细分析 -->
  417. <div class="cd_box">
  418. <div class="cb_db adf">
  419. <div class="cb_db_l cdl">{{ datetime }}</div>
  420. </div>
  421. <div class="cb_content">
  422. <div class="xxfx_list">
  423. <div class="xl_item adfac" v-for="(rda,index) in rd?.dataAnalysis?.slice(9,rd?.dataAnalysis?.length)" :key="index">
  424. <div class="xli_l adfac">
  425. <div class="xl_pre">{{ index+10 }}</div>
  426. <div class="xl_pre red">{{ rda?.avgScore }}</div>
  427. <div class="xl_pre">{{ rda?.variance }}</div>
  428. </div>
  429. <div class="xli_r">
  430. <div class="xr_p">{{ rda?.question }}</div>
  431. <div class="xr_tb adfac">
  432. <div class="xt_pre p1"></div>
  433. <div class="xt_pre p2"></div>
  434. <div class="xt_pre p3"></div>
  435. <div class="xt_score adfac" :style="{'left':rda?.lowestScore==50?'calc(100% - 63px)':rda?.lowestScore*2+'%','width':((rda?.highestScore-rda?.lowestScore)*2)+'%'}">
  436. <div class="xts_num red">{{ rda?.lowestScore }}</div>
  437. <div class="xts_box"></div>
  438. <div class="xts_num green">{{ rda?.highestScore }}</div>
  439. </div>
  440. </div>
  441. </div>
  442. </div>
  443. </div>
  444. </div>
  445. <div class="cd_page">{{ridx*7+8}}/{{ pageNum }}</div>
  446. </div>
  447. <!-- 第九页 团队成员回答分数 -->
  448. <div class="cd_box">
  449. <div class="cb_db adf">
  450. <div class="cb_db_l cdl">{{ datetime }}</div>
  451. </div>
  452. <div class="cb_content">
  453. <div class="mddj_title adfac">
  454. <img src="@/assets/images/agent/pdf_title.png">
  455. <span>{{ rd?.performanceRatings?.title }}</span>
  456. </div>
  457. <div class="bp" style="margin-top: 20px;">团队成员回答分数</div>
  458. <p style="margin-top: 28px;font-size: 14px;font-weight: bold;" >下表向您展示了每位团队成员在每个问题上的得分情况,以及由此得出的总分和方差。</p>
  459. <div class="mddj_top adf">
  460. <div class="tt_pre adf">
  461. <div class="ttp_l tl1"></div>
  462. <div class="ttp_r">在个人得分和总分方面,这表明功能得分为低。在方差方面,这表明个人得分之间的方差较高。</div>
  463. </div>
  464. <div class="tt_pre adf">
  465. <div class="ttp_l tl2"></div>
  466. <div class="ttp_r">在个人得分和总分方面,这表明功能得分为中等。在方差方面,这表明个人得分之间的方差为中等。</div>
  467. </div>
  468. <div class="tt_pre adf">
  469. <div class="ttp_l tl3"></div>
  470. <div class="ttp_r">在个人得分和总分方面,这表明功能得分为高。在方差方面,这表明个人得分之间的方差较低。</div>
  471. </div>
  472. </div>
  473. <div class="mddj_table">
  474. <div class="mt_top adf">
  475. <div class="mt_l adfac">问题</div>
  476. <div class="mt_r adf">
  477. <div class="mr_pre">均分</div>
  478. <div class="mr_pre">方差</div>
  479. </div>
  480. </div>
  481. <div class="mt_list">
  482. <div class="ml_pre adf" v-for="(tms,index) in rd?.teamMemberScores?.slice(0,9)" :key="index">
  483. <div class="mt_l adfac">{{ tms.question }}</div>
  484. <div class="mt_r adfac">
  485. <div class="mp_pre adffcacjc" :class="{'mp1':score<16,'mp2':(score<36&&score>=15),'mp3':score>35}" v-for="(score,idx) in tms.scores" :key="idx">{{ score }}</div>
  486. </div>
  487. </div>
  488. </div>
  489. </div>
  490. </div>
  491. <div class="cd_page">{{ridx*7+9}}/{{ pageNum }}</div>
  492. </div>
  493. <!-- 第十页 团队成员回答分数 -->
  494. <div class="cd_box">
  495. <div class="cb_db adf">
  496. <div class="cb_db_l cdl">{{ datetime }}</div>
  497. </div>
  498. <div class="cb_content">
  499. <div class="mddj_table" style="margin-top: 0;">
  500. <div class="mt_top adf">
  501. <div class="mt_l adfac">问题</div>
  502. <div class="mt_r adf">
  503. <div class="mr_pre">均分</div>
  504. <div class="mr_pre">方差</div>
  505. </div>
  506. </div>
  507. <div class="mt_list">
  508. <div class="ml_pre adf" v-for="(tms,index) in rd?.teamMemberScores?.slice(9,rd?.teamMemberScores?.length)" :key="index">
  509. <div class="mt_l adfac">{{ tms.question }}</div>
  510. <div class="mt_r adfac">
  511. <div class="mp_pre adffcacjc" :class="{'mp1':score<16,'mp2':(score<36&&score>=15),'mp3':score>35}" v-for="(score,idx) in tms.scores" :key="idx">{{ score }}</div>
  512. </div>
  513. </div>
  514. </div>
  515. </div>
  516. </div>
  517. <div class="cd_page">{{ridx*7+10}}/{{ pageNum }}</div>
  518. </div>
  519. </div>
  520. </template>
  521. <!-- 团队情况概述 -->
  522. <div class="cd_box">
  523. <div class="cb_db adf">
  524. <div class="cb_db_l cdl">{{ datetime }}</div>
  525. </div>
  526. <div class="cb_content">
  527. <div class="mddj_title adfac">
  528. <img src="@/assets/images/agent/pdf_title.png">
  529. <span>团队情况概述</span>
  530. </div>
  531. <div class="team_title">公司名称:</div>
  532. <div class="team_p">{{ reportData?.nextSteps?.teamInfo?.company }}</div>
  533. <div class="team_title">公司背景:</div>
  534. <div class="team_p" style="min-height: 60px;">{{ reportData?.nextSteps?.teamInfo?.company_brief }}</div>
  535. <div class="team_title">团队类型:</div>
  536. <div class="team_p">{{ reportData?.nextSteps?.teamInfo?.team }}</div>
  537. <div class="team_title">团队故事:</div>
  538. <div class="team_p" style="min-height: 180px;">{{ reportData?.nextSteps?.teamInfo?.teamStory }}</div>
  539. <div class="team_title">团队诊断总结:</div>
  540. <div class="team_p" style="min-height: 80px;">{{ reportData?.nextSteps?.teamInfo?.overall_analysis }}</div>
  541. <!-- <div class="team_title">团队教练:</div>
  542. <div class="team_p">{{ '' }}</div> -->
  543. </div>
  544. <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+4}}/{{ pageNum }}</div>
  545. </div>
  546. <!-- 团队情况概述2 -->
  547. <div class="cd_box">
  548. <div class="cb_db adf">
  549. <div class="cb_db_l cdl">{{ datetime }}</div>
  550. </div>
  551. <div class="cb_content">
  552. <div class="bp">团队成员</div>
  553. <div class="team_table">
  554. <table>
  555. <tr class="th">
  556. <td>姓名</td>
  557. <td>类型</td>
  558. <td>人物简介</td>
  559. <td>人物故事</td>
  560. </tr>
  561. <tr v-for="(item,index) in reportData?.nextSteps?.teamInfo?.team_info?.slice(0,4)" :key="index">
  562. <td class="mw">{{ item.name }}</td>
  563. <td class="mw">{{ UserCategory.find(u=>u.value==item.type)?.label }}</td>
  564. <td class="tc">{{item.brief}}</td>
  565. <td class="tc">{{item.story}}</td>
  566. </tr>
  567. </table>
  568. </div>
  569. </div>
  570. <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+5}}/{{ pageNum }}</div>
  571. </div>
  572. <template v-if="membersPageCount>1">
  573. <div class="cd_box" v-for="(n,i) in membersPageCount-1" :key="i">
  574. <div class="cb_db adf">
  575. <div class="cb_db_l cdl">{{ datetime }}</div>
  576. </div>
  577. <div class="cb_content">
  578. <div class="bp">团队成员</div>
  579. <div class="team_table">
  580. <table>
  581. <tr class="th">
  582. <td>姓名</td>
  583. <td>类型</td>
  584. <td>人物简介</td>
  585. <td>人物故事</td>
  586. </tr>
  587. <tr v-for="(item,index) in reportData?.nextSteps?.teamInfo?.team_info?.slice(4*n,4*(n+1))" :key="index">
  588. <td class="mw">{{ item.name }}</td>
  589. <td class="mw">{{ UserCategory.find(u=>u.value==item.type)?.label }}</td>
  590. <td class="tc">{{item.brief}}</td>
  591. <td class="tc">{{item.story}}</td>
  592. </tr>
  593. </table>
  594. </div>
  595. </div>
  596. <div class="cd_page">{{(((reportData?.dimensionAnalysis?.length)*7)||0)+5+n}}/{{ pageNum }}</div>
  597. </div>
  598. </template>
  599. </div>
  600. </template>
  601. <script setup name="">
  602. const props = defineProps({
  603. reportData:{
  604. type: Object,
  605. default: () => {}
  606. }
  607. })
  608. import * as echarts from "echarts";
  609. import { ref, getCurrentInstance, onMounted, nextTick } from 'vue'
  610. const { proxy } = getCurrentInstance();
  611. import useCommonStore from "@/store_v3/modules/common";
  612. const reportData = ref(null);
  613. const zttdznRef = ref(null)
  614. const pjgxRef = ref(null);
  615. const pageNum = ref('');
  616. const membersPageCount = ref(0);
  617. const optionsMap = new Map();
  618. const datetime = proxy.parseTime(new Date(), '{yy}-{mm}-{dd} {hh}:{ii}');
  619. const { UserCategory} = proxy.useDict("UserCategory");
  620. const emits = defineEmits(['optionsMaps']);
  621. const initZttdznChart = () => {
  622. let myChart = echarts.init(zttdznRef.value);
  623. let option = {
  624. tooltip: {
  625. trigger: 'axis',
  626. axisPointer: {
  627. type: 'shadow'
  628. }
  629. },
  630. legend: {},
  631. grid: {
  632. left: '3%',
  633. right: '8%',
  634. bottom: '1%',
  635. containLabel: true
  636. },
  637. xAxis: {
  638. type: 'value',
  639. boundaryGap: [0, 0.01]
  640. },
  641. yAxis: {
  642. type: 'category',
  643. data: reportData.value?.overall?.aggregateTeamScore.map(d=>d.dimension)||[]
  644. },
  645. series: [
  646. {
  647. name: '团队总分',
  648. type: 'bar',
  649. data: reportData.value?.overall?.aggregateTeamScore.map(d=>d.score)||[],
  650. itemStyle:{
  651. color: function(params) {
  652. var colorList = ['#484EAE','#B6C38D', '#61B7C8', '#5D7EE5', '#8C95DC','#9374B5'];
  653. return colorList[params.dataIndex]
  654. }
  655. }
  656. }
  657. ]
  658. };
  659. optionsMap.set("zttdznRef_copy", option);
  660. myChart.setOption(option)
  661. }
  662. const initPfztfbChart = (dom,report,id) => {
  663. let myChart = echarts.init(dom);
  664. let option = {
  665. tooltip: {
  666. trigger: 'axis',
  667. axisPointer: {
  668. type: 'shadow'
  669. }
  670. },
  671. legend: {},
  672. grid: {
  673. left: '8%',
  674. right: '13%',
  675. bottom: '5%',
  676. top: '10%',
  677. containLabel: true
  678. },
  679. xAxis: {
  680. type: 'value',
  681. boundaryGap: [0, 0.01]
  682. },
  683. yAxis: {
  684. type: 'category',
  685. data: report?.performanceRatings?.avgByTheme.map(d=>d.theme)||[]
  686. },
  687. series: [
  688. {
  689. name: '',
  690. type: 'bar',
  691. data: report?.performanceRatings?.avgByTheme.map(d=>d.score)||[],
  692. itemStyle:{
  693. color: function(params) {
  694. var colorList = ['#484EAE','#B6C38D', '#61B7C8', '#5D7EE5', '#8C95DC'];
  695. return colorList[params.dataIndex]
  696. }
  697. }
  698. }
  699. ]
  700. };
  701. optionsMap.set(id+'_copy', option);
  702. myChart.setOption(option)
  703. }
  704. onMounted(() => {
  705. reportData.value = props.reportData;
  706. membersPageCount.value = Math.ceil(reportData.value?.nextSteps?.teamInfo?.team_info?.length/4);
  707. pageNum.value = reportData.value?.dimensionAnalysis?.length*7+4+(membersPageCount.value);
  708. reportData.value?.dimensionAnalysis?.forEach(item=>{
  709. item.userNames = item?.teamMemberScores[0]?.memberScores?.map(d=>d.realName)||[];
  710. item?.teamMemberScores.forEach((tms,idx)=>{
  711. tms.scores = [tms.avgScore,tms.variance]
  712. })
  713. })
  714. initZttdznChart();
  715. if(reportData.value?.dimensionAnalysis?.length){
  716. nextTick(()=>{
  717. reportData.value?.dimensionAnalysis?.forEach((item,index)=>{
  718. let dom = document.getElementById(`pfztfbRef${index}`)
  719. initPfztfbChart(dom,item,`pfztfbRef${index}`);
  720. if(index===reportData.value?.dimensionAnalysis?.length-1){
  721. emits('optionsMaps', optionsMap);
  722. }
  723. })
  724. })
  725. }
  726. })
  727. </script>
  728. <style scoped lang="scss">
  729. @import url(./pdf.scss);
  730. .cd_box{
  731. width: 100%;
  732. height: 891px;
  733. color: #A1A1A1;
  734. }
  735. </style>