Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zendata
提交
7e39687f
Z
zendata
项目概览
易企天创
/
zendata
11 个月 前同步成功
通知
17
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zendata
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7e39687f
编写于
12月 04, 2020
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
preview def data
上级
a96d1b21
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
200 addition
and
102 deletion
+200
-102
src/action/generator.go
src/action/generator.go
+6
-4
src/gen/printer.go
src/gen/printer.go
+13
-9
src/server/service/preview.go
src/server/service/preview.go
+47
-0
src/zd.go
src/zd.go
+48
-38
tmp/cache/.data.db
tmp/cache/.data.db
+0
-0
ui/src/api/manage.js
ui/src/api/manage.js
+19
-0
ui/src/components/Design.vue
ui/src/components/Design.vue
+52
-39
ui/src/views/data/mine/List.vue
ui/src/views/data/mine/List.vue
+15
-11
users/test/dir/content.yaml
users/test/dir/content.yaml
+0
-1
未找到文件。
src/action/generator.go
浏览文件 @
7e39687f
...
...
@@ -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
}
src/gen/printer.go
浏览文件 @
7e39687f
...
...
@@ -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
}
src/server/service/preview.go
0 → 100644
浏览文件 @
7e39687f
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
}
}
src/zd.go
浏览文件 @
7e39687f
...
...
@@ -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
,
}
}
...
...
tmp/cache/.data.db
浏览文件 @
7e39687f
无法预览此类型文件
ui/src/api/manage.js
浏览文件 @
7e39687f
...
...
@@ -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
}
...
...
ui/src/components/Design.vue
浏览文件 @
7e39687f
...
...
@@ -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
)
on
Tab
Change
(
activeKey
)
{
console
.
log
(
'
on
Tab
Change
'
,
activeKey
)
this
.
tabKey
=
activeKey
if
(
this
.
tabKey
===
'
preview
'
)
{
previewFieldData
(
this
.
modelProp
.
id
).
then
(
json
=>
{
console
.
log
(
'
getResInstancesItemTree
'
,
json
)
this
.
previewData
=
json
.
data
})
}
}
}
}
...
...
ui/src/views/data/mine/List.vue
浏览文件 @
7e39687f
...
...
@@ -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
'
)
...
...
users/test/dir/content.yaml
浏览文件 @
7e39687f
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录