优化内容加修复bug
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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 || '网络异常',
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
@@ -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'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
})
|
||||
|
||||
@@ -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' })
|
||||
|
||||
Reference in New Issue
Block a user