编辑 | blame | 历史 | 原始文档

用户协议与隐私政策完善说明

一、功能概述

为急救转运调度系统完善了用户协议和隐私政策功能,符合中国法律法规要求(《个人信息保护法》、《网络安全法》、《民法典》等),提升用户体验和法律合规性。

二、实现内容

2.1 新增页面

1. 用户服务协议页面

  • 文件路径: app/pages/mine/user-agreement/index.vue
  • 路由路径: /pages/mine/user-agreement/index
  • 页面标题: 用户服务协议

协议内容章节:
1. 欢迎使用急救转运调度系统
2. 服务说明(系统功能、服务范围)
3. 账号注册与使用(账号管理、信息真实性)
4. 用户行为规范(法律合规、禁止行为、职业操作)
5. 隐私保护(信息收集、使用、保护)
6. 知识产权(内容所有权、使用限制)
7. 服务中断或终止(中断情形、通知机制、账号注销)
8. 免责声明(责任界定、风险提示)
9. 协议变更(修改机制、生效方式)
10. 争议解决(法律适用、管辖法院)
11. 其他(完整性、可分割性、解释权)
12. 联系我们(邮箱、电话、工作时间)

页面特点:
- 移动端优化的UI设计
- 清晰的层级结构
- 易读的排版样式
- 返回按钮导航
- 滚动查看完整内容

2. 隐私政策页面

  • 文件路径: app/pages/mine/privacy-policy/index.vue
  • 路由路径: /pages/mine/privacy-policy/index
  • 页面标题: 隐私政策

政策内容章节:
1. 引言(法律合规、政策目的)
2. 信息收集与使用
- 账号注册与登录(手机号、姓名、部门、职位)
- 任务调度服务(位置信息、任务信息、车辆信息)
- 消息推送服务(设备信息、推送token)
- 系统安全与优化(日志、网络、使用情况)
3. Cookie和同类技术(用途、管理方式)
4. 信息共享、转让、公开披露(原则、例外情形)
5. 信息安全保护措施(加密、访问控制、审计、应急响应)
6. 用户权利管理(访问、更正、删除、注销、撤回同意)
7. 未成年人保护(服务限制、监护人同意)
8. 跨境传输(境内存储)
9. 政策更新(变更通知、生效方式)
10. 联系我们(邮箱、电话、响应时间)
11. 定义(个人信息、敏感个人信息、删除)

页面特点:
- 符合《个人信息保护法》要求
- 敏感信息高亮显示(黄色背景 + 橙色边框)
- 详细的分类说明
- 明确的用户权利
- 专业的法律术语

2.2 修改页面

1. 登录页面 (app/pages/login.vue)

修改内容:
- 将协议链接从外部URL改为本地页面
- handlePrivacy() 方法:跳转到 /pages/mine/privacy-policy/index
- handleUserAgrement() 方法:跳转到 /pages/mine/user-agreement/index

