mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-22 17:40:13 +01:00
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;
|
const isNotTime = !cellValue || cellValue?.value?.date?.isNotTime;
|
||||||
let value = "";
|
let value = "";
|
||||||
|
const currentDate = new Date().getTime()
|
||||||
if (cellValue?.value?.date?.isNotEmpty) {
|
if (cellValue?.value?.date?.isNotEmpty) {
|
||||||
value = dayjs(cellValue.value.date.content).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
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 = "";
|
let value2 = "";
|
||||||
if (cellValue?.value?.date?.isNotEmpty2) {
|
if (cellValue?.value?.date?.isNotEmpty2) {
|
||||||
value2 = dayjs(cellValue.value.date.content2).format(isNotTime ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm");
|
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">
|
return `<div class="b3-menu__items">
|
||||||
<div>
|
<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="${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="${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="${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>
|
<button class="b3-menu__separator"></button>
|
||||||
<label class="b3-menu__item">
|
<label class="b3-menu__item">
|
||||||
<span class="fn__flex-center">${window.siyuan.languages.endDate}</span>
|
<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");
|
const inputElements: NodeListOf<HTMLInputElement> = options.menuElement.querySelectorAll("input");
|
||||||
inputElements[0].addEventListener("change", () => {
|
inputElements[0].addEventListener("change", () => {
|
||||||
inputElements[0].dataset.value = inputElements[0].value.length > 10 ? inputElements[0].value : inputElements[0].value + " 00:00";
|
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].addEventListener("change", () => {
|
||||||
inputElements[1].dataset.value = inputElements[1].value.length > 10 ? inputElements[1].value : inputElements[1].value + " 00:00";
|
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", () => {
|
inputElements[2].addEventListener("change", () => {
|
||||||
if (inputElements[2].checked) {
|
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");
|
inputElements[1].classList.remove("fn__none");
|
||||||
} else {
|
} else {
|
||||||
inputElements[1].classList.add("fn__none");
|
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", () => {
|
inputElements[3].addEventListener("change", () => {
|
||||||
if (inputElements[3].checked) {
|
if (inputElements[3].checked) {
|
||||||
|
|
@ -118,6 +104,8 @@ export const bindDateEvent = (options: {
|
||||||
inputElements[0].value = inputElements[0].dataset.value.substring(0, 10);
|
inputElements[0].value = inputElements[0].dataset.value.substring(0, 10);
|
||||||
inputElements[1].value = inputElements[1].dataset.value.substring(0, 10);
|
inputElements[1].value = inputElements[1].dataset.value.substring(0, 10);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
return () => {
|
||||||
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
updateCellsValue(options.protyle, options.blockElement as HTMLElement, {
|
||||||
content: new Date(inputElements[0].dataset.value).getTime(),
|
content: new Date(inputElements[0].dataset.value).getTime(),
|
||||||
isNotEmpty: inputElements[0].value !== "",
|
isNotEmpty: inputElements[0].value !== "",
|
||||||
|
|
@ -126,5 +114,5 @@ export const bindDateEvent = (options: {
|
||||||
hasEndDate: inputElements[2].checked,
|
hasEndDate: inputElements[2].checked,
|
||||||
isNotTime: !inputElements[3].checked,
|
isNotTime: !inputElements[3].checked,
|
||||||
}, options.cellElements);
|
}, options.cellElements);
|
||||||
});
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@ export const openMenuPanel = (options: {
|
||||||
<div class="b3-menu">${html}</div>
|
<div class="b3-menu">${html}</div>
|
||||||
</div>`);
|
</div>`);
|
||||||
avPanelElement = document.querySelector(".av__panel");
|
avPanelElement = document.querySelector(".av__panel");
|
||||||
|
let closeCB: () => void;
|
||||||
const menuElement = avPanelElement.lastElementChild as HTMLElement;
|
const menuElement = avPanelElement.lastElementChild as HTMLElement;
|
||||||
const tabRect = options.blockElement.querySelector(`.av__views, .av__row[data-col-id="${options.colId}"] > .block__logo`)?.getBoundingClientRect();
|
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)) {
|
if (["select", "date", "asset", "relation", "rollup"].includes(options.type)) {
|
||||||
|
|
@ -118,7 +119,7 @@ export const openMenuPanel = (options: {
|
||||||
if (options.type === "select") {
|
if (options.type === "select") {
|
||||||
bindSelectEvent(options.protyle, data, menuElement, options.cellElements, options.blockElement);
|
bindSelectEvent(options.protyle, data, menuElement, options.cellElements, options.blockElement);
|
||||||
} else if (options.type === "date") {
|
} else if (options.type === "date") {
|
||||||
bindDateEvent({
|
closeCB = bindDateEvent({
|
||||||
protyle: options.protyle,
|
protyle: options.protyle,
|
||||||
data,
|
data,
|
||||||
menuElement,
|
menuElement,
|
||||||
|
|
@ -465,6 +466,7 @@ export const openMenuPanel = (options: {
|
||||||
// 过滤面板先关闭过滤条件
|
// 过滤面板先关闭过滤条件
|
||||||
window.siyuan.menus.menu.remove();
|
window.siyuan.menus.menu.remove();
|
||||||
} else {
|
} else {
|
||||||
|
closeCB?.();
|
||||||
avPanelElement.remove();
|
avPanelElement.remove();
|
||||||
focusBlock(options.blockElement);
|
focusBlock(options.blockElement);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue