yonhu-xieyi.vue 18.3 KB
<template>
  <view class="agreement-page">
    <!-- 导航栏 -->
    <uni-nav-bar title="用户协议" left-icon="left" @click-left="goBack" :fixed="true" :status-bar="true" />

    <!-- 协议内容区域 -->
    <scroll-view scroll-y class="agreement-scroll" :style="{ height: scrollHeight + 'px' }">
      <view class="agreement-content">
     
        <!-- 导言 -->
        <view class="agreement-section">
          <view class="section-body">
            <text class="section-text">
              欢迎使用自己练健身(以下简称"本应用"或"我们")提供的服务。请您在使用本应用前仔细阅读本《用户服务协议》(以下简称"本协议")。<text class="text-bold">您通过点击同意、注册登录或实际使用本应用的行为,即表示您已充分阅读、理解并接受本协议的全部内容</text>。如您不同意本协议的任何条款,请立即停止注册或使用本应用。
            </text>
            <text class="section-text">
              本协议是您与自己练健身之间就您使用本应用服务所订立的有效协议。我们有权根据法律法规及运营需要适时修订本协议,修订后的协议将在本应用内公示。若您在修订后继续使用本应用,即视为您已接受修订后的协议。
            </text>
          </view>
        </view>

        <!-- 一、服务说明 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">一、服务说明</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              1.1 自己练健身是一款面向健身爱好者的训练管理与记录工具,提供包括但不限于以下服务:训练计划制定与管理、动作库浏览与学习、训练数据记录与分析、训练日历管理等。
            </text>
            <text class="section-text">
              1.2 本应用提供的健身建议、训练方案等内容仅供参考,不构成专业的医疗建议。<text class="text-bold">在开始任何训练计划前,您应当咨询专业医生或健康顾问,确认自身身体状况适合进行相应的体育活动。</text>
            </text>
            <text class="section-text">
              1.3 我们保留根据业务发展需要,随时增加、调整或终止部分或全部服务的权利,且无需事先通知您。服务变更将在应用内公示后生效。
            </text>
          </view>
        </view>

        <!-- 二、账号注册与管理 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">二、账号注册与管理</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              2.1 您在使用本应用前需要注册账号。注册时,您应当提供真实、准确、完整的个人信息,并在信息变更时及时更新。因您提供的信息不真实、不准确或不完整所导致的一切后果由您自行承担。
            </text>
            <text class="section-text">
              2.2 您注册的账号仅限于您本人使用,不得以任何形式转让、出借或授权他人使用。您应当妥善保管账号及密码信息,对通过您的账号所进行的一切活动承担全部责任。
            </text>
            <text class="section-text">
              2.3 如发现您的账号存在异常登录或被他人非法使用的情形,您应当立即通知我们。因您未及时通知而导致的一切损失,由您自行承担。
            </text>
            <text class="section-text">
              2.4 您有权随时注销您的账号。账号注销后,您的个人信息将按照本应用隐私政策的规定进行处理。账号一旦注销,将无法恢复。
            </text>
          </view>
        </view>

        <!-- 三、用户行为规范 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">三、用户行为规范</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              3.1 您在使用本应用过程中,应当遵守中华人民共和国的法律法规,不得利用本应用从事违法违规活动,包括但不限于:
            </text>
            <text class="section-text indent-text">
              (1)发布、传播危害国家安全、破坏国家统一、损害国家荣誉和利益的内容;
            </text>
            <text class="section-text indent-text">
              (2)发布、传播煽动民族仇恨、民族歧视、破坏民族团结的内容;
            </text>
            <text class="section-text indent-text">
              (3)发布、传播淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的内容;
            </text>
            <text class="section-text indent-text">
              (4)发布、传播侮辱、诽谤他人,侵害他人合法权益的内容;
            </text>
            <text class="section-text indent-text">
              (5)发布、传播虚假信息,扰乱社会秩序、破坏社会稳定的内容;
            </text>
            <text class="section-text indent-text">
              (6)利用技术手段恶意攻击本应用服务器,破坏本应用的正常运行;
            </text>
            <text class="section-text indent-text">
              (7)利用本应用从事任何可能影响其他用户正常使用的行为。
            </text>
            <text class="section-text">
              3.2 您应尊重他人的知识产权,不得在本应用上发布、分享任何侵犯他人著作权、商标权、专利权等知识产权的内容。
            </text>
            <text class="section-text">
              3.3 如您违反上述规定,我们有权采取包括但不限于以下措施:警告、限制功能使用、暂停或终止服务、注销账号,并保留追究法律责任的权利。
            </text>
          </view>
        </view>

        <!-- 四、服务变更与终止 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">四、服务变更、中断与终止</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              4.1 我们可能会根据业务发展需要,对服务的全部或部分内容进行调整、变更或终止,并在合理期限内通过应用公告、推送通知等方式告知您。
            </text>
            <text class="section-text">
              4.2 在下列情形下,我们有权不经通知即中断或终止向您提供服务:
            </text>
            <text class="section-text indent-text">
              (1)您违反本协议约定,我们根据违约情况决定终止服务的;
            </text>
            <text class="section-text indent-text">
              (2)您注册时提供的信息不真实、不准确,或未及时更新的;
            </text>
            <text class="section-text indent-text">
              (3)根据法律法规规定或政府部门的要求;
            </text>
            <text class="section-text indent-text">
              (4)为维护社会公共利益或保护其他用户合法权益所必需的。
            </text>
            <text class="section-text">
              4.3 因系统维护升级、网络故障、技术调整等原因可能导致服务中断,我们将尽量提前通知您并尽快恢复服务。对于计划内的维护,我们将至少提前24小时通过应用公告通知。
            </text>
          </view>
        </view>

        <!-- 五、知识产权 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">五、知识产权</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              5.1 本应用的所有内容,包括但不限于文字、图片、视频、音频、图标、界面设计、软件代码、数据分析模型等,其知识产权均归自己练健身或其权利人所有,受中华人民共和国著作权法、商标法、专利法等相关法律法规的保护。
            </text>
            <text class="section-text">
              5.2 未经我们或相关权利人的书面许可,您不得以任何方式(包括但不限于复制、修改、传播、展示、镜像、上载、下载)使用本应用的任何内容,也不得对本应用进行反向工程、反编译或反汇编。
            </text>
            <text class="section-text">
              5.3 您在使用本应用过程中上传、发布的内容,您保留对该内容的所有权。但您授予我们全球范围内免费、非独家、可再许可的使用权,以便我们运营和改进本应用服务。
            </text>
          </view>
        </view>

        <!-- 六、免责声明 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">六、免责声明</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              6.1 <text class="text-bold">健康风险提示:</text>本应用提供的训练计划、动作指导、营养建议等内容仅供一般性参考,不构成专业的医疗、健身或营养建议。您在使用本应用过程中自愿承担因参与体育活动可能产生的一切风险,包括但不限于运动损伤、身体不适等。我们强烈建议您在开始任何新的训练计划前咨询专业医生。
            </text>
            <text class="section-text">
              6.2 <text class="text-bold">数据准确性:</text>本应用中的训练数据(如消耗卡路里、训练量等)为基于算法估算的结果,可能与实际情况存在偏差,不应用于精确的健康监测或医疗诊断。
            </text>
            <text class="section-text">
              6.3 <text class="text-bold">不可抗力:</text>因自然灾害、战争、政府行为、法律法规变化、黑客攻击、电信运营商故障、第三方服务故障等不可抗力或我们不能预见、不能控制的原因导致本应用服务中断或出现其他不利影响的,我们不承担责任。
            </text>
            <text class="section-text">
              6.4 本应用可能包含指向第三方网站或服务的链接。这些链接仅为方便您使用而提供,我们对该等第三方网站或服务的内容、隐私政策或行为不承担任何责任。
            </text>
          </view>
        </view>

        <!-- 七、责任限制 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">七、责任限制</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              7.1 在法律允许的最大范围内,我们对因使用或无法使用本应用而产生的任何直接、间接、附带、特殊、惩罚性或结果性损失(包括但不限于人身伤害、数据丢失、业务中断、利润损失等)不承担责任,无论该等损失是否基于合同、侵权或其他法律理论,即使我们已被告知发生该等损失的可能性。
            </text>
            <text class="section-text">
              7.2 如我们因任何原因需对您承担责任,则在法律允许的最大范围内,我们的累计责任总额不超过您在事件发生前十二(12)个月内向我们已支付的费用总额。
            </text>
          </view>
        </view>

        <!-- 八、隐私保护 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">八、隐私保护</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              8.1 保护您的个人信息是我们的一项重要原则。我们将按照《自己练健身隐私政策》的规定,收集、使用、存储和保护您的个人信息。您可以通过本应用"设置-隐私政策"页面查阅完整的隐私政策内容。
            </text>
            <text class="section-text">
              8.2 我们承诺不会将您的个人信息出售或非法提供给任何第三方,但以下情形除外:
            </text>
            <text class="section-text indent-text">
              (1)事先获得您的明确授权同意;
            </text>
            <text class="section-text indent-text">
              (2)根据法律法规规定或政府部门、司法机关的强制性要求;
            </text>
            <text class="section-text indent-text">
              (3)为维护我们的合法权益,如查找、预防、处理欺诈或安全问题;
            </text>
            <text class="section-text indent-text">
              (4)为向您提供服务之目的,与我们的合作伙伴共享必要信息(如云服务提供商等)。
            </text>
            <text class="section-text">
              8.3 我们采用业界通行的安全技术和措施来保护您的个人信息安全,防止信息被未经授权的访问、使用或泄露。但由于互联网环境的特殊性,我们无法保证信息传输和存储的绝对安全。
            </text>
          </view>
        </view>

        <!-- 九、争议解决 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">九、争议解决</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              9.1 本协议的订立、执行、解释及争议解决均适用中华人民共和国法律(为本协议之目的,不包括香港特别行政区、澳门特别行政区和台湾地区的法律)。
            </text>
            <text class="section-text">
              9.2 因本协议引起的或与本协议有关的任何争议,双方应首先通过友好协商解决。协商不成的,任何一方均有权将争议提交至我们有管辖权的人民法院通过诉讼解决。
            </text>
          </view>
        </view>

        <!-- 十、其他条款 -->
        <view class="agreement-section">
          <view class="section-title">
            <text class="title-text">十、其他条款</text>
          </view>
          <view class="section-body">
            <text class="section-text">
              10.1 本协议中部分条款被认定为无效或不可执行的,不影响其他条款的效力,其余条款继续有效。
            </text>
            <text class="section-text">
              10.2 我们未行使或延迟行使本协议项下的任何权利,不视为对该权利的放弃。任何权利的放弃应以书面形式作出。
            </text>
            <text class="section-text">
              10.3 本协议条款的标题仅为阅读方便而设,不影响条款本身的含义和解释。
            </text>
            <text class="section-text">
              10.4 如您对本协议有任何疑问、意见或建议,可通过以下方式联系我们:
            </text>
            <text class="section-text indent-text">
              应用内:通过"我的-联系客服"页面提交反馈
            </text>
          </view>
        </view>

        <!-- 底部间距 -->
        <view class="agreement-footer">
          <text class="footer-text">自己练健身团队</text>
        </view>
      </view>
    </scroll-view>
  </view>
