前端页面
This commit is contained in:
@@ -2,15 +2,23 @@ package apps
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
)
|
||||
|
||||
func mockApps() []maps.Map {
|
||||
var appStore = struct {
|
||||
sync.RWMutex
|
||||
data []maps.Map
|
||||
}{
|
||||
data: defaultMockApps(),
|
||||
}
|
||||
|
||||
func defaultMockApps() []maps.Map {
|
||||
return []maps.Map{
|
||||
{
|
||||
"id": int64(1),
|
||||
"name": "主站移动业务",
|
||||
"name": "\u4e3b\u7ad9\u79fb\u52a8\u4e1a\u52a1",
|
||||
"appId": "ab12xc34s2",
|
||||
"clusterId": int64(1),
|
||||
"domainCount": 3,
|
||||
@@ -20,12 +28,12 @@ func mockApps() []maps.Map {
|
||||
"pinningMode": "report",
|
||||
"sanMode": "strict",
|
||||
"riskLevel": "medium",
|
||||
"riskSummary": "Pinning 处于观察模式",
|
||||
"riskSummary": "Pinning \u5904\u4e8e\u89c2\u5bdf\u6a21\u5f0f",
|
||||
"secretVersion": "v2026.02.20",
|
||||
},
|
||||
{
|
||||
"id": int64(2),
|
||||
"name": "视频网关业务",
|
||||
"name": "\u89c6\u9891\u7f51\u5173\u4e1a\u52a1",
|
||||
"appId": "vd8992ksm1",
|
||||
"clusterId": int64(2),
|
||||
"domainCount": 1,
|
||||
@@ -35,12 +43,12 @@ func mockApps() []maps.Map {
|
||||
"pinningMode": "enforce",
|
||||
"sanMode": "strict",
|
||||
"riskLevel": "low",
|
||||
"riskSummary": "已启用强校验",
|
||||
"riskSummary": "\u5df2\u542f\u7528\u5f3a\u6821\u9a8c",
|
||||
"secretVersion": "v2026.02.18",
|
||||
},
|
||||
{
|
||||
"id": int64(3),
|
||||
"name": "海外灰度测试",
|
||||
"name": "\u6d77\u5916\u7070\u5ea6\u6d4b\u8bd5",
|
||||
"appId": "ov7711hkq9",
|
||||
"clusterId": int64(1),
|
||||
"domainCount": 2,
|
||||
@@ -50,12 +58,57 @@ func mockApps() []maps.Map {
|
||||
"pinningMode": "off",
|
||||
"sanMode": "report",
|
||||
"riskLevel": "high",
|
||||
"riskSummary": "应用关闭且证书策略偏弱",
|
||||
"riskSummary": "\u5e94\u7528\u5173\u95ed\u4e14\u8bc1\u4e66\u7b56\u7565\u504f\u5f31",
|
||||
"secretVersion": "v2026.01.30",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func cloneMap(src maps.Map) maps.Map {
|
||||
dst := maps.Map{}
|
||||
for k, v := range src {
|
||||
dst[k] = v
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
func cloneApps(apps []maps.Map) []maps.Map {
|
||||
result := make([]maps.Map, 0, len(apps))
|
||||
for _, app := range apps {
|
||||
result = append(result, cloneMap(app))
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func mockApps() []maps.Map {
|
||||
appStore.RLock()
|
||||
defer appStore.RUnlock()
|
||||
return cloneApps(appStore.data)
|
||||
}
|
||||
|
||||
func deleteApp(appID int64) bool {
|
||||
if appID <= 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
appStore.Lock()
|
||||
defer appStore.Unlock()
|
||||
|
||||
found := false
|
||||
filtered := make([]maps.Map, 0, len(appStore.data))
|
||||
for _, app := range appStore.data {
|
||||
if app.GetInt64("id") == appID {
|
||||
found = true
|
||||
continue
|
||||
}
|
||||
filtered = append(filtered, app)
|
||||
}
|
||||
if found {
|
||||
appStore.data = filtered
|
||||
}
|
||||
return found
|
||||
}
|
||||
|
||||
func filterApps(keyword string, riskLevel string, ecsMode string, pinningMode string) []maps.Map {
|
||||
all := mockApps()
|
||||
if len(keyword) == 0 && len(riskLevel) == 0 && len(ecsMode) == 0 && len(pinningMode) == 0 {
|
||||
@@ -89,6 +142,15 @@ func filterApps(keyword string, riskLevel string, ecsMode string, pinningMode st
|
||||
|
||||
func pickApp(appID int64) maps.Map {
|
||||
apps := mockApps()
|
||||
if len(apps) == 0 {
|
||||
return maps.Map{
|
||||
"id": int64(0),
|
||||
"name": "",
|
||||
"appId": "",
|
||||
"clusterId": int64(0),
|
||||
}
|
||||
}
|
||||
|
||||
if appID <= 0 {
|
||||
return apps[0]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user