mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	优化界面
This commit is contained in:
		@@ -2,38 +2,49 @@ package actionutils
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/iwind/TeaGo/actions"
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type TabItem struct {
 | 
			
		||||
	Name       string `json:"name"`
 | 
			
		||||
	SubName    string `json:"subName"`
 | 
			
		||||
	URL        string `json:"url"`
 | 
			
		||||
	Icon       string `json:"icon"`
 | 
			
		||||
	IsActive   bool   `json:"isActive"`
 | 
			
		||||
	IsRight    bool   `json:"isRight"`
 | 
			
		||||
	IsTitle    bool   `json:"isTitle"`
 | 
			
		||||
	IsDisabled bool   `json:"isDisabled"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Tabbar Tabbar定义
 | 
			
		||||
type Tabbar struct {
 | 
			
		||||
	items []maps.Map
 | 
			
		||||
	items []*TabItem
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewTabbar 获取新对象
 | 
			
		||||
func NewTabbar() *Tabbar {
 | 
			
		||||
	return &Tabbar{
 | 
			
		||||
		items: []maps.Map{},
 | 
			
		||||
		items: []*TabItem{},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Add 添加菜单项
 | 
			
		||||
func (this *Tabbar) Add(name string, subName string, url string, icon string, active bool) maps.Map {
 | 
			
		||||
	m := maps.Map{
 | 
			
		||||
		"name":    name,
 | 
			
		||||
		"subName": subName,
 | 
			
		||||
		"url":     url,
 | 
			
		||||
		"icon":    icon,
 | 
			
		||||
		"active":  active,
 | 
			
		||||
		"right":   false,
 | 
			
		||||
		"isTitle": false,
 | 
			
		||||
func (this *Tabbar) Add(name string, subName string, url string, icon string, active bool) *TabItem {
 | 
			
		||||
	var m = &TabItem{
 | 
			
		||||
		Name:       name,
 | 
			
		||||
		SubName:    subName,
 | 
			
		||||
		URL:        url,
 | 
			
		||||
		Icon:       icon,
 | 
			
		||||
		IsActive:   active,
 | 
			
		||||
		IsRight:    false,
 | 
			
		||||
		IsTitle:    false,
 | 
			
		||||
		IsDisabled: false,
 | 
			
		||||
	}
 | 
			
		||||
	this.items = append(this.items, m)
 | 
			
		||||
	return m
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Items 取得所有的Items
 | 
			
		||||
func (this *Tabbar) Items() []maps.Map {
 | 
			
		||||
func (this *Tabbar) Items() []*TabItem {
 | 
			
		||||
	return this.items
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ func (this *ClusterHelper) BeforeAction(actionPtr actions.ActionWrapper) (goNext
 | 
			
		||||
 | 
			
		||||
	action.Data["teaMenu"] = "clusters"
 | 
			
		||||
 | 
			
		||||
	selectedTabbar := action.Data.GetString("mainTab")
 | 
			
		||||
	clusterId := action.ParamInt64("clusterId")
 | 
			
		||||
	clusterIdString := strconv.FormatInt(clusterId, 10)
 | 
			
		||||
	var selectedTabbar = action.Data.GetString("mainTab")
 | 
			
		||||
	var clusterId = action.ParamInt64("clusterId")
 | 
			
		||||
	var clusterIdString = strconv.FormatInt(clusterId, 10)
 | 
			
		||||
	action.Data["clusterId"] = clusterId
 | 
			
		||||
 | 
			
		||||
	if clusterId > 0 {
 | 
			
		||||
@@ -57,18 +57,39 @@ func (this *ClusterHelper) BeforeAction(actionPtr actions.ActionWrapper) (goNext
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var nodeId = action.ParamInt64("nodeId")
 | 
			
		||||
		var isInCluster = nodeId <= 0
 | 
			
		||||
 | 
			
		||||
		var tabbar = actionutils.NewTabbar()
 | 
			
		||||
		tabbar.Add("", "", "/clusters", "arrow left", false)
 | 
			
		||||
		{
 | 
			
		||||
			var item = tabbar.Add(cluster.Name, "", "/clusters/cluster?clusterId="+clusterIdString, "angle right", true)
 | 
			
		||||
			item["isTitle"] = true
 | 
			
		||||
			var url = "/clusters/cluster?clusterId=" + clusterIdString
 | 
			
		||||
			if !isInCluster {
 | 
			
		||||
				url = "/clusters/cluster/nodes?clusterId=" + clusterIdString
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var item = tabbar.Add(cluster.Name, "", url, "angle right", true)
 | 
			
		||||
			item.IsTitle = true
 | 
			
		||||
		}
 | 
			
		||||
		if teaconst.IsPlus {
 | 
			
		||||
			tabbar.Add("看板", "", "/clusters/cluster/boards?clusterId="+clusterIdString, "chart line area", selectedTabbar == "board")
 | 
			
		||||
			{
 | 
			
		||||
				var item = tabbar.Add("集群看板", "", "/clusters/cluster/boards?clusterId="+clusterIdString, "chart line area", selectedTabbar == "board")
 | 
			
		||||
				item.IsDisabled = !isInCluster
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		{
 | 
			
		||||
			var item = tabbar.Add("节点列表", "", "/clusters/cluster/nodes?clusterId="+clusterIdString, "server", selectedTabbar == "node")
 | 
			
		||||
			item.IsDisabled = !isInCluster
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
			var item = tabbar.Add("集群设置", "", "/clusters/cluster/settings?clusterId="+clusterIdString, "setting", selectedTabbar == "setting")
 | 
			
		||||
			item.IsDisabled = !isInCluster
 | 
			
		||||
		}
 | 
			
		||||
		{
 | 
			
		||||
			var item = tabbar.Add("删除集群", "", "/clusters/cluster/delete?clusterId="+clusterIdString, "trash", selectedTabbar == "delete")
 | 
			
		||||
			item.IsDisabled = !isInCluster
 | 
			
		||||
		}
 | 
			
		||||
		tabbar.Add("节点", "", "/clusters/cluster/nodes?clusterId="+clusterIdString, "server", selectedTabbar == "node")
 | 
			
		||||
		tabbar.Add("设置", "", "/clusters/cluster/settings?clusterId="+clusterIdString, "setting", selectedTabbar == "setting")
 | 
			
		||||
		tabbar.Add("删除", "", "/clusters/cluster/delete?clusterId="+clusterIdString, "trash", selectedTabbar == "delete")
 | 
			
		||||
		actionutils.SetTabbar(action, tabbar)
 | 
			
		||||
 | 
			
		||||
		// 左侧菜单
 | 
			
		||||
 
 | 
			
		||||
@@ -110,7 +110,7 @@ func (this *ServerHelper) createLeftMenu(action *actions.ActionObject) {
 | 
			
		||||
	tabbar.Add("", "", "/servers", "left arrow", false)
 | 
			
		||||
	if len(serverConfig.Name) > 0 {
 | 
			
		||||
		var item = tabbar.Add(serverConfig.Name, "", "/servers/server?serverId="+serverIdString, "angle right", true)
 | 
			
		||||
		item["isTitle"] = true
 | 
			
		||||
		item.IsTitle = true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if teaconst.IsPlus {
 | 
			
		||||
 
 | 
			
		||||
@@ -107,9 +107,10 @@
 | 
			
		||||
    <div class="main" :class="{'without-menu':teaSubMenus.menus == null || teaSubMenus.menus.length == 0 || (teaSubMenus.menus.length == 1 && teaSubMenus.menus[0].alwaysActive), 'without-secondary-menu':teaSubMenus.alwaysMenu == null || teaSubMenus.alwaysMenu.items.length <= 1, 'without-footer':!teaShowOpenSourceInfo}" v-cloak="">
 | 
			
		||||
        <!-- 操作菜单 -->
 | 
			
		||||
        <div class="ui top menu tabular tab-menu small" v-if="teaTabbar.length > 1">
 | 
			
		||||
            <a class="item" v-for="item in teaTabbar" :class="{'active':item.active, right:item.right, title: item.isTitle, icon: item.icon != null && item.icon.length > 0}"  :href="item.url">
 | 
			
		||||
            <a class="item" v-for="item in teaTabbar" :class="{'active':item.isActive && !item.isDisabled, right:item.isRight, title: item.isTitle, icon: item.icon != null && item.icon.length > 0, disabled: item.isDisabled}"  :href="item.url">
 | 
			
		||||
                <var>{{item.name}}<span v-if="item.subName.length > 0">({{item.subName}})</span><i class="icon small" :class="item.icon" v-if="item.icon != null && item.icon.length > 0"></i> </var>
 | 
			
		||||
                <div class="bottom-indicator" v-if="item.active && !item.isTitle"></div>
 | 
			
		||||
                <var v-if="item.isTitle && typeof _data.node == 'object'">{{node.name}}</var>
 | 
			
		||||
                <div class="bottom-indicator" v-if="item.isActive && !item.isTitle"></div>
 | 
			
		||||
            </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user