Git Product home page Git Product logo

3xxx / engineercms Goto Github PK

View Code? Open in Web Editor NEW
1.3K 95.0 402.0 599.88 MB

工程师知识管理系统:基于golang语言(beego框架),支持分布式文件存储minio集群部署。engineercms为土木工程师基于web的知识管理系统。管理个人、工程项目资料,业主—设计—监理—施工方均从平台获得资料。支持提取码分享文件、onlyoffice实时文档协作,在线利用mindoc创作你的书籍,阅览PDF文件。手机端配套小程序,微信搜索“设计与管理”即可呼出小程序。

Home Page: https://zsj.itdos.net/

License: Apache License 2.0

Go 97.60% Batchfile 0.01% HTML 0.01% PHP 0.30% Shell 0.01% Less 0.03% Ruby 0.01% Python 0.05% Dockerfile 0.01% Classic ASP 0.09% Stata 0.04% SCSS 0.05% GLSL 0.09% JavaScript 1.65% ASP.NET 0.01% Java 0.06% C# 0.03%
engineers cms projectmanage engineer-management hydraulic-informatization ipad

engineercms's Introduction

EngineerCMS

————工程师知识管理系统

License Build Status GoDoc

Demo ——基于engineercms的设代资料管理平台(真实应用环境)

# go mod使用
# https://www.jianshu.com/p/760c97ff644c

# 克隆源码
# git clone https://github.com/3xxx/engineercms.git
# go run main.go
# go包自动安装
# 设置go代理
# go env -w GO111MODULE=on
# go env -w GOPROXY=https://goproxy.cn,direct

# 初始化mod:
# go mod init

# 代码中有新的库加入,需要更新mod:
# go mod tidy——下载新增的依赖包
# go mod vendor——更新

# linux系统上编译:拷贝go.mod go.sum 其他文件,然后执行go mod vendor,

# 再执行bee generate docs
# bee generate routers
# 再执行bee run -gendoc=true -downdoc=true

# 将新增的依赖包自动写入当前项目的 vendor 目录:
# go mod vendor
# 如果 go.mod 发生变化,应当重新执行 go mod vendor!
# 执行go mod vendor将删除项目中已存在的vendor目录;
# 永远不要对vendor中的依赖库进行二次修改、更改!
# go命令不检查vendor中的依赖库是否被修改
# 关闭——这个看情况,go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout
# go env -w GOSUMDB=off

# 编译(sqlite需要CGO支持)
# go build -ldflags "-w"
# 数据库初始化(此步骤执行之前,需配置`conf/app.conf`)
# ./engineercms install

# linux上执行,先杀死进程,再拷贝新的执行文件和路由文件
# killall engineercms
# 拷贝engineercms和swagger里的swagger.yml和swagger.json到对应文件夹里
# $ chmod +x engineercms 
# $ nohup ./engineercms &

# beego 2.0.0 升级指南
# 获取最新版本的 bee 工具 go install github.com/beego/bee/v2@latest
# 更新 beego 框架 go get -u github.com/beego/beego/v2
# 然后进入项目,执行: bee fix -t 2
# 需要注意的是,如果你是 windows 用户,那么你需要在 WSL 内部运行该命令。
# 在项目文件夹下鼠标右键——Git Bash Here
# 这里需要导入的包是
# github.com/beego/beego/v2/server/web/context
# 而不是
# ~ github.com/beego/beego/v2/adapter/context ~

# 目前来说因为你所有的包都切换过去了beego/beego/v2,所以你对应的context要使用beego/beego/v2/server/web/context下的这个。

# 我教你一个小技巧。当你发现依赖找不到的时候,你把import里面对应的东西删掉,IDE会帮你补全,或者给你提示。如果你用的GOLANG IDE,那么会自动帮你把对应依赖引入。

# 记住一个核心原则:如果你用的是adapter的包,那么所有的包都应该是adapter的;如果你用的是beego/beego/v2(非adapter),那么所有的都应该是beego/beego/v2下的。

# 手动执行 bee generate routers 重新生成commentsRouter_controllers.go,新版本删除了自动生成功能
# bee run -gendoc=true -downdoc=true

# go get 是拉取远程包的命令,还是继续使用的
# go install 是对项目进行编译并自动拉取所需包并生成 可执行文件的。

# 还好,你说的编译一下,生成可执行命令了,感谢!

