// 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) item, hasUpload := l.generateWebViewItem(ctx, in) data["item"] = item data["hasUploadFile"] = hasUpload return } func (l *gCurd) generateWebViewItem(ctx context.Context, in *CurdPreviewInput) (string, bool) { buffer := bytes.NewBuffer(nil) hasUploadFile := false for _, field := range in.masterFields { if !field.IsEdit { continue } // 检测是否使用了文件上传相关的组件 if field.FormMode == FormModeUploadFile || field.FormMode == FormModeUploadFiles { hasUploadFile = true } var ( defaultComponent = fmt.Sprintf("\n \n {{ formValue.%s }}\n ", field.Dc, field.TsName) component string ) switch field.FormMode { case FormModeInputTextarea, FormModeInputEditor: component = fmt.Sprintf("\n \n \n ", field.Dc, field.TsName) case FormModeInputYaml: component = fmt.Sprintf("\n \n
{{ formValue.%s }}
\n
", field.Dc, field.TsName) case FormModeInputDynamic: component = defaultComponent case FormModeDate: component = defaultComponent case FormModeTime: component = defaultComponent case FormModeRadio, FormModeSelect: component = fmt.Sprintf("\n \n {{ dict.getLabel('%s', formValue.%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 \n ", field.Dc, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName]) case FormModeUploadImage: component = fmt.Sprintf("\n \n \n ", field.Dc, field.TsName) case FormModeUploadImages: component = fmt.Sprintf("\n \n \n \n \n \n \n \n \n ", field.Dc, field.TsName) case FormModeUploadFile: component = fmt.Sprintf("\n \n
\n
\n
\n
\n {{ getFileExt(formValue.%s) }}\n
\n
\n
\n
\n
", field.Dc, field.TsName, field.TsName, field.TsName) case FormModeUploadFiles: component = fmt.Sprintf("\n \n
\n \n \n
\n
\n \n {{ getFileExt(item) }}\n \n
\n
\n
\n \n \n
", field.Dc, field.TsName) case FormModeSwitch: component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) case FormModeRate: component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) default: component = defaultComponent } buffer.WriteString(" " + component + "\n\n") } return buffer.String(), hasUploadFile }