代码改变世界

vue.js 图书管理系统

2017-11-04 11:30  之晴  阅读(1046)  评论(0编辑  收藏  举报
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>图书管理系统</title>
         <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
        <script src="js/vue.js"></script>
        <style type="text/css">
            #update-book{
                display: none;
            }
        </style>
    </head>
     <body>
        <div class="container">
            <div class="col-md-6 col-md-offset-3">
                <h1>Vue demo</h1>
                 
                <div id="app">
                    <table class="table table-hover ">
                        <br />
                        <thead>
                            <tr>
                                <th>序号</th>
                                <th>书名</th>
                                <th>作者</th>
                                <th>价格</th>
                                <th>操作</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr v-for="book in filterBooks">
                                <td>{{book.id}}</td>
                                <td>{{book.name}}</td>
                                <td>{{book.author}}</td>
                                <td>{{book.price}}</td>
                                <template v-if="book.id%2==0">
                                    <td class="text-left">
                                        <button type="button" class="btn btn-success" class="del" @click="delBook(book)">删除</button>
                                        <button type="button" class="btn btn-success"  @click="updateBook(book)" >修改</button>
                                    
                                    </td>
                                </template>
                                <template v-else>
                                    <td class="text-left">
                                        <button type="button" class="btn btn-danger" class="del" @click="delBook(book)">删除</button>
                                        <button type="button" class="btn btn-danger" @click="updateBook(book)" >修改</button>
                                    
                                    </td>
                                </template>
                            </tr>
                        </tbody>
                    </table>
                     
                    <div id="add-book">
                        <div class="row" style="margin-bottom: 30px;">
                            <div class="col-md-3" style="text-align: right;font-size: 16px;line-height: 30px;">
                                请输入书名:
                            </div>
                            <div class="col-md-5">
                                <input type="text" class="form-control" v-model="search"/>
                            </div>
                        </div>
                        <h3>添加书籍</h3>
                        <hr />
                        <div class="form-group">
                            <label for="group">书名</label>
                            <input type="text" class="form-control" v-model="book.name" id="group">
                        </div>
                        <div class="form-group">
                            <label for="author">作者</label>
                            <input type="text" class="form-control"  v-model="book.author" id="author">
                        </div>
                        <div class="form-group">
                            <label for="price">价格</label>
                            <input type="text" class="form-control"  v-model="book.price" id="price">
                        </div>
                        <button class="btn btn-primary btn-block" v-on:click="addBook()">添加</button>
                    </div>
                    
                    <div id="update-book">
                        <h3>修改书籍</h3>
                        <hr />
                        <div class="form-group">
                            <label for="group1">书名</label>
                            <input type="text" class="form-control" v-model="book.name" id="group1">
                        </div>
                        <div class="form-group">
                            <label for="author1">作者</label>
                            <input type="text" class="form-control" id="author1" v-model="book.author">
                        </div>
                        <div class="form-group">
                            <label for="price1">价格</label>
                            <input type="text" class="form-control" id="price1"  v-model="book.price">
                        </div>
                        <button class="btn btn-primary btn-block"  @click="updatesBook()"
>完成</button>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript" src="js/jquery-3.1.1.js"></script>
        <script src="js/demo.js" type="text/javascript" charset="utf-8"></script>
     </body>
</html>



js文件
var id = 0;
var app = new Vue({
    el:'#app',
    methods:{
        addBook:function(){
            this.book.id = this.books.length+1;
            this.books.push(this.book);
            this.book={};
        },
        delBook:function(book){
            var blength=this.books.length;
            this.books.splice(book.id-1,1);
            for(var i=0;i<blength;i++){
                if (book.id<this.books[i].id) {
                    this.books[i].id -= 1;
                }
            }
        },
        updateBook:function(book){
            $("#add-book").css("display","none");
            $("#update-book").css("display","block");
            id = book.id;
            
        },
        updatesBook:function(){
            this.book.id = id;
            this.books.splice(id-1,1,this.book);
            $("#add-book").css("display","block");
            $("#update-book").css("display","none");
            this.book={};
        }
    },
    computed:{
        filterBooks:function(){
            var books=this.books;
            var search=this.search;
            /*if (!search) {
                return books;
            }
            var arr=[];
            for(var i=0;i<books.length;i++){
                var index =    books[i].name.indexOf(search);
                if (index>-1) {
                    arr.push(books[i]);
                }
            }
            return arr;*/
            
            //第二种方法
            return books.filter(function(book){
                return book.name.toLowerCase().indexOf(search.toLowerCase())!=-1;
            });
        }
    },
    data:{
        book:{
            id:0,
            author:'',
            name:'',
            price:''
        },
        books:[{
            id:1,
            author:'曹雪芹',
            name:'红楼梦',
            price:32.0
        },
        {
            id:2,
            author:'施耐庵',
            name:'水浒传',
            price:55.0
        },
        {
            id:3,
            author:'罗贯中',
            name:'三国演义',
            price:41.0
        },
        {
            id:4,
            author:'吴承恩',
            name:'西游记',
            price:39.0
        }],
        search:""
    }
})