咨询师端接口调用

master
Lee-1203 2022-03-05 17:09:34 +08:00
parent aec17529bd
commit da8aee0850
6 changed files with 952 additions and 1082 deletions

View File

@ -1695,7 +1695,7 @@ textarea::-webkit-input-placeholder{
color: #3844ce; color: #3844ce;
} }
.report-list>li span{ .report-list>li span{
width: 2.1rem; width: 2.5rem;
font-size: .24rem; font-size: .24rem;
text-align: right; text-align: right;
color: #999999; color: #999999;
@ -1909,11 +1909,11 @@ textarea::-webkit-input-placeholder{
border-bottom: .02rem solid #333fc9; border-bottom: .02rem solid #333fc9;
} }
.exponent-item-son{ .exponent-item-son{
margin-top: .15rem; margin-top: .25rem;
} }
.exponent-item-son span{ .exponent-item-son span{
display: block; display: block;
font-size: .28rem; font-size: .26rem;
line-height: 1.2; line-height: 1.2;
margin: .15rem 0; margin: .15rem 0;
text-align: center; text-align: center;

View File

@ -8,22 +8,22 @@
<div class="consultant pull-content"> <div class="consultant pull-content">
<div class="consultant-photo"> <div class="consultant-photo">
<div> <div>
<span><img src="../../assets/images/user/photo.png"></span> <span><img :src="host + experObj.avatar"></span>
<p> <p>
<span><em>姓名</em>李四</span> <span><em>姓名</em>{{experObj.name}}</span>
<span><em>职称</em>高级咨询师</span> <span><em>职称</em>{{experObj.tags_text}}</span>
<span><em>电话</em>18683958573</span> <span><em>电话</em>{{experObj.phone}}</span>
</p> </p>
</div> </div>
<p @click="editInformation()"></p> <p @click="editInformation()"></p>
</div> </div>
<div class="consultant-info"> <div class="consultant-info">
<p><span>重点服务区域</span>北京上海</p> <p><span>重点服务区域</span>{{experObj.service_area_text}}</p>
<p><span>区域1的服务价格</span>3000-12000</p> <p><span>区域1的服务价格</span>{{experObj.price_area_a}}</p>
<p><span>区域2的服务价格</span>3000-12000</p> <p><span>区域2的服务价格</span>{{experObj.price_area_b}}</p>
<p><span>区域3的服务价格</span>3000-12000</p> <p><span>区域3的服务价格</span>{{experObj.price_area_c}}</p>
<p><span>其他区域的服务价格</span>3000-12000</p> <p><span>其他区域的服务价格</span>{{experObj.price_area_other}}</p>
<p><span>服务口号</span>教会孩子规划人生旅程重要的是帮助TA构建终身学习的生活态度</p> <p><span>服务口号</span>{{experObj.slogan}}</p>
</div> </div>
<div class="case-administer"> <div class="case-administer">
<h3>案例管理</h3> <h3>案例管理</h3>
@ -36,47 +36,14 @@
<span>主案例</span> <span>主案例</span>
<span>操作</span> <span>操作</span>
</li> </li>
<li> <li v-for="(item,index) in expertCase" :key="index">
<span><img src="../../assets/images/home/expert/detail.jpg" alt=""></span> <span><img :src="host + item.cover"></span>
<span><p>完美的与湖北工业相遇完美的与湖北业相遇</p></span> <span><p>{{item.title}}</p></span>
<span></span> <span>{{item.is_main==1?"":"否"}}</span>
<span> <span>
<ins> <ins>
<em @click="editCase()"></em> <em @click="editCase(index)"></em>
<em>删除</em> <em @click="deleteCase(item.id)"></em>
</ins>
</span>
</li>
<li>
<span><img src="../../assets/images/home/expert/detail.jpg" alt=""></span>
<span><p>完美的与湖北工业相遇</p></span>
<span></span>
<span>
<ins>
<em>编辑</em>
<em>删除</em>
</ins>
</span>
</li>
<li>
<span><img src="../../assets/images/home/expert/detail.jpg" alt=""></span>
<span><p>完美的与湖北工业相遇</p></span>
<span></span>
<span>
<ins>
<em>编辑</em>
<em>删除</em>
</ins>
</span>
</li>
<li>
<span><img src="../../assets/images/home/expert/detail.jpg" alt=""></span>
<span><p>完美的与湖北工业相遇</p></span>
<span></span>
<span>
<ins>
<em>编辑</em>
<em>删除</em>
</ins> </ins>
</span> </span>
</li> </li>
@ -91,25 +58,98 @@
data(){ data(){
return { return {
isScrollTop: false, isScrollTop: false,
id: '',
page: 1,//
size: 10,//
is_main: -1,//
allowLoad:true,//
experObj: [],//
expertCase: [],//
} }
}, },
created() { created() {
this.isScroll = true; this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop); window.addEventListener("scroll", this.eventScrollTop);
}, },
mounted() {
this.checkExperInfo();
},
methods:{ methods:{
//
checkExperInfo(){
let that = this;
this.axios
.post(this.HOME + "/api/user/center-info", {
})
.then(function(res) {
console.log(res,123)
that.experObj = res.data.data.expert
// that.id = that.experObj.id;
//
that.getExpertCase(that.id)
});
},
//
getExpertCase(id){
let that = this;
let anId = id;
this.axios
.post(this.HOME + "/api/expert/get-expert-case-list", {
page: that.page,
size: that.size,
expert_id: anId,
is_main: that.is_main
})
.then(function(res) {
let list = res.data.data.list;
let newArray = [];
that.expertCase = [];
list.forEach(item=>{
let obj = {
id:item.id,
cover: item.cover,
title: item.title,
result_remarks: item.result_remarks,
location_remarks: item.location_remarks,
other_remarks: item.other_remarks,
account_remarks: item.account_remarks,
is_main:item.is_main,
student_name:item.student_name
}
newArray.push(obj);
})
that.expertCase = that.expertCase.concat(newArray);
});
},
//
editCase(index){
let editIndex = index;
localStorage.anliObj = JSON.stringify(editIndex);
this.$router.push('/case');
},
//
deleteCase(idk){
let that = this;
let anId = idk;
this.axios
.post(this.HOME + "/api/expert/get-expert-case-list", {
ids:anId
})
.then(function(res) {
console.log(res,2525)
alert('删除成功');
that.getExpertCase(that.id);
});
},
// //
editInformation(){ editInformation(){
this.$router.push('/edit'); this.$router.push('/edit');
}, },
//
addCase(){
this.$router.push('/case');
},
//
editCase(){
this.$router.push('/case');
},
// //
goPage(path){ goPage(path){
this.$router.push(path); this.$router.push(path);

View File

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

View File

@ -1,96 +1,133 @@
<template> <template>
<div class="content bind-content"> <div class="content bind-content">
<!-- 头部 --> <!-- 头部 -->
<div :class="{ header: true, 'scroll white': isScrollTop, white: true }"> <div :class="{ header: true, 'scroll white': isScrollTop, white: true }">
<div class="back" @click="$router.go(-1)"> <div class="back" @click="$router.go(-1)">
<img src="../../../assets/images/home/expert/back.png" alt="" /> <img src="../../../assets/images/home/expert/back.png" alt="" />
</div> </div>
<div class="header-title">个人信息</div> <div class="header-title">个人信息</div>
</div> </div>
<div class="info-bg pull-content"> <div class="info-bg pull-content">
<ul class="phone-info"> <ul class="phone-info">
<li> <li>
<span>头像</span> <span>头像</span>
<p class="ps"> <p class="ps">
<input class="inputB" @change="imgIny($event)" type="file" /> <input class="inputB" @change="imgIny($event)" type="file" />
<img src="../../../assets/images/user/photo.png" /> <img v-if="myAvatar" :src="host + myAvatar">
</p> <img v-else-if="userDataAll.avatar" :src="host + userDataAll.avatar">
</li> <img v-else src="../../../assets/images/user/photo.png" />
<li> </p>
<span>昵称</span </li>
><input type="text" value="" placeholder="请输入昵称" /> <li>
</li> <span>昵称</span><input type="text" v-model="nickName" value="" placeholder="请输入昵称" />
</ul> </li>
</div> </ul>
<div class="bind-btn">提交</div> </div>
</div> <div class="bind-btn" @click="setInfo()"></div>
</div>
</template> </template>
<script> <script>
export default { export default {
name: "info", name: "info",
data() { data() {
return { return {
isScrollTop: false, isScrollTop: false,
}; myAvatar: '',
}, nickName:'',
created() { userDataAll:[]
this.isScroll = true; };
window.addEventListener("scroll", this.eventScrollTop); },
}, created() {
mounted() {}, this.isScroll = true;
computed: {}, window.addEventListener("scroll", this.eventScrollTop);
methods: { this.userDataAll = (JSON.parse(localStorage.getItem("centerUserData")));
imgIny(e) { this.nickName = this.userDataAll.nick_name;
const files = e.target.files; },
console.log(files[0]); mounted() {},
console.log({ image: files[0] }); computed: {},
var fromdata = new FormData(); methods: {
fromdata.append("image", files[0]); imgIny(e) {
this.axios let that = this;
.post(this.HOME + "/api/file/upload/image", fromdata, { const files = e.target.files;
headers: { console.log(files[0]);
"Content-Type": "multipart/form-data", console.log({
}, image: files[0]
}) });
.then(function (res) { var fromdata = new FormData();
console.log(res); fromdata.append("image", files[0]);
}) this.axios
.catch(function (error) { .post(this.HOME + "/api/file/upload/image", fromdata, {
console.log(error); headers: {
}); "Content-Type": "multipart/form-data",
}, },
// })
eventScrollTop() { .then(function(res) {
let scrollTop = that.myAvatar = res.data.data.src;
document.body.scrollTop || document.documentElement.scrollTop; console.log(that.myAvatar, 123);
if (scrollTop >= 5) { })
if (this.isScroll) { .catch(function(error) {
this.isScroll = false; console.log(error);
this.isScrollTop = true; });
} },
} else {
if (!this.isScroll) { //
this.isScroll = true; setInfo(){
this.isScrollTop = false; let that = this;
} this.axios
} .post(this.HOME + "/api/user/edit-base-info", {
}, nick_name: that.nickName,
}, avatar: that.myAvatar
}; })
.then(function(res) {
that.getUserData();
that.$router.push('/ucenter');
console.log(res)
});
},
//
getUserData() {
let that = this;
this.axios.post(this.HOME + "/api/user/center-info").then(function (res) {
that.userData = res.data.data;
localStorage.centerUserData = JSON.stringify(res.data.data);
});
},
//
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> </script>
<style scoped> <style scoped>
.inputB { .inputB {
width: 1.1rem; width: 1.1rem;
height: 1.1rem; height: 1.1rem;
position: absolute; position: absolute;
left: 0px; left: 0px;
z-index: 5; z-index: 5;
top: 0px; top: 0px;
opacity: 0; opacity: 0;
} }
.ps {
position: relative; .ps {
} position: relative;
}
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -1,205 +1,206 @@
<template> <template>
<div class="content my-content main-content"> <div class="content my-content main-content">
<!-- 头部 --> <!-- 头部 -->
<div :class="{ header: true, 'scroll white': isScrollTop }"> <div :class="{ header: true, 'scroll white': isScrollTop }">
<div class="back"></div> <div class="back"></div>
<div class="header-title">我的</div> <div class="header-title">我的</div>
</div> </div>
<!-- 轮播图 --> <!-- 轮播图 -->
<div class="banner my-banner"> <div class="banner my-banner">
<img src="../../../assets/images/user/banner.jpg" alt="" /> <img src="../../../assets/images/user/banner.jpg" alt="" />
<div class="my-photo"> <div class="my-photo">
<span> <span>
<img v-if="userData.avatar" :src="userData.avatar" /> <img v-if="userData.avatar" :src="host + userData.avatar" />
<img v-else src="../../../assets/images/user/photo.png" /> <img v-else src="../../../assets/images/user/photo.png" />
</span> </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> <p v-else></p>
</div> </div>
</div> </div>
<!-- 免费咨询卡 --> <!-- 免费咨询卡 -->
<div class="user-receive" @click="toPage()" v-if="isUse == 0"> <div class="user-receive" @click="toPage()" v-if="isUse == 0">
<img src="../../../assets/images/user/card.png" alt="" /> <img src="../../../assets/images/user/card.png" />
<div class="receive-txt"> <div class="receive-txt">
<span class="use-btn" v-if="isReceive == 1">使</span> <span class="use-btn" v-if="isReceive == 1">使</span>
<span class="receive-btn" v-if="isReceive == 0"></span> <span class="receive-btn" v-if="isReceive == 0"></span>
<p>有效期2022.2.1-2022.2.15</p> <p>有效期2022.2.1-2022.2.15</p>
</div> </div>
</div> </div>
<div class="line" v-if="isReceive == 1"></div> <div class="line" v-if="isReceive == 1"></div>
<ul class="student-information"> <ul class="student-information">
<li v-if="userData.mobile"> <li v-if="userData.mobile">
<span <span><img src="../../../assets/images/user/icon-phone.png" /></span>
><img src="../../../assets/images/user/icon-phone.png" alt="" <p>
/></span> 手机号<em>{{ userData.mobile }}</em>
<p> </p>
手机号<em>{{ userData.mobile }}</em> </li>
</p> <li @click="goPage('/bind')" v-else>
</li> <span><img src="../../../assets/images/user/icon-phone.png" /></span>
<li @click="goPage('/bind')" v-else> <p>
<span 手机号<em></em>
><img src="../../../assets/images/user/icon-phone.png" alt="" </p>
/></span> <img src="../../../assets/images/home/expert/arrow-right.png" />
<p> </li>
手机号<em>{{ userData.mobile }}</em> <li @click="goPage('/info')">
</p> <span><img src="../../../assets/images/user/icon-student.png" /></span>
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" /> <p>考生信息</p>
</li> <img src="../../../assets/images/home/expert/arrow-right.png" />
<li @click="goPage('/info')"> </li>
<span </ul>
><img src="../../../assets/images/user/icon-student.png" alt="" <div class="feedback" @click="goPage('/feedback')">
/></span> <span><img src="../../../assets/images/user/icon-feedback.png" /></span>
<p>考生信息</p> <p>意见和反馈</p>
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" /> <img src="../../../assets/images/home/expert/arrow-right.png" />
</li> </div>
</ul> <div :class="{ 'my-report': true, open: isOpen }" @click="isOpen = !isOpen">
<div class="feedback" @click="goPage('/feedback')"> <span><img src="../../../assets/images/user/icon-report.png" alt="" /></span>
<span <p>我的报告</p>
><img src="../../../assets/images/user/icon-feedback.png" alt="" <img src="../../../assets/images/home/expert/arrow-right.png" alt="" />
/></span> </div>
<p>意见和反馈</p> <ul :class="{ 'report-list': true, open: isOpen }">
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" /> <li v-for="(item,index) in reportData" :key="index" @click="goReport(item.id)">
</div> <p>{{item.title}}</p>
<div :class="{ 'my-report': true, open: isOpen }" @click="isOpen = !isOpen"> <span>{{item.done_at}}</span>
<span </li>
><img src="../../../assets/images/user/icon-report.png" alt=""
/></span>
<p>我的报告</p>
<img src="../../../assets/images/home/expert/arrow-right.png" alt="" />
</div>
<ul :class="{ 'report-list': true, open: isOpen }">
<li v-for="(item,index) in dataList" :key="index" @click="goPage(item.id)">
<p>{{item.title}}</p>
<span>{{item.done_at}}</span>
</li>
</ul> </ul>
<div class="feedback-btn">退出登录</div> <div class="feedback-btn">退出登录</div>
<tabbar :current="4"></tabbar> <tabbar :current="4"></tabbar>
</div> </div>
</template> </template>
<script> <script>
import tabbar from "../../../components/tabbar.vue"; import tabbar from "../../../components/tabbar.vue";
export default { export default {
name: "expert", name: "expert",
components: { components: {
tabbar, tabbar,
}, },
data() { data() {
return { return {
centerUserData: { centerUserData: {
mobile: "", mobile: "",
}, },
dataList:[], reportData: [],
isScrollTop: false, isScrollTop: false,
isReceive: 1, // isReceive: 1, //
isUse: 0, //使 isUse: 0, //使
isOpen: false, isOpen: false,
userData: { userData: {
avatar: "", avatar: "",
consult_amount: 0, consult_amount: 0,
create_time: "", create_time: "",
ding_code: "", ding_code: "",
expert_id: 0, expert_id: 0,
gender: 0, gender: 0,
id: 31, id: 31,
im_uid: "", im_uid: "",
lat: "", lat: "",
lng: "", lng: "",
login_time: "", login_time: "",
mobile: "", mobile: "",
nick_name: "", nick_name: "",
open_id: "", open_id: "",
real_name: "", real_name: "",
tags: "", tags: "",
tel: "", tel: "",
type: 0, type: 0,
unionid: "", unionid: "",
update_time: "", update_time: "",
user_code: "", user_code: "",
}, },
}; };
}, },
created() { created() {
this.isScroll = true; this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop); window.addEventListener("scroll", this.eventScrollTop);
this.getUserData(); this.getUserData();
this.getevaluationList() this.getevaluationList()
}, },
methods: { methods: {
getevaluationList(){ //
let that=this getevaluationList() {
this.axios.post(this.HOME + "/api/evaluation/evaluation-list",{ let that = this
page:"1", this.axios.post(this.HOME + "/api/evaluation/evaluation-list", {
size:"100", page: "1",
status:"" size: "100",
}).then(function (res) { status: ""
that.dataList=res.data.data.list }).then(function(res) {
}); that.reportData = res.data.data.list;
}, console.log(that.reportData,555)
// });
toPage() { },
if (this.isReceive == 1) {
this.$router.push("/expert"); //
} else if (this.isReceive == 0) { toPage() {
this.$router.push("/information"); if (this.isReceive == 1) {
} else { this.$router.push("/expert");
return false; } else if (this.isReceive == 0) {
} this.$router.push("/information");
}, } else {
// return false;
goPage(id) { }
this.$router.push({ },
path: "/report",
query: { //
id:id goPage(path) {
}, this.$router.push(path)
}); },
},
// //
getUserData() { goReport(id) {
let that = this; this.$router.push({
this.axios.post(this.HOME + "/api/user/center-info").then(function (res) { path: "/report",
that.userData = res.data.data; query: {
localStorage.centerUserData = JSON.stringify(res.data.data); id: id
}); },
}, });
// },
eventScrollTop() {
let scrollTop = //
document.body.scrollTop || document.documentElement.scrollTop; getUserData() {
if (scrollTop >= 5) { let that = this;
if (this.isScroll) { this.axios.post(this.HOME + "/api/user/center-info").then(function(res) {
this.isScroll = false; that.userData = res.data.data;
this.isScrollTop = true; localStorage.centerUserData = JSON.stringify(res.data.data);
} });
} else { },
if (!this.isScroll) {
this.isScroll = true; //
this.isScrollTop = false; eventScrollTop() {
} let scrollTop =
} document.body.scrollTop || document.documentElement.scrollTop;
}, if (scrollTop >= 5) {
}, if (this.isScroll) {
destroyed() { this.isScroll = false;
window.removeEventListener("scroll", this.eventScrollTop); this.isScrollTop = true;
}, }
//keep-alive } else {
activated() { if (!this.isScroll) {
this.isScroll = true; this.isScroll = true;
window.addEventListener("scroll", this.eventScrollTop); this.isScrollTop = false;
}, }
//keep-alive }
deactivated() { },
window.removeEventListener("scroll", this.eventScrollTop); },
}, 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> </script>
<style scoped> <style scoped>
.banner, .banner,
.banner img { .banner img {
width: 100%; width: 100%;
} }
</style> </style>