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

  • 相关阅读:
    node.js学习二---------------------同步API和异步API的区别
    node.js学习一---------------------模块的导入
    ES6函数的特性(箭头语法)
    10分钟了解Android的Handler机制
    10分钟了解Android的事件分发
    SwipeRefreshLayout,用最少的代码定制最美的上下拉刷新样式
    手把手教你React Native 实战之开山篇《一》
    Android 组件化方案探索与思考
    2018谷歌I/O开发者大会8大看点汇总 新品有哪些
    Glide高级详解—缓存与解码复用
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14550085.html
Copyright © 2011-2022 走看看