|
3 | 3 | {{if ts .CustomCode}} {{.CustomCode|safe}} {{end}}
|
4 | 4 | {{template "theme-angel-kanade/menu" .}}
|
5 | 5 | <div class="nb-container">
|
6 |
| - <div class="ui container"> |
7 |
| - <div id="app"> |
8 |
| - <div class="ui styled fluid accordion" v-for="group in groups"> |
9 |
| - <div class="active title"> |
10 |
| - <i class="dropdown icon"></i> |
11 |
| - @#(group.Tag!==''?group.Tag:'{{tr "Default"}}')#@ |
12 |
| - </div> |
13 |
| - <div class="active content"> |
14 |
| - <div class="ui four stackable status cards"> |
15 |
| - <div v-for="server in group.data" :id="server.ID" class="ui card"> |
16 |
| - <div class="content" v-if="server.Host" style="margin-top: 10px; padding-bottom: 5px"> |
17 |
| - <div class="header"> |
18 |
| - <img v-if="server.Host.CountryCode" style="border-radius: 50%;box-shadow:-1px -1px 2px #eee, 1px 1px 2px #000;width:19px;" :src="'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/flag-icon-css/4.1.5/flags/1x1/'+server.Host.CountryCode + '.svg'" alt="国家"/> <i v-if='server.Host.Platform == "darwin"' |
19 |
| - class="apple icon"></i><i v-else-if='isWindowsPlatform(server.Host.Platform)' |
20 |
| - class="windows icon"></i><i v-else :class="'fl-' + getFontLogoClass(server.Host.Platform)"></i> |
21 |
| - @#server.Name + (server.live?'':'[{{tr "Offline"}}]')#@ |
22 |
| - <i class="nezha-secondary-font info circle icon" style="height: 28px"></i> |
23 |
| - <div class="ui content popup" style="margin-bottom: 0"> |
24 |
| - {{tr "Platform"}}: @#server.Host.Platform#@-@#server.Host.PlatformVersion#@ |
25 |
| - [<span |
26 |
| - v-if="server.Host.Virtualization">@#server.Host.Virtualization#@:</span>@#server.Host.Arch#@]<br /> |
27 |
| - CPU: @#server.Host.CPU#@<br /> |
28 |
| - {{tr "DiskUsed"}}: |
29 |
| - @#formatByteSize(server.State.DiskUsed)#@/@#formatByteSize(server.Host.DiskTotal)#@<br /> |
30 |
| - {{tr "MemUsed"}}: |
31 |
| - @#formatByteSize(server.State.MemUsed)#@/@#formatByteSize(server.Host.MemTotal)#@<br /> |
32 |
| - {{tr "SwapUsed"}}: |
33 |
| - @#formatByteSize(server.State.SwapUsed)#@/@#formatByteSize(server.Host.SwapTotal)#@<br /> |
34 |
| - {{tr "NetTransfer"}}: <i |
35 |
| - class="arrow alternate circle down outline icon"></i>@#formatByteSize(server.State.NetInTransfer)#@<i |
36 |
| - class="arrow alternate circle up outline icon"></i>@#formatByteSize(server.State.NetOutTransfer)#@<br /> |
37 |
| - {{tr "Load"}}: @# toFixed2(server.State.Load1) #@/@# toFixed2(server.State.Load5) #@/@# |
38 |
| - toFixed2(server.State.Load15) #@<br /> |
39 |
| - {{tr "ProcessCount"}}: @# server.State.ProcessCount #@<br /> |
40 |
| - {{tr "ConnCount"}}: TCP @# server.State.TcpConnCount #@ / UDP @# server.State.UdpConnCount #@<br /> |
41 |
| - {{tr "BootTime"}}: @# formatTimestamp(server.Host.BootTime) #@<br /> |
42 |
| - {{tr "LastActive"}}: @# new Date(server.LastActive).toLocaleString() #@<br /> |
43 |
| - {{tr "Version"}}: @#server.Host.Version#@<br /> |
44 |
| - </div> |
45 |
| - <div class="ui divider" style="margin-bottom: 5px"></div> |
| 6 | + <div class="ui container"> |
| 7 | + <div class="ui styled fluid accordion" v-for="group in groups"> |
| 8 | + <div class="active title"> |
| 9 | + <i class="dropdown icon"></i> |
| 10 | + @#(group.Tag!==''?group.Tag:'{{tr "Default"}}')#@ |
| 11 | + </div> |
| 12 | + <div class="active content"> |
| 13 | + <div class="ui four stackable status cards"> |
| 14 | + <div v-for="server in group.data" :id="server.ID" class="ui card"> |
| 15 | + <div class="content" v-if="server.Host" style="margin-top: 10px; padding-bottom: 5px"> |
| 16 | + <div class="header"> |
| 17 | + <img v-if="server.Host.CountryCode" style="border-radius: 50%;box-shadow:-1px -1px 2px #eee, 1px 1px 2px #000;width:19px;" :src="'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/flag-icon-css/4.1.5/flags/1x1/'+server.Host.CountryCode + '.svg'" alt="国家"/> <i v-if='server.Host.Platform == "darwin"' |
| 18 | + class="apple icon"></i><i v-else-if='isWindowsPlatform(server.Host.Platform)' |
| 19 | + class="windows icon"></i><i v-else :class="'fl-' + getFontLogoClass(server.Host.Platform)"></i> |
| 20 | + @#server.Name + (server.live?'':'[{{tr "Offline"}}]')#@ |
| 21 | + <i class="nezha-secondary-font info circle icon" style="height: 28px"></i> |
| 22 | + <div class="ui content popup" style="margin-bottom: 0"> |
| 23 | + {{tr "Platform"}}: @#server.Host.Platform#@-@#server.Host.PlatformVersion#@ |
| 24 | + [<span |
| 25 | + v-if="server.Host.Virtualization">@#server.Host.Virtualization#@:</span>@#server.Host.Arch#@]<br /> |
| 26 | + CPU: @#server.Host.CPU#@<br /> |
| 27 | + {{tr "DiskUsed"}}: |
| 28 | + @#formatByteSize(server.State.DiskUsed)#@/@#formatByteSize(server.Host.DiskTotal)#@<br /> |
| 29 | + {{tr "MemUsed"}}: |
| 30 | + @#formatByteSize(server.State.MemUsed)#@/@#formatByteSize(server.Host.MemTotal)#@<br /> |
| 31 | + {{tr "SwapUsed"}}: |
| 32 | + @#formatByteSize(server.State.SwapUsed)#@/@#formatByteSize(server.Host.SwapTotal)#@<br /> |
| 33 | + {{tr "NetTransfer"}}: <i |
| 34 | + class="arrow alternate circle down outline icon"></i>@#formatByteSize(server.State.NetInTransfer)#@<i |
| 35 | + class="arrow alternate circle up outline icon"></i>@#formatByteSize(server.State.NetOutTransfer)#@<br /> |
| 36 | + {{tr "Load"}}: @# toFixed2(server.State.Load1) #@/@# toFixed2(server.State.Load5) #@/@# |
| 37 | + toFixed2(server.State.Load15) #@<br /> |
| 38 | + {{tr "ProcessCount"}}: @# server.State.ProcessCount #@<br /> |
| 39 | + {{tr "ConnCount"}}: TCP @# server.State.TcpConnCount #@ / UDP @# server.State.UdpConnCount #@<br /> |
| 40 | + {{tr "BootTime"}}: @# formatTimestamp(server.Host.BootTime) #@<br /> |
| 41 | + {{tr "LastActive"}}: @# new Date(server.LastActive).toLocaleString() #@<br /> |
| 42 | + {{tr "Version"}}: @#server.Host.Version#@<br /> |
46 | 43 | </div>
|
47 |
| - <div class="description"> |
48 |
| - <div class="ui grid"> |
49 |
| - <div class="three wide column">CPU</div> |
50 |
| - <div class="thirteen wide column"> |
51 |
| - <div :class="formatPercent(server.live,server.State.CPU, 100).class"> |
52 |
| - <div class="bar" :style="formatPercent(server.live,server.State.CPU, 100).style"> |
53 |
| - <small>@#formatPercent(server.live,server.State.CPU,100).percent#@%</small> |
54 |
| - </div> |
| 44 | + <div class="ui divider" style="margin-bottom: 5px"></div> |
| 45 | + </div> |
| 46 | + <div class="description"> |
| 47 | + <div class="ui grid"> |
| 48 | + <div class="three wide column">CPU</div> |
| 49 | + <div class="thirteen wide column"> |
| 50 | + <div :class="formatPercent(server.live,server.State.CPU, 100).class"> |
| 51 | + <div class="bar" :style="formatPercent(server.live,server.State.CPU, 100).style"> |
| 52 | + <small>@#formatPercent(server.live,server.State.CPU,100).percent#@%</small> |
55 | 53 | </div>
|
56 | 54 | </div>
|
57 |
| - <div class="three wide column">{{tr "MemUsed"}}</div> |
58 |
| - <div class="thirteen wide column"> |
59 |
| - <div :class="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class"> |
60 |
| - <div class="bar" |
61 |
| - :style="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style"> |
62 |
| - <small>@#parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)#@%</small> |
63 |
| - </div> |
| 55 | + </div> |
| 56 | + <div class="three wide column">{{tr "MemUsed"}}</div> |
| 57 | + <div class="thirteen wide column"> |
| 58 | + <div :class="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).class"> |
| 59 | + <div class="bar" |
| 60 | + :style="formatPercent(server.live,server.State.MemUsed, server.Host.MemTotal).style"> |
| 61 | + <small>@#parseInt(server.State?server.State.MemUsed/server.Host.MemTotal*100:0)#@%</small> |
64 | 62 | </div>
|
65 | 63 | </div>
|
66 |
| - <div class="three wide column">{{tr "SwapUsed"}}</div> |
67 |
| - <div class="thirteen wide column"> |
68 |
| - <div :class="formatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).class"> |
69 |
| - <div class="bar" |
70 |
| - :style="formatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).style"> |
71 |
| - <small>@#parseInt(server.State?server.State.SwapUsed/server.Host.SwapTotal*100:0)#@%</small> |
72 |
| - </div> |
| 64 | + </div> |
| 65 | + <div class="three wide column">{{tr "SwapUsed"}}</div> |
| 66 | + <div class="thirteen wide column"> |
| 67 | + <div :class="formatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).class"> |
| 68 | + <div class="bar" |
| 69 | + :style="formatPercent(server.live,server.State.SwapUsed, server.Host.SwapTotal).style"> |
| 70 | + <small>@#parseInt(server.State?server.State.SwapUsed/server.Host.SwapTotal*100:0)#@%</small> |
73 | 71 | </div>
|
74 | 72 | </div>
|
75 |
| - <div class="three wide column">{{tr "NetSpeed"}}</div> |
76 |
| - <div class="thirteen wide column"> |
77 |
| - <i class="arrow alternate circle down outline icon"></i> |
78 |
| - @#formatByteSize(server.State.NetInSpeed)#@/s |
79 |
| - <i class="arrow alternate circle up outline icon"></i> |
80 |
| - @#formatByteSize(server.State.NetOutSpeed)#@/s |
81 |
| - </div> |
82 |
| - <div class="three wide column">{{tr "NetTransfer"}}</div> |
83 |
| - <div class="thirteen wide column"> |
84 |
| - <i class="arrow circle down icon"></i> |
85 |
| - @#formatByteSize(server.State.NetInTransfer)#@ |
86 |
| - |
87 |
| - <i class="arrow circle up icon"></i> |
88 |
| - @#formatByteSize(server.State.NetOutTransfer)#@ |
89 |
| - </div> |
90 |
| - <div class="three wide column">{{tr "DiskUsed"}}</div> |
91 |
| - <div class="thirteen wide column"> |
92 |
| - <div :class="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class"> |
93 |
| - <div class="bar" |
94 |
| - :style="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style"> |
95 |
| - <small>@#parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%</small> |
96 |
| - </div> |
| 73 | + </div> |
| 74 | + <div class="three wide column">{{tr "NetSpeed"}}</div> |
| 75 | + <div class="thirteen wide column"> |
| 76 | + <i class="arrow alternate circle down outline icon"></i> |
| 77 | + @#formatByteSize(server.State.NetInSpeed)#@/s |
| 78 | + <i class="arrow alternate circle up outline icon"></i> |
| 79 | + @#formatByteSize(server.State.NetOutSpeed)#@/s |
| 80 | + </div> |
| 81 | + <div class="three wide column">{{tr "NetTransfer"}}</div> |
| 82 | + <div class="thirteen wide column"> |
| 83 | + <i class="arrow circle down icon"></i> |
| 84 | + @#formatByteSize(server.State.NetInTransfer)#@ |
| 85 | + |
| 86 | + <i class="arrow circle up icon"></i> |
| 87 | + @#formatByteSize(server.State.NetOutTransfer)#@ |
| 88 | + </div> |
| 89 | + <div class="three wide column">{{tr "DiskUsed"}}</div> |
| 90 | + <div class="thirteen wide column"> |
| 91 | + <div :class="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).class"> |
| 92 | + <div class="bar" |
| 93 | + :style="formatPercent(server.live,server.State.DiskUsed, server.Host.DiskTotal).style"> |
| 94 | + <small>@#parseInt(server.State?server.State.DiskUsed/server.Host.DiskTotal*100:0)#@%</small> |
97 | 95 | </div>
|
98 | 96 | </div>
|
99 |
| - <div class="three wide column">{{tr "Info"}}</div> |
100 |
| - <div class="thirteen wide column"> |
101 |
| - <i class="bi bi-cpu-fill" style="font-size: 1.1rem; color: #4a86e8;"></i> @#getCoreAndGHz(server.Host.CPU)#@ |
102 |
| - |
103 |
| - <i class="bi bi-memory" style="font-size: 1.1rem; color: #00ac0d;"></i> @#getByteToGB(server.Host.MemTotal)#@ |
104 |
| - |
105 |
| - <i class="bi bi-hdd-rack-fill" style="font-size: 1.1rem; color: #980000"></i> @#getByteToGB(server.Host.DiskTotal)#@ |
106 |
| - </div> |
107 |
| - <div class="three wide column">{{tr "Uptime"}}</div> |
108 |
| - <div class="thirteen wide column"> |
109 |
| - <i class="clock icon"></i>@#secondToDate(server.State.Uptime)#@ |
110 |
| - </div> |
| 97 | + </div> |
| 98 | + <div class="three wide column">{{tr "Info"}}</div> |
| 99 | + <div class="thirteen wide column"> |
| 100 | + <i class="bi bi-cpu-fill" style="font-size: 1.1rem; color: #4a86e8;"></i> @#getCoreAndGHz(server.Host.CPU)#@ |
| 101 | + |
| 102 | + <i class="bi bi-memory" style="font-size: 1.1rem; color: #00ac0d;"></i> @#getByteToGB(server.Host.MemTotal)#@ |
| 103 | + |
| 104 | + <i class="bi bi-hdd-rack-fill" style="font-size: 1.1rem; color: #980000"></i> @#getByteToGB(server.Host.DiskTotal)#@ |
| 105 | + </div> |
| 106 | + <div class="three wide column">{{tr "Uptime"}}</div> |
| 107 | + <div class="thirteen wide column"> |
| 108 | + <i class="clock icon"></i>@#secondToDate(server.State.Uptime)#@ |
111 | 109 | </div>
|
112 | 110 | </div>
|
113 | 111 | </div>
|
114 |
| - <div class="content" v-else> |
115 |
| - <p>@#server.Name#@</p> |
116 |
| - <p>{{tr "ServerIsOffline"}}</p> |
117 |
| - </div> |
| 112 | + </div> |
| 113 | + <div class="content" v-else> |
| 114 | + <p>@#server.Name#@</p> |
| 115 | + <p>{{tr "ServerIsOffline"}}</p> |
118 | 116 | </div>
|
119 | 117 | </div>
|
120 | 118 | </div>
|
|
129 | 127 | el: '#app',
|
130 | 128 | delimiters: ['@#', '#@'],
|
131 | 129 | data: {
|
| 130 | + defaultTemplate: {{.Conf.Site.Theme}}, |
| 131 | + templates: {{.Themes}}, |
132 | 132 | data: initData,
|
133 | 133 | groups: [],
|
134 | 134 | cache: [],
|
135 | 135 | },
|
| 136 | + mixins: [mixinsVue], |
136 | 137 | created() {
|
137 | 138 | this.group()
|
138 | 139 | },
|
|
0 commit comments