@form-create/component-antdv-group 3.0.0-alpha.1 → 3.1.0
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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/index.esm.js +23 -17
- package/dist/index.esm.min.js +3 -3
- package/dist/index.js +26 -19
- package/dist/index.min.js +3 -3
- package/package.json +3 -3
- package/src/component.jsx +11 -11
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
@form-create/ant-design-vue 内置组件
|
|
4
4
|
|
|
5
|
-
[GitHub](https://github.com/xaboy/form-create) | [文档](http://form-create.com/
|
|
5
|
+
[GitHub](https://github.com/xaboy/form-create) | [文档](http://form-create.com/v3/) | [Document](http://form-create.com/v3/)
|
|
6
6
|
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* @form-create/component-antdv-group v3.1.0
|
|
3
|
+
* (c) 2018-2022 xaboy
|
|
4
|
+
* Github https://github.com/xaboy/form-create with group
|
|
5
|
+
* Released under the MIT License.
|
|
6
|
+
*/
|
|
7
|
+
import { defineComponent, markRaw, nextTick, createVNode, resolveComponent, isVNode } from 'vue';
|
|
3
8
|
|
|
4
9
|
function ownKeys(object, enumerableOnly) {
|
|
5
10
|
var keys = Object.keys(object);
|
|
@@ -175,9 +180,9 @@ var Group = defineComponent({
|
|
|
175
180
|
onBeforeAdd: {
|
|
176
181
|
type: Function,
|
|
177
182
|
"default": function _default() {}
|
|
178
|
-
}
|
|
183
|
+
},
|
|
184
|
+
formCreateInject: Object
|
|
179
185
|
},
|
|
180
|
-
inject: ['formCreateInject'],
|
|
181
186
|
data: function data() {
|
|
182
187
|
return {
|
|
183
188
|
len: 0,
|
|
@@ -234,7 +239,8 @@ var Group = defineComponent({
|
|
|
234
239
|
});
|
|
235
240
|
}
|
|
236
241
|
},
|
|
237
|
-
deep: true
|
|
242
|
+
deep: true,
|
|
243
|
+
flush: 'post'
|
|
238
244
|
}
|
|
239
245
|
},
|
|
240
246
|
methods: {
|
|
@@ -297,7 +303,7 @@ var Group = defineComponent({
|
|
|
297
303
|
};
|
|
298
304
|
|
|
299
305
|
if (emit) {
|
|
300
|
-
|
|
306
|
+
nextTick(function () {
|
|
301
307
|
return _this3.$emit('add', rule, Object.keys(_this3.cacheRule).length - 1);
|
|
302
308
|
});
|
|
303
309
|
}
|
|
@@ -307,7 +313,7 @@ var Group = defineComponent({
|
|
|
307
313
|
|
|
308
314
|
this.cacheRule[key].$f = $f;
|
|
309
315
|
this.subForm();
|
|
310
|
-
|
|
316
|
+
nextTick(function () {
|
|
311
317
|
if (_this4.syncDisabled) {
|
|
312
318
|
$f.disabled(_this4.disabled);
|
|
313
319
|
}
|
|
@@ -330,7 +336,7 @@ var Group = defineComponent({
|
|
|
330
336
|
delete this.cacheValue[key];
|
|
331
337
|
|
|
332
338
|
if (emit) {
|
|
333
|
-
|
|
339
|
+
nextTick(function () {
|
|
334
340
|
return _this6.$emit('remove', index);
|
|
335
341
|
});
|
|
336
342
|
}
|
|
@@ -354,7 +360,7 @@ var Group = defineComponent({
|
|
|
354
360
|
this.input(this.modelValue);
|
|
355
361
|
},
|
|
356
362
|
addIcon: function addIcon(key) {
|
|
357
|
-
return createVNode(PlusCircleOutlined, {
|
|
363
|
+
return createVNode(resolveComponent("PlusCircleOutlined"), {
|
|
358
364
|
"key": "a".concat(key),
|
|
359
365
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer', ";"),
|
|
360
366
|
"onClick": this.add
|
|
@@ -363,7 +369,7 @@ var Group = defineComponent({
|
|
|
363
369
|
delIcon: function delIcon(index, key) {
|
|
364
370
|
var _this7 = this;
|
|
365
371
|
|
|
366
|
-
return createVNode(MinusCircleOutlined, {
|
|
372
|
+
return createVNode(resolveComponent("MinusCircleOutlined"), {
|
|
367
373
|
"key": "d".concat(key),
|
|
368
374
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#606266', ";"),
|
|
369
375
|
"onClick": function onClick() {
|
|
@@ -407,13 +413,13 @@ var Group = defineComponent({
|
|
|
407
413
|
created: function created() {
|
|
408
414
|
var d = (this.expand || 0) - this.modelValue.length;
|
|
409
415
|
|
|
410
|
-
if (d > 0) {
|
|
411
|
-
this.expandRule(d);
|
|
412
|
-
}
|
|
413
|
-
|
|
414
416
|
for (var i = 0; i < this.modelValue.length; i++) {
|
|
415
417
|
this.addRule(i);
|
|
416
418
|
}
|
|
419
|
+
|
|
420
|
+
if (d > 0) {
|
|
421
|
+
this.expandRule(d);
|
|
422
|
+
}
|
|
417
423
|
},
|
|
418
424
|
render: function render() {
|
|
419
425
|
var _this9 = this;
|
|
@@ -424,12 +430,12 @@ var Group = defineComponent({
|
|
|
424
430
|
return keys.length === 0 ? this.$slots["default"] ? this.$slots["default"]({
|
|
425
431
|
vm: this,
|
|
426
432
|
add: this.add
|
|
427
|
-
}) : createVNode(PlusCircleOutlined, {
|
|
428
|
-
"key":
|
|
433
|
+
}) : createVNode(resolveComponent("PlusCircleOutlined"), {
|
|
434
|
+
"key": 1,
|
|
429
435
|
"style": "font-size:".concat(this.fontSize, "px;vertical-align:middle;color:").concat(this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer', ";"),
|
|
430
436
|
"onClick": this.add
|
|
431
437
|
}, null) : createVNode("div", {
|
|
432
|
-
"key":
|
|
438
|
+
"key": 2
|
|
433
439
|
}, [keys.map(function (key, index) {
|
|
434
440
|
var _slot;
|
|
435
441
|
|
package/dist/index.esm.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/component-antdv-group v3.
|
|
3
|
-
* (c) 2018-
|
|
2
|
+
* @form-create/component-antdv-group v3.1.0
|
|
3
|
+
* (c) 2018-2022 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 e,markRaw as t,
|
|
7
|
+
import{defineComponent as e,markRaw as t,nextTick as n,createVNode as o,resolveComponent as r,isVNode as i}from"vue";function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e)||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 f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var d={type:function(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"},Undef:function(e){return null==e},Element:function(e){return"object"===a(e)&&null!==e&&1===e.nodeType&&!d.Object(e)},trueArray:function(e){return Array.isArray(e)&&e.length>0}};["Date","Object","Function","String","Boolean","Array","Number"].forEach((function(e){d[e]=function(t){return d.type(t,e)}}));var h=e({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[]}},disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0},fontSize:{type:Number,default:28},onBeforeRemove:{type:Function,default:function(){}},onBeforeAdd:{type:Function,default:function(){}},formCreateInject:Object},data:function(){return{len:0,cacheRule:{},cacheValue:{},form:t(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove"],watch:{disabled:function(e){if(this.syncDisabled){var t=this.cacheRule;Object.keys(t).forEach((function(n){t[n].$f.disabled(e)}))}},expand:function(e){var t=e-this.modelValue.length;t>0&&this.expandRule(t)},modelValue:{handler:function(e){var t=this;e=e||[];var n=Object.keys(this.cacheRule),o=n.length,r=o-e.length;if(r<0){for(var i=r;i<0;i++)this.addRule(e.length+i);for(var l=0;l<o;l++)this.setValue(n[l],e[l])}else{if(r>0){for(var u=0;u<r;u++)this.removeRule(n[o-u-1]);this.subForm()}e.forEach((function(o,r){t.setValue(n[r],e[r])}))}},deep:!0,flush:"post"}},methods:{_value:function(e){return e&&(t=e,n=this.field,{}.hasOwnProperty.call(t,n))?e[this.field]:e;var t,n},cache:function(e,t){this.cacheValue[e]=JSON.stringify(t)},input:function(e){this.$emit("update:modelValue",e),this.$emit("change",e)},formData:function(e,t){var n=this,o=this.cacheRule,r=Object.keys(o);if(r.filter((function(e){return o[e].$f})).length===r.length){var i=r.map((function(o){var r=e===o?t:u({},n.cacheRule[o].$f.form),i=n.field?r[n.field]||null:r;return n.cache(o,i),i}));this.input(i)}},setValue:function(e,t){var n=this.field;n&&(t=c({},n,this._value(t))),this.cacheValue[e]!==JSON.stringify(n?t[n]:t)&&this.cache(e,t)},addRule:function(e,t){var o=this,r=this.formCreateInject.form.copyRules(this.rule||[]),i=this.options?u({},this.options):{submitBtn:!1,resetBtn:!1};this.cacheRule[++this.len]={rule:r,options:i},t&&n((function(){return o.$emit("add",r,Object.keys(o.cacheRule).length-1)}))},add$f:function(e,t,o){var r=this;this.cacheRule[t].$f=o,this.subForm(),n((function(){r.syncDisabled&&o.disabled(r.disabled),r.$emit("itemMounted",o,Object.keys(r.cacheRule).indexOf(t))}))},subForm:function(){var e=this;this.formCreateInject.subForm(Object.keys(this.cacheRule).map((function(t){return e.cacheRule[t].$f})))},removeRule:function(e,t){var o=this,r=Object.keys(this.cacheRule).indexOf(e);delete this.cacheRule[e],delete this.cacheValue[e],t&&n((function(){return o.$emit("remove",r)}))},add:function(){this.disabled||!1===this.onBeforeAdd(this.modelValue)||(this.modelValue.push(this.field?null:{}),this.$emit("update:modelValue",this.modelValue))},del:function(e,t){this.disabled||!1===this.onBeforeRemove(this.modelValue,e)||(this.removeRule(t,!0),this.subForm(),this.modelValue.splice(e,1),this.input(this.modelValue))},addIcon:function(e){return o(r("PlusCircleOutlined"),{key:"a".concat(e),style:"font-size:".concat(this.fontSize,"px;cursor:").concat(this.disabled?"not-allowed;color:#c9cdd4":"pointer",";"),onClick:this.add},null)},delIcon:function(e,t){var n=this;return o(r("MinusCircleOutlined"),{key:"d".concat(t),style:"font-size:".concat(this.fontSize,"px;cursor:").concat(this.disabled?"not-allowed;color:#c9cdd4":"pointer;color:#606266",";"),onClick:function(){return n.del(e,t)}},null)},makeIcon:function(e,t,n){var o=this;return this.$slots.button?this.$slots.button({total:e,index:t,vm:this,key:n,del:function(){return o.del(t,n)},add:this.add}):0===t?[0!==this.max&&e>=this.max?null:this.addIcon(n),0===this.min||e>this.min?this.delIcon(t,n):null]:t>=this.min?this.delIcon(t,n):void 0},emitEvent:function(e,t,n,o){this.$emit.apply(this,[e].concat(s(t),[this.cacheRule[o].$f,n]))},expandRule:function(e){for(var t=0;t<e;t++)this.modelValue.push(this.field?null:{})}},created:function(){for(var e=(this.expand||0)-this.modelValue.length,t=0;t<this.modelValue.length;t++)this.addRule(t);e>0&&this.expandRule(e)},render:function(){var e=this,t=Object.keys(this.cacheRule),n=this.button,l=this.form;return 0===t.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):o(r("PlusCircleOutlined"),{key:1,style:"font-size:".concat(this.fontSize,"px;vertical-align:middle;color:").concat(this.disabled?"#c9cdd4;cursor: not-allowed":"#606266;cursor:pointer",";"),onClick:this.add},null):o("div",{key:2},[t.map((function(u,a){var s,f=e.cacheRule[u],d=f.rule,h=f.options;return o(r("aRow"),{align:"middle",type:"flex",key:u,style:"border-bottom:1px dashed #DCDFE6;margin-bottom:10px;"},{default:function(){return[o(r("aCol"),{span:n?20:24},{default:function(){return[o(l,{key:u,"onUpdate:modelValue":function(t){return e.formData(u,t)},modelValue:e.field?c({},e.field,e._value(e.modelValue[a])):e.modelValue[a],"onEmit-event":function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return e.emitEvent(t,o,a,u)},"onUpdate:api":function(t){return e.add$f(a,u,t)},rule:d,option:h,extendOption:!0},null)]}}),n?o(r("aCol"),{span:2,pull:1,push:1},(f=s=e.makeIcon(t.length,a,u),"function"==typeof f||"[object Object]"===Object.prototype.toString.call(f)&&!i(f)?s:{default:function(){return[s]}})):null];var f}})}))])}});export{h as default};
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @form-create/component-antdv-group v3.1.0
|
|
3
|
+
* (c) 2018-2022 xaboy
|
|
4
|
+
* Github https://github.com/xaboy/form-create with group
|
|
5
|
+
* Released under the MIT License.
|
|
6
|
+
*/
|
|
1
7
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'vue'
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FcGroup = {}, global.Vue
|
|
5
|
-
})(this, (function (exports, vue
|
|
8
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
|
|
9
|
+
typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) :
|
|
10
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FcGroup = {}, global.Vue));
|
|
11
|
+
})(this, (function (exports, vue) { 'use strict';
|
|
6
12
|
|
|
7
13
|
function ownKeys(object, enumerableOnly) {
|
|
8
14
|
var keys = Object.keys(object);
|
|
@@ -178,9 +184,9 @@
|
|
|
178
184
|
onBeforeAdd: {
|
|
179
185
|
type: Function,
|
|
180
186
|
"default": function _default() {}
|
|
181
|
-
}
|
|
187
|
+
},
|
|
188
|
+
formCreateInject: Object
|
|
182
189
|
},
|
|
183
|
-
inject: ['formCreateInject'],
|
|
184
190
|
data: function data() {
|
|
185
191
|
return {
|
|
186
192
|
len: 0,
|
|
@@ -237,7 +243,8 @@
|
|
|
237
243
|
});
|
|
238
244
|
}
|
|
239
245
|
},
|
|
240
|
-
deep: true
|
|
246
|
+
deep: true,
|
|
247
|
+
flush: 'post'
|
|
241
248
|
}
|
|
242
249
|
},
|
|
243
250
|
methods: {
|
|
@@ -300,7 +307,7 @@
|
|
|
300
307
|
};
|
|
301
308
|
|
|
302
309
|
if (emit) {
|
|
303
|
-
|
|
310
|
+
vue.nextTick(function () {
|
|
304
311
|
return _this3.$emit('add', rule, Object.keys(_this3.cacheRule).length - 1);
|
|
305
312
|
});
|
|
306
313
|
}
|
|
@@ -310,7 +317,7 @@
|
|
|
310
317
|
|
|
311
318
|
this.cacheRule[key].$f = $f;
|
|
312
319
|
this.subForm();
|
|
313
|
-
|
|
320
|
+
vue.nextTick(function () {
|
|
314
321
|
if (_this4.syncDisabled) {
|
|
315
322
|
$f.disabled(_this4.disabled);
|
|
316
323
|
}
|
|
@@ -333,7 +340,7 @@
|
|
|
333
340
|
delete this.cacheValue[key];
|
|
334
341
|
|
|
335
342
|
if (emit) {
|
|
336
|
-
|
|
343
|
+
vue.nextTick(function () {
|
|
337
344
|
return _this6.$emit('remove', index);
|
|
338
345
|
});
|
|
339
346
|
}
|
|
@@ -357,7 +364,7 @@
|
|
|
357
364
|
this.input(this.modelValue);
|
|
358
365
|
},
|
|
359
366
|
addIcon: function addIcon(key) {
|
|
360
|
-
return vue.createVNode(
|
|
367
|
+
return vue.createVNode(vue.resolveComponent("PlusCircleOutlined"), {
|
|
361
368
|
"key": "a".concat(key),
|
|
362
369
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer', ";"),
|
|
363
370
|
"onClick": this.add
|
|
@@ -366,7 +373,7 @@
|
|
|
366
373
|
delIcon: function delIcon(index, key) {
|
|
367
374
|
var _this7 = this;
|
|
368
375
|
|
|
369
|
-
return vue.createVNode(
|
|
376
|
+
return vue.createVNode(vue.resolveComponent("MinusCircleOutlined"), {
|
|
370
377
|
"key": "d".concat(key),
|
|
371
378
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#606266', ";"),
|
|
372
379
|
"onClick": function onClick() {
|
|
@@ -410,13 +417,13 @@
|
|
|
410
417
|
created: function created() {
|
|
411
418
|
var d = (this.expand || 0) - this.modelValue.length;
|
|
412
419
|
|
|
413
|
-
if (d > 0) {
|
|
414
|
-
this.expandRule(d);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
420
|
for (var i = 0; i < this.modelValue.length; i++) {
|
|
418
421
|
this.addRule(i);
|
|
419
422
|
}
|
|
423
|
+
|
|
424
|
+
if (d > 0) {
|
|
425
|
+
this.expandRule(d);
|
|
426
|
+
}
|
|
420
427
|
},
|
|
421
428
|
render: function render() {
|
|
422
429
|
var _this9 = this;
|
|
@@ -427,12 +434,12 @@
|
|
|
427
434
|
return keys.length === 0 ? this.$slots["default"] ? this.$slots["default"]({
|
|
428
435
|
vm: this,
|
|
429
436
|
add: this.add
|
|
430
|
-
}) : vue.createVNode(
|
|
431
|
-
"key":
|
|
437
|
+
}) : vue.createVNode(vue.resolveComponent("PlusCircleOutlined"), {
|
|
438
|
+
"key": 1,
|
|
432
439
|
"style": "font-size:".concat(this.fontSize, "px;vertical-align:middle;color:").concat(this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer', ";"),
|
|
433
440
|
"onClick": this.add
|
|
434
441
|
}, null) : vue.createVNode("div", {
|
|
435
|
-
"key":
|
|
442
|
+
"key": 2
|
|
436
443
|
}, [keys.map(function (key, index) {
|
|
437
444
|
var _slot;
|
|
438
445
|
|
package/dist/index.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @form-create/component-antdv-group v3.
|
|
3
|
-
* (c) 2018-
|
|
2
|
+
* @form-create/component-antdv-group v3.1.0
|
|
3
|
+
* (c) 2018-2022 xaboy
|
|
4
4
|
* Github https://github.com/xaboy/form-create with group
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*/
|
|
7
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")
|
|
7
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).FcGroup={},e.Vue)}(this,(function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function o(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?n(Object(o),!0).forEach((function(t){i(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e)||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 u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var a={type:function(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"},Undef:function(e){return null==e},Element:function(e){return"object"===r(e)&&null!==e&&1===e.nodeType&&!a.Object(e)},trueArray:function(e){return Array.isArray(e)&&e.length>0}};["Date","Object","Function","String","Boolean","Array","Number"].forEach((function(e){a[e]=function(t){return a.type(t,e)}}));var c=t.defineComponent({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[]}},disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0},fontSize:{type:Number,default:28},onBeforeRemove:{type:Function,default:function(){}},onBeforeAdd:{type:Function,default:function(){}},formCreateInject:Object},data:function(){return{len:0,cacheRule:{},cacheValue:{},form:t.markRaw(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove"],watch:{disabled:function(e){if(this.syncDisabled){var t=this.cacheRule;Object.keys(t).forEach((function(n){t[n].$f.disabled(e)}))}},expand:function(e){var t=e-this.modelValue.length;t>0&&this.expandRule(t)},modelValue:{handler:function(e){var t=this;e=e||[];var n=Object.keys(this.cacheRule),o=n.length,r=o-e.length;if(r<0){for(var i=r;i<0;i++)this.addRule(e.length+i);for(var l=0;l<o;l++)this.setValue(n[l],e[l])}else{if(r>0){for(var u=0;u<r;u++)this.removeRule(n[o-u-1]);this.subForm()}e.forEach((function(o,r){t.setValue(n[r],e[r])}))}},deep:!0,flush:"post"}},methods:{_value:function(e){return e&&(t=e,n=this.field,{}.hasOwnProperty.call(t,n))?e[this.field]:e;var t,n},cache:function(e,t){this.cacheValue[e]=JSON.stringify(t)},input:function(e){this.$emit("update:modelValue",e),this.$emit("change",e)},formData:function(e,t){var n=this,r=this.cacheRule,i=Object.keys(r);if(i.filter((function(e){return r[e].$f})).length===i.length){var l=i.map((function(r){var i=e===r?t:o({},n.cacheRule[r].$f.form),l=n.field?i[n.field]||null:i;return n.cache(r,l),l}));this.input(l)}},setValue:function(e,t){var n=this.field;n&&(t=i({},n,this._value(t))),this.cacheValue[e]!==JSON.stringify(n?t[n]:t)&&this.cache(e,t)},addRule:function(e,n){var r=this,i=this.formCreateInject.form.copyRules(this.rule||[]),l=this.options?o({},this.options):{submitBtn:!1,resetBtn:!1};this.cacheRule[++this.len]={rule:i,options:l},n&&t.nextTick((function(){return r.$emit("add",i,Object.keys(r.cacheRule).length-1)}))},add$f:function(e,n,o){var r=this;this.cacheRule[n].$f=o,this.subForm(),t.nextTick((function(){r.syncDisabled&&o.disabled(r.disabled),r.$emit("itemMounted",o,Object.keys(r.cacheRule).indexOf(n))}))},subForm:function(){var e=this;this.formCreateInject.subForm(Object.keys(this.cacheRule).map((function(t){return e.cacheRule[t].$f})))},removeRule:function(e,n){var o=this,r=Object.keys(this.cacheRule).indexOf(e);delete this.cacheRule[e],delete this.cacheValue[e],n&&t.nextTick((function(){return o.$emit("remove",r)}))},add:function(){this.disabled||!1===this.onBeforeAdd(this.modelValue)||(this.modelValue.push(this.field?null:{}),this.$emit("update:modelValue",this.modelValue))},del:function(e,t){this.disabled||!1===this.onBeforeRemove(this.modelValue,e)||(this.removeRule(t,!0),this.subForm(),this.modelValue.splice(e,1),this.input(this.modelValue))},addIcon:function(e){return t.createVNode(t.resolveComponent("PlusCircleOutlined"),{key:"a".concat(e),style:"font-size:".concat(this.fontSize,"px;cursor:").concat(this.disabled?"not-allowed;color:#c9cdd4":"pointer",";"),onClick:this.add},null)},delIcon:function(e,n){var o=this;return t.createVNode(t.resolveComponent("MinusCircleOutlined"),{key:"d".concat(n),style:"font-size:".concat(this.fontSize,"px;cursor:").concat(this.disabled?"not-allowed;color:#c9cdd4":"pointer;color:#606266",";"),onClick:function(){return o.del(e,n)}},null)},makeIcon:function(e,t,n){var o=this;return this.$slots.button?this.$slots.button({total:e,index:t,vm:this,key:n,del:function(){return o.del(t,n)},add:this.add}):0===t?[0!==this.max&&e>=this.max?null:this.addIcon(n),0===this.min||e>this.min?this.delIcon(t,n):null]:t>=this.min?this.delIcon(t,n):void 0},emitEvent:function(e,t,n,o){this.$emit.apply(this,[e].concat(l(t),[this.cacheRule[o].$f,n]))},expandRule:function(e){for(var t=0;t<e;t++)this.modelValue.push(this.field?null:{})}},created:function(){for(var e=(this.expand||0)-this.modelValue.length,t=0;t<this.modelValue.length;t++)this.addRule(t);e>0&&this.expandRule(e)},render:function(){var e=this,n=Object.keys(this.cacheRule),o=this.button,r=this.form;return 0===n.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):t.createVNode(t.resolveComponent("PlusCircleOutlined"),{key:1,style:"font-size:".concat(this.fontSize,"px;vertical-align:middle;color:").concat(this.disabled?"#c9cdd4;cursor: not-allowed":"#606266;cursor:pointer",";"),onClick:this.add},null):t.createVNode("div",{key:2},[n.map((function(l,u){var a,c=e.cacheRule[l],s=c.rule,d=c.options;return t.createVNode(t.resolveComponent("aRow"),{align:"middle",type:"flex",key:l,style:"border-bottom:1px dashed #DCDFE6;margin-bottom:10px;"},{default:function(){return[t.createVNode(t.resolveComponent("aCol"),{span:o?20:24},{default:function(){return[t.createVNode(r,{key:l,"onUpdate:modelValue":function(t){return e.formData(l,t)},modelValue:e.field?i({},e.field,e._value(e.modelValue[u])):e.modelValue[u],"onEmit-event":function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return e.emitEvent(t,o,u,l)},"onUpdate:api":function(t){return e.add$f(u,l,t)},rule:s,option:d,extendOption:!0},null)]}}),o?t.createVNode(t.resolveComponent("aCol"),{span:2,pull:1,push:1},(c=a=e.makeIcon(n.length,u,l),"function"==typeof c||"[object Object]"===Object.prototype.toString.call(c)&&!t.isVNode(c)?a:{default:function(){return[a]}})):null];var c}})}))])}});e.default=c,Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@form-create/component-antdv-group",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "@form-create/ant-design-vue 内置组件",
|
|
5
5
|
"main": "./dist/index.min.js",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "xaboy",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@form-create/utils": "^3.
|
|
33
|
+
"@form-create/utils": "^3.1.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@ant-design/icons-vue": "^6.0.1"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"esm"
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "2e0a05f64e1205344da1bb4dadd497a76c491423"
|
|
60
60
|
}
|
package/src/component.jsx
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {hasProperty} from '@form-create/utils/lib/type';
|
|
2
|
-
import {defineComponent, markRaw} from 'vue';
|
|
3
|
-
import {PlusCircleOutlined, MinusCircleOutlined} from '@ant-design/icons-vue';
|
|
2
|
+
import {defineComponent, markRaw, nextTick} from 'vue';
|
|
4
3
|
|
|
5
4
|
const NAME = 'fcGroup';
|
|
6
5
|
|
|
@@ -49,8 +48,8 @@ export default defineComponent({
|
|
|
49
48
|
default: () => {
|
|
50
49
|
}
|
|
51
50
|
},
|
|
51
|
+
formCreateInject: Object,
|
|
52
52
|
},
|
|
53
|
-
inject: ['formCreateInject'],
|
|
54
53
|
data() {
|
|
55
54
|
return {
|
|
56
55
|
len: 0,
|
|
@@ -99,6 +98,7 @@ export default defineComponent({
|
|
|
99
98
|
}
|
|
100
99
|
},
|
|
101
100
|
deep: true,
|
|
101
|
+
flush: 'post',
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
104
|
methods: {
|
|
@@ -144,13 +144,13 @@ export default defineComponent({
|
|
|
144
144
|
};
|
|
145
145
|
this.cacheRule[++this.len] = {rule, options};
|
|
146
146
|
if (emit) {
|
|
147
|
-
|
|
147
|
+
nextTick(() => this.$emit('add', rule, Object.keys(this.cacheRule).length - 1));
|
|
148
148
|
}
|
|
149
149
|
},
|
|
150
150
|
add$f(i, key, $f) {
|
|
151
151
|
this.cacheRule[key].$f = $f;
|
|
152
152
|
this.subForm();
|
|
153
|
-
|
|
153
|
+
nextTick(() => {
|
|
154
154
|
if (this.syncDisabled) {
|
|
155
155
|
$f.disabled(this.disabled);
|
|
156
156
|
}
|
|
@@ -165,7 +165,7 @@ export default defineComponent({
|
|
|
165
165
|
delete this.cacheRule[key];
|
|
166
166
|
delete this.cacheValue[key];
|
|
167
167
|
if (emit) {
|
|
168
|
-
|
|
168
|
+
nextTick(() => this.$emit('remove', index));
|
|
169
169
|
}
|
|
170
170
|
},
|
|
171
171
|
add() {
|
|
@@ -223,12 +223,12 @@ export default defineComponent({
|
|
|
223
223
|
},
|
|
224
224
|
created() {
|
|
225
225
|
const d = (this.expand || 0) - this.modelValue.length;
|
|
226
|
-
if (d > 0) {
|
|
227
|
-
this.expandRule(d);
|
|
228
|
-
}
|
|
229
226
|
for (let i = 0; i < this.modelValue.length; i++) {
|
|
230
227
|
this.addRule(i);
|
|
231
228
|
}
|
|
229
|
+
if (d > 0) {
|
|
230
|
+
this.expandRule(d);
|
|
231
|
+
}
|
|
232
232
|
},
|
|
233
233
|
render() {
|
|
234
234
|
const keys = Object.keys(this.cacheRule);
|
|
@@ -238,10 +238,10 @@ export default defineComponent({
|
|
|
238
238
|
(this.$slots.default ? (this.$slots.default({
|
|
239
239
|
vm: this,
|
|
240
240
|
add: this.add
|
|
241
|
-
})) : <PlusCircleOutlined key={
|
|
241
|
+
})) : <PlusCircleOutlined key={1}
|
|
242
242
|
style={`font-size:${this.fontSize}px;vertical-align:middle;color:${this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer'};`}
|
|
243
243
|
onClick={this.add}/>) :
|
|
244
|
-
<div key={
|
|
244
|
+
<div key={2}>{keys.map((key, index) => {
|
|
245
245
|
const {rule, options} = this.cacheRule[key];
|
|
246
246
|
return <aRow align="middle" type="flex" key={key}
|
|
247
247
|
style="border-bottom:1px dashed #DCDFE6;margin-bottom:10px;">
|