Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
725c3024
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 3 年多
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
725c3024
编写于
4月 28, 2021
作者:
S
song-tianyang
提交者:
刘瑞斌
4月 28, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: mock运行缺陷、期望匹配缺陷修复
mock运行缺陷、期望匹配缺陷修复
上级
cab29062
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
52 addition
and
29 deletion
+52
-29
backend/src/main/java/io/metersphere/api/controller/ApiDefinitionController.java
...o/metersphere/api/controller/ApiDefinitionController.java
+3
-3
backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java
...io/metersphere/api/dto/definition/request/MsScenario.java
+8
-1
backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java
...pi/dto/definition/request/sampler/MsHTTPSamplerProxy.java
+6
-1
backend/src/main/java/io/metersphere/api/dto/scenario/HttpConfig.java
...main/java/io/metersphere/api/dto/scenario/HttpConfig.java
+1
-0
backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java
...java/io/metersphere/api/service/ApiDefinitionService.java
+9
-1
backend/src/main/java/io/metersphere/api/service/ApiTestEnvironmentService.java
...io/metersphere/api/service/ApiTestEnvironmentService.java
+9
-19
backend/src/main/java/io/metersphere/api/service/MockConfigService.java
...in/java/io/metersphere/api/service/MockConfigService.java
+6
-1
backend/src/main/java/io/metersphere/base/domain/Project.java
...end/src/main/java/io/metersphere/base/domain/Project.java
+2
-0
backend/src/main/java/io/metersphere/controller/ProjectController.java
...ain/java/io/metersphere/controller/ProjectController.java
+1
-1
frontend/src/business/components/api/definition/components/complete/EditCompleteHTTPApi.vue
...pi/definition/components/complete/EditCompleteHTTPApi.vue
+3
-1
frontend/src/business/components/settings/project/MsProject.vue
...nd/src/business/components/settings/project/MsProject.vue
+4
-1
未找到文件。
backend/src/main/java/io/metersphere/api/controller/ApiDefinitionController.java
浏览文件 @
725c3024
...
@@ -276,14 +276,14 @@ public class ApiDefinitionController {
...
@@ -276,14 +276,14 @@ public class ApiDefinitionController {
esbImportService
.
templateExport
(
response
);
esbImportService
.
templateExport
(
response
);
}
}
@GetMapping
(
"/getMockEnvironment/{projectId}"
)
@GetMapping
(
"/getMockEnvironment/{projectId}
/{protocal}
"
)
public
ApiTestEnvironmentWithBLOBs
getMockEnvironment
(
@PathVariable
String
projectId
,
HttpServletRequest
request
)
{
public
ApiTestEnvironmentWithBLOBs
getMockEnvironment
(
@PathVariable
String
projectId
,
@PathVariable
String
protocal
,
HttpServletRequest
request
)
{
String
requestUrl
=
request
.
getRequestURL
().
toString
();
String
requestUrl
=
request
.
getRequestURL
().
toString
();
String
baseUrl
=
""
;
String
baseUrl
=
""
;
if
(
requestUrl
.
contains
(
"/api/definition"
))
{
if
(
requestUrl
.
contains
(
"/api/definition"
))
{
baseUrl
=
requestUrl
.
split
(
"/api/definition"
)[
0
];
baseUrl
=
requestUrl
.
split
(
"/api/definition"
)[
0
];
}
}
return
apiTestEnvironmentService
.
getMockEnvironmentByProjectId
(
projectId
,
baseUrl
);
return
apiTestEnvironmentService
.
getMockEnvironmentByProjectId
(
projectId
,
protocal
,
baseUrl
);
}
}
}
}
backend/src/main/java/io/metersphere/api/dto/definition/request/MsScenario.java
浏览文件 @
725c3024
...
@@ -74,7 +74,6 @@ public class MsScenario extends MsTestElement {
...
@@ -74,7 +74,6 @@ public class MsScenario extends MsTestElement {
@Override
@Override
public
void
toHashTree
(
HashTree
tree
,
List
<
MsTestElement
>
hashTree
,
ParameterConfig
config
)
{
public
void
toHashTree
(
HashTree
tree
,
List
<
MsTestElement
>
hashTree
,
ParameterConfig
config
)
{
boolean
isMockEvn
=
false
;
// 非导出操作,且不是启用状态则跳过执行
// 非导出操作,且不是启用状态则跳过执行
if
(!
config
.
isOperating
()
&&
!
this
.
isEnable
())
{
if
(!
config
.
isOperating
()
&&
!
this
.
isEnable
())
{
return
;
return
;
...
@@ -140,6 +139,14 @@ public class MsScenario extends MsTestElement {
...
@@ -140,6 +139,14 @@ public class MsScenario extends MsTestElement {
});
});
config
.
setConfig
(
envConfig
);
config
.
setConfig
(
envConfig
);
}
}
}
else
{
Map
<
String
,
EnvironmentConfig
>
map
=
config
.
getConfig
();
for
(
EnvironmentConfig
evnConfig
:
map
.
values
())
{
if
(
evnConfig
.
getHttpConfig
()
!=
null
)
{
this
.
setMockEnvironment
(
evnConfig
.
getHttpConfig
().
isMock
());
}
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getVariables
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getVariables
()))
{
config
.
setVariables
(
this
.
variables
);
config
.
setVariables
(
this
.
variables
);
...
...
backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java
浏览文件 @
725c3024
...
@@ -232,7 +232,12 @@ public class MsHTTPSamplerProxy extends MsTestElement {
...
@@ -232,7 +232,12 @@ public class MsHTTPSamplerProxy extends MsTestElement {
if
(
this
.
isMockEnvironment
())
{
if
(
this
.
isMockEnvironment
())
{
url
=
httpConfig
.
getProtocol
()
+
"://"
+
httpConfig
.
getSocket
()
+
"/mock/"
+
this
.
getProjectId
();
url
=
httpConfig
.
getProtocol
()
+
"://"
+
httpConfig
.
getSocket
()
+
"/mock/"
+
this
.
getProjectId
();
}
else
{
}
else
{
url
=
httpConfig
.
getProtocol
()
+
"://"
+
httpConfig
.
getSocket
();
if
(
httpConfig
.
isMock
())
{
url
=
httpConfig
.
getProtocol
()
+
"://"
+
httpConfig
.
getSocket
()
+
"/mock/"
+
this
.
getProjectId
();
}
else
{
url
=
httpConfig
.
getProtocol
()
+
"://"
+
httpConfig
.
getSocket
();
}
}
}
URL
urlObject
=
new
URL
(
url
);
URL
urlObject
=
new
URL
(
url
);
String
envPath
=
StringUtils
.
equals
(
urlObject
.
getPath
(),
"/"
)
?
""
:
urlObject
.
getPath
();
String
envPath
=
StringUtils
.
equals
(
urlObject
.
getPath
(),
"/"
)
?
""
:
urlObject
.
getPath
();
...
...
backend/src/main/java/io/metersphere/api/dto/scenario/HttpConfig.java
浏览文件 @
725c3024
...
@@ -20,6 +20,7 @@ public class HttpConfig {
...
@@ -20,6 +20,7 @@ public class HttpConfig {
public
HttpConfig
initHttpConfig
(
HttpConfigCondition
configCondition
)
{
public
HttpConfig
initHttpConfig
(
HttpConfigCondition
configCondition
)
{
HttpConfig
config
=
new
HttpConfig
();
HttpConfig
config
=
new
HttpConfig
();
config
.
isMock
=
this
.
isMock
;
BeanUtils
.
copyBean
(
config
,
configCondition
);
BeanUtils
.
copyBean
(
config
,
configCondition
);
return
config
;
return
config
;
}
}
...
...
backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java
浏览文件 @
725c3024
...
@@ -997,7 +997,15 @@ public class ApiDefinitionService {
...
@@ -997,7 +997,15 @@ public class ApiDefinitionService {
List
<
ApiDefinition
>
apiList
=
apiDefinitionMapper
.
selectByExample
(
example
);
List
<
ApiDefinition
>
apiList
=
apiDefinitionMapper
.
selectByExample
(
example
);
List
<
String
>
apiIdList
=
new
ArrayList
<>();
List
<
String
>
apiIdList
=
new
ArrayList
<>();
boolean
urlSuffixEndEmpty
=
false
;
if
(
urlSuffix
.
endsWith
(
"/"
))
{
urlSuffixEndEmpty
=
true
;
urlSuffix
=
urlSuffix
+
"testMock"
;
}
String
[]
urlParams
=
urlSuffix
.
split
(
"/"
);
String
[]
urlParams
=
urlSuffix
.
split
(
"/"
);
if
(
urlSuffixEndEmpty
)
{
urlParams
[
urlParams
.
length
-
1
]
=
""
;
}
for
(
ApiDefinition
api
:
apiList
)
{
for
(
ApiDefinition
api
:
apiList
)
{
String
path
=
api
.
getPath
();
String
path
=
api
.
getPath
();
if
(
path
.
startsWith
(
"/"
))
{
if
(
path
.
startsWith
(
"/"
))
{
...
@@ -1007,7 +1015,7 @@ public class ApiDefinitionService {
...
@@ -1007,7 +1015,7 @@ public class ApiDefinitionService {
String
[]
pathArr
=
path
.
split
(
"/"
);
String
[]
pathArr
=
path
.
split
(
"/"
);
if
(
pathArr
.
length
==
urlParams
.
length
)
{
if
(
pathArr
.
length
==
urlParams
.
length
)
{
boolean
isFetch
=
true
;
boolean
isFetch
=
true
;
for
(
int
i
=
0
;
i
<
pathArr
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
urlParams
.
length
;
i
++)
{
String
pathItem
=
pathArr
[
i
];
String
pathItem
=
pathArr
[
i
];
if
(!(
pathItem
.
startsWith
(
"{"
)
&&
pathItem
.
endsWith
(
"}"
)))
{
if
(!(
pathItem
.
startsWith
(
"{"
)
&&
pathItem
.
endsWith
(
"}"
)))
{
if
(!
StringUtils
.
equals
(
pathArr
[
i
],
urlParams
[
i
]))
{
if
(!
StringUtils
.
equals
(
pathArr
[
i
],
urlParams
[
i
]))
{
...
...
backend/src/main/java/io/metersphere/api/service/ApiTestEnvironmentService.java
浏览文件 @
725c3024
...
@@ -77,24 +77,24 @@ public class ApiTestEnvironmentService {
...
@@ -77,24 +77,24 @@ public class ApiTestEnvironmentService {
* @param projectId
* @param projectId
* @return
* @return
*/
*/
public
synchronized
ApiTestEnvironmentWithBLOBs
getMockEnvironmentByProjectId
(
String
projectId
,
String
baseUrl
)
{
public
synchronized
ApiTestEnvironmentWithBLOBs
getMockEnvironmentByProjectId
(
String
projectId
,
String
protocal
,
String
baseUrl
)
{
String
apiName
=
MockConfigStaticData
.
MOCK_EVN_NAME
;
String
apiName
=
MockConfigStaticData
.
MOCK_EVN_NAME
;
ApiTestEnvironmentWithBLOBs
returnModel
=
null
;
ApiTestEnvironmentWithBLOBs
returnModel
=
null
;
ApiTestEnvironmentExample
example
=
new
ApiTestEnvironmentExample
();
ApiTestEnvironmentExample
example
=
new
ApiTestEnvironmentExample
();
example
.
createCriteria
().
andProjectIdEqualTo
(
projectId
).
andNameEqualTo
(
apiName
);
example
.
createCriteria
().
andProjectIdEqualTo
(
projectId
).
andNameEqualTo
(
apiName
);
List
<
ApiTestEnvironmentWithBLOBs
>
list
=
this
.
selectByExampleWithBLOBs
(
example
);
List
<
ApiTestEnvironmentWithBLOBs
>
list
=
this
.
selectByExampleWithBLOBs
(
example
);
if
(
list
.
isEmpty
())
{
if
(
list
.
isEmpty
())
{
returnModel
=
this
.
genHttpApiTestEnvironmentByUrl
(
projectId
,
apiName
,
baseUrl
);
returnModel
=
this
.
genHttpApiTestEnvironmentByUrl
(
projectId
,
protocal
,
apiName
,
baseUrl
);
this
.
add
(
returnModel
);
this
.
add
(
returnModel
);
}
else
{
}
else
{
returnModel
=
list
.
get
(
0
);
returnModel
=
list
.
get
(
0
);
returnModel
=
this
.
checkMockEvnIsRightful
(
returnModel
,
projectId
,
apiName
,
baseUrl
);
returnModel
=
this
.
checkMockEvnIsRightful
(
returnModel
,
pro
tocal
,
pro
jectId
,
apiName
,
baseUrl
);
}
}
return
returnModel
;
return
returnModel
;
}
}
private
ApiTestEnvironmentWithBLOBs
checkMockEvnIsRightful
(
ApiTestEnvironmentWithBLOBs
returnModel
,
String
projectId
,
String
name
,
String
url
)
{
private
ApiTestEnvironmentWithBLOBs
checkMockEvnIsRightful
(
ApiTestEnvironmentWithBLOBs
returnModel
,
String
pro
tocal
,
String
pro
jectId
,
String
name
,
String
url
)
{
boolean
needUpdate
=
tru
e
;
boolean
needUpdate
=
fals
e
;
if
(
returnModel
.
getConfig
()
!=
null
)
{
if
(
returnModel
.
getConfig
()
!=
null
)
{
try
{
try
{
JSONObject
configObj
=
JSONObject
.
parseObject
(
returnModel
.
getConfig
());
JSONObject
configObj
=
JSONObject
.
parseObject
(
returnModel
.
getConfig
());
...
@@ -115,27 +115,24 @@ public class ApiTestEnvironmentService {
...
@@ -115,27 +115,24 @@ public class ApiTestEnvironmentService {
}
}
if
(
needUpdate
)
{
if
(
needUpdate
)
{
String
id
=
returnModel
.
getId
();
String
id
=
returnModel
.
getId
();
returnModel
=
this
.
genHttpApiTestEnvironmentByUrl
(
projectId
,
name
,
url
);
returnModel
=
this
.
genHttpApiTestEnvironmentByUrl
(
projectId
,
protocal
,
name
,
url
);
returnModel
.
setId
(
id
);
returnModel
.
setId
(
id
);
apiTestEnvironmentMapper
.
updateByPrimaryKeyWithBLOBs
(
returnModel
);
apiTestEnvironmentMapper
.
updateByPrimaryKeyWithBLOBs
(
returnModel
);
}
}
return
returnModel
;
return
returnModel
;
}
}
private
ApiTestEnvironmentWithBLOBs
genHttpApiTestEnvironmentByUrl
(
String
projectId
,
String
name
,
String
url
)
{
private
ApiTestEnvironmentWithBLOBs
genHttpApiTestEnvironmentByUrl
(
String
projectId
,
String
protocal
,
String
name
,
String
url
)
{
String
protocol
=
""
;
String
socket
=
""
;
String
socket
=
""
;
if
(
url
.
startsWith
(
"http://"
))
{
if
(
url
.
startsWith
(
"http://"
))
{
protocol
=
"http"
;
url
=
url
.
substring
(
7
);
url
=
url
.
substring
(
7
);
}
else
if
(
url
.
startsWith
(
"https://"
))
{
}
else
if
(
url
.
startsWith
(
"https://"
))
{
protocol
=
"https"
;
url
=
url
.
substring
(
8
);
url
=
url
.
substring
(
8
);
}
}
socket
=
url
;
socket
=
url
;
String
portStr
=
""
;
String
portStr
=
""
;
String
ipStr
=
protoco
l
;
String
ipStr
=
ur
l
;
if
(
url
.
contains
(
":"
)
&&
!
url
.
endsWith
(
":"
))
{
if
(
url
.
contains
(
":"
)
&&
!
url
.
endsWith
(
":"
))
{
String
[]
urlArr
=
url
.
split
(
":"
);
String
[]
urlArr
=
url
.
split
(
":"
);
int
port
=
-
1
;
int
port
=
-
1
;
...
@@ -159,13 +156,6 @@ public class ApiTestEnvironmentService {
...
@@ -159,13 +156,6 @@ public class ApiTestEnvironmentService {
commonConfigObj
.
put
(
"hosts"
,
new
String
[]{});
commonConfigObj
.
put
(
"hosts"
,
new
String
[]{});
JSONObject
httpConfig
=
new
JSONObject
();
JSONObject
httpConfig
=
new
JSONObject
();
// httpConfig.put("socket", url);
// httpConfig.put("domain", ipStr);
// httpConfig.put("headers", variablesArr);
// httpConfig.put("protocol", protocol);
// if (StringUtils.isNotEmpty(portStr)) {
// httpConfig.put("port", portStr);
// }
httpConfig
.
put
(
"socket"
,
null
);
httpConfig
.
put
(
"socket"
,
null
);
httpConfig
.
put
(
"isMock"
,
true
);
httpConfig
.
put
(
"isMock"
,
true
);
httpConfig
.
put
(
"domain"
,
null
);
httpConfig
.
put
(
"domain"
,
null
);
...
@@ -181,7 +171,7 @@ public class ApiTestEnvironmentService {
...
@@ -181,7 +171,7 @@ public class ApiTestEnvironmentService {
httpItem
.
put
(
"id"
,
UUID
.
randomUUID
().
toString
());
httpItem
.
put
(
"id"
,
UUID
.
randomUUID
().
toString
());
httpItem
.
put
(
"type"
,
"NONE"
);
httpItem
.
put
(
"type"
,
"NONE"
);
httpItem
.
put
(
"socket"
,
socket
);
httpItem
.
put
(
"socket"
,
socket
);
httpItem
.
put
(
"protocol"
,
protoc
o
l
);
httpItem
.
put
(
"protocol"
,
protoc
a
l
);
JSONArray
protocolVariablesArr
=
new
JSONArray
();
JSONArray
protocolVariablesArr
=
new
JSONArray
();
Map
<
String
,
Object
>
protocolMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
protocolMap
=
new
HashMap
<>();
protocolMap
.
put
(
"enable"
,
true
);
protocolMap
.
put
(
"enable"
,
true
);
...
...
backend/src/main/java/io/metersphere/api/service/MockConfigService.java
浏览文件 @
725c3024
...
@@ -299,7 +299,12 @@ public class MockConfigService {
...
@@ -299,7 +299,12 @@ public class MockConfigService {
for
(
int
i
=
0
;
i
<
statusCodeArr
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
statusCodeArr
.
size
();
i
++)
{
JSONObject
obj
=
statusCodeArr
.
getJSONObject
(
i
);
JSONObject
obj
=
statusCodeArr
.
getJSONObject
(
i
);
if
(
obj
.
containsKey
(
"name"
)
&&
obj
.
containsKey
(
"value"
)
&&
StringUtils
.
isNotEmpty
(
obj
.
getString
(
"name"
)))
{
if
(
obj
.
containsKey
(
"name"
)
&&
obj
.
containsKey
(
"value"
)
&&
StringUtils
.
isNotEmpty
(
obj
.
getString
(
"name"
)))
{
response
.
setHeader
(
obj
.
getString
(
"name"
),
obj
.
getString
(
"value"
));
// response.setHeader(obj.getString("name"), obj.getString("value"));
try
{
int
headInt
=
Integer
.
parseInt
(
obj
.
getString
(
"name"
));
response
.
setStatus
(
headInt
);
}
catch
(
Exception
e
)
{
}
}
}
}
}
}
}
...
...
backend/src/main/java/io/metersphere/base/domain/Project.java
浏览文件 @
725c3024
...
@@ -32,4 +32,6 @@ public class Project implements Serializable {
...
@@ -32,4 +32,6 @@ public class Project implements Serializable {
private
Boolean
customNum
;
private
Boolean
customNum
;
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
private
String
protocal
;
}
}
\ No newline at end of file
backend/src/main/java/io/metersphere/controller/ProjectController.java
浏览文件 @
725c3024
...
@@ -75,7 +75,7 @@ public class ProjectController {
...
@@ -75,7 +75,7 @@ public class ProjectController {
if
(
requestUrl
.
contains
(
"/project/add"
))
{
if
(
requestUrl
.
contains
(
"/project/add"
))
{
baseUrl
=
requestUrl
.
split
(
"/project/add"
)[
0
];
baseUrl
=
requestUrl
.
split
(
"/project/add"
)[
0
];
}
}
apiTestEnvironmentService
.
getMockEnvironmentByProjectId
(
returnModel
.
getId
(),
baseUrl
);
apiTestEnvironmentService
.
getMockEnvironmentByProjectId
(
returnModel
.
getId
(),
project
.
getProtocal
(),
baseUrl
);
return
returnModel
;
return
returnModel
;
}
}
...
...
frontend/src/business/components/api/definition/components/complete/EditCompleteHTTPApi.vue
浏览文件 @
725c3024
...
@@ -294,8 +294,10 @@
...
@@ -294,8 +294,10 @@
this
.
httpForm
.
modulePath
=
data
.
path
;
this
.
httpForm
.
modulePath
=
data
.
path
;
},
},
initMockEnvironment
()
{
initMockEnvironment
()
{
var
protocol
=
document
.
location
.
protocol
;
protocol
=
protocol
.
substring
(
0
,
protocol
.
indexOf
(
"
:
"
));
let
url
=
"
/api/definition/getMockEnvironment/
"
;
let
url
=
"
/api/definition/getMockEnvironment/
"
;
this
.
$get
(
url
+
this
.
projectId
,
response
=>
{
this
.
$get
(
url
+
this
.
projectId
+
"
/
"
+
protocol
,
response
=>
{
this
.
mockEnvironment
=
response
.
data
;
this
.
mockEnvironment
=
response
.
data
;
let
httpConfig
=
JSON
.
parse
(
this
.
mockEnvironment
.
config
);
let
httpConfig
=
JSON
.
parse
(
this
.
mockEnvironment
.
config
);
if
(
httpConfig
!=
null
)
{
if
(
httpConfig
!=
null
)
{
...
...
frontend/src/business/components/settings/project/MsProject.vue
浏览文件 @
725c3024
...
@@ -241,8 +241,11 @@ export default {
...
@@ -241,8 +241,11 @@ export default {
if
(
valid
)
{
if
(
valid
)
{
let
saveType
=
"
add
"
;
let
saveType
=
"
add
"
;
if
(
this
.
form
.
id
)
{
if
(
this
.
form
.
id
)
{
saveType
=
"
update
"
saveType
=
"
update
"
;
}
}
var
protocol
=
document
.
location
.
protocol
;
protocol
=
protocol
.
substring
(
0
,
protocol
.
indexOf
(
"
:
"
));
this
.
form
.
protocal
=
protocol
;
this
.
result
=
this
.
$post
(
"
/project/
"
+
saveType
,
this
.
form
,
()
=>
{
this
.
result
=
this
.
$post
(
"
/project/
"
+
saveType
,
this
.
form
,
()
=>
{
this
.
createVisible
=
false
;
this
.
createVisible
=
false
;
this
.
list
();
this
.
list
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录