form-driver 0.4.21 → 0.4.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/m3.css +116 -8
- package/dist/m3.js +1 -1
- package/es/m3.css +116 -8
- package/es/m3.js +486 -474
- package/lib/m3.css +116 -8
- package/lib/m3.js +485 -473
- package/package.json +4 -1
- package/src/ui/editor/basic/ARangePicker.tsx +15 -3
- package/src/ui/widget/EnhancedSortDrag.less +61 -0
- package/src/ui/widget/EnhancedSortDrag.tsx +294 -284
- package/src/ui/widget/SortDrag.less +78 -13
- package/src/ui/widget/SortDrag.tsx +119 -103
- package/types/ui/widget/EnhancedSortDrag.d.ts +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "form-driver",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.23",
|
|
4
4
|
"description": "An efficient framework for creating forms.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"authors": [
|
|
@@ -58,6 +58,9 @@
|
|
|
58
58
|
"@ant-design/icons": "^4.3.0",
|
|
59
59
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.4",
|
|
60
60
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
|
|
61
|
+
"@dnd-kit/core": "^6.3.1",
|
|
62
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
63
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
61
64
|
"@babel/runtime": "^7.9.2",
|
|
62
65
|
"ali-oss": "^6.17.1",
|
|
63
66
|
"antd": "4.18.7",
|
|
@@ -78,7 +78,9 @@ export class ARangePicker extends Viewer<State> {
|
|
|
78
78
|
*/
|
|
79
79
|
_data2rangePicker(d: ARangePickerData): AntData {
|
|
80
80
|
const dataFormat = this.props.schema.dataFormat ?? "x";
|
|
81
|
-
|
|
81
|
+
// 若 tillNow=true,结束时间传 null,避免 RangePicker 缓存旧结束时间
|
|
82
|
+
const endTime = d[2] === true ? null : (d[1] ? moment(d[1], dataFormat) : null);
|
|
83
|
+
return [d[0] ? moment(d[0], dataFormat) : null, endTime];
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
element() {
|
|
@@ -172,7 +174,8 @@ export class ARangePicker extends Viewer<State> {
|
|
|
172
174
|
} else if (precision === 'month') {
|
|
173
175
|
extraProps.picker = 'month';
|
|
174
176
|
} else if (pcShowTime) {
|
|
175
|
-
|
|
177
|
+
// precision 为 minute 时只展示时分,不展示秒
|
|
178
|
+
extraProps.showTime = precision === 'minute' ? { format: 'HH:mm' } : true;
|
|
176
179
|
}
|
|
177
180
|
|
|
178
181
|
// 构造元素
|
|
@@ -204,7 +207,16 @@ export class ARangePicker extends Viewer<State> {
|
|
|
204
207
|
this._onCalendarChangeValue = d;
|
|
205
208
|
}}
|
|
206
209
|
onChange={(vv) => {
|
|
207
|
-
|
|
210
|
+
// 用户清空日期范围时,直接置空
|
|
211
|
+
if (!vv) {
|
|
212
|
+
super.changeValueEx(undefined, true, true);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const currentData = super.getValue();
|
|
216
|
+
const isTillNow = _.get(currentData, '[2]') === true;
|
|
217
|
+
// 若当前是"至今"且用户只改了开始时间(结束时间仍为 null),保留 tillNow
|
|
218
|
+
const newTillNow = isTillNow && vv[1] == null;
|
|
219
|
+
super.changeValueEx(this._rangePicker2Data(vv, newTillNow), true, true);
|
|
208
220
|
}}
|
|
209
221
|
{...extraProps}
|
|
210
222
|
/>;
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
border-radius: 6px;
|
|
22
22
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
|
|
23
23
|
transition: all 0.3s ease;
|
|
24
|
+
user-select: none;
|
|
25
|
+
-webkit-user-select: none;
|
|
24
26
|
|
|
25
27
|
// 水平方向布局
|
|
26
28
|
&.direction-horizontal {
|
|
@@ -99,6 +101,31 @@
|
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
}
|
|
104
|
+
|
|
105
|
+
// 移动端拖拽句柄触控区域增大
|
|
106
|
+
.enhanced-dragHandleWrapper {
|
|
107
|
+
display: flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
justify-content: center;
|
|
110
|
+
min-width: 44px;
|
|
111
|
+
min-height: 44px;
|
|
112
|
+
cursor: grab;
|
|
113
|
+
margin-left: 4px;
|
|
114
|
+
touch-action: none;
|
|
115
|
+
-webkit-touch-callout: none;
|
|
116
|
+
|
|
117
|
+
&:active {
|
|
118
|
+
.enhanced-dragHandleIcon {
|
|
119
|
+
color: #1890ff;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.enhanced-dragHandleIcon {
|
|
125
|
+
font-size: 20px;
|
|
126
|
+
color: #999;
|
|
127
|
+
transition: color 0.2s;
|
|
128
|
+
}
|
|
102
129
|
}
|
|
103
130
|
|
|
104
131
|
// 拖拽动画
|
|
@@ -140,3 +167,37 @@
|
|
|
140
167
|
}
|
|
141
168
|
}
|
|
142
169
|
}
|
|
170
|
+
|
|
171
|
+
// ========== DragOverlay 预览 — 简洁浮动卡片 ==========
|
|
172
|
+
.enhanced-sortDrag-overlay {
|
|
173
|
+
background: #ffffff;
|
|
174
|
+
border-radius: 8px;
|
|
175
|
+
box-shadow:
|
|
176
|
+
0 1px 3px rgba(0, 0, 0, 0.08),
|
|
177
|
+
0 8px 24px rgba(0, 0, 0, 0.12);
|
|
178
|
+
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
179
|
+
|
|
180
|
+
// 普通模式预览
|
|
181
|
+
.enhanced-sortDrag-overlay-content {
|
|
182
|
+
padding: 10px 16px;
|
|
183
|
+
|
|
184
|
+
.enhanced-sortDrag-overlay-body {
|
|
185
|
+
font-size: 14px;
|
|
186
|
+
color: #262626;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// 表格行模式预览
|
|
191
|
+
.enhanced-sortDrag-overlay-row {
|
|
192
|
+
display: flex;
|
|
193
|
+
align-items: center;
|
|
194
|
+
padding: 10px 16px;
|
|
195
|
+
gap: 8px;
|
|
196
|
+
|
|
197
|
+
.enhanced-sortDrag-overlay-label {
|
|
198
|
+
font-size: 14px;
|
|
199
|
+
color: #262626;
|
|
200
|
+
font-weight: 500;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|