12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <template>
- <view class="menu-content">
- <uv-vtabs :chain="chain" :list="list" :height="height">
- <template v-for="(item,index) in list">
- <uv-vtabs-item :index="index" :key="index">
- <view class="menu-box">
- <view class="menu-title">{{item.name}}</view>
- <view class="menu-list">
- <view class="menu-item" @click="toCategory(item)">
- <image class="item-menu-image" :src="shopImage(item.icon)" mode="scaleToFill"></image>
- <view class="item-menu-name">{{item.name}}</view>
- </view>
- <view class="menu-item" v-for="(item1, index1) in item.children" :key="index1"
- @click="toCategory(item1)">
- <image class="item-menu-image" :src="shopImage(item1.icon)" mode=""></image>
- <view class="item-menu-name">{{item1.name}}</view>
- </view>
- </view>
- </view>
- </uv-vtabs-item>
- </template>
- </uv-vtabs>
- </view>
- </template>
- <script>
- import {
- getCategoryList
- } from '@/request/api/shop.js'
- export default {
- data() {
- return {
- list: [],
- chain: true
- }
- },
- computed: {
- height() {
- return uni.getWindowInfo().windowHeight - uni.upx2px(100);
- }
- },
- onLoad() {
- this.init();
- },
- methods: {
- async init() {
- uni.showLoading();
- let categoryData = await getCategoryList();
- if (categoryData.state) {
- this.list = categoryData.data;
- uni.hideLoading();
- }
- },
- toCategory(item) {
- this.$navigateTo('/subPages/shopPage/menuShop/menuShop?idCategory=' + item.id);
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .menu-content {
- padding-top: 30rpx;
- }
- .menu-box {
- padding: 20rpx;
- .menu-title {
- font-size: 36rpx;
- font-weight: bold;
- padding-bottom: 20rpx;
- }
- }
- .item-menu-image {
- width: 120rpx;
- height: 120rpx;
- }
- .item-menu-name {
- font-weight: normal;
- font-size: 24rpx;
- }
- .menu-list {
- display: flex;
- flex-wrap: wrap;
- .menu-item {
- width: 33.33%;
- text-align: center;
- }
- }
- </style>
|