# 解决步骤:
# 1、go get -u github.com/beego/bee/v2
# 2、cd 到这个bee/v2版本中
# 3、go mod tidy 整理一下
# 4、go install
# 此时在 GOPATH目录bin文件夹下生成了bee.exe 。
# 测试 ./bee.exe new hello 已正常创建项目,自己将bin目录加入到全局即可。

# https://www.cnblogs.com/cqlb/p/13396107.html
# 一、创建标签
# 在Git中打标签非常简单,首先,切换到需要打标签的分支上:

# 1 $ git branch
# 2 * dev
# 3   master
# 4 $ git checkout master
# 5 Switched to branch 'master'
# git add .
# git commit -m "update"
# 然后,敲命令git tag <tagname> 就可以打一个新标签:

# $ git tag v2.0.5
# 因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
# 如果要推送某个标签到远程,使用命令
# git push --tags
# $ git push origin <tagname>

# Administrator@DESK-20210217SN MINGW64 /d/engineercms (master|REBASE-i)
# $ git push --delete origin v2.0.0
# To https://github.com/3xxx/engineercms
#  - [deleted]         v2.0.0

# Administrator@DESK-20210217SN MINGW64 /d/engineercms (master|REBASE-i)
# $ git push --delete origin v2.0.2
# To https://github.com/3xxx/engineercms
#  - [deleted]         v2.0.2
# 如果有人想知道如何一次删除多个标签,你可以用空格简单地列出它们,例如git push --delete origin tag1 tag2。本地标签删除git tag -d tag1 tag2同样有效。

一 特性:

  1. 本系统采用go语言(基于beego框架)开发,运行文件为编译后的二进制可执行文件,所以无需像其他语言(php、nodejs、java等语言)编写的web应用那样,需要配置运行服务环境。
  2. 数据库采用sqlite嵌入式数据库,所以也无需配置数据库服务环境。
  3. 开箱即用,无需网络开发知识。
  4. 对onlyoffice document server的二次开发,实现企业的实时文档协作,非常方便,避免了文档的汇总等繁琐事物,效率大大提高,协作更加优雅有趣。除了支持office的docx,xlsx及pptx格式外,还支持国产wps,et和dps格式。
  5. 在线直接预览dwg文件,避免了图纸转换成pdf的麻烦,也避免了先下载附件然后用本机电脑打开图纸的麻烦,方便设计人员查阅图纸。
  6. 采用最新的froala富文本编辑器,支持word图文直接粘贴发布,word中的图片自动上传,发布文章轻松快捷,文章支持视频和文件附件。
  7. 微信小程序客户端访问和添加图文,打开微信,搜索“水务设计”即可看到小程序了,小程序端也开源
  8. web端和微信小程序多项目切换。
  9. swagger API自动化文档。
  10. 可在conf里定制9个导航条菜单。
  11. 后台查看日志。
  12. 通用的文档流程设置。文档审批,文档校审,合同评审流程,图纸校审流程,……
  13. 整合了mindoc,实现了在线创作、查阅、分享、导入、导出电子书籍。
  14. 文件分享提取码。
  15. 全文检索:上传office文档、pdf等,调用tika解析后存入elasticsearch(中文分词ik),实现全文检索。
  16. 新增supa-mapus地图协作,部分代替91地图功能,方便工程师查看现场定位建筑物。
  17. 支持minio分布式文件存储,可集群部署文件存储服务。
  18. 后台预定义工程目录类型和分层级别,支持无限级;目录采用懒加载模式;
  19. 建立项目时选择已有项目作为模板,继承已有项目权限,或选择后台预定义的项目类型和目录层级,瞬间自动建立成百上千的树形目录,支持无限级目录;目录采用懒加载显示;项目支持公开和私有;
  20. 任意层级目录下可以添加任意成果;可对任意目录进行权限设置;
  21. 成果包含文章、pdf附件和非pdf附件,并将它们分别列出;一个成果如果包含一个pdf文件则直接打开,如果多于一个则打开列表,非pdf附件也是一样;文章采用富文本编辑器froala,支持图文word直接黏贴,自动上传图片;
  22. 成果间的关联:比如先出的施工图,然后一段时间后再出了对这个图纸的修改通知单,那么修改单关联上这个图纸后,每次看这个图纸,就知道这个图纸有修改了,需要引起注意;
  23. 每个项目提供一个项目日程和大事记时间轴;
  24. 成果统计,避免领导询问进度和周报月报;

