main.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package main
  2. import (
  3. "embed"
  4. _ "embed"
  5. "file-manage-ui/data"
  6. "file-manage-ui/handler"
  7. "fmt"
  8. "github.com/wailsapp/wails/v3/pkg/events"
  9. "log"
  10. "time"
  11. "github.com/wailsapp/wails/v3/pkg/application"
  12. )
  13. //go:embed all:frontend/dist
  14. var assets embed.FS
  15. func main() {
  16. a := &handler.Service{}
  17. app := application.New(application.Options{
  18. Name: "文件管理系统",
  19. Description: "上传文件管理系统",
  20. //功能服务
  21. Services: []application.Service{
  22. //application.NewService(&GreetService{}),
  23. application.NewService(a),
  24. application.NewService(&handler.LoginHandler{}),
  25. },
  26. //资源文件配置
  27. Assets: application.AssetOptions{
  28. Handler: application.AssetFileServerFS(assets),
  29. },
  30. Mac: application.MacOptions{
  31. ApplicationShouldTerminateAfterLastWindowClosed: true,
  32. },
  33. })
  34. data.WindowManager(app)
  35. MainWindow(app)
  36. go func() {
  37. for {
  38. now := time.Now().Format(time.RFC1123)
  39. app.EmitEvent("time", now)
  40. time.Sleep(time.Second)
  41. }
  42. }()
  43. err := app.Run()
  44. if err != nil {
  45. log.Fatal(err)
  46. }
  47. }
  48. func MainWindow(app *application.App) {
  49. //窗口管理
  50. win1 := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
  51. Title: "Main",
  52. Name: "main",
  53. Mac: application.MacWindow{
  54. InvisibleTitleBarHeight: 50,
  55. Backdrop: application.MacBackdropTranslucent,
  56. TitleBar: application.MacTitleBarHiddenInset,
  57. },
  58. Frameless: true,
  59. Windows: application.WindowsWindow{},
  60. //BackgroundColour: application.NewRGB(27, 38, 54),
  61. URL: "/",
  62. EnableDragAndDrop: true,
  63. })
  64. // 加载窗口到 管理器中
  65. data.WindowMap[win1] = true
  66. win1.OnWindowEvent(events.Common.WindowFilesDropped, func(e *application.WindowEvent) {
  67. app.Logger.Info("WindowFilesDropped")
  68. for index, item := range e.Context().DroppedFiles() {
  69. app.Logger.Info(fmt.Sprintf("文件路径(%d): %s", index, item))
  70. }
  71. })
  72. }