| | |
| | | <view class="list"> |
| | | <scroll-view class="list-left" scroll-y="true"> |
| | | <view class="list-left-row" |
| | | v-for="(item,index) in typeList" |
| | | :class="index==selectIndex?'active':''" |
| | | @click="changeType(item.id, index)"> |
| | | <text>{{item.name}}</text> |
| | | v-for="item in typeList" |
| | | :class="item.id==typeId?'active':''" |
| | | @click="changeType(item.id)"> |
| | | <text>{{item.articleTypeName}}</text> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view class="list-right" scroll-y="true"> |
| | | <navigator :url="'../productDetail/index?id='+item.id" hover-class="none" v-for="item in list"> |
| | | <scroll-view class="list-right" scroll-y="true" @scrolltolower="scrolltolower()"> |
| | | <navigator :url="'./knowledgeDetail?id='+item.id" hover-class="none" v-for="item in list"> |
| | | <view class="list-right-row"> |
| | | <image class="product-img" :src="item.img?item.img:'../../../static/images/no-img.png'"></image> |
| | | <image class="product-img" :src="item.image?item.image:'../../static/images/no-img.png'"></image> |
| | | <view class="flex-1"> |
| | | <text>{{item.name}}</text> |
| | | <view class="flex justify-between mt-15"> |
| | | <text class="price">¥{{item.price}}</text> |
| | | <text class="font-13">{{item.title}}</text> |
| | | <view class="desc"> |
| | | <text>{{item.articleTypeName}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </navigator> |
| | | <no-record :isShow="!list.length"></no-record> |
| | | <view v-if="list.length"> |
| | | <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; |
| | | export default { |
| | | components: { |
| | | uniLoadMore |
| | | }, |
| | | data(){ |
| | | return{ |
| | | typeList: [{ |
| | | name: '312', |
| | | id: 2 |
| | | }], |
| | | list: [{ |
| | | name: '312', |
| | | id: 2 |
| | | }], |
| | | selectIndex: 0 |
| | | typeList: [], |
| | | list: [], |
| | | typeId: '', |
| | | loadStatus: 'more', |
| | | pageNum: 1 |
| | | } |
| | | }, |
| | | onLoad(options) { |
| | | this.loadTypeList() |
| | | }, |
| | | onPullDownRefresh(){ |
| | | this.reloadData(); |
| | | let timer = setTimeout(function () { |
| | | uni.stopPullDownRefresh(); |
| | | clearTimeout(timer); |
| | | timer = null; |
| | | }, 800); |
| | | }, |
| | | methods:{ |
| | | reloadData(){ |
| | | this.list = []; |
| | | this.pageNum = 1; |
| | | this.loadStatus = 'more'; |
| | | this.loadList(); |
| | | }, |
| | | scrolltolower(){ |
| | | this.loadList() |
| | | }, |
| | | loadTypeList(){ |
| | | this.$httpUtils.request('/api/know/findKnowledgeType').then((res) => { |
| | | if(res.status == 200){ |
| | | this.typeList = res.rows; |
| | | let result = res.rows; |
| | | this.typeList = result; |
| | | if(result.length){ |
| | | this.typeId = result[0].id; |
| | | this.loadList() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | loadList(){ |
| | | if(this.loadStatus!=='more'){ |
| | | return; |
| | | } |
| | | this.$httpUtils.request('/api/know/findArticleList', { |
| | | pageNum: this.pageNum, |
| | | pageSize: 10, |
| | | typeId: this.typeId |
| | | }, 'POST').then((res) => { |
| | | if(res.status == 200){ |
| | | let result = res.rows; |
| | | if(result.length < 10){ |
| | | this.loadStatus = 'noMore'; |
| | | } else { |
| | | this.pageNum ++ ; |
| | | this.loadStatus = 'more'; |
| | | } |
| | | this.list = this.list.concat(result); |
| | | } |
| | | }) |
| | | }, |
| | | changeType(id){ |
| | | this.typeId = id; |
| | | this.reloadData() |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | .list-left{ |
| | | width: 170rpx; |
| | | flex: 0 0 170rpx; |
| | | background: #F6F6F8; |
| | | border-radius: 4px; |
| | | } |
| | |
| | | } |
| | | .list-right-row{ |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 10px; |
| | | margin: 0 10px 10px; |
| | | border: 1px solid #EDEAF4; |
| | | box-shadow:0 6px 6px rgba(237,234,244,0.5); |
| | | border-radius: 4px; |
| | | font-size: 13px; |
| | | font-size: 12px; |
| | | } |
| | | .list-right-row .product-img{ |
| | | width: 66px; |
| | | height: 66px; |
| | | margin-right: 5px; |
| | | width: 62px; |
| | | height: 62px; |
| | | margin-right: 10px; |
| | | } |
| | | .desc{ |
| | | margin-top: 8px; |
| | | color: #a5abaf; |
| | | word-break: break-all; |
| | | text-overflow: -o-ellipsis-lastline; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | | line-clamp: 2; |
| | | -webkit-box-orient: vertical; |
| | | } |
| | | </style> |