
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- 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>
-
-
- 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>
运行结果
