diff --git a/service/erlangCard.go b/service/erlangCard.go index ce20b21..5364bc3 100644 --- a/service/erlangCard.go +++ b/service/erlangCard.go @@ -19,6 +19,8 @@ func (*erlangCardService) Create(erlangCard *models.ErlangCards) error { if len(erlangCard.VarName) == 0 { erlangCard.ToolType = models.ToolTypeNoVarErlang } + os.RemoveAll(filepath.Join(cfg.T.CardDir, erlangCard.UUID)) + err := os.Mkdir(filepath.Join(cfg.T.CardDir, erlangCard.UUID), os.ModeDir) if err != nil { return err diff --git a/views/createCards.go b/views/createCards.go index d5e36ce..5d321af 100644 --- a/views/createCards.go +++ b/views/createCards.go @@ -11,7 +11,7 @@ import ( func allCreateCards(_ fyne.Window) fyne.CanvasObject { var itemList []fyne.CanvasObject keys := make([]string, 0, len(cardTypeMap)) - for key, _ := range cardTypeMap { + for key := range cardTypeMap { keys = append(keys, key) } sort.Strings(keys) diff --git a/views/createView/createErlangCard.go b/views/createView/createErlangCard.go index 35cf47a..92aff26 100644 --- a/views/createView/createErlangCard.go +++ b/views/createView/createErlangCard.go @@ -1,25 +1,51 @@ package createView import ( + "encoding/json" "fmt" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/data/binding" "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/widget" + "os" + "path/filepath" "regexp" "strings" "time" + "work_cation/cfg" "work_cation/global" "work_cation/models" "work_cation/repo" "work_cation/service" ) +func UpdateErlangCard(w fyne.Window, baseInfo *models.BaseCard) fyne.CanvasObject { + // 读取类型文件数据 + infoPath := filepath.Join(cfg.T.CardDir, baseInfo.UUID, cfg.T.CardInfo) + bytes, err := os.ReadFile(infoPath) + if err != nil { + return widget.NewLabel(err.Error()) + } + var data models.ErlangCards + err = json.Unmarshal(bytes, &data) + if err != nil { + return widget.NewLabel(err.Error()) + } + return createUpdateErlangCard(w, &data) +} + func CreateErlangCard(w fyne.Window) fyne.CanvasObject { - var ( + return createUpdateErlangCard(w, nil) +} + +func createUpdateErlangCard(w fyne.Window, erlangCard *models.ErlangCards) fyne.CanvasObject { + if erlangCard == nil { // 创建数据 erlangCard = &models.ErlangCards{BaseCard: models.NewBaseCard(models.ToolTypeErlang, repo.User.GetUserInfo(global.DB).ID)} + + } + var ( // 基础表单 formBase = &widget.Form{} // 变量表单 diff --git a/views/data.go b/views/data.go index 61ca4c5..380bed2 100644 --- a/views/data.go +++ b/views/data.go @@ -38,6 +38,7 @@ type cardInfo struct { createView func(w fyne.Window) fyne.CanvasObject createSize fyne.Size showView func(fyne.Window, *models.BaseCard) (fyne.CanvasObject, error) + updateView func(fyne.Window, *models.BaseCard) fyne.CanvasObject } var ( @@ -46,16 +47,19 @@ var ( "Erlang代码脚本", nil, fyne.NewSize(0, 0), - showView.ErlangCardNoVarView}, + showView.ErlangCardNoVarView, + createView.UpdateErlangCard}, models.ToolTypeErlang: { "Erlang代码脚本模版", createView.CreateErlangCard, fyne.NewSize(600, 400), - showView.ErlangCardView}, + showView.ErlangCardView, + createView.UpdateErlangCard}, models.ToolTypeExecFiles: { "自定义可执行工具", createView.CreateExecFile, fyne.NewSize(600, 520), - showView.ExecFileCardView}, + showView.ExecFileCardView, + nil}, } ) diff --git a/views/gamesViews.go b/views/gamesViews.go index dbdfff0..79c620f 100644 --- a/views/gamesViews.go +++ b/views/gamesViews.go @@ -35,6 +35,7 @@ func TenChinaGameView() { game.StartShow() } +// 格子棋 Checkered-Chess type TenGame struct { lock sync.Mutex // 玩家操作锁 diff --git a/views/showCards.go b/views/showCards.go index aebd8e5..7a70cbd 100644 --- a/views/showCards.go +++ b/views/showCards.go @@ -51,7 +51,17 @@ func baseCardView( } gridWrap.Remove(baseCardV) }), - widget.NewToolbarAction(theme.SettingsIcon(), func() {}), + widget.NewToolbarAction(theme.SettingsIcon(), func() { + info := cardTypeMap[baseCardCopy.ToolType] + if info.updateView == nil { + return + } + cWin := fyne.CurrentApp().NewWindow(baseCardV.Title + " 设置") + cWin.SetContent(info.updateView(cWin, &baseCardCopy)) + cWin.Resize(info.createSize) + cWin.CenterOnScreen() + cWin.Show() + }), widget.NewToolbarAction(theme.ViewRefreshIcon(), func() { }),