# CHANGE LOG ## 4.1.4 该版本后,不会做破坏性更新了。版本功能趋于稳定,后续更新不会那么频繁了。。。。。 ### Feats - 新增版权信息开关 - 做了一些小小的细节更新 ### Fixes - 修复获取部分元素高度不准确导致布局一些小问题 - 修复底部版权信息展示问题 ## 4.1.3 ### Feats - 新增切换路由自动取消上一路由所有请求。但是可以通过配置 `useRequest` 与 `request` 方法的 `cancelConfig.needCancel` 属性控制是否需要自动取消该请求。该配置默认为 `true`,当配置为 `false` 时,则不会被取消器取消 ```ts import { useRequest, useHookPlusRequest } from '@/axios/index' // useRequest const { data, loading, run } = useRequest<{ title: string }>( { url: 'https://jsonplaceholder.typicode.com/todos/1', method: 'get', cancelConfig: { needCancel: true, }, }, { manual: true, }, ) // request request({ url: 'https://jsonplaceholder.typicode.com/todos/1', method: 'get', cancelConfig: { needCancel: true, }, }) ``` - `localConfig` 新增配置类型保护 - 将原 `AppComponent` 组件包移动至 `app-components` 包中,并且按照其功能拆分为 `sys` `provider` - 现在将异步注册 `vue-router` - `RayChart` 组件新增 `macarons` 主题。现在支持便捷的自定义主题,在[主题编辑器](https://echarts.apache.org/zh/theme-builder.html)编辑主题后,下载主题(json)放置于对应主题包中即可被自动注册 - 兼容 `yarn` `npm` 包管理器的 `manualChunks` 配置 ## 4.1.2 ### Fixes - 紧急修复由于路由配置错误,导致无限重定向至首页问题 ## 4.1.1 ### Feats - 取消模板默认的 Transition loading 动画,采用 NSpin 组件实现 - 新增 router meta env 属性,可以根据当前构建环境判断显示、隐藏菜单项 ### Fixes - 修复页面切换闪烁问题 - 修复刷新页面方法执行后抛出 vue 相关的错误 ## 4.1.0 ### Feats - 升级 vue 版本为 v3.3.4。并且配套升级了模板的一些插件 - RayTransitionComponent 组件加入 Suspense 组件的支持(试验性加入,可能会移除) - 更新部分组件的事件触发方式,类似 onUpdateValue、onupdate:value 方法改为 props 定义而非 emit(受控、非受控) - 更新路由切换动画的透明度,视觉效果更友好 - App.tsx 组件内部逻辑抽离为 AppStyleProvider。将一些组件存放位置放在 AppComponents 文件包中 - 新增 useRequest useHookPlusRequest 两个请求 hook,具体使用方法看示例(基于 vue-hook-plus useRequest 实现) - useRequest 支持直接配置请求与配置请求相关的配置(缓存、节流、防抖等) - useHookPlusRequest 支持接收一个 Promise 返回值的方法,可以用来包裹 axios 方法然后进行请求配置 ```ts import axiosInstance from '@/axios/instance' import { useRequest, useHookPlusRequest } from '@/axios/index' // 使用 useRequest const { data, loading, run } = useRequest<{ title: string }>( { url: 'https://jsonplaceholder.typicode.com/todos/1', method: 'get', }, { manual: true, }, ) // 使用 useHookPlusRequest export const getWeather = (city: string) => { return axiosInstance({ url: `https://www.tianqiapi.com/api?version=v9&appid=23035354&appsecret=8YvlPNrz&city=${city}`, method: 'get', }) } const { data, loading, run } = useHookPlusRequest(getWeather, { throttleWait: 1000, }) // 手动更新请求参数 run('some value') ``` ## 4.0.3 ### Feats - 弃用 yarn 包管理器,使用 pnpm 作为模板包管理器 - 新增路由切换时的内容区域动画 - 更新了一些组件名称 - 更新了自定义指令创建方式,改为函数式 ### Fixes - 修复 axios 模块的一些类型错误 - 剔除了一些无用方法,重写了一些方法 - 修复强制跳转父级菜单地址导致错误页问题 ## 4.0.2 ### Feats - 新增平级路由配置(router meta)配置项,sameLevel 允许你将子路由标记为平级模式,跳转时不会出发菜单、标签页更新,仅会更新面包屑 - 修改路由菜单显示、隐藏逻辑,现在仅会针对权限的验证匹配选择是否加入菜单列表中 - 更新 setupAppMenu 方法触发时机(Layout => menu store),现在将在 pinia menu store 初始化时触发 App Menu 更新 - 更新了 utils 包中的一些方法,进行了一些重写和重命名 - GlobalSearch 组件支持上下按键切换、回车键选择 - 整合 router 模块的一些包,让它看起来更合理一点 - 剔除 styles 包中一些不合理的样式模块 - 补充了一些注释与说明文档 ### Fixes - 修复不能正确渲染浏览器标题问题 - 修复初始化模板菜单函数与菜单更新函数重复执行一些方法的问题 - 修复指令示例变量绑定错误导致示例错误问题 - 修复路由白名单失效 bug ## 4.0.1 ### Feats - 更改自定义路由暴露形式(由变量暴露改为方法获取) - 模板所有方法进行检查,重命名部分方法(使其更加贴切其逻辑) - 部分逻辑进行重写,使代码更容易阅读与维护 - 模板类型进一步完善 ### Fixes - 修复了内存高占用问题(路由模块) - 修复类型导入错误问题 ## 4.0.0 ### Feats - 重构 types 包设计,现在的类型包更加清晰 - 重构 utils 包设计,该包下的所有 hook 提供了更加友好的类型提示 - RayIframe 组件新增 lazy 属性 - 新增 v-disabled 指令 - demo 页面展示优化 ### Fixes - 修复一些已知的 bug ### 补充 > 这次花了一点时间,将模板进行重新梳理,进行了一些很大的破坏性更新改动。核心重点是 types 包与 utils 包的重大更新。不过只是做了初步的一些大方向的更新,后续的细节更新还在继续。。。 ## 3.3.7 ### Feats - 新增全局指令(目前仅有:v-copy、v-debounce、v-throttle) ### Fixes - 修复错误的插件命名,导致项目构建失败(viteComponents) ## 3.3.6 ### Feats - 重写 axios interceptor 方法。现在逻辑更加清晰,并且支持请求错误、响应错误处理。补充了两个工具函数 - MenuTag 支持动态更新所在位置 - 修复了鉴权方法的 bug - 更新了 router permission 方法(路由守卫) - 补充了一些模块文档 - 搜索支持以菜单模块的 icon 进行渲染,如果为空则以 icon table 默认填充 - 重写锁屏功能,现在将锁屏逻辑与解锁逻辑拆分为两个组件 ### Fixes - 修复选中所搜结果后,菜单不能默认展开 bug ### 补充 > 文档拖欠太多了,我补不回来了,就。。。算了吧,我在每个关键模块补充了对应的 md 说明文档,凑合一下吧。真希望有一个好心人帮补充文档。 ## 3.3.5 ### Feats - Router Meta 属性支持自定义图标,不再局限于 RayIcon,支持自定义图标 - 更改部分组件默认值,默认值统一为 `null` - 调整 validRole 方法逻辑,将该方法以前逻辑拆分为 validRole 与 validMenuItemShow 两个方法 - 新增使用手册 ### 补充 > 由于文档已经拖更很久,所以补充一个使用手册。最近太忙了,一直忙着更新完善模板本身,文档的事情暂时没有时间去维护更新,所以与模板断层太久。。。后续有时间肯定会补上!!! ## 3.3.4 ### Feats - 新增 RayIframe 组件 - 同步更新 `naive-ui` 版本至最新版本(2.34.3 => 2.34.4) - 支持更多 appConfig 配置 ### TODO - MenuTag: 切换页面时, 同步更新该标签的所在位置 ## 3.3.3 ### Feats - 新增五个计算方法(解决精度问题) - 解决一些小问题 ## 3.3.1 ### Feats - 新增 useAppTheme sass 方法 ```ts useAppTheme key 类型: 'dark' | 'light' ``` ```scss // 暗色主题 .demo--dark { @include useAppTheme('dark') { color: #ffffff; } } // 明亮主题 .demo--light { @include useAppTheme('light') { color: #000000; } } ``` - 一些细节优化 - axios 拦截器与 axios instance 进行独立(现在不再 instance.ts 文件中编写拦截器相关逻辑),拦截器逻辑放在 inject 包中 - 一些 bug 修复 ## 3.3.0 ### 特征 - 取消 RootRoute 属性暴露全局 - 新增 Route Meta keepAlive 配置开启页面缓存(可以在 AppConfig APP_KEEP_ALIVE 中进行缓存的配置管理) - 回退使用自动导入路由模块方式,具体使用方法查看 [路由配置](https://github.com/XiaoDaiGua-Ray/ray-template/blob/main/src/router/README.md) - 新增 Route Meta order 配置,配置菜单顺序 - 新增 useVueRouter 方法,让你在 setup 环境之外使用 router hook - 补充引入了一些 eslint 规则 - 支持更多 appConfig 配置 ### 补充 - 后续该模板还会持续维护,会尽可能多的支持更多业务场景 - 最近破坏性更新很多,发布比较频繁,后续应该不会有这么大的破坏性更新。核心重点会放在模板整体的健壮性、可维护性上 - 未来希望模板拆分为一个高拓展性的工程,积木式管理项目,让项目模块之间尽可能的解耦。让模板有更好的拓展性,让你在使用时,可以根据自身业务需求进行拓展(当然,我希望你能以项目的基本维护原则延续) ## 3.2.3 ### 特征 - 新增锁屏功能(值得注意的是,锁屏解锁后会刷新当前 RouterView 区域,因为在处于锁屏状态时,会自动销毁所有的操作页面。可以理解为是一个 v-if 操作行为) - 新增 dayjs hook,支持国际化与切换 - 支持更多 appConfig 配置 - 调整 setupAppRoute 触发时机(现在会在 layout 渲染阶段触发) - 补充了新的组件分包 AppComponents,存放该系统的一些组件(会与系统进行一些深度绑定,例如 AppAvatar 组件依赖系统数据) ### 补充 - 锁屏功能的设计并不理想,后期会进行破坏性更新。锁屏触发条件与管理方式目前并不理想,管理有点混乱 - 后期会考虑补充 keepAlive 功能。目前没有实现是因为该功能实现的话,需要将所有路由提升为顶层路由(这是 KeepAlive 组件限制),目前并未实现该功能。后期会在权衡后增加该功能,实现时会在 RayTransitionComponent 进行拓展补充 ## 3.2.2 ### 特征 - 移除 amfe-flexible 插件,改用为 postcss-px-to-viewport 作为适配插件 - 支持更多 appConfig 配置 ## 3.2.1 ### 特征 - 调整系统文件分包,现在结构更加合理、更加清晰 - 新增 src/appConfig 配置入口,配置系统(还在持续补充中...) - vite 版本更新到 4.3.8 ## 3.1.8 ### Fixes - 修复路由切换不能复位容器位置问题(让可视区域置顶) ### Feats - 新增 useI18n hook 方法 - 手动补充 AppRouteRecordRaw、AppRouteMeta 类型 - 重新拆分 Layout 入口文件 - 重新指定组件暴露方法、属性 - 修改国际化管理方式,现在支持自动合并管理与结合 i18n-ally 使用。并且支持 unplugin-vue-i18n 构建,提高性能 ## 3.1.7 ### Fixes - 修复默认获取容器可视区域高度问题 - 修复登陆页虚线高度问题 ### Feats - 修改 Menu 菜单过滤逻辑,现在如果权限不匹配或者设置了 hidden 属性,则会被过滤掉 - 移除 $activedColor 全局 sass 变量,使用 --ray-theme-primary-color 替代 - 新增路由菜单检索功能 - 移除 App.tsx 中同步主题方法,改为使用 cfg 配置并且使用 ejs 注入 - 移除 MenuTag 默认主题色,现在会以当前主题色为主色 ## 3.1.6 ### Fixes - 修复移动端登陆页显示问题 - 改进了一些方法逻辑的问题 - 修改移动端自适应配置方案(现在使用 postcss-px-to-viewport),默认不启用 - 修复 RayTable 实例方法暴露错误 - 修复 sideBarLogo.icon 为空时警告问题,现在未配置该属性则不会渲染图标 - 修复 RayTable 演示页面 action 方法失效问题 ### Feats - 新增加载动画 - 现在可以直接配置首屏加载动画一些信息(cfg.ts) - 新增对于 ejs 支持 - 补充一些细节注释 - 新增 RayChart 组件 loading、loadingOptions 属性配置 - 新增反转色模式 - 修改 Menu 菜单过滤逻辑,现在如果权限不匹配或者设置了 hidden 属性,则会被过滤掉 ## 3.1.5 ### Fixes - 配置 `tsconfig.json` 中 `ignoreDeprecations` 属性,消除 `ts5.0` 破坏性配置更新警告 ### Feats - 基于 `onlyoffice` 新增 `Office` 功能(待完成...) - 重写 `AxiosInstance` 类型 - `src/types` 分包更加清晰 - 将主色调同步至 `body`,默认同步 `cfg.primaryColor` 值 - 登陆页一些修改(现在支持简单的响应式) - 将一些设置型功能抽离为组件 - 调整同步主题色执行时机 ## 3.1.4 ### Fixes - 修复主题色切换后,点击、鼠标滑入主题未被修改问题 - 修复 menu store 菜单切换可能会重复执行问题 ### Feats - 补充 MenuTag 标签页功能,现在支持丰富的关闭操作与右键菜单激活操作菜单功能 - 新增配置全局重定向地址配置(详情见:[cfg](https://github.com/XiaoDaiGua-Ray/xiaodaigua-ray.github.io/blob/main/cfg.ts)) - 补充了一些不值一提的小东西 ## 3.1.3 ### Fixes - 修复菜单栏、标签页栏 border 显示问题 ### Feats - RayTable 组件新增全屏、尺寸调整功能 - 新增 css 预处理全局注入辅助函数。详情看 [mixinCSS](https://github.com/XiaoDaiGua-Ray/xiaodaigua-ray.github.io/blob/main/cfg.ts) - RayTable 组件部分提示文案修改 - body 新增当前主题色 class 标识(dark: ray-template--dark,light: ray-template--light),便捷主题切换配置 ## 3.1.2 ### Fixes - 修复 DatePicker 组件国际化部分失效问题 ### Feats - 修改 demo 页面展示 - 修改 RayCollapseGrid、RayTable 组件为默认不展示 border ## 3.1.1 ### Fixes - 修复国际化语言包模块合并处理不能正常合并问题 - 修复国际化切换时,面包屑、标签页不能正常切换 ### Feats - 新增面包屑 - 支持国际化语言包分包管理(但是,依旧是合并到一个文件中,所以需要注意 key 的管理) - 新增国内预览地址