You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

875 lines
28 KiB

<template>
<view class="container" :style="'margin-bottom:'+(tabStyle.marginBottom*2)+'rpx;' + 'background-color:'+ (currentTab==='dating' || tabParms.goods_type ==='dating'?'#ffffff':'#f7f7f7') +';'">
<block v-if="controType==='options'">
<view class="tabBar-box">
<scroll-view class="scroll-view" scroll-x :style="'background-color:'+tabStyle.background+';'" :scroll-left="scroll_left">
<view class="tabBar-list">
<!-- currentTab===tabBarItem.type?'color:'+tabStyle.selectBg+';':+tabStyle.defaultBg+';' -->
<view @click="selectTabBar(tabData[key],'','',index + 1)" class="tabBar-item p-r f-32 t-c onelist-hidden" v-for="(tabBarItem,key,index) in tabData"
:key="index" :style="{color:(currentTab===tabBarItem.type?tabStyle.selectBg:tabStyle.defaultBg)}">{{tabBarItem.nickname}}
<!-- :style="'color:'+tabStyle.default,currentTab===tabBarItem.type?'background-color:'+tabStyle.selectBg+';':''" -->
<view :class="{'selectTabBar':currentTab===tabBarItem.type}" :style="{'color':tabStyle.default,'background-color':currentTab===tabBarItem.type?tabStyle.selectBg:''}"></view>
</view>
</view>
</scroll-view>
<view class="b-f" v-if="currentTab==='pocket' && !!children && children.length > 0" style="padding: 0 30upx 30upx;">
<v-tabs
:color="'#333333'"
:bgColor="'#ffffff'"
:activeColor="'#ffffff'"
:height="'40rpx'"
:paddingItem="'2rpx 20rpx'"
:fontSize="'24rpx'"
:activeFontSize="'24rpx'"
:pillsColor="'#ff4444'"
:pillsBorderRadius="'60rpx'"
v-model="sort"
:field="'title'"
:tabs="children"
:pills="true"
line-height="0"
:bold="false"
@change="vtabschange"></v-tabs>
</view>
</view>
</block>
<!-- 新加注释 - 技能培训等,第一版选项卡,第二版弃用 -->
<block v-if="controType==='options2' && currentTab !=='rush' && tabParms.goods_type !=='rush'">
<view class="tabBar-cn">
<view class="tabBar-box">
<scroll-view class="scroll-view" scroll-x :scroll-left="scroll_left">
<view class="tabBar-list" :style="'background-color:'+tabStyle.background+';'">
<view @click="selectTabBar_two(tabBarItem,index)" class="tabBar-item2 p-r f-32 t-c" v-for="(tabBarItem,index) in tabData"
:key="index" :style="{'color':currentTwoTab==index?tabStyle.selectBg:tabStyle.defaultBg,'width':tabParms.total>5?'20%': 100 / tabParms.total+'%'}">{{tabBarItem.name}}
<view :class="{'selectTabBar':currentTwoTab==index}" :style="currentTwoTab==index?'background-color:'+tabStyle.selectBg+';':''"></view>
</view>
</view>
</scroll-view>
</view>
<block v-if="!!tabParms.class_list&&tabParms.class_list.length>0">
<view class="tabBar-listTwo-box b-e6">
<scroll-view class="scroll-view" scroll-x="true" :scroll-left="scroll_left2">
<view class="tabBar-Twolist">
<view class="tabBar-Twolist-all m-right50 f-24 col-3 dis-il-block" :class="{tabClassiflySelect:classifly=='0'}"
@click="selectClassifly('0',1,false,-1,'全部')">全部</view>
<view class="f-24 col-3 m-right50 dis-il-block" :class="{tabClassiflySelect:classifly===listItem.id}" v-for="(listItem,index) in tabParms.class_list"
@click="selectClassifly(listItem.id,1,false,index,listItem.name)" :key="index">{{listItem.name}}</view>
</view>
</scroll-view>
</view>
</block>
</view>
</block>
<!-- 商家信息 -->
<block v-if="currentTab === 'store'">
<view class="shop " style="background-color: #F8F8F8;">
<view class="shangjia">
<view class="shangjia-i" style="margin: 30upx;" :class="{shangjiaISty: item2.goods.length == 0}" v-for="(item2, key2) in tabDataList"
:key="key2">
<view class="a shangjia-i-t" @click="navigateTo(item2.shop_url)">
<view class="shangjia-i-l">
<image class="image" :src="item2.logo" mode="aspectFill"></image>
</view>
<view class="shangjia-i-r">
<view class="shangjia-i-r-d">
<view class="dis-flex flex-y-center flex-x-between">
<view class="shop3-title-width shangjia-i-r-t1 over-omit onelist-hidden">{{ item2.storename }}</view>
<view class="store-containerIcon dis-flex flex-y-center">
<image :src="imgfixUrls + 'homePage/home_logo2.png'" class="image30" v-if="item2['attestation']['attestation'] == 2" />
<image :src="imgfixUrls + 'homePage/home_logo3.png'" class="image30" v-if="item2['attestation']['bondflag']?item2['attestation']['bondflag'] == 1:false" />
<image :src="imgfixUrls + 'diypage/720icon.png'" mode="" class="m-right10" v-if="item2.panorama===1"></image>
<image :src="imgfixUrls + 'diypage/videoicon.png'" mode="" v-if="item2.videourl===1"></image>
</view>
</view>
<view class="shangjia-i-r-t2 over-omit dis-flex flex-x-between flex-y-center">
<view class="dis-flex flex-y-center">
<view class="shangjia-i-r-t2-icon">
<view class="star star-dark">
<view class="i icon iconfont icon-shoucangxiao" v-for="(item3, key3) in 5" :key="key3"></view>
</view>
<view class="star star-light">
<view class="star-width" :style="'width:'+(item2.score / 5) * 100+'%;'">
<view class="i icon iconfont icon-shoucangxiao" v-for="(item3, key3) in 5" :key="key3"></view>
</view>
</view>
</view>
<view class="f-28 col-6 star-grade">{{item2.score}}分</view>
</view>
<view class="shop3-distance f-24 col-6" v-if="!!item2.distance">{{item2.distance}}</view>
</view>
<view class="shangjia-i-r-t3 over-omit">
<view class="p" v-html="item2.storehours"></view>
</view>
<view class="shangjia-i-r-t4 over-omit">
<view v-for="(item3,index3) in item2.tags" class="tags_view" :key="index3">{{item3}}</view>
</view>
</view>
</view>
</view>
<view class="shangjia-i-b" v-if="((shopFold && shopFoldIndex == key2) || (shopFoldIndex !== key2)) && item2.goods.length > 0">
<view class="shangjia-i-b-t1" v-if="item2.goods.length <= 2">
<view class="shangjia-i-b-i" v-for="(tag, key3) in item2.goods" :key="key3" v-if="key3 == 0">
<view class="em" :class="tag.css">{{ tag.tag }}</view>
<view class="span">{{ tag.name }}</view>
</view>
</view>
<view class="shangjia-i-b-t1" @click="shangjiaFold(key2)" v-if="item2.goods.length > 2">
<view class="i icon iconfont icon-unfold"></view>
<view class="shangjia-i-b-i" v-for="(tag, key3) in item2.goods" :key="key3" v-if="key3 == 0">
<view class="em" :class="tag.css">{{ tag.tag }}</view>
<view class="span">{{ tag.name }}</view>
</view>
</view>
<view class="shangjia-i-b-i" v-for="(tag, key3) in item2.goods" :key="key3" v-if="item2.goods.length == 2 && key3 == 1">
<view class="em" :class="tag.css">{{ tag.tag }}</view>
<view class="span">{{ tag.name }}</view>
</view>
<view class="shangjia-i-b-t2" v-if="item2.goods.length > 2">
<view class="em" :class="tag.css" v-for="(tag, key3) in item2.goods" :key="key3" v-if="key3 > 0">{{ tag.tag }}</view>
</view>
</view>
<view class="shangjia-i-b" v-if="!shopFold && shopFoldIndex == key2 && item2.goods.length > 2">
<view class="shangjia-i-b-t1" @click="shangjiaUpFold(key2)">
<view class="i icon iconfont icon-fold"></view>
<view class="shangjia-i-b-i" v-for="(tag, key3) in item2.goods" :key="key3">
<view class="em" :class="tag.css">{{ tag.tag }}</view>
<view class="span">{{ tag.name }}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</block>
<!-- 抢购 -->
<block v-if="currentTab ==='rush' || tabParms.goods_type ==='rush'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<goods-style goodsStyleType="rush" :goodslistData="rush_goodsList" @remindSuccess="remindSuccess"
:cc_id="newCC_id" @cultivateClassChange="cultivateClassChange"></goods-style>
</view>
</block>
<!-- 卡券 -->
<block v-if="currentTab==='coupon' || tabParms.goods_type ==='coupon'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<goods-style goodsStyleType="coupon" :goodslistData="couponList"></goods-style>
</view>
</block>
<!-- 折扣 -->
<block v-if="currentTab==='halfcard'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<card-components :disCardData_two="tabDataList" disCardType="disCard1" :disType="2"></card-components>
</view>
</block>
<!-- 拼团 -->
<block v-if="currentTab==='fight' || tabParms.goods_type==='wlfightgroup'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<goods-style goodsStyleType="fight" :goodslistData="fightList"></goods-style>
</view>
</block>
<!-- 同城 -->
<block v-if="currentTab==='pocket'">
<citywide :citywideList="tabDataList" @getaver="getaver"></citywide>
</block>
<!-- 团购 -->
<block v-if="currentTab ==='groupon' || tabParms.goods_type ==='groupon'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<goods-style goodsStyleType="groupon" :goodslistData="gpOrbrList"></goods-style>
</view>
</block>
<!-- 砍价 -->
<block v-if="currentTab ==='bargain' || tabParms.goods_type ==='bargain'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<goods-style goodsStyleType="bargain" :goodslistData="gpOrbrList"></goods-style>
</view>
</block>
<!-- 大礼包 -->
<block v-if="currentTab==='package'">
<view class="b-e6 padding-box-all" style="padding-bottom: 70upx;">
<giftbag-components :giftData_two="tabDataList" giftType="gift_type1" :disType="2"></giftbag-components>
</view>
</block>
<!-- 积分 -->
<block v-if="currentTab==='consumption'">
<integral :integralList="tabDataList"></integral>
</block>
<!-- 活动 -->
<block v-if="currentTab==='activity' || tabParms.goods_type ==='activity'">
<activity :tabDataList="activityList"></activity>
</block>
<!-- 招聘 -->
<block v-if="currentTab==='recruit' || tabParms.goods_type ==='recruit'">
<work-List :inviteList="inviteList" :tabStyle="true"></work-List>
</block>
<!-- 相亲 -->
<block v-if="currentTab==='dating' || tabParms.goods_type ==='dating'">
<view class="nav-content">
<view class="nav-item" v-for="(items,indexs) in datingList" :key="indexs">
<user :memberInfo="items"></user>
</view>
</view>
</block>
<!-- 家政 -->
<block v-if="currentTab==='housekeep' && tabParms.goods_type ==='housekeep'">
<view style="padding: 30upx;">
<view v-for="(items,indexs) in tabDataTwoList" :key="indexs">
<homemaking-item :items="items"></homemaking-item>
</view>
</view>
</block>
<block v-else-if="currentTab==='housekeep2'">
<view style="padding: 30upx;">
<view style="margin-bottom: 30upx;" v-for="(items,indexs) in tabDataTwoList" :key="indexs">
<demand-item :demanItem="items"></demand-item>
</view>
</view>
</block>
<block v-else-if="currentTab==='housekeep3'">
<view style="padding: 30upx;">
<view style="margin-bottom: 30upx;" v-for="(items,indexs) in tabDataTwoList" :key="indexs">
<myser-item :states="false" :serItem="items"></myser-item>
</view>
</view>
</block>
<view style="padding-bottom: 10px; background-color: #F8F8F8;">
<load-more :isMore="loadingMore"></load-more>
</view>
</view>
</template>
<script>
import App from '@/common/js/app.js'
import demandItem from '@/components/template/demandItem.vue'
import myserItem from '@/components/template/myserItem.vue'
import cardComponents from '@/components/page/pageComponents/discountCard.vue'
import giftbagComponents from '@/components/page/pageComponents/giftbag.vue'
import citywide from '@/components/page/pageComponents/citywide.vue'
import integral from '@/components/page/pageComponents/integral.vue'
import goodsStyle from '@/components/page/pageComponents/goodsStyle.vue'
import loadMore from '@/components/template/loadmore.vue'
import activity from '@/components/template/activityData.vue'
import workList from '@/components/template/workList.vue'
import user from '@/components/template/user.vue'
import homemakingItem from '@/components/template/homemakingItem.vue'
import vTabs from '@/components/v-tabs/v-tabs.vue'
export default {
data() {
return {
scroll_left: 0,
currentTab: null,
currentTwoTab: 0,
classifly: "0",
tabDataList: null,
tabDataTwoList: null,
shopFold: true,
shopFoldIndex: -1,
Twotabtype: null,
requestData: {},
loadingMore: false,
pageTotal: null,
current_page: 1,
currentTabItem: {},
requestTwoSelectInfo: null,
scroll_left2: 0,
imgUrl:'',
cate_id:'',
onekey:'',
sort:0,
children:[],
idIndex:'',
cc_child_id: '',
}
},
props: {
tabData: {
type: Object,
default: function() {
return {}
}
},
tabStyle: {
type: Object,
default: function() {
return {}
}
},
tabParmsType: {
type: Array,
default: function() {
return []
}
},
controType: {
type: String,
default: function() {
return ''
}
},
city_id:{
type:String,
default:function(){
return ''
}
},
newCC_id: {
type:String||Number,
default: 1
}
},
components: {
cardComponents,
giftbagComponents,
citywide,
integral,
goodsStyle,
loadMore,
activity,
workList,
user,
homemakingItem,
demandItem,
myserItem,
vTabs
},
onShow() {
},
onLoad() {
},
mounted() {
this.imgUrl = this.imgfixUrl;
// debugger
uni.$on('tabisBottomMore', this.tabInfomore);
},
destroyed() {
uni.$off('tabisBottomMore', this.tabInfomore);
},
computed: {
istabbarcontro() {
return this.$store.state.istabcontro;
},
rush_goodsList: {
get() {
return this.currentTab === 'rush' ? this.tabDataList : this.tabDataTwoList;
},
set(val) {
return val
}
},
fightList() {
return this.currentTab === 'fight' ? this.tabDataList : this.tabDataTwoList;
},
gpOrbrList() {
return (this.currentTab === 'groupon' || this.currentTab === 'bargain') ? this.tabDataList : this.tabDataTwoList;
},
couponList() {
return this.currentTab === 'coupon' ? this.tabDataList : this.tabDataTwoList;
},
activityList() {
return this.currentTab === 'activity' ? this.tabDataList : this.tabDataTwoList;
},
inviteList() {
return this.currentTab === 'recruit' ? this.tabDataList : this.tabDataTwoList;
},
datingList() {
return this.currentTab === 'dating' ? this.tabDataList : this.tabDataTwoList;
},
tabParms() {
return this.tabParmsType.length > 0 ? this.tabParmsType[0] : this.tabParmsType
},
curLoction() {
return uni.getStorageSync('curLoction')
}
},
watch: {
'tabData': {
handler(newData, oldData) {
if (!!newData && Object.keys(newData)['length'] > 0) {
// let tabItem = Object.keys(newData)[0];
let tabItem = 0;//还给除了抢购首页其余模块一个this.selectTabBar_two(newData[tabItem],0)
let arr112 = Object.keys(newData);
for(let j = 0;j <arr112.length; j++){
if(j+1 == this.newCC_id){
tabItem = Object.keys(newData)[j];
}
}
if (this.controType === 'options2') {
if(this.onekey){
this.selectTabBar_two(newData[this.onekey],0)
}else{
this.currentTabData = newData[tabItem],this.currentTabItem = tabItem;//切换子分类需要用到
this.selectTabBar_two(newData[tabItem],tabItem)
//首次打开抢购首页(技能培训等)执行这里
}
} else {
this.selectTabBar(newData[tabItem])
}
}
},
immediate: true,
deep: true
},
},
methods: {
vtabschange(e){
this.sort = e;
this.selectTabBar(this.currentTabItem,1,false,'',e)
},
handleMemberClick(item) {
App.navigationTo({
url: `pages/subPages2/blindDate/member/detail?id=${item.id}`
})
},
getaver(id,bor){
let _this = this;
_this.tabDataList.forEach(item=>{
if(item.id == id){
if(bor){
_this.$set(item,'fabulous_num',item.fabulous_num + 1);
item.look++;
_this.$set(item,'is_fabulous',1);
item.fabulous_avatar.push(uni.getStorageSync('userinfo').avatar);
// item.fabulous_avatar.forEach((items,index)=>{
// if(items == uni.getStorageSync('userinfo').avatar){
// item.fabulous_avatar.splice(index, 1);
// }
// })
}else{
_this.$set(item,'fabulous_num',item.fabulous_num - 1);
item.look--;
_this.$set(item,'is_fabulous',0);
item.fabulous_avatar.forEach((items,index)=>{
if(items == uni.getStorageSync('userinfo').avatar){
item.fabulous_avatar.splice(index, 1);
}
})
}
}
})
// this.aolist = false;
// this.aolist = true;
},
changeItem(tabItem ,index) {
let _this = this
let tabArrary = []
for (let key in _this.tabData) {
tabArrary.push(key)
}
if (index > 2 && index < (tabArrary.length - 1)) {
if (index == 3) {
_this.scroll_left = 0
} else if (index == tabArrary.length - 2) {
_this.scroll_left = uni.upx2px(150 * (tabArrary.length + 3))
} else {
_this.scroll_left = uni.upx2px(150 * (index - 3))
}
} else if (index < 3) {
_this.scroll_left = 0
} else if (index > (tabArrary.length - 2)) {
_this.scroll_left = uni.upx2px(150 * (tabArrary.length + 3))
}
},
selectTabBar(tabItem, page = 1, isPage = false,index,id) {
//#ifdef H5
let pageurl = location.href,
pages = pageurl.split('/#/')[1].split('?')[0];
// if(pages == 'pages/mainPages/index/diypage') return; 这里退出会导致自定义页面无法加载
//#endif
uni.showLoading({})
let _this = this,
requestUrl = '&' + tabItem.request_link,
requestData = {
page,
is_total: "1",
lat: !!_this.curLoction ? _this.curLoction.latitude : '',
lng: !!_this.curLoction ? _this.curLoction.longitude : ''
};
// debugger
if(tabItem.type == 'pocket'){
requestData.homeflag = 1;
if(id){
requestData.id = _this.children[id].id;
}
}
_this.changeItem(tabItem,index)
App._post_form(requestUrl, requestData, res => {
if (tabItem.type === 'store' || _this.currentTab === 'store') {
for (let i = 0; i < res.data.list.length; i++) {
let goodsList = [];
for (let j in res.data.list[i].goods) {
let goodsData = res.data.list[i].goods[j];
if (goodsData !== '') {
if (j == 'active') {
goodsData.css = 'qiang'
goodsData.tag = '抢'
} else if (j == 'coupon') {
goodsData.css = 'hui'
goodsData.tag = '券'
} else if (j == 'fightgroup') {
goodsData.css = 'pin'
goodsData.tag = '拼'
} else if (j == 'groupon') {
goodsData.css = 'tuan'
goodsData.tag = '团'
} else if (j == 'halfcard') {
goodsData.css = 'ka'
goodsData.tag = '卡'
} else if (j == 'packages') {
goodsData.css = 'li'
goodsData.tag = '礼'
} else if (j == 'bargain') {
goodsData.css = 'kan'
goodsData.tag = '砍'
}else if(j == 'activity'){
goodsData.css = 'huo'
goodsData.tag = '活'
}
goodsList.push(goodsData);
}
}
res.data.list[i].goods = goodsList;
}
}
if (isPage) {
if (res.data.list.length > 0) {
_this["tabDataList"].push(...res.data.list);
} else {
_this.loadingMore = true;
}
} else {
// debugger
_this.setData({
current_page: 1,
currentTab: tabItem.type,
tabDataList: res.data.list,
pageTotal: res.data.total,
loadingMore: res.data.list.length === 0 || _this.current_page === res.data.total,
currentTabItem: tabItem
})
if(tabItem.type == 'pocket' && !!res.data.children && !id){
_this.children = res.data.children;
}
}
uni.hideLoading()
}, false, () => {})
},
selectTabBar_two(tabItem,isindex, page = 1, isPage = false) {
// console.log(tabItem,isindex, page, isPage, '======njkfsadsad')
if(isindex){
this.onekey = isindex
// this.onekey = Object.keys(this.tabData)[isindex]
}else if(!this.onekey){
this.onekey = Object.keys(this.tabData)[0];//获取第一个key值,默认高亮
}
let cartid = uni.getStorageSync('cate_id');
uni.showLoading({
mask:true
})
let _this = this,
requestUrl = '&' + tabItem.request_link,
requestData = {
page,
is_total: "1",
lat: _this.curLoction ? _this.curLoction.latitude : '',
lng: _this.curLoction ? _this.curLoction.longitude : '',
status: tabItem.status,
sort: tabItem.orders || ''
};
if (tabItem.request_link === "p=dating&do=homeList") {
Object.assign(requestData, {
gneder: tabItem.gneder || '0'
})
}
if (tabItem.request_link === "p=rush&do=homeList") {
Object.assign(requestData, {
cate_id: cartid || '0'
})
}
if (tabItem.request_link === "p=rush&do=homeList") {
Object.assign(requestData, {
cate_id: cartid || '0'
})
}
if(tabItem.request_link === "p=housekeep&do=getNewStorelist" || tabItem.request_link === "p=housekeep&do=getStorelist" || tabItem.request_link === "p=housekeep&do=getArtificerlist"){
this.currentTab = 'housekeep';
requestData.status = 1;
}
if(tabItem.request_link === "p=housekeep&do=getDemandlist"){
this.currentTab = 'housekeep2';
// requestData.status = 1;
}
if (tabItem.request_link === "p=housekeep&do=getServicelist") {
requestData.status = 1;
this.currentTab = 'housekeep3';
}
if(cartid){
Object.assign(requestData, {
cate_id: cartid
})
}else if(_this.cate_id){
// _this.classifly = _this.cate_id;
requestData.cate_id = _this.cate_id
}else{
_this.classifly = '0';
}
// debugger
_this.changeItem(tabItem);
//#ifdef H5
let pageurl = location.href;
//#endif
// 抢购首页的商品列表需要添加参数
if (tabItem.request_link === "p=rush&do=homeList") {
Object.assign(requestData, {
cc_id: tabItem.cc_id,
sort: 3,
cc_child_id: this.cc_child_id
})
}
App._post_form(requestUrl, requestData, res => {
if (isPage) {
if (res.data.list.length > 0) {
_this["tabDataTwoList"].push(...res.data.list);
_this.loadingMore = true;
} else {
_this.loadingMore = true;
}
} else {
// _this.tabDataTwoList = [];
_this.setData({
current_page: 1,
currentTwoTab: isindex || this.onekey,
tabDataTwoList: res.data.list,
pageTotal: res.data.total,
loadingMore: res.data.list.length === 0 || _this.current_page === res.data.total,
Twotabtype: _this.tabParms.goods_type,
requestData: requestData,
currentTabItem: tabItem,
requestTwoSelectInfo: requestUrl
});
// debugger
}
if(cartid){
_this.classifly = cartid;
let index;
// debugger
_this.tabParms.class_list.map((item,indexs)=>{
if(item.id == cartid){
index = indexs;
}
})
const query = uni.createSelectorQuery().in(this);
query.selectAll('.dis-il-block, .some-other-nodes').boundingClientRect(data => {
let marinfo = uni.upx2px(50),
padInfo = uni.upx2px(24),
marWid = index * marinfo,
itemWid = ((data[index].width) / 2) + padInfo, //当前选中大小
windowWid = (uni.upx2px(690)) / 2, //当前容器大小
arrlength = 0;
for (let i = 0; i < index; i++) {
arrlength = arrlength + data[i].width
}
arrlength = arrlength + marWid + itemWid //选中前全部选项大小
_this.scroll_left2 = arrlength - windowWid
}).exec();
}
// if(tabItem.request_link == "p=activity&do=homeList"){
// _this.currentTab = 'activity';
// }
_this.loadingMore = true;
}, false, () => {
uni.hideLoading()
})
},
selectClassifly(cate_id, page = 1, isPage = false, index1, item) {
uni.showLoading({})
let _this = this,
classRequestData = {
..._this.requestData,
cate_id,
page
},
requestTwoSelectInfo = _this.requestTwoSelectInfo;
let index = index1 + 1;
_this.cate_id = cate_id;
const query = uni.createSelectorQuery().in(this);
query.selectAll('.dis-il-block, .some-other-nodes').boundingClientRect(data => {
let marinfo = uni.upx2px(50),
padInfo = uni.upx2px(24),
marWid = index * marinfo,
itemWid = ((data[index].width) / 2) + padInfo, //当前选中大小
windowWid = (uni.upx2px(690)) / 2, //当前容器大小
arrlength = 0;
for (let i = 0; i < index; i++) {
arrlength = arrlength + data[i].width
}
arrlength = arrlength + marWid + itemWid //选中前全部选项大小
_this.scroll_left2 = arrlength - windowWid
}).exec();
App._post_form(requestTwoSelectInfo, classRequestData, res => {
if (isPage) {
if (res.data.list.length > 0) {
_this["tabDataTwoList"].push(...res.data.list);
} else {
_this.loadingMore = true;
}
} else {
_this.setData({
current_page: 1,
tabDataTwoList: res.data.list,
pageTotal: res.data.total,
loadingMore: res.data.list.length === 0 || _this.current_page === res.data.total,
Twotabtype: _this.tabParms.goods_type,
classifly: cate_id
})
}
}, false, () => {
uni.hideLoading()
})
},
navigateTo(url) {
let isHttpUrl = url.indexOf('https') !== -1;
if (isHttpUrl) {
location.href = url;
} else {
App.navigationTo({
url: url
})
}
},
shangjiaFold(key2) {
this.shopFold = false
this.shopFoldIndex = key2
},
shangjiaUpFold(key2) {
this.shopFold = true
this.shopFoldIndex = key2
},
// 抢购关注事件
remindSuccess(goodsData, goodsIndex) {
this.rush_goodsList.splice(goodsIndex, 1, goodsData[goodsIndex]);
},
// 商品切换二级分类
cultivateClassChange(e){
this.cc_child_id = e;
this.selectTabBar_two(this.currentTabData, this.currentTabItem);
},
tabInfomore() {
let _this = this;
if (_this.current_page >= _this.pageTotal) {
_this.loadingMore = true;
return false;
}
if(_this.city_id){
_this.classifly = _this.city_id;
}
if (_this.controType === 'options2') {
if (!!_this.tabParms.class_list && _this.tabParms.class_list.length > 0) {
_this.selectClassifly(_this.classifly, ++_this.current_page, true)
} else {
// if(_this.currentTab == 'housekeep' || _this.currentTab == 'housekeep2' || _this.currentTab == 'housekeep3') return
_this.selectTabBar_two(_this.currentTabItem,0, ++_this.current_page, true)
}
} else {
_this.selectTabBar(_this.currentTabItem, ++_this.current_page, true,'',_this.sort);
}
}
}
}
</script>
<style lang="scss" scoped>
@import "../../../common/css/old_diyPages";
.tabBar-list {
height: 100upx;
line-height: 100upx;
white-space: nowrap;
.tabBar-item2 {
// width: 20%;
display: inline-block;
.selectTabBar {
position: absolute;
left: 50%;
bottom: 0;
width: 58upx;
height: 8upx;
background: rgba(255, 68, 68, 1);
border-radius: 8upx 8upx 0 0;
transform: translateX(-50%);
}
}
.tabBar-item {
width: 150upx;
display: inline-block;
.selectTabBar {
position: absolute;
left: 50%;
bottom: 0;
width: 58upx;
height: 8upx;
background: rgba(255, 68, 68, 1);
border-radius: 8upx 8upx 0 0;
transform: translateX(-50%);
}
}
}
.fui-groupon_goods-i-r-storeTitle {
height: 2.6em;
line-height: 1.3em;
}
.tabBar-listTwo-box {
padding: 30upx 30upx 0;
}
.tabBar-Twolist {
font-size: 0;
white-space: nowrap;
}
.tabClassiflySelect {
padding: 0 25upx;
height: 50upx;
line-height: 50upx;
background-color: #FFEBEB;
border-radius: 26upx;
color: #FF4444;
margin-right: 50upx;
}
.nav-content {
width: 690rpx;
margin: 30upx auto 0;
display: flex;
flex-wrap: wrap;
justify-content:space-between;
}
.nav-item {
width: 335rpx;
height: auto;
border-radius: 20rpx;
overflow: hidden;
background-color: #F8F8F8;
margin-bottom: 20rpx;
}
</style>