dreamfactory_cmd/cmd/v2/ui/views/bingoview.go
2023-06-09 21:58:02 +08:00

117 lines
3.0 KiB
Go

package formview
import (
"errors"
"fmt"
"go_dreamfactory/cmd/v2/lib/common"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/pb"
"strings"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
)
type BingoView struct {
BaseformView
}
func (this *BingoView) CreateView(t *model.TestCase) fyne.CanvasObject {
var (
gridContainer *fyne.Container
ttxt string //T text
aSel *widget.Select
)
tEntry := widget.NewEntry()
tEntry.PlaceHolder = "配置ID"
tEntry.OnChanged = func(s string) {
ttxt = s
}
nEntry := widget.NewEntry()
nEntry.PlaceHolder = "数量"
attrSel := &widget.Select{}
attrSel.Options = []string{"选择", "gold", "diamond", "exp", "moongold", "friendPoint", "ps", "guildcoin", "arenacoin", "merchantmoney"}
attrSel.SetSelected("选择")
attrSel.OnChanged = func(s string) {
ttxt = s
}
aSel = &widget.Select{}
gridContainer = container.NewGridWithColumns(3, aSel, tEntry, nEntry)
aSel.Options = []string{"选择", "attr", "item", "hero", "equi", "mapid", "pataid", "alltask", "worldtask", "sociatyexp", "sociatyactivity", "allgrowtask", "lv"}
aSel.SetSelected("选择")
aSel.OnChanged = func(s string) {
if s == "attr" {
gridContainer.Objects[1] = attrSel
ttxt = attrSel.Selected
} else {
gridContainer.Objects[1] = tEntry
ttxt = tEntry.Text
}
}
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_BINGO, gridContainer))
this.form.OnSubmit = func() {
var bingo string
if ttxt == "" && nEntry.Text == "" {
bingo = fmt.Sprintf("bingo:%s", aSel.Selected)
} else if ttxt != "" && nEntry.Text == "" {
bingo = fmt.Sprintf("bingo:%s,%s", aSel.Selected, ttxt)
} else if ttxt == "" && nEntry.Text != "" {
bingo = fmt.Sprintf("bingo:%s,%s", aSel.Selected, nEntry.Text)
} else if ttxt != "" && nEntry.Text != "" {
bingo = fmt.Sprintf("bingo:%s,%s,%s", aSel.Selected, ttxt, nEntry.Text)
}
logrus.Info(bingo)
if aSel.Selected == "选择" || nEntry.Text == "0" {
dialog.ShowError(errors.New("请填写完整且正确的数值"), this.w)
return
}
if err := service.GetPttService().SendToClient(
t.MainType,
t.SubType,
&pb.GMCmdReq{Cmod: bingo},
); err != nil {
logrus.Error(err)
return
}
aSel.SetSelected("")
attrSel.SetSelected("")
nEntry.SetText("")
tEntry.SetText("")
}
bingoEntry := widget.NewEntry()
bingoEntry.PlaceHolder = "bingo:item,10001,1"
customForm := widget.NewForm(widget.NewFormItem("自定义", bingoEntry))
customForm.OnSubmit = func() {
if bingoEntry.Text == "" || !strings.HasPrefix(bingoEntry.Text, "bingo:") {
dialog.ShowError(errors.New("请填写完整并加上bingo:前缀"), this.w)
return
}
if err := service.GetPttService().SendToClient(
t.MainType,
t.SubType,
&pb.GMCmdReq{Cmod: bingoEntry.Text},
); err != nil {
logrus.Error(err)
return
}
}
customForm.SubmitText = common.BUTTON_OK
c := container.NewVBox(this.form, customForm)
return c
}