208 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <div class="chat-wrapper">
 | |
|     <div class="chat-content">
 | |
|       <div v-for="(record,index) in recordContent" :key="index">
 | |
|         <div v-if="!record.mineMsg" class="word">
 | |
|           <!-- <img :src="record.headUrl"> -->
 | |
|           <img src="@/assets/CRC.png">
 | |
|           <div class="info">
 | |
|             <p class="time">
 | |
|               <span style="font-weight:700;">{{ record.userName }} </span>
 | |
|               <span>({{ record.chatTime }}) </span>
 | |
|             </p>
 | |
|             <div class="info-content">{{ record.contactText }}</div>
 | |
|           </div>
 | |
|         </div>
 | |
| 
 | |
|         <div v-else class="word-my">
 | |
|           <div class="info">
 | |
|             <p class="time">
 | |
|               <span style="font-weight:700;">{{ record.userName }} </span>
 | |
|               <span>({{ record.chatTime }}) </span>
 | |
|             </p>
 | |
|             <div class="info-content">{{ record.contactText }}</div>
 | |
|           </div>
 | |
|           <!-- <img :src="record.headUrl"> -->
 | |
|           <img src="@/assets/QC.png">
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|     <div class="chat-message">
 | |
|       <el-input
 | |
|         v-model="newMessage"
 | |
|         type="textarea"
 | |
|         :autosize="{ minRows: 1, maxRows: 4}"
 | |
|         placeholder="请输入内容"
 | |
|         style="width:90%;"
 | |
|       />
 | |
|       <el-button type="primary">发送</el-button>
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| <script>
 | |
| export default {
 | |
|   data() {
 | |
|     return {
 | |
|       recordContent: [
 | |
|         {
 | |
|           mineMsg: false,
 | |
|           userName: 'CRC',
 | |
|           chatTime: '2021.10.28 10:20:38',
 | |
|           contactText: '影像已上传完毕',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: false,
 | |
|           userName: 'CRC',
 | |
|           chatTime: '2021.10.30 16:05:12',
 | |
|           contactText: '请核查',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: true,
 | |
|           userName: 'QC',
 | |
|           chatTime: '2021.10.31 09:00:36',
 | |
|           contactText: '确认无误',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: false,
 | |
|           userName: 'CRC',
 | |
|           chatTime: '2021.10.30 16:05:12',
 | |
|           contactText: '请核查',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: true,
 | |
|           userName: 'QC',
 | |
|           chatTime: '2021.10.31 09:00:36',
 | |
|           contactText: '确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: true,
 | |
|           userName: 'QC',
 | |
|           chatTime: '2021.10.31 09:00:36',
 | |
|           contactText: '确认无误',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: true,
 | |
|           userName: 'QC',
 | |
|           chatTime: '2021.10.31 09:00:36',
 | |
|           contactText: '确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误确认无误',
 | |
|           headUrl: ''
 | |
|         },
 | |
|         {
 | |
|           mineMsg: true,
 | |
|           userName: 'QC',
 | |
|           chatTime: '2021.10.31 09:00:36',
 | |
|           contactText: '确认无误',
 | |
|           headUrl: ''
 | |
|         }
 | |
|       ],
 | |
|       newMessage: ''
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| <style lang="scss">
 | |
| .chat-wrapper{
 | |
| ::-webkit-scrollbar {
 | |
|     width: 7px;
 | |
|     height: 7px;
 | |
|   }
 | |
|   ::-webkit-scrollbar-thumb {
 | |
|     border-radius: 10px;
 | |
|     background: #d0d0d0;
 | |
|   }
 | |
|   .chat-content{
 | |
|     width:100%;
 | |
|     padding: 20px;
 | |
|     height: 500px;
 | |
|     overflow-y: auto;
 | |
|     .word{
 | |
|       display: flex;
 | |
|       margin-bottom: 20px;
 | |
|       img{
 | |
|         width:40px;
 | |
|         height: 40px;
 | |
|         border-radius: 50%;
 | |
|       }
 | |
|       .info{
 | |
|         margin-left: 10px;
 | |
|         .time{
 | |
|           font-size: 12px;
 | |
|           color:rgba(51,51,51,0.8);
 | |
|           margin:0;
 | |
|           height: 20px;
 | |
|           line-height: 20px;
 | |
|           margin-top: -5px;
 | |
|         }
 | |
|         .info-content{
 | |
|           padding: 10px;
 | |
|           font-size: 14px;
 | |
|           background-color: #ebeef5;
 | |
|           position: relative;
 | |
|           margin-top: 8px;
 | |
|         }
 | |
|         .info-content::before{
 | |
|           position: absolute;
 | |
|           left: -8px;
 | |
|           top: 8px;
 | |
|           content: '';
 | |
|           border-right: 10px solid #ebeef5;
 | |
|           border-top: 8px solid transparent;
 | |
|           border-bottom: 8px solid transparent;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     .word-my{
 | |
|       display: flex;
 | |
|       justify-content: flex-end;
 | |
|       margin-bottom: 20px;
 | |
|       img{
 | |
|         width: 40px;
 | |
|         height: 40px;
 | |
|         border-radius: 50%;
 | |
|       }
 | |
|       .info{
 | |
|         width: 90%;
 | |
|         margin-left: 10px;
 | |
|         text-align: right;
 | |
|         .time{
 | |
|           font-size: 12px;
 | |
|           color: rgba(51,51,51,0.8);
 | |
|           margin: 0;
 | |
|           height: 20px;
 | |
|           line-height: 20px;
 | |
|           margin-top: -5px;
 | |
|           margin-right: 10px;
 | |
|         }
 | |
|         .info-content{
 | |
|           position: relative;
 | |
|           max-width: 70%;
 | |
|           padding: 10px;
 | |
|           font-size: 14px;
 | |
|           float: right;
 | |
|           margin-right: 10px;
 | |
|           margin-top: 8px;
 | |
|           background-color: #7574d9;
 | |
|           color: #fff;
 | |
|           text-align: left;
 | |
|         }
 | |
|         .info-content::after{
 | |
|           position: absolute;
 | |
|           right: -8px;
 | |
|           top: 8px;
 | |
|           content: '';
 | |
|           border-left: 10px solid #7574d9;
 | |
|           border-top: 8px solid transparent;
 | |
|           border-bottom: 8px solid transparent;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </style>
 |