Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
zendata
提交
c38984ad
Z
zendata
项目概览
LinuxSuRen
/
zendata
与 Fork 源项目一致
Fork自
易企天创 / zendata
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zendata
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c38984ad
编写于
5月 14, 2020
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
keep space prefix in refer range
上级
9c2db2d2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
125 addition
and
61 deletion
+125
-61
src/gen/generator.go
src/gen/generator.go
+55
-22
src/gen/list.go
src/gen/list.go
+3
-2
xdoc/data.yaml
xdoc/data.yaml
+67
-37
未找到文件。
src/gen/generator.go
浏览文件 @
c38984ad
package
gen
import
(
"fmt"
"github.com/easysoft/zendata/src/model"
constant
"github.com/easysoft/zendata/src/utils/const"
stringUtils
"github.com/easysoft/zendata/src/utils/string"
...
...
@@ -69,6 +70,8 @@ func GenerateForField(field *model.Field, total int) []string {
concat
=
field
.
Prefix
+
concat
+
field
.
Postfix
values
=
append
(
values
,
concat
)
}
values
=
LoopSubFields
(
field
,
values
,
total
)
}
else
if
field
.
Type
==
"list"
{
// list type
values
=
GenerateFieldItemsFromDefinition
(
field
,
total
)
...
...
@@ -78,7 +81,7 @@ func GenerateForField(field *model.Field, total int) []string {
}
referField
:=
constant
.
LoadedFields
[
field
.
Name
]
values
=
GenerateF
ieldItemsFromDefinition
(
&
referField
,
total
)
values
=
GenerateF
orField
(
&
referField
,
total
)
}
else
{
// like address.city to refer to other custom fields
arr
:=
strings
.
Split
(
field
.
Type
,
"."
)
...
...
@@ -110,7 +113,6 @@ func GenerateFieldItemsFromDefinition(field *model.Field, total int) []string {
//switch datatype {
//case constant.LIST.String():
fieldValue
=
GenerateList
(
field
,
total
)
//
//default:
//}
...
...
@@ -118,7 +120,7 @@ func GenerateFieldItemsFromDefinition(field *model.Field, total int) []string {
count
:=
0
for
{
// 处理格式、前后缀、loop等
str
:=
GenerateFieldValWith
Loop
(
*
field
,
fieldValue
,
&
index
)
str
:=
GenerateFieldValWith
Fix
(
*
field
,
fieldValue
,
&
index
,
true
)
values
=
append
(
values
,
str
)
count
++
...
...
@@ -130,25 +132,6 @@ func GenerateFieldItemsFromDefinition(field *model.Field, total int) []string {
return
values
}
func
GenerateFieldValWithLoop
(
field
model
.
Field
,
fieldValue
model
.
FieldValue
,
indexOfRow
*
int
)
string
{
prefix
:=
field
.
Prefix
postfix
:=
field
.
Postfix
loopStr
:=
""
for
j
:=
0
;
j
<
field
.
Loop
;
j
++
{
if
loopStr
!=
""
{
loopStr
=
loopStr
+
field
.
Loopfix
}
str
:=
GenerateFieldVal
(
field
,
fieldValue
,
indexOfRow
)
loopStr
=
loopStr
+
str
*
indexOfRow
++
}
return
prefix
+
loopStr
+
postfix
}
func
GenerateFieldVal
(
field
model
.
Field
,
fieldValue
model
.
FieldValue
,
index
*
int
)
string
{
str
:=
""
...
...
@@ -193,6 +176,7 @@ func GetFieldValStr(field model.Field, val interface{}) string {
}
case
string
:
str
=
val
.
(
string
)
fmt
.
Sprintf
(
str
)
default
:
}
...
...
@@ -238,4 +222,53 @@ func convertFieldReferToNestedIfNeeded(field *model.Field) {
}
}
}
}
func
LoopSubFields
(
field
*
model
.
Field
,
oldValues
[]
string
,
total
int
)
[]
string
{
if
field
.
Loop
==
0
{
field
.
Loop
=
1
}
values
:=
make
([]
string
,
0
)
fieldValue
:=
model
.
FieldValue
{}
for
_
,
val
:=
range
oldValues
{
fieldValue
.
Values
=
append
(
fieldValue
.
Values
,
val
)
}
index
:=
0
count
:=
0
for
{
// 处理格式、前后缀、loop等
str
:=
GenerateFieldValWithFix
(
*
field
,
fieldValue
,
&
index
,
false
)
values
=
append
(
values
,
str
)
count
++
if
count
>=
total
{
break
}
}
return
values
}
func
GenerateFieldValWithFix
(
field
model
.
Field
,
fieldValue
model
.
FieldValue
,
indexOfRow
*
int
,
withLoop
bool
)
string
{
prefix
:=
field
.
Prefix
postfix
:=
field
.
Postfix
loopStr
:=
""
for
j
:=
0
;
j
<
field
.
Loop
;
j
++
{
if
loopStr
!=
""
{
loopStr
=
loopStr
+
field
.
Loopfix
}
str
:=
GenerateFieldVal
(
field
,
fieldValue
,
indexOfRow
)
loopStr
=
loopStr
+
str
*
indexOfRow
++
}
if
withLoop
{
loopStr
=
prefix
+
loopStr
+
postfix
}
return
loopStr
}
\ No newline at end of file
src/gen/list.go
浏览文件 @
c38984ad
...
...
@@ -45,13 +45,14 @@ func GenerateFieldValues(field *model.Field, fieldValue *model.FieldValue, level
}
func
GenerateFieldValuesFromList
(
field
*
model
.
Field
,
fieldValue
*
model
.
FieldValue
,
level
int
)
{
rang
:=
strings
.
TrimSpace
(
field
.
Range
)
//rang := strings.TrimSpace(field.Range)
rang
:=
field
.
Range
rangeItems
:=
strings
.
Split
(
rang
,
","
)
index
:=
0
for
_
,
item
:=
range
rangeItems
{
if
index
>=
constant
.
MaxNumb
{
break
}
if
strings
.
TrimSpace
(
item
)
==
""
{
continue
}
if
item
==
""
{
continue
}
sectionArr
:=
strings
.
Split
(
item
,
":"
)
if
len
(
sectionArr
)
==
0
{
continue
}
...
...
xdoc/data.yaml
浏览文件 @
c38984ad
title
:
t
he t
est file
desc
:
this is the test file
.
author
:
wwccss
title
:
test file
desc
:
this is the test file
author
:
zentao
version
:
1.0
class
:
-
name
:
password
type
:
password.xlsx
-
name
:
numb
type
:
numb.yaml
-
name
:
state_city
note
:
SQL查询
type
:
list
prefix
:
'
!'
postfix
:
"
!"
loop
:
2
loopfix
:
"
"
fields
:
-
name
:
myprefix
type
:
list
range
:
"
#"
-
name
:
city
type
:
address.city
format
:
${seq}-${name}(${state})
range
:
select * from address.city where state like '%山东%'
prefix
:
'
['
postfix
:
"
]"
loop
:
2
loopfix
:
"
,"
-
name
:
mypostfix
type
:
list
range
:
"
#"
fields
:
-
name
:
字段1
note
:
type
:
list
range
:
${user_name}_${numb}@${domain}
-
name
:
user_name
note
:
用户名
fields
:
-
name
:
first_name
type
:
custom
-
name
:
separator
type
:
list
range
:
"
_"
-
name
:
last_name
type
:
custom
-
name
:
字段2
note
:
type
:
list
prefix
:
'
<'
postfix
:
"
>"
loop
:
2
loopfix
:
"
-----"
fields
:
-
name
:
省市
type
:
state_city
-
name
:
numb
type
:
custom
range
:
"
${numb}
"
-
name
:
test
type
:
custom
range
:
"
${domain}
"
-
name
:
field1
note
:
默认的列表类型,通过逗号隔成若干区段。
type
:
list
...
...
@@ -60,37 +124,3 @@ fields:
note
:
从文件读定义
type
:
custom
range
:
custom.yaml
-
name
:
field4
note
:
引用。
type
:
list
range
:
${user_name}_${numb}@${domain}
-
name
:
user_name
note
:
用户名
fields
:
-
name
:
first_name
type
:
custom
-
name
:
separator
type
:
list
range
:
"
_"
-
name
:
last_name
type
:
custom
-
name
:
numb
type
:
custom
range
:
numb.yaml
-
name
:
field6
note
:
复合字段的某一个字段,指定查询条件。
type
:
list
fields
:
-
name
:
prefix
type
:
list
range
:
"
="
-
name
:
first_name
type
:
address.city
format
:
${seq}-${name}(${state})
range
:
select * from address.city where state like '%山东%'
prefix
:
'
['
postfix
:
"
]"
loop
:
3
loopfix
:
"
|"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录