From aff3a18bd2ad0a14d8acb019cbba10a6860d33f4 Mon Sep 17 00:00:00 2001
From: zhf <1204297681@qq.com>
Date: Fri, 14 Nov 2025 09:59:10 +0800
Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E7=9C=8B=E6=9D=BF=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B8=83?=
=?UTF-8?q?=E5=B1=80=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../custom-dashboard-design.scss | 102 ++++++----------
.../custom-dashboard-design.tsx | 111 ++++++------------
2 files changed, 68 insertions(+), 145 deletions(-)
diff --git a/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.scss b/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.scss
index 48dae347f..c00e65907 100644
--- a/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.scss
+++ b/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.scss
@@ -1,33 +1,29 @@
$custom-dashboard-design: (
// 颜色
- color: getCssVar(color, text, 0),
- bg-color: getCssVar(color, bg, 0),
save-btn-color: getCssVar(color, primary),
- group-header-color: getCssVar(color, text, 1),
- group-content-bg-color: getCssVar(color, bg, 1),
- remove-btn-color: getCssVar(color, danger),
- add-btn-color: getCssVar(color, primary),
+ item-bg-color: getCssVar(color, bg, 0),
+
+ // 高度
+ item-height: getCssVar(height-control, large),
// 间距
- header-padding: getCssVar(spacing, base),
- content-padding: 0 getCssVar(spacing, base) getCssVar(spacing, base),
- group-margin-bottom: getCssVar(spacing, base),
- group-header-margin-bottom: getCssVar(spacing, base),
- group-content-padding: getCssVar(spacing, base) getCssVar(spacing, base-tight),
- item-padding: getCssVar(spacing, base-tight) 0,
- btn-margin-right: getCssVar(spacing, tight),
+ padding: getCssVar(spacing, base),
+ header-padding: 0 0 getCssVar(spacing, tight),
+ item-padding: 0 getCssVar(spacing, base),
+ item-margin: getCssVar(spacing, tight) 0,
+ item-icon-margin-right: getCssVar(spacing, extra-tight),
+ item-checkbox-margin-left: getCssVar(spacing, extra-tight),
// 圆角
- group-content-border-radius: getCssVar(border, radius, medium),
+ item-border-radius: getCssVar(border, radius, medium),
// 字体大小
- btn-font-size: getCssVar(font-size, header-3),
+ header-font-size: getCssVar(font-size, header-5),
+ close-btn-font-size: getCssVar(font-size, header-3),
+ item-font-size: getCssVar(font-size, header-6),
// 字体粗细
header-title-font-weight: getCssVar(font-weight, bold),
-
- // 边框
- item-border-bottom: 1px solid getCssVar(color, border),
);
@include b(custom-dashboard-design) {
@@ -36,8 +32,7 @@ $custom-dashboard-design: (
display: flex;
flex-direction: column;
height: 100%;
- color: getCssVar(custom-dashboard-design, color);
- background-color: getCssVar(custom-dashboard-design, bg-color);
+ padding: getCssVar(custom-dashboard-design, padding);
}
@include b(custom-dashboard-design-header) {
@@ -46,10 +41,11 @@ $custom-dashboard-design: (
align-items: center;
justify-content: space-between;
padding: getCssVar(custom-dashboard-design, header-padding);
+ font-size: getCssVar(custom-dashboard-design, header-font-size);
@include e(close-btn) {
flex-shrink: 0;
- font-size: getCssVar(custom-dashboard-design, btn-font-size);
+ font-size: getCssVar(custom-dashboard-design, close-btn-font-size);
cursor: pointer;
}
@@ -69,56 +65,27 @@ $custom-dashboard-design: (
@include b(custom-dashboard-design-content) {
flex: 1 1 0;
- padding: getCssVar(custom-dashboard-design, content-padding);
overflow: auto;
}
-@include b(custom-dashboard-design-group) {
- margin-bottom: getCssVar(custom-dashboard-design, group-margin-bottom);
-
- &:last-child {
- margin-bottom: 0;
- }
-}
-
-@include b(custom-dashboard-design-group-header) {
- margin-bottom: getCssVar(custom-dashboard-design, group-header-margin-bottom);
- color: getCssVar(custom-dashboard-design, group-header-color);
-}
-
-@include b(custom-dashboard-design-group-content) {
- padding: getCssVar(custom-dashboard-design, group-content-padding);
- background-color: getCssVar(custom-dashboard-design, group-content-bg-color);
- border-radius: getCssVar(custom-dashboard-design, group-content-border-radius);
-
- .van-empty {
- padding: 0;
- }
-
- .van-empty__bottom {
- margin-top: 0;
- }
-}
-
@include b(custom-dashboard-design-item) {
display: flex;
+ align-items: center;
+ height: getCssVar(custom-dashboard-design, item-height);
padding: getCssVar(custom-dashboard-design, item-padding);
- border-bottom: getCssVar(custom-dashboard-design, item-border-bottom);
-
- @include e(remove-btn) {
- flex-shrink: 0;
- margin-right: getCssVar(custom-dashboard-design, btn-margin-right);
- font-size: getCssVar(custom-dashboard-design, btn-font-size);
- color: getCssVar(custom-dashboard-design, remove-btn-color);
- cursor: pointer;
- }
-
- @include e(add-btn) {
- flex-shrink: 0;
- margin-right: getCssVar(custom-dashboard-design, btn-margin-right);
- font-size: getCssVar(custom-dashboard-design, btn-font-size);
- color: getCssVar(custom-dashboard-design, add-btn-color);
- cursor: pointer;
+ margin: getCssVar(custom-dashboard-design, item-margin);
+ font-size: getCssVar(custom-dashboard-design, item-font-size);
+ line-height: getCssVar(custom-dashboard-design, item-height);
+ background-color: getCssVar(custom-dashboard-design, item-bg-color);
+ border-radius: getCssVar(custom-dashboard-design, item-border-radius);
+
+ @include e(icon) {
+ display: flex;
+ flex: 0 0 auto;
+ align-items: center;
+ width: 1em;
+ height: 1em;
+ margin-right: getCssVar(custom-dashboard-design, item-icon-margin-right);
}
@include e(text) {
@@ -128,8 +95,9 @@ $custom-dashboard-design: (
white-space: nowrap;
}
- &:first-child {
- padding-top: 0;
+ @include e(checkbox) {
+ flex: 0 0 auto;
+ margin-left: getCssVar(custom-dashboard-design, item-checkbox-margin-left);
}
}
diff --git a/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.tsx b/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.tsx
index 652ac625c..2ea4a1cae 100644
--- a/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.tsx
+++ b/src/control/dashboard/custom-dashboard-design/custom-dashboard-design.tsx
@@ -27,38 +27,20 @@ export const CustomDashboardDesign = defineComponent({
);
// 门户部件列表
- const items = portlets.map(item => {
- return {
- id: item.model.id!,
- title: item.model.title,
- };
- });
-
- // 默认门户部件列表
- const defaultItems = ref(
- items.filter(item => {
- if (!Array.isArray(customDashboard.portlets)) {
- return true;
- }
- return customDashboard.portlets.includes(item.id);
+ const items = ref(
+ portlets.map(item => {
+ const id = item.model.id!;
+ const visible = !Array.isArray(customDashboard.portlets)
+ ? true
+ : customDashboard.portlets.includes(id);
+ return {
+ id,
+ title: item.model.title,
+ visible,
+ };
}),
);
- // 隐藏门户部件列表
- const hiddenItems = ref(
- items.filter(item => !defaultItems.value.includes(item)),
- );
-
- // 处理移除门户部件
- const handleRemove = (index: number) => {
- hiddenItems.value.push(...defaultItems.value.splice(index, 1));
- };
-
- // 处理添加门户部件
- const handleAdd = (index: number) => {
- defaultItems.value.push(...hiddenItems.value.splice(index, 1));
- };
-
// 处理关闭
const handleClose = () => {
props.modal.dismiss();
@@ -66,16 +48,15 @@ export const CustomDashboardDesign = defineComponent({
// 处理保存
const handleSave = async () => {
- await customDashboard.save(defaultItems.value.map(item => item.id));
+ await customDashboard.save(
+ items.value.filter(item => item.visible).map(item => item.id),
+ );
handleClose();
};
return {
ns,
- defaultItems,
- hiddenItems,
- handleRemove,
- handleAdd,
+ items,
handleClose,
handleSave,
};
@@ -100,50 +81,24 @@ export const CustomDashboardDesign = defineComponent({
-
-
-
- {this.defaultItems.map((item, index) => {
- return (
-
-
this.handleRemove(index)}
- >
-
- {item.title || item.id}
-
-
- );
- })}
- {this.defaultItems.length === 0 ?
: null}
-
-
-
-
-
- {this.hiddenItems.map((item, index) => {
- return (
-
-
this.handleAdd(index)}
- >
-
- {item.title || item.id}
-
-
- );
- })}
- {this.hiddenItems.length === 0 ?
: null}
-
-
+ {this.items.map(item => {
+ return (
+
+
+
+ {item.title || item.id}
+
+
+
+ );
+ })}
+ {this.items.length === 0 ?
: null}
);
--
Gitee
From b83f5a5afbe26ebf261d0eeb68b66a13e25e2d23 Mon Sep 17 00:00:00 2001
From: zhf <1204297681@qq.com>
Date: Fri, 14 Nov 2025 10:02:52 +0800
Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=8D=95?=
=?UTF-8?q?=E9=94=9A=E7=82=B9=E6=9C=AA=E5=9B=BA=E5=AE=9A=E5=9C=A8=E8=A7=86?=
=?UTF-8?q?=E5=8F=A3=E5=BC=82=E5=B8=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/control/form/edit-form/edit-form.scss | 33 +++++++++++++++++++----
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/src/control/form/edit-form/edit-form.scss b/src/control/form/edit-form/edit-form.scss
index 440c62405..9ea2f731b 100644
--- a/src/control/form/edit-form/edit-form.scss
+++ b/src/control/form/edit-form/edit-form.scss
@@ -1,25 +1,48 @@
+$control-edit-form: (
+ // 边距
+ sidebar-topright-top: calc(#{getCssVar(view-page-caption, line-height)} + 2 * #{getCssVar(spacing, tight)}),
+ sidebar-topright-right: rem(0px),
+ sidebar-bottomright-bottom: rem(0px),
+ sidebar-bottomright-right: rem(0px),
+ sidebar-middleright-top: 50%,
+ sidebar-middleright-right: rem(0px),
+);
+
@include b(control-edit-form) {
width: 100%;
@include e(anchor) {
+ @include set-component-css-var('control-edit-form', $control-edit-form);
+
position: relative;
+
.van-index-anchor {
padding: 0;
}
+
+ // 右侧
+ @include m(middleright) {
+ .van-index-bar__sidebar {
+ top: getCssVar('control-edit-form', 'sidebar-middleright-top');
+ right: getCssVar('control-edit-form', 'sidebar-middleright-right');
+ }
+ }
+
// 右下角
@include m(bottomright) {
.van-index-bar__sidebar {
- bottom: 0;
- transform: none;
top: auto;
+ right: getCssVar('control-edit-form', 'sidebar-bottomright-right');
+ bottom: getCssVar('control-edit-form', 'sidebar-bottomright-bottom');
+ transform: none;
}
}
+
// 右上角
@include m(topright) {
.van-index-bar__sidebar {
- position: absolute;
- top: 0;
+ top: getCssVar('control-edit-form', 'sidebar-topright-top');
+ right: getCssVar('control-edit-form', 'sidebar-topright-right');
transform: none;
- bottom: auto;
}
}
}
--
Gitee
From dfe7fb3ccb33dd6702efee5cf6fc52f056dbaf73 Mon Sep 17 00:00:00 2001
From: zhf <1204297681@qq.com>
Date: Fri, 14 Nov 2025 10:06:42 +0800
Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=8D=95?=
=?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA=E6=98=BE=E7=A4=BA=E6=A0=B7?=
=?UTF-8?q?=E5=BC=8F=E4=B8=8D=E6=AD=A3=E7=A1=AE=E5=BC=82=E5=B8=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../form-item-container.scss | 70 +++++++++++++------
1 file changed, 50 insertions(+), 20 deletions(-)
diff --git a/src/control/form/form-detail/form-item/form-item-container/form-item-container.scss b/src/control/form/form-detail/form-item/form-item-container/form-item-container.scss
index 70f3da031..57fd712eb 100644
--- a/src/control/form/form-detail/form-item/form-item-container/form-item-container.scss
+++ b/src/control/form/form-detail/form-item/form-item-container/form-item-container.scss
@@ -1,43 +1,73 @@
/* stylelint-disable order/properties-order */
$form-item-container: (
- label-width: rem(130px),
- line-height: getCssVar(form-item, line-height),
+ // 颜色
require-mark-color: getCssVar(color, danger),
- container-padding: getCssVar(spacing, base),
- left-container-padding: getCssVar(spacing, base),
- error-margin-top: getCssVar(spacing, extra-tight),
bg-color: getCssVar(color, bg, 1),
- label-font-size: getCssVar(font-size, header-6),
label-text-color: getCssVar(color, text, 0),
- container-error-padding: 0 getCssVar(spacing, base),
- editor-padding: getCssVar(spacing, tight) getCssVar(spacing, none)
- getCssVar(spacing, tight) getCssVar(spacing, none),
- border: rem(1px) getCssVar(color, border) solid,
- border-radius: rem(4px),
- border-width: calc(100% - getCssVar(spacing, base) * 2),
underline-color: getCssVar(color, border),
+
+ // 宽度
+ label-width: rem(130px),
+ underline-width: calc(100% - getCssVar(spacing, base) * 2),
+
+ // 高度
editor-min-height: calc(
getCssVar(form-item, line-height) + 2 * getCssVar(spacing, tight)
),
- border-editor-padding: getCssVar(spacing, tight),
border-editor-min-height: calc(
getCssVar(form-item, line-height) + 2 * getCssVar(spacing, tight)
),
+
+ // 间距
+ container-padding: getCssVar(spacing, base),
+ left-container-padding: getCssVar(spacing, base),
+ error-margin-top: getCssVar(spacing, extra-tight),
+ container-error-padding: 0 getCssVar(spacing, base),
+ editor-padding: getCssVar(spacing, tight) getCssVar(spacing, none)
+ getCssVar(spacing, tight) getCssVar(spacing, none),
+ border-editor-padding: getCssVar(spacing, tight),
+
+ // 圆角
+ border-radius: rem(4px),
+
+ // 字体大小
+ label-font-size: getCssVar(font-size, header-6),
+
+ // 行高
+ line-height: getCssVar(form-item, line-height),
+
+ // 边框
+ border: rem(1px) getCssVar(color, border) solid,
+ border-width: calc(100% - getCssVar(spacing, base) * 2),
);
$form-item-label: (
- line-height: 1,
- font-size: getCssVar(font-size, header-5),
+ // 颜色
text-color: getCssVar(color, text, 0),
+
+ // 间距
icon-padding-right: getCssVar(spacing, extra-tight),
+
+ // 字体大小
+ font-size: getCssVar(font-size, header-5),
+
+ // 行高
+ line-height: 1,
);
$form-item-popover: (
- font-size: getCssVar(font-size, header-6),
+ // 颜色
+ link-color: getCssVar(color, link),
+
+ // 间距
padding: getCssVar(spacing, tight),
- cell-border: 1px solid getCssVar(color, border),
cell-padding: getCssVar(spacing, extra-tight) getCssVar(spacing, tight),
- link-color: getCssVar(color, link),
+
+ // 字体大小
+ font-size: getCssVar(font-size, header-6),
+
+ // 边框
+ cell-border: 1px solid getCssVar(color, border),
);
// 表单项基础样式
@@ -60,7 +90,7 @@ $form-item-popover: (
&::after {
position: absolute;
z-index: 1;
- width: 100%;
+ width: getCssVar(form-item-container, underline-width);
height: rem(1px);
content: '';
background-color: getCssVar(form-item-container, underline-color);
@@ -269,7 +299,7 @@ $form-item-popover: (
@include b(form-item-container-error) {
position: absolute;
bottom: 0;
- width: 100%;
+ width: getCssVar(form-item-container, underline-width);
font-size: getCssVar('form-item', 'error-font-size');
line-height: getCssVar('form-item', 'font-size');
color: getCssVar('form-item', 'error-color');
--
Gitee
From c8fbab788819c443b9bc681a9744295cd176c2f8 Mon Sep 17 00:00:00 2001
From: zhf <1204297681@qq.com>
Date: Fri, 14 Nov 2025 10:09:37 +0800
Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=A7=BB?=
=?UTF-8?q?=E5=8A=A8=E7=AB=AF=E5=A4=9A=E6=95=B0=E6=8D=AE=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=E7=9A=84=E9=80=89=E6=8B=A9=E9=80=BB?=
=?UTF-8?q?=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CHANGELOG.md | 4 +++
.../data-picker/ibiz-mpicker/ibiz-mpicker.tsx | 25 +++++++++++--------
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6f11df7de..4aedd7d8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -123,6 +123,8 @@
- 迁移数据关系分页通知事件(分页切换)至控制器中
- 优化浮动按钮及信息项通用组件的绘制逻辑及样式
- 优化分页导航引擎的视图刷新逻辑,使其与pc端视图刷新保持一致
+- 修改数据看板自定义布局逻辑
+- 修改移动端多数据选择编辑器的选择逻辑
### Fixed
@@ -150,6 +152,8 @@
- 修复菜单图标样式呈现不正确异常
- 修复开启下拉刷新后视图返回按钮失效异常
- 修复数据关系分页隐藏编辑项逻辑计算异常及计数器禁用未生效
+- 修复表单锚点未固定在视口异常
+- 修复表单错误提示显示样式不正确异常
## [0.7.41-alpha.19] - 2025-10-16
diff --git a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx
index 313efd42c..f000e18c9 100644
--- a/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx
+++ b/src/editor/data-picker/ibiz-mpicker/ibiz-mpicker.tsx
@@ -321,11 +321,11 @@ export const IBizMPicker = defineComponent({
};
const openPicker = async () => {
- if (props.disabled || props.readonly) {
- return;
- }
- showPicker.value = true;
- onSearch();
+ // if (props.disabled || props.readonly) {
+ // return;
+ // }
+ // showPicker.value = true;
+ // onSearch();
};
return {
@@ -403,6 +403,11 @@ export const IBizMPicker = defineComponent({
this.ns.b('select-item'),
this.ns.bm('select-item', 'more'),
]}
+ onClick={(event: MouseEvent) => {
+ if (this.c.model.pickupAppViewId) {
+ this.openPickUpView(event);
+ }
+ }}
>
+ {this.selectItems.length - showNum}
@@ -430,20 +435,20 @@ export const IBizMPicker = defineComponent({
>
),
- this.c.model.appDEDataSetId && (
-
- ),
+ // this.c.model.appDEDataSetId && (
+ //
+ // ),
];
},
}}
)}
-
+ > */}
);
},
--
Gitee