</template>

<script setup>
import { ref, onMounted } from 'vue';

// 滚动区域高度
const scrollHeight = ref(0);

// 计算滚动区域高度(屏幕高度 - 导航栏高度 - 状态栏高度)
const calcScrollHeight = () => {
  const systemInfo = uni.getSystemInfoSync();
  // 导航栏高度:状态栏高度 + 胶囊按钮高度(约44px + statusBarHeight)
  const statusBarHeight = systemInfo.statusBarHeight || 0;
  // uni-nav-bar 默认高度约 44px(不含状态栏,因 status-bar=true 状态栏由组件处理)
  const navBarHeight = 44;
  // 将 px 转换为实际可使用高度
  scrollHeight.value = systemInfo.windowHeight - statusBarHeight - navBarHeight;
};

onMounted(() => {
  calcScrollHeight();
});

// 返回上一页
const goBack = () => {
  uni.navigateBack({
    delta: 1,
    fail: () => {
      // 如果无法返回(比如直接打开该页面),跳转到首页
      uni.switchTab({ url: '/pages/xunji/xunji' });
    },
  });
};
</script>

<style lang="scss" scoped>
// 颜色变量
$bg-color: #1a1a1a;
$card-bg: rgba(255, 255, 255, 0.05);
$border-color: rgba(255, 255, 255, 0.08);
$text-primary: #ffffff;
$text-secondary: rgba(255, 255, 255, 0.75);
$text-tertiary: rgba(255, 255, 255, 0.45);
$highlight-color: #ff6b00;
$highlight-dim: rgba(255, 107, 0, 0.15);

