fix 代码生成功能完善
This commit is contained in:
parent
b0393ee76a
commit
44392ad035
@ -7,12 +7,11 @@
|
||||
|
||||
package common
|
||||
|
||||
import "github.com/tiger1103/gfast/v3/internal/app/common/model"
|
||||
|
||||
// PageReq 公共请求参数
|
||||
type PageReq struct {
|
||||
DateRange []string `p:"dateRange"` //日期范围
|
||||
PageNum int `p:"pageNum"` //当前页码
|
||||
PageSize int `p:"pageSize"` //每页数
|
||||
OrderBy string //排序方式
|
||||
model.PageReq
|
||||
}
|
||||
|
||||
type Author struct {
|
||||
|
@ -122,14 +122,3 @@ type UserDeleteReq struct {
|
||||
|
||||
type UserDeleteRes struct {
|
||||
}
|
||||
|
||||
type UserGetByIdsReq struct {
|
||||
g.Meta `path:"/user/getUsers" tags:"用户管理" method:"get" summary:"同时获取多个用户"`
|
||||
commonApi.Author
|
||||
Ids []int `p:"ids" v:"required#ids不能为空"`
|
||||
}
|
||||
|
||||
type UserGetByIdsRes struct {
|
||||
g.Meta `mime:"application/json"`
|
||||
List []*model.SysUserSimpleRes `json:"list"`
|
||||
}
|
||||
|
@ -125,3 +125,13 @@ type ToolsGenTableBatchGenCodeReq struct {
|
||||
type ToolsGenTableBatchGenCodeRes struct {
|
||||
commonApi.EmptyRes
|
||||
}
|
||||
|
||||
type ToolsGenTableSyncTableReq struct {
|
||||
g.Meta `path:"/tools/gen/syncTable" tags:"代码生成" method:"post" summary:"同步表结构"`
|
||||
commonApi.Author
|
||||
TableId int64 `p:"tableId" v:"required#表ID必须"`
|
||||
}
|
||||
|
||||
type ToolsGenTableSyncTableRes struct {
|
||||
commonApi.EmptyRes
|
||||
}
|
||||
|
5
go.mod
5
go.mod
@ -7,17 +7,16 @@ require (
|
||||
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
||||
github.com/gogf/gf/contrib/drivers/mysql/v2 v2.2.5
|
||||
github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0
|
||||
github.com/gogf/gf/v2 v2.3.2
|
||||
github.com/gogf/gf/v2 v2.4.1
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.14 // indirect
|
||||
github.com/mojocn/base64Captcha v1.3.5
|
||||
github.com/mssola/user_agent v0.5.3
|
||||
github.com/qiniu/go-sdk/v7 v7.13.0
|
||||
github.com/rivo/uniseg v0.4.3 // indirect
|
||||
github.com/shirou/gopsutil/v3 v3.23.2 // indirect
|
||||
github.com/shirou/gopsutil/v3 v3.23.2
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.34
|
||||
github.com/tiger1103/gfast-cache v1.0.0
|
||||
github.com/tiger1103/gfast-token v1.0.3
|
||||
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
||||
golang.org/x/net v0.7.0 // indirect
|
||||
)
|
||||
|
17
go.sum
17
go.sum
@ -58,8 +58,8 @@ github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0 h1:r2q8MLwF6yUIEm6Hhwsfo/ixaJTK
|
||||
github.com/gogf/gf/contrib/nosql/redis/v2 v2.3.0/go.mod h1:V9o2BF9ovJnaZhHImHAanqUgjX4kI51lgU45u5rPqvw=
|
||||
github.com/gogf/gf/v2 v2.0.0/go.mod h1:apktt6TleWtCIwpz63vBqUnw8MX8gWKoZyxgDpXFtgM=
|
||||
github.com/gogf/gf/v2 v2.3.0/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/gogf/gf/v2 v2.3.2 h1:nlJ0zuDWqFb93/faZmr7V+GADx/lzz5Unz/9x6OJ2u8=
|
||||
github.com/gogf/gf/v2 v2.3.2/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/gogf/gf/v2 v2.4.1 h1:snsuvDhNFiRoAuWBbKfIIng0KyMaRA87Qr03GLir5j8=
|
||||
github.com/gogf/gf/v2 v2.4.1/go.mod h1:tsbmtwcAl2chcYoq/fP9W2FZf06aw4i89X34nbSHo9Y=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs=
|
||||
github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||
@ -104,6 +104,7 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
|
||||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||
@ -146,6 +147,7 @@ github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5h
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
||||
github.com/qiniu/dyn v1.3.0/go.mod h1:E8oERcm8TtwJiZvkQPbcAh0RL8jO1G0VXJMW3FAWdkk=
|
||||
github.com/qiniu/go-sdk/v7 v7.13.0 h1:0bWRh/oAC2cArUILZLuWN+s9hPep1JYch5sA2Mfxq7A=
|
||||
@ -157,8 +159,6 @@ github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
|
||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||
github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
|
||||
github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||
github.com/shirou/gopsutil/v3 v3.23.2 h1:PAWSuiAszn7IhPMBtXsbSCafej7PqUOvY6YywlQUExU=
|
||||
github.com/shirou/gopsutil/v3 v3.23.2/go.mod h1:gv0aQw33GLo3pG8SiWKiQrbDzbRY1K80RyZJ7V4Th1M=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
@ -170,8 +170,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
|
||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
|
||||
@ -181,11 +181,9 @@ github.com/tiger1103/gfast-cache v1.0.0 h1:+amboC6uu4AvkUnDz4DECcsBTp5HW+O98k8gu
|
||||
github.com/tiger1103/gfast-cache v1.0.0/go.mod h1:l+e5vdUHmqK0Th5VBOCSxXORbm8MwZQMXDkn+KA+amE=
|
||||
github.com/tiger1103/gfast-token v1.0.3 h1:6uPGGuhxlLODV9tDS1djhWHUSaIYtVNyOqibHTITCt4=
|
||||
github.com/tiger1103/gfast-token v1.0.3/go.mod h1:yjTBd86Gi2tOrgNBZe60QKyMprJVFSg3zUmQDEkD/Lw=
|
||||
github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw=
|
||||
github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
|
||||
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
|
||||
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
|
||||
github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o=
|
||||
github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
|
||||
github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
|
||||
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
@ -256,7 +254,6 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
|
22
internal/app/common/model/common.go
Normal file
22
internal/app/common/model/common.go
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* @desc:公用model
|
||||
* @company:云南奇讯科技有限公司
|
||||
* @Author: yixiaohu<yxh669@qq.com>
|
||||
* @Date: 2023/5/11 22:43
|
||||
*/
|
||||
|
||||
package model
|
||||
|
||||
// PageReq 公共请求参数
|
||||
type PageReq struct {
|
||||
DateRange []string `p:"dateRange"` //日期范围
|
||||
PageNum int `p:"pageNum"` //当前页码
|
||||
PageSize int `p:"pageSize"` //每页数
|
||||
OrderBy string //排序方式
|
||||
}
|
||||
|
||||
// ListRes 列表公共返回
|
||||
type ListRes struct {
|
||||
CurrentPage int `json:"currentPage"`
|
||||
Total interface{} `json:"total"`
|
||||
}
|
@ -119,10 +119,3 @@ func (c *userController) Delete(ctx context.Context, req *system.UserDeleteReq)
|
||||
err = service.SysUser().Delete(ctx, req.Ids)
|
||||
return
|
||||
}
|
||||
|
||||
// GetUsers 通过用户id批量获取用户信息
|
||||
func (c *userController) GetUsers(ctx context.Context, req *system.UserGetByIdsReq) (res *system.UserGetByIdsRes, err error) {
|
||||
res = new(system.UserGetByIdsRes)
|
||||
res.List, err = service.SysUser().GetUsers(ctx, req.Ids)
|
||||
return
|
||||
}
|
||||
|
@ -86,3 +86,8 @@ func (c *toolsGenTableController) BatchGenCode(ctx context.Context, req *system.
|
||||
err = service.ToolsGenTable().GenCode(ctx, req.Ids)
|
||||
return
|
||||
}
|
||||
|
||||
func (c *toolsGenTableController) SyncTable(ctx context.Context, req *system.ToolsGenTableSyncTableReq) (res *system.ToolsGenTableSyncTableRes, err error) {
|
||||
err = service.ToolsGenTable().SyncTable(ctx, req.TableId)
|
||||
return
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ func init() {
|
||||
|
||||
type sContext struct{}
|
||||
|
||||
func New() *sContext {
|
||||
func New() service.IContext {
|
||||
return &sContext{}
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ func init() {
|
||||
service.RegisterMiddleware(New())
|
||||
}
|
||||
|
||||
func New() *sMiddleware {
|
||||
func New() service.IMiddleware {
|
||||
return &sMiddleware{}
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ func init() {
|
||||
type sPersonal struct {
|
||||
}
|
||||
|
||||
func New() *sPersonal {
|
||||
func New() service.IPersonal {
|
||||
return &sPersonal{}
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ func init() {
|
||||
service.RegisterSysAuthRule(New())
|
||||
}
|
||||
|
||||
func New() *sSysAuthRule {
|
||||
func New() service.ISysAuthRule {
|
||||
return &sSysAuthRule{}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@ func init() {
|
||||
service.RegisterSysDept(New())
|
||||
}
|
||||
|
||||
func New() *sSysDept {
|
||||
func New() service.ISysDept {
|
||||
return &sSysDept{}
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ func init() {
|
||||
service.RegisterSysJob(New())
|
||||
}
|
||||
|
||||
func New() *sSysJob {
|
||||
func New() service.ISysJob {
|
||||
return &sSysJob{}
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ func init() {
|
||||
service.RegisterSysJobLog(New())
|
||||
}
|
||||
|
||||
func New() *sSysJobLog {
|
||||
func New() service.ISysJobLog {
|
||||
return new(sSysJobLog)
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ func init() {
|
||||
service.RegisterSysLoginLog(New())
|
||||
}
|
||||
|
||||
func New() *sSysLoginLog {
|
||||
func New() service.ISysLoginLog {
|
||||
return &sSysLoginLog{
|
||||
Pool: grpool.New(100),
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ func init() {
|
||||
service.RegisterOperateLog(New())
|
||||
}
|
||||
|
||||
func New() *sOperateLog {
|
||||
func New() service.IOperateLog {
|
||||
return &sOperateLog{
|
||||
Pool: grpool.New(100),
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ func init() {
|
||||
service.RegisterSysPost(New())
|
||||
}
|
||||
|
||||
func New() *sSysPost {
|
||||
func New() service.ISysPost {
|
||||
return &sSysPost{}
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ func init() {
|
||||
service.RegisterSysRole(New())
|
||||
}
|
||||
|
||||
func New() *sSysRole {
|
||||
func New() service.ISysRole {
|
||||
return &sSysRole{}
|
||||
}
|
||||
|
||||
@ -171,22 +171,22 @@ func (s *sSysRole) GetFilteredNamedPolicy(ctx context.Context, id uint) (gpSlice
|
||||
}
|
||||
|
||||
func (s *sSysRole) hasManageAccess(ctx context.Context, roleId uint) bool {
|
||||
currentUserId:=service.Context().GetUserId(ctx)
|
||||
currentUserId := service.Context().GetUserId(ctx)
|
||||
if !service.SysUser().IsSupperAdmin(ctx, currentUserId) {
|
||||
var (
|
||||
roleIds []uint
|
||||
hasAccess bool
|
||||
err error
|
||||
list []*entity.SysRole
|
||||
list []*entity.SysRole
|
||||
)
|
||||
list,err = s.GetRoleList(ctx)
|
||||
list, err = s.GetRoleList(ctx)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, err)
|
||||
return false
|
||||
}
|
||||
for _,v:=range list{
|
||||
for _, v := range list {
|
||||
//判断是否当前用户所建角色
|
||||
if roleId==v.Id && v.CreatedBy==currentUserId{
|
||||
if roleId == v.Id && v.CreatedBy == currentUserId {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ type sSysUser struct {
|
||||
casBinUserPrefix string //CasBin 用户id前缀
|
||||
}
|
||||
|
||||
func New() *sSysUser {
|
||||
func New() service.ISysUser {
|
||||
return &sSysUser{
|
||||
casBinUserPrefix: "u_",
|
||||
}
|
||||
@ -523,7 +523,7 @@ func (s *sSysUser) Add(ctx context.Context, req *system.UserAddReq) (err error)
|
||||
})
|
||||
liberr.ErrIsNil(ctx, e, "添加用户失败")
|
||||
//不是超管过滤提交角色数据
|
||||
if !service.SysUser().IsSupperAdmin(ctx,service.Context().GetUserId(ctx)){
|
||||
if !service.SysUser().IsSupperAdmin(ctx, service.Context().GetUserId(ctx)) {
|
||||
req.RoleIds, err = s.filterRoleIds(ctx, req.RoleIds, service.Context().GetUserId(ctx))
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
@ -555,7 +555,7 @@ func (s *sSysUser) Edit(ctx context.Context, req *system.UserEditReq) (err error
|
||||
IsAdmin: req.IsAdmin,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改用户信息失败")
|
||||
if !service.SysUser().IsSupperAdmin(ctx,service.Context().GetUserId(ctx)){
|
||||
if !service.SysUser().IsSupperAdmin(ctx, service.Context().GetUserId(ctx)) {
|
||||
req.RoleIds, err = s.filterRoleIds(ctx, req.RoleIds, service.Context().GetUserId(ctx))
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
"github.com/mssola/user_agent"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/common"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/system"
|
||||
comModel "github.com/tiger1103/gfast/v3/internal/app/common/model"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/model"
|
||||
@ -28,7 +29,7 @@ func init() {
|
||||
service.RegisterSysUserOnline(New())
|
||||
}
|
||||
|
||||
func New() *sSysUserOnline {
|
||||
func New() service.ISysUserOnline {
|
||||
return &sSysUserOnline{
|
||||
Pool: grpool.New(100),
|
||||
}
|
||||
@ -90,8 +91,10 @@ func (s *sSysUserOnline) SaveOnline(ctx context.Context, params *model.SysUserOn
|
||||
func (s *sSysUserOnline) CheckUserOnline(ctx context.Context) {
|
||||
param := &system.SysUserOnlineSearchReq{
|
||||
PageReq: common.PageReq{
|
||||
PageNum: 1,
|
||||
PageSize: 50,
|
||||
PageReq: comModel.PageReq{
|
||||
PageNum: 1,
|
||||
PageSize: 50,
|
||||
},
|
||||
},
|
||||
}
|
||||
var total int
|
||||
|
@ -17,7 +17,7 @@ func init() {
|
||||
service.RegisterTaskList(New())
|
||||
}
|
||||
|
||||
func New() *sTaskList {
|
||||
func New() service.ITaskList {
|
||||
return &sTaskList{
|
||||
mu: gmutex.New(),
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ type sToken struct {
|
||||
*gftoken.GfToken
|
||||
}
|
||||
|
||||
func New() *sToken {
|
||||
func New() service.IGfToken {
|
||||
var (
|
||||
ctx = gctx.New()
|
||||
opt *commonModel.TokenOptions
|
||||
|
@ -43,7 +43,7 @@ func init() {
|
||||
service.RegisterToolsGenTable(New())
|
||||
}
|
||||
|
||||
func New() *sToolsGenTable {
|
||||
func New() service.IToolsGenTable {
|
||||
return new(sToolsGenTable)
|
||||
}
|
||||
|
||||
@ -184,7 +184,7 @@ func (s *sToolsGenTable) InitTable(ctx context.Context, table *entity.ToolsGenTa
|
||||
table.PackageName = g.Cfg().MustGet(ctx, "gen.packageName").String()
|
||||
table.ModuleName = g.Cfg().MustGet(ctx, "gen.moduleName").String()
|
||||
table.BusinessName = s.GetBusinessName(ctx, table.TableName)
|
||||
table.FunctionName = strings.ReplaceAll(table.TableComment, "表", "")
|
||||
table.FunctionName = table.TableComment
|
||||
table.FunctionAuthor = g.Cfg().MustGet(ctx, "gen.author").String()
|
||||
table.TplCategory = "crud"
|
||||
pkColumn, err := s.getPkColumn(columns)
|
||||
@ -403,7 +403,6 @@ func (s *sToolsGenTable) SaveEdit(ctx context.Context, req *system.ToolsGenTable
|
||||
dbColumn.QueryType = column.QueryType
|
||||
dbColumn.GoField = column.GoField
|
||||
dbColumn.DictType = column.DictType
|
||||
dbColumn.IsInsert = column.IsInsert
|
||||
dbColumn.IsEdit = column.IsEdit
|
||||
dbColumn.IsList = column.IsList
|
||||
dbColumn.IsDetail = column.IsDetail
|
||||
@ -473,10 +472,13 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
||||
}
|
||||
service.ToolsGenTableColumn().SetPkColumn(extendData, extendData.Columns)
|
||||
view := gview.New()
|
||||
view.SetConfigWithMap(g.Map{
|
||||
err = view.SetConfigWithMap(g.Map{
|
||||
"Paths": g.Cfg().MustGet(ctx, "gen.templatePath").String(),
|
||||
"Delimiters": []string{"{{", "}}"},
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
view.BindFuncMap(g.Map{
|
||||
"UcFirst": func(str string) string {
|
||||
return gstr.UcFirst(str)
|
||||
@ -663,16 +665,6 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
||||
return
|
||||
}
|
||||
|
||||
vueAddKey := "vueAdd"
|
||||
vueAddValue := ""
|
||||
var tmpVueAddModel string
|
||||
if tmpVueAddModel, err = view.Parse(ctx, "vue/add-vue.template", tplData); err == nil {
|
||||
vueAddValue = tmpVueAddModel
|
||||
vueAddValue, err = s.trimBreak(vueAddValue)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
|
||||
vueEditKey := "vueEdit"
|
||||
vueEditValue := ""
|
||||
var tmpVueEditModel string
|
||||
@ -709,7 +701,6 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
||||
tsApiKey: tsApiValue,
|
||||
tsModelKey: tsModelValue,
|
||||
vueKey: vueValue,
|
||||
vueAddKey: vueAddValue,
|
||||
vueEditKey: vueEditValue,
|
||||
vueDetailKey: vueDetailValue,
|
||||
}
|
||||
@ -723,7 +714,10 @@ func (s *sToolsGenTable) SelectRecordById(ctx context.Context, tableId int64) (t
|
||||
return
|
||||
}
|
||||
m := gconv.Map(table)
|
||||
gconv.Struct(m, &tableEx)
|
||||
err = gconv.Struct(m, &tableEx)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if tableEx.TplCategory == "tree" {
|
||||
opt := gjson.New(tableEx.Options)
|
||||
tableEx.TreeParentCode = opt.Get("treeParentCode").String()
|
||||
@ -746,7 +740,6 @@ func (s *sToolsGenTable) SelectRecordById(ctx context.Context, tableId int64) (t
|
||||
allColumnExs := make([]*model.ToolsGenTableColumnEx, len(columns))
|
||||
|
||||
var (
|
||||
insertColumns []*model.ToolsGenTableColumnEx
|
||||
editColumns []*model.ToolsGenTableColumnEx
|
||||
listColumns []*model.ToolsGenTableColumnEx
|
||||
detailColumns []*model.ToolsGenTableColumnEx
|
||||
@ -763,12 +756,6 @@ func (s *sToolsGenTable) SelectRecordById(ctx context.Context, tableId int64) (t
|
||||
allColumnExs[i] = columnEx
|
||||
tableEx.IsPkInsertable = tableEx.IsPkInsertable || column.IsPk && !column.IsIncrement
|
||||
tableEx.IsPkListable = tableEx.IsPkListable || column.IsPk && column.IsList
|
||||
if column.IsInsert && !service.ToolsGenTableColumn().IsNotEdit(columnName) && !column.IsPk {
|
||||
insertColumns = append(insertColumns, columnEx)
|
||||
columnEx.IsInsert = true
|
||||
} else {
|
||||
columnEx.IsInsert = false
|
||||
}
|
||||
if column.IsEdit && !service.ToolsGenTableColumn().IsNotEdit(columnName) && !column.IsPk {
|
||||
editColumns = append(editColumns, columnEx)
|
||||
columnEx.IsEdit = true
|
||||
@ -861,9 +848,6 @@ func (s *sToolsGenTable) SelectRecordById(ctx context.Context, tableId int64) (t
|
||||
break
|
||||
}
|
||||
}
|
||||
sort.Slice(insertColumns, func(i, j int) bool {
|
||||
return insertColumns[i].SortOrderEdit < insertColumns[j].SortOrderEdit
|
||||
})
|
||||
sort.Slice(editColumns, func(i, j int) bool {
|
||||
return editColumns[i].SortOrderEdit < editColumns[j].SortOrderEdit
|
||||
})
|
||||
@ -878,7 +862,6 @@ func (s *sToolsGenTable) SelectRecordById(ctx context.Context, tableId int64) (t
|
||||
})
|
||||
|
||||
tableEx.Columns = allColumnExs
|
||||
tableEx.InsertColumns = insertColumns
|
||||
tableEx.EditColumns = editColumns
|
||||
tableEx.DetailColumns = detailColumns
|
||||
tableEx.ListColumns = listColumns
|
||||
@ -1068,10 +1051,6 @@ func (s *sToolsGenTable) GenCode(ctx context.Context, ids []int) (err error) {
|
||||
path := strings.Join([]string{frontDir, "/src/views/" + pluginName, extendData.ModuleName, "/", businessName + "/list/component/detail", ".vue"}, "")
|
||||
err = s.createFile(path, code, extendData.Overwrite)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
case "vueAdd":
|
||||
path := strings.Join([]string{frontDir, "/src/views/" + pluginName, extendData.ModuleName, "/", businessName + "/list/component/add", ".vue"}, "")
|
||||
err = s.createFile(path, code, extendData.Overwrite)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
case "vueEdit":
|
||||
path := strings.Join([]string{frontDir, "/src/views/" + pluginName, extendData.ModuleName, "/", businessName + "/list/component/edit", ".vue"}, "")
|
||||
err = s.createFile(path, code, extendData.Overwrite)
|
||||
@ -1184,6 +1163,14 @@ func (s *sToolsGenTable) getLinkedTableInfo(ctx context.Context, tableName strin
|
||||
m := gconv.Map(table)
|
||||
err = gconv.Struct(m, &linkedTable)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if linkedTable.Options != "" {
|
||||
err = gconv.Struct(linkedTable.Options, &linkedTable.OptionsStruct)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
err = dao.ToolsGenTableColumn.Ctx(ctx).Where(dao.ToolsGenTableColumn.Columns().TableId, table.TableId).
|
||||
Where(dao.ToolsGenTableColumn.Columns().ColumnName, gstr.CaseSnake(linkedTable.OptionsStruct.TreeParentCode)).
|
||||
Scan(&linkedTable.OptionsStruct.ColumnAttr)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
linkedTable.RefColumns = gmap.NewListMap()
|
||||
})
|
||||
return
|
||||
@ -1262,3 +1249,66 @@ import (
|
||||
err = s.createFile(path, code, true)
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sToolsGenTable) SyncTable(ctx context.Context, tableId int64) (err error) {
|
||||
var (
|
||||
extendData *model.ToolsGenTableEx
|
||||
table *entity.ToolsGenTable
|
||||
genTableColumns []*entity.ToolsGenTableColumn
|
||||
)
|
||||
extendData, err = s.SelectRecordById(ctx, tableId)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if extendData == nil {
|
||||
err = gerror.New("表格数据不存在")
|
||||
return
|
||||
}
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
table, err = s.GetTableInfoByTableId(ctx, tableId)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if table == nil {
|
||||
liberr.ErrIsNil(ctx, gerror.New("表格数据不存在"))
|
||||
}
|
||||
genTableColumns, err = service.ToolsGenTableColumn().SelectDbTableColumnsByName(ctx, extendData.TableName)
|
||||
liberr.ErrIsNil(ctx, err, "获取列数据失败")
|
||||
if len(genTableColumns) <= 0 {
|
||||
liberr.ErrIsNil(ctx, gerror.New("获取列数据失败"))
|
||||
}
|
||||
for _, column := range genTableColumns {
|
||||
alreadyExists := false //字段是否存在
|
||||
for _, tableColumn := range extendData.Columns {
|
||||
if column.ColumnName == tableColumn.ColumnName {
|
||||
alreadyExists = true
|
||||
break
|
||||
}
|
||||
}
|
||||
//字段不存在则添加
|
||||
if !alreadyExists {
|
||||
service.ToolsGenTableColumn().InitColumnField(column, table)
|
||||
_, err = tx.Model(dao.ToolsGenTableColumn.Table()).Insert(column)
|
||||
liberr.ErrIsNil(ctx, err, fmt.Sprintf("保存列`%s`数据失败", column.ColumnName))
|
||||
}
|
||||
}
|
||||
for _, tableColumn := range extendData.Columns {
|
||||
alreadyDelete := true //数据表中字段是否已删除
|
||||
for _, column := range genTableColumns {
|
||||
if column.ColumnName == tableColumn.ColumnName {
|
||||
alreadyDelete = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if alreadyDelete {
|
||||
//删除columns表中字段
|
||||
_, err = dao.ToolsGenTableColumn.Ctx(ctx).
|
||||
Where(dao.ToolsGenTableColumn.Columns().ColumnId, tableColumn.ColumnId).
|
||||
Delete()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
}
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ func init() {
|
||||
service.RegisterToolsGenTableColumn(New())
|
||||
}
|
||||
|
||||
func New() *sToolsGenTableColumn {
|
||||
func New() service.IToolsGenTableColumn {
|
||||
return &sToolsGenTableColumn{
|
||||
ColumnTypeStr: []string{"char", "varchar", "narchar", "varchar2", "tinytext", "text", "mediumtext", "longtext"},
|
||||
ColumnTypeTime: []string{"datetime", "time", "date", "timestamp"},
|
||||
@ -117,15 +117,6 @@ func (s *sToolsGenTableColumn) InitColumnField(column *entity.ToolsGenTableColum
|
||||
column.TsType = "boolean"
|
||||
}
|
||||
|
||||
//新增字段
|
||||
if s.IsNotEdit(columnName) {
|
||||
column.IsInsert = false
|
||||
} else if column.IsIncrement {
|
||||
column.IsInsert = false
|
||||
} else {
|
||||
column.IsInsert = true
|
||||
}
|
||||
|
||||
// 编辑字段
|
||||
if s.IsNotEdit(columnName) {
|
||||
column.IsEdit = false
|
||||
|
@ -23,7 +23,6 @@ type ToolsGenTableColumn struct {
|
||||
IsPk interface{} // 是否主键(1是)
|
||||
IsIncrement interface{} // 是否自增(1是)
|
||||
IsRequired interface{} // 是否必填(1是)
|
||||
IsInsert interface{} // 是否为插入字段(1是)
|
||||
IsEdit interface{} // 是否编辑字段(1是)
|
||||
IsList interface{} // 是否列表字段(1是)
|
||||
IsDetail interface{} // 是否详情字段
|
||||
|
@ -18,7 +18,6 @@ type ToolsGenTableColumn struct {
|
||||
IsPk bool `json:"isPk" description:"是否主键(1是)"`
|
||||
IsIncrement bool `json:"isIncrement" description:"是否自增(1是)"`
|
||||
IsRequired bool `json:"isRequired" description:"是否必填(1是)"`
|
||||
IsInsert bool `json:"isInsert" description:"是否为插入字段(1是)"`
|
||||
IsEdit bool `json:"isEdit" description:"是否编辑字段(1是)"`
|
||||
IsList bool `json:"isList" description:"是否列表字段(1是)"`
|
||||
IsDetail bool `json:"isDetail" description:"是否详情字段"`
|
||||
|
@ -51,3 +51,9 @@ type SysUserSimpleRes struct {
|
||||
UserName string `orm:"user_name" json:"userName"` // 用户名
|
||||
UserNickname string `orm:"user_nickname" json:"userNickname"` // 用户昵称
|
||||
}
|
||||
|
||||
type LinkUserRes struct {
|
||||
gmeta.Meta `orm:"table:sys_user"`
|
||||
Id uint64 `orm:"id" json:"id"`
|
||||
UserNickname string `orm:"user_nickname" json:"userNickname"`
|
||||
}
|
||||
|
@ -46,7 +46,6 @@ type ToolsGenTableEx struct {
|
||||
HasUpdatedBy bool // 是否有updated_by字段
|
||||
HasConversion bool // service中是否有转换函数
|
||||
Columns []*ToolsGenTableColumnEx // 表列信息
|
||||
InsertColumns []*ToolsGenTableColumnEx // 新增界面列信息,主键单独判断不在此列
|
||||
EditColumns []*ToolsGenTableColumnEx // 编辑界面列信息,主键单独判断不在此列
|
||||
ListColumns []*ToolsGenTableColumnEx // 列表界面列信息
|
||||
DetailColumns []*ToolsGenTableColumnEx // 详情界面列信息
|
||||
@ -57,14 +56,25 @@ type ToolsGenTableEx struct {
|
||||
|
||||
// ToolsGenTableLinked 关联表
|
||||
type ToolsGenTableLinked struct {
|
||||
TableName string // 表名称
|
||||
TableComment string // 表描述
|
||||
ClassName string // 实体类名称
|
||||
PackageName string // 生成包路径
|
||||
ModuleName string // 生成模块名
|
||||
BusinessName string // 生成业务名
|
||||
RefColumns *gmap.ListMap // 要被查询的所有数据列信息
|
||||
LinkedTables []*ToolsGenTableLinked // 嵌套关联表信息
|
||||
TableName string // 表名称
|
||||
TableComment string // 表描述
|
||||
ClassName string // 实体类名称
|
||||
PackageName string // 生成包路径
|
||||
ModuleName string // 生成模块名
|
||||
BusinessName string // 生成业务名
|
||||
TplCategory string // 表类型列表或树表
|
||||
Options string // 表相关选项配置
|
||||
OptionsStruct ToolsGenTableOptions // 表相关选项配置结构
|
||||
RefColumns *gmap.ListMap // 要被查询的所有数据列信息
|
||||
LinkedTables []*ToolsGenTableLinked // 嵌套关联表信息
|
||||
}
|
||||
|
||||
// ToolsGenTableOptions 表相关选项配置
|
||||
type ToolsGenTableOptions struct {
|
||||
TreeCode string `json:"treeCode"`
|
||||
TreeName string `json:"treeName"`
|
||||
TreeParentCode string `json:"treeParentCode"`
|
||||
ColumnAttr *ToolsGenTableColumnEx
|
||||
}
|
||||
|
||||
// ToolsGenTableEditData 编辑页面表数据详情
|
||||
|
@ -23,7 +23,6 @@ type ToolsGenTableColumnEx struct {
|
||||
IsPk bool // 是否主键
|
||||
IsIncrement bool // 是否自增
|
||||
IsRequired bool // 是否必填
|
||||
IsInsert bool // 是否为插入字段
|
||||
IsEdit bool // 是否编辑字段
|
||||
IsList bool // 是否列表字段
|
||||
IsDetail bool // 是否详情字段
|
||||
|
@ -31,6 +31,7 @@ type (
|
||||
GenData(ctx context.Context, tableId int64) (data g.MapStrStr, extendData *model.ToolsGenTableEx, err error)
|
||||
SelectRecordById(ctx context.Context, tableId int64) (tableEx *model.ToolsGenTableEx, err error)
|
||||
GenCode(ctx context.Context, ids []int) (err error)
|
||||
SyncTable(ctx context.Context, tableId int64) (err error)
|
||||
}
|
||||
)
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -9,39 +9,9 @@
|
||||
////
|
||||
package {{.table.ModuleName }}
|
||||
////
|
||||
{{$hasUpFile:=false}}
|
||||
{{$hasArr:=false}}
|
||||
{{$hasGtime:=false}}
|
||||
{{range $index,$column :=.table.Columns}}
|
||||
{{if eq $column.HtmlType "imagefile" "images" "file" "files" }}
|
||||
{{$hasUpFile = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{$hasArr = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $index,$column :=.table.EditColumns}}
|
||||
{{if eq $column.GoType "Time"}}
|
||||
{{$hasGtime = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $index,$column :=.table.InsertColumns}}
|
||||
{{if eq $column.GoType "Time"}}
|
||||
{{$hasGtime = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
import (
|
||||
{{if $hasArr}}
|
||||
"github.com/gogf/gf/v2/container/garray"
|
||||
{{end}}
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
{{if and .table.HasTimeColumn $hasGtime}}
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
{{end}}
|
||||
commonApi "{{.goModName}}/api/v1/common"
|
||||
{{if $hasUpFile}}
|
||||
comModel "{{.goModName}}/internal/app/common/model"
|
||||
{{end}}
|
||||
"{{.goModName}}/{{.table.PackageName}}/model"
|
||||
)
|
||||
|
||||
@ -49,35 +19,40 @@ import (
|
||||
// {{.table.ClassName}}SearchReq 分页请求参数
|
||||
type {{.table.ClassName}}SearchReq struct {
|
||||
g.Meta `path:"/list" tags:"{{$.table.FunctionName}}" method:"get" summary:"{{$.table.FunctionName}}列表"`
|
||||
{{range $index, $column := .table.QueryColumns}}
|
||||
{{$column.GoField}} {{if or (eq $column.GoType "Time") (eq $column.GoType "int") (eq $column.GoType "int64") (eq $column.GoType "uint") (eq $column.GoType "uint64") (eq $column.GoType "float") (eq $column.GoType "float64") (eq $column.GoType "bool")}}{{if eq $column.QueryType "BETWEEN"}}[]{{end}}string{{else}}{{if eq $column.QueryType "BETWEEN"}}[]{{end}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}"{{if ne $column.FieldValidation ""}} v:"{{$column.FieldValidation}}"{{end}}` //{{$column.ColumnComment}}
|
||||
{{end}}
|
||||
commonApi.PageReq
|
||||
commonApi.Author
|
||||
model.{{.table.ClassName}}SearchReq
|
||||
}
|
||||
|
||||
|
||||
// {{.table.ClassName}}SearchRes 列表返回结果
|
||||
type {{.table.ClassName}}SearchRes struct {
|
||||
g.Meta `mime:"application/json"`
|
||||
commonApi.ListRes
|
||||
List []*model.{{.table.ClassName}}ListRes `json:"list"`
|
||||
*model.{{.table.ClassName}}SearchRes
|
||||
}
|
||||
|
||||
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
//相关连表查询数据
|
||||
type Linked{{$.table.ClassName}}DataSearchReq struct{
|
||||
g.Meta `path:"/linkedData" tags:"{{$.table.FunctionName}}" method:"get" summary:"{{$.table.FunctionName}}关联表数据"`
|
||||
commonApi.Author
|
||||
}
|
||||
{{end}}
|
||||
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
//相关连表查询数据
|
||||
type Linked{{$.table.ClassName}}DataSearchRes struct{
|
||||
g.Meta `mime:"application/json"`
|
||||
*model.Linked{{$.table.ClassName}}DataSearchRes
|
||||
}
|
||||
{{end}}
|
||||
|
||||
|
||||
// {{.table.ClassName}}AddReq 添加操作请求参数
|
||||
type {{.table.ClassName}}AddReq struct {
|
||||
g.Meta `path:"/add" tags:"{{$.table.FunctionName}}" method:"post" summary:"{{$.table.FunctionName}}添加"`
|
||||
commonApi.Author
|
||||
{{if .table.IsPkInsertable}}
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空"`
|
||||
{{end}}
|
||||
{{range $index, $column := .table.InsertColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else if eq $column.HtmlType "checkbox"}}garray.StrArray{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if $column.IsRequired}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}`
|
||||
{{end}}
|
||||
{{if .table.HasCreatedBy}}
|
||||
CreatedBy uint64
|
||||
{{end}}
|
||||
*model.{{.table.ClassName}}AddReq
|
||||
}
|
||||
|
||||
// {{.table.ClassName}}AddRes 添加操作返回结果
|
||||
@ -90,13 +65,7 @@ type {{.table.ClassName}}AddRes struct {
|
||||
type {{.table.ClassName}}EditReq struct {
|
||||
g.Meta `path:"/edit" tags:"{{$.table.FunctionName}}" method:"put" summary:"{{$.table.FunctionName}}修改"`
|
||||
commonApi.Author
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空"`
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else if eq $column.HtmlType "checkbox"}}garray.StrArray{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if $column.IsRequired}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}`
|
||||
{{end}}
|
||||
{{if .table.HasUpdatedBy}}
|
||||
UpdatedBy uint64
|
||||
{{end}}
|
||||
*model.{{.table.ClassName}}EditReq
|
||||
}
|
||||
|
||||
// {{.table.ClassName}}EditRes 修改操作返回结果
|
||||
|
@ -9,7 +9,11 @@
|
||||
////
|
||||
|
||||
{{$structName := .table.BusinessName | CaseCamelLower}}
|
||||
|
||||
{{$businessName := .table.BusinessName | CaseCamelLower}}
|
||||
{{$plugin:=""}}
|
||||
{{if ContainsI $.table.PackageName "plugins"}}
|
||||
{{$plugin = "plugins/"}}
|
||||
{{end}}
|
||||
package controller
|
||||
////
|
||||
|
||||
@ -20,6 +24,14 @@ import (
|
||||
{{if ne $.table.ModuleName "system"}}
|
||||
systemController "{{.goModName}}/internal/app/system/controller"
|
||||
{{end}}
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
"errors"
|
||||
{{if ne $.table.ModuleName "system"}}
|
||||
systemService "github.com/tiger1103/gfast/v3/internal/app/system/service"
|
||||
{{else}}
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/service"
|
||||
{{end}}
|
||||
{{end}}
|
||||
)
|
||||
////
|
||||
type {{$structName}}Controller struct {
|
||||
@ -34,29 +46,48 @@ var {{.table.ClassName}} = new({{$structName}}Controller)
|
||||
////
|
||||
// List 列表
|
||||
func (c *{{$structName}}Controller) List(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}SearchReq) (res *{{.table.ModuleName}}.{{.table.ClassName}}SearchRes, err error) {
|
||||
res, err = service.{{.table.ClassName}}().List(ctx, req)
|
||||
return
|
||||
res = new({{.table.ModuleName}}.{{.table.ClassName}}SearchRes)
|
||||
res.{{.table.ClassName}}SearchRes, err = service.{{.table.ClassName}}().List(ctx, &req.{{.table.ClassName}}SearchReq)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
// LinkedDataSearch 相关连表查询数据
|
||||
func(c *{{$structName}}Controller) Linked{{$.table.ClassName}}DataSearch(ctx context.Context, req *{{.table.ModuleName}}.Linked{{$.table.ClassName}}DataSearchReq) (res *{{.table.ModuleName}}.Linked{{$.table.ClassName}}DataSearchRes, err error) {
|
||||
{{$serviceVal := "service"}}
|
||||
{{if ne $.table.ModuleName "system"}}
|
||||
{{$serviceVal = "systemService"}}
|
||||
{{end}}
|
||||
if !{{$serviceVal}}.SysUser().AccessRule(ctx, {{$serviceVal}}.Context().GetUserId(ctx), "{{$plugin}}{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/list") {
|
||||
err = errors.New("没有访问权限")
|
||||
return
|
||||
}
|
||||
res = new({{.table.ModuleName}}.Linked{{$.table.ClassName}}DataSearchRes)
|
||||
res.Linked{{$.table.ClassName}}DataSearchRes,err = service.{{.table.ClassName}}().Linked{{$.table.ClassName}}DataSearch(ctx)
|
||||
return
|
||||
}
|
||||
{{end}}
|
||||
|
||||
////
|
||||
// Get 获取{{.table.FunctionName}}
|
||||
func (c *{{$structName}}Controller) Get(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}GetReq) (res *{{.table.ModuleName}}.{{.table.ClassName}}GetRes, err error) {
|
||||
res = new({{.table.ModuleName}}.{{.table.ClassName}}GetRes)
|
||||
res.{{.table.ClassName}}InfoRes,err = service.{{.table.ClassName}}().GetBy{{.table.PkColumn.GoField}}(ctx, req.{{.table.PkColumn.GoField}})
|
||||
return
|
||||
res.{{.table.ClassName}}InfoRes,err = service.{{.table.ClassName}}().GetBy{{.table.PkColumn.GoField}}(ctx, req.{{.table.PkColumn.GoField}})
|
||||
return
|
||||
}
|
||||
|
||||
////
|
||||
// Add 添加{{.table.FunctionName}}
|
||||
func (c *{{$structName}}Controller) Add(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}AddReq) (res *{{.table.ModuleName}}.{{.table.ClassName}}AddRes, err error) {
|
||||
err = service.{{.table.ClassName}}().Add(ctx, req)
|
||||
err = service.{{.table.ClassName}}().Add(ctx, req.{{.table.ClassName}}AddReq)
|
||||
return
|
||||
}
|
||||
|
||||
////
|
||||
// Edit 修改{{.table.FunctionName}}
|
||||
func (c *{{$structName}}Controller) Edit(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}EditReq) (res *{{.table.ModuleName}}.{{.table.ClassName}}EditRes, err error) {
|
||||
err = service.{{.table.ClassName}}().Edit(ctx, req)
|
||||
err = service.{{.table.ClassName}}().Edit(ctx, req.{{.table.ClassName}}EditReq)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -14,22 +14,32 @@ package logic
|
||||
////
|
||||
{{$gjson:=false}}
|
||||
{{$usedSystemModule:=false}}
|
||||
{{$gstr:=false}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if eq $column.HtmlType "images" "file" "files"}}
|
||||
{{$gjson = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "createdBy" "updatedBy" "deletedBy"}}
|
||||
{{if and (eq $column.HtmlField "createdBy" "updatedBy" "deletedBy") (ne $.table.ModuleName "system")}}
|
||||
{{$usedSystemModule = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlType "selects" "checkbox"}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
{{$gstr = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
{{if $gstr}}
|
||||
"github.com/gogf/gf/v2/text/gstr"
|
||||
{{end}}
|
||||
{{if or .table.HasConversion (eq .table.TplCategory "tree")}}
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
{{end}}
|
||||
"{{.goModName}}/api/v1/{{.table.ModuleName}}"
|
||||
"{{.goModName}}/{{.table.PackageName}}/dao"
|
||||
"{{.goModName}}/{{.table.PackageName}}/model"
|
||||
"{{.goModName}}/{{.table.PackageName}}/model/do"
|
||||
@ -44,6 +54,21 @@ import (
|
||||
"{{.goModName}}/library/libUtils"
|
||||
{{end}}
|
||||
"{{.goModName}}/library/liberr"
|
||||
|
||||
|
||||
{{/*去重处理-导入关联表依赖包*/}}
|
||||
{{$hasMethods:=newArray}}
|
||||
{{range $index,$column:= .table.LinkedTables}}
|
||||
{{if ne $column.TableName ""}}
|
||||
{{if not (inArray $hasMethods (concat "list" $column.ClassName))}}
|
||||
{{$hasMethods = append $hasMethods (concat "list" $column.ClassName)}}
|
||||
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
||||
{{if ne $column.PackageName $.table.PackageName}}
|
||||
linked{{$column.ClassName}}Dao {{$.goModName}}/{{$column.PackageName}}/dao
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
)
|
||||
|
||||
|
||||
@ -68,14 +93,14 @@ func init() {
|
||||
service.Register{{.table.ClassName}}(New())
|
||||
}
|
||||
////
|
||||
func New() *s{{.table.ClassName}} {
|
||||
func New() service.I{{.table.ClassName}} {
|
||||
return &s{{.table.ClassName}}{}
|
||||
}
|
||||
////
|
||||
type s{{.table.ClassName}} struct{}
|
||||
////
|
||||
func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}SearchReq) (listRes *{{.table.ModuleName}}.{{.table.ClassName}}SearchRes, err error){
|
||||
listRes = new({{.table.ModuleName}}.{{.table.ClassName}}SearchRes)
|
||||
func (s *s{{.table.ClassName}})List(ctx context.Context, req *model.{{.table.ClassName}}SearchReq) (listRes *model.{{.table.ClassName}}SearchRes, err error){
|
||||
listRes = new(model.{{.table.ClassName}}SearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.{{.table.ClassName}}.Ctx(ctx).WithAll()
|
||||
{{range $index, $column := .table.QueryColumns}}
|
||||
@ -128,15 +153,15 @@ func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleNam
|
||||
if req.OrderBy!=""{
|
||||
order = req.OrderBy
|
||||
}
|
||||
var res []*model.{{.table.ClassName}}InfoRes
|
||||
err = m.Fields({{.table.ModuleName}}.{{.table.ClassName}}SearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
var res []*model.{{.table.ClassName}}ListRes
|
||||
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
{{else}}
|
||||
order:= "{{.table.SortColumn}} {{.table.SortType}}"
|
||||
if req.OrderBy!=""{
|
||||
order = req.OrderBy
|
||||
}
|
||||
var res []*model.{{.table.ClassName}}InfoRes
|
||||
err = m.Fields({{.table.ModuleName}}.{{.table.ClassName}}SearchRes{}).Order(order).Scan(&res)
|
||||
var res []*model.{{.table.ClassName}}ListRes
|
||||
err = m.Order(order).Scan(&res)
|
||||
{{end}}
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.{{.table.ClassName}}ListRes,len(res))
|
||||
@ -146,6 +171,16 @@ func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleNam
|
||||
{{$column.HtmlField}}:= ([]*comModel.UpFile)(nil)
|
||||
err = gjson.DecodeTo(v.{{$column.GoField}},&{{$column.HtmlField}})
|
||||
liberr.ErrIsNil(ctx,err)
|
||||
{{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
err = g.Model("{{$linkedTable.TableName}}").
|
||||
Fields(model.Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{}).
|
||||
Where("id", gstr.Split(v.{{$column.GoField}}, ",")).
|
||||
Scan(&v.Linked{{$column.GoField}})
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
listRes.List[k] = &model.{{.table.ClassName}}ListRes{
|
||||
@ -154,6 +189,12 @@ func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleNam
|
||||
{{if or (eq $column.HtmlField $.table.TreeCode) (eq $column.HtmlField $.table.TreeParentCode) (eq $column.HtmlField $.table.TreeName) }}
|
||||
{{$column.GoField}} : v.{{$column.GoField}},
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
CreatedUser:v.CreatedUser,
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "UpdatedBy"}}
|
||||
UpdatedUser:v.UpdatedUser,
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if and $column.IsList (ne $column.HtmlField $.table.TreeCode) (ne $column.HtmlField $.table.TreeParentCode) (ne $column.HtmlField $.table.TreeName) }}
|
||||
@ -174,6 +215,12 @@ func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleNam
|
||||
{{.table.PkColumn.GoField}} : v.{{.table.PkColumn.GoField}},
|
||||
{{end}}
|
||||
{{range $index, $column := .table.ListColumns}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
CreatedUser:v.CreatedUser,
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "UpdatedBy"}}
|
||||
UpdatedUser:v.UpdatedUser,
|
||||
{{end}}
|
||||
{{if eq $column.HtmlType "images" "file" "files"}}
|
||||
{{$column.GoField}} : {{$column.HtmlField}},
|
||||
{{else}}
|
||||
@ -191,19 +238,57 @@ func (s *s{{.table.ClassName}})List(ctx context.Context, req *{{.table.ModuleNam
|
||||
})
|
||||
return
|
||||
}
|
||||
////
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
// LinkedDataSearch 相关连表查询数据
|
||||
func(s *s{{.table.ClassName}}) Linked{{$.table.ClassName}}DataSearch(ctx context.Context) (res *model.Linked{{$.table.ClassName}}DataSearchRes, err error) {
|
||||
res = new(model.Linked{{$.table.ClassName}}DataSearchRes)
|
||||
{{/*去重处理-导入关联表依赖包*/}}
|
||||
{{$hasMethods3:=newArray}}
|
||||
{{range $index,$column:= .table.LinkedTables}}
|
||||
{{if ne $column.TableName ""}}
|
||||
{{if not (inArray $hasMethods3 (concat "list" $column.ClassName))}}
|
||||
{{$hasMethods3 = append $hasMethods3 (concat "list" $column.ClassName)}}
|
||||
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
||||
res.Linked{{$.table.ClassName}}{{$column.ClassName}}, err = s.List{{$.table.ClassName}}{{$column.ClassName}}(ctx)
|
||||
liberr.ErrIsNil(ctx,err,"获取关联表信息失败")
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
return
|
||||
}
|
||||
{{end}}
|
||||
|
||||
////
|
||||
func (s *s{{.table.ClassName}})GetBy{{$pkGoField}}(ctx context.Context, {{$.table.PkColumn.HtmlField}} {{$.table.PkColumn.GoType}}) (res *model.{{.table.ClassName}}InfoRes,err error){
|
||||
err =g.Try(ctx, func(ctx context.Context){
|
||||
err = dao.{{.table.ClassName}}.Ctx(ctx).WithAll().Where(dao.{{.table.ClassName}}.Columns().{{$pkGoField}}, {{$.table.PkColumn.HtmlField}}).Scan(&res)
|
||||
liberr.ErrIsNil(ctx,err,"获取信息失败")
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if and $column.IsList (eq $column.HtmlType "images" "file" "files")}}
|
||||
{{$column.HtmlField}}:= ([]*comModel.UpFile)(nil)
|
||||
err = gjson.DecodeTo(v.{{$column.GoField}},&{{$column.HtmlField}})
|
||||
liberr.ErrIsNil(ctx,err)
|
||||
{{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
err = g.Model("{{$linkedTable.TableName}}").
|
||||
Fields(model.Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{}).
|
||||
Where("id", gstr.Split(res.{{$column.GoField}}, ",")).
|
||||
Scan(&res.Linked{{$column.GoField}})
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
})
|
||||
return
|
||||
}
|
||||
////
|
||||
func (s *s{{.table.ClassName}})Add(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}AddReq) (err error){
|
||||
func (s *s{{.table.ClassName}})Add(ctx context.Context, req *model.{{.table.ClassName}}AddReq) (err error){
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
{{range $index, $column := .table.InsertColumns}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}} := ""
|
||||
req.{{$column.GoField}}.FilterEmpty()
|
||||
if !req.{{$column.GoField}}.IsEmpty(){
|
||||
@ -220,8 +305,8 @@ func (s *s{{.table.ClassName}})Add(ctx context.Context, req *{{.table.ModuleName
|
||||
{{if .table.IsPkInsertable}}
|
||||
{{.table.PkColumn.GoField}}:req.{{.table.PkColumn.GoField}},
|
||||
{{end}}
|
||||
{{range $index, $column := .table.InsertColumns}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.GoField}}:{{$column.HtmlField}},
|
||||
{{else}}
|
||||
{{$column.GoField}}:req.{{$column.GoField}},
|
||||
@ -236,10 +321,10 @@ func (s *s{{.table.ClassName}})Add(ctx context.Context, req *{{.table.ModuleName
|
||||
return
|
||||
}
|
||||
////
|
||||
func (s *s{{.table.ClassName}})Edit(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}EditReq) (err error){
|
||||
func (s *s{{.table.ClassName}})Edit(ctx context.Context, req *model.{{.table.ClassName}}EditReq) (err error){
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}} := ""
|
||||
req.{{$column.GoField}}.FilterEmpty()
|
||||
if !req.{{$column.GoField}}.IsEmpty(){
|
||||
@ -254,7 +339,7 @@ func (s *s{{.table.ClassName}})Edit(ctx context.Context, req *{{.table.ModuleNam
|
||||
{{end}}
|
||||
_, err = dao.{{.table.ClassName}}.Ctx(ctx).WherePri(req.{{.table.PkColumn.GoField}}).Update(do.{{.table.ClassName}}{
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.GoField}}:{{$column.HtmlField}},
|
||||
{{else}}
|
||||
{{$column.GoField}}:req.{{$column.GoField}},
|
||||
@ -288,7 +373,7 @@ func (s *s{{.table.ClassName}})GetChildrenIds(ctx context.Context,ids []{{$.tabl
|
||||
err = g.Try(ctx,func(ctx context.Context){
|
||||
//获取所有
|
||||
var all *{{.table.ModuleName}}.{{.table.ClassName}}SearchRes
|
||||
all, err = s.List(ctx, &{{.table.ModuleName}}.{{.table.ClassName}}SearchReq{})
|
||||
all.{{.table.ClassName}}SearchRes, err = s.List(ctx, &model.{{.table.ClassName}}SearchReq{})
|
||||
liberr.ErrIsNil(ctx,err)
|
||||
list := make(g.List, len(all.List))
|
||||
for k, info := range all.List {
|
||||
@ -305,3 +390,24 @@ func (s *s{{.table.ClassName}})GetChildrenIds(ctx context.Context,ids []{{$.tabl
|
||||
return
|
||||
}
|
||||
{{end}}
|
||||
|
||||
{{/*去重处理-导入关联表依赖包*/}}
|
||||
{{$hasMethods2:=newArray}}
|
||||
{{range $index,$column:= .table.LinkedTables}}
|
||||
{{if ne $column.TableName ""}}
|
||||
{{if not (inArray $hasMethods2 (concat "list" $column.ClassName))}}
|
||||
{{$hasMethods2 = append $hasMethods2 (concat "list" $column.ClassName)}}
|
||||
{{/*关联{{$column.LinkTableName}}表选项*/}}
|
||||
func (s *s{{$.table.ClassName}}) List{{$.table.ClassName}}{{$column.ClassName}}(ctx context.Context)(linked{{$.table.ClassName}}{{$column.ClassName}} []*model.Linked{{$.table.ClassName}}{{$column.ClassName}},err error){
|
||||
err = g.Try(ctx,func(ctx context.Context){
|
||||
err = {{if ne $column.PackageName $.table.PackageName}}linked{{$column.ClassName}}Dao{{else}}dao{{end}}.{{$column.ClassName}}.
|
||||
Ctx(ctx).
|
||||
Fields(model.Linked{{$.table.ClassName}}{{$column.ClassName}}{}).Scan(&linked{{$.table.ClassName}}{{$column.ClassName}})
|
||||
liberr.ErrIsNil(ctx,err)
|
||||
})
|
||||
return
|
||||
}
|
||||
////
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
@ -9,11 +9,44 @@
|
||||
////
|
||||
package model
|
||||
////
|
||||
{{$hasUpFile:=false}}
|
||||
{{$hasArr:=false}}
|
||||
{{$hasGtime:=false}}
|
||||
{{$hasUser:=false}}
|
||||
|
||||
|
||||
|
||||
{{range $index,$column :=.table.Columns}}
|
||||
{{if and (eq $column.HtmlField "createdBy" "updatedBy") (ne $.table.ModuleName "system")}}
|
||||
{{$hasUser = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlType "imagefile" "images" "file" "files" }}
|
||||
{{$hasUpFile = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
{{$hasArr = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $index,$column :=.table.EditColumns}}
|
||||
{{if and (eq $column.HtmlField "createdBy" "updatedBy") (ne $.table.ModuleName "system")}}
|
||||
{{$hasUser = true}}
|
||||
{{end}}
|
||||
{{if eq $column.GoType "Time"}}
|
||||
{{$hasGtime = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
import (
|
||||
{{if .table.HasTimeColumn}}
|
||||
{{if $hasArr}}
|
||||
"github.com/gogf/gf/v2/container/garray"
|
||||
{{end}}
|
||||
{{if and .table.HasTimeColumn $hasGtime}}
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
{{end}}
|
||||
"github.com/gogf/gf/v2/util/gmeta"
|
||||
"github.com/gogf/gf/v2/util/gmeta"
|
||||
comModel "github.com/tiger1103/gfast/v3/internal/app/common/model"
|
||||
{{if $hasUser}}
|
||||
systemModel "github.com/tiger1103/gfast/v3/internal/app/system/model"
|
||||
{{end}}
|
||||
)
|
||||
|
||||
////
|
||||
@ -21,12 +54,18 @@ import (
|
||||
type {{.table.ClassName}}InfoRes struct {
|
||||
gmeta.Meta `orm:"table:{{.table.TableName}}"`
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if $column.IsPk}}{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `orm:"{{$column.ColumnName}},primary" json:"{{$column.HtmlField}}"` // {{$column.ColumnComment}} {{else}}{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `orm:"{{$column.ColumnName}}" json:"{{$column.HtmlField}}"` // {{$column.ColumnComment}} {{end}}
|
||||
{{if $column.IsPk}}{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `orm:"{{$column.ColumnName}},primary" json:"{{$column.HtmlField}}" dc:"{{$column.ColumnComment}}"` // {{$column.ColumnComment}} {{else}}{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `orm:"{{$column.ColumnName}}" json:"{{$column.HtmlField}}" dc:"{{$column.ColumnComment}}"` // {{$column.ColumnComment}} {{end}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
Linked{{$column.GoField}} *Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" json:"linked{{$column.GoField}}"`
|
||||
Linked{{$column.GoField}} {{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}[]{{end}}*Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `{{if not (eq $column.HtmlType "selects" "checkbox" "treeSelects")}}orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" {{end}}json:"linked{{$column.GoField}}"`
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
CreatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=created_by" json:"createdUser"`
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
UpdatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=updated_by" json:"updatedUser"`
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
@ -35,9 +74,13 @@ type {{.table.ClassName}}InfoRes struct {
|
||||
type Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} struct {
|
||||
gmeta.Meta `orm:"table:{{$linkedTable.TableName}}"`
|
||||
{{range $ci, $linkedColumn := $linkedTable.RefColumns.Values}}
|
||||
{{$linkedColumn.GoField}} {{if eq $linkedColumn.GoType "Time"}}*gtime.Time{{else}}{{$linkedColumn.GoType}}{{end}} `orm:"{{$linkedColumn.ColumnName}}" json:"{{$linkedColumn.HtmlField}}"` // {{$linkedColumn.ColumnComment}}
|
||||
{{$linkedColumn.GoField}} {{if eq $linkedColumn.GoType "Time"}}*gtime.Time{{else}}{{$linkedColumn.GoType}}{{end}} `orm:"{{$linkedColumn.ColumnName}}" json:"{{$linkedColumn.HtmlField}}" dc:"{{$linkedColumn.ColumnComment}}"` // {{$linkedColumn.ColumnComment}}
|
||||
{{end}}
|
||||
{{if eq $linkedTable.TplCategory "tree"}}
|
||||
{{$linkedTable.OptionsStruct.ColumnAttr.GoField}} {{$linkedTable.OptionsStruct.ColumnAttr.GoType}} `orm:"{{$linkedTable.OptionsStruct.ColumnAttr.ColumnName}}" json:"{{$linkedTable.OptionsStruct.ColumnAttr.HtmlField}}"`
|
||||
{{end}}
|
||||
}
|
||||
////
|
||||
{{end}}
|
||||
|
||||
////
|
||||
@ -45,30 +88,95 @@ type {{.table.ClassName}}ListRes struct{
|
||||
{{if eq .table.TplCategory "tree"}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if or (eq $column.HtmlField $.table.TreeCode) (eq $column.HtmlField $.table.TreeParentCode) (eq $column.HtmlField $.table.TreeName) }}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}"`
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}" dc:"{{$column.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
CreatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=created_by" json:"createdUser"`
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
UpdatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=updated_by" json:"updatedBy"`
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if and $column.IsList (ne $column.HtmlField $.table.TreeCode) (ne $column.HtmlField $.table.TreeParentCode) (ne $column.HtmlField $.table.TreeName) }}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}"`
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}" dc:"{{$column.ColumnComment}}"`
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
Linked{{$column.GoField}} *Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" json:"linked{{$column.GoField}}"`
|
||||
Linked{{$column.GoField}} {{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}[]{{end}}*Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `{{if not (eq $column.HtmlType "selects" "checkbox" "treeSelects")}}orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" {{end}}json:"linked{{$column.GoField}}" dc:"{{$column.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{else}}
|
||||
{{if not .table.IsPkListable }}
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `json:"{{.table.PkColumn.HtmlField}}"`
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `json:"{{.table.PkColumn.HtmlField}}" dc:"{{.table.PkColumn.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{range $index, $column := .table.ListColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}"`
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
CreatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=created_by" json:"createdUser"`
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
UpdatedUser *{{if $hasUser}}systemModel.{{end}}LinkUserRes `orm:"with:id=updated_by" json:"updatedBy"`
|
||||
{{end}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else}}{{$column.GoType}}{{end}} `json:"{{$column.HtmlField}}" dc:"{{$column.ColumnComment}}"`
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
Linked{{$column.GoField}} *Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" json:"linked{{$column.GoField}}"`
|
||||
Linked{{$column.GoField}} {{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}[]{{end}}*Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `{{if not (eq $column.HtmlType "selects" "checkbox" "treeSelects")}}orm:"with:{{$column.LinkLabelId}}={{$column.ColumnName}}" {{end}}json:"linked{{$column.GoField}}" dc:"{{$column.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
|
||||
// {{.table.ClassName}}SearchReq 分页请求参数
|
||||
type {{.table.ClassName}}SearchReq struct {
|
||||
{{if ne $.table.ModuleName "common"}}
|
||||
comModel.PageReq
|
||||
{{end}}
|
||||
{{range $index, $column := .table.QueryColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time" "int" "int64" "uint" "uint64" "float" "float64" "bool"}}{{if eq $column.QueryType "BETWEEN"}}[]{{end}}string{{else}}{{if eq $column.QueryType "BETWEEN"}}[]{{end}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}"{{if ne $column.FieldValidation ""}} v:"{{$column.FieldValidation}}"{{end}} dc:"{{$column.ColumnComment}}"` //{{$column.ColumnComment}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
|
||||
// {{.table.ClassName}}SearchRes 列表返回结果
|
||||
type {{.table.ClassName}}SearchRes struct {
|
||||
comModel.ListRes
|
||||
List []*{{.table.ClassName}}ListRes `json:"list"`
|
||||
}
|
||||
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
//相关连表查询数据
|
||||
type Linked{{$.table.ClassName}}DataSearchRes struct{
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} []*Linked{{$.table.ClassName}}{{$linkedTable.ClassName}} `json:"linked{{$.table.ClassName}}{{$linkedTable.ClassName}}"`
|
||||
{{end}}
|
||||
}
|
||||
{{end}}
|
||||
|
||||
|
||||
// {{.table.ClassName}}AddReq 添加操作请求参数
|
||||
type {{.table.ClassName}}AddReq struct {
|
||||
{{if .table.IsPkInsertable}}
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空" dc:"{{.table.PkColumn.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}garray.StrArray{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if $column.IsRequired}}v:"required#{{$column.ColumnComment}}不能为空"{{end}} dc:"{{$column.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{if .table.HasCreatedBy}}
|
||||
CreatedBy uint64
|
||||
{{end}}
|
||||
}
|
||||
|
||||
|
||||
// {{.table.ClassName}}EditReq 修改操作请求参数
|
||||
type {{.table.ClassName}}EditReq struct {
|
||||
{{.table.PkColumn.GoField}} {{.table.PkColumn.GoType}} `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空" dc:"{{.table.PkColumn.ColumnComment}}"`
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{$column.GoField}} {{if eq $column.GoType "Time"}}*gtime.Time{{else if eq $column.HtmlType "images" "file" "files"}}[]*comModel.UpFile{{else if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}garray.StrArray{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if $column.IsRequired}}v:"required#{{$column.ColumnComment}}不能为空"{{end}} dc:"{{$column.ColumnComment}}"`
|
||||
{{end}}
|
||||
{{if .table.HasUpdatedBy}}
|
||||
UpdatedBy uint64
|
||||
{{end}}
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"{{.goModName}}/api/v1/{{.table.ModuleName}}"
|
||||
"{{.goModName}}/{{.table.PackageName}}/model"
|
||||
{{if or .table.HasConversion (eq .table.TplCategory "tree")}}
|
||||
{{end}}
|
||||
@ -30,11 +29,14 @@ import (
|
||||
|
||||
////
|
||||
type I{{.table.ClassName}} interface {
|
||||
List(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}SearchReq) (res *{{.table.ModuleName}}.{{.table.ClassName}}SearchRes, err error)
|
||||
List(ctx context.Context, req *model.{{.table.ClassName}}SearchReq) (res *model.{{.table.ClassName}}SearchRes, err error)
|
||||
GetBy{{.table.PkColumn.GoField}}(ctx context.Context, {{.table.PkColumn.GoField}} {{$.table.PkColumn.GoType}}) (res *model.{{.table.ClassName}}InfoRes,err error)
|
||||
Add(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}AddReq) (err error)
|
||||
Edit(ctx context.Context, req *{{.table.ModuleName}}.{{.table.ClassName}}EditReq) (err error)
|
||||
Add(ctx context.Context, req *model.{{.table.ClassName}}AddReq) (err error)
|
||||
Edit(ctx context.Context, req *model.{{.table.ClassName}}EditReq) (err error)
|
||||
Delete(ctx context.Context, {{$.table.PkColumn.GoField}} []{{$.table.PkColumn.GoType}}) (err error)
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
Linked{{$.table.ClassName}}DataSearch(ctx context.Context)(res *model.Linked{{$.table.ClassName}}DataSearchRes,err error)
|
||||
{{end}}
|
||||
}
|
||||
|
||||
////
|
||||
|
@ -78,31 +78,18 @@ export function change{{$.table.ClassName}}{{$column.GoField}}({{$.table.PkColum
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{if not (inArray $hasMethods (concat "list" $column.LinkTableClass))}}
|
||||
{{$hasMethods = append $hasMethods (concat "list" $column.LinkTableClass)}}
|
||||
// 关联{{$column.LinkTableName}}表选项
|
||||
export function list{{$column.LinkTableClass}}(query:object){
|
||||
return request({
|
||||
url: '/{{$plugin}}{{$.apiVersion}}/{{$column.LinkTableModuleName}}/{{$column.LinkTableBusinessName | CaseCamelLower}}/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
{{if eq $column.HtmlField "createdBy" "updatedBy"}}
|
||||
{{$getUserList = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
{{if $getUserList}}
|
||||
//获取用户信息列表
|
||||
export function getUserList(uIds:number[]){
|
||||
return request({
|
||||
url: '/{{.apiVersion|}}/system/user/getUsers',
|
||||
method: 'get',
|
||||
params: {ids:uIds}
|
||||
})
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
//相关连表查询数据
|
||||
export function linkedDataSearch(){
|
||||
return request({
|
||||
url: '/{{$plugin}}{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/linkedData',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
{{end}}
|
@ -7,7 +7,12 @@ export interface {{.table.ClassName}}TableColumns {
|
||||
{{end}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if and $column.IsList (ne $column.HtmlField $.table.TreeCode) (ne $column.HtmlField $.table.TreeParentCode) (ne $column.HtmlField $.table.TreeName) }}
|
||||
{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files"}}any[]{{else}}{{$column.TsType}}{{end}}; // {{$column.ColumnComment}}
|
||||
{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else}}{{$column.TsType}}{{end}}; // {{$column.ColumnComment}}
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
linked{{$column.GoField}}?:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}; // {{$column.ColumnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{else}}
|
||||
@ -18,7 +23,12 @@ export interface {{.table.ClassName}}TableColumns {
|
||||
{{if eq $column.HtmlField "createdBy" "updatedBy"}}
|
||||
{{$column.HtmlField}}:string; // {{$column.ColumnComment}}
|
||||
{{else}}
|
||||
{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files"}}any[]{{else}}{{$column.TsType}}{{end}}; // {{$column.ColumnComment}}
|
||||
{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else}}{{$column.TsType}}{{end}}; // {{$column.ColumnComment}}
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
linked{{$column.GoField}}?:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}[]{{end}}; // {{$column.ColumnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -30,15 +40,15 @@ export interface {{.table.ClassName}}TableColumns {
|
||||
////
|
||||
export interface {{.table.ClassName}}InfoData {
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if $column.IsPk}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{else}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{end}}
|
||||
{{if $column.IsPk}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{else}}{{$column.HtmlField}}:{{if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}any[]{{else if eq $column.HtmlType "radio"}}boolean{{else}}{{$column.TsType}}|undefined{{end}}; // {{$column.ColumnComment}} {{end}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
linked{{$column.GoField}}:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}; // {{$column.ColumnComment}}
|
||||
linked{{$column.GoField}}?:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}}{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}[]{{end}}; // {{$column.ColumnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
linked{{$.table.ClassName}}{{$linkedTable.ClassName}}:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}};
|
||||
linked{{$.table.ClassName}}{{$linkedTable.ClassName}}?:Linked{{$.table.ClassName}}{{$linkedTable.ClassName}};
|
||||
{{end}}
|
||||
}
|
||||
|
||||
|
@ -21,16 +21,28 @@
|
||||
{{ $hasRowEnd = false }}
|
||||
<el-row>
|
||||
{{end}}
|
||||
{{if or (eq $column.HtmlType "input") (eq $column.HtmlType "textarea") (eq $column.HtmlType "radio") (eq $column.HtmlType "select")}}
|
||||
{{if eq $column.HtmlType "input" "textarea" "radio" "checkbox" "select" "selects" "treeSelect" "treeSelects"}}
|
||||
<el-col :span="{{$column.ColSpan}}">
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
{{if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} formData.linked{{$column.GoField}}?formData.linked{{$column.GoField}}.map((res:any)=>{return res.{{CaseCamelLower $column.LinkLabelName}}}).join(','):'' {{"}}"}}</el-form-item>
|
||||
{{else}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} formData.linked{{$column.GoField}}?formData.linked{{$column.GoField}}.{{CaseCamelLower $column.LinkLabelName}}:'' {{"}}"}}</el-form-item>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{else if ne $column.DictType ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} proxy.getOptionValue(formData.{{$column.HtmlField}}, {{$column.HtmlField}}Options,'value','label') {{"}}"}}</el-form-item>
|
||||
{{if eq $column.HtmlType "checkbox" }}
|
||||
<el-form-item label="{{$column.ColumnComment}}">
|
||||
<el-tag class="ml-2" type="success" v-for="(item,key) in formData.{{$column.HtmlField}}" :key="'{{$column.HtmlField}}-'+key">
|
||||
{{"{{"}} proxy.getOptionValue(item, {{$column.HtmlField}}Options,'value','label') {{"}}"}}
|
||||
</el-tag>
|
||||
</el-form-item>
|
||||
{{else}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} proxy.getOptionValue(formData.{{$column.HtmlField}}, {{$column.HtmlField}}Options,'value','label') {{"}}"}}</el-form-item>
|
||||
{{end}}
|
||||
{{else}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} formData.{{$column.HtmlField}} {{"}}"}}</el-form-item>
|
||||
{{end}}
|
||||
@ -43,14 +55,6 @@
|
||||
<el-col :span="{{$column.ColSpan}}">
|
||||
<el-form-item label="{{$column.ColumnComment}}">{{"{{"}} proxy.parseTime(formData.{{$column.HtmlField}}, '{y}-{m}-{d} {h}:{i}:{s}') {{"}}"}}</el-form-item>
|
||||
</el-col>
|
||||
{{else if eq $column.HtmlType "checkbox" }}
|
||||
<el-col :span="{{$column.ColSpan}}">
|
||||
<el-form-item label="{{$column.ColumnComment}}">
|
||||
<el-tag class="ml-2" type="success" v-for="(item,key) in formData.{{$column.HtmlField}}" :key="'{{$column.HtmlField}}-'+key">
|
||||
{{"{{"}} proxy.getOptionValue(item, {{$column.HtmlField}}Options,'value','label') {{"}}"}}
|
||||
</el-tag>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{else if eq $column.HtmlType "richtext"}}
|
||||
<el-col :span="{{$column.ColSpan}}">
|
||||
<el-form-item label="{{$column.ColumnComment}}">
|
||||
@ -148,12 +152,6 @@
|
||||
{{if and $column.IsStatus $column.IsList}}
|
||||
change{{$.table.ClassName}}{{$column.GoField}},
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{if not (inArray $hasImports (concat "list" $column.LinkTableClass))}}
|
||||
{{$hasImports = append $hasImports (concat "list" $column.LinkTableClass)}}
|
||||
list{{$column.LinkTableClass}},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if $getUserList}}
|
||||
getUserList,
|
||||
@ -176,10 +174,7 @@
|
||||
{{.table.ClassName}}TableColumns,
|
||||
{{.table.ClassName}}InfoData,
|
||||
{{.table.ClassName}}TableDataState,
|
||||
{{.table.ClassName}}EditState,
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
Linked{{$.table.ClassName}}{{$linkedTable.ClassName}},
|
||||
{{end}}
|
||||
{{.table.ClassName}}EditState
|
||||
} from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/model"
|
||||
export default defineComponent({
|
||||
name:"{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Detail",
|
||||
@ -242,17 +237,21 @@
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if eq $column.HtmlType "radio"}}
|
||||
{{$column.HtmlField}}: false ,
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox"}}
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}}: [] ,
|
||||
{{else}}
|
||||
{{$column.HtmlField}}: undefined,
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
linked{{$column.GoField}}:[],
|
||||
{{else}}
|
||||
linked{{$column.GoField}}:{{ "{" }}{{CaseCamelLower $column.LinkLabelId}}:undefined,{{CaseCamelLower $column.LinkLabelName}}:undefined {{ "}" }},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
linked{{$.table.ClassName}}{{$linkedTable.ClassName}}: {
|
||||
{{range $ci, $linkedColumn := $linkedTable.RefColumns.Values}}
|
||||
@ -278,8 +277,6 @@
|
||||
if(row) {
|
||||
get{{.table.ClassName}}(row.{{.table.PkColumn.HtmlField}}!).then((res:any)=>{
|
||||
const data = res.data;
|
||||
{{$hasCreatedBy := false}}
|
||||
{{$hasUpdatedBy := false}}
|
||||
{{range $index, $column := .table.DetailColumns}}
|
||||
{{if and (ne $treeParentCode "") (eq $column.HtmlField $treeParentCode)}}
|
||||
data.{{$treeParentCode}} = getTreeVal(props.{{$businessName}}Options,data.{{$treeParentCode}})
|
||||
@ -292,42 +289,13 @@
|
||||
data.{{$column.HtmlField}} =data.{{$column.HtmlField}}?JSON.parse(data.{{$column.HtmlField}}) : []
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
{{$hasCreatedBy = true}}
|
||||
data.createdBy = data?.createdUser.userNickname
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
{{$hasUpdatedBy = true}}
|
||||
data.updatedBy = data?.updatedUser.userNickname
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
let listUid = [];
|
||||
{{end}}
|
||||
{{if and $hasCreatedBy $hasUpdatedBy}}
|
||||
listUid.push(data.createdBy,data.updatedBy)
|
||||
{{else if $hasCreatedBy}}
|
||||
listUid.push(data.createdBy)
|
||||
{{else if $hasUpdatedBy}}
|
||||
listUid.push(data.updatedBy)
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
getUserList(listUid).then((response:any) =>{
|
||||
let users = response.data.list||[]
|
||||
users.forEach((user:any)=>{
|
||||
{{if $hasCreatedBy}}
|
||||
if(data.createdBy==user.id){
|
||||
data.createdBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
{{if $hasUpdatedBy}}
|
||||
if(data.updatedBy==user.id){
|
||||
data.updatedBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
})
|
||||
state.formData = data;
|
||||
})
|
||||
{{else}}
|
||||
state.formData = data;
|
||||
{{end}}
|
||||
})
|
||||
}
|
||||
state.isShowDialog = true;
|
||||
@ -345,17 +313,21 @@
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if eq $column.HtmlType "radio"}}
|
||||
{{$column.HtmlField}}: false ,
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox"}}
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}}: [] ,
|
||||
{{else}}
|
||||
{{$column.HtmlField}}: undefined,
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := $.table.LinkedTables}}
|
||||
{{if eq $column.LinkTableClass $linkedTable.ClassName}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects" "treeSelects"}}
|
||||
linked{{$column.GoField}}:[],
|
||||
{{else}}
|
||||
linked{{$column.GoField}}:{{ "{" }}{{CaseCamelLower $column.LinkLabelId}}:undefined,{{CaseCamelLower $column.LinkLabelName}}:undefined {{ "}" }},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
linked{{$.table.ClassName}}{{$linkedTable.ClassName}}: {
|
||||
{{range $ci, $linkedColumn := $linkedTable.RefColumns.Values}}
|
||||
|
@ -32,10 +32,10 @@
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-input v-model="formData.{{$column.HtmlField}}" placeholder="请输入{{$column.ColumnComment}}" {{if $column.IsPk}}v-bind:disabled="this.currentOp === 'edit'" {{end}}/>
|
||||
</el-form-item>
|
||||
{{else if eq $column.HtmlType "select" }}
|
||||
{{else if eq $column.HtmlType "select" "selects"}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-select v-model="formData.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" {{if $column.IsPk}}v-bind:disabled="this.currentOp === 'edit'" {{end}} {{if $column.IsCascadeParent}}@change="form{{$column.ColumnName | CaseCamel}}Changed"{{end}} {{if not $column.IsCascade}}@click.native="get{{$column.LinkTableClass}}{{if $column.IsCascade}}Form{{end}}Items{{$column.GoField}}"{{end}}>
|
||||
<el-select v-model="formData.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" {{if $column.IsPk}}v-bind:disabled="this.currentOp === 'edit'" {{end}} {{if $column.IsCascadeParent}}@change="form{{$column.ColumnName | CaseCamel}}Changed"{{end}} {{if eq $column.HtmlType "selects"}}multiple{{end}}>
|
||||
<el-option
|
||||
{{if $column.IsCascade}}
|
||||
v-for="item in {{$column.HtmlField}}FormOptions"
|
||||
@ -70,8 +70,39 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
{{end}}
|
||||
{{else if eq $column.HtmlType "treeSelect" "treeSelects"}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{$tLabel:=""}}
|
||||
{{$tValue:=""}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{$tLabel = $lc.OptionsStruct.TreeName}}
|
||||
{{$tValue = $lc.OptionsStruct.TreeCode}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<el-cascader
|
||||
v-model="formData.{{$column.HtmlField}}"
|
||||
placeholder="请选择"
|
||||
:options="{{$column.HtmlField}}Options"
|
||||
filterable
|
||||
clearable
|
||||
:props="{ label: '{{$tLabel}}',value: '{{$tValue}}',checkStrictly: true,emitPath: false {{if eq $column.HtmlType "treeSelects"}},multiple: true{{end}} }"
|
||||
/>
|
||||
</el-form-item>
|
||||
{{end}}
|
||||
{{else if eq $column.HtmlType "radio" }} {{/* else if eq $column.HtmlType "select" */}}
|
||||
{{if ne $column.DictType ""}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-radio-group v-model="formData.{{$column.HtmlField}}">
|
||||
<el-radio
|
||||
v-for="dict in {{$column.HtmlField}}Options"
|
||||
:key="dict.key"
|
||||
:label="dict.key"
|
||||
>{{ VueTag "{{" }}dict.value {{VueTag "}}"}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
{{else if ne $column.DictType ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-radio-group v-model="formData.{{$column.HtmlField}}">
|
||||
<el-radio
|
||||
@ -109,7 +140,18 @@
|
||||
<el-input v-model="formData.{{$column.HtmlField}}" type="textarea" placeholder="请输入{{$column.ColumnComment}}" />
|
||||
</el-form-item>
|
||||
{{else if eq $column.HtmlType "checkbox" }}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-checkbox-group v-model="formData.{{$column.HtmlField}}">
|
||||
<el-checkbox
|
||||
v-for="dict in {{$column.HtmlField}}Options"
|
||||
:key="dict.key"
|
||||
:label="dict.key"
|
||||
>{{ VueTag "{{" }}dict.value {{VueTag "}}"}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
{{else if ne $column.DictType ""}}
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-checkbox-group v-model="formData.{{$column.HtmlField}}">
|
||||
<el-checkbox
|
||||
v-for="dict in {{$column.HtmlField}}Options"
|
||||
@ -117,7 +159,8 @@
|
||||
:label="dict.value"
|
||||
>{{ VueTag "{{" }}dict.label {{VueTag "}}"}}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
{{end}}
|
||||
{{else if eq $column.HtmlType "richtext"}}
|
||||
<el-form-item label="{{$column.ColumnComment}}">
|
||||
<gf-ueditor editorId="ue{{$.table.ClassName}}{{$column.GoField}}" v-model="formData.{{$column.HtmlField}}" @setEditContent="set{{$column.GoField}}EditContent"></gf-ueditor>
|
||||
@ -231,10 +274,7 @@ import {
|
||||
{{.table.ClassName}}TableColumns,
|
||||
{{.table.ClassName}}InfoData,
|
||||
{{.table.ClassName}}TableDataState,
|
||||
{{.table.ClassName}}EditState,
|
||||
{{range $ti, $linkedTable := .table.LinkedTables}}
|
||||
Linked{{$.table.ClassName}}{{$linkedTable.ClassName}},
|
||||
{{end}}
|
||||
{{.table.ClassName}}EditState
|
||||
} from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/model"
|
||||
export default defineComponent({
|
||||
name:"{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit",
|
||||
@ -297,7 +337,7 @@ export default defineComponent({
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if eq $column.HtmlType "radio"}}
|
||||
{{$column.HtmlField}}: false ,
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox"}}
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}}: [] ,
|
||||
{{else}}
|
||||
{{$column.HtmlField}}: undefined,
|
||||
@ -326,16 +366,23 @@ export default defineComponent({
|
||||
const openDialog = (row?: {{.table.ClassName}}InfoData) => {
|
||||
resetForm();
|
||||
if(row) {
|
||||
{{range $index,$column := .table.EditColumns}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
get{{$column.LinkTableClass}}Items{{$column.GoField}}()
|
||||
{{end}}
|
||||
{{end}}
|
||||
get{{.table.ClassName}}(row.{{.table.PkColumn.HtmlField}}!).then((res:any)=>{
|
||||
const data = res.data;
|
||||
{{range $index, $column := .table.EditColumns}}
|
||||
{{if eq $column.HtmlType "checkbox"}}
|
||||
{{if eq $column.HtmlType "checkbox" "selects"}}
|
||||
data.{{$column.HtmlField}} = data.{{$column.HtmlField}}.split(",")
|
||||
{{else if eq $column.HtmlType "treeSelects"}}
|
||||
{{$isNumber := false}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if and (eq $lc.TableName $column.LinkTableName) (ne $lc.OptionsStruct.ColumnAttr.GoType "string")}}
|
||||
{{$isNumber = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if $isNumber}}
|
||||
data.{{$column.HtmlField}} = data.{{$column.HtmlField}}.split(",").map((item:any)=>{return parseInt(item)})
|
||||
{{else}}
|
||||
data.{{$column.HtmlField}} = data.{{$column.HtmlField}}.split(",")
|
||||
{{end}}
|
||||
{{else if and (eq $column.HtmlType "radio" "select") (ne $column.DictType "")}}
|
||||
data.{{$column.HtmlField}} = ''+data.{{$column.HtmlField}}
|
||||
{{else if eq $column.HtmlType "imagefile"}}
|
||||
@ -392,7 +439,7 @@ export default defineComponent({
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if eq $column.HtmlType "radio"}}
|
||||
{{$column.HtmlField}}: false ,
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox"}}
|
||||
{{else if eq $column.HtmlType "images" "file" "files" "checkbox" "selects" "treeSelects"}}
|
||||
{{$column.HtmlField}}: [] ,
|
||||
{{else}}
|
||||
{{$column.HtmlField}}: undefined,
|
||||
@ -409,12 +456,7 @@ export default defineComponent({
|
||||
};
|
||||
{{$setUpData:=true}}
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
//关联{{$column.LinkTableName}}表选项
|
||||
const get{{$column.LinkTableClass}}Items{{$column.GoField}} = () => {
|
||||
emit("get{{$column.LinkTableClass}}Items{{$column.GoField}}")
|
||||
}
|
||||
{{else if eq $column.HtmlType "richtext"}}
|
||||
{{if eq $column.HtmlType "richtext"}}
|
||||
//富文本编辑器{{$column.ColumnComment}}
|
||||
const set{{$column.GoField}}EditContent = (data:string) => {
|
||||
state.formData.{{$column.HtmlField}} = data
|
||||
@ -460,14 +502,7 @@ export default defineComponent({
|
||||
menuRef,
|
||||
formRef,
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{if $column.IsCascade}}
|
||||
{{/*级联处理*/}}
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
get{{$column.LinkTableClass}}Items{{$column.GoField}},
|
||||
{{end}}
|
||||
{{else if eq $column.HtmlType "richtext"}}
|
||||
{{if eq $column.HtmlType "richtext"}}
|
||||
//富文本编辑器{{$column.ColumnComment}}
|
||||
set{{$column.GoField}}EditContent,
|
||||
{{else if eq $column.HtmlType "imagefile"}}
|
||||
|
@ -48,7 +48,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.DictType "") }}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.DictType "") }}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable >
|
||||
@ -62,6 +62,28 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "treeSelect" "treeSelects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{$tLabel:=""}}
|
||||
{{$tValue:=""}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{$tLabel = $lc.OptionsStruct.TreeName}}
|
||||
{{$tValue = $lc.OptionsStruct.TreeCode}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<el-cascader
|
||||
v-model="tableData.param.{{$column.HtmlField}}"
|
||||
placeholder="请选择"
|
||||
:options="{{$column.HtmlField}}Options"
|
||||
filterable
|
||||
clearable
|
||||
:props="{ label: '{{$tLabel}}',value: '{{$tValue}}',checkStrictly: true,emitPath: false }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if eq $column.HtmlType "date"}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
@ -103,10 +125,10 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.LinkTableName "")}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable {{if $column.IsCascadeParent}}@change="query{{$column.ColumnName | CaseCamel}}Changed"{{end}} {{if not $column.IsCascade}}@click.native="get{{$column.LinkTableClass}}{{if $column.IsCascade}}Query{{end}}Items{{$column.GoField}}"{{end}}>
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable {{if $column.IsCascadeParent}}@change="query{{$column.ColumnName | CaseCamel}}Changed"{{end}}>
|
||||
<el-option
|
||||
{{if $column.IsCascade}}
|
||||
v-for="item in {{$column.HtmlField}}QueryOptions"
|
||||
@ -120,7 +142,29 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "treeSelect" "treeSelects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{$tLabel:=""}}
|
||||
{{$tValue:=""}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{$tLabel = $lc.OptionsStruct.TreeName}}
|
||||
{{$tValue = $lc.OptionsStruct.TreeCode}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<el-cascader
|
||||
v-model="tableData.param.{{$column.HtmlField}}"
|
||||
placeholder="请选择"
|
||||
:options="{{$column.HtmlField}}Options"
|
||||
filterable
|
||||
clearable
|
||||
:props="{ label: '{{$tLabel}}',value: '{{$tValue}}',checkStrictly: true,emitPath: false }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
@ -231,6 +275,22 @@
|
||||
fit="contain"></el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
{{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-table-column align="center" label="{{$column.ColumnComment}}" prop="linked{{$column.GoField}}"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
{{if $column.IsOverflowTooltip}}:show-overflow-tooltip="true"{{end}}
|
||||
{{if $column.IsFixed}}fixed="left"{{end}}>
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.linked{{$column.GoField}}" class="ml-2" type="success" v-for="(item,ik) in scope.row.linked{{$column.GoField}}" :key="ik">{{VueTag "{{"}}item.{{$column.LinkLabelName|CaseCamelLower}}{{VueTag "}}"}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
{{else if ne $column.DictType ""}}
|
||||
<el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" :formatter="{{$column.HtmlField}}Format"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
{{if $column.IsOverflowTooltip}}:show-overflow-tooltip="true"{{end}}
|
||||
{{if $column.IsFixed}}fixed="left"{{end}} />
|
||||
{{end}}
|
||||
{{else if $column.IsStatus}}
|
||||
<el-table-column label="{{$column.ColumnComment}}" align="center"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
@ -269,7 +329,7 @@
|
||||
type="primary"
|
||||
link
|
||||
@click="handleView(scope.row)"
|
||||
v-auth="'{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/view'"
|
||||
v-auth="'{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/get'"
|
||||
><el-icon><ele-View /></el-icon>详情</el-button>
|
||||
{{end}}
|
||||
<el-button
|
||||
@ -296,23 +356,6 @@
|
||||
@pagination="{{$businessName}}List"
|
||||
/>
|
||||
</el-card>
|
||||
<{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add
|
||||
ref="addRef"
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.DictType ""}}
|
||||
:{{$column.HtmlField}}Options="{{$column.DictType}}"
|
||||
{{else if ne $column.LinkTableName ""}}
|
||||
{{if $column.IsCascade}}
|
||||
{{/*级联处理*/}}
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@{{$businessName}}List="{{$businessName}}List"
|
||||
></{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add>
|
||||
<{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit
|
||||
ref="editRef"
|
||||
{{range $index, $column := .table.Columns}}
|
||||
@ -324,7 +367,6 @@
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -341,7 +383,6 @@
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -387,15 +428,9 @@ import {
|
||||
{{if and $column.IsStatus $column.IsList}}
|
||||
change{{$.table.ClassName}}{{$column.GoField}},
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{if not (inArray $hasImports (concat "list" $column.LinkTableClass))}}
|
||||
{{$hasImports = append $hasImports (concat "list" $column.LinkTableClass)}}
|
||||
list{{$column.LinkTableClass}},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if $getUserList}}
|
||||
getUserList,
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
linkedDataSearch
|
||||
{{end}}
|
||||
} from "/@/api/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}";
|
||||
import {
|
||||
@ -406,13 +441,11 @@ import {
|
||||
Linked{{$.table.ClassName}}{{$linkedTable.ClassName}},
|
||||
{{end}}
|
||||
} from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/model"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/add.vue"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/edit.vue"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Detail from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/detail.vue"
|
||||
export default defineComponent({
|
||||
name: "{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}List",
|
||||
components:{
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add,
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit,
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Detail
|
||||
},
|
||||
@ -420,7 +453,6 @@ export default defineComponent({
|
||||
const {proxy} = <any>getCurrentInstance()
|
||||
const loading = ref(false)
|
||||
const queryRef = ref()
|
||||
const addRef = ref();
|
||||
const editRef = ref();
|
||||
const detailRef = ref();
|
||||
// 是否显示所有搜索选项
|
||||
@ -491,8 +523,31 @@ export default defineComponent({
|
||||
});
|
||||
// 初始化表格数据
|
||||
const initTableData = () => {
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
linkedData()
|
||||
{{end}}
|
||||
{{$businessName}}List()
|
||||
};
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
const linkedData = ()=>{
|
||||
linkedDataSearch().then((res:any)=>{
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
//关联{{$column.LinkTableName}}表选项
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{if eq $lc.TplCategory "tree"}}
|
||||
{{$column.HtmlField}}Options.value = proxy.handleTree(res.data.linked{{$.table.ClassName}}{{$column.LinkTableClass}}, '{{$lc.OptionsStruct.TreeCode}}', '{{$lc.OptionsStruct.TreeParentCode}}')
|
||||
{{else}}
|
||||
{{$column.HtmlField}}Options.value = proxy.setItems(res, '{{$column.LinkLabelId | CaseCamelLower}}', '{{$column.LinkLabelName | CaseCamelLower}}','linked{{$.table.ClassName}}{{$column.LinkTableClass}}')
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
@ -504,58 +559,19 @@ export default defineComponent({
|
||||
loading.value = true
|
||||
list{{.table.ClassName}}(state.tableData.param).then((res:any)=>{
|
||||
let list = res.data.list??[];
|
||||
{{$hasCreatedBy := false}}
|
||||
{{$hasUpdatedBy := false}}
|
||||
{{range $index,$column := .table.ListColumns}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
{{$hasCreatedBy = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
{{$hasUpdatedBy = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
let listUid = [];
|
||||
{{end}}
|
||||
{{if and $hasCreatedBy $hasUpdatedBy}}
|
||||
{{if eq $column.HtmlField "createdBy" "updatedBy"}}
|
||||
list.map((item:any)=>{
|
||||
listUid.push(item.createdBy,item.updatedBy)
|
||||
});
|
||||
{{else if $hasCreatedBy}}
|
||||
listUid = list.map((item:any)=>{
|
||||
return item.createdBy
|
||||
});
|
||||
{{else if $hasUpdatedBy}}
|
||||
listUid = list.map((item:any)=>{
|
||||
return item.updatedBy
|
||||
});
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
item.createdBy = item?.createdUser.userNickname
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
item.updatedBy = item?.updatedUser.userNickname
|
||||
{{end}}
|
||||
})
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
if(listUid.length>0){
|
||||
getUserList(listUid).then((response:any) =>{
|
||||
let users = response.data.list||[]
|
||||
list.map((item:any)=>{
|
||||
users.forEach((user:any)=>{
|
||||
{{if $hasCreatedBy}}
|
||||
if(item.createdBy==user.id){
|
||||
item.createdBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
{{if $hasUpdatedBy}}
|
||||
if(item.updatedBy==user.id){
|
||||
item.updatedBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
})
|
||||
})
|
||||
state.tableData.data = list;
|
||||
})
|
||||
}else{
|
||||
state.tableData.data = list;
|
||||
}
|
||||
{{else}}
|
||||
state.tableData.data = list;
|
||||
{{end}}
|
||||
state.tableData.total = res.data.total;
|
||||
loading.value = false
|
||||
})
|
||||
@ -582,17 +598,6 @@ export default defineComponent({
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
//关联{{$column.LinkTableName}}表选项
|
||||
const get{{$column.LinkTableClass}}Items{{$column.GoField}} = () => {
|
||||
if ({{$column.HtmlField}}Options.value && {{$column.HtmlField}}Options.value.length > 0) {
|
||||
return
|
||||
}
|
||||
proxy.getItems(list{{$column.LinkTableClass}}, {pageSize:10000}).then((res:any) => {
|
||||
{{$column.HtmlField}}Options.value = proxy.setItems(res, '{{$column.LinkLabelId | CaseCamelLower}}', '{{$column.LinkLabelName | CaseCamelLower}}')
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
// 多选框选中数据
|
||||
const handleSelectionChange = (selection:Array<{{.table.ClassName}}InfoData>) => {
|
||||
@ -601,7 +606,7 @@ export default defineComponent({
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
const handleAdd = ()=>{
|
||||
addRef.value.openDialog()
|
||||
editRef.value.openDialog()
|
||||
}
|
||||
const handleUpdate = (row: {{$.table.ClassName}}TableColumns) => {
|
||||
if(!row){
|
||||
@ -642,7 +647,6 @@ export default defineComponent({
|
||||
}
|
||||
return {
|
||||
proxy,
|
||||
addRef,
|
||||
editRef,
|
||||
detailRef,
|
||||
showAll,
|
||||
@ -665,8 +669,6 @@ export default defineComponent({
|
||||
{{else}}
|
||||
//关联表数据选项
|
||||
{{$column.HtmlField}}Options,
|
||||
//关联{{$column.LinkTableName}}表选项获取数据方法
|
||||
get{{$column.LinkTableClass}}Items{{$column.GoField}},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -689,4 +691,5 @@ export default defineComponent({
|
||||
.colNone {
|
||||
display: none;
|
||||
}
|
||||
.ml-2{margin: 3px;}
|
||||
</style>
|
@ -51,7 +51,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.DictType "") }}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.DictType "") }}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable >
|
||||
@ -64,7 +64,29 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "treeSelect" "treeSelects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{$tLabel:=""}}
|
||||
{{$tValue:=""}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{$tLabel = $lc.OptionsStruct.TreeName}}
|
||||
{{$tValue = $lc.OptionsStruct.TreeCode}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<el-cascader
|
||||
v-model="tableData.param.{{$column.HtmlField}}"
|
||||
placeholder="请选择"
|
||||
:options="{{$column.HtmlField}}Options"
|
||||
filterable
|
||||
clearable
|
||||
:props="{ label: '{{$tLabel}}',value: '{{$tValue}}',checkStrictly: true,emitPath: false }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if eq $column.HtmlType "date"}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
@ -106,10 +128,10 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox") (ne $column.LinkTableName "")}}
|
||||
{{else if and (eq $column.HtmlType "select" "radio" "checkbox" "selects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable {{if $column.IsCascadeParent}}@change="query{{$column.ColumnName | CaseCamel}}Changed"{{end}} {{if not $column.IsCascade}}@click.native="get{{$column.LinkTableClass}}{{if $column.IsCascade}}Query{{end}}Items{{$column.GoField}}"{{end}}>
|
||||
<el-select v-model="tableData.param.{{$column.HtmlField}}" placeholder="请选择{{$column.ColumnComment}}" clearable {{if $column.IsCascadeParent}}@change="query{{$column.ColumnName | CaseCamel}}Changed"{{end}}>
|
||||
<el-option
|
||||
{{if $column.IsCascade}}
|
||||
v-for="item in {{$column.HtmlField}}QueryOptions"
|
||||
@ -124,6 +146,28 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else if and (eq $column.HtmlType "treeSelect" "treeSelects") (ne $column.LinkTableName "")}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
{{$tLabel:=""}}
|
||||
{{$tValue:=""}}
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{$tLabel = $lc.OptionsStruct.TreeName}}
|
||||
{{$tValue = $lc.OptionsStruct.TreeCode}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
<el-cascader
|
||||
v-model="tableData.param.{{$column.HtmlField}}"
|
||||
placeholder="请选择"
|
||||
:options="{{$column.HtmlField}}Options"
|
||||
filterable
|
||||
clearable
|
||||
:props="{ label: '{{$tLabel}}',value: '{{$tValue}}',checkStrictly: true,emitPath: false }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
{{$colIndex = ($colIndex | plus 1)}}
|
||||
{{else}}
|
||||
<el-col :span="8" {{if lt $colIndex 2}}class="colBlock"{{else}}:class="showAll ? 'colBlock' : 'colNone'"{{end}}>
|
||||
<el-form-item label="{{$column.ColumnComment}}" prop="{{$column.HtmlField}}">
|
||||
@ -243,6 +287,22 @@
|
||||
fit="contain"></el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
{{else if eq $column.HtmlType "selects" "checkbox" "treeSelects"}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
<el-table-column align="center" label="{{$column.ColumnComment}}" prop="linked{{$column.GoField}}"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
{{if $column.IsOverflowTooltip}}:show-overflow-tooltip="true"{{end}}
|
||||
{{if $column.IsFixed}}fixed="left"{{end}}>
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.linked{{$column.GoField}}" class="ml-2" type="success" v-for="(item,ik) in scope.row.linked{{$column.GoField}}" :key="ik">{{VueTag "{{"}}item.{{$column.LinkLabelName|CaseCamelLower}}{{VueTag "}}"}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
{{else if ne $column.DictType ""}}
|
||||
<el-table-column label="{{$column.ColumnComment}}" align="center" prop="{{$column.HtmlField}}" :formatter="{{$column.HtmlField}}Format"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
{{if $column.IsOverflowTooltip}}:show-overflow-tooltip="true"{{end}}
|
||||
{{if $column.IsFixed}}fixed="left"{{end}} />
|
||||
{{end}}
|
||||
{{else if $column.IsStatus}}
|
||||
<el-table-column label="{{$column.ColumnComment}}" align="center"
|
||||
{{if gt $column.MinWidth 0}}min-width="{{$column.MinWidth}}px"{{end}}
|
||||
@ -281,7 +341,7 @@
|
||||
type="primary"
|
||||
link
|
||||
@click="handleView(scope.row)"
|
||||
v-auth="'{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/view'"
|
||||
v-auth="'{{.apiVersion}}/{{.table.ModuleName}}/{{$businessName}}/get'"
|
||||
><el-icon><ele-View /></el-icon>详情</el-button>
|
||||
{{end}}
|
||||
<el-button
|
||||
@ -300,24 +360,6 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add
|
||||
ref="addRef"
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.DictType ""}}
|
||||
:{{$column.HtmlField}}Options="{{$column.DictType}}"
|
||||
{{else if ne $column.LinkTableName ""}}
|
||||
{{if $column.IsCascade}}
|
||||
{{/*级联处理*/}}
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
:{{$businessName}}Options="tableData.data"
|
||||
@{{$businessName}}List="{{$businessName}}List"
|
||||
></{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add>
|
||||
<{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit
|
||||
ref="editRef"
|
||||
{{range $index, $column := .table.Columns}}
|
||||
@ -329,7 +371,6 @@
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -347,7 +388,6 @@
|
||||
{{else}}
|
||||
{{/*关联表处理*/}}
|
||||
:{{$column.HtmlField}}Options="{{$column.HtmlField}}Options"
|
||||
@get{{$column.LinkTableClass}}Items{{$column.GoField}}="get{{$column.LinkTableClass}}Items{{$column.GoField}}"
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
@ -394,15 +434,9 @@ import {
|
||||
{{if and $column.IsStatus $column.IsList}}
|
||||
change{{$.table.ClassName}}{{$column.GoField}},
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
{{if not (inArray $hasImports (concat "list" $column.LinkTableClass))}}
|
||||
{{$hasImports = append $hasImports (concat "list" $column.LinkTableClass)}}
|
||||
list{{$column.LinkTableClass}},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if $getUserList}}
|
||||
getUserList,
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
linkedDataSearch
|
||||
{{end}}
|
||||
} from "/@/api/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}";
|
||||
import {
|
||||
@ -413,14 +447,12 @@ import {
|
||||
Linked{{$.table.ClassName}}{{$linkedTable.ClassName}},
|
||||
{{end}}
|
||||
} from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/model"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/add.vue"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/edit.vue"
|
||||
import {{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Detail from "/@/views/{{$plugin}}{{.table.ModuleName}}/{{$businessName}}/list/component/detail.vue"
|
||||
import _ from 'lodash'
|
||||
export default defineComponent({
|
||||
name: "{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}List",
|
||||
components:{
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Add,
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Edit,
|
||||
{{$plugin}}{{if ne $plugin ""}}{{.apiVersion|replace "/" "_"|CaseCamel}}{{else}}{{.apiVersion|replace "/" "_"|CaseCamelLower}}{{end}}{{.table.ModuleName|CaseCamel}}{{.table.ClassName}}Detail
|
||||
},
|
||||
@ -428,7 +460,6 @@ export default defineComponent({
|
||||
const {proxy} = <any>getCurrentInstance()
|
||||
const loading = ref(false)
|
||||
const queryRef = ref()
|
||||
const addRef = ref();
|
||||
const editRef = ref();
|
||||
const detailRef = ref();
|
||||
// 是否显示所有搜索选项
|
||||
@ -500,8 +531,31 @@ export default defineComponent({
|
||||
});
|
||||
// 初始化表格数据
|
||||
const initTableData = () => {
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
linkedData()
|
||||
{{end}}
|
||||
{{$businessName}}List()
|
||||
};
|
||||
{{if gt (len .table.LinkedTables) 0}}
|
||||
const linkedData = ()=>{
|
||||
linkedDataSearch().then((res:any)=>{
|
||||
{{range $index, $column := .table.Columns}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
//关联{{$column.LinkTableName}}表选项
|
||||
{{range $li,$lc := $.table.LinkedTables}}
|
||||
{{if eq $lc.TableName $column.LinkTableName}}
|
||||
{{if eq $lc.TplCategory "tree"}}
|
||||
{{$column.HtmlField}}Options.value = proxy.handleTree(res.data.linked{{$.table.ClassName}}{{$column.LinkTableClass}}, '{{$lc.OptionsStruct.TreeCode}}', '{{$lc.OptionsStruct.TreeParentCode}}')
|
||||
{{else}}
|
||||
{{$column.HtmlField}}Options.value = proxy.setItems(res, '{{$column.LinkLabelId | CaseCamelLower}}', '{{$column.LinkLabelName | CaseCamelLower}}','linked{{$.table.ClassName}}{{$column.LinkTableClass}}')
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return
|
||||
@ -513,64 +567,21 @@ export default defineComponent({
|
||||
loading.value = true
|
||||
list{{.table.ClassName}}(state.tableData.param).then((res:any)=>{
|
||||
let list = res.data.list??[];
|
||||
{{$hasCreatedBy := false}}
|
||||
{{$hasUpdatedBy := false}}
|
||||
{{range $index,$column := .table.ListColumns}}
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
{{$hasCreatedBy = true}}
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
{{$hasUpdatedBy = true}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
let listUid = [];
|
||||
{{end}}
|
||||
{{if and $hasCreatedBy $hasUpdatedBy}}
|
||||
{{if eq $column.HtmlField "createdBy" "updatedBy"}}
|
||||
list.map((item:any)=>{
|
||||
listUid.push(item.createdBy,item.updatedBy)
|
||||
});
|
||||
{{else if $hasCreatedBy}}
|
||||
listUid = list.map((item:any)=>{
|
||||
return item.createdBy
|
||||
});
|
||||
{{else if $hasUpdatedBy}}
|
||||
listUid = list.map((item:any)=>{
|
||||
return item.updatedBy
|
||||
});
|
||||
{{if eq $column.HtmlField "createdBy"}}
|
||||
item.createdBy = item?.createdUser.userNickname
|
||||
{{end}}
|
||||
{{if eq $column.HtmlField "updatedBy"}}
|
||||
item.updatedBy = item?.updatedUser.userNickname
|
||||
{{end}}
|
||||
})
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if or $hasCreatedBy $hasUpdatedBy}}
|
||||
if(listUid.length>0){
|
||||
getUserList(listUid).then((response:any) =>{
|
||||
let users = response.data.list||[]
|
||||
list.map((item:any)=>{
|
||||
users.forEach((user:any)=>{
|
||||
{{if $hasCreatedBy}}
|
||||
if(item.createdBy==user.id){
|
||||
item.createdBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
{{if $hasUpdatedBy}}
|
||||
if(item.updatedBy==user.id){
|
||||
item.updatedBy = user.userNickname
|
||||
}
|
||||
{{end}}
|
||||
})
|
||||
})
|
||||
dataList.value = _.clone(res.data.list)
|
||||
list = proxy.handleTree(res.data.list||[], "{{$treeCode}}", "{{$treeParentCode}}");
|
||||
state.tableData.data = list;
|
||||
})
|
||||
}else{
|
||||
dataList.value = _.clone(res.data.list)
|
||||
list = proxy.handleTree(res.data.list||[], "{{$treeCode}}", "{{$treeParentCode}}");
|
||||
state.tableData.data = list;
|
||||
}
|
||||
{{else}}
|
||||
dataList.value = _.clone(res.data.list)
|
||||
list = proxy.handleTree(res.data.list||[], "{{$treeCode}}", "{{$treeParentCode}}");
|
||||
state.tableData.data = list;
|
||||
{{end}}
|
||||
loading.value = false
|
||||
})
|
||||
};
|
||||
@ -596,17 +607,6 @@ export default defineComponent({
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{if ne $column.LinkTableName ""}}
|
||||
//关联{{$column.LinkTableName}}表选项
|
||||
const get{{$column.LinkTableClass}}Items{{$column.GoField}} = () => {
|
||||
if ({{$column.HtmlField}}Options.value && {{$column.HtmlField}}Options.value.length > 0) {
|
||||
return
|
||||
}
|
||||
proxy.getItems(list{{$column.LinkTableClass}}, {pageSize:10000}).then((res:any) => {
|
||||
{{$column.HtmlField}}Options.value = proxy.setItems(res, '{{$column.LinkLabelId | CaseCamelLower}}', '{{$column.LinkLabelName | CaseCamelLower}}')
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
// 多选框选中数据
|
||||
const handleSelectionChange = (selection:Array<{{.table.ClassName}}InfoData>) => {
|
||||
@ -615,7 +615,7 @@ export default defineComponent({
|
||||
multiple.value = !selection.length
|
||||
}
|
||||
const handleAdd = ()=>{
|
||||
addRef.value.openDialog()
|
||||
editRef.value.openDialog()
|
||||
}
|
||||
const handleUpdate = (row: {{$.table.ClassName}}TableColumns) => {
|
||||
if(!row){
|
||||
@ -656,7 +656,6 @@ export default defineComponent({
|
||||
}
|
||||
return {
|
||||
proxy,
|
||||
addRef,
|
||||
editRef,
|
||||
detailRef,
|
||||
showAll,
|
||||
@ -680,7 +679,6 @@ export default defineComponent({
|
||||
//关联表数据选项
|
||||
{{$column.HtmlField}}Options,
|
||||
//关联{{$column.LinkTableName}}表选项获取数据方法
|
||||
get{{$column.LinkTableClass}}Items{{$column.GoField}},
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user