Vue、layui实现简单的增删查改

news/2024/7/10 1:52:56 标签: Vue, layui, Vue增删查改

今天公司里不是很忙,忙里偷闲学了会Vue,做了个小demo,使用Vuelayui框架。全部代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Vue+layui Demo</title>
    <!-- 对应好js文件的路径哟 -->
    <link rel="stylesheet" href="layui/css/layui.css" />
    <script src="layui/layui.js"></script>
    <script src="vue.js"></script>
</head>

<body>

    <div id="app">
        <form class="layui-form" action="">
            <fieldset>
                <legend>
                    添加新用户
                </legend>
                <div style="width: 30%">
                    <div class="layui-form-item">
                        <label class="layui-form-label">名字:</label>
                        <div class="layui-input-block">
                            <input type="text" placeholder="请输入名字" class="layui-input" v-model="newPerson.name">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">年龄:</label>
                        <div class="layui-input-block">
                            <input type="number" placeholder="请输入年龄" class="layui-input" v-model="newPerson.age">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">性别:</label>
                        <div class="layui-input-block">
                            <select v-model="newPerson.sex">
                                <option value=""></option>
                                <option value="Male">男</option>
                                <option value="Female">女</option>
                            </select>
                        </div>
                    </div>


                </div>
                <button @click="add" type="button" class="layui-btn layui-btn-normal">添加</button>
                <button @click="find" type="button" class="layui-btn layui-btn-normal">查询</button>
                <button @click="ref" type="button" class="layui-btn layui-btn-normal">重置</button>
            </fieldset>
        </form>
        <table class="layui-table" style="text-align: center">
            <thead>
                <tr>
                    <th style="text-align: center">姓名</th>
                    <th style="text-align: center">年龄</th>
                    <th style="text-align: center">性别</th>
                    <th style="text-align: center">操作</th>
                </tr>
            </thead>
            <tbody>

                <tr v-for="(person,index) in people">
                    <td>{{ person.name }}</td>
                    <td>{{ person.age }}</td>
                    <td>
                        <span v-if="person.sex=='Male'">男</span>
                        <span v-else-if="person.sex=='Female'">女</span>
                        <span v-else></span>
                    </td>
                    <td :class="'text-center'"><button @click="del(index)"
                            class="layui-btn layui-btn-sm layui-btn-danger">删除</button></td>
                </tr>
            </tbody>
        </table>

    </div>


</body>

<script>
    var vm = new Vue({
        el: '#app',

        data: {
            newPerson: {
                name: '',
                age: 0,
                sex: 'Male'
            },
            datas: [{
                name: 'Z',
                age: 22,
                sex: 'Male'
            }, {
                name: 'W',
                age: 22,
                sex: 'Male'
            }, {
                name: 'Q',
                age: 19,
                sex: 'Female'
            }, {
                name: 'R',
                age: 99,
                sex: 'Male'
            }],
            people: [],
            onepeople:{}

        },
        created: function () {
            this.people = this.datas.slice(0);//数组赋值 问题一
        },
        methods: {
            ref: function () {
                //绑定数据问题
                this.newPerson = {
                    name: '',
                    age: 0,
                    sex: 'Male'
                }
                this.people.splice(0, this.people.length);
                this.people = this.datas.slice(0);

            },
            add: function () {
                if (this.newPerson.name == "" || this.newPerson.name == null) {
                    alert("名字不能为空");
                } else if (this.newPerson.age == "" || this.newPerson.age == null) {
                    alert("年龄不能为空");
                } else if (this.newPerson.sex == "" || this.newPerson.sex == null) {
                    alert("性别不能为空");
                } else {
                    this.people.push(this.newPerson);
                    this.newPerson = {
                        name: '',
                        age: 0,
                        sex: 'Male'
                    }//问题二
                }
            },
            del: function (index) {
                this.people.splice(index, 1);//删除数组中的数据
            },
            find: function () {
                for (let p of this.people) {
                    if (p.name == this.newPerson.name) {
                        this.onepeople = p;
                        break;
                    }
                }
                if (this.onepeople.name != null) {
                    this.people.length = 0;
                    this.people.push(this.onepeople);
                } else {
                    alert("无数据");
                }
            }
        }
    });
</script>
<script>
    layui.use('form', function () {
        var form = layui.form;
        form.render();//表单渲染 这里是针对select 问题三
    })
</script>

</html>

问题总结

1、数组间赋值,使用slice方法,避免地址复用
2、添加后改变输入框里的值,添加后的数据也会跟着变化,最直接的方法就是重新创建一个对象
3、layui表单中有几个标签必须要使用form模块渲染才能使用


http://www.niftyadmin.cn/n/897186.html

相关文章

解决SQL语句丢失精度的问题

解决方法&#xff1a;把字段数据类型改为decimal数据类型&#xff0c;该数据类型用于要求非常高的精确计算中 SELECT cast(a AS decimal(10,2)l)/cast(b AS decimal(10,2)) from xxx; #10表示最大位数 2表示小数点后位数

IDEA新建SpringBoot框架的web项目

1、新建项目 在IDEA环境界面中Create New Project或在项目界面上File-New-Project 然后一直next到如下界面&#xff1a; 选择web扩展&#xff0c;然后一直finish&#xff0c;然后等待maven加载好就行了。 2、完善web项目结构 &#xff08;1&#xff09;新建一个webapp文件夹…

easyui 表格使用简述

上周公司临时给我安排了一个活&#xff0c;开发基于easyui前端框架和java后端的项目的部分功能&#xff0c;对easyui有了初步的了解&#xff0c;特在此分享一下。 动态表格的初始化 html: <table id"datagrid"></table>js: //初始化方法 function initD…

原生图片上传与加载

前几天公司里安排了任务需要维护某项目的几个模块&#xff0c;其中一个模块里的功能就是图片的上传与加载&#xff0c;由于这个项目使用的技术和框架都相对旧一点&#xff0c;jdk用的是1.6版本的&#xff0c;有些功能像文件上传下载有非常成熟的框架可以使用。从网上搜集资料得…

JQuery DOM操作实例

这几天在公司一直在忙一些页面的工作&#xff0c;对jQuery的DOM操作有较深的印象&#xff0c;像元素遍历、选择器等 <!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <li…

使用IDEA基于SpringBoot创建基于springboot框架的web项目(一)—页面路径及基本配置

IDEA新建基于SpringBoot的项目过程简单一说&#xff1a;File—New—Project—Spring Initializr&#xff0c;然后基本信息写一些&#xff0c;一直Next就行了 我创建的项目路径如下&#xff1a; controller是我自己创建的&#xff0c;另外项目自动生成的配置文件是application.p…

Java泛型简述

泛型的特点&#xff1a; 声明泛型时的位置特殊&#xff0c;用<>来声明使用方法与其他变量类型没有太大差异主要作用是可以让不同的变量类型进行统一操作&#xff0c;包括引用数据类型和对象与Object相比的好处有&#xff1a;不需要强制类型转换&#xff0c;提高效率&…

解决HTML中设置宽或高为百分比时无效的问题

在开发web项目时&#xff0c;为了适应浏览器分辨率&#xff0c;所以不免会使用到如下述代码 <div style"width:100%">.... </div>然而有时候会发现这种方法是无效的。 一般情况下&#xff0c;造成这种问题的原因是由于百分比是相对于父类元素而言的&…