Skip to content

Commit cef6fce

Browse files
committed
feat: 菜单增加单独的动画选择机制
1 parent 85681af commit cef6fce

File tree

4 files changed

+51
-21
lines changed

4 files changed

+51
-21
lines changed

server/model/system/sys_base_menu.go

+21-20
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,36 @@ import (
66

77
type SysBaseMenu struct {
88
global.GVA_MODEL
9-
MenuLevel uint `json:"-"`
10-
ParentId uint `json:"parentId" gorm:"comment:父菜单ID"` // 父菜单ID
11-
Path string `json:"path" gorm:"comment:路由path"` // 路由path
12-
Name string `json:"name" gorm:"comment:路由name"` // 路由name
13-
Hidden bool `json:"hidden" gorm:"comment:是否在列表隐藏"` // 是否在列表隐藏
14-
Component string `json:"component" gorm:"comment:对应前端文件路径"` // 对应前端文件路径
15-
Sort int `json:"sort" gorm:"comment:排序标记"` // 排序标记
16-
Meta `json:"meta" gorm:"embedded;comment:附加属性"` // 附加属性
17-
SysAuthoritys []SysAuthority `json:"authoritys" gorm:"many2many:sys_authority_menus;"`
18-
Children []SysBaseMenu `json:"children" gorm:"-"`
19-
Parameters []SysBaseMenuParameter `json:"parameters"`
20-
MenuBtn []SysBaseMenuBtn `json:"menuBtn"`
9+
MenuLevel uint `json:"-"`
10+
ParentId uint `json:"parentId" gorm:"comment:父菜单ID"` // 父菜单ID
11+
Path string `json:"path" gorm:"comment:路由path"` // 路由path
12+
Name string `json:"name" gorm:"comment:路由name"` // 路由name
13+
Hidden bool `json:"hidden" gorm:"comment:是否在列表隐藏"` // 是否在列表隐藏
14+
Component string `json:"component" gorm:"comment:对应前端文件路径"` // 对应前端文件路径
15+
Sort int `json:"sort" gorm:"comment:排序标记"` // 排序标记
16+
Meta `json:"meta" gorm:"embedded;comment:附加属性"` // 附加属性
17+
SysAuthoritys []SysAuthority `json:"authoritys" gorm:"many2many:sys_authority_menus;"`
18+
Children []SysBaseMenu `json:"children" gorm:"-"`
19+
Parameters []SysBaseMenuParameter `json:"parameters"`
20+
MenuBtn []SysBaseMenuBtn `json:"menuBtn"`
2121
}
2222

2323
type Meta struct {
24-
ActiveName string `json:"activeName" gorm:"comment:高亮菜单"`
25-
KeepAlive bool `json:"keepAlive" gorm:"comment:是否缓存"` // 是否缓存
26-
DefaultMenu bool `json:"defaultMenu" gorm:"comment:是否是基础路由(开发中)"` // 是否是基础路由(开发中)
27-
Title string `json:"title" gorm:"comment:菜单名"` // 菜单名
28-
Icon string `json:"icon" gorm:"comment:菜单图标"` // 菜单图标
29-
CloseTab bool `json:"closeTab" gorm:"comment:自动关闭tab"` // 自动关闭tab
24+
ActiveName string `json:"activeName" gorm:"comment:高亮菜单"`
25+
KeepAlive bool `json:"keepAlive" gorm:"comment:是否缓存"` // 是否缓存
26+
DefaultMenu bool `json:"defaultMenu" gorm:"comment:是否是基础路由(开发中)"` // 是否是基础路由(开发中)
27+
Title string `json:"title" gorm:"comment:菜单名"` // 菜单名
28+
Icon string `json:"icon" gorm:"comment:菜单图标"` // 菜单图标
29+
CloseTab bool `json:"closeTab" gorm:"comment:自动关闭tab"` // 自动关闭tab
30+
TransitionType string `json:"transitionType" gorm:"comment:路由切换动画"` // 路由切换动画
3031
}
3132

3233
type SysBaseMenuParameter struct {
3334
global.GVA_MODEL
3435
SysBaseMenuID uint
3536
Type string `json:"type" gorm:"comment:地址栏携带参数为params还是query"` // 地址栏携带参数为params还是query
36-
Key string `json:"key" gorm:"comment:地址栏携带参数的key"` // 地址栏携带参数的key
37-
Value string `json:"value" gorm:"comment:地址栏携带参数的值"` // 地址栏携带参数的值
37+
Key string `json:"key" gorm:"comment:地址栏携带参数的key"` // 地址栏携带参数的key
38+
Value string `json:"value" gorm:"comment:地址栏携带参数的值"` // 地址栏携带参数的值
3839
}
3940

4041
func (SysBaseMenu) TableName() string {

server/service/system/sys_base_menu.go

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ func (baseMenuService *BaseMenuService) UpdateBaseMenu(menu system.SysBaseMenu)
7272
var oldMenu system.SysBaseMenu
7373
upDateMap := make(map[string]interface{})
7474
upDateMap["keep_alive"] = menu.KeepAlive
75+
upDateMap["transition_type"] = menu.TransitionType
7576
upDateMap["close_tab"] = menu.CloseTab
7677
upDateMap["default_menu"] = menu.DefaultMenu
7778
upDateMap["parent_id"] = menu.ParentId

web/src/view/layout/index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
id="gva-base-load-dom"
3535
class="gva-body-h bg-gray-50 dark:bg-slate-800"
3636
>
37-
<transition mode="out-in" :name="config.transition_type">
37+
<transition mode="out-in" :name="route.meta.transitionType || config.transition_type">
3838
<keep-alive :include="routerStore.keepAliveRouters">
3939
<component :is="Component" :key="route.fullPath" />
4040
</keep-alive>

web/src/view/superAdmin/menu/menu.vue

+28
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,34 @@
300300
</el-select>
301301
</el-form-item>
302302
</el-col>
303+
<el-col :span="8">
304+
<el-form-item>
305+
<template #label>
306+
<div>
307+
<span> 路由切换动画 </span>
308+
<el-tooltip
309+
content="如果设置了路由切换动画,在本路由下的动画优先级高于全局动画切换优先级。"
310+
placement="top"
311+
effect="light"
312+
>
313+
<el-icon><QuestionFilled /></el-icon>
314+
</el-tooltip>
315+
</div>
316+
</template>
317+
318+
<el-select
319+
v-model="form.meta.transitionType"
320+
style="width: 100%"
321+
placeholder="跟随全局"
322+
clearable
323+
>
324+
<el-option value="fade" label="淡入淡出" />
325+
<el-option value="slide" label="滑动" />
326+
<el-option value="zoom" label="缩放" />
327+
<el-option value="none" label="无动画" />
328+
</el-select>
329+
</el-form-item>
330+
</el-col>
303331
</el-row>
304332
</el-form>
305333
<div>

0 commit comments

Comments
 (0)