vue实现图书管理系统


Posted in Vue.js onDecember 29, 2020

本文实例为大家分享了vue实现图书管理系统的具体代码,供大家参考,具体内容如下

组件代码

<template>
 <div id="app">
  <div class="grid">
   <div>
    <h1>图书管理</h1>
    <div class="book">
     <div>
      <label for="id" v-focus>
       编号:
      </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="add(addOrUpdate)" :disabled="subFlag">提交</button>
     </div>
    </div>
   </div>
   <div class="total">
    <span>图书总数:</span>
    <span>{{ totalNum }}</span>
   </div>
   <table>
    <thead>
    <tr>
     <th>编号</th>
     <th>名称</th>
     <th>时间</th>
     <th>操作</th>
    </tr>
    </thead>
    <tbody>
    <tr v-for="book in books">
     <td> {{ book.id }} </td>
     <td> {{ book.name }} </td>
     <td> {{ book.date | date-format }} </td>
     <td>
      <a href="" @click.prevent=" rel="external nofollow" updateBook(book.id)">修改</a>
      <span>|</span>
      <a href="" @click.prevent = 'deleteBook(book.id)'>删除</a>
     </td>
    </tr>
    </tbody>
   </table>
  </div>
 </div>


</template>

<script>
  export default {
   data(){
     return{
       books:[
         {
           id: 1,
           name: '三国演义',
           date: 2525609975000
         },
         {
           id: 2,
           name: '水浒传',
           date: 2525609975000
         },
         {
           id: 3,
           name: '红楼梦',
           date: 2525609975000
         },
         {
           id: 4,
           name: '西游记',
           date: 2525609975000
         }
          ],
       id:'',
       name:'',
       flag:false, // id输入框是否可修改标识
       addOrUpdate: 0, // 0代表添加 1代表修改
       subFlag:false, // 提交按钮是否禁用(图书存在时禁用)

     }
   },

    methods:{
     // 添加图书的方法
     add() {
       if(this.addOrUpdate===0){
         // 添加图书
         this.books.push({
           id: this.id,
           name: this.name,
           date: new Date()
         });
       }else{
         const book = this.books.filter((book)=>{
           return book.id === this.id;
         });
         book[0].name = this.name
       }

      // 添加之后清空input框
       this.id = '';
       this.name = '';
       this.flag = false

     },
      // 更新图书的方法
      updateBook(id){
        this.addOrUpdate = 1;
       // 需要修改的当前图书信息
       const book = this.books.filter((book)=>{
         return book.id === id;
       });

       // 让input框显示相应内容
       this.id = book[0].id;
       this.name = book[0].name;
       this.flag = true;

      },
      deleteBook(id){
       // 获取当前图书的索引
       const index = this.books.findIndex((book)=>{
         return book.id === id
       });

       this.books.splice(index, 1)

      }
    },
    computed:{
      totalNum(){
        return this.books.length
      }
    },
    // 自定义局部指令
    directives:{
     focus:{
       inserted(el){
         // 自动聚焦
         el.focus()
       }
     }
    },

    // 监视图书是否存在
    watch:{
     name:{
       deep:true,
       handler(val){
         const book = this.books.find((book)=>{
           return book.name === val
         });
         if(book){
           this.subFlag = true
         }else{
           this.subFlag = false
         }
       }
     }
    }

  }
</script>


<style type="text/css">
 .grid {
  margin: auto;
  width: 530px;
  text-align: center;
 }
 .grid table {
  border-top: 1px solid #C2D89A;
  width: 100%;
  border-collapse: collapse;
 }
 .grid th,td {
  padding: 10px;
  border: 1px dashed #F3DCAB;
  height: 35px;
  line-height: 35px;
 }
 .grid th {
  background-color: #F3DCAB;
 }
 .grid .book {
  padding-bottom: 10px;
  padding-top: 5px;
  background-color: #F3DCAB;
 }
 .grid .total {
  height: 30px;
  line-height: 30px;
  background-color: #F3DCAB;
  border-top: 1px solid #C2D89A;
 }
</style>

过滤器文件index.js

vue实现图书管理系统

import Vue from 'vue'
import format from 'date-fns/format'

// 自定义过滤器
Vue.filter('date-format', function (value, formatStr='yyyy-MM-dd HH:mm:ss') {
 return format(value, formatStr)
});

main.js引入

import './filters'

vue实现图书管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue递归实现树形组件
Jul 15 Vue.js
Vue实现随机验证码功能
Dec 29 #Vue.js
vue3+typeScript穿梭框的实现示例
Dec 29 #Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 #Vue.js
vue实现简易的双向数据绑定
Dec 29 #Vue.js
vue中配置scss全局变量的步骤
Dec 28 #Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 #Vue.js
Vue仿百度搜索功能
Dec 28 #Vue.js
You might like
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
线程同步的方法
2016/11/23 面试题
教师师德教育的自我评价
2013/10/31 职场文书
元旦晚会邀请函
2014/02/01 职场文书
租房协议书
2014/04/10 职场文书
服务标语口号
2014/07/01 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书