二 应用案例:

我们做工程设计的,经常要做设代提供现场服务,工程资料很多参建方需要查阅,有一个资料平台会方便很多,并且支持多端:

√参建单位各自自由建立自己的目录,共享资料,避免大家重复存储项目资料,比如会议纪要,法律法规。

√图纸易得,能更好地控制工程质量——pdf设计文件参建单位都可以阅读,提高效率,减少障碍。

√基于“用户——角色——权限”的权限设置。独创的根据文件扩展名来进行权限管理。

√会议室和车辆的预定,用餐人数计划统计等常用功能。

√wiki技术讨论;websocket聊天室;。

√独创的pdf连续查阅;

√硬盘中的资料存储与页面的目录保持一致;设代日志等文章中照片按月度存储;

√ONLYOFFICE中文档的历史版本对照功能。

√ONLYOFFICE中文档的格式转换功能,如word转pdf。

√ONLYOFFICE中文档协作的权限设置,采用casbin。

√出差登记和打卡,考勤登记,值班安排;

√小程序多人写同一天的设代日志;

√工程图片相册服务;

√工程视频服务;

√mapus地图协作,现场定位工程建筑物;

二 todo:

× 规范标准库编辑;

× 读取文件属性——完成时间,作为月度统计依据,或提供选择,以上传时间为统计口径,生成某个目录下月度成果报表,与上个月对比柱状图;

× 项目目录编辑完善:ztree目录拖动;

× 多关键字检索;

× 项目合并和拆分:将2个项目目录合并起来,其中一个项目合并到另一个项目的子目录中,手动合并文件夹,自动修改数据库;

× 流媒体服务;

下载和安装

去百度网盘下载,直接运行。链接:https://pan.baidu.com/s/1f4zuhoymaHMN_QAEgZLwOg 提取码:upvm 将二进制文件放到源码文件夹下直接运行即可。

Linux系统下请将执行文件engineercms(linux)放入engineercms文件夹内(即win系统下运行的整个解压包);swagger文件夹下的swagger.json和swagger.yml两个文件拷贝到engineercms目录里的swagger文件夹里 进入执行文件所在文件夹,运行engineercms如下:

[root@localhost engineercms]# nohup ./engineercms &
如果出现:
-bash: ./ engineercms: Permission denied
则说明需要修改权限,用下列命令:
[root@……5 ~]# chmod +x engineercms
—如果出现端口被占用,需要去conf文件夹内修改app.conf里的端口号,保存后重新运行。
[root@……5 ~]# systemctl stop firewalld.service关闭防火墙,否则其他电脑访问不了。
停止engineercms进程的命令
killall engineercms
查看进程的命令:
ps aux

不清楚的,可以加我QQ504284或者微信hotqin999聊,也可参考quickstart

wiki。包括linux系统下的编译。linux系统下的部署参见网盘中的文档。

技术开发过程详见CSDN我的博客 系统简单使用见mindoc文档

Quick Start

  • 参见quickstart快速开始。包括后台导入Excel用户,设置用户角色和权限。

  • linux系统上的部署参见网盘中的文档。

Documentation

  • [中文文档]——请查阅document文件夹
  • 系统简单使用见mindoc文档

免费开源和问题反馈

更新用到的pkg第三方模块

git submodule update --init

第三方包

  1. beego框架
  2. casbin权限管理
  3. simplejson
  4. excelize
  5. xlsx
  6. goquery
  7. go-sqlite
  8. mahonia
  9. flow文档流程我改造的flow文档流程
  10. xorm
  11. gorm
  12. unioffice
  13. pdfcpu

前端

  1. onlyoffice document server文档协作
  2. pdf.js阅览pdf
  3. html2canvas
  4. jQueryGantt甘特图
  5. multyselect
  6. bootstrap treeview树状目录
  7. fullcalendar日历
  8. daterangerpicker
  9. datetimepicker
  10. datepicker
  11. select2
  12. x-editable表格在线编辑
  13. ztree树状目录
  14. request
  15. froala富文本编辑器
  16. ueditor百度富文本编辑器
  17. webupload百度文件上传
  18. jqfileupload
  19. bootstrap-table表格
  20. jquery.form.js表单上传文件
  21. vue.js
  22. axios
  23. element组件
  24. vxe-table表格在线编辑
  25. mapus地图协作

LICENSE

