|
|
@@ -1,17 +1,64 @@
|
|
|
<template>
|
|
|
<view class="p-28 bg-white rounded-xl">
|
|
|
<voluntary-result-title title="概率分析"/>
|
|
|
- <view class="h-100">
|
|
|
+ <view class="h-220">
|
|
|
<ie-echart :option="option"/>
|
|
|
</view>
|
|
|
+ <voluntary-result-card tag="评估">
|
|
|
+ <view class="flex-1 text-23 leading-38 text-fore-title">
|
|
|
+ 根据历年数据对比分析,预估目前成绩报考该院校/专业,录取风险属于
|
|
|
+ <text class="text-danger">较高风险</text>
|
|
|
+ </view>
|
|
|
+ </voluntary-result-card>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts" name="VoluntaryResultAnalysis">
|
|
|
-import VoluntaryResultTitle from "@/pagesOther/pages/voluntary/result/components/voluntary-result-title.vue";
|
|
|
+import VoluntaryResultTitle from "@/pagesOther/pages/voluntary/result/components/plus/voluntary-result-title.vue";
|
|
|
+import IeEchart from "@/pagesOther/components/ie-echart/ie-echart.vue";
|
|
|
+import VoluntaryResultCard from "@/pagesOther/pages/voluntary/result/components/plus/voluntary-result-card.vue";
|
|
|
|
|
|
const option = ref({})
|
|
|
const drawRing = (rate: number | null) => {
|
|
|
+ const baseGauge = {
|
|
|
+ type: 'gauge',
|
|
|
+ center: ['50%', '75%'],
|
|
|
+ startAngle: 180,
|
|
|
+ endAngle: 0,
|
|
|
+ min: 0,
|
|
|
+ max: 100,
|
|
|
+ radius: '150%',
|
|
|
+ itemStyle: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ progress: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ pointer: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ anchor: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ detail: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ show: false
|
|
|
+ }
|
|
|
+ }
|
|
|
option.value = {
|
|
|
grid: {
|
|
|
left: 0,
|
|
|
@@ -19,13 +66,30 @@ const drawRing = (rate: number | null) => {
|
|
|
},
|
|
|
series: [
|
|
|
{
|
|
|
- type: 'gauge',
|
|
|
- center: ['50%', '75%'],
|
|
|
- startAngle: 180,
|
|
|
- endAngle: 0,
|
|
|
- min: 0,
|
|
|
- max: 100,
|
|
|
- radius: '120%',
|
|
|
+ ...baseGauge,
|
|
|
+ radius: '145%',
|
|
|
+ axisLine: {
|
|
|
+ roundCap: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: [[1, '#e2e2e2']],
|
|
|
+ width: 10
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...baseGauge,
|
|
|
+ radius: '115%',
|
|
|
+ axisLine: {
|
|
|
+ roundCap: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: [[1, '#F8F8F8']],
|
|
|
+ width: 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...baseGauge,
|
|
|
+ radius: '150%',
|
|
|
itemStyle: {
|
|
|
color: {
|
|
|
type: 'linear',
|
|
|
@@ -43,45 +107,24 @@ const drawRing = (rate: number | null) => {
|
|
|
progress: {
|
|
|
show: true,
|
|
|
roundCap: true,
|
|
|
- width: 10,
|
|
|
- },
|
|
|
- pointer: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- anchor: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisLine: {
|
|
|
- roundCap: true,
|
|
|
- lineStyle: {
|
|
|
- color: [[1, '#e2e2e2']],
|
|
|
- width: 10
|
|
|
- }
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
+ width: 16
|
|
|
},
|
|
|
detail: {
|
|
|
show: true,
|
|
|
formatter: (v: any) => {
|
|
|
return isNaN(v) ? '--' : (v + '%');
|
|
|
},
|
|
|
- color: '#333',
|
|
|
+ color: '#1A1A1A',
|
|
|
+ fontFamily: 'KaTeX_SansSerif',
|
|
|
+ fontWeight: '700',
|
|
|
fontSize: 20,
|
|
|
- fontWeight: 'bold',
|
|
|
- offsetCenter: [0, '-20%']
|
|
|
+ offsetCenter: [0, '-28%']
|
|
|
},
|
|
|
title: {
|
|
|
show: true,
|
|
|
color: '#666666',
|
|
|
- fontSize: 10,
|
|
|
- offsetCenter: [0, '20%'],
|
|
|
+ fontSize: 12,
|
|
|
+ offsetCenter: [0, 0],
|
|
|
},
|
|
|
data: [
|
|
|
{
|
|
|
@@ -91,29 +134,18 @@ const drawRing = (rate: number | null) => {
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
- type: 'gauge',
|
|
|
- center: ['50%', '75%'],
|
|
|
- startAngle: 180,
|
|
|
- endAngle: 0,
|
|
|
- min: 0,
|
|
|
- max: 100,
|
|
|
- radius: '120%',
|
|
|
+ ...baseGauge,
|
|
|
+ radius: '150%',
|
|
|
z: 3,
|
|
|
- progress: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
pointer: {
|
|
|
showAbove: true,
|
|
|
icon: 'circle',
|
|
|
- width: 7,
|
|
|
- offsetCenter: [0, '-61%'],
|
|
|
+ width: 14,
|
|
|
+ offsetCenter: [0, '-60.5%'],
|
|
|
itemStyle: {
|
|
|
color: '#fff'
|
|
|
}
|
|
|
},
|
|
|
- anchor: {
|
|
|
- show: false
|
|
|
- },
|
|
|
axisLine: {
|
|
|
roundCap: true,
|
|
|
lineStyle: {
|
|
|
@@ -121,20 +153,31 @@ const drawRing = (rate: number | null) => {
|
|
|
width: 10
|
|
|
}
|
|
|
},
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
- detail: {
|
|
|
- show: false,
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ value: rate
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ...baseGauge,
|
|
|
+ radius: '150%',
|
|
|
+ z: 3,
|
|
|
+ pointer: {
|
|
|
+ showAbove: true,
|
|
|
+ icon: 'circle',
|
|
|
+ width: 8,
|
|
|
+ offsetCenter: [0, '-60.5%'],
|
|
|
+ itemStyle: {
|
|
|
+ color: '#31A0FC'
|
|
|
+ }
|
|
|
},
|
|
|
- title: {
|
|
|
- show: false,
|
|
|
+ axisLine: {
|
|
|
+ roundCap: true,
|
|
|
+ lineStyle: {
|
|
|
+ color: [[1, 'transparent']],
|
|
|
+ width: 10
|
|
|
+ }
|
|
|
},
|
|
|
data: [
|
|
|
{
|
|
|
@@ -146,9 +189,10 @@ const drawRing = (rate: number | null) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
await nextTick()
|
|
|
- drawRing(70)
|
|
|
+ drawRing(81)
|
|
|
})
|
|
|
</script>
|
|
|
|