|
@@ -0,0 +1,313 @@
|
|
|
|
+<template>
|
|
|
|
+ <div>
|
|
|
|
+ <!-- 封面 -->
|
|
|
|
+ <div class="cd_box">
|
|
|
|
+ <div class="cb_db adf">
|
|
|
|
+ <div class="cb_db_l">{{ datetime }}</div>
|
|
|
|
+ <div class="cb_db_r">欢迎使用CCMI的PERILL</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 团队成员评分目的和动机 -->
|
|
|
|
+ <div class="cd_box">
|
|
|
|
+ <div class="mddj_title">团队成员评分目的和动机</div>
|
|
|
|
+ <div class="mddj_tip">下表显示了每个团队成员对每个问题的得分,以及最终的总分和方差。</div>
|
|
|
|
+ <div class="mddj_top adf">
|
|
|
|
+ <div class="tt_pre adf">
|
|
|
|
+ <div class="ttp_l tl1"></div>
|
|
|
|
+ <div class="ttp_r">在个体和总分下,这表示功能得分较低。在方差下,这表示个体得分之间的差异较大。</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tt_pre adf">
|
|
|
|
+ <div class="ttp_l tl2"></div>
|
|
|
|
+ <div class="ttp_r">在个体和总分下,这表明一个中等功能的分数。在方差下,这表明个体分数之间的中等方差。</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="tt_pre adf">
|
|
|
|
+ <div class="ttp_l tl3"></div>
|
|
|
|
+ <div class="ttp_r">在个体和总分下,这表示高功能得分。在方差下,这表示个体得分之间的低方差。</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="mddj_table">
|
|
|
|
+ <div class="mt_top adf">
|
|
|
|
+ <div class="mt_l adfac">问题</div>
|
|
|
|
+ <div class="mt_r adf">
|
|
|
|
+ <div class="mr_pre">玛丽</div>
|
|
|
|
+ <div class="mr_pre">千斤顶</div>
|
|
|
|
+ <div class="mr_pre">汤姆</div>
|
|
|
|
+ <div class="mr_pre">阿尔法</div>
|
|
|
|
+ <div class="mr_pre">总评分</div>
|
|
|
|
+ <div class="mr_pre">Variance</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="mt_list">
|
|
|
|
+ <div class="ml_pre adf" v-for="(item,index) in mddjTableDatas.slice(0,7)" :key="index">
|
|
|
|
+ <div class="mt_l adfac">{{ item.title }}</div>
|
|
|
|
+ <div class="mt_r adfac">
|
|
|
|
+ <div class="mp_pre adffcacjc" :class="{'mp1':pre.status==1,'mp2':pre.status==2,'mp3':pre.status==3}" v-for="(pre,idx) in item.datas" :key="idx">{{ pre.score }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="cd_box" v-if="mddjTableDatas.length>7">
|
|
|
|
+ <div class="mddj_table" style="margin-top: 0;">
|
|
|
|
+ <div class="mt_top adf">
|
|
|
|
+ <div class="mt_l adfac">问题</div>
|
|
|
|
+ <div class="mt_r adf">
|
|
|
|
+ <div class="mr_pre">玛丽</div>
|
|
|
|
+ <div class="mr_pre">千斤顶</div>
|
|
|
|
+ <div class="mr_pre">汤姆</div>
|
|
|
|
+ <div class="mr_pre">阿尔法</div>
|
|
|
|
+ <div class="mr_pre">总评分</div>
|
|
|
|
+ <div class="mr_pre">Variance</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="mt_list">
|
|
|
|
+ <div class="ml_pre adf" v-for="(item,index) in mddjTableDatas.slice(7,mddjTableDatas.length)" :key="index">
|
|
|
|
+ <div class="mt_l adfac">{{ item.title }}</div>
|
|
|
|
+ <div class="mt_r adfac">
|
|
|
|
+ <div class="mp_pre adffcacjc" :class="{'mp1':pre.status==1,'mp2':pre.status==2,'mp3':pre.status==3}" v-for="(pre,idx) in item.datas" :key="idx">{{ pre.score }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 绩效评级关系 -->
|
|
|
|
+ <div class="cd_box">
|
|
|
|
+ <div class="mddj_title">绩效评级关系</div>
|
|
|
|
+ <div class="pjgx_title">按主题列出的功能评级</div>
|
|
|
|
+ <div class="pjgx_chart">
|
|
|
|
+ <div ref="pjgxRef" style="width: 100%; height: 250px;margin-top: 20px;"></div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="pjgx_title">高/低性能指标</div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script setup name="">
|
|
|
|
+ import * as echarts from "echarts";
|
|
|
|
+ import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
|
+ const { proxy } = getCurrentInstance();
|
|
|
|
+ const pjgxRef = ref(null);
|
|
|
|
+ const datetime = proxy.parseTime(new Date(), '{yy}-{mm}-{dd} {hh}:{ii}');
|
|
|
|
+
|
|
|
|
+ const mddjTableDatas = ref([
|
|
|
|
+ {
|
|
|
|
+ title: '我们可以集体明确地表达我们的共同目标',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 16, status:2 },
|
|
|
|
+ { name: '汤姆', score: 16, status:2 },
|
|
|
|
+ { name: '阿尔法', score: 20, status:2 },
|
|
|
|
+ { name: '总评分', score: 13, status:1 },
|
|
|
|
+ { name: 'Variance', score: 19, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们对团队在这里要做的事情高度一致',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 9, status:1 },
|
|
|
|
+ { name: '汤姆', score: 12, status:1 },
|
|
|
|
+ { name: '阿尔法', score: 16, status:2 },
|
|
|
|
+ { name: '总评分', score: 10, status:1 },
|
|
|
|
+ { name: 'Variance', score: 15, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们善于将团队优先事项置于个人优先事项之前',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 12, status:1 },
|
|
|
|
+ { name: '汤姆', score: 36, status:3 },
|
|
|
|
+ { name: '阿尔法', score: 18, status:2 },
|
|
|
|
+ { name: '总评分', score: 17, status:2 },
|
|
|
|
+ { name: 'Variance', score: 35, status:1 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们可以集体明确地表达我们的共同目标',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 16, status:2 },
|
|
|
|
+ { name: '汤姆', score: 16, status:2 },
|
|
|
|
+ { name: '阿尔法', score: 20, status:2 },
|
|
|
|
+ { name: '总评分', score: 13, status:1 },
|
|
|
|
+ { name: 'Variance', score: 19, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们对团队在这里要做的事情高度一致',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 9, status:1 },
|
|
|
|
+ { name: '汤姆', score: 12, status:1 },
|
|
|
|
+ { name: '阿尔法', score: 16, status:2 },
|
|
|
|
+ { name: '总评分', score: 10, status:1 },
|
|
|
|
+ { name: 'Variance', score: 15, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们善于将团队优先事项置于个人优先事项之前',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 12, status:1 },
|
|
|
|
+ { name: '汤姆', score: 36, status:3 },
|
|
|
|
+ { name: '阿尔法', score: 18, status:2 },
|
|
|
|
+ { name: '总评分', score: 17, status:2 },
|
|
|
|
+ { name: 'Variance', score: 35, status:1 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们可以集体明确地表达我们的共同目标',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 16, status:2 },
|
|
|
|
+ { name: '汤姆', score: 16, status:2 },
|
|
|
|
+ { name: '阿尔法', score: 20, status:2 },
|
|
|
|
+ { name: '总评分', score: 13, status:1 },
|
|
|
|
+ { name: 'Variance', score: 19, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们对团队在这里要做的事情高度一致',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 9, status:1 },
|
|
|
|
+ { name: '汤姆', score: 12, status:1 },
|
|
|
|
+ { name: '阿尔法', score: 16, status:2 },
|
|
|
|
+ { name: '总评分', score: 10, status:1 },
|
|
|
|
+ { name: 'Variance', score: 15, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们善于将团队优先事项置于个人优先事项之前',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 12, status:1 },
|
|
|
|
+ { name: '汤姆', score: 36, status:3 },
|
|
|
|
+ { name: '阿尔法', score: 18, status:2 },
|
|
|
|
+ { name: '总评分', score: 17, status:2 },
|
|
|
|
+ { name: 'Variance', score: 35, status:1 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们可以集体明确地表达我们的共同目标',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 16, status:2 },
|
|
|
|
+ { name: '汤姆', score: 16, status:2 },
|
|
|
|
+ { name: '阿尔法', score: 20, status:2 },
|
|
|
|
+ { name: '总评分', score: 13, status:1 },
|
|
|
|
+ { name: 'Variance', score: 19, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们对团队在这里要做的事情高度一致',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 9, status:1 },
|
|
|
|
+ { name: '汤姆', score: 12, status:1 },
|
|
|
|
+ { name: '阿尔法', score: 16, status:2 },
|
|
|
|
+ { name: '总评分', score: 10, status:1 },
|
|
|
|
+ { name: 'Variance', score: 15, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们善于将团队优先事项置于个人优先事项之前',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 12, status:1 },
|
|
|
|
+ { name: '汤姆', score: 36, status:3 },
|
|
|
|
+ { name: '阿尔法', score: 18, status:2 },
|
|
|
|
+ { name: '总评分', score: 17, status:2 },
|
|
|
|
+ { name: 'Variance', score: 35, status:1 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们可以集体明确地表达我们的共同目标',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 16, status:2 },
|
|
|
|
+ { name: '汤姆', score: 16, status:2 },
|
|
|
|
+ { name: '阿尔法', score: 20, status:2 },
|
|
|
|
+ { name: '总评分', score: 13, status:1 },
|
|
|
|
+ { name: 'Variance', score: 19, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们对团队在这里要做的事情高度一致',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 9, status:1 },
|
|
|
|
+ { name: '汤姆', score: 12, status:1 },
|
|
|
|
+ { name: '阿尔法', score: 16, status:2 },
|
|
|
|
+ { name: '总评分', score: 10, status:1 },
|
|
|
|
+ { name: 'Variance', score: 15, status:2 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '我们善于将团队优先事项置于个人优先事项之前',
|
|
|
|
+ datas: [
|
|
|
|
+ { name: '玛丽', score: 1, status:1 },
|
|
|
|
+ { name: '千斤顶', score: 12, status:1 },
|
|
|
|
+ { name: '汤姆', score: 36, status:3 },
|
|
|
|
+ { name: '阿尔法', score: 18, status:2 },
|
|
|
|
+ { name: '总评分', score: 17, status:2 },
|
|
|
|
+ { name: 'Variance', score: 35, status:1 }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ ])
|
|
|
|
+
|
|
|
|
+ const initPlgxChart = () => {
|
|
|
|
+ let myChart = echarts.init(pjgxRef.value);
|
|
|
|
+ let option = {
|
|
|
|
+ color:['#F9CE7F'],
|
|
|
|
+ legend: {
|
|
|
|
+ data: ['Allocated Budget']
|
|
|
|
+ },
|
|
|
|
+ radar: {
|
|
|
|
+ indicator: [
|
|
|
|
+ { name: 'Sales', max: 6500,
|
|
|
|
+ axisLabel : {
|
|
|
|
+ show: true
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ { name: 'Administration', max: 16000 },
|
|
|
|
+ { name: 'Information Technology', max: 30000 },
|
|
|
|
+ { name: 'Customer Support', max: 38000 },
|
|
|
|
+ { name: 'Development', max: 52000 },
|
|
|
|
+ { name: 'Marketing', max: 25000 }
|
|
|
|
+ ],
|
|
|
|
+ radius:'55%',
|
|
|
|
+ },
|
|
|
|
+ series: [
|
|
|
|
+ {
|
|
|
|
+ name: 'Budget vs spending',
|
|
|
|
+ type: 'radar',
|
|
|
|
+ areaStyle: {},
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ value: [4200, 3000, 20000, 35000, 50000, 18000],
|
|
|
|
+ name: 'Allocated Budget'
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ myChart.setOption(option)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ initPlgxChart();
|
|
|
|
+ })
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+ @import url(./pdf.scss);
|
|
|
|
+
|
|
|
|
+ .cd_box{
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 891px;
|
|
|
|
+ color: #A1A1A1;
|
|
|
|
+ }
|
|
|
|
+</style>
|