Lee-1203 2022-03-04 20:26:45 +08:00
commit 44c6613af2
9 changed files with 988 additions and 614 deletions

59
package-lock.json generated
View File

@ -10,6 +10,7 @@
"dependencies": {
"axios": "^0.26.0",
"core-js": "^3.6.5",
"echarts": "^5.3.0",
"vue": "^2.6.11",
"vue-axios": "^3.4.1",
"vue-router": "^3.2.0"
@ -5588,6 +5589,20 @@
"safer-buffer": "^2.1.0"
}
},
"node_modules/echarts": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.0.tgz",
"integrity": "sha512-zENufmwFE6WjM+24tW3xQq4ICqQtI0CGj4bDVDNd3BK3LtaA/5wBp+64ykIyKy3QElz0cieKqSYP4FX9Lv9MwQ==",
"dependencies": {
"tslib": "2.3.0",
"zrender": "5.3.0"
}
},
"node_modules/echarts/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
@ -14918,6 +14933,19 @@
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
"dev": true
},
"node_modules/zrender": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.0.tgz",
"integrity": "sha512-Ln2QB5uqI1ftNYMtCRxd+XDq6MOttLgam2tmhKAVA+j0ko47UT+VNlDvKTkqe4K2sJhBvB0EhYNLebqlCTjatQ==",
"dependencies": {
"tslib": "2.3.0"
}
},
"node_modules/zrender/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
},
"dependencies": {
@ -19387,6 +19415,22 @@
"safer-buffer": "^2.1.0"
}
},
"echarts": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.0.tgz",
"integrity": "sha512-zENufmwFE6WjM+24tW3xQq4ICqQtI0CGj4bDVDNd3BK3LtaA/5wBp+64ykIyKy3QElz0cieKqSYP4FX9Lv9MwQ==",
"requires": {
"tslib": "2.3.0",
"zrender": "5.3.0"
},
"dependencies": {
"tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
@ -27130,6 +27174,21 @@
"dev": true
}
}
},
"zrender": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.3.0.tgz",
"integrity": "sha512-Ln2QB5uqI1ftNYMtCRxd+XDq6MOttLgam2tmhKAVA+j0ko47UT+VNlDvKTkqe4K2sJhBvB0EhYNLebqlCTjatQ==",
"requires": {
"tslib": "2.3.0"
},
"dependencies": {
"tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
}
}
}

View File

