| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <template>
- <view class="container" :style="appThemeStyle">
- <!-- 一级分类 -->
- <scroll-view class="cate-left" :scroll-y="true" @touchmove.stop.prevent>
- <text class="type-nav" :class="{ selected: curIndex == index }" v-for="(item, index) in list" :key="index"
- @click="handleSelectNav(index)">{{ item.name }}</text>
- </scroll-view>
- <view class="cate-content">
- <!-- 二级分类列表 -->
- <view class="category-list clearfix">
- <view class="category-item" v-for="(item, index) in list[curIndex].children" :key="index" @click="handleGoods(item.category_id)">
- <view v-if="item.image" class="item-image">
- <image class="image" mode="scaleToFill" :src="item.image.preview_url"></image>
- </view>
- <view class="item-name">
- <text class="oneline-hide">{{ item.name }}</text>
- </view>
- </view>
- </view>
- </view>
- </view>
- </template>
- <script>
- import * as GoodsApi from '@/api/goods'
- export default {
- props: {
- // 分类列表
- list: {
- type: Array,
- default: []
- }
- },
- data() {
- return {
- // 一级分类:指针
- curIndex: 0
- }
- },
- methods: {
- // 一级分类:选中分类
- handleSelectNav(index) {
- this.curIndex = index
- },
- // 跳转至商品列表页
- handleGoods(categoryId) {
- this.$navTo('pages/goods/list', { categoryId })
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .container {
- padding-left: 175rpx;
- }
- // 分类内容
- .cate-content {
- z-index: 1;
- background: #fff;
- padding-top: 90rpx;
- min-height: 300rpx;
- }
- // 一级分类+二级分类 20
- .cate-left {
- position: fixed;
- top: calc(88rpx + var(--window-top));
- left: var(--window-left);
- bottom: var(--window-bottom);
- width: 175rpx;
- height: calc(100% - var(--window-top) - var(--window-bottom) - 90rpx) !important;
- background: #f8f8f8;
- color: #444;
- }
- // 左侧一级分类
- .type-nav {
- position: relative;
- height: 90rpx;
- z-index: 10;
- display: block;
- font-size: 26rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- &.selected {
- background: #fff;
- border-right: none;
- font-size: 28rpx;
- color: $main-bg
- }
- }
- // 分类列表
- .category-list {
- padding: 30rpx 20rpx;
- }
- .category-item {
- float: left;
- width: 33.33333%;
- display: flex;
- flex-direction: column;
- align-items: center;
- margin-bottom: 40rpx;
- .item-image {
- .image {
- display: block;
- width: 146rpx;
- height: 146rpx;
- }
- }
- .item-name {
- margin-top: 10rpx;
- text-align: center;
- font-size: 26rpx;
- }
- }
- </style>
|