洛阳学员端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

229 lines
5.5 KiB

<template>
<view class="pageBgImg">
<topNavbar title="评价"></topNavbar>
<evaluateItem :info="schoolInfo" key="1" v-show="showSchool" @updatedForm="updatedSchoolInfo"/>
<evaluateItem :info="coachInfo" key="2" @updatedForm="updatedCoachInfo"/>
<view class="btnBox">
<view class="btnBg" @click="submintFn" :class="{active: btnActive}">提交</view>
</view>
</view>
</template>
<script>
import evaluateItem from './comp/evaluateItem'
import { getStudentinfo, addSchoolComment,addCoachComment } from '@/config/api.js'
import school from '../../../store/modules/school'
export default {
components: {
evaluateItem
},
data() {
return {
checked: false,
info: {},
schoolInfo: {},
coachInfo: {},
subject: '',
showSchool: true,
coachType: '', //1.教练 2.模拟教练 3.模拟器老师
}
},
onLoad(options) {
if(options.tit) {
this.tit = options.tit
this.showSchool = false
}
if(options.coachType) this.coachType = options.coachType
this.subject = options.subject
this.getStudentinfoFn()
},
computed: {
btnActive() {
let {schoolInfo, coachInfo} = this
let num1 = schoolInfo.schoolLevel + schoolInfo.qualityLevel + schoolInfo.teachLevel + schoolInfo.serviceLevel
let num2 = coachInfo.qualityLevel + coachInfo.teachLevel + coachInfo.serviceLevel
if(this.subject==2&&num1&&num2) {
return true
}else if(this.subject!=2&&num2){
return true
}else {
return false
}
}
},
methods: {
updatedCoachInfo(val) {
this.coachInfo = val
},
updatedSchoolInfo(val) {
this.schoolInfo = val
},
initFrom() {
this.schoolInfo = {
tit: '您对驾校满意吗?',
school: 1,
"schoolId": 8750,
"schoolName": "",
"stars": 0,
"studentId": '',
"studentIdcard": "",
"studentPhone": "",
"serviceLevel": 0,
"schoolLevel": 0,
"qualityLevel": 0,
"teachLevel": 0,
"subject": 0,
"description": "",
"images": "",
"videoUrl": "",
"anonymity": 2,
"userId": 0,
imgArr: [],
photoPath: this.vuex_userInfo.schoolPhoto,
coachType: 1
}
this.coachInfo = {
tit: '您对教练满意吗?',
"schoolId": 8750,
"stars": 0,
"studentId": '',
"studentIdcard": "",
"studentPhone": "",
"schoolInfo": 0,
"schoolLevel": 0,
"qualityLevel": 0,
"serviceLevel": 0,
"teachLevel": 0,
"subject": 0,
"description": "",
"images": "",
"videoUrl": "",
"anonymity": 2,
"userId": 0,
coachName: '',
imgArr: [],
photoPath: this.vuex_userInfo.coachPhoto,
coachType: 1
}
if(this.tit=='模拟器老师') {
this.coachInfo.tit = '您对模拟器老师满意吗?'
}
if(this.tit=='考场模拟老师') {
this.coachInfo.tit = '您对考场模拟老师满意吗?'
}
this.coachInfo.subject = this.schoolInfo.subject = this.subject
this.coachInfo.userId = this.schoolInfo.userId = this.$store.state.user.vuex_loginInfo.userId
this.coachInfo.studentPhone = this.vuex_userInfo.studentPhone
this.coachInfo.schoolId = this.schoolInfo.schoolId = this.info.schoolId
this.coachInfo.schoolName = this.schoolInfo.schoolName = this.info.schoolName
this.coachInfo.coachName = this.info.coachName
this.coachInfo.coachId = this.info.coachId
},
// 获取用户驾校信息
async getStudentinfoFn() {
const {data: res} = await getStudentinfo({id: this.$store.state.user.vuex_loginInfo.userId})
this.info = res
this.initFrom()
},
async submintFn() {
if(this.coachInfo.imgArr.length) {
this.coachInfo.images = this.coachInfo.imgArr.join(',')
}
if(this.schoolInfo.imgArr.length) {
this.schoolInfo.images = this.schoolInfo.imgArr.join(',')
}
let schoolScore = [this.schoolInfo.serviceLevel,this.schoolInfo.schoolLevel,this.schoolInfo.teachLevel,this.schoolInfo.qualityLevel].some(item=>item*1>0)
let coachInfoScore = [this.coachInfo.serviceLevel,this.coachInfo.teachLevel,this.coachInfo.qualityLevel].some(item=>item*1>0)
if(this.subject==2&&!schoolScore) return this.$u.toast('请对驾校评分')
if(!coachInfoScore) return this.$u.toast('请对教练评分')
const res = await addSchoolComment(this.schoolInfo)
const res2 = await addCoachComment(this.coachInfo)
this.initFrom()
this.$u.toast('评价成功')
setTimeout(()=>{
this.$goPage('/pages/mineEntry/myEvaluate/myEvaluate')
},1500)
}
}
}
</script>
<style lang="scss" scoped>
@import '../../../common/css/textareaBg.scss';
.btnBox {
padding-bottom: 76rpx;
}
.btnBg {
margin: 90rpx auto 0 auto;
width: 396rpx;
opacity: 0.5;
&.active {
opacity: 1;
}
}
.textareaBg {
margin-top: 22rpx;
}
.card {
padding: 28rpx;
.top_row {
display: flex;
align-items: center;
padding-bottom: 24rpx;
border-bottom: 2rpx solid #E8E9EC;
justify-content: space-between;
.tit {
font-weight: 600;
color: #333333;
font-size: 32rpx;
}
}
.user_row {
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
.avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
overflow: hidden;
}
.name {
font-size: 28rpx;
font-weight: 500;
padding-left: 26rpx;
}
}
.star_row {
padding: 14rpx 0;
display: flex;
align-items: center;
.lab {
font-size: 28rpx;
font-weight: 500;
padding-right: 32rpx;
}
.star {}
}
}
</style>