优化内容加修复bug

This commit is contained in:
zhouyanli
2026-08-13 08:03:26 +08:00
parent f793e16263
commit 94146ce27a
23 changed files with 406 additions and 260 deletions

View File

@@ -7,11 +7,11 @@
<scroll-view class="page" scroll-y="true">
<view class="form-container">
<view class="form-item" @click="selectItem('选择小区')">
<view class="form-item" :class="{ 'form-item-disabled': type === '修改' }" @click="selectItem('选择小区')">
<text class="item-label">选择小区</text>
<text class="item-placeholder"
:class="{selected: formData.community}">{{ formData.community || '请选择' }}</text>
<text class="item-arrow"></text>
<text class="item-arrow" v-if="type !== '修改'"></text>
</view>
<!-- <view class="form-item" @click="selectItem('绑定房屋')">
@@ -20,18 +20,18 @@
<text class="item-arrow"></text>
</view> -->
<view class="form-item" @click="selectItem('停车场')">
<view class="form-item" :class="{ 'form-item-disabled': type === '修改' }" @click="selectItem('停车场')">
<text class="item-label">停车场</text>
<text class="item-placeholder"
:class="{selected: formData.parkingLot}">{{ formData.parkingLot || '请选择' }}</text>
<text class="item-arrow"></text>
<text class="item-arrow" v-if="type !== '修改'"></text>
</view>
<view class="form-item" @click="selectItem('车位编号')">
<view class="form-item" :class="{ 'form-item-disabled': type === '修改' }" @click="selectItem('车位编号')">
<text class="item-label">车位编号</text>
<text class="item-placeholder"
:class="{selected: formData.parkingSpaceNum}">{{ formData.parkingSpaceNum || '请选择' }}</text>
<text class="item-arrow"></text>
<text class="item-arrow" v-if="type !== '修改'"></text>
</view>
<view class="form-item">
@@ -54,13 +54,13 @@
</view>
</view>
</view>
<view class="form-item" @click="selectItem('选择业主')">
<view class="form-item" :class="{ 'form-item-disabled': checkStatus === '1' }" @click="selectItem('选择业主')">
<text class="item-label">选择业主</text>
<text class="item-placeholder"
:class="{selected: formData.owner}">{{ formData.owner || '请选择' }}</text>
<text class="item-arrow"></text>
<text class="item-arrow" v-if="checkStatus !== '1'"></text>
</view>
<view class="form-item" @click="bindCarClick">
<text class="item-label">绑定车辆</text>
@@ -100,6 +100,7 @@
const id = ref(undefined)
const type = ref('')
const checkStatus = ref('')
const formData = ref({
community: uni.getStorageSync('communityName'),
communityId: uni.getStorageSync('communityId'),
@@ -127,12 +128,13 @@
formData.value.parkingSpaceNum = uni.getStorageSync('parkingSpaceName')
formData.value.parkingSpaceId = uni.getStorageSync('parkingSpaceId')
formData.value.parkingStatus = uni.getStorageSync('parkingStatus') || '0',
formData.value.bindCar = uni.getStorageSync('bindCarName')
formData.value.bindCar = uni.getStorageSync('bindCarName')
formData.value.bindCarId = uni.getStorageSync('bindCarId')
formData.value.owner = uni.getStorageSync('ownerName')
formData.value.ownerId = uni.getStorageSync('ownerId')
})
onLoad((option) => {
checkStatus.value = option.checkStatus || ''
if (uni.getStorageSync('operationType') == 'update') {
if (option.id) {
id.value = option.id
@@ -282,10 +284,10 @@
formData.value.bindCarId = data.carId
uni.setStorageSync('bindCarId', data.carId)
formData.value.owner = data.ownerName
uni.setStorageSync('ownerName', data.ownerName)
formData.value.ownerId = data.ownerId
uni.setStorageSync('ownerId', data.ownerId)
formData.value.owner = data.residentName
uni.setStorageSync('ownerName', data.residentName)
formData.value.ownerId = data.residentId
uni.setStorageSync('ownerId', data.residentId)
} catch (err) {
uni.showToast({
@@ -304,6 +306,10 @@
}
const selectItem = (typeStr) => {
// 修改模式下,小区、停车场、车位编号禁止修改
if (type.value === '修改' && (typeStr === '选择小区' || typeStr === '停车场' || typeStr === '车位编号')) {
return
}
if (typeStr === '选择小区') {
uni.navigateTo({
url: '/pageSubPack/my/selectResidentialCommunity?sourcePage=addParkingSpace'
@@ -340,6 +346,8 @@
})
}
if (typeStr === '选择业主') {
// 审核通过后选择业主不可编辑
if (checkStatus.value === '1') return
if (!formData.value.community) {
return uni.showToast({
title: '请先选择小区',
@@ -347,7 +355,7 @@
})
}
uni.navigateTo({
url: '/pageSubPack/my/selectOwner'
url: '/pageSubPack/my/selectOwner?ownerId=' + (formData.value.ownerId || '')
})
}
}
@@ -392,6 +400,11 @@
border-bottom: 1rpx solid #f0f0f0;
}
.form-item-disabled {
opacity: 0.5;
pointer-events: none;
}
.item-label {
font-size: 28rpx;
color: #000;
@@ -485,4 +498,4 @@
border-radius: 12rpx;
border: none;
}
</style>
</style>

View File

@@ -107,7 +107,8 @@
<button v-if="currentStatus === 'fail'" class="btn-modify" @click="clickUpdate()">
修改
</button>
<button class="btn-delete" :class="{ 'delete-only': currentStatus !== 'fail' }" @click="onDelete">
<button class="btn-delete" :class="{ 'delete-only': currentStatus !== 'fail' }"
@click="onDelete" v-if="certificationStatus !=='1' ">
删除
</button>
</view>
@@ -141,6 +142,7 @@
const currentStatus = ref('')
const stepList = ref(["房屋信息", "住户信息", "物业审核", "认证成功"])
const form = ref([])
const certificationStatus = ref('') // 认证状态
const statusMap = ref({
success: {
title: "房屋认证成功",
@@ -184,16 +186,15 @@
})
const getDetail = async () => {
// 防重复请求
try {
const res = await getMyHouseDetail({
id: id.value
})
const data = res.data
form.value = data
console.log(form.value);
// const data =
form.value = res.data
certificationStatus.value = form.value.certificationStatus
console.log('详情数据',form.value);
} catch (err) {
uni.showToast({
title: err.msg || '网络异常',

View File

@@ -1,8 +1,5 @@
<template>
<view class="contentStyle" style="">
<view class="status-bar"></view>
<uni-nav-bar title="我的车辆" left-icon="left" @clickLeft="goBack" backgroundColor="transparent" :border="false">
</uni-nav-bar>
<scroll-view class="page" scroll-y="true" @scrolltolower="getList" refresher-enabled="true" :refresher-triggered="isRefreshing" @refresherrefresh="onRefresh">
<view v-if="carList.length === 0" class="empty-state">

View File

@@ -1,20 +1,7 @@
<template>
<view class="contentStyle" style="">
<view class="status-bar"></view>
<uni-nav-bar title="我的房屋" left-icon="left" @clickLeft="goBack" backgroundColor="transparent" :border="false">
</uni-nav-bar>
<!-- -->
<pull-refresh-scroll
custom-class="page"
:refreshing="isRefreshing"
:loading-more="loading"
:no-more-data="noMoreData"
:empty="houseList.length === 0"
empty-text="暂无数据"
@refresh="onRefresh"
@loadMore="loadMore"
>
<scroll-view class="page" scroll-y :refresher-enabled="true" :refresher-triggered="isRefreshing" @refresherrefresh="onRefresh" @scrolltolower="loadMore">
<!-- 房屋列表 v-for 渲染 -->
<view class="house-list">
<view class="house-card" v-for="(item, index) in houseList" :key="index" @click="tapHouse(item)">
@@ -54,7 +41,7 @@
</view>
</view>
</view>
</pull-refresh-scroll>
</scroll-view>
<!-- 底部添加按钮 -->
<view class="bottom-btn">
<button class="add-btn" @click="addHouse">添加房屋</button>
@@ -76,9 +63,7 @@
getMyHouseList,
setMyHouseDefault
} from '/pageSubPack/api/apiSub.js'
import PullRefreshScroll from '/components/pull-refresh-scroll/pull-refresh-scroll.vue'
const houseList = ref([])
const loading = ref(false)
const pageNum = ref(1)
@@ -86,7 +71,7 @@
const noMoreData = ref(false)
const isRefreshing = ref(false)
// ==================== 下拉刷新 ====================
// ==================== 下拉刷新 ====================
const onRefresh = () => {
isRefreshing.value = true
pageNum.value = 1
@@ -96,6 +81,11 @@
getList()
}
onPullDownRefresh(() => {
onRefresh()
})
// ==================== 获取列表数据 ====================
const getList = async () => {
if (loading.value) return
@@ -123,9 +113,8 @@
console.error('列表接口报错:', err)
} finally {
loading.value = false
if (isRefreshing.value) {
isRefreshing.value = false
}
isRefreshing.value = false
uni.stopPullDownRefresh()
}
}
@@ -223,22 +212,19 @@
display: flex;
flex-direction: column;
height: 100vh;
/* 关键:占满屏幕高度 */
/* 关键:固定高度,底部按钮不动 */
background-color: #f5f7fa;
}
.page {
flex: 1;
overflow-y: auto;
padding: 0px 40rpx;
padding: 0px 40rpx 120rpx;
box-sizing: border-box;
}
/* 列表 */
.house-list {
height: 100%;
overflow-y: scroll;
}
.house-card {
@@ -358,7 +344,12 @@
.bottom-btn {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx 30rpx 40rpx;
background-color: #f5f7fa;
}
.add-btn {

View File

@@ -1,8 +1,8 @@
<template>
<view class="contentStyle">
<view class="status-bar"></view>
<!-- <view class="status-bar"></view>
<uni-nav-bar title="我的车位" left-icon="left" @clickLeft="goBack" backgroundColor="transparent" :border="false">
</uni-nav-bar>
</uni-nav-bar> -->
<scroll-view class="page" scroll-y="true" @scrolltolower="getList" refresher-enabled="true" :refresher-triggered="isRefreshing" @refresherrefresh="onRefresh">
<view v-if="parkingSpaceList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
@@ -49,7 +49,7 @@
</view>
<view class="right">
<image :src="item.carImageUrl?item.carImageUrl:'http://47.104.199.163:9090/images/propertyImgs/myParkingSpace.png'"
class="imgItem" mode="widthFix"></image>
class="imgItem" mode="aspectFill"></image>
</view>
</view>
</view>
@@ -286,17 +286,22 @@
font-size: 28rpx;
font-weight: 600;
color: #333;
flex-shrink: 0;
}
.value-box {
flex: 1;
display: flex;
justify-content: space-between;
min-width: 0;
}
.value {
font-size: 28rpx;
color: #666;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.add-btn {
@@ -310,13 +315,22 @@
border: none;
}
.left {}
.left {
flex: 1;
min-width: 0;
overflow: hidden;
}
.right {
width: 42%;
height: 180rpx;
border-radius: 8rpx;
overflow: hidden;
flex-shrink: 0;
}
.imgItem {
width: 100%;
height: 100%;
}
</style>

View File

@@ -109,6 +109,7 @@
const statusBarHeight = ref(20)
const id = ref(undefined)
const currentStatus = ref('')
const checkStatus = ref('')
// parkingId
const form = ref({
community: "",
@@ -148,6 +149,7 @@
onLoad((option) => {
console.log(option);
id.value = option.id
checkStatus.value = option.statusClass || ''
currentStatus.value = option.statusClass == '0' ? 'pending' : option.statusClass == '1' ?
'success' : option.statusClass == '2' ? 'fail' : ''
loadParkingSpaceDetail()
@@ -219,7 +221,7 @@
const onModify = () => {
uni.setStorageSync('operationType', 'update')
uni.navigateTo({
url: '/pageSubPack/my/addParkingSpace?id=' + id.value + '&sourcePage=addParkingSpace'
url: '/pageSubPack/my/addParkingSpace?id=' + id.value + '&checkStatus=' + checkStatus.value + '&sourcePage=addParkingSpace'
})
}

View File

@@ -56,6 +56,7 @@
const selectedName = ref('')
const selectedIndex = ref(-1)
const ownerList = ref([])
const presetOwnerId = ref('')
const loadingMore = ref(false)
const noMoreData = ref(false)
@@ -94,6 +95,8 @@
if (pageNum.value === 1) {
ownerList.value = newList
// 预设选中已有业主
preselectOwner()
} else {
ownerList.value = [...ownerList.value, ...newList]
}
@@ -115,6 +118,17 @@
}
}
// 根据传入的 ownerId 预设选中
const preselectOwner = () => {
if (!presetOwnerId.value) return
const idx = ownerList.value.findIndex(item => String(item.id) === String(presetOwnerId.value))
if (idx !== -1) {
selectedIndex.value = idx
selectedId.value = ownerList.value[idx].id
selectedName.value = ownerList.value[idx].name
}
}
// 上拉加载更多
onReachBottom(() => {
getList()
@@ -133,6 +147,9 @@
})
// 页面加载时请求第一页
onLoad((option) => {
presetOwnerId.value = option.ownerId || ""
})
onMounted(() => {
getList()
})

View File

@@ -296,6 +296,10 @@
uni.removeStorageSync('currentVillageId')
uni.removeStorageSync('home_cache_' + uid)
uni.removeStorageSync('home_cache')
// 清除小区相关缓存,防止切换账号后显示上一个账号的小区和公告
uni.removeStorageSync('communityName')
uni.removeStorageSync('communityId')
uni.removeStorageSync('needReloadUserInfo')
uni.hideLoading()
uni.hideToast()
uni.reLaunch({ url: '/pageSubPack/loginSub/login?mode=pwd' })