@form-create/component-antdv-group 3.2.22 → 3.2.31
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/index.esm.js +180 -58
- package/dist/index.esm.min.js +2 -2
- package/dist/index.js +180 -58
- package/dist/index.min.js +2 -2
- package/package.json +3 -3
- package/src/component.jsx +112 -31
- package/src/style.css +373 -4
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/component-antdv-group v3.2.
|
|
2
|
+
* @form-create/component-antdv-group v3.2.31
|
|
3
3
|
* (c) 2018-2025 xaboy
|
|
4
4
|
* Github https://github.com/xaboy/form-create with group
|
|
5
5
|
* Released under the MIT License.
|
|
@@ -249,9 +249,21 @@ function styleInject(css, ref) {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
var css_248z = "._fc-group{display:flex;flex-direction:column;justify-content:center;min-height:38px;width:100%}._fc-group-disabled ._fc-group-add,._fc-group-disabled ._fc-group-btn{cursor:not-allowed}._fc-group-handle{background-color:#fff;border:1px dashed #d9d9d9;border-radius:15px;bottom:-15px;display:flex;flex-direction:row;padding:3px 8px;position:absolute;right:30px}._fc-group-btn{cursor:pointer}._fc-group-idx{align-items:center;background:#eee;border-radius:15px;bottom:-15px;display:flex;font-weight:700;height:30px;justify-content:center;left:10px;position:absolute;width:30px}._fc-group-handle ._fc-group-btn+._fc-group-btn{margin-left:7px}._fc-group-container{border:1px dashed #d9d9d9;border-radius:5px;display:flex;flex-direction:column;margin:5px 5px 25px;padding:20px 20px 25px;position:relative}._fc-group-arrow{height:20px;position:relative;width:20px}._fc-group-arrow:before{border-left:2px solid #999;border-top:2px solid #999;content:\"\";height:9px;left:5px;position:absolute;top:8px;transform:rotate(45deg);width:9px}._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group-plus-minus{cursor:pointer;height:20px;position:relative;width:20px}._fc-group-plus-minus:after,._fc-group-plus-minus:before{background-color:#409eff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%}._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group-plus-minus._fc-group-minus:after{background-color:#f56c6c}._fc-group-add{border:1px solid rgba(64,158,255,.5);border-radius:15px;cursor:pointer;height:25px;width:25px}._fc-group-add._fc-group-plus-minus:after,._fc-group-add._fc-group-plus-minus:before{width:50%}";
|
|
252
|
+
var css_248z = "._fc-group{display:flex;flex-direction:column;justify-content:center;min-height:38px;width:100%}._fc-group-disabled ._fc-group-add,._fc-group-disabled ._fc-group-btn{cursor:not-allowed}._fc-group-handle{background-color:#fff;border:1px dashed #d9d9d9;border-radius:15px;bottom:-15px;display:flex;flex-direction:row;padding:3px 8px;position:absolute;right:30px}._fc-group-btn{cursor:pointer}._fc-group-idx{align-items:center;background:#eee;border-radius:15px;bottom:-15px;display:flex;font-weight:700;height:30px;justify-content:center;left:10px;position:absolute;width:30px}._fc-group-handle ._fc-group-btn+._fc-group-btn{margin-left:7px}._fc-group-container{border:1px dashed #d9d9d9;border-radius:5px;display:flex;flex-direction:column;margin:5px 5px 25px;padding:20px 20px 25px;position:relative}._fc-group-arrow{height:20px;position:relative;width:20px}._fc-group-arrow:before{border-left:2px solid #999;border-top:2px solid #999;content:\"\";height:9px;left:5px;position:absolute;top:8px;transform:rotate(45deg);width:9px}._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group-plus-minus{cursor:pointer;height:20px;position:relative;width:20px}._fc-group-plus-minus:after,._fc-group-plus-minus:before{background-color:#409eff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%}._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group-plus-minus._fc-group-minus:after{background-color:#f56c6c}._fc-group-add{border:1px solid rgba(64,158,255,.5);border-radius:15px;cursor:pointer;height:25px;width:25px}._fc-group-add._fc-group-plus-minus:after,._fc-group-add._fc-group-plus-minus:before{width:50%}._fc-group._fc-group-card{display:flex;flex-direction:column;gap:16px;width:100%}._fc-group._fc-group-card._fc-group-disabled ._fc-group-add,._fc-group._fc-group-card._fc-group-disabled ._fc-group-btn{cursor:not-allowed;opacity:.5}._fc-group._fc-group-card ._fc-group-container{background:#fff;border:1px solid #f0f0f0;border-radius:6px;display:flex;flex-direction:column;margin:0;overflow:hidden;padding:0;position:relative}._fc-group._fc-group-card ._fc-group-header{align-items:center;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:16px 20px 12px}._fc-group._fc-group-card ._fc-group-idx{align-items:center;background:#f0f0f0;border:1px solid #e0e0e0;border-radius:6px;color:#666;display:flex;flex-shrink:0;font-size:12px;font-weight:500;height:24px;justify-content:center;margin-right:12px;position:static;width:24px}._fc-group._fc-group-card ._fc-group-title{color:rgba(0,0,0,.85);flex:1;font-size:14px;font-weight:500;line-height:1.5715}._fc-group._fc-group-card ._fc-group-handle{align-items:center;background-color:transparent;border:none;border-radius:0;bottom:auto;display:flex;flex-direction:row;flex-shrink:0;gap:4px;margin-left:12px;padding:0;position:static;right:auto}._fc-group._fc-group-card ._fc-group-btn{align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:4px;color:rgba(0,0,0,.45);cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-btn:hover{background:#f0f8ff;border-color:#1890ff;color:#1890ff}._fc-group._fc-group-card ._fc-group-btn:active{border-color:#096dd9;color:#096dd9}._fc-group._fc-group-card ._fc-group-arrow{position:relative}._fc-group._fc-group-card ._fc-group-arrow:before{border-left:1px solid;border-top:1px solid;content:\"\";height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:5px}._fc-group._fc-group-card ._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group._fc-group-card ._fc-group-sort{align-items:center;display:flex;flex-direction:column;height:24px;justify-content:center;position:relative}._fc-group._fc-group-card ._fc-group-sort:after,._fc-group._fc-group-card ._fc-group-sort:before{border-left:1px solid;border-top:1px solid;content:\"\";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}._fc-group._fc-group-card ._fc-group-sort:before{top:6px;transform:translateX(-50%) rotate(45deg)}._fc-group._fc-group-card ._fc-group-sort:after{bottom:6px;transform:translateX(-50%) rotate(225deg)}._fc-group._fc-group-card ._fc-group-sort-down,._fc-group._fc-group-card ._fc-group-sort-up{cursor:pointer;height:12px;left:0;position:absolute;right:0;z-index:1}._fc-group._fc-group-card ._fc-group-sort-up{top:0}._fc-group._fc-group-card ._fc-group-sort-down{bottom:0}._fc-group._fc-group-card ._fc-group-sort-down:hover,._fc-group._fc-group-card ._fc-group-sort-up:hover{background:rgba(24,144,255,.1)}._fc-group._fc-group-card ._fc-group-plus-minus{background:#409eff;border-color:#409eff;color:#fff;height:24px;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-plus-minus:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}._fc-group._fc-group-card ._fc-group-plus-minus:after,._fc-group._fc-group-card ._fc-group-plus-minus:before{background-color:currentColor;content:\"\";height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}._fc-group._fc-group-card ._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus{background:#f56c6c;border-color:#f56c6c}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus:hover{background:#f78989;border-color:#f78989}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group._fc-group-card ._fc-group-content{padding:20px}._fc-group._fc-group-card ._fc-group-add{align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:4px;color:rgba(0,0,0,.45);cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-add:hover{background:#f0f8ff;border-color:#409eff;color:#409eff}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus{background:#409eff;border-color:#409eff;color:#fff;height:24px;width:24px}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:after,._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:before{background-color:currentColor;content:\"\";height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group._fc-group-card ._fc-group-empty{color:rgba(0,0,0,.45);font-size:14px;padding:40px 20px;text-align:center}@media (max-width:768px){._fc-group._fc-group-card ._fc-group-container{border-left:none;border-radius:0;border-right:none;margin:0 -8px}._fc-group._fc-group-card ._fc-group-header{padding:12px 16px 8px}._fc-group._fc-group-card ._fc-group-content{padding:16px}._fc-group._fc-group-card ._fc-group-handle{gap:2px}._fc-group._fc-group-card ._fc-group-btn{height:22px;width:22px}}@media (prefers-color-scheme:dark){._fc-group._fc-group-card ._fc-group-container{background:#141414;border-color:#303030}._fc-group._fc-group-card ._fc-group-container:hover{border-color:#434343}._fc-group._fc-group-card ._fc-group-header{background:#1f1f1f;border-bottom-color:#303030}._fc-group._fc-group-card ._fc-group-title{color:hsla(0,0%,100%,.85)}._fc-group._fc-group-card ._fc-group-btn{background:#1f1f1f;border-color:#434343;color:hsla(0,0%,100%,.45)}._fc-group._fc-group-card ._fc-group-btn:hover{background:#111b26;border-color:#177ddc;color:#177ddc}._fc-group._fc-group-card ._fc-group-content{background:#141414}._fc-group._fc-group-card ._fc-group-add{background:#1f1f1f;border-color:#434343;color:hsla(0,0%,100%,.45)}._fc-group._fc-group-card ._fc-group-add:hover{background:#111b26;border-color:#177ddc;color:#177ddc}}";
|
|
253
253
|
styleInject(css_248z);
|
|
254
254
|
|
|
255
|
+
function isPromise(value) {
|
|
256
|
+
return value && _typeof(value) === 'object' && typeof value.then === 'function';
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function toPromise(value) {
|
|
260
|
+
if (isPromise(value)) {
|
|
261
|
+
return value;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return Promise.resolve(value);
|
|
265
|
+
}
|
|
266
|
+
|
|
255
267
|
var NAME = 'fcGroup';
|
|
256
268
|
var Group = defineComponent({
|
|
257
269
|
name: NAME,
|
|
@@ -291,6 +303,14 @@ var Group = defineComponent({
|
|
|
291
303
|
type: Boolean,
|
|
292
304
|
"default": true
|
|
293
305
|
},
|
|
306
|
+
title: {
|
|
307
|
+
type: [String, Function],
|
|
308
|
+
"default": null
|
|
309
|
+
},
|
|
310
|
+
type: {
|
|
311
|
+
type: String,
|
|
312
|
+
"default": 'default'
|
|
313
|
+
},
|
|
294
314
|
onBeforeRemove: {
|
|
295
315
|
type: Function,
|
|
296
316
|
"default": function _default() {}
|
|
@@ -492,16 +512,27 @@ var Group = defineComponent({
|
|
|
492
512
|
this.input(value);
|
|
493
513
|
},
|
|
494
514
|
del: function del(index, key) {
|
|
495
|
-
|
|
515
|
+
var _this7 = this;
|
|
516
|
+
|
|
517
|
+
if (this.disabled) {
|
|
496
518
|
return;
|
|
497
519
|
}
|
|
498
520
|
|
|
499
|
-
|
|
521
|
+
var del = function del() {
|
|
522
|
+
_this7.removeRule(key, true);
|
|
500
523
|
|
|
501
|
-
|
|
524
|
+
var value = _toConsumableArray(_this7.modelValue);
|
|
502
525
|
|
|
503
|
-
|
|
504
|
-
|
|
526
|
+
value.splice(index, 1);
|
|
527
|
+
|
|
528
|
+
_this7.input(value);
|
|
529
|
+
};
|
|
530
|
+
|
|
531
|
+
toPromise(this.onBeforeRemove(this.modelValue, index)).then(function (res) {
|
|
532
|
+
if (false !== res) {
|
|
533
|
+
del();
|
|
534
|
+
}
|
|
535
|
+
});
|
|
505
536
|
},
|
|
506
537
|
addIcon: function addIcon(key) {
|
|
507
538
|
return createVNode("div", {
|
|
@@ -510,48 +541,83 @@ var Group = defineComponent({
|
|
|
510
541
|
}, null);
|
|
511
542
|
},
|
|
512
543
|
delIcon: function delIcon(index, key) {
|
|
513
|
-
var
|
|
544
|
+
var _this8 = this;
|
|
514
545
|
|
|
515
546
|
return createVNode("div", {
|
|
516
547
|
"class": "_fc-group-btn _fc-group-plus-minus _fc-group-minus",
|
|
517
548
|
"onClick": function onClick() {
|
|
518
|
-
return
|
|
549
|
+
return _this8.del(index, key);
|
|
519
550
|
}
|
|
520
551
|
}, null);
|
|
521
552
|
},
|
|
522
553
|
sortUpIcon: function sortUpIcon(index) {
|
|
523
|
-
var
|
|
554
|
+
var _this9 = this;
|
|
524
555
|
|
|
525
556
|
return createVNode("div", {
|
|
526
557
|
"class": "_fc-group-btn _fc-group-arrow _fc-group-up",
|
|
527
558
|
"onClick": function onClick() {
|
|
528
|
-
return
|
|
559
|
+
return _this9.changeSort(index, -1);
|
|
529
560
|
}
|
|
530
561
|
}, null);
|
|
531
562
|
},
|
|
532
563
|
sortDownIcon: function sortDownIcon(index) {
|
|
533
|
-
var
|
|
564
|
+
var _this10 = this;
|
|
534
565
|
|
|
535
566
|
return createVNode("div", {
|
|
536
567
|
"class": "_fc-group-btn _fc-group-arrow _fc-group-down",
|
|
537
568
|
"onClick": function onClick() {
|
|
538
|
-
return
|
|
569
|
+
return _this10.changeSort(index, 1);
|
|
539
570
|
}
|
|
540
571
|
}, null);
|
|
541
572
|
},
|
|
542
573
|
changeSort: function changeSort(index, sort) {
|
|
543
|
-
var
|
|
574
|
+
var _this11 = this;
|
|
544
575
|
|
|
545
576
|
var a = this.sort[index];
|
|
546
577
|
this.sort[index] = this.sort[index + sort];
|
|
547
578
|
this.sort[index + sort] = a;
|
|
548
579
|
this.formCreateInject.subForm(this.sort.map(function (k) {
|
|
549
|
-
return
|
|
580
|
+
return _this11.cacheRule[k].$f;
|
|
550
581
|
}));
|
|
551
582
|
this.formData(0);
|
|
552
583
|
},
|
|
584
|
+
sortIcon: function sortIcon(index, total) {
|
|
585
|
+
var _this12 = this;
|
|
586
|
+
|
|
587
|
+
var canMoveUp = index > 0;
|
|
588
|
+
var canMoveDown = index < total - 1;
|
|
589
|
+
|
|
590
|
+
if (!canMoveUp && !canMoveDown) {
|
|
591
|
+
return null;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
if (canMoveUp && canMoveDown) {
|
|
595
|
+
// 显示合并的上下箭头按钮
|
|
596
|
+
return createVNode("div", {
|
|
597
|
+
"class": "_fc-group-btn _fc-group-sort"
|
|
598
|
+
}, [createVNode("div", {
|
|
599
|
+
"class": "_fc-group-sort-up",
|
|
600
|
+
"onClick": function onClick() {
|
|
601
|
+
return _this12.changeSort(index, -1);
|
|
602
|
+
}
|
|
603
|
+
}, null), createVNode("div", {
|
|
604
|
+
"class": "_fc-group-sort-down",
|
|
605
|
+
"onClick": function onClick() {
|
|
606
|
+
return _this12.changeSort(index, 1);
|
|
607
|
+
}
|
|
608
|
+
}, null)]);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
if (canMoveUp) {
|
|
612
|
+
return this.sortUpIcon(index);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
if (canMoveDown) {
|
|
616
|
+
return this.sortDownIcon(index);
|
|
617
|
+
}
|
|
618
|
+
},
|
|
553
619
|
makeIcon: function makeIcon(total, index, key) {
|
|
554
|
-
var
|
|
620
|
+
var _this13 = this;
|
|
555
621
|
|
|
556
622
|
if (this.$slots.button) {
|
|
557
623
|
return this.$slots.button({
|
|
@@ -560,7 +626,7 @@ var Group = defineComponent({
|
|
|
560
626
|
vm: this,
|
|
561
627
|
key: key,
|
|
562
628
|
del: function del() {
|
|
563
|
-
return
|
|
629
|
+
return _this13.del(index, key);
|
|
564
630
|
},
|
|
565
631
|
add: this.add
|
|
566
632
|
});
|
|
@@ -576,12 +642,12 @@ var Group = defineComponent({
|
|
|
576
642
|
btn.push(this.delIcon(index, key));
|
|
577
643
|
}
|
|
578
644
|
|
|
579
|
-
if (this.sortBtn
|
|
580
|
-
|
|
581
|
-
}
|
|
645
|
+
if (this.sortBtn) {
|
|
646
|
+
var sortBtn = this.sortIcon(index, total);
|
|
582
647
|
|
|
583
|
-
|
|
584
|
-
|
|
648
|
+
if (sortBtn) {
|
|
649
|
+
btn.push(sortBtn);
|
|
650
|
+
}
|
|
585
651
|
}
|
|
586
652
|
|
|
587
653
|
return btn;
|
|
@@ -591,8 +657,21 @@ var Group = defineComponent({
|
|
|
591
657
|
},
|
|
592
658
|
expandRule: function expandRule(n) {
|
|
593
659
|
for (var i = 0; i < n; i++) {
|
|
594
|
-
this.
|
|
660
|
+
this.modelValue.push(this.field ? null : {});
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
this.input(_toConsumableArray(this.modelValue));
|
|
664
|
+
},
|
|
665
|
+
getTitle: function getTitle(index, key) {
|
|
666
|
+
if (typeof this.title === 'function') {
|
|
667
|
+
return this.title(index, this.modelValue[index], key);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if (typeof this.title === 'string') {
|
|
671
|
+
return this.title.replace('{index}', index + 1);
|
|
595
672
|
}
|
|
673
|
+
|
|
674
|
+
return false;
|
|
596
675
|
}
|
|
597
676
|
},
|
|
598
677
|
created: function created() {
|
|
@@ -607,12 +686,13 @@ var Group = defineComponent({
|
|
|
607
686
|
}
|
|
608
687
|
},
|
|
609
688
|
render: function render() {
|
|
610
|
-
var
|
|
689
|
+
var _this14 = this;
|
|
611
690
|
|
|
612
691
|
var keys = this.sort;
|
|
613
692
|
var button = this.button;
|
|
614
693
|
var Type = this.form;
|
|
615
694
|
var disabled = this.disabled;
|
|
695
|
+
var isCardType = this.type === 'card';
|
|
616
696
|
var children = keys.length === 0 ? this.$slots["default"] ? this.$slots["default"]({
|
|
617
697
|
vm: this,
|
|
618
698
|
add: this.add
|
|
@@ -621,44 +701,86 @@ var Group = defineComponent({
|
|
|
621
701
|
"class": "_fc-group-plus-minus _fc-group-add fc-clock",
|
|
622
702
|
"onClick": this.add
|
|
623
703
|
}, null) : keys.map(function (key, index) {
|
|
624
|
-
var
|
|
625
|
-
rule =
|
|
626
|
-
options =
|
|
627
|
-
var btn = button && !disabled ?
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
"
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
},
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
704
|
+
var _this14$cacheRule$key = _this14.cacheRule[key],
|
|
705
|
+
rule = _this14$cacheRule$key.rule,
|
|
706
|
+
options = _this14$cacheRule$key.options;
|
|
707
|
+
var btn = button && !disabled ? _this14.makeIcon(keys.length, index, key) : [];
|
|
708
|
+
|
|
709
|
+
var title = _this14.getTitle(index, key);
|
|
710
|
+
|
|
711
|
+
if (isCardType) {
|
|
712
|
+
return createVNode("div", {
|
|
713
|
+
"class": "_fc-group-container",
|
|
714
|
+
"key": key
|
|
715
|
+
}, [createVNode("div", {
|
|
716
|
+
"class": "_fc-group-header"
|
|
717
|
+
}, [title === false ? createVNode("div", {
|
|
718
|
+
"class": "_fc-group-idx"
|
|
719
|
+
}, [index + 1]) : null, title !== false ? createVNode("div", {
|
|
720
|
+
"class": "_fc-group-title"
|
|
721
|
+
}, [title]) : null, createVNode("div", {
|
|
722
|
+
"class": "_fc-group-handle fc-clock"
|
|
723
|
+
}, [btn.length ? btn : null])]), createVNode("div", {
|
|
724
|
+
"class": "_fc-group-content"
|
|
725
|
+
}, [createVNode(Type, mergeProps({
|
|
726
|
+
"key": key
|
|
727
|
+
}, {
|
|
728
|
+
disabled: disabled,
|
|
729
|
+
'onUpdate:modelValue': function onUpdateModelValue(formData) {
|
|
730
|
+
return _this14.formData(key, formData);
|
|
731
|
+
},
|
|
732
|
+
'onEmit-event': function onEmitEvent(name) {
|
|
733
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
734
|
+
args[_key - 1] = arguments[_key];
|
|
735
|
+
}
|
|
642
736
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
737
|
+
return _this14.emitEvent(name, args, index, key);
|
|
738
|
+
},
|
|
739
|
+
'onUpdate:api': function onUpdateApi($f) {
|
|
740
|
+
return _this14.add$f(index, key, $f);
|
|
741
|
+
},
|
|
742
|
+
inFor: true,
|
|
743
|
+
modelValue: _this14.field ? _defineProperty({}, _this14.field, _this14._value(_this14.modelValue[index])) : _this14.modelValue[index],
|
|
744
|
+
rule: rule,
|
|
745
|
+
option: options,
|
|
746
|
+
extendOption: true
|
|
747
|
+
}), null)])]);
|
|
748
|
+
} else {
|
|
749
|
+
return createVNode("div", {
|
|
750
|
+
"class": "_fc-group-container",
|
|
751
|
+
"key": key
|
|
752
|
+
}, [createVNode(Type, mergeProps({
|
|
753
|
+
"key": key
|
|
754
|
+
}, {
|
|
755
|
+
disabled: disabled,
|
|
756
|
+
'onUpdate:modelValue': function onUpdateModelValue(formData) {
|
|
757
|
+
return _this14.formData(key, formData);
|
|
758
|
+
},
|
|
759
|
+
'onEmit-event': function onEmitEvent(name) {
|
|
760
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
761
|
+
args[_key2 - 1] = arguments[_key2];
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
return _this14.emitEvent(name, args, index, key);
|
|
765
|
+
},
|
|
766
|
+
'onUpdate:api': function onUpdateApi($f) {
|
|
767
|
+
return _this14.add$f(index, key, $f);
|
|
768
|
+
},
|
|
769
|
+
inFor: true,
|
|
770
|
+
modelValue: _this14.field ? _defineProperty({}, _this14.field, _this14._value(_this14.modelValue[index])) : _this14.modelValue[index],
|
|
771
|
+
rule: rule,
|
|
772
|
+
option: options,
|
|
773
|
+
extendOption: true
|
|
774
|
+
}), null), createVNode("div", {
|
|
775
|
+
"class": "_fc-group-idx"
|
|
776
|
+
}, [index + 1]), btn.length ? createVNode("div", {
|
|
777
|
+
"class": "_fc-group-handle fc-clock"
|
|
778
|
+
}, [btn]) : null]);
|
|
779
|
+
}
|
|
658
780
|
});
|
|
659
781
|
return createVNode("div", {
|
|
660
782
|
"key": 'con',
|
|
661
|
-
"class": '_fc-group ' + (disabled ? '_fc-group-disabled' : '')
|
|
783
|
+
"class": '_fc-group ' + (disabled ? '_fc-group-disabled' : '') + (isCardType ? ' _fc-group-card' : '')
|
|
662
784
|
}, [children]);
|
|
663
785
|
}
|
|
664
786
|
});
|
package/dist/index.esm.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/component-antdv-group v3.2.
|
|
2
|
+
* @form-create/component-antdv-group v3.2.31
|
|
3
3
|
* (c) 2018-2025 xaboy
|
|
4
4
|
* Github https://github.com/xaboy/form-create with group
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*/
|
|
7
|
-
import{defineComponent as t,markRaw as e,nextTick as r,createVNode as n,mergeProps as o}from"vue";function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?i(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return s(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var f={type:function(t,e){return Object.prototype.toString.call(t)==="[object "+e+"]"},Undef:function(t){return null==t},Element:function(t){return"object"===a(t)&&null!==t&&1===t.nodeType&&!f.Object(t)},trueArray:function(t){return Array.isArray(t)&&t.length>0},Function:function(t){var e=this.getType(t);return"Function"===e||"AsyncFunction"===e},getType:function(t){var e=Object.prototype.toString.call(t);return/^\[object (.*)\]$/.exec(e)[1]},empty:function(t){return null==t||(!(!Array.isArray(t)||!Array.isArray(t)||t.length)||"string"==typeof t&&!t)}};function d(t,e,r){t[e]=r}function p(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=!1;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=e[o];if((n=Array.isArray(i))||f.Object(i)){var u=void 0===t[o];if(n)n=!1,u&&d(t,o,[]);else if(i._clone&&void 0!==r){if(!r){d(t,o,i._clone());continue}i=i.getRule(),u&&d(t,o,{})}else u&&d(t,o,{});t[o]=p(t[o],i,r)}else d(t,o,i),f.Undef(i)||(f.Undef(i.__json)||(t[o].__json=i.__json),f.Undef(i.__origin)||(t[o].__origin=i.__origin))}return void 0!==r&&Array.isArray(t)?t.filter((function(t){return!t||!t.__ctrl})):t}function h(t){return p({},{value:t}).value}["Date","Object","String","Boolean","Array","Number"].forEach((function(t){f[t]=function(e){return f.type(e,t)}}));var m=Object.assign||function(t){for(var e,r=1;r<arguments.length;r++)for(var n in e=arguments[r])Object.prototype.hasOwnProperty.call(e,n)&&d(t,n,e[n]);return t};!function(t,e){void 0===e&&(e={});var r=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}('._fc-group{display:flex;flex-direction:column;justify-content:center;min-height:38px;width:100%}._fc-group-disabled ._fc-group-add,._fc-group-disabled ._fc-group-btn{cursor:not-allowed}._fc-group-handle{background-color:#fff;border:1px dashed #d9d9d9;border-radius:15px;bottom:-15px;display:flex;flex-direction:row;padding:3px 8px;position:absolute;right:30px}._fc-group-btn{cursor:pointer}._fc-group-idx{align-items:center;background:#eee;border-radius:15px;bottom:-15px;display:flex;font-weight:700;height:30px;justify-content:center;left:10px;position:absolute;width:30px}._fc-group-handle ._fc-group-btn+._fc-group-btn{margin-left:7px}._fc-group-container{border:1px dashed #d9d9d9;border-radius:5px;display:flex;flex-direction:column;margin:5px 5px 25px;padding:20px 20px 25px;position:relative}._fc-group-arrow{height:20px;position:relative;width:20px}._fc-group-arrow:before{border-left:2px solid #999;border-top:2px solid #999;content:"";height:9px;left:5px;position:absolute;top:8px;transform:rotate(45deg);width:9px}._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group-plus-minus{cursor:pointer;height:20px;position:relative;width:20px}._fc-group-plus-minus:after,._fc-group-plus-minus:before{background-color:#409eff;content:"";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%}._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group-plus-minus._fc-group-minus:after{background-color:#f56c6c}._fc-group-add{border:1px solid rgba(64,158,255,.5);border-radius:15px;cursor:pointer;height:25px;width:25px}._fc-group-add._fc-group-plus-minus:after,._fc-group-add._fc-group-plus-minus:before{width:50%}');var g=t({name:"fcGroup",props:{field:String,rule:Array,expand:Number,options:Object,button:{type:Boolean,default:!0},max:{type:Number,default:0},min:{type:Number,default:0},modelValue:{type:Array,default:function(){return[]}},defaultValue:Object,sortBtn:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0},onBeforeRemove:{type:Function,default:function(){}},onBeforeAdd:{type:Function,default:function(){}},formCreateInject:Object,parse:Function},data:function(){return{len:0,cacheRule:{},cacheValue:{},sort:[],form:e(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove","add"],watch:{rule:{handler:function(t,e){var r=this;Object.keys(this.cacheRule).forEach((function(n){var o=r.cacheRule[n];if(o.$f){var i=o.$f.formData();if(t===e)o.$f.deferSyncValue((function(){p(o.rule,t),o.$f.setValue(i)}),!0);else{var u=o.$f.formData();o.$f.once("reloading",(function(){o.$f.setValue(u)})),o.rule=h(t)}}}))},deep:!0},expand:function(t){var e=t-this.modelValue.length;e>0&&this.expandRule(e)},modelValue:{handler:function(t){var e=this;t=t||[];var r=this.sort,n=r.length,o=n-t.length;if(o<0){for(var i=o;i<0;i++)this.addRule(t.length+i,!0);for(var u=0;u<n;u++)this.setValue(r[u],t[u])}else{if(o>0)for(var a=0;a<o;a++)this.removeRule(r[n-a-1]);t.forEach((function(n,o){e.setValue(r[o],t[o])}))}},deep:!0}},methods:{_value:function(t){return t&&(e=t,r=this.field,{}.hasOwnProperty.call(e,r))?t[this.field]:t;var e,r},cache:function(t,e){this.cacheValue[t]=JSON.stringify(e)},input:function(t){this.$emit("update:modelValue",t),this.$emit("change",t)},formData:function(t,e){var r=this,n=this.cacheRule,o=this.sort;if(o.filter((function(t){return n[t]&&n[t].$f})).length===o.length){var i=o.map((function(n){var o=t===n?e:u({},r.cacheRule[n].$f.form),i=r.field?o[r.field]||null:o;return r.cache(n,i),i}));this.input(i)}},setValue:function(t,e){var r=this.field;r&&(e=c({},r,this._value(e))),this.cacheValue[t]!==JSON.stringify(r?e[r]:e)&&(this.cacheRule[t].$f&&this.cacheRule[t].$f.coverValue(e),this.cache(t,e))},addRule:function(t,e){var n=this,o=this.formCreateInject.form.copyRules(this.rule||[]),i=this.options?u({},this.options):{submitBtn:!1,resetBtn:!1};if(this.defaultValue){i.formData||(i.formData={});var a=h(this.defaultValue);!function(){m.apply(this,arguments)}(i.formData,this.field?c({},this.field,a):a)}this.parse&&this.parse({rule:o,options:i,index:this.sort.length}),this.cacheRule[++this.len]={rule:o,options:i},this.sort=Object.keys(this.cacheRule),e&&r((function(){return n.$emit("add",o,Object.keys(n.cacheRule).length-1)}))},add$f:function(t,e,n){var o=this;this.cacheRule[e].$f=n,r((function(){o.$emit("itemMounted",n,Object.keys(o.cacheRule).indexOf(e))}))},removeRule:function(t,e){var n=this,o=Object.keys(this.cacheRule).indexOf(t);delete this.cacheRule[t],delete this.cacheValue[t],this.sort=Object.keys(this.cacheRule),e&&r((function(){return n.$emit("remove",o)}))},add:function(t){if(!this.disabled&&!1!==this.onBeforeAdd(this.modelValue)){var e=l(this.modelValue);e.push(this.defaultValue?h(this.defaultValue):this.field?null:{}),this.input(e)}},del:function(t,e){if(!this.disabled&&!1!==this.onBeforeRemove(this.modelValue,t)){this.removeRule(e,!0);var r=l(this.modelValue);r.splice(t,1),this.input(r)}},addIcon:function(t){return n("div",{class:"_fc-group-btn _fc-group-plus-minus",onClick:this.add},null)},delIcon:function(t,e){var r=this;return n("div",{class:"_fc-group-btn _fc-group-plus-minus _fc-group-minus",onClick:function(){return r.del(t,e)}},null)},sortUpIcon:function(t){var e=this;return n("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-up",onClick:function(){return e.changeSort(t,-1)}},null)},sortDownIcon:function(t){var e=this;return n("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-down",onClick:function(){return e.changeSort(t,1)}},null)},changeSort:function(t,e){var r=this,n=this.sort[t];this.sort[t]=this.sort[t+e],this.sort[t+e]=n,this.formCreateInject.subForm(this.sort.map((function(t){return r.cacheRule[t].$f}))),this.formData(0)},makeIcon:function(t,e,r){var n=this;if(this.$slots.button)return this.$slots.button({total:t,index:e,vm:this,key:r,del:function(){return n.del(e,r)},add:this.add});var o=[];return(!this.max||t<this.max)&&t===e+1&&o.push(this.addIcon(r)),t>this.min&&o.push(this.delIcon(e,r)),this.sortBtn&&e&&o.push(this.sortUpIcon(e)),this.sortBtn&&e!==t-1&&o.push(this.sortDownIcon(e)),o},emitEvent:function(t,e,r,n){this.$emit.apply(this,[t].concat(l(e),[this.cacheRule[n].$f,r]))},expandRule:function(t){for(var e=0;e<t;e++)this.addRule(e)}},created:function(){for(var t=(this.expand||0)-this.modelValue.length,e=0;e<this.modelValue.length;e++)this.addRule(e);t>0&&this.expandRule(t)},render:function(){var t=this,e=this.sort,r=this.button,i=this.form,u=this.disabled,a=0===e.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):n("div",{key:"a_def",class:"_fc-group-plus-minus _fc-group-add fc-clock",onClick:this.add},null):e.map((function(a,l){var s=t.cacheRule[a],f=s.rule,d=s.options,p=r&&!u?t.makeIcon(e.length,l,a):[];return n("div",{class:"_fc-group-container",key:a},[n(i,o({key:a},{disabled:u,"onUpdate:modelValue":function(e){return t.formData(a,e)},"onEmit-event":function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return t.emitEvent(e,n,l,a)},"onUpdate:api":function(e){return t.add$f(l,a,e)},inFor:!0,modelValue:t.field?c({},t.field,t._value(t.modelValue[l])):t.modelValue[l],rule:f,option:d,extendOption:!0}),null),n("div",{class:"_fc-group-idx"},[l+1]),p.length?n("div",{class:"_fc-group-handle fc-clock"},[p]):null])}));return n("div",{key:"con",class:"_fc-group "+(u?"_fc-group-disabled":"")},[a])}});export{g as default};
|
|
7
|
+
import{defineComponent as r,markRaw as o,nextTick as e,createVNode as t,mergeProps as n}from"vue";function c(r,o){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);o&&(t=t.filter((function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable}))),e.push.apply(e,t)}return e}function u(r){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{};o%2?c(Object(e),!0).forEach((function(o){f(r,o,e[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):c(Object(e)).forEach((function(o){Object.defineProperty(r,o,Object.getOwnPropertyDescriptor(e,o))}))}return r}function i(r){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},i(r)}function f(r,o,e){return o in r?Object.defineProperty(r,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[o]=e,r}function a(r){return function(r){if(Array.isArray(r))return p(r)}(r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||function(r,o){if(!r)return;if("string"==typeof r)return p(r,o);var e=Object.prototype.toString.call(r).slice(8,-1);"Object"===e&&r.constructor&&(e=r.constructor.name);if("Map"===e||"Set"===e)return Array.from(r);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return p(r,o)}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(r,o){(null==o||o>r.length)&&(o=r.length);for(var e=0,t=new Array(o);e<o;e++)t[e]=r[e];return t}var l={type:function(r,o){return Object.prototype.toString.call(r)==="[object "+o+"]"},Undef:function(r){return null==r},Element:function(r){return"object"===i(r)&&null!==r&&1===r.nodeType&&!l.Object(r)},trueArray:function(r){return Array.isArray(r)&&r.length>0},Function:function(r){var o=this.getType(r);return"Function"===o||"AsyncFunction"===o},getType:function(r){var o=Object.prototype.toString.call(r);return/^\[object (.*)\]$/.exec(o)[1]},empty:function(r){return null==r||(!(!Array.isArray(r)||!Array.isArray(r)||r.length)||"string"==typeof r&&!r)}};function d(r,o,e){r[o]=e}function s(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=arguments.length>2?arguments[2]:void 0,t=!1;for(var n in o)if(Object.prototype.hasOwnProperty.call(o,n)){var c=o[n];if((t=Array.isArray(c))||l.Object(c)){var u=void 0===r[n];if(t)t=!1,u&&d(r,n,[]);else if(c._clone&&void 0!==e){if(!e){d(r,n,c._clone());continue}c=c.getRule(),u&&d(r,n,{})}else u&&d(r,n,{});r[n]=s(r[n],c,e)}else d(r,n,c),l.Undef(c)||(l.Undef(c.__json)||(r[n].__json=c.__json),l.Undef(c.__origin)||(r[n].__origin=c.__origin))}return void 0!==e&&Array.isArray(r)?r.filter((function(r){return!r||!r.__ctrl})):r}function g(r){return s({},{value:r}).value}["Date","Object","String","Boolean","Array","Number"].forEach((function(r){l[r]=function(o){return l.type(o,r)}}));var h=Object.assign||function(r){for(var o,e=1;e<arguments.length;e++)for(var t in o=arguments[e])Object.prototype.hasOwnProperty.call(o,t)&&d(r,t,o[t]);return r};function _(r){return function(r){return r&&"object"===i(r)&&"function"==typeof r.then}(r)?r:Promise.resolve(r)}!function(r,o){void 0===o&&(o={});var e=o.insertAt;if(r&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===e&&t.firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n),n.styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r))}}('._fc-group{display:flex;flex-direction:column;justify-content:center;min-height:38px;width:100%}._fc-group-disabled ._fc-group-add,._fc-group-disabled ._fc-group-btn{cursor:not-allowed}._fc-group-handle{background-color:#fff;border:1px dashed #d9d9d9;border-radius:15px;bottom:-15px;display:flex;flex-direction:row;padding:3px 8px;position:absolute;right:30px}._fc-group-btn{cursor:pointer}._fc-group-idx{align-items:center;background:#eee;border-radius:15px;bottom:-15px;display:flex;font-weight:700;height:30px;justify-content:center;left:10px;position:absolute;width:30px}._fc-group-handle ._fc-group-btn+._fc-group-btn{margin-left:7px}._fc-group-container{border:1px dashed #d9d9d9;border-radius:5px;display:flex;flex-direction:column;margin:5px 5px 25px;padding:20px 20px 25px;position:relative}._fc-group-arrow{height:20px;position:relative;width:20px}._fc-group-arrow:before{border-left:2px solid #999;border-top:2px solid #999;content:"";height:9px;left:5px;position:absolute;top:8px;transform:rotate(45deg);width:9px}._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group-plus-minus{cursor:pointer;height:20px;position:relative;width:20px}._fc-group-plus-minus:after,._fc-group-plus-minus:before{background-color:#409eff;content:"";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%}._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group-plus-minus._fc-group-minus:after{background-color:#f56c6c}._fc-group-add{border:1px solid rgba(64,158,255,.5);border-radius:15px;cursor:pointer;height:25px;width:25px}._fc-group-add._fc-group-plus-minus:after,._fc-group-add._fc-group-plus-minus:before{width:50%}._fc-group._fc-group-card{display:flex;flex-direction:column;gap:16px;width:100%}._fc-group._fc-group-card._fc-group-disabled ._fc-group-add,._fc-group._fc-group-card._fc-group-disabled ._fc-group-btn{cursor:not-allowed;opacity:.5}._fc-group._fc-group-card ._fc-group-container{background:#fff;border:1px solid #f0f0f0;border-radius:6px;display:flex;flex-direction:column;margin:0;overflow:hidden;padding:0;position:relative}._fc-group._fc-group-card ._fc-group-header{align-items:center;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:16px 20px 12px}._fc-group._fc-group-card ._fc-group-idx{align-items:center;background:#f0f0f0;border:1px solid #e0e0e0;border-radius:6px;color:#666;display:flex;flex-shrink:0;font-size:12px;font-weight:500;height:24px;justify-content:center;margin-right:12px;position:static;width:24px}._fc-group._fc-group-card ._fc-group-title{color:rgba(0,0,0,.85);flex:1;font-size:14px;font-weight:500;line-height:1.5715}._fc-group._fc-group-card ._fc-group-handle{align-items:center;background-color:transparent;border:none;border-radius:0;bottom:auto;display:flex;flex-direction:row;flex-shrink:0;gap:4px;margin-left:12px;padding:0;position:static;right:auto}._fc-group._fc-group-card ._fc-group-btn{align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:4px;color:rgba(0,0,0,.45);cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-btn:hover{background:#f0f8ff;border-color:#1890ff;color:#1890ff}._fc-group._fc-group-card ._fc-group-btn:active{border-color:#096dd9;color:#096dd9}._fc-group._fc-group-card ._fc-group-arrow{position:relative}._fc-group._fc-group-card ._fc-group-arrow:before{border-left:1px solid;border-top:1px solid;content:"";height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:5px}._fc-group._fc-group-card ._fc-group-arrow._fc-group-down{transform:rotate(180deg)}._fc-group._fc-group-card ._fc-group-sort{align-items:center;display:flex;flex-direction:column;height:24px;justify-content:center;position:relative}._fc-group._fc-group-card ._fc-group-sort:after,._fc-group._fc-group-card ._fc-group-sort:before{border-left:1px solid;border-top:1px solid;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:4px}._fc-group._fc-group-card ._fc-group-sort:before{top:6px;transform:translateX(-50%) rotate(45deg)}._fc-group._fc-group-card ._fc-group-sort:after{bottom:6px;transform:translateX(-50%) rotate(225deg)}._fc-group._fc-group-card ._fc-group-sort-down,._fc-group._fc-group-card ._fc-group-sort-up{cursor:pointer;height:12px;left:0;position:absolute;right:0;z-index:1}._fc-group._fc-group-card ._fc-group-sort-up{top:0}._fc-group._fc-group-card ._fc-group-sort-down{bottom:0}._fc-group._fc-group-card ._fc-group-sort-down:hover,._fc-group._fc-group-card ._fc-group-sort-up:hover{background:rgba(24,144,255,.1)}._fc-group._fc-group-card ._fc-group-plus-minus{background:#409eff;border-color:#409eff;color:#fff;height:24px;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-plus-minus:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}._fc-group._fc-group-card ._fc-group-plus-minus:after,._fc-group._fc-group-card ._fc-group-plus-minus:before{background-color:currentColor;content:"";height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}._fc-group._fc-group-card ._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus{background:#f56c6c;border-color:#f56c6c}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus:hover{background:#f78989;border-color:#f78989}._fc-group._fc-group-card ._fc-group-plus-minus._fc-group-minus:before{display:none}._fc-group._fc-group-card ._fc-group-content{padding:20px}._fc-group._fc-group-card ._fc-group-add{align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:4px;color:rgba(0,0,0,.45);cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px}._fc-group._fc-group-card ._fc-group-add:hover{background:#f0f8ff;border-color:#409eff;color:#409eff}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus{background:#409eff;border-color:#409eff;color:#fff;height:24px;width:24px}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:after,._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:before{background-color:currentColor;content:"";height:1px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}._fc-group._fc-group-card ._fc-group-add._fc-group-plus-minus:before{transform:translate(-50%,-50%) rotate(90deg)}._fc-group._fc-group-card ._fc-group-empty{color:rgba(0,0,0,.45);font-size:14px;padding:40px 20px;text-align:center}@media (max-width:768px){._fc-group._fc-group-card ._fc-group-container{border-left:none;border-radius:0;border-right:none;margin:0 -8px}._fc-group._fc-group-card ._fc-group-header{padding:12px 16px 8px}._fc-group._fc-group-card ._fc-group-content{padding:16px}._fc-group._fc-group-card ._fc-group-handle{gap:2px}._fc-group._fc-group-card ._fc-group-btn{height:22px;width:22px}}@media (prefers-color-scheme:dark){._fc-group._fc-group-card ._fc-group-container{background:#141414;border-color:#303030}._fc-group._fc-group-card ._fc-group-container:hover{border-color:#434343}._fc-group._fc-group-card ._fc-group-header{background:#1f1f1f;border-bottom-color:#303030}._fc-group._fc-group-card ._fc-group-title{color:hsla(0,0%,100%,.85)}._fc-group._fc-group-card ._fc-group-btn{background:#1f1f1f;border-color:#434343;color:hsla(0,0%,100%,.45)}._fc-group._fc-group-card ._fc-group-btn:hover{background:#111b26;border-color:#177ddc;color:#177ddc}._fc-group._fc-group-card ._fc-group-content{background:#141414}._fc-group._fc-group-card ._fc-group-add{background:#1f1f1f;border-color:#434343;color:hsla(0,0%,100%,.45)}._fc-group._fc-group-card ._fc-group-add:hover{background:#111b26;border-color:#177ddc;color:#177ddc}}');var b=r({name:"fcGroup",props:{field:String,rule:Array,expand:Number,options:Object,button:{type:Boolean,default:!0},max:{type:Number,default:0},min:{type:Number,default:0},modelValue:{type:Array,default:function(){return[]}},defaultValue:Object,sortBtn:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0},title:{type:[String,Function],default:null},type:{type:String,default:"default"},onBeforeRemove:{type:Function,default:function(){}},onBeforeAdd:{type:Function,default:function(){}},formCreateInject:Object,parse:Function},data:function(){return{len:0,cacheRule:{},cacheValue:{},sort:[],form:o(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove","add"],watch:{rule:{handler:function(r,o){var e=this;Object.keys(this.cacheRule).forEach((function(t){var n=e.cacheRule[t];if(n.$f){var c=n.$f.formData();if(r===o)n.$f.deferSyncValue((function(){s(n.rule,r),n.$f.setValue(c)}),!0);else{var u=n.$f.formData();n.$f.once("reloading",(function(){n.$f.setValue(u)})),n.rule=g(r)}}}))},deep:!0},expand:function(r){var o=r-this.modelValue.length;o>0&&this.expandRule(o)},modelValue:{handler:function(r){var o=this;r=r||[];var e=this.sort,t=e.length,n=t-r.length;if(n<0){for(var c=n;c<0;c++)this.addRule(r.length+c,!0);for(var u=0;u<t;u++)this.setValue(e[u],r[u])}else{if(n>0)for(var i=0;i<n;i++)this.removeRule(e[t-i-1]);r.forEach((function(t,n){o.setValue(e[n],r[n])}))}},deep:!0}},methods:{_value:function(r){return r&&(o=r,e=this.field,{}.hasOwnProperty.call(o,e))?r[this.field]:r;var o,e},cache:function(r,o){this.cacheValue[r]=JSON.stringify(o)},input:function(r){this.$emit("update:modelValue",r),this.$emit("change",r)},formData:function(r,o){var e=this,t=this.cacheRule,n=this.sort;if(n.filter((function(r){return t[r]&&t[r].$f})).length===n.length){var c=n.map((function(t){var n=r===t?o:u({},e.cacheRule[t].$f.form),c=e.field?n[e.field]||null:n;return e.cache(t,c),c}));this.input(c)}},setValue:function(r,o){var e=this.field;e&&(o=f({},e,this._value(o))),this.cacheValue[r]!==JSON.stringify(e?o[e]:o)&&(this.cacheRule[r].$f&&this.cacheRule[r].$f.coverValue(o),this.cache(r,o))},addRule:function(r,o){var t=this,n=this.formCreateInject.form.copyRules(this.rule||[]),c=this.options?u({},this.options):{submitBtn:!1,resetBtn:!1};if(this.defaultValue){c.formData||(c.formData={});var i=g(this.defaultValue);!function(){h.apply(this,arguments)}(c.formData,this.field?f({},this.field,i):i)}this.parse&&this.parse({rule:n,options:c,index:this.sort.length}),this.cacheRule[++this.len]={rule:n,options:c},this.sort=Object.keys(this.cacheRule),o&&e((function(){return t.$emit("add",n,Object.keys(t.cacheRule).length-1)}))},add$f:function(r,o,t){var n=this;this.cacheRule[o].$f=t,e((function(){n.$emit("itemMounted",t,Object.keys(n.cacheRule).indexOf(o))}))},removeRule:function(r,o){var t=this,n=Object.keys(this.cacheRule).indexOf(r);delete this.cacheRule[r],delete this.cacheValue[r],this.sort=Object.keys(this.cacheRule),o&&e((function(){return t.$emit("remove",n)}))},add:function(r){if(!this.disabled&&!1!==this.onBeforeAdd(this.modelValue)){var o=a(this.modelValue);o.push(this.defaultValue?g(this.defaultValue):this.field?null:{}),this.input(o)}},del:function(r,o){var e=this;if(!this.disabled){var t=function(){e.removeRule(o,!0);var t=a(e.modelValue);t.splice(r,1),e.input(t)};_(this.onBeforeRemove(this.modelValue,r)).then((function(r){!1!==r&&t()}))}},addIcon:function(r){return t("div",{class:"_fc-group-btn _fc-group-plus-minus",onClick:this.add},null)},delIcon:function(r,o){var e=this;return t("div",{class:"_fc-group-btn _fc-group-plus-minus _fc-group-minus",onClick:function(){return e.del(r,o)}},null)},sortUpIcon:function(r){var o=this;return t("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-up",onClick:function(){return o.changeSort(r,-1)}},null)},sortDownIcon:function(r){var o=this;return t("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-down",onClick:function(){return o.changeSort(r,1)}},null)},changeSort:function(r,o){var e=this,t=this.sort[r];this.sort[r]=this.sort[r+o],this.sort[r+o]=t,this.formCreateInject.subForm(this.sort.map((function(r){return e.cacheRule[r].$f}))),this.formData(0)},sortIcon:function(r,o){var e=this,n=r>0,c=r<o-1;return n||c?n&&c?t("div",{class:"_fc-group-btn _fc-group-sort"},[t("div",{class:"_fc-group-sort-up",onClick:function(){return e.changeSort(r,-1)}},null),t("div",{class:"_fc-group-sort-down",onClick:function(){return e.changeSort(r,1)}},null)]):n?this.sortUpIcon(r):c?this.sortDownIcon(r):void 0:null},makeIcon:function(r,o,e){var t=this;if(this.$slots.button)return this.$slots.button({total:r,index:o,vm:this,key:e,del:function(){return t.del(o,e)},add:this.add});var n=[];if((!this.max||r<this.max)&&r===o+1&&n.push(this.addIcon(e)),r>this.min&&n.push(this.delIcon(o,e)),this.sortBtn){var c=this.sortIcon(o,r);c&&n.push(c)}return n},emitEvent:function(r,o,e,t){this.$emit.apply(this,[r].concat(a(o),[this.cacheRule[t].$f,e]))},expandRule:function(r){for(var o=0;o<r;o++)this.modelValue.push(this.field?null:{});this.input(a(this.modelValue))},getTitle:function(r,o){return"function"==typeof this.title?this.title(r,this.modelValue[r],o):"string"==typeof this.title&&this.title.replace("{index}",r+1)}},created:function(){for(var r=(this.expand||0)-this.modelValue.length,o=0;o<this.modelValue.length;o++)this.addRule(o);r>0&&this.expandRule(r)},render:function(){var r=this,o=this.sort,e=this.button,c=this.form,u=this.disabled,i="card"===this.type,a=0===o.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):t("div",{key:"a_def",class:"_fc-group-plus-minus _fc-group-add fc-clock",onClick:this.add},null):o.map((function(a,p){var l=r.cacheRule[a],d=l.rule,s=l.options,g=e&&!u?r.makeIcon(o.length,p,a):[],h=r.getTitle(p,a);return t("div",{class:"_fc-group-container",key:a},i?[t("div",{class:"_fc-group-header"},[!1===h?t("div",{class:"_fc-group-idx"},[p+1]):null,!1!==h?t("div",{class:"_fc-group-title"},[h]):null,t("div",{class:"_fc-group-handle fc-clock"},[g.length?g:null])]),t("div",{class:"_fc-group-content"},[t(c,n({key:a},{disabled:u,"onUpdate:modelValue":function(o){return r.formData(a,o)},"onEmit-event":function(o){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return r.emitEvent(o,t,p,a)},"onUpdate:api":function(o){return r.add$f(p,a,o)},inFor:!0,modelValue:r.field?f({},r.field,r._value(r.modelValue[p])):r.modelValue[p],rule:d,option:s,extendOption:!0}),null)])]:[t(c,n({key:a},{disabled:u,"onUpdate:modelValue":function(o){return r.formData(a,o)},"onEmit-event":function(o){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return r.emitEvent(o,t,p,a)},"onUpdate:api":function(o){return r.add$f(p,a,o)},inFor:!0,modelValue:r.field?f({},r.field,r._value(r.modelValue[p])):r.modelValue[p],rule:d,option:s,extendOption:!0}),null),t("div",{class:"_fc-group-idx"},[p+1]),g.length?t("div",{class:"_fc-group-handle fc-clock"},[g]):null])}));return t("div",{key:"con",class:"_fc-group "+(u?"_fc-group-disabled":"")+(i?" _fc-group-card":"")},[a])}});export{b as default};
|