diff --git a/example/admin/admin.go b/example/admin/admin.go new file mode 100644 index 0000000..c874228 --- /dev/null +++ b/example/admin/admin.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var adminCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/category.go b/example/admin/category.go new file mode 100644 index 0000000..7df64fd --- /dev/null +++ b/example/admin/category.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var categoryCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/ctg_order_date.go b/example/admin/ctg_order_date.go new file mode 100644 index 0000000..9b99f78 --- /dev/null +++ b/example/admin/ctg_order_date.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var ctg_order_dateCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/init.go b/example/admin/init.go new file mode 100644 index 0000000..d4b6df3 --- /dev/null +++ b/example/admin/init.go @@ -0,0 +1,72 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" +) + +var ID = "9d45054a3b471ace785f5884621114e3" + +// Project 管理端项目 +var Project = Proj{ + //"user": UserCtr, + "admin": adminCtr, + "category": categoryCtr, + "ctg_order_date": ctg_order_dateCtr, + "order": orderCtr, + "org": orgCtr, + "role": roleCtr, + "user": userCtr, + + "hotime": Ctr{ + "login": func(this *Context) { + name := this.Req.FormValue("name") + password := this.Req.FormValue("password") + if name == "" || password == "" { + this.Display(3, "参数不足") + return + } + user := this.Db.Get("admin", "*", Map{"AND": Map{"name": name, "password": Md5(password)}}) + if user == nil { + this.Display(5, "登录失败") + return + } + this.Session("admin_id", user.GetCeilInt("id")) + this.Session("admin_name", name) + this.Display(0, this.SessionId) + }, + "logout": func(this *Context) { + this.Session("admin_id", nil) + this.Session("admin_name", nil) + this.Display(0, "退出登录成功") + }, + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info("admin", data, that.Db) + where := Map{"id": that.Session("admin_id").ToCeilInt()} + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + re := that.Db.Get("admin", str, where) + if re == nil { + that.Display(4, "找不到对应信息") + return + } + for k, v := range re { + column := that.MakeCode.TableColumns["admin"][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), "id,"+column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + }, +} diff --git a/example/admin/order.go b/example/admin/order.go new file mode 100644 index 0000000..743020d --- /dev/null +++ b/example/admin/order.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var orderCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/org.go b/example/admin/org.go new file mode 100644 index 0000000..15d5a99 --- /dev/null +++ b/example/admin/org.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var orgCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), "id,"+column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/role.go b/example/admin/role.go new file mode 100644 index 0000000..ac13993 --- /dev/null +++ b/example/admin/role.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var roleCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/admin/user.go b/example/admin/user.go new file mode 100644 index 0000000..5c6ddae --- /dev/null +++ b/example/admin/user.go @@ -0,0 +1,157 @@ +package admin + +import ( + . "../../../hotime" + . "../../../hotime/common" + "strings" +) + +var userCtr = Ctr{ + "info": func(that *Context) { + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + str, inData := that.MakeCode.Info(that.RouterString[1], data, that.Db) + where := Map{"id": that.RouterString[2]} + + if len(inData) == 1 { + inData["id"] = where["id"] + where = Map{"AND": inData} + } else if len(inData) > 1 { + where["OR"] = inData + where = Map{"AND": where} + } + + re := that.Db.Get(that.RouterString[1], str, where) + + if re == nil { + that.Display(4, "找不到对应信息") + return + } + + for k, v := range re { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + if (column["list"] == nil || column.GetBool("list")) && column.GetString("link") != "" { + re[column.GetString("link")] = that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v}) + } + } + + that.Display(0, re) + }, + "add": func(that *Context) { + inData := that.MakeCode.Add(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + + re := that.Db.Insert(that.RouterString[1], inData) + + if re == 0 { + that.Display(4, "无法插入对应数据") + return + } + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = index.GetString("index") + ObjToStr(re) + "," + that.Db.Update(that.RouterString[1], Map{"index": inData["index"]}, Map{"id": re}) + } + + that.Display(0, re) + }, + "update": func(that *Context) { + inData := that.MakeCode.Edit(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "没有找到要更新的数据") + return + } + + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + Index := that.Db.Get(that.RouterString[1], "`index`", Map{"id": that.RouterString[2]}) + parentIndex := that.Db.Get(that.RouterString[1], "`index`", Map{"id": inData.Get("parent_id")}) + inData["index"] = parentIndex.GetString("index") + that.RouterString[2] + "," + + childNodes := that.Db.Select(that.RouterString[1], "id,`index`", Map{"index[~]": "," + that.RouterString[2] + ","}) + + for _, v := range childNodes { + v["index"] = strings.Replace(v.GetString("index"), Index.GetString("index"), inData.GetString("index"), -1) + that.Db.Update(that.RouterString[1], Map{"index": v["index"]}, Map{"id": v.GetCeilInt("id")}) + } + + } + + re := that.Db.Update(that.RouterString[1], inData, Map{"id": that.RouterString[2]}) + + if re == 0 { + that.Display(4, "更新数据失败") + return + } + + that.Display(0, re) + }, + "remove": func(that *Context) { + inData := that.MakeCode.Delete(that.RouterString[1], that.Req) + if inData == nil { + that.Display(3, "请求参数不足") + return + } + re := int64(0) + //索引管理,便于检索以及权限 + if inData.Get("parent_id") != nil && inData.GetSlice("index") != nil { + re = that.Db.Delete(that.RouterString[1], Map{"index[~]": "," + that.RouterString[2] + ","}) + } else { + re = that.Db.Delete(that.RouterString[1], Map{"id": that.RouterString[2]}) + } + + if re == 0 { + that.Display(4, "删除数据失败") + return + } + that.Display(0, "删除成功") + }, + + "search": func(that *Context) { + + data := that.Db.Get("admin", "*", Map{"id": that.Session("admin_id").ToCeilInt()}) + + columnStr, leftJoin, where := that.MakeCode.Search(that.RouterString[1], data, that.Req, that.Db) + + page := ObjToInt(that.Req.FormValue("page")) + pageSize := ObjToInt(that.Req.FormValue("pageSize")) + + if page < 1 { + page = 1 + } + + if pageSize <= 0 { + pageSize = 20 + } + + count := that.Db.Count(that.RouterString[1], leftJoin, where) + reData := that.Db.Page(page, pageSize). + PageSelect(that.RouterString[1], leftJoin, columnStr, where) + + for _, v := range reData { + for k, _ := range v { + column := that.MakeCode.TableColumns[that.RouterString[1]][k] + if column == nil { + continue + } + + if column["list"] != false && column["name"] == "parent_id" && column.GetString("link") != "" { + parentC := that.Db.Get(column.GetString("link"), column.GetString("value"), Map{"id": v.GetCeilInt(k)}) + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = "" + if parentC != nil { + v[column.GetString("link")+"_"+column.GetString("name")+"_"+column.GetString("value")] = parentC.GetString(column.GetString("value")) + } + } + + } + } + + that.Display(0, Map{"count": count, "data": reData}) + }, +} diff --git a/example/config/app.json b/example/config/app.json new file mode 100644 index 0000000..6aa7042 --- /dev/null +++ b/example/config/app.json @@ -0,0 +1,1288 @@ +{ + "id": "9d45054a3b471ace785f5884621114e3", + "label": "HoTime管理平台", + "menus": [ + { + "icon": "el-icon-s-home", + "label": "平台首页", + "name": "HelloWorld" + }, + { + "icon": "el-icon-setting", + "label": "系统管理", + "menus": [ + { + "label": "事项管理", + "table": "category" + }, + { + "label": "排号计划", + "table": "ctg_order_date" + }, + { + "label": "预约管理", + "table": "order" + }, + { + "label": "部门管理", + "table": "org" + }, + { + "label": "角色管理", + "table": "role" + }, + { + "label": "群众管理", + "table": "user" + }, + { + "label": "人员管理", + "table": "admin" + } + ], + "name": "sys" + } + ], + "name": "admin", + "tables": { + "admin": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "info": false, + "label": "密码", + "list": false, + "must": false, + "name": "password", + "type": "password" + }, + { + "label": "头像", + "list": false, + "must": false, + "name": "avatar_img", + "type": "image" + }, + { + "label": "角色", + "link": "role", + "name": "role_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "部门", + "link": "org", + "name": "org_id", + "sortable": true, + "type": "number", + "value": "name" + } + ], + "label": "人员管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "部门", + "link": "org", + "name": "org_id", + "type": "tree", + "value": "name" + } + ], + "table": "admin" + }, + "category": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "label": "排序 序号越大越排前面", + "list": false, + "must": false, + "name": "sort", + "sortable": true, + "type": "number" + }, + { + "label": "归属专区", + "link": "category", + "must": false, + "name": "parent_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "创建人员", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "周一上午", + "name": "am1", + "sortable": true, + "type": "number" + }, + { + "label": "周二上午", + "name": "am2", + "sortable": true, + "type": "number" + }, + { + "label": "周三上午", + "name": "am3", + "sortable": true, + "type": "number" + }, + { + "label": "周四上午", + "name": "am4", + "sortable": true, + "type": "number" + }, + { + "label": "周五上午", + "name": "am5", + "sortable": true, + "type": "number" + }, + { + "label": "周一下午", + "name": "pm1", + "sortable": true, + "type": "number" + }, + { + "label": "周二下午", + "name": "pm2", + "sortable": true, + "type": "number" + }, + { + "label": "周三下午", + "name": "pm3", + "sortable": true, + "type": "number" + }, + { + "label": "周四下午", + "name": "pm4", + "sortable": true, + "type": "number" + }, + { + "label": "周五下午", + "name": "pm5", + "sortable": true, + "type": "number" + }, + { + "label": "办理地址", + "list": false, + "must": false, + "name": "address", + "type": "text" + }, + { + "label": "叫号起始号", + "name": "startnum", + "sortable": true, + "type": "number" + }, + { + "label": "办理窗口", + "name": "window", + "type": "text" + }, + { + "label": "天府通办APP端", + "must": true, + "name": "tftbapp", + "options": [ + { + "name": "未启用", + "value": "0" + }, + { + "name": "已启用", + "value": "1" + } + ], + "sortable": true, + "type": "select" + }, + { + "label": "天府通办web端", + "must": true, + "name": "tftbweb", + "options": [ + { + "name": "未启用", + "value": "0" + }, + { + "name": "已启用", + "value": "1" + } + ], + "sortable": true, + "type": "select" + }, + { + "label": "图标", + "list": false, + "must": false, + "name": "icon", + "type": "image" + }, + { + "label": "关联部门", + "link": "org", + "name": "org_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "info": false, + "label": "索引", + "list": false, + "must": false, + "name": "index", + "notUse": true, + "type": "index" + } + ], + "label": "事项管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "天府通办APP端", + "must": true, + "name": "tftbapp", + "options": [ + { + "name": "未启用", + "value": "0" + }, + { + "name": "已启用", + "value": "1" + }, + { + "name": "全部", + "value": null + } + ], + "sortable": true, + "type": "select", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "天府通办web端", + "must": true, + "name": "tftbweb", + "options": [ + { + "name": "未启用", + "value": "0" + }, + { + "name": "已启用", + "value": "1" + }, + { + "name": "全部", + "value": null + } + ], + "sortable": true, + "type": "select", + "value": null + }, + { + "label": "归属专区", + "link": "category", + "name": "parent_id", + "type": "tree", + "value": "name" + }, + { + "label": "关联部门", + "link": "org", + "name": "org_id", + "type": "tree", + "value": "name" + } + ], + "table": "category" + }, + "ctg_order_date": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "预约日期", + "name": "date", + "type": "time" + }, + { + "label": "排号起始数", + "name": "start_sn", + "sortable": true, + "type": "number" + }, + { + "label": "排号结束号", + "name": "max_sn", + "sortable": true, + "type": "number" + }, + { + "label": "当前排号", + "name": "now_sn", + "sortable": true, + "type": "number" + }, + { + "label": "类别", + "link": "category", + "name": "category_id", + "sortable": true, + "type": "number", + "value": "name" + } + ], + "label": "排号计划", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "类别", + "link": "category", + "name": "category_id", + "type": "tree", + "value": "name" + } + ], + "table": "ctg_order_date" + }, + "order": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "预约用户", + "link": "user", + "name": "user_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "预约日期", + "name": "date", + "type": "time" + }, + { + "label": "排号", + "name": "sn", + "sortable": true, + "type": "number" + }, + { + "label": "预约分类", + "link": "category", + "name": "category_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "预约状态", + "must": true, + "name": "status", + "options": [ + { + "name": "待分配", + "value": "0" + }, + { + "name": "待办结", + "value": "1" + }, + { + "name": "已办结", + "value": "2" + }, + { + "name": "已逾期", + "value": "3" + }, + { + "name": "异常", + "value": "4" + } + ], + "type": "select" + }, + { + "label": "办事员", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + } + ], + "label": "预约管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "预约状态", + "must": true, + "name": "status", + "options": [ + { + "name": "待分配", + "value": "0" + }, + { + "name": "待办结", + "value": "1" + }, + { + "name": "已办结", + "value": "2" + }, + { + "name": "已逾期", + "value": "3" + }, + { + "name": "异常", + "value": "4" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "预约分类", + "link": "category", + "name": "category_id", + "type": "tree", + "value": "name" + } + ], + "table": "order" + }, + "org": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "编号", + "name": "sn", + "type": "text" + }, + { + "label": "组织名称", + "name": "name", + "type": "text" + }, + { + "label": "上级组织", + "link": "org", + "must": false, + "name": "parent_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "add": false, + "edit": false, + "label": "注册时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "创建用户", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "info": false, + "label": "索引 格式为逗号分隔,1,2,", + "list": false, + "must": false, + "name": "index", + "notUse": true, + "type": "index" + } + ], + "label": "部门管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + }, + { + "label": "上级组织", + "link": "org", + "name": "parent_id", + "type": "tree", + "value": "name" + } + ], + "table": "org" + }, + "role": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "规则", + "name": "rule", + "type": "text" + } + ], + "label": "角色管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "role" + }, + "user": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "编号", + "name": "sn", + "type": "text" + }, + { + "label": "用户姓名", + "name": "name", + "type": "text" + }, + { + "label": "手机号码", + "name": "phone", + "type": "text" + }, + { + "label": "邮箱", + "list": false, + "must": false, + "name": "idcard", + "type": "text" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "隐藏", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "头像", + "list": false, + "must": false, + "name": "avatar", + "type": "image" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + } + ], + "label": "群众管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "隐藏", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "user" + } + } +} \ No newline at end of file diff --git a/example/tpt/file/2021/09/14/2bb7869ed2bb43b2217bc88ddb827775.png b/example/tpt/file/2021/09/14/2bb7869ed2bb43b2217bc88ddb827775.png new file mode 100644 index 0000000..b2e29e9 Binary files /dev/null and b/example/tpt/file/2021/09/14/2bb7869ed2bb43b2217bc88ddb827775.png differ diff --git a/example/tpt/file/2021/09/15/472b3a7ed7625c8d87f8f365501a510d.png b/example/tpt/file/2021/09/15/472b3a7ed7625c8d87f8f365501a510d.png new file mode 100644 index 0000000..6a96091 Binary files /dev/null and b/example/tpt/file/2021/09/15/472b3a7ed7625c8d87f8f365501a510d.png differ