93 KiB
5.2.4
Feats
- 新增
.cursorrules文件,用于配置cursor的规则 RChart组件相关- 新增
watchDeep配置项,允许配置是否深度监听options配置项,在某些场景下不希望监听options配置项的变动时,可以配置该项为false - 修改自定义样式名,由
--r前缀改为--r前缀
- 新增
- 优化
RTable,RTablePro组件与相关hook- 移除未使用的导入(
DataTableInst、ExtractPublicPropTypes、emit) - 将
contextMenuSelect中的状态更新提前 - 提取
handleContextMenu函数,避免重复创建 - 优化
combineRowProps的条件判断 - 提取
renderDefaultToolOptions为独立函数 - 简化
tool函数的条件判断 - 移除不必要的
.bind(this)调用 - 如果未启用
onUpdateColumns或onUpdate:columns事件(也就是双向绑定columns配置项),则认为不需要渲染C组件,因为有时候你可能希望columns配置项可能就是写死的,不需要动态修改 - 使用
nextTick优化列配置更新(C组件) - 减少函数重复创建
- 优化条件判断逻辑
selectKeys(keys: RowKey[])- 批量选中toggleKey(key: RowKey)- 切换选中状态isKeySelected(key: RowKey)- 检查是否选中- 新增
autoDeleteDuplicateKeys配置项,允许自定义是否移除重复请求key
- 移除未使用的导入(
usePagination方法相关- 修改
getCallback方法返回值类型,现在会自动推导回调函数类型(仅在默认传递回调函数时有效) - 修改
getCallback方法使用方式,改为函数调用
- 修改
RBarcode组件相关- 新增
responsive配置项,允许配置是否启用响应式尺寸,当容器大小变化时自动重新渲染条形码,但是该属性让width与height配置项失效
- 新增
- 新增
.vscode配置规则,默认强制使用prettier格式化代码,并且使用eslint检查代码规范 - 移除所有
--ray的前缀为-r - 统一自定义组件的文件分包格式
- 标记自定义
useModal方法为遗弃方法 useAxiosInterceptor更名为axiosInterceptor方法,旧方法名不符合语义化,现在更加语义化- 优化
useElementFullscreen方法 - 调整
MenuTag组件样式,现在会根据主题色自动适配关闭按钮颜色
Fixes
- 修复
useTablePro.print方法无效的问题 - 修复
vitest插件启动会提示失败的问题
5.2.3
Feats
- 更新依赖为主流版本
RTablePro组件相关- 新增
takeoverAutoHeight配置项,允许接管表格的流体高度渲染,一旦启用该属性,flexAutoHeight属性将强制启用 - 新增
collapse插槽,配合takeoverAutoHeight配置项使用,允许自定义表格常见的顶部操作区域,当然也可以做点其他的,但是该插槽仅在启用takeoverAutoHeight配置项时生效该属性可以让流体高度功能使用更加优雅,有点用处。
- 新增暴露
setPage,setPageSize,getPage,getPageSize方法
- 新增
naive-ui最新版本有依赖问题,暂时回退升级echarts更新至6.0.0版本,并且完成适配
Fixes
- 修复
usePagination.resetPagination方法在重置分页时,没有正确触发pageChange,pageSizeChange回调函数的问题 - 修复
resetTablePagination方法在重置分页时,没有正确触发onTablePaginationUpdate回调函数的问题
5.2.2
Feats
RForm组件相关- 新增
submitWhenEnter配置项,允许在按下回车键时自动触发表单的校验,如果校验成功则会自动触发onFinish事件 - 新增
onFinish配置项,允许在表单校验成功后自动触发的事件 - 新增
autocomplete配置项,允许配置表单的自动完成功能,默认配置为off - 新增
loading配置项,允许配置表单的加载状态 - 新增
loadingDescription配置项,允许配置表单的加载状态的描述
- 新增
useForm相关- 新增
validateTargetField方法,允许验证指定表单项的规则 - 初始化方法现在支持传入函数,允许动态获取表单的初始化值与规则
formModel方法现在会默认联合Recordable类型,获取初始化类型中未获取到的类型时,默认推到为any类型- 新增了
formConditionRef属性,现在可以在内部解构获取一个ref包裹的响应式初始化表单对象值 - 新增了
updateFormCondition方法,允许更新表单的值,该方法会覆盖初始化值
- 新增
- 更新依赖为主流版本
- 新增
unocss原子化样式库,但是不推荐全量使用,仅作为一些简单的样式片段使用,否则在调试的时候将会是灾难新增
unocss后,在使用ProTable组件的流体高度最外层父元素配置时,可以便捷的配置h-full即可。
5.2.1
Feats
RTablePro组件相关- 新增
runAsyncTableRequest方法,与runTableRequest方法功能一致,但是返回Promise对象 - 现在不允许使用
useTemplateRef方法注册dom模板引用,约定强制使用useTablePro方法的register方法注册hook使用相关方法
- 新增
useTablePro方法新增getTableProConfig方法,与useTable方法的getTableConfig方法功能一致,获取RTablePro组件额外注入配置useTable方法新增getTableConfig方法,获取RTable组件额外注入配置- 更新包为主流版本
vue-router因为在 4.4.1 版本中有破坏性的更新,所以在jsx函数式组件使用this.$route,this.$router会提示类型报错,所以现在强制约定需要使用useRoute,useRouter方法显示的声明与使用- 更新
naive-ui版本至2.42.0 - 更新
vue版本至3.5.17
useForm方法新增reset方法,允许重置表单值,该方法依赖useForm方法的初始化formModel参数,所以请确保初始化formModel参数
5.2.0
一些破坏性更新,请谨慎更新。
Feats
- 更新
vue版本至3.5.16 - 更新
vite版本至6.3.5 RTablePro组件相关runTableRequest方法现在支持传递reset参数,配置是否重置分页请求runTableRequest方法新增excludeParams配置项,允许排除指定的请求参数onTablePaginationUpdate方法参数返回值由返回函数改为直接返回值- 新增
paginationPrefix配置项,允许自定义分页器前缀,在国际化需求可能会有用 - 新增
flexAutoHeight配置项,默认关闭,允许配置表格是否自动继承高度,但是要结合css flex属性使用
如果你是使用
NFlex组件结合RTablePro或者RTable组件使用,需要配置Flex组件的vertical属性,并且设置class为flex-vertical,即可便捷实现该效果。否则你需要设置css flex相关属性(可以参考 Demo2)的示例。
import { RTablePro } from '@/components'
import { NFlex } from 'naive-ui'
const Demo1 = () => {
return (
<NFlex vertical class="flex-vertical">
<RTablePro flexAutoHeight />
</NFlex>
)
}
const Demo2 = () => {
return (
<div
class="flex-vertical"
style="height: 100%; display: flex; flex-direction: column;"
>
<RTablePro flexAutoHeight />
</div>
)
}
- 新增
getDateByNaiveDatePicker方法,便捷获取naive-ui的DatePicker组件的日期值 Recordable类型新增symbol,number类型作为key支持RCollapse组件相关- 默认配置
responsive配置项为screen响应模式 - 默认配置
cols配置项为4 xs:1 s:2 m:2 l:4 xl:4 2xl:6,虽然目前的预设已经足够使用,但你也可以高度自定义需求
- 默认配置
types包- 新增
GlobalDataTableColumns类型,用于声明全局DataTableColumns类型 - 新增
GlobalRecordable类型,用于声明全局Recordable类型
- 新增
Fixes
- 修复
RTablePro组件print方法打印内容错误的问题
5.1.0
Feats
- 更新
vite版本至5.3.3
Fixes
- 修复
chunksCopilot方法判断不准确导致node_modules库被拆分到hooks分包重复的问题
5.0.10
Feats
RDraggableCard组件现在不会在抛出获取dom失败的异常,因为可能存在异步组件加载的可能RModal,useModal方法,移除dad相关所有配置,使用draggable配置项替代- 刷新的样式现在会跟随主题变化
- 锁屏密码现在会进行加密存储,并且会进行校验处理了
- 新增
decrypt,decrypt方法,放置于utils/c包中
Fixes
- 修复因为错误的注册全局事件,导致事件污染的问题,但是默认的
ctrl + k,cmd + k快捷键依旧保留为全局按键
5.0.9
Feats
RDraggableCard组件- 新增
restrictionElement配置项,允许设置拖拽限制元素 - 新增
padding配置项,允许配置元素初始化位置的间隔值 defaultPosition配置项新增top-left,top-right,bottom-left,bottom-right配置项,允许配置元素初始化位置
- 新增
RTablePro组件- 现在会自动删除重复的请求参数
- 暴露
resetTablePagination方法,允许手动重置表格分页
logout方法现在会在执行的时候,清空所有的router-route- 更新依赖为主流版本
5.0.8
Feats
- 修改
menuTagOptions的缓存方式,现在会缓存至sessionStorage中,兼容可能多系统版本部署与多开系统页面标签页冲突的问题 - 新增
RDraggableCard组件 - 更新
vite版本至6.0.4
Fixes
- 修复
updateObjectValue方法对于对象值判断不准确的问题 - 修复
SettingDrawer组件初始化时,没有正确初始化settingStore的问题 - 修复
RTable组件在未设置title与tool为false时,导致headerStyle样式会高一些的问题
5.0.7
Feats
- 更新
vue版本至3.5.13 - 更新
vite版本至6.0.3 - 更新
naive-ui版本至2.40.3 - 更新包依赖为主流依赖
- 更新
eslint版本至9.11.0,并且同步修改eslint相关配置方式,使用eslint.config.mjs文件替代 - 更新默认
node版本至22.11.0 RCollapseGrid组件新增actionSpan配置项,配置操作区域列数usePagination方法新增pageChange,pageSizeChange回调函数,允许在更新分页页码与每页条数的时候,执行自定义回调;用于取代被移除的onUpdatePage,onUpdatePageSize方法- 移除
appNaiveUIThemeOverridesCommon配置项,现在统一使用appNaiveUIThemeOverrides配置项 - 优化整体风格样式
Fixes
- 修复
useDomToImage方法的类型推导问题 - 修复主题切换时,
naive-ui主题色覆盖不生效的问题
5.0.6
Feats
- 新增
useChartProvider方法,允许注入RCharts组件配置 - 更新
echarts版本至5.5.1 - 更新
vue版本至3.5.13 - 更新
@vueuse/core版本至11.2.0 - 修改
SettingDrawer组件的defaultOptions配置项管理方式,现在迁移至store.setting包中 - 重构
cache工具模块,更有好的类型推导、更少的代码量 - 重构
precision工具模块,更好的类型推导、更少的代码量 - 重写
updateObjectValue方法,现在类型提示更加准确 - 全局使用
useTemplateRef,shallowRef方法替代ref注册模板引用,减少不必要的响应式代理 - 优化
MenuTag组件的关闭按钮样式 LockScreen组件新增头像展示AppAvatar组件现在默认获取avatar字段为空的时候,展示名字的首字- 优化
UnlockScreen组件样式,现在会根据主题自动调整背景颜色 - 优化内容区域过度动画效果
Fixes
- 修复
404页面【返回】按钮不能准确返回的问题 - 修复
usePagination.getCallback方法类型丢失问题;修复该方法获取实时回调不准确的问题 - 修复初始化时,菜单滚动条不能准确滚动到当前激活项的问题
- 修复
UnlockScreen组件在白色主题下,导致样式显示差异问题,现在统一为黑色主题配置覆盖 - 修复
LockScreen组件在退出锁屏时,没有及时更新localStorage缓存的问题 - 修复
setupDayjs初始化不准确的问题
5.0.5
Feats
- 新增
GLOBAL_CLASS_NAMES配置项 - 新增
canSkipRoute方法,用于初始化系统菜单时,自动获取可跳转的路由,避免权限系统列表中无权限路由跳转导致异常的问题 - 优化
useElementFullscreen方法的过渡效果 useElementFullscreen新增isFullscreen属性,标识当前元素是否处于网页全屏状态
Fixes
- 修复锁屏逻辑问题
- 修复菜单有时候不能正常的展开被激活项的问题
- 修复
useSiderBar的close问题
5.0.4
将 ts 版本与 eslint 解析插件版本更新至最新版,并且同步解决了以前历史遗留的一些问题。
并且,在该版本做了一些全局注入方式调整,请谨慎更新。
Feats
- 移除
vite-plugin-compression插件,使用rollup-plugin-gzip代替 - 更新
@vitejs/plugin-vue-jsx版本至4.0.1 - 优化注释
- 默认设置
ContentWrapper的content-wrapper内容展示区域的宽高为100%,继承父容器的宽高;该样式会自动的计算,也就是说会自动的适配不同尺寸的屏幕输出与判断是否显示FeatureWrapper,FooterWrapper - 更新
@typescript-eslint/eslint-plugin,@typescript-eslint/parser版本至8.13.0 - 更新
typescript版本至5.6.3 - 更新
vue-tsc版本至2.1.10 - 更新
pnpm包管理器版本至9.12.3 - 新增
RFlow基础流程图组件(后期有时间会逐步加强该组件) - 移除
useElementFullscreen方法currentWindowSize返回值 - 新增
--html-height,--html-width的全局css var属性,实时获取浏览器的尺寸 - 样式注入现在由注入至
body改为注入至html,避免teleport传送至body外的元素不能使用全局样式的问题 useBadge.show方法新增extraOption配置项,允许在显示badge到时候,传入额外的options配置项
Fixes
- 修复菜单折叠后,
SiderBarLogo标题样式丢失问题 - 修复
useModal因为Omit原因导致类型丢失问题,现在直接使用ModalProps作为类型 - 修复
useModal创建全屏card的时候,内容区域边距样式被覆盖的问题,现在会尊重原有的card样式
5.0.3
个性化配置能力再次提升。
Feats
SettingDrawer组件重构
5.0.2
Feats
- 暴露
setupAppMenu方法,提供自定义菜单渲染时机能力
Fixes
- 修复
MenuTag右键菜单不能被选中的问题 - 修复
Menu设置iconSize,iconCollapseSize等属性,不能及时刷新渲染的问题,现在新增手动刷新操作按钮
菜单渲染是很复杂、很耗时的操作,所以在权衡以后还是考虑使用手动刷新操作方式更新菜单状态。
5.0.1
本次更新灵感来自于 vben admin 5 项目。
Feats
- 更新了
Menu,MenuTag,SiderBar样式细节 - 调整
components,components-pro分包,现在都统一到components下,以base,pro进行区分,避免导出导入麻烦 MenuTag新增了一些操作方式SiderBarLogo样式调整
Fixes
- 新增
tableFlexHeight配置项属性修复RTable组件因为不再透传至Table导致设置flexHeight进行动态高度设置失败的问题 - 修复
RTable错误的title属性注入问题 - 修复
MenuTag频繁右键会导致闪烁出现右键菜单的问题
5.0.0
Feats
RTable组件现在默认attrs透传不会再透传至Table而是透传至容器CardAppAvatar组件获取用户信息由localStorage缓存获取变更为getSigningCallback响应式获取- 移除
SUPER_ADMIN默认值 - 移除
APP_KEEP_ALIVE配置项,迁移至settingStore - 移除
SIDE_BAR_LOGO_DEFAULT配置项,迁移至settingStore - 移除
APP_MENU_CONFIG配置项,迁移至settingStore - 移除所有的
ray-template相关注释信息 SettingDrawer新增更多配置项,允许通过配置入口配置更多的配置项- 新增
DatePicker,InputNumber样式,默认设置width为100% - 新增
updateObjectValue方法,并且全局替换重复类似方法 useTheme新增syncSystemTheme方法,允许同步系统主题- 新增
ThemeSegment主题切换组件 - 移除
watchOnce方法引入,使用原生watch方法替代 - 取消
SettingDrawer自动聚焦可选中元素
4.9.7
从该版本开始,默认关闭了 cdn 构建生产环境;因为国内厂商真心不给力。
Feats
- 更新
vue版本至3.5.12 - 更新
@vueuse/core版本至11.1.0 - 更新
naive-ui版本至2.40.1 - 更新
MenuTag一些东西,移除了无用的ref注册,简化了代码;现在允许出现rootPath标签的关闭按钮了 useElementFullscreen新增currentWindowSize返回项,获取当前的窗口尺寸RCollapseGrid组件默认开启borderedRCollapseGrid onUpdateValue方法更名为onUpdateOpenRTable组件默认开启wrapperBorderedRTable组件默认开启bordered- 新增
clearSigningCallback方法 vite.custom.config新增cdn配置项,是否启用cdn构建项目- 配置
cdn为false,因为国内厂商更新资源速度有点慢,导致预览失败 Layout层注入--window-width,--window-height,css var属性- 稳定
Layout层的css var属性
Fixes
- 修复
MenuTag鼠标移入并且加右键菜单操作时,会导致关闭按钮图标消失的问题 - 修复
useElementFullscreen方法在窗口尺寸更新时,全屏元素失败的问题 - 修复
MenuTag注入MENU_TAG_DATA错误的问题 - 修复
Layout Content默认高度获取失败问题 - 修复
RCollapseGrid组件自定义collapse插槽折叠失败的问题
4.9.6
由于 cdn 厂商更新 cdn 资源太慢的缘故,所以目前 vue 的版本只有 3.5.3 会导致构建线上生产环境报错的问题。
Feats
- 更新
vue版本至3.5.8 useDomToImage相关- 使用
html-to-image替换dom-to-image底层依赖库 - 同步补全
html-to-image所有新特性至该方法 - 同步修改
printDom方法 - 类型提示现在会更加友好,
create方法会根据imageType自动推导转换结果的类型 - 移除
DomToImageResult类型
- 使用
Fixes
- 修复
RCollapseGrid组件折叠失败的问题
4.9.5
天元突破,红莲螺岩。
兼容 vue3.5 版本的更新。
Feats
- 更新脚手架依赖为主流依赖
- 更新
vue版本至3.5.6 - 更新
vite版本至5.4.3 - 更新
pinia-plugin-persistedstate版本至4.0.1,并且兼容破坏性更新改动 RChart组件相关- 小重构该组件,移除多个
echart缓存,现在有且仅有一个 - 减少
watch监听项 - 使用
useTemplateRef方法替代ref注册dom - 现在预设
card时,chart图会更加的醒目一些 - 优化
demo展示 - 现在会拦截
aria属性,现在仅允许通过showAria配置项管理无障碍模式 - 优化无障碍模式渲染,现在不会重新渲染整个图表,而是通过
setOptions方式更新图表
- 小重构该组件,移除多个
useChart方法相关isDispose方法更名为isDisposed
Fixes
- 修复
useChart方法相关方法中dispose方法执行不生效的问题 - 修复
RChart的loading不能跟随主题变化的问题
4.9.4
Feats
cdn相关的一些配置- 将
cdn源更新为baomitu,为了避免因为墙的影响导致加载缓慢的问题 - 新增一些插件的
cdn配置
- 将
useTable,useTablePro中的print方法新增传递options配置项,配置打印,允许配置dom-to-image与print-js,详情可以查看PrintDomOptions类型说明。RCollapse组件新增collapse插槽,允许自定义【展开】与【收起】状态
Fixes
- 修复
useTablePro中print方法丢失的问题
4.9.3
Feats
- 更新
vue版本至3.4.38 - 更新
vite版本至5.4.1 - 调整
RCollapseGrid支持actionAlign配置型,配置按钮垂直方向,默认为end MenuTag组件- 调整
MenuTag滚动条样式,现在将它隐藏了 - 优化关闭按钮样式
- 调整
RTable新增renderWrapperHeader配置项,配置外层容器header是否渲染postcss配置not dead,忽略兼容已经无需兼容的浏览器RChart组件setOptions方法配置项默认不启用merge模式- 调整
header的样式,增加了一点点间隙 useDevice新增observer配置项,可以自定义观察回调- 新增
components包,助力简化业务开发- 新增
RTablePro组件,大幅简化中后台带有过滤请求条件的表格显示业务 - 新增
RCollapse组件,允许折叠过滤条件
- 新增
Fixes
- 移除
postcss-px-to-viewport-8-plugin插件,使用postcss-px-to-viewport-8-with-include替换,修复include失效问题 - 修复
useElementFullscreen在退出时,没有正确的回滚zIndex的问题 - 修复
RChart配置setChartOptions不生效的问题
4.9.2
Feats
useDevice支持observer配置项postcss自动尺寸转换插件配置更新
Fixes
- 修复菜单在小尺寸屏幕并且处于折叠状态,导致显示不完整的问题
4.9.1
更新核心依赖版本为主流版本。
Feats
- 更新
axios版本至1.7.2 - 更新
vue-hooks-plus版本至2.2.1 - 更新
naive-ui版本至2.39.0 - 更新
vue版本至3.4.34 - 更新
vite版本至5.3.5 - 更新
@vitejs/plugin-vue版本至5.1.0 - 更新
@vitejs/plugin-vue-jsx版本至4.0.0 - 调整解锁锁屏头像样式
RModal在设置为拖拽时,如果未设置头(也就是title)属性,则会失效
Fixes
- 修复
__APP_CFG__类型丢失问题 - 修复
RTable设置tool为false时,单独设置striped,bordered时不生效的问题
4.9.0
主要修复了一个歧义问题,就是新开页面输入 url,或者是 window.open 打开当前系统的页面时,会导致初始化异常的问题。这是因为以前的 appMenu, appSigning 相关的缓存都是防止与 sessionStorage,但是该缓存并不能共享,所以导致了这个问题。在该版本中将该缓存调整为了 localStorage。
Feats
- 移除
vite-plugin-imp插件 - 更新
vue版本至3.4.31 - 更新
vite版本至5.3.3 - 将
appPiniaMenuStore,appPiniaSigningStore缓存由sessionStorage更改为localStorage缓存 - 现在在模拟退出的时候,会清理
appPiniaMenuStore,appPiniaSigningStore的localStorage缓存 - 将
route待提取字段单独抽离,统一维护为pickRouteRecordNormalizedConstant
Fixes
- 修复
RTable自定义tool时抛出的优化警告问题 - 修复在复制
url打开新标签页输入网址后(包括新开页面),会导致项目初始化异常的问题
4.8.9
Fixes
- 修复
useCheckedRowKeys的getRows方法在异步分页获取数据的时候,会导致切换页面后勾选项丢失问题
4.8.8
Feats
- 更新
vite版本至5.3.1 - 更新
vue版本至3.4.30 FetchErrorFunction类型在你自定义请求拦截器插件处理错误请求的时候,可能会用上
Fixes
- 修复
useCheckedRowKeys的getRows方法类型丢失问题
4.8.7
Feats
- 更新
vite版本至5.2.12 - 更新
vue版本至3.4.27 - 更新
vue-hooks-plus版本至2.2.0 - 更新
@types/lodash-es版本至4.17.12 FetchFunction移除,使用AxiosResponseInterceptor,AxiosRequestInterceptor替代插件类型推导echarts macarons theme优化RChart组件的默认loading效果支持自动跟随主题切换SIDE_BAR_LOGO更名为SIDE_BAR_LOGO_DEFAULT,现在支持在setting store中动态更新,以满足更广泛的需求
Fixes
- 修复
primaryColorOverride配置项不生效问题 - 修复面包屑在
sameLevel的情况下,可能会被覆盖问题
4.8.6
Fixes
- 修复动态路由的情况下,始终会被跳转到
404页面的问题 - 修复
RIcon组件color配置项无效的问题 - 修复
svg-icon页面可能会在更新icon后出现报错的问题 - 修复
updateDocumentTitle方法可能会更新标题出错的问题 - 修复菜单的折叠问题
4.8.5
Feats
- 更新
vue-router版本至4.3.2 - 更新
vue-hooks-plus版本至2.0.3 usePagination方法- 新增
resetPagination方法,用于重置分页器
- 新增
RBarcode组件,默认启用watchText配置项,用于监听text内容变化RMoreDropdown组件,新增icon自定义配置图标,依赖RIcon组件实现buildOptions方法现在会自动根据mode进行自动构建生成包了RTable hooksUseCheckedRowKeysOptions- 新增
table column参数,自动获取当前表格列配置是否启用了选项模式(单选、多选) selectKey方法现在在单选模式下,只会选择一条数据,最后一次选择的会覆盖上次的
- 新增
useTable- 新增
print方法
- 新增
useTheme方法changeDarkTheme更名为darkThemechangeLightTheme更名为lightThemegetAppTheme方法返回值做了准确的ts签名,并且新增themeLabelI18n字段
Fixes
- 修复
vitest设置threads导致报错Module did not self-register...的问题 - 修复
vue-router warning抛出can no longer be used directly inside...的警告问题 - 修复
pre-commit错误的vue-tsc检查报错 signing logout方法现在会正确的清理menuTagOptions
4.8.4
由于 node canvas 本身的特性(环境问题很多),故在 v4.8.4 版本予以移除 RQRCode 组件,使用 vue3-next-qrcode 替代。所有的使用方法保持一致。
Feats
- 新增
package.json的lint命令,用于自动修复eslint, prettier问题
pnpm lint
useModal方法在preset = card并且设置了fullscreen时,现在会自动启用滚动条pre-commit新增vue-tsc检查
4.8.3
Feats
- 更新
vue-i18n版本至9.13.1 - 更新
naive-ui版本至2.38.2 - 更新
vite版本至5.2.11 - 更新
vue版本至3.4.26
Fixes
- 同步修复
useModal组件在preset = card时,不能正确显示内容的问题
4.8.2
破坏性更新!请仔细阅读更新日志!
更新默认 node 版本为 v20.12.0。
并且对于历史一些模块的分包进行了优化,现在更加语意化与清晰。
重构 axios 拦截器,使用插件式设计思想,更加强大的拓展性、可维护性!
Feats
- 更新默认
node版本为v20.12.0 RBarcode相关- 新增
onSuccess,onError,onFinally三个渲染回调 - 新增
watchText配置项,当text内容变化后,主动更新条形码,默认不启用
- 新增
- 更新
vue-tsc版本至2.0.11 hooks包template包- 新增
useContentScroll方法,用于滚动LayoutContent内容区域 - 新增
useSiderScroll方法,用于滚动LayoutSider侧边栏区域,也就是菜单区域
- 新增
web包usePagination类型修复,所有get方法都会准确的返回对应的类型
SiderBarLogo组件- 支持未配置
icon时,允许截取title第一个字符作为占位
- 支持未配置
router包router types包,补充类型,获得更好的类型提示与配置提示combine-raw-route-modules方法现在会检查路由配置的name,path属性是否出现重复,如果重复,会直接抛出异常中断流程- 移除
name配置项作为必选项 - 标记
components配置项为deprecated描述项 - 增强
AppRouteRecordRaw类型,现在当你显式配置了meta.keepAlive为true的时候,会提示你name必填
app-config包- 提供
MessageProver配置- 限制最大消息数量为 5 条
- 默认不启用手动关闭消息功能
- 提供
RTable新增cardProps配置项,配置外层容器。- 更新
vue版本至3.4.25 - 更新
vite版本至5.2.10 - 更新
vite-bundle-analyzer版本至0.9.4,新增汇总模式 - 移除
naive-ui自动导入hooks Search组件- 优化分包逻辑
- 现在允许在搜索菜单初始位置进行上下键切换
- 优化搜索菜单样式
- 新增
positionSelectedMenuItem方法,用于定位选中菜单项 hooks包template- 新增
useContentScroll方法,用于滚动LayoutContent内容区域 - 新增
useSiderScroll方法,用于滚动LayoutSider侧边栏区域,也就是菜单区域
- 新增
- 重写
AppAvatar组件 axios包inject包重命名为axios-interceptor,并且拆分分包逻辑,现在以插件形式管理拦截器逻辑与注入逻辑
- 新增
padding-line-between-statements规范,强制语句之间的空行
Fixes
- 修复
SIDE_BAR_LOGO未配置icon时,侧边栏不显示的问题 - 修复
RTable在配置style.height时,样式会错乱的问题 - 修复
MenuTag在初始化位置时不能准确滚动到当前标签页的问题
4.8.1
Feats
- 新增
RBarcode条形码组件,基于JsBarcode二次封装
Fixes
- 修复
RSegment分段器设置popover后警告的问题
4.8.0
全局破坏性更新。移除了很多包、方法,请谨慎更新。
Feats
- 移除无意义依赖包
RTable组件- 强制约束使用
useTable方法操作实例,移除expose暴露 - 新增
useCheckedRowKeys方法,用于操作表格选中行,该方法仅适用于选中行操作(多选、单选)
- 强制约束使用
RForm,RChart强制约束使用对应useForm,useChart方法操作实例,移除expose暴露- 优化
usePagination方法修改paginationRef值类型,使用Ref签名类型 eslint规则新增禁用被标记弃用方法- 移除
omit,pick方法,使用lodash-es包替代 - 新增
RSegment分段器组件由于是基于 NTabs 组件二开,所以也继承了该组件的一些特性(bug)
svg icon支持分包管理vite-helper包中所有方法进行拆分,约定按照功能模块进行拆分。如果该方法属于vite插件,按照xx-xx-plugin方式命名。- 统一所有模块的文件命名
class,hooks方法统一为小驼峰命名示例:
MyClass,useMyHookscomponent的文件夹与组件名称统一为大驼峰命名示例:
MyComponent,ChildComponentutils,custom function统一为蛇形命名示例:
custom-function,custom-utils
- 新增
v-ripple水波纹指令 - 新增
v-lazy-show惰性v-show指令 GlobalSearchButton组件样式优化useElementFullscreen方法- 移除缓存
transition样式还原方式,使用options.transition方式配置,默认为all 0.3s var(--r-bezier)
- 移除缓存
- 优化
LayoutContent网页最大化动画效果 global-variable新增getVariable方法,允许解构获取全局响应式变量- 移除
SiderBar组件的tip提示 - 补充了一些注释
Fixes
- 修复
RTable C组件对于columns type项无法有效兼容问题
4.7.5
Feats
- 更新
vite版本至5.2.8 appConfig配置项- 新增
LAYOUT_CONTENT_SPIN_WHEN_ROUTE_CHANGE配置项,用于配置路由切换时是否显示内容区域(LayoutContent)加载中状态 - 新增
APP_GLOBAL_LOADING配置项,用于配置全局加载状态内容
- 新增
setVariable,updateSettingState方法,使用Object.hasOwn方法替代Reflect.has方法spin包整合至app-components下RayLink更名为AppShareLinkechart-themes包整合至app-config下- 优化
GlobalSearch底部样式 error包- 整合至
views下 PageResult组件新增goBack功能
- 整合至
usePagination方法- 重写该方法返回值
- 调整
MenuTag标签页尺寸为small RChart组件- 新增
onFinally配置项,用于配置图表渲染完成后的回调 - 新增
watchOptionsThrottleWait配置项,可以配置watchOptions触发频率,当你需要频繁更新图表数据时,可以配置该项,避免频繁渲染图表 - 移除
throttleWait配置项
- 新增
__test__包- 新增
qr-code.spec.ts单元测试模块 - 新增
modal.spec.ts单元测试模块
- 新增
- 针对
eslint部分规则进行调整 - 补充代码注释
import { usePagination } from '@/hooks'
const [
paginationRef,
{ updatePage, updatePageSize, getItemCount, setItemCount },
] = usePagination(
() => {
// do something...
},
{
// ...options
},
)
Fixes
- 修复
useDayjs.spec单测模块测试失败问题
4.7.4
对于 RTable, RForm, RChart 组件都新增了对应的 useTable, useForm, useChart 方法;让你在业务开发中抛弃注册 ref 实例方式调用组件方法。
补充拓展了 useModal 方法,支持 dad, fullscreen 等拓展配置项。
import { useTable, useForm } from '@/components'
const [registerTable, { getTableInstance }] = useTable()
const [registerForm, { getFormInstance }] = useForm()
// 做点什么...
Feats
- 更新
vite版本至5.2.6 useDevice方法支持自定义media配置项,用于配置自定义媒体查询尺寸RTable组件- 新增
tool配置项,配置是否显示工具栏 - 优化工具栏渲染逻辑
- 新增
useTable方法,用于便捷调用表格方法
- 新增
该方法比起常见的
ref注册,然后tableRef.value.xxx的方法获取表格方法更为简洁一点。但是也值得注意的是,需要手动调用一次register方法,否则会报错;还有值得注意的是,需要注意表格方法的调用时机,需要等待表格注册完成后才能正常调用。如果需要在Parent Create阶段调用,可以尝试nextTick包裹一层。
import { RTable } from '@/components'
import { useTable } from '@/components'
defineComponent({
setup() {
const [
register,
{ getTableInstance, clearFilters, clearSorter, scrollTo, filters, sort },
] = useTable()
const columns = [
{
title: 'No',
key: 'no',
},
{
title: 'Title',
key: 'title',
},
]
const data = [
{
no: 1,
title: 'title',
},
]
return {
register,
getTableInstance,
clearFilters,
clearSorter,
scrollTo,
filters,
sort,
columns,
data,
}
},
render() {
const { columns, data } = this
const { register } = this
return (
<RTable columns={columns} data={data} register={register.bind(this)} />
)
},
})
RForm组件- 新增组件,所有行为、方法与
NForm保持一致 useForm方法,使用方法与useTable几乎一致
- 新增组件,所有行为、方法与
canUseDom,isBrowser方法统一为函数导出RModal组件新增useModal方法- 新增
useModal方法,允许拓展配置dad,fullscreen等配置项。但是由于useModal生成组件的特殊性,不支持memo属性配置,其余配置项维持一致该方法在当前版本存在一个 bug,
preset = card时,不能正确的显示 content,查看相应的 issues。 - 重写部分代码,优化组件逻辑,补全
ts类型
- 新增
RChart- 新增
useChart方法,使用方法与useTable几乎一致
- 新增
- 新增
usePagination方法与usePagination.spec单元测试模块
import { usePagination } from '@/hooks'
const {
updatePage,
updatePageSize,
getItemCount,
setItemCount,
getPage,
setPage,
getPageSize,
setPageSize,
getPagination,
getCallback,
} = usePagination(
() => {
// do something...
},
{
// ...options
},
)
4.7.3
补全 hooks 包下的单测模块。
Feats
- 重命名
store包下的type.ts为types.ts useElementFullscreen- 优化全屏尺寸逻辑,现在会监听浏览器
width,height变化,自动调整全屏尺寸
- 优化全屏尺寸逻辑,现在会监听浏览器
Fixes
- 修复
useElementFullscreen方法在退出全屏时,不能恢复原有transition样式问题
4.7.2
新增 vitest 测试框架。
重写了一些 utils, hooks 包的方法,并且编写了对应的单测模块。
Feats
- 集成
vitest测试框架,并且对于utils,hooks包方法编写了对应的单测模块
使用方法请查看 vitest。
# 新增测试单元模块
1. 在 `__test__` 目录下创建测试文件
2. 添加对应的单测模块
3. 编写对应的单测逻辑
# 值得注意的是
1. 测试文件必须在 `__test__` 目录下
2. 测试文件必须以 `xxx.spec.ts` 或者 `xxx.spec.tsx` 结尾,否则不生效
3. 必须手动补全导入待测试方法或者组件,可以查看现有的测试文件
# 运行测试
pnpm test
# 运行测试 ui 界面
pnpm test:ui
# 最重要需要值得注意的地方
一旦被导入方法或者组件文件中,有报错,那么会导致整个文件的测试方法在执行 `pnpm test`, `pnpm test:ui` 时都报错。
但是单独测试该文件时,不会报错,只有在执行 `pnpm test`, `pnpm test:ui` 时才会报错。
# 最后
未来会逐步完善测试用例,以及编写更多的测试单元模块,包括全局组件。
basic包相关- 重构
equalRouterPath方法,现在允许忽略带参数的路径比较 omit,pick方法不在对null,undefined传参抛出警告;该方法现在支持多参数传递
- 重构
hooks包相关useDayjs- 优化注释
getStartAndEndOfDay方法新增formatEndOfDay
element包相关colorToRgba- 现在支持解析
#fff,#ffffff,#ffffffaa格式的颜色 - 重写该方法
- 现在支持解析
precision包相关Options类型重构为CurrencyOptionsformat方法新增currency配置项,移除第二个参数,合并在配置项中配置输出格式distribute方法新增配置项(CurrencyOptions)
- 现在
@/hooks包下方法都将构建在一个包中输出,不在做拆分
Fixes
utils包相关- 修复
arrayBufferToBase64Image方法总是返回null的问题 - 修复
queryElements方法defaultElement配置项不能正确的返回默认值问题 - 修复
autoPrefixStyle方法不能返回样式本身问题
- 修复
4.7.1
Feats
- 更新
vite版本至5.1.6 vite-plugin-cdn2相关- 更新
vite-plugin-cdn2版本至1.1.0 - 更新
vite.plugin.config.ts关于cdn2配置 - 新增
cdnResolve方法,自定义resolve
- 更新
- 更新主流浏览器版本号升级
RChart组件相关- 新增
intersectionObserver配置项,用于配置是否使用IntersectionObserver监听图表渲染但是该配置项不支持动态修改,只能在初始化时配置
- 优化组件的注释,并且补充了一些注释
- 新增
intersectionObserver配置项,手动指定IntersectionObserver需要监听的元素 observer更名为autoResizeObserverTarget- 补充
chart示例页面
- 新增
- 优化亮色主题下锁屏样式
Fixes
- 修复
vite-plugin-cdn2插件构建echarts失败问题,具体查看该 issue RChart组件相关- 修复卸载组件不能完全清理
inst问题 - 修复组件不能正常触发初始化动画问题
- 修正
isDispose方法返回值含义,现在返回true代表已经卸载,false代表未卸载
- 修复卸载组件不能完全清理
4.7.0
做了一些核心依赖的升级操作。
并且规范了整个模板的包命名,这个一直算是遗留问题,有些包名不够语意化与有点混乱,现在终于统一了。
Feats
useDomToImage相关- 优化
ts类型提示
- 优化
usePrint相关- 现在会强制剔除
printable配置项
- 现在会强制剔除
- 移除
rollup-plugin-visualizer体积分析插件,使用vite-bundle-analyzer替换
# 执行
pnpm report
# 等待构建后,会自动打开浏览器。
- 移除
report模式的eslint检查 axios相关BeforeFetchFunction类型更名为FetchFunctionAppRawRequestConfig类型新增__CANCELER_TAG_RAY_TEMPLATE__标记,用于标记是否需要可以被取消- 优化
ts类型标注
- 将所有
type.ts包重命名为types.ts符合语义 - 更新
vueuse版本至10.9.0 - 更新
vite版本至5.1.5 - 更新
vue版本至3.4.21 - 将所有
helper.ts, helper file统一更改为utils.ts,utils file方式管理 - 重构
app/prefixCacheKey方法,现在支持自定义前缀 - 优化
GlobalSearch搜索待选项样式 __ray-template包现在只会在__DEV__环境下才会做检查- 新增
ellipsis指令,并且补充所有自定义指令的注释 router包相关- 修改
router注册形式,改为同步注册 - 修改
routes包导出形式,改为导出一个数组
- 修改
Fixes
- 修复
useVueRouter方法HMR时可能会报错的问题
4.6.4
稳定了 4.6.4 版本。
Feats
- 更新
naive-ui版本至2.38.1,详细更细请查看 CHANGELOG.zh-CN- 同步更新
ModalProvider在顶层的注入(但是resolver暂为更新,所以需要手动导入)
- 同步更新
useI18n方法- 重写
overrideLocaleFunc方法
- 重写
Fixes
- 修复
useI18n方法在HMR时可能会报错的问题
4.6.4-beta1.1
更新了一大波的开发依赖。
Feats
- 更新
vue版本至3.4.20 - 更新
vite版本至5.1.4 - 更新了开发依赖
- 移除
utils/xlsx工具包与xlsx依赖 - 更新了
viteCDNPlugin配置形式,现在会自动读取版本号 - 更新
vue-hooks-plus版本至1.8.8 - 更改
vite-plugins包名称为vite-helper
4.6.4-beta1.0
更新了核心依赖插件:vite, vue。
新增 __ray-template 包,用于模板启动时的一些检查或者其他钩子的启动。
Feats
- 更新了一些注释
- 更新
vue版本至3.4.19 - 更新
vite版本至5.1.3;最新版本vite优化了HMR逻辑 - 新增检查器功能(存于
__ray-template包),用于在模板启动后,做一些检查工作 - 使用
checkRightClose,checkLeftClose方法替换原有检查关闭按钮禁用逻辑 useDevice方法返回属性isTabletOrSmaller使用readonly方法包裹RChart组件相关- 移除
animation配置项,该配置项在使用的时候可能会有潜在的性能问题 - 新增
nextTick配置项,是否将渲染图标内容放置到下一个队列中该配置项启用后,会先渲染一个空的图表,然后在下一个队列中渲染图表内容。这样做的好处是,可以避免一些图表渲染的性能问题,但是会导致图表渲染的时候会有一个空白的过程。
- 修改
registerTheme方法调用时机,并且该方法仅会执行一次 - 预设
Card风格的下载功能下拉框预留字段由downloadChart更名为__DOWN_LOAD_CHART__
- 移除
Fixes
- 修复更新主题色时
preset没有被正确更新问题。现在在更新主题色后,会正确的更新primaryColorPressed - 修复
README.md描述文件中的一些错误描述
4.6.3
Feats
GlobalSearch相关- 取消递归查找,使用
getRoutes方法替代查找,提高查找速度 - 现在是用快捷键激活搜索框的时候,如果再次按下快捷键并且搜索框已经是激活状态,则不会重新渲染搜索框
- 取消递归查找,使用
- 补充
resolveOption方法注释。在使用该方法的时候,需要开发者自己手动补充当前项的fullPath字段。因为该方法在处理的时候,并不能准确的感知到当前项的fullPath字段,所以需要手动补充
import { useMenuActions } from '@/store'
const { resolveOption } = useMenuActions()
resolveOption({
// ...your option
fullPath: '/your path',
})
- 优化
GlobalSearch组件样式 addStyle方法相关- 方法重写并且更名为
setStyle - 支持自动补全内核前缀
- 支持识别样式变量(css var)方式插入
- 支持字符串数组形式插入样式
- 方法重写并且更名为
queryElements方法支持默认值配置项addClass相关- 方法更名为
setClass - 支持数组传参
- 方法更名为
hasClass,removeClass方法支持数组传参- 补充
pick,omit方法类型重载 menu store相关- 新增
depthSearchAppMenu方法,用于深度搜索菜单,并且该方法会缓存上一次的搜索结果
- 新增
- 新增
isAsyncFunction方法,用于判断是否为async函数
import { depthSearchAppMenu } from '@/store'
const result = depthSearchAppMenu(appMenuOptions, 'target fullPath')
useBadge相关- 使用
depthSearchAppMenu方法替代原查找方法 - 将
equal方法提取到utils包中,并且更名为equalRouterPath,用于判断两个路径是否相等
- 使用
Fixes
- 修复
SettingDrawer组件某些开关不能正确同步状态问题 - 修复
usePrint方法在unrefElement方法获取失败后不执行的问题。在print-js逻辑中,如果未获取到dom,会视为其他的打印方式,不符合print-js的设计 isPromise方法修正,现在会正确的识别async标记d的函数
4.6.2
Feats
AppMenu Extra已经稳定发布,现在你可以在菜单标题后面添加标记了,相关变更extraIcon类型变为VNode- 新增
show配置项,用于配置是否显示extra标记,如果默认为false,则不会显示extra标记,如果未配置或者配置为true,则会显示extra标记。意味着只要你配置了label则会显示标记 - 新增
useBadge hooks方法,便捷操作菜单标记update:更新标记show:显示标记hidden:隐藏标记
- 新增
i18nLabel配置项,当你希望该标签能够跟随模板语言切换动态切换的时候你可能用的上,该配置项优先级高于label
该配置项仅在
collapsed为false时生效。
- 更新
axios版本至1.6.7 - 移除
matchMenuOption方法 - 调整
vueRouterRegister方法的运行时机,现在会在router注册完成后再执行该方法 - 优化一些试例页面代码
RTable相关- 新增
Props组件,支持勾选配置一些表格的配置项,目前仅支持:边框、条纹 - 优化
Size组件,取消没必要的响应式代理数据 - 取消自定义工具组件的
Popover提示 - 更改
config.ts文件名为shared.ts,并且config配置导入导出方式更改为import { config } from '@/shared'
- 新增
- 更改
README-ZH.md文件名为README.zh-CN.md
4.6.2-beta1.2
Feats
- 优化
AppMenu Extra标记样式,现在不会因为菜单标题过长将标记挤出去 - 优化
RQRCode组件样式,在error状态下会模糊显示二维码
Fixes
- 修复
close方法会关闭最后一个标签的问题,现在如果当前的getMenuTagOptions长度为1,则不会关闭标签页
4.6.2-beta1.1
Feats
cache工具包相关- 优化
removeStorage方法类型推导,当key为预留字关键字时,强制绑定storageType为对应的类型值
- 优化
import { removeStorage } from '@/utils'
// 正确
removeStorage('__all__', 'all')
removeStorage('__all_sessionStorage__', 'sessionStorage')
removeStorage('__all_localStorage__', 'localStorage')
remove('your key', 'sessionStorage' || 'localStorage')
// 错误
removeStorage('__all__', 'sessionStorage')
removeStorage('__all_sessionStorage__', 'localStorage')
removeStorage('__all_localStorage__', 'all')
removeStorage('__all_localStorage__', 'sessionStorage')
remove('your key', 'all')
- 优化
Layout布局样式,移除border边框,添加box-shadow阴影
Fixes
- 修复
copy指令复制的时候不能正确的提示的问题 - 修复
AppVersionProvider组件不能正确的注入appVersion的问题
4.6.2-beta1.0
为了支持同域名下同时部署多套系统,重构了 cache 工具包支持前缀配置。并且暴露重构所有的缓存 key 配置项,为了便捷的进行私有数据缓存。
Feats
- 更新
vue版本至3.4.15,核心性能优化更新 cache工具包相关- 重构
getStorage方法,支持前缀配置 - 重构
setStorage方法,支持前缀配置 - 重构
hasStorage方法,支持前缀配置 - 重构
removeStorage方法 - 支持前缀配置 - 更新预留key,现在更新为:__all__,__all_sessionStorage__,__all_localStorage__
- 重构
默认不启用该功能,如果需要启用,可以在调用
cache包方法的时候手动配置prefix属性为true,默认会读取prefixKey配置项,如果未设置则会尝试读取APP_CATCH_KEY_PREFIX。并且useStorage之类的第三方工具库并未集成该方法。
- 暴露所有缓存
key,允许自定义所有缓存key designConfig配置相关appNaiveUIThemeOverrides配置项支持按照dark,light两个主题分别配置- 新增
appNaiveUIThemeOverridesCommon配置项
- 优化
GlobalSearch组件样式 - 更新搜索按钮样式,由图标变为按钮样式(
GlobalSearchButton) - 更新
appThemeColors色盘 hasMenuIcon更名为createMenuIcon- 默认绑定过渡动画更改为
scale - 更新内容区域背景色(
$layoutContentBackgroundColorDark、$layoutContentBackgroundColorLight) - 更新底部区域背景色(
$layoutFooterBackgroundColorDark、$layoutFooterBackgroundColorLight) RouteMeta配置项相关- 新增
extra配置项,用于配置标记
- 新增
import { t } from '@/hooks/web/useI18n'
import { LAYOUT } from '@/router/constant'
import type { AppRouteRecordRaw } from '@/router/types'
const cacheDemo: AppRouteRecordRaw = {
// ...your route config,
meta: {
// ...other meta config,
extra: 'new',
},
}
// 当然你也可以配置 extra 为一个对象
AppMenuExtraOptions {
extraLabel?: string
extraIcon?: string | VNode
extraType?: TagProps['type']
}
const cacheDemo: AppRouteRecordRaw = {
...your route config,
meta: {
...other meta config,
extra: {
extraLabel: 'new',
extraIcon: 'icon' || <Icon />,
extraType: 'primary' || 'success' || 'warning' || 'error' || 'info' || 'default',
},
},
}
Fixes
- 修复
naive-ui修改主题色不能准确的同步到全局的问题
4.6.1
Feats
- 更新
vite版本至5.0.11 - 更新
@vitejs/plugin-vue版本至5.0.3 maximize方法options.scrollToOptions配置项现在仅在放大状态才会生效- 更新
AppVersionProvider版本刷新逻辑 axios相关cancelConfigneedCancel配置项变更 为cancel
icons相关- 变更
reload图标 - 变更
expanded图标
- 变更
- 路由切换过渡动画优化,新增两个新过渡动画。默认绑定过渡动画更改为
fade-slide app-config暴露CONTENT_TRANSITION_OPTIONS配置项,用于配置路由切换过渡动画- 变更
regexConfig配置项validCSSUnit为cssUnit - 调整
reload方法位置,现在调整为在MenuTag栏
4.6.0
破坏性更新,请谨慎更新。
提升了模板整体性能。
Feats
- 更新
vue版本至3.4.14 naive-ui相关- 更新
naive-ui版本至2.37.3 - 更替
naive-uicdn为https://cdnjs.cloudflare.com/ajax/libs/naive-ui/2.37.3/index.prod.js - 使用
NFlex组件替换NSpace组件,查看 官方文档
- 更新
- 更新最新版本
vue后,更新createDiscreteApi方法注册上下文,改为函数包裹,避免slot default invoked outside of render警告 menu store相关- 优化
setupAppMenu方法,初始化时会拼接完整的fullPath,避免url,menu value更新路由时重复处理path,提高性能 - 优化
updateMenuKeyWhenRouteUpdate方法,减少path处理操作 - 优化
changeMenuModelValue方法,减少path处理操作 - 移除
emptyMenuTagOptions方法,使用spliceMenTagOptions方法替代
- 优化
- 由于更新了
path逻辑,所以menu store,AppMenu等相关也同步更新AppMenu更新key绑定字段为fullPathmenu store更新menuKey绑定字段为fullPath- 更新
parseAndFindMatchingNodes绑定字段为fullPath
useAppNavigation相关navigationTo相关- 重构该方法
- 支持传递完整路径跳转
- 支持传递参数
vue-router query对象 - 支持配置项,详情请看
NavigationToOptions
useSiderBar相关- 同步更新所有方法,使用
fullPath代替path
- 同步更新所有方法,使用
useContextmenuCoordinate方法- 使用
readonly方法包裹show属性 - 新增返回
updateShow方法,允许手动更新show属性 - 新增
options配置项clickOutside方法,允许配置点击元素外部区域的回调函数 - 更新对应 demo
- 补充一些注释
- 使用
- 统一
app-config的导入导出方式,现在统一为import { xxx } from '@/app-config'导入 - 统一
hooks包的导入导出方式,现在统一为import { xxx } from '@/hooks'导入 app-config相关- 开放
APP_CATCH_KEY.appMenuKey属性,配置缓存读取字段
- 开放
useMaximize相关- 优化
maximize方法,现在支持配置滚动位置
- 优化
cfg.ts相关cfg.ts更名为vite.custom.config.tscfg.ts类型包更名为viteCustomConfig.ts
- 由于
cdn.staticfile.org停止服务,所以切换至cdnjs
Fixes
- 修复
RChart组件RChartInst类型不完整的问题 - 修复读取默认缓存语言的时候没有正确使用
APP_CATCH_KEY.localeLanguage的问题 - 修复
RTable全屏没有正确弹出提示信息问题 - 修复面包屑
fullPath在平级模式下追加时为绑定问题 - 修复
closeAll方法在特殊情况下不能正确的关闭标签页并且跳转至root path的问题
4.5.0
破坏性更新。
更新 vue 版本至 3.4.0,请查看相关变更:Vue 3.4.0。该版本破坏性更新了一些东西,例如:
JSX命名空间默认移除ReactiveTransform移除v-is指令移除
更新 @vitejs/plugin-vue 版本至 5.0.0,请查看相关变更:vite-plugin-vue。该版本破坏性更新了一些东西,例如:
- 放弃
ReactivityTransform支持 - 放弃
node14, 16版本支持 - 放弃
vite4.x版本支持 - 弃用
defineModel配置,vue3.4.0版本该功能已经稳定
解决 sameLevel 问题与核心包 store/men 的一些问题。提高了性能,避免了潜在的空引用问题。
是统一 types 包的导入导出行为。
Feats
- 统一
types包下的导出方式,现在统一为import type { xxx } from '@/types'导入 RQRCode组件- 在
loading状态下会模糊显示二维码,并且展示loading状态 - 优化显示
error状态下默认按钮样式
- 在
- 更新
README.md,README-ZH.md文档 - 取消
changeModelValue节流锁 - 优化
changeModelValue,updateMenuKeyWhenRouteUpdate方法,避免潜在的空引用问题 - 插件相关
- 更新
vue版本至3.4.0 - 更新
@vitejs/plugin-vue-jsx版本至3.1.0
- 更新
RModal组件相关- 新增
memo配置项,用于配置是否记忆上一次的位置
- 新增
RChart组件- 补充部分注释
- 新增
isDispose方法,检测当前图表是否被卸载
- 新增
AppVersionProvider注入器,用于注入appVersion全局变量,检测是否需要重新加载页面
Fixes
- 修复初始化的时候面包屑为空的问题
- 修复
sameLevel平级模式面包屑追加问题 RModal组件- 修复初始化配置
show = true时,dad属性不生效的问题
- 修复初始化配置
4.4.7
Feats
- 更新
vue版本至3.3.13版本 - 更新
naive-ui版本至3.36.0。新增了几个新组件 - 更新
vite版本至5.0.10 appConfig相关- 移除
APP_WATERMARK_CONFIG配置项,现在水印配置项会被watermarkConfig替代 - 移除
ROOT_ROUTE配置项,现在根路由配置项会被appRootRoute替代
- 移除
variable相关- 移除
variable管理ROO_ROUTE配置项
- 移除
commit-message新增plugin更新相关前缀配置RQRCode组件- 调整
loading透明度 downloadQRCode方法将会返回一个Promise对象
- 调整
basic包downloadAnyFile方法将会返回一个Promise对象
types包- 新增
ReturnPromiseType工具类型,用于获取函数返回值的Promise类型 - 新增
ConditionalExclude工具类型,用于条件排除指定类型
- 新增
4.4.6
Feats
vite配置项cdn- 移除不能被
cdn引入的包配置
- 移除不能被
- 移除
vue-demi本地包依赖,仅在cdn引入。因为某些插件依赖改包
Fixes
hooks相关UseDomToImageOptions方法- 修复
options.imageType必填的错误 - 修复该方法在执行失败时,没有正确的返回错误状态与执行错误钩子方法。现在在执行失败或者获取未正确获取到元素的时候,会返回
Promise.reject状态,并且会执行createdError钩子方法 - 修改
createdError钩子方法回调参数类型 - 修改
created钩子方法回调参数类型 - 修复
finally方法不能正确执行的问题
- 修复
utils相关printDom方法- 新增配置项
base64为true - 修改
printOptions类型,剔除base64属性,因为该配置项始终应该为true,即使你手动配置为false,也会被强制转换为true
- 新增配置项
components相关RTable- 修复打印的时候,可能会出现颜色不正确的问题
- 现在打印的时候,会将整个表格(包括:表头、表格、表格分页、表格底部区域)全部打印
4.4.5
Feats
- 切换
cdn源至https://www.staticfile.org/ - 更新
vue版本至3.3.11
4.4.4
升级 vite 版本至 5.0.8。提升构建速度,并且消除了烦人的 terser 警告(未配置该项都会被警告,确实很烦)。
现在能自动的根据 main 分支更新构建发布了。
新增 pre-commit 检查。现在在提交代码前,会自动检查代码规范,如果不符合规范则会阻止提交。
Feats
- 更新
vite版本至5.0.8 tsconfig文件compilerOptions.moduleResolution选项由Node改为bundlerutils包相关改动- 统一导出、导入行为,现在统一使用
import { xxx } from '@/utils'导入 - 剔除
basic 包 print方法,现在使用utils/dom包中的usePrint替代 utils/dom包相关细节- 新增
printDom方法,取代直接调用print-js方法调用打印。该方法会先将 dom 转换为base64再调用print-js方法,避免一些诡异问题。RTable组件打印功能已经由该方法重写。并且可以配置printDom方法的所有参数,细节请查看PrintDomOptions类型
- 新增
utils/element包中一些方法,改为effectDispose方法注销effect
- 统一导出、导入行为,现在统一使用
husky相关- 新增
commit-msg,common.sh文件,用于检查commit信息 - 新增工作流程,自动构建发布
- 新增
alias别名相关- 移除
@use-utils别名 @use-images更改为@images@use-api更改为@api
- 移除
hooks包相关- 新增
usePrint方法,允许 ref dom 直接调用打印 - 新增
useDomToImage方法,用于直接输出 dom 为base64,blob等
- 新增
components包相关RTable打印时,如果未手动配置documentTitle属性,则会自动获取title,如果title属性为string类型,则会默认使用该值作为documentTitle属性。但是如果未获取到title并且未配置documentTitle属性,则会默认的将documentTitle赋值为'',也就是说默认输出浏览器标题
- 移除
ReactiveTransform所有支持 - 相关插件更新
pinia版本更新至2.1.7vue-router版本更新至4.2.5interactjs版本更新至1.10.26axios版本更新至1.6.2
Echarts Themes更新背景色默认为transparent。如果需要更新配置,只需要在配置options时增backgroundColor属性即可
const options = {
backgroundColor: 'your color',
...your options
}
4.4.3
更新 vue 版本至 3.3.10。
补充了一些代码的注释(慢慢还账-,-)。
Feats
- 更新
vue版本至3.3.10 - 新增
useElementFullscreen方法,用于全屏元素。但是该全屏区别于浏览器全屏元素,仅是网页全屏效果 - 使用
useElementFullscreen方法重构maximize方法 changeMenuModelValue- 现在方法支持第三个参数配置跳转时,是否携带参数
- 避免递归查找的时候,一些不必要的操作,优化性能
- 核心模块
Menu的优化细节- 使用
router.getRoutes方法替代以前的递归查找(updateMenuKeyWhenRouteUpdate方法) - 优化当菜单更新时、url 地址更新时都会重复检查的问题,现在检查是惰性的
- 使用
Fixes
- 修复了通过
url携带参数跳转页面,参数可能会被拦截并且丢失的问题 - 修复了
url跳转页面导致多次更新的问题
4.4.2
这是一个具有破坏性更新的版本,如果你使用了该模板,那么你需要做一些改动。
详细拆分 hooks 包的方法。以前的划分方式不太合理,所以进行了一次大的重构。并且新增了一些方法。现在按照方法功能进行分包,更加详细。
剔除 h 函数渲染,因为该方法不会受到 vue 的编译优化。
针对 MenuTag 的定位滚动效果做了优化,现在滚动效果更加平滑。
补充了一些代码的注释(慢慢还账-,-)。
Feats
- 重新划分
hooks包,按照功能进行拆分,并且新增一些包useAppMenu方法更名为useAppNavigationuseMenuTag方法更名为useSiderBaruseRootRoute方法更名为useAppRootuseMainPage包移除- 新增
useMaximize,useSpinning,useTheme,useWatermark方法 - 新增
components包,用于存放模板二次封装组件、NaiveUI组件的一些hooks方法 - 每个方法包导出对应的
ReturnType类型
Breadcrumb组件新增过渡效果,现在切换路由时会有过渡动画,视觉效果更友好- 移除
getVariable方法 - 移除
utils/element包部分方法onoff
- 移除
changeSwitcher方法,使用updateSettingState方法代替 useContextmenuCoordinate方法支持配置项MenuTag的定位滚动现在支持过渡效果
Fixes
- 修复
setRootRoute方法执行时提示只读错误导致不能正常修改的问题
4.4.1
更新 vite 版本至 5.0.4。同步修复了一些小问题。
基础性能优化,根据开发模式与构建模式拆分插件启用。避免某些仅仅需要在构建模式的插件在开发模式下也被启用。
新增预构建插件列表。
Feats
- 补充 components 包组件的
props类型导出 - 补充
__DEV__全局变量 - 优化
precision包中的基本运算方法,并且将小数点默认保留8位- 新增
isCurrency方法检测是否为currency.js对象
- 新增
- 按照构建模式与开发模式拆分插件启用
- 新增预构建列表
Fixes
- 修复
i18n fallbackLocale错误配置为SYSTEM_DEFAULT_LOCAL的问题 - 修复
SYSTEM_DEFAULT_LOCAL类型定义错误问题
4.4.0
补充了几个组件。并且更改了组件的导入、导出方式,由从前很恶心的一个个导入,变为 import { RIcon } from '@/components'。
替换了过时的 nvm,使用 fnm 替代,并且配置了一些文件让你能够自动切换 node 版本,前提是你也装了对应的插件。
由于 WebStorm 一直提示可以缩短路径,强迫症患者表示受不了了,就全部改了(可能遗漏)。
升级 node 版本至 18.18.2。
Feats
- 新增组件
- RModal
- width:配置 modal 宽度
- cardWidth:配置 preset 为 card 的宽度
- dialogWidth:配置 preset 为 dialog 的宽度
- fullscreen:配置 preset 为 card 并且配置 fullscreen 为 true 则可以获得全屏效果
- dad:启用拖拽效果。仅在 preset 为 card, dialog 时生效(基于 interactjs 实现)
- RModal
- 修改
components包组件的导出方式,也修改组件的使用方式 - 新增
layoutContentSpinning全局属性,用于管理加载动画效果。区别于globalMainLayoutLoad会强制刷新页面,该属性仅会触发加载动画。并且基于该属性拓展openSpin,closeSpin方法 - 更新
vite版本至5.0.2
Fixes
- 修复国际化切换,由于字段的错误配置导致缓存一直提示
Fall back to translate的问题 - 修复锁屏不能正常打开、关闭的问题
4.3.4
更新了 MenuTag 的样式,现在有更加细腻的过渡动画。
针对 utils 下的方法,修复 utils/element 中的部分方法因为 ref 注册 dom 的时候不能正确的触发方法的问题。并且修复了部分方法类型的不准确问题;补充了一些示例。
由于 vite 不再支持显式声明 .env=production 配置文件 NODE_ENV=production,所以该版本移除了配置文件的 NODE_ENV 声明。
修复构建提示循环依赖问题。
Feats
- 更新了 MenuTag 的动画效果
- 基于
print-js与vue hooks开发新print方法,存放于utils/basic - 移除 .env.production 文件的 NODE_ENV 显式声明
- 优化构建 chunk
Fixes
- 修复
utils/element方法不能正确获取ref绑定dom的问题 - 修复设置界面抛出只读警告问题
- 修复构建提示循环依赖问题
4.3.3
紧跟尤大大脚步,更新 vite 版本至 5.0.0 版本!与此同时,更新了配套所有插件!
更新 ROOT_ROUTE 的一些使用方法,该配置方法与原有的方式不变,但是有一个新的功能点则是,该配置项会传递给 global-variable 的 globalRootRoute 属性。并且更改模板原有获取 path 的方法,改为响应式获取。当你要进行动态的维护 Root Route 的时候,该方法可能可以帮助到你 useAppRoot。
如果你在更新版本后出现一些奇奇怪怪的问题,不要犹豫,直接删除 node_modules 后再重新安装依赖,这是缓存导致的问题。
Feats
- 更新
vite版本至5.0.0 - 升级所有配套插件
- 升级 ROOT_ROUTE 配置与使用
Fixes
- 修复不能正确关闭标签页问题
- 修复不能正确识别是否能关闭标签页问题
- 修复
closeAll方法导致标签页闪烁问题 - 修改 useVueRouter 注册时机,避免该方法使用的 HMR 报错问题
4.3.2
升级 vue 版本至最新 v3.3.8。
更新了 appConfig 的一些类型,类型定义不再那么的宽泛。
新增 useAppSetting hook,区别于其他的模板方法,该包中的方法,可以用于全局任意页面。该方法相当是对于 useSettingStore 包中方法的补充。
Feats
useMenuTag所有关闭方法,都支持了多种参数类型传递方式。并且closeRight,closeLeft方法能够正确的关闭标签页useDayjs新增一些常用方法- 新增
appExpandRoutes变量,存放展开、提升后的路由 scopeDispose重命名为effectDispose- 优化 maximize 方法,并且支持配置层级。默认层级 99
- changePrimaryColor 方法支持自定义透明度
Fixes
- 修复 LayoutContent 全屏时候在手机浏览器打开高度显示不正确问题
- 修复 MenuTag 菜单报错问题
4.3.1
根据反馈,尽可能的补充了一些代码注释。
Feats
- 标签页右键菜单新增关闭当前页功能,优化了文案
utils/basic包中的部分方法改为 effect 执行逻辑,避免使用 ref 注册的 dom 不能正确的被获取的问题- 新增
effectDispose,watchEffectWithTarget方法 utils/cache新增hasStorage方法- 现在标签页会缓存,不再随着刷新后丢失
- 新增 maximize 方法,并且基于该方法实现 LayoutContent 全屏效果
Fixes
- 修复标签页右键菜单闪烁问题
4.3.0
提供了专用于一些模板的 hooks,可以通过这些方法调用模板的特定功能。并且该功能后续是模板维护的重点。
改造 pinia 使用方式,统一使用 xxxGetters, xxxActions 去调用仓库数据与方法。
Feats
- 新增
store/hooks包 - 新增
hooks/template包
4.2.9
主要更新了命名问题。并且使用单词检查器,扫描整个项目替换了拼写错误的单词。
Feats
- setVariable 方法新增回调函数参数
- 优化 getVariable ts 类型提示,并且使用 readonly 方法包裹
- 重命名 globalVariableToRefs 为 getVariableToRefs,并且使用 readonly 方法包裹
- renderNode 方法新增对于 Slot 类型参数支持
- 新增 BasicTypes 类型
- 提取 RIcon 组件 props 单独维护
- 将 api 管理,提取到
src下维护 - getAppLocalMessages 获取路径方式由相对路径改为绝对路径
- 将 hooks 包中的 variable 方法提取至
src下管理,并且更改名称为global-variable - 调整 GlobalSearch 样式
Fixes
- 修复 downloadBase64File 下载后不能正常移除
a标签问题 - 修复 downloadAnyFile 存在的可能未加载完成而提前执行方法的问题
4.2.8
我好像犯了一个很愚蠢的错误,那就是使用 useFullscreen 方法的时候总是会弹出提示。所以紧急修复了这个很愚蠢的问题,并且移除了这个方法。
在兼容移动端后,手机打开页面会触发缩放情况,这个版本禁用了缩放。如果有需求可以去设置 index.html 中的 meta 标签。并且优化了移动端的锁屏样式。
重构了 RChart 组件,因为该组件过于单调,所以决定赋予更多的功能。结合 naive NCard 组件进行了二次封装。当然你也可以通过设置 preset = default | null | void 0 调用无预设样式的 chart 图表。
Feats
- 移除二次封装 useFullscreen 方法
- 禁用自动缩放
- 优化移动端锁屏样式
- 禁用 vue-i18n 自动导入
- RChart
- 新增 preset 属性配置,以下配置属性仅在 preset 为 card 生效
- 新增 downloadOptions 下载图片配置,具体说明查看文档:https://echarts.apache.org/zh/api.html#echartsInstance.getDataURL
- 修改 RChart 渲染时机,更改为主进程渲染
- 新增 cardExtra slots 自定义配置操作栏
- 新增 title 属性
- 新增 onDropdownSelect 回调方法
- 新增 preset 属性配置,以下配置属性仅在 preset 为 card 生效
- 新增 renderNode 方法,用于减少 if else 表达式渲染 vnode
- 语言包新增 globalMessage 模块,用于配置统一的输出消息
Fixes
- 修复每次执行 useFullscreen 都弹出提示的问题
- RChart
- 修复 animation false 状态渲染异常问题
- 修复响应式代理 echart instance 时,导致部分方法异常问题
4.2.7
主要是做了一些统一命名的事情,以前由于写的比较放浪形骸现在正在慢慢更改这个大问题。
Feats
- 优化顶部操作栏的渲染逻辑,现在将更加合理的管理数据渲染图标
- 二次封装 useFullscreen 方法,如果当前环境不支持全屏则会自动弹出提示
- 重命名 utils/hook 包名为 basic
- 移除 vuedraggable 插件
- RequestCanceler 方法部分属性与方法变为私有
- 重命名 layout 包下的一些组件 name
- 升级 echarts 至 5.4.3 版本
4.2.6
Feats
做了一点大的更新改动,支持小尺寸设备、显示器展示了。但是仅仅是在布局上做了一些兼容!
补充了一些代码的注释。
- RChart 改动
- 重构了 RChart 组件,现在支持自定义主题色了
- 支持配置 theme 为 default 属性,则可以启用 echart 默认样式
- 更新了 echart-themes 包中的说明文件
- 更改 canceler 方法名为 RequestCanceler
- 更改 app-config 包中的一些属性命名,现在将更加统一命名规则
Fixes
- 修复 axios request error 状态时不能正确取消拦截器问题
4.2.5
Feats
- 同步更新 vue 版本至 v3.3.6
- RChart 组件相关改动
- RChart 主题配置提取至 src/echart-themes 包中管理。添加方式和规则不变
- 调整 RChart setupChartTheme 运行时机,现在不会重复运行该方法获取主题
- 新增 AppWatermarkProvider 组件与 appConifg APP_WATERMARK_CONFIG 相关配置项
- 新增 AppMenu 激活、hover 样式
- 新增 RMoreDropdown 组件,基于 NDropDown,默认以
...展示下拉,允许自定义图标
Fixes
- 紧急修复构建 cdn vue-demi 依赖丢失问题
4.2.4
Feats
- 优化 utils/element 包下的方法
- 更新 vue-hooks-plus 版本至 1.8.5
- 移除不必要的 cdn
- 优化了类型包的一些基础类型,剔除了一些无意义的类型
- 提取 RChart props 单独维护
- RTable 组件新增 onContextmenu props 属性。用于在启用右键菜单时被组件强行代理右键点击事件的回调
Fixes
- 修复 RChart 组件不能被正常取消 watchOptions 问题
4.2.3
Fixes
- 修复 RQRCode 组件不能正确的监听 text 属性变化而重新渲染问题
4.2.2
重构了 RTable 组件。优化表格渲染逻辑,解决旧组件重复渲染问题。并且允许自定义拓展工具栏。
为了项目未来的可维护性,将 hook 库自动导入方法移除。应该尽量避免滥用 auto import,否则项目规模庞大后,带来的项目可维护性是一个负担。
新增了一个新的 eslint 规则,并且约定变量初始化的时不明确具体值时,尽量使用 null 或者 void 0 的方式进行赋值。而不是直接使用 undefined 直接赋值。
Feats
- 优化
RChart组件 - 设置
README.md默认为英文 - 优化了一些错误类型的提示,现在报错信息会更加的详细、准确
- 实现了新的文件下载函数
downloadAnyFile,支持blod, file, base64, arrayBuffer - 更新
naive-ui版本至2.35.0 - 新增了一些工具类型与工具方法
- 移除 screenfull 插件,使用 vueuse useFullscreen hook 替代。
- 新增规则
no-undefined,点击查看 具体规则
// 错误示例
const demo = undefined
// 正确示例
const demo = void 0
const demo2 = null
Fixes
- 修复全屏不能正确提示状态问题
4.2.1
经过综合考虑,还是给模板增加 cdn 的配置。基于 vite-plugin-cdn2 插件实现。
Feats
- 指令相关
v-copy指令将使用String强制转换传入的值- 统一暴露节流、防抖指令的配置项类型
import type { DebounceBindingOptions, ThrottleBindingOptions } from '@/directives/type' - 现在
v-disabled指令生效时会降低一点元素的亮度
changeMenuModelValue方法添加节流锁,避免重复刷新 url 导致的一些问题- 新增
cdn,缩减构建体积。如果不需要该配置,搜索viteCDNPlugin注释即可
4.2.0
针对分包,做了全局的重新设计、调整。让包的名称更加语义化;最重要的是,重新抽离了一些全局可能常用的方法,例如:useI18n、useDayjs 等,在以前这些方法存放于对应的包中,其实这样很不合理,所以现在统一存放于 src/hooks 包中。并且该包以后统一存放 hooks 方法,并不是 utils 方法,做了一个本质的区分,所以 xxxCopilot.ts 文件中的方法并不会移动,维持存放在原有的模块下。
引入 useGlobalVariable 来管理全局变量。与 pinia 的使用场景不同,useGlobalVariable 是用于引入一些全局的响应式变量,这些变量不需要缓存,也不依赖任何插件。一个典型的应用是实现 GlobalSpin。使用该方法时,请谨慎使用,避免滥用,因为这些变量会被全局缓存且无法被回收。该方法存放的值,暂不支持缓存(如果有需要,可能后期会增加该功能)。
当项目插件或者需要配置项过多时候,会导致 vite.config.ts 文件变得异常臃肿。所以,在本次更新中,将插件的配置单独提出维护(vite.plugin.confit.ts)。系统的常用配置依旧在 cfg.ts 文件中。所以默认情况下,一般不需要修改 vite.config.ts 文件。
Feats
- 新增
useGlobalVariable管理全局变量(该变量可以是在注册插件之前被调用) v-disbaled指令现在会尝试给元素添加disabled属性,如果该属性生效的话- 注册指令操作现在不会中断程序执行,但是会抛出错误警告
- 抽离
vite.plugin.confit.ts维护项目启动所需插件
4.1.9
Feats
- 新增 RayQRCode 组件(二维码)
- 基于 awesome-qr 封装,继承其所有特性。并且拓展 状态、下载、自动更新等属性
- 自动卸载于释放内存,仅需要关注 text 内容填充
- 移除 qrcode.vue 依赖
- 更新 vue-hooks-plus 版本至 v1.8.2
- 移除 office 功能集成
- 统一包命名方式
- 更改 v-copy 实现细节(使用方式不变)
Fixes
- 修复了一些小细节问题
4.1.8
Feats
- 更新
vite版本至v4.4.9 - 更新
vue-hooks-plus版本至v1.8.1 - 更新了 RayTable 的一些事件的命名
RChart组件做了一些调整- 支持指定 observer 监听对象,默认为 chart 组件本身
- 默认开启 autoChangeTheme 功能
- 支持配置 throttleWait 节流等待时间,默认 500ms
- 支持通过配置
desginConfig.echartTheme属性指定echart theme。并且只需按照约定方式注册的主题,只需要指定主题名称,即可完成lightdark两种主题指定 - RChartInst 新增 dispose render 方法,允许手动渲染与卸载 chart 图
- 新增 animation 属性,如果为 true 则会强制触发渲染过渡动画。该配置受
options.animation属性影响,如果该配置为 false 则不会启用过渡动画
- 移除反转色功能
- 新增图标页面
- 修改国际化图标
- 剔除无用代码,性能++++
4.1.7
Feats
- 新增 mock 支持
- 重新梳理 demo views 包
Fixes
- 修复 RCollapseGrid 组件显示问题,现在如果未存在溢出情况,不会显示 展开/收起 按钮
4.1.6
Feats
- 现在支持切换内容区域的过渡动画效果
- 优化了一些布局的样式细节
- 将过渡动画与 Spin 动画结合
- 拆分了布局组件,使得它看起来更合理
Fixes
- 修复 RChart 组件不能根据内容区域尺寸变化更新 chart 图
4.1.5
Fixes
- 修复 windows 平台下构建失败问题
- 修复换行符导致构建失败问题
- 修复特定 node pnpm 版本构建栈溢出问题
- 修复
RCollapseGrid组件 open 属性歧义问题
4.1.4
该版本后,不会做破坏性更新了。版本功能趋于稳定,后续更新不会那么频繁了。。。。。
Feats
- 新增版权信息开关
- 做了一些小小的细节更新
Fixes
- 修复获取部分元素高度不准确导致布局一些小问题
- 修复底部版权信息展示问题
4.1.3
Feats
- 新增切换路由自动取消上一路由所有请求。但是可以通过配置
useRequest与request方法的cancelConfig.cancel属性控制是否需要自动取消该请求。该配置默认为true,当配置为false时,则不会被取消器取消
import { useRequest, useHookPlusRequest } from '@/axios/index'
// useRequest
const { data, loading, run } = useRequest<{
title: string
}>(
{
url: 'https://jsonplaceholder.typicode.com/todos/1',
method: 'get',
cancelConfig: {
cancel: true,
},
},
{
manual: true,
},
)
// request
request({
url: 'https://jsonplaceholder.typicode.com/todos/1',
method: 'get',
cancelConfig: {
cancel: true,
},
})
localConfig新增配置类型保护- 将原
AppComponent组件包移动至app-components包中,并且按照其功能拆分为sysprovider - 现在将异步注册
vue-router RChart组件新增macarons主题。现在支持便捷的自定义主题,在主题编辑器编辑主题后,下载主题(json)放置于对应主题包中即可被自动注册- 兼容
yarnnpm包管理器的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。并且配套升级了模板的一些插件
- RTransitionComponent 组件加入 Suspense 组件的支持(试验性加入,可能会移除)
- 更新部分组件的事件触发方式,类似 onUpdateValue、onupdate:value 方法改为 props 定义而非 emit(受控、非受控)
- 更新路由切换动画的透明度,视觉效果更友好
- App.tsx 组件内部逻辑抽离为 AppStyleProvider。将一些组件存放位置放在 AppComponents 文件包中
- 新增 useRequest useHookPlusRequest 两个请求 hook,具体使用方法看示例(基于 vue-hook-plus useRequest 实现)
- useRequest 支持直接配置请求与配置请求相关的配置(缓存、节流、防抖等)
- useHookPlusRequest 支持接收一个 Promise 返回值的方法,可以用来包裹 axios 方法然后进行请求配置
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<AxiosTestResponse>({
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 属性支持自定义图标,不再局限于 RIcon,支持自定义图标
- 更改部分组件默认值,默认值统一为
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 方法
useAppTheme key 类型: 'dark' | 'light'
// 暗色主题
.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 中进行缓存的配置管理)
- 回退使用自动导入路由模块方式,具体使用方法查看 路由配置
- 新增 Route Meta order 配置,配置菜单顺序
- 新增 useVueRouter 方法,让你在 setup 环境之外使用 router hook
- 补充引入了一些 eslint 规则
- 支持更多 appConfig 配置
补充
- 后续该模板还会持续维护,会尽可能多的支持更多业务场景
- 最近破坏性更新很多,发布比较频繁,后续应该不会有这么大的破坏性更新。核心重点会放在模板整体的健壮性、可维护性上
- 未来希望模板拆分为一个高拓展性的工程,积木式管理项目,让项目模块之间尽可能的解耦。让模板有更好的拓展性,让你在使用时,可以根据自身业务需求进行拓展(当然,我希望你能以项目的基本维护原则延续)
3.2.3
特征
- 新增锁屏功能(值得注意的是,锁屏解锁后会刷新当前 RouterView 区域,因为在处于锁屏状态时,会自动销毁所有的操作页面。可以理解为是一个 v-if 操作行为)
- 新增 dayjs hook,支持国际化与切换
- 支持更多 appConfig 配置
- 调整 setupAppRoute 触发时机(现在会在 layout 渲染阶段触发)
- 补充了新的组件分包 AppComponents,存放该系统的一些组件(会与系统进行一些深度绑定,例如 AppAvatar 组件依赖系统数据)
补充
- 锁屏功能的设计并不理想,后期会进行破坏性更新。锁屏触发条件与管理方式目前并不理想,管理有点混乱
- 后期会考虑补充 keepAlive 功能。目前没有实现是因为该功能实现的话,需要将所有路由提升为顶层路由(这是 KeepAlive 组件限制),目前并未实现该功能。后期会在权衡后增加该功能,实现时会在 RTransitionComponent 进行拓展补充
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 变量,使用 --r-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 支持
- 补充一些细节注释
- 新增 RChart 组件 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)
- 补充了一些不值一提的小东西
3.1.3
Fixes
- 修复菜单栏、标签页栏 border 显示问题
Feats
- RayTable 组件新增全屏、尺寸调整功能
- 新增 css 预处理全局注入辅助函数。详情看 mixinCSS
- RayTable 组件部分提示文案修改
- body 新增当前主题色 class 标识(dark: ray-template--dark,light: ray-template--light),便捷主题切换配置
3.1.2
Fixes
- 修复 DatePicker 组件国际化部分失效问题
Feats
- 修改 demo 页面展示
- 修改 RCollapseGrid、RayTable 组件为默认不展示 border
3.1.1
Fixes
- 修复国际化语言包模块合并处理不能正常合并问题
- 修复国际化切换时,面包屑、标签页不能正常切换
Feats
- 新增面包屑
- 支持国际化语言包分包管理(但是,依旧是合并到一个文件中,所以需要注意 key 的管理)
- 新增国内预览地址