feat: 性格测评报告页面编写和代码对接
parent
0f0bc49b72
commit
0fa672628e
|
|
@ -22,15 +22,17 @@
|
||||||
|
|
||||||
<view class="flex-1 overflow-auto pb-[30rpx] relative">
|
<view class="flex-1 overflow-auto pb-[30rpx] relative">
|
||||||
<!-- 顶部卡片 -->
|
<!-- 顶部卡片 -->
|
||||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-148rpx]">
|
<view
|
||||||
<image src="/static/images/evaluate/bg.png" class="header-bg" />
|
class="flex flex-col pt-[32rpx] mx-[24rpx] bg-[#fff] px-[30rpx] pt-[30rpx] border-class"
|
||||||
|
>
|
||||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">你的弱势能力为</text>
|
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">你的弱势能力为</text>
|
||||||
<text class="text-[#117CFC] text-[36rpx] z-2">
|
<text class="text-[#117CFC] text-[36rpx] z-2">
|
||||||
{{ studyRecord.title.replace('你的弱势能力:', '') }}
|
{{ studyRecord.title.replace('你的弱势能力:', '') }}
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- 雷达图占位 -->
|
<!-- 雷达图占位 -->
|
||||||
<LineReport />
|
<LineReport :echart-data="studyRecord.linChart" :description="studyRecord.description" />
|
||||||
|
<AbilityDimension :report-items="studyRecord.reportItems" />
|
||||||
<!-- 底部AI智能顾问 -->
|
<!-- 底部AI智能顾问 -->
|
||||||
<!-- <view class="ai-assistant mt-[20rpx] mb-[10rpx] flex items-center justify-center">
|
<!-- <view class="ai-assistant mt-[20rpx] mb-[10rpx] flex items-center justify-center">
|
||||||
<image src="" class="w-[32rpx] h-[32rpx] mr-[10rpx]"></image>
|
<image src="" class="w-[32rpx] h-[32rpx] mr-[10rpx]"></image>
|
||||||
|
|
@ -42,6 +44,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'
|
import Navbar from '@/pages-evaluation-sub/components/navbar/Navbar.vue'
|
||||||
import LineReport from '../components/interestChart/LineReport.vue'
|
import LineReport from '../components/interestChart/LineReport.vue'
|
||||||
|
import AbilityDimension from '../components/AbilityDimension.vue'
|
||||||
|
|
||||||
import { getAbilityDimension } from '@/service/index/api'
|
import { getAbilityDimension } from '@/service/index/api'
|
||||||
|
|
||||||
|
|
@ -55,8 +58,8 @@ const handleBack = () => {
|
||||||
const studyRecord = ref({
|
const studyRecord = ref({
|
||||||
description: '',
|
description: '',
|
||||||
title: '',
|
title: '',
|
||||||
linChart: {},
|
linChart: [],
|
||||||
reportItem: { mainDomain: '', major: '', occupation: '' },
|
reportItems: [],
|
||||||
hTag: '',
|
hTag: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -69,8 +72,8 @@ onLoad((options) => {
|
||||||
studyRecord.value = resp.result as {
|
studyRecord.value = resp.result as {
|
||||||
description: string
|
description: string
|
||||||
title: string
|
title: string
|
||||||
linChart: any
|
linChart: any[]
|
||||||
reportItem: { mainDomain: string; major: string; occupation: string }
|
reportItems: any[]
|
||||||
hTag: string
|
hTag: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -117,4 +120,10 @@ onLoad((options) => {
|
||||||
border: 4rpx solid #fff;
|
border: 4rpx solid #fff;
|
||||||
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
|
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-class {
|
||||||
|
border-radius: 20rpx 20rpx 0 0;
|
||||||
|
padding-bottom: 42rpx;
|
||||||
|
margin-bottom: -14rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<template>
|
||||||
|
<view class="mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx]">
|
||||||
|
<TitleBar title="能力纬度详细介绍" />
|
||||||
|
|
||||||
|
<view class="flex flex-col gap-[40rpx]">
|
||||||
|
<view v-for="(item, index) in reportItems" :key="index">
|
||||||
|
<view class="text-[32rpx] text-[#000]">{{ item.title }}</view>
|
||||||
|
<view class="text-[26rpx] text-[#666] mt-[6rpx]">{{ item.resolving }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import TitleBar from './TitleBar.vue'
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
reportItems: {
|
||||||
|
type: Array<any>,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
|
|
@ -1,15 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="interest-analysis mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx]">
|
<view class="interest-analysis mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx]">
|
||||||
<view class="text-center mb-[24rpx]">
|
<TitleBar title="兴趣分析与代表人物" />
|
||||||
<view class="text-[32rpx] font-bold relative inline-flex pb-[10rpx] items-center">
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<text class="text-[#1880FC] text-[36rpx] font-bold">兴趣分析与代表人物</text>
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<view
|
|
||||||
class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-full h-[10rpx] bg-[#cce3fc] rounded-full title-bar"
|
|
||||||
></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<text class="text-[26rpx] text-[#666] leading-[40rpx] mb-[30rpx] block">
|
<text class="text-[26rpx] text-[#666] leading-[40rpx] mb-[30rpx] block">
|
||||||
{{ description }}
|
{{ description }}
|
||||||
|
|
@ -41,6 +32,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getTagMapPerson } from '@/service/index/api'
|
import { getTagMapPerson } from '@/service/index/api'
|
||||||
|
import TitleBar from './TitleBar.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
tag: {
|
tag: {
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="suitable-careers mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx]">
|
<view class="mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx]">
|
||||||
<view class="text-center mb-[24rpx]">
|
<TitleBar title="推荐专业" />
|
||||||
<view class="text-[32rpx] font-bold relative inline-flex pb-[10rpx] items-center">
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<text class="text-[#1880FC] text-[36rpx] font-bold">推荐专业</text>
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<view
|
|
||||||
class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-full h-[10rpx] bg-[#cce3fc] rounded-full title-bar"
|
|
||||||
></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<text class="text-[24rpx] text-[#999]">以下专业仅作为参考</text>
|
<text class="text-[24rpx] text-[#999]">以下专业仅作为参考</text>
|
||||||
|
|
||||||
<view class="w-full">
|
<view class="w-full">
|
||||||
|
|
@ -35,6 +25,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getTagMapPro } from '@/service/index/api'
|
import { getTagMapPro } from '@/service/index/api'
|
||||||
|
import TitleBar from './TitleBar.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
tag: {
|
tag: {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<template>
|
||||||
|
<view class="text-center mb-[24rpx]">
|
||||||
|
<view class="text-[32rpx] font-bold relative inline-flex pb-[10rpx] items-center">
|
||||||
|
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
||||||
|
<text class="text-[#1880FC] text-[36rpx] font-bold">{{ title }}</text>
|
||||||
|
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
||||||
|
<view
|
||||||
|
class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-full h-[10rpx] bg-[#cce3fc] rounded-full title-bar"
|
||||||
|
></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
defineProps({
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import '@/pages-evaluation-sub/styles/parallelogram.scss';
|
||||||
|
</style>
|
||||||
|
|
@ -2,16 +2,7 @@
|
||||||
<view
|
<view
|
||||||
class="suitable-positions mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx] flex flex-col"
|
class="suitable-positions mx-[30rpx] mt-[30rpx] bg-white rounded-[20rpx] p-[30rpx] flex flex-col"
|
||||||
>
|
>
|
||||||
<view class="text-center mb-[24rpx]">
|
<TitleBar title="适合的岗位领域" />
|
||||||
<view class="text-[32rpx] font-bold relative inline-flex pb-[10rpx] items-center">
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<text class="text-[#1880FC] text-[36rpx] font-bold">适合的岗位领域</text>
|
|
||||||
<view class="i-carbon-flash-filled h-[23rpx] w-[17rpx] text-[#1880FC]"></view>
|
|
||||||
<view
|
|
||||||
class="absolute bottom-0 left-1/2 transform -translate-x-1/2 w-full h-[10rpx] bg-[#cce3fc] rounded-full title-bar"
|
|
||||||
></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view class="flex justify-center items-center">
|
<view class="flex justify-center items-center">
|
||||||
<view class="h-[146px] w-[265px] z-1">
|
<view class="h-[146px] w-[265px] z-1">
|
||||||
|
|
@ -37,6 +28,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import LEchart from '@/pages-evaluation-sub/uni_modules/lime-echart/components/l-echart/l-echart.vue'
|
import LEchart from '@/pages-evaluation-sub/uni_modules/lime-echart/components/l-echart/l-echart.vue'
|
||||||
|
import TitleBar from '../TitleBar.vue'
|
||||||
const echarts = require('../../../uni_modules/lime-echart/static/echarts.min')
|
const echarts = require('../../../uni_modules/lime-echart/static/echarts.min')
|
||||||
const echart = ref(null)
|
const echart = ref(null)
|
||||||
|
|
||||||
|
|
@ -186,6 +178,4 @@ watch(
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped></style>
|
||||||
@import '@/pages-evaluation-sub/styles/parallelogram.scss';
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<view
|
<view class="mx-[24rpx] bg-white chart-class h-[500rpx] flex items-center justify-center">
|
||||||
class="radar-chart-placeholder mx-[24rpx] bg-white chart-class h-[500rpx] flex items-center justify-center"
|
|
||||||
>
|
|
||||||
<view class="h-[415rpx] w-full z-1">
|
<view class="h-[415rpx] w-full z-1">
|
||||||
<LEchart ref="echart"></LEchart>
|
<LEchart ref="echart"></LEchart>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="h-[368rpx] w-full z-1 bg-white">
|
<view class="bg-white mx-[24rpx] rounded-[20rpx] pb-[20rpx]">
|
||||||
<LEchart ref="echart"></LEchart>
|
<view class="px-[24rpx] h-[368rpx] z-1">
|
||||||
|
<LEchart ref="echart" :customStyle="`z-index:1;`"></LEchart>
|
||||||
|
</view>
|
||||||
|
<view class="bg-[#F5FAFF] px-[16rpx] pt-[20rpx] mx-[34rpx] pb-[26rpx]">
|
||||||
|
<view class="text-[#000] text-[30rpx] mb-[10rpx]">能力评测建议</view>
|
||||||
|
<view class="text-[26rpx] text-[#333]">{{ description }}</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -14,24 +20,19 @@ const props = defineProps({
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => [
|
default: () => [
|
||||||
{
|
{
|
||||||
name: ['Y', 'R', 'D', 'Z', 'K', 'S', 'L', 'N'],
|
name: [],
|
||||||
value: [21, 27, 27, 24, 23, 28, 26, 16],
|
value: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: [
|
name: [],
|
||||||
'言语语言智能',
|
value: [],
|
||||||
'逻辑数理智能',
|
|
||||||
'视觉空间智能',
|
|
||||||
'身体动觉智能',
|
|
||||||
'音乐节奏智能',
|
|
||||||
'人际交往智能',
|
|
||||||
'自知自省智能',
|
|
||||||
'自然观察智能',
|
|
||||||
],
|
|
||||||
value: [37.7, 39.13, 41.21, 40.3, 39.13, 31.2, 41.21, 40.69],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
description: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
@ -59,19 +60,26 @@ const updateChart = () => {
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
top: 40,
|
top: 40,
|
||||||
left: 0,
|
left: 10,
|
||||||
|
right: 20,
|
||||||
|
bottom: 0,
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data: ['我的数据', '平均数据'],
|
data: ['我的数据', '平均数据'],
|
||||||
right: 10,
|
right: 'auto',
|
||||||
|
left: 'center',
|
||||||
top: 0,
|
top: 0,
|
||||||
|
itemWidth: 15,
|
||||||
|
itemHeight: 10,
|
||||||
|
textStyle: {
|
||||||
|
fontSize: 12,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: (props.echartData[1] as { name: string[] }).name.map((item) =>
|
data: (props.echartData[1] as { name: string[] })?.name.map((item) =>
|
||||||
item.replace('智能', ''),
|
item.replace('智能', ''),
|
||||||
),
|
),
|
||||||
axisLine: {
|
axisLine: {
|
||||||
|
|
@ -86,8 +94,8 @@ const updateChart = () => {
|
||||||
rotate: 45,
|
rotate: 45,
|
||||||
formatter: function (value) {
|
formatter: function (value) {
|
||||||
// 处理长文本
|
// 处理长文本
|
||||||
if (value.length > 2) {
|
if (value.length > 4) {
|
||||||
return value.substring(0, 6) + '...'
|
return value.replace('智能', '')
|
||||||
}
|
}
|
||||||
return value
|
return value
|
||||||
},
|
},
|
||||||
|
|
@ -133,7 +141,7 @@ const updateChart = () => {
|
||||||
color: '#1580FF',
|
color: '#1580FF',
|
||||||
borderRadius: [4, 4, 0, 0],
|
borderRadius: [4, 4, 0, 0],
|
||||||
},
|
},
|
||||||
data: (props.echartData[1] as { value: number[] }).value,
|
data: (props.echartData[1] as { value: number[] })?.value,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '平均数据',
|
name: '平均数据',
|
||||||
|
|
@ -150,7 +158,7 @@ const updateChart = () => {
|
||||||
borderWidth: 2,
|
borderWidth: 2,
|
||||||
borderColor: '#fff',
|
borderColor: '#fff',
|
||||||
},
|
},
|
||||||
data: (props.echartData[0] as { value: number[] }).value,
|
data: (props.echartData[0] as { value: number[] })?.value,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
@ -160,6 +168,4 @@ const updateChart = () => {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped></style>
|
||||||
/* 自定义图表样式可以在这里添加 */
|
|
||||||
</style>
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue