2018-09-21

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    table{
        width: 70%;
        margin: 0 auto;
        border-collapse: collapse;
        text-align: center;
    }
    th{
        padding: 10px 0;
    }
    td{
        padding: 15px 0;
    }
    </style>
</head>
<body>
   <div id="app">
       <my-father></my-father>
   </div>
    <script src="js/vue.js"></script>
    <script>
    Vue.component("my-father",{
        template:`
            <div>
                <table border="1">
                    <tr>
                        <th v-for="value in list">{{value}}</th>
                    </tr>
                    <tr v-for="(val,index) in content">
                        <td>{{index+1}}</td>
                        <td>{{val.name}}</td>
                        <td>{{val.price}}</td>
                        <td><button @click="alt(index)">+</button>{{val.cont}}<button @click="res(index)">-</button></td>
                        <td>{{val.all}}</td>
                    </tr>
                    <my-child v-bind:mes="msg"></my-child>
                </table>
            </div>
        `,
        data:function(){
            return{
                list:["编号","名称","单价","数量","小计"],
                content:[
                    {name:"香蕉",price:1,cont:1,all:1},
                    {name:"苹果",price:2,cont:1,all:2},
                    {name:"鸭梨",price:3,cont:1,all:3}
                ],
                msg:'6'
            }
        },
        methods:{
            alt:function(i){
                this.content[i].cont++;
                this.content[i].all=this.content[i].cont*this.content[i].price;
                this.total();
            },
            res:function(i){
                if(this.content[i].cont>0){
                    this.content[i].cont--;
                    this.content[i].all=this.content[i].cont*this.content[i].price;
                }
                this.total();
            },
            total:function(){
                for(var i=0,total=0;i<this.content.length;i++){
                    total+=this.content[i].all;
                }
                this.msg=total;
            }
        }
    })
    Vue.component("my-child",{
        props:["mes"],
        template:`
            <tr>
                <td colspan="5">总价:{{mes}}元</td>
            </tr>
        `
    })
    new Vue({
        el:"#app"
    })
    </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 远方雪千堆,
    襄阳山翁阅读 1,280评论 0 3
  • 世上有两个地方, 一个在眼前 , 一个在天边。 心中有一个梦想 , 有缘 海角亦会相见。
    foe额阅读 1,300评论 0 2
  • 人生路漫漫,我一直相信,遇见,就是缘分,不管是放荡不羁的性格,还是是青年狂少的青春,也许会因为一点的得失去影响自己...
    半青阅读 1,059评论 0 0
  • 遇见 遇见你是我此生最大的欢喜, 你来,我喜; 你去,我亦喜; 只因你可以找到更好的伴侣。 若有人问我下一世的期许...
    7d1a2fb4e09a阅读 1,267评论 0 1
  • 沈华立,天贝车业,盛和塾224期学员,【日精打卡第101天】 《六项精进》1遍共201遍 《大学》1遍共201遍 ...
    沈华立阅读 1,371评论 0 0