diff --git a/controllers/ManagerController.go b/controllers/ManagerController.go
index e1bdf6b2..2ec82038 100644
--- a/controllers/ManagerController.go
+++ b/controllers/ManagerController.go
@@ -721,3 +721,42 @@ func (c *ManagerController) LabelDelete() {
c.JsonResult(0, "ok")
}
}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/models/MemberGroupMembers.go b/models/MemberGroupMembers.go
new file mode 100644
index 00000000..a92715bb
--- /dev/null
+++ b/models/MemberGroupMembers.go
@@ -0,0 +1,116 @@
+package models
+
+import (
+ "github.com/lifei6671/mindoc/conf"
+ "time"
+ "github.com/astaxie/beego/orm"
+ "github.com/astaxie/beego"
+)
+
+type MemberGroupMembers struct {
+ GroupMemberId int `orm:"column(group_member_id);pk;auto;unique;" json:"group_member_id"`
+ MemberId int `orm:"column(member_id);index" json:"member_id"`
+ GroupId int `orm:"column(group_id);index" json:"group_id"`
+ CreateTime time.Time `orm:"type(datetime);column(create_time);auto_now_add" json:"create_time"`
+ CreateAt int `orm:"type(int);column(create_at)" json:"create_at"`
+}
+
+type MemberGroupMemberResult struct {
+ GroupMemberId int
+ MemberId int
+ Account string
+ RealName string
+ Avatar string
+ GroupId int
+ CreateTime time.Time
+ CreateAt int
+}
+
+// TableName 获取对应数据库表名.
+func (m *MemberGroupMembers) TableName() string {
+ return "member_group_members"
+}
+
+// TableEngine 获取数据使用的引擎.
+func (m *MemberGroupMembers) TableEngine() string {
+ return "INNODB"
+}
+
+func (m *MemberGroupMembers) TableNameWithPrefix() string {
+ return conf.GetDatabasePrefix() + m.TableName()
+}
+
+// 多字段唯一键
+func (u *MemberGroupMembers) TableUnique() [][]string {
+ return [][]string{
+ {"member_id", "group_id"},
+ }
+}
+
+func NewMemberGroupMembers() *MemberGroupMembers {
+ return &MemberGroupMembers{}
+}
+
+// 查询用户组成员
+func (m *MemberGroupMembers) FindByGroupId(groupId int) ([]*MemberGroupMemberResult,error) {
+ o := orm.NewOrm()
+ var groupMembers []*MemberGroupMemberResult
+ _,err := o.QueryTable(m.TableNameWithPrefix()).Filter("group_id",groupId).All(&groupMembers);
+ if err != nil {
+ beego.Error("获取用户组成员出错 =>",err)
+ return nil,err
+ }
+ ids := make([]int,0)
+
+ for _,member := range groupMembers {
+ ids = append(ids,member.MemberId)
+ }
+
+ var members []*Member
+
+ _,err = o.QueryTable(NewMember().TableNameWithPrefix()).Filter("member_id__in",ids).All(&members)
+ if err != nil {
+ beego.Error("获取用户组成员出错 =>",err)
+ return nil,err
+ }
+ for _,member := range members {
+ for _,groupMember := range groupMembers {
+ if groupMember.MemberId == member.MemberId {
+ groupMember.Account = member.Account
+ groupMember.Avatar = member.Avatar
+ groupMember.RealName = member.RealName
+ }
+ }
+ }
+ return groupMembers,nil
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/models/MemberGroupModel.go b/models/MemberGroupModel.go
new file mode 100644
index 00000000..3d9044c6
--- /dev/null
+++ b/models/MemberGroupModel.go
@@ -0,0 +1,68 @@
+package models
+
+import (
+ "time"
+ "github.com/lifei6671/mindoc/conf"
+ "github.com/astaxie/beego/orm"
+ "github.com/astaxie/beego"
+)
+
+type MemberGroup struct {
+ GroupId int `orm:"column(group_id);pk;auto;unique;" json:"group_id"`
+ GroupName string `orm:"column(group_name);size(255);" json:"group_name"`
+ GroupNumber int `orm:"column(group_number);" json:"group_number"`
+ CreateTime time.Time `orm:"type(datetime);column(create_time);auto_now_add" json:"create_time"`
+ CreateAt int `orm:"type(int);column(create_at)" json:"create_at"`
+ ModifyTime time.Time `orm:"column(modify_time);type(datetime);auto_now" json:"modify_time"`
+ ModifyAt int `orm:"column(modify_at);type(int)" json:"-"`
+}
+
+
+
+// TableName 获取对应数据库表名.
+func (m *MemberGroup) TableName() string {
+ return "member_group"
+}
+
+// TableEngine 获取数据使用的引擎.
+func (m *MemberGroup) TableEngine() string {
+ return "INNODB"
+}
+
+func (m *MemberGroup) TableNameWithPrefix() string {
+ return conf.GetDatabasePrefix() + m.TableName()
+}
+
+func NewMemberGroup() *MemberGroup {
+ return &MemberGroup{}
+}
+
+//根据id查询用户组
+func (m *MemberGroup) FindFirst(id int) (*MemberGroup,error){
+ o := orm.NewOrm()
+
+ if err :=o.QueryTable(m.TableNameWithPrefix()).Filter("group_id",id).One(m); err != nil {
+ beego.Error("查询用户组时出错 =>",err)
+ return m,err
+ }
+ return m,nil
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/markdown.js b/static/js/markdown.js
index 3eab5150..fccf96d1 100644
--- a/static/js/markdown.js
+++ b/static/js/markdown.js
@@ -155,7 +155,7 @@ $(function () {
if(res.data.is_lock){
node.type = "lock";
node.text = node.text + " [锁定]";
- // window.editor.config('readOnly',true);
+ window.editor.config('readOnly',true);
}else{
node.type = "unlock";
window.editor.config('readOnly',false);
diff --git a/static/js/quill.js b/static/js/quill.js
index 039c0196..3e8d7aae 100644
--- a/static/js/quill.js
+++ b/static/js/quill.js
@@ -128,10 +128,17 @@ $(function () {
if(res.errcode === 0){
window.isLoad = true;
window.editor.root.innerHTML = res.data.content;
+ var node = { "id" : res.data.doc_id,'parent' : res.data.parent_id === 0 ? '#' : res.data.parent_id ,"text" : res.data.doc_name,"identify" : res.data.identify,"version" : res.data.version};
+
+ if(res.data.is_lock){
+ node.type = "lock";
+ node.text = node.text + " [锁定]";
+ }else{
+ node.type = "unlock";
+ }
// 将原始内容备份
window.source = res.data.content;
- var node = { "id" : res.data.doc_id,'parent' : res.data.parent_id === 0 ? '#' : res.data.parent_id ,"text" : res.data.doc_name,"identify" : res.data.identify,"version" : res.data.version};
pushDocumentCategory(node);
window.selectNode = node;
window.isLoad = true;