UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

1 lines 12 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_utils=require("../../tools/utils"),_dom=_interopRequireWildcard(require("../../tools/dom")),_util=require("./util"),_log=require("../../tools/log"),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_index=_interopRequireDefault(require("../../loading/index")),_vn=require("../../tools/vn");function _getRequireWildcardCache(e){var t,i;return"function"!=typeof WeakMap?null:(t=new WeakMap,i=new WeakMap,(_getRequireWildcardCache=function(e){return e?i:t})(e))}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var i,r,n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&((r=o?Object.getOwnPropertyDescriptor(e,i):null)&&(r.get||r.set)?Object.defineProperty(n,i,r):n[i]=e[i]);return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _typeof(e){return(_typeof="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 _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey(r.key),r)}}function _createClass(e,t,i){return t&&_defineProperties(e.prototype,t),i&&_defineProperties(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!==_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}var Rule=function(){function t(e){_classCallCheck(this,t),Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return _createClass(t,[{key:"content",get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}},{key:"message",get:function(){return this.content}}]),t}();function validErrorRuleValue(e,t){var i=e.type,r=e.min,n=e.max,e=e.pattern,i="number"===i,o=i?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!i||!isNaN(t))||!_xeUtils.default.eqNull(r)&&o<_xeUtils.default.toNumber(r)||!_xeUtils.default.eqNull(n)&&o>_xeUtils.default.toNumber(n)||!(!e||(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}function getResetValue(e,t){return t=_xeUtils.default.isArray(e)?[]:t}var _default2={name:"VxeForm",mixins:[_size.default],props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:function(){return _conf.default.form.size||_conf.default.size}},span:{type:[String,Number],default:function(){return _conf.default.form.span}},align:{type:String,default:function(){return _conf.default.form.align}},titleAlign:{type:String,default:function(){return _conf.default.form.titleAlign}},titleWidth:{type:[String,Number],default:function(){return _conf.default.form.titleWidth}},titleColon:{type:Boolean,default:function(){return _conf.default.form.titleColon}},titleAsterisk:{type:Boolean,default:function(){return _conf.default.form.titleAsterisk}},titleOverflow:{type:[Boolean,String],default:null},className:[String,Function],readonly:Boolean,items:Array,rules:Object,preventSubmit:{type:Boolean,default:function(){return _conf.default.form.preventSubmit}},validConfig:Object,tooltipConfig:Object,customLayout:{type:Boolean,default:function(){return _conf.default.form.customLayout}}},inject:{$xegrid:{default:null}},data:function(){return{collapseAll:this.collapseStatus,staticItems:[],formItems:[],tooltipTimeout:null,tooltipStore:{item:null,visible:!1}}},provide:function(){return{$xeform:this,$xeformgather:null,$xeformitem:null,$xeformiteminfo:null}},computed:{xegrid:function(){return this.$xegrid},validOpts:function(){return Object.assign({},_conf.default.form.validConfig,this.validConfig)},tooltipOpts:function(){return Object.assign({},_conf.default.tooltip,_conf.default.form.tooltipConfig,this.tooltipConfig)}},watch:{staticItems:function(e){this.formItems=e},items:function(e){this.loadItem(e)},collapseStatus:function(e){this.collapseAll=!!e}},created:function(){var t=this;this.$nextTick(function(){var e=t.items;"development"===process.env.NODE_ENV&&t.customLayout&&t.items&&(0,_log.errLog)("vxe.error.errConflicts",["custom-layout","items"]),e&&t.loadItem(e)})},render:function(i){var e=this._e,t=this.loading,r=this.className,n=this.data,o=this.vSize,l=this.tooltipOpts,a=this.formItems,u=this.customLayout,s=_vXETable.default._tooltip,c=this.$scopedSlots.default;return i("form",{class:["vxe-form",r?_xeUtils.default.isFunction(r)?r({items:a,data:n,$form:this}):r:"",(_defineProperty(n={},"size--".concat(o),o),_defineProperty(n,"is--loading",t),n)],on:{submit:this.submitEvent,reset:this.resetEvent}},[i("div",{class:"vxe-form--wrapper vxe-row"},u?c?c.call(this,i,{}):[]:a.map(function(e,t){return i(_formConfigItem.default,{key:t,props:{itemConfig:e}})})),i("div",{class:"vxe-form-slots",ref:"hideItem"},!u&&c?c.call(this,i,{}):[]),i(_index.default,{class:"vxe-form--loading",props:{value:t}}),s?i("vxe-tooltip",{ref:"tooltip",props:l}):e()])},methods:{dispatchEvent:function(e,t,i){this.$emit(e,Object.assign({$form:this,$grid:this.xegrid,$event:i},t))},callSlot:function(e,t,i){if(e){var r=this.$scopedSlots;if(_xeUtils.default.isString(e)&&(e=r[e]||null),_xeUtils.default.isFunction(e))return(0,_vn.getSlotVNs)(e.call(this,t,i))}return[]},loadItem:function(e){var t,i=this;return"development"===process.env.NODE_ENV&&(t=this.$scopedSlots,e.forEach(function(e){e.slots&&_xeUtils.default.each(e.slots,function(e){_xeUtils.default.isFunction(e)||t[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})})),this.staticItems=_xeUtils.default.mapTree(e,function(e){return(0,_util.createItem)(i,e)},{children:"children"}),this.$nextTick()},getItems:function(){var t=[];return _xeUtils.default.eachTree(this.formItems,function(e){t.push(e)},{children:"children"}),t},getItemByField:function(t){var e=_xeUtils.default.findTree(this.formItems,function(e){return e.field===t},{children:"children"});return e?e.item:null},toggleCollapse:function(){var e=!this.collapseAll;return this.collapseAll=e,this.$emit("update:collapseStatus",e),this.$nextTick()},toggleCollapseEvent:function(e){this.toggleCollapse();var t=this.collapseAll;this.dispatchEvent("toggle-collapse",{status:t,collapse:t,data:this.data},e),this.dispatchEvent("collapse",{status:t,collapse:t,data:this.data},e)},submitEvent:function(t){var i=this;t.preventDefault(),this.preventSubmit||(this.clearValidate(),this.beginValidate(this.getItems()).then(function(e){e?i.dispatchEvent("submit-invalid",{data:i.data,errMap:e},t):i.dispatchEvent("submit",{data:i.data},t)}))},reset:function(){var n=this,o=this.data;return o&&this.getItems().forEach(function(e){var t=e.field,i=e.resetValue,r=e.itemRender;(0,_utils.isEnableConf)(r)&&((r=_vXETable.default.renderer.get(r.name))&&r.itemResetMethod?r.itemResetMethod({data:o,field:t,property:t,item:e,$form:n,$grid:n.xegrid}):t&&_xeUtils.default.set(o,t,null===i?getResetValue(_xeUtils.default.get(o,t),void 0):_xeUtils.default.clone(i,!0)))}),this.clearValidate()},resetEvent:function(e){e.preventDefault(),this.reset(),this.dispatchEvent("reset",{data:this.data},e)},closeTooltip:function(){var e=this.tooltipStore,t=this.$refs.tooltip;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t)&&t.close(),this.$nextTick()},triggerTitleTipEvent:function(e,t){var t=t.item,i=this.tooltipStore,r=this.$refs.tooltip,e=e.currentTarget.children[0],n=(e.textContent||"").trim(),o=e.scrollWidth>e.clientWidth;clearTimeout(this.tooltipTimeout),i.item!==t&&this.closeTooltip(),n&&o&&(Object.assign(i,{item:t,visible:!0}),r)&&r.open(e,n)},handleTitleTipLeaveEvent:function(){var e=this,t=this.tooltipOpts,i=this.$refs.tooltip;i&&i.setActived(!1),t.enterable?this.tooltipTimeout=setTimeout(function(){(i=e.$refs.tooltip)&&!i.isActived()&&e.closeTooltip()},t.leaveDelay):this.closeTooltip()},clearValidate:function(e){return e?(e=(0,_util.handleFieldOrItem)(this,e))&&(e.showError=!1):this.getItems().forEach(function(e){e.showError=!1}),this.$nextTick()},validate:function(e){return this.clearValidate(),this.beginValidate(this.getItems(),"",e)},validateField:function(e,t){e=(0,_util.handleFieldOrItem)(this,e);return this.beginValidate(e?[e]:[],"",t)},beginValidate:function(t,e,i){var n=this,o=this.data,r=this.rules,l=this.validOpts,a={},u=[],s=[];return clearTimeout(this.showErrTime),o&&r?(t.forEach(function(i){var r=i.field;r&&!(0,_util.isHiddenItem)(n,i)&&(0,_util.isActivetem)(n,i)&&s.push(n.validItemRules(e||"all",r).then(function(){i.errRule=null}).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,data:o,field:r,property:r,$form:n};return a[r]||(a[r]=[]),a[r].push(e),u.push(r),i.errRule=t,Promise.reject(e)}))}),Promise.all(s).then(function(){i&&i()}).catch(function(){return new Promise(function(e){n.showErrTime=setTimeout(function(){t.forEach(function(e){e.errRule&&(e.showError=!0)})},20),l.autoPos&&n.$nextTick(function(){n.handleFocus(u)}),i?(i(a),e()):e(a)})})):(i&&i(),Promise.resolve())},validItemRules:function(o,l,e){var a,u,s=this,c=this.data,t=this.rules,f=[],d=[];return l&&t&&(a=_xeUtils.default.get(t,l))&&(u=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(c,l):e,a.forEach(function(t){var e,i=t.type,r=t.trigger,n=t.required;"all"!==o&&r&&o!==t.trigger||(_xeUtils.default.isFunction(t.validator)?(e=t.validator({itemValue:u,rule:t,rules:a,data:c,field:l,property:l,$form:s}))&&(_xeUtils.default.isError(e)?f.push(new Rule({type:"custom",trigger:r,content:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(function(e){f.push(new Rule({type:"custom",trigger:r,content:e?e.message:t.content||t.message,rule:new Rule(t)}))}))):(e="array"===i||_xeUtils.default.isArray(u)?!_xeUtils.default.isArray(u)||!u.length:(0,_utils.eqEmptyValue)(u),(n?e||validErrorRuleValue(t,u):!e&&validErrorRuleValue(t,u))&&f.push(new Rule(t))))})),Promise.all(d).then(function(){if(f.length)return Promise.reject({rules:f,rule:f[0]})})},handleFocus:function(e){for(var t=this.$el,i=0;i<e.length;i++){var r=e[i],r=this.getItemByField(r);if(r&&(0,_utils.isEnableConf)(r.itemRender)){var n=r.itemRender,o=_vXETable.default.renderer.get(n.name),l=void 0;if(i||_dom.default.scrollToView(t.querySelector(".".concat(r.id))),l=!(l=n.autofocus?t.querySelector(".".concat(r.id," ").concat(n.autofocus)):l)&&o&&o.autofocus?t.querySelector(".".concat(r.id," ").concat(o.autofocus)):l){l.focus(),_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select());break}}}},triggerItemEvent:function(e,i,t){var r=this;return i?this.validItemRules(e?["blur"].includes(e.type)?"blur":"change":"all",i,t).then(function(){r.clearValidate(i)}).catch(function(e){var e=e.rule,t=r.getItemByField(i);t&&(t.showError=!0,t.errRule=e)}):this.$nextTick()},updateStatus:function(e,t){e=e.field;return this.triggerItemEvent(new Event("change"),e,t)}}};exports.default=_default2;