在上一篇文章中我们已经学习了vue的基本语法,常用属性,了解了vue的基本使用,现在让我们用vue配合Bootstrap来完成一个小项目。

首先导入Bootstap文件。

  1. <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>

导入完成后,用Boostrap的各种组件,完成一个基本的页面:

  1. <div id="app">
  2. <table class="table table-hover ">
  3. <br />
  4. <thead>
  5. <tr>
  6. <th>序号</th>
  7. <th>书名</th>
  8. <th>作者</th>
  9. <th>价格</th>
  10. <th>操作</th>
  11. </tr>
  12. </thead>
  13. <tbody>
  14. <tr v-for="book in filterBooks">
  15. <td>{{book.id}}</td>
  16. <td>{{book.name}}</td>
  17. <td>{{book.author}}</td>
  18. <td>{{book.price}}</td>
  19. <template v-if="book.id%2==0">
  20. <td class="text-left">
  21. <button type="button" class="btn btn-success" class="del" @click="delBook(book)">删除</button>
  22. <button type="button" class="btn btn-success" @click="updateBook(book)">修改</button>
  23. </td>
  24. </template>
  25. <template v-else>
  26. <td class="text-left">
  27. <button type="button" class="btn btn-danger" class="del" @click="delBook(book)">删除</button>
  28. <button type="button" class="btn btn-danger" @click="updateBook(book)">修改</button>
  29. </td>
  30. </template>
  31. </tr>
  32. </tbody>
  33. </table>
  34.  
  35. <div id="add-book">
  36. <div class="row" style="margin-bottom: 30px;">
  37. <div class="col-md-3" style="text-align: right;font-size: 16px;line-height: 30px;">
  38. 请输入书名
  39. </div>
  40. <div class="col-md-5">
  41. <input type="text" class="form-control" v-model="search"/>
  42. </div>
  43. </div>
  44.  
  45. <h3>添加书籍</h3>
  46. <hr />
  47. <div class="form-group">
  48. <label for="group">书名</label>
  49. <input type="text" class="form-control" id="group" v-model="book.name">
  50. </div>
  51. <div class="form-group">
  52. <label for="author">作者</label>
  53. <input type="text" class="form-control" id="author"v-model="book.author">
  54. </div>
  55. <div class="form-group">
  56. <label for="price">价格</label>
  57. <input type="text" class="form-control" id="price" v-model="book.price">
  58. </div>
  59. <button class="btn btn-primary btn-block" v-on:click="addBook">添加</button>
  60. </div>
  61.  
  62. <div id="update-book">
  63.  
  64. <h3>修改书籍</h3>
  65. <hr />
  66. <div class="form-group">
  67. <label for="group1">书名</label>
  68. <input type="text" class="form-control" id="group1" v-model="book.name">
  69. </div>
  70. <div class="form-group">
  71. <label for="author1">作者</label>
  72. <input type="text" class="form-control" id="author1"v-model="book.author">
  73. </div>
  74. <div class="form-group">
  75. <label for="price1">价格</label>
  76. <input type="text" class="form-control" id="price1" v-model="book.price">
  77. </div>
  78. <button class="btn btn-primary btn-block" @click="updatesBook">完成</button>
  79. </div>
  80. </div>
  81. </div>
  82. </div>

这样页面我们就做好了,效果如下:

然后导入vue文件

  1. <script src="js/vue.min.js"></script>

新建一个自己的JS文件

