Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
d378d0f7
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d378d0f7
编写于
3月 25, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 25, 2023
浏览文件
操作
浏览文件
下载
差异文件
!16399 RDB文档优化
Merge pull request !16399 from lihuihui/master
上级
93b7c65a
1e452331
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
240 addition
and
34 deletion
+240
-34
zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
+99
-12
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
...cation-dev/reference/apis/js-apis-data-relationalStore.md
+141
-22
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-data-rdb.md
浏览文件 @
d378d0f7
...
...
@@ -349,6 +349,10 @@ inDevices(devices: Array<string>): RdbPredicates
同步分布式数据库时连接到组网内指定的远程设备。
> **说明:**
>
> 其中devices通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
...
...
@@ -366,8 +370,24 @@ inDevices(devices: Array<string>): RdbPredicates
**示例:**
```
js
let
predicates
=
new
data_rdb
.
RdbPredicates
(
"
EMPLOYEE
"
)
predicates
.
inDevices
([
'
12345678abcde
'
])
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
data_rdb
.
RdbPredicates
(
"
EMPLOYEE
"
);
predicates
.
inDevices
(
deviceIds
);
```
### inAllDevices<sup>8+</sup>
...
...
@@ -1808,7 +1828,11 @@ promise.then(() => {
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback
<
string
>
): void
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
...
...
@@ -1818,14 +1842,28 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备
。
|
| table | string | 是 |
本地表名。
|
| device | string | 是 | 远程设备
ID 。
|
| table | string | 是 |
远程设备的本地表名
|
| callback | AsyncCallback
<
string
>
| 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
**示例:**
```
js
rdbStore
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
rdbStore
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
if
(
err
)
{
console
.
info
(
'
ObtainDistributedTableName failed, err:
'
+
err
)
return
...
...
@@ -1838,7 +1876,11 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err,
obtainDistributedTableName(device: string, table: string): Promise
<
string
>
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
...
...
@@ -1848,8 +1890,8 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err,
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| device | string | 是 | 远程设备。 |
| table | string | 是 | 本地表名。 |
| device | string | 是 | 远程设备
ID
。 |
| table | string | 是 |
远程设备的
本地表名。 |
**返回值**
:
...
...
@@ -1860,7 +1902,20 @@ rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err,
**示例:**
```
js
let
promise
=
rdbStore
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
)
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
promise
=
rdbStore
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
)
promise
.
then
((
tableName
)
=>
{
console
.
info
(
'
ObtainDistributedTableName successfully, tableName=
'
+
tableName
)
}).
catch
((
err
)
=>
{
...
...
@@ -1889,8 +1944,24 @@ sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
data_rdb
.
RdbPredicates
(
'
EMPLOYEE
'
)
predicates
.
inDevices
(
[
'
12345678abcde
'
]
)
predicates
.
inDevices
(
deviceIds
)
rdbStore
.
sync
(
data_rdb
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
log
(
'
Sync failed, err:
'
+
err
)
...
...
@@ -1929,8 +2000,24 @@ rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, resul
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
data_rdb
.
RdbPredicates
(
'
EMPLOYEE
'
)
predicates
.
inDevices
(
[
'
12345678abcde
'
]
)
predicates
.
inDevices
(
deviceIds
)
let
promise
=
rdbStore
.
sync
(
data_rdb
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
)
promise
.
then
((
result
)
=>
{
console
.
log
(
'
Sync done.
'
)
...
...
zh-cn/application-dev/reference/apis/js-apis-data-relationalStore.md
浏览文件 @
d378d0f7
...
...
@@ -414,9 +414,12 @@ let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
inDevices(devices: Array
<
string
>
): RdbPredicates
同步分布式数据库时连接到组网内指定的远程设备。
> **说明:**
>
> 其中devices通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
...
...
@@ -434,8 +437,24 @@ inDevices(devices: Array<string>): RdbPredicates
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
"
EMPLOYEE
"
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
```
### inAllDevices
...
...
@@ -2008,13 +2027,17 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
根据指定条件查询远程设备数据库中的数据。使用callback异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | --------------------------------------------
---------------- | ---- | --
--------------------------------------------------------- |
| device | string
| 是 | 指定的远程设备的networkId。
|
| ---------- | --------------------------------------------
| ---- |
--------------------------------------------------------- |
| device | string
| 是 | 指定的远程设备ID。
|
| table | string | 是 | 指定的目标表名。 |
| predicates |
[
RdbPredicates
](
#rdbpredicates
)
| 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array
<
string
>
| 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
...
...
@@ -2023,9 +2046,22 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
greaterThan
(
"
id
"
,
0
);
store
.
remoteQuery
(
"
deviceId
"
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
],
store
.
remoteQuery
(
deviceId
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
],
function
(
err
,
resultSet
)
{
if
(
err
)
{
console
.
error
(
`Failed to remoteQuery, err:
${
err
}
`
);
...
...
@@ -2043,13 +2079,17 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
根据指定条件查询远程设备数据库中的数据。使用Promise异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**系统能力:**
SystemCapability.DistributedDataManager.RelationalStore.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------ | ---- | ------------------------------------------------ |
| device | string | 是 | 指定的远程设备
的networkId。
|
| device | string | 是 | 指定的远程设备
ID。
|
| table | string | 是 | 指定的目标表名。 |
| predicates |
[
RdbPredicates
](
#rdbpredicates
)
| 是 | RdbPredicates的实例对象,指定查询的条件。 |
| columns | Array
<
string
>
| 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
...
...
@@ -2063,6 +2103,19 @@ remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: A
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
greaterThan
(
"
id
"
,
0
);
let
promise
=
store
.
remoteQuery
(
"
deviceId
"
,
"
EMPLOYEE
"
,
predicates
,
[
"
ID
"
,
"
NAME
"
,
"
AGE
"
,
"
SALARY
"
,
"
CODES
"
]);
...
...
@@ -2488,7 +2541,11 @@ promise.then(() => {
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback
<
string
>
): void
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 使用callback异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
...
...
@@ -2498,14 +2555,27 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| device | string | 是 | 远程设备
。
|
| table | string | 是 |
本地表名。
|
| device | string | 是 | 远程设备
ID 。
|
| table | string | 是 |
远程设备的本地表名。
|
| callback | AsyncCallback
<
string
>
| 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
**示例:**
```
js
store
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
store
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
,
function
(
err
,
tableName
)
{
if
(
err
)
{
console
.
error
(
`ObtainDistributedTableName failed, err:
${
err
}
`
);
return
;
...
...
@@ -2518,7 +2588,11 @@ store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tab
obtainDistributedTableName(device: string, table: string): Promise
<
string
>
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
根据远程设备的本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,使用Promise异步回调。
> **说明:**
>
> 其中device通过调用[deviceManager.getTrustedDeviceListSync](js-apis-device-manager.md#gettrusteddevicelistsync)方法得到。deviceManager模块的接口均为系统接口,仅系统应用可用。
**需要权限:**
ohos.permission.DISTRIBUTED_DATASYNC
...
...
@@ -2527,9 +2601,9 @@ store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tab
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| device | string | 是 | 远程设备
。
|
| table | string | 是 | 本地表名。 |
| ------ | ------ | ---- | ----------
----------
|
| device | string | 是 | 远程设备
ID。
|
| table | string | 是 |
远程设备的
本地表名。 |
**返回值**
:
...
...
@@ -2540,7 +2614,20 @@ store.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tab
**示例:**
```
js
let
promise
=
store
.
obtainDistributedTableName
(
"
12345678abcde
"
,
"
EMPLOYEE
"
);
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceId
=
devices
[
0
].
deviceId
;
})
let
promise
=
store
.
obtainDistributedTableName
(
deviceId
,
"
EMPLOYEE
"
);
promise
.
then
((
tableName
)
=>
{
console
.
info
(
`ObtainDistributedTableName successfully, tableName=
${
tableName
}
`
);
}).
catch
((
err
)
=>
{
...
...
@@ -2569,8 +2656,24 @@ sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
store
.
sync
(
relationalStore
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
,
function
(
err
,
result
)
{
if
(
err
)
{
console
.
error
(
`Sync failed, err:
${
err
}
`
);
...
...
@@ -2609,8 +2712,24 @@ store.sync(relationalStore.SyncMode.SYNC_MODE_PUSH, predicates, function (err, r
**示例:**
```
js
import
deviceManager
from
'
@ohos.distributedHardware.deviceManager
'
;
let
dmInstance
=
null
;
deviceManager
.
createDeviceManager
(
"
com.example.appdatamgrverify
"
,
(
err
,
manager
)
=>
{
if
(
err
)
{
console
.
log
(
"
create device manager failed, err=
"
+
err
);
return
;
}
dmInstance
=
manager
;
let
devices
=
dmInstance
.
getTrustedDeviceListSync
();
let
deviceIds
=
[];
for
(
var
i
=
0
;
i
<
devices
.
length
;
i
++
)
{
deviceIds
[
i
]
=
devices
[
i
].
deviceId
;
}
})
let
predicates
=
new
relationalStore
.
RdbPredicates
(
'
EMPLOYEE
'
);
predicates
.
inDevices
(
[
'
12345678abcde
'
]
);
predicates
.
inDevices
(
deviceIds
);
let
promise
=
store
.
sync
(
relationalStore
.
SyncMode
.
SYNC_MODE_PUSH
,
predicates
);
promise
.
then
((
result
)
=>
{
console
.
info
(
`Sync done.`
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录