Просмотр исходного кода

修改代码生成模板

解决vue标签冲突问题
修复代码生成的BUG: 输入参数解析出错时的处理,主键字段类型不同(int,int64,uint,uint64)的处理
OdinXu 5 лет назад
Родитель
Сommit
f9b03418be

+ 1 - 1
app/controller/admin/gen_table.go

@@ -303,7 +303,7 @@ func (c *Gen) genData(tableId int64) (data g.MapStrStr, entity *gen_table.Entity
 	})
 	view.SetConfigWithMap(g.Map{
 		"Paths":      []string{"template"},
-		"Delimiters": []string{"{{", "}}"},
+		"Delimiters": []string{"${", "}"},
 	})
 	//树形菜单选项
 	var options g.Map

+ 49 - 30
template/vm/go/crud/controller.template

@@ -1,31 +1,37 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
-package {{.table.ModuleName}}
+package ${.table.ModuleName}
 
 import (
+	${.table.BusinessName}Model "${.table.PackageName}/app/model/${.table.ModuleName}/${.table.BusinessName}"
+	${.table.BusinessName}Service "${.table.PackageName}/app/service/${.table.ModuleName}/${.table.BusinessName}_service"
+	"${.table.PackageName}/library/response"
+
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/net/ghttp"
-	{{.table.BusinessName}}Model "{{.table.PackageName}}/app/model/{{.table.ModuleName}}/{{.table.BusinessName}}"
-	{{.table.BusinessName}}Service "{{.table.PackageName}}/app/service/{{.table.ModuleName}}/{{.table.BusinessName}}_service"
-	"{{.table.PackageName}}/library/response"
+	"github.com/gogf/gf/util/gvalid"
 )
 
 //控制器
