Files
xk-client-wx/pages/cate/index.vue
2024-09-19 12:51:35 +08:00

250 lines
5.2 KiB
Vue

<template>
<view class="container safe-area-inset-bottom">
<!-- 搜索 -->
<view class="search">
<u-search placeholder="输入文章标题" bg-color="#F5f5f5" color="#DDDDDD" border-color="#F5f5f5"
:show-action="false" maxlength="21" height="66" :clearabled="true" shape="round" v-model="keyword"
@search="toSearch">
</u-search>
</view>
<!-- 商品 -->
<!-- //药品分类左 -->
<view class="goods">
<view class="goods_left" @touchmove.stop>
<scroll-view scroll-y scroll-with-animation class="u-menu-scroll-view" :scroll-top="scrollTop"
:scroll-into-view="itemId">
<view v-for="(item,index) in categoryLists" :key="item.id" class="u-tab-item"
:class="[num == item.id ? 'u-item-active' : '']" @tap.stop="changeStyle(item.id)"
@click="handleCategory1(item.id,index)">
<text class="u-line-1">{{item.name}}</text>
</view>
</scroll-view>
</view>
<!-- //药品分类右 -->
<view class="goods_right">
<!-- 药品 -->
<view class="second">
<!-- 商品列表 -->
<view class="list" v-for="(item,index) in infoList" @click="toDetail(item.id)" :key="item.id">
<view class="list_">
<image :src="item.cover||'/static/xx/cp.png'" mode=""></image>
<view class="list_title">
{{item.title}}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
categoriesList,
articleList,
addCart
} from '../../request/api/api'
export default {
data() {
return {
keyword: "",
scrollTop: 0, //tab标题的滚动条位置
oldScrollTop: 0, // tab标题的滚动条旧位置
current: 1, // 预设当前项的值
num: 1,
itemId: '', // 栏目右边scroll-view用于滚动的id
categoryLists: [], //分类
cid: 1, //分类一级id
infoList: [],
selectIndex: 0,
arr: [], // 储存距离顶部高度的数组
scrollRightTop: 0, // 右边栏目scroll-view的滚动条高度
show: false
}
},
onLoad(op) {
},
methods: {
// 搜索
toSearch() {
this.getList()
},
/*切换需要*/
changeStyle(id) {
this.num = id
},
// 详情
toDetail(e) {
uni.navigateTo({
url: '/pages/cate/info-detail?id=' + e
})
},
//点击药品一级分类e
handleCategory1(e, index) {
this.num = e
this.cid = e
this.getArticleList()
},
//获取药品分类
getList() {
categoriesList({
method: "post",
data: {
store_id: uni.getStorageSync('store_id') || '11001',
}
}).then((res) => {
// console.log(res, 'list');
if (res.data.errcode == 0) {
// console.log(res, 'res');
this.categoryLists = res.data.data.list
this.cid = res.data.data.map(x => x.id)
this.num = res.data.data[0].id //初始选中
// this.current = res.data.data[0].subs[0].id //初始选中2
}
})
this.getArticleList()
},
// 文章列表
getArticleList() {
articleList({
method: "get",
data: {
store_id: uni.getStorageSync('store_id') || '11001',
cid: this.cid
}
}).then((res) => {
// console.log(res, 'list');
if (res.data.errcode == 0) {
this.infoList = res.data.data.list
// console.log(res, 'list')
}
})
}
},
mounted() {
// this.getList();
},
onShow() {
this.getList();
}
}
</script>
<style lang="scss" scoped>
.container {
background: #F6F9FB;
width: 750rpx;
max-height: 100%;
min-height: 100vh;
padding-bottom: env(safe-area-inset-bottom);
.search {
width: 750rpx;
background-color: #fff;
height: 98rpx;
margin: 0 auto;
padding: 16rpx 30rpx;
.u-search {
width: 686rpx;
height: 66rpx;
margin: 0 auto;
}
}
.goods {
width: 750rpx;
min-height: calc(100vh - 98rpx);
display: flex;
.goods_left {
width: 184rpx;
background: #fff;
margin-right: 16rpx;
.u-tab-item {
width: 184rpx;
height: 100rpx;
text-align: center;
line-height: 100rpx;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: bold;
color: #9EA7B1;
}
.u-item-active {
width: 184rpx;
height: 100rpx;
text-align: center;
line-height: 100rpx;
background: #F6F9FB;
border-left: 4rpx solid #4175EE;
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #232323;
}
}
.goods_right {
width: 530rpx;
background: #F6F9FB;
.second {
width: 530rpx;
text-align: center;
margin-top: 20rpx;
.list {
.list_ {
width: 500rpx;
height: 246rpx;
background: #FFFFFF;
border-radius: 12rpx 12rpx 0rpx 0rpx;
position: relative;
margin: 10rpx auto;
image {
width: 100%;
height: 100%;
border-radius: 8rpx;
}
.list_title {
width: 100%;
position: absolute;
left: 0%;
bottom: 0;
height: 92rpx;
font-size: 22rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
background: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
padding: 0 34rpx;
}
}
}
}
}
}
}
</style>