- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
124 lines
3.8 KiB
Markdown
124 lines
3.8 KiB
Markdown
# lark-slides xml_presentation.slide delete
|
||
|
||
## 用途
|
||
|
||
删除指定 XML 演示文稿中的幻灯片页面。
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
lark-cli slides xml_presentation.slide delete --as user --params '<json_params>'
|
||
```
|
||
|
||
## 参数说明
|
||
|
||
| 参数 | 类型 | 必需 | 说明 |
|
||
|------|------|------|------|
|
||
| `--params` | JSON string | 是 | 路径参数与查询参数 |
|
||
|
||
### params JSON 结构
|
||
|
||
```json
|
||
{
|
||
"xml_presentation_id": "slides_example_presentation_id",
|
||
"slide_id": "slide_example_id",
|
||
"revision_id": -1,
|
||
"tid": "idMock"
|
||
}
|
||
```
|
||
|
||
| 字段 | 类型 | 必需 | 说明 |
|
||
|------|------|------|------|
|
||
| `xml_presentation_id` | string | 是 | 演示文稿的唯一标识符 |
|
||
| `slide_id` | string | 是 | 要删除的幻灯片唯一标识符 |
|
||
| `revision_id` | integer | 否 | 演示文稿版本号,`-1` 表示最新版本 |
|
||
| `tid` | string | 否 | 锁的事务 ID |
|
||
|
||
## 使用示例
|
||
|
||
### 删除指定幻灯片
|
||
|
||
```bash
|
||
lark-cli slides xml_presentation.slide delete --as user --params '{
|
||
"xml_presentation_id": "slides_example_presentation_id",
|
||
"slide_id": "slide_example_id"
|
||
}'
|
||
```
|
||
|
||
### 结合查询删除(使用 jq)
|
||
|
||
```bash
|
||
# 先读取 XML 内容,确认待删除页面
|
||
lark-cli slides xml_presentations get --as user --params '{"xml_presentation_id":"slides_example_presentation_id"}' | jq -r '.data.xml_presentation.content'
|
||
|
||
# 然后按已知 slide_id 删除
|
||
lark-cli slides xml_presentation.slide delete --as user --params '{"xml_presentation_id":"slides_example_presentation_id","slide_id":"slide_example_id"}'
|
||
```
|
||
|
||
## 返回值
|
||
|
||
成功时返回删除确认信息:
|
||
|
||
```json
|
||
{
|
||
"code": 0,
|
||
"data": {
|
||
"revision_id": 100
|
||
},
|
||
"msg": "success"
|
||
}
|
||
```
|
||
|
||
### 返回字段说明
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `data.revision_id` | integer | 删除后的最新版本号 |
|
||
|
||
## 常见错误
|
||
|
||
| 错误码 | 含义 | 解决方案 |
|
||
|--------|------|----------|
|
||
| 404 | 演示文稿不存在 | 检查 `xml_presentation_id` 是否正确 |
|
||
| 404 | 幻灯片不存在 | 检查 `slide_id` 是否正确,或该幻灯片已被删除 |
|
||
| 400 | 无法删除唯一幻灯片 | 演示文稿至少保留一页幻灯片 |
|
||
| 403 | 权限不足 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope |
|
||
|
||
## 注意事项
|
||
|
||
1. **执行前必做**: 使用 `lark-cli schema slides.xml_presentation.slide.delete` 查看最新的参数结构
|
||
2. **删除不可逆**: 删除操作无法撤销,请确保已备份重要内容
|
||
3. **至少保留一页**: 演示文稿必须至少保留一页幻灯片,删除最后一页会报错
|
||
4. **版本控制**: 如果依赖版本号并发控制,删除前先确认 `revision_id`
|
||
5. **获取 slide_id**: 创建幻灯片时请保存返回值;仅靠 `get` 返回的 XML 无法直接推导服务端 short ID
|
||
|
||
## 如何获取 slide_id
|
||
|
||
### 方法 1: 创建时保存
|
||
|
||
```bash
|
||
lark-cli slides xml_presentation.slide create --as user --params '{"xml_presentation_id":"slides_example_presentation_id"}' --data '{
|
||
"slide": {
|
||
"content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新页面</p></content></shape></data></slide>"
|
||
}
|
||
}'
|
||
```
|
||
|
||
返回结果中的 `slide_id` 就是后续删除所需的值。
|
||
|
||
## 批量删除建议
|
||
|
||
如果需要删除多张幻灯片,建议先整理好待删 `slide_id` 列表,再逐个删除:
|
||
|
||
```bash
|
||
for slide_id in sld_a sld_b sld_c; do
|
||
lark-cli slides xml_presentation.slide delete --as user --params "{\"xml_presentation_id\":\"slides_example_presentation_id\",\"slide_id\":\"$slide_id\"}"
|
||
done
|
||
```
|
||
|
||
## 相关命令
|
||
|
||
- [slides +create](lark-slides-create.md) - 创建空白 PPT
|
||
- [xml_presentations get](lark-slides-xml-presentations-get.md) - 读取 PPT 内容
|
||
- [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
|