-type {{.table.BusinessName|UcFirst}} struct{}
+type ${.table.BusinessName|UcFirst} struct{}
 
 
-//列表页
-func (c *{{.table.BusinessName|UcFirst}}) List(r *ghttp.Request) {
+// List 列表页
+func (c *${.table.BusinessName|UcFirst}) List(r *ghttp.Request) {
 	// 定义一个结构体存储请求参数
-	var req *{{.table.BusinessName}}Model.SelectPageReq
+	var req *${.table.BusinessName}Model.SelectPageReq
 	// 获取参数
 	err := r.Parse(&req)
 	if err != nil {
-		response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		if _,ok := err.(*gvalid.Error); ok {
+			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		} else {
+			response.FailJson(true, r, err.Error())
+		}
 	}
-	total, page, list, err := {{.table.BusinessName}}Service.SelectListByPage(req)
+	total, page, list, err := ${.table.BusinessName}Service.SelectListByPage(req)
 	if err != nil {
 		response.FailJson(true, r, err.Error())
 	}
@@ -38,17 +44,21 @@ func (c *{{.table.BusinessName|UcFirst}}) List(r *ghttp.Request) {
 }
 
 
-// 新增
-func (c *{{.table.BusinessName|UcFirst}}) Add(r *ghttp.Request) {
+// Add 新增
+func (c *${.table.BusinessName|UcFirst}) Add(r *ghttp.Request) {
 	if r.Method == "POST" {
-		var req *{{.table.BusinessName}}Model.AddReq
+		var req *${.table.BusinessName}Model.AddReq
 		// 通过Parse方法解析获取参数
 		err := r.Parse(&req)
 		if err != nil {
-			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			if _,ok := err.(*gvalid.Error); ok {
+				response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			} else {
+				response.FailJson(true, r, err.Error())
+			}
 		}
 		// 调用service中的添加函数添加
-		err = {{.table.BusinessName}}Service.AddSave(req)
+		err = ${.table.BusinessName}Service.AddSave(req)
 		if err != nil {
 			response.FailJson(true, r, err.Error())
 		}
@@ -57,25 +67,30 @@ func (c *{{.table.BusinessName|UcFirst}}) Add(r *ghttp.Request) {
 }
 
 
-// 修改
-func (c *{{.table.BusinessName|UcFirst}}) Edit(r *ghttp.Request) {
+// Edit 修改
+func (c *${.table.BusinessName|UcFirst}) Edit(r *ghttp.Request) {
 	// 如果是post提交的请求就执行修改操作
 	if r.Method == "POST" {
-		var editReq *{{.table.BusinessName}}Model.EditReq
+		var editReq *${.table.BusinessName}Model.EditReq
 		// 通过Parse方法解析获取参数
 		err := r.Parse(&editReq)
 		if err != nil {
-			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			if _,ok := err.(*gvalid.Error); ok {
+				response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			} else {
+				response.FailJson(true, r, err.Error())
+			}
 		}
-		err = {{.table.BusinessName}}Service.EditSave(editReq)
+		err = ${.table.BusinessName}Service.EditSave(editReq)
 		if err != nil {
 		response.FailJson(true, r, err.Error())
 		}
 		response.SusJson(true, r, "修改参数成功")
 	}
 	// 不是post提交的请求就到修改页面后查询出要修改的记录
-	id := r.GetInt("id")
-	params, err := {{.table.BusinessName}}Service.GetByID(int64(id))
+	id := r.Get${.table.PkColumn.GoType|UcFirst}("id")
+	params, err := ${.table.BusinessName}Service.GetByID(id)
+
 	if err != nil {
 		response.FailJson(true, r, err.Error())
 	}
@@ -83,16 +98,20 @@ func (c *{{.table.BusinessName|UcFirst}}) Edit(r *ghttp.Request) {
 }
 
 
-// 删除
-func (c *{{.table.BusinessName|UcFirst}}) Delete(r *ghttp.Request) {
-	var req *{{.table.BusinessName}}Model.RemoveReq
+// Delete 删除
+func (c *${.table.BusinessName|UcFirst}) Delete(r *ghttp.Request) {
+	var req *${.table.BusinessName}Model.RemoveReq
 	//获取参数
 	if err := r.Parse(&req); err != nil {
-		response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		if _,ok := err.(*gvalid.Error); ok {
+			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		} else {
+			response.FailJson(true, r, err.Error())
+		}
 	}
-	err := {{.table.BusinessName}}Service.DeleteByIds(req.Ids)
+	err := ${.table.BusinessName}Service.DeleteByIds(req.Ids)
 	if err != nil {
 	response.FailJson(true, r, "删除失败")
 	}
 	response.SusJson(true, r, "删除成功")
-}
+}

+ 50 - 49
template/vm/go/crud/model.template

@@ -1,42 +1,43 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
 
-package {{.table.BusinessName}}
+package ${.table.BusinessName}
 
 import (
 	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/frame/g"
+	"github.com/gogf/gf/os/gtime"
 )
 
-{{$pk:=""}}
-{{$pkGoField:=""}}
-{{range $index, $column := .table.Columns}} {{if eq $column.IsPk "1"}}
-    {{$pk = $column.ColumnName}}
-    {{$pkGoField = $column.GoField}}
-{{end}}{{end}}
+${$pk:=""}
+${$pkGoField:=""}
+${range $index, $column := .table.Columns} ${if eq $column.IsPk "1"}
+    ${$pk = $column.ColumnName}
+    ${$pkGoField = $column.GoField}
+${end}${end}
 
 // AddReq 用于存储新增请求的请求参数
 type AddReq struct {
-	{{range $index, $column := .table.Columns}}
-	{{if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}} {{$column.GoField}}  {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}}   `p:"{{$column.HtmlField}}" {{if eq $column.IsRequired "1"}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}` {{end}} {{end}}
+	${range $index, $column := .table.Columns}
+	${if and (eq $column.IsInsert "1") (ne $column.IsPk "1")} ${$column.GoField}  ${if eq $column.GoType "Time"}*gtime.Time${else}${$column.GoType}${end}   `p:"${$column.HtmlField}" ${if eq $column.IsRequired "1"}v:"required#${$column.ColumnComment}不能为空"${end}` ${end} ${end}
 }
 
 // EditReq 用于存储修改请求参数
 type EditReq struct {
-	{{.table.PkColumn.GoField}}    {{.table.PkColumn.GoType}}  `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空"` {{range $index, $column := .table.Columns}} {{if eq $column.IsEdit "1"}}
-	{{$column.GoField}}  {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if eq $column.IsRequired "1"}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}` {{end}} {{end}}
+	${.table.PkColumn.GoField}    ${.table.PkColumn.GoType}  `p:"${.table.PkColumn.HtmlField}" v:"required#主键ID不能为空"` ${range $index, $column := .table.Columns} ${if eq $column.IsEdit "1"}
+	${$column.GoField}  ${if eq $column.GoType "Time"}*gtime.Time${else}${$column.GoType}${end} `p:"${$column.HtmlField}" ${if eq $column.IsRequired "1"}v:"required#${$column.ColumnComment}不能为空"${end}` ${end} ${end}
 }
 
 // RemoveReq 用于存储删除请求参数
 type RemoveReq struct {
-	Ids []int `p:"ids"` //删除id
+	Ids [] ${.table.PkColumn.GoType}  `p:"ids"` //删除id
 }
 
 // SelectPageReq 用于存储分页查询的请求参数
-type SelectPageReq struct { {{range $index, $column := .table.Columns}} {{if eq $column.IsQuery "1"}}
-	{{$column.GoField}}  {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}"` //{{$column.ColumnComment}} {{end}} {{end}}
+type SelectPageReq struct { ${range $index, $column := .table.Columns} ${if eq $column.IsQuery "1"}
+	${$column.GoField}  ${if eq $column.GoType "Time"}*gtime.Time${else}${$column.GoType}${end} `p:"${$column.HtmlField}"` //${$column.ColumnComment} ${end} ${end}
 	BeginTime  string `p:"beginTime"`  //开始时间
 	EndTime    string `p:"endTime"`    //结束时间
 	PageNum    int    `p:"pageNum"`    //当前页码
@@ -44,7 +45,7 @@ type SelectPageReq struct { {{range $index, $column := .table.Columns}} {{if eq
 }
 
 // GetByID 根据ID查询记录
-func GetByID(id int64) (*Entity, error) {
+func GetByID(id ${.table.PkColumn.GoType}) (*Entity, error) {
 	entity, err := Model.FindOne(id)
 	if err != nil {
 		g.Log().Error(err)
@@ -59,8 +60,8 @@ func GetByID(id int64) (*Entity, error) {
 // AddSave 添加
 func AddSave(req *AddReq) error {
 	entity:= new(Entity)
-	{{range $index, $column := .table.Columns}} {{if eq $column.IsInsert "1"}}
-	entity.{{$column.GoField}} = req.{{$column.GoField}}{{end}} {{end}}
+	${range $index, $column := .table.Columns} ${if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}
+	entity.${$column.GoField} = req.${$column.GoField}${end} ${end}
 
 	result, err := Model.Save(entity)
 	if err != nil {
@@ -74,8 +75,8 @@ func AddSave(req *AddReq) error {
 }
 
 // DeleteByIds 删除
-func DeleteByIds(Ids []int) error {
-	_, err := Model.Delete("{{.table.PkColumn.ColumnName}} in(?)", Ids)
+func DeleteByIds(Ids [] ${.table.PkColumn.GoType}) error {
+	_, err := Model.Delete("${.table.PkColumn.ColumnName} in(?)", Ids)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("删除失败")
@@ -86,14 +87,14 @@ func DeleteByIds(Ids []int) error {
 // EditSave 根据ID来修改信息
 func EditSave(req *EditReq) error {
 	// 先根据ID来查询要修改的记录
-	entity, err := GetByID(req.{{$pkGoField}})
+	entity, err := GetByID(req.${$pkGoField})
 	if err != nil {
 		return err
 	}
 
 	// 修改实体
-	{{range $index, $column := .table.Columns}} {{if eq $column.IsEdit "1"}}
-	entity.{{$column.GoField}} = req.{{$column.GoField}}{{end}} {{end}}
+	${range $index, $column := .table.Columns} ${if eq $column.IsEdit "1"}
+	entity.${$column.GoField} = req.${$column.GoField}${end} ${end}
 	_, err = Model.Save(entity)
 	if err != nil {
 		g.Log().Error(err)
@@ -103,21 +104,21 @@ func EditSave(req *EditReq) error {
 }
 
 // SelectListByPage 分页查询,返回值total总记录数,page当前页
-func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*Entity, err error) {
+func SelectListByPage(req *SelectPageReq) (total int, page int, list []*Entity, err error) {
 	model := Model
 	if req != nil {
-		{{range $index, $column := .table.Columns}} {{if eq $column.IsQuery "1"}}
-		{{if eq $column.QueryType "LIKE"}}
-			if req.{{$column.GoField}} != "" {
-				model = model.Where("{{$column.ColumnName}} like ?", "%"+req.{{$column.GoField}}+"%")
-			} {{else if eq $column.QueryType "EQ"}} {{if eq $column.GoType "string"}}
-			if req.{{$column.GoField}} != "" {
-				model = model.Where("{{$column.ColumnName}} = ?", req.{{$column.GoField}})
-			} {{else if eq $column.GoType "int" "int64"}}
-			if req.{{$column.GoField}} != 0 {
-				model = model.Where("{{$column.ColumnName}} = ?", req.{{$column.GoField}})
+		${range $index, $column := .table.Columns} ${if eq $column.IsQuery "1"}
+		${if eq $column.QueryType "LIKE"}
+			if req.${$column.GoField} != "" {
+				model = model.Where("${$column.ColumnName} like ?", "%"+req.${$column.GoField}+"%")
+			} ${else if eq $column.QueryType "EQ"} ${if eq $column.GoType "string"}
+			if req.${$column.GoField} != "" {
+				model = model.Where("${$column.ColumnName} = ?", req.${$column.GoField})
+			} ${else if eq $column.GoType "int" "int64"}
+			if req.${$column.GoField} != 0 {
+				model = model.Where("${$column.ColumnName} = ?", req.${$column.GoField})
 			}
-		{{end}} {{end}} {{end}} {{end}}
+		${end} ${end} ${end} ${end}
 	}
 	// 查询总记录数(总行数)
 	total, err = model.Count()
@@ -134,7 +135,7 @@ func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*Entity
 		req.PageSize = 10
 	}
 	// 分页排序查询
-	list, err = model.Page(int(page), int(req.PageSize)).Order("{{$pk}} asc").All()
+	list, err = model.Page(int(page), int(req.PageSize)).Order("${$pk} desc").All()
 	if err != nil {
 		g.Log().Error(err)
 		err = gerror.New("分页查询失败")
@@ -149,21 +150,21 @@ func SelectListByPage(req *SelectPageReq) (total int, page int64, list []*Entity
 func SelectListAll(req *SelectPageReq) (list []*Entity, err error) {
 	model := Model
 	if req != nil {
-	{{range $index, $column := .table.Columns}} {{if eq $column.IsQuery "1"}}
-		{{if eq $column.QueryType "LIKE"}}
-			if req.{{$column.GoField}} != "" {
-			model.Where("{{$column.ColumnName}} like ?", "%"+req.{{$column.GoField}}+"%")
-			} {{else if eq $column.QueryType "EQ"}} {{if eq $column.GoType "string"}}
-			if req.{{$column.GoField}} != "" {
-			model.Where("{{$column.ColumnName}} = ?", req.{{$column.GoField}})
-			} {{else if eq $column.GoType "int" "int64"}}
-			if req.{{$column.GoField}} != 0 {
-			model.Where("{{$column.ColumnName}} = ?", req.{{$column.GoField}})
+	${range $index, $column := .table.Columns} ${if eq $column.IsQuery "1"}
+		${if eq $column.QueryType "LIKE"}
+			if req.${$column.GoField} != "" {
+			model.Where("${$column.ColumnName} like ?", "%"+req.${$column.GoField}+"%")
+			} ${else if eq $column.QueryType "EQ"} ${if eq $column.GoType "string"}
+			if req.${$column.GoField} != "" {
+			model.Where("${$column.ColumnName} = ?", req.${$column.GoField})
+			} ${else if eq $column.GoType "int" "int64"}
+			if req.${$column.GoField} != 0 {
+			model.Where("${$column.ColumnName} = ?", req.${$column.GoField})
 			}
-		{{end}} {{end}} {{end}} {{end}}
+		${end} ${end} ${end} ${end}
 	}
 	// 查询
-	list, err = model.Order("{{$pk}} asc").All()
+	list, err = model.Order("${$pk} desc").All()
 	if err != nil {
 		g.Log().Error(err)
 		err = gerror.New("查询失败")

+ 19 - 19
template/vm/go/crud/service.template

@@ -1,35 +1,35 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
-package {{.table.BusinessName}}_service
+package ${.table.BusinessName}_service
 
 import (
-	{{.table.BusinessName}}Model "{{.table.PackageName}}/app/model/{{.table.ModuleName}}/{{.table.BusinessName}}"
+	${.table.BusinessName}Model "${.table.PackageName}/app/model/${.table.ModuleName}/${.table.BusinessName}"
 )
 
 
-// 添加
-func AddSave(req *{{.table.BusinessName}}Model.AddReq) error {
-	return {{.table.BusinessName}}Model.AddSave(req)
+// AddSave 添加
+func AddSave(req *${.table.BusinessName}Model.AddReq) error {
+	return ${.table.BusinessName}Model.AddSave(req)
 }
 
-// 删除
-func DeleteByIds(Ids []int) error {
-	return {{.table.BusinessName}}Model.DeleteByIds(Ids)
+// DeleteByIds 删除
+func DeleteByIds(Ids [] ${.table.PkColumn.GoType}) error {
+	return ${.table.BusinessName}Model.DeleteByIds(Ids)
 }
 
-//修改
-func EditSave(editReq *{{.table.BusinessName}}Model.EditReq) error {
-	return {{.table.BusinessName}}Model.EditSave(editReq)
+// EditSave 修改
+func EditSave(editReq *${.table.BusinessName}Model.EditReq) error {
+	return ${.table.BusinessName}Model.EditSave(editReq)
 }
 
-// 根据ID查询
-func GetByID(id int64) (*{{.table.BusinessName}}Model.Entity, error) {
-	return {{.table.BusinessName}}Model.GetByID(id)
+// GetByID 根据ID查询
+func GetByID(id ${.table.PkColumn.GoType}) (*${.table.BusinessName}Model.Entity, error) {
+	return ${.table.BusinessName}Model.GetByID(id)
 }
 
-// 分页查询
-func SelectListByPage(req *{{.table.BusinessName}}Model.SelectPageReq) (total int, page int64, list []*{{.table.BusinessName}}Model.Entity, err error) {
-	return {{.table.BusinessName}}Model.SelectListByPage(req)
+// SelectListByPage 分页查询
+func SelectListByPage(req *${.table.BusinessName}Model.SelectPageReq) (total int, page int, list []*${.table.BusinessName}Model.Entity, err error) {
+	return ${.table.BusinessName}Model.SelectListByPage(req)
 }

+ 51 - 35
template/vm/go/tree/controller.template

@@ -1,33 +1,37 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
-package {{.table.ModuleName}}
+package ${.table.ModuleName}
 
 import (
-    "{{.table.PackageName}}/app/service/cache_service"
+    "${.table.PackageName}/app/service/cache_service"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/net/ghttp"
-	{{.table.BusinessName}}Model "{{.table.PackageName}}/app/model/{{.table.ModuleName}}/{{.table.BusinessName}}"
-	{{.table.BusinessName}}Service "{{.table.PackageName}}/app/service/{{.table.ModuleName}}/{{.table.BusinessName}}_service"
-	"{{.table.PackageName}}/library/response"
+	${.table.BusinessName}Model "${.table.PackageName}/app/model/${.table.ModuleName}/${.table.BusinessName}"
+	${.table.BusinessName}Service "${.table.PackageName}/app/service/${.table.ModuleName}/${.table.BusinessName}_service"
+	"${.table.PackageName}/library/response"
     "github.com/gogf/gf/util/gvalid"
 )
 
 //控制器
-type {{.table.BusinessName|UcFirst}} struct{}
+type ${.table.BusinessName|UcFirst} struct{}
 
 
-//列表页
-func (c *{{.table.BusinessName|UcFirst}}) List(r *ghttp.Request) {
+// List 列表页
+func (c *${.table.BusinessName|UcFirst}) List(r *ghttp.Request) {
 	// 定义一个结构体存储请求参数
-	var req *{{.table.BusinessName}}Model.ReqSearchList
+	var req *${.table.BusinessName}Model.ReqSearchList
 	// 获取参数
 	err := r.Parse(&req)
 	if err != nil {
-		response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		if _,ok := err.(*gvalid.Error); ok {
+			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		} else {
+			response.FailJson(true, r, err.Error())
+		}
 	}
-	list, err := {{.table.BusinessName}}Service.GetListSearch(req)
+	list, err := ${.table.BusinessName}Service.GetListSearch(req)
 	if err != nil {
 		response.FailJson(true, r, err.Error())
 	}
@@ -38,25 +42,29 @@ func (c *{{.table.BusinessName|UcFirst}}) List(r *ghttp.Request) {
 }
 
 
-// 新增
-func (c *{{.table.BusinessName|UcFirst}}) Add(r *ghttp.Request) {
+// Add 新增
+func (c *${.table.BusinessName|UcFirst}) Add(r *ghttp.Request) {
 	if r.Method == "POST" {
-		var req *{{.table.BusinessName}}Model.ReqAdd
+		var req *${.table.BusinessName}Model.ReqAdd
 		// 通过Parse方法解析获取参数
 		err := r.Parse(&req)
 		if err != nil {
-			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			if _,ok := err.(*gvalid.Error); ok {
+				response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			} else {
+				response.FailJson(true, r, err.Error())
+			}
 		}
 		// 调用service中的添加函数添加
-		err = {{.table.BusinessName}}Service.AddSave(req)
+		err = ${.table.BusinessName}Service.AddSave(req)
 		if err != nil {
 			response.FailJson(true, r, err.Error())
 		}
-		cache_service.New().RemoveByTag("{{.table.ModuleName}}_{{.table.BusinessName}}_tag")
+		cache_service.New().RemoveByTag("${.table.ModuleName}_${.table.BusinessName}_tag")
 		response.SusJson(true, r, "添加成功")
 	}
 	//获取上级分类
-    cates, err := {{.table.BusinessName}}Service.GetList()
+    cates, err := ${.table.BusinessName}Service.GetList()
     if err != nil {
         response.FailJson(true, r, err.Error())
     }
@@ -66,32 +74,36 @@ func (c *{{.table.BusinessName|UcFirst}}) Add(r *ghttp.Request) {
 }
 
 
-// 修改
-func (c *{{.table.BusinessName|UcFirst}}) Edit(r *ghttp.Request) {
+// Edit 修改
+func (c *${.table.BusinessName|UcFirst}) Edit(r *ghttp.Request) {
 	// 如果是post提交的请求就执行修改操作
 	if r.Method == "POST" {
-		var editReq *{{.table.BusinessName}}Model.ReqEdit
+		var editReq *${.table.BusinessName}Model.ReqEdit
 		// 通过Parse方法解析获取参数
 		err := r.Parse(&editReq)
 		if err != nil {
-			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			if _,ok := err.(*gvalid.Error); ok {
+				response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+			} else {
+				response.FailJson(true, r, err.Error())
+			}
 		}
-		err = {{.table.BusinessName}}Service.EditSave(editReq)
+		err = ${.table.BusinessName}Service.EditSave(editReq)
 		if err != nil {
 		    response.FailJson(true, r, err.Error())
 		}
-		cache_service.New().RemoveByTag("{{.table.ModuleName}}_{{.table.BusinessName}}_tag")
+		cache_service.New().RemoveByTag("${.table.ModuleName}_${.table.BusinessName}_tag")
 		response.SusJson(true, r, "修改成功")
 	}
 	// 不是post提交的请求就到修改页面后查询出要修改的记录
 	//获取上级
-    cates, err := {{.table.BusinessName}}Service.GetList()
+    cates, err := ${.table.BusinessName}Service.GetList()
     if err != nil {
         response.FailJson(true, r, err.Error())
     }
 	//获取信息
     id := r.GetUint("id")
-    menuInfo, err := {{.table.BusinessName}}Service.GetInfoById(id)
+    menuInfo, err := ${.table.BusinessName}Service.GetInfoById(id)
     if err != nil {
         response.FailJson(true, r, err.Error())
     }
@@ -105,17 +117,21 @@ func (c *{{.table.BusinessName|UcFirst}}) Edit(r *ghttp.Request) {
 }
 
 
-// 删除
-func (c *{{.table.BusinessName|UcFirst}}) Delete(r *ghttp.Request) {
-	var req *{{.table.BusinessName}}Model.RemoveReq
+// Delete 删除
+func (c *${.table.BusinessName|UcFirst}) Delete(r *ghttp.Request) {
+	var req *${.table.BusinessName}Model.RemoveReq
 	//获取参数
 	if err := r.Parse(&req); err != nil {
-		response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		if _,ok := err.(*gvalid.Error); ok {
+			response.FailJson(true, r, err.(*gvalid.Error).FirstString())
+		} else {
+			response.FailJson(true, r, err.Error())
+		}
 	}
-	err := {{.table.BusinessName}}Service.DeleteByIds(req.Ids)
+	err := ${.table.BusinessName}Service.DeleteByIds(req.Ids)
 	if err != nil {
 	    response.FailJson(true, r, "删除失败")
 	}
-	cache_service.New().RemoveByTag("{{.table.ModuleName}}_{{.table.BusinessName}}_tag")
+	cache_service.New().RemoveByTag("${.table.ModuleName}_${.table.BusinessName}_tag")
 	response.SusJson(true, r, "删除成功")
-}
+}

+ 33 - 33
template/vm/go/tree/model.template

@@ -1,35 +1,35 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
 
-package {{.table.BusinessName}}
+package ${.table.BusinessName}
 
 import (
-	"{{.table.PackageName}}/app/service/cache_service"
+	"${.table.PackageName}/app/service/cache_service"
     "github.com/gogf/gf/container/gset"
     "github.com/gogf/gf/errors/gerror"
     "github.com/gogf/gf/frame/g"
     "github.com/gogf/gf/util/gconv"
 )
 
-{{$pk:=""}}
-{{$pkGoField:=""}}
-{{range $index, $column := .table.Columns}} {{if eq $column.IsPk "1"}}
-    {{$pk = $column.ColumnName}}
-    {{$pkGoField = $column.GoField}}
-{{end}}{{end}}
+${$pk:=""}
+${$pkGoField:=""}
+${range $index, $column := .table.Columns} ${if eq $column.IsPk "1"}
+    ${$pk = $column.ColumnName}
+    ${$pkGoField = $column.GoField}
+${end}${end}
 
 // ReqAdd 用于存储新增请求的请求参数
 type ReqAdd struct {
-	{{range $index, $column := .table.Columns}}
-	{{if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}} {{$column.GoField}} 	{{if eq $column.GoType "Time"}}	*gtime.Time	{{else}}	{{$column.GoType}} {{end}}	  `p:"{{$column.HtmlField}}"  {{if eq $column.IsRequired "1"}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}` {{end}} {{end}}
+	${range $index, $column := .table.Columns}
+	${if and (eq $column.IsInsert "1") (ne $column.IsPk "1")} ${$column.GoField} 	${if eq $column.GoType "Time"}	*gtime.Time	${else}	${$column.GoType} ${end}	  `p:"${$column.HtmlField}"  ${if eq $column.IsRequired "1"}v:"required#${$column.ColumnComment}不能为空"${end}` ${end} ${end}
 }
 
 // ReqEdit 用于存储修改请求参数
 type ReqEdit struct {
-	{{.table.PkColumn.GoField}}    {{.table.PkColumn.GoType}}  `p:"{{.table.PkColumn.HtmlField}}" v:"required#主键ID不能为空"` {{range $index, $column := .table.Columns}} {{if eq $column.IsEdit "1"}}
-	{{$column.GoField}}  {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}" {{if eq $column.IsRequired "1"}}v:"required#{{$column.ColumnComment}}不能为空"{{end}}` {{end}} {{end}}
+	${.table.PkColumn.GoField}    ${.table.PkColumn.GoType}  `p:"${.table.PkColumn.HtmlField}" v:"required#主键ID不能为空"` ${range $index, $column := .table.Columns} ${if eq $column.IsEdit "1"}
+	${$column.GoField}  ${if eq $column.GoType "Time"}*gtime.Time${else}${$column.GoType}${end} `p:"${$column.HtmlField}" ${if eq $column.IsRequired "1"}v:"required#${$column.ColumnComment}不能为空"${end}` ${end} ${end}
 }
 
 // RemoveReq 用于存储删除请求参数
@@ -38,8 +38,8 @@ type RemoveReq struct {
 }
 
 // ReqSearchList 用于存储查询的请求参数
-type ReqSearchList struct { {{range $index, $column := .table.Columns}} {{if eq $column.IsQuery "1"}}
-	{{$column.GoField}}  {{if eq $column.GoType "Time"}}*gtime.Time{{else}}{{$column.GoType}}{{end}} `p:"{{$column.HtmlField}}"` //{{$column.ColumnComment}} {{end}} {{end}}
+type ReqSearchList struct { ${range $index, $column := .table.Columns} ${if eq $column.IsQuery "1"}
+	${$column.GoField}  ${if eq $column.GoType "Time"}*gtime.Time${else}${$column.GoType}${end} `p:"${$column.HtmlField}"` //${$column.ColumnComment} ${end} ${end}
 }
 
 // GetByID 根据ID查询记录
@@ -58,11 +58,11 @@ func GetByID(id int64) (*Entity, error) {
 // AddSave 添加
 func AddSave(req *ReqAdd) error {
 	entity:= new(Entity)
-    {{range $index, $column := .table.Columns}}
-	    {{if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}}
-        entity.{{$column.GoField}} = req.{{$column.GoField}}
-        {{end}}
-    {{end}}
+    ${range $index, $column := .table.Columns}
+	    ${if and (eq $column.IsInsert "1") (ne $column.IsPk "1")}
+        entity.${$column.GoField} = req.${$column.GoField}
+        ${end}
+    ${end}
 
 	result, err := entity.Insert()
 	if err != nil {
@@ -77,7 +77,7 @@ func AddSave(req *ReqAdd) error {
 
 // DeleteByIds 删除
 func DeleteByIds(Ids []int) error {
-	_, err := Model.Delete("{{.table.PkColumn.ColumnName}} in(?)", Ids)
+	_, err := Model.Delete("${.table.PkColumn.ColumnName} in(?)", Ids)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("删除失败")
@@ -88,14 +88,14 @@ func DeleteByIds(Ids []int) error {
 // EditSave 根据ID来修改信息
 func EditSave(req *ReqEdit) error {
 	// 先根据ID来查询要修改的记录
-	entity, err := GetByID(req.{{$pkGoField}})
+	entity, err := GetByID(req.${$pkGoField})
 	if err != nil {
 		return err
 	}
 
 	// 修改实体
-	{{range $index, $column := .table.Columns}} {{if eq $column.IsEdit "1"}}
-	entity.{{$column.GoField}} = req.{{$column.GoField}}{{end}} {{end}}
+	${range $index, $column := .table.Columns} ${if eq $column.IsEdit "1"}
+	entity.${$column.GoField} = req.${$column.GoField}${end} ${end}
 	_, err = entity.Update()
 	if err != nil {
 		g.Log().Error(err)
@@ -111,15 +111,15 @@ func GetListSearch(req *ReqSearchList) (list []*Entity, err error) {
 	    filterKey := gset.New(false)
 	    tagWhere := true
         for key, entity := range list {
-	    {{range $index, $column := .table.Columns}}
-	        {{if eq $column.IsQuery "1" }}
-            if tagWhere && gconv.String(req.{{$column.GoField}}) != "" && entity.{{$column.GoField}}!= req.{{$column.GoField}} {
+	    ${range $index, $column := .table.Columns}
+	        ${if eq $column.IsQuery "1" }
+            if tagWhere && gconv.String(req.${$column.GoField}) != "" && entity.${$column.GoField}!= req.${$column.GoField} {
                 tagWhere = true
             }else{
                 tagWhere = false
             }
-            {{end}}
-        {{end}}
+            ${end}
+        ${end}
             if tagWhere{
                 filterKey.Add(key)
             }
@@ -139,18 +139,18 @@ func GetListSearch(req *ReqSearchList) (list []*Entity, err error) {
 func GetList() (list []*Entity, err error) {
 	cache := cache_service.New()
 	//从缓存获取数据
-	iList := cache.Get("{{.table.ModuleName}}_{{.table.BusinessName}}_{{.table.TableId}}")
+	iList := cache.Get("${.table.ModuleName}_${.table.BusinessName}_${.table.TableId}")
 	if iList != nil {
 		list = iList.([]*Entity)
 		return
 	}
-	list, err = Model.Order(Columns.{{$pkGoField}}+" ASC").All()
+	list, err = Model.Order(Columns.${$pkGoField}+" ASC").All()
 	if err != nil {
 		g.Log().Error()
 		err = gerror.New("获取数据失败")
 		return
 	}
 	//缓存数据
-	cache.Set("{{.table.ModuleName}}_{{.table.BusinessName}}_{{.table.TableId}}", list, 0, "{{.table.ModuleName}}_{{.table.BusinessName}}_tag")
+	cache.Set("${.table.ModuleName}_${.table.BusinessName}_${.table.TableId}", list, 0, "${.table.ModuleName}_${.table.BusinessName}_tag")
 	return
 }

+ 27 - 25
template/vm/go/tree/service.template

@@ -1,44 +1,46 @@
 // ==========================================================================
-// 生成日期:{{.table.CreateTime}}
-// 生成人:{{.table.FunctionAuthor}}
+// 生成日期:${.table.CreateTime}
+// 生成人:${.table.FunctionAuthor}
 // ==========================================================================
-package {{.table.BusinessName}}_service
+package ${.table.BusinessName}_service
 
 import (
-	{{.table.BusinessName}}Model "{{.table.PackageName}}/app/model/{{.table.ModuleName}}/{{.table.BusinessName}}"
+	${.table.BusinessName}Model "${.table.PackageName}/app/model/${.table.ModuleName}/${.table.BusinessName}"
 )
 
 
-// 添加
-func AddSave(req *{{.table.BusinessName}}Model.ReqAdd) error {
-	return {{.table.BusinessName}}Model.AddSave(req)
+// AddSave 添加
+func AddSave(req *${.table.BusinessName}Model.ReqAdd) error {
+	return ${.table.BusinessName}Model.AddSave(req)
 }
 
-// 删除
+// DeleteByIds 删除
 func DeleteByIds(ids []int) (err error) {
     ids, err = GetChildrenIds(ids)
     	if err != nil {
     		return
     	}
-	return {{.table.BusinessName}}Model.DeleteByIds(ids)
+	return ${.table.BusinessName}Model.DeleteByIds(ids)
 }
 
-//修改
-func EditSave(ReqEdit *{{.table.BusinessName}}Model.ReqEdit) error {
-	return {{.table.BusinessName}}Model.EditSave(ReqEdit)
+// EditSave 修改
+func EditSave(ReqEdit *${.table.BusinessName}Model.ReqEdit) error {
+	return ${.table.BusinessName}Model.EditSave(ReqEdit)
 }
 
-// 根据ID查询
-func GetInfoById(id int64) (*{{.table.BusinessName}}Model.Entity, error) {
-	return {{.table.BusinessName}}Model.GetByID(id)
+// GetInfoById 根据ID查询
+func GetInfoById(id int64) (*${.table.BusinessName}Model.Entity, error) {
+	return ${.table.BusinessName}Model.GetByID(id)
 }
 
-// 列表查询
-func GetListSearch(req *{{.table.BusinessName}}Model.ReqSearchList) (list []*{{.table.BusinessName}}Model.Entity, err error) {
-	return {{.table.BusinessName}}Model.GetListSearch(req)
+// GetListSearch 列表查询
+func GetListSearch(req *${.table.BusinessName}Model.ReqSearchList) (list []*${.table.BusinessName}Model.Entity, err error) {
+	return ${.table.BusinessName}Model.GetListSearch(req)
 }
 
-//通过ID获取子级ID
+
+
+// GetChildrenIds 通过ID获取子级ID
 func GetChildrenIds(ids []int) ([]int, error) {
 	//获取所有
 	menus, err := GetList()
@@ -50,15 +52,15 @@ func GetChildrenIds(ids []int) ([]int, error) {
 		menuList[k] = gconv.Map(menu)
 	}
 	for _, id := range ids {
-		children := utils.FindSonByParentId(menuList, id, "{{index .options "tree_code"}}", "{{index .options "tree_parent_code"}}")
+		children := utils.FindSonByParentId(menuList, id, "${index .options "tree_code"}", "${index .options "tree_parent_code"}")
 		for _, cid := range children {
-			ids = append(ids, gconv.Int(cid["{{index .options "tree_code"}}"]))
+			ids = append(ids, gconv.Int(cid["${index .options "tree_code"}"]))
 		}
 	}
 	return ids, nil
 }
 
-//获取所有数据列表
-func GetList() (list []*{{.table.BusinessName}}Model.Entity, err error) {
-	return {{.table.BusinessName}}Model.GetList()
-}
+// GetList 获取所有数据列表
+func GetList() (list []*${.table.BusinessName}Model.Entity, err error) {
+	return ${.table.BusinessName}Model.GetList()
+}

+ 15 - 15
template/vm/html/js.template

@@ -1,45 +1,45 @@
 import request from '@/utils/request'
 
-// 查询{{.table.BusinessName}}列表
-export function list{{.table.BusinessName|UcFirst}}(query) {
+// 查询${.table.BusinessName}列表
+export function list${.table.BusinessName|UcFirst}(query) {
     return request({
-        url: '/{{.table.ModuleName}}/{{.table.BusinessName}}/list',
+        url: '/${.table.ModuleName}/${.table.BusinessName}/list',
         method: 'get',
         params: query
     })
 }
 
-// 查询{{.table.BusinessName}}详细
-export function get{{.table.BusinessName|UcFirst}} (id) {
+// 查询${.table.BusinessName}详细
+export function get${.table.BusinessName|UcFirst} (id) {
     return request({
-        url: '/{{.table.ModuleName}}/{{.table.BusinessName}}/edit?id='+id,
+        url: '/${.table.ModuleName}/${.table.BusinessName}/edit?id='+id,
         method: 'get'
     })
 }
 
 
-// 新增{{.table.BusinessName}}
-export function add{{.table.BusinessName|UcFirst}}(data) {
+// 新增${.table.BusinessName}
+export function add${.table.BusinessName|UcFirst}(data) {
     return request({
-        url: '/{{.table.ModuleName}}/{{.table.BusinessName}}/add',
+        url: '/${.table.ModuleName}/${.table.BusinessName}/add',
         method: 'post',
         data: data
     })
 }
 
-// 修改{{.table.BusinessName}}
-export function update{{.table.BusinessName|UcFirst}}(data) {
+// 修改${.table.BusinessName}
+export function update${.table.BusinessName|UcFirst}(data) {
     return request({
-        url: '/{{.table.ModuleName}}/{{.table.BusinessName}}/edit',
+        url: '/${.table.ModuleName}/${.table.BusinessName}/edit',
         method: 'post',
         data: data
     })
 }
 
-// 删除{{.table.BusinessName}}
-export function del{{.table.BusinessName|UcFirst}}(ids) {
+// 删除${.table.BusinessName}
+export function del${.table.BusinessName|UcFirst}(ids) {
     return request({
-        url: '/{{.table.ModuleName}}/{{.table.BusinessName}}/delete',
+        url: '/${.table.ModuleName}/${.table.BusinessName}/delete',
         method: 'delete',
         data:{ids:ids}
     })

+ 161 - 161
template/vm/html/vue_crud.template

@@ -1,57 +1,57 @@
-{{$columns:=.table.Columns}}
-{{$pk:=""}}
-{{$pkColumnName:=""}}
-{{range $index, $column := .table.Columns}} {{if eq $column.IsPk "1"}}
-    {{$pk = $column.ColumnName}}
-    {{$pkColumnName = $column.ColumnName}}
-{{end}}{{end}}
+${$columns:=.table.Columns}
+${$pk:=""}
+${$pkColumnName:=""}
+${range $index, $column := .table.Columns} ${if eq $column.IsPk "1"}
+    ${$pk = $column.ColumnName}
+    ${$pkColumnName = $column.ColumnName}
+${end}${end}
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-{{range $index,$column := $columns}}
-{{if eq $column.IsQuery "1"}}
-{{$dictType:=$column.DictType}}
-{{$AttrName:=$column.ColumnName }}
-{{$comment:=$column.ColumnComment}}
-{{if eq $column.HtmlType "input"}}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
+${range $index,$column := $columns}
+${if eq $column.IsQuery "1"}
+${$dictType:=$column.DictType}
+${$AttrName:=$column.ColumnName }
+${$comment:=$column.ColumnComment}
+${if eq $column.HtmlType "input"}
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
         <el-input
-          v-model="queryParams.{{$column.ColumnName}}"
-          placeholder="请输入{{$comment}}"
+          v-model="queryParams.${$column.ColumnName}"
+          placeholder="请输入${$comment}"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-{{else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (ne $dictType "") }}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
-        <el-select v-model="queryParams.{{$column.ColumnName}}" placeholder="请选择{{$comment}}" clearable size="small">
+${else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (ne $dictType "") }
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
+        <el-select v-model="queryParams.${$column.ColumnName}" placeholder="请选择${$comment}" clearable size="small">
           <el-option
-            v-for="dict in {{$column.ColumnName}}Options"
+            v-for="dict in ${$column.ColumnName}Options"
             :key="dict.key"
             :label="dict.value"
             :value="dict.key"
           />
         </el-select>
       </el-form-item>
-{{else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (eq $dictType "") }}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
-        <el-select v-model="queryParams.{{$column.ColumnName}}" placeholder="请选择{{$comment}}" clearable size="small">
+${else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (eq $dictType "") }
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
+        <el-select v-model="queryParams.${$column.ColumnName}" placeholder="请选择${$comment}" clearable size="small">
           <el-option label="请选择字典生成" value="" />
         </el-select>
       </el-form-item>
-{{else if eq $column.HtmlType  "datetime"}}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
+${else if eq $column.HtmlType  "datetime"}
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
         <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.{{$column.ColumnName}}"
+          v-model="queryParams.${$column.ColumnName}"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择{{$comment}}">
+          placeholder="选择${$comment}">
         </el-date-picker>
       </el-form-item>
-{{end}}
-{{end}}
-{{end}}
+${end}
+${end}
+${end}
 
         <el-form-item>
             <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -88,26 +88,26 @@
       </el-col>
     </el-row>
 
-    <el-table v-loading="loading" :data="{{.table.BusinessName}}List" @selection-change="handleSelectionChange">
+    <el-table v-loading="loading" :data="${.table.BusinessName}List" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
-    {{range $index,$column := $columns}}
-    {{$ColumnName:=$column.ColumnName}}
-    {{$comment:=$column.ColumnComment}}
-   {{if eq $column.IsPk "1"}}
-             <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" />
-       {{else if and (eq $column.IsList "1")  (eq $column.HtmlType "datetime")}}
-             <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" width="180">
+    ${range $index,$column := $columns}
+    ${$ColumnName:=$column.ColumnName}
+    ${$comment:=$column.ColumnComment}
+   ${if eq $column.IsPk "1"}
+             <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" />
+       ${else if and (eq $column.IsList "1")  (eq $column.HtmlType "datetime")}
+             <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" width="180">
                <template slot-scope="scope">
-                 <span>{{ "{{" }} parseTime(scope.row.{{$ColumnName}}, '{y}-{m}-{d}') {{"}}"}}</span>
+                 <span>${ "${" } parseTime(scope.row.${$ColumnName}, '{y}-{m}-{d}') ${"}"}</span>
                </template>
              </el-table-column>
-       {{else if and (eq $column.IsList "1")  (ne $column.DictType "")}}
-             <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" :formatter="{{$ColumnName}}Format" />
-       {{else if and (eq $column.IsList "1")  (ne $ColumnName "")}}
-             <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" />
-       {{end}}
+       ${else if and (eq $column.IsList "1")  (ne $column.DictType "")}
+             <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" :formatter="${$ColumnName}Format" />
+       ${else if and (eq $column.IsList "1")  (ne $ColumnName "")}
+             <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" />
+       ${end}
 
-    {{end}}
+    ${end}
           <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button
@@ -134,84 +134,84 @@
               @pagination="getList"
             />
 
-            <!-- 添加或修改{{.table.FunctionName}}对话框 -->
+            <!-- 添加或修改${.table.FunctionName}对话框 -->
                 <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
                   <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-            {{range $index,$column := $columns}}
-            {{$field := $column.ColumnName}}
-            {{if and (eq $column.IsInsert "1")  (ne $column.IsPk "1") }}
-            {{$comment  :=$column.ColumnComment}}
-            {{$dictType := $column.DictType }}
-            {{if eq $column.HtmlType "input"}}
-                    <el-form-item label="{{$comment}}" prop="{{$field}}">
-                      <el-input v-model="form.{{$field}}" placeholder="请输入{{$comment}}" />
+            ${range $index,$column := $columns}
+            ${$field := $column.ColumnName}
+            ${if and (eq $column.IsInsert "1")  (ne $column.IsPk "1") }
+            ${$comment  :=$column.ColumnComment}
+            ${$dictType := $column.DictType }
+            ${if eq $column.HtmlType "input"}
+                    <el-form-item label="${$comment}" prop="${$field}">
+                      <el-input v-model="form.${$field}" placeholder="请输入${$comment}" />
                     </el-form-item>
-            {{else if and (eq $column.HtmlType  "select") (ne $dictType "") }}
-                    <el-form-item label="{{$comment}}">
-                      <el-select v-model="form.{{$field}}" placeholder="请选择{{$comment}}">
+            ${else if and (eq $column.HtmlType  "select") (ne $dictType "") }
+                    <el-form-item label="${$comment}">
+                      <el-select v-model="form.${$field}" placeholder="请选择${$comment}">
                         <el-option
-                          v-for="dict in {{$field}}Options"
+                          v-for="dict in ${$field}Options"
                           :key="dict.key"
                           :label="dict.value"
-                          {{if or (eq $column.GoType "int") (eq $column.GoType "int64")}}:value="parseInt(dict.key)"{{else}}:value="dict.key"{{end}}
+                          ${if or (eq $column.GoType "int") (eq $column.GoType "int64")}:value="parseInt(dict.key)"${else}:value="dict.key"${end}
                         ></el-option>
                       </el-select>
                     </el-form-item>
-            {{else if and (eq $column.HtmlType  "select") $dictType}}
-                    <el-form-item label="{{$comment}}">
-                      <el-select v-model="form.{{$field}}" placeholder="请选择{{$comment}}">
+            ${else if and (eq $column.HtmlType  "select") $dictType}
+                    <el-form-item label="${$comment}">
+                      <el-select v-model="form.${$field}" placeholder="请选择${$comment}">
                         <el-option label="请选择字典生成" value="" />
                       </el-select>
                     </el-form-item>
-            {{else if and (eq $column.HtmlType  "checkbox") (ne $dictType "")}}
-                    <el-form-item label="{{$comment}}">
-                      <el-checkbox-group v-model="form.{{$field}}">
+            ${else if and (eq $column.HtmlType  "checkbox") (ne $dictType "")}
+                    <el-form-item label="${$comment}">
+                      <el-checkbox-group v-model="form.${$field}">
                         <el-checkbox
-                          v-for="dict in {{$field}}Options"
+                          v-for="dict in ${$field}Options"
                           :key="dict.key"
                           :label="dict.key">
-                          {{"{{"}}dict.value{{"}}"}}
+                          ${"${"}dict.value${"}"}
                         </el-checkbox>
                       </el-checkbox-group>
                     </el-form-item>
-            {{else if and (eq $column.HtmlType  "checkbox") $dictType }}
-                    <el-form-item label="{{$comment}}">
-                      <el-checkbox-group v-model="form.{{$field}}">
+            ${else if and (eq $column.HtmlType  "checkbox") $dictType }
+                    <el-form-item label="${$comment}">
+                      <el-checkbox-group v-model="form.${$field}">
                         <el-checkbox>请选择字典生成</el-checkbox>
                       </el-checkbox-group>
                     </el-form-item>
-            {{else if and (eq $column.HtmlType  "radio") (ne $dictType "") }}
-                    <el-form-item label="{{$comment}}">
-                      <el-radio-group v-model="form.{{$field}}">
+            ${else if and (eq $column.HtmlType  "radio") (ne $dictType "") }
+                    <el-form-item label="${$comment}">
+                      <el-radio-group v-model="form.${$field}">
                         <el-radio
-                          v-for="dict in {{$field}}Options"
+                          v-for="dict in ${$field}Options"
                           :key="dict.key"
-                          {{if or (eq $column.GoType "int")  (eq $column.GoType  "int64")}}:label="parseInt(dict.key)"{{else}}:label="dict.key"{{end}}
-                        >{{"{{"}}dict.value{{"}}"}}</el-radio>
+                          ${if or (eq $column.GoType "int")  (eq $column.GoType  "int64")}:label="parseInt(dict.key)"${else}:label="dict.key"${end}
+                        >${"${"}dict.value${"}"}</el-radio>
                       </el-radio-group>
                     </el-form-item>
-            {{else if and (eq $column.HtmlType "radio") $dictType }}
-                    <el-form-item label="{{$comment}}">
-                      <el-radio-group v-model="form.{{$field}}">
+            ${else if and (eq $column.HtmlType "radio") $dictType }
+                    <el-form-item label="${$comment}">
+                      <el-radio-group v-model="form.${$field}">
                         <el-radio label="1">请选择字典生成</el-radio>
                       </el-radio-group>
                     </el-form-item>
-            {{else if eq $column.HtmlType  "datetime"}}
-                    <el-form-item label="{{$comment}}" prop="{{$field}}">
+            ${else if eq $column.HtmlType  "datetime"}
+                    <el-form-item label="${$comment}" prop="${$field}">
                       <el-date-picker clearable size="small" style="width: 200px"
-                        v-model="form.{{$field}}"
+                        v-model="form.${$field}"
                         type="date"
                         value-format="yyyy-MM-dd"
-                        placeholder="选择{{$comment}}">
+                        placeholder="选择${$comment}">
                       </el-date-picker>
                     </el-form-item>
-            {{else if eq $column.HtmlType  "textarea"}}
-                    <el-form-item label="{{$comment}}" prop="{{$field}}">
-                      <el-input v-model="form.{{$field}}" type="textarea" placeholder="请输入内容" />
+            ${else if eq $column.HtmlType  "textarea"}
+                    <el-form-item label="${$comment}" prop="${$field}">
+                      <el-input v-model="form.${$field}" type="textarea" placeholder="请输入内容" />
                     </el-form-item>
-            {{end}}
-            {{end}}
-            {{end}}
+            ${end}
+            ${end}
+            ${end}
 
           </el-form>
           <div slot="footer" class="dialog-footer">
@@ -223,10 +223,10 @@
 </template>
 
 <script>
-import { list{{.table.BusinessName|UcFirst}}, get{{.table.BusinessName|UcFirst}}, del{{.table.BusinessName|UcFirst}}, add{{.table.BusinessName|UcFirst}}, update{{.table.BusinessName|UcFirst}} } from '@/api/{{.table.ModuleName}}/{{.table.BusinessName}}'
+import { list${.table.BusinessName|UcFirst}, get${.table.BusinessName|UcFirst}, del${.table.BusinessName|UcFirst}, add${.table.BusinessName|UcFirst}, update${.table.BusinessName|UcFirst} } from '@/api/${.table.ModuleName}/${.table.BusinessName}'
 
 export default {
-  name: "{{.table.BusinessName}}",
+  name: "${.table.BusinessName}",
   data() {
     return {
           // 遮罩层
@@ -241,76 +241,76 @@ export default {
           showSearch: true,
           // 总条数
           total: 0,
-          // {{.table.FunctionName}}表格数据
-          {{.table.BusinessName}}List: [],
+          // ${.table.FunctionName}表格数据
+          ${.table.BusinessName}List: [],
           // 弹出层标题
           title: "",
           // 是否显示弹出层
           open: false,
-          {{range  $index,$column := $columns}}
-           {{$comment :=$column.ColumnComment}}
-           {{if ne $column.DictType ""}}
+          ${range  $index,$column := $columns}
+           ${$comment :=$column.ColumnComment}
+           ${if ne $column.DictType ""}
                  // $comment字典
-                 {{$column.ColumnName}}Options: [],
-           {{end}}
-          {{end}}
+                 ${$column.ColumnName}Options: [],
+           ${end}
+          ${end}
           // 查询参数
         queryParams: {
           pageNum: 1,
           pageSize: 10,
-          {{range  $index,$column := $columns}}
-          {{$velocityCount := add $index 1}}
-          {{if eq $column.IsQuery "1"}}
-          {{$column.ColumnName}}: null,
-          {{end}}
-          {{end}}
+          ${range  $index,$column := $columns}
+          ${$velocityCount := add $index 1}
+          ${if eq $column.IsQuery "1"}
+          ${$column.ColumnName}: null,
+          ${end}
+          ${end}
         },
         // 表单参数
           form: {},
           // 表单校验
           rules: {
-              {{range  $index,$column := $columns}}
-              {{$velocityCount := add $index 1}}
-              {{if and (eq $column.IsRequired "1") (eq $column.IsPk "0")}}
-              {{$comment:=$column.ColumnComment}}
-              {{$column.ColumnName}}: [
-                { required: true, message: "{{$comment}}不能为空", trigger: "blur" }
-              ]{{if ne $velocityCount (len $columns)}},{{end}}
-              {{end}}
-              {{end}}
+              ${range  $index,$column := $columns}
+              ${$velocityCount := add $index 1}
+              ${if and (eq $column.IsRequired "1") (eq $column.IsPk "0")}
+              ${$comment:=$column.ColumnComment}
+              ${$column.ColumnName}: [
+                { required: true, message: "${$comment}不能为空", trigger: "blur" }
+              ]${if ne $velocityCount (len $columns)},${end}
+              ${end}
+              ${end}
           }
       };
     },
     created() {
         this.getList();
-    {{range  $index,$column := $columns}}
-    {{if ne $column.DictType ""}}
-        this.getDicts("{{$column.DictType}}").then(response => {
-          this.{{$column.ColumnName}}Options = response.data.values || [];
+    ${range  $index,$column := $columns}
+    ${if ne $column.DictType ""}
+        this.getDicts("${$column.DictType}").then(response => {
+          this.${$column.ColumnName}Options = response.data.values || [];
         });
-    {{end}}
-    {{end}}
+    ${end}
+    ${end}
     },
 
     methods: {
-        /** 查询{{.table.FunctionName}}列表 */
+        /** 查询${.table.FunctionName}列表 */
         getList() {
           this.loading = true;
-          list{{.table.BusinessName|UcFirst}}(this.queryParams).then(response => {
-            this.{{.table.BusinessName}}List = response.data.list;
+          list${.table.BusinessName|UcFirst}(this.queryParams).then(response => {
+            this.${.table.BusinessName}List = response.data.list;
             this.total = response.data.total;
             this.loading = false;
           });
         },
-        {{range  $index,$column := $columns}}
-        {{if ne $column.DictType ""}}
-        {{$comment:=$column.ColumnComment}}
+        ${range  $index,$column := $columns}
+        ${if ne $column.DictType ""}
+        ${$comment:=$column.ColumnComment}
         // $comment字典翻译
-        {{$column.ColumnName}}Format(row, column) {
-          return this.selectDictLabel{{if eq $column.HtmlType "checkbox"}}s{{end}}(this.{{$column.ColumnName}}Options, row.{{$column.ColumnName}});
+        ${$column.ColumnName}Format(row, column) {
+          return this.selectDictLabel${if eq $column.HtmlType "checkbox"}s${end}(this.${$column.ColumnName}Options, row.${$column.ColumnName});
         },
-        {{end}}
-        {{end}}
+        ${end}
+        ${end}
         // 取消按钮
         cancel() {
           this.open = false;
@@ -319,18 +319,18 @@ export default {
         // 表单重置
         reset() {
           this.form = {
-    {{range  $index,$column := $columns}}
-    {{$velocityCount := add $index 1}}
-    {{if eq $column.HtmlType  "radio"}}
-            {{$column.ColumnName}}: {{if or (eq $column.GoType  "int")  (eq $column.GoType "int64") }}0{{else}}"0"{{end}} {{if ne $velocityCount  (len $columns)}},{{end}}
+    ${range  $index,$column := $columns}
+    ${$velocityCount := add $index 1}
+    ${if eq $column.HtmlType  "radio"}
+            ${$column.ColumnName}: ${if or (eq $column.GoType  "int")  (eq $column.GoType "int64") }0${else}"0"${end} ${if ne $velocityCount  (len $columns)},${end}
 
-    {{else if eq $column.HtmlType  "checkbox"}}
-            {{$column.ColumnName}}: []{{if ne $velocityCount  (len $columns)}},{{end}}
+    ${else if eq $column.HtmlType  "checkbox"}
+            ${$column.ColumnName}: []${if ne $velocityCount  (len $columns)},${end}
 
-    {{else}}
-            {{$column.ColumnName}}: null{{if ne $velocityCount  (len $columns)}},{{end}}
-    {{end}}
-    {{end}}
+    ${else}
+            ${$column.ColumnName}: null${if ne $velocityCount  (len $columns)},${end}
+    ${end}
+    ${end}
           };
           this.resetForm("form");
         },
@@ -347,7 +347,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.{{$pkColumnName}})
+      this.ids = selection.map(item => item.${$pkColumnName})
       this.single = selection.length!==1
       this.multiple = !selection.length
     },
@@ -355,34 +355,34 @@ export default {
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "添加{{.table.FunctionName}}";
+      this.title = "添加${.table.FunctionName}";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const {{$pkColumnName}} = row.{{$pkColumnName}} || this.ids
-      get{{.table.BusinessName|UcFirst}}({{$pkColumnName}}).then(response => {
+      const ${$pkColumnName} = row.${$pkColumnName} || this.ids
+      get${.table.BusinessName|UcFirst}(${$pkColumnName}).then(response => {
         this.form = response.data;
-{{range  $index,$column := $columns}}
-{{if eq $column.HtmlType  "checkbox"}}
-        this.form.{{$column.ColumnName}} = this.form.{{$column.ColumnName}}.split(",");
-{{end}}
-{{end}}
+${range  $index,$column := $columns}
+${if eq $column.HtmlType  "checkbox"}
+        this.form.${$column.ColumnName} = this.form.${$column.ColumnName}.split(",");
+${end}
+${end}
         this.open = true;
-        this.title = "修改{{.table.FunctionName}}";
+        this.title = "修改${.table.FunctionName}";
       });
     },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
-{{range  $index,$column := $columns}}
-{{if eq $column.HtmlType  "checkbox"}}
-          this.form.{{$column.ColumnName}} = this.form.{{$column.ColumnName}}.join(",");
-{{end}}
-{{end}}
-          if (this.form.{{$pkColumnName}} != null) {
-            update{{.table.BusinessName|UcFirst}}(this.form).then(response => {
+${range  $index,$column := $columns}
+${if eq $column.HtmlType  "checkbox"}
+          this.form.${$column.ColumnName} = this.form.${$column.ColumnName}.join(",");
+${end}
+${end}
+          if (this.form.${$pkColumnName} != null) {
+            update${.table.BusinessName|UcFirst}(this.form).then(response => {
               if (response.code === 0) {
                 this.msgSuccess("修改成功");
                 this.open = false;
@@ -390,7 +390,7 @@ export default {
               }
             });
           } else {
-            add{{.table.BusinessName|UcFirst}}(this.form).then(response => {
+            add${.table.BusinessName|UcFirst}(this.form).then(response => {
               if (response.code === 0) {
                 this.msgSuccess("新增成功");
                 this.open = false;
@@ -403,13 +403,13 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const {{$pkColumnName}}s = row.{{$pkColumnName}} || this.ids;
-      this.$confirm('是否确认删除{{.table.FunctionName}}编号为"' + {{$pkColumnName}}s + '"的数据项?', "警告", {
+      const ${$pkColumnName}s = row.${$pkColumnName} || this.ids;
+      this.$confirm('是否确认删除${.table.FunctionName}编号为"' + ${$pkColumnName}s + '"的数据项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
-          return del{{.table.BusinessName|UcFirst}}({{$pkColumnName}}s);
+          return del${.table.BusinessName|UcFirst}(${$pkColumnName}s);
         }).then(() => {
           this.getList();
           this.msgSuccess("删除成功");

+ 175 - 175
template/vm/html/vue_tree.template

@@ -1,60 +1,60 @@
-{{$columns:=.table.Columns}}
-{{$pk:=""}}
-{{$pkColumnName:=""}}
-{{range $index, $column := .table.Columns}} {{if eq $column.IsPk "1"}}
-    {{$pk = $column.ColumnName}}
-    {{$pkColumnName = $column.ColumnName}}
-{{end}}{{end}}
-{{$treeCode:=index .options "tree_code"}}
-{{$treeName:=index .options "tree_name"}}
-{{$treeParentCode:=index .options "tree_parent_code"}}
+${$columns:=.table.Columns}
+${$pk:=""}
+${$pkColumnName:=""}
+${range $index, $column := .table.Columns} ${if eq $column.IsPk "1"}
+    ${$pk = $column.ColumnName}
+    ${$pkColumnName = $column.ColumnName}
+${end}${end}
+${$treeCode:=index .options "tree_code"}
+${$treeName:=index .options "tree_name"}
+${$treeParentCode:=index .options "tree_parent_code"}
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-{{range $index,$column := $columns}}
-{{if eq $column.IsQuery "1"}}
-{{$dictType:=$column.DictType}}
-{{$AttrName:=$column.ColumnName }}
-{{$comment:=$column.ColumnComment}}
-{{if eq $column.HtmlType "input"}}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
+${range $index,$column := $columns}
+${if eq $column.IsQuery "1"}
+${$dictType:=$column.DictType}
+${$AttrName:=$column.ColumnName }
+${$comment:=$column.ColumnComment}
+${if eq $column.HtmlType "input"}
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
         <el-input
-          v-model="queryParams.{$column.ColumnName}}"
-          placeholder="请输入{{$comment}}"
+          v-model="queryParams.{$column.ColumnName}"
+          placeholder="请输入${$comment}"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-{{else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (ne $dictType "") }}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
-        <el-select v-model="queryParams.{{$column.ColumnName}}" placeholder="请选择{{$comment}}" clearable size="small">
+${else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (ne $dictType "") }
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
+        <el-select v-model="queryParams.${$column.ColumnName}" placeholder="请选择${$comment}" clearable size="small">
           <el-option
-            v-for="dict in {{$column.ColumnName}}Options"
+            v-for="dict in ${$column.ColumnName}Options"
             :key="dict.key"
             :label="dict.value"
             :value="dict.key"
           />
         </el-select>
       </el-form-item>
-{{else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (eq $dictType "") }}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
-        <el-select v-model="queryParams.{{$column.ColumnName}}" placeholder="请选择{{$comment}}" clearable size="small">
+${else if and (or (eq $column.HtmlType  "select" )  (eq $column.HtmlType  "radio"))  (eq $dictType "") }
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
+        <el-select v-model="queryParams.${$column.ColumnName}" placeholder="请选择${$comment}" clearable size="small">
           <el-option label="请选择字典生成" value="" />
         </el-select>
       </el-form-item>
-{{else if eq $column.HtmlType  "datetime"}}
-      <el-form-item label="{{$comment}}" prop="{{$column.ColumnName}}">
+${else if eq $column.HtmlType  "datetime"}
+      <el-form-item label="${$comment}" prop="${$column.ColumnName}">
         <el-date-picker clearable size="small" style="width: 200px"
-          v-model="queryParams.{{$column.ColumnName}}"
+          v-model="queryParams.${$column.ColumnName}"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择{{$comment}}">
+          placeholder="选择${$comment}">
         </el-date-picker>
       </el-form-item>
-{{end}}
-{{end}}
-{{end}}
+${end}
+${end}
+${end}
 
         <el-form-item>
             <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -75,29 +75,29 @@
 
 <el-table
       v-loading="loading"
-      :data="{{.table.BusinessName}}List"
-      row-key="{{$treeCode}}"
+      :data="${.table.BusinessName}List"
+      row-key="${$treeCode}"
       default-expand-all
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
-{{range $index,$column := $columns}}
-{{$ColumnName:=$column.ColumnName}}
-{{$comment:=$column.ColumnComment}}
-{{if eq $column.IsPk "1"}}
+${range $index,$column := $columns}
+${$ColumnName:=$column.ColumnName}
+${$comment:=$column.ColumnComment}
+${if eq $column.IsPk "1"}
 
-{{else if and (eq $column.IsList "1")  (eq $column.HtmlType "datetime")}}
-     <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" width="180">
+${else if and (eq $column.IsList "1")  (eq $column.HtmlType "datetime")}
+     <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" width="180">
        <template slot-scope="scope">
-         <span>{{ "{{" }} parseTime(scope.row.{{$ColumnName}}, '{y}-{m}-{d}') {{"}}"}}</span>
+         <span>${ "${" } parseTime(scope.row.${$ColumnName}, '{y}-{m}-{d}') ${"}"}</span>
        </template>
      </el-table-column>
-{{else if and (eq $column.IsList "1")  (ne $column.DictType "")}}
-     <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" :formatter="{{$ColumnName}}Format" />
-{{else if and (eq $column.IsList "1")  (ne $ColumnName "")}}
-     <el-table-column label="{{$comment}}" align="center" prop="{{$ColumnName}}" />
-{{end}}
+${else if and (eq $column.IsList "1")  (ne $column.DictType "")}
+     <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" :formatter="${$ColumnName}Format" />
+${else if and (eq $column.IsList "1")  (ne $ColumnName "")}
+     <el-table-column label="${$comment}" align="center" prop="${$ColumnName}" />
+${end}
 
-{{end}}
+${end}
   <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
     <template slot-scope="scope">
       <el-button
@@ -116,89 +116,89 @@
   </el-table-column>
 </el-table>
 
-<!-- 添加或修改{{.table.FunctionName}}对话框 -->
+<!-- 添加或修改${.table.FunctionName}对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-{{range $index,$column := $columns}}
-{{$field := $column.ColumnName}}
-{{if and (eq $column.IsInsert "1")  (ne $column.IsPk "1") }}
-{{$comment  :=$column.ColumnComment}}
-{{$dictType := $column.DictType }}
+${range $index,$column := $columns}
+${$field := $column.ColumnName}
+${if and (eq $column.IsInsert "1")  (ne $column.IsPk "1") }
+${$comment  :=$column.ColumnComment}
+${$dictType := $column.DictType }
 
-{{if and (ne  $treeParentCode "") (eq $column.ColumnName $treeParentCode) }}
-        <el-form-item label="{{$comment}}" prop="{{$treeParentCode}}">
-          <treeselect v-model="form.{{$treeParentCode}}" :options="{{$.table.BusinessName}}Options" :normalizer="normalizer" placeholder="请选择{{$comment}}" />
+${if and (ne  $treeParentCode "") (eq $column.ColumnName $treeParentCode) }
+        <el-form-item label="${$comment}" prop="${$treeParentCode}">
+          <treeselect v-model="form.${$treeParentCode}" :options="${$.table.BusinessName}Options" :normalizer="normalizer" placeholder="请选择${$comment}" />
         </el-form-item>
-{{else if eq $column.HtmlType "input"}}
-        <el-form-item label="{{$comment}}" prop="{{$field}}">
-          <el-input v-model="form.{{$field}}" placeholder="请输入{{$comment}}" />
+${else if eq $column.HtmlType "input"}
+        <el-form-item label="${$comment}" prop="${$field}">
+          <el-input v-model="form.${$field}" placeholder="请输入${$comment}" />
         </el-form-item>
-{{else if and (eq $column.HtmlType  "select") (ne $dictType "") }}
-        <el-form-item label="{{$comment}}">
-          <el-select v-model="form.{{$field}}" placeholder="请选择{{$comment}}">
+${else if and (eq $column.HtmlType  "select") (ne $dictType "") }
+        <el-form-item label="${$comment}">
+          <el-select v-model="form.${$field}" placeholder="请选择${$comment}">
             <el-option
-              v-for="dict in {{$field}}Options"
+              v-for="dict in ${$field}Options"
               :key="dict.key"
               :label="dict.value"
-              {{if or (eq $column.GoType "int") (eq $column.GoType "int64")}}:value="parseInt(dict.key)"{{else}}:value="dict.key"{{end}}
+              ${if or (eq $column.GoType "int") (eq $column.GoType "int64")}:value="parseInt(dict.key)"${else}:value="dict.key"${end}
             ></el-option>
           </el-select>
         </el-form-item>
-{{else if and (eq $column.HtmlType  "select") $dictType}}
-        <el-form-item label="{{$comment}}">
-          <el-select v-model="form.{{$field}}" placeholder="请选择{{$comment}}">
+${else if and (eq $column.HtmlType  "select") $dictType}
+        <el-form-item label="${$comment}">
+          <el-select v-model="form.${$field}" placeholder="请选择${$comment}">
             <el-option label="请选择字典生成" value="" />
           </el-select>
         </el-form-item>
-{{else if and (eq $column.HtmlType  "checkbox") (ne $dictType "")}}
-        <el-form-item label="{{$comment}}">
-          <el-checkbox-group v-model="form.{{$field}}">
+${else if and (eq $column.HtmlType  "checkbox") (ne $dictType "")}
+        <el-form-item label="${$comment}">
+          <el-checkbox-group v-model="form.${$field}">
             <el-checkbox
-              v-for="dict in {{$field}}Options"
+              v-for="dict in ${$field}Options"
               :key="dict.key"
               :label="dict.key">
-              {{"{{"}}dict.value{{"}}"}}
+              ${"${"}dict.value${"}"}
             </el-checkbox>
           </el-checkbox-group>
         </el-form-item>
-{{else if and (eq $column.HtmlType  "checkbox") $dictType }}
-        <el-form-item label="{{$comment}}">
-          <el-checkbox-group v-model="form.{{$field}}">
+${else if and (eq $column.HtmlType  "checkbox") $dictType }
+        <el-form-item label="${$comment}">
+          <el-checkbox-group v-model="form.${$field}">
             <el-checkbox>请选择字典生成</el-checkbox>
           </el-checkbox-group>
         </el-form-item>
-{{else if and (eq $column.HtmlType  "radio") (ne $dictType "") }}
-        <el-form-item label="{{$comment}}">
-          <el-radio-group v-model="form.{{$field}}">
+${else if and (eq $column.HtmlType  "radio") (ne $dictType "") }
+        <el-form-item label="${$comment}">
+          <el-radio-group v-model="form.${$field}">
             <el-radio
-              v-for="dict in {{$field}}Options"
+              v-for="dict in ${$field}Options"
               :key="dict.key"
-              {{if or (eq $column.GoType "int")  (eq $column.GoType  "int64")}}:label="parseInt(dict.key)"{{else}}:label="dict.key"{{end}}
-            >{{"{{"}}dict.value{{"}}"}}</el-radio>
+              ${if or (eq $column.GoType "int")  (eq $column.GoType  "int64")}:label="parseInt(dict.key)"${else}:label="dict.key"${end}
+            >${"${"}dict.value${"}"}</el-radio>
           </el-radio-group>
         </el-form-item>
-{{else if and (eq $column.HtmlType "radio") $dictType }}
-        <el-form-item label="{{$comment}}">
-          <el-radio-group v-model="form.{{$field}}">
+${else if and (eq $column.HtmlType "radio") $dictType }
+        <el-form-item label="${$comment}">
+          <el-radio-group v-model="form.${$field}">
             <el-radio label="1">请选择字典生成</el-radio>
           </el-radio-group>
         </el-form-item>
-{{else if eq $column.HtmlType  "datetime"}}
-        <el-form-item label="{{$comment}}" prop="{{$field}}">
+${else if eq $column.HtmlType  "datetime"}
+        <el-form-item label="${$comment}" prop="${$field}">
           <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.{{$field}}"
+            v-model="form.${$field}"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择{{$comment}}">
+            placeholder="选择${$comment}">
           </el-date-picker>
         </el-form-item>
-{{else if eq $column.HtmlType  "textarea"}}
-        <el-form-item label="{{$comment}}" prop="{{$field}}">
-          <el-input v-model="form.{{$field}}" type="textarea" placeholder="请输入内容" />
+${else if eq $column.HtmlType  "textarea"}
+        <el-form-item label="${$comment}" prop="${$field}">
+          <el-input v-model="form.${$field}" type="textarea" placeholder="请输入内容" />
         </el-form-item>
-{{end}}
-{{end}}
-{{end}}
+${end}
+${end}
+${end}
 
           </el-form>
           <div slot="footer" class="dialog-footer">
@@ -211,12 +211,12 @@
 
 
 <script>
-import { list{{.table.BusinessName|UcFirst}}, get{{.table.BusinessName|UcFirst}}, del{{.table.BusinessName|UcFirst}}, add{{.table.BusinessName|UcFirst}}, update{{.table.BusinessName|UcFirst}} } from '@/api/{{.table.ModuleName}}/{{.table.BusinessName}}'
+import { list${.table.BusinessName|UcFirst}, get${.table.BusinessName|UcFirst}, del${.table.BusinessName|UcFirst}, add${.table.BusinessName|UcFirst}, update${.table.BusinessName|UcFirst} } from '@/api/${.table.ModuleName}/${.table.BusinessName}'
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
-  name: "{{.table.BusinessName}}",
+  name: "${.table.BusinessName}",
   components: { Treeselect },
   data() {
     return {
@@ -224,95 +224,95 @@ export default {
           loading: true,
           // 显示搜索条件
           showSearch: true,
-          // {{.table.FunctionName}}表格数据
-          {{.table.BusinessName}}List: [],
-           // ${functionName}树选项
-           {{.table.BusinessName}}Options: [],
+          // ${.table.FunctionName}表格数据
+          ${.table.BusinessName}List: [],
+           // ${.table.FunctionName}树选项
+           ${.table.BusinessName}Options: [],
           // 弹出层标题
           title: "",
           // 是否显示弹出层
           open: false,
-          {{range  $index,$column := $columns}}
-           {{$comment :=$column.ColumnComment}}
-           {{if ne $column.DictType ""}}
+          ${range  $index,$column := $columns}
+           ${$comment :=$column.ColumnComment}
+           ${if ne $column.DictType ""}
                  // $comment字典
-                 {{$column.ColumnName}}Options: [],
-           {{end}}
-          {{end}}
+                 ${$column.ColumnName}Options: [],
+           ${end}
+          ${end}
           // 查询参数
         queryParams: {
-          {{range  $index,$column := $columns}}
-          {{$velocityCount := add $index 1}}
-          {{if eq $column.IsQuery "1"}}
-          {{$column.ColumnName}}: null
-          {{end}}
-          {{end}}
+          ${range  $index,$column := $columns}
+          ${$velocityCount := add $index 1}
+          ${if eq $column.IsQuery "1"}
+          ${$column.ColumnName}: null
+          ${end}
+          ${end}
         },
         // 表单参数
           form: {},
           // 表单校验
           rules: {
-              {{range  $index,$column := $columns}}
-              {{$velocityCount := add $index 1}}
-              {{if and (eq $column.IsRequired "1") (eq $column.IsPk "0")}}
-              {{$comment:=$column.ColumnComment}}
-              {{$column.ColumnName}}: [
-                { required: true, message: "{{$comment}}不能为空", trigger: "blur" }
-              ]{{if ne $velocityCount (len $columns)}},{{end}}
-              {{end}}
-              {{end}}
+              ${range  $index,$column := $columns}
+              ${$velocityCount := add $index 1}
+              ${if and (eq $column.IsRequired "1") (eq $column.IsPk "0")}
+              ${$comment:=$column.ColumnComment}
+              ${$column.ColumnName}: [
+                { required: true, message: "${$comment}不能为空", trigger: "blur" }
+              ]${if ne $velocityCount (len $columns)},${end}
+              ${end}
+              ${end}
           }
       };
     },
     created() {
         this.getList();
-    {{range  $index,$column := $columns}}
-    {{if ne $column.DictType ""}}
-        this.getDicts("{{$column.DictType}}").then(response => {
-          this.{{$column.ColumnName}}Options = response.data.values || [];
+    ${range  $index,$column := $columns}
+    ${if ne $column.DictType ""}
+        this.getDicts("${$column.DictType}").then(response => {
+          this.${$column.ColumnName}Options = response.data.values || [];
         });
-    {{end}}
-    {{end}}
+    ${end}
+    ${end}
     },
 
     methods: {
-        /** 查询{{.table.FunctionName}}列表 */
+        /** 查询${.table.FunctionName}列表 */
         getList() {
           this.loading = true;
-          list{{.table.BusinessName|UcFirst}}(this.queryParams).then(response => {
-            this.{{.table.BusinessName}}List = this.handleTree(response.data, "{{$treeCode}}", "{{$treeParentCode}}");
+          list${.table.BusinessName|UcFirst}(this.queryParams).then(response => {
+            this.${.table.BusinessName}List = this.handleTree(response.data, "${$treeCode}", "${$treeParentCode}");
             this.loading = false;
           });
         },
-        /** 转换${functionName}数据结构 */
+        /** 转换${.table.FunctionName}数据结构 */
         normalizer(node) {
           if (node.children && !node.children.length) {
             delete node.children;
           }
           return {
-            id: node.{{$treeCode}},
-            label: node.{{$treeName}},
+            id: node.${$treeCode},
+            label: node.${$treeName},
             children: node.children
           };
         },
         /** 查询部门下拉树结构 */
         getTreeselect() {
-          list{{.table.BusinessName}}().then(response => {
-            this.{{.table.BusinessName}}Options = [];
-            const data = { {{$treeCode}}: 0, {{$treeName}}: '顶级节点', children: [] };
-            data.children = this.handleTree(response.data, "{{$treeCode}}", "{{$treeParentCode}}");
-            this.{{.table.BusinessName}}Options.push(data);
+          list${.table.BusinessName}().then(response => {
+            this.${.table.BusinessName}Options = [];
+            const data = { ${$treeCode}: 0, ${$treeName}: '顶级节点', children: [] };
+            data.children = this.handleTree(response.data, "${$treeCode}", "${$treeParentCode}");
+            this.${.table.BusinessName}Options.push(data);
           });
         },
-        {{range  $index,$column := $columns}}
-        {{if ne $column.DictType ""}}
-        {{$comment:=$column.ColumnComment}}
+        ${range  $index,$column := $columns}
+        ${if ne $column.DictType ""}
+        ${$comment:=$column.ColumnComment}
         // $comment字典翻译
-        {{$column.ColumnName}}Format(row, column) {
-          return this.selectDictLabel{{if eq $column.HtmlType "checkbox"}}s{{end}}(this.{{$column.ColumnName}}Options, row.{{$column.ColumnName}});
+        ${$column.ColumnName}Format(row, column) {
+          return this.selectDictLabel${if eq $column.HtmlType "checkbox"}s${end}(this.${$column.ColumnName}Options, row.${$column.ColumnName});
         },
-        {{end}}
-        {{end}}
+        ${end}
+        ${end}
         // 取消按钮
         cancel() {
           this.open = false;
@@ -321,18 +321,18 @@ export default {
         // 表单重置
         reset() {
           this.form = {
-    {{range  $index,$column := $columns}}
-    {{$velocityCount := add $index 1}}
-    {{if eq $column.HtmlType  "radio"}}
-            {{$column.ColumnName}}: {{if or (eq $column.GoType  "int")  (eq $column.GoType "int64") }}0{{else}}"0"{{end}} {{if ne $velocityCount  (len $columns)}},{{end}}
+    ${range  $index,$column := $columns}
+    ${$velocityCount := add $index 1}
+    ${if eq $column.HtmlType  "radio"}
+            ${$column.ColumnName}: ${if or (eq $column.GoType  "int")  (eq $column.GoType "int64") }0${else}"0"${end} ${if ne $velocityCount  (len $columns)},${end}
 
-    {{else if eq $column.HtmlType  "checkbox"}}
-            {{$column.ColumnName}}: []{{if ne $velocityCount  (len $columns)}},{{end}}
+    ${else if eq $column.HtmlType  "checkbox"}
+            ${$column.ColumnName}: []${if ne $velocityCount  (len $columns)},${end}
 
-    {{else}}
-            {{$column.ColumnName}}: null{{if ne $velocityCount  (len $columns)}},{{end}}
-    {{end}}
-    {{end}}
+    ${else}
+            ${$column.ColumnName}: null${if ne $velocityCount  (len $columns)},${end}
+    ${end}
+    ${end}
           };
           this.resetForm("form");
         },
@@ -352,37 +352,37 @@ export default {
       this.reset();
       this.getTreeselect();
       this.open = true;
-      this.title = "添加{{.table.FunctionName}}";
+      this.title = "添加${.table.FunctionName}";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
       this.getTreeselect();
       if (row != null) {
-        this.form.{{$treeParentCode}} = row.{{$treeCode}};
+        this.form.${$treeParentCode} = row.${$treeCode};
       }
-      get{{.table.BusinessName}}({{$pkColumnName}}).then(response => {
+      get${.table.BusinessName}(${$pkColumnName}).then(response => {
          this.form = response.data;
-{{range  $index,$column := $columns}}
-{{if eq $column.HtmlType  "checkbox"}}
-        this.form.{{$column.ColumnName}} = this.form.{{$column.ColumnName}}.split(",");
-{{end}}
-{{end}}
+${range  $index,$column := $columns}
+${if eq $column.HtmlType  "checkbox"}
+        this.form.${$column.ColumnName} = this.form.${$column.ColumnName}.split(",");
+${end}
+${end}
         this.open = true;
-        this.title = "修改{{.table.FunctionName}}";
+        this.title = "修改${.table.FunctionName}";
       });
     },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
-{{range  $index,$column := $columns}}
-{{if eq $column.HtmlType  "checkbox"}}
-          this.form.{{$column.ColumnName}} = this.form.{{$column.ColumnName}}.join(",");
-{{end}}
-{{end}}
-          if (this.form.{{$pkColumnName}} != null) {
-            update{{.table.BusinessName|UcFirst}}(this.form).then(response => {
+${range  $index,$column := $columns}
+${if eq $column.HtmlType  "checkbox"}
+          this.form.${$column.ColumnName} = this.form.${$column.ColumnName}.join(",");
+${end}
+${end}
+          if (this.form.${$pkColumnName} != null) {
+            update${.table.BusinessName|UcFirst}(this.form).then(response => {
               if (response.code === 0) {
                 this.msgSuccess("修改成功");
                 this.open = false;
@@ -390,7 +390,7 @@ export default {
               }
             });
           } else {
-            add{{.table.BusinessName|UcFirst}}(this.form).then(response => {
+            add${.table.BusinessName|UcFirst}(this.form).then(response => {
               if (response.code === 0) {
                 this.msgSuccess("新增成功");
                 this.open = false;
@@ -403,12 +403,12 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      this.$confirm('是否确认删除{{.table.FunctionName}}编号为"' + row.{{$pkColumnName}} + '"的数据项?', "警告", {
+      this.$confirm('是否确认删除${.table.FunctionName}编号为"' + row.${$pkColumnName} + '"的数据项?', "警告", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
-          return del{{.table.BusinessName|UcFirst}}(row.{{$pkColumnName}});
+          return del${.table.BusinessName|UcFirst}(row.${$pkColumnName});
         }).then(() => {
           this.getList();
           this.msgSuccess("删除成功");