国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp實戰(zhàn) —— 豎排多級分類展示

這篇具有很好參考價值的文章主要介紹了uniapp實戰(zhàn) —— 豎排多級分類展示。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

效果預(yù)覽

uniapp實戰(zhàn) —— 豎排多級分類展示,# uni-app,# 已歸檔鏈接,uni-app

完整范例代碼

頁面 src\pages\category\category.vue

<script setup lang="ts">
import { getCategoryTopAPI } from '@/apis/category'
import type { CategoryTopItem } from '@/types/category'
import { onLoad } from '@dcloudio/uni-app'
import { computed, ref } from 'vue'

// 獲取分類列表數(shù)據(jù)
const categoryList = ref<CategoryTopItem[]>([])
const getCategoryTopData = async () => {
  const res = await getCategoryTopAPI()
  categoryList.value = res.result
}

// 提取當(dāng)前二級分類數(shù)據(jù)
const subCategoryList = computed(() => {
  return categoryList.value[activeIndex.value]?.children || []
})

// 高亮下標(biāo)
const activeIndex = ref(0)

onLoad(() => {
  getCategoryTopData()
})
</script>

<template>
  <view class="viewport">
    <!-- 分類 -->
    <view class="categories">
      <!-- 左側(cè):一級分類 -->
      <scroll-view class="primary" scroll-y>
        <view
          class="item"
          v-for="(item, index) in categoryList"
          :key="item.id"
          :class="{ active: index === activeIndex }"
          @tap="activeIndex = index"
        >
          <text class="name"> {{ item.name }} </text>
        </view>
      </scroll-view>
      <!-- 右側(cè):二級分類 -->
      <scroll-view class="secondary" scroll-y>
        <!-- 內(nèi)容區(qū)域 -->
        <view class="panel" v-for="item in subCategoryList" :key="item.id">
          <view class="title">
            <text class="name">{{ item.name }}</text>
            <navigator class="more" hover-class="none">全部</navigator>
          </view>
          <view class="section">
            <navigator
              v-for="goods in item.goods"
              :key="goods.id"
              class="goods"
              hover-class="none"
              :url="`/pages/goods/goods?id=${goods.id}`"
            >
              <image class="image" :src="goods.picture"></image>
              <view class="name ellipsis">{{ goods.name }}</view>
              <view class="price">
                <text class="symbol"></text>
                <text class="number">{{ goods.price }}</text>
              </view>
            </navigator>
          </view>
        </view>
      </scroll-view>
    </view>
  </view>
</template>

<style lang="scss">
page {
  height: 100%;
  overflow: hidden;
}
.viewport {
  height: 100%;
  display: flex;
  flex-direction: column;
}
/* 分類 */
.categories {
  flex: 1;
  min-height: 400rpx;
  display: flex;
}
/* 一級分類 */
.primary {
  overflow: hidden;
  width: 180rpx;
  flex: none;
  background-color: #f6f6f6;
  .item {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 96rpx;
    font-size: 26rpx;
    color: #595c63;
    position: relative;
    &::after {
      content: '';
      position: absolute;
      left: 42rpx;
      bottom: 0;
      width: 96rpx;
      border-top: 1rpx solid #e3e4e7;
    }
  }
  .active {
    background-color: #fff;
    &::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      width: 8rpx;
      height: 100%;
      background-color: #27ba9b;
    }
  }
}
.primary .item:last-child::after,
.primary .active::after {
  display: none;
}
/* 二級分類 */
.secondary {
  background-color: #fff;
  .carousel {
    height: 200rpx;
    margin: 0 30rpx 20rpx;
    border-radius: 4rpx;
    overflow: hidden;
  }
  .panel {
    margin: 0 30rpx 0rpx;
  }
  .title {
    height: 60rpx;
    line-height: 60rpx;
    color: #333;
    font-size: 28rpx;
    border-bottom: 1rpx solid #f7f7f8;
    .more {
      float: right;
      padding-left: 20rpx;
      font-size: 24rpx;
      color: #999;
    }
  }
  .more {
    &::after {
      font-family: 'erabbit' !important;
      content: '\e6c2';
    }
  }
  .section {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    padding: 20rpx 0;
    .goods {
      width: 150rpx;
      margin: 0rpx 30rpx 20rpx 0;
      &:nth-child(3n) {
        margin-right: 0;
      }
      image {
        width: 150rpx;
        height: 150rpx;
      }
      .name {
        padding: 5rpx;
        font-size: 22rpx;
        color: #333;
      }
      .price {
        padding: 5rpx;
        font-size: 18rpx;
        color: #cf4444;
      }
      .number {
        font-size: 24rpx;
        margin-left: 2rpx;
      }
    }
  }
}
</style>

