agreement.vue 8.1 KB

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