From 807db89c5e3b7123469f634c49e14f2c9623a15c Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 10 Jul 2023 10:29:26 +0800 Subject: [PATCH] :sparkles: https://github.com/siyuan-note/siyuan/issues/8694 --- app/src/assets/scss/business/_av.scss | 1 + app/src/protyle/render/av/openMenuPanel.ts | 14 ++- app/src/protyle/render/av/render.ts | 2 +- app/src/protyle/render/av/select.ts | 102 +++++++++++++++++---- app/src/types/index.d.ts | 2 + 5 files changed, 95 insertions(+), 26 deletions(-) diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index c253fcab0..dadd8c3b8 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -175,6 +175,7 @@ border: 0; background-color: var(--b3-menu-background); flex: 1; + height: 38px; } } diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index a3b7fa4df..d1d106502 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -4,7 +4,7 @@ import {addCol} from "./addCol"; import {getColIconByType} from "./col"; import {setPosition} from "../../../util/setPosition"; import {hasClosestByAttribute} from "../../util/hasClosest"; -import {bindSelectEvent, getSelectHTML, setOptionCell, setSelectOption} from "./select"; +import {bindSelectEvent, getSelectHTML, addSelectColAndCell, setSelectCol, removeSelectCell} from "./select"; import {addFilter, getFiltersHTML, setFilter} from "./filter"; import {addSort, bindSortsEvent, getSortsHTML} from "./sort"; @@ -431,12 +431,16 @@ export const openMenuPanel = (protyle: IProtyle, setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height); event.stopPropagation(); break; - } else if (type === "editOption") { - setSelectOption(protyle, data, options, target); + } else if (type === "setSelectCol") { + setSelectCol(protyle, data, options, target); event.stopPropagation(); break; - } else if (type === "setOptionCell") { - setOptionCell(protyle, data, options, target, menuElement); + } else if (type === "addSelectColAndCell") { + addSelectColAndCell(protyle, data, options, target, menuElement); + event.stopPropagation(); + break; + } else if (type === "removeSelectCell") { + removeSelectCell(protyle, data, options, target); event.stopPropagation(); break; } diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index 398bf1101..6fbaba88d 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -68,7 +68,7 @@ ${column.wrap ? "" : "white-space: nowrap;"}"> text = ""; } } else if (cell.valueType === "mSelect") { - (cell.value?.mSelect as [])?.forEach((item: { content: string, color: string }) => { + cell.value.mSelect.forEach((item: { content: string, color: string }) => { text += `${item.content}`; }); } else if (cell.valueType === "date") { diff --git a/app/src/protyle/render/av/select.ts b/app/src/protyle/render/av/select.ts index 866447fec..c95129fa5 100644 --- a/app/src/protyle/render/av/select.ts +++ b/app/src/protyle/render/av/select.ts @@ -13,14 +13,14 @@ const filterSelectHTML = (key: string, options: { name: string, color: string }[ if (!key || (key.toLowerCase().indexOf(item.name.toLowerCase()) > -1 || item.name.toLowerCase().indexOf(key.toLowerCase()) > -1)) { - html += ``; } if (key === item.name) { @@ -30,7 +30,7 @@ const filterSelectHTML = (key: string, options: { name: string, color: string }[ } if (!hasMatch && key) { const colorIndex = (options?.length || 0) % 13 + 1; - html = `