mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-18 07:30:12 +01:00
This commit is contained in:
parent
2af6113515
commit
d96f09d2d4
3 changed files with 15 additions and 8 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
import {transaction} from "../../wysiwyg/transaction";
|
import {transaction} from "../../wysiwyg/transaction";
|
||||||
import {hasClosestBlock} from "../../util/hasClosest";
|
import {hasClosestBlock, hasClosestByClassName} from "../../util/hasClosest";
|
||||||
import {Menu} from "../../../plugin/Menu";
|
import {Menu} from "../../../plugin/Menu";
|
||||||
import {getColIconByType} from "./col";
|
import {getColIconByType} from "./col";
|
||||||
|
|
||||||
|
|
@ -40,16 +40,22 @@ export const popTextCell = (protyle: IProtyle, cellElement: HTMLElement) => {
|
||||||
|
|
||||||
|
|
||||||
const updateCellValue = (protyle: IProtyle, cellElement: HTMLElement, type: TAVCol) => {
|
const updateCellValue = (protyle: IProtyle, cellElement: HTMLElement, type: TAVCol) => {
|
||||||
const avMaskElement = document.querySelector(".av__mask");
|
const rowElement = hasClosestByClassName(cellElement, "av__row");
|
||||||
const inputElement = avMaskElement.querySelector(".b3-text-field") as HTMLInputElement;
|
if (!rowElement) {
|
||||||
const blockElement = hasClosestBlock(cellElement);
|
return;
|
||||||
|
}
|
||||||
|
const blockElement = hasClosestBlock(rowElement);
|
||||||
if (!blockElement) {
|
if (!blockElement) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const avMaskElement = document.querySelector(".av__mask");
|
||||||
|
const inputElement = avMaskElement.querySelector(".b3-text-field") as HTMLInputElement;
|
||||||
|
|
||||||
transaction(protyle, [{
|
transaction(protyle, [{
|
||||||
action: "updateAttrViewCell",
|
action: "updateAttrViewCell",
|
||||||
id: blockElement.getAttribute("data-node-id"),
|
id: cellElement.getAttribute("data-id"),
|
||||||
rowID: blockElement.getAttribute("data-av-id"),
|
rowID: rowElement.getAttribute("data-id"),
|
||||||
|
parentID: blockElement.getAttribute("data-av-id"),
|
||||||
type,
|
type,
|
||||||
data: inputElement.value,
|
data: inputElement.value,
|
||||||
}], [{
|
}], [{
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ export const avRender = (element: Element, cb?: () => void) => {
|
||||||
</div>
|
</div>
|
||||||
<div class="av__firstcol"><svg><use xlink:href="#iconUncheck"></use></svg></div>`;
|
<div class="av__firstcol"><svg><use xlink:href="#iconUncheck"></use></svg></div>`;
|
||||||
row.cells.forEach((cell, index) => {
|
row.cells.forEach((cell, index) => {
|
||||||
tableHTML += `<div class="av__cell" data-block-id="${cell.renderValue?.id || ""}" data-index="${index}" style="width: ${data.columns[index].width || 200}px;${cell.bgColor ? `background-color:${cell.bgColor};` : ""}${cell.color ? `color:${cell.color};` : ""}">${cell.renderValue?.content || ""}</div>`;
|
tableHTML += `<div class="av__cell" ${index === 0 ? 'data-block-id="' + (cell.renderValue?.id || "") + '"' : ""} data-id="${cell.id}" data-index="${index}" style="width: ${data.columns[index].width || 200}px;${cell.bgColor ? `background-color:${cell.bgColor};` : ""}${cell.color ? `color:${cell.color};` : ""}">${cell.renderValue?.content || ""}</div>`;
|
||||||
});
|
});
|
||||||
tableHTML += "<div></div></div>";
|
tableHTML += "<div></div></div>";
|
||||||
});
|
});
|
||||||
|
|
@ -95,7 +95,7 @@ export const refreshAV = (protyle: IProtyle, operation: IOperation) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else if (operation.action === "insertAttrViewBlock") {
|
} else if (operation.action === "insertAttrViewBlock") {
|
||||||
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${operation.id}"]`)).forEach((item: HTMLElement) => {
|
Array.from(protyle.wysiwyg.element.querySelectorAll(`[data-av-id="${operation.parentID}"]`)).forEach((item: HTMLElement) => {
|
||||||
item.removeAttribute("data-render");
|
item.removeAttribute("data-render");
|
||||||
avRender(item);
|
avRender(item);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
|
|
@ -833,6 +833,7 @@ interface IAVRow {
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IAVCell {
|
interface IAVCell {
|
||||||
|
id: string,
|
||||||
color: string,
|
color: string,
|
||||||
bgColor: string,
|
bgColor: string,
|
||||||
value: string,
|
value: string,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue