package main import ( "changeme/api" "changeme/internal/logic/initFunc" "context" "embed" "strings" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/util/gconv" "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/menu/keys" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/assetserver" "github.com/wailsapp/wails/v2/pkg/runtime" ) //go:embed all:frontend/dist var assets embed.FS //go:embed wails.json var wailsjson embed.FS var wailsConfig map[string]interface{} func init() { wailsConfig = make(map[string]interface{}) } type App struct { ctx context.Context } func main() { // Create an instance of the app structure app := NewApp() //开启视频监控的exe go initFunc.RunPiServerExe() go initFunc.SetupCert() go HttpServer() wilsJon,_ := wailsjson.ReadFile("wails.json") wailsConfig = gconv.Map(wilsJon) //读取wails.json配置文件 wailsConfigOem := initFunc.RequestOemSettingInfo(gconv.Map(wilsJon)) //将 wailsConfig 保存起来 if wailsConfigOem == nil { wailsConfigOem = g.Map{ "brand_name": "Error-config", "website_url": "https://www.baidu.com", } } //增加菜单 AppMenu := menu.NewMenu() SubMenu := AppMenu.AddSubmenu("工具") SubMenu.AddText("刷新", keys.CmdOrCtrl("F5"), func(_ *menu.CallbackData) { // runtime.Reload(app.ctx) runtime.WindowReloadApp(app.ctx) }) // Create application with options err := wails.Run(&options.App{ Title: wailsConfigOem["brand_name"].(string), Width: 1024, Height: 768, AssetServer: &assetserver.Options{ Assets: assets, }, BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, OnStartup: app.startup, Menu: AppMenu, Bind: []interface{}{ app, }, }) if err != nil { println("Error:", err.Error()) } } // NewApp creates a new App application struct func NewApp() *App { return &App{} } // startup is called when the app starts. The context is saved // so we can call the runtime methods func (a *App) startup(ctx context.Context) { a.ctx = ctx } // oem的门店管理地址 func (a *App) ShopUrl() string { wailsConfigOem := initFunc.RequestOemSettingInfo(wailsConfig) if wailsConfigOem == nil { return "https://www.baidu.com" } domain := wailsConfigOem["domain"].(string) if !strings.Contains(domain, "http") { domain = "https://"+domain } return domain+"?oem_id="+gconv.String(wailsConfigOem["id"])+"&t="+gconv.String(gtime.TimestampMilli()) } func HttpServer(){ // releasePort(8383) s := ghttp.GetServer() // 处理 /take_photo_page 路由 s.BindHandler("/take_photo_page",api.Page) s.BindHandler("/add_take_photo",api.AddDbData) s.BindHandler("/update_take_photo",api.UpdateDbData) s.BindHandler("/delete_take_photo",api.DeleteDbData) s.BindHandler("/download_camera_jpg",api.DownLoadCameraJpg) s.BindHandler("/download_all_camera_jpg",api.DownLoadAllCameraJpg) s.BindHandler("/download_master_jpg",api.DownLoadMasterJpg) s.SetPort(8383) s.Run() }