diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index b604117e3..4faeb96e7 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,6 +1,8 @@ { + "hideCol": "隐藏列", "hideAll": "隐藏全部", "showAll": "显示全部", + "showCol": "显示列", "number": "数字", "date": "日期", "select": "单选", diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index e3a460132..0a4f490ce 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -116,9 +116,17 @@ .b3-menu { width: 300px; + + .block__icon { + line-height: 20px; + padding: 0 4px; + font-size: 12px; + align-self: center; + opacity: 1; + } } - .b3-menu__item:not([data-type="title"]):hover { + .b3-menu__item:not([data-type="nobg"]):hover { background-color: var(--b3-list-hover); .b3-menu__action { diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 742f61181..c9d306995 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -51,12 +51,55 @@ export const openMenuPanel = (protyle: IProtyle, blockElement: HTMLElement, type event.stopPropagation(); break; } else if (type === "showAllCol") { -// showAllCol(data); - avMenuPanel.innerHTML = getPropertiesHTML(data, tabRect); + const doOperations: IOperation[] = [] + const undoOperations: IOperation[] = [] + data.columns.forEach((item: IAVColumn) => { + if (item.hidden) { + doOperations.push({ + action: "setAttrViewColHidden", + id: item.id, + parentID: avId, + data: false + }) + undoOperations.push({ + action: "setAttrViewColHidden", + id: item.id, + parentID: avId, + data: true + }) + item.hidden = false + } + }) + if (doOperations.length > 0) { + transaction(protyle, doOperations, undoOperations); + avMenuPanel.innerHTML = getPropertiesHTML(data, tabRect); + } event.stopPropagation(); break; } else if (type === "hideAllCol") { - + const doOperations: IOperation[] = [] + const undoOperations: IOperation[] = [] + data.columns.forEach((item: IAVColumn) => { + if (!item.hidden && item.type !== "block") { + doOperations.push({ + action: "setAttrViewColHidden", + id: item.id, + parentID: avId, + data: true + }) + undoOperations.push({ + action: "setAttrViewColHidden", + id: item.id, + parentID: avId, + data: false + }) + item.hidden = true + } + }) + if (doOperations.length > 0) { + transaction(protyle, doOperations, undoOperations); + avMenuPanel.innerHTML = getPropertiesHTML(data, tabRect); + } event.stopPropagation(); break; } else if (type === "hideCol") { @@ -103,7 +146,7 @@ export const openMenuPanel = (protyle: IProtyle, blockElement: HTMLElement, type const getConfigHTML = (data: IAV, tabRect: DOMRect) => { return `