import {fetchPost} from "../../../util/fetch";
import {getColIconByType, showColMenu} from "./col";
import {Constants} from "../../../constants";
import {getCalcValue} from "./cell";
import * as dayjs from "dayjs";
export const avRender = (element: Element, cb?: () => void) => {
let avElements: Element[] = [];
if (element.getAttribute("data-type") === "NodeAttributeView") {
// 编辑器内代码块编辑渲染
avElements = [element];
} else {
avElements = Array.from(element.querySelectorAll('[data-type="NodeAttributeView"]'));
}
if (avElements.length === 0) {
return;
}
if (avElements.length > 0) {
avElements.forEach((e: HTMLElement) => {
if (e.getAttribute("data-render") === "true") {
return;
}
fetchPost("/api/av/renderAttributeView", {
id: e.getAttribute("data-av-id"),
nodeID: e.getAttribute("data-node-id")
}, (response) => {
const data = response.data.view as IAVTable;
// header
let tableHTML = '
`;
// body
data.rows.forEach((row: IAVRow) => {
tableHTML += `
`;
row.cells.forEach((cell, index) => {
if (data.columns[index].hidden) {
return;
}
let text = "";
if (cell.valueType === "text") {
text = `
${cell.value?.text.content || ""}`;
} else if (cell.valueType === "url") {
text = `
${cell.value?.url.content || ""}`;
if (cell.value?.url.content) {
text += `
${window.siyuan.languages.openBy}`;
}
} else if (cell.valueType === "block") {
text = `
${cell.value?.block.content || ""}`;
if (cell.value?.block.id) {
text += `
${window.siyuan.languages.openBy}`;
}
} else if (cell.valueType === "number") {
text = `
${cell.value?.number.content || ""}`;
} else if (cell.valueType === "mSelect" || cell.valueType === "select") {
cell.value?.mSelect?.forEach((item: { content: string, color: string }) => {
text += `
${item.content}`;
});
if (!text) {
text = '
';
} else {
text = `
${text}`;
}
} else if (cell.valueType === "date") {
text = '
';
if (cell.value?.date.content) {
text += dayjs(cell.value.date.content).format("YYYY-MM-DD HH:mm");
}
if (cell.value?.date.hasEndDate) {
text += `${dayjs(cell.value.date.content2).format("YYYY-MM-DD HH:mm")}`;
}
text += "";
}
tableHTML += `
${text}
`;
});
tableHTML += "
";
});
let tabHTML = "";
response.data.views.forEach((item: IAVView) => {
tabHTML += `