This commit is contained in:
parent
8675b49daa
commit
0949236b45
2 changed files with 18 additions and 28 deletions
|
@ -26,17 +26,22 @@ export const getDateHTML = (data: IAVTable, cellElements: HTMLElement[]) => {
|
|||
}
|
||||
const isNotTime = !cellValue || cellValue?.value?.date?.isNotTime;
|
||||
let value = "";
|
||||
const currentDate = new Date().getTime()
|
||||
if (cellValue?.value?.date?.isNotEmpty) {
|
||||
value = dayjs(cellValue.value.date.content).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
||||
} else {
|
||||
value = dayjs(currentDate).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
||||
}
|
||||
let value2 = "";
|
||||
if (cellValue?.value?.date?.isNotEmpty2) {
|
||||
value2 = dayjs(cellValue.value.date.content2).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
||||
} else if (hasEndDate) {
|
||||
value2 = dayjs(currentDate).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
||||
}
|
||||
return `<div class="b3-menu__items">
|
||||
<div>
|
||||
<input type="${isNotTime ? "date" : "datetime-local"}" max="${isNotTime ? "9999-12-31" : "9999-12-31 23:59"}" value="${value}" data-value="${value ? dayjs(cellValue.value.date.content).format("YYYY-MM-DD HH:mm") : ""}" class="b3-text-field fn__size200" style="margin-top: 4px;"><br>
|
||||
<input type="${isNotTime ? "date" : "datetime-local"}" max="${isNotTime ? "9999-12-31" : "9999-12-31 23:59"}" value="${value2}" data-value="${value2 ? dayjs(cellValue.value.date.content2).format("YYYY-MM-DD HH:mm") : ""}" style="margin-top: 8px;margin-bottom: 4px" class="b3-text-field fn__size200${hasEndDate ? "" : " fn__none"}">
|
||||
<input type="${isNotTime ? "date" : "datetime-local"}" max="${isNotTime ? "9999-12-31" : "9999-12-31 23:59"}" value="${value}" data-value="${dayjs(cellValue?.value?.date?.content || currentDate).format("YYYY-MM-DD HH:mm")}" class="b3-text-field fn__size200" style="margin-top: 4px;"><br>
|
||||
<input type="${isNotTime ? "date" : "datetime-local"}" max="${isNotTime ? "9999-12-31" : "9999-12-31 23:59"}" value="${value2}" data-value="${cellValue?.value?.date?.isNotEmpty2 ? dayjs(cellValue.value.date.content2).format("YYYY-MM-DD HH:mm") : ""}" style="margin-top: 8px;margin-bottom: 4px" class="b3-text-field fn__size200${hasEndDate ? "" : " fn__none"}">
|
||||
<button class="b3-menu__separator"></button>
|
||||
<label class="b3-menu__item">
|
||||
<span class="fn__flex-center">${window.siyuan.languages.endDate}</span>
|
||||
|
@ -67,40 +72,21 @@ export const bindDateEvent = (options: {
|
|||
const inputElements: NodeListOf<HTMLInputElement> = options.menuElement.querySelectorAll("input");
|
||||
inputElements[0].addEventListener("change", () => {
|
||||
inputElements[0].dataset.value = inputElements[0].value.length > 10 ? inputElements[0].value : inputElements[0].value + " 00:00";
|
||||
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
||||
content: new Date(inputElements[0].dataset.value).getTime(),
|
||||
isNotEmpty: inputElements[0].value !== "",
|
||||
content2: new Date(inputElements[1].dataset.value).getTime(),
|
||||
isNotEmpty2: inputElements[1].value !== "",
|
||||
hasEndDate: inputElements[2].checked,
|
||||
isNotTime: !inputElements[3].checked,
|
||||
}, options.cellElements);
|
||||
});
|
||||
inputElements[1].addEventListener("change", () => {
|
||||
inputElements[1].dataset.value = inputElements[1].value.length > 10 ? inputElements[1].value : inputElements[1].value + " 00:00";
|
||||
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
||||
content: new Date(inputElements[0].dataset.value).getTime(),
|
||||
isNotEmpty: inputElements[0].value !== "",
|
||||
content2: new Date(inputElements[1].dataset.value).getTime(),
|
||||
isNotEmpty2: inputElements[1].value !== "",
|
||||
hasEndDate: inputElements[2].checked,
|
||||
isNotTime: !inputElements[3].checked,
|
||||
}, options.cellElements);
|
||||
});
|
||||
inputElements[2].addEventListener("change", () => {
|
||||
if (inputElements[2].checked) {
|
||||
if (!inputElements[1].dataset.value) {
|
||||
const currentDate = new Date().getTime()
|
||||
inputElements[1].dataset.value = dayjs(currentDate).format("YYYY-MM-DD HH:mm")
|
||||
inputElements[1].value = dayjs(currentDate).format(inputElements[3].checked ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD");
|
||||
}
|
||||
inputElements[1].classList.remove("fn__none");
|
||||
} else {
|
||||
inputElements[1].classList.add("fn__none");
|
||||
}
|
||||
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
||||
content: new Date(inputElements[0].dataset.value).getTime(),
|
||||
isNotEmpty: inputElements[0].value !== "",
|
||||
content2: new Date(inputElements[1].dataset.value).getTime(),
|
||||
isNotEmpty2: inputElements[1].value !== "",
|
||||
hasEndDate: inputElements[2].checked,
|
||||
isNotTime: !inputElements[3].checked,
|
||||
}, options.cellElements);
|
||||
});
|
||||
inputElements[3].addEventListener("change", () => {
|
||||
if (inputElements[3].checked) {
|
||||
|
@ -118,6 +104,8 @@ export const bindDateEvent = (options: {
|
|||
inputElements[0].value = inputElements[0].dataset.value.substring(0, 10);
|
||||
inputElements[1].value = inputElements[1].dataset.value.substring(0, 10);
|
||||
}
|
||||
});
|
||||
return () => {
|
||||
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
||||
content: new Date(inputElements[0].dataset.value).getTime(),
|
||||
isNotEmpty: inputElements[0].value !== "",
|
||||
|
@ -126,5 +114,5 @@ export const bindDateEvent = (options: {
|
|||
hasEndDate: inputElements[2].checked,
|
||||
isNotTime: !inputElements[3].checked,
|
||||
}, options.cellElements);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -111,6 +111,7 @@ export const openMenuPanel = (options: {
|
|||
<div class="b3-menu">${html}</div>
|
||||
</div>`);
|
||||
avPanelElement = document.querySelector(".av__panel");
|
||||
let closeCB: () => void;
|
||||
const menuElement = avPanelElement.lastElementChild as HTMLElement;
|
||||
const tabRect = options.blockElement.querySelector(`.av__views, .av__row[data-col-id="${options.colId}"] > .block__logo`)?.getBoundingClientRect();
|
||||
if (["select", "date", "asset", "relation", "rollup"].includes(options.type)) {
|
||||
|
@ -118,7 +119,7 @@ export const openMenuPanel = (options: {
|
|||
if (options.type === "select") {
|
||||
bindSelectEvent(options.protyle, data, menuElement, options.cellElements, options.blockElement);
|
||||
} else if (options.type === "date") {
|
||||
bindDateEvent({
|
||||
closeCB = bindDateEvent({
|
||||
protyle: options.protyle,
|
||||
data,
|
||||
menuElement,
|
||||
|
@ -465,6 +466,7 @@ export const openMenuPanel = (options: {
|
|||
// 过滤面板先关闭过滤条件
|
||||
window.siyuan.menus.menu.remove();
|
||||
} else {
|
||||
closeCB?.();
|
||||
avPanelElement.remove();
|
||||
focusBlock(options.blockElement);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue