@ -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> |