EngineerCMS-用golang和bootstrap table打造无限级目录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/53366988

土木工程师的个人知识管理和发布系统,也可满足项目上团队之间的协作,作为平台,利用golang的简洁,自带服务,不用环境,好处很多。

经过这个周末的撸码,最最关键最最难的最最核心的东西全部消灭了。 它就是:自定义(预设)项目类别:水利的,还是电力的?还是市政的?然后在此类别下,再安排不同的阶段:水利从规划开始,电力却是预可研…… 到了新建项目的时候,只要选择哪个类别,就相应显示对应的预设好的下级目录,根据需要,我是水工专业的,我从施工图阶段做起的,那么我就不选2级目录的可研啊,初设啊,我也不选3级目录的规划的,机电啊…… 另一个值得推荐的目录排列方式,经过研究,有这样一个最最基本的原则,就是少的放前面,多的往后放,资料少的目录(比如来往函件)意味着 可以往下级放,而资料多的比如图纸,要往前排。2个问题,一个是分级的时候,谁放上级,谁放下级,另一个是排序的时候谁排前? 第一个问题:项目名——阶段——这里是先放文档类型比如报告、图纸、计算书,还是放专业比如水工施工建筑?经过仔细研究,并从这个cms是我个人使用角度,专业的数量远少于文档类型的数量,比如,我只要水工专业和综合,有时候用一下地质的,规划的,但毕竟还是很少,不超过5个;而文档类型就多了去了,联系单,修改单,报告,图纸,计算书,来函,回函,会议纪要,报告单,生成活动记录表,委外,验收,合同……显然,文档类型应该放专业后。而院企业标准里将文档类型放前,它只是在编号的时候放在阶段后面,并没规定资料目录一定要将文档类型放阶段下一级。而P3中就没有像档案那样将文档类型放阶段下级。 好了,这个分级顺序的确很纠结。阶段——专业——文档类型—比如这里类型为图纸,还需要下级:大坝,电站,输电,引水…… 所以,回到最开头,本cms提供任意级别的目录,根据预定的级别名称和级次,自动生成树状的无限级的侧栏目录——随后可以增删改。比如施工图阶段下多了规划专业,那么可以删掉。 上图: 后台查看目录设置(预设),每个类别下对应的分级一目了然。此时还不是树状,只是给定每个层级中包含哪些名称。

添加类别:

任意修改类别。

水利类别下对应的分级,各个阶段,各个专业,和不同文档类型等。 添加分级目录:

修改某个分级目录:

项目列表页,这次直接用bootstrap table做了。

添加项目,留意前面在后台设置的类别这里可以进行选择

选择了类别后,下面出现对应的目录分级,可以选需要的各个层级的名称了。 点击保存,就在数据库生成了树状的目录了。这个是用递归算法做的,以前用循环做,代码老长,现在只要十行内解决了。

查看某个具体项目,左侧就是查询数据库树状目录数据,又用递归算法生成嵌套的json数据,提供给前台的treeview,生成这样的层级目录。 这次我要让每级目录下都可以放资料,而不是像以前那样,只能是最下一级才放资料。

添加项目时,选择目录分级效果。

添加项目时部分选择分级目录效果

总体代码量大大减少,并优雅很多。  接下来给每个项目每一级目录赋予权限,只剩下这个核心了。 其他都是锦上添花的效果,比如收藏成果,检索成果,不同机器上相同项目之间同步资料等功能不影响使用了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

专栏 | 百度深度学习平台PaddlePaddle框架解析

机器之心专栏 来源:百度PaddlePaddle PaddlePaddle 是 2016 年 8 月底百度开源的深度学习平台,并且在短时间内迅速引发全球开发热度...

43850
来自专栏AI科技大本营的专栏

开源 | 推荐一个基于Echarts和Tushare的股票视觉化应用

作者| 李鎔洲,UIUC大二学生,曾经参与微小卫星通信开发,为恒信资管开发期货数据视觉化系统,现在在尝试做校园全电动F1赛车的电子系统。 该项目是一个基于Tu...

55230
来自专栏小小詹同学

知乎大神爬取高颜值美女(Python爬虫+人脸检测+颜值检测)

这是一篇来自知乎大神的技术文章

1.1K100
来自专栏大数据文摘

手把手:一张图看清编程语言发展史,你也能用Python画出来!

43530
来自专栏用户画像

1.1.4 计算机网络的分类

广域网的任务是提供长距离通信。运送主机所发送的数据,其覆盖范围通常为几十到几千千米的区域,因而有时也称为远程网。广域网是因特网的核心部分。连续广域网的各结点交换...

7640
来自专栏开源FPGA

基于FPGA的HDMI高清显示接口驱动

  本站点博客将逐步迁移至http://ninghechuanblogs.cn/   HDMI是(High Definition Multimedia Inte...

665100
来自专栏进击的程序猿

袖珍分布式系统(二)

本文是Distributed systems for fun and profit的第二部分,本文是阅读该文后的一些记录。

12220
来自专栏CDA数据分析师

手把手教你如何使用Excel高级筛选

Excel自动筛选在工作中被经常使用,但掌握高级筛选的同学却很少,甚至都不知道高级筛选高级到哪儿了。今天兰色还原一个高大尚的高级筛选功能。 一、高级筛选哪里“高...

23450
来自专栏知晓程序

晓快讯 | 微信公众号可以改错错错错错字了!

2 月 8 日凌晨,微信公众平台发布公告,称「为了给运营者、读者提供更友好的编辑、阅读体验,公众平台新增修改文章错别字功能」,支持运营者对已群发文章进行小范围修...

15430
来自专栏Golang语言社区

【go语言】Goroutines 并发模式(二)

摘要 接上一篇博客,主要是对GO语言中的并发编程模式做一个粗略的归纳总结,文中示例参考自golang conference中的一些演讲和博客,go涉及到的Go语...

25830

扫码关注云+社区

领取腾讯云代金券