@ -10,6 +10,7 @@
"dependencies": {
"axios": "^0.26.0",
"core-js": "^3.6.5",
"echarts": "^5.3.0",
"vue": "^2.6.11",
"vue-axios": "^3.4.1",
"vue-router": "^3.2.0"

View File

@ -3,6 +3,7 @@ import axios from 'axios'
import VueAxios from 'vue-axios'
import App from './App.vue'
import router from './router'
// Vue.config.productionTip = false
Vue.prototype.host = 'https://ypzy.emingren.com'
Vue.prototype.HOME = '/api'
@ -11,8 +12,7 @@ Vue.prototype.HOME = '/api'
axios.interceptors.request.use(config => {
if (config.url!="/api/api/user/login-by-Phone"&&config.url!="/api/api/common/send-sms-captcha") {
if (!localStorage.userData) {
window.alert("请登陆")
router.replace('/');
router.replace('/login');
return config
}else{
config.headers.Authorization = "Bearer "+JSON.parse(localStorage.userData).token

View File

@ -33,6 +33,11 @@ Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'start',
component: start
},
{
path: '/login',
name: 'login',
component: login
},
@ -46,11 +51,7 @@ const routes = [
name: 'verification',
component: verification
},
{
path: '/start',
name: 'start',
component: start
},
{
path: '/expert',
name: 'expert',

View File

@ -39,6 +39,7 @@ export default {
return {
isScrollTop: false,
lastquestions: [],
stateBtn: true,
num: 0,
optionsData: [],
};
@ -92,6 +93,8 @@ export default {
},
setQuestionEV(key) {
let that = this;
if (this.stateBtn) {
this.stateBtn = false;
this.axios
.post(this.HOME + "/api/evaluation/answer-question", {
id: this.lastquestions.list[this.num].id,
@ -99,13 +102,15 @@ export default {
})
.then(function () {
that.num++;
that.stateBtn = true;
if (that.num >= 117) {
console.log(that.num)
console.log(that.num);
that.$router.push({
path: "/ucenter",
});
}
});
}
},
destroyed() {
window.removeEventListener("scroll", this.eventScrollTop);

View File

@ -1,41 +1,57 @@
<template>
<div class="content bind-content">
<!-- 头部 -->
<div :class="{'header':true,'scroll white':isScrollTop,'white':true}">
<div class="back" @click="$router.go(-1)"><img src="../../../assets/images/home/expert/back.png" alt=""></div>
<div :class="{ header: true, 'scroll white': isScrollTop, white: true }">
<div class="back" @click="$router.go(-1)">
<img src="../../../assets/images/home/expert/back.png" alt="" />
</div>
<div class="header-title">意见与反馈</div>
</div>
<div class="info-bg pull-content">
<div class="feedback-msg">
<textarea rows="" cols="" placeholder="请输入您反馈的内容"></textarea>
<textarea v-model="content" rows="" cols="" placeholder="请输入您反馈的内容"></textarea>
</div>
</div>
<div class="bind-btn">提交</div>
<div @click="btnFeedback()" class="bind-btn">提交</div>
</div>
</template>
<script>
export default {
export default {
name: "feedback",
data() {
return {
isScrollTop: false,
}
content: "",
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
mounted() {
},
computed: {
},
mounted() {},
computed: {},
methods: {
btnFeedback() {
if (this.content == "") {
return;
}
this.axios
.post(
this.HOME + "/api/consumer/submit-feedback",
{ content: this.content },
)
.then(function (res) {
window.alert(res.data.msg)
})
.catch(function (error) {
console.log(error);
});
},
//
eventScrollTop() {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
@ -47,7 +63,7 @@
this.isScrollTop = false;
}
}
}
},
},
destroyed() {
window.removeEventListener("scroll", this.eventScrollTop);
@ -55,15 +71,14 @@
//keep-alive
activated() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop)
window.addEventListener("scroll", this.eventScrollTop);
},
//keep-alive
deactivated() {
window.removeEventListener("scroll", this.eventScrollTop);
}
}
},
};
</script>
<style scoped>
</style>

View File

@ -1,14 +1,25 @@
<template>
<div class="content bind-content">
<!-- 头部 -->
<div :class="{'header':true,'scroll white':isScrollTop,'white':true}">
<div class="back" @click="$router.go(-1)"><img src="../../../assets/images/home/expert/back.png" alt=""></div>
<div :class="{ header: true, 'scroll white': isScrollTop, white: true }">
<div class="back" @click="$router.go(-1)">
<img src="../../../assets/images/home/expert/back.png" alt="" />
</div>
<div class="header-title">个人信息</div>
</div>
<div class="info-bg pull-content">
<ul class="phone-info">
<li><span>头像</span><p><img src="../../../assets/images/user/photo.png"></p></li>
<li><span>昵称</span><input type="text" value="" placeholder="请输入昵称"/></li>
<li>
<span>头像</span>
<p class="ps">
<input class="inputB" @change="imgIny($event)" type="file" />
<img src="../../../assets/images/user/photo.png" />
</p>
</li>
<li>
<span>昵称</span
><input type="text" value="" placeholder="请输入昵称" />
</li>
</ul>
</div>
<div class="bind-btn">提交</div>
@ -16,27 +27,43 @@
</template>
<script>
export default {
export default {
name: "info",
data() {
return {
isScrollTop: false,
}
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
mounted() {
},
computed: {
},
mounted() {},
computed: {},
methods: {
imgIny(e) {
const files = e.target.files;
console.log(files[0]);
console.log({ image: files[0] });
var fromdata = new FormData();
fromdata.append("image", files[0]);
this.axios
.post(this.HOME + "/api/file/upload/image", fromdata, {
headers: {
"Content-Type": "multipart/form-data",
},
})
.then(function (res) {
console.log(res);
})
.catch(function (error) {
console.log(error);
});
},
//
eventScrollTop() {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
@ -48,23 +75,22 @@
this.isScrollTop = false;
}
}
}
},
destroyed() {
window.removeEventListener("scroll", this.eventScrollTop);
},
//keep-alive
activated() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop)
},
//keep-alive
deactivated() {
window.removeEventListener("scroll", this.eventScrollTop);
}
}
};
</script>
<style scoped>
.inputB {
width: 1.1rem;
height: 1.1rem;
position: absolute;
left: 0px;
z-index: 5;
top: 0px;
opacity: 0;
}
.ps {
position: relative;
}
</style>

View File

@ -1,170 +1,203 @@
<template>
<div class="content my-content">
<!-- 头部 -->
<div :class="{'header':true,'scroll white':isScrollTop,'white':true}">
<div class="back" @click="$router.go(-1)"><img src="../../../assets/images/home/expert/back.png" alt=""></div>
<div :class="{ header: true, 'scroll white': isScrollTop, white: true }">
<div class="back" @click="$router.go(-1)">
<img src="../../../assets/images/home/expert/back.png" alt="" />
</div>
<div class="header-title">我的报告</div>
</div>
<div class="report pull-content">
<ul class="report-nav">
<li :class="{'active':isShow}" @click="isShow=!isShow">
<li :class="{ active: isShow }" @click="isShow = !isShow">
个性特质分析
</li>
<li :class="{'active':!isShow}" @click="isShow=!isShow">
<li :class="{ active: !isShow }" @click="isShow = !isShow">
专业类匹配度
</li>
</ul>
<div class="report-item-all">
<div class="report-item" v-show="isShow">
<div class="report-relation">
<span>赵四</span>
<span>四川</span>
<span v-show="roleTType == 'student'"></span>
<span v-show="roleTType == 'parents'"></span>
<span>2022-02-28 15:25</span>
</div>
<div class="report-box1 report-box">
<div class="report-title">
职业价值观
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
报告人的职业价值观趋向管理型和创造型
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
报告人的职业价值观关键词运筹帷幄推陈出新
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
你最适合的职业类型是升迁到组织中更高的管理职位进入管理层或者成为总经理这样能够整合其他人的工作并对组织中某项工作的绩效承担责任你最适合的职业类型是能凭借自己的能力和冒险愿望扫除障碍的创业型企业一旦你认为时机成熟就会尽快开始自己的创业历程你希望自己的企业有非常高的现金收入以证明你的能力
<!-- {{baseList1.reportspanList.description}} -->
</span>
</div>
<div class="report-box2 report-box">
<div class="report-title">
职业价值观
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
报告人的职业价值观趋向管理型和创造型
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
报告人的职业价值观关键词运筹帷幄推陈出新
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
你最适合的职业类型是升迁到组织中更高的管理职位进入管理层或者成为总经理这样能够整合其他人的工作并对组织中某项工作的绩效承担责任你最适合的职业类型是能凭借自己的能力和冒险愿望扫除障碍的创业型企业一旦你认为时机成熟就会尽快开始自己的创业历程你希望自己的企业有非常高的现金收入以证明你的能力
<!-- {{baseList1.reportspanList.description}} -->
</span>
<!-- <div class="report-img">
<div style="height:600rpx" a:if="{{twobiao}}">
<f2 onInit="onInitChart2"></f2>
</div>
</div> -->
<span>{{ evaluationData.student.student_name }}</span>
<span>{{ evaluationData.student.student_native_str }}</span>
<span v-show="evaluationData.evaluation.role_type == 'student'"
>考生测评</span
>
<span v-show="evaluationData.evaluation.role_type == 'parents'"
>亲属测评</span
>
<span>{{ evaluationData.student.done_at }}</span>
</div>
<div class="report-box3 report-box">
<div class="report-title">
职业价值观
{{
evaluationData.evaluation.report.base.profession_concept.name
}}
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
报告人的职业价值观趋向管理型和创造型
{{
evaluationData.evaluation.report.base.profession_concept
.reportTextList.summary
}}
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
报告人的职业价值观关键词运筹帷幄推陈出新
{{
evaluationData.evaluation.report.base.profession_concept
.reportTextList.keywords_text
}}
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
你最适合的职业类型是升迁到组织中更高的管理职位进入管理层或者成为总经理这样能够整合其他人的工作并对组织中某项工作的绩效承担责任你最适合的职业类型是能凭借自己的能力和冒险愿望扫除障碍的创业型企业一旦你认为时机成熟就会尽快开始自己的创业历程你希望自己的企业有非常高的现金收入以证明你的能力
{{
evaluationData.evaluation.report.base.profession_concept
.reportTextList.description
}}
<!-- {{baseList1.reportspanList.description}} -->
</span>
<!-- <div class="report-img">
<div style="height:600rpx">
<f2 onInit="onInitChartLei"></f2>
<div id="intellect" ref="profession_concept"></div>
</div>
</div> -->
<div class="report-box1 report-box">
<div class="report-title">
{{ evaluationData.evaluation.report.base.intellect.name }}
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
{{
evaluationData.evaluation.report.base.intellect.reportTextList
.summary
}}
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
{{
evaluationData.evaluation.report.base.intellect.reportTextList
.keywords_text
}}
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
{{
evaluationData.evaluation.report.base.intellect.reportTextList
.description
}}
<!-- {{baseList1.reportspanList.description}} -->
</span>
<div id="intellect" ref="intellect"></div>
</div>
<div class="report-box4 report-box">
<div class="report-title">
职业价值观
{{
evaluationData.evaluation.report.base.profession_interest.name
}}
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
报告人的职业价值观趋向管理型和创造型
{{
evaluationData.evaluation.report.base.profession_interest
.reportTextList.summary
}}
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
报告人的职业价值观关键词运筹帷幄推陈出新
{{
evaluationData.evaluation.report.base.profession_interest
.reportTextList.keywords_text
}}
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
你最适合的职业类型是升迁到组织中更高的管理职位进入管理层或者成为总经理这样能够整合其他人的工作并对组织中某项工作的绩效承担责任你最适合的职业类型是能凭借自己的能力和冒险愿望扫除障碍的创业型企业一旦你认为时机成熟就会尽快开始自己的创业历程你希望自己的企业有非常高的现金收入以证明你的能力
{{
evaluationData.evaluation.report.base.profession_interest
.reportTextList.description
}}
<!-- {{baseList1.reportspanList.description}} -->
</span>
<!-- <div class="report-img">
<div class="item-k">
<div>{{dataList4[0][0].value}}</div>
<div><span style="width:{{leftNei}}" a:if="{{leftNei>rightNei}}"></span></div>
<div><span style="width:{{rightNei}}" a:if="{{leftNei<rightNei}}"></span></div>
<div>{{dataList4[0][1].value}}</div>
<div id="intellect" ref="profession_interest"></div>
</div>
<div class="report-box2 report-box">
<div class="report-title">
{{ evaluationData.evaluation.report.base.mbti_character.name }}
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
{{
evaluationData.evaluation.report.base.mbti_character
.reportTextList.summary
}}
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
{{
evaluationData.evaluation.report.base.mbti_character
.reportTextList.keywords_text
}}
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
{{
evaluationData.evaluation.report.base.mbti_character
.reportTextList.description
}}
<!-- {{baseList1.reportspanList.description}} -->
</span>
<dir class="report-box4-ex">
<div v-for="item in arrData" :key="item">
<p>{{item.A.factor_name}}</p>
<div class="content-ex">
<div>
<p
:style="{
width: proportion(item.A.avg_score, (item.A.avg_score-0)+(item.B.avg_score-0)),
}"
v-if="(item.A.avg_score-0)>=(item.B.avg_score-0)"
></p>
</div>
<div>
<p
v-if="(item.A.avg_score-0)<=(item.B.avg_score-0)"
:style="{
width: proportion(item.B.avg_score, (item.A.avg_score-0)+(item.B.avg_score-0)),
}"></p>
</div>
</div>
<div class="report-img">
<div class="item-k">
<div>{{dataList4[1][0].value}}</div>
<div><span style="width:{{twoLeftNei}}" a:if="{{twoLeftNei>twoRightNei}}"></span>
<p>{{item.B.factor_name}}</p>
</div>
<div><span style="width:{{twoRightNei}}" a:if="{{twoLeftNei<twoRightNei}}"></span>
</div>
<div>{{dataList4[1][1].value}}</div>
</div>
</div>
<div class="report-img">
<div class="item-k">
<div>{{dataList4[2][0].value}}</div>
<div><span style="width:{{threeLeftNei}}"
a:if="{{threeLeftNei>threeRightNei}}"></span></div>
<div><span style="width:{{threeRightNei}}"
a:if="{{threeLeftNei<threeRightNei}}"></span></div>
<div>{{dataList4[2][1].value}}</div>
</div>
</div>
<div class="report-img">
<div class="item-k">
<div>{{dataList4[3][0].value}}</div>
<div><span style="width:{{fourLeftNei}}" a:if="{{fourLeftNei>fourRightNei}}"></span>
</div>
<div><span style="width:{{fourRightNei}}"
a:if="{{fourLeftNei<fourRightNei}}"></span></div>
<div>{{dataList4[3][1].value}}</div>
</div>
</div> -->
</dir>
</div>
<div class="report-box5 report-box">
<div class="report-title">
职业价值观
{{ evaluationData.evaluation.report.base.subjects.name }}
<!-- {{baseList1.summary}} -->
</div>
<span class="report-h2">
报告人的职业价值观趋向管理型和创造型
{{
evaluationData.evaluation.report.base.subjects.reportTextList
.summary
}}
<!-- {{baseList1.reportspanList.summary}} -->
</span>
<span class="txt2">
报告人的职业价值观关键词运筹帷幄推陈出新
{{
evaluationData.evaluation.report.base.subjects.reportTextList
.keywords_text
}}
<!-- {{baseList1.reportspanList.keywords_span}} -->
</span>
<span class="report-h3">
你最适合的职业类型是升迁到组织中更高的管理职位进入管理层或者成为总经理这样能够整合其他人的工作并对组织中某项工作的绩效承担责任你最适合的职业类型是能凭借自己的能力和冒险愿望扫除障碍的创业型企业一旦你认为时机成熟就会尽快开始自己的创业历程你希望自己的企业有非常高的现金收入以证明你的能力
{{
evaluationData.evaluation.report.base.subjects.reportTextList
.description
}}
<!-- {{baseList1.reportspanList.description}} -->
</span>
<!-- <div class="report-img">
<div style="height:600rpx" a:if="{{fivebiao}}">
<f2 onInit="onInitChartLei2"></f2>
</div>
</div> -->
<div id="intellect" ref="subjects"></div>
</div>
</div>
<!-- 专业类匹配度 -->
@ -172,12 +205,11 @@
<div class="report-exponent">
<div class="exponent-title">
<div class="exponent-star">
推荐指数<span></span><span></span><span></span><span></span><span></span>
推荐指数<span></span><span></span><span></span
><span></span><span></span>
<!-- <span a:for="{{item.stars}}"></span> -->
</div>
<div class="percentage">
匹配度>90%<!-- {{item.degree}} -->
</div>
<div class="percentage">匹配度>90%<!-- {{item.degree}} --></div>
</div>
<div class="exponent-list">
<div class="exponent-item">
@ -233,12 +265,11 @@
<div class="report-exponent">
<div class="exponent-title">
<div class="exponent-star">
推荐指数<span></span><span></span><span></span><span></span><span></span>
推荐指数<span></span><span></span><span></span
><span></span><span></span>
<!-- <span a:for="{{item.stars}}"></span> -->
</div>
<div class="percentage">
匹配度>90%<!-- {{item.degree}} -->
</div>
<div class="percentage">匹配度>90%<!-- {{item.degree}} --></div>
</div>
<div class="exponent-list">
<div class="exponent-item">
@ -293,12 +324,11 @@
<div class="report-exponent">
<div class="exponent-title">
<div class="exponent-star">
推荐指数<span></span><span></span><span></span><span></span><span></span>
推荐指数<span></span><span></span><span></span
><span></span><span></span>
<!-- <span a:for="{{item.stars}}"></span> -->
</div>
<div class="percentage">
匹配度>90%<!-- {{item.degree}} -->
</div>
<div class="percentage">匹配度>90%<!-- {{item.degree}} --></div>
</div>
<div class="exponent-list">
<div class="exponent-item">
@ -339,8 +369,7 @@
<!-- {{item2.name}}
({{item2.childrenSize}}) -->
</span>
<div class="exponent-item-son">
</div>
<div class="exponent-item-son"></div>
</div>
</div>
</div>
@ -351,27 +380,246 @@
</template>
<script>
export default {
import * as echarts from "echarts";
export default {
name: "report",
data() {
return {
isScrollTop: false,
isShow:true, //
roleTType: 'student', //
}
isShow: true, //
roleTType: "student", //
evaluationData: {},
arrData:"",
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
mounted() {
this.getData();
},
methods: {
proportion(obj, max) {
console.log(obj ,max,"---")
return ((Math.abs(obj) - 0) / (max - 0)) * 100 + "%";
},
//
goPage(path) {
this.$router.push(path);
},
drawLine(dataNmae, dataNum, title) {
// domecharts
setTimeout(() => {
let myChart = echarts.init(this.$refs[title]);
//
let option = {
grid: {},
xAxis: {
data: dataNmae,
type: "category",
axisLabel: { interval: 0, rotate: 60 },
},
yAxis: {
type: "value",
},
series: [
{
data: dataNum,
type: "bar",
itemStyle: {
normal: {
label: {
show: true, //
position: "top", //
textStyle: {
//
color: "#666",
fontSize: 12,
},
},
},
},
},
],
};
myChart.setOption(option);
}, 10);
},
leidata(valueArr, indicator, title) {
console.log(valueArr, indicator);
setTimeout(() => {
let myChart = echarts.init(this.$refs[title]);
// let valueArr = [];
// let indicator = [];
// let sum = 0;
let option = {
radar: {
// shape: 'circle',
indicator: indicator,
// [
// { name: "Sales", max: 9 },
// { name: "Administration", max: 9 },
// { name: "Information Technology", max: 9 },
// { name: "Customer Support", max: 9 },
// { name: "Development", max: 9 },
// { name: "Marketing", max: 9 },
// ],
},
series: [
{
name: "Budget vs spending",
type: "radar",
data: [
{
// value: [4200, 3000, 20000, 35000, 50000, 18000],
value: valueArr,
name: "Allocated Budget",
},
],
},
],
};
myChart.setOption(option);
}, 1000);
},
getData() {
let that = this;
this.axios
.post(this.HOME + "/api/evaluation/evaluation-info", {
id: this.$route.query.id,
})
.then(function (res) {
console.log(res);
that.evaluationData = res.data.data;
let dataName = [];
let dataNun = [];
for (
let index = 0;
index <
that.evaluationData.evaluation.report.base.intellect.reportData
.length;
index++
) {
dataNun.push(
that.evaluationData.evaluation.report.base.intellect.reportData[
index
].avg_score
);
dataName.push(
that.evaluationData.evaluation.report.base.intellect.reportData[
index
].factor_name
);
}
that.drawLine(dataName, dataNun, "intellect");
let dataNamea = [];
let dataNuna = [];
for (
let index = 0;
index <
that.evaluationData.evaluation.report.base.profession_concept
.reportData.length;
index++
) {
dataNuna.push(
that.evaluationData.evaluation.report.base.profession_concept
.reportData[index].avg_score
);
dataNamea.push(
that.evaluationData.evaluation.report.base.profession_concept
.reportData[index].factor_name
);
}
that.drawLine(dataNamea, dataNuna, "profession_concept");
let dataNameb = [];
let dataNunb = [];
for (
let index = 0;
index <
that.evaluationData.evaluation.report.base.profession_interest
.reportData.length;
index++
) {
dataNunb.push(
that.evaluationData.evaluation.report.base.profession_interest
.reportData[index].avg_score
);
dataNameb.push({
name: that.evaluationData.evaluation.report.base
.profession_interest.reportData[index].factor_name,
max: 9,
});
}
that.leidata(dataNunb, dataNameb, "profession_interest");
let dataNameC = [];
let dataNunC = [];
for (
let index = 0;
index <
that.evaluationData.evaluation.report.base.subjects.reportData
.length;
index++
) {
dataNunC.push(
that.evaluationData.evaluation.report.base.subjects.reportData[
index
].avg_score
);
dataNameC.push({
name: that.evaluationData.evaluation.report.base.subjects
.reportData[index].factor_name,
max: 9,
});
}
that.leidata(dataNunC, dataNameC, "subjects");
let arrData = [
{
A: "",
B: "",
},
{
A: "",
B: "",
},
{
A: "",
B: "",
},
{
A: "",
B: "",
},
];
let arrAD= that.evaluationData.evaluation.report.base.mbti_character.reportData
// console.log((arrAD[0].factor_subgroup_id-0)-1);
for (
let index = 0;
index < arrAD.length; index++) {
if (arrData[(arrAD[index].factor_subgroup_id-0)-1].A) {
arrData[(arrAD[index].factor_subgroup_id-0)-1].B= arrAD[index]
}else{
arrData[(arrAD[index].factor_subgroup_id-0)-1].A=arrAD[index]
}
}
console.log(arrData)
that.arrData=arrData
});
},
//
eventScrollTop() {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
@ -383,7 +631,7 @@
this.isScrollTop = false;
}
}
}
},
},
destroyed() {
window.removeEventListener("scroll", this.eventScrollTop);
@ -391,15 +639,42 @@
//keep-alive
activated() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop)
window.addEventListener("scroll", this.eventScrollTop);
},
//keep-alive
deactivated() {
window.removeEventListener("scroll", this.eventScrollTop);
}
}
},
};
</script>
<style scoped>
#intellect {
width: 100%;
height: 320px;
}
.report-box4-ex > div {
display: flex;
justify-content: space-between;
align-items: center;
}
.content-ex {
width: 80%;
height: 0.5rem;
display: flex;
}
.content-ex > div {
width: 50%;
height: 100%;
}
.content-ex > div > p {
background-color: red;
width: 0px;
height: 100%;
}
.content-ex > :nth-child(1) {
display: flex;
justify-content: flex-end;
}
</style>

