修复bug,优化消息通知滚动

This commit is contained in:
zhouyanli
2026-08-19 17:02:14 +08:00
parent 52c041a4e6
commit c39f995bd1
4 changed files with 52 additions and 43 deletions

View File

@@ -2,8 +2,8 @@
"name" : "花开管家", "name" : "花开管家",
"appid" : "__UNI__5F224F3", "appid" : "__UNI__5F224F3",
"description" : "智慧社区管家端,专为小区物业管理人员打造,支持多小区灵活切换管理。集成账号密码、手机号密码双重登录模式,内置忘记密码找回功能,保障账号安全。涵盖消息通知、日常巡检、故障报修、一键开门、工单流转、投诉处理等核心办公功能,物业人员可在线完成巡检打卡、问题上报、工单派发跟进、投诉对接处理等日常工作,同时支持查看个人上报记录、巡检历史,便捷修改账号信息与登录密码。高效简化社区物业办公流程,提升小区服务与管理效率,打造便捷智能的社区管理服务平台。", "description" : "智慧社区管家端,专为小区物业管理人员打造,支持多小区灵活切换管理。集成账号密码、手机号密码双重登录模式,内置忘记密码找回功能,保障账号安全。涵盖消息通知、日常巡检、故障报修、一键开门、工单流转、投诉处理等核心办公功能,物业人员可在线完成巡检打卡、问题上报、工单派发跟进、投诉对接处理等日常工作,同时支持查看个人上报记录、巡检历史,便捷修改账号信息与登录密码。高效简化社区物业办公流程,提升小区服务与管理效率,打造便捷智能的社区管理服务平台。",
"versionName" : "1.0.7", "versionName" : "1.0.8",
"versionCode" : 107, "versionCode" : 108,
"transformPx" : false, "transformPx" : false,
"app-plus" : { "app-plus" : {
"usingComponents" : true, "usingComponents" : true,

View File

@@ -1,14 +1,14 @@
<template> <template>
<view class="report-record-page"> <view class="report-record-page">
<view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view> <!-- <view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view> -->
<!-- 顶部导航栏 --> <!-- 顶部导航栏 -->
<uni-nav-bar <!-- <uni-nav-bar
left-icon="back" left-icon="back"
title="上报记录" title="上报记录"
backgroundColor="transparent" backgroundColor="transparent"
:border="false" :border="false"
@clickLeft="navBack" @clickLeft="navBack"
/> /> -->
<!-- 状态筛选标签 --> <!-- 状态筛选标签 -->
<view class="status-tabs"> <view class="status-tabs">
@@ -37,11 +37,7 @@
</view> </view>
<!-- 上报记录列表 --> <!-- 上报记录列表 -->
<scroll-view <scroll-view class="record-list" scroll-y>
class="record-list"
scroll-y
:style="{ height: `calc(100vh - ${navHeight + statusTabHeight + typeTabHeight}px)` }"
>
<!-- 记录卡片 --> <!-- 记录卡片 -->
<view v-for="record in reportRecords" :key="record.id" class="record-card"> <view v-for="record in reportRecords" :key="record.id" class="record-card">
<!-- 标题 + 状态标签 --> <!-- 标题 + 状态标签 -->
@@ -86,17 +82,11 @@
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import { onReady, onReachBottom, onPullDownRefresh, onShow } from '@dcloudio/uni-app' import { onReachBottom, onPullDownRefresh, onShow } from '@dcloudio/uni-app'
import { getMyOrderList } from '../../api/api.js' import { getMyOrderList } from '../../api/api.js'
// 导航栏/标签高度(适配不同设备)
const navHeight = ref(44)
const statusTabHeight = ref(88)
const typeTabHeight = ref(88)
const statusBarHeight = ref(uni.getSystemInfoSync().statusBarHeight || 0)
// 分页 // 分页
const pageNum = ref(1) // 当前页 const pageNum = ref(1) // 当前页
const pageSize = ref(5) // 每页条数 const pageSize = ref(10) // 每页条数
const total = ref(0) // 总条数 const total = ref(0) // 总条数
const loading = ref(false) // 加载状态 const loading = ref(false) // 加载状态
const noMore = ref(false) // 是否没有更多 const noMore = ref(false) // 是否没有更多
@@ -107,7 +97,7 @@ const activeType = ref('all') // 全部/公共报修/个人报修
// 状态筛选选项 // 状态筛选选项
const statusTabs = ref([ const statusTabs = ref([
{ label: '全部', value: 'all' }, { label: '全部', value: 'all' },
// { label: '待分配', value: 'pending' }, { label: '待分配', value: '0' },
{ label: '待解决', value: '1' }, { label: '待解决', value: '1' },
{ label: '已完成', value: '2' } { label: '已完成', value: '2' }
]) ])
@@ -211,7 +201,7 @@ const navBack = () => {
// 获取状态文本 // 获取状态文本
const getStatusText = status => { const getStatusText = status => {
const statusMap = { const statusMap = {
// "pending": '已分配', 0: '待分配',
1: '待解决', 1: '待解决',
2: '已完成' 2: '已完成'
} }
@@ -220,6 +210,7 @@ const getStatusText = status => {
// 获取状态标签样式类名 // 获取状态标签样式类名
const getStatusClass = status => { const getStatusClass = status => {
const classMap = { const classMap = {
0:'pending',
1: 'processing', 1: 'processing',
2: 'completed' 2: 'completed'
} }
@@ -230,26 +221,15 @@ onShow(() => {
noMore.value = false noMore.value = false
getReportList() getReportList()
}) })
// 页面渲染完成后适配高度
onReady(() => {
// 可根据实际设备调整高度
uni.getSystemInfo({
success: res => {
if (res.platform === 'ios') {
navHeight.value = 44
} else {
navHeight.value = 48
}
}
})
})
</script> </script>
<style scoped> <style scoped>
.report-record-page { .report-record-page {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
display: flex;
flex-direction: column;
box-sizing: border-box;
background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%); background: linear-gradient(to left bottom, #e2efff 0%, #f9f9f9 50%);
} }
.status-bar { .status-bar {
@@ -265,6 +245,7 @@ onReady(() => {
padding: 0 40rpx; padding: 0 40rpx;
height: 88rpx; height: 88rpx;
align-items: center; align-items: center;
flex-shrink: 0;
} }
.status-tab-item { .status-tab-item {
@@ -304,6 +285,7 @@ onReady(() => {
padding: 20rpx 40rpx; padding: 20rpx 40rpx;
margin-top: 10rpx; margin-top: 10rpx;
justify-content: flex-start; justify-content: flex-start;
flex-shrink: 0;
/* gap: 20rpx; */ /* gap: 20rpx; */
} }
@@ -325,6 +307,8 @@ onReady(() => {
/* 记录列表 */ /* 记录列表 */
.record-list { .record-list {
flex: 1;
min-height: 0;
padding: 20rpx 40rpx; padding: 20rpx 40rpx;
box-sizing: border-box; box-sizing: border-box;
} }
@@ -346,14 +330,18 @@ onReady(() => {
} }
.card-title { .card-title {
flex: 1;
font-size: 32rpx; font-size: 32rpx;
font-weight: 500; font-weight: 500;
color: #333; color: #333;
margin-right: 20rpx; margin-right: 20rpx;
word-break: break-all;
} }
/* 状态标签 */ /* 状态标签 */
.status-tag { .status-tag {
flex-shrink: 0;
white-space: nowrap;
padding: 6rpx 16rpx; padding: 6rpx 16rpx;
font-size: 20rpx; font-size: 20rpx;
border-radius: 12rpx; border-radius: 12rpx;

View File

@@ -221,10 +221,10 @@
{ {
"path": "reportingRecord", "path": "reportingRecord",
"style": { "style": {
"navigationBarTitleText": "上报记录", "navigationBarTitleText": "上报记录"
"navigationStyle": "custom", // "navigationStyle": "custom",
"enablePullDownRefresh": true, // "enablePullDownRefresh": true,
"onReachBottomDistance": 100 // "onReachBottomDistance": 100
} }
} }
] ]
@@ -260,8 +260,7 @@
"pages": [{ "pages": [{
"path": "report-record", "path": "report-record",
"style": { "style": {
"navigationBarTitleText": "上报记录", "navigationBarTitleText": "上报记录"
"navigationStyle": "custom"
} }
}] }]
}, },

View File

@@ -53,6 +53,12 @@
</template> </template>
</up-swiper> </up-swiper>
</view> </view>
<!-- banner 占位 -->
<view class="bannarClass" v-else>
<view class="banner-placeholder">
<text>暂无轮播图</text>
</view>
</view>
<!-- 巡检 --> <!-- 巡检 -->
<view class="inspectionClass"> <view class="inspectionClass">
@@ -421,10 +427,9 @@ const slelctHomeData = data => {
onShow(() => { onShow(() => {
if (!isLoggedIn.value) return if (!isLoggedIn.value) return
if (!hasInit.value) { if (!hasInit.value) {
// 首次加载:onLoad 已触发过核心数据请求,这里只补 onLoad 没调的和需要每次都刷新的
hasInit.value = true hasInit.value = true
getbannarData() // onLoad 没调 banner getbannarData()
getMyOrderNum() // onLoad 没调工单数 getMyOrderNum()
permStore.initPerm() // 刷新权限缓存 permStore.initPerm() // 刷新权限缓存
// currentVillageData 和 getInspectionData 已在 onLoad 中调用,不再重复 // currentVillageData 和 getInspectionData 已在 onLoad 中调用,不再重复
return return
@@ -628,6 +633,17 @@ onPullDownRefresh(async () => {
border-radius: 15rpx; border-radius: 15rpx;
} }
.banner-placeholder {
height: 180px;
background: #e8f1fb;
border-radius: 15rpx;
display: flex;
align-items: center;
justify-content: center;
color: #999;
font-size: 26rpx;
}
.inspectionClass { .inspectionClass {
background: linear-gradient(to right, #7b87fa, #4d5dfa); background: linear-gradient(to right, #7b87fa, #4d5dfa);
border-radius: 16rpx; border-radius: 16rpx;
@@ -700,6 +716,12 @@ onPullDownRefresh(async () => {
width: calc(100% - 30rpx) !important; width: calc(100% - 30rpx) !important;
} }
/* 固定滚动速度 */
:deep(.uni-noticebar__content-text--scrollable) {
animation-duration: 4s !important;
animation-delay: 0s !important;
}
/* 统计区布局 */ /* 统计区布局 */
.statistics-wrap { .statistics-wrap {
display: flex; display: flex;