forked from GoAdminGroup/demo.go-admin.cn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
76 lines (60 loc) · 2.41 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
_ "github.com/GoAdminGroup/go-admin/adapter/gin"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
"github.com/GoAdminGroup/go-admin/template/chartjs"
_ "github.com/GoAdminGroup/themes/adminlte"
_ "github.com/GoAdminGroup/themes/sword"
"github.com/GoAdminGroup/demo/login"
"github.com/GoAdminGroup/demo/pages"
"github.com/GoAdminGroup/go-admin/engine"
"github.com/GoAdminGroup/go-admin/examples/datamodel"
"github.com/GoAdminGroup/go-admin/modules/config"
"github.com/GoAdminGroup/go-admin/plugins/admin"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/types"
"github.com/gin-gonic/gin"
template2 "html/template"
"net/http"
)
func main() {
r := gin.Default()
eng := engine.Default()
adminPlugin := admin.NewAdmin(datamodel.Generators)
// add generator, first parameter is the url prefix of table when visit.
// example:
//
// "user" => http://localhost:9033/admin/info/user
//
adminPlugin.AddGenerator("user", datamodel.GetUserTable)
template.AddLoginComp(login.GetLoginComponent())
template.AddComp(chartjs.NewChart())
rootPath := "/data/www/go-admin"
//rootPath = "."
cfg := config.ReadFromJson(rootPath + "/config.json")
cfg.CustomFootHtml = template2.HTML(`<div style="display:none;">
<script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1278156902&web_id=1278156902"></script>
</div>`)
cfg.CustomHeadHtml = template2.HTML(`<link rel="icon" type="image/png" sizes="32x32" href="//quick.go-admin.cn/official/assets/imgs/icons.ico/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="//quick.go-admin.cn/official/assets/imgs/icons.ico/favicon-64x64.png">
<link rel="icon" type="image/png" sizes="16x16" href="//quick.go-admin.cn/official/assets/imgs/icons.ico/favicon-16x16.png">`)
if err := eng.AddConfig(cfg).AddPlugins(adminPlugin).Use(r); err != nil {
panic(err)
}
r.Static("/uploads", rootPath+"/uploads")
// you can custom your pages like:
r.GET("/admin", func(ctx *gin.Context) {
engine.Content(ctx, func(ctx interface{}) (types.Panel, error) {
return pages.GetDashBoard2Content()
})
})
r.GET("/admin/form1", func(ctx *gin.Context) {
engine.Content(ctx, func(ctx interface{}) (types.Panel, error) {
return pages.GetForm1Content()
})
})
r.GET("/", func(ctx *gin.Context) {
ctx.Redirect(http.StatusMovedPermanently, "/admin")
})
_ = r.Run(":9033")
}