agreement.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. <template>
  2. <view class="agreement-page">
  3. <view class="agreement-title">用户服务与隐私协议</view>
  4. <view class="agreement-meta">
  5. <view class="meta-version">版本:V2.0</view>
  6. <view class="meta-date">更新日期:2026-09-14</view>
  7. <view class="meta-effective">生效日期:2026-09-14</view>
  8. </view>
  9. <view class="agreement-intro">
  10. 欢迎使用本小程序!您在使用前需同意本协议。我们致力于为您提供优质服务,同时依法保障您的个人信息权益。您应妥善保管账号信息,并对账号下的一切行为负责。
  11. </view>
  12. <view class="agreement-summary">
  13. <view class="summary-title">一图读懂:信息收集概览</view>
  14. <view class="summary-content">
  15. 我们深知个人信息对您的重要性,并承诺依法保护您的隐私。我们遵循"最小必要"原则收集信息,以下为核心信息一览表:
  16. </view>
  17. <view class="summary-table">
  18. <view class="table-row table-header">
  19. <view class="col-type">信息类型</view>
  20. <view class="col-purpose">使用目的</view>
  21. <view class="col-auth">授权类型</view>
  22. </view>
  23. <view class="table-row" v-for="(item, i) in summary" :key="i">
  24. <view class="col-type">{{ item.name }}</view>
  25. <view class="col-purpose">{{ item.desc }}</view>
  26. <view class="col-auth">
  27. <view
  28. class="auth-tag"
  29. :class="
  30. item.authType === '必要' ? 'auth-required' : 'auth-optional'
  31. "
  32. >{{ item.authType }}</view
  33. >
  34. </view>
  35. </view>
  36. </view>
  37. <view class="summary-footer">
  38. 我们不会主动向第三方共享您的个人信息,除非获得您的明确同意或法律法规要求。"可选"授权拒绝后不影响其他功能的正常使用。
  39. </view>
  40. </view>
  41. <view
  42. class="agreement-section"
  43. v-for="(item, index) in sections"
  44. :key="index"
  45. >
  46. <view class="section-title">{{ item.title }}</view>
  47. <view class="section-content">
  48. <template v-if="Array.isArray(item.content)">
  49. <view
  50. class="content-line"
  51. v-for="(line, i) in item.content"
  52. :key="i"
  53. >{{ line }}</view
  54. >
  55. </template>
  56. <text v-else>{{ item.content }}</text>
  57. </view>
  58. </view>
  59. </view>
  60. </template>
  61. <script>
  62. export default {
  63. data() {
  64. return {
  65. summary: [
  66. {
  67. name: '微信昵称、头像',
  68. desc: '展示您的身份',
  69. authType: '必要',
  70. },
  71. {
  72. name: '手机号',
  73. desc: '售后联系与账号安全',
  74. authType: '必要',
  75. },
  76. {
  77. name: '位置信息',
  78. desc: '推荐附近服务',
  79. authType: '可选',
  80. },
  81. {
  82. name: '设备信息',
  83. desc: '保障服务稳定运行',
  84. authType: '必要',
  85. },
  86. ],
  87. sections: [
  88. {
  89. title: '一、协议的确认与账号安全',
  90. content:
  91. '本协议是您与本小程序运营者之间关于使用本小程序服务的约定。您在开始使用本小程序服务前,请务必仔细阅读并充分理解本协议全部内容,点击"同意"或实际使用本小程序服务即表示您已阅读并同意本协议。您应妥善保管账号信息,不得将账号出借、转让或授权他人使用,并对账号下的一切行为负责。如发现账号被他人盗用或存在其他安全问题,请立即与我们联系。',
  92. },
  93. {
  94. title: '二、我们收集的信息',
  95. content: [
  96. '我们遵循"最小必要"与"目的明确"原则,仅收集实现服务所必需的信息。以下为各类信息的收集目的、授权类型及拒绝授权的影响:',
  97. '1. 微信昵称、头像【必要授权】:在您授权后获取,用于在小程序内展示您的身份;拒绝授权将无法展示您的个性化身份信息,但不影响其他功能使用;',
  98. '2. 手机号【必要授权】:在您绑定或授权后获取,用于售后服务联系与账号安全验证;拒绝授权将影响售后联系及账号安全相关功能;',
  99. '3. 位置信息【可选授权】:在您授权后获取,用于为您推荐附近的服务;拒绝授权仅会影响该功能,不影响其他功能的正常使用;',
  100. '4. 设备信息【必要授权】:如设备型号、操作系统版本、网络状态等,用于保障服务的稳定运行和问题排查;该信息为服务运行自动采集,无法单独拒绝;',
  101. '除上述信息外,我们不会收集与服务无关的个人信息,不会收集您的微信聊天内容、通讯录、相册等敏感信息。',
  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. '我们不会主动向第三方共享、转让或公开披露您的个人信息。以下情形除外:',
  120. '1. 事先获得您的明确同意:经您授权后,我们才会共享相应的个人信息;',
  121. '2. 法定强制要求:根据法律法规、司法机关或行政机关的强制性要求;',
  122. '3. 委托处理:为提供核心服务所必需,我们可能委托技术合作方进行数据存储或消息推送,仅共享实现服务所必需的最少信息,并要求其签署保密协议、采取足够的安全措施,不得用于其他用途;',
  123. '4. 合并重组:如我们涉及合并、收购或资产转让,我们将确保接收方继续履行本协议,并在变更用途前再次征得您的同意。',
  124. '我们承诺:不向任何第三方出售您的个人信息;不与关联方进行未经授权的数据共享。',
  125. ],
  126. },
  127. {
  128. title: '五、信息的存储与保护',
  129. content: [
  130. '1. 存储地点:您的个人信息存储于中华人民共和国境内,不会跨境传输;',
  131. '2. 存储期限:我们仅在实现本协议所述目的所必需的最短期限内保留您的个人信息:',
  132. ' - 账号信息:账号存续期间;账号注销后30日内删除或匿名化处理;',
  133. ' - 交易/服务记录:自服务终止之日起保留3年(法律法规另有要求的除外);',
  134. ' - 设备日志信息:保留期限不超过6个月;',
  135. '3. 安全措施:我们采用加密传输、访问控制、安全审计等技术手段和管理措施,防止您的信息被未经授权地访问、篡改、泄露或丢失;',
  136. '4. 安全事件响应:如发生个人信息安全事件,我们将及时启动应急预案,并在15个工作日内通过公告或站内信等方式告知您事件情况、处置措施及应对建议。',
  137. ],
  138. },
  139. {
  140. title: '六、您的权利',
  141. content: [
  142. '按照《个人信息保护法》等相关法律法规,您对个人信息享有以下权利。您可通过联系客服行使:',
  143. '1. 知情权与查阅权:您有权随时查阅我们收集的您的个人信息类型与内容;',
  144. '2. 更正权:您有权要求更正不准确或不完整的信息,我们将在核实身份后15个工作日内处理;',
  145. '3. 删除权:您有权要求删除您的部分或全部个人信息(法律法规要求保留的除外),我们将在15个工作日内处理;',
  146. '4. 账号注销权:您有权随时注销账号,注销后我们将停止使用并删除您的相关信息。您可联系客服发起注销申请;',
  147. '5. 投诉举报权:如您认为我们处理个人信息的行为损害了您的合法权益,您有权向网信、公安等监管部门投诉举报。',
  148. '我们将在收到您的请求后核实身份并及时处理,原则上不超过15个工作日。如遇特殊情况,处理时限最长不超过30个工作日,并会向您说明原因。',
  149. ],
  150. },
  151. {
  152. title: '七、未成年人保护',
  153. content:
  154. '我们主要面向成年人提供服务。若您未满18周岁,请在监护人的陪同下阅读本协议,并在征得监护人同意后使用本小程序服务。',
  155. },
  156. {
  157. title: '八、协议的更新',
  158. content: [
  159. '1. 版本公示:本协议当前版本号为V2.0,最新更新日期为2026-09-14,生效日期为2026-09-14;',
  160. '2. 修订情形:我们可能根据法律法规变化、监管要求或服务调整适时修订本协议;',
  161. '3. 告知机制:',
  162. ' - 一般变更:修订后的协议将在本页面发布,并通过站内通知告知您;',
  163. ' - 重大变更(如信息收集范围扩大、使用目的变更、新增第三方共享等):我们将通过弹窗显著提示,并要求您重新确认是否同意;',
  164. '4. 查阅建议:请您定期查阅本协议以了解最新内容。如您不同意修订后的协议,您可停止使用本小程序并申请注销账号;',
  165. '5. 历史版本:如需查阅历史版本,请联系客服获取。',
  166. ],
  167. },
  168. ],
  169. };
  170. },
  171. };
  172. </script>
  173. <style lang="scss">
  174. .agreement-page {
  175. min-height: 100vh;
  176. background-color: #ffffff;
  177. padding: 40rpx 40rpx 60rpx;
  178. box-sizing: border-box;
  179. }
  180. .agreement-title {
  181. font-size: 36rpx;
  182. font-weight: bold;
  183. color: #333;
  184. text-align: center;
  185. margin-bottom: 16rpx;
  186. }
  187. .agreement-meta {
  188. display: flex;
  189. justify-content: center;
  190. flex-wrap: wrap;
  191. font-size: 24rpx;
  192. color: #999;
  193. margin-bottom: 40rpx;
  194. .meta-version,
  195. .meta-date,
  196. .meta-effective {
  197. margin: 0 12rpx;
  198. }
  199. .meta-version {
  200. color: #3a8ee6;
  201. font-weight: bold;
  202. }
  203. }
  204. .agreement-intro {
  205. font-size: 28rpx;
  206. color: #666;
  207. line-height: 1.8;
  208. text-align: justify;
  209. margin-bottom: 30rpx;
  210. }
  211. .agreement-summary {
  212. padding: 24rpx;
  213. margin-bottom: 40rpx;
  214. background-color: #f7f9fc;
  215. border-radius: 12rpx;
  216. border-left: 6rpx solid #3a8ee6;
  217. .summary-title {
  218. font-size: 30rpx;
  219. font-weight: bold;
  220. color: #333;
  221. margin-bottom: 16rpx;
  222. }
  223. .summary-content {
  224. font-size: 26rpx;
  225. color: #666;
  226. line-height: 1.8;
  227. text-align: justify;
  228. margin-bottom: 16rpx;
  229. }
  230. .summary-table {
  231. margin-bottom: 16rpx;
  232. border: 1rpx solid #e4e7ed;
  233. border-radius: 8rpx;
  234. overflow: hidden;
  235. }
  236. .table-row {
  237. display: flex;
  238. align-items: center;
  239. padding: 16rpx 12rpx;
  240. border-bottom: 1rpx solid #e4e7ed;
  241. &:last-child {
  242. border-bottom: none;
  243. }
  244. &.table-header {
  245. background-color: #ecf5ff;
  246. font-weight: bold;
  247. color: #333;
  248. }
  249. .col-type {
  250. flex: 0 0 30%;
  251. font-size: 26rpx;
  252. }
  253. .col-purpose {
  254. flex: 1;
  255. font-size: 26rpx;
  256. }
  257. .col-auth {
  258. flex: 0 0 20%;
  259. text-align: center;
  260. }
  261. }
  262. .auth-tag {
  263. display: inline-block;
  264. padding: 2rpx 12rpx;
  265. border-radius: 20rpx;
  266. font-size: 22rpx;
  267. &.auth-required {
  268. background-color: #fef0f0;
  269. color: #f56c6c;
  270. }
  271. &.auth-optional {
  272. background-color: #f0f9eb;
  273. color: #67c23a;
  274. }
  275. }
  276. .summary-footer {
  277. font-size: 26rpx;
  278. color: #666;
  279. line-height: 1.8;
  280. text-align: justify;
  281. margin-top: 16rpx;
  282. }
  283. }
  284. .agreement-section {
  285. margin-bottom: 30rpx;
  286. .section-title {
  287. font-size: 30rpx;
  288. font-weight: bold;
  289. color: #333;
  290. margin-bottom: 12rpx;
  291. }
  292. .section-content {
  293. font-size: 28rpx;
  294. color: #666;
  295. line-height: 1.8;
  296. text-align: justify;
  297. .content-line {
  298. margin-bottom: 6rpx;
  299. }
  300. }
  301. }
  302. </style>