java-mall-app/pages/category/storeCategory.vue
2025-09-08 15:31:13 +08:00

198 lines
11 KiB
Vue

<template>
<view class="storeCategory">
<scroll-view class="category_left" scroll-y>
<view
v-for="(item, index) in categoryMenu"
:class="[
'item',
{
current: categoryMenuIndex === index,
},
]"
@click="categoryMenuClick(index, $event)"
>
{{ item.name }}
</view>
</scroll-view>
<scroll-view class="category_right" scroll-y v-if="categoryList.length > 0" >
<view v-for="(item, index) in categoryList" class="box" :key="index">
<view class="tit">{{ item.name }}</view>
<view class="list">
<navigator class="item" :url="`/pagesub/index/store?store_id=${shop.store_id}`" v-if="item.storeList!=null" v-for="(shop, cur) in item.storeList.items" :key="cur">
<image lazy-load class="img" :src="shop.store_logo"></image>
<view class="desc">{{ shop.store_name }}</view>
</navigator>
</view>
<view class="nodata" v-if="item.storeList.items.length==0">该分类暂无店铺数据</view>
</view>
</scroll-view>
<view v-if="categoryList.length == 0" class="nodata2"><image
src="data:image/png;base64,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"
class="icon_nodata"
mode="aspectFit"
></image>暂无分类数据</view>
</view>
</template>
<script>
import { mapState } from "vuex";
export default {
data() {
return {
categoryMenu: [],
categoryList: [],
categoryMenuIndex: 0,
};
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
mounted() {
const _this = this;
const params = {
openFindStore: true,
pageSize: 9999,
};
this.$.request({
url: this.Config.URL.store.category,
data: params,
dataType: "json",
success(data, status, msg, code) {
const items = data.items
_this.categoryMenu = items;
_this.categoryList = items[_this.categoryMenuIndex]?.sub || [];
},
});
},
methods: {
categoryMenuClick(index) {
this.categoryMenuIndex = index;
this.categoryList = this.categoryMenu[index]?.sub || [];
console.log(this.categoryList,'categoryList');
},
},
};
</script>
<style lang="scss" scoped>
.category_left {
width: 200rpx;
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 1;
box-sizing: border-box;
background: #fff;
.item {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #333;
font-size: 28rpx;
padding: 24rpx 0;
box-sizing: border-box;
text-align: center;
&.current {
color: #fe411b;
background: #f4f4f4;
font-weight: bold;
position: relative;
&::after{
display: block;
content: " ";
width: 4rpx;
height: 100%;
position: absolute;
left:0;
top: 0;
background: #fe411b;
}
}
}
}
.category_right {
width: calc(100vw - 212rpx - 10rpx);
position: absolute;
top: 12rpx;
bottom: 12rpx;
left: 212rpx;
z-index: 1;
.box {
min-height: 180rpx;
padding: 24rpx 12rpx 24rpx 30rpx;
border-radius: 12rpx;
margin-bottom: 12rpx;
background: #fff;
.list{
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 30rpx;
}
.tit{
padding-bottom: 20rpx;
}
.item{
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 140rpx;
.img{
width: 140rpx;
height: 140rpx;
border-radius: 8rpx;
margin-bottom: 8rpx;
}
.desc{
width: 140rpx;
text-align: center;
font-size: 24rpx;
color: #666;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
.nodata{
text-align: center;
color: #999;
padding: 50rpx;
font-size: 24rpx;
background: #fff;
}
}
.nodata2{
width: calc(100vw - 212rpx - 10rpx);
position: absolute;
top: 12rpx;
bottom: 12rpx;
left: 212rpx;
z-index: 1;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
color: #999;
font-size: 24rpx;
background: #fff;
.icon_nodata{
display: block;
width: 300rpx;
}
}
</style>