diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aedd7d8a45a2247d0c388ca4125e22629aab4b8..5fe1b2983d70d0672bef2f8829eb22449e3da893 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -125,6 +125,9 @@ - 优化分页导航引擎的视图刷新逻辑,使其与pc端视图刷新保持一致 - 修改数据看板自定义布局逻辑 - 修改移动端多数据选择编辑器的选择逻辑 +- 地图选择编辑器增加选择图标及处理控制台报错 +- 优化列表菜单、菜单自定义组件样式,适配暗色主题 +- 优化时间范围选择、html、markdown、二维码编辑器样式,适配暗色主题 ### Fixed @@ -154,6 +157,8 @@ - 修复数据关系分页隐藏编辑项逻辑计算异常及计数器禁用未生效 - 修复表单锚点未固定在视口异常 - 修复表单错误提示显示样式不正确异常 +- 修复菜单自定义配置后无法保存 +- 修复数值范围编辑器输入值时最大最小值会同步 ## [0.7.41-alpha.19] - 2025-10-16 diff --git a/src/control/app-menu-list-view/app-menu-list-view.scss b/src/control/app-menu-list-view/app-menu-list-view.scss index a123916359263f75d8e38e350de82052120f2dae..603a29cadbea8f147db90ff8d56d9aad920caac0 100644 --- a/src/control/app-menu-list-view/app-menu-list-view.scss +++ b/src/control/app-menu-list-view/app-menu-list-view.scss @@ -1,5 +1,6 @@ $control-appmenu-listview: ( // Color + color-item-bg: getCssVar(color, bg, 2), color-item-text: getCssVar(color, text, 0), // 菜单项文字颜色 color-nodata-ph-item-text: getCssVar('color', 'text', 0), // 菜单分组项无子数据时占位项文字颜色 // Spacing @@ -41,6 +42,7 @@ $control-appmenu-listview: ( padding: getCssVar(control-appmenu-listview, spacing-item-padding); font-size: getCssVar(control-appmenu-listview, font-item-font-size); color: getCssVar(control-appmenu-listview, color-item-text); + background-color: getCssVar(control-appmenu-listview, color-item-bg); &:last-child { border-width: 0; @@ -70,6 +72,21 @@ $control-appmenu-listview: ( margin-right: getCssVar(control-appmenu-listview, icon-text-margin); } } + + // 主文本样式 + .van-cell__title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + + } + + // 计数器样式 + .van-cell__value { + width: auto; + flex: unset; + margin-left: auto; + } } } diff --git a/src/control/app-menu/custom-menu-design/custom-menu-design.scss b/src/control/app-menu/custom-menu-design/custom-menu-design.scss index 05b4cfb95f6ff5bc38828e0f8d90e24554581379..6b2e96f50a02bec47d040c77bac4b0561cccd280 100644 --- a/src/control/app-menu/custom-menu-design/custom-menu-design.scss +++ b/src/control/app-menu/custom-menu-design/custom-menu-design.scss @@ -9,7 +9,7 @@ $menu-design: ( 'spacing-header-padding': 0 0 getCssVar('spacing', 'tight'), // 当前组件头部内间距 'spacing-item-padding': 0 getCssVar('spacing', 'base'), // 树节点项内间距 'spacing-item-margin': getCssVar('spacing', 'tight') 0, // 树节点项外间距 - 'spacing-item-caption-margin': 0 0 0 getCssVar('spacing', 'extra-tight'), // 树节点项主文本外间距 + 'spacing-item-caption-margin': 0 0 0 getCssVar('spacing', 'tight'), // 树节点项主文本外间距 'spacing-item-checkbox-margin': 0 0 0 getCssVar('spacing', 'extra-tight'), // 树节点项复选框外间距 'spacing-node-item-margin-left': rem(20px), // 树节点项左侧间距,用于缩进区分父节点与子节点 // Radius @@ -61,6 +61,7 @@ $menu-design: ( font-size: getCssVar(menu-design, font-item-font-size); background-color: getCssVar(menu-design, color-item-bg); border-radius: getCssVar(menu-design, radius-item-circle); + line-height: getCssVar(menu-design, height-item); @include m(icon) { display: flex; diff --git a/src/control/app-menu/custom-menu-design/custom-menu-design.tsx b/src/control/app-menu/custom-menu-design/custom-menu-design.tsx index 96d55638d2c616e67da90ff3d715e25c79b25c49..5cfa8b01b97a5cc303982fb23fabfffc9649e0a9 100644 --- a/src/control/app-menu/custom-menu-design/custom-menu-design.tsx +++ b/src/control/app-menu/custom-menu-design/custom-menu-design.tsx @@ -85,20 +85,25 @@ export const MenuDesign = defineComponent({ // 保存 const onSave = async () => { - const curMenuItems = Array.from(menuMap.value.values()).map(item => { - return allMenuMap.get(item.id); - }); + const curMenuItems = Array.from(menuMap.value.values()) + .map(item => { + return allMenuMap.get(item.id); + }) + .filter(item => !!item); + c.saveCustomMenusModel(curMenuItems as IAppMenuItem[]); onClose(); }; // 处理节点项点击 const handleItemClick = (item: IAppMenuItem, checked: boolean) => { + if (!item.id) return; + // 处理选中状态 if (checked) { - menuMap.value.delete(item.id || ''); + menuMap.value.delete(item.id); } else { - menuMap.value.set(item.id || '', item); + menuMap.value.set(item.id, item); } }; diff --git a/src/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.scss b/src/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.scss index 375468b7fac21e252ca737586abddddc58e450c1..4965f7f0c3e0c2a7d7483ceb405bef6c9c488291 100644 --- a/src/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.scss +++ b/src/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.scss @@ -40,24 +40,13 @@ $date-range-picker: ( flex: 1; align-items: center; min-height: getCssVar(date-range-picker, min-height); - white-space: nowrap; - @include when('start') { - .van-field { - input { - text-align: left; - } - } - } - @include when(end) { - min-width: 0; + input { overflow: hidden; text-overflow: ellipsis; - - input { - overflow: hidden; - text-overflow: ellipsis; - } - + white-space: nowrap; + min-width: 0; + } + @include when(end) { .van-field { input { text-align: right; diff --git a/src/editor/html/quill-editor-preview/quill-editor-preview.scss b/src/editor/html/quill-editor-preview/quill-editor-preview.scss index 4bcbb80b7b8c6721916eca402c2d726c6c8d21e3..89864ce2db647db2318ef10e572cf1d84c090dd7 100644 --- a/src/editor/html/quill-editor-preview/quill-editor-preview.scss +++ b/src/editor/html/quill-editor-preview/quill-editor-preview.scss @@ -3,6 +3,9 @@ $quill-preview: ( placeholder-color: getCssVar(editor, default, placeholder-color), btn-color: getCssVar(color, primary), + // 高度 + height-min-height: rem(100px), + // 字体大小 font-size: getCssVar(font-size, header-4), @@ -16,6 +19,7 @@ $quill-preview: ( @include set-component-css-var(quill-preview, $quill-preview); position: relative; + min-height: getCssVar(quill-preview, height-min-height); @include e(edit) { position: absolute; top: rem(12px); diff --git a/src/editor/html/quill-editor/quill-editor.scss b/src/editor/html/quill-editor/quill-editor.scss index 2863a54e36cf06ae70c4b117c930031e6d703b9b..32e0f00b7a180b1b87004d7505a4c0e4c13bcbc6 100644 --- a/src/editor/html/quill-editor/quill-editor.scss +++ b/src/editor/html/quill-editor/quill-editor.scss @@ -1,4 +1,10 @@ $quill: ( + // 颜色 + color: getCssVar(editor, default, text-color), + color-toolbar-bg: getCssVar(color, bg, 2), + color-modal-bg: getCssVar(color, bg, 0), + color-border: getCssVar(color, border), + color-active: getCssVar(editor, default, active-text-color), // 宽度 picker-width: rem(60px), @@ -44,6 +50,55 @@ $quill: ( height: 0; } } + + &.van-popup { + // 编辑框背景色 + background-color: getCssVar(quill, color-modal-bg); + + .ql-toolbar { + // 工具栏背景色 + background-color: getCssVar(quill, color-toolbar-bg); + + // 工具栏文字与图标默认颜色 + .ql-picker, + button:hover:not(.ql-active) { + color: getCssVar(quill, color); + } + + .ql-stroke, + button:hover:not(.ql-active) .ql-stroke { + stroke: getCssVar(quill, color); + } + + .ql-fill, + button:hover:not(.ql-active) .ql-fill { + fill: getCssVar(quill, color); + } + + // 工具栏文字与图标激活主题色 + button:hover, + button:focus, + button.ql-active, + .ql-picker-label:hover, + .ql-picker-label.ql-active, + .ql-picker-item:hover, + .ql-picker-item.ql-selected { + color: getCssVar(quill, color-active); + } + + // 工具栏下拉框样式 + .ql-picker-options { + background-color: getCssVar(quill, color-toolbar-bg); + } + } + + // 工具栏及内容区边框样式 + .ql-snow.ql-toolbar, + .ql-snow.ql-container { + border: none; + border-bottom: 1px solid getCssVar(quill, color-border); + } + } } @include e(header) { flex: none; diff --git a/src/editor/map-picker/ibiz-map-picker/ibiz-map-picker.tsx b/src/editor/map-picker/ibiz-map-picker/ibiz-map-picker.tsx index 088650189a9fbee698943f43af6ba9e25a7001e6..bdc38d2067068567f37f23669abca592d5127d5c 100644 --- a/src/editor/map-picker/ibiz-map-picker/ibiz-map-picker.tsx +++ b/src/editor/map-picker/ibiz-map-picker/ibiz-map-picker.tsx @@ -7,6 +7,7 @@ import { } from '@ibiz-template/vue3-util'; import AMapLoader from '@amap/amap-jsapi-loader'; import { MapPickerEditorController } from '../map-picker-editor.controller'; +import { IBizCommonRightIcon } from '../../common'; import './ibiz-map-picker.scss'; /** @@ -344,7 +345,7 @@ export const IBizMapPicker: ReturnType = = if (this.readonly || !this.value) return; return ; }, + 'right-icon': () => { + if (this.readonly) return; + return ; + }, }} ,