接口 src\apis\category.ts

import type { CategoryTopItem } from '@/types/category'
import { http } from '@/utils/http'

/**
 * 分類列表
 */
export const getCategoryTopAPI = () => {
  return http<CategoryTopItem[]>({
    method: 'GET',
    url: '/category/top',
  })
}

類型聲明 src\types\category.d.ts

import type { GoodsItem } from './global'

/** 一級分類項 */
export type CategoryTopItem = {
  /** 二級分類集合[ 二級分類項 ] */
  children: CategoryChildItem[]
  /** 一級分類id */
  id: string
  /** 一級分類圖片集[ 一級分類圖片項 ] */
  imageBanners: string[]
  /** 一級分類名稱 */
  name: string
  /** 一級分類圖片 */
  picture: string
}

/** 二級分類項 */
export type CategoryChildItem = {
  /** 商品集合[ 商品項 ] */
  goods: GoodsItem[]
  /** 二級分類id */
  id: string
  /** 二級分類名稱 */
  name: string
  /** 二級分類圖片 */
  picture: string
}

src\types\global.d.ts文章來源地址http://www.zghlxwxcb.cn/news/detail-754735.html

/** 通用商品類型 */
export type GoodsItem = {
  /** 商品描述 */
  desc: string
  /** 商品折扣 */
  discount: number
  /** id */
  id: string
  /** 商品名稱 */
  name: string
  /** 商品已下單數(shù)量 */
  orderNum: number
  /** 商品圖片 */
  picture: string
  /** 商品價格 */
  price: number
}