.agreement-page {
  width: 100%;
  height: 100vh;
  background-color: $bg-color;
  color: $text-primary;
  display: flex;
  flex-direction: column;
}

.agreement-scroll {
  flex: 1;
}

.agreement-content {
  padding: 24rpx 30rpx 60rpx;
}

// 协议头部
.agreement-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40rpx 0 30rpx;
  border-bottom: 2rpx solid $border-color;
  margin-bottom: 30rpx;

  .agreement-title {
    font-size: 40rpx;
    font-weight: bold;
    color: $text-primary;
    letter-spacing: 2rpx;
    margin-bottom: 16rpx;
  }

  .agreement-date {
    font-size: 24rpx;
    color: $text-tertiary;
    line-height: 1.6;
  }
}

// 协议章节
.agreement-section {
  margin-bottom: 36rpx;

  .section-title {
    margin-bottom: 18rpx;
    padding-left: 14rpx;
    border-left: 5rpx solid $highlight-color;

    .title-text {
      font-size: 32rpx;
      font-weight: bold;
      color: $text-primary;
      letter-spacing: 1rpx;
    }
  }

  .section-body {
    padding-left: 8rpx;
  }

  .section-text {
    display: block;
    font-size: 28rpx;
    color: $text-secondary;
    line-height: 1.85;
    margin-bottom: 14rpx;
    text-align: justify;

    &.indent-text {
      padding-left: 30rpx;
    }

    .text-bold {
      font-weight: bold;
      color: $text-primary;
    }
  }
}

// 底部区域
.agreement-footer {
  text-align: center;
  padding: 40rpx 0 20rpx;

  .footer-text {
    font-size: 26rpx;
    color: $text-tertiary;
  }
}
</style>