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

76 lines
1.5 KiB
Go

package formview
import (
"go_dreamfactory/cmd/v2/lib/common"
"go_dreamfactory/cmd/v2/model"
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"go_dreamfactory/comm"
// "go_dreamfactory/modules/library"
"go_dreamfactory/pb"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type FetterstoryView struct {
BaseformView
itemList *common.ItemList
flag bool
}
func (f *FetterstoryView) CreateView(t *model.TestCase) fyne.CanvasObject {
jqId := widget.NewEntry()
jqId.PlaceHolder = "羁绊ID"
f.form.AppendItem(widget.NewFormItem("羁绊ID", jqId))
mine := func() {
if jqId.Text == "" {
common.ShowTip("羁绊ID是必须的")
return
}
if err := service.GetPttService().SendToClient(
t.MainType,
// library.LibraryFetterstoryTaskResp,
"",
&pb.LibraryFetterstoryTaskReq{
FetterId: cast.ToInt32(jqId.Text),
},
); err != nil {
logrus.Error(err)
return
}
}
f.form.OnSubmit = mine
f.dataListener()
return f.form
}
func (f *FetterstoryView) dataListener() {
if f.flag {
return
}
f.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
OnNotify: func(d interface{}, args ...interface{}) {
data := d.(*pb.UserMessage)
if !(data.MainType == string("comm.ModuleLibrary") &&
data.SubType == "library.LibraryActivationFetterResp") {
return
}
rsp := &pb.LibraryFetterstoryTaskResp{}
if !comm.ProtoUnmarshal(data, rsp) {
logrus.Error("unmarshal err")
return
}
},
})
f.flag = true
}