到了這里,關(guān)于uniapp實戰(zhàn) —— 豎排多級分類展示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • uni-app 使用uCharts-進行圖表展示(折線圖帶單位)

    uni-app 使用uCharts-進行圖表展示(折線圖帶單位)

    前言 在uni-app經(jīng)常是需要進行數(shù)據(jù)展示,針對這個情況也是有人開發(fā)好了第三方包,來兼容不同平臺展示 uCharts和pc端的Echarts使用差不多,甚至?xí)杏X在uni-app使用uCharts更輕便,更舒服 但是這個第三方包有優(yōu)點就會有缺點,還會有坑的地方下面我會一一講解 uCharts使用-注意事項

    2024年02月09日
    瀏覽(17)
  • uni-app開發(fā)壁紙圖像小程序 瀑布流、懶加載展示

    uni-app開發(fā)壁紙圖像小程序 瀑布流、懶加載展示

    標(biāo)題:使用uni-app開發(fā)壁紙圖像小程序:瀑布流與懶加載展示 引言: 在今天的移動應(yīng)用市場中,壁紙圖像小程序備受歡迎。為了提高用戶體驗,我們可以使用uni-app框架來開發(fā)這樣的小程序,并實現(xiàn)瀑布流和懶加載展示功能。本文將介紹如何使用uni-app框架來開發(fā)壁紙圖像小程

    2024年02月15日
    瀏覽(19)
  • 關(guān)于uni-app中富文本展示,并可預(yù)覽圖片的實現(xiàn)

    關(guān)于uni-app中富文本展示,并可預(yù)覽圖片的實現(xiàn)

    這是一片記錄 自己挖坑還有填坑 的過程 事情是這樣的,我用uni-app框架編寫了一個項目,里面有個功能是通過接口傳過來的數(shù)據(jù),展示頁面,(富文本展示),一開始我是使用了uni-app自帶的 rich-text 組件,但是項目上線測試時,沒有 圖片預(yù)覽功能 ,所以我更換組件,使用

    2024年02月09日
    瀏覽(27)
  • uni-app動態(tài)tabBar,根據(jù)不同用戶展示不同的tabBar

    uni-app動態(tài)tabBar,根據(jù)不同用戶展示不同的tabBar

    因為我們用的是uni-app框架開發(fā),所以在創(chuàng)建項目的時候直接創(chuàng)建uni-ui的項目即可,這個項目模板中自帶了uni的一些好用的組件和api。 起初我想著這個效果不難實現(xiàn),因為官方也有api可以直接使用,所以我最開始嘗試就是使用uni的api完成,也就是這個 :uni.setTabBarItem(options) 我

    2024年02月09日
    瀏覽(27)
  • 『UniApp』uni-app-打包成App

    『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一節(jié)文章中,我給大家詳細的介紹了如何將我開發(fā)好的項目打包為微信小程序并且發(fā)布到微信小程序商店 趁熱打鐵,在來一篇文章,給大家詳細的介紹如何將項目打包成APP。 打包 App 也是一樣的,首先需要配置關(guān)于 App 應(yīng)用的基礎(chǔ)信息,打開 manifest

    2024年02月04日
    瀏覽(164)
  • 【UniApp】-uni-app-網(wǎng)絡(luò)請求

    【UniApp】-uni-app-網(wǎng)絡(luò)請求

    經(jīng)過上個章節(jié)的介紹,大家可以了解到 uni-app-pinia存儲數(shù)據(jù)的基本使用方法 那本章節(jié)來給大家介紹一下 uni-app-網(wǎng)絡(luò)請求 的基本使用方法 首先我們打開官方文檔,我先帶著大家看一下官方文檔的介紹:https://uniapp.dcloud.net.cn/api/request/request.html 從官方文檔中我們可以看到,可以

    2024年02月04日
    瀏覽(26)
  • 在uni-app中使用sku插件,實現(xiàn)商品詳情頁規(guī)格展示和交互。

    在uni-app中使用sku插件,實現(xiàn)商品詳情頁規(guī)格展示和交互。

    學(xué)會使用插件市場,下載并使用 SKU 組件,實現(xiàn) 商品詳情頁 規(guī)格展示和交互。 SKU 概念 存貨單位(Stock Keeping Unit),庫存管理的最小可用單元,通常稱為“單品”。 SKU 常見于電商領(lǐng)域,對于前端工程師而言,更多關(guān)注 SKU 算法 和 用戶交互體驗 。 uni-app 插件市場,是 uni-ap

    2024年01月19日
    瀏覽(26)
  • 【UniApp】-uni-app-打包成網(wǎng)頁

    【UniApp】-uni-app-打包成網(wǎng)頁

    經(jīng)過上一篇文章的介紹,已經(jīng)將這個計算器的計算功能實現(xiàn)了,接下來就是我們項目當(dāng)中的一個發(fā)包上線階段,我模擬一下,目的就是為了給大家介紹一下,uni-app是如何打包成網(wǎng)頁的。 除了可以打包成網(wǎng)頁,uni-app還可以打包成小程序、App、H5、快應(yīng)用等等,后面在單獨開文

    2024年02月04日
    瀏覽(49)
  • Uniapp uni-app學(xué)習(xí)與快速上手

    Uniapp uni-app學(xué)習(xí)與快速上手

    個人開源uni-app開源項目地址:準(zhǔn)備中 在線展示項目地址:準(zhǔn)備中 什么是uni-app uni,讀 you ni ,是統(tǒng)一的意思。 Dcloud即數(shù)字天堂(北京)網(wǎng)絡(luò)技術(shù)有限公司是W3C成員及HTML5中國產(chǎn)業(yè)聯(lián)盟發(fā)起單位,致力于推進HTML5發(fā)展構(gòu)建,HTML5生態(tài)。 2012年,DCloud開始研發(fā)小程序技術(shù),優(yōu)化webvie

    2024年02月09日
    瀏覽(95)
  • uni-app:對數(shù)組對象進行以具體某一項的分類處理

    uni-app:對數(shù)組對象進行以具體某一項的分類處理

    這里定義為五個數(shù)組,種類product有aaa,bbb兩種 原始數(shù)據(jù)在data中進行定義 注:使用了數(shù)組的 reduce() 方法來對 devices 數(shù)組進行循環(huán)遍歷,并根據(jù)每個設(shè)備對象中的 product 值將其分類到一個以 product 為名稱的數(shù)組中。 reduce() 方法接收一個回調(diào)函數(shù)和一個初始值作為參數(shù)。在這里,

    2024年02月07日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包