在很多管理系统或者平台页面当中,采用树状图来进行项目的归类是很实用的一种分组方式,也就是我们常说的树状图。EasyGBS中已经在前端界面完成了树状二级分组的功能,但是在EasyCVR中,现有的分组功能没有多级的概念,每个分组管理不同的通道,然后绑定到用户,不同的用户登录,只能操作对应分组的通道。
这种设计能满足一般的使用场景,但是比如在类似于学校的视频管理系统中,如果需要二级目录结构,就需要进行新的架构编译。例如第一级为小学部、初中部、高中部;第二级则为班级,每个部门下分不同的班级,班级管理具体的通道,大致需求如下图:
因此在重新编译中,我们需要修改相关分组和用户角色相关逻辑来实现该功能,大致分组设定代码参考如下:
代码语言:javascript复制type Label struct {
ID int `gorm:"primary_key type:INTEGER not null AUTO_INCREMENT"`
Name string //`json:"name" `
ParentID int //`json:"parent_id" `
CreateTime time.Time
UpdateTime time.Time //`json:"update_time" `
}
func (Label) TableName() string {
return "t_label"
}
type LabelChannel struct {
LabelId int
ChannelId string
ParentID int //`json:"parent_id" `
ChannelDeviceId string
}
func (LabelChannel) TableName() string {
return `t_label_channel`
}
func DeleteLabelChannelByDeviceId(id string) (err error) {
tx := db.SQLite.Begin()
err = tx.Delete(LabelChannel{}, "channel_device_id = ?", id).Error
if err != nil {
tx.Rollback()
return
}
err = tx.Commit().Error
if err != nil {
return
}
return
}
修改之后,分组界面如下图所示。分组后,每组可对每组分配的通道进行管理和查看,视觉体验更清晰简洁。
由TSINGSEE青犀视频打造的EasyCVR安防视频云服务不但能支持标准协议(RTSP、RTMP、Onvif、GB28181等协议)和厂家私有协议(海康SDK、Ehome协议)的接入,也能兼容市面上绝大多数的安防设备,已经可以作为智慧城市建设的有力支撑。