235 lines
13 KiB
Vue
235 lines
13 KiB
Vue
<template>
|
||
<view class="agreement-page" :style="{ background: themeConfig.bgColor }">
|
||
<!-- 协议内容滚动区 -->
|
||
<scroll-view class="content-scroll" scroll-y>
|
||
<view class="agreement-content" :style="{ background: themeConfig.cardBgColor }">
|
||
<view class="title" :style="{ color: themeConfig.textPrimary }">简记memo隐私政策</view>
|
||
<view class="effective-date" :style="{ color: themeConfig.textSecondary }">生效日期:2025年04月24日</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">1. 总则</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">1.1 为保护用户隐私,规范本小程序的个人信息处理行为,本小程序运营者(个人开发者,以下简称“运营者”)依据《中华人民共和国个人信息保护法》《中华人民共和国网络安全法》《微信小程序平台运营规范》等法律法规及规范,制定本隐私政策。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">1.2 本隐私政策适用于您使用本小程序过程中涉及的个人信息处理活动,您使用本小程序即视为同意本政策;若您不同意本政策,请勿使用本小程序。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">1.3 本小程序由个人独立开发及运营,无所属企业/公司主体,所有信息处理行为均由运营者个人负责。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">2. 个人信息的收集</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">2.1 登录相关信息:您使用微信授权登录本小程序时,运营者仅获取微信开放平台提供的唯一标识(OpenID),该信息仅用于识别您的用户身份,不会收集您的微信昵称、头像、手机号等其他微信账号信息。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">2.2 业务数据:您在本小程序内录入的备忘录、待办事项、账单内容、编辑记录、时间戳等数据,将存储于运营者的服务器中(而非本地设备),仅用于为您提供数据同步、查看、编辑等核心功能。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">2.3 设备与日志信息:为保障小程序正常运行,可能被动获取微信平台提供的基础设备信息(如设备型号、系统版本)、操作日志(如页面访问记录、功能使用记录),该类信息仅用于故障排查、功能优化,且仅与OpenID关联(不关联其他个人身份信息)。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">2.4 运营者不会主动收集您的姓名、身份证号、手机号、地理位置等其他个人敏感信息。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">3. 个人信息的使用</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">3.1 OpenID仅用于识别您的用户身份,保障您能正常访问、管理自己存储在服务器的业务数据。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">3.2 您的业务数据仅用于为您本人提供查看、编辑、删除、同步等核心功能,运营者不会利用该数据进行商业推广、数据分析、第三方共享等其他用途。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">3.3 设备与日志信息仅用于定位和解决小程序运行故障、优化产品体验,不会用于识别个人身份或向第三方披露。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">4. 个人信息的存储与保护</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.1 存储方式:OpenID及您的业务数据存储于运营者的服务器中;设备与日志信息仅在故障排查期间临时存储,排查完成后即时删除。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.2 存储期限:OpenID与业务数据将持续存储,直至您主动申请删除账号(可通过联系运营者完成);设备与日志信息存储期限不超过7日。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.3 安全措施:运营者通过服务器访问权限控制、数据加密传输等技术手段保障数据安全,但因网络攻击、服务器故障、微信平台漏洞等非运营方可控因素导致的数据泄露,运营者不承担责任。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.4 您可通过小程序内的删除功能清理自身业务数据,如需彻底删除账号及所有数据,可联系运营者协助处理。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">5. 个人信息的共享、转让与公开披露</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">5.1 运营者不会将您的OpenID、业务数据、设备信息等任何信息共享、转让给第三方,除非获得您的明确授权,或法律法规、司法机关/行政机关的强制性要求。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">5.2 未经您同意,运营者不会公开披露您的任何信息;因法律法规要求披露时,将在允许范围内尽可能提前通知您。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">6. 您的权利</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">6.1 您有权随时查看、编辑、删除自己存储在本小程序内的业务数据;</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">6.2 您有权联系运营者申请删除账号及所有关联数据(包括OpenID、业务数据);</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">6.3 您有权向运营者查询自身个人信息的处理情况,运营者将在合理期限内予以答复;</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">6.4 若您发现本小程序存在违规处理您信息的行为,有权向运营者反馈或向微信平台投诉。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">7. 未成年人保护</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">7.1 本小程序面向所有年龄段用户,若未成年人使用本小程序,应在监护人指导下进行,监护人应承担相应监护责任。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">7.2 运营者不会主动收集未成年人的任何额外个人信息,若监护人发现未成年人的信息被不当处理,可联系运营者协助处理。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">8. 隐私政策的变更</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">8.1 运营者可根据法律法规调整或业务优化,修改本隐私政策,修改后的政策将在小程序内公示,公示满7日后生效。</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">8.2 若您不同意修改后的政策,应停止使用本小程序并可申请删除账号数据;继续使用的,视为同意修改后的政策。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">9. 联系我们</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">9.1 若您对本隐私政策有任何疑问、意见或投诉,可通过以下方式联系运营者:</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">联系邮箱:memo@miaoall.cn</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">微信公众号:孙三苗(sunsanmiao)</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">9.2 运营者将在15个工作日内回复您的咨询或处理请求。</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title" :style="{
|
||
color: themeConfig.primaryColor,
|
||
background: themeConfig.primaryColor + '10',
|
||
borderLeftColor: themeConfig.primaryColor
|
||
}">10. 其他</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">10.1 本隐私政策的解释权归运营者个人所有;</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">10.2 若本政策与法律法规冲突,以法律法规为准;</view>
|
||
<view class="section-text" :style="{ color: themeConfig.textSecondary }">10.3 您使用本小程序的行为,同时受微信平台的隐私政策及运营规范约束。</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { getThemeConfigFromStorage, THEME_PRESETS } from '@/utils/theme'
|
||
import { refreshNavBarTheme } from '@/utils/themeGlobal'
|
||
|
||
export default {
|
||
name: "privacyPolicy",
|
||
data() {
|
||
return {
|
||
themeConfig: getThemeConfigFromStorage() || THEME_PRESETS['default']
|
||
};
|
||
},
|
||
onLoad() {
|
||
refreshNavBarTheme()
|
||
this.themeChangeHandler = (themeData) => {
|
||
let newTheme = null
|
||
if (themeData?.key && THEME_PRESETS[themeData.key]) {
|
||
newTheme = THEME_PRESETS[themeData.key]
|
||
} else if (themeData?.config) {
|
||
newTheme = themeData.config
|
||
}
|
||
if (newTheme) {
|
||
this.themeConfig = newTheme
|
||
refreshNavBarTheme()
|
||
}
|
||
}
|
||
uni.$on('themeChanged', this.themeChangeHandler)
|
||
},
|
||
onShow() {
|
||
const latestTheme = getThemeConfigFromStorage() || THEME_PRESETS['default']
|
||
if (JSON.stringify(latestTheme) !== JSON.stringify(this.themeConfig)) {
|
||
this.themeConfig = latestTheme
|
||
}
|
||
refreshNavBarTheme()
|
||
},
|
||
onUnload() {
|
||
uni.$off('themeChanged', this.themeChangeHandler)
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style scoped>
|
||
.agreement-page {
|
||
width: 100%;
|
||
min-height: 100vh;
|
||
padding: 20rpx 24rpx;
|
||
padding-bottom: 40px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.content-scroll {
|
||
height: calc(100vh - 40rpx);
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.agreement-content {
|
||
padding: 40rpx;
|
||
border-radius: 12rpx;
|
||
min-height: calc(100% - 48rpx);
|
||
}
|
||
|
||
.title {
|
||
font-size: 36rpx;
|
||
font-weight: 700;
|
||
text-align: center;
|
||
margin-bottom: 16rpx;
|
||
letter-spacing: 1rpx;
|
||
}
|
||
|
||
.effective-date {
|
||
text-align: center;
|
||
font-size: 24rpx;
|
||
margin-bottom: 40rpx;
|
||
padding-bottom: 24rpx;
|
||
border-bottom: 1px dashed rgba(132, 179, 217, 0.2);
|
||
}
|
||
|
||
.section {
|
||
margin-bottom: 36rpx;
|
||
}
|
||
|
||
.section-title {
|
||
font-size: 30rpx;
|
||
font-weight: 600;
|
||
margin-bottom: 18rpx;
|
||
padding: 12rpx 16rpx;
|
||
border-radius: 12rpx;
|
||
border-left: 4rpx solid;
|
||
}
|
||
|
||
.section-text {
|
||
font-size: 28rpx;
|
||
line-height: 2;
|
||
margin-bottom: 14rpx;
|
||
text-indent: 56rpx;
|
||
}
|
||
|
||
.footer-info {
|
||
margin-top: 48rpx;
|
||
padding-top: 24rpx;
|
||
border-top: 1px dashed rgba(132, 179, 217, 0.2);
|
||
text-align: center;
|
||
}
|
||
|
||
.footer-text {
|
||
font-size: 24rpx;
|
||
line-height: 1.6;
|
||
}
|
||
|
||
.contact-link {
|
||
text-decoration: none;
|
||
}
|
||
</style> |