You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

168 lines
6.8 KiB

<template>
<view class="index">
<!-- 自定义导航栏 -->
<view class="custom-nav" :style="{height: navBarHeight + 'px', paddingTop: navBarPaddingTop + 'px'}">
<view class="community">
<image class="icon" src="https://oss.wsdns.cn/20250627/340ae6bd9c014e75bb1da95e074a027e.png" />
<text class="community-name">永新花园小区</text>
</view>
</view>
<!-- 主内容区域 -->
<view class="main-content" :style="{paddingTop: (navBarHeight + navBarPaddingTop) + 'px'}">
<!-- 搜索栏 -->
<view class="search-bar">
<uni-icons type="search" size="20" color="#666" />
<input class="search-input" placeholder="搜索关键词" @focus="handleSearchClick" />
</view>
<!-- 顶部背景和文字 -->
<view class="top-banner">
<image src="https://oss.wsdns.cn/20250627/cf0e0a3daaa74cb18cc9ce516b5e907a.png" class="top-bg" />
<view class="top-text">
<text class="main-title">智慧社区 全新升级</text>
<text class="sub-title">打造理想绿色家园</text>
</view>
</view>
<!-- 功能图标区 -->
<view class="feature-icons">
<view class="icon-item" @click="navTo('/pages/property-payment/index')">
<image src="https://oss.wsdns.cn/20250626/47b4d7855f6047549a91dc527624cc32.png" style="width: 80rpx; height: 80rpx" />
<text class="icon-text">物业缴费</text>
</view>
<view class="icon-item" @click="navTo('/pages/invitation-records/index')">
<image src="https://oss.wsdns.cn/20250626/7f20a17fc30f4f23a8346a156b648d06.png" style="width: 80rpx; height: 80rpx" />
<text class="icon-text">访客邀请</text>
</view>
<view class="icon-item" @click="navTo('/pages/repair/repair')">
<image src="https://oss.wsdns.cn/20250626/430906cffba04241ae522625a1dc9271.png" style="width: 80rpx; height: 80rpx" />
<text class="icon-text">物业报修</text>
</view>
<view class="icon-item" @click="navTo('/pages/remote-door/index')">
<image src="https://oss.wsdns.cn/20250626/62c543af60204ff8868df41a31f79ec0.png" style="width: 80rpx; height: 80rpx" />
<text class="icon-text">远程开门</text>
</view>
<view class="icon-item" @click="navTo('/pages/payment/index')">
<image src="https://oss.wsdns.cn/20250626/21ba1bb210f945ffa7466c93ded9073b.png" style="width: 80rpx; height: 80rpx" />
<text class="icon-text">生活缴费</text>
</view>
</view>
<!-- 广告图 -->
<view class="ad-section">
<image src="https://oss.wsdns.cn/20250626/5cf1908340ca4904bacc31ed1ad76558.png" class="ad-img" />
</view>
<!-- 轮播图 -->
<swiper class="swiper-container" indicator-dots indicator-color="#999" indicator-active-color="#333" autoplay interval="3000" duration="500">
<swiper-item>
<image src="https://oss.wsdns.cn/20250626/cb5e8d1e810142ceb3e0bdf4fd6e9fb1.png" class="swiper-img" />
</swiper-item>
<swiper-item>
<image src="https://oss.wsdns.cn/20250626/cb5e8d1e810142ceb3e0bdf4fd6e9fb1.png" class="swiper-img" />
</swiper-item>
</swiper>
<!-- 问卷调查和投票建议 -->
<view class="survey-vote">
<view class="item" @click="navTo('/pages/survey/index')">
<image src="https://oss.wsdns.cn/20250627/c61cc97da9034d46abf757a68e11317d.png" class="item-img" />
</view>
<view class="item" @click="navTo('/pages/vote/index')">
<image src="https://oss.wsdns.cn/20250627/85151fedafb4408e988ad43d15a6f8d7.png" class="item-img" />
</view>
</view>
<!-- 公告列表 -->
<view class="announcement-section">
<view class="announcement-header">
<image src="https://img.yzcdn.cn/vant/announcement.png" class="announcement-icon" />
<text class="announcement-title">公告</text>
<text class="more-text">更多</text>
</view>
<view class="announcement-list">
<view class="announcement-item" v-for="(item, idx) in announcementList" :key="idx">
<text class="item-title">{{ item.title }}</text>
<view class="item-info">
<image src="https://img.yzcdn.cn/vant/time.png" class="time-icon" />
<text class="item-date">{{ item.date }}</text>
</view>
</view>
</view>
</view>
</view>
<!-- 悬浮AI按钮 -->
<view class="ai-float" @click="navTo('/pages/ai/index')">
<image style="width: 100rpx; height: 100rpx;" src="https://oss.wsdns.cn/20250627/b6ea18396b074f8db2f649c7db385419.png" />
</view>
</view>
</template>
<script>
export default {
data() {
return {
navBarHeight: 0,
navBarPaddingTop: 0,
announcementList: [
{ title: '关于高考温馨提示', date: '2025-06-06 16:48:38' },
{ title: '电梯日常维护保养', date: '2025-06-01 15:29:45' },
{ title: '电梯日常维护保养', date: '2025-05-18 17:23:57' },
{ title: '关于祥安e家系统平台恢复服务的通知', date: '2025-05-16 10:49:18' },
{ title: '关于祥安e家系统平台服务器升级的公告', date: '2025-05-14 18:01:51' }
],
isLogin: false,
userInfo: {
avatar: '',
mobile: ''
},
roleName: '注册用户',
defaultAvatar: 'https://oss.wsdns.cn/20250627/340ae6bd9c014e75bb1da95e074a027e.png'
}
},
methods: {
navTo(url) {
uni.navigateTo({ url })
},
handleSearchClick() {
uni.showToast({ title: '搜索功能', icon: 'none' })
},
handleGetPhoneNumber(e) {
this.isLogin = true
this.userInfo.mobile = '138****8888'
uni.showToast({ title: '登录成功', icon: 'success' })
},
onLogout() {
uni.showModal({
title: '提示',
content: '确定要退出登录吗?',
success: (res) => {
if (res.confirm) {
uni.removeStorageSync('access_token')
uni.removeStorageSync('TenantId')
uni.removeStorageSync('UserId')
uni.removeStorageSync('userInfo')
uni.reLaunch({ url: '/pages/index/index' })
}
}
})
}
},
mounted() {
// 获取系统信息
const systemInfo = uni.getSystemInfoSync()
// #ifdef MP-WEIXIN
const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
const statusBarHeight = systemInfo.statusBarHeight || 0
this.navBarHeight = (menuButtonInfo.top - statusBarHeight) * 2 + menuButtonInfo.height
this.navBarPaddingTop = statusBarHeight
// #endif
// H5端可自定义高度
}
}
</script>
<style scoped lang="scss">
@import './index.scss';
.ai-float {
position: fixed;
right: 20rpx;
bottom: 200rpx;
z-index: 999;
}
</style>