zoukankan      html  css  js  c++  java
  • 智慧城市/智慧交通/智慧校园中EasyCVR平台视频管理系统实现二级分组开发记录

    在很多管理系统或者平台页面当中,采用树状图来进行项目的归类是很实用的一种分组方式,也就是我们常说的树状图。EasyGBS中已经在前端界面完成了树状二级分组的功能,但是在EasyCVR中,现有的分组功能没有多级的概念,每个分组管理不同的通道,然后绑定到用户,不同的用户登录,只能操作对应分组的通道。

    这种设计能满足一般的使用场景,但是比如在类似于学校的视频管理系统中,如果需要二级目录结构,就需要进行新的架构编译。例如第一级为小学部、初中部、高中部;第二级则为班级,每个部门下分不同的班级,班级管理具体的通道,大致需求如下图:

    因此在重新编译中,我们需要修改相关分组和用户角色相关逻辑来实现该功能,大致分组设定代码参考如下:

    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协议)的接入,也能兼容市面上绝大多数的安防设备,已经可以作为智慧城市建设的有力支撑。

  • 相关阅读:
    Triangle
    Remove Duplicate Letters
    array 并不会被默认初始化
    Unique Binary Search Trees
    有些障碍的 unique path
    unique paths
    最长增长序列的长度(LIS)
    极其简单的复数类,只是不想再推演一遍复数四则运算
    安卓_11
    安卓_10
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14550085.html
Copyright © 2011-2022 走看看