Vanessa 2024-08-07 22:34:56 +08:00
parent 8ff4bd0200
commit cbfee5abe0
3 changed files with 6 additions and 12 deletions

View file

@ -85,13 +85,13 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle
return true; return true;
} }
/// #if !MOBILE
const searchIconElement = hasClosestByAttribute(event.target, "data-type", "av-search-icon"); const searchIconElement = hasClosestByAttribute(event.target, "data-type", "av-search-icon");
if (searchIconElement) { if (searchIconElement) {
const searchElement = blockElement.querySelector('input[data-type="av-search"]') as HTMLInputElement; const searchElement = blockElement.querySelector('input[data-type="av-search"]') as HTMLInputElement;
searchElement.style.width = "128px"; searchElement.style.width = "128px";
searchElement.style.paddingLeft = ""; searchElement.style.paddingLeft = "";
searchElement.style.paddingRight = ""; searchElement.style.paddingRight = "";
searchElement.value = " ";
setTimeout(() => { setTimeout(() => {
searchElement.focus(); searchElement.focus();
}, Constants.TIMEOUT_TRANSITION); }, Constants.TIMEOUT_TRANSITION);
@ -99,7 +99,6 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle
event.stopPropagation(); event.stopPropagation();
return true; return true;
} }
/// #endif
const viewItemElement = hasClosestByClassName(event.target, "item"); const viewItemElement = hasClosestByClassName(event.target, "item");
if (viewItemElement && viewItemElement.parentElement.classList.contains("layout-tab-bar")) { if (viewItemElement && viewItemElement.parentElement.classList.contains("layout-tab-bar")) {
if (viewItemElement.classList.contains("item--focus")) { if (viewItemElement.classList.contains("item--focus")) {

View file

@ -55,7 +55,7 @@ export const openMenuPanel = (options: {
const avID = options.blockElement.getAttribute("data-av-id"); const avID = options.blockElement.getAttribute("data-av-id");
fetchPost("/api/av/renderAttributeView", { fetchPost("/api/av/renderAttributeView", {
id: avID, id: avID,
query: (options.blockElement.querySelector('[data-type="av-search"]') as HTMLInputElement)?.value || "", query: (options.blockElement.querySelector('[data-type="av-search"]') as HTMLInputElement)?.value.trim() || "",
pageSize: parseInt(options.blockElement.getAttribute("data-page-size")) || undefined, pageSize: parseInt(options.blockElement.getAttribute("data-page-size")) || undefined,
viewID: options.blockElement.getAttribute(Constants.CUSTOM_SY_AV_VIEW) viewID: options.blockElement.getAttribute(Constants.CUSTOM_SY_AV_VIEW)
}, (response) => { }, (response) => {

View file

@ -10,7 +10,6 @@ import {getCalcValue} from "./calc";
import {renderAVAttribute} from "./blockAttr"; import {renderAVAttribute} from "./blockAttr";
import {showMessage} from "../../../dialog/message"; import {showMessage} from "../../../dialog/message";
import {addClearButton} from "../../../util/addClearButton"; import {addClearButton} from "../../../util/addClearButton";
import {isMobile} from "../../../util/functions";
export const avRender = (element: Element, protyle: IProtyle, cb?: () => void, viewID?: string) => { export const avRender = (element: Element, protyle: IProtyle, cb?: () => void, viewID?: string) => {
let avElements: Element[] = []; let avElements: Element[] = [];
@ -84,7 +83,7 @@ export const avRender = (element: Element, protyle: IProtyle, cb?: () => void, v
snapshot, snapshot,
pageSize: parseInt(e.dataset.pageSize) || undefined, pageSize: parseInt(e.dataset.pageSize) || undefined,
viewID: newViewID, viewID: newViewID,
query query: query.trim()
}, (response) => { }, (response) => {
const data = response.data.view as IAVTable; const data = response.data.view as IAVTable;
if (!e.dataset.pageSize) { if (!e.dataset.pageSize) {
@ -236,11 +235,11 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)}
<svg><use xlink:href="#iconSort"></use></svg> <svg><use xlink:href="#iconSort"></use></svg>
</span> </span>
<div class="fn__space"></div> <div class="fn__space"></div>
<span data-type="av-search-icon" class="block__icon${isMobile() ? " fn__none" : ""}"> <span data-type="av-search-icon" class="block__icon">
<svg><use xlink:href="#iconSearch"></use></svg> <svg><use xlink:href="#iconSearch"></use></svg>
</span> </span>
<div style="position: relative" class="fn__flex"> <div style="position: relative" class="fn__flex">
<input style="${(isSearching || query || isMobile()) ? "width:128px" : "width:0;padding-left: 0;padding-right: 0;"}" data-type="av-search" class="b3-text-field b3-text-field--text" placeholder="${window.siyuan.languages.search}"> <input style="${isSearching || query ? "width:128px" : "width:0;padding-left: 0;padding-right: 0;"}" data-type="av-search" class="b3-text-field b3-text-field--text" placeholder="${window.siyuan.languages.search}">
</div> </div>
<div class="fn__space"></div> <div class="fn__space"></div>
<span data-type="av-more" class="block__icon"> <span data-type="av-more" class="block__icon">
@ -348,7 +347,7 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)}
} }
const viewsElement = e.querySelector(".av__views") as HTMLElement; const viewsElement = e.querySelector(".av__views") as HTMLElement;
searchInputElement = e.querySelector('[data-type="av-search"]') as HTMLInputElement; searchInputElement = e.querySelector('[data-type="av-search"]') as HTMLInputElement;
searchInputElement.value = query; searchInputElement.value = query || "";
if (isSearching) { if (isSearching) {
searchInputElement.focus(); searchInputElement.focus();
} }
@ -366,7 +365,6 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)}
searchInputElement.addEventListener("compositionend", () => { searchInputElement.addEventListener("compositionend", () => {
updateSearch(e, protyle); updateSearch(e, protyle);
}); });
/// #if !MOBILE
searchInputElement.addEventListener("blur", (event: KeyboardEvent) => { searchInputElement.addEventListener("blur", (event: KeyboardEvent) => {
if (event.isComposing) { if (event.isComposing) {
return; return;
@ -378,7 +376,6 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)}
searchInputElement.style.paddingRight = "0"; searchInputElement.style.paddingRight = "0";
} }
}); });
/// #endif
addClearButton({ addClearButton({
inputElement: searchInputElement, inputElement: searchInputElement,
right: 0, right: 0,
@ -386,11 +383,9 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)}
height: searchInputElement.clientHeight, height: searchInputElement.clientHeight,
clearCB() { clearCB() {
viewsElement.classList.remove("av__views--show"); viewsElement.classList.remove("av__views--show");
/// #if !MOBILE
searchInputElement.style.width = "0"; searchInputElement.style.width = "0";
searchInputElement.style.paddingLeft = "0"; searchInputElement.style.paddingLeft = "0";
searchInputElement.style.paddingRight = "0"; searchInputElement.style.paddingRight = "0";
/// #endif
focusBlock(e); focusBlock(e);
updateSearch(e, protyle); updateSearch(e, protyle);
} }