Table 对象 API 文档
由 0x400 发布于
`Table` 对象用于操作数据中心的自定义表,支持增删改查等操作。通过 `new this.Table(tableName)` 初始化,其中 `tableName` 为表的 ID、名称或别名。
## 二、核心方法分类
### 1. **数据查询**
| 方法名 | 功能描述 | 返回值类型 |
|---------------------|---------------------------------|----------------|
| `listRowNext(id, count)` | 获取下一页数据(按 ID 分页) | `Promise` |
| `listRowPrev(id, count)` | 获取上一页数据(按 ID 分页) | `Promise` |
| `listRowSelect(where, orderBy, size)` | 根据条件查询数据 | `Promise` |
| `rowCountWhere(where)` | 统计符合条件的记录数 | `Promise` |
**示例**:
```javascript
// 查询下一页数据(第一页)
const table = new this.Table("table1");
table.listRowNext("(0)", 20).then(data => {
console.log("下一页数据:", data.data);
});
// 统计名称为 "张三" 的记录数
table.rowCountWhere("o.name='张三'").then(count => {
console.log("总记录数:", count.data.value);
});
```
### 2. **数据删除**
| 方法名 | 功能描述 | 返回值类型 |
|-------------------|-----------------------------|----------------|
| `deleteRow(id)` | 删除单条记录 | `Promise` |
| `deleteAllRow()` | 删除所有记录 | `Promise` |
**示例**:
```javascript
// 删除单条记录
table.deleteRow("e1f89185-d8b0-4b66-9e34-aed3323d0d79").then(result => {
if (result.data.value) console.log("删除成功");
});
```
### 3. **单条数据操作**
| 方法名 | 功能描述 | 返回值类型 |
|-----------------|-----------------------------|----------------|
| `getRow(id)` | 获取单条记录 | `Promise` |
| `addRow(data)` | 插入单条记录 | `Promise` |
| `updateRow(id, data)` | 全量更新单条记录 | `Promise` |
| `partUpdateRow(id, data)` | 部分更新单条记录 | `Promise` |
**示例**:
```javascript
// 获取单条记录
table.getRow("e1f89185-d8b0-4b66-9e34-aed3323d0d79").then(record => {
console.log("记录详情:", record.data);
});
// 部分更新记录
table.partUpdateRow("e1f89185-d8b0-4b66-9e34-aed3323d0d79", { subject: "新标题" });
```
### 4. **批量操作**
| 方法名 | 功能描述 | 返回值类型 |
|-----------------|-----------------------------|----------------|
| `insertRow(data)` | 批量插入记录 | `Promise` |
**示例**:
```javascript
// 批量插入数据
const data = [
{ subject: "标题1", content: "内容1" },
{ subject: "标题2", content: "内容2" }
];
table.insertRow(data).then(result => {
if (result.data.value) console.log("批量插入成功");
});
```
## 三、方法详细说明
### 1. `listRowNext(id, count, success, failure, async)`
- **功能**:按 ID 分页获取下一页数据。
- **参数**:
- `id`(String,必填):当前页最后一条记录的 ID(第一页为 `"(0)"`)。
- `count`(Number,必填):每页显示的记录数。
- **返回值**:
```javascript
{
type: "success",
data: [ /* 记录数组 */ ],
message: "",
date: "时间戳",
spent: 响应时间(毫秒)
}
```
### 2. `updateRow(id, data)`
- **功能**:全量更新单条记录(需包含完整数据)。
- **参数**:
- `id`(String,必填):记录 ID。
- `data`(Object,必填):更新后的数据(需包含所有字段)。
- **示例**:
```javascript
table.updateRow("id", { id: "id", subject: "新标题", content: "新内容" });
```
## 四、注意事项
1. **异步处理**:所有方法默认异步执行,建议使用 `Promise` 或回调函数处理结果。
2. **ID 格式**:分页方法的 `id` 参数需为字符串类型,第一页使用 `"(0)"`。
3. **数据验证**:插入或更新数据时,确保字段与表结构一致。
4. **错误处理**:失败回调中可通过 `xhr.responseText` 获取错误信息。
**提示**:更多数据中心表操作细节,请参考 O2OA 数据中心设计文档。
评论