package formview import ( "go_dreamfactory/cmd/v2/model" "go_dreamfactory/cmd/v2/service" "go_dreamfactory/cmd/v2/service/observer" "go_dreamfactory/comm" "go_dreamfactory/modules/friend" "go_dreamfactory/pb" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" "github.com/sirupsen/logrus" ) // 好友审批 type FriendAgreeView struct { ListBaseView } func (this *FriendAgreeView) CreateView(t *model.TestCase) fyne.CanvasObject { //init required this.initItemList() //同意提交 agreeBtn := widget.NewButtonWithIcon("同意", theme.ConfirmIcon(), func() { if err := service.GetPttService().SendToClient( t.MainType, t.SubType, &pb.FriendAgreeReq{ FriendIds: this.selItemIds, }, ); err != nil { logrus.Error(err) return } this.listBtnFun() }) //拒绝 refuseBtn := widget.NewButtonWithIcon("拒绝", theme.CancelIcon(), func() { if err := service.GetPttService().SendToClient( string(comm.ModuleFriend), friend.FriendSubTypeRefuse, &pb.FriendRefuseReq{ FriendIds: this.selItemIds, }); err != nil { logrus.Error(err) return } this.listBtnFun() }) this.createItemListWithCheck() applyListBtn := widget.NewButton("申请列表", this.listBtnFun()) split := container.NewHSplit(this.dataListWidget, container.NewVBox(applyListBtn, agreeBtn, refuseBtn)) split.Offset = 1 this.dataListener() return split } // listener applyListdata func (this *FriendAgreeView) dataListener() { this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{ OnNotify: func(d interface{}, args ...interface{}) { data := d.(*pb.UserMessage) if !(data.MainType == string(comm.ModuleFriend) && data.SubType == friend.FriendSubTypeApplyList) { return } rsp := &pb.FriendApplyListResp{} if !comm.ProtoUnmarshal(data, rsp) { logrus.Error("unmarshal err") return } this.itemListData = model.NewItemModelList() for _, v := range rsp.List { fm := &model.ItemModel{ Id: v.UserId, Label: v.NickName, } this.itemListData.DataList = append(this.itemListData.DataList, fm) } this.reloadListData() }, }) }