funBlock.vue 5.77 KB
<template>
    <div>
      <el-row :gutter="40">
        <el-col :span="12">
          <div style="max-height: 800px;overflow: auto;max-width: 800px">
            <video-upload :formData="formData.fun"/>
          </div>
        </el-col>
        <el-col :span="12">
          <div :style="{backgroundImage:`url(${background})`}" class="view">
          <!--视频显示-->
          <div class="view-content" v-if="!formData.fun.type && !type">
            <img :src="luolaUrl" class="luola"/>
            <img :src="luolaComing" class="luolacoming"/>
            <div v-for="data in formData.fun.video" class="video-block">
              <video :src="data.url" controls></video>
            </div>
            <div class="tips-block" v-if="formData.fun.change">
              <div class="active">视频教学</div>
              <div @click="type=true">音频教学</div>
            </div>
          </div>
          <!--音频显示-->
          <div class="view-content" v-if="formData.fun.type || type">
            <div v-if="formData.fun.audio[0]">
              <img :src="formData.fun.audio[0].image" class="audio-img">
              <audio :src="formData.fun.audio[0].url"></audio>
              <div class="title-block">
                <div class="title">
                  {{formData.fun.audio[0].title}}
                </div>
                <div class="tips">
                  {{formData.fun.audio[0].tips}}
                </div>
              </div>
              <div class="range-block">
                <input type="range" v-model="range" :style="{backgroundSize:`${range}% 100%`}"/>
                <div>
                  <img :src="playAudio" class="play-btn"/>
                </div>
              </div>
            </div>
            <div class="tips-block" v-if="formData.play.change">
              <div @click="type = false">视频教学</div>
              <div class="active">音频教学</div>
            </div>
          </div>
        </div>
        </el-col>
      </el-row>
    </div>
</template>

<script>
  import background from '../../assets/mould/funBlock.png'
  import videoUpload from '../textarea/videoUpload'
  import luolaUrl from '../../assets/mould/playLuola.png'
  import luolaComing from '../../assets/mould/luoLacoming.png'
  import playAudio from '../../assets/mould/playAudio.png'
    export default {
        name: "funBlock",
      props:[
        'formData'
      ],
      data(){
        return{
          background:background,
          luolaUrl:luolaUrl,
          luolaComing:luolaComing,
          playAudio:playAudio,
          type:false,
          range:0
        }
      },
      components:{
        videoUpload
      }
    }
</script>

<style scoped lang="less">
  @import "../../util/public";
  .view{
    width: 335px;
    height: 469px;
    background-size: 100% 100%;
    padding: 140px 20px 77px 20px;
    margin: auto;
    .view-content{
      background: white;
      padding: 10px;
      width: 315px;
      height: 459px;
      overflow: auto;
      border-radius: 8px;
      .audio-img{
        width: 188px;
        height: 188px;
        border-radius: 8px;
        display: block;
        margin: 40px auto 0 auto;
      }
      .range-block{
        text-align: center;
        width: 237px;
        margin: auto;
        margin-top: 11px;
        .play-btn{
          margin-top: 28px;
          width: 40px;
        }
        input[type=range] {
          -webkit-transform: translateZ(0);
          transform: translateZ(0);
          -webkit-appearance: none;
          background: -webkit-linear-gradient(#49E2A5, #49E2A5) no-repeat,#D8D8D8;
          background-size: 75% 100%;/*设置左右宽度比例*/
          display: flex;
          width: 100%;
          border-radius: 10px; /*这个属性设置使填充进度条时的图形为圆角*/
        }
        input[type=range]::-webkit-slider-thumb {
          -webkit-appearance: none;
        }
        input[type=range]::-webkit-slider-runnable-track {
          height: 4px;
          border-radius: 2px ;
        }
        input[type=range]:focus {
          outline: none;
        }
        input[type=range]::-webkit-slider-thumb {
          -webkit-appearance: none;
          border-radius: 50%; /*外观设置为圆形*/
          height: 12px;
          width:  12px;
          margin-top: -4px; /*使滑块超出轨道部分的偏移量相等*/
          background: #49E2A5;
        }
      }
      .title-block{
        text-align: center;
        margin-top: 24px;
        .title{
          font-size:16px;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(102,102,102,1);
          line-height:22px;
        }
        .tips{
          font-size:14px;
          font-family:PingFang-SC-Medium;
          font-weight:500;
          color:rgba(153,153,153,1);
          line-height:20px;
        }
      }
      .luola{
        width: 70px;
        margin: 10px 0 0 20px;
      }
      .luolacoming{
        width: 135px;
        margin-left:42px ;
      }
      .video-block{
        width: 303px;
        padding: 8px;
        margin: auto;
        border: 1px solid #666666;
        border-radius: 12px;
        height: 171px;
        video{
          border-radius: 12px;
          width: 100%;
        }
      }
      .tips-block{
        border-radius: 1000px;
        width: 144px;
        margin: 16px auto auto;
        border: 1px solid #40A9FF;
        height: 28px;
        line-height: 28px;
        &:after{
          content: '';
          display: block;
          clear: both;
        }
        div{
          float: left;
          font-size:12px;
          width: 50%;
          text-align: center;
          color: #cccccc;
          &.active{
            border-radius: 1000px;
            background: #40A9FF;
            color: #FFFFFF;
          }
        }
      }
    }
  }
</style>