This commit is contained in:
zhouyanli
2026-04-21 18:25:19 +08:00
36 changed files with 630 additions and 329 deletions

View File

@@ -212,7 +212,7 @@
selectItem(type) {
if (type === '车辆品牌') {
uni.redirectTo({
url: '/pages/my/selectCarBrand',
url: '/pageSubPack/my/selectCarBrand',
success: res => {},
fail: () => {},
complete: () => {}
@@ -231,14 +231,14 @@
uni.removeStorageSync('checkType');
// if (uni.getStorageSync('operationType') == 'update') {
// uni.redirectTo({
// url: '/pages/my/houseDetail?id=' + this.id,
// url: '/pageSubPack/my/houseDetail?id=' + this.id,
// success: res => {},
// fail: () => {},
// complete: () => {}
// });
// } else if (uni.getStorageSync('operationType') == 'add') {
uni.redirectTo({
url: '/pages/my/myCarIndex',
url: '/pageSubPack/my/myCarIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -455,7 +455,7 @@
console.log(uni.getStorageSync('checkType'));
if (type === '小区') {
uni.redirectTo({
url: '/pages/my/selectResidentialCommunity?sourcePage=' + 'addHouse',
url: '/pageSubPack/my/selectResidentialCommunity?sourcePage=' + 'addHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -470,7 +470,7 @@
} else {
uni.setStorageSync('checkType', '楼栋');
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
@@ -487,7 +487,7 @@
} else {
uni.setStorageSync('checkType', '单元');
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
@@ -503,7 +503,7 @@
} else {
uni.setStorageSync('checkType', '楼层');
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
@@ -520,7 +520,7 @@
} else {
uni.setStorageSync('checkType', '户号');
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
@@ -598,7 +598,7 @@
uni.removeStorageSync('houseIsDefault')
uni.redirectTo({
url: '/pages/my/myHouseIndex',
url: '/pageSubPack/my/myHouseIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -207,7 +207,7 @@
},
bindCarClick() {
uni.redirectTo({
url: '/pages/my/bindCar',
url: '/pageSubPack/my/bindCar',
success: res => {},
fail: () => {},
complete: () => {}
@@ -218,7 +218,7 @@
if (type === '小区') {
uni.redirectTo({
url: '/pages/my/selectResidentialCommunity?sourcePage=' + 'addParkingSpace',
url: '/pageSubPack/my/selectResidentialCommunity?sourcePage=' + 'addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -233,7 +233,7 @@
} else {
uni.redirectTo({
url: '/pages/my/bindHouse',
url: '/pageSubPack/my/bindHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -251,7 +251,7 @@
} else {
uni.setStorageSync('checkType', '停车场')
uni.redirectTo({
url: '/pages/my/selectParingLot',
url: '/pageSubPack/my/selectParingLot',
success: res => {},
fail: () => {},
complete: () => {}
@@ -269,7 +269,7 @@
} else {
uni.setStorageSync('checkType', '车位编号')
uni.redirectTo({
url: '/pages/my/selectParingLot',
url: '/pageSubPack/my/selectParingLot',
success: res => {},
fail: () => {},
complete: () => {}
@@ -347,7 +347,7 @@
uni.removeStorageSync('bindCarName');
uni.redirectTo({
url: '/pages/my/myParkingSpaceIndex',
url: '/pageSubPack/my/myParkingSpaceIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -8,7 +8,12 @@
<!-- 表单区域 -->
<scroll-view class="page" scroll-y>
<view v-if="carList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="car-item" v-for="(item, index) in carList" :key="index" @click="handleItemClick(item,index)"
:class="{ checked: selectedIndex === index }">
@@ -155,7 +160,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -191,6 +196,23 @@
box-sizing: border-box;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 底部按钮 */
.bottom-btn {
padding: 20rpx 30rpx 40rpx;

View File

@@ -18,6 +18,12 @@
<!-- 房屋列表 -->
<scroll-view class="list-container" scroll>
<view v-if="filteredList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="house-card" v-for="(item, index) in filteredList" :key="index"
@click="selectHouse(item,index)" :class="{ checked: selectedIndex === index }">
<!-- 小区名称 -->
@@ -191,7 +197,7 @@
goNext() {
uni.redirectTo({
url: '/pages/my/selectParingLot',
url: '/pageSubPack/my/selectParingLot',
success: res => {},
fail: () => {},
complete: () => {}
@@ -199,7 +205,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -346,6 +352,22 @@
/* ====================== 列表容器 ====================== */
.list-container {}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* ====================== 房屋卡片 ====================== */
.house-card {

View File

@@ -108,7 +108,7 @@
clickUpdate() {
uni.setStorageSync('operationType', 'update')
uni.redirectTo({
url: '/pages/my/addCar?id=' + this.id,
url: '/pageSubPack/my/addCar?id=' + this.id,
success: res => {},
fail: () => {},
complete: () => {}
@@ -147,7 +147,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/myCarIndex',
url: '/pageSubPack/my/myCarIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -168,7 +168,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/settingIndex',
url: '/pageSubPack/my/settingIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -115,7 +115,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/settingIndex',
url: '/pageSubPack/my/settingIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -191,7 +191,7 @@
clickUpdate() {
uni.setStorageSync('operationType', 'update')
uni.redirectTo({
url: '/pages/my/addHouse?id=' + this.id + '&sourcePage=' + 'addHouse',
url: '/pageSubPack/my/addHouse?id=' + this.id + '&sourcePage=' + 'addHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -228,7 +228,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/myHouseIndex',
url: '/pageSubPack/my/myHouseIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -8,9 +8,13 @@
<!-- 表单区域 -->
<scroll-view class="page" scroll-y="true">
<!-- 我的车辆列表 -->
<view v-if="carList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="car-item" v-for="(item, index) in carList" :key="index" @click="handleItemClick(item,index)">
<!-- 左侧圆形占位 -->
<image :src="item.imgSrc" mode="aspectFill" class="car-avatar" @error="item.imgSrc = defaultCarImg" />
@@ -78,7 +82,8 @@
selectedIndex: -1, //
//
carList: [{
carList: [
{
id: '1',
imgSrc: 'http://47.104.199.163:9090/images/propertyImgs/carImg.png',
plate: "京A88888",
@@ -115,7 +120,7 @@
handleItemClick(item, index) {
uni.setStorageSync('operationType', 'update');
uni.redirectTo({
url: '/pages/my/carDetail?id=' + item.id + '&status=' + item.status,
url: '/pageSubPack/my/carDetail?id=' + item.id + '&status=' + item.status,
success: res => {},
fail: () => {},
complete: () => {}
@@ -127,7 +132,7 @@
addCar() {
uni.setStorageSync('operationType', 'add');
uni.redirectTo({
url: '/pages/my/addCar',
url: '/pageSubPack/my/addCar',
success: res => {},
fail: () => {},
complete: () => {}
@@ -173,6 +178,25 @@
box-sizing: border-box;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 底部按钮 */
.bottom-btn {
padding: 20rpx 30rpx 40rpx;

View File

@@ -6,6 +6,12 @@
<!-- -->
<scroll-view class="page" scroll-y="true">
<view v-if="houseList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<!-- 房屋列表 v-for 渲染 -->
<view class="house-list">
<view class="house-card" v-for="(item, index) in houseList" :key="index" @click="tapHouse(item)">
@@ -163,7 +169,7 @@
},
tapHouse(item) {
uni.redirectTo({
url: '/pages/my/houseDetail?id=' + item.id + '&statusClass=' + item.statusClass,
url: '/pageSubPack/my/houseDetail?id=' + item.id + '&statusClass=' + item.statusClass,
success: res => {},
fail: () => {},
complete: () => {}
@@ -173,7 +179,7 @@
addHouse() {
uni.setStorageSync('operationType', 'add');
uni.redirectTo({
url: '/pages/my/addHouse',
url: '/pageSubPack/my/addHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -218,6 +224,22 @@
padding: 0px 40rpx;
box-sizing: border-box;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 底部按钮 */
.bottom-btn {

View File

@@ -4,6 +4,12 @@
<uni-nav-bar title="我的车位" left-icon="left" @clickLeft="goBack" backgroundColor="transparent" :border="false">
</uni-nav-bar>
<scroll-view class="page" scroll-y="true">
<view v-if="parkingSpaceList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<!-- 车位列表 v-for 渲染 -->
<view class="parkingSpace-list">
<view class="parkingSpace-card" v-for="(item, index) in parkingSpaceList" :key="index"
@@ -46,7 +52,8 @@
</view>
</view>
<view class="right">
<image src="http://47.104.199.163:9090/images/propertyImgs/myParkingSpace.png" class="imgItem" mode="widthFix">
<image src="http://47.104.199.163:9090/images/propertyImgs/myParkingSpace.png"
class="imgItem" mode="widthFix">
</image>
</view>
@@ -136,7 +143,7 @@
methods: {
tapParkingSpace(item) {
uni.redirectTo({
url: '/pages/my/parkingSpaceDetail?id=' + item.id + '&statusClass=' + item.statusClass,
url: '/pageSubPack/my/parkingSpaceDetail?id=' + item.id + '&statusClass=' + item.statusClass,
success: res => {},
fail: () => {},
complete: () => {}
@@ -146,7 +153,7 @@
addParkingSpace() {
uni.setStorageSync('operationType', 'add');
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -191,6 +198,23 @@
box-sizing: border-box;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 底部按钮 */
.bottom-btn {
padding: 20rpx 30rpx 40rpx;

View File

@@ -179,7 +179,7 @@
onModify() {
uni.setStorageSync('operationType', 'update');
uni.redirectTo({
url: '/pages/my/addParkingSpace?id=' + this.id + '&sourcePage=' + 'addParkingSpace',
url: '/pageSubPack/my/addParkingSpace?id=' + this.id + '&sourcePage=' + 'addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -213,7 +213,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/my/myParkingSpaceIndex',
url: '/pageSubPack/my/myParkingSpaceIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -9,6 +9,12 @@
<!-- 楼栋网格列表 -->
<view class="building-grid">
<view v-if="dataList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="building-item"
:class="{ active:(checkType=='楼栋'&& selectedBuilding === item.id)||(checkType=='单元'&& selectedUnit === item.id)||(checkType=='楼层'&&selectedFloor === item.id) ||(checkType=='户号'&&selectedHouseNumber === item.id) }"
v-for="(item, index) in dataList" :key="index" @click="selectBuilding(item)">
@@ -315,14 +321,14 @@
console.log(this.checkType, '刷新页面');
if (this.checkType != '户号') {
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
});
} else {
uni.redirectTo({
url: '/pages/my/addHouse',
url: '/pageSubPack/my/addHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -345,7 +351,7 @@
}
uni.redirectTo({
url: '/pages/my/addHouse',
url: '/pageSubPack/my/addHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -394,6 +400,23 @@
gap: 30rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 楼栋按钮 */
.building-item {
height: 100rpx;

View File

@@ -14,6 +14,12 @@
</view>
<!-- 小区列表 -->
<view class="carBrand-list">
<view v-if="filteredList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="carBrand-item" v-for="(item, index) in filteredList" :key="index"
@click="selectCarBrand(item)">
<text class="carBrand-name">{{ item.name }}</text>
@@ -90,7 +96,7 @@
uni.setStorageSync('carBrandName', item.name);
uni.redirectTo({
url: '/pages/my/addCar',
url: '/pageSubPack/my/addCar',
success: res => {},
fail: () => {},
complete: () => {}
@@ -102,7 +108,7 @@
uni.removeStorageSync('carBrandName');
uni.redirectTo({
url: '/pages/my/addCar',
url: '/pageSubPack/my/addCar',
success: res => {},
fail: () => {},
complete: () => {}
@@ -156,6 +162,23 @@
height: 70rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
.search-input {
flex: 1;
height: 100%;

View File

@@ -1,13 +1,20 @@
<template>
<view class="contentStyle" style="">
<view class="status-bar"></view>
<uni-nav-bar :title="'选择'+checkType" left-icon="left" @clickLeft="goBackAdd" backgroundColor="transparent" :border="false">
<uni-nav-bar :title="'选择'+checkType" left-icon="left" @clickLeft="goBackAdd" backgroundColor="transparent"
:border="false">
</uni-nav-bar>
<scroll-view class="page" scroll-y>
<!-- 停车场网格列表 -->
<view class="parkingLot-grid">
<view v-if="dataList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="parkingLot-item"
:class="{ active:(checkType=='停车场'&& selectedParkingLot === item.id)||(checkType=='车位编号'&& selectedParkingSpace === item.id)}"
v-for="(item, index) in dataList" :key="index" @click="selectedParking(item)">
@@ -206,14 +213,14 @@
goFreash() {
if (this.checkType != '车位编号') {
uni.redirectTo({
url: '/pages/my/selectParingLot',
url: '/pageSubPack/my/selectParingLot',
success: res => {},
fail: () => {},
complete: () => {}
});
} else {
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -230,7 +237,7 @@
}
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -251,7 +258,6 @@
</style>
<style scoped>
.contentStyle {
display: flex;
flex-direction: column;
@@ -281,6 +287,23 @@
gap: 30rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 停车场按钮 */
.parkingLot-item {
height: 100rpx;
@@ -353,7 +376,9 @@
.toast-text {
color: #fff;
font-size: 28rpx;
}.status-bar{
}
.status-bar {
width: 100vw;
height: 46px;
}

View File

@@ -14,6 +14,12 @@
</view>
<!-- 小区列表 -->
<view class="community-list">
<view v-if="filteredList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="community-item" v-for="(item, index) in filteredList" :key="index"
@click="selectCommunity(item)">
<text class="community-name">{{ item.name }}</text>
@@ -127,14 +133,14 @@
if (this.sourcePage == 'addHouse') {
uni.redirectTo({
url: '/pages/my/selectBuilding',
url: '/pageSubPack/my/selectBuilding',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (this.sourcePage == 'addParkingSpace') {
uni.redirectTo({
url: '/pages/my/bindHouse',
url: '/pageSubPack/my/bindHouse',
success: res => {},
fail: () => {},
complete: () => {}
@@ -149,14 +155,14 @@
uni.removeStorageSync('communityName');
if (this.sourcePage == 'addHouse') {
uni.redirectTo({
url: '/pages/my/addHouse',
url: '/pageSubPack/my/addHouse',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (this.sourcePage == 'addParkingSpace') {
uni.redirectTo({
url: '/pages/my/addParkingSpace',
url: '/pageSubPack/my/addParkingSpace',
success: res => {},
fail: () => {},
complete: () => {}
@@ -197,7 +203,22 @@
padding: 20rpx 30rpx 40rpx;
} */
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* 搜索框 */
.search-box {

View File

@@ -95,14 +95,14 @@
// console.log('', item.title,item.title == '')
if (item.title == '更改手机号码') {
uni.redirectTo({
url: '/pages/my/changePhone',
url: '/pageSubPack/my/changePhone',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (item.title == '修改密码') {
uni.redirectTo({
url: '/pages/my/changePwd',
url: '/pageSubPack/my/changePwd',
success: res => {},
fail: () => {},
complete: () => {}
@@ -151,7 +151,12 @@
//
uni.hideLoading();
uni.redirectTo({
url: '/pageSubPack/loginSub/pwd-login',
success: res => {},
fail: () => {},
complete: () => {}
});
}, 2500);

View File

@@ -168,7 +168,7 @@
},
goNext() {
uni.redirectTo({
url: '/pages/payment-list/addPaymentSuccess',
url: '/pageSubPack/payment-list/addPaymentSuccess',
success: res => {},
fail: () => {},
complete: () => {}
@@ -176,7 +176,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -185,7 +185,7 @@
},
goNext() {
uni.redirectTo({
url: '/pages/payment-list/addPaymentSuccess',
url: '/pageSubPack/payment-list/addPaymentSuccess',
success: res => {},
fail: () => {},
complete: () => {}
@@ -193,7 +193,7 @@
},
goToChange() {
// uni.redirectTo({
// url: '/pages/payment-list/selectPaymentEntity',
// url: '/pageSubPack/payment-list/selectPaymentEntity',
// success: res => {},
// fail: () => {},
// complete: () => {}
@@ -201,7 +201,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -80,7 +80,7 @@
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -264,7 +264,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}
@@ -331,7 +331,7 @@
//
handleBackToList() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -131,7 +131,7 @@
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}
@@ -198,7 +198,7 @@
//
handleBackToList() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -12,6 +12,12 @@
<view class="container">
<!-- 已缴费/欠费列表 -->
<view class="bill-list">
<view v-if="paymentList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="bill-item" @click="goToBill(item)" v-for="item,index in paymentList" :key="index">
<image class="billIcon" :src="item.icon"></image>
<view class="bill-info">
@@ -35,6 +41,7 @@
</view>
<view class="grid-list">
<view class="grid-item" v-for="(item, index) in addList" :key="index" @click="goToAdd(item)">
<view class="icon-box" :class="item.iconClass">
<image class="iconStyle" :src="item.icon"></image>
@@ -155,14 +162,14 @@
uni.setStorageSync('arrearsPayment', item.name)
if (item.status == '已欠费') {
uni.redirectTo({
url: '/pages/payment-list/arrearsPayment',
url: '/pageSubPack/payment-list/arrearsPayment',
success: res => {},
fail: () => {},
complete: () => {}
});
} else {
uni.redirectTo({
url: '/pages/payment-list/noArrearsPayment',
url: '/pageSubPack/payment-list/noArrearsPayment',
success: res => {},
fail: () => {},
complete: () => {}
@@ -172,7 +179,7 @@
//
goToRecord() {
uni.redirectTo({
url: '/pages/payment-list/paymentRecord',
url: '/pageSubPack/payment-list/paymentRecord',
success: res => {},
fail: () => {},
complete: () => {}
@@ -182,14 +189,14 @@
goToAdd(type) {
if (type.name == '燃气' || type.name == '暖气') {
uni.redirectTo({
url: '/pages/payment-list/selectPaymentEntity',
url: '/pageSubPack/payment-list/selectPaymentEntity',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (type.name == '水' || type.name == '电') {
uni.redirectTo({
url: '/pages/payment-list/addHydropower',
url: '/pageSubPack/payment-list/addHydropower',
success: res => {},
fail: () => {},
complete: () => {}
@@ -282,6 +289,23 @@
border-radius: 10rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
.bill-item {
display: flex;
align-items: center;

View File

@@ -18,6 +18,12 @@
<!-- <canvas canvas-id="chargeChart" class="chart-canvas"></canvas> -->
<view class="chart-box">
<view v-if="chartData.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<!-- 循环6个月柱状图 -->
<view class="chart-item" v-for="(item,index) in chartData" :key="index">
<!-- 柱子顶部金额文字 -->
@@ -34,6 +40,12 @@
<!-- 缴费明细 -->
<view class="list-wrapper">
<!-- 按月份分组渲染 -->
<view v-if="monthGroups.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="month-group" v-for="(item, idx) in monthGroups" :key="idx">
<view class="month-title">
{{ item.month }} 缴费 ¥{{ item.total }}
@@ -271,7 +283,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}
@@ -311,6 +323,23 @@
margin-bottom: 30rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
.top-box {
display: flex;
justify-content: space-between;

View File

@@ -30,7 +30,12 @@
</view>
</view>
<view v-if="filterList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<!-- <scroll-view scroll-y class="list-scroll"> -->
<view v-for="item in filterList">
<view class="group-title">{{item.name}}</view>
@@ -244,7 +249,7 @@
selectItem(item) {
console.log(item);
uni.redirectTo({
url: '/pages/payment-list/addPayment',
url: '/pageSubPack/payment-list/addPayment',
success: res => {},
fail: () => {},
complete: () => {}
@@ -279,7 +284,7 @@
goBack() {
uni.redirectTo({
url: '/pages/payment-list/paymentIndex',
url: '/pageSubPack/payment-list/paymentIndex',
success: res => {},
fail: () => {},
complete: () => {}
@@ -395,8 +400,7 @@
}
/* 列表 */
.list-scroll {
}
.list-scroll {}
.group-title {
padding: 20rpx 40rpx;
@@ -425,4 +429,21 @@
width: 100vw;
height: 46px;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
</style>

View File

@@ -291,7 +291,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/service-list/complaintsSuggestionsIndex',
url: '/pageSubPack/service-list/complaintsSuggestionsIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -129,7 +129,7 @@
goBack() {
uni.redirectTo({
url: '/pages/service-list/complaintsSuggestionsIndex',
url: '/pageSubPack/service-list/complaintsSuggestionsIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -11,7 +11,12 @@
<!-- 表单区域 -->
<scroll-view class="page" scroll-y="true">
<view class="page-container">
<view v-if="dataList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<!-- 2. 投诉卡片主体 -->
<view class="card-wrapper" v-for="item,index in dataList" :key="index">
<!-- 卡片头部标题 + 标签 -->
@@ -174,7 +179,7 @@
methods: {
turnToDetail(item) {
uni.redirectTo({
url: '/pages/service-list/complaintsDetail?id=' + item.id + '&status=' + item.status,
url: '/pageSubPack/service-list/complaintsDetail?id=' + item.id + '&status=' + item.status,
success: res => {},
fail: () => {},
complete: () => {}
@@ -193,7 +198,7 @@
},
addComplaintsSuggestions() {
uni.redirectTo({
url: '/pages/service-list/addComplaints',
url: '/pageSubPack/service-list/addComplaints',
success: res => {},
fail: () => {},
complete: () => {}
@@ -245,6 +250,23 @@
padding-top: 20rpx;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
/* --- 分段控制器样式 --- */
.seg-control {
margin-bottom: 20rpx;

View File

@@ -7,6 +7,12 @@
<!-- 表单区域 -->
<scroll-view class="page" scroll-y="true">
<view v-if="dataList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view class="property-card" v-for="item,index in dataList" :key="index">
<view class="topBox">
<!-- 左侧头像 -->
@@ -120,7 +126,22 @@
/* 关键:占满屏幕高度 */
/* background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%); */
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
.page {
flex: 1;
overflow-y: auto;

View File

@@ -112,7 +112,7 @@
goBack() {
uni.redirectTo({
url: '/pages/service-list/questionnaireSurveyIndex',
url: '/pageSubPack/service-list/questionnaireSurveyIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -240,7 +240,7 @@
},
goBack() {
uni.redirectTo({
url: '/pages/service-list/questionnaireSurveyIndex',
url: '/pageSubPack/service-list/questionnaireSurveyIndex',
success: res => {},
fail: () => {},
complete: () => {}

View File

@@ -12,6 +12,12 @@
<!-- 表单区域 -->
<scroll-view class="page" scroll-y="true">
<view class="list-container">
<view v-if="currentList.length === 0" class="empty-state">
<uni-icons type="info" size="60" color="#ccc"></uni-icons>
<text class="empty-text">
{{ '暂无数据'}}
</text>
</view>
<view v-for="(item, index) in currentList" :key="index" class="list-item" :class="{
disabled: currentTab === 1,
selected: currentTab === 0 && item.status === '已参与'
@@ -187,7 +193,7 @@
turnToFillout(item) {
//
uni.redirectTo({
url: `/pages/service-list/questionnaireFillout`,
url: `/pageSubPack/service-list/questionnaireFillout`,
success: res => {},
fail: () => {},
complete: () => {}
@@ -196,7 +202,7 @@
turnToDetail(item) {
//
uni.redirectTo({
url: `/pages/service-list/questionnaireDetail`,
url: `/pageSubPack/service-list/questionnaireDetail`,
success: res => {},
fail: () => {},
complete: () => {}
@@ -354,4 +360,20 @@
width: 100vw;
height: 46px;
}
/* 空状态 */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 100rpx 0;
color: #ccc;
}
.empty-text {
font-size: 32rpx;
color: #999;
margin-top: 20rpx;
margin-bottom: 10rpx;
}
</style>

View File

@@ -204,7 +204,7 @@
]
},
{
"root": "pages/my",
"root": "pageSubPack/my",
"pages": [{
"path": "settingIndex",
"style": {
@@ -334,7 +334,7 @@
}
]
}, {
"root": "pages/payment-list",
"root": "pageSubPack/payment-list",
"pages": [{
"path": "addPayment",
"style": {
@@ -391,7 +391,7 @@
]
},
{
"root": "pages/service-list",
"root": "pageSubPack/service-list",
"pages": [{
"path": "complaintsSuggestionsIndex",
"style": {

View File

@@ -42,32 +42,13 @@
</template>
<script setup>
import {
ref
} from 'vue';
<script>
export default {
onReady: function(e) {},
components: {
},
computed: {
},
created() {
},
onShow() {
},
onLoad() {
},
mounted() {},
data() {
return {
loginName: "wangh",
phoneNum: '156*****1212',
list: [{
const list = ref([{
icon: "http://47.104.199.163:9090/images/propertyImgs/house.png",
title: "我的房屋"
},
@@ -88,59 +69,63 @@
icon: "http://47.104.199.163:9090/images/propertyImgs/setting.png",
title: "设置"
}
]
])
const loginName = ref("wangh")
const phoneNum = ref('156*****1212')
// --方法----
const goToDetail = () => {
uni.navigateTo({
url: '/pageSubPack/notice-list/noticeListDetails'
})
}
},
methods: {
onItemClick(item) {
// 返回
const onItemClick = (item) => {
if (item.title == '我的房屋') {
uni.redirectTo({
url: '/pages/my/myHouseIndex',
url: '/pageSubPack/my/myHouseIndex',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (item.title == '住户管理') {
// uni.redirectTo({
// url: '/pages/my/changePwd',
// url: '/pageSubPack/my/changePwd',
// success: res => {},
// fail: () => {},
// complete: () => {}
// });
} else if (item.title == '我的车位') {
uni.redirectTo({
url: '/pages/my/myParkingSpaceIndex',
url: '/pageSubPack/my/myParkingSpaceIndex',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (item.title == '我的车辆') {
uni.redirectTo({
url: '/pages/my/myCarIndex',
url: '/pageSubPack/my/myCarIndex',
success: res => {},
fail: () => {},
complete: () => {}
});
} else if (item.title == '设置') {
this.goSetting()
goSetting()
}
},
goSetting() {
}
const goSetting = () => {
uni.redirectTo({
url: '/pages/my/settingIndex',
url: '/pageSubPack/my/settingIndex',
success: res => {},
fail: () => {},
complete: () => {}
});
},
},
}
</script>
<style lang="scss">
page {
// background: #fff;

View File

@@ -52,117 +52,86 @@
</template>
<script>
export default {
onReady: function(e) {},
components: {
},
computed: {
<script setup>
import {
ref
} from 'vue';
},
created() {
},
onShow() {
},
mounted() {},
onReady() {
this.$nextTick(() => {
})
},
data() {
return {
/* 设定状态栏默认高度 */
statusBarHeight: 20,
// 常用功能列表
commonFuncList: [{
const commonFuncList = ref([{
name: "一键开门",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-door.png",
path: "/pages/notice-list/oneClickOpen"
path: "/pageSubPack/notice-list/oneClickOpen"
},
{
name: "生活缴费",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-pay.png",
path: "/pages/payment-list/paymentIndex"
path: "/pageSubPack/payment-list/paymentIndex"
},
{
name: "在线报修",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-repair.png",
path: "/pages/online-repair/onlineRepair"
path: "/pageSubPack/online-repair/onlineRepair"
},
{
name: "访客邀请",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-visitor.png",
path: "/pages/visitor/visitor-list"
path: "/pageSubPack/visitor/visitor-list"
}
],
// 智慧社区功能列表
communityFuncList: [{
])
const communityFuncList = ref([{
name: "一键开门",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-door.png",
path: "/pages/notice-list/oneClickOpen"
path: "/pageSubPack/notice-list/oneClickOpen"
},
{
name: "生活缴费",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-pay.png",
path: "/pages/payment-list/paymentIndex"
path: "/pageSubPack/payment-list/paymentIndex"
},
{
name: "在线报修",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-repair.png",
path: "/pages/online-repair/onlineRepair"
path: "/pageSubPack/online-repair/onlineRepair"
},
{
name: "访客邀请",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-visitor.png",
path: "/pages/visitor/visitor-list"
path: "/pageSubPack/visitor/visitor-list"
},
{
name: "投诉意见",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-complaint.png",
path: "/pages/service-list/complaintsSuggestionsIndex"
path: "/pageSubPack/service-list/complaintsSuggestionsIndex"
},
{
name: "问卷调查",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-survey.png",
path: "/pages/service-list/questionnaireSurveyIndex"
path: "/pageSubPack/service-list/questionnaireSurveyIndex"
},
{
name: "社区活动",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-activity.png",
path: "/pages/activity-list/activityList"
path: "/pageSubPack/activity-list/activityList"
},
{
name: "公告公示",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-notice.png",
path: "/pages/notice-list/noticeList"
path: "/pageSubPack/notice-list/noticeList"
},
{
name: "联系物业",
icon: "http://47.104.199.163:9090/images/propertyImgs/icon-contact.png",
path: "/pages/service-list/contactProperty"
path: "/pageSubPack/service-list/contactProperty"
}
]
])
const loginName = ref("wangh")
const phoneNum = ref('156*****1212')
// --方法----
}
},
const handleFuncClick = (item) => {
methods: {
// 功能点击事件
handleFuncClick(item) {
console.log(item.path);
uni.setStorageSync('sourcePage', 'serviceIndex')
uni.redirectTo({
url: item.path,
@@ -170,14 +139,11 @@
fail: () => {},
complete: () => {}
});
},
},
}
</script>
<style lang="scss">
page {
background: #f2f1f6;