yw-common-list
Version:
基于vxe-table封装的自定义可配置表格
1 lines • 4.74 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var autoTxtElem,_xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size")),_utils=require("../../tools/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeTextarea",mixins:[_size.default],model:{prop:"value",event:"modelValue"},props:{value:[String,Number],immediate:{type:Boolean,default:!0},name:String,readonly:Boolean,disabled:Boolean,placeholder:String,maxlength:[String,Number],rows:{type:[String,Number],default:2},cols:{type:[String,Number],default:null},showWordCount:Boolean,countMethod:Function,autosize:[Boolean,Object],form:String,resize:{type:String,default:function(){return _conf.default.textarea.resize}},className:String,size:{type:String,default:function(){return _conf.default.textarea.size||_conf.default.size}}},inject:{$xeform:{default:null},$xeformiteminfo:{default:null}},data:function(){return{inputValue:this.value}},computed:{inputCount:function(){return _xeUtils.default.getSize(this.inputValue)},isCountError:function(){return this.maxlength&&this.inputCount>_xeUtils.default.toNumber(this.maxlength)},defaultEvents:function(){var i=this,n={};return _xeUtils.default.each(this.$listeners,function(e,t){-1===["input","change","blur"].indexOf(t)&&(n[t]=i.triggerEvent)}),n.input=this.inputEvent,n.change=this.changeEvent,n.blur=this.blurEvent,n},sizeOpts:function(){return Object.assign({minRows:1,maxRows:10},_conf.default.textarea.autosize,this.autosize)}},watch:{value:function(e){this.inputValue=e,this.updateAutoTxt()}},mounted:function(){this.autosize&&(this.updateAutoTxt(),this.handleResize())},render:function(e){var t=this.className,i=this.defaultEvents,n=this.inputValue,a=this.vSize,u=this.name,r=this.form,s=this.resize,o=this.placeholder,l=this.readonly,d=this.disabled,h=this.maxlength,f=this.autosize,c=this.showWordCount,m=this.countMethod,p=this.rows,x=this.cols,u={name:u,form:r,placeholder:o,maxlength:h,readonly:l,disabled:d,rows:p,cols:x};return o&&(u.placeholder=(0,_utils.getFuncText)(o)),e("div",{class:["vxe-textarea",t,(_defineProperty(r={},"size--".concat(a),a),_defineProperty(r,"is--autosize",f),_defineProperty(r,"is--disabled",d),_defineProperty(r,"def--rows",!_xeUtils.default.eqNull(p)),_defineProperty(r,"def--cols",!_xeUtils.default.eqNull(x)),r)]},[e("textarea",{ref:"textarea",class:"vxe-textarea--inner",domProps:{value:n},attrs:u,style:s?{resize:s}:null,on:i}),c?e("span",{class:["vxe-textarea--count",{"is--error":this.isCountError}]},m?"".concat(m({value:n})):"".concat(this.inputCount).concat(h?"/".concat(h):"")):null])},methods:{focus:function(){return this.$refs.textarea.focus(),this.$nextTick()},blur:function(){return this.$refs.textarea.blur(),this.$nextTick()},triggerEvent:function(e){var t=this.inputValue;this.$emit(e.type,{value:t,$event:e})},emitUpdate:function(e,t){this.inputValue=e,this.$emit("modelValue",e),this.value!==e&&(this.$emit("change",{value:e,$event:t}),this.$xeform&&this.$xeformiteminfo&&this.$xeform.triggerItemEvent(t,this.$xeformiteminfo.itemConfig.field,e))},inputEvent:function(e){var t=this.immediate,i=e.target.value;this.inputValue=i,t&&this.emitUpdate(i,e),this.handleResize(),this.triggerEvent(e)},changeEvent:function(e){this.immediate?this.triggerEvent(e):this.emitUpdate(this.inputValue,e)},blurEvent:function(e){var t=this.inputValue;this.immediate||this.emitUpdate(t,e),this.$emit("blur",{value:t,$event:e})},updateAutoTxt:function(){var e,t=this.$refs,i=this.inputValue,n=this.size;this.autosize&&((autoTxtElem=autoTxtElem||document.createElement("div")).parentNode||document.body.appendChild(autoTxtElem),t=t.textarea,e=getComputedStyle(t),autoTxtElem.className=["vxe-textarea--autosize",n?"size--".concat(n):""].join(" "),autoTxtElem.style.width="".concat(t.clientWidth,"px"),autoTxtElem.style.padding=e.padding,autoTxtElem.innerHTML=(""+(i||" ")).replace(/\n$/,"\n "))},handleResize:function(){var s=this;this.autosize&&this.$nextTick(function(){var e=s.$refs,t=s.sizeOpts,i=t.minRows,t=t.maxRows,e=e.textarea,n=autoTxtElem.clientHeight,a=getComputedStyle(e),u=_xeUtils.default.toNumber(a.lineHeight),a=_xeUtils.default.toNumber(a.paddingTop)+_xeUtils.default.toNumber(a.paddingBottom)+_xeUtils.default.toNumber(a.borderTopWidth)+_xeUtils.default.toNumber(a.borderBottomWidth),n=(n-a)/u,n=n&&/[0-9]/.test(n)?n:Math.floor(n)+1,r=n;n<i?r=i:t<n&&(r=t),e.style.height="".concat(r*u+a,"px")})}}};exports.default=_default2;