119 lines
2.7 KiB
Go
119 lines
2.7 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/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 {
|
|
BaseformView
|
|
itemList common.ItemList
|
|
flag bool
|
|
greeList func()
|
|
}
|
|
|
|
func (this *FriendAgreeView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|
this.itemList = *common.NewItemList()
|
|
|
|
this.itemList.ItemList = this.itemList.CreateDefaultCheckList()
|
|
|
|
this.greeList = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
string(comm.ModuleFriend),
|
|
friend.FriendSubTypeApplyList,
|
|
&pb.FriendApplyListReq{}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
}
|
|
defer this.greeList()
|
|
|
|
refreshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), func() {
|
|
this.itemList.Reset()
|
|
this.greeList()
|
|
})
|
|
|
|
//同意提交
|
|
agreeBtn := widget.NewButtonWithIcon("同意", theme.ConfirmIcon(), func() {
|
|
if len(this.itemList.SelItemIds) == 0 {
|
|
common.ShowTip("请选择项目")
|
|
return
|
|
}
|
|
logrus.Debug(this.itemList.SelItemIds)
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
t.SubType,
|
|
&pb.FriendAgreeReq{
|
|
FriendIds: this.itemList.SelItemIds,
|
|
},
|
|
); err != nil {
|
|
logrus.Error(err)
|
|
return
|
|
}
|
|
})
|
|
|
|
//拒绝
|
|
refuseBtn := widget.NewButtonWithIcon("拒绝", theme.CancelIcon(), func() {
|
|
if len(this.itemList.SelItemIds) == 0 {
|
|
common.ShowTip("请选择项目")
|
|
return
|
|
}
|
|
if err := service.GetPttService().SendToClient(
|
|
string(comm.ModuleFriend),
|
|
friend.FriendSubTypeRefuse,
|
|
&pb.FriendRefuseReq{
|
|
FriendIds: this.itemList.SelItemIds,
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
return
|
|
}
|
|
|
|
})
|
|
|
|
// layout
|
|
buttonBar := container.NewHBox(refreshBtn, agreeBtn, refuseBtn)
|
|
|
|
c := container.NewBorder(buttonBar, nil, nil, nil, this.itemList.ItemList)
|
|
|
|
this.dataListener()
|
|
return c
|
|
}
|
|
|
|
// 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
|
|
}
|
|
|
|
for _, v := range rsp.List {
|
|
item := common.Item{
|
|
Id: v.UserId,
|
|
Text: v.NickName,
|
|
}
|
|
this.itemList.AddItem(item)
|
|
}
|
|
},
|
|
})
|
|
}
|