<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>