EngineerCMS source code is licensed under the Apache Licence, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).

ONLYOFFICE实时文档协作效果——除了支持office的docx,xlsx及pptx格式外,还支持国产wps,et和dps格式。

engineercms onlyoffice1

onlyoffice word

onlyoffice powerpoint

onlyoffice excel

在线直接预览dwg图纸文件:

default

手机端访问文章效果

Snap4

微信小程序富文本编辑器添加文章:

wx05

IPAD移动端效果

项目进度展示 snap8 用户——角色——权限设置,树状目录权限,区分附件扩展名,基于casbin snap7 snap3 2 snap5

froala富文本编辑器支持word图片自动上传,视频和附件 snap13 snap6

mapus地图协作,部分替代91地图 mapus document Snap24

engineercms's People

Contributors

3xxx avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

engineercms's Issues

增加资料“购物车”

用户如果没有全线下载资料,则可以放入购物车,向管理员申请下载。管理员通过分享码,用户可打包下载。

PSS(prime server system)云计算书系统

利用engineercms开发了pss云计算书系统。
无论是百度还是google,对于prime的二次开发资料都是非常少。目前只有帮助自带的例子和API,经过摸索,实现了一个带队列排队计算的mathcad prime模板计算服务系统。

详细文档说明在这里

主要功能有:

计算历史记录查询
付费计算
组合框(下拉选择)和矩阵输入
输出(暂不支持矩阵)
手机端小程序计算
计算书阅览(下载)
计算过程中聊天
模板上传和解析——形成可在web上输入输出参数

图片3
PSS

陆续引入flv和photowipe

小程序多项目切换,突破
为了增设一个视频服务模块,新设计了一个视频管理页面,视频播放页面,前者用bootstrap4.4,用到的组件有卡片,轮播,列表,阴影,拉伸连接,间隔,监听滚动,尺寸,……
视频管理页面
Snap5
视频播放页面
Snap3
相册,可以放到文章页面中作为连续查看文章中的插图用。
Snap4

gooxml源网站证书失效,macOS下编译失败

✘ ✝ ~/workspace/engineercms: master: go build main.go
go: finding github.com/beego/admin/src/lib latest
go: finding github.com/beego/admin/src latest
go: finding github.com/beego/admin latest
go: finding github.com/astaxie/beego/orm latest
go: finding github.com/astaxie/beego/context/param latest
go: finding github.com/astaxie/beego/plugins/cors latest
go: finding github.com/astaxie/beego/validation latest
go: finding github.com/astaxie/beego/utils/pagination latest
go: finding github.com/astaxie/beego/logs latest
go: finding github.com/astaxie/beego/context latest
go: finding github.com/astaxie/beego/plugins latest
go: finding github.com/astaxie/beego/utils latest
go: finding github.com/astaxie/beego/httplib latest
go: finding github.com/casbin/beego-orm-adapter latest
go: finding google.golang.org/appengine v1.4.0
go: finding golang.org/x/net v0.0.0-20181114220301-adae6a3d119a
go: finding golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85
go: finding golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01
go: finding golang.org/x/crypto v0.0.0-20190122013713-64072686203f
go: finding cloud.google.com/go v0.34.0
go: finding golang.org/x/net v0.0.0-20180724234803-3673e40ba225
go: finding github.com/golang/protobuf v1.2.0
go: downloading golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
go: downloading github.com/google/uuid v1.0.0
go: downloading github.com/andybalholm/cascadia v1.0.0
go: downloading gopkg.in/yaml.v2 v2.2.1
go: downloading github.com/go-xorm/core v0.6.2
go: downloading github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible
go: downloading github.com/go-xorm/builder v0.3.3
go: extracting github.com/google/uuid v1.0.0
go: extracting github.com/go-xorm/core v0.6.2
go: extracting github.com/andybalholm/cascadia v1.0.0
go: extracting github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible
go: extracting github.com/go-xorm/builder v0.3.3
go: extracting golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
go: downloading golang.org/x/text v0.3.2
go: extracting gopkg.in/yaml.v2 v2.2.1
go: extracting golang.org/x/text v0.3.2
build command-line-arguments: cannot load baliance.com/gooxml/document: cannot find module providing package baliance.com/gooxml/document

是gooxml太老了, 新的库是这个吗 https://github.com/unidoc/unioffice

Linux启动报错

错误:

