Files
simple-memo-wx/pages/userAgreement/userAgreement.vue
T

210 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 本协议是您以下简称用户”)与简记memo小程序以下简称本小程序”)个人运营者以下简称运营者”)之间关于使用本小程序所订立的契约运营者为个人独立开发者无所属企业/公司主体</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 运营者有权根据技术发展用户需求法律法规调整等因素不定期优化调整或暂停部分/全部服务重大调整将通过小程序内公告提前7日告知用户</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">2.3 本小程序为免费服务运营者不承诺提供商业级别的服务稳定性仅保障基础功能的正常可用</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 权利您有权按照本协议约定使用本小程序核心功能有权查看编辑删除自身存储在服务器的所有数据有权向运营者反馈功能问题或优化建议在遵守本协议的前提下运营者保障您正常使用本小程序的基础权益</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">3.2 义务您保证使用本小程序的行为符合中华人民共和国网络安全法》《互联网信息服务管理办法等法律法规及公序良俗不得利用本小程序存储传播违法违规侵权色情暴力等内容应对自身录入的内容及使用行为承担全部法律责任不得对本小程序进行反向工程篡改破解爬虫抓取等损害小程序正常运行的操作</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">3.3 您理解并同意微信OpenID仅用于身份识别运营者不会通过该信息获取您的其他微信账号信息</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 运营者有权在以下情形暂停/终止服务:(1您违反本协议约定且未在通知期限内纠正;(2法律法规微信平台规则要求暂停/终止;(3不可抗力如服务器故障网络中断);(4运营者自主停止运营提前30日在小程序内公告)。</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.2 服务暂停期间运营者将尽力恢复服务但不承诺恢复时限服务终止后您存储在服务器的所有数据将保留7日逾期将永久删除运营者不承担数据找回备份或赔偿责任</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">4.3 您可主动申请终止服务联系运营者删除账号及所有数据),申请生效后运营者将在15个工作日内完成数据清理</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 本小程序仅提供基础数据存储与管理功能运营者不对您存储内容的完整性准确性安全性做绝对担保因网络故障服务器维护微信平台规则调整您的设备问题等非运营方可控因素导致的数据丢失功能异常运营者不承担赔偿责任</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">5.2 本小程序为个人开发的免费服务运营者无义务提供7×24小时技术支持仅根据实际情况在合理期限内解答用户咨询通过预留邮箱/公众号)。</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">5.3 因您违反法律法规或本协议约定导致第三方索赔行政机关处罚的由您自行承担全部责任运营者不承担连带责任</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 运营者可根据法律法规调整业务优化需要修改本协议修改后的协议将在小程序内公示公示满7日后自动生效</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">6.2 若您不同意修改后的协议应立即停止使用本小程序并可申请删除账号数据继续使用本小程序的视为您同意修改后的协议</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 若您对本协议有任何疑问可通过以下方式联系运营者联系邮箱memo@miaoall.cn微信公众号孙三苗sunsanmiao)。</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">8.2 本协议的条款如被有权机关认定为无效或不可执行不影响其余条款的效力</view>
<view class="section-text" :style="{ color: themeConfig.textSecondary }">8.3 本协议与隐私政策共同构成您与运营者之间的完整约定两者冲突时隐私政策中关于个人信息保护的内容为准</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import { getThemeConfigFromStorage, THEME_PRESETS } from '@/utils/theme'
import { refreshNavBarTheme } from '@/utils/themeGlobal'
export default {
name: "userAgreement",
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>