美文网首页
11 vue 书籍购物车

11 vue 书籍购物车

作者: 滔滔逐浪 | 来源:发表于2020-09-13 13:49 被阅读0次

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


    <script src="../js/vue.js"></script>
    <link rel="stylesheet" href="style.css">


</head>
<body>

<div id="app">
    <div v-if="books.length">
    <table>
        <thead>
        <tr>
            <th>序号</th>
            <th>书籍名称</th>
            <th>出版日期</th>
            <th>价格</th>
            <th>购买数量</th>
            <th>操作</th>
        </tr>


        </thead>
        <tbody>
        <tr v-for="(item, index) in books">

            <td>{{item.id}}</td>
            <td>{{item.name}}</td>
            <td>{{item.date}}</td>
            <td>{{item.price }}</td>
            <td>
                 <button @click="incremrnt(index)">+</button>
                {{item.count}}
               <button @click="decrement(index)" v-bind:disabled="item.count<=1">-</button>
            </td>
            <td @click="remove(index)">移除</td>
        </tr>

        </tbody>
    </table>
    <h2>总价格:{{totalPrice | showPrice}}</h2>
    </div>
    <h2 v-else>购物车为空</h2>
</div>

<script>

</script>
<script src="main.js"></script>
</body>
</html>

main.js

const app = new Vue({
  el: '#app',
  data: {
    books: [

      {
        id: 1,
        name: '<<算法>>',
        date: "2012-02",
        price: "52",
        count: 1
      },

      {
        id: 2,
        name: '<<人道>>',
        date: "2012-02",
        price: "522",
        count: 1
      },

      {
        id: 3,
        name: '<<民法>>',
        date: "2012-02",
        price: "53",
        count: 1
      },


      {
        id: 4,
        name: '<<爱了算了>>',
        date: "2012-02",
        price: "54",
        count: 1
      },


      {
        id: 5,
        name: '<<人生>>',
        date: "2012-02",
        price: "55",
        count: 1
      }


    ]
  },
  methods: {
    incremrnt(index) {
      this.books[index].count++;
      console.log(index);
    },
    decrement(index) {
      this.books[index].count--;
      console.log(index);
    },
    remove(index) {
      this.books.splice(index, 1);
    }
  },
  filters: {
    showPrice(price) {
      return "¥" + price.toFixed(2);
    }
  },
  computed:{

    totalPrice(){
       let totalPrice=0;
      for (let i = 0; i <this.books.length ; i++) {
        totalPrice+=this.books[i].price*this.books[i].count;
      }
      return totalPrice;
    }
  }

})

style.css

table{

    border: 1px solid #e9e9e9;
    border-collapse: collapse;
    border-spacing: 0;
}
th,td{
    padding: 8px 16px;
    border: 1px solid #e9e9e9;
    text-align: left;
}
th{
    background-color: #f7f7f7;
    color: #5c6b77;
    font-weight: 600;
}

相关文章

网友评论

      本文标题:11 vue 书籍购物车

      本文链接:https://www.haomeiwen.com/subject/brpnektx.html