diff --git a/code.go b/code.go index 9cf8154..144d3cf 100644 --- a/code.go +++ b/code.go @@ -872,7 +872,7 @@ var TptProject = Proj{ v1 := menus.GetMap(k1) if config.GetMap("tables").GetMap(v1.GetString("table")) != nil && len(v1.GetSlice("auth")) != 0 { config.GetMap("tables").GetMap(v1.GetString("table"))["auth"] = Slice{} - newTables[v1.GetString("name")] = config.GetMap("tables").GetMap(v1.GetString("table")) + newTables[v1.GetString("table")] = config.GetMap("tables").GetMap(v1.GetString("table")) } v1menus := v1.GetSlice("menus") for k2, _ := range v1.GetSlice("menus") { diff --git a/code/config.go b/code/config.go index 3aebe7f..0cdb962 100644 --- a/code/config.go +++ b/code/config.go @@ -59,62 +59,130 @@ var ColumnDataType = map[string]string{ } type ColumnShow struct { - Name string - List bool - Edit bool - Info bool - Must bool + Name string //名称 + + List bool //列表权限 + Edit bool //新增和编辑权限 + Info bool //详情权限 + Must bool //字段全匹配 Type string //空字符串表示 Strict bool //name严格匹配必须是这个词才行 } -var ColumnNameType = []ColumnShow{ - //通用 - {"idcard", false, true, true, false, "", false}, - {"id", true, false, true, false, "", true}, - {"sn", true, false, true, false, "", false}, - {"parent_ids", false, false, false, false, "index", true}, - {"parent_id", true, true, true, false, "", true}, - {"amount", true, true, true, false, "money", true}, - {"info", false, true, true, false, "textArea", false}, - //"sn"{true,true,true,""}, - {"status", true, true, true, false, "select", false}, - {"state", true, true, true, false, "select", false}, - {"sex", true, true, true, false, "select", false}, - {"delete", false, false, false, false, "", false}, +var RuleConfig = []Map{ + {"name": "idcard", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "id", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": true, "type": ""}, + {"name": "sn", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "parent_ids", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": true, "type": "index"}, + {"name": "index", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": true, "type": "index"}, - {"lat", false, true, true, false, "", false}, - {"lng", false, true, true, false, "", false}, - {"latitude", false, true, true, false, "", false}, - {"longitude", false, true, true, false, "", false}, + {"name": "parent_id", "add": true, "list": true, "edit": true, "info": true, "must": false, "true": false, "type": ""}, - {"index", false, false, false, false, "index", false}, + {"name": "amount", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": true, "type": "money"}, - {"password", false, true, false, false, "password", false}, - {"pwd", false, true, false, false, "password", false}, + {"name": "info", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "textArea"}, - {"version", false, false, false, false, "", false}, - {"seq", false, true, true, false, "", false}, - {"sort", false, true, true, false, "", false}, - {"note", false, true, true, false, "", false}, - {"description", false, true, true, false, "", false}, - {"abstract", false, true, true, false, "", false}, - {"content", false, true, true, false, "textArea", false}, - {"address", true, true, true, false, "", false}, - {"full_name", false, true, true, false, "", false}, - {"create_time", false, false, true, false, "time", true}, - {"modify_time", true, false, true, false, "time", true}, - {"image", false, true, true, false, "image", false}, - {"img", false, true, true, false, "image", false}, - {"icon", false, true, true, false, "image", false}, - {"avatar", false, true, true, false, "image", false}, - {"file", false, true, true, false, "file", false}, - {"age", false, true, true, false, "", false}, - {"email", false, true, true, false, "", false}, - {"time", true, true, true, false, "time", false}, - {"level", false, false, true, false, "", false}, - {"rule", true, true, true, false, "form", false}, - {"auth", false, true, true, false, "auth", true}, - {"table", true, false, true, false, "table", false}, - {"table_id", true, false, true, false, "table_id", false}, + {"name": "status", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"}, + {"name": "state", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"}, + {"name": "sex", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "select"}, + + {"name": "delete", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": false, "type": ""}, + + {"name": "lat", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "lng", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "latitude", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "longitude", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "password", "add": true, "list": false, "edit": true, "info": false, "must": false, "strict": false, "type": "password"}, + {"name": "pwd", "add": true, "list": false, "edit": true, "info": false, "must": false, "strict": false, "type": "password"}, + + {"name": "version", "add": false, "list": false, "edit": false, "info": false, "must": false, "strict": false, "type": ""}, + {"name": "seq", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "sort", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "note", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "description", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "abstract", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "content", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "textArea"}, + + {"name": "address", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "full_name", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + + {"name": "create_time", "add": false, "list": false, "edit": false, "info": true, "must": false, "strict": true, "type": "time"}, + {"name": "modify_time", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": true, "type": "time"}, + + {"name": "image", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"}, + + {"name": "img", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"}, + {"name": "avatar", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"}, + {"name": "icon", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "image"}, + + {"name": "file", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "file"}, + + {"name": "age", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "email", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "time", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "time"}, + + {"name": "level", "add": false, "list": false, "edit": false, "info": true, "must": false, "strict": false, "type": ""}, + {"name": "rule", "add": true, "list": true, "edit": true, "info": true, "must": false, "strict": false, "type": "form"}, + + {"name": "auth", "add": true, "list": false, "edit": true, "info": true, "must": false, "strict": false, "type": "auth"}, + + {"name": "table", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": "table"}, + {"name": "table_id", "add": false, "list": true, "edit": false, "info": true, "must": false, "strict": false, "type": "table_id"}, } + +//var ColumnNameType = []ColumnShow{ +// //通用 +// {"idcard", false, true, true, false, "", false}, +// {"id", true, false, true, false, "", true}, +// {"sn", true, false, true, false, "", false}, +// {"parent_ids", false, false, false, false, "index", true}, +// {"parent_id", true, true, true, false, "", true}, +// {"amount", true, true, true, false, "money", true}, +// {"info", false, true, true, false, "textArea", false}, +// //"sn"{true,true,true,""}, +// {"status", true, true, true, false, "select", false}, +// {"state", true, true, true, false, "select", false}, +// {"sex", true, true, true, false, "select", false}, +// {"delete", false, false, false, false, "", false}, +// +// {"lat", false, true, true, false, "", false}, +// {"lng", false, true, true, false, "", false}, +// {"latitude", false, true, true, false, "", false}, +// {"longitude", false, true, true, false, "", false}, +// +// {"index", false, false, false, false, "index", false}, +// +// {"password", false, true, false, false, "password", false}, +// {"pwd", false, true, false, false, "password", false}, +// +// {"version", false, false, false, false, "", false}, +// {"seq", false, true, true, false, "", false}, +// {"sort", false, true, true, false, "", false}, +// {"note", false, true, true, false, "", false}, +// {"description", false, true, true, false, "", false}, +// {"abstract", false, true, true, false, "", false}, +// {"content", false, true, true, false, "textArea", false}, +// {"address", true, true, true, false, "", false}, +// {"full_name", false, true, true, false, "", false}, +// {"create_time", false, false, true, false, "time", true}, +// {"modify_time", true, false, true, false, "time", true}, +// {"image", false, true, true, false, "image", false}, +// {"img", false, true, true, false, "image", false}, +// {"icon", false, true, true, false, "image", false}, +// {"avatar", false, true, true, false, "image", false}, +// {"file", false, true, true, false, "file", false}, +// {"age", false, true, true, false, "", false}, +// {"email", false, true, true, false, "", false}, +// {"time", true, true, true, false, "time", false}, +// {"level", false, false, true, false, "", false}, +// {"rule", true, true, true, false, "form", false}, +// {"auth", false, true, true, false, "auth", true}, +// {"table", true, false, true, false, "table", false}, +// {"table_id", true, false, true, false, "table_id", false}, +//} diff --git a/code/makecode.go b/code/makecode.go index aa3f9e7..f13d004 100644 --- a/code/makecode.go +++ b/code/makecode.go @@ -55,8 +55,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) { that.RuleConfig = append(that.RuleConfig, ruleLis.GetMap(k)) } } else { - for _, v := range ColumnNameType { - that.RuleConfig = append(that.RuleConfig, Map{"name": v.Name, "list": v.List, "edit": v.Edit, "info": v.Info, "must": v.Must, "strict": v.Strict, "type": v.Type}) + for _, v := range RuleConfig { + that.RuleConfig = append(that.RuleConfig, ObjToMap(DeepCopyMap(v))) } if db != nil { _ = os.MkdirAll(filepath.Dir(config.GetString("rule")), os.ModeDir) @@ -207,7 +207,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) { for _, ColumnName := range that.RuleConfig { if (ColumnName.GetBool("strict") && coloum.GetString("name") == ColumnName.GetString("name")) || - (!ColumnName.GetBool("strict") && strings.Contains(coloum.GetString("name"), ColumnName.GetString("name"))) { + (!ColumnName.GetBool("strict") && strings.Contains(coloum.GetString("name"), ColumnName.GetString("name"))) || + (info.GetString("name")+"."+coloum.GetString("name") == ColumnName.GetString("name")) { //全部都不需要则不加入 if ColumnName.GetBool("edit") == false && ColumnName.GetBool("list") == false && ColumnName.GetBool("info") == false { coloum["notUse"] = true @@ -215,7 +216,7 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) { } coloum["info"] = ColumnName.GetBool("info") coloum["edit"] = ColumnName.GetBool("edit") - coloum["add"] = ColumnName.GetBool("edit") + coloum["add"] = ColumnName["add"] coloum["list"] = ColumnName.GetBool("list") coloum["must"] = ColumnName.GetBool("must") @@ -224,6 +225,8 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) { } if ColumnName.GetBool("edit") { delete(coloum, "edit") + } + if ColumnName["add"] == nil || ColumnName.GetBool("add") { delete(coloum, "add") } if ColumnName.GetBool("list") {