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中使用mockjs代码实例
Nov 25 Vue.js
Vue3+elementui plus创建项目的方法
Dec 01 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
Vue Element plus使用方法梳理
Dec 24 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
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
Python快速从注释生成文档的方法
2016/12/26 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
python离线安装外部依赖包的实现
2020/02/13 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
python 解决函数返回return的问题
2020/12/05 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
如何利用find命令查找文件
2016/11/18 面试题
大专会计自我鉴定
2014/02/06 职场文书
社保委托书怎么写
2014/08/02 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
pytorch中的 .view()函数的用法介绍
2022/03/17 Python