| @ -1,19 +1,12 @@ | |||||
| import user from '@/api/modules/user' | import user from '@/api/modules/user' | ||||
| import shop from '@/api/modules/shop' | |||||
| import score from '@/api/modules/score' | |||||
| import config from '@/api/modules/config' | import config from '@/api/modules/config' | ||||
| import home from '@/api/modules/home' | |||||
| import activity from '@/api/modules/activity' | |||||
| import exhibit from '@/api/modules/exhibit' | |||||
| import login from '@/api/modules/login' | import login from '@/api/modules/login' | ||||
| import community from '@/api/modules/community' | |||||
| export { | export { | ||||
| user, | user, | ||||
| shop, | |||||
| score, | |||||
| config, | config, | ||||
| home, | |||||
| activity, | |||||
| login, | |||||
| community | |||||
| exhibit, | |||||
| login | |||||
| } | } | ||||
| @ -1,73 +0,0 @@ | |||||
| // import request from '@/api/request' | |||||
| import http from '@/api/http' | |||||
| export default { | |||||
| // 活动- 活动报名 | |||||
| async applyActivity(data) { | |||||
| return http({ | |||||
| url: '/activity/applyActivity', | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 活动- 收藏活动 | |||||
| async collectionActivity(data) { | |||||
| return http({ | |||||
| url: '/activity/collectionActivity', | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 活动- 获取活动详情 | |||||
| async queryActivityById(data) { | |||||
| return http({ | |||||
| url: '/activity/queryActivityById', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true | |||||
| }) | |||||
| }, | |||||
| // 活动- 获取我收藏的活动列表 | |||||
| async queryActivityCollectionList(data) { | |||||
| return http({ | |||||
| url: '/activity/queryActivityCollectionList', | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 活动- 获取活动列表 | |||||
| async queryActivityList(data) { | |||||
| return http({ | |||||
| url: '/activity/queryActivityList', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true, | |||||
| debounce: 200, | |||||
| // showLoading: true | |||||
| }) | |||||
| }, | |||||
| // 我的报名- 获取我报名的活动列表 | |||||
| async queryApplyList(data) { | |||||
| return http({ | |||||
| url: '/activity/queryApplyList', | |||||
| method: 'POST', | |||||
| data, | |||||
| // showLoading: true | |||||
| }) | |||||
| }, | |||||
| // 我的报名- 活动签到 | |||||
| async signActivity(data) { | |||||
| return http({ | |||||
| url: '/activity/signActivity', | |||||
| method: 'POST', | |||||
| data, | |||||
| // showToast: false | |||||
| }) | |||||
| }, | |||||
| } | |||||
| @ -1,26 +0,0 @@ | |||||
| // import request from "@/api/request"; | |||||
| import http from "@/api/http"; | |||||
| export default { | |||||
| // 社区- 获取帖子列表 | |||||
| async queryPostList(data) { | |||||
| return http({ | |||||
| url: '/comment/queryPostList', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true, | |||||
| debounce: 200, | |||||
| }) | |||||
| }, | |||||
| // 社区- 上传帖子 | |||||
| async addPost(data) { | |||||
| return http({ | |||||
| url: '/comment/addPost', | |||||
| method: 'POST', | |||||
| data, | |||||
| showLoading: true, | |||||
| // noToken: true | |||||
| }) | |||||
| } | |||||
| } | |||||
| @ -1,53 +0,0 @@ | |||||
| // import request from "@/api/request"; | |||||
| import http from "@/api/http"; | |||||
| export default { | |||||
| // 首页- 申请成为志愿者 | |||||
| async applyVolunteer(data) { | |||||
| return http({ | |||||
| url: '/index/applyVolunteer', | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 首页- 查看志愿者信息复制接口复制文档复制地址 | |||||
| // POST | |||||
| // / community - admin / community / index /queryVolunteer | |||||
| async queryVolunteer() { | |||||
| return http({ | |||||
| url: '/index/queryVolunteer', | |||||
| method: 'POST' | |||||
| }) | |||||
| }, | |||||
| // 首页- 获取banner图列表 | |||||
| async queryBannerList(data) { | |||||
| return http({ | |||||
| url: '/index/queryBannerList', | |||||
| method: 'GET', | |||||
| noToken: true, | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 首页- 获取公告详情 | |||||
| async queryNoticeById(data) { | |||||
| return http({ | |||||
| url: '/index/queryNoticeById', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true | |||||
| }) | |||||
| }, | |||||
| // 首页- 获取公告列表 | |||||
| async queryNoticeList(data) { | |||||
| return http({ | |||||
| url: '/index/queryNoticeList', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true | |||||
| }) | |||||
| }, | |||||
| } | |||||
| @ -1,25 +0,0 @@ | |||||
| // import request from "@/api/request"; | |||||
| import http from "@/api/http"; | |||||
| export default { | |||||
| // 可用积分- 获取积分明细列表 | |||||
| async queryScoreList(data) { | |||||
| return http({ | |||||
| url: '/score/queryScoreList', | |||||
| method: 'POST', | |||||
| data, | |||||
| debounce: 300 | |||||
| }) | |||||
| }, | |||||
| // 首页- 积分排行榜复制接口复制文档复制地址 | |||||
| // POST | |||||
| // / community - admin / community / score / queryScoreRank | |||||
| async queryScoreRank(data) { | |||||
| return http({ | |||||
| url: '/score/queryScoreRank', | |||||
| method: 'POST', | |||||
| data, | |||||
| noToken: true | |||||
| }) | |||||
| } | |||||
| } | |||||
| @ -1,55 +0,0 @@ | |||||
| // import request from "@/api/request"; | |||||
| import http from "@/api/http"; | |||||
| export default { | |||||
| // 首页-兑换商品 | |||||
| async buyGoods(data) { | |||||
| return http({ | |||||
| url: '/goods/buyGoods', | |||||
| method: 'POST', | |||||
| data, | |||||
| showLoading: true | |||||
| }) | |||||
| }, | |||||
| // 首页- 收藏商品 | |||||
| async collectionGoods(data) { | |||||
| return http({ | |||||
| url: '/goods/collectionGoods', | |||||
| method: 'POST', | |||||
| data, | |||||
| showLoading: true | |||||
| }) | |||||
| }, | |||||
| // 首页- 获取商品详情 | |||||
| async queryGoodsById(data) { | |||||
| return http({ | |||||
| url: '/goods/queryGoodsById', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true | |||||
| }) | |||||
| }, | |||||
| // 商品收藏- 获取我收藏的商品列表 | |||||
| async queryGoodsCollectionList(data) { | |||||
| return http({ | |||||
| url: '/goods/queryGoodsCollectionList', | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| }, | |||||
| // 首页- 获取商品列表 | |||||
| async queryGoodsList(data) { | |||||
| return http({ | |||||
| url: '/goods/queryGoodsList', | |||||
| method: 'GET', | |||||
| data, | |||||
| noToken: true, | |||||
| debounce: 200, | |||||
| // showLoading: true | |||||
| }) | |||||
| } | |||||
| } | |||||
| @ -1,13 +1,229 @@ | |||||
| <template> | <template> | ||||
| <view> | |||||
| 登录 | |||||
| <view class="login-container"> | |||||
| <!-- 背景图 --> | |||||
| <image class="bg-image" src="@/subPages/static/登录_背景图.png" mode="aspectFill"></image> | |||||
| <!-- 主要内容 --> | |||||
| <view class="content"> | |||||
| <!-- Logo和标题区域 --> | |||||
| <view class="logo-section"> | |||||
| <image class="logo" src="@/static/logo.png" mode="aspectFit"></image> | |||||
| <text class="title-text">展品维保报修小程序</text> | |||||
| </view> | |||||
| <!-- 登录按钮区域 --> | |||||
| <view class="login-section"> | |||||
| <button class="login-btn" @click="handleLogin"> | |||||
| 授权手机号登录 | |||||
| </button> | |||||
| <button class="guest-btn" @click="handleGuestLogin"> | |||||
| 暂不登录 | |||||
| </button> | |||||
| <!-- 协议文本 --> | |||||
| <view class="agreement-text"> | |||||
| <view class="agreement-content"> | |||||
| <view class="checkbox-container" @click="toggleAgreement"> | |||||
| <view class="checkbox" :class="{ 'checked': isAgreed }"> | |||||
| <view class="checkbox-inner" v-if="isAgreed"></view> | |||||
| </view> | |||||
| </view> | |||||
| <text>阅读并同意我们的 | |||||
| <text class="link-text" @click="showServiceAgreement">《服务协议与隐私条款》</text> | |||||
| <text>与</text> | |||||
| <text class="link-text" @click="showPrivacyPolicy">《个人信息保护指引》</text> | |||||
| </text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | </view> | ||||
| </template> | </template> | ||||
| <script> | <script> | ||||
| export default { | |||||
| name: 'Login', | |||||
| data() { | |||||
| return { | |||||
| isAgreed: false | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| // 授权登录 | |||||
| handleLogin() { | |||||
| // 这里实现微信授权登录逻辑 | |||||
| console.log('授权登录'); | |||||
| // 可以调用微信授权API | |||||
| // uni.getUserProfile({ | |||||
| // desc: '用于完善用户资料', | |||||
| // success: (res) => { | |||||
| // // 登录成功后跳转 | |||||
| // uni.switchTab({ | |||||
| // url: '/pages/index/home' | |||||
| // }); | |||||
| // } | |||||
| // }); | |||||
| }, | |||||
| // 游客登录 | |||||
| handleGuestLogin() { | |||||
| console.log('暂不登录'); | |||||
| // 跳转到主页 | |||||
| uni.switchTab({ | |||||
| url: '/pages/index/home' | |||||
| }); | |||||
| }, | |||||
| // 显示服务协议 | |||||
| showServiceAgreement() { | |||||
| console.log('查看服务协议'); | |||||
| // 这里可以跳转到协议页面或显示弹窗 | |||||
| }, | |||||
| // 显示隐私政策 | |||||
| showPrivacyPolicy() { | |||||
| console.log('查看隐私条款'); | |||||
| // 这里可以跳转到隐私政策页面或显示弹窗 | |||||
| }, | |||||
| // 切换协议同意状态 | |||||
| toggleAgreement() { | |||||
| this.isAgreed = !this.isAgreed; | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | </script> | ||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||
| .login-container { | |||||
| position: relative; | |||||
| width: 100vw; | |||||
| height: 100vh; | |||||
| overflow: hidden; | |||||
| .bg-image { | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| z-index: 1; | |||||
| } | |||||
| .content { | |||||
| position: relative; | |||||
| z-index: 2; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| padding: 0 60rpx; | |||||
| .logo-section { | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| margin-bottom: 120rpx; | |||||
| .logo { | |||||
| width: 120rpx; | |||||
| height: 120rpx; | |||||
| margin-bottom: 40rpx; | |||||
| } | |||||
| .title-text { | |||||
| font-size: 36rpx; | |||||
| font-weight: 600; | |||||
| color: $primary-text-color; | |||||
| text-align: center; | |||||
| } | |||||
| } | |||||
| .login-section { | |||||
| width: 100%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| .login-btn { | |||||
| width: 630rpx; | |||||
| height: 88rpx; | |||||
| margin-bottom: 30rpx; | |||||
| background-color: $primary-color; | |||||
| border: none; | |||||
| border-radius: 44rpx; | |||||
| color: white; | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| } | |||||
| .guest-btn { | |||||
| width: 630rpx; | |||||
| height: 88rpx; | |||||
| margin-bottom: 60rpx; | |||||
| border: 2rpx solid $secondary-text-color; | |||||
| border-radius: 44rpx; | |||||
| color: $secondary-text-color; | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| background-color: transparent; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| } | |||||
| .agreement-text { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| font-size: 24rpx; | |||||
| color: $secondary-text-color; | |||||
| line-height: 1.5; | |||||
| .checkbox-container { | |||||
| margin-right: 12rpx; | |||||
| cursor: pointer; | |||||
| .checkbox { | |||||
| width: 29rpx; | |||||
| height: 29rpx; | |||||
| border: 1rpx solid $secondary-text-color; | |||||
| border-radius: 50%; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| transition: all 0.3s ease; | |||||
| &.checked { | |||||
| border-color: $primary-color; | |||||
| background-color: $primary-color; | |||||
| } | |||||
| .checkbox-inner { | |||||
| width: 16rpx; | |||||
| height: 16rpx; | |||||
| background-color: white; | |||||
| border-radius: 50%; | |||||
| } | |||||
| } | |||||
| } | |||||
| .agreement-content { | |||||
| flex: 1; | |||||
| text-align: left; | |||||
| display: flex; | |||||
| .link-text { | |||||
| color: $primary-color; | |||||
| text-decoration: underline; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | </style> | ||||