#### What type of PR is this?
/area console
/kind improvement
/milestone 2.11.x
#### What this PR does / why we need it:
升级 FormKit 的版本至 1.3.0
see https://formkit.com/changelog#_130
#### Does this PR introduce a user-facing change?
```release-note
升级 FormKit 的版本至 1.3.0
```
#### What type of PR is this?
/kind feature
/area console
/milestone 2.11.x
#### What this PR does / why we need it:
添加 `<StickyBlock />` 组件,用于将元素固定在顶部或者底部。
此外,此 PR 针对主题设置、插件设置、系统设置等表单可能较长的页面使用了此组件。
<img width="1214" alt="图片" src="https://github.com/halo-dev/halo/assets/21301288/abc849eb-a9a9-4d0a-b81c-d7430815660d">
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4548
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
添加 `<StickyBlock />` 组件,用于将元素固定在顶部或者底部,并为主题 / 插件 / 系统设置的底部保存按钮区域做了适配。
```
#### What type of PR is this?
/area console
/kind feature
/milestone 2.11.x
#### What this PR does / why we need it:
Add email field for signup
<img width="832" alt="图片" src="https://github.com/halo-dev/halo/assets/21301288/dabc7411-a18d-4a8b-a0be-f875b16ba58f">
#### Does this PR introduce a user-facing change?
```release-note
用户注册新增电子邮箱字段。
```
#### What type of PR is this?
/kind bug
/area console
/milestone 2.11.x
#### What this PR does / why we need it:
修复在 Windows 平台下无法正常启动 Console 服务以及无法正常编译的问题。
<img width="1124" alt="图片" src="https://github.com/halo-dev/halo/assets/21301288/55edd00a-8e71-437e-8889-0fe4a43bb40b">
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4874
#### Special notes for your reviewer:
在 Windows 平台下测试 `pnpm dev` 和 `pnpm build`,检查是否能够正常运行。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.11.x
#### What this PR does / why we need it:
修复代码错误导致的控制台警告。异常现象:备份列表页面,有多少备份文件就会有多少个警告日志。
![image](https://github.com/halo-dev/halo/assets/44720422/2dc64621-9731-4647-b23e-c3a5aa115c37)
#### Which issue(s) this PR fixes:
Fixes#4871
#### Special notes for your reviewer:
None
#### Does this PR introduce a user-facing change?
```release-note
修复备份页面中的浏览器控制台警告日志
```
#### What type of PR is this?
/kind feature
/area console
#### What this PR does / why we need it:
为文章以及页面预览增加终端切换功能,类似于预览主题的终端切换
#### Which issue(s) this PR fixes:
Fixes#4789
#### Special notes for your reviewer:
测试方式:
本地运行halo,预览文章和页面,切换不同终端,各个界面正常显示且功能正常。
#### Does this PR introduce a user-facing change?
```release-note
文章预览支持模拟不同设备尺寸。
```
#### What type of PR is this?
/kind bug
/area console
/milestone 2.11.x
#### What this PR does / why we need it:
重构去重元数据的逻辑,解决删除元数据后仍旧提示 key 不能重复的问题。
#### How to test it?
1. 在文章列表点击设置按钮
2. 添加两个个空的元数据,不保存直接关闭设置框。
3. 再次打开设置框,点击删除空的元数据,查看是否会提示 key 重复。
#### Does this PR introduce a user-facing change?
```release-note
解决删除元数据后仍旧提示 key 不能重复的问题
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.11.x
#### What this PR does / why we need it:
为插件的 bundle.css 和 bundle.js 重定向请求添加时间戳参数,防止被浏览器、Nginx、CDN 服务缓存,导致插件的资源不能及时更新。
#### Which issue(s) this PR fixes:
Fixes#4803
#### Special notes for your reviewer:
测试方式:
1. 在 Firefox 浏览器测试启动和停止若干插件,观察插件提供的 UI 样式是否正常即可。
#### Does this PR introduce a user-facing change?
```release-note
优化 Console 端插件捆绑资源的请求,防止在操作插件状态之后无法及时更新资源。
```
#### What type of PR is this?
/kind bug
#### What this PR does / why we need it:
优化了编辑器的性能,并解决了卡死现象。具体措施如下:
1. 编辑器异步加载时,由于其 component 并不会使用响应式,所以也无需进行代理,因此使用 `markRaw` 将其转为普通对象,可以优化 vue 性能。
2. 由于 `DefaultEditor` 有多个根节点导致透传的 attrs 无法设置,因此新增一个 div 节点将其原有节点包裹。参见 https://cn.vuejs.org/guide/components/attrs.html#attribute-inheritance-on-multiple-root-nodes 。
3. 原有编辑器实例在切换路由之后不会释放,此次修改之后,将在 vue 的 `onBeforeUnmount` 时间中手动释放编辑器实例。
#### How to test it?
1. 新建文章,新建一个表格。
2. 不要保存,点击文章路由跳出编辑器界面,再次点击上一次所编辑器的文章,查看是否会卡死。
#### Which issue(s) this PR fixes:
Fixes#4798
#### Does this PR introduce a user-facing change?
```release-note
优化编辑器性能并解决切换页面所造成的卡死现象
```
#### What type of PR is this?
/kind bug
#### What this PR does / why we need it:
console附件页面List Mode和Grid Mode的tooltip写反了:
<img width="1172" alt="image" src="https://github.com/halo-dev/halo/assets/4889894/6645b29f-7e92-4c42-9938-892e53f92115">
#### Which issue(s) this PR fixes:
Fixes #
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
修复附件管理布局切换按钮的提示文字。
```
#### What type of PR is this?
/kind bug
#### What this PR does / why we need it:
当前用户上传头像时的接口中名字应该是 `-` 而不是具体的 metadata name。
#### How to test it?
使用无用户管理权限的用户登录,查看是否能上传头像。
#### Which issue(s) this PR fixes:
Fixes#4776
#### Does this PR introduce a user-facing change?
```release-note
解决无用户管理权限的用户无法上传头像的问题
```
#### What type of PR is this?
/kind bug
#### What this PR does / why we need it:
在获取自定义元数据时,将空白 key 与重复的 key 过滤,用于解决可能出现的额外空白元数据及报错问题。
#### How to test it?
尝试点击编辑文章 -> 设置,查看是否有额外空白元数据的出现。
由于是概率性问题,因此若本地环境未复现,则需要使用生产环境进行验证。
#### Which issue(s) this PR fixes:
Fixes#4764
#### Does this PR introduce a user-facing change?
```release-note
解决文章设置中可能出现空白元数据的问题
```
#### What type of PR is this?
/area console
/kind improvement
#### What this PR does / why we need it:
适配 https://github.com/halo-dev/halo/pull/4745 ,使用新的接口启动/停止插件。
#### Which issue(s) this PR fixes:
Fixes#4744
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area console
#### What this PR does / why we need it:
![fix-status-filter-2](https://github.com/halo-dev/halo/assets/106857035/e1f0a7ea-1328-45f2-ad06-cf14e91b8e4a)
#### Which issue(s) this PR fixes:
Fixes#4731
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
修复 Console 端评论状态筛选无法显示筛选结果的问题
```
<!-- Thanks for sending a pull request! Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/master/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->
#### What type of PR is this?
/kind bug
/area console
<!--
添加其中一个类别:
Add one of the following kinds:
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement
适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:
/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->
#### What this PR does / why we need it:
修复用户仅拥有插件查看权限时,有setting的插件会导致无法加载插件扩展tab的问题
#### Which issue(s) this PR fixes:
<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.
用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes#4732
#### Special notes for your reviewer:
1. 使用如下测试版 s3 插件
[plugin-s3-1.5.0-SNAPSHOT.jar.zip](https://github.com/halo-dev/halo/files/12914987/plugin-s3-1.5.0-SNAPSHOT.jar.zip)
<https://github.com/longjuan/halo-plugin-s3os/tree/aaa>
2. 创建一个用户,仅赋予 S3 Link 权限(依赖于插件查看和附件管理权限)
3. 登录这个新用户,打开 s3 插件详情
4. 观察 关联S3文件 功能是否正常出现
#### Does this PR introduce a user-facing change?
<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->
```release-note
修复部分场景下插件详情的扩展 tab 不能正常显示的问题
```
#### What type of PR is this?
/kind cleanup
#### What this PR does / why we need it:
Bump all versions.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/milestone 2.10.x
/kind improvement
#### What this PR does / why we need it:
修改 @halo-dev/components 的版本号为 1.9.0,将在 2.10.0 发布之后推送到 npmjs.com
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.10.x
#### What this PR does / why we need it:
当用户未设置头像时,头像显示添加图标,能够更好的提示用户如何设置头像。
<img width="528" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/380ed906-2d76-41bd-ae17-6c31ca7c444a">
#### Which issue(s) this PR fixes:
Fixes#4693
#### Special notes for your reviewer:
1. 测试未设置头像时,是否添加添加图标。
2. 测试设置头像之后,鼠标移动到头像时,是否显示修改图标。
#### Does this PR introduce a user-facing change?
```release-note
优化 Console 端个人资料的头像显示,未设置头像时显示添加图标。
```
#### What type of PR is this?
/kind feature
/area core
/area console
/milestone 2.10.x
#### What this PR does / why we need it:
用户支持为不同的通知事件配置通知方式
<img width="872" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/dad85ba3-96bc-4580-9dae-2b9e66e877fe">
#### Does this PR introduce a user-facing change?
```release-note
用户支持为不同的通知事件配置通知方式
```
#### What type of PR is this?
/area console
/kind feature
/milestone 2.10.x
#### What this PR does / why we need it:
VSwitch 组件支持传入 loading 属性以显示加载状态。
此外,此 PR 为插件启动/停止的开关适配了这个特性用于测试。
<img width="460" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/b78221fe-6b53-4f8c-ba00-6cea2c45b5de">
#### Which issue(s) this PR fixes:
Fixes#4687
#### Special notes for your reviewer:
测试插件启动/停止时是否显示加载状态
#### Does this PR introduce a user-facing change?
```release-note
Console 端的 VSwitch 组件支持传入 loading 属性以显示加载状态。
```
#### What type of PR is this?
/kind improvement
#### What this PR does / why we need it:
升级编辑器版本,增加新的扩展,例如拖拽、分栏等。
移除了 `@tiptap/vue-3` 依赖包,此包已经在 `@halo-dev/richtext-editor` 中进行提供。
新增 `link:editor` 命令,可以本地引入 richtext-editor 的依赖,进行本地调试。
#### How to test it?
使用编辑器,保证编辑器功能正常无误即可。并测试编辑器新加功能。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.10.x
#### What this PR does / why we need it:
为认证方式添加更直观的配置页面入口
<img width="1661" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/a7f86d5b-caab-4ac1-9a12-2bb2f5b5f8fb">
#### Which issue(s) this PR fixes:
Fixes#4634
#### Does this PR introduce a user-facing change?
```release-note
为 Console 端认证方式管理添加更直观的配置页面入口
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.10.x
#### What this PR does / why we need it:
重构 Console 端用户详情页面的结构。
1. 提高代码可读性。
2. 使用问号参数来区分不同的选项卡。
3. 封装头像修改相关的代码为组件。
#### Special notes for your reviewer:
测试用户详情页面的所有功能是否正常。
#### Does this PR introduce a user-facing change?
```release-note
重构 Console 端用户详情页面的代码结构。
```
#### What type of PR is this?
/kind improvement
/kind api-change
/area core
#### What this PR does / why we need it:
This PR refines route paths created from <https://github.com/halo-dev/halo/pull/4598>. Because the user scope is not necessary here.
#### Special notes for your reviewer:
Try to manage your PATs.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind feature
/kind api-change
/area core
#### What this PR does / why we need it:
Support for personal access token mechanism.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/1309
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
提供个人访问令牌机制
```
#### What type of PR is this?
/area console
/kind improvement
/milestone 2.10.x
#### What this PR does / why we need it:
升级 FormKit 版本至 1.1.0 正式版。
see https://formkit.com/changelog
#### Special notes for your reviewer:
测试 Console 的各个表单是否正常工作即可。
#### Does this PR introduce a user-facing change?
```release-note
升级 FormKit 版本至 1.1.0 正式版。
```
#### What type of PR is this?
/kind cleanup
/area console
#### What this PR does / why we need it:
修复 `@halo-dev/components` 包编译时有 error 级异常的问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4544
#### Special notes for your reviewer:
观察此 PR 的 ci 中是否有异常输出即可。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area console
/kind bug
/milestone 2.10.x
#### What this PR does / why we need it:
修复了主题远程下载标签的英文语言包键,使其可以正确显示标签标题。
#### Does this PR introduce a user-facing change?
```release-note
修复 Console 端主题远程下载标签的英文语言包键名,使其可以正确显示标签标题。
```