[ORM]2019/07/29 11:38:47  -[Queries/default] - [  OK /    db.Query /     0.0ms] - [SELECT T0.`id` FROM `user` T0 WHERE T0.`username` = ? LIMIT 1] - `admin`
2019/07/29 11:38:47 <nil>
2019/07/29 11:38:47.697 [E] [template.go:176]  parse template err: index_user.tpl template: index_user.tpl:35: function "subsuffix" not defined
panic: template: index_user.tpl:35: function "subsuffix" not defined

goroutine 1 [running]:
github.com/astaxie/beego.initBeforeHTTPRun()
	/root/gocode/src/github.com/astaxie/beego/beego.go:104 +0x215
github.com/astaxie/beego.Run(0x0, 0x0, 0x0)
	/root/gocode/src/github.com/astaxie/beego/beego.go:58 +0x26
main.main()
	/root/gocode/src/github.com/3xxx/engineercms/main.go:29 +0xfc

就是想提个issue

大佬,给跪了。对你的佩服简直犹如滔滔江水连绵不绝。
我也是电建某院的..........也在搞代码。但是一看你做的东西,简直让我五体投地!
水工 + 代码 大佬。
向您学习。
:)

编译出现Database driver is not allowed:

这个错误是可以定位到AdminModel.go里的init初始化数据库中,反映的问题应该是conf中的数据库配置不对。比如没有sqlite配置等。
还有中情况就是mac下ide里编译,无法读取conf中的配置文件导致,在命令行下编译即可。

编译报错multiple-value e.Enforce() in single-value context

请问,编译报错
controllers\onlyoffice.go:992:15: multiple-value e.Enforce() in single-value context

controllers\product.go:171:14: multiple-value e.Enforce() in single-value context
是因为go的版本问题导致之前的方法不能用了吗?

centos7 运行失败

您好,安装好docker和onlyoffice,下载engineercms linux版的源码和可执行程序,在源码目录下运行报错
错误信息如下:
2018/11/08 18:40:27.194 [E] [template.go:174] parse template err: index.tpl template: index.tpl:46: function "loadtimes" not defined
11/08 18:40:27.194 [W] [beego.go:100] template: index.tpl:46: function "loadtimes" not defined
panic: template: index.tpl:46: function "loadtimes" not defined
goroutine 1 [running]:
github.com/astaxie/beego.initBeforeHTTPRun()
/home/ubuntu/go/src/github.com/astaxie/beego/beego.go:101 +0x215
github.com/astaxie/beego.Run(0x0, 0x0, 0x0)
/home/ubuntu/go/src/github.com/astaxie/beego/beego.go:55 +0x26
main.main()
/home/ubuntu/go/src/github.com/3xxx/EngineerCMS/main.go:30 +0x251

咨询,201910版,linux运行出错

