Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
cd58d0a0
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
cd58d0a0
编写于
8月 21, 2022
作者:
Q
quanli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updata 0906
Signed-off-by:
N
quanli
<
quanli1@huawei.com
>
上级
8e413a0f
变更
7
展开全部
显示空白变更内容
内联
并排
Showing
7 changed file
with
339 addition
and
441 deletion
+339
-441
communication/wifi_p2p/Test.json
communication/wifi_p2p/Test.json
+2
-1
communication/wifi_p2p/src/main/js/test/WifiP2PFunction.test.js
...ication/wifi_p2p/src/main/js/test/WifiP2PFunction.test.js
+226
-285
communication/wifi_standard/src/main/js/test/WifiCandidateNetWork.test.js
...fi_standard/src/main/js/test/WifiCandidateNetWork.test.js
+3
-7
communication/wifi_standard/src/main/js/test/WifiStationEvent.test.js
...n/wifi_standard/src/main/js/test/WifiStationEvent.test.js
+39
-75
communication/wifi_standard/src/main/js/test/WifiStationFunctions.test.js
...fi_standard/src/main/js/test/WifiStationFunctions.test.js
+61
-56
location/geolocation_standard/src/main/js/default/test/GetCountryCode.test.js
..._standard/src/main/js/default/test/GetCountryCode.test.js
+3
-2
location/geolocation_standard/src/main/js/default/test/LocationTest.test.js
...on_standard/src/main/js/default/test/LocationTest.test.js
+5
-15
未找到文件。
communication/wifi_p2p/Test.json
浏览文件 @
cd58d0a0
...
...
@@ -4,6 +4,7 @@
"type"
:
"OHJSUnitTest"
,
"test-timeout"
:
"600000"
,
"shell-timeout"
:
"600000"
,
"testcase-timeout"
:
"600000"
,
"bundle-name"
:
"ohos.acts.communication.wifi.wifidevice"
,
"package-name"
:
"ohos.acts.communication.wifi.wifidevice"
},
...
...
communication/wifi_p2p/src/main/js/test/WifiP2PFunction.test.js
浏览文件 @
cd58d0a0
此差异已折叠。
点击以展开。
communication/wifi_standard/src/main/js/test/WifiCandidateNetWork.test.js
浏览文件 @
cd58d0a0
...
...
@@ -236,6 +236,7 @@ export default function actsWifiCandidateNetWorkTest() {
expect
(
true
).
assertEqual
(
netWorkId
!=
-
1
);
}).
catch
((
error
)
=>
{
console
.
error
(
'
[wifi_test]add 17th CandidateConfig promise failed ->
'
+
JSON
.
stringify
(
error
));
expect
(
true
).
assertEqual
(
error
==
-
1
);
});
let
getCandidateResult
=
wifi
.
getCandidateConfigs
();
console
.
info
(
"
[wifi_test]wifi get 16 CandidateConfigs result :
"
+
JSON
.
stringify
(
getCandidateResult
));
...
...
@@ -294,7 +295,6 @@ export default function actsWifiCandidateNetWorkTest() {
(
err
,
ret
)
=>
{
if
(
err
)
{
console
.
info
(
"
[wifi_test]removeCandidate callback failed :
"
+
JSON
.
stringify
(
err
));
}
console
.
info
(
"
[wifi_test] removeCandidateConfig callback result:
"
+
JSON
.
stringify
(
ret
));
expect
(
ret
).
assertTrue
();
...
...
@@ -348,7 +348,6 @@ export default function actsWifiCandidateNetWorkTest() {
await
wifi
.
getLinkedInfo
()
.
then
((
result
)
=>
{
console
.
info
(
"
[wifi_test]get wifi link [promise] ->
"
+
JSON
.
stringify
(
result
));
expect
(
JSON
.
stringify
(
result
)).
assertContain
(
'
band
'
);
done
();
}).
catch
((
error
)
=>
{
console
.
info
(
"
[wifi_test]promise then error.
"
+
JSON
.
stringify
(
error
));
...
...
@@ -378,15 +377,13 @@ export default function actsWifiCandidateNetWorkTest() {
expect
(
ret
).
assertTrue
();
}).
catch
((
error
)
=>
{
console
.
error
(
'
[wifi_test]addUntrustedConfig promise failed ->
'
+
JSON
.
stringify
(
error
));
});
await
wifi
.
removeUntrustedConfig
(
wifiDeviceConfig
)
.
then
(
ret
=>
{
console
.
info
(
"
[wifi_test]removeUntrustedConfig promise:
"
+
JSON
.
stringify
(
ret
));
expect
(
True
).
assertTrue
();
expect
(
ret
).
assertTrue
();
}).
catch
((
error
)
=>
{
console
.
error
(
'
[wifi_test]removeUntrustedConfig promise failed ->
'
+
JSON
.
stringify
(
error
));
});
done
();
})
...
...
@@ -412,7 +409,6 @@ export default function actsWifiCandidateNetWorkTest() {
(
err
,
ret
)
=>
{
if
(
err
)
{
console
.
info
(
"
[wifi_test]addUntrustedConfig callback failed :
"
+
JSON
.
stringify
(
err
));
}
console
.
info
(
"
[wifi_test]addUntrustedConfig callback result:
"
+
JSON
.
stringify
(
ret
));
expect
(
ret
).
assertTrue
();
...
...
@@ -427,7 +423,6 @@ export default function actsWifiCandidateNetWorkTest() {
(
err
,
ret
)
=>
{
if
(
err
)
{
console
.
info
(
"
[wifi_test]removeUntrustedConfig callback failed
"
+
JSON
.
stringify
(
err
));
}
console
.
info
(
"
[wifi_test]removeUntrustedConfig callback result:
"
+
JSON
.
stringify
(
ret
));
expect
(
ret
).
assertTrue
();
...
...
@@ -440,3 +435,4 @@ export default function actsWifiCandidateNetWorkTest() {
})
})
}
communication/wifi_standard/src/main/js/test/WifiStationEvent.test.js
浏览文件 @
cd58d0a0
...
...
@@ -74,128 +74,92 @@ export default function actsWifiEventTest() {
/**
* @tc.number SUB_Communication_WiFi_Event_Test_0001
* @tc.name test
w
ifiStateChange
* @tc.name test
W
ifiStateChange
* @tc.desc Test wifiStateChange callback
* @tc.type Function
* @tc.level Level 3
*/
it
(
'
SUB_Communication_WiFi_Event_Test_0001
'
,
0
,
async
function
(
done
)
{
wifi
.
on
(
'
wifiStateChange
'
,
async
result
=>
{
console
.
info
(
"
[wifi_test]wifiStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
let
promise
=
new
Promise
((
resolve
)
=>
{
wifi
.
off
(
'
wifiStateChange
'
,
result
=>
{
console
.
info
(
"
[wifi_test]offwifiStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
resolve
()
});
})
await
promise
.
then
(
done
)
});
let
wifiState
=
"
wifiStateChange
"
;
let
wifiStateChangeCallback
=
result
=>
{
console
.
info
(
"
[wifi_test]wifiStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
}
wifi
.
on
(
wifiState
,
wifiStateChangeCallback
);
await
sleep
(
3000
);
wifi
.
off
(
wifiState
,
wifiStateChangeCallback
);
done
();
})
/**
* @tc.number SUB_Communication_WiFi_Event_Test_0002
* @tc.name test
w
ifiConnectionChange
* @tc.name test
W
ifiConnectionChange
* @tc.desc Test wifiConnectionChange callback
* @tc.type Function
* @tc.level Level 3
*/
it
(
'
SUB_Communication_WiFi_Event_Test_0002
'
,
0
,
async
function
(
done
)
{
wifi
.
on
(
'
wifiConnectionChange
'
,
async
result
=>
{
console
.
info
(
"
[wifi_test]wifiConnectionChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
let
promise
=
new
Promise
((
resolve
)
=>
{
console
.
info
(
'
[wifi_test] offwifiConnectionChange test start ...
'
);
wifi
.
off
(
'
wifiConnectionChange
'
,
result
=>
{
console
.
info
(
"
[wifi_test]offwifiConnectionChange callback result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
resolve
()
});
})
await
promise
.
then
(
done
)
});
let
wifiConnectionState
=
"
wifiConnectionChange
"
;
let
wifiConnectionChangeCallback
=
result
=>
{
console
.
info
(
"
[wifi_test]wifiConnectionChange callback, result:
"
+
JSON
.
stringify
(
result
));
}
wifi
.
on
(
wifiConnectionState
,
wifiConnectionChangeCallback
);
await
sleep
(
3000
);
wifi
.
off
(
wifiConnectionState
,
wifiConnectionChangeCallback
);
done
();
})
/**
* @tc.number SUB_Communication_WiFi_Event_Test_0003
* @tc.name test
w
ifiScanStateChange
* @tc.desc Test
Test
wifiScanStateChange callback
* @tc.name test
W
ifiScanStateChange
* @tc.desc Test wifiScanStateChange callback
* @tc.type Function
* @tc.level Level 3
*/
it
(
'
SUB_Communication_WiFi_Event_Test_0003
'
,
0
,
async
function
(
done
)
{
wifi
.
on
(
'
wifiScanStateChange
'
,
async
result
=>
{
console
.
info
(
"
[wifi_test]wifiScanStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
let
promise
=
new
Promise
((
resolve
)
=>
{
console
.
info
(
'
[wifi_test]offwifiScanStateChange test start ...
'
);
wifi
.
off
(
'
wifiScanStateChange
'
,
result
=>
{
console
.
info
(
"
[wifi_test]offwifiScanStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
resolve
()
});
})
await
promise
.
then
(
done
)
});
let
wifiScanState
=
"
wifiScanStateChange
"
;
let
wifiScanStateChangeCallback
=
result
=>
{
console
.
info
(
"
[wifi_test]wifiScanStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
}
wifi
.
on
(
wifiScanState
,
wifiScanStateChangeCallback
);
let
scanResult
=
wifi
.
scan
();
await
sleep
(
3000
);
wifi
.
off
(
wifiScanState
,
wifiScanStateChangeCallback
);
done
();
})
/**
* @tc.number SUB_Communication_WiFi_Event_Test_0004
* @tc.name test
w
ifiRssiChange
* @tc.name test
W
ifiRssiChange
* @tc.desc Test wifiRssiChange callback
* @tc.type Function
* @tc.level Level 3
*/
it
(
'
SUB_Communication_WiFi_Event_Test_0004
'
,
0
,
async
function
(
done
)
{
wifi
.
on
(
'
wifiRssiChange
'
,
async
result
=>
{
console
.
info
(
"
[wifi_test]wifiRssiChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
let
promise
=
new
Promise
((
resolve
)
=>
{
console
.
info
(
'
[wifi_test] offwifiRssiChange test start ...
'
);
wifi
.
off
(
'
wifiRssiChange
'
,
result
=>
{
console
.
info
(
"
[wifi_test]offwifiRssiChange callback, result:
"
+
JSON
.
stringify
(
result
));
expect
(
true
).
assertEqual
(
result
!=
null
);
resolve
()
});
})
await
promise
.
then
(
done
)
});
let
wifiRssiState
=
"
wifiRssiChange
"
;
let
wifiRssiChangeCallback
=
result
=>
{
console
.
info
(
"
[wifi_test]wifiRssiChange callback, result:
"
+
JSON
.
stringify
(
result
));
}
wifi
.
on
(
wifiRssiState
,
wifiRssiChangeCallback
);
await
sleep
(
3000
);
wifi
.
off
(
wifiRssiState
,
wifiRssiChangeCallback
);
done
();
})
/**
* @tc.number SUB_Communication_WiFi_Event_Test_0005
* @tc.name test
h
otspotStateChange
* @tc.name test
H
otspotStateChange
* @tc.desc Test hotspotStateChange api.
* @tc.type Function
* @tc.level Level 3
*/
it
(
'
SUB_Communication_WiFi_Event_Test_0005
'
,
0
,
async
function
(
done
)
{
console
.
info
(
"
[wifi_test]hotspotStateChange On test
"
);
try
{
await
wifi
.
on
(
'
hotspotStateChange
'
,
(
data
)
=>
{
console
.
info
(
"
[wifi_test] hotspotStateChange On ->
"
+
data
);
expect
(
true
).
assertEqual
(
data
!=
null
);
});
}
catch
(
e
)
{
expect
(
null
).
assertFail
();
}
console
.
info
(
"
[wifi_test]hotspotStateChange Off test
"
);
try
{
await
wifi
.
off
(
'
hotspotStateChange
'
,
(
data
)
=>
{
console
.
info
(
"
[wifi_test] hotspotStateChange Off :
"
+
data
);
expect
(
true
).
assertEqual
(
data
!=
null
);
});
}
catch
(
e
)
{
expect
(
null
).
assertFail
();
let
hotspotState
=
"
hotspotStateChange
"
;
let
hotspotStateChangeCallback
=
result
=>
{
console
.
info
(
"
[wifi_test]hotspotStateChange callback, result:
"
+
JSON
.
stringify
(
result
));
}
wifi
.
on
(
hotspotState
,
hotspotStateChangeCallback
);
await
sleep
(
3000
);
wifi
.
off
(
hotspotState
,
hotspotStateChangeCallback
);
done
();
})
console
.
log
(
"
*************[wifi_test] start wifi js unit test end*************
"
);
...
...
communication/wifi_standard/src/main/js/test/WifiStationFunctions.test.js
浏览文件 @
cd58d0a0
...
...
@@ -76,8 +76,8 @@ export default function actsWifiFunctionsTest() {
/**
* @tc.number SUB_Communication_WiFi_XTS_Sta_0002
* @tc.name test
g
etScanInfos
* @tc.desc Test get
to
ScanInfos promise and callback API functionality.
* @tc.name test
G
etScanInfos
* @tc.desc Test getScanInfos promise and callback API functionality.
* @tc.type Function
* @tc.level Level 0
*/
...
...
@@ -87,10 +87,10 @@ export default function actsWifiFunctionsTest() {
await
wifi
.
getScanInfos
()
.
then
(
result
=>
{
let
clen
=
Object
.
keys
(
result
).
length
;
expect
(
clen
).
assertLarger
(
0
);
expect
(
true
).
assertEqual
(
clen
>=
0
);
console
.
info
(
"
[wifi_test]getScanInfos promise result:
"
+
JSON
.
stringify
(
result
));
});
function
getScan
Infos
()
{
function
getScan
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
wifi
.
getScanInfos
(
(
err
,
result
)
=>
{
...
...
@@ -116,14 +116,14 @@ export default function actsWifiFunctionsTest() {
});
});
}
await
getScan
Infos
();
await
getScan
();
done
();
})
/**
* @tc.number SUB_Communication_WiFi_XTS_Sta_0021
* @tc.name test
g
etSignalLevel
* @tc.desc Test get
SignalLevel
API functionality..
* @tc.name test
G
etSignalLevel
* @tc.desc Test get
SignalLevel
API functionality..
* @tc.type Function
* @tc.level Level 3
*/
...
...
@@ -230,14 +230,13 @@ export default function actsWifiFunctionsTest() {
/**
* @tc.number SUB_Communication_WiFi_XTS_Sta_0004
* @tc.name test
g
etLinkedInfo
* @tc.name test
G
etLinkedInfo
* @tc.desc Test Test getLinkedInfo and getIpInfo information.
* @tc.type Function
* @tc.level Level 1
*/
it
(
'
SUB_Communication_WiFi_XTS_Sta_0004
'
,
0
,
async
function
(
done
)
{
let
isConnectedResult
=
wifi
.
isConnected
();
expect
(
isConnectedResult
).
assertFalse
();
let
ipInfoResult
=
wifi
.
getIpInfo
();
expect
(
JSON
.
stringify
(
ipInfoResult
)).
assertContain
(
"
gateway
"
);
let
ipAddress
=
resolveIP
(
ipInfoResult
.
ipAddress
);
...
...
@@ -250,15 +249,17 @@ export default function actsWifiFunctionsTest() {
await
wifi
.
getLinkedInfo
()
.
then
((
result
)
=>
{
console
.
info
(
"
[wifi_test]get wifi link promise:
"
+
JSON
.
stringify
(
result
));
expect
(
JSON
.
stringify
(
result
)).
assertContain
(
'
band
'
);
done
();
}).
catch
((
error
)
=>
{
console
.
info
(
"
[wifi_test]promise then error.
"
+
JSON
.
stringify
(
error
));
expect
().
assertFail
();
});
function
getLinked
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
wifi
.
getLinkedInfo
(
(
err
,
result
)
=>
{
if
(
err
)
{
if
(
err
)
{
console
.
log
(
"
[wifi_test]wifi getLinkedInfo failed
"
+
err
);
}
let
clen
=
Object
.
keys
(
result
).
length
;
...
...
@@ -297,23 +298,27 @@ export default function actsWifiFunctionsTest() {
if
(
state
==
connState
.
UNKNOWN
)
{
expect
(
true
).
assertEqual
(
state
==
7
);
}
done
();
resolve
();
});
});
}
await
getLinked
();
done
();
})
/**
* @tc.number SUB_Communication_WiFi_XTS_Sta_0034
* @tc.name test
g
etScanInfosSync
* @tc.name test
G
etScanInfosSync
* @tc.desc Test getScanInfos Sync API functionality.
* @tc.type Function
* @tc.level Level 0
*/
it
(
'
SUB_Communication_WiFi_XTS_Sta_0034
'
,
0
,
async
function
(
done
)
{
let
getScanInfosResult
=
wifi
.
getScanInfosSync
();
console
.
info
(
"
[wifi_test]wifi get
to
ScanInfosSync result :
"
+
JSON
.
stringify
(
getScanInfosResult
));
console
.
info
(
"
[wifi_test]wifi getScanInfosSync result :
"
+
JSON
.
stringify
(
getScanInfosResult
));
let
scanInfolenth
=
Object
.
keys
(
getScanInfosResult
).
length
;
console
.
info
(
"
[wifi_test]wifi ScanInfosSync length result :
"
+
JSON
.
stringify
(
scanInfolenth
));
expect
(
scanInfolenth
).
assertLarger
(
0
);
expect
(
true
).
assertEqual
(
scanInfolenth
>=
0
);
done
();
})
console
.
log
(
"
*************[wifi_test] start wifi js unit test end*************
"
);
...
...
location/geolocation_standard/src/main/js/default/test/GetCountryCode.test.js
浏览文件 @
cd58d0a0
...
...
@@ -122,11 +122,12 @@ describe('geolocationTest_4', function () {
it
(
'
SUB_HSS_LocationSystem_CountryCode_0200
'
,
0
,
async
function
(
done
)
{
function
getCountryCodeCallback
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
geolocation
.
getCountryCode
((
err
)
=>
{
geolocation
.
getCountryCode
((
err
,
data
)
=>
{
if
(
err
)
{
return
console
.
info
(
"
getCountryCode callback err:
"
+
JSON
.
stringify
(
err
));
}
else
{
console
.
info
(
"
getCountryCode callback success
"
);
console
.
info
(
"
getCountryCode callback success
"
+
JSON
.
stringify
(
data
));
expect
(
true
).
assertEqual
(
data
!=
null
);
}
resolve
();
})
...
...
location/geolocation_standard/src/main/js/default/test/LocationTest.test.js
浏览文件 @
cd58d0a0
...
...
@@ -164,6 +164,7 @@ describe('geolocationTest_geo3', function () {
}
geolocation
.
on
(
'
locationServiceState
'
,
locationServiceState
);
geolocation
.
off
(
'
locationServiceState
'
,
locationServiceState
);
expect
(
true
).
assertTrue
();
done
();
})
...
...
@@ -388,14 +389,14 @@ describe('geolocationTest_geo3', function () {
})
/**
* @tc.number SUB_HSS_LocationSystem_SingleLoc_
01
00
* @tc.number SUB_HSS_LocationSystem_SingleLoc_
10
00
* @tc.name Test getCurrentLocation
* @tc.desc Initiate a single location request and set the location reporting precision.
* @tc.size MEDIUM
* @tc.type Function
* @tc.level Level 2
*/
it
(
'
SUB_HSS_LocationSystem_SingleLoc_
01
00
'
,
0
,
async
function
(
done
)
{
it
(
'
SUB_HSS_LocationSystem_SingleLoc_
10
00
'
,
0
,
async
function
(
done
)
{
let
currentLocationRequest
=
{
"
priority
"
:
0x0200
,
"
scenario
"
:
0x0300
,
"
timeoutMs
"
:
1000
,
"
maxAccuracy
"
:
5
};
let
currentLocationRequest1
=
{
"
priority
"
:
0x0200
,
"
scenario
"
:
0x0300
,
"
timeoutMs
"
:
1000
,
"
maxAccuracy
"
:
2
};
await
geolocation
.
getCurrentLocation
(
currentLocationRequest
).
then
((
result
)
=>
{
...
...
@@ -716,14 +717,14 @@ describe('geolocationTest_geo3', function () {
})
/**
* @tc.number SUB_HSS_LocationSystem_LocRequest_
01
00
* @tc.number SUB_HSS_LocationSystem_LocRequest_
10
00
* @tc.name Test locationChange
* @tc.desc Initiate a specified continuous location request and set the reporting interval.
* @tc.size MEDIUM
* @tc.type Function
* @tc.level Level 2
*/
it
(
'
SUB_HSS_LocationSystem_LocRequest_
01
00
'
,
0
,
async
function
(
done
)
{
it
(
'
SUB_HSS_LocationSystem_LocRequest_
10
00
'
,
0
,
async
function
(
done
)
{
enableLocationSwitch
();
let
requestInfo
=
{
"
priority
"
:
0x200
,
"
scenario
"
:
0x301
,
"
timeInterval
"
:
3
,
"
distanceInterval
"
:
0
,
"
maxAccuracy
"
:
0
};
...
...
@@ -1060,17 +1061,6 @@ describe('geolocationTest_geo3', function () {
"
distanceInterval
"
:
0
,
"
maxAccuracy
"
:
0
};
geolocation
.
on
(
'
cachedGnssLocationsReporting
'
,
CachedGnssLoactionsRequest
,
cachedLocationsCb
);
geolocation
.
off
(
'
cachedGnssLocationsReporting
'
,
cachedLocationsCb
);
// geolocation.getCachedGnssLocationsSize((err, data) => {
// if (err) {
// console.info('[lbs_js] getCachedGnssLocationsSize callback err is : ' + err);
// expect(true).assertTrue(err != null);
// done();
// }else {
// console.info("[lbs_js] getCachedGnssLocationsSize callback data is: " + JSON.stringify(data));
// expect(true).assertTrue(data != null);
// done()
// }
// });
function
getCachedGnssLocationsSizeCallback
(){
return
new
Promise
((
resolve
,
reject
)
=>
{
geolocation
.
getCachedGnssLocationsSize
((
err
,
data
)
=>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录