修改前:
javascript handlePrivacy() { let site = this.globalConfig.appInfo.agreements[0] this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`) }

修改后:
javascript handlePrivacy() { this.$tab.navigateTo('/pages/mine/privacy-policy/index') }

2. 注册页面 (app/pages/register.vue)

新增功能:

  1. 协议同意checkbox
    vue <view class="agreement-section"> <checkbox-group @change="handleAgreementChange"> <label class="agreement-label"> <checkbox value="agreed" :checked="agreedToTerms" color="#007AFF" /> <text class="agreement-text"> 我已阅读并同意 <text class="agreement-link" @click.stop="handleUserAgreement">《用户服务协议》</text> 和 <text class="agreement-link" @click.stop="handlePrivacy">《隐私政策》</text> </text> </label> </checkbox-group> </view>

  2. 数据字段
    javascript data() { return { agreedToTerms: false, // 是否同意协议 // ... 其他字段 } }

  3. 验证逻辑
    javascript async handleRegister() { // ... 其他验证 if (!this.agreedToTerms) { this.$modal.msgError("请先阅读并同意用户服务协议和隐私政策") return } // ... 注册逻辑 }

  4. 新增方法
    javascript // 协议选择变更 handleAgreementChange(e) { this.agreedToTerms = e.detail.value.length > 0 }, // 用户协议 handleUserAgreement() { this.$tab.navigateTo('/pages/mine/user-agreement/index') }, // 隐私政策 handlePrivacy() { this.$tab.navigateTo('/pages/mine/privacy-policy/index') }

  5. 样式调整
    ```scss
    .agreement-section {
    margin: 30rpx 0;

.agreement-label {
display: flex;
align-items: flex-start;

checkbox {
  margin-right: 15rpx;
  transform: scale(0.9);
}

.agreement-text {
  flex: 1;
  font-size: 24rpx;
  color: #666;
  line-height: 1.6;
  text-align: left;

  .agreement-link {
    color: #007AFF;
    text-decoration: underline;
  }
}

}
}
```

3. "我的"页面 (app/pages/mine/index.vue)

新增菜单项:

在"编辑资料"和"常见问题"之间插入两个菜单项:

<view class="list-cell list-cell-arrow" @click="handleUserAgreement">
  <view class="menu-item-box">
    <view class="iconfont icon-text menu-icon"></view>
    <view>用户服务协议</view>
  </view>
</view>
<view class="list-cell list-cell-arrow" @click="handlePrivacyPolicy">
  <view class="menu-item-box">
    <view class="iconfont icon-safe menu-icon"></view>
    <view>隐私政策</view>
  </view>
</view>

新增方法:
javascript handleUserAgreement() { this.$tab.navigateTo('/pages/mine/user-agreement/index') }, handlePrivacyPolicy() { this.$tab.navigateTo('/pages/mine/privacy-policy/index') }

2.3 路由配置

app/pages.json 中已添加路由配置:

{
  "path": "pages/mine/user-agreement/index",
  "style": {
    "navigationBarTitleText": "用户服务协议"
  }
},
{
  "path": "pages/mine/privacy-policy/index",
  "style": {
    "navigationBarTitleText": "隐私政策"
  }
}

三、法律合规要点

3.1 符合的法律法规

  1. 《中华人民共和国个人信息保护法》
  • 明确告知收集的个人信息类型
  • 说明个人信息的使用目的
  • 标注敏感个人信息(位置信息)
  • 明确用户的各项权利
  1. 《中华人民共和国网络安全法》
  • 信息安全保护措施
  • 数据存储在境内
  • 安全事件应急响应
  1. 《中华人民共和国民法典》
  • 合同条款规范
  • 争议解决机制
  • 用户权益保护

3.2 关键合规内容

信息收集告知

  • ✅ 明确列出收集的信息类型
  • ✅ 说明每种信息的用途
  • ✅ 标注敏感信息(位置、医疗健康)
  • ✅ 提供拒绝授权的影响说明

用户权利

  • ✅ 访问和更正个人信息的权利
  • ✅ 删除个人信息的权利
  • ✅ 注销账号的权利
  • ✅ 撤回同意的权利

信息安全

  • ✅ 数据加密传输和存储
  • ✅ 访问控制和权限管理
  • ✅ 安全审计机制
  • ✅ 安全事件应急响应

用户同意

  • ✅ 注册时必须勾选同意协议
  • ✅ 协议可随时查看
  • ✅ 协议变更时通知用户

四、使用方式

4.1 用户访问路径

  1. 登录页面
  • 点击"《用户协议》"或"《隐私协议》"链接
  • 直接跳转到对应页面
  1. 注册页面
  • 必须勾选协议同意checkbox才能注册
  • 点击协议链接可查看详细内容
  • 使用 @click.stop 防止事件冒泡
  1. "我的"页面
  • 通过菜单项"用户服务协议"访问
  • 通过菜单项"隐私政策"访问

4.2 开发集成

如需在其他页面引用协议,使用以下代码:

// 跳转到用户协议
this.$tab.navigateTo('/pages/mine/user-agreement/index')

// 跳转到隐私政策
this.$tab.navigateTo('/pages/mine/privacy-policy/index')

五、定制化建议

5.1 必须修改的内容

在实际部署前,请务必修改以下内容:

  1. 联系方式(两个文件都需要修改)
    ```vue


    电子邮箱:support@example.com


    客服电话:400-XXX-XXXX



电子邮箱:privacy@example.com


客服电话:400-XXX-XXXX

```

  1. 更新日期和生效日期
    vue <view class="update-time">更新日期:2025年1月25日</view> <!-- 改为实际日期 --> <view class="effect-time">生效日期:2025年1月25日</view> <!-- 改为实际日期 -->

  2. 运营主体信息

  • 如果有正式的公司名称,请在协议中添加
  • 如果有营业执照信息,建议在"关于我们"中补充

5.2 可选优化内容

  1. 添加版本号管理
  • 在协议顶部显示版本号(如 v1.0)
  • 记录历史版本变更
  1. 添加下载功能
  • 允许用户下载PDF版本的协议
  • 方便用户保存和查阅
  1. 添加搜索功能
  • 对于内容较长的协议,提供关键词搜索
  • 快速定位到相关章节
  1. 国际化支持
  • 如需支持多语言,可添加语言切换功能
  • 准备英文版本的协议

5.3 法律审核建议

重要提示: 虽然我们的协议内容已尽可能符合法律要求,但仍建议:

  1. 专业审核
  • 请贵公司的法律顾问审核协议内容
  • 根据实际业务情况调整条款
  1. 行业特殊要求
  • 医疗急救行业可能有特殊的法律要求
  • 请咨询医疗法律专家
  1. 定期更新
  • 随着法律法规的变化,定期更新协议内容
  • 特别关注《个人信息保护法》的实施细则

六、技术实现细节

6.1 页面结构

协议页面
├── Header(顶部导航栏)
│   ├── 返回按钮
│   └── 页面标题
└── Content(内容区域)
    ├── ScrollView(可滚动容器)
    └── 协议内容
        ├── 更新日期
        ├── 生效日期
        ├── 章节内容
        │   ├── 章节标题
        │   ├── 小节标题
        │   ├── 正文
        │   └── 列表项
        └── 页脚

6.2 样式系统

响应式设计:
- 使用 rpx 单位,自动适配不同屏幕尺寸
- 最小字体 24rpx,正文字体 28rpx,标题字体 32rpx

颜色方案:
- 主色调:#333(深灰)
- 次要文字:#666(中灰)
- 提示文字:#999(浅灰)
- 高亮色:#007AFF(蓝色)
- 敏感信息背景:#fff8e6(淡黄)
- 敏感信息边框:#ff9500(橙色)

布局特点:
- 内容区域:白色背景,圆角卡片
- 行高:1.8,增强可读性
- 段落间距:15rpx,清晰分隔
- 列表缩进:40rpx,层级明显

6.3 交互设计

  1. 返回导航
    javascript goBack() { uni.navigateBack() }

  2. 滚动查看

  • 使用 scroll-view 组件
  • 支持垂直滚动
  • 自动隐藏滚动条(保持美观)
  1. 链接点击
  • 协议中的链接使用蓝色标识
  • 点击可跳转到对应页面
  • 使用 @click.stop 防止事件冒泡

七、维护和更新

7.1 协议更新流程

当需要更新协议内容时:

  1. 修改内容
  • 在对应的 .vue 文件中修改协议文本
  • 更新"更新日期"和"生效日期"
  1. 通知用户(建议实现)
  • 在用户下次登录时显示协议更新提示
  • 要求用户重新同意协议
  • 记录用户同意的协议版本号
  1. 保存历史版本(建议实现)
  • 在数据库中保存协议的历史版本
  • 记录用户同意的是哪个版本
  • 方便追溯和审计

7.2 监控和反馈

用户反馈收集:
- 在协议页面添加"意见反馈"入口
- 收集用户对协议内容的疑问
- 及时响应用户的咨询

数据统计:
- 统计协议的查看次数
- 分析用户的停留时间
- 识别用户关注的章节

八、注意事项

8.1 开发注意事项

  1. 字符编码
  • 确保文件使用 UTF-8 编码
  • 避免中文乱码问题
  1. 跨平台兼容
  • 在微信小程序、H5、App中测试
  • 确保滚动和导航功能正常
  1. 性能优化
  • 协议内容较长,注意页面加载性能
  • 可以考虑懒加载或分页显示

8.2 合规注意事项

  1. 必须同意
  • 注册时必须勾选同意协议
  • 不能默认勾选,必须用户主动操作
  1. 易于访问
  • 协议链接必须清晰可见
  • 随时可以查看完整协议
  1. 明确告知
  • 收集敏感信息时必须明确告知
  • 说明拒绝授权的影响
  1. 获取同意
  • 重要权限(如定位)需单独授权
  • 不能一次性授权所有权限

九、后续优化建议

  1. 添加协议版本管理系统
  • 在后台管理系统中添加协议版本管理
  • 支持在线编辑和预览
  • 自动记录更新历史
  1. 实现协议同意记录
  • 在数据库中记录用户同意协议的时间和版本
  • 当协议更新时,提示用户重新同意
  • 符合《个人信息保护法》的要求
  1. 添加协议导出功能
  • 允许用户导出PDF版本
  • 方便用户保存和打印
  1. 优化移动端体验
  • 添加目录导航,快速跳转到指定章节
  • 优化长文本的阅读体验
  • 添加夜间模式

十、文件清单

新增文件

  • app/pages/mine/user-agreement/index.vue - 用户服务协议页面
  • app/pages/mine/privacy-policy/index.vue - 隐私政策页面
  • prd/用户协议与隐私政策完善说明.md - 本说明文档

修改文件

  • app/pages/login.vue - 修改协议链接指向
  • app/pages/register.vue - 添加协议同意checkbox
  • app/pages/mine/index.vue - 添加协议菜单入口
  • app/pages.json - 添加路由配置(之前已添加)

十一、总结

本次完善工作实现了:

完整的用户协议和隐私政策页面
符合中国法律法规要求
注册时强制同意协议
多处便捷访问入口
移动端优化的UI设计
敏感信息高亮提示
清晰的内容结构
专业的法律术语

请在实际部署前,务必:
1. 修改联系方式为实际信息
2. 更新日期为实际日期
3. 请法律顾问审核协议内容
4. 根据实际业务调整条款

如有任何问题或需要进一步调整,请随时联系开发团队!