Compare commits

...

6 Commits

Author SHA1 Message Date
赵毅
17018a4e07 11 2025-08-12 16:34:57 +08:00
赵毅
0cab3dd853 修改主页的搜索框和热词的逻辑 2025-08-12 16:15:42 +08:00
赵毅
9d5b9a86bc 修复商家分类下拉部分的显示问题 2025-08-12 15:42:42 +08:00
赵毅
bc782b6227 修改接单 派单的显示逻辑
优化页面广告的显示问题
优化页面各部分的跳转逻辑
添加中部广告和底部分类tab的联动
2025-08-12 15:16:22 +08:00
赵毅
bdc1079f5a 优化商家详情的页面显示问题 2025-08-12 11:19:31 +08:00
赵毅
bfc285ff57 修复添加房产选择房产是的bug 2025-08-12 11:19:18 +08:00
10 changed files with 112 additions and 124 deletions

View File

@ -259,12 +259,13 @@ export default {
this.fName = this.fName =
this.step == 4 ? this.fName : this.facilityName ? item.label : ""; this.step == 4 ? this.fName : this.facilityName ? item.label : "";
await request(apiArr.commRoomSelect, "POST", { await request(apiArr.commRoomSelect, "POST", {
community_ids: item.community_id ? item.community_id : this.communityId, community_ids: [item.community_id ? item.community_id : this.communityId],
facility_names: this.facilityName, facility_names: this.facilityName ? [this.facilityName] : [],
floors: this.facilityName floors: this.facilityName
? this.facilityName == this.fName ? this.facilityName == this.fName
? "" ? ""
: item.label : [item.label]
: "", : "",
}).then((res) => { }).then((res) => {
// //
@ -339,7 +340,7 @@ export default {
// //
getRoomSelect() { getRoomSelect() {
request(apiArr.commRoomSelect, "POST", { request(apiArr.commRoomSelect, "POST", {
community_ids: this.currentCommunity.community_id, community_ids: [this.currentCommunity.community_id],
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
this.step = 2; this.step = 2;

View File

@ -1,5 +1,5 @@
page { page {
background-color: #f6f7fb; background-color: #fff;
} }
.container { .container {

View File

@ -3,7 +3,7 @@ page {
} }
.container{ .container{
padding-top: 100rpx; /* padding-top: 100rpx; */
} }
.local { .local {

View File

@ -141,9 +141,17 @@ page {
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.btn_view > .btn { .btn_view_btn {
margin: 40rpx 20rpx;
width: 300rpx; width: 300rpx;
height: 90rpx; height: 90rpx;
line-height: 90rpx;
text-align: center;
background: linear-gradient( 91deg, #FF7658 0%, #FF370B 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
font-size: 36rpx;
color: #FFFFFF;
font-weight: 600;
} }
.btn { .btn {
margin: 40rpx auto 60rpx; margin: 40rpx auto 60rpx;

View File

@ -183,15 +183,16 @@
</view> </view>
</view> </view>
<view class="btn_view" v-if="info.status == 1 && order_dispatch_permission"> <view class="btn_view">
<view class="btn" @click="headerSelectMasterClick">派单</view> <view v-if="info.status == 1 && order_dispatch_permission">
</view> <view class="btn_view_btn" @click="headerSelectMasterClick">派单</view>
</view>
<view class="btn_view" v-if="info.status == 1 && work_order_permission && allow_grab_order"> <view v-if="info.status == 1 && work_order_permission && allow_grab_order">
<view class="btn" @click="headerTakeClick">接单</view> <view class="btn_view_btn" @click="headerTakeClick">接单</view>
</view>
</view> </view>
<!-- 待派单状态 无派单权限按钮 --> <!-- 待派单状态 无派单权限按钮 -->
<view class="btn" v-else-if="info.status == 1" @click="headerTakeClick">接单</view> <!-- <view class="btn" v-else-if="info.status == 1" @click="headerTakeClick">接单</view> -->
<!-- 进行中状态编辑维修信息 --> <!-- 进行中状态编辑维修信息 -->
<view class="btn" v-if="info.status == 2" @click="headerEditClick"> <view class="btn" v-if="info.status == 2" @click="headerEditClick">
{{ type === "edit" ? "确定" : "编辑" }} {{ type === "edit" ? "确定" : "编辑" }}

View File

@ -1,7 +1,7 @@
.container { .container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 100vh; /* min-height: 100vh; */
background-color: #ffffff; background-color: #ffffff;
} }

View File

@ -10,6 +10,8 @@
<!-- 背景图片区域 --> <!-- 背景图片区域 -->
<view class="bg-image-container"> <view class="bg-image-container">
<image class="bg-image" src="http://localhost:8080/test.png" mode="aspectFill"></image> <image class="bg-image" src="http://localhost:8080/test.png" mode="aspectFill"></image>
<!-- <input class="search-box" placeholder='输入工单号进入工单' confirm-type='search' @input="searchInput"
@confirm="searchInput" :value="selectKeyWord" /> -->
<view class="search-box"> <view class="search-box">
<text class="search-placeholder">输入工单号进入工单</text> <text class="search-placeholder">输入工单号进入工单</text>
</view> </view>

View File

@ -484,11 +484,8 @@
{ {
"path": "index/index", "path": "index/index",
"style": { "style": {
"navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "",
"navigationStyle": "custom", "navigationBarBackgroundColor": "#fff"
"usingComponents": {
"nav-footer": "/components/nav/nav"
}
} }
}, },
{ {

View File

@ -3,10 +3,13 @@
} }
.hot-word-container { .hot-word-container {
height: 40px; width: auto;
height: 50rpx;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
flex: 1; /* flex: 1; */
border-radius: 50rpx;
margin: 0 20rpx;
} }
.hot-word-scroll { .hot-word-scroll {
@ -14,9 +17,9 @@
} }
.hot-word-item { .hot-word-item {
height: 40px; height: 50rpx;
line-height: 40px; line-height: 50rpx;
padding: 0 10px; padding: 0 15rpx;
color: #666; color: #666;
} }
@ -118,7 +121,6 @@ page {
display: flex; display: flex;
box-sizing: border-box; box-sizing: border-box;
align-items: center; align-items: center;
padding-left: 30rpx;
padding-right: 30rpx; padding-right: 30rpx;
font-size: 26rpx; font-size: 26rpx;
} }
@ -280,6 +282,7 @@ page {
font-weight: normal; font-weight: normal;
font-size: 26rpx; font-size: 26rpx;
color: #FFFFFF; color: #FFFFFF;
margin-left: 15rpx;
} }
.serverList { .serverList {
@ -518,11 +521,11 @@ page {
border-radius: 0 0 10rpx 10rpx; border-radius: 0 0 10rpx 10rpx;
box-shadow: 0 5rpx 15rpx rgba(0, 0, 0, 0.1); box-shadow: 0 5rpx 15rpx rgba(0, 0, 0, 0.1);
padding: 20rpx; padding: 20rpx;
position: absolute; position: relative;
z-index: 99; z-index: 99;
width: 95%; width: 95%;
left: 0; left: 0;
top: 88rpx; /* top: 88rpx; */
} }
.dropdown-title { .dropdown-title {
@ -698,6 +701,8 @@ page {
box-sizing: border-box; box-sizing: border-box;
} }
.merchantList2 {}
.merchantItem { .merchantItem {
display: flex; display: flex;
padding-top: 30px; padding-top: 30px;

View File

@ -11,44 +11,46 @@
</view> </view>
</view> </view>
<!-- 功能导航区 --> <!-- 功能导航区 -->
<view class="function-nav"> <view class="function-nav" v-if="showNav">
<view class="function-item" @click="goToShop"> <view class="function-item" @click="goToShop">
<div class="icon-box"> <view class="icon-box">
<image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_shop.png" <image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_shop.png"
mode="widthFix" /> mode="widthFix" />
</div> </view>
<text>店铺管理</text> <text>店铺管理</text>
</view> </view>
<view class="function-item" @click="goToOrder"> <view class="function-item" @click="goToOrder">
<div class="icon-box"> <view class="icon-box">
<image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_order.png" <image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_order.png"
mode="widthFix" /> mode="widthFix" />
</div> </view>
<text>供应商订单</text> <text>供应商订单</text>
</view> </view>
<view class="function-item" @click="goToWuye"> <view class="function-item" @click="goToWuye">
<div class="icon-box"> <view class="icon-box">
<image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_wuye.png" <image class="iconImg" src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_wuye.png"
mode="widthFix" /> mode="widthFix" />
</div> </view>
<text>物业管理</text> <text>物业管理</text>
</view> </view>
</view> </view>
<!-- 搜索框 --> <!-- 搜索框 -->
<div class="search2" v-if="isShowSearch"> <view class="search2" v-if="isShowSearch">
<div class="searchBox2"> <view class="searchBox2">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png" <view class="hot-word-container">
mode="aspectFill"></image> <view class="hot-word-scroll" :style="{ transform: 'translateY(' + scrollPosition + 'rpx)' }">
<div class="hot-word-container"> <view v-for="(word, index) in hotWord" :key="index" class="hot-word-item"
<div class="hot-word-scroll" :style="{ transform: 'translateY(' + scrollPosition + 'px)' }">
<div v-for="(word, index) in hotWord" :key="index" class="hot-word-item"
@click="handleHotWordClick(word)"> @click="handleHotWordClick(word)">
{{ word }} {{ word }}
</div> </view>
</div> </view>
</div> </view>
</div> <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/com_communitySearchIcon.png"
</div> mode="aspectFill"></image>
<input class="search_input" placeholder='输入搜索的社区名称' confirm-type='search' @input="searchInput"
@confirm="searchInput" :value="selectKeyWord" />
</view>
</view>
<!-- 轮播图 --> <!-- 轮播图 -->
<view class="swiper"> <view class="swiper">
<swiper @animationfinish="swipers" autoplay circular> <swiper @animationfinish="swipers" autoplay circular>
@ -98,7 +100,7 @@
<view class="serverList"> <view class="serverList">
<view class="serverList_left"> <view class="serverList_left">
<swiper> <swiper>
<swiper-item v-for="(item, index) in homeLeftList" :key="index"> <swiper-item v-for="(item, index) in homeLeftList" :key="index" @click="headerServerClick(item)">
<image :src="item.pic_src" alt="" mode="aspectFit" /> <image :src="item.pic_src" alt="" mode="aspectFit" />
<!-- <view>{{ item.ad_position }}</view> --> <!-- <view>{{ item.ad_position }}</view> -->
</swiper-item> </swiper-item>
@ -107,7 +109,7 @@
<view class="serverList_right"> <view class="serverList_right">
<view class="serverList_right1"> <view class="serverList_right1">
<view :class="['serverItem', `serverItem${index + 1}`]" @tap="headerServerClick(item)" <view :class="['serverItem', `serverItem${index + 1}`]" @click="headerServerClick2(item)"
v-for="(item, index) in homeRightList1" :key="index"> v-for="(item, index) in homeRightList1" :key="index">
<view class="serverTit">{{ item.title }}</view> <view class="serverTit">{{ item.title }}</view>
<image v-if="item.pic_src" :src="item.pic_src" mode="" /> <image v-if="item.pic_src" :src="item.pic_src" mode="" />
@ -115,8 +117,8 @@
</view> </view>
</view> </view>
<view class="serverList_right2"> <view class="serverList_right2">
<view :class="['serverItem', `serverItem${index + 4}`]" @tap="headerServerClick(item)" <view :class="['serverItem', `serverItem${index + 4}`]" @click="headerServerClick2(item)"
v-for="(item, index) in homeRightList2" :key="index"> v-for="(item, index) in homeRightList2" :key="index">
<view class="serverTit">{{ item.title }}</view> <view class="serverTit">{{ item.title }}</view>
<image :src="item.pic_src" mode="" /> <image :src="item.pic_src" mode="" />
<!-- <view>{{ item.ad_position }}</view> --> <!-- <view>{{ item.ad_position }}</view> -->
@ -158,89 +160,48 @@
</view> </view>
<!-- 商家列表展示 --> <!-- 商家列表展示 -->
<!-- <view class="store-list-container"> <view class="merchantList" :class="{ merchantList2: merchatList.length < 3 }">
<view class="overlay" v-if="showDropdown"></view> <view class="overlay" v-if="showDropdown"></view>
<view class="store-item" v-for="(store, index) in merchantList" :key="index"> <view class="merchantItem" v-for="item in merchatList" :key="item.id" @click="Info(item)">
<view class="store-image"> <view class="merchantItem_left">
<image :src="store.cate_image" mode="aspectFill"></image>
</view>
<view class="store-info">
<view class="store-name">{{ store.merchant_name }}</view>
<view class="startList">
<image
v-for="index in 5"
:key="index"
:src="
index < item.rating
? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png'
: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'
"
mode="aspectFill"
></image>
</view>
<view class="store-tags">
<text class="tag" v-for="(tag, idx) in store.tags" :key="idx">{{ tag }}</text>
</view>
<view class="store-address">
<image class="address-icon"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/address.png"
mode="aspectFit">
</image>
<text>{{ store.address }}</text>
</view>
<view class="store-distance">
<image class="distance-icon"
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/distance.png"
mode="aspectFit">
</image>
<text>{{ store.distance }}km</text>
</view>
</view>
<view class="review-btn" @click="gotoReview(store.id)">点评</view>
</view>
</view> -->
<div class="merchantList">
<view class="overlay" v-if="showDropdown"></view>
<div class="merchantItem" v-for="item in merchatList" :key="item.id" @click="Info(item)">
<div class="merchantItem_left">
<image :src="item.showImg" mode="aspectFill"></image> <image :src="item.showImg" mode="aspectFill"></image>
</div> </view>
<div class="merchantItem_right"> <view class="merchantItem_right">
<div class="merchantItem_right_tit"> <view class="merchantItem_right_tit">
<div class="merchantItem_right_tit_left"> <view class="merchantItem_right_tit_left">
{{ item.merchant_name }} {{ item.merchant_name }}
</div> </view>
<div class="merchantItem_right_tit_right"> <view class="merchantItem_right_tit_right">
{{ item.distances }} {{ item.distances }}
</div> </view>
</div> </view>
<div class="merchantItem_right_con"> <view class="merchantItem_right_con">
<div class="merchantItem_right_con_left"> <view class="merchantItem_right_con_left">
<div class="startList"> <view class="startList">
<image v-for="index in 5" :key="index" :src="index < item.rating <image v-for="index in 5" :key="index" :src="index < item.rating
? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png' ? 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start1.png'
: 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png' : 'https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_start2.png'
" mode="aspectFill"></image> " mode="aspectFill"></image>
</div> </view>
<div class="merchangtItem_tag" v-if="item.refund_property_fee_ratio"> <view class="merchangtItem_tag" v-if="item.refund_property_fee_ratio">
买单返物业费 买单返物业费
</div> </view>
<div class="merchangtItem_tag" v-if="item.refund_user_points_ratio"> <view class="merchangtItem_tag" v-if="item.refund_user_points_ratio">
买单返积分 买单返积分
</div> </view>
</div> </view>
<div class="merchantItem_right_con_right" @click="toJump(item)"> <view class="merchantItem_right_con_right" @click="toJump(item)">
<image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_review.png" <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/local_review.png"
mode="aspectFill"></image> mode="aspectFill"></image>
点评 点评
</div> </view>
</div> </view>
<div class="merchantItem_right_add"> <view class="merchantItem_right_add">
{{ item.comAddress }} {{ item.comAddress }}
</div> </view>
</div> </view>
</div> </view>
</div> </view>
</view> </view>
<view class="more" v-if="flag">下拉加载后续10条共计{{ bottomTotal }}</view> <view class="more" v-if="flag">下拉加载后续10条共计{{ bottomTotal }}</view>
@ -283,6 +244,7 @@ export default {
}, //2. }, //2.
data() { data() {
return { return {
showNav: true,
isShowSearch: false, isShowSearch: false,
loading: false, loading: false,
@ -319,7 +281,7 @@ export default {
hotWord: [], // hotWord: [], //
scrollPosition: 0, // scrollPosition: 0, //
scrollInterval: null, // scrollInterval: null, //
itemHeight: 40, // itemHeight: 50, //
// 1广 // 1广
serverLeft: '', serverLeft: '',
@ -520,8 +482,17 @@ export default {
}); });
}, },
headerServerClick2(e) {
const cate_id = this.categoryList.find(item => item.cate_name == e.title)?.id;
if (cate_id) { this.switchCategory(cate_id) }
return
},
headerServerClick(e) { headerServerClick(e) {
console.log('当前点击内容', e); // const cate_id = this.categoryList.find(item => item.cate_name == e.title).id;
// this.switchCategory(cate_id)
// return
if (!e.link_url) { if (!e.link_url) {
this.NotOpen(); this.NotOpen();
return return
@ -700,17 +671,20 @@ export default {
page_size: 10 page_size: 10
}, { silent: false }); }, { silent: false });
if (res.rows.length) { if (res.rows.length) {
// let firstItem = res.rows[0];
// firstItem.pic_src = picUrl + firstItem.pic_src;
// rightList.push(firstItem);
let filterRes = this.filterShowList(res?.rows, 1); let filterRes = this.filterShowList(res?.rows, 1);
filterRes.forEach(item => { filterRes.forEach(item => {
item.pic_src = picUrl + item.pic_src item.pic_src = picUrl + item.pic_src
}) })
rightList.push(...filterRes) rightList.push(...filterRes)
}else{ } else {
rightList.push({ rightList.push({
ad_position: i, ad_position: i,
pic_src: '' pic_src: ''
}) })
} }
} }
return rightList return rightList
}, },