Skip to content

Commit

Permalink
feat: add executeInsertTitle api #604
Browse files Browse the repository at this point in the history
  • Loading branch information
Hufe921 committed May 28, 2024
1 parent 5006264 commit 2659d6b
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 3 deletions.
10 changes: 10 additions & 0 deletions docs/en/guide/command-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -921,3 +921,13 @@ Usage:
```javascript
instance.command.executeUpdateOptions(payload: IUpdateOption)
```

## executeInsertTitle

Feature: Insert title

Usage:

```javascript
instance.command.executeInsertTitle(payload: IElement)
```
10 changes: 10 additions & 0 deletions docs/guide/command-execute.md
Original file line number Diff line number Diff line change
Expand Up @@ -921,3 +921,13 @@ instance.command.executeSetControlHighlight(payload: ISetControlHighlightOption)
```javascript
instance.command.executeUpdateOptions(payload: IUpdateOption)
```

## executeInsertTitle

功能:插入标题

用法:

```javascript
instance.command.executeInsertTitle(payload: IElement)
```
2 changes: 2 additions & 0 deletions src/editor/core/command/Command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ export class Command {
public executeSetControlProperties: CommandAdapt['setControlProperties']
public executeSetControlHighlight: CommandAdapt['setControlHighlight']
public executeUpdateOptions: CommandAdapt['updateOptions']
public executeInsertTitle: CommandAdapt['insertTitle']
public getCatalog: CommandAdapt['getCatalog']
public getImage: CommandAdapt['getImage']
public getOptions: CommandAdapt['getOptions']
Expand Down Expand Up @@ -207,6 +208,7 @@ export class Command {
this.executeLocationGroup = adapt.locationGroup.bind(adapt)
this.executeSetZone = adapt.setZone.bind(adapt)
this.executeUpdateOptions = adapt.updateOptions.bind(adapt)
this.executeInsertTitle = adapt.insertTitle.bind(adapt)
// 获取
this.getImage = adapt.getImage.bind(adapt)
this.getOptions = adapt.getOptions.bind(adapt)
Expand Down
40 changes: 37 additions & 3 deletions src/editor/core/command/CommandAdapt.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { NBSP, WRAP, ZERO } from '../../dataset/constant/Common'
import { EDITOR_ELEMENT_STYLE_ATTR } from '../../dataset/constant/Element'
import {
EDITOR_ELEMENT_STYLE_ATTR,
EDITOR_ROW_ATTR,
LIST_CONTEXT_ATTR,
TABLE_CONTEXT_ATTR
} from '../../dataset/constant/Element'
import {
titleOrderNumberMapping,
titleSizeMapping
Expand Down Expand Up @@ -61,7 +66,13 @@ import {
IGetTitleValueResult
} from '../../interface/Title'
import { IWatermark } from '../../interface/Watermark'
import { deepClone, downloadFile, getUUID, isObjectEqual } from '../../utils'
import {
cloneProperty,
deepClone,
downloadFile,
getUUID,
isObjectEqual
} from '../../utils'
import {
createDomFromElementList,
formatElementContext,
Expand All @@ -70,7 +81,8 @@ import {
pickElementAttr,
getElementListByHTML,
getTextFromElementList,
zipElementList
zipElementList,
getAnchorElement
} from '../../utils/element'
import { mergeOption } from '../../utils/option'
import { printImageBase64 } from '../../utils/print'
Expand Down Expand Up @@ -716,6 +728,7 @@ export class CommandAdapt {
} else {
if (el.titleId) {
delete el.titleId
delete el.title
delete el.level
delete el.size
delete el.bold
Expand Down Expand Up @@ -2496,4 +2509,25 @@ export class CommandAdapt {
}
return result
}

public insertTitle(payload: IElement) {
const isReadonly = this.draw.isReadonly()
if (isReadonly) return
const cloneElement = deepClone(payload)
// 格式化上下文信息
const { startIndex } = this.range.getRange()
const elementList = this.draw.getElementList()
const copyElement = getAnchorElement(elementList, startIndex)
if (!copyElement) return
const cloneAttr = [
...TABLE_CONTEXT_ATTR,
...EDITOR_ROW_ATTR,
...LIST_CONTEXT_ATTR
]
cloneElement.valueList?.forEach(valueItem => {
cloneProperty<IElement>(cloneAttr, copyElement, valueItem)
})
// 插入标题
this.draw.insertElementList([cloneElement])
}
}

0 comments on commit 2659d6b

Please sign in to comment.