首页 > 编程语言 >node32-综合案例图书管理9

node32-综合案例图书管理9

时间:2022-09-02 22:04:41浏览次数:70  
标签:function book name 案例 node32 item books id 图书

 

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .grid .total {
        height: 30px;
        line-height: 30px;
        background-color: palegoldenrod;
    }
</style>
 
<body>
    <div id="app">
        <div class="grid">
            <div>
                <h1>图书管理</h1>
                <div class="book">
                    <div>
                        <label for="id">
                            编号:
                        </label>
                        <input type="text" id="id" v-model='id' :disabled='flag'>
                        <label for="name">
                            名称:
                        </label>
                        <input type="text" id="name" v-model='name'>
                        <button @click='handle'>提交</button>
                    </div>
 
                </div>
            </div>
            <div class="total">
                <span>图书总数:</span>
                <span>{{total}}</span>
            </div>
            <table>
                <thead>
                    <tr>
                        <th>编号</th>
                        <th>名称</th>
                        <th>时间</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr :key='item.id' v-for='item in books'>
                        <td>{{item.id}}</td>
                        <td>{{item.name}}</td>
                        <td>{{date|format('yyyy-MM-dd')}}</td>
                        <td><a href="" @click.prevent='toEdit(item.id)'>修改</a>
                            <span>|</span>
                            <a href="" @click.prevent='deleteBook(item.id)'>删除</a>
                        </td>
                    </tr>
                    <!--  <tr>
                        <td>1</td>
                        <td>javascript</td>
                        <td>2018-01-01</td>
                        <td>删除</td>
                    </tr> -->
                    <!--  <tr>
                        <td>1</td>
                        <td>javascript</td>
                        <td>2018-01-01</td>
                        <td>删除</td>
                    </tr>
                    <tr>
                        <td>1</td>
                        <td>javascript</td>
                        <td>2018-01-01</td>
                        <td>删除</td>
                    </tr> -->
                </tbody>
            </table>
 
        </div>
    </div>
    <script type="text/javascript" src="./js/vue.js"></script>
    <script>
        Vue.filter('format', function(value, arg) {
            //console.log(arg);
            if (arg == 'yyyy-MM-dd') {
                var ret = '';
                ret += value.getFullYear() + '-' + (value.getMonth() + 1) + '-' + value.getDate();
                return ret;
            }
            return value;
        })
        var vm = new Vue({
            el: '#app',
            data: {
                flag: false,
                id: '',
                name: '',
                date: new Date(),
                books: [{
                    id: 1,
                    name: '三国演义',
 
                }, {
                    id: 2,
                    name: '三国演义',
                    date: ''
                }, {
                    id: 3,
                    name: '三国演义',
                    date: ''
                }, {
                    id: 4,
                    name: '三国演义',
                    date: ''
                }]
            },
            methods: {
                handle: function() {
                    if (this.flag) {
                        //编辑操作
                        //就是根据当前的id更新数组中的数据
                        this.books.some((item) => {
                            if (item.id == this.id) {
                                item.name = this.name;
                                //完成遍历之后 终止循环
                                return true;
                            }
                        });
                        this.flag = false;
                    } else {
                        //添加图书
                        var book = {};
                        book.id = this.id;
                        book.name = this.name;
                        book.date = '';
                        this.books.push(book);
                        //清空表单
                        this.id = '';
                        this.name = '';
                    }
                    this.id = '';
                    this.name = '';
                },
                toEdit: function(id) {
                    //禁止修改id
                    this.flag = true;
                    console.log(id);
                    //根据id查询要编辑的数据
                    var book = this.books.filter(function(item) {
                        return item.id == id;
                    });
                    console.log(book);
                    this.id = book[0].id;
                    this.name = book[0].name;
                },
                deleteBook: function(id) {
                    //根据id从数组中查找索引
                    /* this.books.findIndex(function(item) {
                        return item.id == id;
                    }); */
                    /*   this.books.splice(index, 1); */
                    //------
                    //通过数组filter
                    this.books = this.books.filter(function(item) {
                        return item.id != id;
                    });
                }
            },
            computed: {
                total: function() {
                    return this.books.length;
                }
            }
        })
    </script>
</body>
 
</html>

运行结果

 

标签:function,book,name,案例,node32,item,books,id,图书
From: https://www.cnblogs.com/yao-655442/p/16651454.html

相关文章

  • dubbo微服务链路追踪案例-skywalking
    zk10.0.0.7consumer10.0.0.13provider10.0.0.17skywalking10.0.0.4es10.0.0.2安装jdkwgethttps://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.......
  • Vue基础5个实用案例
    Vue基础5个实用案例前言本章节怼几个案例供读者小伙伴们练习,写不出东西就是写的少,多写就有思路,案例也懒得去搞CSS了,大家主要锤Vue就可以了。不废话直接上货!案例1:选择登陆......
  • mapreduce案例二
    练习题:求每个平均消费,如果遇到异常数据,money异常,就回填为10数据:张三,12月3号,20张三,12月3号,10李四,12月3号,12王五,12月3号,10王五,12月2号王五,12月2号,30王二麻,12月......
  • linux中awk的小案例使用
    1.排版整齐的输出第一列与最后一列awk'{printf"%-15s%s\n",$1,$NF}'data2.txt   2.对于数据的每个字段之间进行控制使用print函数打印,如果......
  • 带有详细答案的 SQL 案例问题(分步)
    带有详细答案的SQL案例问题(分步)我们分析了超过50,000次从上市前到财富500强公司的采访大科技采访(BTI)策划最新SQL面试问题和解决方案的独家列表,以便您在下一......
  • 7个自定义定时任务并发送消息至邮箱或企业微信案例(crontab和at)
    前言更好熟悉掌握at、crontab定时自定义任务用法。实验at、crontab定时自定义任务运用场景案例。作业、笔记需要。定时计划任务相关命令及配置文件简要说明at......
  • 大咖说·图书分享|阿里云数字新基建系列:混合云架构
    混合云架构是什么?发展历程是怎样的?它有哪些应用场景?本期大咖说,看阿里云混合云技术服务高级技术专家、《混合云架构》图书联合作者解国红如何分享。  嘉宾介绍解......
  • 《低代码发展白皮书(2022年)》&《2022低代码·无代码应用案例汇编》,发布了
    摘要:信息通信研究院云计算与大数据研究所副所长栗蔚发布了《低代码发展白皮书(2022年)》&《2022低代码·无代码应用案例汇编》。本文分享自华为云社区《华为参编,中国信通院......
  • 泛型方法案例
    public<T>List<T>getGAPListByDate(StringwebDataSource,StringwebPlatType,DatestartDt,DateendDt,StringtableName,Class<T>cls){SimpleDateFormats......
  • 图书订阅管理系统——管理员管理用户
    1.这是界面设计(可能有亿点丑,重在这个过程)     2.图片1  当用户点击用户管理时,将进入该页面,灵活使用less、以及阿里图标库,在路由层级上,这一页与4个模块作为同级......