帮我用vue写一个类似于微信的对话页面需要有对话框,有文本框和按钮,还需要对头像,需要能够适配手机的
时间: 2023-06-19 18:10:28 浏览: 153
好的,以下是一个简单的示例代码:
```
<template>
<div class="chat-container">
<div class="chat-header">
<h2>与XXX的聊天</h2>
</div>
<div class="chat-content">
<div class="chat-bubble" v-for="(item, index) in chatList" :key="index" :class="{'my-message': item.isMe}">
<div class="avatar" v-if="!item.isMe">
<img src="./assets/avatar.png" alt="avatar">
</div>
<div class="message">{{ item.content }}</div>
</div>
</div>
<div class="chat-input">
<input type="text" placeholder="请输入消息" v-model="message">
<button @click="sendMessage">发送</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
message: '',
chatList: [
{ content: '你好呀', isMe: false },
{ content: '你好,有什么需要帮忙的吗?', isMe: true },
{ content: '我想问一下关于Vue的开发', isMe: false },
{ content: '可以啊,你有哪些问题?', isMe: true }
]
}
},
methods: {
sendMessage() {
if (!this.message.trim()) {
return;
}
this.chatList.push({ content: this.message, isMe: true });
this.message = '';
}
}
}
</script>
<style scoped>
.chat-container {
display: flex;
flex-direction: column;
height: 100vh;
}
.chat-header {
display: flex;
justify-content: center;
align-items: center;
height: 50px;
background-color: #eee;
}
.chat-content {
flex: 1;
padding: 20px;
overflow-y: scroll;
}
.chat-bubble {
display: flex;
justify-content: flex-start;
align-items: center;
margin-bottom: 10px;
}
.my-message {
justify-content: flex-end;
}
.avatar {
width: 30px;
height: 30px;
margin-right: 10px;
}
.message {
padding: 10px;
border-radius: 5px;
background-color: #fff;
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
}
.chat-input {
display: flex;
justify-content: center;
align-items: center;
height: 60px;
background-color: #eee;
}
.chat-input input {
flex: 1;
margin-right: 10px;
padding: 10px;
border: none;
border-radius: 5px;
font-size: 16px;
outline: none;
}
.chat-input button {
padding: 10px;
border: none;
border-radius: 5px;
background-color: #409eff;
color: #fff;
font-size: 16px;
cursor: pointer;
outline: none;
}
</style>
```
这是一个基本的聊天界面,包括了头像、聊天气泡、输入框和发送按钮。这个示例使用了 Vue.js 框架,并使用了 Flex 布局适配手机屏幕。
你可以根据自己的需求对代码进行修改和扩展。
阅读全文