@form-create/ant-design-vue
Version:
ant-design-vue动态表单|form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions through JSON. Supports 3 UI frameworks, and supports the generation of any Vue components. Built-in 2
7 lines • 88.7 kB
JavaScript
/*!
* @form-create/ant-design-vue v2.5.33
* (c) 2018-2023 xaboy
* Github https://github.com/xaboy/form-create
* Released under the MIT License.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("moment")):"function"==typeof define&&define.amd?define(["exports","vue","moment"],t):t((e=e||self).formCreate={},e.Vue,e.moment)}(this,function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n;var i=["attrs","props","domProps"],o=["class","style","directives"],a=["on","nativeOn"],u=function(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}},c=function(e){return e.reduce(function(e,t){for(var n in t)if(e[n])if(-1!==i.indexOf(n))e[n]=r({},e[n],t[n]);else if(-1!==o.indexOf(n)){var c=e[n]instanceof Array?e[n]:[e[n]],s=t[n]instanceof Array?t[n]:[t[n]];e[n]=c.concat(s)}else if(-1!==a.indexOf(n))for(var f in t[n])if(e[n][f]){var l=e[n][f]instanceof Array?e[n][f]:[e[n][f]],d=t[n][f]instanceof Array?t[n][f]:[t[n][f]];e[n][f]=l.concat(d)}else e[n][f]=t[n][f];else if("hook"==n)for(var p in t[n])e[n][p]=e[n][p]?u(e[n][p],t[n][p]):t[n][p];else e[n]=t[n];else e[n]=t[n];return e},{})};function s(e){return(s="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})(e)}function f(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,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(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){f(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 p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,r=p(e);if(t){var i=p(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return m(this,n)}}function y(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return g(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 g(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 g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function b(e){return null==e?"":"object"===s(e)?JSON.stringify(e,null,2):String(e)}function $(e,n,r){t.set(e,n,r)}function x(e,n){t.delete(e,n)}var _={type:function(e,t){return Object.prototype.toString.call(e)==="[object "+t+"]"},Undef:function(e){return null==e},Element:function(e){return"object"===s(e)&&null!==e&&1===e.nodeType&&!_.Object(e)},trueArray:function(e){return Array.isArray(e)&&e.length>0},Function:function(e){var t=this.getType(e);return"Function"===t||"AsyncFunction"===t},getType:function(e){var t=Object.prototype.toString.call(e);return/^\[object (.*)\]$/.exec(t)[1]},empty:function(e){return null==e||(!(!Array.isArray(e)||!Array.isArray(e)||e.length)||"string"==typeof e&&!e)}};function k(e,t){return{}.hasOwnProperty.call(e,t)}function O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=!1;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var o=t[i];if((r=Array.isArray(o))||_.Object(o)){var a=void 0===e[i];if(r)r=!1,a&&$(e,i,[]);else if(o._clone&&void 0!==n){if(!n){$(e,i,o._clone());continue}o=o.getRule(),a&&$(e,i,{})}else a&&$(e,i,{});e[i]=O(e[i],o,n)}else $(e,i,o),_.Undef(o)||(_.Undef(o.__json)||(e[i].__json=o.__json),_.Undef(o.__origin)||(e[i].__origin=o.__origin))}return void 0!==n&&Array.isArray(e)?e.filter(function(e){return!e||!e.__ctrl}):e}function w(e){return O({},{value:e}).value}function C(e){return Array.isArray(e)?e:[null,void 0,""].indexOf(e)>-1?[]:[e]}["Date","Object","String","Boolean","Array","Number"].forEach(function(e){_[e]=function(t){return _.type(t,e)}});var S=function(e,t){return{url:e,name:j(e),status:"done",uid:t+1}},j=function(e){return b(e).split("/").pop()},E=function(e){return{url:e.url,file:e}},F={name:"fcUpload",formCreateParser:{toFormValue:function(e){return C(e)},toValue:function(e,t){return 1===t.prop.props.limit?e[0]||"":e}},props:{limit:{type:Number,default:0},formCreateInject:{type:Object,required:!0},value:{type:Array,default:function(){return[]}},onSuccess:{type:Function,required:!0},onHandle:{type:Function,default:function(e){this.previewImage=e.url,this.previewVisible=!0}},modalTitle:String,previewMask:void 0},data:function(){var e=this.value.map(S);return{defaultUploadList:e,previewImage:"",previewVisible:!1,uploadList:e.map(E)}},watch:{value:function(e){var t=e.map(S);this.$refs.upload.sFileList=t,this.uploadList=t.map(E)}},methods:{handleChange:function(e){var t=e.file,n=e.fileList,r=this.uploadList;"done"===t.status?(this.onSuccess(t,n),t.url&&r.push({url:t.url,file:n[n.length-1]}),this.input()):"removed"===t.status&&(r.forEach(function(e,n){e.file===t&&r.splice(n,1)}),this.input())},input:function(){this.$emit("input",this.uploadList.map(function(e){return e.url}))}},render:function(){var e,t,n=this,r=arguments[0],i=!this.limit||this.limit>this.uploadList.length,o=d({},this.formCreateInject.prop);return o.on=O({},o.on||{}),r("div",{class:"_fc-upload"},[r("AUpload",c([{},o,{},{on:{preview:this.onHandle.bind(this),change:this.handleChange.bind(this)},props:{defaultFileList:this.defaultUploadList},ref:"upload"}]),[i?r("template",{slot:"default"},[this.$slots.default||r("AIcon",{attrs:{type:"plus"}})]):null,(e=this.$slots,t=["default"],Object.keys(e).reduce(function(n,r){return t&&-1!==t.indexOf(r)||n.push(e[r]),n},[]))]),r("aModal",c([{},{props:{mask:this.previewMask,title:this.modalTitle,footer:null}},{model:{value:n.previewVisible,callback:function(e){n.previewVisible=e}}}]),[r("img",{style:"width: 100%",attrs:{src:this.previewImage}})])])},mounted:function(){this.$emit("fc.el",this.$refs.upload)}};function R(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}R("._fc-frame .fc-files img {\n width: 100%;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n}\n\n._fc-frame .fc-upload-cover {\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: rgba(0, 0, 0, .6);\n transition: opacity .3s;\n}\n\n._fc-frame .fc-upload-cover i {\n color: #fff;\n font-size: 20px;\n cursor: pointer;\n margin: 0 2px;\n}\n\n._fc-frame .fc-files:hover .fc-upload-cover {\n opacity: 1;\n}\n\n._fc-frame .ant-upload {\n display: block;\n}\n\n._fc-frame .fc-upload-btn, .fc-files {\n display: inline-block;\n width: 104px;\n height: 104px;\n text-align: center;\n line-height: 104px;\n border: 1px solid #c0ccda;\n border-radius: 4px;\n overflow: hidden;\n background: #fff;\n position: relative;\n box-shadow: 2px 2px 5px rgba(0, 0, 0, .1);\n margin-right: 4px;\n box-sizing: border-box;\n}\n");var A={name:"fcFrame",props:{formCreateInject:{type:Object,required:!0},type:{type:String,default:"input"},field:String,helper:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},src:{type:String,required:!0},icon:{type:String,default:"folder"},width:{type:[Number,String],default:500},height:{type:String,default:"370px"},maxLength:{type:Number,default:0},okBtnText:{type:String,default:"确定"},closeBtnText:{type:String,default:"关闭"},modalTitle:String,handleIcon:{type:[String,Boolean],default:void 0},title:String,allowRemove:{type:Boolean,default:!0},onOpen:{type:Function,default:function(){}},onOk:{type:Function,default:function(){}},onCancel:{type:Function,default:function(){}},onLoad:{type:Function,default:function(){}},onBeforeRemove:{type:Function,default:function(){}},onRemove:{type:Function,default:function(){}},onHandle:{type:Function,default:function(e){this.previewImage=this.getSrc(e),this.previewVisible=!0}},modal:{type:Object,default:function(){return{}}},srcKey:{type:[String,Number]},value:[Array,String,Number,Object],previewMask:void 0,footer:{type:Boolean,default:!0},reload:{type:Boolean,default:!0},closeBtn:{type:Boolean,default:!0},okBtn:{type:Boolean,default:!0}},data:function(){return{fileList:C(this.value),previewVisible:!1,frameVisible:!1,previewImage:""}},watch:{value:function(e){this.fileList=C(e)},fileList:function(e){var t=1===this.maxLength?e[0]||"":e;this.$emit("input",t),this.$emit("change",t)}},methods:{key:function(e){return e},closeModal:function(e){this.$emit(e?"$close":"$ok"),this.reload&&(this.$off("$ok"),this.$off("$close")),this.frameVisible=!1},showModal:function(){this.disabled||!1===this.onOpen()||(this.frameVisible=!0)},makeInput:function(){var e=this,t=this.$createElement,n={type:"text",value:this.fileList.map(function(t){return e.getSrc(t)}).toString(),readonly:!0};return t("AInput",c([{},{props:n},{key:this.key("input")}]),[t("AIcon",{attrs:{type:this.icon},slot:"addonAfter",on:{click:this.showModal}}),this.fileList.length?t("AIcon",{attrs:{type:"close-circle"},slot:"suffix",on:{click:function(){return e.fileList=[]}}}):null])},makeGroup:function(e){var t=this.$createElement;return(!this.maxLength||this.fileList.length<this.maxLength)&&e.push(this.makeBtn()),t("div",{key:this.key("group")},y(e))},makeItem:function(e,t){return(0,this.$createElement)("div",{class:"fc-files",key:this.key("file"+e)},y(t))},valid:function(e){var t=this.formCreateInject.field||this.field;if(t&&e!==t)throw new Error("[frame]无效的字段值")},makeIcons:function(e,t){var n=this.$createElement;if(!1!==this.handleIcon||!0===this.allowRemove){var r=[];return("file"!==this.type&&!1!==this.handleIcon||"file"===this.type&&this.handleIcon)&&r.push(this.makeHandleIcon(e,t)),this.allowRemove&&r.push(this.makeRemoveIcon(e,t)),n("div",{class:"fc-upload-cover",key:this.key("uc")},[r])}},makeHandleIcon:function(e,t){var n=this;return(0,this.$createElement)("AIcon",{attrs:{type:!0===this.handleIcon||void 0===this.handleIcon?"eye-o":this.handleIcon},on:{click:function(){return n.handleClick(e)}},key:this.key("hi"+t)})},makeRemoveIcon:function(e,t){var n=this;return(0,this.$createElement)("AIcon",{attrs:{type:"delete"},on:{click:function(){return n.handleRemove(e)}},key:this.key("ri"+t)})},makeFiles:function(){var e=this,t=this.$createElement;return this.makeGroup(this.fileList.map(function(n,r){return e.makeItem(r,[t("AIcon",{attrs:{type:"file"},on:{click:function(){return e.handleClick(n)}}}),e.makeIcons(n,r)])}))},makeImages:function(){var e=this,t=this.$createElement;return this.makeGroup(this.fileList.map(function(n,r){return e.makeItem(r,[t("img",{attrs:{src:e.getSrc(n)}}),e.makeIcons(n,r)])}))},makeBtn:function(){var e=this,t=this.$createElement;return t("div",{class:"fc-upload-btn",on:{click:function(){return e.showModal()}},key:this.key("btn")},[t("AIcon",{attrs:{type:this.icon,theme:"filled"}})])},handleClick:function(e){return this.onHandle(e)},handleRemove:function(e){this.disabled||!1!==this.onBeforeRemove(e)&&(this.fileList.splice(this.fileList.indexOf(e),1),this.onRemove(e))},getSrc:function(e){return this.srcKey?e[this.srcKey]:e},frameLoad:function(e){var t=this;this.onLoad(e);try{!0===this.helper&&(e.form_create_helper={api:this.formCreateInject.api,close:function(e){t.valid(e),t.closeModal()},set:function(e,n){t.valid(e),t.disabled||t.$emit("input",n)},get:function(e){return t.valid(e),t.value},onOk:function(e){return t.$on("$ok",e)},onClose:function(e){return t.$on("$close",e)}})}catch(e){console.log(e)}},makeFooter:function(){var e=this,t=this.$createElement,n=this.$props,r=n.okBtnText,i=n.closeBtnText,o=n.closeBtn,a=n.okBtn,u=[];return n.footer?(o&&u.push(t("AButton",{on:{click:function(){return!1!==e.onCancel()&&e.closeModal(!0)}}},[i])),a&&u.push(t("AButton",{attrs:{type:"primary"},on:{click:function(){return!1!==e.onOk()&&e.closeModal()}}},[r])),u):u}},render:function(){var e,t=this,n=arguments[0],r=this.type;e="input"===r?this.makeInput():"image"===r?this.makeImages():this.makeFiles();var i=this.$props,o=i.width,a=void 0===o?"30%":o,u=i.height,s=i.src,f=i.title,l=i.modalTitle;return this.$nextTick(function(){t.$refs.frame&&t.frameLoad(t.$refs.frame.contentWindow||{})}),n("div",{class:"_fc-frame"},[e,n("aModal",c([{},{props:{mask:this.previewMask,title:l,footer:null}},{model:{value:t.previewVisible,callback:function(e){t.previewVisible=e}}}]),[n("img",{style:"width: 100%",attrs:{src:this.previewImage}})]),n("aModal",c([{},{props:d(d({width:a,title:f},this.modal),{},{visible:this.frameVisible})},{on:{cancel:function(){return t.closeModal(!0)}}}]),[this.frameVisible||!this.reload?n("iframe",{ref:"frame",attrs:{src:s,frameborder:"0"},style:{height:u,border:"0 none",width:"100%"}}):null,n("div",{slot:"footer"},[this.makeFooter()])])])},mounted:function(){this.$on("fc.closeModal",this.closeModal)}},V=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&$(e,r,t[r]);return e};function I(){return V.apply(this,arguments)}R('._fc-group{\n display: flex;\n min-height: 42px;\n justify-content: center;\n flex-direction: column;\n}\n\n._fc-group-disabled ._fc-group-btn, ._fc-group-disabled ._fc-group-add{\n cursor: not-allowed;\n}\n\n._fc-group-handle {\n display: flex;\n flex-direction: row;\n position: absolute;\n bottom: -15px;\n right: 30px;\n border-radius: 15px;\n border: 1px dashed #d9d9d9;\n padding: 3px 8px;\n background-color: #ffffff;\n}\n\n._fc-group-btn{\n cursor: pointer;\n}\n\n._fc-group-idx {\n position: absolute;\n bottom: -15px;\n left: 10px;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #eee;\n border-radius: 15px;\n font-weight: 700;\n}\n\n._fc-group-handle ._fc-group-btn + ._fc-group-btn {\n margin-left: 7px;\n}\n\n._fc-group-container{\n position: relative;\n display: flex;\n flex-direction: column;\n border: 1px dashed #d9d9d9;\n padding: 20px;\n margin: 5px;\n border-radius: 5px;\n margin-bottom: 25px;\n padding-bottom: 25px;\n}\n\n._fc-group-arrow {\n position: relative;\n width: 20px;\n height: 20px;\n}\n\n._fc-group-arrow::before {\n content: "";\n position: absolute;\n top: 8px;\n left: 5px;\n width: 9px;\n height: 9px;\n border-left: 2px solid #999;\n border-top: 2px solid #999;\n}\n._fc-group-arrow::before {\n transform: rotate(45deg);\n}\n\n._fc-group-arrow._fc-group-down {\n transform: rotate(180deg);\n}\n\n._fc-group-plus-minus {\n width: 20px;\n height: 20px;\n position: relative;\n cursor: pointer;\n}\n\n._fc-group-plus-minus::before,\n._fc-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 60%;\n height: 2px;\n background-color: #409eff;\n transform: translate(-50%, -50%);\n}\n\n._fc-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n._fc-group-plus-minus._fc-group-minus::before {\n display: none;\n}\n._fc-group-plus-minus._fc-group-minus::after {\n background-color: #f56c6c;\n}\n\n\n._fc-group-add{\n cursor: pointer;\n width: 25px;\n height: 25px;\n border: 1px solid rgb(64 158 255 / 50%);\n border-radius: 15px;\n}\n\n._fc-group-add._fc-group-plus-minus::before, ._fc-group-add._fc-group-plus-minus::after {\n width: 50%;\n}\n\n');var P=[F,A,{name:"fcGroup",props:{field:String,rule:[Array,Object],rules:Array,expand:Number,options:Object,formCreateInject:{type:Object,required:!0},button:{type:Boolean,default:!0},max:{type:Number,default:0},min:{type:Number,default:0},value:{type:Array,default:function(){return[]}},sortBtn:{type:Boolean,default:!0},defaultValue:Object,disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0},onBeforeRemove:{type:Function,default:function(){}},onBeforeAdd:{type:Function,default:function(){}},parse:Function},data:function(){return{len:0,cacheRule:{},cacheValue:{},sort:[],type:void 0}},computed:{formRule:function(){return this.rules?this.rules:this.rule?Array.isArray(this.rule)?this.rule:[this.rule]:[]}},watch:{cacheRule:{handler:function(e){this.sort=Object.keys(e)},immediate:!0},formRule:{handler:function(e,t){var n=this;Object.keys(this.cacheRule).forEach(function(r){var i=n.cacheRule[r];if(i.$f){var o=i.$f.formData();if(e===t)i.$f.deferSyncValue(function(){O(i.rule,e),i.$f.setValue(o)},!0);else{var a=i.$f.formData();i.$f.once("reloading",function(){i.$f.setValue(a)}),i.rule=w(e)}}})},deep:!0},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.value.length;t>0&&this.expandRule(t)},value:function(e,t){var n=this;e=e||[];var r=this.sort,i=r.length,o=i-e.length;if(o<0){for(var a=o;a<0;a++)this.addRule(e.length+a);for(var u=0;u<i;u++)this.setValue(r[u],e[u])}else{if(o>0)for(var c=0;c<o;c++)this.removeRule(r[i-c-1]);e.forEach(function(t,i){n.setValue(r[i],e[i])})}}},methods:{_value:function(e){return e&&k(e,this.field)?e[this.field]:e},cache:function(e,t){this.cacheValue[e]=JSON.stringify(t)},input:function(e){this.$emit("input",e),this.$emit("change",e)},formData:function(e,t){var n=this,r=this.cacheRule,i=this.sort;if(i.filter(function(e){return r[e].$f}).length===i.length){var o=i.map(function(r){var i=e===r?t:d({},n.cacheRule[r].$f.form),o=n.field?i[n.field]||null:i;return n.cache(r,o),o});this.input(o)}},setValue:function(e,t){var n=this.field,r=this.cacheRule[e].$f;n&&(t=f({},n,this._value(t))),this.cacheValue[e]!==JSON.stringify(n?t[n]:t)&&(this.cache(e,t),r&&r.coverValue(t||{}))},addRule:function(e,t){var n=this,r=this.formCreateInject.form.copyRules(this.formRule),i=this.options?d({},this.options):{submitBtn:!1,resetBtn:!1};if(this.defaultValue){i.formData||(i.formData={});var o=w(this.defaultValue);I(i.formData,this.field?f({},this.field,o):o)}this.parse&&this.parse({rule:r,options:i,index:this.sort.length}),this.$set(this.cacheRule,++this.len,{rule:r,options:i}),t&&this.$nextTick(function(){return n.$emit("add",r,Object.keys(n.cacheRule).length-1)})},add$f:function(e,t,n){var r=this;this.cacheRule[t].$f=n,this.$nextTick(function(){r.syncDisabled&&n.disabled(r.disabled),r.$emit("itemMounted",n,Object.keys(r.cacheRule).indexOf(t))})},removeRule:function(e,t){var n=this,r=Object.keys(this.cacheRule).indexOf(e);this.$delete(this.cacheRule,e),this.$delete(this.cacheValue,e),t&&this.$nextTick(function(){return n.$emit("remove",r)})},add:function(e){this.disabled||!1===this.onBeforeAdd(this.value)||this.addRule(e,!0)},del:function(e,t){if(!this.disabled&&!1!==this.onBeforeRemove(this.value,e)){this.removeRule(t,!0);var n=y(this.value);n.splice(e,1),this.input(n)}},addIcon:function(e){return(0,this.$createElement)("div",{class:"_fc-group-btn _fc-group-plus-minus",on:{click:this.add}})},delIcon:function(e,t){var n=this;return(0,this.$createElement)("div",{class:"_fc-group-btn _fc-group-plus-minus _fc-group-minus",on:{click:function(){return n.del(e,t)}}})},sortUpIcon:function(e){var t=this;return(0,this.$createElement)("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-up",on:{click:function(){return t.changeSort(e,-1)}}})},sortDownIcon:function(e){var t=this;return(0,this.$createElement)("div",{class:"_fc-group-btn _fc-group-arrow _fc-group-down",on:{click:function(){return t.changeSort(e,1)}}})},changeSort:function(e,t){var n=this.sort[e];this.$set(this.sort,e,this.sort[e+t]),this.sort[e+t]=n,this.formData(0)},makeIcon:function(e,t,n){var r=this;if(this.$scopedSlots.button)return this.$scopedSlots.button({total:e,index:t,vm:this,key:n,del:function(){return r.del(t,n)},add:this.add});var i=[];return(!this.max||e<this.max)&&e===t+1&&i.push(this.addIcon(n)),e>this.min&&i.push(this.delIcon(t,n)),this.sortBtn&&t&&i.push(this.sortUpIcon(t)),this.sortBtn&&t!==e-1&&i.push(this.sortDownIcon(t)),i},emitEvent:function(e,t,n,r){this.$emit.apply(this,[e].concat(y(t),[this.cacheRule[r].$f,n]))},expandRule:function(e){for(var t=0;t<e;t++)this.value.push(this.field?null:{})}},created:function(){this.type=this.formCreateInject.form.$form();var e=(this.expand||0)-this.value.length;e>0&&this.expandRule(e);for(var t=0;t<this.value.length;t++)this.addRule(t)},render:function(){var e=this,t=arguments[0],n=this.sort,r=this.button,i=this.type,o=this.disabled,a=0===n.length?this.$scopedSlots.default?this.$scopedSlots.default({vm:this,add:this.add}):t("div",{key:"a_def",class:"_fc-group-plus-minus _fc-group-add",on:{click:this.add}}):n.map(function(a,u){var s=e.cacheRule[a],l=s.rule,d=s.options,p=r&&!o?e.makeIcon(n.length,u,a):[];return t("div",{class:"_fc-group-container",key:a},[t(i,c([{key:a},{on:{"update:value":function(t){return e.formData(a,t)},"emit-event":function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return e.emitEvent(t,r,u,a)},input:function(t){return e.add$f(u,a,t)}}},{},{props:{inFor:!0,value:e.field?f({},e.field,e._value(e.value[u])):e.value[u],rule:l,option:d,extendOption:!0}}])),t("div",{class:"_fc-group-idx"},[u+1]),p.length?t("div",{class:"_fc-group-handle"},[p]):null])});return t("div",{key:"con",class:"_fc-group "+(o?"_fc-group-disabled":"")},[a])}},{name:"fcSubForm",props:{rule:Array,options:Object,formCreateInject:{type:Object,required:!0},value:{type:Object,default:function(){return{}}},disabled:{type:Boolean,default:!1},syncDisabled:{type:Boolean,default:!0}},data:function(){return{cacheRule:{},cacheValue:{},type:void 0}},watch:{disabled:function(e){this.syncDisabled&&this.cacheRule.$f.disabled(e)},value:function(e){this.setValue(e)}},methods:{formData:function(e){this.cacheValue=JSON.stringify(e),this.$emit("input",e),this.$emit("change",e)},setValue:function(e){var t=JSON.stringify(e);this.cacheValue!==t&&(this.cacheValue=t,this.cacheRule.$f.coverValue(e||{}))},addRule:function(){var e=this.options?this.options:{submitBtn:!1,resetBtn:!1};e.formData=d({},this.value||{}),this.cacheRule={rule:this.rule,options:e}},add$f:function(e){var t=this;this.cacheRule.$f=e,this.$nextTick(function(){t.syncDisabled&&e.disabled(t.disabled),t.$emit("itemMounted",e)})},emitEvent:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];this.$emit.apply(this,[e].concat(n))}},created:function(){this.addRule(),this.type=this.formCreateInject.form.$form()},render:function(){var e=arguments[0],t=this.cacheRule,n=t.rule,r=t.options;return e(this.type,c([{},{on:{"update:value":this.formData,"emit-event":this.emitEvent,input:this.add$f}},{},{props:{rule:n,option:r,extendOption:!0}}]))}}],D={name:"checkbox",mergeProp:function(e){var t=e.prop.props;k(t,"options")||(t.options=e.prop.options||[])}},T=d(d({},D),{},{name:"radio"}),B=d(d({},D),{},{name:"select"}),N="FormCreate",L=function e(t,n){if(t&&t!==n)return t.formCreateInject?t.formCreateInject:t.$parent?e(t.$parent,n):void 0};function M(e){return{name:N,componentName:N,model:{prop:"api"},provide:function(){return{$pfc:this}},inject:{$pfc:{default:null}},props:{rule:{type:Array,required:!0},option:{type:Object,default:function(){return{}}},extendOption:Boolean,value:Object,api:Object,name:String,subForm:{type:Boolean,default:!0},inFor:Boolean},data:function(){return{formData:void 0,destroyed:!1,validate:{},$f:void 0,isShow:!0,unique:1,renderRule:y(this.rule||[]),ctxInject:{},updateValue:JSON.stringify(this.value||{}),isMore:!!this.inFor}},render:function(){return this.formCreate.render()},methods:{_refresh:function(){++this.unique},_renderRule:function(){this.renderRule=y(this.rule||[])},_updateValue:function(e){this.destroyed||(this.updateValue=JSON.stringify(e),this.$emit("update:value",e))}},watch:{value:{handler:function(e){JSON.stringify(e||{})!==this.updateValue&&(this.$f.config.forceCoverValue?this.$f.coverValue(e||{}):this.$f.setValue(e||{}))},deep:!0},option:{handler:function(e){this.formCreate.initOptions(e),this.$f.refresh()},deep:!0},rule:function(e){var t=this;e.length===this.renderRule.length&&e.every(function(e){return t.renderRule.indexOf(e)>-1})||(this.formCreate.$handle.reloadRule(e),this._renderRule())}},beforeCreate:function(){var t=this,n=this.$options.propsData,r=n.rule,i=n.option;this.formCreate=new e(this,r,i),Object.keys(this.formCreate.prop).forEach(function(e){I(t.$options[e],t.formCreate.prop[e])}),this.$emit("beforeCreate",this.formCreate.api())},created:function(){var e=this,t=this,n=this.formCreate.api(),r=function(){var e=L(t,t.$pfc);if(e)if(t.isMore){var r=C(e.getSubForm()),i=r.indexOf(n);i>-1&&r.splice(i,1)}else e.subForm()};t.$on("hook:beforeDestroy",function(){r()}),this.$watch(function(){return e.subForm},function(e){e?function(){if(t.$pfc){var e,r=L(t,t.$pfc);r&&(t.isMore?(e=C(r.getSubForm())).push(n):e=n,r.subForm(e))}}():r()},{immediate:!0})}}}var q=["attrs","props","domProps","scopedSlots"],U=["class","style","directives"],H=["on","nativeOn"],J=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=[].concat(q,y(r.normal||[])),o=[].concat(U,y(r.array||[])),a=[].concat(H,y(r.functional||[])),u=r.props||[];return t.reduce(function(t,n){for(var r in n)if(t[r])if(u.indexOf(r)>-1)t[r]=e([n[r]],t[r]);else if(i.indexOf(r)>-1)t[r]=d(d({},t[r]),n[r]);else if(o.indexOf(r)>-1){var c=t[r]instanceof Array?t[r]:[t[r]],f=n[r]instanceof Array?n[r]:[n[r]];t[r]=[].concat(y(c),y(f))}else if(a.indexOf(r)>-1)for(var l in n[r])if(t[r][l]){var p=t[r][l]instanceof Array?t[r][l]:[t[r][l]],h=n[r][l]instanceof Array?n[r][l]:[n[r][l]];t[r][l]=[].concat(y(p),y(h))}else t[r][l]=n[r][l];else if("hook"===r)for(var m in n[r])t[r][m]?t[r][m]=Y(t[r][m],n[r][m]):t[r][m]=n[r][m];else t[r]=n[r];else i.indexOf(r)>-1||a.indexOf(r)>-1||u.indexOf(r)>-1?t[r]=d({},n[r]):o.indexOf(r)>-1?t[r]=n[r]instanceof Array?y(n[r]):"object"===s(n[r])?d({},n[r]):n[r]:t[r]=n[r];return t},n)},Y=function(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}},W=["type","slot","emitPrefix","value","name","native","hidden","display","inject","options","emit","nativeEmit","link","prefix","suffix","update","sync","optionsTo","key","preview","component","cache"],G=["validate","children","control"],K=["effect","deep"];function z(e,t,n){return"[form-create ".concat(e,"]: ").concat(t)+(n?"\n\nrule: "+JSON.stringify(n.getRule?n.getRule():n):"")}function X(e,t){console.error(z("err",e,t))}var Q="[[FORM-CREATE-PREFIX-",Z="-FORM-CREATE-SUFFIX]]",ee="$FN:",te="$FNX:",ne="function";function re(e,t){return JSON.stringify(O([],e,!0),function(e,t){if(!t||!0!==t._isVue){if(s(t)!==ne)return t;if(t.__json)return t.__json;if(t.__origin&&(t=t.__origin),!t.__emit)return Q+t+Z}},t)}function ie(e){return new Function("return "+e)()}function oe(e,t){if(e&&_.String(e)&&e.length>4){var n=e.trim(),r=!1;try{if(n.indexOf(Z)>0&&0===n.indexOf(Q))n=n.replace(Z,"").replace(Q,""),r=!0;else if(0===n.indexOf(ee))n=n.replace(ee,""),r=!0;else{if(0===n.indexOf(te))return(n=ie("function($inject){"+n.replace(te,"")+"}")).__json=e,n.__inject=!0,n;t||0!==n.indexOf(ne)||n===ne||(r=!0)}if(!r)return e;var i=ie(-1===n.indexOf(ne)&&0!==n.indexOf("(")?ne+" "+n:n);return i.__json=e,i}catch(e){return void X("解析失败:".concat(n,"\n\nerr: ").concat(e))}}return e}function ae(e,t){return JSON.parse(e,function(e,n){return _.Undef(n)||!n.indexOf?n:oe(n,t)})}function ue(e,t){return{value:e,enumerable:!1,configurable:!1,writable:!!t}}function ce(e){return se([e])[0]}function se(e,t){return O([],y(e),t||!1)}function fe(e,t){return J(Array.isArray(t)?t:[t],e,{array:G,normal:K}),e}function le(e){var t=_.Function(e.getRule)?e.getRule():e;return t.type||(t.type="input"),t}function de(e,t){Object.defineProperties(e,Object.keys(t).reduce(function(e,n){return e[n]={get:function(){return t[n]()}},e},{}))}function pe(e){return e.__fc__||(e.__origin__?e.__origin__.__fc__:null)}function he(e,t){try{t=e()}catch(e){!function(e){X(e.toString()),console.error(e)}(e)}return t}function me(e,t){return function(n,r,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=new ve(e,n,r,i,o);return t&&(_.Function(t)?t(a):a.props(t)),a}}function ve(e,t,n,r,i){this._data=I({props:{},on:{},options:[],children:[],effect:{},hidden:!1,display:!0,value:void 0},{type:e,title:t,field:n,value:r,props:i||{}}),this.event=this.on}function ye(e){e.forEach(function(e){ve.prototype[e]=function(t){return fe(this._data,f({},e,arguments.length<2?t:f({},t,arguments[1]))),this}})}I(ve.prototype,{getRule:function(){return this._data},setProp:function(e,t){return $(this._data,e,t),this},_clone:function(){var e=new this.constructor;return e._data=ce(this._data),e}}),ye([].concat(W,y(q),y(U),y(H),G,K));var ge=me("");function be(e,t,n){var r=ge("",t);return r._data.type=e,r._data.title=n,r}function $e(e,t,n,r){var i=ge("",n);return i._data.type="template",i._data.template=e,i._data.title=r,i._data.vm=t,i}function xe(){return{create:be,createTmp:$e,template:$e,factory:me}}function _e(e){return w(e)}function ke(e){return Oe(e.replace(/(-[a-z])/g,function(e){return e.replace("-","").toLocaleUpperCase()}))}function Oe(e){return e.replace(e[0],e[0].toLowerCase())}function we(e){var t=e.replace(/([A-Z])/g,"-$1").toLocaleLowerCase();return 0===t.indexOf("-")&&(t=t.substr(1)),t}var Ce=0;function Se(){return"F"+Math.random().toString(36).substr(3,3)+Number("".concat(Date.now()).concat(++Ce)).toString(36)}function je(e,t,n){var r,i=e;return(t||"").split(".").forEach(function(e){r&&(i[r]&&"object"==s(i[r])||(i[r]={}),i=i[r]),r=e}),i[r]=n,i}function Ee(e){I(this,{$handle:e,fc:e.fc,vm:e.vm,$manager:e.$manager,vNode:new e.fc.CreateNode(e.vm)}),de(this,{options:function(){return e.options},sort:function(){return e.sort}}),this.initCache(),this.initRender()}!function(e){I(e.prototype,{initCache:function(){this.clearCacheAll()},clearCache:function(e){if(!e.rule.cache)if(this.cache[e.id]){(!0===this.cache[e.id].use||this.cache[e.id].parent)&&this.$handle.refresh();var t=this.cache[e.id].parent;this.cache[e.id]=null,t&&this.clearCache(t)}else e.parent&&this.clearCache(e.parent)},clearCacheAll:function(){this.cache={}},setCache:function(e,t,n){this.cache[e.id]={vnode:t,use:!1,parent:n,slot:e.rule.slot}},getCache:function(e){var t=this.cache[e.id];if(t)return t.use=!0,t.vnode}})}(Ee),function(e){I(e.prototype,{initRender:function(){this.tempList={},this.clearOrgChildren()},initOrgChildren:function(){var e=this.$handle.ctxs;this.orgChildren=Object.keys(e).reduce(function(t,n){if(!1!==e[n].parser.loadChildren){var r=e[n].rule.children;t[n]=_.trueArray(r)?y(r):[]}return t},{})},clearOrgChildren:function(){this.orgChildren={}},getTypeSlot:function(e){return function t(n){if(n){var r=void 0;return e.rule.field&&(r=n.$scopedSlots["field-"+we(e.rule.field)]||n.$scopedSlots["field-"+e.rule.field]),r||(r=n.$scopedSlots["type-"+we(e.type)]||n.$scopedSlots["type-"+e.type]),r||t(n.$pfc)}}(this.vm)},render:function(){var e=this;if(this.vm.isShow){var t;this.$h=this.vm.$createElement,this.$manager.beforeRender();var n=function(){return e.renderList()};return n.renderSlot=function(t){return e.renderList(t)},n.renderName=function(t){return e.renderId(t)},n.renderField=function(t){return e.renderId(t,"field")},t=this.vm.$scopedSlots.container?[this.vm.$scopedSlots.container(n)]:n(),this.$manager.render(t)}},renderList:function(e){var t=this;return this.sort.map(function(n){return e?t.renderSlot(t.$handle.ctxs[n],e):t.renderCtx(t.$handle.ctxs[n])}).filter(function(e){return void 0!==e})},makeVm:function(e){var t=this,n=e.vm;return n?_.Function(n)?he(function(){return e.vm(t.$handle.getInjectData(e))}):n._isVue?n:new ze(n):new ze},mergeGlobal:function(e){var t=this.$handle.options.global;t&&(e.cacheConfig||(e.cacheConfig=t[e.originType]||t[e.type]||t[e.trueType]||{}),e.prop=fe({},[t["*"],e.cacheConfig,e.prop]))},setOptions:function(e){e.prop.optionsTo&&e.prop.options&&je(e.prop,e.prop.optionsTo,e.prop.options)},deepSet:function(e){var t=e.rule.deep;t&&Object.keys(t).sort(function(e,t){return e.length<t.length?-1:1}).forEach(function(n){je(e.prop,n,t[n])})},setTempProps:function(e,t){if(e.$props){var n=t.prop,r=Object.keys(e.$props),i=this.injectProp(t),o=Object.keys(i);r.forEach(function(t){k(n.props,t)?e.$props[t]=n.props[t]:o.indexOf(t)>-1&&(e.$props[t]=i[t])});var a=e.$options.model&&e.$options.model.prop||"value";r.indexOf(a)>-1&&(e.$props[a]=n.value)}},renderTemp:function(e){var t=this;if(!ze.compile)return function(e,t){console.warn(z("tip",e,t))}("当前使用的Vue构建版本不支持compile,无法使用template功能"),[];var n=e.prop,r=e.id,i=e.key;if(!this.tempList[r]){e.el||(e.el=this.makeVm(n),this.vm.$nextTick(function(){return e.parser.mounted(e)}));var o=e.el;e.input&&o.$on(o.$options.model&&o.$options.model.event||"input",function(n){t.onInput(e,n)}),this.tempList[r]={vm:o,template:ze.compile(n.template)}}var a=this.tempList[r],u=a.vm,c=a.template;this.setTempProps(u,e);var s=c.render.call(u);return _.Undef(s.data)&&(s.data={}),s.key=i,s.data.ref=e.ref,s.data.key=i,s},parseSide:function(e,t){return _.Object(e)?fe({props:{formCreateInject:t.prop.props.formCreateInject}},e):e},renderSides:function(e,t,n){var r=t[n?"rule":"prop"];return[this.renderRule(this.parseSide(r.prefix,t)),e,this.renderRule(this.parseSide(r.suffix,t))]},renderSlot:function(e,t){return e.rule.slot===t?this.renderCtx(e):void 0},renderId:function(e,t){var n=this,r=this.$handle["field"===t?"fieldCtx":"nameCtx"][e];return r?r.map(function(e){return n.renderCtx(e,e.parent)}):void 0},renderCtx:function(e,t){if("hidden"!==e.type){var n=e.rule;if(!this.cache[e.id]||this.cache[e.id].slot!==n.slot){var r,i=!1!==n.cache,o=e.trueType,a=!(_.Undef(n.display)||n.display);if("template"!==o||n.template)if("fcFragment"===o)r=this.renderChildren(e);else{e.initProp(),this.mergeGlobal(e),this.$manager.tidyRule(e),this.deepSet(e),this.setOptions(e),this.ctxProp(e);var u=e.prop;u.preview=!!(k(u,"preview")?u.preview:this.options.preview),u.props.formCreateInject=this.injectProp(e);var c=u.preview;if(u.hidden)return void this.setCache(e,void 0,t);if("template"===o&&u.template)r=this.renderTemp(e),i=!1;else{var s=[];e.parser.renderChildren?s=e.parser.renderChildren(e):!1!==e.parser.loadChildren&&(s=this.renderChildren(e));var f=this.getTypeSlot(e);r=f?f({rule:n,prop:u,preview:c,children:s,api:this.$handle.api,model:u.model||{}}):c?e.parser.preview(s,e):e.parser.render(s,e)}r=this.renderSides(r,e),!e.input&&_.Undef(u.native)||!0===u.native||(r=this.$manager.makeWrap(e,r)),a&&(r=this.display(r)),r=this.item(e,r)}else r=this.renderSides(this.renderChildren(e),e,!0),a&&this.display(r),r=this.item(e,r);return i&&this.setCache(e,r,t),r}return this.getCache(e)}},display:function(e){var t=this;if(Array.isArray(e)){var n=[];return e.forEach(function(e){if(Array.isArray(e))return t.display(e);t.none(e)&&n.push(e)}),n}return this.none(e)},none:function(e){if(e&&e.data)return Array.isArray(e.data.style)?e.data.style.push({display:"none"}):_.String(e.data.style)?e.data.style+=";display:none;":e.data.style=[e.data.style,{display:"none"}],e},item:function(e,t){return this.$h("fcFragment",{slot:e.rule.slot,key:e.key},[t])},injectProp:function(e){var t=this;this.vm.ctxInject[e.id]||$(this.vm.ctxInject,e.id,{api:this.$handle.api,form:this.fc.create,subForm:function(n){t.$handle.addSubForm(e,n)},getSubForm:function(){return t.$handle.subForm[e.id]},options:[],children:[],prop:{},preview:!1,field:e.field,rule:e.rule,input:e.input});var n,r=this.vm.ctxInject[e.id];return I(r,{preview:e.prop.preview,options:e.prop.options,children:e.rule.children,prop:(n=d({},e.prop),n.on=n.on?d({},n.on):{},delete n.model,n)}),r},ctxProp:function(e,t){var n=this,r=e.ref,i=e.key,o=e.rule;this.$manager.mergeProp(e,t),e.parser.mergeProp(e,t);var a=[{ref:r,key:o.key||"".concat(i,"fc"),slot:void 0,on:{"hook:mounted":function(){n.onMounted(e)},"fc.sub-form":function(t){n.$handle.addSubForm(e,t)},"fc.el":function(t){e.exportEl=t,t&&((t.$el||t).__rule__=e.rule)}}}];return!t&&e.input&&(e.prop.model={value:this.$handle.getFormData(e),callback:function(t){n.onInput(e,t)},expression:"formData.".concat(e.id)}),J(a,e.prop),e.prop},onMounted:function(e){e.el=this.vm.$refs[e.ref],e.el&&((e.el.$el||e.el).__rule__=e.rule),e.parser.mounted(e),this.$handle.effect(e,"mounted")},onInput:function(e,t){this.$handle.onInput(e,t)},renderChildren:function(e){var t=this,n=e.rule.children,r=this.orgChildren[e.id],i=function(e){return!_.String(e)&&e.__fc__&&!t.$handle.ctxs[e.__fc__.id]};return!_.trueArray(n)&&r?(this.$handle.deferSyncValue(function(){r.forEach(function(e){e&&i(e)&&t.$handle.rmCtx(e.__fc__)})}),this.orgChildren[e.id]=[],[]):(r&&this.$handle.deferSyncValue(function(){r.forEach(function(e){e&&-1===n.indexOf(e)&&i(e)&&t.$handle.rmCtx(e.__fc__)})}),n.map(function(r){if(r)return _.String(r)?r:r.__fc__?t.renderCtx(r.__fc__,e):void(r.type&&t.vm.$nextTick(function(){t.$handle.loadChildren(n,e),t.$handle.refresh()}))}))},defaultRender:function(e,t){var n=e.prop;return n.component?this.vNode.makeComponent(n.component,n,t):this.vNode[e.type]?this.vNode[e.type](n,t):this.vNode[e.originType]?this.vNode[e.originType](n,t):this.vNode.make(Oe(e.originType),n,t)},renderRule:function(e,t,n){var r=this;if(e){if(_.String(e))return e;var i;if(n)i=e.type;else if(i=e.is,e.type){i=ke(e.type);var o=this.vNode.aliasMap[i];o&&(i=ke(o))}if(i){var a=[[t]];return _.trueArray(e.children)&&a.push(e.children.map(function(e){return r.renderRule(e)})),this.$h(i,d({},e),a)}}}})}(Ee);var Fe=["hook:updated","hook:mounted"];function Re(e,t,n){var r,i=Se();I(this,{id:i,ref:i,wrapRef:i+"fi",rule:t,origin:t.__origin__||t,name:t.name,watch:[],linkOn:[],root:[],ctrlRule:[],parent:null,cacheConfig:null,prop:d({},t),computed:{},payload:{},input:!!t.field,el:void 0,exportEl:void 0,defaultValue:t.field?w(n):void 0,field:t.field||void 0}),this.updateType(),this.updateKey(),r=this,Object.defineProperties(r.origin,{__fc__:ue(r,!0)}),this.update(e,!0)}I(Re.prototype,{effectData:function(e){return this.payload[e]||(this.payload[e]={}),this.payload[e]},clearEffectData:function(e){void 0===e?this.payload={}:delete this.payload[e]},updateKey:function(e){this.key=Se(),e&&this.parent&&this.parent.updateKey(e)},updateType:function(){this.originType=this.rule.type,this.type=ke(this.rule.type)},setParser:function(e){this.parser=e,e.init(this)},initProp:function(){var e=this,t=d({},this.rule);delete t.children,this.prop=fe({},[t].concat(y(Object.keys(this.payload).map(function(t){return e.payload[t]})),[this.computed]))},check:function(e){return this.vm===e.vm},unwatch:function(){this.watch.forEach(function(e){return e()}),this.watch=[]},unlink:function(){this.linkOn.forEach(function(e){return e()}),this.linkOn=[]},link:function(){this.unlink(),this.$handle.appendLink(this)},watchTo:function(){this.$handle.watchCtx(this)},delete:function(){this.unwatch(),this.unlink(),this.rmCtrl(),I(this,{deleted:!0,prop:d({},this.rule),computed:{},el:void 0,$handle:void 0,$render:void 0,$api:void 0,vm:void 0,vNode:void 0,parent:null,cacheConfig:null})},rmCtrl:function(){this.ctrlRule.forEach(function(e){return e.__fc__&&e.__fc__.rm()}),this.ctrlRule=[]},rm:function(){var e=this,t=function(){var t=e.root.indexOf(e.origin);t>-1&&(e.root.splice(t,1),e.$handle&&e.$handle.refresh())};this.deleted?t():this.$handle.noWatch(function(){e.$handle.deferSyncValue(function(){e.rmCtrl(),t(),e.$handle.rmCtx(e),I(e,{root:[]})},e.input)})},update:function(e,t){I(this,{deleted:!1,$handle:e,$render:e.$render,$api:e.api,vm:e.vm,trueType:e.getType(this.originType),vNode:e.$render.vNode,updated:!1,cacheValue:this.rule.value}),!t&&this.unwatch(),this.watchTo(),this.link()}});var Ae={"==":function(e){return function(t){return t===e}},"!=":function(e){return function(t){return t!==e}},"<>":function(e){return function(t){return t!==e}},">":function(e){return function(t){return t>e}},">=":function(e){return function(t){return t>=e}},"<":function(e){return function(t){return t<e}},"<=":function(e){return function(t){return t<=e}},in:function(e){return function(t){return e&&e.indexOf&&e.indexOf(t)>-1}},on:function(e){return function(t){return t&&t.indexOf&&t.indexOf(e)>-1}},notIn:function(e){return function(t){return!Ae.in(e)(t)}},notOn:function(e){return function(t){return!Ae.on(e)(t)}},between:function(e){return function(t){return t>e[0]&&t<e[1]}},notBetween:function(e){return function(t){return t<e[0]||t>e[1]}}};function Ve(e,t){for(var n=0;n<e.ctrlRule.length;n++){var r=e.ctrlRule[n];if(r.children===t)return r}}function Ie(e){return!!e.rule.__ctrl}function Pe(e,t){return"function"==typeof t?""+t:t}function De(e){Object.keys(e).forEach(function(t){return delete e[t]})}var Te={init:function(e){},toFormValue:function(e,t){return e},toValue:function(e,t){return e},mounted:function(e){},render:function(e,t){return t.$render.defaultRender(t,e)},preview:function(e,t){return this.render(e,t)},mergeProp:function(e){}},Be=["field","value","vm","template","name","config","control","inject","sync","payload","optionsTo","update","component","cache"];function Ne(e){var t=this;I(this,{fc:e,vm:e.vm,watching:!1,loading:!1,reloading:!1,noWatchFn:null,deferSyncFn:null,isMounted:!1,formData:{},subForm:{},form:{},appendData:{},providers:{},cycleLoad:null,loadedId:1,nextTick:null,changeStatus:!1,pageEnd:!0,nextReload:function(){t.lifecycle("reload")}}),de(this,{options:function(){return e.options},bus:function(){return e.bus}}),this.initData(e.rules),this.$manager=new e.manager(this),this.$render=new Ee(this),this.api=e.extendApi(function(e){function t(t){return _.Undef(t)?t=e.fields():Array.isArray(t)||(t=[t]),t}function n(n,r,i){t(n).forEach(function(t){e.getCtxs(t).forEach(function(t){$(t.rule,r,i),e.$render.clearCache(t)})})}function r(){var t=e.subForm;return Object.keys(t).reduce(function(e,n){var r=t[n];return r?(Array.isArray(r)?e.push.apply(e,y(r)):e.push(r),e):e},[])}var i={get config(){return e.options},get options(){return e.options},get form(){return e.form},get rule(){return e.rules},get parent(){return e.vm.$pfc&&e.vm.$pfc.$f},get children(){return r()},formData:function(n){return t(n).reduce(function(t,n){var r=e.getFieldCtx(n);return r?(t[r.field]=_e(r.rule.value),t):t},e.options.appendValue?_e(e.appendData):{})},getValue:function(t){var n=e.getFieldCtx(t);if(n)return _e(n.rule.value)},coverValue:function(t){var n=d({},t||{});e.deferSyncValue(function(){i.fields().forEach(function(t){var r=e.fieldCtx[t];if(r){var i=k(n,t);r.forEach(function(e){e.rule.value=i?n[t]:void 0}),delete n[t]}}),I(e.appendData,n)})},setValue:function(t){var n=t;arguments.length>=2&&(n=f({},t,arguments[1])),e.deferSyncValue(function(){Object.keys(n).forEach(function(t){var r=e.fieldCtx[t];if(!r)return e.appendData[t]=n[t];r.forEach(function(e){e.rule.value=n[t]})})})},removeField:function(t){var n=e.getCtx(t);return e.deferSyncValue(function(){e.getCtxs(t).forEach(function(e){e.rm()})},!0),n?n.origin:void 0},removeRule:function(e){var t=e&&pe(e);if(t)return t.rm(),t.origin},destroy:function(){e.vm.$el.parentNode&&e.vm.$el.parentNode.removeChild(e.vm.$el),e.vm.$destroy()},fields:function(){return e.fields()},append:function(t,n,r){var i,o=e.sort.length-1,a=e.getCtx(n);a?r?(i=a.rule.children,o=a.rule.children.length-1):(o=a.root.indexOf(a.origin),i=a.root):i=e.rules,i.splice(o+1,0,t)},prepend:function(t,n,r){var i,o=0,a=e.getCtx(n);a?r?i=a.rule.children:(o=a.root.indexOf(a.origin),i=a.root):i=e.rules,i.splice(o,0,t)},hidden:function(t,r){n(r,"hidden",!!t),e.refresh()},hiddenStatus:function(t){var n=e.getCtx(t);if(n)return!!n.rule.hidden},display:function(t,r){n(r,"display",!!t),e.refresh()},displayStatus:function(t){var n=e.getCtx(t);if(n)return!!n.rule.display},disabled:function(n,r){t(r).forEach(function(t){e.getCtxs(t).forEach(function(e){e.rule.props&&$(e.rule.props,"disabled",!!n)})}),e.refresh()},all:function(t){return Object.keys(e.ctxs).map(function(n){var r=e.ctxs[n];return t?r.origin:r.rule})},model:function(t){return e.fields().reduce(function(n,r){var i=e.fieldCtx[r][0];return n[r]=t?i.origin:i.rule,n},{})},component:function(t){return Object.keys(e.nameCtx).reduce(function(n,r){var i=e.nameCtx[r].map(function(e){return t?e.origin:e.rule});return n[r]=1===i.length?i[0]:i,n},{})},bind:function(){return i.form},reload:function(t){e.reloadRule(t)},updateOptions:function(t){e.fc.updateOptions(t),i.refresh()},onSubmit:function(e){i.updateOptions({onSubmit:e})},sync:function(t){if(Array.isArray(t))t.forEach(function(e){return i.sync(e)});else{var n=_.Object(t)?pe(t):e.getCtxs(t);n&&((n=Array.isArray(n)?n:[n]).forEach(function(t){if(!t.deleted){var n=e.subForm[t.id];n&&(Array.isArray(n)?n.forEach(function(e){e.refresh()}):n&&n.refresh()),e.$render.clearCache(t)}}),e.refresh())}},refresh:function(){r().forEach(function(e){e.refresh()}),e.$render.clearCacheAll(),e.refresh()},refreshOptions:function(){e.$manager.updateOptions(e.options),i.refresh()},hideForm:function(t){$(e.vm,"isShow",!t)},changeStatus:function(){return e.changeStatus},clearChangeStatus:function(){e.changeStatus=!1},updateRule:function(t,n){e.getCtxs(t).forEach(function(e){I(e.rule,n)})},updateRules:function(e){Object.keys(e).forEach(function(t){i.updateRule(t,e[t])})},mergeRule:function(t,n){e.getCtxs(t).forEach(function(e){fe(e.rule,n)})},mergeRules:function(e){Object.keys(e).forEach(function(t){i.mergeRule(t,e[t])})},getRule:function(t,n){var r=e.getCtx(t);if(r)return n?r.origin:r.rule},setEffect:function(t,n,r){var i=e.getCtx(t);i&&n&&("$"===n[0]&&(n=n.substr(1)),k(i.rule,"$"+n)&&$(i.rule,"$"+n,r),k(i.rule,"effect")||$(i.rule,"effect",{}),$(i.rule.effect,n,r))},clearEffectData:function(t,n){var r=e.getCtx(t);r&&(n&&"$"===n[0]&&(n=n.substr(1)),r.clearEffectData(n),i.sync(t))},updateValidate:function(e,t,r){r?i.mergeRule(e,{validate:t}):n(e,"validate",t)},updateValidates:function(e,t){Object.keys(e).forEach(function(n){i.updateValidate(n,e[n],t)})},refreshValidate:function(){e.vm.validate={},i.refresh()},resetFields:function(n){t(n).forEach(function(t){e.getCtxs(t).forEach(function(t){e.$render.clearCache(t),t.rule.value=_e(t.defaultValue)})})},method:function(e,t){var n=i.el(e);if(!n||!n[t])throw new Error(z("err","".concat(t,"方法不存在")));return function(){return n[t].apply(n,arguments)}},exec:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return he(function(){return i.method(e,t).apply(void 0,r)})},toJson:function(e){return re(i.rule,e)},trigger:function(e,t){for(var n=i.el(e),r=arguments.length,o=new Array(r>2?r-2:0),a=2;a<r;a++)o[a-2]=arguments[a];n&&n.$emit.apply(n,[t].concat(o))},el:function(t){var n=e.getCtx(t);if(n)return n.exportEl||n.el||e.vm.$refs[n.ref]},closeModal:function(e){var t=i.el(e);t&&t.$emit&&t.$emit("close-modal")},getSubForm:function(t){var n=e.getCtx(t);return n?e.subForm[n.id]:void 0},nextTick:function(t){e.bus.$once("next-tick",t),e.refresh()},nextRefresh:function(t){e.nextRefresh(),t&&he(t)},emit:function(t){for(var n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];(n=e.vm).$emit.apply(n,[t].concat(i))},deferSyncValue:function(t,n){e.deferSyncValue(t,n)},helper:{tidyFields:t,props:n}};return["on","once","off","set"].forEach(function(t){i[t]=function(){var n;(n=e.vm)["$".concat(t)].apply(n,arguments)}}),i.changeValue=i.changeField=i.setValue,i}(this),this)}function Le(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}function Me(e){if("undefined"!=typeof XMLHttpRequest){var t,n=new XMLHttpRequest,r=e.action;n.onerror=function(t){e.onError(t)},n.onload=function(){if(n.status<200||n.status>=300)return e.onError(function(e,t,n){var r="fail to ".concat(e," ").concat(n.status,"'"),i=new Error(r);return i.status=n.status,i.url=e,i}(r,0,n),Le(n));e.onSuccess(Le(n))},n.open(e.method||"get",r,!0),e.data&&("json"!==(e.dataType||"").toLowerCase()?(t=new FormData,Object.keys(e.data).map(function(n){t.append(n,e.data[n])})):(t=JSON.stringify(e.data),n.setRequestHeader("content-type","application/json"))),e.withCredentials&&"withCredentials"in n&&(n.withCredentials=!0);var i=e.headers||{};Object.keys(