From 3791b61059fa6ac54963ca1f41a6f50687e586ba Mon Sep 17 00:00:00 2001 From: Vanessa Date: Thu, 8 Jun 2023 12:03:04 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/7536 --- app/src/assets/scss/protyle/_wysiwyg.scss | 29 +++++++++++++++++++++-- app/src/protyle/render/av/index.ts | 24 +++++++++++++------ app/src/protyle/scroll/event.ts | 12 ++++++++++ 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/app/src/assets/scss/protyle/_wysiwyg.scss b/app/src/assets/scss/protyle/_wysiwyg.scss index 806aabd56..4302e4ebe 100644 --- a/app/src/assets/scss/protyle/_wysiwyg.scss +++ b/app/src/assets/scss/protyle/_wysiwyg.scss @@ -33,8 +33,33 @@ } &.av { - .av__scroll { - overflow: auto hidden; + .av { + &__scroll { + overflow: auto hidden; + cursor: pointer; + } + + &__row { + display: flex; + border-bottom: 1px solid var(--b3-theme-surface-lighter); + } + + &__cell { + padding: 5px; + flex-shrink: 0; + border-right: 1px solid var(--b3-theme-surface-lighter) + } + + &__firstcol { + input { + margin: 11px 5px; + opacity: 0; + } + + &:hover input { + opacity: 1; + } + } } } diff --git a/app/src/protyle/render/av/index.ts b/app/src/protyle/render/av/index.ts index 1b7484cdf..af975667b 100644 --- a/app/src/protyle/render/av/index.ts +++ b/app/src/protyle/render/av/index.ts @@ -53,17 +53,23 @@ export const avRender = (element: Element) => { }] }] }; - let tableHTML = "
"; + let tableHTML = '
'; data.columns.forEach((column) => { - tableHTML += `
${column.name}
` + tableHTML += ` +
${column.name}
` }); - tableHTML += "
"; + tableHTML += `
+
+
+
+
+
`; data.rows.forEach((row) => { - tableHTML += "
"; + tableHTML += '
'; row.cells.forEach((cell, index) => { - tableHTML += `
${cell.value}
` + tableHTML += `
${cell.value}
` }); - tableHTML += "
"; + tableHTML += `
`; }); const paddingLeft = e.parentElement.style.paddingLeft; const paddingRight = e.parentElement.style.paddingRight; @@ -82,7 +88,11 @@ export const avRender = (element: Element) => {
${tableHTML} -
add
+
+
+ + ${window.siyuan.languages.addAttr} +
`; diff --git a/app/src/protyle/scroll/event.ts b/app/src/protyle/scroll/event.ts index 4fb3e5cfb..a42fbf923 100644 --- a/app/src/protyle/scroll/event.ts +++ b/app/src/protyle/scroll/event.ts @@ -24,6 +24,18 @@ export const scrollEvent = (protyle: IProtyle, element: HTMLElement) => { } } + protyle.wysiwyg.element.querySelectorAll(".av").forEach((item: HTMLElement) => { + if (item.parentElement.classList.contains("protyle-wysiwyg")) { + const headerTop = item.offsetTop - 30 + 56 + const headerElement = item.querySelector(".av__row--header") as HTMLElement + if (headerTop < element.scrollTop && headerTop + headerElement.parentElement.clientHeight > element.scrollTop) { + headerElement.style.transform = `translateY(${element.scrollTop - headerTop}px)`; + } else { + headerElement.style.transform = ""; + } + } + }); + if (!protyle.element.classList.contains("block__edit") && !isMobile()) { protyle.contentElement.setAttribute("data-scrolltop", element.scrollTop.toString()); }