AgreementPopup.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <view class="agreement-popup" :class="{ 'show': visible }">
  3. <view class="mask" @tap="handleClose"></view>
  4. <view class="popup-content">
  5. <!-- 头部 -->
  6. <view class="popup-header">
  7. <text class="title">{{ title }}</text>
  8. <text class="close-btn" @tap="handleClose">×</text>
  9. </view>
  10. <!-- 内容区域 -->
  11. <scroll-view class="content" scroll-y>
  12. <template v-if="type === 'user'">
  13. <view class="agreement-text">
  14. <view class="section">
  15. <view class="section-title">一、服务说明</view>
  16. <view class="paragraph">1.1 本平台是面向学生家长的智慧校园服务平台,旨在为家长提供便捷的教育信息服务。</view>
  17. <view class="paragraph">1.2 通过本平台,家长可以查看学生在校情况、与教师沟通、接收学校通知等。</view>
  18. </view>
  19. <view class="section">
  20. <view class="section-title">二、账号管理</view>
  21. <view class="paragraph">2.1 家长需要使用真实身份信息进行注册和认证,确保与学生的关系真实有效。</view>
  22. <view class="paragraph">2.2 每个账号仅限本人使用,请勿将账号信息泄露或转借他人。</view>
  23. </view>
  24. <view class="section">
  25. <view class="section-title">三、使用规范</view>
  26. <view class="paragraph">3.1 请遵守平台规则,文明发言,不得发布不当言论或有害信息。</view>
  27. <view class="paragraph">3.2 尊重教师和其他家长的隐私,未经允许不得传播他人信息。</view>
  28. </view>
  29. <view class="section">
  30. <view class="section-title">四、服务变更</view>
  31. <view class="paragraph">4.1 平台将持续优化服务内容,以提供更好的使用体验。</view>
  32. <view class="paragraph">4.2 如遇重大更新,平台会及时通知用户。</view>
  33. </view>
  34. </view>
  35. </template>
  36. <template v-else>
  37. <view class="agreement-text">
  38. <view class="section">
  39. <view class="section-title">非繁数智校园 小程序隐私保护指引</view>
  40. <view class="paragraph">本指引是非繁数智校园小程序开发者 非繁软件(广州)有限公司(以下简称"开发者")为处理你的个人信息而制定。</view>
  41. </view>
  42. <view class="section">
  43. <view class="section-title">开发者处理的信息</view>
  44. <view class="paragraph">根据法律规定,开发者仅处理实现小程序功能所必要的信息。</view>
  45. <view class="paragraph">为了确定用户的真实性,便于用户关联自己的小孩,开发者将在获取你的明示同意后,收集你的微信昵称、头像。</view>
  46. </view>
  47. <view class="section">
  48. <view class="section-title">第三方插件信息/SDK信息</view>
  49. <view class="paragraph">为实现特定功能,开发者可能会接入由第三方提供的插件/SDK。第三方插件/SDK的个人信息处理规则,请以其公示的官方说明为准。非繁数智校园小程序接入的第三方插件信息/SDK信息如下:</view>
  50. <view class="paragraph">插件名称:VOIP通话</view>
  51. <view class="paragraph">插件提供方名称: 深圳市腾讯计算机系统有限公司</view>
  52. <view class="paragraph">为了音视频通话,开发者将在获得你的明示同意后,访问你的摄像头。</view>
  53. <view class="paragraph">为了音视频通话,开发者将在获得你的明示同意后,访问你的麦克风。</view>
  54. <view class="paragraph">为了保存组件截图,开发者将在获得你的明示同意后,使用你的相册(仅写入)权限。</view>
  55. </view>
  56. <view class="section">
  57. <view class="section-title">你的权益</view>
  58. <view class="paragraph">关于你的个人信息,你可以通过以下方式与开发者联系,行使查阅、复制、更正、删除等法定权利。</view>
  59. <view class="paragraph">若你在小程序中注册了账号,你可以通过以下方式与开发者联系,申请注销你在小程序中使用的账号。在受理你的申请后,开发者承诺在十五个工作日内完成核查和处理,并按照法律法规要求处理你的相关信息。</view>
  60. <view class="paragraph">邮箱:1612356478@qq.com</view>
  61. </view>
  62. <view class="section">
  63. <view class="section-title">开发者对信息的存储</view>
  64. <view class="paragraph">开发者承诺,除法律法规另有规定外,开发者对你的信息的保存期限应当为实现处理目的所必要的最短时间。</view>
  65. </view>
  66. <view class="section">
  67. <view class="section-title">信息的使用规则</view>
  68. <view class="paragraph">开发者将会在本指引所明示的用途内使用收集的信息</view>
  69. <view class="paragraph">如开发者使用你的信息超出本指引目的或合理范围,开发者必须在变更使用目的或范围前,再次以小程序通知方式告知并征得你的明示同意。</view>
  70. </view>
  71. <view class="section">
  72. <view class="section-title">信息对外提供</view>
  73. <view class="paragraph">开发者承诺,不会主动共享或转让你的信息至任何第三方,如存在确需共享或转让时,开发者应当直接征得或确认第三方征得你的单独同意。</view>
  74. <view class="paragraph">开发者承诺,不会对外公开披露你的信息,如必须公开披露时,开发者应当向你告知公开披露的目的、披露信息的类型及可能涉及的信息,并征得你的单独同意。</view>
  75. </view>
  76. <view class="section">
  77. <view class="paragraph">你认为开发者未遵守上述约定,或有其他的投诉建议、或未成年人个人信息保护相关问题,可通过以下方式与开发者联系;或者向微信进行投诉。</view>
  78. <view class="paragraph">邮箱 : 1612356478@qq.com</view>
  79. </view>
  80. <view class="section">
  81. <view class="paragraph">更新日期:2025-05-07</view>
  82. <view class="paragraph">生效日期:2025-05-07</view>
  83. </view>
  84. </view>
  85. </template>
  86. </scroll-view>
  87. </view>
  88. </view>
  89. </template>
  90. <script setup>
  91. import { ref, computed } from 'vue'
  92. const props = defineProps({
  93. visible: {
  94. type: Boolean,
  95. default: false
  96. },
  97. type: {
  98. type: String,
  99. default: 'user' // 'user' 或 'privacy'
  100. }
  101. })
  102. const emit = defineEmits(['update:visible'])
  103. const title = computed(() => {
  104. return props.type === 'user' ? '用户服务协议' : '隐私政策'
  105. })
  106. const handleClose = () => {
  107. emit('update:visible', false)
  108. }
  109. </script>
  110. <style scoped>
  111. .agreement-popup {
  112. position: fixed;
  113. left: 0;
  114. right: 0;
  115. top: 0;
  116. bottom: 0;
  117. z-index: 99999;
  118. visibility: hidden;
  119. }
  120. .agreement-popup.show {
  121. visibility: visible;
  122. }
  123. .agreement-popup.show .popup-content {
  124. transform: translateY(0);
  125. }
  126. .mask {
  127. position: absolute;
  128. left: 0;
  129. right: 0;
  130. top: 0;
  131. bottom: 0;
  132. background: rgba(0, 0, 0, 0.6);
  133. }
  134. .popup-content {
  135. position: absolute;
  136. left: 0;
  137. right: 0;
  138. bottom: 0;
  139. background: #fff;
  140. border-radius: 24rpx 24rpx 0 0;
  141. padding: 40rpx 30rpx;
  142. transform: translateY(100%);
  143. transition: transform 0.3s ease-out;
  144. max-height: 80vh;
  145. display: flex;
  146. flex-direction: column;
  147. }
  148. .popup-header {
  149. display: flex;
  150. justify-content: space-between;
  151. align-items: center;
  152. margin-bottom: 40rpx;
  153. }
  154. .title {
  155. font-size: 36rpx;
  156. font-weight: bold;
  157. color: #333;
  158. }
  159. .close-btn {
  160. font-size: 48rpx;
  161. color: #999;
  162. padding: 20rpx;
  163. margin: -20rpx;
  164. }
  165. .content {
  166. flex: 1;
  167. overflow: auto;
  168. }
  169. .agreement-text {
  170. padding-bottom: 40rpx;
  171. }
  172. .section {
  173. margin-bottom: 40rpx;
  174. }
  175. .section-title {
  176. font-size: 32rpx;
  177. font-weight: bold;
  178. color: #333;
  179. margin-bottom: 20rpx;
  180. }
  181. .paragraph {
  182. font-size: 28rpx;
  183. color: #666;
  184. line-height: 1.8;
  185. margin-bottom: 16rpx;
  186. text-align: justify;
  187. }
  188. /* 隐藏滚动条 */
  189. ::-webkit-scrollbar {
  190. display: none;
  191. width: 0;
  192. height: 0;
  193. color: transparent;
  194. }
  195. </style>