@ -1,19 +1,12 @@ | |||
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 home from '@/api/modules/home' | |||
import activity from '@/api/modules/activity' | |||
import exhibit from '@/api/modules/exhibit' | |||
import login from '@/api/modules/login' | |||
import community from '@/api/modules/community' | |||
export { | |||
user, | |||
shop, | |||
score, | |||
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> | |||
<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> | |||
</template> | |||
<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> | |||
<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> |