diff --git a/app/src/protyle/render/av/row.ts b/app/src/protyle/render/av/row.ts
index f8109124d..330f46f8f 100644
--- a/app/src/protyle/render/av/row.ts
+++ b/app/src/protyle/render/av/row.ts
@@ -2,7 +2,8 @@ import {hasClosestBlock, hasClosestByClassName} from "../../util/hasClosest";
import {focusBlock} from "../../util/selection";
import {Menu} from "../../../plugin/Menu";
import {transaction} from "../../wysiwyg/transaction";
-import {popTextCell} from "./cell";
+import {genCellValueByElement, getTypeByCellElement, popTextCell, renderCell} from "./cell";
+import {fetchPost} from "../../../util/fetch";
export const selectRow = (checkElement: Element, type: "toggle" | "select" | "unselect" | "unselectAll") => {
const rowElement = hasClosestByClassName(checkElement, "av__row");
@@ -70,6 +71,14 @@ export const updateHeader = (rowElement: HTMLElement) => {
avHeadElement.style.position = "sticky";
};
+/**
+ * 前端插入一假行
+ * @param protyle
+ * @param blockElement
+ * @param srcIDs
+ * @param previousId
+ * @param avId 还用于判断是否是插入的 block
+ */
export const insertAttrViewBlockAnimation = (protyle: IProtyle, blockElement: Element, srcIDs: string[], previousId: string, avId?: string,) => {
const previousElement = blockElement.querySelector(`.av__row[data-id="${previousId}"]`) || blockElement.querySelector(".av__row--header");
let colHTML = '
';
@@ -83,7 +92,6 @@ export const insertAttrViewBlockAnimation = (protyle: IProtyle, blockElement: El
colHTML += "";
}
});
-
let html = "";
srcIDs.forEach((id) => {
html += `
@@ -92,7 +100,23 @@ export const insertAttrViewBlockAnimation = (protyle: IProtyle, blockElement: El
});
previousElement.insertAdjacentHTML("afterend", html);
if (avId) {
- popTextCell(protyle, [previousElement.nextElementSibling.querySelector('.av__cell[data-detached="true"]')], "block");
+ const currentRow = previousElement.nextElementSibling;
+ const sideRow = previousElement.classList.contains("av__row--header") ? currentRow.nextElementSibling : previousElement;
+ if (sideRow.classList.contains("av__row")) {
+ fetchPost("/api/av/getAttributeViewFilterSort", {id: avId}, (response) => {
+ response.data.filters.forEach((item: IAVFilter) => {
+ const sideRowCellElement = sideRow.querySelector(`.av__cell[data-col-id="${item.column}"]`) as HTMLElement;
+ currentRow.querySelector(`.av__cell[data-col-id="${item.column}"]`).innerHTML =
+ renderCell(genCellValueByElement(getTypeByCellElement(sideRowCellElement), sideRowCellElement), sideRowCellElement.dataset.wrap === "true");
+ })
+ response.data.sorts.forEach((item: IAVSort) => {
+ const sideRowCellElement = sideRow.querySelector(`.av__cell[data-col-id="${item.column}"]`) as HTMLElement;
+ currentRow.querySelector(`.av__cell[data-col-id="${item.column}"]`).innerHTML =
+ renderCell(genCellValueByElement(getTypeByCellElement(sideRowCellElement), sideRowCellElement), sideRowCellElement.dataset.wrap === "true");
+ })
+ })
+ }
+ popTextCell(protyle, [currentRow.querySelector('.av__cell[data-detached="true"]')], "block");
}
const pageSize = parseInt(blockElement.getAttribute("data-page-size"));
if (pageSize) {