update
This commit is contained in:
parent
6eb86a4028
commit
b1c58e2744
@ -28,7 +28,7 @@ var res string
|
|||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
if err := cache.OnInit(nil, cache.Set_Redis_Addr([]string{
|
if err := cache.OnInit(nil, cache.Set_Redis_Addr([]string{
|
||||||
// "10.0.0.9:6986",
|
// "10.0.0.9:6986",
|
||||||
"10.0.0.9:9001", "10.0.0.9:9002",
|
"10.0.0.9:9001","10.0.0.9:9002","10.0.0.9:9003","10.0.0.9:9004","10.0.0.9:9005","10.0.0.9:9006",
|
||||||
}),
|
}),
|
||||||
cache.Set_Redis_Password(""),
|
cache.Set_Redis_Password(""),
|
||||||
// cache.Set_Redis_Password("li13451234"),
|
// cache.Set_Redis_Password("li13451234"),
|
||||||
@ -47,7 +47,7 @@ func TestMain(m *testing.M) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkRedis(b *testing.B) {
|
func BenchmarkRedis(b *testing.B) {
|
||||||
uid := "0_62b18fce6d57b34781846f64"
|
uid := "2_62ec8ab8828fb7bf67b220b6"
|
||||||
heroRedisKey := fmt.Sprintf("hero_%s%s", uid, "{herotest}")
|
heroRedisKey := fmt.Sprintf("hero_%s%s", uid, "{herotest}")
|
||||||
var (
|
var (
|
||||||
// ncpu = runtime.NumCPU()
|
// ncpu = runtime.NumCPU()
|
||||||
|
@ -73,12 +73,27 @@ const (
|
|||||||
// app
|
// app
|
||||||
APP_NAME = "机器人"
|
APP_NAME = "机器人"
|
||||||
|
|
||||||
|
//about
|
||||||
|
APP_ABOUT_TITLE = "关于"
|
||||||
|
APP_ABOUT_CONFIRM = "好的"
|
||||||
|
APP_ABOUT_INFO = `GUI 梦工厂工具`
|
||||||
|
|
||||||
// app_testcase
|
// app_testcase
|
||||||
APP_TESTCASE_TITLE = "接口测试"
|
APP_TESTCASE_TITLE = "接口测试"
|
||||||
APP_TESTCASE_LABEL_PATH = "路径"
|
APP_TESTCASE_LABEL_PATH = "路径"
|
||||||
APP_TESTCASE_BTN_CLEARLOG = "清除"
|
APP_TESTCASE_BTN_CLEARLOG = "清除"
|
||||||
APP_TESTCASE_INTRO = "选择左侧的测试接口"
|
APP_TESTCASE_INTRO = "选择左侧的测试接口"
|
||||||
|
|
||||||
|
// toolbar
|
||||||
|
TOOLBAR_MONITOR = "监控"
|
||||||
|
TOOLBAR_TESTER = "接口测试"
|
||||||
|
|
||||||
|
//monitor
|
||||||
|
APP_MONITOR_TITLE_ID = "编号"
|
||||||
|
APP_MONITOR_TITLE_DATE = "时间"
|
||||||
|
APP_MONITOR_TITLE_DATA = "数据"
|
||||||
|
APP_MONITOR_BTN_VIEW = "查看"
|
||||||
|
|
||||||
//form
|
//form
|
||||||
APP_TESTCASE_FORM_LABEL_HEROOBJID = "卡片OID"
|
APP_TESTCASE_FORM_LABEL_HEROOBJID = "卡片OID"
|
||||||
APP_TESTCASE_FORM_LABEL_RACECARD = "种族卡片"
|
APP_TESTCASE_FORM_LABEL_RACECARD = "种族卡片"
|
||||||
@ -91,12 +106,10 @@ const (
|
|||||||
APP_TESTCASE_FORM_NICKNAME = "昵称"
|
APP_TESTCASE_FORM_NICKNAME = "昵称"
|
||||||
APP_TESTCASE_OPTIONS = "选填"
|
APP_TESTCASE_OPTIONS = "选填"
|
||||||
AAP_TESTCASE_FORM_TASK_DAY = "日常任务"
|
AAP_TESTCASE_FORM_TASK_DAY = "日常任务"
|
||||||
AAP_TESTCASE_FORM_TASK_WEEK = "周常任务"
|
APP_TESTCASE_FORM_TASK_WEEK = "周常任务"
|
||||||
AAP_TESTCASE_FORM_TASK_ACHIEVE = "成就"
|
APP_TESTCASE_FORM_TASK_ACHIEVE = "成就"
|
||||||
|
APP_TESTCASE_FORM_BINGO = "命令"
|
||||||
// toolbar
|
APP_TESTCASE_BTN_PUSH = "推送"
|
||||||
TOOLBAR_WELCOME = "欢迎"
|
|
||||||
TOOLBAR_TESTER = "tester"
|
|
||||||
|
|
||||||
//button
|
//button
|
||||||
BUTTON_LOGIN = "登录"
|
BUTTON_LOGIN = "登录"
|
||||||
@ -106,7 +119,7 @@ const (
|
|||||||
BUTTON_CANCEL = "取消"
|
BUTTON_CANCEL = "取消"
|
||||||
|
|
||||||
//label
|
//label
|
||||||
LABEL_CHOOSE = "欢迎,您登录的服务是"
|
LABEL_CHOOSE = "欢迎,你即将登录的服务是[%s]%s"
|
||||||
LABEL_NICKNAME = "昵称"
|
LABEL_NICKNAME = "昵称"
|
||||||
LABEL_ACCOUNT = "账号"
|
LABEL_ACCOUNT = "账号"
|
||||||
LABEL_WELCOME = "欢迎 "
|
LABEL_WELCOME = "欢迎 "
|
||||||
|
@ -10,3 +10,34 @@ func FormatJson(data string) (string, error) {
|
|||||||
err := json.Indent(&out, []byte(data), "", " ")
|
err := json.Indent(&out, []byte(data), "", " ")
|
||||||
return out.String(), err
|
return out.String(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SubStr(str string, start int, length int) (result string) {
|
||||||
|
s := []rune(str)
|
||||||
|
total := len(s)
|
||||||
|
if total == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 允许从尾部开始计算
|
||||||
|
if start < 0 {
|
||||||
|
start = total + start
|
||||||
|
if start < 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if start > total {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 到末尾
|
||||||
|
if length < 0 {
|
||||||
|
length = total
|
||||||
|
}
|
||||||
|
|
||||||
|
end := start + length
|
||||||
|
if end > total {
|
||||||
|
result = string(s[start:])
|
||||||
|
} else {
|
||||||
|
result = string(s[start:end])
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
12
cmd/v2/lib/common/utils_test.go
Normal file
12
cmd/v2/lib/common/utils_test.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSubStr(t *testing.T) {
|
||||||
|
str := "type.googleapis.com/UserResChangePush"
|
||||||
|
r := SubStr(str, 20, len(str))
|
||||||
|
fmt.Println(r)
|
||||||
|
}
|
31
cmd/v2/model/push.go
Normal file
31
cmd/v2/model/push.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"google.golang.org/protobuf/types/known/anypb"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PushModel struct {
|
||||||
|
MainType string
|
||||||
|
SubType string
|
||||||
|
MethodName string
|
||||||
|
DataTime string
|
||||||
|
Rsp *anypb.Any
|
||||||
|
}
|
||||||
|
|
||||||
|
type PushModelList struct {
|
||||||
|
DataList []*PushModel
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPushModelList() *PushModelList {
|
||||||
|
return &PushModelList{
|
||||||
|
DataList: make([]*PushModel, 0),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *PushModelList) AsInterfaceArray() []interface{} {
|
||||||
|
rs := make([]interface{}, len(s.DataList), len(s.DataList))
|
||||||
|
for i := range s.DataList {
|
||||||
|
rs[i] = s.DataList[i]
|
||||||
|
}
|
||||||
|
return rs
|
||||||
|
}
|
@ -1,10 +1,12 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/protobuf/ptypes"
|
"github.com/golang/protobuf/ptypes"
|
||||||
@ -22,6 +24,7 @@ type ConnService interface {
|
|||||||
Connect(wsUrl string) error
|
Connect(wsUrl string) error
|
||||||
SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error)
|
SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error)
|
||||||
ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage)
|
ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage)
|
||||||
|
ListenerPush()
|
||||||
}
|
}
|
||||||
|
|
||||||
type ConnServiceImpl struct {
|
type ConnServiceImpl struct {
|
||||||
@ -52,6 +55,46 @@ func (c *ConnServiceImpl) Connect(wsUrl string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// listener push
|
||||||
|
func (c *ConnServiceImpl) ListenerPush() {
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
time.Sleep(time.Millisecond * 200)
|
||||||
|
msg := &pb.UserMessage{}
|
||||||
|
_, data, err := c.ws.ReadMessage()
|
||||||
|
if err != nil {
|
||||||
|
logrus.Errorf("readMessage err:%v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = proto.Unmarshal(data, msg); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// logrus.WithFields(
|
||||||
|
// logrus.Fields{"MainType": msg.MainType, "SubType": msg.SubType},
|
||||||
|
// ).Debug(msg.Data.TypeUrl)
|
||||||
|
|
||||||
|
methodStr := msg.Data.TypeUrl
|
||||||
|
methodName := common.SubStr(methodStr, 20, len(methodStr))
|
||||||
|
if strings.HasSuffix(methodName, "Push") {
|
||||||
|
p := &model.PushModel{
|
||||||
|
MainType: msg.MainType,
|
||||||
|
SubType: msg.SubType,
|
||||||
|
MethodName: methodName,
|
||||||
|
DataTime: time.Now().Format(time.RFC3339),
|
||||||
|
Rsp: msg.Data,
|
||||||
|
}
|
||||||
|
|
||||||
|
c.obs.Notify(observer.EVENT_APP_PUSH, p)
|
||||||
|
logrus.WithFields(
|
||||||
|
logrus.Fields{"MainType": msg.MainType, "SubType": msg.SubType},
|
||||||
|
).Debug(methodName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// SendMsg ....
|
// SendMsg ....
|
||||||
func (c *ConnServiceImpl) SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error) {
|
func (c *ConnServiceImpl) SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error) {
|
||||||
// msg.Sec = r.BuildSecStr()
|
// msg.Sec = r.BuildSecStr()
|
||||||
|
@ -3,4 +3,5 @@ package observer
|
|||||||
const (
|
const (
|
||||||
EVENT_USERINFO Event = "userinfo"
|
EVENT_USERINFO Event = "userinfo"
|
||||||
EVENT_APP_LOG Event = "app_log"
|
EVENT_APP_LOG Event = "app_log"
|
||||||
|
EVENT_APP_PUSH Event = "push"
|
||||||
)
|
)
|
||||||
|
@ -19,7 +19,7 @@ type PttService interface {
|
|||||||
CreateRole(nickName string) (code pb.ErrorCode, rsp *pb.UserCreateResp)
|
CreateRole(nickName string) (code pb.ErrorCode, rsp *pb.UserCreateResp)
|
||||||
GetUser() *UserInfo
|
GetUser() *UserInfo
|
||||||
SetUser(dbUser *pb.DBUser, dbUserExpand *pb.DBUserExpand)
|
SetUser(dbUser *pb.DBUser, dbUserExpand *pb.DBUserExpand)
|
||||||
SendToClient(msg *pb.UserMessage, rsp proto.Message) error
|
SendToClient(mainType, subType string, rsp proto.Message) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type PttServiceImpl struct {
|
type PttServiceImpl struct {
|
||||||
@ -51,7 +51,8 @@ func (p *PttServiceImpl) SetUser(dbUser *pb.DBUser, dbUserExpand *pb.DBUserExpan
|
|||||||
p.user = &UserInfo{DbUser: dbUser, DbUserExpand: dbUserExpand}
|
p.user = &UserInfo{DbUser: dbUser, DbUserExpand: dbUserExpand}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PttServiceImpl) SendToClient(msg *pb.UserMessage, rsp proto.Message) (err error) {
|
func (p *PttServiceImpl) SendToClient(mainType, subType string, rsp proto.Message) (err error) {
|
||||||
|
msg := &pb.UserMessage{MainType: mainType, SubType: subType}
|
||||||
msg.Sec = common.BuildSecStr(p.user.DbUser.Sid, p.user.DbUser.Binduid)
|
msg.Sec = common.BuildSecStr(p.user.DbUser.Sid, p.user.DbUser.Binduid)
|
||||||
if err = p.connService.SendMsg(msg, rsp); err != nil {
|
if err = p.connService.SendMsg(msg, rsp); err != nil {
|
||||||
logrus.WithField("err", err).Error(err)
|
logrus.WithField("err", err).Error(err)
|
||||||
@ -105,24 +106,24 @@ func (p *PttServiceImpl) CreateRole(nickName string) (code pb.ErrorCode, rsp *pb
|
|||||||
}
|
}
|
||||||
|
|
||||||
//response
|
//response
|
||||||
for {
|
// for {
|
||||||
if cd, msg := p.connService.ReceiveMsg(); cd != pb.ErrorCode_Success {
|
// if cd, msg := p.connService.ReceiveMsg(); cd != pb.ErrorCode_Success {
|
||||||
code = cd
|
// code = cd
|
||||||
break
|
// break
|
||||||
} else {
|
// } else {
|
||||||
rsp = &pb.UserCreateResp{}
|
// rsp = &pb.UserCreateResp{}
|
||||||
if msg.MainType == string(comm.ModuleUser) && msg.SubType == user.UserSubTypeCreate {
|
// if msg.MainType == string(comm.ModuleUser) && msg.SubType == user.UserSubTypeCreate {
|
||||||
if !comm.ProtoUnmarshal(msg, rsp) {
|
// if !comm.ProtoUnmarshal(msg, rsp) {
|
||||||
code = pb.ErrorCode_PbError
|
// code = pb.ErrorCode_PbError
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
logrus.
|
// logrus.
|
||||||
WithFields(logrus.Fields{"nickname": nickName}).
|
// WithFields(logrus.Fields{"nickname": nickName}).
|
||||||
WithFields(logrus.Fields{"rsp": rsp.IsSucc}).
|
// WithFields(logrus.Fields{"rsp": rsp.IsSucc}).
|
||||||
Debug("response create role")
|
// Debug("response create role")
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
24
cmd/v2/ui/about.go
Normal file
24
cmd/v2/ui/about.go
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package ui
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2/dialog"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
)
|
||||||
|
|
||||||
|
type about struct {
|
||||||
|
aboutDialog dialog.Dialog
|
||||||
|
}
|
||||||
|
|
||||||
|
func newAbout() *about {
|
||||||
|
var a about
|
||||||
|
content := widget.NewCard("", "", widget.NewRichTextFromMarkdown(common.APP_ABOUT_INFO))
|
||||||
|
a.aboutDialog = dialog.NewCustom(common.APP_ABOUT_TITLE, common.APP_ABOUT_CONFIRM, content, globalWin.w)
|
||||||
|
|
||||||
|
return &a
|
||||||
|
}
|
||||||
|
|
||||||
|
func showAbout() {
|
||||||
|
newAbout().aboutDialog.Show()
|
||||||
|
}
|
@ -16,10 +16,9 @@ type appInterface interface {
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
appRegister = []appInterface{
|
appRegister = []appInterface{
|
||||||
&appWelcome{},
|
&appMonitor{},
|
||||||
&appTester{},
|
&appTester{},
|
||||||
}
|
}
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type appAdapter struct {
|
type appAdapter struct {
|
||||||
|
139
cmd/v2/ui/app_monitor.go
Normal file
139
cmd/v2/ui/app_monitor.go
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
package ui
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/container"
|
||||||
|
"fyne.io/fyne/v2/data/binding"
|
||||||
|
"fyne.io/fyne/v2/layout"
|
||||||
|
"fyne.io/fyne/v2/theme"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
"google.golang.org/protobuf/types/known/anypb"
|
||||||
|
)
|
||||||
|
|
||||||
|
type appMonitor struct {
|
||||||
|
appAdapter
|
||||||
|
|
||||||
|
obs observer.Observer
|
||||||
|
logPanel *widget.Entry
|
||||||
|
monitorHeader *widget.List
|
||||||
|
monitorList *widget.List
|
||||||
|
monitorBinding binding.UntypedList
|
||||||
|
monitorData *model.PushModelList
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *appMonitor) LazyInit(obs observer.Observer) error {
|
||||||
|
this.obs = obs
|
||||||
|
this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_MONITOR, theme.ComputerIcon(), nil)
|
||||||
|
|
||||||
|
content := container.NewMax()
|
||||||
|
content.Objects = []fyne.CanvasObject{}
|
||||||
|
|
||||||
|
// panel for output log
|
||||||
|
this.logPanel = widget.NewMultiLineEntry()
|
||||||
|
this.logPanel.Wrapping = fyne.TextWrapWord
|
||||||
|
clearBtn := widget.NewButtonWithIcon(common.APP_TESTCASE_BTN_CLEARLOG, theme.DeleteIcon(), func() {
|
||||||
|
this.logPanel.SetText("")
|
||||||
|
})
|
||||||
|
resPanel := container.NewBorder(container.NewHBox(clearBtn, layout.NewSpacer()), nil, nil, nil, this.logPanel)
|
||||||
|
|
||||||
|
this.monitorBinding = binding.NewUntypedList()
|
||||||
|
this.monitorData = model.NewPushModelList()
|
||||||
|
this.createMonitorList()
|
||||||
|
|
||||||
|
// layout
|
||||||
|
panel := container.NewVSplit(container.NewBorder(this.monitorHeader, nil, nil, nil, this.monitorList), resPanel)
|
||||||
|
content.Objects = append(content.Objects, panel)
|
||||||
|
this.tabItem.Content = content
|
||||||
|
this.Run()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *appMonitor) OpenDefault() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *appMonitor) GetAppName() string {
|
||||||
|
return common.TOOLBAR_MONITOR
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a appMonitor) OnClose() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// monitor list data
|
||||||
|
func (this *appMonitor) Run() {
|
||||||
|
this.obs.AddListener(observer.EVENT_APP_PUSH, observer.Listener{
|
||||||
|
OnNotify: func(d interface{}, args ...interface{}) {
|
||||||
|
data := d.(*model.PushModel)
|
||||||
|
this.monitorData.DataList = append(this.monitorData.DataList, data)
|
||||||
|
this.reloadMonitorData()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *appMonitor) reloadMonitorData() {
|
||||||
|
if this.monitorData != nil {
|
||||||
|
d := this.monitorData.AsInterfaceArray()
|
||||||
|
this.monitorBinding.Set(d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *appMonitor) createMonitorList() {
|
||||||
|
// header
|
||||||
|
this.monitorHeader = widget.NewList(
|
||||||
|
func() int {
|
||||||
|
return 1
|
||||||
|
},
|
||||||
|
func() fyne.CanvasObject {
|
||||||
|
return container.NewGridWithColumns(3,
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignLeading, fyne.TextStyle{}),
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{}),
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{}))
|
||||||
|
},
|
||||||
|
func(id widget.ListItemID, item fyne.CanvasObject) {
|
||||||
|
item.(*fyne.Container).Objects[0].(*widget.Label).SetText(common.APP_MONITOR_TITLE_ID)
|
||||||
|
item.(*fyne.Container).Objects[1].(*widget.Label).SetText(common.APP_MONITOR_TITLE_DATA)
|
||||||
|
item.(*fyne.Container).Objects[2].(*widget.Label).SetText(common.APP_MONITOR_TITLE_DATE)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
// data
|
||||||
|
this.monitorList = widget.NewListWithData(this.monitorBinding,
|
||||||
|
func() fyne.CanvasObject {
|
||||||
|
return container.NewGridWithColumns(3,
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignLeading, fyne.TextStyle{}),
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{}),
|
||||||
|
widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{}),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
func(data binding.DataItem, item fyne.CanvasObject) {
|
||||||
|
o, _ := data.(binding.Untyped).Get()
|
||||||
|
pd := o.(*model.PushModel)
|
||||||
|
item.(*fyne.Container).Objects[0].(*widget.Label).SetText(fmt.Sprintf("%s.%s", pd.MainType, pd.SubType))
|
||||||
|
item.(*fyne.Container).Objects[1].(*widget.Label).SetText(pd.MethodName)
|
||||||
|
item.(*fyne.Container).Objects[2].(*widget.Label).SetText(pd.DataTime)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
this.monitorList.OnSelected = func(id widget.ListItemID) {
|
||||||
|
if di, err := this.monitorBinding.GetItem(id); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
} else {
|
||||||
|
o, _ := di.(binding.Untyped).Get()
|
||||||
|
pd := o.(*model.PushModel)
|
||||||
|
if res, err := anypb.New(pd.Rsp); err == nil {
|
||||||
|
this.logPanel.Text = res.String()
|
||||||
|
this.logPanel.Refresh()
|
||||||
|
} else {
|
||||||
|
logrus.WithField("err", err).Error("view detail")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -5,11 +5,6 @@ import (
|
|||||||
"go_dreamfactory/cmd/v2/lib/common"
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
"go_dreamfactory/cmd/v2/ui/formview"
|
|
||||||
"go_dreamfactory/comm"
|
|
||||||
"go_dreamfactory/modules/hero"
|
|
||||||
"go_dreamfactory/modules/task"
|
|
||||||
"go_dreamfactory/modules/user"
|
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/container"
|
"fyne.io/fyne/v2/container"
|
||||||
@ -19,23 +14,6 @@ import (
|
|||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
// register views
|
|
||||||
var (
|
|
||||||
viewRegister = map[string]MyCaseView{
|
|
||||||
//user
|
|
||||||
ff(comm.ModuleUser, user.UserSubTypeModifyName): &formview.UserModifynameView{},
|
|
||||||
//task
|
|
||||||
ff(comm.ModuleTask, task.TaskSubTypeList): &formview.TaskListView{},
|
|
||||||
ff(comm.ModuleTask, task.TaskSubTypeReceive): &formview.TaskReceiveView{},
|
|
||||||
ff(comm.ModuleTask, task.TaskSubTypeActiveList): &formview.TaskActiveListView{},
|
|
||||||
ff(comm.ModuleTask, task.TaskSubTypeActiveReceive): &formview.TaskActiveReceiveView{},
|
|
||||||
// hero
|
|
||||||
ff(comm.ModuleHero, hero.HeroSubTypeList): &formview.HeroListView{},
|
|
||||||
ff(comm.ModuleHero, hero.StrengthenUplv): &formview.HeroStrengthenUplvView{},
|
|
||||||
ff(comm.ModuleHero, hero.StrengthenUpStar): &formview.HeroStrengthenUpStarView{},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
type appTester struct {
|
type appTester struct {
|
||||||
appAdapter
|
appAdapter
|
||||||
}
|
}
|
||||||
@ -81,11 +59,11 @@ func (a *appTester) LazyInit(obs observer.Observer) error {
|
|||||||
// required! Refresh updates the widget
|
// required! Refresh updates the widget
|
||||||
formReq.Refresh()
|
formReq.Refresh()
|
||||||
formCard := widget.NewCard("", "", formReq)
|
formCard := widget.NewCard("", "", formReq)
|
||||||
pos := widget.NewLabel("")
|
|
||||||
clearBtn := widget.NewButtonWithIcon(common.APP_TESTCASE_BTN_CLEARLOG, theme.DeleteIcon(), func() {
|
clearBtn := widget.NewButtonWithIcon(common.APP_TESTCASE_BTN_CLEARLOG, theme.DeleteIcon(), func() {
|
||||||
resLog.SetText("")
|
resLog.SetText("")
|
||||||
})
|
})
|
||||||
resPanel := container.NewBorder(container.NewHBox(clearBtn, layout.NewSpacer(), pos), nil, nil, nil, resLog)
|
resPanel := container.NewBorder(container.NewHBox(clearBtn, layout.NewSpacer()), nil, nil, nil, resLog)
|
||||||
|
|
||||||
panel := container.NewVSplit(
|
panel := container.NewVSplit(
|
||||||
formCard,
|
formCard,
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
package ui
|
|
||||||
|
|
||||||
import (
|
|
||||||
"go_dreamfactory/cmd/v2/lib/common"
|
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
|
||||||
"fyne.io/fyne/v2/container"
|
|
||||||
"fyne.io/fyne/v2/theme"
|
|
||||||
"fyne.io/fyne/v2/widget"
|
|
||||||
)
|
|
||||||
|
|
||||||
type appWelcome struct {
|
|
||||||
appAdapter
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *appWelcome) LazyInit(obs observer.Observer) error {
|
|
||||||
|
|
||||||
a.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_WELCOME, theme.ComputerIcon(), nil)
|
|
||||||
|
|
||||||
a.tabItem.Content = container.NewCenter(
|
|
||||||
container.NewVBox(
|
|
||||||
widget.NewLabelWithStyle(common.TOOLBAR_WELCOME,
|
|
||||||
fyne.TextAlignCenter,
|
|
||||||
fyne.TextStyle{Bold: true})),
|
|
||||||
)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *appWelcome) OpenDefault() bool {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *appWelcome) GetAppName() string {
|
|
||||||
return common.TOOLBAR_WELCOME
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a appWelcome) OnClose() bool {
|
|
||||||
return false
|
|
||||||
}
|
|
35
cmd/v2/ui/formview/bingoview.go
Normal file
35
cmd/v2/ui/formview/bingoview.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package formview
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go_dreamfactory/cmd/v2/lib/common"
|
||||||
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/service"
|
||||||
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BingoView struct {
|
||||||
|
BaseformView
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *BingoView) CreateForm(t *model.TestCase) fyne.CanvasObject {
|
||||||
|
bingo := widget.NewEntry()
|
||||||
|
bingo.PlaceHolder = "eg. bingo:item,10001,1"
|
||||||
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_BINGO, bingo))
|
||||||
|
this.form.OnSubmit = func() {
|
||||||
|
if err := service.GetPttService().SendToClient(
|
||||||
|
t.MainType,
|
||||||
|
t.SubType,
|
||||||
|
&pb.GMCmdReq{Cmod: bingo.Text},
|
||||||
|
); err != nil {
|
||||||
|
logrus.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
go service.GetConnService().RespHandle(t)
|
||||||
|
}
|
||||||
|
return this.form
|
||||||
|
}
|
@ -10,14 +10,14 @@ func getTaskTagSelect() *widget.Select {
|
|||||||
var tagSelect *widget.Select
|
var tagSelect *widget.Select
|
||||||
tagSelect = widget.NewSelect([]string{
|
tagSelect = widget.NewSelect([]string{
|
||||||
common.AAP_TESTCASE_FORM_TASK_DAY,
|
common.AAP_TESTCASE_FORM_TASK_DAY,
|
||||||
common.AAP_TESTCASE_FORM_TASK_WEEK,
|
common.APP_TESTCASE_FORM_TASK_WEEK,
|
||||||
common.AAP_TESTCASE_FORM_TASK_ACHIEVE}, func(s string) {
|
common.APP_TESTCASE_FORM_TASK_ACHIEVE}, func(s string) {
|
||||||
switch s {
|
switch s {
|
||||||
case common.AAP_TESTCASE_FORM_TASK_DAY:
|
case common.AAP_TESTCASE_FORM_TASK_DAY:
|
||||||
tagSelect.Selected = "1"
|
tagSelect.Selected = "1"
|
||||||
case common.AAP_TESTCASE_FORM_TASK_WEEK:
|
case common.APP_TESTCASE_FORM_TASK_WEEK:
|
||||||
tagSelect.Selected = "2"
|
tagSelect.Selected = "2"
|
||||||
case common.AAP_TESTCASE_FORM_TASK_ACHIEVE:
|
case common.APP_TESTCASE_FORM_TASK_ACHIEVE:
|
||||||
tagSelect.Selected = "3"
|
tagSelect.Selected = "3"
|
||||||
default:
|
default:
|
||||||
tagSelect.Selected = "0"
|
tagSelect.Selected = "0"
|
||||||
|
@ -15,8 +15,7 @@ type HeroListView struct {
|
|||||||
|
|
||||||
func (this *HeroListView) CreateForm(t *model.TestCase) fyne.CanvasObject {
|
func (this *HeroListView) CreateForm(t *model.TestCase) fyne.CanvasObject {
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.HeroListReq{}); err != nil {
|
||||||
if err := service.GetPttService().SendToClient(head, &pb.HeroListReq{}); err != nil {
|
|
||||||
logrus.Error(err)
|
logrus.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,8 +81,7 @@ func (this *HeroStrengthenUpStarView) CreateForm(t *model.TestCase) fyne.CanvasO
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
|
||||||
if err := service.GetPttService().SendToClient(head,
|
|
||||||
&pb.HeroStrengthenUpStarReq{
|
&pb.HeroStrengthenUpStarReq{
|
||||||
HeroObjID: heroObjID.Text,
|
HeroObjID: heroObjID.Text,
|
||||||
HeroRace: heroRace,
|
HeroRace: heroRace,
|
||||||
|
@ -53,8 +53,7 @@ func (this *HeroStrengthenUplvView) CreateForm(t *model.TestCase) fyne.CanvasObj
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
|
||||||
if err := service.GetPttService().SendToClient(head,
|
|
||||||
&pb.HeroStrengthenUplvReq{
|
&pb.HeroStrengthenUplvReq{
|
||||||
HeroObjID: heroObjID.Text,
|
HeroObjID: heroObjID.Text,
|
||||||
ExpCards: cards}); err != nil {
|
ExpCards: cards}); err != nil {
|
||||||
|
@ -21,8 +21,7 @@ func (this *TaskActiveListView) CreateForm(t *model.TestCase) fyne.CanvasObject
|
|||||||
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.TaskActiveListReq{
|
||||||
if err := service.GetPttService().SendToClient(head, &pb.TaskActiveListReq{
|
|
||||||
|
|
||||||
TaskTag: cast.ToInt32(tagSelect.Selected),
|
TaskTag: cast.ToInt32(tagSelect.Selected),
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -24,8 +24,7 @@ func (this *TaskActiveReceiveView) CreateForm(t *model.TestCase) fyne.CanvasObje
|
|||||||
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.TaskActiveReceiveReq{
|
||||||
if err := service.GetPttService().SendToClient(head, &pb.TaskActiveReceiveReq{
|
|
||||||
Id: id.Text,
|
Id: id.Text,
|
||||||
TaskTag: cast.ToInt32(tagSelect.Selected),
|
TaskTag: cast.ToInt32(tagSelect.Selected),
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
@ -21,8 +21,7 @@ func (this *TaskListView) CreateForm(t *model.TestCase) fyne.CanvasObject {
|
|||||||
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.TaskListReq{
|
||||||
if err := service.GetPttService().SendToClient(head, &pb.TaskListReq{
|
|
||||||
TaskTag: cast.ToInt32(tagSelect.Selected),
|
TaskTag: cast.ToInt32(tagSelect.Selected),
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
logrus.Error(err)
|
logrus.Error(err)
|
||||||
|
@ -27,8 +27,7 @@ func (this *TaskReceiveView) CreateForm(t *model.TestCase) fyne.CanvasObject {
|
|||||||
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_TASKTAG, tagSelect))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(t.MainType, t.SubType,
|
||||||
if err := service.GetPttService().SendToClient(head,
|
|
||||||
&pb.TaskReceiveReq{Id: id.Text, TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil {
|
&pb.TaskReceiveReq{Id: id.Text, TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil {
|
||||||
logrus.Error(err)
|
logrus.Error(err)
|
||||||
return
|
return
|
||||||
|
@ -20,8 +20,11 @@ func (this *UserModifynameView) CreateForm(t *model.TestCase) fyne.CanvasObject
|
|||||||
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_NICKNAME, name))
|
this.form.AppendItem(widget.NewFormItem(common.APP_TESTCASE_FORM_NICKNAME, name))
|
||||||
|
|
||||||
this.form.OnSubmit = func() {
|
this.form.OnSubmit = func() {
|
||||||
head := &pb.UserMessage{MainType: t.MainType, SubType: t.SubType}
|
if err := service.GetPttService().SendToClient(
|
||||||
if err := service.GetPttService().SendToClient(head, &pb.UserModifynameReq{Name: name.Text}); err != nil {
|
t.MainType,
|
||||||
|
t.SubType,
|
||||||
|
&pb.UserModifynameReq{Name: name.Text},
|
||||||
|
); err != nil {
|
||||||
logrus.Error(err)
|
logrus.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"go_dreamfactory/cmd/v2/service"
|
"go_dreamfactory/cmd/v2/service"
|
||||||
"go_dreamfactory/cmd/v2/service/observer"
|
"go_dreamfactory/cmd/v2/service/observer"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/container"
|
"fyne.io/fyne/v2/container"
|
||||||
@ -53,9 +54,6 @@ func NewMainWindow(ui *UIImpl) MainWindow {
|
|||||||
// tool bar
|
// tool bar
|
||||||
mw.tb = newToolBar()
|
mw.tb = newToolBar()
|
||||||
|
|
||||||
// Fun Toys
|
|
||||||
mw.toys = newToys(ui.obs)
|
|
||||||
|
|
||||||
// main app tabs
|
// main app tabs
|
||||||
mw.at = newAppContainer(ui.obs)
|
mw.at = newAppContainer(ui.obs)
|
||||||
|
|
||||||
@ -119,13 +117,13 @@ func (ui *MainWindowImpl) CreateWindow(title string, width, height float32, _ bo
|
|||||||
|
|
||||||
// createChooseServerPopUp
|
// createChooseServerPopUp
|
||||||
func (ui *MainWindowImpl) createChooseServerPopUp(w fyne.Window) error {
|
func (ui *MainWindowImpl) createChooseServerPopUp(w fyne.Window) error {
|
||||||
ch := make(chan int32)
|
ch := make(chan string)
|
||||||
|
|
||||||
selServerWin := ui.createChooseServerWindow("选服", ch)
|
selServerWin := ui.createChooseServerWindow("选服", ch)
|
||||||
go func() {
|
go func() {
|
||||||
sid := <-ch
|
data := <-ch
|
||||||
selServerWin.Hide()
|
selServerWin.Hide()
|
||||||
ui.NewWelcomeLabel(sid)
|
ui.NewWelcomeLabel(data)
|
||||||
ui.w.Show()
|
ui.w.Show()
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
@ -134,7 +132,7 @@ func (ui *MainWindowImpl) createChooseServerPopUp(w fyne.Window) error {
|
|||||||
// createChooseServerWindow
|
// createChooseServerWindow
|
||||||
func (ui *MainWindowImpl) createChooseServerWindow(
|
func (ui *MainWindowImpl) createChooseServerWindow(
|
||||||
title string,
|
title string,
|
||||||
ch chan int32) fyne.Window {
|
ch chan string) fyne.Window {
|
||||||
|
|
||||||
makeButton := func(s *service.ServiceConf, parent fyne.Window) *widget.Button {
|
makeButton := func(s *service.ServiceConf, parent fyne.Window) *widget.Button {
|
||||||
btn := widget.NewButton(s.Name, func() {
|
btn := widget.NewButton(s.Name, func() {
|
||||||
@ -148,10 +146,9 @@ func (ui *MainWindowImpl) createChooseServerWindow(
|
|||||||
d.Hide()
|
d.Hide()
|
||||||
dialog.ShowError(err, parent)
|
dialog.ShowError(err, parent)
|
||||||
} else {
|
} else {
|
||||||
ch <- s.SId
|
ch <- fmt.Sprintf("%d:%s", s.SId, s.Name)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
//other btn setting
|
|
||||||
return btn
|
return btn
|
||||||
}
|
}
|
||||||
w := fyne.CurrentApp().NewWindow(title)
|
w := fyne.CurrentApp().NewWindow(title)
|
||||||
@ -195,10 +192,10 @@ func (ui *MainWindowImpl) createLoginWin(sid int32) {
|
|||||||
dialog.ShowError(err, ui.w)
|
dialog.ShowError(err, ui.w)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
ui.connService.ListenerPush()
|
||||||
//show mainwindow
|
//show mainwindow
|
||||||
logrus.Debug(rsp)
|
// logrus.Debug(rsp)
|
||||||
ui.pttService.SetUser(rsp.Data, rsp.Ex)
|
ui.pttService.SetUser(rsp.Data, rsp.Ex)
|
||||||
ui.obs.Notify(observer.EVENT_USERINFO, ui.pttService.GetUser())
|
|
||||||
// isCreateRole
|
// isCreateRole
|
||||||
if rsp.Data.Created {
|
if rsp.Data.Created {
|
||||||
// ui.renderUserContainer()
|
// ui.renderUserContainer()
|
||||||
@ -208,6 +205,7 @@ func (ui *MainWindowImpl) createLoginWin(sid int32) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithField("appName", appName).Error(err)
|
logrus.WithField("appName", appName).Error(err)
|
||||||
}
|
}
|
||||||
|
ui.obs.Notify(observer.EVENT_USERINFO, ui.pttService.GetUser())
|
||||||
} else {
|
} else {
|
||||||
ui.createRoleWindowPopUp()
|
ui.createRoleWindowPopUp()
|
||||||
}
|
}
|
||||||
@ -251,60 +249,42 @@ func (ui *MainWindowImpl) createRoleWindowPopUp() {
|
|||||||
} else {
|
} else {
|
||||||
if nickname.Text != "" {
|
if nickname.Text != "" {
|
||||||
logrus.WithField("nickname", nickname.Text).Debug("submit crete role")
|
logrus.WithField("nickname", nickname.Text).Debug("submit crete role")
|
||||||
if code, rsp := ui.pttService.CreateRole(nickname.Text); code != pb.ErrorCode_Success {
|
if code, _ := ui.pttService.CreateRole(nickname.Text); code != pb.ErrorCode_Success {
|
||||||
err := fmt.Errorf("login err: %v[%d]", code, int32(code))
|
err := fmt.Errorf("login err: %v[%d]", code, int32(code))
|
||||||
dialog.ShowError(err, ui.w)
|
dialog.ShowError(err, ui.w)
|
||||||
} else {
|
} else {
|
||||||
if rsp.IsSucc {
|
// if rsp.IsSucc {
|
||||||
user := ui.pttService.GetUser()
|
user := ui.pttService.GetUser()
|
||||||
logrus.WithField("uid", user.DbUser.Uid).Debug("create role succ")
|
logrus.WithField("uid", user.DbUser.Uid).Debug("create role succ")
|
||||||
ui.createWindowContainer()
|
ui.createWindowContainer()
|
||||||
} else {
|
appName, err := ui.at.openDefaultApp()
|
||||||
logrus.Error("create role failure")
|
if err != nil {
|
||||||
|
logrus.WithField("appName", appName).Error(err)
|
||||||
}
|
}
|
||||||
|
ui.obs.Notify(observer.EVENT_USERINFO, ui.pttService.GetUser())
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, ui.w)
|
}, ui.w)
|
||||||
}
|
}
|
||||||
|
|
||||||
// renderUserContainer fill userinfo in container
|
|
||||||
func (ui *MainWindowImpl) renderUserContainer() {
|
|
||||||
userInfo := ui.pttService.GetUser()
|
|
||||||
var (
|
|
||||||
nickname string
|
|
||||||
)
|
|
||||||
|
|
||||||
if userInfo != nil && userInfo.DbUser != nil {
|
|
||||||
nickname = userInfo.DbUser.Name
|
|
||||||
}
|
|
||||||
c := container.NewCenter(container.NewHBox(
|
|
||||||
widget.NewLabelWithStyle(common.LABEL_NICKNAME+nickname,
|
|
||||||
fyne.TextAlignCenter,
|
|
||||||
fyne.TextStyle{Bold: true}),
|
|
||||||
))
|
|
||||||
ui.w.SetContent(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewWelcomeLabel
|
// NewWelcomeLabel
|
||||||
func (ui *MainWindowImpl) NewWelcomeLabel(sid int32) {
|
func (ui *MainWindowImpl) NewWelcomeLabel(data string) {
|
||||||
|
p := strings.Split(data, ":")
|
||||||
|
if len(p) != 2 {
|
||||||
|
logrus.WithField("param", p).Error("choose service")
|
||||||
|
return
|
||||||
|
}
|
||||||
c := container.NewCenter(container.NewVBox(
|
c := container.NewCenter(container.NewVBox(
|
||||||
widget.NewLabelWithStyle(common.LABEL_CHOOSE+cast.ToString(sid),
|
widget.NewLabelWithStyle(fmt.Sprintf(common.LABEL_CHOOSE, p[0], p[1]),
|
||||||
fyne.TextAlignCenter,
|
fyne.TextAlignCenter,
|
||||||
fyne.TextStyle{Bold: true}),
|
fyne.TextStyle{Bold: true}),
|
||||||
container.NewCenter(container.NewHBox(
|
container.NewCenter(container.NewHBox(
|
||||||
widget.NewButton(common.BUTTON_LOGIN, func() {
|
widget.NewButton(common.BUTTON_LOGIN, func() {
|
||||||
ui.createLoginWin(sid)
|
ui.createLoginWin(cast.ToInt32(p[0]))
|
||||||
}),
|
}),
|
||||||
// widget.NewButton(common.BUTTON_REGISTE, func() {
|
|
||||||
// logrus.Debug("registe")
|
|
||||||
// }),
|
|
||||||
)),
|
)),
|
||||||
))
|
))
|
||||||
ui.w.SetContent(c)
|
ui.w.SetContent(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
// show userInfo
|
|
||||||
func (ui *MainWindowImpl) showUserInfoWin() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -3,10 +3,12 @@ package ui
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"go_dreamfactory/cmd/v2/model"
|
"go_dreamfactory/cmd/v2/model"
|
||||||
|
"go_dreamfactory/cmd/v2/ui/formview"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/modules/hero"
|
"go_dreamfactory/modules/hero"
|
||||||
"go_dreamfactory/modules/task"
|
"go_dreamfactory/modules/task"
|
||||||
|
"go_dreamfactory/modules/user"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
|
|
||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
@ -18,9 +20,52 @@ type MyCaseView interface {
|
|||||||
CreateForm(t *model.TestCase) fyne.CanvasObject
|
CreateForm(t *model.TestCase) fyne.CanvasObject
|
||||||
}
|
}
|
||||||
|
|
||||||
// nav
|
// 1 注册接口测试的表单试图
|
||||||
|
var (
|
||||||
|
viewRegister = map[string]MyCaseView{
|
||||||
|
// gm
|
||||||
|
ff(comm.ModuleGM, "cmd"): &formview.BingoView{},
|
||||||
|
//user
|
||||||
|
ff(comm.ModuleUser, user.UserSubTypeModifyName): &formview.UserModifynameView{},
|
||||||
|
//task
|
||||||
|
ff(comm.ModuleTask, task.TaskSubTypeList): &formview.TaskListView{},
|
||||||
|
ff(comm.ModuleTask, task.TaskSubTypeReceive): &formview.TaskReceiveView{},
|
||||||
|
ff(comm.ModuleTask, task.TaskSubTypeActiveList): &formview.TaskActiveListView{},
|
||||||
|
ff(comm.ModuleTask, task.TaskSubTypeActiveReceive): &formview.TaskActiveReceiveView{},
|
||||||
|
// hero
|
||||||
|
ff(comm.ModuleHero, hero.HeroSubTypeList): &formview.HeroListView{},
|
||||||
|
ff(comm.ModuleHero, hero.StrengthenUplv): &formview.HeroStrengthenUplvView{},
|
||||||
|
ff(comm.ModuleHero, hero.StrengthenUpStar): &formview.HeroStrengthenUpStarView{},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// 2 添加导航菜单
|
||||||
|
var (
|
||||||
|
CaseIndex = map[string][]string{
|
||||||
|
"": {"gm", "user", "hero", "task"},
|
||||||
|
"gm": {"gm.cmd"},
|
||||||
|
"user": {"user.modifyname"},
|
||||||
|
"hero": {"hero.list", "hero.strengthenuplv", "hero.strengthenupstar"},
|
||||||
|
"task": {"task.list", "task.receive", "task.activelist", "task.activereceive"},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// 3 注册测试用例
|
||||||
var (
|
var (
|
||||||
CaseNav = map[string]*model.TestCase{
|
CaseNav = map[string]*model.TestCase{
|
||||||
|
// gm
|
||||||
|
"gm": {
|
||||||
|
MainType: string(comm.ModuleGM),
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
|
ff(comm.ModuleGM, "cmd"): {
|
||||||
|
Desc: "eg. bingo:item,10001,1 bingo:attr,gold,1000000",
|
||||||
|
MainType: string(comm.ModuleGM),
|
||||||
|
SubType: "cmd",
|
||||||
|
Req: &pb.GMCmdReq{},
|
||||||
|
Rsp: &pb.GMCmdResp{},
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
// user
|
// user
|
||||||
"user": {
|
"user": {
|
||||||
MainType: "user",
|
MainType: "user",
|
||||||
@ -111,15 +156,6 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
CaseIndex = map[string][]string{
|
|
||||||
"": {"user", "hero", "task"},
|
|
||||||
"user": {"user.modifyname"},
|
|
||||||
"hero": {"hero.list", "hero.strengthenuplv", "hero.strengthenupstar"},
|
|
||||||
"task": {"task.list", "task.receive", "task.activelist", "task.activereceive"},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func ff(s1 core.M_Modules, s2 string) string {
|
func ff(s1 core.M_Modules, s2 string) string {
|
||||||
return fmt.Sprintf("%s.%s", s1, s2)
|
return fmt.Sprintf("%s.%s", s1, s2)
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,18 @@ type toolBar struct {
|
|||||||
func newToolBar() *toolBar {
|
func newToolBar() *toolBar {
|
||||||
var tb toolBar
|
var tb toolBar
|
||||||
|
|
||||||
|
// mainwindow toolbar
|
||||||
tb.toolbar = widget.NewToolbar(
|
tb.toolbar = widget.NewToolbar(
|
||||||
widget.NewToolbarAction(theme.ComputerIcon(), func() {
|
widget.NewToolbarAction(theme.ComputerIcon(), func() {
|
||||||
openApp(common.TOOLBAR_WELCOME)
|
openApp(common.TOOLBAR_MONITOR)
|
||||||
}),
|
}),
|
||||||
widget.NewToolbarAction(theme.AccountIcon(), func() {
|
widget.NewToolbarAction(theme.AccountIcon(), func() {
|
||||||
openApp(common.TOOLBAR_TESTER)
|
openApp(common.TOOLBAR_TESTER)
|
||||||
}),
|
}),
|
||||||
widget.NewToolbarSeparator(),
|
widget.NewToolbarSpacer(),
|
||||||
widget.NewToolbarAction(theme.DocumentIcon(), func() {}),
|
widget.NewToolbarAction(theme.HelpIcon(), func() {
|
||||||
|
showAbout()
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
return &tb
|
return &tb
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ func (this *toyUserInfo) Run() {
|
|||||||
this.obs.AddListener(observer.EVENT_USERINFO, observer.Listener{
|
this.obs.AddListener(observer.EVENT_USERINFO, observer.Listener{
|
||||||
OnNotify: func(d interface{}, args ...interface{}) {
|
OnNotify: func(d interface{}, args ...interface{}) {
|
||||||
time.Sleep(time.Millisecond * 50)
|
time.Sleep(time.Millisecond * 50)
|
||||||
|
_ = this.data.Set([]string{})
|
||||||
if this.copyBtn.Disabled() {
|
if this.copyBtn.Disabled() {
|
||||||
this.copyBtn.Enable()
|
this.copyBtn.Enable()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user