错误提示如下:
2020/02/05 09:58:38.686657 log_util.go:25: [Model:]
2020/02/05 09:58:38.686700 log_util.go:32: g.g: _, _
2020/02/05 09:58:38.686751 log_util.go:32: r.r: sub, obj, act, suf
2020/02/05 09:58:38.686765 log_util.go:32: p.p: sub, obj, act, suf
2020/02/05 09:58:38.686776 log_util.go:32: e.e: some(where (p_eft == allow))
2020/02/05 09:58:38.686787 log_util.go:32: m.m: g(r_sub, p_sub) && keyMatch(r_obj, p_obj) && regexMatch(r_suf, p_suf) && r_act == p_act
2020/02/05 09:58:38.687368 log_util.go:25: [Policy:]
2020/02/05 09:58:38.687440 log_util.go:25: [p : sub, obj, act, suf : [[2 /25001/25005/* POST .] [2 /25001/25005/ PUT .] [2 /25001/25005/ DELETE .] [2 /25001/25005/ GET .] [2 /25001/25005/ GET (?i:PDF)] [1 /25001/* POST .] [1 /25001/ PUT .] [1 /25001/ DELETE .] [1 /25001/ GET .] [1 /25001/25003/ GET (?i:PDF)] [1 /25001/25002/25013/* GET (?i:PDF)] [1 /25001/25002/25012/* GET (?i:PDF)] [1 /25001/25002/25011/* GET (?i:PDF)] [1 /25001/* GET (?i:PDF)] [2 /25001/25002/25013/* POST .] [2 /25001/25002/25013/ PUT .] [2 /25001/25002/25013/ DELETE .] [2 /25001/25002/25013/ GET (?i:pdf)] [1 /25001/25004/* POST .] [1 /onlyoffice/9 3 .] [2 /onlyoffice/9 3 .] [3 /onlyoffice/9 3 .] [role_1 /onlyoffice/9 1 .] [role_2 /onlyoffice/9 1 .] [1 /onlyoffice/26 1 .] [9 /onlyoffice/26 3 .] [role_1 /26159/* POST .] [role_1 /26159/ PUT .] [role_1 /26159/ DELETE .] [role_1 /26159/ GET (?i:PDF)] [role_1 /26197/* POST .] [role_1 /26197/ PUT .] [role_1 /26197/ DELETE .] [role_1 /26197/ GET (?i:PDF)] [1 /onlyoffice/100 3 .] [9 /onlyoffice/96 4 .]]]
2020/02/05 09:58:38.687466 log_util.go:25: [g : _, _ : [[12 1] [87 2] [1 role_1] [9 role_1] [9 role_3]]]
2020/02/05 09:58:38.687489 log_util.go:25: [Role links for: g]
2020/02/05 09:58:38.687504 log_util.go:25: [9 < role_1, role_3]
2020/02/05 09:58:38.687516 log_util.go:25: [role_3 < ]
2020/02/05 09:58:38.687520 log_util.go:25: [12 < 1]
2020/02/05 09:58:38.687535 log_util.go:25: [1 < role_1]
2020/02/05 09:58:38.687543 log_util.go:25: [87 < 2]
2020/02/05 09:58:38.687573 log_util.go:25: [2 < ]
2020/02/05 09:58:38.687579 log_util.go:25: [role_1 < ]
2020/02/05 09:58:38.688099 log_util.go:25: [Policy:]
2020/02/05 09:58:38.688173 log_util.go:25: [p : sub, obj, act, suf : [[2 /25001/25005/* POST .] [2 /25001/25005/ PUT .] [2 /25001/25005/ DELETE .] [2 /25001/25005/ GET .] [2 /25001/25005/ GET (?i:PDF)] [1 /25001/* POST .] [1 /25001/ PUT .] [1 /25001/ DELETE .] [1 /25001/ GET .] [1 /25001/25003/ GET (?i:PDF)] [1 /25001/25002/25013/* GET (?i:PDF)] [1 /25001/25002/25012/* GET (?i:PDF)] [1 /25001/25002/25011/* GET (?i:PDF)] [1 /25001/* GET (?i:PDF)] [2 /25001/25002/25013/* POST .] [2 /25001/25002/25013/ PUT .] [2 /25001/25002/25013/ DELETE .] [2 /25001/25002/25013/ GET (?i:pdf)] [1 /25001/25004/* POST .] [1 /onlyoffice/9 3 .] [2 /onlyoffice/9 3 .] [3 /onlyoffice/9 3 .] [role_1 /onlyoffice/9 1 .] [role_2 /onlyoffice/9 1 .] [1 /onlyoffice/26 1 .] [9 /onlyoffice/26 3 .] [role_1 /26159/* POST .] [role_1 /26159/ PUT .] [role_1 /26159/ DELETE .] [role_1 /26159/ GET (?i:PDF)] [role_1 /26197/* POST .] [role_1 /26197/ PUT .] [role_1 /26197/ DELETE .] [role_1 /26197/ GET (?i:PDF)] [1 /onlyoffice/100 3 .] [9 /onlyoffice/96 4 .]]]
2020/02/05 09:58:38.688196 log_util.go:25: [g : _, _ : [[12 1] [87 2] [1 role_1] [9 role_1] [9 role_3]]]
2020/02/05 09:58:38.688228 log_util.go:25: [Role links for: g]
2020/02/05 09:58:38.688242 log_util.go:25: [role_1 < ]
2020/02/05 09:58:38.688248 log_util.go:25: [9 < role_1, role_3]
2020/02/05 09:58:38.688253 log_util.go:25: [role_3 < ]
2020/02/05 09:58:38.688257 log_util.go:25: [12 < 1]
2020/02/05 09:58:38.688272 log_util.go:25: [1 < role_1]
2020/02/05 09:58:38.688285 log_util.go:25: [87 < 2]
2020/02/05 09:58:38.688296 log_util.go:25: [2 < ]
panic: you are in dev mode. So please set gopath

goroutine 1 [running]:
github.com/astaxie/beego.(*ControllerRegister).Include(0xc0000d5a20, 0xc00041b340, 0x2, 0x2)
/root/gocode/src/github.com/astaxie/beego/router.go:258 +0x9d1
github.com/astaxie/beego.(*Namespace).Include(0xc00041b4a0, 0xc00041b340, 0x2, 0x2, 0xc00041b4a0)
/root/gocode/src/github.com/astaxie/beego/namespace.go:186 +0x4d
github.com/astaxie/beego.NSInclude.func1(0xc00041b4a0)
/root/gocode/src/github.com/astaxie/beego/namespace.go:302 +0x46
github.com/astaxie/beego.NewNamespace(0x14ceb03, 0x6, 0xc0000951f8, 0x1, 0x1, 0xc000430201)
/root/gocode/src/github.com/astaxie/beego/namespace.go:42 +0x87
github.com/astaxie/beego.NSNamespace.func1(0xc00041b480)
/root/gocode/src/github.com/astaxie/beego/namespace.go:386 +0x52
github.com/astaxie/beego.NewNamespace(0x14ca846, 0x3, 0xc000439f28, 0x8, 0x8, 0xc000430240)
/root/gocode/src/github.com/astaxie/beego/namespace.go:42 +0x87
github.com/3xxx/engineercms/routers.init.1()
/root/gocode/src/github.com/3xxx/engineercms/routers/router.go:114 +0xc18

小程序 青少儿书画 利用engineercms作为服务端

小程序肯定要有个服务端作为文档管理,类似的WordPress,engineercms胜任这个任务有过之而不及,并且作为多个服务端互不影响(废话),只需新建多个项目就可以支持多个小程序(客户端)。
比如小程序“珠三角设代阅览版”,小程序“青少儿书画”。
因为很多妈咪们喜欢发布自己宝宝的作品,享受哪些美好时刻,记录亲子创作过程。

 为了方便妈咪们展示亲子创作,比如宝宝们画作,涂鸦,书法,作文,其他才艺,特利用engineercms作为服务端,重新设计了一款小程序,取名为:青少儿书画。
1.妈咪们发布亲子作品:画作、书法、文章、艺术;
2.珍藏青少儿时期的记忆;
3.欣赏他们那美轮美奂的作品,给我们带来美妙的体验;
4.激发宝贝们的创作热情。
最大的动力是我自己喜欢看宝宝们的画。相比发到朋友圈,可以汇集,可以分类,可以给作品编号,可以永久保留,可以任意发布。可以将小程序里发布的作品,再分享到朋友圈。
服务端采用engineercms

作者:q平面人
来源:CSDN
原文:https://blog.csdn.net/hotqin888/article/details/83017510?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!
wx05

前后端分离

请问有考虑架构上前后端分离吗,方便其他人参与开发

文章页采用wordpress风格

wordpress的文章展示风格真令人羡慕,一直想用它作为ecms的文章展示模板,这次花了一天时间,直接在网页上修改的,没有用它原生的模板主题,懒得去找了。还算顺利,没有太多的js。自己加了悬浮按钮,完善了用户头像。只是评论、对评论的评论(children),以及对评论的点赞等都没有弄了。
wordpress2

vue.js+element+vue-element-extends+beego+flow test

I use "vue.js element vue-element-extends beego and flow" to make a very simple flow-ui(interface), which is still in the preliminary stage.
demo
Snap3

  1. doctype

snap4

  1. docstate

snap5

  1. docaction

snap6

4.transition

snap7

5.workflow

snap8

6.node

snap9

7.accesscontext

snap10

8.user

snap11

9.group

snap12

10.usergroup

snap13

11.role

snap14

12.permission

snap15

13.goup_role

snap16

  1. documentlist

snap17

  1. documentdetails

snap18

慢慢完善了手机端

一些人宣传一套代码(前端),多个平台,那其实不大现实。
前端用的bootstrap,虽然手机端支持也可以,但是终究不够方便。
索性在服务端进行判断,桌面浏览器用bootstrap,手机端用另外一套,bootstrap+materialize,确实无法舍弃bootstrap,因为tree啊,bootstrap-table啊,你无法去寻找一个新的前端框架能很好地取代这2者的。特别这些都还涉及与服务端交互,tree的懒加载,table里的各种定制,完全换掉,需要很大精力。
在一个就是上传,原来用百度的webuploader,一直想换掉,现在改成dropzone,而且样式是bootstrap,甚美。
接下来是将wordpress页面也支持移动端的,目前用的是csdn的。

求问大佬,Linux下出错

下载了源码,同时下载了二进制文件,运行的时候可以注册,但点击登录或者忘记密码会跳到404。。

您好,请教一下关于协作的的问题

最近也在用onlyoffice进行二次开发,想请问一下协作的时候,如果2个用户同时编辑一个文档,中间的更改是怎么处理的呢?
例如2人同时编辑一段话,会出现什么情况?
如能赐教,不胜感谢。

"Nickname" has a stored XSS vulnerability

Description

There is no escaping in the nickname field on the user list page,When viewing this page, the JavaScript code will be executed in the user's browser.

Impact Version

v1.03

Steps to Reproduce

1、Visit the profile page after logging in,http://xxx/user
2、Click on the nickname and insert the javascript code,test<img/src=x onerror=alert(1)>
3、Click save, the payload has been executed
image
The original request is as follows:

POST /admin/user/updateuser
name=Nickname&value=test%3Cimg%2Fsrc%3Dx+onerror%3Dalert(1)%3E&pk=300

论文件关联的重要性

我们从事一项浩大的工程设计,图纸和各种文件成千上万,有无发现一个致命的问题?
那就是,2010年出了一张图A,到2018年出了一个修改通知单,对图中某个部位进行了修改;
或者,2010年出了一张图A,到2018年出了一张图B,代替了图A;
或者,2010年出了一张图A,到2018年出了技术工作联系单,对它进行了澄清。
那么,我们看后面2018年的修改单、图B或技术工作联系单,都可以找到2010年的图纸,因为前者里面必然会标上关联的2010年的图纸。
问题是,我们看2010年的图A,你能知道这张图已经被作废、被修改、被澄清了么?
这就是文档关联的重要性了,而且无法轻松解决。为何?
因为每次发放的蓝图A,会超过50多份,当你收到图纸B的时候,你要去各个部门,各个单位,去把图A标注上,此图已经有修改……
好了,如果上图谱技术呢,可能会将这些文件的关联性进行图形展示,不在此讨论范围。
我是将engineercms中的文件,设计成了关联,一个叫主动关联,一个叫被动关联。
所谓主动关联,就是修改单,关联被修改的图纸。
所谓被动关联,就是图纸A,关联上修改单。
用户看到资料,无论是图纸A,还是修改单,都会看到它所关联的资料,点击就可以过去。
解决了被动关联的棘手问题。

请问搭建ONLYOFFICE如何配置登录权限?

我现在是通过这两个命令创建的实例文档
sudo docker exec ae210a3281b8 sudo supervisorctl start ds:example
sudo docker exec ae210a3281b8 sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf
复制链接出去时,所有人都可以访问编辑,也没有操作记录

如何编译源码

使用以下方式进行拉取项目:

go get -v github.com/3xxx/EngineerCMS/
不用git clone的方式,是为了避免项目存放路径不正确导致无法执行编译。
然后执行以下命令:

cd 你的Go Path目录/src/github.com/3xxx/EngineerCMS/
接着执行go build main.go,然后看看程序报错,提示缺少啥go包,再用go get的方式安装即可。

完美编译,感谢!同时附上 go get golang.org/x 包失败解决方法

由于限制问题,国内使用 go get 安装 golang 官方包可能会失败,如我自己在安装 collidermain 时,出现了以下报错:

$ go get collidermain
package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

不翻墙的情况下怎么解决这个问题?其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库

获取 golang.org/x/net 包,其实只需要以下步骤:

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git

其它 golang.org/x 下的包获取皆可使用该方法

onlyoffice历史版本功能和文档转换功能

这次彻底完善了onlyoffice协作的历史版本存储和历史对比。还补充了文档转换功能。接下来完善新建功能。下载为……功能似乎没有办法,因为当用户正在编辑的时候,是没有办法下载到他正在编辑的,包含了最新内容的文档。
Snap33

"loadtimes" and "subsuffix" not defined

2019/09/29 16:33:23 [E] [template.go:174] parse template err: index.tpl template: index.tpl:46: function "loadtimes" not defined
2019/09/29 16:33:23 [E] [template.go:174] parse template err: index_user.tpl template: index_user.tpl:35: function "subsuffix" not defined

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.