Vanessa 2024-06-06 09:31:02 +08:00
parent 586cc63ba4
commit a2e34a75db
2 changed files with 83 additions and 72 deletions

View file

@ -474,6 +474,10 @@ export const updateAttrViewCellAnimation = (cellElement: HTMLElement, value: IAV
pin?: boolean,
type?: TAVCol
}) => {
// 属性面板更新列名
if (!cellElement) {
return;
}
if (headerValue) {
updateHeaderCell(cellElement, headerValue);
} else {

View file

@ -285,6 +285,55 @@ class="fn__flex-1 fn__flex${["url", "text", "number", "email", "phone", "block"]
}
});
element.addEventListener("click", (event) => {
openEdit(protyle, element, event);
});
element.addEventListener("contextmenu", (event) => {
openEdit(protyle, element, event);
});
element.innerHTML = html;
}
element.querySelectorAll(".b3-text-field--text").forEach((item: HTMLInputElement) => {
item.addEventListener("change", () => {
let value;
if (["url", "text", "email", "phone"].includes(item.parentElement.dataset.type)) {
value = {
[item.parentElement.dataset.type]: {
content: item.value
}
};
} else if (item.parentElement.dataset.type === "number") {
if ("undefined" === item.value || !item.value) {
value = {
number: {
content: null,
isNotEmpty: false
}
};
} else {
value = {
number: {
content: parseFloat(item.value) || 0,
isNotEmpty: true
}
};
}
}
fetchPost("/api/av/setAttributeViewBlockAttr", {
avID: item.parentElement.dataset.avId,
keyID: item.parentElement.dataset.colId,
rowID: item.parentElement.dataset.blockId,
cellID: item.parentElement.dataset.id,
value
});
});
});
if (cb) {
cb(element);
}
});
};
const openEdit = (protyle: IProtyle, element:HTMLElement, event: MouseEvent) => {
let target = event.target as HTMLElement;
const blockElement = hasClosestBlock(target);
if (!blockElement) {
@ -357,46 +406,4 @@ class="fn__flex-1 fn__flex${["url", "text", "number", "email", "phone", "block"]
}
target = target.parentElement;
}
});
element.innerHTML = html;
}
element.querySelectorAll(".b3-text-field--text").forEach((item: HTMLInputElement) => {
item.addEventListener("change", () => {
let value;
if (["url", "text", "email", "phone"].includes(item.parentElement.dataset.type)) {
value = {
[item.parentElement.dataset.type]: {
content: item.value
}
};
} else if (item.parentElement.dataset.type === "number") {
if ("undefined" === item.value || !item.value) {
value = {
number: {
content: null,
isNotEmpty: false
}
};
} else {
value = {
number: {
content: parseFloat(item.value) || 0,
isNotEmpty: true
}
};
}
}
fetchPost("/api/av/setAttributeViewBlockAttr", {
avID: item.parentElement.dataset.avId,
keyID: item.parentElement.dataset.colId,
rowID: item.parentElement.dataset.blockId,
cellID: item.parentElement.dataset.id,
value
});
});
});
if (cb) {
cb(element);
}
});
};