This commit is contained in:
wangyuxin
2026-04-21 17:24:52 +08:00
parent b8fcaff48c
commit fb08057489
36 changed files with 630 additions and 329 deletions

View File

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

View File

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

View File

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

View File

@@ -8,7 +8,12 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<scroll-view class="page" scroll-y> <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)" <view class="car-item" v-for="(item, index) in carList" :key="index" @click="handleItemClick(item,index)"
:class="{ checked: selectedIndex === index }"> :class="{ checked: selectedIndex === index }">
@@ -155,7 +160,7 @@
}, },
goBack() { goBack() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -191,6 +196,23 @@
box-sizing: border-box; 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 { .bottom-btn {
padding: 20rpx 30rpx 40rpx; padding: 20rpx 30rpx 40rpx;
@@ -335,8 +357,8 @@
/* 状态标签 */ /* 状态标签 */
.status-tag { .status-tag {
font-size: 24rpx; font-size: 24rpx;
padding:6rpx14rpx; padding: 6rpx14rpx;
border-radius:6rpx; border-radius: 6rpx;
font-weight: 500; font-weight: 500;
flex-shrink: 0; flex-shrink: 0;
position: absolute; position: absolute;

View File

@@ -18,6 +18,12 @@
<!-- 房屋列表 --> <!-- 房屋列表 -->
<scroll-view class="list-container" scroll> <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" <view class="house-card" v-for="(item, index) in filteredList" :key="index"
@click="selectHouse(item,index)" :class="{ checked: selectedIndex === index }"> @click="selectHouse(item,index)" :class="{ checked: selectedIndex === index }">
<!-- 小区名称 --> <!-- 小区名称 -->
@@ -191,7 +197,7 @@
goNext() { goNext() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/selectParingLot', url: '/pageSubPack/my/selectParingLot',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -199,7 +205,7 @@
}, },
goBack() { goBack() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -346,6 +352,22 @@
/* ====================== 列表容器 ====================== */ /* ====================== 列表容器 ====================== */
.list-container {} .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 { .house-card {

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,9 +8,13 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<scroll-view class="page" scroll-y="true"> <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)"> <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" /> <image :src="item.imgSrc" mode="aspectFill" class="car-avatar" @error="item.imgSrc = defaultCarImg" />
@@ -78,7 +82,8 @@
selectedIndex: -1, // selectedIndex: -1, //
// //
carList: [{ carList: [
{
id: '1', id: '1',
imgSrc: 'http://47.104.199.163:9090/images/propertyImgs/carImg.png', imgSrc: 'http://47.104.199.163:9090/images/propertyImgs/carImg.png',
plate: "京A88888", plate: "京A88888",
@@ -115,7 +120,7 @@
handleItemClick(item, index) { handleItemClick(item, index) {
uni.setStorageSync('operationType', 'update'); uni.setStorageSync('operationType', 'update');
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/carDetail?id=' + item.id + '&status=' + item.status, url: '/pageSubPack/my/carDetail?id=' + item.id + '&status=' + item.status,
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -127,7 +132,7 @@
addCar() { addCar() {
uni.setStorageSync('operationType', 'add'); uni.setStorageSync('operationType', 'add');
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addCar', url: '/pageSubPack/my/addCar',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -173,6 +178,25 @@
box-sizing: border-box; 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 { .bottom-btn {
padding: 20rpx 30rpx 40rpx; padding: 20rpx 30rpx 40rpx;
@@ -329,8 +353,8 @@
/* 状态标签 */ /* 状态标签 */
.status-tag { .status-tag {
font-size: 24rpx; font-size: 24rpx;
padding:6rpx14rpx; padding: 6rpx14rpx;
border-radius:6rpx; border-radius: 6rpx;
font-weight: 500; font-weight: 500;
flex-shrink: 0; flex-shrink: 0;
position: absolute; position: absolute;

View File

@@ -6,6 +6,12 @@
<!-- --> <!-- -->
<scroll-view class="page" scroll-y="true"> <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 渲染 --> <!-- 房屋列表 v-for 渲染 -->
<view class="house-list"> <view class="house-list">
<view class="house-card" v-for="(item, index) in houseList" :key="index" @click="tapHouse(item)"> <view class="house-card" v-for="(item, index) in houseList" :key="index" @click="tapHouse(item)">
@@ -163,7 +169,7 @@
}, },
tapHouse(item) { tapHouse(item) {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/houseDetail?id=' + item.id + '&statusClass=' + item.statusClass, url: '/pageSubPack/my/houseDetail?id=' + item.id + '&statusClass=' + item.statusClass,
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -173,7 +179,7 @@
addHouse() { addHouse() {
uni.setStorageSync('operationType', 'add'); uni.setStorageSync('operationType', 'add');
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addHouse', url: '/pageSubPack/my/addHouse',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -218,6 +224,22 @@
padding: 0px 40rpx; padding: 0px 40rpx;
box-sizing: border-box; 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 { .bottom-btn {

View File

@@ -4,6 +4,12 @@
<uni-nav-bar title="我的车位" left-icon="left" @clickLeft="goBack" backgroundColor="transparent" :border="false"> <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"> <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 渲染 --> <!-- 车位列表 v-for 渲染 -->
<view class="parkingSpace-list"> <view class="parkingSpace-list">
<view class="parkingSpace-card" v-for="(item, index) in parkingSpaceList" :key="index" <view class="parkingSpace-card" v-for="(item, index) in parkingSpaceList" :key="index"
@@ -46,7 +52,8 @@
</view> </view>
</view> </view>
<view class="right"> <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> </image>
</view> </view>
@@ -136,7 +143,7 @@
methods: { methods: {
tapParkingSpace(item) { tapParkingSpace(item) {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/parkingSpaceDetail?id=' + item.id + '&statusClass=' + item.statusClass, url: '/pageSubPack/my/parkingSpaceDetail?id=' + item.id + '&statusClass=' + item.statusClass,
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -146,7 +153,7 @@
addParkingSpace() { addParkingSpace() {
uni.setStorageSync('operationType', 'add'); uni.setStorageSync('operationType', 'add');
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -191,6 +198,23 @@
box-sizing: border-box; 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 { .bottom-btn {
padding: 20rpx 30rpx 40rpx; padding: 20rpx 30rpx 40rpx;
@@ -235,7 +259,7 @@
/* 状态标签 */ /* 状态标签 */
.status-tag { .status-tag {
font-size: 24rpx; font-size: 24rpx;
padding:4rpx16rpx; padding: 4rpx 16rpx;
border-radius: 30rpx; border-radius: 30rpx;
margin-left: 20rpx; margin-left: 20rpx;
white-space: nowrap; white-space: nowrap;

View File

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

View File

@@ -9,6 +9,12 @@
<!-- 楼栋网格列表 --> <!-- 楼栋网格列表 -->
<view class="building-grid"> <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" <view class="building-item"
:class="{ active:(checkType=='楼栋'&& selectedBuilding === item.id)||(checkType=='单元'&& selectedUnit === item.id)||(checkType=='楼层'&&selectedFloor === item.id) ||(checkType=='户号'&&selectedHouseNumber === item.id) }" :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)"> v-for="(item, index) in dataList" :key="index" @click="selectBuilding(item)">
@@ -315,14 +321,14 @@
console.log(this.checkType, '刷新页面'); console.log(this.checkType, '刷新页面');
if (this.checkType != '户号') { if (this.checkType != '户号') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/selectBuilding', url: '/pageSubPack/my/selectBuilding',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else { } else {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addHouse', url: '/pageSubPack/my/addHouse',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -345,7 +351,7 @@
} }
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addHouse', url: '/pageSubPack/my/addHouse',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -394,6 +400,23 @@
gap: 30rpx; 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 { .building-item {
height: 100rpx; height: 100rpx;

View File

@@ -14,6 +14,12 @@
</view> </view>
<!-- 小区列表 --> <!-- 小区列表 -->
<view class="carBrand-list"> <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" <view class="carBrand-item" v-for="(item, index) in filteredList" :key="index"
@click="selectCarBrand(item)"> @click="selectCarBrand(item)">
<text class="carBrand-name">{{ item.name }}</text> <text class="carBrand-name">{{ item.name }}</text>
@@ -90,7 +96,7 @@
uni.setStorageSync('carBrandName', item.name); uni.setStorageSync('carBrandName', item.name);
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addCar', url: '/pageSubPack/my/addCar',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -102,7 +108,7 @@
uni.removeStorageSync('carBrandName'); uni.removeStorageSync('carBrandName');
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addCar', url: '/pageSubPack/my/addCar',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -156,6 +162,23 @@
height: 70rpx; 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 { .search-input {
flex: 1; flex: 1;
height: 100%; height: 100%;
@@ -197,13 +220,13 @@
.item-arrow { .item-arrow {
display: inline-block; display: inline-block;
width:10rpx; width: 10rpx;
height:10rpx; height: 10rpx;
border-top: 2rpx solid #999; border-top: 2rpx solid #999;
border-right: 2rpx solid #999; border-right: 2rpx solid #999;
transform: rotate(45deg); transform: rotate(45deg);
margin-left: 10rpx; margin-left: 10rpx;
margin-right:10rpx; margin-right: 10rpx;
} }
.status-bar { .status-bar {

View File

@@ -1,13 +1,20 @@
<template> <template>
<view class="contentStyle" style=""> <view class="contentStyle" style="">
<view class="status-bar"></view> <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> </uni-nav-bar>
<scroll-view class="page" scroll-y> <scroll-view class="page" scroll-y>
<!-- 停车场网格列表 --> <!-- 停车场网格列表 -->
<view class="parkingLot-grid"> <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" <view class="parkingLot-item"
:class="{ active:(checkType=='停车场'&& selectedParkingLot === item.id)||(checkType=='车位编号'&& selectedParkingSpace === item.id)}" :class="{ active:(checkType=='停车场'&& selectedParkingLot === item.id)||(checkType=='车位编号'&& selectedParkingSpace === item.id)}"
v-for="(item, index) in dataList" :key="index" @click="selectedParking(item)"> v-for="(item, index) in dataList" :key="index" @click="selectedParking(item)">
@@ -206,14 +213,14 @@
goFreash() { goFreash() {
if (this.checkType != '车位编号') { if (this.checkType != '车位编号') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/selectParingLot', url: '/pageSubPack/my/selectParingLot',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else { } else {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -230,7 +237,7 @@
} }
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -251,7 +258,6 @@
</style> </style>
<style scoped> <style scoped>
.contentStyle { .contentStyle {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -281,6 +287,23 @@
gap: 30rpx; 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 { .parkingLot-item {
height: 100rpx; height: 100rpx;
@@ -353,7 +376,9 @@
.toast-text { .toast-text {
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
}.status-bar{ }
.status-bar {
width: 100vw; width: 100vw;
height: 46px; height: 46px;
} }

View File

@@ -14,6 +14,12 @@
</view> </view>
<!-- 小区列表 --> <!-- 小区列表 -->
<view class="community-list"> <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" <view class="community-item" v-for="(item, index) in filteredList" :key="index"
@click="selectCommunity(item)"> @click="selectCommunity(item)">
<text class="community-name">{{ item.name }}</text> <text class="community-name">{{ item.name }}</text>
@@ -127,14 +133,14 @@
if (this.sourcePage == 'addHouse') { if (this.sourcePage == 'addHouse') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/selectBuilding', url: '/pageSubPack/my/selectBuilding',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else if (this.sourcePage == 'addParkingSpace') { } else if (this.sourcePage == 'addParkingSpace') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/bindHouse', url: '/pageSubPack/my/bindHouse',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -149,14 +155,14 @@
uni.removeStorageSync('communityName'); uni.removeStorageSync('communityName');
if (this.sourcePage == 'addHouse') { if (this.sourcePage == 'addHouse') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addHouse', url: '/pageSubPack/my/addHouse',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else if (this.sourcePage == 'addParkingSpace') { } else if (this.sourcePage == 'addParkingSpace') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/addParkingSpace', url: '/pageSubPack/my/addParkingSpace',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -197,7 +203,22 @@
padding: 20rpx 30rpx 40rpx; 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 { .search-box {
@@ -251,13 +272,13 @@
.item-arrow { .item-arrow {
display: inline-block; display: inline-block;
width:10rpx; width: 10rpx;
height:10rpx; height: 10rpx;
border-top: 2rpx solid #999; border-top: 2rpx solid #999;
border-right: 2rpx solid #999; border-right: 2rpx solid #999;
transform: rotate(45deg); transform: rotate(45deg);
margin-left: 10rpx; margin-left: 10rpx;
margin-right:10rpx; margin-right: 10rpx;
} }
.status-bar { .status-bar {

View File

@@ -95,14 +95,14 @@
// console.log('', item.title,item.title == '') // console.log('', item.title,item.title == '')
if (item.title == '更改手机号码') { if (item.title == '更改手机号码') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/changePhone', url: '/pageSubPack/my/changePhone',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else if (item.title == '修改密码') { } else if (item.title == '修改密码') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/my/changePwd', url: '/pageSubPack/my/changePwd',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -151,7 +151,12 @@
// //
uni.hideLoading(); uni.hideLoading();
uni.redirectTo({
url: '/pageSubPack/loginSub/pwd-login',
success: res => {},
fail: () => {},
complete: () => {}
});
}, 2500); }, 2500);
@@ -213,7 +218,7 @@
justify-content: space-between; justify-content: space-between;
background-color: #ffffff; background-color: #ffffff;
padding: 30rpx 30rpx; padding: 30rpx 30rpx;
border-bottom:2rpx solid #f0f0f0; border-bottom: 2rpx solid #f0f0f0;
} }
/* 标题文字 */ /* 标题文字 */
@@ -244,13 +249,13 @@
/* 右侧箭头 */ /* 右侧箭头 */
.item-arrow { .item-arrow {
display: inline-block; display: inline-block;
width:10rpx; width: 10rpx;
height:10rpx; height: 10rpx;
border-top: 2rpx solid #999; border-top: 2rpx solid #999;
border-right: 2rpx solid #999; border-right: 2rpx solid #999;
transform: rotate(45deg); transform: rotate(45deg);
margin-left: 10rpx; margin-left: 10rpx;
margin-right:10rpx; margin-right: 10rpx;
} }
/* 开关样式适配 */ /* 开关样式适配 */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -12,6 +12,12 @@
<view class="container"> <view class="container">
<!-- 已缴费/欠费列表 --> <!-- 已缴费/欠费列表 -->
<view class="bill-list"> <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"> <view class="bill-item" @click="goToBill(item)" v-for="item,index in paymentList" :key="index">
<image class="billIcon" :src="item.icon"></image> <image class="billIcon" :src="item.icon"></image>
<view class="bill-info"> <view class="bill-info">
@@ -35,6 +41,7 @@
</view> </view>
<view class="grid-list"> <view class="grid-list">
<view class="grid-item" v-for="(item, index) in addList" :key="index" @click="goToAdd(item)"> <view class="grid-item" v-for="(item, index) in addList" :key="index" @click="goToAdd(item)">
<view class="icon-box" :class="item.iconClass"> <view class="icon-box" :class="item.iconClass">
<image class="iconStyle" :src="item.icon"></image> <image class="iconStyle" :src="item.icon"></image>
@@ -155,14 +162,14 @@
uni.setStorageSync('arrearsPayment', item.name) uni.setStorageSync('arrearsPayment', item.name)
if (item.status == '已欠费') { if (item.status == '已欠费') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/arrearsPayment', url: '/pageSubPack/payment-list/arrearsPayment',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else { } else {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/noArrearsPayment', url: '/pageSubPack/payment-list/noArrearsPayment',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -172,7 +179,7 @@
// //
goToRecord() { goToRecord() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/paymentRecord', url: '/pageSubPack/payment-list/paymentRecord',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -182,14 +189,14 @@
goToAdd(type) { goToAdd(type) {
if (type.name == '燃气' || type.name == '暖气') { if (type.name == '燃气' || type.name == '暖气') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/selectPaymentEntity', url: '/pageSubPack/payment-list/selectPaymentEntity',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
}); });
} else if (type.name == '水' || type.name == '电') { } else if (type.name == '水' || type.name == '电') {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/addHydropower', url: '/pageSubPack/payment-list/addHydropower',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -282,6 +289,23 @@
border-radius: 10rpx; 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 { .bill-item {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -18,6 +18,12 @@
<!-- <canvas canvas-id="chargeChart" class="chart-canvas"></canvas> --> <!-- <canvas canvas-id="chargeChart" class="chart-canvas"></canvas> -->
<view class="chart-box"> <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个月柱状图 --> <!-- 循环6个月柱状图 -->
<view class="chart-item" v-for="(item,index) in chartData" :key="index"> <view class="chart-item" v-for="(item,index) in chartData" :key="index">
<!-- 柱子顶部金额文字 --> <!-- 柱子顶部金额文字 -->
@@ -34,6 +40,12 @@
<!-- 缴费明细 --> <!-- 缴费明细 -->
<view class="list-wrapper"> <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-group" v-for="(item, idx) in monthGroups" :key="idx">
<view class="month-title"> <view class="month-title">
{{ item.month }} 缴费 ¥{{ item.total }} {{ item.month }} 缴费 ¥{{ item.total }}
@@ -271,7 +283,7 @@
}, },
goBack() { goBack() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/paymentIndex', url: '/pageSubPack/payment-list/paymentIndex',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -311,6 +323,23 @@
margin-bottom: 30rpx; 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 { .top-box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

@@ -30,7 +30,12 @@
</view> </view>
</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"> --> <!-- <scroll-view scroll-y class="list-scroll"> -->
<view v-for="item in filterList"> <view v-for="item in filterList">
<view class="group-title">{{item.name}}</view> <view class="group-title">{{item.name}}</view>
@@ -244,7 +249,7 @@
selectItem(item) { selectItem(item) {
console.log(item); console.log(item);
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/addPayment', url: '/pageSubPack/payment-list/addPayment',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -279,7 +284,7 @@
goBack() { goBack() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/payment-list/paymentIndex', url: '/pageSubPack/payment-list/paymentIndex',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -316,7 +321,7 @@
.search-section { .search-section {
background-color: #fff; background-color: #fff;
padding:20rpx; padding: 20rpx;
display: flex; display: flex;
align-items: center; align-items: center;
} }
@@ -331,7 +336,7 @@
.city-select { .city-select {
display: flex; display: flex;
align-items: center; align-items: center;
padding:8rpx 0; padding: 8rpx 0;
cursor: pointer; cursor: pointer;
width: 80px; width: 80px;
height: 70rpx; height: 70rpx;
@@ -344,7 +349,7 @@
} }
.city-text { .city-text {
font-size:28rpx; font-size: 28rpx;
/* 匹配截图字体大小 */ /* 匹配截图字体大小 */
font-weight: 600; font-weight: 600;
color: #000000; color: #000000;
@@ -355,9 +360,9 @@
.arrow-icon { .arrow-icon {
width: 0; width: 0;
height: 0; height: 0;
border-left:10rpx solid transparent; border-left: 10rpx solid transparent;
border-right:10rpx solid transparent; border-right: 10rpx solid transparent;
border-top:16rpx solid #333333; border-top: 16rpx solid #333333;
/* 纯黑实心三角,和截图一致 */ /* 纯黑实心三角,和截图一致 */
margin-top: 4rpx; margin-top: 4rpx;
} }
@@ -369,10 +374,10 @@
width: 100%; width: 100%;
align-items: center; align-items: center;
background-color: #f3f4f6; background-color: #f3f4f6;
border-radius:20rpx; border-radius: 20rpx;
/* margin: 0rpx 30rpx 20rpx 30rpx; */ /* margin: 0rpx 30rpx 20rpx 30rpx; */
padding: 0 30rpx; padding: 0 30rpx;
margin:10rpx 0px 0px10rpx; margin: 10rpx 0px 0px10rpx;
height: 70rpx; height: 70rpx;
} }
@@ -395,20 +400,19 @@
} }
/* 列表 */ /* 列表 */
.list-scroll { .list-scroll {}
}
.group-title { .group-title {
padding:20rpx 40rpx; padding: 20rpx 40rpx;
font-size:28rpx; font-size: 28rpx;
color: #666; color: #666;
background-color: #f3f3f3; background-color: #f3f3f3;
} }
.item { .item {
background: #fff; background: #fff;
padding:20rpx 40rpx; padding: 20rpx 40rpx;
font-size:28rpx; font-size: 28rpx;
border-bottom: 2rpx solid #f2f2f2; border-bottom: 2rpx solid #f2f2f2;
} }
@@ -417,12 +421,29 @@
} }
::v-deep .selected-item { ::v-deep .selected-item {
margin-left:10rpx !important; margin-left: 10rpx !important;
margin-right:10rpx !important; margin-right: 10rpx !important;
} }
.status-bar { .status-bar {
width: 100vw; width: 100vw;
height: 46px; 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> </style>

View File

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

View File

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

View File

@@ -11,7 +11,12 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<scroll-view class="page" scroll-y="true"> <scroll-view class="page" scroll-y="true">
<view class="page-container"> <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. 投诉卡片主体 --> <!-- 2. 投诉卡片主体 -->
<view class="card-wrapper" v-for="item,index in dataList" :key="index"> <view class="card-wrapper" v-for="item,index in dataList" :key="index">
<!-- 卡片头部标题 + 标签 --> <!-- 卡片头部标题 + 标签 -->
@@ -174,7 +179,7 @@
methods: { methods: {
turnToDetail(item) { turnToDetail(item) {
uni.redirectTo({ 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 => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -193,7 +198,7 @@
}, },
addComplaintsSuggestions() { addComplaintsSuggestions() {
uni.redirectTo({ uni.redirectTo({
url: '/pages/service-list/addComplaints', url: '/pageSubPack/service-list/addComplaints',
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -245,6 +250,23 @@
padding-top: 20rpx; 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 { .seg-control {
margin-bottom: 20rpx; margin-bottom: 20rpx;

View File

@@ -7,6 +7,12 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<scroll-view class="page" scroll-y="true"> <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="property-card" v-for="item,index in dataList" :key="index">
<view class="topBox"> <view class="topBox">
<!-- 左侧头像 --> <!-- 左侧头像 -->
@@ -120,7 +126,22 @@
/* 关键:占满屏幕高度 */ /* 关键:占满屏幕高度 */
/* background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%); */ /* 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 { .page {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;

View File

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

View File

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

View File

@@ -12,6 +12,12 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<scroll-view class="page" scroll-y="true"> <scroll-view class="page" scroll-y="true">
<view class="list-container"> <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="{ <view v-for="(item, index) in currentList" :key="index" class="list-item" :class="{
disabled: currentTab === 1, disabled: currentTab === 1,
selected: currentTab === 0 && item.status === '已参与' selected: currentTab === 0 && item.status === '已参与'
@@ -187,7 +193,7 @@
turnToFillout(item) { turnToFillout(item) {
// //
uni.redirectTo({ uni.redirectTo({
url: `/pages/service-list/questionnaireFillout`, url: `/pageSubPack/service-list/questionnaireFillout`,
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -196,7 +202,7 @@
turnToDetail(item) { turnToDetail(item) {
// //
uni.redirectTo({ uni.redirectTo({
url: `/pages/service-list/questionnaireDetail`, url: `/pageSubPack/service-list/questionnaireDetail`,
success: res => {}, success: res => {},
fail: () => {}, fail: () => {},
complete: () => {} complete: () => {}
@@ -354,4 +360,20 @@
width: 100vw; width: 100vw;
height: 46px; 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> </style>

View File

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

View File

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

View File

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