添加修改功能

This commit is contained in:
2024-10-17 13:55:12 +08:00
parent 2fb887a936
commit 263a57f636
6 changed files with 49 additions and 6 deletions
+2
View File
@@ -19,6 +19,8 @@ func (*erlangCardService) Create(erlangCard *models.ErlangCards) error {
if len(erlangCard.VarName) == 0 { if len(erlangCard.VarName) == 0 {
erlangCard.ToolType = models.ToolTypeNoVarErlang 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) err := os.Mkdir(filepath.Join(cfg.T.CardDir, erlangCard.UUID), os.ModeDir)
if err != nil { if err != nil {
return err return err
+1 -1
View File
@@ -11,7 +11,7 @@ import (
func allCreateCards(_ fyne.Window) fyne.CanvasObject { func allCreateCards(_ fyne.Window) fyne.CanvasObject {
var itemList []fyne.CanvasObject var itemList []fyne.CanvasObject
keys := make([]string, 0, len(cardTypeMap)) keys := make([]string, 0, len(cardTypeMap))
for key, _ := range cardTypeMap { for key := range cardTypeMap {
keys = append(keys, key) keys = append(keys, key)
} }
sort.Strings(keys) sort.Strings(keys)
+27 -1
View File
@@ -1,25 +1,51 @@
package createView package createView
import ( import (
"encoding/json"
"fmt" "fmt"
"fyne.io/fyne/v2" "fyne.io/fyne/v2"
"fyne.io/fyne/v2/container" "fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/data/binding" "fyne.io/fyne/v2/data/binding"
"fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget" "fyne.io/fyne/v2/widget"
"os"
"path/filepath"
"regexp" "regexp"
"strings" "strings"
"time" "time"
"work_cation/cfg"
"work_cation/global" "work_cation/global"
"work_cation/models" "work_cation/models"
"work_cation/repo" "work_cation/repo"
"work_cation/service" "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 { 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)} erlangCard = &models.ErlangCards{BaseCard: models.NewBaseCard(models.ToolTypeErlang, repo.User.GetUserInfo(global.DB).ID)}
}
var (
// 基础表单 // 基础表单
formBase = &widget.Form{} formBase = &widget.Form{}
// 变量表单 // 变量表单
+7 -3
View File
@@ -38,6 +38,7 @@ type cardInfo struct {
createView func(w fyne.Window) fyne.CanvasObject createView func(w fyne.Window) fyne.CanvasObject
createSize fyne.Size createSize fyne.Size
showView func(fyne.Window, *models.BaseCard) (fyne.CanvasObject, error) showView func(fyne.Window, *models.BaseCard) (fyne.CanvasObject, error)
updateView func(fyne.Window, *models.BaseCard) fyne.CanvasObject
} }
var ( var (
@@ -46,16 +47,19 @@ var (
"Erlang代码脚本", "Erlang代码脚本",
nil, nil,
fyne.NewSize(0, 0), fyne.NewSize(0, 0),
showView.ErlangCardNoVarView}, showView.ErlangCardNoVarView,
createView.UpdateErlangCard},
models.ToolTypeErlang: { models.ToolTypeErlang: {
"Erlang代码脚本模版", "Erlang代码脚本模版",
createView.CreateErlangCard, createView.CreateErlangCard,
fyne.NewSize(600, 400), fyne.NewSize(600, 400),
showView.ErlangCardView}, showView.ErlangCardView,
createView.UpdateErlangCard},
models.ToolTypeExecFiles: { models.ToolTypeExecFiles: {
"自定义可执行工具", "自定义可执行工具",
createView.CreateExecFile, createView.CreateExecFile,
fyne.NewSize(600, 520), fyne.NewSize(600, 520),
showView.ExecFileCardView}, showView.ExecFileCardView,
nil},
} }
) )
+1
View File
@@ -35,6 +35,7 @@ func TenChinaGameView() {
game.StartShow() game.StartShow()
} }
// 格子棋 Checkered-Chess
type TenGame struct { type TenGame struct {
lock sync.Mutex // 玩家操作锁 lock sync.Mutex // 玩家操作锁
+11 -1
View File
@@ -51,7 +51,17 @@ func baseCardView(
} }
gridWrap.Remove(baseCardV) 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() { widget.NewToolbarAction(theme.ViewRefreshIcon(), func() {
}), }),