Files
vxe-table/lib/validator/src/methods.min.js
xuliangzhan 40f83e804a update
2019-09-30 13:10:18 +08:00

1 line
5.1 KiB
JavaScript

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,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 r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}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:"message",get:function(){return _tools.UtilTools.getFuncText(this.$options.message)}}]),t}(),_default={_fullValidate:function(e,t){return this.beginValidate(e,t,!0)},_validate:function(e,t){return this.beginValidate(e,t)},handleValidError:function(e){var t=this;this.handleActived(e,{type:"valid-error",trigger:"call"}).then(function(){return t.showValidTooltip(e)})},beginValidate:function(e,n,s){var u=this,c={},o=!0,t=this.editRules,r=this.tableData,i=this.tableFullData,f=this.treeConfig,a=this.scrollYLoad,l=a?i:r;e&&(_xeUtils.default.isFunction(e)?n=e:l=_xeUtils.default.isArray(e)?e:[e]);var d=[];if(this.lastCallTime=Date.now(),this.clearValidate(),t){var h=this.getColumns(),p=function(a){var e=[];h.forEach(function(n,o){_xeUtils.default.has(t,n.property)&&e.push(new Promise(function(i,l){u.validCellRules("all",a,n).then(i).catch(function(e){var t,r=(_defineProperty(t={rule:e.rule,rules:e.rules},"".concat(f?"$":"","rowIndex"),u.getRowIndex(a)),_defineProperty(t,"row",a),_defineProperty(t,"columnIndex",o),_defineProperty(t,"column",n),_defineProperty(t,"$table",u),t);return s?(c[n.property]||(c[n.property]=[]),c[n.property].push(r),i()):l(r)})}))}),d.push(Promise.all(e))};return f?_xeUtils.default.eachTree(l,p,f):l.forEach(p),Promise.all(d).then(function(){var e=Object.keys(c);if(e.length)return Promise.reject(c[e[0]][0]);n&&n(o)}).catch(function(i){var l=s?c:_defineProperty({},i.column.property,i);return new Promise(function(e,t){var r=function(){i.cell=_tools.DomTools.getCell(u,i),u.handleValidError(i),n?e(n(o=!1,l)):t(l)};f?u.scrollToTreeRow(i.row).then(r):a?u.scrollToRow(i.row,!0).then(r):r()})})}return n&&n(o),Promise.resolve(!0)},hasCellRules:function(t,e,r){var i=this.editRules,l=r.property;if(l&&i){var n=_xeUtils.default.get(i,l);return n&&n.find(function(e){return"all"===t||!e.trigger||t===e.trigger})}return!1},validCellRules:function(s,u,c,e){var f=this,t=this.editRules,d=this.treeConfig,r=c.property,h=[],i=[];if(r&&t){var p=_xeUtils.default.get(t,r),g=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(u,r):e;p&&p.forEach(function(a){i.push(new Promise(function(r){var e=!0===a.required;if("all"!==s&&a.trigger&&s!==a.trigger)r();else if(_xeUtils.default.isFunction(a.validator)){var t;a.validator(a,g,function(e){if(_xeUtils.default.isError(e)){var t={type:"custom",trigger:a.trigger,message:e.message,rule:new Rule(a)};h.push(new Rule(t))}return r()},(_defineProperty(t={rules:p,row:u,column:c},"".concat(d?"$":"","rowIndex"),f.getRowIndex(u)),_defineProperty(t,"columnIndex",f.getColumnIndex(c)),t))}else{var i,l=g,n="number"===a.type,o=null==g||""===g;n?l=_xeUtils.default.toNumber(g):i=_xeUtils.default.getSize(l),e&&o?h.push(new Rule(a)):(n&&isNaN(g)||_xeUtils.default.isRegExp(a.pattern)&&!a.pattern.test(g)||_xeUtils.default.isNumber(a.min)&&(n?l<a.min:i<a.min)||_xeUtils.default.isNumber(a.max)&&(n?l>a.max:i>a.max))&&h.push(new Rule(a)),r()}}))})}return Promise.all(i).then(function(){if(h.length){var e={rules:h,rule:h[0]};return Promise.reject(e)}})},_clearValidate:function(){var e=this.$refs.validTip;return Object.assign(this.validStore,{visible:!1,row:null,column:null,content:"",rule:null}),e&&e.visible&&e.close(),this.$nextTick()},triggerValidate:function(i){var l=this,e=this.editConfig,t=this.editStore,r=this.editRules,n=this.validStore,o=t.actived;if(o.row&&r){var a=o.args,s=a.row,u=a.column,c=a.cell;if(this.hasCellRules(i,s,u))return this.validCellRules(i,s,u).then(function(){"row"===e.mode&&n.visible&&n.row===s&&n.column===u&&l.clearValidate()}).catch(function(e){var t=e.rule;if(t.trigger&&i!==t.trigger)return Promise.resolve();var r={rule:t,row:s,column:u,cell:c};return l.showValidTooltip(r),Promise.reject(r)})}return Promise.resolve()},showValidTooltip:function(e){var t=this,r=this.$refs,i=this.height,l=this.tableData,n=this.validOpts,o=e.rule,a=e.row,s=e.column,u=e.cell,c=r.validTip,f=o.message;this.$nextTick(function(){Object.assign(t.validStore,{row:a,column:s,rule:o,content:f,visible:!0}),c&&("tooltip"===n.message||"default"===n.message&&!i&&l.length<2)&&c.toVisible(u,f),_tools.UtilTools.emitEvent(t,"valid-error",[e])})}};exports.default=_default;