今天美工給了個圖,要實現這樣的功能。
后台返來的數據結構,是這樣的
試了幾次,我是這樣實現的。
1、html
<table> <thead> <tr> <td>序號</td> <td>掛單號</td> </tr> </thead> <tbody id="tblList"> <tr v-for="(item,index) in dataarr" :class="index==curindex? 'active':''"> <td>{{index+1}}</td> <td @click="changeorder(item,index)">{{item.orderCode}}</td> </tr> </tbody> </table> </div> <div class="fl spinfo"> <table> <thead> <tr> <td>序號</td> <td>商品編號</td> <td>商品名稱</td> <td>數量</td> <td>售價</td> <td>金額</td> </tr> </thead> <tbody> <tr v-for="(list,index) in splist[curindex]"> <td>{{index+1}}</td> <td>{{list.productId}}</td> <td>{{list.productname}}</td> <td>{{list.salequantity}}</td> <td>{{list.saleprice}}</td> <td>{{list.subtotalamountsale}}</td> </tr> </tbody> </table>
2、js
export default { props: ["arr"],//從父組件傳來的數據 data() { return { dataarr: this.arr, curindex: 0, splist: [] }; }, mounted() { this.getsplist(); }, methods: { getsplist() { for (let i = 0; i < this.arr.length; i++) { this.splist.push(this.arr[i].orderGoods); } return splist;//把數組里面的數組循環了出來,和外面的數組通過curindex 聯系 }, changeorder(item, index) { this.curindex = index; } } };
后經過同事指點,不必如此麻煩,可以直接這樣。
1、html
<table> <thead> <tr> <td>序號</td> <td>掛單號</td> </tr> </thead> <tbody id="tblList"> <tr v-for="(item,index) in dataarr" :class="index==curindex? 'active':''"> <td>{{index+1}}</td> <td @click="getsplist(item,index)">{{item.orderCode}}</td> </tr> </tbody> </table> </div> <div class="fl spinfo"> <table> <thead> <tr> <td>序號</td> <td>商品編號</td> <td>商品名稱</td> <td>數量</td> <td>售價</td> <td>金額</td> </tr> </thead> <tbody> <tr v-for="(list,index) in splist"> <td>{{index+1}}</td> <td>{{list.productId}}</td> <td>{{list.productname}}</td> <td>{{list.salequantity}}</td> <td>{{list.saleprice}}</td> <td>{{list.subtotalamountsale}}</td> </tr> </tbody> </table>
2、js
export default { name: "getOrder", props: ["arr"], data() { return { dataarr: this.arr, curindex: 0, splist: this.arr[0].orderGoods//默認是第一個的商品信息 }; }, methods: { getsplist(item,index) { this.curindex = index;//添加點擊的樣式用 this.splist=item.orderGoods//當前數組是循環的那個商品信息 }, } };