|  | @@ -0,0 +1,90 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="box" :class="{teacher: item.isTeacher}">
 | 
	
		
			
				|  |  | +    <span class="name">{{item.userName}}</span>
 | 
	
		
			
				|  |  | +    <div class="container">
 | 
	
		
			
				|  |  | +      <span class="time">{{item.createTime}}</span>
 | 
	
		
			
				|  |  | +      <div v-if="item.msgType === 'TXT'" class="content">{{item.content}}</div>
 | 
	
		
			
				|  |  | +      <div v-if="item.msgType === 'IMG'" class="content">
 | 
	
		
			
				|  |  | +        <el-image
 | 
	
		
			
				|  |  | +          style="width: 100px; height: 100px"
 | 
	
		
			
				|  |  | +          :src="item.content"
 | 
	
		
			
				|  |  | +          fit="cover"
 | 
	
		
			
				|  |  | +          :preview-src-list="[item.content]">
 | 
	
		
			
				|  |  | +        </el-image>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      <div v-if="item.msgType === 'VC'" class="content">
 | 
	
		
			
				|  |  | +        <audio controls
 | 
	
		
			
				|  |  | +          style="width: 240px"
 | 
	
		
			
				|  |  | +          :src="item.content"
 | 
	
		
			
				|  |  | +          ref="dialogVideo">您的浏览器不支持音频播放</audio>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: 'message-box',
 | 
	
		
			
				|  |  | +  props: ['item'],
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    console.log({...this.item})
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style lang="less" scoped>
 | 
	
		
			
				|  |  | +  .box{
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    margin-top: 10px;
 | 
	
		
			
				|  |  | +    &.teacher{
 | 
	
		
			
				|  |  | +      flex-direction: row-reverse;
 | 
	
		
			
				|  |  | +      >.name{
 | 
	
		
			
				|  |  | +        margin-left: 10px;
 | 
	
		
			
				|  |  | +        margin-right: 0px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      .container{
 | 
	
		
			
				|  |  | +        max-width: 80%;
 | 
	
		
			
				|  |  | +        .content{
 | 
	
		
			
				|  |  | +          color: #fff;
 | 
	
		
			
				|  |  | +          background-color: #13817A;
 | 
	
		
			
				|  |  | +          &::before{
 | 
	
		
			
				|  |  | +            border: 10px solid #13817A;
 | 
	
		
			
				|  |  | +            border-top-color: transparent;
 | 
	
		
			
				|  |  | +            border-bottom-color: transparent;
 | 
	
		
			
				|  |  | +            border-right-color: transparent;
 | 
	
		
			
				|  |  | +            left: auto;
 | 
	
		
			
				|  |  | +            right: -18px;
 | 
	
		
			
				|  |  | +            top: 8px;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    >.name{
 | 
	
		
			
				|  |  | +      margin: 27px 10px;
 | 
	
		
			
				|  |  | +      margin-left: 0;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    .container{
 | 
	
		
			
				|  |  | +      .time{
 | 
	
		
			
				|  |  | +        display: block;
 | 
	
		
			
				|  |  | +        margin-bottom: 3px;
 | 
	
		
			
				|  |  | +        font-size: 12px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      .content{
 | 
	
		
			
				|  |  | +        position: relative;
 | 
	
		
			
				|  |  | +        background-color: #D1D5DB;
 | 
	
		
			
				|  |  | +        padding: 10px;
 | 
	
		
			
				|  |  | +        border-radius: 5px;
 | 
	
		
			
				|  |  | +        &::before{
 | 
	
		
			
				|  |  | +          width: 0;
 | 
	
		
			
				|  |  | +          height: 0;
 | 
	
		
			
				|  |  | +          border: 10px solid #D1D5DB;
 | 
	
		
			
				|  |  | +          border-top-color: transparent;
 | 
	
		
			
				|  |  | +          border-bottom-color: transparent;
 | 
	
		
			
				|  |  | +          border-left-color: transparent;
 | 
	
		
			
				|  |  | +          content: '';
 | 
	
		
			
				|  |  | +          left: -18px;
 | 
	
		
			
				|  |  | +          top: 8px;
 | 
	
		
			
				|  |  | +          position: absolute;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +</style>
 |