<template>
  <div class="app-container home">
    <el-row :gutter="20">
      <el-col :sm="24" :lg="12" style="padding-left: 20px;">
        <h1>{{ title }}</h1>
        <h3 style="padding-left: 15px">v{{ version }}</h3>
        <p>
          在目前Java生态的后台管理脚手架中，<el-link class="link-size" type="primary" icon="Link" @click="goTarget(ruoyi)">若依</el-link> 是非常优秀的。日常开发中一直在用。
          <br>
          但是参与运维之后，发现基于 Spring Boot 开发的若依，打包体积过大，运行时内存占用很高。这怎么能适应云原生时代呢? 所以一直在找解决方案。
          <br>
          终于发现了 <el-link class="link-size" type="primary" icon="Link" @click="goTarget(solon)">Solon</el-link>。
          <br>
          于是基于 Solon，重写了若依。
        </p>
        <el-button style="margin-top: 10px;" type="primary" icon="Cloudy" plain @click="goTarget(gitee)">访问码云</el-button>
      </el-col>
      <el-col :sm="24" :lg="12" style="padding-left: 50px;">
        <el-row>
          <el-col :span="12">
            <h2>技术选型</h2>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6">
            <h3>后端技术</h3>
            <ul>
              <li>Solon</li>
              <li>HikariCP</li>
              <li>Mybatis-Flex</li>
              <li>Redis</li>
              <li>Sa-Token</li>
              <li>Hutool</li>
              <li>...</li>
            </ul>
          </el-col>
          <el-col :span="6">
            <h3>前端技术</h3>
            <ul>
              <li>Vue</li>
              <li>Vue-Router</li>
              <li>Pinia</li>
              <li>Element-Plus</li>
              <li>Axios</li>
              <li>Js-Cookie</li>
              <li>...</li>
            </ul>
          </el-col>
        </el-row>
      </el-col>
    </el-row>

    <el-divider />

    <el-row :gutter="20">
      <el-col :xs="24" :sm="24" :md="12" :lg="8">
        <el-card>
          <template #header>
            <div>
              <span>更新日志</span>
            </div>
          </template>
          <div style="height: 260px; overflow: auto;">
            <el-collapse accordion>
              <el-collapse-item title="v2.1.1 — 2025/08/10">
                <ol>
                  <li>新增：前端Vue3版本的表单构建</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.1.0 — 2025/07/05">
                <ol>
                  <li>重要：项目名由”轻舟“更换为”若依“。包含项目地址的更改、包名的更改等</li>
                  <li>重要：Gradle版只保留后端，前端和文档跟`Maven版`通用</li>
                  <li>优化：quartz数据源连接池改为Hikaricp，在没有正确配置数据源地址的时候能快速报错</li>
                  <li>优化：sa-token序列化方式由fastjson2改为snack3</li>
                  <li>solon 升为 v3.3.3</li>
                  <li>mybatis-flex 升为 1.10.9</li>
                  <li>sa-token 升为 1.44.0</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.5 — 2025/05/20">
                <ol>
                  <li>修复：quartz表名小写导致的在Linux上运行报错的问题（Linux区分大小写）</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.4 — 2025/05/16">
                <ol>
                  <li>优化：页面的确定按钮防止多次点击</li>
                  <li>优化：登录密码不会传输到前台</li>
                  <li>优化：修改密码时加密密码</li>
                  <li>vue 升为 3.5.13</li>
                  <li>vue-router 升为 4.5.0</li>
                  <li>pinia 升为 2.3.1</li>
                  <li>vite 升为 4.5.14</li>
                  <li>axios 升为 0.30.0</li>
                  <li>element-plus 升为 2.9.9</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.3 — 2025/04/29">
                <ol>
                  <li>新增：缓存监控页面</li>
                  <li>优化：调整sa-token集成方式、数据持久化集成方式及序列化方式</li>
                  <li>优化：调整redisson序列化方式</li>
                  <li>优化：缓存中的登录用户信息不保存用户的登录密码</li>
                  <li>优化：替换过时注解</li>
                  <li>solon 升为 v3.2.1</li>
                  <li>sa-token 升为 1.41.0</li>
                  <li>redisson 升为 3.45.0</li>
                  <li>hutool 升为 5.8.36</li>
                  <li>jackson 升为 2.18.2</li>
                  <li>lombok 升为 1.18.38</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.2 — 2025/04/16">
                <ol>
                  <li>重要：新增定时任务持久化相关的数据表（qingzhou_boot.sql）</li>
                  <li>重要：调整数据源配置方式（app-dev.yml）</li>
                  <li>重要：@Db 注解替换为 @Inject，@DynamicDs 注解替换为 @UseDataSource</li>
                  <li>新增：定时任务持久化及管理页面</li>
                  <li>优化：Mybatis-Flex初始化配置方式</li>
                  <li>优化：替换过时方法</li>
                  <li>修复：按照时间段条件查询不生效的问题</li>
                  <li>修复：在线用户列表分页无效的问题</li>
                  <li>solon 升为 v3.0.10</li>
                  <li>mybatis-flex 升为 1.10.7</li>
                  <li>redisson 升为 3.39.0</li>
                  <li>hutool 升为 5.8.35</li>
                  <li>jackson 升为 2.18.1</li>
                  <li>lombok 升为 1.18.36</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.1 — 2025/02/12">
                <ol>
                  <li>修复：验证码开关变量名不一致的问题</li>
                </ol>
              </el-collapse-item>
              <el-collapse-item title="v2.0.0 — 2025/01/21">
                <ol>
                  <li>新增：Vue3版本的前端</li>
                  <li>新增：在线用户监控功能</li>
                  <li>新增：登录设备类型（从PC端登录、从APP端登录）</li>
                  <li>优化：统一返回结果和自定义异常抛出（改用 throw new ServiceException("xxx为空");）</li>
                  <li>优化：前端亿点点改动：“更符合Vue规范”（比如自定义指令使用短横线命名、全局方法统一使用$开头、优化目录结构等等）；“更符合Eslint规范”（比如统一使用单引号、去掉句尾分号等等）</li>
                  <li>修复：超级管理员用户不可进行任何操作</li>
                  <li>修复：超级管理员角色不可进行任何操作</li>
                  <li>solon 升为 v3.0.2</li>
                  <li>mybatis-flex 升为 1.9.8</li>
                  <li>sa-token 升为 1.39.0</li>
                  <li>hutool 升为 5.8.32</li>
                </ol>
              </el-collapse-item>
            </el-collapse>
          </div>
        </el-card>
      </el-col>
      <el-col :xs="24" :sm="24" :md="12" :lg="8">
        <el-card style="width: 240px;">
          <template #header>
            <div>
              <span>捐赠支持</span>
            </div>
          </template>
          <div style="height: 260px;">
            <img style="width: 100%;" src="@/assets/images/pay.jpg" alt="donate">
            <span style="display: inline-block; height: 30px; line-height: 30px;">你可以请作者喝杯咖啡表示鼓励</span>
          </div>
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>

<script name="Index" setup>
import { title } from '@/store/modules/settings'

const version = ref('2.1.1')
const gitee = ref('https://gitee.com/opensolon/ruoyi-solon')
const ruoyi = ref('https://www.ruoyi.vip')
const solon = ref('https://solon.noear.org')

function goTarget(url) {
  window.open(url, '__blank')
}
</script>

<style lang="scss" scoped>
.home {
  font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  color: #676a6c;
  overflow-x: hidden;

  h1 {
    display: inline-block;
    margin-top: 0px;
    font-size: 26px;
    font-weight: 400;
  }

  h3 {
    display: inline-block;
    margin-top: 0px;
  }

  p {
    margin-top: 0px;
  }

  .link-size {
    font-size: 13px;
  }

  ul {
    padding: 0;
    margin: 0;
  }

  ol {
    display: block;
    list-style-type: decimal;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding-inline-start: 40px;
  }
}
</style>
