饼图
Showing
3 changed files
with
237 additions
and
85 deletions
| ... | @@ -105,7 +105,7 @@ h1 { | ... | @@ -105,7 +105,7 @@ h1 { |
| 105 | .text-top { | 105 | .text-top { |
| 106 | background: url('@/assets/image/top@2x.png') no-repeat top center; | 106 | background: url('@/assets/image/top@2x.png') no-repeat top center; |
| 107 | background-size: 100%; | 107 | background-size: 100%; |
| 108 | height: calc(50 * 100vw / 1920); | 108 | height: calc(63 * 100vw / 1920); |
| 109 | margin: 0; | 109 | margin: 0; |
| 110 | font-size: calc(17 * 100vw / 1920); | 110 | font-size: calc(17 * 100vw / 1920); |
| 111 | font-weight: 400; | 111 | font-weight: 400; | ... | ... |
| ... | @@ -22,6 +22,7 @@ import {AppMain, AppHeader, AppBottom} from './components' | ... | @@ -22,6 +22,7 @@ import {AppMain, AppHeader, AppBottom} from './components' |
| 22 | .bg { | 22 | .bg { |
| 23 | width: 100vw; | 23 | width: 100vw; |
| 24 | height: 100vh; | 24 | height: 100vh; |
| 25 | min-width: 1000px; | ||
| 25 | //overflow: hidden; | 26 | //overflow: hidden; |
| 26 | //background: rgba(0,0,0,0.75) | 27 | //background: rgba(0,0,0,0.75) |
| 27 | background: url("@/assets/image/bg@2x.png") no-repeat top center; | 28 | background: url("@/assets/image/bg@2x.png") no-repeat top center; | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="partA"> | 2 | <div class="center"> |
| 3 | <rotate-part> | 3 | |
| 4 | </rotate-part> | 4 | <div class="top"> |
| 5 | <div class="gif_bg"> | 5 | <div class="left"> |
| 6 | <img src="@/assets/img/rote.png"> | 6 | <div class="titleTop">懂事会得分</div> |
| 7 | </div> | 7 | <div class="titleCenter">预计得分 <span class="tex1">5</span></div> |
| 8 | </div> | 8 | <div class="titleCenter">标准得分 <span class="tex2">10</span> |
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | <div class="right"> | ||
| 12 | <div class="rTop"> | ||
| 13 | <div>领导重点关注</div> | ||
| 14 | <div><img alt="" class="rTop-img" src="@/assets/image/more@2x.png"></div> | ||
| 15 | </div> | ||
| 16 | <div class="rBotton"> | ||
| 17 | <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div> | ||
| 18 | <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div> | ||
| 19 | <!-- <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div>--> | ||
| 20 | <!-- <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div>--> | ||
| 21 | <!-- <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div>--> | ||
| 22 | <!-- <div class="row-text"><span/> 这里是文案内容这里是文案内容这里是文案内容</div>--> | ||
| 23 | </div> | ||
| 9 | 24 | ||
| 10 | <!-- --> | 25 | </div> |
| 11 | <div class="partB"> | ||
| 12 | <div class="q1box qqbox"> | ||
| 13 | <!-- 液体球--> | ||
| 14 | <div ref="q1" style="width: 100%;height: calc(90*100vw/1920);"></div> | ||
| 15 | <svg :height="`calc(100*100vw/1920)`" width="100%"> | ||
| 16 | <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%"> | ||
| 17 | <stop offset="0%" stop-color="#03AEFD"/> | ||
| 18 | <stop offset="10%" stop-color="#AEFFF3"/> | ||
| 19 | </linearGradient> | ||
| 20 | <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%"> | ||
| 21 | 非常满意 | ||
| 22 | </text> | ||
| 23 | <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold" | ||
| 24 | text-anchor="middle" x="50%">{{ list['非常满意'] }} | ||
| 25 | </text> | ||
| 26 | </svg> | ||
| 27 | </div> | 26 | </div> |
| 28 | <div class="q2box qqbox"> | 27 | |
| 29 | <!-- 液体球--> | 28 | |
| 30 | <div ref="q2" style="width: 100%;height: calc(90*100vw/1920);"></div> | 29 | <div class="bottom"> |
| 31 | <svg :height="`calc(100*100vw/1920)`" width="100%"> | 30 | <div ref="boardRef1" style="width: 100%;height: 20vh;"> |
| 32 | <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%"> | 31 | 看板11 |
| 33 | <stop offset="0%" stop-color="#03AEFD"/> | 32 | </div> |
| 34 | <stop offset="10%" stop-color="#AEFFF3"/> | 33 | <div ref="boardRef2" style="width: 100%;height: 20vh;"> |
| 35 | </linearGradient> | 34 | 看板11 |
| 36 | <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%"> | 35 | </div> |
| 37 | 满意 | 36 | <div ref="boardRef3" style="width: 100%;height: 20vh;"> |
| 38 | </text> | 37 | 看板11 |
| 39 | <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold" | 38 | </div> |
| 40 | text-anchor="middle" x="50%">{{ list['满意'] }} | 39 | <div ref="boardRef4" style="width: 100%;height: 20vh;"> |
| 41 | </text> | 40 | 看板11 |
| 42 | </svg> | 41 | </div> |
| 43 | </div> | 42 | </div> |
| 44 | <!-- <div class="q3box qqbox">--> | 43 | |
| 45 | <!-- <!– 液体球–>--> | 44 | <!-- <!– –>--> |
| 46 | <!-- <div ref="q3" style="width: 100%;height:calc(90*100vw/1920);"></div>--> | 45 | <!-- <div class="partB">--> |
| 47 | <!-- <svg width="100%" :height="`calc(100*100vw/1920)`">--> | 46 | <!-- <div class="q1box qqbox">--> |
| 48 | <!-- <linearGradient id="gradient" y1="0%" x1="100%" x2="100%" y2="100%">--> | 47 | <!-- <!– 液体球–>--> |
| 49 | <!-- <stop offset="0%" stop-color="#03AEFD"/>--> | 48 | <!-- <div ref="q1" style="width: 100%;height: calc(90*100vw/1920);"></div>--> |
| 50 | <!-- <stop offset="10%" stop-color="#AEFFF3"/>--> | 49 | <!-- <svg :height="`calc(100*100vw/1920)`" width="100%">--> |
| 51 | <!-- </linearGradient>--> | 50 | <!-- <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%">--> |
| 52 | <!-- <text x="50%" :y="`calc(15*100vw/1920)`" font-family="PingFang SC" text-anchor="middle" fill="#fff"--> | 51 | <!-- <stop offset="0%" stop-color="#03AEFD"/>--> |
| 53 | <!-- :font-size="`calc(14*100vw/1920)`">基本满意--> | 52 | <!-- <stop offset="10%" stop-color="#AEFFF3"/>--> |
| 54 | <!-- </text>--> | 53 | <!-- </linearGradient>--> |
| 55 | <!-- <text x="50%" :y="`calc(40*100vw/1920)`" font-family="DIN Alternate" text-anchor="middle" font-weight="bold"--> | 54 | <!-- <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%">--> |
| 56 | <!-- :font-size="`calc(16*100vw/1920)`" fill="url(#gradient)">{{ list['基本满意'] }}--> | 55 | <!-- 非常满意--> |
| 57 | <!-- </text>--> | 56 | <!-- </text>--> |
| 58 | <!-- </svg>--> | 57 | <!-- <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold"--> |
| 58 | <!-- text-anchor="middle" x="50%">{{ list['非常满意'] }}--> | ||
| 59 | <!-- </text>--> | ||
| 60 | <!-- </svg>--> | ||
| 61 | <!-- </div>--> | ||
| 62 | <!-- <div class="q2box qqbox">--> | ||
| 63 | <!-- <!– 液体球–>--> | ||
| 64 | <!-- <div ref="q2" style="width: 100%;height: calc(90*100vw/1920);"></div>--> | ||
| 65 | <!-- <svg :height="`calc(100*100vw/1920)`" width="100%">--> | ||
| 66 | <!-- <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%">--> | ||
| 67 | <!-- <stop offset="0%" stop-color="#03AEFD"/>--> | ||
| 68 | <!-- <stop offset="10%" stop-color="#AEFFF3"/>--> | ||
| 69 | <!-- </linearGradient>--> | ||
| 70 | <!-- <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%">--> | ||
| 71 | <!-- 满意--> | ||
| 72 | <!-- </text>--> | ||
| 73 | <!-- <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold"--> | ||
| 74 | <!-- text-anchor="middle" x="50%">{{ list['满意'] }}--> | ||
| 75 | <!-- </text>--> | ||
| 76 | <!-- </svg>--> | ||
| 77 | <!-- </div>--> | ||
| 78 | <!-- <!– <div class="q3box qqbox">–>--> | ||
| 79 | <!-- <!– <!– 液体球–>–>--> | ||
| 80 | <!-- <!– <div ref="q3" style="width: 100%;height:calc(90*100vw/1920);"></div>–>--> | ||
| 81 | <!-- <!– <svg width="100%" :height="`calc(100*100vw/1920)`">–>--> | ||
| 82 | <!-- <!– <linearGradient id="gradient" y1="0%" x1="100%" x2="100%" y2="100%">–>--> | ||
| 83 | <!-- <!– <stop offset="0%" stop-color="#03AEFD"/>–>--> | ||
| 84 | <!-- <!– <stop offset="10%" stop-color="#AEFFF3"/>–>--> | ||
| 85 | <!-- <!– </linearGradient>–>--> | ||
| 86 | <!-- <!– <text x="50%" :y="`calc(15*100vw/1920)`" font-family="PingFang SC" text-anchor="middle" fill="#fff"–>--> | ||
| 87 | <!-- <!– :font-size="`calc(14*100vw/1920)`">基本满意–>--> | ||
| 88 | <!-- <!– </text>–>--> | ||
| 89 | <!-- <!– <text x="50%" :y="`calc(40*100vw/1920)`" font-family="DIN Alternate" text-anchor="middle" font-weight="bold"–>--> | ||
| 90 | <!-- <!– :font-size="`calc(16*100vw/1920)`" fill="url(#gradient)">{{ list['基本满意'] }}–>--> | ||
| 91 | <!-- <!– </text>–>--> | ||
| 92 | <!-- <!– </svg>–>--> | ||
| 93 | <!-- <!– </div>–>--> | ||
| 94 | <!-- <div class="q4box qqbox">--> | ||
| 95 | <!-- <!– 液体球–>--> | ||
| 96 | <!-- <div ref="q4" style="width: 100%;height:calc(90*100vw/1920);"></div>--> | ||
| 97 | <!-- <svg :height="`calc(100*100vw/1920)`" width="100%">--> | ||
| 98 | <!-- <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%">--> | ||
| 99 | <!-- <stop offset="0%" stop-color="#03AEFD"/>--> | ||
| 100 | <!-- <stop offset="10%" stop-color="#AEFFF3"/>--> | ||
| 101 | <!-- </linearGradient>--> | ||
| 102 | <!-- <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%">--> | ||
| 103 | <!-- 不满意--> | ||
| 104 | <!-- </text>--> | ||
| 105 | <!-- <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold"--> | ||
| 106 | <!-- text-anchor="middle" x="50%">{{ list['不满意'] }}--> | ||
| 107 | <!-- </text>--> | ||
| 108 | <!-- </svg>--> | ||
| 109 | <!-- </div>--> | ||
| 110 | <!-- <!– <div class="q5box qqbox">–>--> | ||
| 111 | <!-- <!– <div ref="q5" style="width: 100%;height: 90px;"></div>–>--> | ||
| 112 | <!-- <!– <svg width="100%" height="100">–>--> | ||
| 113 | <!-- <!– <linearGradient id="gradient" y1="0%" x1="100%" x2="100%" y2="100%">–>--> | ||
| 114 | <!-- <!– <stop offset="0%" stop-color="#03AEFD" />–>--> | ||
| 115 | <!-- <!– <stop offset="10%" stop-color="#AEFFF3" />–>--> | ||
| 116 | <!-- <!– </linearGradient>–>--> | ||
| 117 | <!-- <!– <text x="50%" y="15" text-anchor="middle" fill="#fff" font-size="14">非常不满意</text>–>--> | ||
| 118 | <!-- <!– <text x="50%" y="40" text-anchor="middle" font-weight="bold" font-size="16" fill="url(#gradient)">{{list['非常不满意']}}</text>–>--> | ||
| 119 | <!-- <!– </svg>–>--> | ||
| 120 | <!-- <!– </div>–>--> | ||
| 59 | <!-- </div>--> | 121 | <!-- </div>--> |
| 60 | <div class="q4box qqbox"> | 122 | |
| 61 | <!-- 液体球--> | ||
| 62 | <div ref="q4" style="width: 100%;height:calc(90*100vw/1920);"></div> | ||
| 63 | <svg :height="`calc(100*100vw/1920)`" width="100%"> | ||
| 64 | <linearGradient id="gradient" x1="100%" x2="100%" y1="0%" y2="100%"> | ||
| 65 | <stop offset="0%" stop-color="#03AEFD"/> | ||
| 66 | <stop offset="10%" stop-color="#AEFFF3"/> | ||
| 67 | </linearGradient> | ||
| 68 | <text :font-size="`calc(14*100vw/1920)`" :y="`calc(15*100vw/1920)`" fill="#fff" text-anchor="middle" x="50%"> | ||
| 69 | 不满意 | ||
| 70 | </text> | ||
| 71 | <text :font-size="`calc(16*100vw/1920)`" :y="`calc(40*100vw/1920)`" fill="url(#gradient)" font-weight="bold" | ||
| 72 | text-anchor="middle" x="50%">{{ list['不满意'] }} | ||
| 73 | </text> | ||
| 74 | </svg> | ||
| 75 | </div> | ||
| 76 | <!-- <div class="q5box qqbox">--> | ||
| 77 | <!-- <div ref="q5" style="width: 100%;height: 90px;"></div>--> | ||
| 78 | <!-- <svg width="100%" height="100">--> | ||
| 79 | <!-- <linearGradient id="gradient" y1="0%" x1="100%" x2="100%" y2="100%">--> | ||
| 80 | <!-- <stop offset="0%" stop-color="#03AEFD" />--> | ||
| 81 | <!-- <stop offset="10%" stop-color="#AEFFF3" />--> | ||
| 82 | <!-- </linearGradient>--> | ||
| 83 | <!-- <text x="50%" y="15" text-anchor="middle" fill="#fff" font-size="14">非常不满意</text>--> | ||
| 84 | <!-- <text x="50%" y="40" text-anchor="middle" font-weight="bold" font-size="16" fill="url(#gradient)">{{list['非常不满意']}}</text>--> | ||
| 85 | <!-- </svg>--> | ||
| 86 | <!-- </div>--> | ||
| 87 | </div> | 123 | </div> |
| 88 | 124 | ||
| 89 | 125 | ||
| 90 | </template> | 126 | </template> |
| 91 | 127 | ||
| 92 | <script setup> | 128 | <script setup> |
| 93 | import rotatePart from './rotatePart' | ||
| 94 | import {onMounted, ref, watch} from 'vue' | 129 | import {onMounted, ref, watch} from 'vue' |
| 95 | import {ArrowRight} from '@element-plus/icons-vue' | ||
| 96 | import {szToHz} from '@/utils/ruoyi' | ||
| 97 | import 'echarts-liquidfill' | 130 | import 'echarts-liquidfill' |
| 98 | import * as echarts from "echarts"; | 131 | import * as echarts from "echarts"; |
| 99 | import * as api from "@/apiPc/common" | 132 | import * as api from "@/apiPc/common" |
| 100 | 133 | ||
| 101 | const statisticStyle = ref({'color': '#fff'}) | 134 | const statisticStyle = ref({'color': '#fff'}) |
| 135 | |||
| 136 | const boardRef1 = ref(null) | ||
| 137 | const boardRef2 = ref(null) | ||
| 138 | const boardRef3 = ref(null) | ||
| 139 | const boardRef4 = ref(null) | ||
| 140 | |||
| 102 | const q1 = ref(null) | 141 | const q1 = ref(null) |
| 103 | const q2 = ref(null) | 142 | const q2 = ref(null) |
| 104 | const q3 = ref(null) | 143 | const q3 = ref(null) |
| ... | @@ -223,6 +262,118 @@ const setQ1 = (ref, data) => { | ... | @@ -223,6 +262,118 @@ const setQ1 = (ref, data) => { |
| 223 | </script> | 262 | </script> |
| 224 | 263 | ||
| 225 | <style lang="scss" scoped> | 264 | <style lang="scss" scoped> |
| 265 | .center { | ||
| 266 | .top { | ||
| 267 | padding-top: calc(20 * 100vw / 1920); | ||
| 268 | display: flex; | ||
| 269 | justify-content: space-between; | ||
| 270 | align-items: center; | ||
| 271 | |||
| 272 | .left { | ||
| 273 | background: url("@/assets/image/box02@2x.png") no-repeat center; | ||
| 274 | background-size: 100% 100%; | ||
| 275 | width: calc(140 * 100vw / 1920); | ||
| 276 | height: calc(100 * 100vw / 1920); | ||
| 277 | |||
| 278 | .titleTop { | ||
| 279 | text-align: center; | ||
| 280 | font-family: PingFang SC, serif; | ||
| 281 | font-weight: 600; | ||
| 282 | font-size: calc(20 * 100vw / 1920); | ||
| 283 | color: #FFFFFF; | ||
| 284 | text-shadow: 0px 2px 0px rgba(0, 1, 1, 0.41); | ||
| 285 | background: linear-gradient(180deg, #75E2E9 0%, #FFFFFF 100%); | ||
| 286 | -webkit-background-clip: text; | ||
| 287 | -webkit-text-fill-color: transparent; | ||
| 288 | } | ||
| 289 | |||
| 290 | .titleCenter { | ||
| 291 | //text-align: center; | ||
| 292 | padding-left: calc(21 * 100vw / 1920); | ||
| 293 | font-family: PingFang SC, serif; | ||
| 294 | font-weight: 400; | ||
| 295 | font-size: calc(15 * 100vw / 1920); | ||
| 296 | color: #FFFFFF; | ||
| 297 | margin-top: calc(11 * 100vw / 1920); | ||
| 298 | |||
| 299 | span { | ||
| 300 | margin-left: calc(10 * 100vw / 1920); | ||
| 301 | font-size: calc(17 * 100vw / 1920); | ||
| 302 | } | ||
| 303 | |||
| 304 | .tex1 { | ||
| 305 | color: #F4AB09 | ||
| 306 | } | ||
| 307 | |||
| 308 | .tex2 { | ||
| 309 | color: #1DFBD1; | ||
| 310 | } | ||
| 311 | } | ||
| 312 | |||
| 313 | } | ||
| 314 | |||
| 315 | .right { | ||
| 316 | background: url("@/assets/image/box03@2x.png") no-repeat center; | ||
| 317 | background-size: 100% 100%; | ||
| 318 | width: calc(480 * 100vw / 1920); | ||
| 319 | height: calc(110 * 100vw / 1920); | ||
| 320 | padding: calc(13 * 100vw / 1920) calc(35 * 100vw / 1920); | ||
| 321 | |||
| 322 | .rTop { | ||
| 323 | display: flex; | ||
| 324 | justify-content: space-between; | ||
| 325 | font-family: PingFang SC, serif; | ||
| 326 | font-weight: 600; | ||
| 327 | font-size: calc(20 * 100vw / 1920); | ||
| 328 | color: #FFFFFF; | ||
| 329 | text-shadow: 0px 2px 0px rgba(0, 1, 1, 0.41); | ||
| 330 | background: linear-gradient(180deg, #75E2E9 0%, #FFFFFF 100%); | ||
| 331 | -webkit-background-clip: text; | ||
| 332 | -webkit-text-fill-color: transparent; | ||
| 333 | |||
| 334 | .rTop-img { | ||
| 335 | width: calc(30 * 100vw / 1920); | ||
| 336 | height: calc(12 * 100vw / 1920); | ||
| 337 | } | ||
| 338 | } | ||
| 339 | |||
| 340 | .rBotton { | ||
| 341 | height: calc(60 * 100vw / 1920); | ||
| 342 | //overflow-y: scroll; | ||
| 343 | .row-text { | ||
| 344 | font-family: PingFang SC, serif; | ||
| 345 | font-weight: 400; | ||
| 346 | font-size: calc(17 * 100vw / 1920); | ||
| 347 | color: #FFFFFF; | ||
| 348 | height: calc(20 * 100vw / 1920); | ||
| 349 | margin: calc(8 * 100vw / 1920) 0; | ||
| 350 | |||
| 351 | span { | ||
| 352 | display: inline-block; | ||
| 353 | width: calc(12 * 100vw / 1920); | ||
| 354 | height: calc(12 * 100vw / 1920); | ||
| 355 | background-color: #01D7F0; | ||
| 356 | transform: rotate(45deg); | ||
| 357 | margin-left: calc(3 * 100vw / 1920); | ||
| 358 | border-radius: calc(3 * 100vw / 1920); | ||
| 359 | } | ||
| 360 | } | ||
| 361 | } | ||
| 362 | |||
| 363 | |||
| 364 | } | ||
| 365 | } | ||
| 366 | |||
| 367 | .bottom { | ||
| 368 | background: url("@/assets/image/box04@2x.png") no-repeat center; | ||
| 369 | background-size: 100% 100%; | ||
| 370 | margin-top: calc(20 * 100vw / 1920); | ||
| 371 | height: 76vh; | ||
| 372 | padding: calc(10 * 100vw / 1920); | ||
| 373 | } | ||
| 374 | } | ||
| 375 | |||
| 376 | |||
| 226 | .partA { | 377 | .partA { |
| 227 | min-height: 340px; | 378 | min-height: 340px; |
| 228 | height: 70vh; | 379 | height: 70vh; | ... | ... |
-
Please register or sign in to post a comment