首先完成添加功能:

  1. new Vue({
  2. el:"#app",
  3. methods:{
  4. addBook:function(){
  5. this.book.id = this.books.length+1;
  6. this.books.push(this.book);
  7. this.book={};
  8. },
  9. }

将addBook函数用v-on:click指令绑定到添加按钮上。

这样添加功能就完成了。

测试一下:

然后我们再完成删除功能:

  1. delBook: function(book) {
  2. var blength = this.books.length;
  3. this.books.splice(book.id-1, 1);
  4. for( var i = 0; i < blength ; i++) {
  5. if(book.id < this.books[i].id) {
  6. this.books[i].id -= 1;
  7. }
  8. }
  9. },

更新功能

  1. updateBook: function(book) {
  2. $("#add-book").css("display","none");
  3. $("#update-book").css("display","block");
  4. id = book.id;
  5. },
  6. updatesBook:function() {
  7. this.book.id = id;
  8. this.books.splice(id-1,1,this.book);
  9. $("#add-book").css("display","block");
  10. $("#update-book").css("display","none");
  11. this.book = {};
  12. }
  13. },

这样利用vue实现的管理系统就大体完成了。

vue小项目---管理系统的更多相关文章

  1. Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)

    实现效果: 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮. 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的 ...

  2. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  3. Vue小项目二手书商城:(二)axios前后端数据交互

    实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...

  4. Vue小项目二手书商城:(一)准备工作、组件和路由

    本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...

  5. Vue小项目二手书商城:(五)参考资料

    本项目基于vue2.5.2,如有错误,望指正. 完整程序:https://github.com/M-M-Monica/bukesi Vue.js官方文档:https://cn.vuejs.org/v2 ...

  6. springboot实战小项目-简要介绍、vue项目创建

    因为菜,所以要好好学习! 一.项目介绍:这是一个后台管理系统,准备实现的功能: 1.登录.注册.个人信息查看.退出登录 2.根据关键字查询用户.新增用户.根据id或者其他字段排序.编辑用户信息.删除用 ...

  7. vue练手小项目--眼镜在线试戴

    最近看到了一个眼镜在线试戴小项目使用纯js手写的,本人刚学习vue.js没多久,便试试用vue做做看了,还没完善. 其中包括初始图片加载,使用keywords查找,父子组件之间传递信息,子组件之间传递 ...

  8. Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用

    Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用 目录 概要 知识点 完整示例图 代码与资源文件 流程步骤 概要 基于 MVP 最小可行性产品设计理念,我们先完成一个可以 ...

  9. 一个 Vue & Node 的全栈小项目

    约学 - 可以寻找一起自习的小伙伴的Web APP 一个基于 Vue & Node 的移动端全栈小项目 在线演示(请使用移动端查看效果) 源码地址: https://github.com/G- ...

随机推荐

  1. Redis常见的应用场景解析

    Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用,这里介绍下Redis经常遇到的使用场景. Redis特性 一个产品的使用场 ...

  2. Java笔记—— 类与对象的几个例子

    问题1 按要求编写java应用程序: 编写西游记人物类,属性有:身高,名字和武器.方法有:显示名字,显示武器. 在main方法中创建两个对象.猪八戒和孙悟空,并分别为他们的两个属性名字和武器赋值,最后 ...

  3. 巧用Mono.Cecil反射加载类型和方法信息

    最近在做服务的细粒度治理,统一管理所有服务的方法.参数.返回值信息.方便后续的各个模块之间的对接和协作. 目前系统中所有的服务,管理到接口契约粒度,即服务接口声明和服务接口实现.要做服务的细粒度治理: ...

  4. vue实例讲解之vuex的使用

    vuex是一个状态管理插件,本文通过一个简单的实例来讲解一下,vuex的使用. 先看一张官方的图: 这个图新手一看估计是蒙的,简单解释一下,这个图表示的就是vue通过Action Mutations ...

  5. U盘中毒无限蓝屏重启的解决办法

    开门见山,这个帖子只针对U盘中毒导致的以下两种症状: 1.win10系统无法进入并且要求初始化,卸载所有第三方应用 2.win7系统无限蓝屏重启): 其他的硬件故障不在本次讨论范围之内. 说明以下.上 ...

  6. 修改host可以上的一些网站

    打开路径 C:\Windows\System32\drivers\etc 博客园 223.6.248.220 www.cnblogs.com github 192.30.253.112 github. ...

  7. hdu 4090--GemAnd Prince(搜索)

    题目链接 Problem Description Nowadays princess Claire wants one more guard and posts the ads throughout ...

  8. hdu1698线段树的区间更新区间查询

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  9. springboot kafka集成(实现producer和consumer)

    本文介绍如何在springboot项目中集成kafka收发message. 1.先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 &l ...

  10. 即时通信系统Openfire分析之六:路由表 RoutingTable

    还是从会话管理说起 上一章,Session经过预创建.认证之后,才正常可用.认证时,最重要的操作,就是将Session加入到路由表,使之拥用了通信功能. 添加到至路由表的操作,是在SessionMan ...