新增没有页房源绑定时的默认页面

This commit is contained in:
赵毅 2025-08-05 10:34:00 +08:00
parent f52d8cbcc6
commit 1de223346d
2 changed files with 199 additions and 160 deletions

View File

@ -3,6 +3,40 @@ page {
padding: 0; padding: 0;
} }
.empty {
font-size: 28rpx;
color: #999999;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-top: 400rpx;
}
.empty image {
width: 340rpx;
height: 240rpx;
}
.emptyBtn {
width: 400rpx;
height: 80rpx;
background-color: #ea030d;
color: white;
align-items: center;
margin-top: 400rpx;
}
.emptyBtn2 {
width: 400rpx;
height: 80rpx;
background-color: white;
color: #333;
align-items: center;
margin-top: 50rpx;
border: 1rpx solid #333;
}
swiper { swiper {
height: 100%; height: 100%;
} }
@ -105,7 +139,7 @@ image {
margin: 0 5rpx; margin: 0 5rpx;
} }
.swiperBox2_img{ .swiperBox2_img {
border-radius: 20rpx 20rpx 0 0; border-radius: 20rpx 20rpx 0 0;
} }
@ -149,7 +183,8 @@ image {
margin: 0 auto; margin: 0 auto;
margin-top: 40rpx; margin-top: 40rpx;
} }
.ads_first{
.ads_first {
margin-top: 0; margin-top: 0;
} }
@ -190,22 +225,22 @@ image {
transform: translateX(-50%); transform: translateX(-50%);
} }
.newsList{ .newsList {
margin-bottom: 100rpx; margin-bottom: 100rpx;
} }
.newsItem { .newsItem {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 30rpx 0; padding: 30rpx 0;
margin: 0 20rpx; margin: 0 20rpx;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 1rpx solid #EBEBEB; border-bottom: 1rpx solid #EBEBEB;
} }
.newsItem:last-child { .newsItem:last-child {
border-bottom: none; border-bottom: none;
} }
.newsItem_left { .newsItem_left {
@ -322,6 +357,6 @@ image {
margin-bottom: 16rpx; margin-bottom: 16rpx;
} }
.grid_Text{ .grid_Text {
font-size: 24rpx; font-size: 24rpx;
} }

View File

@ -1,163 +1,156 @@
<template> <template>
<div class="container"> <div class="container">
<div <div class="empty" v-if="communityList.length == 0">
class="searchBox" <image
:style="{ height: localHeight + 'px', paddingTop: top + 'px' }" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_newEmpty.png"
> alt=""
<div class="searchBox_add"> />
<div class="emptyCommunity" @click="addCommunity"> <text>当前账户未绑定任何项目房源信息</text>
{{ communityVal }} <button class="emptyBtn" @click="addCommunity">新增房产绑定</button>
</div> <!-- <button class="emptyBtn2" @click="refresh">刷新</button> -->
<!-- <div class="MyCommunity" v-if="false">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/community/community_mycommunity.png"
mode="aspectFill"></image>
<span>惠生活</span>
<u-icon name="arrow-down" color="#999999" size="28"></u-icon>
</div> -->
</div>
</div> </div>
<div v-else>
<div
class="searchBox"
:style="{ height: localHeight + 'px', paddingTop: top + 'px' }"
>
<div class="searchBox_add">
<div class="emptyCommunity" @click="addCommunity">
{{ communityVal }}
</div>
</div>
</div>
<div class="swiperBox1"> <div class="swiperBox1">
<swiper @animationfinish="swipers" autoplay circular> <swiper @animationfinish="swipers" autoplay circular>
<swiper-item <swiper-item
v-for="(item, index) in bannerList" v-for="(item, index) in bannerList"
:key="index" :key="index"
@click="headerServerClick(item)" @click="headerServerClick(item)"
> >
<image :src="item.ad_picture" mode="aspectFill" /> <image :src="item.ad_picture" mode="aspectFill" />
</swiper-item> </swiper-item>
</swiper> </swiper>
<view class="dot"> <view class="dot">
<view <view
:class="['dotItem', currentIdx == index ? 'active' : '']" :class="['dotItem', currentIdx == index ? 'active' : '']"
v-for="(item, index) in bannerList" v-for="(item, index) in bannerList"
:key="index" :key="index"
> >
</view>
</view> </view>
</div>
<div class="swiperBox2">
<swiper @animationfinish="swipers" autoplay circular>
<swiper-item
v-for="(item, index) in streamerList"
:key="index"
@click="headerServerClick(item)"
>
<image
:src="item.ad_picture"
mode="aspectFill"
class="swiperBox2_img"
/>
</swiper-item>
</swiper>
</div>
<view class="funcList">
<u-grid :col="rowNum" :border="false">
<u-grid-item
v-for="(item, index) in functionList"
@click="jump(item.mini_program_url)"
:key="index"
>
<image class="grid_Pic" :src="item.nav_icon" mode=""></image>
<text class="grid_Text">{{ item.nav_name }}</text>
</u-grid-item>
</u-grid>
</view> </view>
<!-- <div class="dot">
<div class="dotItem"></div>
<div class="dotItem active"></div>
</div> -->
</div>
<div class="swiperBox2">
<swiper @animationfinish="swipers" autoplay circular>
<swiper-item
v-for="(item, index) in streamerList"
:key="index"
@click="headerServerClick(item)"
>
<image
:src="item.ad_picture"
mode="aspectFill"
class="swiperBox2_img"
/>
</swiper-item>
</swiper>
</div>
<!-- <div class="funcList">
<div class="funcItem" v-for="item in functionList" @click="jump(item.mini_program_url)">
<image :src="item.nav_icon"></image>
{{ item.nav_name }}
</div>
</div> -->
<view class="funcList">
<u-grid :col="rowNum" :border="false">
<u-grid-item
v-for="(item, index) in functionList"
@click="jump(item.mini_program_url)"
:key="index"
>
<image class="grid_Pic" :src="item.nav_icon" mode=""></image>
<text class="grid_Text">{{ item.nav_name }}</text>
</u-grid-item>
</u-grid>
</view>
<div
v-for="(item, index) in tileList"
:key="index"
:class="['ads', index == 0 ? 'ads_first' : '']"
@click="headerServerClick(item)"
>
<image :src="item.ad_picture" mode="aspectFill" />
</div>
<div class="tabs">
<div <div
v-for="(item, index) in categoryList" v-for="(item, index) in tileList"
:key="index" :key="index"
:class="['tabItem', selectedTab === index ? 'active2' : '']" :class="['ads', index == 0 ? 'ads_first' : '']"
@click="selectTab(index, item)" @click="headerServerClick(item)"
> >
{{ item.category_name }} <image :src="item.ad_picture" mode="aspectFill" />
</div> </div>
</div>
<div class="newsList"> <div class="tabs">
<div <div
class="newsItem" v-for="(item, index) in categoryList"
v-for="item in infoList" :key="index"
@click="detail(item)" :class="['tabItem', selectedTab === index ? 'active2' : '']"
:key="item.id" @click="selectTab(index, item)"
> >
<div class="newsItem_left"> {{ item.category_name }}
<div class="newsItem_left_tit">{{ item.title }}</div>
<div class="newsItem_left_sub">{{ item.author }}</div>
</div>
<div class="newsItem_right">
<image :src="item.list_image" mode="aspectFill" />
</div> </div>
</div> </div>
</div>
<div class="tips">{{ loadMoreText }}</div> <div class="newsList">
<div
class="newsItem"
v-for="item in infoList"
@click="detail(item)"
:key="item.id"
>
<div class="newsItem_left">
<div class="newsItem_left_tit">{{ item.title }}</div>
<div class="newsItem_left_sub">{{ item.author }}</div>
</div>
<div class="newsItem_right">
<image :src="item.list_image" mode="aspectFill" />
</div>
</div>
</div>
<div class="bigAds" v-if="ads1Show"> <div class="tips">{{ loadMoreText }}</div>
<div class="bigAdsCon">
<div class="bigAdsCon_img"> <div class="bigAds" v-if="ads1Show">
<swiper @animationfinish="swipers" autoplay circular> <div class="bigAdsCon">
<swiper-item <div class="bigAdsCon_img">
v-for="(item, index) in largePopList" <swiper @animationfinish="swipers" autoplay circular>
:key="index" <swiper-item
@click="headerServerClick(item)" v-for="(item, index) in largePopList"
:key="index"
@click="headerServerClick(item)"
>
<image :src="item.ad_picture" mode="aspectFill" />
</swiper-item>
</swiper>
</div>
<div class="close" @click="closeAds">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_close.png"
> >
<image :src="item.ad_picture" mode="aspectFill" /> </image>
</swiper-item> </div>
</swiper>
</div>
<div class="close" @click="closeAds">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_close.png"
>
</image>
</div> </div>
</div> </div>
</div>
<div class="bigAds" v-if="ads2Show"> <div class="bigAds" v-if="ads2Show">
<div class="bigAdsCon2"> <div class="bigAdsCon2">
<div class="bigAdsCon2_img"> <div class="bigAdsCon2_img">
<swiper <swiper
:current="currentSwiperIndex" :current="currentSwiperIndex"
@change="onSwiperChange" @change="onSwiperChange"
@animationfinish="swipers" @animationfinish="swipers"
autoplay autoplay
circular circular
> >
<swiper-item v-for="(item, index) in popList" :key="index"> <swiper-item v-for="(item, index) in popList" :key="index">
<image :src="item.ad_picture" mode="aspectFill" /> <image :src="item.ad_picture" mode="aspectFill" />
</swiper-item> </swiper-item>
</swiper> </swiper>
</div> </div>
<div class="AdsBtnList"> <div class="AdsBtnList">
<div class="AdsBtnItem1" @click="closeAds2">取消</div> <div class="AdsBtnItem1" @click="closeAds2">取消</div>
<div class="AdsBtnItem2" @click="onDetailClick">了解详情</div> <div class="AdsBtnItem2" @click="onDetailClick">了解详情</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -219,6 +212,9 @@ export default {
}; };
}, },
async onLoad(options) { async onLoad(options) {
if(!uni.getStorageSync("changeCommData")){
return
}
await request(apiArr2.commInfo, "POST", { await request(apiArr2.commInfo, "POST", {
user_id: uni.getStorageSync("userId"), user_id: uni.getStorageSync("userId"),
longitude: uni.getStorageSync("location").lng, longitude: uni.getStorageSync("location").lng,
@ -226,11 +222,14 @@ export default {
page_num: this.page_num, page_num: this.page_num,
page_size: this.page_size, page_size: this.page_size,
}).then((res) => { }).then((res) => {
res.rows.find((item) => { // res.rows.find((item) => {
if (item.community_id == uni.getStorageSync("changeCommData").id) { // if (item.community_id == uni.getStorageSync("changeCommData").id) {
this.isShowBill = item.bill_front_end_display == 1 ? true : false; // this.isShowBill = item.bill_front_end_display == 1 ? true : false;
} // }
}); // });
if (res.rows.length == 0) {
uni.removeStorageSync("changeCommData");
}
this.communityList = res.rows; this.communityList = res.rows;
}); });
const meun = menuButtonInfo(); const meun = menuButtonInfo();
@ -241,10 +240,6 @@ export default {
if (this.communityList.length == 0) { if (this.communityList.length == 0) {
this.communityVal = "添加我的房产"; this.communityVal = "添加我的房产";
} else { } else {
if (!uni.getStorageSync("changeCommData").id) {
uni.setStorageSync("changeCommData", { name: "森呼吸二期", id: 14 });
}
this.communityVal = uni.getStorageSync("changeCommData").name; this.communityVal = uni.getStorageSync("changeCommData").name;
} }
this.getfunctionNum(); this.getfunctionNum();
@ -336,6 +331,9 @@ export default {
}, },
async getfunctionList() { async getfunctionList() {
if(!uni.getStorageSync("changeCommData")){
return
}
const res = await request(apiArr.navPage, "POST", { const res = await request(apiArr.navPage, "POST", {
community_id: Number(uni.getStorageSync("changeCommData").id), community_id: Number(uni.getStorageSync("changeCommData").id),
page_num: 1, page_num: 1,
@ -357,6 +355,9 @@ export default {
}, },
async getAdvertising() { async getAdvertising() {
if(!uni.getStorageSync("changeCommData")){
return
}
const res = await request(apiArr.advPage, "POST", { const res = await request(apiArr.advPage, "POST", {
community_id: Number(uni.getStorageSync("changeCommData").id), community_id: Number(uni.getStorageSync("changeCommData").id),
ad_position: 1, ad_position: 1,
@ -514,6 +515,9 @@ export default {
}, },
async getCategoryList() { async getCategoryList() {
if(!uni.getStorageSync("changeCommData")){
return
}
const res = await request(apiArr.categoryPage, "POST", { const res = await request(apiArr.categoryPage, "POST", {
community_id: Number(uni.getStorageSync("changeCommData").id), community_id: Number(uni.getStorageSync("changeCommData").id),
category_code: "", category_code: "",