diff --git a/internal/web/actions/default/servers/init.go b/internal/web/actions/default/servers/init.go index 96461c89..c95d2e04 100644 --- a/internal/web/actions/default/servers/init.go +++ b/internal/web/actions/default/servers/init.go @@ -19,6 +19,7 @@ func init() { GetPost("/addPortPopup", new(AddPortPopupAction)). GetPost("/addServerNamePopup", new(AddServerNamePopupAction)). GetPost("/addOriginPopup", new(AddOriginPopupAction)). + Get("/serverNamesPopup", new(ServerNamesPopupAction)). EndAll() }) } diff --git a/internal/web/actions/default/servers/serverNamesPopup.go b/internal/web/actions/default/servers/serverNamesPopup.go new file mode 100644 index 00000000..d4eff379 --- /dev/null +++ b/internal/web/actions/default/servers/serverNamesPopup.go @@ -0,0 +1,46 @@ +package servers + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" +) + +type ServerNamesPopupAction struct { + actionutils.ParentAction +} + +func (this *ServerNamesPopupAction) Init() { + this.Nav("", "", "") +} + +func (this *ServerNamesPopupAction) RunGet(params struct { + ServerId int64 +}) { + serverNamesResp, err := this.RPC().ServerRPC().FindServerNames(this.AdminContext(), &pb.FindServerNamesRequest{ServerId: params.ServerId}) + if err != nil { + this.ErrorPage(err) + return + } + serverNames := []*serverconfigs.ServerNameConfig{} + if len(serverNamesResp.ServerNamesJSON) > 0 { + err = json.Unmarshal(serverNamesResp.ServerNamesJSON, &serverNames) + if err != nil { + this.ErrorPage(err) + return + } + } + + result := []string{} + for _, serverName := range serverNames { + if len(serverName.SubNames) == 0 { + result = append(result, serverName.Name) + } else { + result = append(result, serverName.SubNames...) + } + } + this.Data["serverNames"] = result + + this.Show() +} diff --git a/web/public/js/components/common/links.js b/web/public/js/components/common/links.js index 679b665b..69e9b2ff 100644 --- a/web/public/js/components/common/links.js +++ b/web/public/js/components/common/links.js @@ -40,6 +40,18 @@ Vue.component("link-popup", { template: `` }) +Vue.component("popup-icon", { + props: ["title", "href", "height"], + methods: { + clickPrevent: function () { + teaweb.popup(this.href, { + height: this.height + }) + } + }, + template: ` ` +}) + // 小提示 Vue.component("tip-icon", { props: ["content"], diff --git a/web/views/@default/servers/index.html b/web/views/@default/servers/index.html index 540a76fd..db7ef459 100644 --- a/web/views/@default/servers/index.html +++ b/web/views/@default/servers/index.html @@ -51,7 +51,7 @@ {{server.serverNames[0].name}} {{server.serverNames[0].subNames[0]}} - 等{{server.countServerNames}}个域名 + 等{{server.countServerNames}}个域名 - diff --git a/web/views/@default/servers/serverNamesPopup.html b/web/views/@default/servers/serverNamesPopup.html new file mode 100644 index 00000000..af6c5d8b --- /dev/null +++ b/web/views/@default/servers/serverNamesPopup.html @@ -0,0 +1,11 @@ +{$layout "layout_popup"} + +

查看域名

+ +
+ +
+ +
+ {{serverName}} +
diff --git a/web/views/@default/servers/serverNamesPopup.js b/web/views/@default/servers/serverNamesPopup.js new file mode 100644 index 00000000..6125acfe --- /dev/null +++ b/web/views/@default/servers/serverNamesPopup.js @@ -0,0 +1,14 @@ +Tea.context(function () { + let allServerNames = this.serverNames.$copy(); + + this.keyword = "" + + this.$delay(function () { + let that = this + this.$watch("keyword", function (keyword) { + that.serverNames = allServerNames.$findAll(function (k, serverName) { + return teaweb.match(serverName, keyword) + }) + }) + }) +}) \ No newline at end of file