在登录和注册界面添加了用户协议和隐私政策的同意选项,确保用户在使用系统前已阅读并同意相关条款,符合应用合规要求。
文件路径: app/pages/login.vue
修改内容:
- 新增 agreedToPolicy 数据属性,默认值为 true(默认选中)
- 添加协议同意复选框组件
- 添加 onAgreementChange 方法处理复选框状态变更
- 修改 handleLogin 方法,增加协议同意校验
- 优化样式布局,协议复选框位于登录按钮上方
文件路径: app/pages/register.vue
修改内容:
- 修改 agreedToTerms 默认值为 true(原为 false)
- 保持原有的协议同意功能和校验逻辑
┌─────────────────────────┐
│ Logo + 标题 │
├─────────────────────────┤
│ 账号输入框 │
│ 密码输入框 │
│ 验证码输入框 │
├─────────────────────────┤
│ ☑ 我已阅读并同意 │
│ 《用户协议》和 │
│ 《隐私政策》 │
├─────────────────────────┤
│ 【登录】按钮 │
└─────────────────────────┘
data() {
return {
agreedToPolicy: true, // 默认选中
// ...
}
}
// 协议同意状态变更
onAgreementChange(e) {
this.agreedToPolicy = e.detail.value.length > 0
}
// 登录验证
async handleLogin() {
if (!this.agreedToPolicy) {
this.$modal.msgError("请先阅读并同意用户协议和隐私政策")
return
}
// ... 其他验证逻辑
}
<view class="agreement-checkbox">
<checkbox-group @change="onAgreementChange">
<label class="checkbox-label">
<checkbox :checked="agreedToPolicy" :value="agreedToPolicy" color="#007AFF" />
<text class="agreement-text">
<text class="text-grey1">我已阅读并同意</text>
<text @click.stop="handleUserAgrement" class="text-blue agreement-link">《用户协议》</text>
<text class="text-grey1">和</text>
<text @click.stop="handlePrivacy" class="text-blue agreement-link">《隐私政策》</text>
</text>
</label>
</checkbox-group>
</view>
┌─────────────────────────┐
│ Logo + 标题 │
├─────────────────────────┤
│ 账号输入框 │
│ 密码输入框 │
│ 确认密码输入框 │
│ 验证码输入框 │
├─────────────────────────┤
│ ☑ 我已阅读并同意 │
│ 《用户服务协议》和 │
│ 《隐私政策》 │
├─────────────────────────┤
│ 【注册】按钮 │
└─────────────────────────┘
data() {
return {
agreedToTerms: true, // 默认选中(已修改)
// ...
}
}
// 注册验证
async handleRegister() {
// ... 其他验证
if (!this.agreedToTerms) {
this.$modal.msgError("请先阅读并同意用户服务协议和隐私政策")
return
}
// ...
}
路径: /pages/mine/user-agreement/index
- 详细说明用户权利和义务
- 服务条款和使用规范
- 支持匿名访问(已配置白名单)
路径: /pages/mine/privacy-policy/index
- 个人信息收集说明
- 信息使用和存储规则
- 用户权益保护措施
- 支持匿名访问(已配置白名单)
graph TD
A[打开登录页] --> B[协议默认选中]
B --> C{输入账号密码}
C --> D{点击登录}
D --> E{检查协议是否同意}
E -->|未同意| F[提示:请先同意协议]
E -->|已同意| G[验证账号密码]
G --> H[登录成功]
B --> I[点击协议链接]
I --> J[查看协议详情]
J --> B
graph TD
A[打开注册页] --> B[协议默认选中]
B --> C{输入注册信息}
C --> D{点击注册}
D --> E{检查协议是否同意}
E -->|未同意| F[提示:请先同意协议]
E -->|已同意| G[验证注册信息]
G --> H[注册成功]
B --> I[点击协议链接]
I --> J[查看协议详情]
J --> B
.agreement-checkbox {
margin: 30rpx 0 20rpx 0;
padding: 0 20rpx;
.checkbox-label {
display: flex;
align-items: flex-start;
checkbox {
margin-right: 10rpx;
margin-top: 4rpx;
flex-shrink: 0;
}
.agreement-text {
flex: 1;
line-height: 1.8;
font-size: 24rpx;
.text-grey1 {
color: #888;
}
.text-blue {
color: #007AFF;
margin: 0 5rpx;
}
}
}
}
.agreement-section {
margin: 30rpx 0;
.agreement-label {
display: flex;
align-items: flex-start;
checkbox {
margin-right: 15rpx;
transform: scale(0.9);
flex-shrink: 0;
}
.agreement-text {
flex: 1;
font-size: 26rpx;
color: #666;
line-height: 2;
text-align: left;
.agreement-link {
color: #007AFF;
text-decoration: underline;
}
}
}
}
文档版本: v1.0
创建日期: 2025-01-XX
最后更新: 2025-01-XX
维护人员: 系统管理员