// Package views
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package views
import (
"bytes"
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
func (l *gCurd) webViewTplData(ctx context.Context, in *CurdPreviewInput) (data g.Map, err error) {
data = make(g.Map)
data["item"] = l.generateWebViewItem(ctx, in)
return
}
func (l *gCurd) generateWebViewItem(ctx context.Context, in *CurdPreviewInput) string {
buffer := bytes.NewBuffer(nil)
for _, field := range in.masterFields {
// if !field.IsEdit {
// continue
// }
var (
defaultComponent = fmt.Sprintf("
\n
%s:
\n
{{ params.%s }}
\n
", field.Dc, field.TsName)
component string
)
switch field.FormMode {
case FormModeInputTextarea, FormModeInputEditor:
component = fmt.Sprintf(" ", field.Dc, field.TsName)
case FormModeInputDynamic:
component = defaultComponent
case FormModeDate:
component = defaultComponent
case FormModeTime:
component = defaultComponent
case FormModeRadio, FormModeSelect:
component = fmt.Sprintf(" \n
%s:
\n
\n {{ getOptionLabel(options.%s, params?.%s) }}\n
\n
", field.Dc, in.options.dictMap[field.TsName], field.TsName, in.options.dictMap[field.TsName], field.TsName)
case FormModeCheckbox, FormModeSelectMultiple:
component = fmt.Sprintf(" \n
%s:
\n
\n \n {{ getOptionLabel(options.%s, item) }}\n \n \n
\n
", field.Dc, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName])
case FormModeUploadImage:
component = fmt.Sprintf(" ", field.Dc, field.TsName)
case FormModeUploadImages:
component = fmt.Sprintf(" \n
%s:
\n
\n \n \n \n \n \n \n \n
\n
", field.Dc, field.TsName)
case FormModeUploadFile:
component = fmt.Sprintf(" \n
%s:
\n
\n
\n
\n
\n {{\n getFileExt(params.attachfile)\n }}\n
\n
\n
\n
\n
", field.TsName, field.TsName)
case FormModeUploadFiles:
component = fmt.Sprintf(" \n
%s:
\n
\n
\n
\n \n
\n
\n {{\n getFileExt(item)\n }}\n
\n
\n
\n \n
\n
\n
", field.Dc, field.TsName)
case FormModeSwitch:
component = fmt.Sprintf(" ", field.Dc, field.TsName)
case FormModeRate:
component = fmt.Sprintf(" ", field.Dc, field.TsName)
default:
component = defaultComponent
}
buffer.WriteString(" " + component + "\n\n")
}
return buffer.String()
}