ReleaseEvaluate.vue 4.27 KB
<template>
  <div class="releaseEvaluate">
    <div class="btns">
      <span @click="AddEvaluation">发布</span>
    </div>
    <div class="base">
      <img :src="courseInfo.coverUrl" alt="" />
      <p>{{ courseInfo.course_name }}</p>
    </div>
    <div class="cont">
      <div class="item">
        <textarea v-model="content" name="" id="" cols="30" rows="10" placeholder="结束研学之旅后,~"></textarea>
        <p>评论至少15字</p>
      </div>
    </div>
    <div class="imgs">
      <img :src="n.imgUrl" alt="" v-for="(n, i) in imgsrc" :key="i" />
      <div class="selectImg">
        <imgCut @callback="callback" :width="200" :height="200">
          <van-icon name="plus" />
        </imgCut>
      </div>
    </div>
    <div class="box oh">
      <span class="fl">课程评分</span>
      <div class="fr">
        <span><van-rate v-model="starsCourseNum" void-icon="star" void-color="#eee"/></span><span>{{ starsCourseNum }}.0</span>
      </div>
    </div>
    <div class="box oh">
      <span class="fl">基地评分</span>
      <div class="fr">
        <span><van-rate v-model="starsBaseNum" void-icon="star" void-color="#eee"/></span><span>{{ starsBaseNum }}.0</span>
      </div>
    </div>
  </div>
</template>

<script>
import { imgCut } from 'vue-imgcut'
export default {
  data() {
    return {
      starsBaseNum: 1,
      starsCourseNum: 1,
      userInfo: '',
      courseInfo: '',
      content: '',
      imgsrc: [],
    }
  },
  components: {
    imgCut,
  },
  created() {
    var userInfo = localStorage.getItem('userInfo')
    if (userInfo) {
      this.userInfo = JSON.parse(userInfo)
    }
    var courseInfo = localStorage.getItem('YXNowCourse')
    if (courseInfo) {
      this.courseInfo = JSON.parse(courseInfo)
    }
  },
  methods: {
    AddEvaluation() {
      var that = this
      this.$toast.loading({
        message: '请求中...',
      })
      this.http
        .AddEvaluation({
          baseId: this.courseInfo.baseId,
          title: this.title,
          evaluation: this.content,
          courseId: this.courseInfo.id,
          userId: this.userInfo.centerNo,
          imgList: this.imgsrc,
          courseScore: this.starsCourseNum,
          baseScore: this.starsBaseNum,
        })
        .then(function(res) {
          that.$toast.clear()
          if (res.status == 1) {
            that.$toast.success('发送成功')
            setTimeout(function() {
              that.$router.push({ path: '/Foot', query: { tabId: 1 } })
            }, 1000)
          }
        })
    },
    callback(img) {
      this.imgsrc.push({
        imgUrl: img,
      })
    },
  },
}
</script>

<style lang="stylus" scoped>
.releaseEvaluate{
	padding 40px
	box-sizing border-box
	.btns{
		text-align right
		span{
			display inline-block
			padding 6px 10px
			width 100px
			text-align center
			margin-left 10px
			border-radius 100px
			border 2px solid #ccc
			font-size 1.4rem
		}
		span:last-child{
			background-color #19D075
			color white
			border none
		}
	}
	.cont{
		input{
			border none
			width 100%
			height 76px
			line-height 76px
			font-size 1.4rem
		}
		textarea{
			width 100%
			border none
			font-size 1.2rem
		}
		p{
			font-size 1.2rem
			text-align right
			color #909090
			span{
				color #09CE6C
			}
		}
	}
	.imgs{
		padding 40px 0
		img:first-child::after{
			content '封面图片'
			position absolute
			bottom 0
			left 0
			right 0
			background-color rgba(0,0,0,.5)
			color white
			font-size 1.2rem
			padding 6px
			z-index 1000
		}
		img{
			position relative
			display inline-block
			vertical-align top
			width 100px
			height 100px
			border-radius 10px
			margin-right 20px
		}
		.selectImg{
			display inline-block
			vertical-align top
			width 100px
			height 100px
			text-align center
			line-height 100px
			border-radius 10px
			border 2px solid #eee
			font-size 2rem
			color #eee
		}
	}
	.base{
		padding-left 100px
		box-sizing border-box
		position relative
		color #09CE6D
		margin 60px 0
		p{
			word-break: break-all;
			text-overflow: ellipsis;
			display: -webkit-box;
			-webkit-box-orient: vertical;
			font-size 1.2rem
			-webkit-line-clamp: 1;
			overflow: hidden;
		}

		img{
			width 80px
			height 80px
			border-radius 10px
			position absolute
			left 0
			top -30px
		}

	}
	.box{
		padding 20px 0
		font-size 1.6rem
	}
}
</style>