提交 7e39687f 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

preview def data

上级 a96d1b21
......@@ -10,7 +10,7 @@ import (
"time"
)
func Generate(defaultFile string, configFile string, fieldsToExportStr, format, table string) {
func Generate(defaultFile string, configFile string, fieldsToExportStr, format, table string) (lines []interface{}) {
startTime := time.Now().Unix()
if defaultFile != "" && configFile == "" {
......@@ -31,11 +31,13 @@ func Generate(defaultFile string, configFile string, fieldsToExportStr, format,
if format == constant.FormatExcel || format == constant.FormatCsv {
gen.Write(rows, format, table, colIsNumArr, fieldsToExport)
} else {
gen.Print(rows, format, table, colIsNumArr, fieldsToExport)
lines = gen.Print(rows, format, table, colIsNumArr, fieldsToExport)
}
entTime := time.Now().Unix()
if vari.RunMode == constant.RunModeServerRequest {
logUtils.PrintTo(i118Utils.I118Prt.Sprintf("server_response", len(rows), entTime - startTime))
logUtils.PrintTo(i118Utils.I118Prt.Sprintf("server_response", len(rows), entTime-startTime))
}
}
\ No newline at end of file
return
}
......@@ -14,7 +14,7 @@ import (
)
func Print(rows [][]string, format string, table string, colIsNumArr []bool,
fields []string) (lines []interface{}) {
fields []string) (lines []interface{}) {
if format == constant.FormatText {
printTextHeader(fields)
} else if format == constant.FormatSql {
......@@ -51,7 +51,9 @@ func Print(rows [][]string, format string, table string, colIsNumArr []bool,
rowMap[field.Field] = col
colVal := stringUtils.ConvertForSql(col)
if !colIsNumArr[j] { colVal = "'" + colVal + "'" }
if !colIsNumArr[j] {
colVal = "'" + colVal + "'"
}
valuesForSql = append(valuesForSql, colVal)
}
......@@ -88,7 +90,9 @@ func printTextHeader(fields []string) {
func printSqlHeader(fields []string, table string) {
fieldNames := make([]string, 0)
for _, f := range fields { fieldNames = append(fieldNames, "`" + f + "`") }
for _, f := range fields {
fieldNames = append(fieldNames, "`"+f+"`")
}
logUtils.PrintLine(fmt.Sprintf("INSERT INTO %s(%s)", table, strings.Join(fieldNames, ", ")))
}
......@@ -121,7 +125,7 @@ func genSqlLine(valuesForSql string, i int, length int) string {
temp = fmt.Sprintf(" (%s)", valuesForSql)
}
if i < length - 1 {
if i < length-1 {
temp = temp + ", "
} else {
temp = temp + "; "
......@@ -130,9 +134,9 @@ func genSqlLine(valuesForSql string, i int, length int) string {
return temp
}
func genJsonLine(i int, row []string, length int, fields []string) string {
func genJsonLine(i int, row []string, length int, fields []string) string {
temp := " " + RowToJson(row, fields)
if i < length - 1 {
if i < length-1 {
temp = temp + ", "
} else {
temp = temp + "\n]"
......@@ -146,7 +150,7 @@ func getXmlLine(i int, mp map[string]string, length int) string {
j := 0
for key, val := range mp {
str += fmt.Sprintf(" <%s>%s</%s>", key, val, key)
if j != len(mp) - 1 {
if j != len(mp)-1 {
str = str + "\n"
}
......@@ -154,7 +158,7 @@ func getXmlLine(i int, mp map[string]string, length int) string {
}
text := fmt.Sprintf(" <row>\n%s\n </row>", str)
if i == length - 1 {
if i == length-1 {
text = text + "\n</testdata>"
}
return text
......@@ -219,4 +223,4 @@ func getValForPlaceholder(placeholderStr string, count int) []string {
}
return strs
}
\ No newline at end of file
}
package serverService
import (
"fmt"
"github.com/easysoft/zendata/src/action"
"github.com/easysoft/zendata/src/server/repo"
constant "github.com/easysoft/zendata/src/utils/const"
)
type PreviewService struct {
defRepo *serverRepo.DefRepo
fieldRepo *serverRepo.FieldRepo
referRepo *serverRepo.ReferRepo
}
func (s *PreviewService) PreviewDefData(defId uint) (data string) {
def, _ := s.defRepo.Get(defId)
lines := action.Generate("", def.Path, "", constant.FormatData, "")
data = s.linesToStr(lines)
return
}
func (s *PreviewService) PreviewFieldData(fieldId uint) (data string) {
field, _ := s.fieldRepo.Get(fieldId)
fields := field.Field
def, _ := s.defRepo.Get(field.DefID)
lines := action.Generate("", def.Path, fields, constant.FormatData, "")
data = s.linesToStr(lines)
return
}
func (s *PreviewService) linesToStr(lines []interface{}) (data string) {
for index, line := range lines {
if index > 0 {
data += "<br/>"
}
data += fmt.Sprint(line)
}
return
}
func NewPreviewService(defRepo *serverRepo.DefRepo, fieldRepo *serverRepo.FieldRepo) *PreviewService {
return &PreviewService{defRepo: defRepo, fieldRepo: fieldRepo}
}
......@@ -39,9 +39,9 @@ var (
defaultFile string
configFile string
//count int
fields string
fields string
root string
root string
input string
output string
table string
......@@ -50,14 +50,14 @@ var (
article string
listRes bool
viewRes string
listRes bool
viewRes string
viewDetail string
md5 string
md5 string
example bool
help bool
set bool
help bool
set bool
flagSet *flag.FlagSet
)
......@@ -131,7 +131,7 @@ func main() {
flagSet.BoolVar(&help, "help", false, "")
flagSet.BoolVar(&set, "s", false, "")
flagSet.BoolVar(&set, "set", false, "")
flagSet.BoolVar(&set, "set", false, "")
flagSet.BoolVar(&vari.Verbose, "verbose", false, "")
......@@ -153,9 +153,9 @@ func main() {
logUtils.PrintUsage()
return
} else if set {
service.Set()
return
} else if listRes {
service.Set()
return
} else if listRes {
service.ListRes()
return
} else if viewRes != "" {
......@@ -195,7 +195,7 @@ func toGen() {
}
vari.WorkDir = fileUtils.AddSepIfNeeded(vari.WorkDir)
}
constant.SqliteData = strings.Replace(constant.SqliteData, "file:", "file:" + vari.WorkDir, 1)
constant.SqliteData = strings.Replace(constant.SqliteData, "file:", "file:"+vari.WorkDir, 1)
StartServer()
} else if vari.RunMode == constant.RunModeServerRequest {
......@@ -214,7 +214,7 @@ func toGen() {
ext := strings.ToLower(path.Ext(output))
if len(ext) > 1 {
ext = strings.TrimLeft(ext,".")
ext = strings.TrimLeft(ext, ".")
}
if stringUtils.InArray(ext, constant.Formats) {
format = ext
......@@ -223,7 +223,7 @@ func toGen() {
if format == constant.FormatExcel {
logUtils.FilePath = output
} else {
logUtils.FileWriter, _ = os.OpenFile(output, os.O_RDWR | os.O_CREATE, 0777)
logUtils.FileWriter, _ = os.OpenFile(output, os.O_RDWR|os.O_CREATE, 0777)
defer logUtils.FileWriter.Close()
}
}
......@@ -274,20 +274,21 @@ func DataHandler(writer http.ResponseWriter, req *http.Request) {
// for admin server
type Server struct {
config *serverConfig.Config
config *serverConfig.Config
defService *serverService.DefService
fieldService *serverService.FieldService
defService *serverService.DefService
fieldService *serverService.FieldService
previewService *serverService.PreviewService
sectionService *serverService.SectionService
referService *serverService.ReferService
resService *serverService.ResService
syncService *serverService.SyncService
referService *serverService.ReferService
resService *serverService.ResService
syncService *serverService.SyncService
rangesService *serverService.RangesService
rangesService *serverService.RangesService
instancesService *serverService.InstancesService
textService *serverService.TextService
excelService *serverService.ExcelService
configService *serverService.ConfigService
textService *serverService.TextService
excelService *serverService.ExcelService
configService *serverService.ConfigService
}
func Init() (err error) {
......@@ -321,9 +322,11 @@ func Init() (err error) {
syncService := serverService.NewSyncService(defService,
fieldService, rangesService, instancesService, configService, excelService, textService,
referService, resService)
previewService := serverService.NewPreviewService(defRepo, fieldRepo)
server := NewServer(config, defService, fieldService, sectionService, referService,
rangesService, instancesService, textService, excelService, configService, resService, syncService)
rangesService, instancesService, textService, excelService, configService, resService,
syncService, previewService)
server.Run()
return
......@@ -365,7 +368,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
return
}
ret := model.ResData{ Code: 1, Msg: "success"}
ret := model.ResData{Code: 1, Msg: "success"}
switch reqData.Action {
// def
case "syncData":
......@@ -405,6 +408,12 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
defId, ret.Model, err = s.fieldService.Move(uint(reqData.Src), uint(reqData.Dist), reqData.Mode)
ret.Data, err = s.fieldService.GetTree(defId)
// preview
case "previewDefData":
ret.Data = s.previewService.PreviewDefData(uint(reqData.Id))
case "previewFieldData":
ret.Data = s.previewService.PreviewFieldData(uint(reqData.Id))
// field or instances section
case "listSection":
ret.Data, err = s.sectionService.List(uint(reqData.Id), reqData.Mode)
......@@ -553,20 +562,21 @@ func NewServer(config *serverConfig.Config, defService *serverService.DefService
referService *serverService.ReferService, rangesService *serverService.RangesService,
instancesService *serverService.InstancesService, textService *serverService.TextService,
excelService *serverService.ExcelService, configService *serverService.ConfigService,
resService *serverService.ResService, syncService *serverService.SyncService) *Server {
resService *serverService.ResService, syncService *serverService.SyncService, previewService *serverService.PreviewService) *Server {
return &Server{
config: config,
defService: defService,
fieldService: fieldServer,
sectionService: sectionService,
referService: referService,
rangesService: rangesService,
config: config,
defService: defService,
fieldService: fieldServer,
sectionService: sectionService,
referService: referService,
rangesService: rangesService,
instancesService: instancesService,
textService: textService,
excelService: excelService,
configService: configService,
resService: resService,
syncService: syncService,
textService: textService,
excelService: excelService,
configService: configService,
resService: resService,
syncService: syncService,
previewService: previewService,
}
}
......
无法预览此类型文件
......@@ -101,6 +101,25 @@ export function moveDefField (src, dist, mode) {
})
}
export function previewDefData (defId) {
const data = {'action': 'previewDefData', id: defId}
return request({
url: api.admin,
method: 'post',
data: data
})
}
export function previewFieldData (fieldId) {
const data = {'action': 'previewFieldData', id: fieldId}
return request({
url: api.admin,
method: 'post',
data: data
})
}
export function listRanges (keywords, page) {
const data = {'action': 'listRanges', keywords: keywords, page: page}
......
......@@ -43,41 +43,45 @@
<div class="right" :style="styl">
<div v-if="rightVisible">
<div v-if="type=='def' || type=='instances'">
<a-tabs :activeKey="tabKey" @change="onChange" type="card">
<a-tab-pane key="info" tab="编辑信息">
<div>
<field-info-component
ref="infoComp"
:type="type"
:model="modelData"
@save="onModelSave">
</field-info-component>
</div>
</a-tab-pane>
<a-tab-pane key="range" tab="取值范围" force-render>
<div>
<field-range-component
ref="rangeComp"
:type="type"
:model="modelData"
:time2="time2">
</field-range-component>
</div>
</a-tab-pane>
<a-tab-pane key="refer" tab="配置引用" force-render>
<div>
<field-refer-component
ref="referComp"
:type="type"
:model="modelData"
:time2="time2">
</field-refer-component>
</div>
</a-tab-pane>
</a-tabs>
<a-tabs :activeKey="tabKey" @change="onTabChange" type="card">
<a-tab-pane key="info" tab="编辑信息">
<div>
<field-info-component
ref="infoComp"
:type="type"
:model="modelData"
@save="onModelSave">
</field-info-component>
</div>
</a-tab-pane>
<a-tab-pane key="range" tab="取值范围" force-render>
<div>
<field-range-component
ref="rangeComp"
:type="type"
:model="modelData"
:time2="time2">
</field-range-component>
</div>
</a-tab-pane>
<a-tab-pane key="refer" tab="配置引用" force-render>
<div>
<field-refer-component
ref="referComp"
:type="type"
:model="modelData"
:time2="time2">
</field-refer-component>
</div>
</a-tab-pane>
<a-tab-pane key="preview" tab="预览" force-render>
<div>{{previewData}}</div>
</a-tab-pane>
</a-tabs>
</div>
<div v-if="type=='ranges'">
......@@ -116,6 +120,7 @@ import FieldRangeComponent from "./FieldRange";
import FieldReferComponent from "./FieldRefer";
import ResRangesItemComponent from "./RangesItem"
import {ResTypeDef, ResTypeInstances, ResTypeRanges} from "../api/utils";
import {previewFieldData} from "../api/manage";
export default {
name: 'DefDesignComponent',
......@@ -134,6 +139,7 @@ export default {
modelData: {},
time2: 0,
previewData: '',
treeData: [],
nodeMap: {},
openKeys: [],
......@@ -252,8 +258,8 @@ export default {
}
const node = this.nodeMap[e.node.eventKey]
console.log('node', node.fields)
if (node.fields && node.fields.length > 0) {
console.log('node', node)
if (node.parentID == 0 || (node.fields && node.fields.length > 0)) {
this.rightVisible = false
this.modelData = {}
return
......@@ -431,9 +437,16 @@ export default {
console.log('clearMenu')
this.treeNode = null
},
onChange(activeKey) {
console.log('onChange', activeKey)
onTabChange(activeKey) {
console.log('onTabChange', activeKey)
this.tabKey = activeKey
if (this.tabKey === 'preview') {
previewFieldData(this.modelProp.id).then(json => {
console.log('getResInstancesItemTree', json)
this.previewData = json.data
})
}
}
}
}
......
......@@ -33,17 +33,13 @@
<a href="#">删除</a>
</a-popconfirm> |
<a-tooltip placement="top" overlayClassName="tooltip-light">
<template slot="title">
<div class="content-width">
<div class="title">引用文件内容</div>
<div class="content">
<div>range: {{ record.referName }}</div>
</div>
</div>
<a-popover @visibleChange="preview(record)" title="数据预览" trigger="click"
placement="left" :autoAdjustOverflow="true">
<template slot="content">
<div v-html="previewData"></div>
</template>
<a href="#">引用</a>
</a-tooltip>
<a>预览</a>
</a-popover>
</span>
</a-table>
......@@ -69,7 +65,7 @@
<script>
import { listDef, removeDef } from "../../../api/manage";
import { listDef, removeDef, previewDefData } from "../../../api/manage";
import { DesignComponent } from '../../../components'
import {PageSize, ResTypeDef} from "../../../api/utils";
import debounce from "lodash.debounce"
......@@ -99,6 +95,7 @@ export default {
data() {
return {
defs: [],
previewData: '',
columns,
designVisible: false,
......@@ -149,6 +146,13 @@ export default {
this.loadData()
})
},
preview(record) {
console.log(record)
previewDefData(record.id).then(json => {
console.log('previewDefData', json)
this.previewData = json.data
})
},
handleDesignOk() {
console.log('handleDesignOk')
......
......@@ -3,6 +3,5 @@ desc: ""
fields:
- field: field1
range: '`fd`'
value: "($field_step_negative * $field_nested_range) * -1 + 1000"
prefix: '['
postfix: "]\t"
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册