vue实现点击左侧菜单,右侧跟着显示隐藏
Posted cinderellastory
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue实现点击左侧菜单,右侧跟着显示隐藏相关的知识,希望对你有一定的参考价值。
1 <template> 2 <div class="mainMaterial"> 3 <div class="chooseItem"> 4 <div class="navMenus"> 5 <ul> 6 <li v-for="(item,index) in items" :key="index" :class="{active:index==isActive}" @click="onChange(index)">{{ item.spaceName }}</li> 7 </ul> 8 </div> 9 </div> 10 <div class="content"> 11 <ul> 12 <li v-for="(item,index) in findMaterielListVos" :key="index"> 13 <p class="categoryName">{{ item.classifyCategoryName }}</p> 14 <div class="materialDetail"> 15 <div class="detailsLeft"> 16 <img src="./../../assets/business/material.jpg" alt=""> 17 </div> 18 <div class="detailsRight"> 19 <p> 20 <span>{{ item.spaceName }}</span> 21 <span>{{ item.categoryName }}</span> 22 </p> 23 <p class="price"> 24 <span>单价:{{ item.price }}元</span> 25 <span>X{{ item.num }}</span> 26 </p> 27 <p class="total"> 28 <span>合计:{{ item.amount }}元</span> 29 </p> 30 </div> 31 </div> 32 </li> 33 </ul> 34 </div> 35 </div> 36 </template> 37 38 <script> 39 export default { 40 data() { 41 return { 42 isActive: false, 43 result: [], 44 items: [ 45 { 46 ‘spaceName‘: ‘主卧‘, 47 findMaterielListVos: [ 48 { 49 ‘classifyCategoryName‘: ‘瓷砖类-地砖/墙砖‘, 50 ‘spaceName‘: ‘主卧‘, 51 ‘price‘: 78.00, 52 ‘amount‘: 79.0000, 53 ‘brandName‘: ‘欧神诺‘, 54 ‘categoryName‘: ‘地砖/墙砖‘, 55 ‘num‘: 1.00 56 }, 57 { 58 ‘classifyCategoryName‘: ‘电器类-油烟机‘, 59 ‘spaceName‘: ‘主卧‘, 60 ‘price‘: 2380.00, 61 ‘amount‘: 2380.0000, 62 ‘brandName‘: ‘美的‘, 63 ‘categoryName‘: ‘油烟机‘, 64 ‘classifyName‘: ‘电器类‘, 65 ‘num‘: 1.00 66 }, 67 { 68 ‘classifyCategoryName‘: ‘开关面板类-开关面板‘, 69 ‘spaceName‘: ‘主卧‘, 70 ‘price‘: 2380.00, 71 ‘amount‘: 2380.0000, 72 ‘brandName‘: ‘美的‘, 73 ‘categoryName‘: ‘油烟机‘, 74 ‘num‘: 1.00 75 }, 76 { 77 ‘classifyCategoryName‘: ‘橱柜类-柜体‘, 78 ‘spaceName‘: ‘主卧‘, 79 ‘relateCode‘: ‘bc-cl-13773‘, 80 ‘relateName‘: ‘测试材料‘, 81 ‘brandName‘: ‘TOTO‘, 82 ‘price‘: 0.00, 83 ‘amount‘: 0.0000, 84 ‘categoryName‘: ‘柜体‘, 85 ‘classifyName‘: ‘橱柜类‘, 86 ‘num‘: 1.00 87 } 88 ] 89 }, 90 { 91 ‘spaceName‘: ‘厨房‘, 92 findMaterielListVos: [ 93 { 94 ‘classifyCategoryName‘: ‘瓷砖类-地砖/墙砖‘, 95 ‘id‘: 39759, 96 ‘spaceName‘: ‘厨房‘, 97 ‘relateCode‘: ‘cl-cz-qdz-osn-0000489‘, 98 ‘relateName‘: ‘大理石鱼肚白‘, 99 ‘price‘: 78.00, 100 ‘amount‘: 79.0000, 101 ‘remark‘: ‘额外费用:1.00元;‘, 102 ‘brandName‘: ‘欧神诺‘, 103 ‘model‘: ‘ELX00180S‘, 104 ‘categoryName‘: ‘地砖/墙砖‘, 105 ‘classifyName‘: ‘瓷砖类‘, 106 ‘materieldetailRecordStr‘: ‘额外费用:1.00元;‘, 107 ‘num‘: 1.00 108 } 109 ] 110 } 111 ] 112 } 113 }, 114 created() { 115 this.findMaterielListVos = this.items[0].findMaterielListVos 116 this.result = this.items 117 }, 118 methods: { 119 onChange(index) { 120 this.isActive = index 121 let array = [] 122 for (let i = 0; i < this.result.length; i++) { 123 if (index === i) { 124 this.items[i] = this.result[i] 125 array = this.items[i].findMaterielListVos 126 } 127 } 128 this.findMaterielListVos = array 129 } 130 } 131 } 132 </script> 133 134 <style scoped lang="less"> 135 .empty{ 136 text-align: center; 137 font-size: 14px; 138 margin-top:20px; 139 color: #9c9c9c; 140 } 141 .mainMaterial{ 142 display: flex; 143 height: 100vh; 144 .chooseItem{ 145 background: #fff; 146 width: 30%; 147 .navMenus{ 148 ul{ 149 li{ 150 text-align: center; 151 padding:10px 0; 152 border-bottom: 1px solid #e3e3e3; 153 &.active{ 154 background: #EA5520; 155 color: #fff; 156 } 157 } 158 } 159 } 160 } 161 .content{ 162 background: #fff; 163 margin-left: 6px; 164 padding-left: 10px; 165 width: 70%; 166 ul{ 167 li{ 168 border-bottom: 1px solid #e3e3e3; 169 padding-top: 10px; 170 padding-bottom: 10px; 171 .categoryName{ 172 color: #333; 173 font-size: 16px; 174 padding-bottom: 10px; 175 } 176 .materialDetail{ 177 display: flex; 178 align-items: center; 179 .detailsLeft{ 180 img{ 181 width: 110px; 182 height: 70px; 183 } 184 } 185 .detailsRight{ 186 margin-left: 8px; 187 width: 50%; 188 p{ 189 color: #333; 190 font-size: 15px; 191 line-height: 24px; 192 &.price{ 193 font-size: 13px; 194 color: #666; 195 display: flex; 196 justify-content: space-between; 197 } 198 &.total{ 199 color:#EA5520; 200 } 201 } 202 } 203 } 204 } 205 } 206 } 207 } 208 </style>
以上是关于vue实现点击左侧菜单,右侧跟着显示隐藏的主要内容,如果未能解决你的问题,请参考以下文章
Vue仿制外卖点餐界面的左右侧菜单联动:点击左侧使右侧滚动到对应位置,右侧滚动时选中左侧对应选项