用vue3实现留言板功能

server/2024/12/22 12:57:23/

效果图:

代码:

<script setup lang="ts">
import { ref } from 'vue';interface Message {name: string;phone: string;message: string;
}const name = ref<string>('');
const phone = ref<string>('');
const message = ref<string>('');
const messages = ref<Message[]>([]);const submitMessage = () => {if (name.value && phone.value && message.value) {const phoneRegex = /^1[0123456789]\d{9}$/;if (!phoneRegex.test(phone.value)) {alert('请输入正确的手机号!');return;}messages.value.unshift({name: name.value,phone: phone.value,message: message.value});name.value = '';phone.value = '';message.value = '';} else {alert('请填写完整的信息!');}
};const deleteMessage = (index: number) => {messages.value.splice(index, 1);
};const editMessage = (index: number) => {const editedMessage = prompt('请输入编辑后的留言内容:', messages.value[index].message);if (editedMessage !== null) {messages.value[index].message = editedMessage;}
};
</script><template><div id="app"><h1>留言板</h1><div class="message-form"><label for="name">留言者姓名:</label><input type="text" v-model="name" placeholder="留言者姓名"><label for="phone">手机号:</label><input type="text" v-model="phone" placeholder="手机号"><label for="message">留言内容:</label><textarea v-model="message" placeholder="留言内容"></textarea><button @click="submitMessage">提交</button></div><div class="message-list" v-if="messages.length > 0"><div v-for="(msg, index) in messages" :key="index" class="message"><div>留言者姓名:{{ msg.name }}</div><div>手机号:{{ msg.phone }}</div><div>留言内容:{{ msg.message }}</div><button @click="deleteMessage(index)">删除</button><button @click="editMessage(index)">编辑</button></div></div></div>
</template><style scoped>
#app {max-width: 600px;margin: 0 auto;padding: 20px;font-family: 'Roboto', sans-serif;
}h1 {text-align: center;margin-bottom: 20px;color: #3498db;
}.message-form {display: flex;flex-direction: column;align-items: flex-start;margin-bottom: 20px;
}
.message-form label {width: 100%; margin-bottom: 10px;
}.message-form input,
.message-form textarea {width: 100%;padding: 10px;margin-bottom: 15px;border: 1px solid #ddd;border-radius: 5px;font-size: 14px;
}.message-form button {padding: 10px 20px;background-color: #3498db;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 14px;transition: all 0.3s ease;display: block;margin: 0 auto;
}.message-form button:hover {background-color: #2980b9;
}
.message-list {margin-top: 20px;
}.message {background-color: #eef5f9;border-left: 4px solid #007bff;padding: 15px;margin-bottom: 10px;border-radius: 4px;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}.message button {background-color: transparent;color: #007bff;border: 1px solid #007bff;margin-right: 10px;margin-top: 10px;transition: background-color 0.3s ease, color 0.3s ease;
}.message button:hover {background-color: #007bff;color: white;
}
</style>


http://www.ppmy.cn/server/22977.html

相关文章

德思特手持式频谱分析仪加速公共无线事业的运行

一、公共无线事业中无线电的重要性 提起无线电&#xff0c;许多人或许觉得这是非常老旧的观念。实际上&#xff0c;无线电在我们的生活中占据着非常重要的地位。当前&#xff0c;无线电早已成为受众最广泛的大众媒介。据工业和信息化部资料显示&#xff0c;全球95%的人口都可以…

FreeRTOS之列表

1.FreeRTOS的列表和列表项十分重要。列表类相当于链表&#xff0c;列表项则相当于链表中的节点。列表项的地址是非连续的&#xff0c;列表项的数量可随时修改。在OS中的任务状态和数量会发生改变&#xff0c;因此使用列表可以很好的满足需求。 列表和列表项的相关定义与操作函…

QAnything知识库问答系统离线部署(LLM+RAG)

一、QAnything介绍 &#xff08;一&#xff09;简介 QAnything 是网易有道开源的一个问答系统框架&#xff0c;支持私有化部署和SaaS服务两种调用形式。它能够支持多种格式的文件或数据库&#xff0c;提供准确、快速和可靠的问答体验。目前已支持的文件格式包括PDF、Word、PP…

Airmail 5 for Mac:高效电子邮件管理软件

Airmail 5 for Mac作为一款功能强大的电子邮件客户端软件&#xff0c;为Mac用户带来了全新的邮件管理体验。其高效、直观的操作界面&#xff0c;使得用户可以轻松管理各类邮件&#xff0c;提升工作效率。 Airmail 5 for Mac v5.7.4中文激活版 首先&#xff0c;Airmail 5支持多个…

【C++】继承

这节我们来学习继承相关概念以及其周边知识。 目录 继承的概念及定义 继承的概念 继承定义 定义格式 继承基类成员访问方式的变化 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 菱形继承及菱形虚拟继承 虚拟继承解决数…

Android system — Android链接器命名空间(Android 11后)

Android system — Android链接器命名空间 0. 前言1. 链接器命名空间1.1 工作原理1.2 配置文件格式1.2.1 “目录-区段”映射属性1.2.2 关系属性1.2.3 命名空间属性 1.3 链接器命名空间创建1.4 链接器命名空间隔离1.4.1 VNDK 配置1.4.2 VNDK Lite 配置 0. 前言 android 7.0加入了…

华为P系列“砍了”,三角美学系列全新登场

2021 年 10 月&#xff0c;Intel 正式带来了颠覆以往的第 12 代酷睿「混合架构」 CPU。 不知道是良心发现还是为了弥补 11 代酷睿过于拉胯表现&#xff0c;Intel 终于把狠活儿都用在了这代。 全新 Intel 7 工艺、全新架构、单核与多核性能大幅提升&#xff0c;让大家十分默契…

2024制造企业数字化趋势

2024年制造企业数字化趋势主要表现在以下几个方面&#xff1a; 一、人工智能的广泛应用人工智能正逐渐成为制造企业数字化转型的关键催化剂。企业开始尝试并扩大生成式人工智能和机器学习的使用范围&#xff0c;以提高生产力、提升客户体验并改善决策。例如&#xff0c;利用人工…