VUE留言板

效果预览图

完整代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作业</title>
    <style>
        body{
            background: #ecdada;
        }
        *{
            margin: 0;
            padding: 0;
        }
        #app{
            width: 1000px;
            height: 100%;
            margin: 10px auto;
        }
        h2{
            text-align: center;
            margin-top: 10px;
        }
        .wp{
            width: 960px;
            height: 250px;
            background: pink;
            overflow: hidden;
            border-radius: 10px;
            padding: 20px;
        }
        textarea{
            display: block;
            margin: 5px auto;
            border-radius: 10px;
            padding: 10px;
            resize: none;
        }
        .wp button{
            display: block;
            width: 60px;
            height: 40px;
            background: #99ead6;
            margin-left: auto;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        input{
            width: 200px;
            height: 30px;
            margin-left: 5px;
            padding-left: 10px;
            border-radius: 5px;
        }
        .pl{
            width: 1000px;
            height: 180px;
            background: #fff;
            overflow: hidden;
            border-radius: 10px;
            margin-top: 20px;
        }
        span{
            width: 980px;
            height: 40px;
            display: block;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            margin-left: 10px;
        }
        p{
            margin: 0 0 10px 10px;
        }
        h3{
            margin: 10px;
        }
        button{
            display: inline-block;
            width: 60px;
            height: 40px;
            background: #99ead6;
            border: none;
            border-radius: 5px;
            margin-top: 10px;
            margin-left: 20px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="app">
    <h2>留言板</h2>
    <div class="wp">
         <input type="text" placeholder="给自己定义一个身份吧(默认匿名)" v-model="val">
        <textarea class="area" rows="10" cols="130" placeholder="有什么新鲜事想告诉大家" v-model="val2"></textarea>
        <button v-if="fl==1" @click="add">发布</button>
        <button  v-else-if="fl==2" @click="add2(jk)">提交修改</button>
    </div>
    <div class="pl" v-for="(item,index) in arr">
     <h3>{{arr[index].name}}</h3>
     <p>{{arr[index].times}}</p>
     <span>{{arr[index].cont}}</span>
     <button @click="sc(index)">删除</button>
     <button @click="xg(index)">修改</button>
    
    </div>
    
    </div>
</body>
</html>
<script type="module">
    import { createApp } from './js/vue.esm-browser.js';
    createApp({
         data() {
            return {
                arr:[
                    {name:'小姚学前端',times:'时间',cont:'学习111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,好好学习,天天向上'},
                ],
                val:'',
                val2:'',
                fl:1,
                jk:-1,
            }
         },
         methods:{
            add(){
                let nn = new Date().toLocaleString()
                if (this.val2=='') {
                    alert('内容不能为空')
                }else if (this.val2!='') {
                    let obj={
                    name:this.val==''? '来自匿名':this.val,
                    times:nn,
                    cont:this.val2
                }
                this.arr.unshift(obj)
                this.val2=''
                this.val=''
                this.fl=1
                }
                
            },
            add2(jk){
                let nn = new Date().toLocaleString()
                if (this.val2=='') {
                    alert('内容不能为空')
                }else if (this.val2!='') {
                    let obj={
                    name:this.val==''? '来自匿名':this.val,
                    times:nn+'修改',
                    cont:this.val2
                }
                this.arr[jk]=obj
                this.val2=''
                this.val=''
                this.fl=1
                }
            },
            sc(index){
                let userResponse = window.confirm("确定要删除留言吗");
            if (userResponse) {
                this.arr.splice(index,1)
            } else {
              
            }
            },
            xg(index){
                this.val2=this.arr[index].cont;
                this.val=this.arr[index].name
                this.fl=2
                this.jk=index
            }
         }
    }).mount('#app')
</script>
相关推荐
编程乐学(Arfan开发工程师)2 分钟前
信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
java·开发语言·javascript·python
码界奇点6 分钟前
基于Gin+Vue的前后端分离权限管理系统设计与实现
前端·vue.js·车载系统·毕业设计·gin·源代码管理
^^为欢几何^^21 分钟前
vue3+el-upload+多张图片(20MB左右)+图片压缩上传到后端+可限制条数+懒加载
前端·javascript·vue.js
BD_Marathon23 分钟前
Vue3_列表渲染
前端·javascript·vue.js
知其然亦知其所以然24 分钟前
为什么说 String 是 JavaScript 中“最安静却最危险”的类型
前端·javascript·程序员
wusp199428 分钟前
【超完整】Tailwind CSS 实战教程
前端·css·tailwind
南山安33 分钟前
React 学习:父传子的单项数据流——props
javascript·react.js·前端框架
这个需求建议不做36 分钟前
pdf.js(pdfdist)踩坑workerSrc报错pdf.worker.mjs无法正确获取
开发语言·javascript·pdf
小小8程序员42 分钟前
springboot + vue
vue.js·spring boot·后端
大猫会长43 分钟前
react中用css加载背景图的2种情况
开发语言·前端·javascript