修改UI
This commit is contained in:
parent
a5a6ae1cbe
commit
361ae09545
22
busi/sociaty.go
Normal file
22
busi/sociaty.go
Normal file
@ -0,0 +1,22 @@
|
||||
package busi
|
||||
|
||||
import "legu.airobot/lib"
|
||||
|
||||
var _ lib.IScene = (*SociatyScene)(nil)
|
||||
|
||||
type SociatyScene struct {
|
||||
lib.Action
|
||||
}
|
||||
|
||||
func (s *SociatyScene) Info() lib.SceneInfo {
|
||||
return lib.SceneInfo{
|
||||
Name: "公会申请",
|
||||
Desc: "bbb",
|
||||
}
|
||||
}
|
||||
|
||||
func (s *SociatyScene) Run(robot lib.IRobot) error {
|
||||
|
||||
|
||||
return nil
|
||||
}
|
@ -6,6 +6,7 @@ type IAction interface {
|
||||
|
||||
type Action struct {
|
||||
// scene *scene
|
||||
Id string
|
||||
Name string
|
||||
Desc string
|
||||
}
|
||||
|
1
main.go
1
main.go
@ -29,6 +29,7 @@ func init() {
|
||||
|
||||
registerScenes(
|
||||
&busi.FriendScene{},
|
||||
&busi.SociatyScene{},
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
{"level":"debug","msg":"配置","time":"2022-12-12 11:40:00","场景":[{"id":"799348400","name":"场景1","desc":"111","callers":[{"id":"799348400_1670808209409441100","name":"好友推荐","key":"friend.randlist","num":1}]},{"id":"261021700","name":"登录","callers":[{"id":"261021700_1670808329010907700","name":"好友申请","key":"friend.apply"}],"status":1}]}
|
@ -36,7 +36,7 @@ func newMainMenu() *mainMenu {
|
||||
mm.configMenu = fyne.NewMenuItem("配置", globalWindow.configContainer)
|
||||
mm.configMenu.Icon = theme.FileTextIcon()
|
||||
//场景
|
||||
mm.sceneMenu = fyne.NewMenuItem("旧场景", globalWindow.sceneContainer)
|
||||
mm.sceneMenu = fyne.NewMenuItem("场景", globalWindow.newSceneContainer)
|
||||
mm.sceneMenu.Icon = theme.FileTextIcon()
|
||||
|
||||
// AI
|
||||
|
167
ui/mainwindow.go
167
ui/mainwindow.go
@ -90,31 +90,31 @@ func (mw *MainWindow) startContainer() {
|
||||
}
|
||||
// 检查场景配置
|
||||
if config.Scenes == nil {
|
||||
dialog.ShowCustomConfirm("提示", "创建", "取消", widget.NewLabel("还没有创建任何场景"), func(b bool) {
|
||||
dialog.ShowCustomConfirm("提示", "创建", "取消", widget.NewLabel("还没有选择任何场景"), func(b bool) {
|
||||
if !b {
|
||||
return
|
||||
}
|
||||
mw.sceneContainer()
|
||||
mw.newSceneContainer()
|
||||
}, mw.w)
|
||||
return
|
||||
}
|
||||
// 检查场景是否启用
|
||||
isEnable := false
|
||||
for _, v := range config.Scenes {
|
||||
if v.Status == lib.STATUS_ENABLE {
|
||||
isEnable = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !isEnable {
|
||||
dialog.ShowCustomConfirm("提示", "启用", "取消", widget.NewLabel("还没有启用任意场景"), func(b bool) {
|
||||
if !b {
|
||||
return
|
||||
}
|
||||
mw.sceneContainer()
|
||||
}, mw.w)
|
||||
return
|
||||
}
|
||||
// isEnable := false
|
||||
// for _, v := range config.Scenes {
|
||||
// if v.Status == lib.STATUS_ENABLE {
|
||||
// isEnable = true
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// if !isEnable {
|
||||
// dialog.ShowCustomConfirm("提示", "启用", "取消", widget.NewLabel("还没有启用任意场景"), func(b bool) {
|
||||
// if !b {
|
||||
// return
|
||||
// }
|
||||
// mw.sceneContainer()
|
||||
// }, mw.w)
|
||||
// return
|
||||
// }
|
||||
startBtn.Enable()
|
||||
startBtn.OnTapped = func() {
|
||||
ai, err := lib.NewAI(lib.AIParam{RobotCount: uint32(config.Global.UserCount)})
|
||||
@ -567,24 +567,25 @@ func (mw *MainWindow) sceneContainer() {
|
||||
func (mw *MainWindow) newSceneContainer() {
|
||||
//注册的场景列表
|
||||
registerSceneList := *lib.NewItemList()
|
||||
registerSceneList.OnSelFunc = func(id widget.ListItemID) {
|
||||
data := registerSceneList.CachedList.Items[id].Data
|
||||
info, ok := data.(lib.SceneInfo)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
logrus.Debug(info)
|
||||
// callerNameEntry.Text = info.Desc
|
||||
// callerKeyEntry.Text = info.Name
|
||||
// callerForm.Refresh()
|
||||
}
|
||||
// registerSceneList.OnSelFunc = func(id widget.ListItemID) {
|
||||
// data := registerSceneList.CachedList.Items[id].Data
|
||||
// info, ok := data.(lib.SceneInfo)
|
||||
// if !ok {
|
||||
// return
|
||||
// }
|
||||
// logrus.Debug(info)
|
||||
// // callerNameEntry.Text = info.Desc
|
||||
// // callerKeyEntry.Text = info.Name
|
||||
// // callerForm.Refresh()
|
||||
// }
|
||||
registerSceneList.ListWidget = registerSceneList.CreateList()
|
||||
registerSceneReload := func() {
|
||||
registerSceneList.Reset()
|
||||
for _, v := range mw.UIImpl.scenes {
|
||||
info := v.Info()
|
||||
item := lib.Item{
|
||||
Id: info.Name,
|
||||
Text: fmt.Sprintf("%s (%s)", info.Desc, info.Name),
|
||||
Text: fmt.Sprintf("【%s】 %s", info.Name, info.Desc),
|
||||
Data: info,
|
||||
}
|
||||
registerSceneList.AddItem(item)
|
||||
@ -597,7 +598,14 @@ func (mw *MainWindow) newSceneContainer() {
|
||||
selectedSceneList := *lib.NewItemList()
|
||||
selectedSceneList.ListWidget = selectedSceneList.CreateList()
|
||||
selectedSceneLoad := func() {
|
||||
|
||||
selectedSceneList.Reset()
|
||||
for _, v := range mw.config.Scenes {
|
||||
item := lib.Item{
|
||||
Id: v.Name,
|
||||
Text: fmt.Sprintf("【%s】 %s", v.Name, v.Desc),
|
||||
}
|
||||
selectedSceneList.AddItem(item)
|
||||
}
|
||||
}
|
||||
selectedSceneLoad()
|
||||
|
||||
@ -606,26 +614,105 @@ func (mw *MainWindow) newSceneContainer() {
|
||||
deleSceneBtn := widget.NewButtonWithIcon("删除场景", theme.DeleteIcon(), nil)
|
||||
|
||||
// 刷新场景
|
||||
refreshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), nil)
|
||||
// refreshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), nil)
|
||||
|
||||
//search
|
||||
searchEntry := widget.NewEntry()
|
||||
searchEntry.PlaceHolder = "输入要搜索的用例"
|
||||
searchEntry.OnChanged = func(s string) {
|
||||
if s == "" {
|
||||
registerSceneReload()
|
||||
} else {
|
||||
newList := []lib.Item{}
|
||||
for _, v := range registerSceneList.SearchItem {
|
||||
if strings.Contains(v.Text, s) {
|
||||
newList = append(newList, v)
|
||||
}
|
||||
}
|
||||
registerSceneList.CachedList.Items = newList
|
||||
registerSceneList.ListWidget.Refresh()
|
||||
}
|
||||
}
|
||||
|
||||
// 工具条
|
||||
toolbar := container.NewHBox(addSceneBtn, deleSceneBtn, layout.NewSpacer(), refreshBtn)
|
||||
// toolbar := container.NewHBox(addSceneBtn, deleSceneBtn, layout.NewSpacer(), refreshBtn)
|
||||
//布局
|
||||
var dynamic fyne.CanvasObject
|
||||
contentRender := func() {
|
||||
// sceneLoad()
|
||||
selectedSceneLoad()
|
||||
if len(selectedSceneList.CachedList.Items) == 0 {
|
||||
dynamic = container.NewCenter(widget.NewLabel("还没有创建任何场景"))
|
||||
dynamic = container.NewCenter(widget.NewLabel("还没有选择任何场景"))
|
||||
} else {
|
||||
split := container.NewHSplit(selectedSceneList.ListWidget, selectedSceneList.ListWidget)
|
||||
split.Offset = 0.3
|
||||
dynamic = split
|
||||
dynamic = container.NewBorder(container.NewHBox(deleSceneBtn, layout.NewSpacer()), nil, nil, nil, selectedSceneList.ListWidget)
|
||||
}
|
||||
content := container.NewBorder(toolbar, nil, nil, nil, dynamic)
|
||||
mw.changeContent(content)
|
||||
split := container.NewHSplit(
|
||||
container.NewBorder(
|
||||
container.NewBorder(nil, nil, container.NewHBox(addSceneBtn), nil, searchEntry), nil, nil, nil,
|
||||
registerSceneList.ListWidget), dynamic)
|
||||
split.Offset = 0.3
|
||||
// content := container.NewBorder(toolbar, nil, nil, nil, split)
|
||||
mw.changeContent(split)
|
||||
}
|
||||
contentRender()
|
||||
|
||||
// 添加场景事件
|
||||
addSceneBtn.OnTapped = func() {
|
||||
selId := registerSceneList.SelectedId()
|
||||
if selId == "" {
|
||||
ShowTip("请选择一个场景")
|
||||
return
|
||||
}
|
||||
|
||||
for _, v := range mw.UIImpl.scenes {
|
||||
si := v.Info()
|
||||
if si.Name == "" {
|
||||
break
|
||||
}
|
||||
if si.Name == selId {
|
||||
item := lib.Item{
|
||||
Id: si.Name,
|
||||
Text: si.Name,
|
||||
}
|
||||
selectedSceneList.AddItem(item)
|
||||
|
||||
scenes_conf := mw.config.Scenes
|
||||
scenes_conf = append(scenes_conf, &storage.Scene{
|
||||
ID: cast.ToString(time.Now().Nanosecond()),
|
||||
Name: si.Name,
|
||||
Desc: si.Desc,
|
||||
})
|
||||
mw.config.Scenes = scenes_conf
|
||||
if err := mw.storage.StoreConfig(mw.config); err != nil {
|
||||
ShowTip(fmt.Sprintf("错误:%v", err.Error()))
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
contentRender()
|
||||
}
|
||||
|
||||
// 删除场景事件
|
||||
deleSceneBtn.OnTapped = func() {
|
||||
selId := selectedSceneList.SelectedId()
|
||||
if selId == "" {
|
||||
ShowTip("请选择一个场景")
|
||||
return
|
||||
}
|
||||
scenes := mw.config.Scenes
|
||||
|
||||
for i, item := range scenes {
|
||||
if item.Name == selId {
|
||||
scenes = append(scenes[:i], scenes[i+1:]...)
|
||||
break
|
||||
}
|
||||
}
|
||||
mw.config.Scenes = scenes
|
||||
selectedSceneLoad()
|
||||
if err := mw.storage.StoreConfig(mw.config); err != nil {
|
||||
ShowTip(fmt.Sprintf("错误:%v", err.Error()))
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 导出配置
|
||||
|
Loading…
Reference in New Issue
Block a user