diff --git a/web-panel/assets/css/desktop-v2.css b/web-panel/assets/css/desktop-v2.css index 44ee5e9..c69f719 100644 --- a/web-panel/assets/css/desktop-v2.css +++ b/web-panel/assets/css/desktop-v2.css @@ -1844,7 +1844,8 @@ html.dark .p-tieredmenu, html.dark .p-popover, html.dark .p-datepicker, html.dark .p-select-overlay, -html.dark .p-multiselect-overlay { +html.dark .p-multiselect-overlay, +html.dark .p-autocomplete-overlay { --p-content-background: #111b2e; } @@ -2237,6 +2238,41 @@ html.dark .p-dialog .p-dialog-header-icon { .cost-critical { background: #ffebee !important; color: #b42318 !important; } .cost-critical-text { color: #b42318; font-weight: 600; } +.budget-item-picker-overlay.p-autocomplete-overlay, +.budget-item-picker-overlay { + overflow-x: hidden; + box-sizing: border-box; +} +.budget-item-picker-overlay .p-autocomplete-list, +.budget-item-picker-overlay ul { + width: 100%; + margin: 0; + padding: 4px 0; + list-style: none; +} +.budget-item-picker-overlay .p-autocomplete-option, +.budget-item-picker-overlay li { + white-space: normal; + overflow-wrap: anywhere; + align-items: flex-start; +} +.budget-item-option { + display: flex; + flex-direction: column; + gap: 2px; + min-width: 0; + max-width: 100%; +} +.budget-item-option-desc { + color: #5b6573; + font-size: 12px; + line-height: 1.35; + overflow-wrap: anywhere; +} +html.dark .budget-item-option-desc { + color: #94a3b8; +} + /* Grouped menubar: single row, icons, card-style submenus. */ .menubar.p-menubar { display: flex; diff --git a/web-panel/components/BudgetItemPicker.vue b/web-panel/components/BudgetItemPicker.vue index c7e5665..18990d1 100644 --- a/web-panel/components/BudgetItemPicker.vue +++ b/web-panel/components/BudgetItemPicker.vue @@ -4,11 +4,29 @@ :suggestions="filtered" option-label="label" placeholder="Buscar concepto del presupuesto..." - class="w-full" + class="budget-item-picker w-full" + input-class="w-full" + overlay-class="budget-item-picker-overlay" + panel-class="budget-item-picker-overlay" + dropdown + fluid force-selection + complete-on-focus + scroll-height="16rem" + empty-search-message="Sin conceptos que coincidan" @complete="onSearch" @item-select="onSelect" - /> + @option-select="onSelect" + @clear="onClear" + @show="alignOverlay" + > + + + {{ option.code || "—" }} + {{ option.description }} + + + + +