@form-create/component-antdv-group 3.0.0-alpha.2 → 3.1.1
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 +15 -15
- package/dist/index.esm.min.js +3 -3
- package/dist/index.js +19 -18
- package/dist/index.min.js +3 -3
- package/package.json +3 -3
- package/src/component.jsx +7 -7
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,11 +1,10 @@
|
|
|
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
7
|
import { defineComponent, markRaw, nextTick, createVNode, resolveComponent, isVNode } from 'vue';
|
|
8
|
-
import { PlusCircleOutlined, MinusCircleOutlined } from '@ant-design/icons-vue';
|
|
9
8
|
|
|
10
9
|
function ownKeys(object, enumerableOnly) {
|
|
11
10
|
var keys = Object.keys(object);
|
|
@@ -181,9 +180,9 @@ var Group = defineComponent({
|
|
|
181
180
|
onBeforeAdd: {
|
|
182
181
|
type: Function,
|
|
183
182
|
"default": function _default() {}
|
|
184
|
-
}
|
|
183
|
+
},
|
|
184
|
+
formCreateInject: Object
|
|
185
185
|
},
|
|
186
|
-
inject: ['formCreateInject'],
|
|
187
186
|
data: function data() {
|
|
188
187
|
return {
|
|
189
188
|
len: 0,
|
|
@@ -240,7 +239,8 @@ var Group = defineComponent({
|
|
|
240
239
|
});
|
|
241
240
|
}
|
|
242
241
|
},
|
|
243
|
-
deep: true
|
|
242
|
+
deep: true,
|
|
243
|
+
flush: 'post'
|
|
244
244
|
}
|
|
245
245
|
},
|
|
246
246
|
methods: {
|
|
@@ -360,7 +360,7 @@ var Group = defineComponent({
|
|
|
360
360
|
this.input(this.modelValue);
|
|
361
361
|
},
|
|
362
362
|
addIcon: function addIcon(key) {
|
|
363
|
-
return createVNode(PlusCircleOutlined, {
|
|
363
|
+
return createVNode(resolveComponent("PlusCircleOutlined"), {
|
|
364
364
|
"key": "a".concat(key),
|
|
365
365
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer', ";"),
|
|
366
366
|
"onClick": this.add
|
|
@@ -369,7 +369,7 @@ var Group = defineComponent({
|
|
|
369
369
|
delIcon: function delIcon(index, key) {
|
|
370
370
|
var _this7 = this;
|
|
371
371
|
|
|
372
|
-
return createVNode(MinusCircleOutlined, {
|
|
372
|
+
return createVNode(resolveComponent("MinusCircleOutlined"), {
|
|
373
373
|
"key": "d".concat(key),
|
|
374
374
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#606266', ";"),
|
|
375
375
|
"onClick": function onClick() {
|
|
@@ -413,13 +413,13 @@ var Group = defineComponent({
|
|
|
413
413
|
created: function created() {
|
|
414
414
|
var d = (this.expand || 0) - this.modelValue.length;
|
|
415
415
|
|
|
416
|
-
if (d > 0) {
|
|
417
|
-
this.expandRule(d);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
416
|
for (var i = 0; i < this.modelValue.length; i++) {
|
|
421
417
|
this.addRule(i);
|
|
422
418
|
}
|
|
419
|
+
|
|
420
|
+
if (d > 0) {
|
|
421
|
+
this.expandRule(d);
|
|
422
|
+
}
|
|
423
423
|
},
|
|
424
424
|
render: function render() {
|
|
425
425
|
var _this9 = this;
|
|
@@ -430,12 +430,12 @@ var Group = defineComponent({
|
|
|
430
430
|
return keys.length === 0 ? this.$slots["default"] ? this.$slots["default"]({
|
|
431
431
|
vm: this,
|
|
432
432
|
add: this.add
|
|
433
|
-
}) : createVNode(PlusCircleOutlined, {
|
|
434
|
-
"key":
|
|
433
|
+
}) : createVNode(resolveComponent("PlusCircleOutlined"), {
|
|
434
|
+
"key": 1,
|
|
435
435
|
"style": "font-size:".concat(this.fontSize, "px;vertical-align:middle;color:").concat(this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer', ";"),
|
|
436
436
|
"onClick": this.add
|
|
437
437
|
}, null) : createVNode("div", {
|
|
438
|
-
"key":
|
|
438
|
+
"key": 2
|
|
439
439
|
}, [keys.map(function (key, index) {
|
|
440
440
|
var _slot;
|
|
441
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,nextTick as n,createVNode as o,resolveComponent as r,isVNode as i}from"vue";
|
|
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,14 +1,14 @@
|
|
|
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
7
|
(function (global, factory) {
|
|
8
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')
|
|
9
|
-
typeof define === 'function' && define.amd ? define(['exports', 'vue'
|
|
10
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FcGroup = {}, global.Vue
|
|
11
|
-
})(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';
|
|
12
12
|
|
|
13
13
|
function ownKeys(object, enumerableOnly) {
|
|
14
14
|
var keys = Object.keys(object);
|
|
@@ -184,9 +184,9 @@
|
|
|
184
184
|
onBeforeAdd: {
|
|
185
185
|
type: Function,
|
|
186
186
|
"default": function _default() {}
|
|
187
|
-
}
|
|
187
|
+
},
|
|
188
|
+
formCreateInject: Object
|
|
188
189
|
},
|
|
189
|
-
inject: ['formCreateInject'],
|
|
190
190
|
data: function data() {
|
|
191
191
|
return {
|
|
192
192
|
len: 0,
|
|
@@ -243,7 +243,8 @@
|
|
|
243
243
|
});
|
|
244
244
|
}
|
|
245
245
|
},
|
|
246
|
-
deep: true
|
|
246
|
+
deep: true,
|
|
247
|
+
flush: 'post'
|
|
247
248
|
}
|
|
248
249
|
},
|
|
249
250
|
methods: {
|
|
@@ -363,7 +364,7 @@
|
|
|
363
364
|
this.input(this.modelValue);
|
|
364
365
|
},
|
|
365
366
|
addIcon: function addIcon(key) {
|
|
366
|
-
return vue.createVNode(
|
|
367
|
+
return vue.createVNode(vue.resolveComponent("PlusCircleOutlined"), {
|
|
367
368
|
"key": "a".concat(key),
|
|
368
369
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer', ";"),
|
|
369
370
|
"onClick": this.add
|
|
@@ -372,7 +373,7 @@
|
|
|
372
373
|
delIcon: function delIcon(index, key) {
|
|
373
374
|
var _this7 = this;
|
|
374
375
|
|
|
375
|
-
return vue.createVNode(
|
|
376
|
+
return vue.createVNode(vue.resolveComponent("MinusCircleOutlined"), {
|
|
376
377
|
"key": "d".concat(key),
|
|
377
378
|
"style": "font-size:".concat(this.fontSize, "px;cursor:").concat(this.disabled ? 'not-allowed;color:#c9cdd4' : 'pointer;color:#606266', ";"),
|
|
378
379
|
"onClick": function onClick() {
|
|
@@ -416,13 +417,13 @@
|
|
|
416
417
|
created: function created() {
|
|
417
418
|
var d = (this.expand || 0) - this.modelValue.length;
|
|
418
419
|
|
|
419
|
-
if (d > 0) {
|
|
420
|
-
this.expandRule(d);
|
|
421
|
-
}
|
|
422
|
-
|
|
423
420
|
for (var i = 0; i < this.modelValue.length; i++) {
|
|
424
421
|
this.addRule(i);
|
|
425
422
|
}
|
|
423
|
+
|
|
424
|
+
if (d > 0) {
|
|
425
|
+
this.expandRule(d);
|
|
426
|
+
}
|
|
426
427
|
},
|
|
427
428
|
render: function render() {
|
|
428
429
|
var _this9 = this;
|
|
@@ -433,12 +434,12 @@
|
|
|
433
434
|
return keys.length === 0 ? this.$slots["default"] ? this.$slots["default"]({
|
|
434
435
|
vm: this,
|
|
435
436
|
add: this.add
|
|
436
|
-
}) : vue.createVNode(
|
|
437
|
-
"key":
|
|
437
|
+
}) : vue.createVNode(vue.resolveComponent("PlusCircleOutlined"), {
|
|
438
|
+
"key": 1,
|
|
438
439
|
"style": "font-size:".concat(this.fontSize, "px;vertical-align:middle;color:").concat(this.disabled ? '#c9cdd4;cursor: not-allowed' : '#606266;cursor:pointer', ";"),
|
|
439
440
|
"onClick": this.add
|
|
440
441
|
}, null) : vue.createVNode("div", {
|
|
441
|
-
"key":
|
|
442
|
+
"key": 2
|
|
442
443
|
}, [keys.map(function (key, index) {
|
|
443
444
|
var _slot;
|
|
444
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.1",
|
|
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.1"
|
|
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": "3d024534b3ee103a96da1d3629582c0cdf19d9a8"
|
|
60
60
|
}
|
package/src/component.jsx
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {hasProperty} from '@form-create/utils/lib/type';
|
|
2
2
|
import {defineComponent, markRaw, nextTick} from 'vue';
|
|
3
|
-
import {PlusCircleOutlined, MinusCircleOutlined} from '@ant-design/icons-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: {
|
|
@@ -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;">
|