package main import ( "changeme/initFunc" "context" "embed" "strings" "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() 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) }) // 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()) }