<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="index.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.data}}</td>
                <td>{{item.price|getp}}</td><!-- 使用了过滤器-->
                <td>
                    <button @click="decreasement(index)" :disabled="item.count<=0">-</button>
                    {{item.count}}
                    <button @click="increasment(index)">+</button>
                </td>
                <td><button @click="remove(index)">移除</button></td>
            </tr>
            </tbody>
        </table>
        <h2>总价格:{{totalPrice|getp}}</h2>
    </div>
    <h2 v-else>购物车为空</h2>
</div>
<script src="vue.js"></script>
<script src="main.js"></script>
</body>
</html>
table{
    border: 1px;
    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 ;
}
const app=new Vue({
    el:'#app',
    data:{
        books:[{
            id:1,
            name:"算法导论",
            data: '2006-1',
            price:39.00,
            count:1
        },{
            id:2,
            name:"算法导论",
            data: '2006-1',
            price:39.00,
            count:1
        },{
            id:3,
            name:"算法导论",
            data: '2006-1',
            price:39.00,
            count:1
        },{
            id:4,
            name:"算法导论",
            data: '2006-1',
            price:39.00,
            count:1
        }]
    },
    methods:{
        getfinalprice(price){
            return "$"+price.toFixed(2);
        },
        decreasement(index){
            this.books[index].count--;
        },
        increasment(index){
            this.books[index].count++;
        },
        remove(index){
            this.books.splice(index,1);
        }
    },
    filters:{
        getp(price){
            return "$"+price.toFixed(2);
        }
    },
    computed:{
        totalPrice(){
            let result=0;
            for (let i=0;i<this.books.length;i++){
                result+=this.books[i].price*this.books[i].count;
            }
            return result;
        }
    }
})