This commit is contained in:
parent
8811f329f9
commit
14be58e0ee
2 changed files with 39 additions and 3 deletions
|
@ -303,6 +303,34 @@ export const onTransaction = (protyle: IProtyle, operation: IOperation, focus: b
|
|||
updateRef(protyle, operation.id);
|
||||
return;
|
||||
}
|
||||
if (operation.action === "updateAttrs") { // 调用接口才推送
|
||||
protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${operation.id}"]`).forEach(item => {
|
||||
const data = operation.data as any
|
||||
Object.keys(data.old).forEach(key => {
|
||||
item.removeAttribute(key)
|
||||
})
|
||||
let nodeAttrHTML = ""
|
||||
Object.keys(data.new).forEach(key => {
|
||||
item.setAttribute(key, data.new[key]);
|
||||
const escapeHTML = data.new[key]
|
||||
if (key === "bookmark") {
|
||||
nodeAttrHTML += `<div class="protyle-attr--bookmark">${escapeHTML}</div>`;
|
||||
} else if (key === "name") {
|
||||
nodeAttrHTML += `<div class="protyle-attr--name"><svg><use xlink:href="#iconN"></use></svg>${escapeHTML}</div>`;
|
||||
} else if (key === "alias") {
|
||||
nodeAttrHTML += `<div class="protyle-attr--alias"><svg><use xlink:href="#iconA"></use></svg>${escapeHTML}</div>`;
|
||||
} else if (key === "memo") {
|
||||
nodeAttrHTML += `<div class="protyle-attr--memo b3-tooltips b3-tooltips__sw" aria-label="${escapeHTML}"><svg><use xlink:href="#iconM"></use></svg></div>`;
|
||||
}
|
||||
})
|
||||
const refElement = item.lastElementChild.querySelector(".protyle-attr--refcount");
|
||||
if (refElement) {
|
||||
nodeAttrHTML += refElement.outerHTML;
|
||||
}
|
||||
item.lastElementChild.innerHTML = nodeAttrHTML + Constants.ZWSP;
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (operation.action === "move") {
|
||||
let cloneRange;
|
||||
let range;
|
||||
|
|
12
app/src/types/index.d.ts
vendored
12
app/src/types/index.d.ts
vendored
|
@ -4,7 +4,15 @@ type TDockType = "file" | "outline" | "bookmark" | "tag" | "graph" | "globalGrap
|
|||
type TDockPosition = "Left" | "Right" | "Top" | "Bottom"
|
||||
type TWS = "main" | "filetree" | "protyle"
|
||||
type TEditorMode = "preview" | "wysiwyg"
|
||||
type TOperation = "insert" | "update" | "delete" | "move" | "foldHeading" | "unfoldHeading" | "setAttrs" | "append"
|
||||
type TOperation = "insert"
|
||||
| "update"
|
||||
| "delete"
|
||||
| "move"
|
||||
| "foldHeading"
|
||||
| "unfoldHeading"
|
||||
| "setAttrs"
|
||||
| "updateAttrs"
|
||||
| "append"
|
||||
type TBazaarType = "templates" | "icons" | "widgets" | "themes"
|
||||
declare module "blueimp-md5"
|
||||
|
||||
|
@ -140,7 +148,7 @@ interface IScrollAttr {
|
|||
interface IOperation {
|
||||
action: TOperation, // move, delete 不需要传 data
|
||||
id: string,
|
||||
data?: string,
|
||||
data?: string, // updateAttr 时为 { old: IObject, new: IObject }
|
||||
parentID?: string
|
||||
previousID?: string
|
||||
retData?: any
|
||||
|
|
Loading…
Add table
Reference in a new issue