agreement.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <view class="agreement-page">
  3. <view class="agreement-title">用户服务与隐私协议</view>
  4. <view class="agreement-date">更新日期:2026-09-01</view>
  5. <view class="agreement-intro">
  6. 欢迎使用本小程序!您在使用前需同意本协议。我们致力于为您提供优质服务,同时保障您的合法权益。您应妥善保管账号信息,并对账号下的一切行为负责。
  7. </view>
  8. <view class="agreement-summary">
  9. <view class="summary-content">
  10. 我们深知个人信息对您的重要性,并承诺依法保护您的隐私。我们仅收集实现服务所必要的信息,包括但不限于:
  11. </view>
  12. <view class="summary-item" v-for="(item, i) in summary" :key="i">
  13. <text class="item-name">{{ item.name }}</text>
  14. <text class="item-desc">—— {{ item.desc }}</text>
  15. </view>
  16. <view class="summary-footer">
  17. 我们不会主动向第三方共享您的个人信息,除非获得您的明确同意或法律法规要求。
  18. </view>
  19. </view>
  20. <view
  21. class="agreement-section"
  22. v-for="(item, index) in sections"
  23. :key="index"
  24. >
  25. <view class="section-title">{{ item.title }}</view>
  26. <view class="section-content">
  27. <template v-if="Array.isArray(item.content)">
  28. <view
  29. class="content-line"
  30. v-for="(line, i) in item.content"
  31. :key="i"
  32. >{{ line }}</view
  33. >
  34. </template>
  35. <text v-else>{{ item.content }}</text>
  36. </view>
  37. </view>
  38. </view>
  39. </template>
  40. <script>
  41. export default {
  42. data() {
  43. return {
  44. summary: [
  45. {
  46. name: '微信昵称、头像',
  47. desc: '用于展示您的身份',
  48. },
  49. {
  50. name: '手机号',
  51. desc: '用于售后联系与账号安全',
  52. },
  53. {
  54. name: '位置信息',
  55. desc: '用于推荐附近服务(需您授权)',
  56. },
  57. {
  58. name: '设备信息',
  59. desc: '用于保障服务稳定运行',
  60. },
  61. ],
  62. sections: [
  63. {
  64. title: '一、协议的确认与账号安全',
  65. content:
  66. '本协议是您与本小程序运营者之间关于使用本小程序服务的约定。您在开始使用本小程序服务前,请务必仔细阅读并充分理解本协议全部内容,点击"同意"或实际使用本小程序服务即表示您已阅读并同意本协议。您应妥善保管账号信息,不得将账号出借、转让或授权他人使用,并对账号下的一切行为负责。如发现账号被他人盗用或存在其他安全问题,请立即与我们联系。',
  67. },
  68. {
  69. title: '二、我们收集的信息',
  70. content: [
  71. '我们遵循"最小必要"原则,仅收集实现服务所必需的信息:',
  72. '1. 微信昵称、头像:在您授权后获取,用于在小程序内展示您的身份;',
  73. '2. 手机号:在您绑定或授权后获取,用于售后服务联系与账号安全验证;',
  74. '3. 位置信息:在您授权后获取,用于为您推荐附近的服务,拒绝授权仅会影响该功能,不影响其他功能的正常使用;',
  75. '4. 设备信息:如设备型号、操作系统版本、网络状态等,用于保障服务的稳定运行和问题排查。',
  76. '除上述信息外,我们不会收集与服务无关的个人信息。',
  77. ],
  78. },
  79. {
  80. title: '三、我们如何使用信息',
  81. content: [
  82. '我们收集的信息将用于:',
  83. '1. 验证您的身份,保障账号与数据安全;',
  84. '2. 为您提供设备管理、监测数据展示、预警通知等核心服务;',
  85. '3. 与您取得联系,处理售后、报修及咨询等事项;',
  86. '4. 分析与改进服务性能,优化您的使用体验。',
  87. '我们不会将您的个人信息用于上述目的之外的任何用途。',
  88. ],
  89. },
  90. {
  91. title: '四、信息的共享与披露',
  92. content: [
  93. '我们不会主动向第三方共享、转让或公开披露您的个人信息,但以下情形除外:',
  94. '1. 事先获得您的明确同意;',
  95. '2. 根据法律法规、司法机关或行政机关的强制性要求;',
  96. '3. 为提供核心服务所必需,且仅共享实现服务所必需的最少信息(例如委托技术合作方进行数据存储或消息推送),我们将要求其遵守保密义务并采取足够的安全措施。',
  97. ],
  98. },
  99. {
  100. title: '五、信息的存储与保护',
  101. content:
  102. '您的个人信息存储于中华人民共和国境内。我们采用加密传输、访问控制、安全审计等技术手段和管理措施,防止您的信息被未经授权地访问、篡改、泄露或丢失。我们仅在实现本协议所述目的所必需的期限内保留您的个人信息,超出期限后将对您的个人信息进行删除或匿名化处理。',
  103. },
  104. {
  105. title: '六、您的权利',
  106. content: [
  107. '按照相关法律法规,您有权:',
  108. '1. 随时查阅您的个人信息;',
  109. '2. 更正不准确或不完整的信息;',
  110. '3. 删除您的部分或全部个人信息;',
  111. '4. 撤回此前作出的授权同意,撤回授权不影响此前基于授权已进行的信息处理的合法性;',
  112. '5. 注销账号。',
  113. '您可以通过小程序内的相关功能或联系我们行使上述权利,我们将在核实您的身份后及时处理。',
  114. ],
  115. },
  116. {
  117. title: '七、未成年人保护',
  118. content:
  119. '我们主要面向成年人提供服务。若您未满18周岁,请在监护人的陪同下阅读本协议,并在征得监护人同意后使用本小程序服务。',
  120. },
  121. {
  122. title: '八、协议的更新',
  123. content:
  124. '我们可能根据法律法规变化或服务调整适时修订本协议,修订后的协议将在本页面发布。当协议发生重大变更时,我们会以显著方式提示您,请您定期查阅本协议以了解最新内容。若您在协议更新后继续使用本小程序服务,即视为您已接受修订后的协议。',
  125. },
  126. ],
  127. };
  128. },
  129. };
  130. </script>
  131. <style lang="scss">
  132. .agreement-page {
  133. min-height: 100vh;
  134. background-color: #ffffff;
  135. padding: 40rpx 40rpx 60rpx;
  136. box-sizing: border-box;
  137. }
  138. .agreement-title {
  139. font-size: 36rpx;
  140. font-weight: bold;
  141. color: #333;
  142. text-align: center;
  143. margin-bottom: 16rpx;
  144. }
  145. .agreement-date {
  146. font-size: 24rpx;
  147. color: #999;
  148. text-align: center;
  149. margin-bottom: 40rpx;
  150. }
  151. .agreement-intro {
  152. font-size: 28rpx;
  153. color: #666;
  154. line-height: 1.8;
  155. text-align: justify;
  156. margin-bottom: 30rpx;
  157. }
  158. .agreement-summary {
  159. padding: 24rpx 24rpx;
  160. margin-bottom: 40rpx;
  161. .summary-title {
  162. font-size: 30rpx;
  163. font-weight: bold;
  164. color: #333;
  165. margin-bottom: 16rpx;
  166. }
  167. .summary-content {
  168. font-size: 26rpx;
  169. color: #666;
  170. line-height: 1.8;
  171. text-align: justify;
  172. margin-bottom: 16rpx;
  173. }
  174. .summary-item {
  175. font-size: 26rpx;
  176. color: #666;
  177. line-height: 1.9;
  178. .item-name {
  179. color: #333;
  180. font-weight: bold;
  181. }
  182. }
  183. .summary-footer {
  184. font-size: 26rpx;
  185. color: #666;
  186. line-height: 1.8;
  187. text-align: justify;
  188. margin-top: 16rpx;
  189. }
  190. }
  191. .agreement-section {
  192. margin-bottom: 30rpx;
  193. .section-title {
  194. font-size: 30rpx;
  195. font-weight: bold;
  196. color: #333;
  197. margin-bottom: 12rpx;
  198. }
  199. .section-content {
  200. font-size: 28rpx;
  201. color: #666;
  202. line-height: 1.8;
  203. text-align: justify;
  204. .content-line {
  205. margin-bottom: 6rpx;
  206. }
  207. }
  208. }
  209. </style>