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"
@ -37,10 +38,10 @@
"parser": "babel-eslint"
},
"rules": {
"no-console": "off",
"no-debugger": "off",
"no-mixed-spaces-and-tabs": "off"
}
"no-console": "off",
"no-debugger": "off",
"no-mixed-spaces-and-tabs": "off"
}
},
"browserslist": [
"> 1%",

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,9 +12,8 @@ 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('/');
return config
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,20 +93,24 @@ export default {
},
setQuestionEV(key) {
let that = this;
this.axios
.post(this.HOME + "/api/evaluation/answer-question", {
id: this.lastquestions.list[this.num].id,
option_key: key,
})
.then(function () {
that.num++;
if (that.num >= 117) {
console.log(that.num)
that.$router.push({
path: "/ucenter",
});
}
});
if (this.stateBtn) {
this.stateBtn = false;
this.axios
.post(this.HOME + "/api/evaluation/answer-question", {
id: this.lastquestions.list[this.num].id,
option_key: key,
})
.then(function () {
that.num++;
that.stateBtn = true;
if (that.num >= 117) {
console.log(that.num);
that.$router.push({
path: "/ucenter",
});
}
});
}
},
destroyed() {
window.removeEventListener("scroll", this.eventScrollTop);

View File

@ -1,69 +1,84 @@
<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-title">意见与反馈</div>
</div>
<div class="info-bg pull-content">
<div class="feedback-msg">
<textarea rows="" cols="" placeholder="请输入您反馈的内容"></textarea>
</div>
</div>
<div class="bind-btn">提交</div>
</div>
<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-title">意见与反馈</div>
</div>
<div class="info-bg pull-content">
<div class="feedback-msg">
<textarea v-model="content" rows="" cols="" placeholder="请输入您反馈的内容"></textarea>
</div>
</div>
<div @click="btnFeedback()" class="bind-btn">提交</div>
</div>
</template>
<script>
export default {
name: "feedback",
data() {
return {
isScrollTop: false,
}
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
mounted() {
},
computed: {
},
methods: {
//
eventScrollTop() {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
this.isScrollTop = true;
}
} else {
if (!this.isScroll) {
this.isScroll = true;
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);
}
}
export default {
name: "feedback",
data() {
return {
isScrollTop: false,
content: "",
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
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;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
this.isScrollTop = true;
}
} else {
if (!this.isScroll) {
this.isScroll = true;
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>
</style>

View File

@ -1,70 +1,96 @@
<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-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>
</ul>
</div>
<div class="bind-btn">提交</div>
</div>
<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-title">个人信息</div>
</div>
<div class="info-bg pull-content">
<ul class="phone-info">
<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>
</div>
</template>
<script>
export default {
name: "info",
data() {
return {
isScrollTop: false,
}
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
mounted() {
},
computed: {
},
methods: {
//
eventScrollTop() {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
this.isScrollTop = true;
}
} else {
if (!this.isScroll) {
this.isScroll = true;
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);
}
}
export default {
name: "info",
data() {
return {
isScrollTop: false,
};
},
created() {
this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop);
},
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;
if (scrollTop >= 5) {
if (this.isScroll) {
this.isScroll = false;
this.isScrollTop = true;
}
} else {
if (!this.isScroll) {
this.isScroll = true;
this.isScrollTop = false;
}
}
},
},
};
</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>

File diff suppressed because it is too large Load Diff

View File

@ -11,9 +11,9 @@
<div class="my-photo">
<span>
<img v-if="userData.avatar" :src="userData.avatar" />
<img v-else src="../../../assets/images/user/photo.png" />
<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,93 +68,76 @@
<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>
</div>
<tabbar :current="4"></tabbar>
</div>
</template>
<script>
import tabbar from '../../../components/tabbar.vue'
export default {
name: "expert",
components: {
tabbar
},
import tabbar from "../../../components/tabbar.vue";
export default {
name: "expert",
components: {
tabbar,
},
data() {
return {
centerUserData:{
mobile:""
},
centerUserData: {
mobile: "",
},
dataList:[],
isScrollTop: false,
isReceive: 1, //
isUse: 0, //使
isOpen: false,
userData:{
avatar: "" ,
consult_amount: 0,
create_time: "",
ding_code: "",
expert_id: 0,
gender: 0,
id: 31,
im_uid: "",
lat: "",
lng: "",
login_time: "",
mobile: "",
nick_name: "",
open_id: "",
real_name: "",
tags: "",
tel: "",
type: 0,
unionid: "",
update_time: "",
user_code: ""
userData: {
avatar: "",
consult_amount: 0,
create_time: "",
ding_code: "",
expert_id: 0,
gender: 0,
id: 31,
im_uid: "",
lat: "",
lng: "",
login_time: "",
mobile: "",
nick_name: "",
open_id: "",
real_name: "",
tags: "",
tel: "",
type: 0,
unionid: "",
update_time: "",
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 {
width: 100%;
}
.banner,
.banner img {
width: 100%;
}
</style>