<template>
  <div class="app-container home">
    <el-row :gutter="20">
      <el-col :sm="24" :lg="24">
        <p align="center">
          <img alt="logo" src="@/assets/images/ruoyi-flex-logo.png">
        </p>
        <h1 align="center">Ruoyi-Flex V5.2.0-SNAPSHOT</h1>
        <h2 align="center">Ruoyi-Flex是基于JDK21、Spring Boot V3.2.X+平台 前后端分离的Java快速开发框架</h2>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :sm="24" :lg="12" style="padding-left: 20px">
        <h3>Ruoyi-Flex后台管理框架</h3>
        <p>
          Ruoyi-Flex是基于RuoYi-Vue、RuoYi-Vue-Plus进行的扩展，集成MyBatis-Flex、JDK21、SpringBootV3.2.X+、Lombok、Sa-Token、Hutool、SpringBoot Admin、PowerJob、Vue3、element-plus、MinIO等优秀开源软件，准备作为未来5年软件开发的底座。本系统可以用于所有的Web应用程序，如网站管理后台、网站会员中心、CMS、CRM、OA、ERP等等，当然，您也可以对她进行深度定制，以做出更强系统。所有前端后台代码封装过后十分精简易上手，出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
        </p>
        <p>
          <b>当前版本:</b> <span>v{{ version }}</span>
        </p>
        <p>
          <el-tag type="danger">&yen;0.00 免费开源</el-tag>
        </p>
        <p>
          <el-button
            type="primary"
            icon="el-icon-cloudy"
            plain
            @click="goTarget('https://gitee.com/dataprince/ruoyi-flex')"
          >访问码云</el-button
          >

        </p>
      </el-col>

      <el-col :sm="24" :lg="12" style="padding-left: 50px">
        <el-row>
          <el-col :span="12">
            <h3>技术选型</h3>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6">
            <h4>后端技术</h4>
            <ul>
              <li>JDK21、SpringBoot V3</li>
              <li>Sa-Token</li>
              <li>JWT</li>
              <li>MyBatis-Flex、MyBatis</li>
              <li>Lombok</li>
              <li>...</li>
            </ul>
          </el-col>
          <el-col :span="6">
            <h4>前端技术</h4>
            <ul>
              <li>Vue3</li>
              <li>Vuex</li>
              <li>Element-Plus</li>
              <li>Axios</li>
              <li>Sass</li>
              <li>Quill</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 class="update-log">
          <template v-slot:header>
            <div class="clearfix">
              <span>联系信息</span>
            </div>
          </template>
          <div class="body">
            <p>
              <i class="el-icon-s-promotion"></i> 官网：<el-link
              href="https://gitee.com/dataprince/ruoyi-flex"
              target="_blank"
            >https://gitee.com/dataprince/ruoyi-flex</el-link
            >
            </p>
            <p>
              <i class="el-icon-user-solid"></i> QQ群：100956531
            </p>
            <p>
              <i class="el-icon-chat-dot-round"></i> 微信：<a
              href="javascript:;"
            >数据小王子</a
            >
            </p>
            <p>
              <i class="el-icon-money"></i> 支付宝：<a
              href="javascript:;"
              class="支付宝信息"
            >数据小王子</a
            >
            </p>
          </div>
        </el-card>
      </el-col>
      <el-col :xs="24" :sm="24" :md="12" :lg="8">
        <el-card class="update-log">
          <template v-slot:header>
            <div class="clearfix">
              <span>更新日志</span>
            </div>
          </template>
          <el-collapse accordion>
            <el-collapse-item title="V5.1.0 -- 2024-02-08 ruoyiflex-elementplus-ts前端更新">
              <ol>
                <li>首次提交ruoyiflex-elementplus-ts</li>
                <li>修正头像无法显示的问题</li>
                <li>升级element-plus依赖到V2.5.3</li>
                <li>代码生成支持:主子表</li>
                <li>补充完善mybatis的前端演示代码</li>
                <li>修正无法修改租户的问题</li>
                <li>导入子表类型视图对象</li>
                <li>更换默认头像</li>
                <li>禁止修改、删除默认租户</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="V5.0.0 -- 2024-01-10">
              <ol>
                <li>增加“租户套餐管理”、“租户管理”模块</li>
                <li>实现多租户功能</li>
                <li>实现乐观锁功能</li>
                <li>实现逻辑删除功能</li>
                <li>启用JAVA21虚拟线程功能</li>
                <li>启用JAVA21分代ZGC功能</li>
                <li>Ruoyi-FlexV5的PosgtgreSQL、MySQL数据库完整脚本</li>
                <li>修正部门排序字段错误</li>
                <li>升级spring-boot依赖到V3.2.1</li>
                <li>升级mybatis-flex依赖到1.7.7，去掉mybatis-spring依赖</li>
                <li>代码生成模块支持多租户、乐观锁、逻辑删除</li>
                <li>增加"客户端管理"模块</li>
                <li>完善“ruoyi-common-tenant“模块</li>
                <li>增加“ruoyi-common-encrypt”加密模块</li>
                <li>postgresql创建与mysql等效的的find_in_set函数</li>
                <li>同步ruoyi-vue-plus的2023-11-17至2023-12-23的更新</li>
                <li>简化代码，对于QueryWrapper的操作，不再重复判断条件</li>
                <li>修改yml文件，大部分配置代码放到参数文件中</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="V4.2.0 -- 2023-12-21">
              <ol>
                <li>更新jdk到21</li>
                <li>升级springboot到V3.2.0</li>
                <li>前后端仓库分离</li>
                <li>修正文件管理两个bug：不显示“上传人”的问题、图片无法预览问题</li>
                <li>修改数据库名称：由ry-vue修改为ruoyi-flex</li>
                <li>sys_menu菜单表结构修改、去掉主键自增 </li>
                <li>重构menu菜单模块，去掉xml中的sql语句</li>
                <li>代码生成更新：生成的sql文件去掉主键自增</li>
                <li>代码生成模块数据库表去掉主键自增</li>
                <li>代码生成模块重构</li>
                <li>升级依赖Redisson到V3.25.1，改进 JDK21 虚拟线程兼容性</li>
                <li>修改mysql数据库表的del_flag字段为smallint类型</li>
                <li>修改delFlag属性为Integer类型</li>
                <li>为方便入门，数据库登录用户、密码不再加密！</li>
                <li>增加多数据源演示（学生信息表的服务selectPage方法），默认关闭</li>
                <li>支持PostgreSQL数据库</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="V4.1.8 -- 2023-12-07">
              <ol>
                <li>注册全局数据填充监听器</li>
                <li>使用mybatis-flex重构ruoyi-vue的各模块mybatis代码</li>
                <li>新增保姆级开发文档：《Ruoyi-Flex-Guide.docx》</li>
                <li>新增基础服务类IBaseService及实现</li>
                <li>升级依赖版本：spring boot升级到V3.1.5，mybatis-flex升级到V1.7.5，sa-token升级到V1.37.0，powerjob升级到V4.3.6</li>
                <li>数据库表结构取消自增主键，使用雪花算法 </li>
                <li>升级用户导入：加入部门名称</li>
                <li>数据权限重构，去掉ruoyi-vue的注解写法</li>
                <li>升级前端，状态管理由vuex切换到pinia</li>
                <li>添加“文件管理”模块：将文件存储到MinIO、七牛、阿里、腾讯等OSS服务器上。</li>
                <li>重构“代码生成”模块，支持mybatis-flex，能够生成单表、树表、主子表的代码</li>
                <li>演示模块添加mybatis、mybatis-flex两种格式代码的单表、树表、主子表三种类型的演示程序</li>
                <li>同步ruoyi-vue-plus的2023-10-25至2023-11-14的更新
                  1）update 优化 排除powerjob无用的依赖 减少打包30M体积
                  2）fix 修复 代码生成 是否必填与数据库不匹配问题
                  3）update 优化 补全操作日志部门数据
                  4）update 优化 AddressUtils 兼容linux系统本地ip
                  5）fix 修复 普通角色编辑使用内置管理员code越权问题
                  6）update 优化 补全代码生成 columnList 接口参数注解缺失
                  7）fix 修复 外链带端口出现的异常
                  8）update 优化 更改默认日志等级为info 避免日志过多(按需开启debug)
                </li>
                <li>同步RuoYi-Vue的2023-10-24到2023-12-5的更新：
                  1）update ruoyi-ui/src/permission.js
                  2）优化数字金额大写转换精度丢失问题
                  3）修复字典表详情页面搜索bug
                  4）修复五级路由缓存无效问题
                  5）优化缓存监控图表支持跟随屏幕大小自适应调整
                  6）update fastjson2
                  7）升级oshi到最新版本6.4.8
                </li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.7 - 2023-09-05">
              <ol>
                <li>升级mybatis-flex到V1.6.0版本</li>
                <li>删除不再使用的quartz前端代码</li>
                <li>添加微信VIP交流群</li>
                <li>修改bug</li>
                <li>前端代码从vue2升级到vue3</li>
                <li>升级Element UI到Element-Plus</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.6 - 2023-08-26">
              <ol>
                <li>移除ruoyi-quartz模块</li>
                <li>整合PowerJob分布式任务调度与计算框架</li>
                <li>PowerJob接入SpringBoot Admin监控</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.5 - 2023-08-17">
              <ol>
                <li>删除原服务监控代码文件</li>
                <li>集成SpringBoot Admin监控软件</li>
                <li>SpringBoot Admin集成undertow</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.4 - 2023-08-16">
              <ol>
                <li>优化登录提示信息</li>
                <li>调整项目结构</li>
                <li>集成Sa-Token、Lombok、Hutool等软件</li>
                <li>SpringDoc模块与Sa-Token集成</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.3 - 2023-07-29">
              <ol>
                <li>集成SpringDoc，代替springfox</li>
                <li>将“系统接口”菜单设置为外链</li>
                <li>升级MyBatis-Flex到V1.5.3</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.2 - 2023-07-18">
              <ol>
                <li>web容器使用undertow来代替tomcat</li>
                <li>用hikariCP数据库连接池取代druid、用MyBaits-Flex内置多数据源取代dynamic-datasource动态数据源</li>
                <li>统一删除标记：del_flag设置为0代表存在、1代表删除，涉及部门、用户、角色三个模块</li>
                <li>重构ruoyi-common模块为ruoyi-common-core</li>
                <li>优化代码</li>
                <li>升级MyBatis-Flex到V1.5.0</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.1 - 2023-07-11">
              <ol>
                <li>优化代码</li>
                <li>完美兼容RuoYi-Vue代码生成，生成的单表、树表、主子表mybatis代码运行正常</li>
                <li>解决generator.yml中文乱码问题</li>
                <li>使用flatten-maven-plugin插件集中管理软件版本号</li>
                <li>同步RuoYi-Vue 2023-07-06更新</li>
                <li>参考RuoYi-Cloud，增加ruoyi-modules模块，调整项目结构</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.1.0 - 2023-07-06">
              <ol>
                <li>全局设置数据库表主键为雪花算法</li>
                <li>全局设置数据库逻辑删除数值：0代表正常，1代表删除</li>
                <li>从jdk8升级到jdk17、SpringBootV2升级到V3.0.8</li>
              </ol>
            </el-collapse-item>
            <el-collapse-item title="v4.0.0 - 2023-07-04">
              <ol>
                <li>Ruoyi-Flex前后端分离系统v4正式发布</li>
                <li>基于RuoYi-Vue v3.8.6进行了扩展</li>
                <li>引入mybatis-flex框架，与mybatis和平共处</li>
                <li>maven仓库从阿里切换到华为</li>
              </ol>
            </el-collapse-item>
          </el-collapse>
        </el-card>
      </el-col>
      <el-col :xs="24" :sm="24" :md="12" :lg="8">
        <el-card class="update-log">
          <div slot="header" class="clearfix">
            <span>捐赠支持</span>
          </div>
          <div class="body">
            <img
              src="@/assets/images/dataprince.jpg"
              alt="donate"
              width="330"
            />
            <span style="display: inline-block; height: 30px; line-height: 30px"
            >你可以请作者喝杯咖啡表示鼓励</span
            >
          </div>
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>

<script setup name="Index" lang="ts">
const version = ref('5.2.0-SNAPSHOT')
const goTarget = (url: string) => {
  window.open(url, '__blank');
};
</script>

<style scoped lang="scss">
.home {
  blockquote {
    padding: 10px 20px;
    margin: 0 0 20px;
    font-size: 17.5px;
    border-left: 5px solid #eee;
  }
  hr {
    margin-top: 20px;
    margin-bottom: 20px;
    border: 0;
    border-top: 1px solid #eee;
  }
  .col-item {
    margin-bottom: 20px;
  }

  ul {
    padding: 0;
    margin: 0;
  }

  font-family: 'open sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 13px;
  color: #676a6c;
  overflow-x: hidden;

  ul {
    list-style-type: none;
  }

  h4 {
    margin-top: 0px;
  }

  h2 {
    margin-top: 10px;
    font-size: 26px;
    font-weight: 100;
  }

  p {
    margin-top: 10px;

    b {
      font-weight: 700;
    }
  }

  .update-log {
    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>