View File

@ -13,7 +13,7 @@
<img v-if="userData.avatar" :src="userData.avatar" />
<img v-else src="../../../assets/images/user/photo.png" />
</span>
<p v-if="userData.nick_name">{{userData.nick_name}}</p>
<p v-if="userData.nick_name">{{ userData.nick_name }}</p>
<p v-else></p>
</div>
</div>
@ -28,17 +28,21 @@
</div>
<div class="line" v-if="isReceive == 1"></div>
<ul class="student-information">
<li v-if="userData.mobile" >
<li v-if="userData.mobile">
<span
><img src="../../../assets/images/user/icon-phone.png" alt=""
/></span>
<p>手机号<em>{{userData.mobile}}</em></p>
<p>
手机号<em>{{ userData.mobile }}</em>
</p>
</li>
<li @click="goPage('/bind')" v-else >
<li @click="goPage('/bind')" v-else>
<span
><img src="../../../assets/images/user/icon-phone.png" alt=""
/></span>
<p>手机号<em>{{userData.mobile}}</em></p>
<p>
手机号<em>{{ userData.mobile }}</em>
</p>
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" />
</li>
<li @click="goPage('/info')">
@ -64,38 +68,11 @@
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" />
</div>
<ul :class="{ 'report-list': true, open: isOpen }">
<li @click="goPage('/report')">
<p>职业与专业定位整合测试融合版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>职业与专业定位整合测试融合版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>霍兰德职业兴趣测评完整版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>DISC性格测评</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>职业与专业定位整合测试融合版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>职业与专业定位整合测试融合版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>霍兰德职业兴趣测评完整版</p>
<span>2022-05-12 13:28</span>
</li>
<li @click="goPage('/report')">
<p>DISC性格测评</p>
<span>2022-05-12 13:28</span>
<li v-for="(item,index) in dataList" :key="index" @click="goPage(item.id)">
<p>{{item.title}}</p>
<span>{{item.done_at}}</span>
</li>
</ul>
<div class="feedback-btn">退出登录</div>
<tabbar :current="4"></tabbar>
@ -103,24 +80,24 @@
</template>
<script>
import tabbar from '../../../components/tabbar.vue'
export default {
import tabbar from "../../../components/tabbar.vue";
export default {
name: "expert",
components: {
tabbar
tabbar,
},
data() {
return {
centerUserData:{
mobile:""
centerUserData: {
mobile: "",
},
dataList:[],
isScrollTop: false,
isReceive: 1, //
isUse: 0, //使
isOpen: false,
userData:{
avatar: "" ,
userData: {
avatar: "",
consult_amount: 0,
create_time: "",
ding_code: "",
@ -140,17 +117,27 @@
type: 0,
unionid: "",
update_time: "",
user_code: ""
user_code: "",
},
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
this.getUserData();
this.getevaluationList()
},
methods: {
getevaluationList(){
let that=this
this.axios.post(this.HOME + "/api/evaluation/evaluation-list",{
page:"1",
size:"100",
status:""
}).then(function (res) {
that.dataList=res.data.data.list
});
},
//
toPage() {
if (this.isReceive == 1) {
@ -162,15 +149,20 @@
}
},
//
goPage(path) {
this.$router.push(path);
goPage(id) {
this.$router.push({
path: "/report",
query: {
id:id
},
});
},
//
getUserData() {
let that = this;
this.axios.post(this.HOME + "/api/user/center-info").then(function (res) {
that.userData = res.data.data;
location.centerUserData=JSON.stringify( that.userData )
location.centerUserData = JSON.stringify(that.userData);
});
},
//
@ -206,8 +198,8 @@
</script>
<style scoped>
.banner,
.banner img {
.banner,
.banner img {
width: 100%;
}
}
</style>