index.js 10 KB

12345678
  1. /*!
  2. * @form-create/component-ivu-frame v2.5.27
  3. * (c) 2018-2022 xaboy
  4. * Github https://github.com/xaboy/form-create with @form-create/component-ivu-frame
  5. * Released under the MIT License.
  6. */
  7. !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).FcFrame=t()}(this,function(){"use strict";function e(){return(e=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)}var t=["attrs","props","domProps"],n=["class","style","directives"],i=["on","nativeOn"],o=function(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}},r=function(r){return r.reduce(function(r,a){for(var c in a)if(r[c])if(-1!==t.indexOf(c))r[c]=e({},r[c],a[c]);else if(-1!==n.indexOf(c)){var s=r[c]instanceof Array?r[c]:[r[c]],l=a[c]instanceof Array?a[c]:[a[c]];r[c]=s.concat(l)}else if(-1!==i.indexOf(c))for(var f in a[c])if(r[c][f]){var u=r[c][f]instanceof Array?r[c][f]:[r[c][f]],d=a[c][f]instanceof Array?a[c][f]:[a[c][f]];r[c][f]=u.concat(d)}else r[c][f]=a[c][f];else if("hook"==c)for(var p in a[c])r[c][p]=r[c][p]?o(r[c][p],a[c][p]):a[c][p];else r[c]=a[c];else r[c]=a[c];return r},{})};function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function l(e){return function(e){if(Array.isArray(e))return f(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 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,i=new Array(t);n<t;n++)i[n]=e[n];return i}function u(e){return Array.isArray(e)?e:[null,void 0,""].indexOf(e)>-1?[]:[e]}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}("._fc-frame .fc-upload-btn {\n border: 1px dashed #c0ccda;\n cursor: pointer;\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 .ivu-upload-list {\n margin-top: 0;\n}\n\n._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-btn, ._fc-frame .fc-files {\n display: inline-block;\n width: 58px;\n height: 58px;\n text-align: center;\n line-height: 58px;\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 d="fcFrame";function p(e){return{name:d,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:e.fileUpIcon},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:u(this.value),previewVisible:!1,frameVisible:!1,previewImage:""}},watch:{value:function(e){this.fileList=u(e)},fileList:function(e){var t=1===this.maxLength?e[0]||"":e;this.$emit("input",t),this.$emit("change",t)},src:function(e){this.modalVm&&(this.modalVm.src=e)}},methods:{key:function(e){return e},closeModel:function(e){this.$emit(e?"$close":"$ok"),this.reload&&(this.$off("$ok"),this.$off("$close")),this.frameVisible=!1},showModel: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(),icon:this.icon,readonly:!0,clearable:!1};return t("Input",r([{},{props:n},{},{on:{"on-click":function(){return e.showModel()}}},{key:this.key("input")}]))},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")},l(e))},makeItem:function(e,t){return(0,this.$createElement)("div",{class:"fc-files",key:this.key("file"+e)},l(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 i=[];return("file"!==this.type&&!1!==this.handleIcon||"file"===this.type&&this.handleIcon)&&i.push(this.makeHandleIcon(e,t)),this.allowRemove&&i.push(this.makeRemoveIcon(e,t)),n("div",{class:"fc-upload-cover",key:this.key("uc")},[i])}},makeHandleIcon:function(e,t){var n=this;return(0,this.$createElement)("icon",r([{},{props:{type:!0===this.handleIcon||void 0===this.handleIcon?"ios-eye-outline":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)("icon",r([{},{props:{type:"ios-trash-outline"}},{on:{click:function(){return n.handleRemove(e)}},key:this.key("ri"+t)}]))},makeFiles:function(){var t=this,n=this.$createElement;return this.makeGroup(this.fileList.map(function(i,o){return t.makeItem(o,[n("icon",r([{},{props:{type:e.fileIcon,size:40}},{on:{click:function(){return t.handleClick(i)}}}])),t.makeIcons(i,o)])}))},makeImages:function(){var e=this,t=this.$createElement;return this.makeGroup(this.fileList.map(function(n,i){return e.makeItem(i,[t("img",{attrs:{src:e.getSrc(n)}}),e.makeIcons(n,i)])}))},makeBtn:function(){var e=this,t=this.$createElement;return t("div",{class:"fc-upload-btn",on:{click:function(){return e.showModel()}},key:this.key("btn")},[t("icon",r([{},{props:{type:this.icon,size:20}}]))])},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.closeModel()},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,i=n.okBtnText,o=n.closeBtnText,r=n.closeBtn,a=n.okBtn,c=[];return n.footer?(r&&c.push(t("Button",{on:{click:function(){return!1!==e.onCancel()&&e.closeModel(!0)}}},[o])),a&&c.push(t("Button",{attrs:{type:"primary"},on:{click:function(){return!1!==e.onOk()&&e.closeModel()}}},[i])),c):c}},render:function(){var e,t=this,n=arguments[0],i=this.type;e="input"===i?this.makeInput():"image"===i?this.makeImages():this.makeFiles();var o=this.$props,a=o.width,c=o.height,l=o.src,f=o.title,u=o.modalTitle;return this.$nextTick(function(){t.$refs.frame&&t.frameLoad(t.$refs.frame.contentWindow||{})}),n("div",{class:"_fc-frame"},[e,n("Modal",r([{},{props:{mask:this.previewMask,title:u,footerHide:!0}},{model:{value:t.previewVisible,callback:function(e){t.previewVisible=e}}}]),[n("img",{style:"width: 100%",attrs:{src:this.previewImage}})]),n("Modal",r([{},{props:s({width:a,title:f},this.modal)},{on:{"on-cancel":function(){return t.closeModel(!0)}},model:{value:t.frameVisible,callback:function(e){t.frameVisible=e}}}]),[this.frameVisible||!this.reload?n("iframe",{ref:"frame",attrs:{src:l,frameBorder:"0"},style:{height:c,border:"0 none",width:"100%"}}):null,n("div",{slot:"footer"},[this.makeFooter()])])])},mounted:function(){this.$on("fc.closeModal",this.closeModal)}}}var h=p({fileIcon:"md-document",fileUpIcon:"ios-folder-open"});return h.v2=p({fileIcon:"document-text",fileUpIcon:"folder"}),h});
  8. //# sourceMappingURL=index.js.map