|
|
- <template>
- <view class="page">
- <navbar bgColor="#DC2828"/>
-
- <view class="category">
- <uv-vtabs
- :chain="chain"
- :list="category"
- keyName="title"
- :barItemBadgeStyle="{right:'20px',top:'12px'}"
- @change="change">
- <uv-vtabs-item>
- <view class="category-title">
- 租赁
- </view>
- <view class="list">
- <view class="item" v-for="(item,index) in list" :key="index"
- @click="$utils.navigateTo(`/pages_order/product/productDetail?id=${item.id}`)">
- <view class="item-image">
- <image
- :src="item.image"
- mode="aspectFill"></image>
- </view>
- <view class="item-unit">
- <text class="text">{{item.name}}</text>
- </view>
- </view>
- </view>
- </uv-vtabs-item>
- </uv-vtabs>
- </view>
-
- <tabber select="category" />
- </view>
- </template>
-
- <script>
- import tabber from '@/components/base/tabbar.vue'
-
- export default {
- components: {
- tabber,
- },
- data() {
- return {
- category: [],
- list: [],
- chain: false,
- value: 0
- }
- },
- computed: {
- list2() {
- const _list = this.list[this.value]?.childrens;
- return _list ? _list : [];
- }
- },
- onLoad() {
- this.getCategory()
- },
- methods: {
- // 获取分类列表
- getCategory() {
- this.$api('getIcon', res => {
- if(res.code == 200) {
- this.category = res.result
- if(this.category.length > 0) {
- this.getProductList(this.category[0].id)
- }
- }
- })
- },
- // 获取商品列表
- getProductList(shopIconId) {
- this.$api('getProductList', {
- shopIconId: shopIconId,
- pageNo: 1,
- pageSize: 99999
- }, res => {
- if(res.code == 200) {
- this.list = res.result.records
- }
- })
- },
- change(index) {
- console.log('选项改变:', index)
- this.value = index;
- if(this.category[index]) {
- this.getProductList(this.category[index].id)
- }
- }
- }
- }
- </script>
-
- <style scoped lang="scss">
- .page{
- /deep/ .uv-vtabs{
- height: calc(100vh - 360rpx) !important;
- }
- /deep/ .uv-vtabs__bar{
- height: calc(100vh - 360rpx) !important;
- }
- /deep/ .uv-vtabs__content{
- height: calc(100vh - 360rpx) !important;
- }
- }
- .category {
- font-size: 30rpx;
- color: #333;
- .category-title{
- position: relative;
- display: flex;
- justify-content: center;
- align-items: center;
- height: 120rpx;
-
- &::before,
- &::after {
- position: absolute;
- top: 50%;
- content: '';
- width: 10%;
- border-top: 2rpx solid black;
- }
-
- &::before {
- left: 25%;
- }
-
- &::after {
- right: 25%;
- }
- }
- .list{
- display: flex;
- flex-wrap: wrap;
- margin: 0 auto;
- width: 490rpx;
- .item {
- padding: 10rpx 20rpx;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- margin-bottom: 20rpx;
- .item-image {
- width: 120rpx;
- height: 120rpx;
- image{
- height: 100%;
- width: 100%;
- border-radius: 50%;
- }
- }
-
- .item-unit {
- font-size: 24rpx;
- margin-top: 15rpx;
- color: #555;
- }
- }
-
- .gap {
- padding: 0 30rpx;
- }
- }
-
- }
- </style>
|