浏览代码

:art: https://github.com/siyuan-note/siyuan/issues/8234

Vanessa 10 月之前
父节点
当前提交
51f7b80bc5
共有 1 个文件被更改,包括 22 次插入10 次删除
  1. 22 10
      app/src/dialog/processSystem.ts

+ 22 - 10
app/src/dialog/processSystem.ts

@@ -153,25 +153,37 @@ export const setRefDynamicText = (data: {
 }) => {
 }) => {
     getAllEditor().forEach(item => {
     getAllEditor().forEach(item => {
         // 不能对比 rootId,否则潜入块中的锚文本无法更新
         // 不能对比 rootId,否则潜入块中的锚文本无法更新
-        const refElement = item.protyle.wysiwyg.element.querySelector(`[data-node-id="${data.blockID}"] span[data-type="block-ref"][data-subtype="d"][data-id="${data.defBlockID}"]`);
-        if (refElement) {
-            refElement.innerHTML = data.refText;
-        }
+        item.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${data.blockID}"] span[data-type="block-ref"][data-subtype="d"][data-id="${data.defBlockID}"]`).forEach(item => {
+            item.innerHTML = data.refText;
+        });
     })
     })
 }
 }
 
 
 export const setDefRefCount = (data: {
 export const setDefRefCount = (data: {
     "blockID": string,
     "blockID": string,
-    "defBlockID": string,
-    "refText": string,
+    "refCount": number,
+    "rootRefCount": number,
     "rootID": string
     "rootID": string
 }) => {
 }) => {
     getAllEditor().forEach(item => {
     getAllEditor().forEach(item => {
         // 不能对比 rootId,否则潜入块中的锚文本无法更新
         // 不能对比 rootId,否则潜入块中的锚文本无法更新
-        const refElement = item.protyle.wysiwyg.element.querySelector(`[data-node-id="${data.blockID}"] span[data-type="block-ref"][data-subtype="d"][data-id="${data.defBlockID}"]`);
-        if (refElement) {
-            refElement.innerHTML = data.refText;
-        }
+        item.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${data.blockID}"]`).forEach(item => {
+            const countElement = item.querySelector('.protyle-attr--refcount')
+            if (countElement) {
+                if (data.refCount === 0) {
+                    countElement.remove()
+                } else {
+                    countElement.textContent = data.refCount.toString();
+                }
+            } else if (data.refCount > 0) {
+                const attrElement = item.querySelector('.protyle-attr')
+                if (attrElement.childElementCount > 0) {
+                    attrElement.lastElementChild.insertAdjacentHTML("afterend", `<div class="protyle-attr--refcount popover__block">${data.refCount}</div>`)
+                } else {
+                    attrElement.innerHTML = `<div class="protyle-attr--refcount popover__block">${data.refCount}</div>${Constants.ZWSP}`
+                }
+            }
+        });
     })
     })
 }
 }