|
@@ -1,113 +1,157 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <view class="page">
|
|
|
|
|
- <view>
|
|
|
|
|
-
|
|
|
|
|
- # 小程序隐私政策
|
|
|
|
|
-
|
|
|
|
|
- 欢迎使用[小程序名称](以下简称“本小程序”)。本隐私政策旨在向您说明我们在您使用本小程序时如何收集、使用、存储、共享和保护您的个人信息,以及您所享有的相关权利。
|
|
|
|
|
-
|
|
|
|
|
- ## 一、信息收集
|
|
|
|
|
-
|
|
|
|
|
- 1. **收集信息的范围**
|
|
|
|
|
- 为了向您提供服务,我们可能会收集以下类型的个人信息:
|
|
|
|
|
- - **基本信息**:微信昵称、头像。
|
|
|
|
|
- - **联系方式**:手机号码。
|
|
|
|
|
- - **位置信息**:用于提供基于位置的服务。
|
|
|
|
|
- - **其他信息**:根据具体功能需要,可能还会收集其他必要信息,如照片、视频等。
|
|
|
|
|
-
|
|
|
|
|
- 2. **收集信息的目的**
|
|
|
|
|
- 我们仅在实现小程序功能所必要的范围内收集信息,例如:
|
|
|
|
|
- - 使用微信昵称和头像进行用户身份识别。
|
|
|
|
|
- - 使用手机号码进行账号注册或验证。
|
|
|
|
|
- - 使用位置信息提供精准服务。
|
|
|
|
|
-
|
|
|
|
|
- ## 二、信息使用
|
|
|
|
|
-
|
|
|
|
|
- 1. 我们将根据收集的个人信息类型,按照合法、正当、必要的原则使用个人信息,包括但不限于以下用途:
|
|
|
|
|
- - 提供和优化本小程序的服务。
|
|
|
|
|
- - 用于用户身份验证和安全保护。
|
|
|
|
|
- - 分析用户行为以改进用户体验。
|
|
|
|
|
-
|
|
|
|
|
- 2. 如需将您的信息用于本隐私政策未明确的其他用途,我们将再次征得您的明示同意。
|
|
|
|
|
-
|
|
|
|
|
- ## 三、信息存储和保护
|
|
|
|
|
-
|
|
|
|
|
- 1. 我们将按照相关法律法规和标准要求,对收集的用户个人信息进行安全存储和保护。
|
|
|
|
|
- 2. 我们承诺,除法律法规另有规定外,对您的信息的保存期限为实现处理目的所必要的最短时间。
|
|
|
|
|
- 3. 我们将采取必要的技术和管理措施,确保用户个人信息的保密性、完整性、可用性和可追溯性。
|
|
|
|
|
- 4. 如发生个人信息泄露等安全事件,我们将立即采取补救措施并及时告知用户,同时依法向相关部门报告。
|
|
|
|
|
-
|
|
|
|
|
- ## 四、第三方链接和数据共享
|
|
|
|
|
-
|
|
|
|
|
- 1. 本小程序可能包含第三方链接或服务,用户点击后可能会跳转到其他网站或应用。请用户在使用前仔细阅读相关隐私政策或服务条款。
|
|
|
|
|
- 2. 我们将按照法律法规和用户意愿,在以下情况下共享或转让个人信息:
|
|
|
|
|
- - 经用户明确同意。
|
|
|
|
|
- - 为实现特定功能,接入第三方插件或SDK时,将按照第三方的隐私政策处理信息。
|
|
|
|
|
- 3. 我们将与第三方共享必要的信息时,要求第三方遵守相关法律法规和本政策的约定,对个人信息进行保护。
|
|
|
|
|
-
|
|
|
|
|
- ## 五、用户权益
|
|
|
|
|
-
|
|
|
|
|
- 1. **查阅、复制、更正、删除个人信息**
|
|
|
|
|
- 您可以通过以下方式与我们联系,行使查阅、复制、更正、删除等法定权利:
|
|
|
|
|
- - 邮箱:[具体邮箱地址]。
|
|
|
|
|
- - 小程序内设置路径:小程序主页右上角“…”—“设置”—“小程序已获取的信息”。
|
|
|
|
|
-
|
|
|
|
|
- 2. **撤回授权**
|
|
|
|
|
- 您可以通过小程序内的设置页面,撤回对某些权限的授权。
|
|
|
|
|
-
|
|
|
|
|
- 3. **账号注销**
|
|
|
|
|
- 若您在小程序中注册了账号,可以通过以下方式与我们联系,申请注销账号:
|
|
|
|
|
- - 邮箱:[具体邮箱地址]。
|
|
|
|
|
- - 我们承诺在十五个工作日内完成核查和处理,并按照法律法规要求处理您的相关信息。
|
|
|
|
|
-
|
|
|
|
|
- ## 六、隐私政策的修改和更新
|
|
|
|
|
-
|
|
|
|
|
- 我们保留随时修改本政策的权利,如有必要,我们会及时告知用户并对本政策进行更新。更新日期:[具体日期]。
|
|
|
|
|
-
|
|
|
|
|
- ## 七、联系方式
|
|
|
|
|
|
|
+ <div class="privacy-policy">
|
|
|
|
|
+ <div class="policy-container">
|
|
|
|
|
+ <h1>隐私政策</h1>
|
|
|
|
|
+ <div class="policy-content">
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 欢迎使用 [Yeswash]!在使用本小程序之前,请您仔细阅读并理解以下隐私政策的全部条款。您点击“同意”按钮或以其他方式确认接受本隐私政策,即表示您已阅读、理解并同意本隐私政策的全部条款,并愿意遵守本隐私政策的约束。
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <h2>一、信息收集</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 为了向您提供更好的服务,我们可能会收集以下信息:
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>您在注册时提供的个人信息,如姓名、手机号码、电子邮箱等。</li>
|
|
|
|
|
+ <li>您在使用本小程序过程中产生的行为数据,如浏览记录、购买记录等。</li>
|
|
|
|
|
+ <li>您的设备信息,如设备型号、操作系统版本、IP地址等。</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <h2>二、信息使用</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 我们将收集的信息用于以下目的:
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>为您提供个性化服务和推荐。</li>
|
|
|
|
|
+ <li>改进我们的产品和服务。</li>
|
|
|
|
|
+ <li>与您进行沟通和联系。</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <h2>三、信息保护</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 我们将采取合理的措施保护您的个人信息,防止信息泄露、篡改或丢失。我们不会将您的个人信息出售、出租或以其他方式提供给第三方,除非:
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>已获得您的明确同意。</li>
|
|
|
|
|
+ <li>根据法律法规的要求。</li>
|
|
|
|
|
+ <li>为了保护您的合法权益。</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <h2>四、信息共享</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 我们可能会在以下情况下与第三方共享您的信息:
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>与我们的合作伙伴共享,以便为您提供更好的服务。</li>
|
|
|
|
|
+ <li>与我们的服务提供商共享,以便他们为我们提供技术支持。</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <h2>五、用户权利</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 您有权访问、更正、删除您的个人信息。如果您有任何疑问或需要帮助,请随时联系我们。
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <h2>六、未成年人保护</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 我们非常重视未成年人的隐私保护。如果您是未成年人,请在您的父母或监护人的指导下使用本小程序。
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <h2>七、法律适用与争议解决</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 本隐私政策的订立、执行和解释及争议的解决均应适用中华人民共和国法律。如双方就本隐私政策内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向我们所在地有管辖权的人民法院提起诉讼。
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <h2>八、其他</h2>
|
|
|
|
|
+ <p>
|
|
|
|
|
+ 本隐私政策的任何条款无论因何种原因无效或不具可执行性,其余条款仍应有效并具有约束力。
|
|
|
|
|
+ </p>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="policy-buttons">
|
|
|
|
|
+<!-- <button @click="agree">同意</button>
|
|
|
|
|
+ <button @click="disagree">不同意</button>-->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
|
|
|
- 如果您对本隐私政策有任何疑问或建议,或认为我们未遵守上述约定,您可以通过以下方式与我们联系:
|
|
|
|
|
- - 邮箱:[具体邮箱地址]。
|
|
|
|
|
|
|
+<script>
|
|
|
|
|
+export default {
|
|
|
|
|
+ name: "PrivacyPolicy",
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ agree() {
|
|
|
|
|
+ // 用户同意隐私政策,可以跳转到下一步或记录用户同意状态
|
|
|
|
|
+ console.log("用户同意隐私政策");
|
|
|
|
|
+ this.$emit("agreed"); // 可以通过事件通知父组件用户已同意隐私政策
|
|
|
|
|
+ },
|
|
|
|
|
+ disagree() {
|
|
|
|
|
+ // 用户不同意隐私政策,可以提示用户或关闭页面
|
|
|
|
|
+ console.log("用户不同意隐私政策");
|
|
|
|
|
+ this.$emit("disagreed"); // 可以通过事件通知父组件用户不同意隐私政策
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+};
|
|
|
|
|
+</script>
|
|
|
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
-</template>
|
|
|
|
|
|
|
+<style scoped>
|
|
|
|
|
+.privacy-policy {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ /*height: 100vh;*/
|
|
|
|
|
+ background-color: #f5f5f5;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-<script setup lang="ts">
|
|
|
|
|
-import {onHide, onShow} from "@dcloudio/uni-app";
|
|
|
|
|
-import {reactive} from "vue";
|
|
|
|
|
-import {body} from "@/utils/https"
|
|
|
|
|
|
|
+.policy-container {
|
|
|
|
|
+ width: 90%;
|
|
|
|
|
+ max-width: 600px;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+h1 {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ font-size: 24px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-const initState = () => ({
|
|
|
|
|
- servicerPhone: "",
|
|
|
|
|
-})
|
|
|
|
|
|
|
+.policy-content {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-const state = reactive(initState())
|
|
|
|
|
|
|
+.policy-content h2 {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ margin: 20px 0 10px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+.policy-content p {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-const call = () => {
|
|
|
|
|
- uni.makePhoneCall({
|
|
|
|
|
- phoneNumber: state.servicerPhone,
|
|
|
|
|
- });
|
|
|
|
|
-};
|
|
|
|
|
|
|
+.policy-content ul {
|
|
|
|
|
+ list-style-type: disc;
|
|
|
|
|
+ padding-left: 20px;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+.policy-content li {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-onShow(() => {
|
|
|
|
|
- state.servicerPhone =getApp<any>().globalData.config?.servicePhone;
|
|
|
|
|
-});
|
|
|
|
|
|
|
+.policy-buttons {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-onHide(() => {
|
|
|
|
|
- Object.assign(state, initState());
|
|
|
|
|
-})
|
|
|
|
|
-</script>
|
|
|
|
|
|
|
+.policy-buttons button {
|
|
|
|
|
+ padding: 10px 20px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-<style lang="scss">
|
|
|
|
|
-.page {
|
|
|
|
|
- min-height: 100vh;
|
|
|
|
|
- background: #fff;
|
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
- padding: 40rpx 32rpx;
|
|
|
|
|
|
|
+.policy-buttons button:first-child {
|
|
|
|
|
+ background-color: #4caf50;
|
|
|
|
|
+ color: #fff;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-</style>
|
|
|
|
|
|
|
+.policy-buttons button:last-child {
|
|
|
|
|
+ background-color: #f44336;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|