UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...

1 lines 7.7 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_dom=require("../../tools/dom"),_log=require("../../tools/log"),_util=require("../../table/src/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Rule=function(){function e(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}return Object.defineProperty(e.prototype,"content",{get:function(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this.content},enumerable:!1,configurable:!0}),e}(),tableValidatorMethodKeys=["fullValidate","validate","clearValidate"],validatorHook={setupTable:function(v){function r(e,a,o){var t,r,u={},n=h.editRules,s=h.treeConfig,c=p.afterFullData,l=(l=w.value).children||l.childrenField,d=x.value,i=(!0===e?t=c:e&&(_xeUtils.default.isFunction(e)?a=e:t=_xeUtils.default.isArray(e)?e:[e]),t=t||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]),[]),f=(p._lastCallTime=Date.now(),m=!1,b.clearValidate(),{});return n?(r=v.getColumns(),e=function(l){var e;!o&&m||(e=[],r.forEach(function(r){!o&&m||!_xeUtils.default.has(n,r.property)||e.push(R.validCellRules("all",l,r).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,rowIndex:v.getRowIndex(l),row:l,columnIndex:v.getColumnIndex(r),column:r,field:r.property,$table:v};if(u[r.property]||(u[r.property]=[]),f["".concat((0,_util.getRowid)(v,l),":").concat(r.id)]={column:r,row:l,rule:t,content:t.content},u[r.property].push(e),!o)return m=!0,Promise.reject(e)}))}),i.push(Promise.all(e)))},s?_xeUtils.default.eachTree(t,e,{children:l}):t.forEach(e),Promise.all(i).then(function(){var e,t,r,l=Object.keys(u);return g.validErrorMaps=(e=f,"single"===x.value.msgMode?(t=e,(r=Object.keys(e)).length&&(t[r=r[0]]=e[r]),t):e),(0,_vue.nextTick)().then(function(){if(l.length)return Promise.reject(u[l[0]][0]);a&&a()})}).catch(function(i){return new Promise(function(e,t){function r(){var t;i.cell=v.getCell(i.row,i.column),(0,_dom.scrollToView)(i.cell),t=i,new Promise(function(e){!1===x.value.autoPos?(v.dispatchEvent("valid-error",t,null),e()):v.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){e(R.showValidTooltip(t))})}).then(l)}var l=function(){(0,_vue.nextTick)(function(){a?(a(u),e()):("obsolete"===_conf.default.validToReject?t:e)(u)})},o=i.row,n=c.indexOf(o),n=0<n?c[n-1]:o;!1===d.autoPos?l():(s?v.scrollToTreeRow(n):v.scrollToRow(n)).then(r)})})):(g.validErrorMaps={},(0,_vue.nextTick)().then(function(){a&&a()}))}function _(e,t){var r=e.type,l=e.min,o=e.max,e=e.pattern,n=(r="number"===r)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!r||!isNaN(t))||!_xeUtils.default.eqNull(l)&&n<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(o)&&n>_xeUtils.default.toNumber(o)||!(!e||(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}var m,h=v.props,g=v.reactData,p=v.internalData,s=v.getRefMaps().refValidTooltip,e=v.getComputeMaps(),x=e.computeValidOpts,w=e.computeTreeOpts,c=e.computeEditOpts,b={},R={},R={validCellRules:function(u,s,c,e){var d,f,t=h.editRules,r=c.field,g=[],p=[];return r&&t&&(d=_xeUtils.default.get(t,r))&&(f=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,r):e,d.forEach(function(t){var e,r,l,o=t.type,n=t.trigger,i=t.required,a=t.validator;"all"!==u&&n&&u!==n||(a?(l={cellValue:f,rule:t,rules:d,row:s,rowIndex:v.getRowIndex(s),column:c,columnIndex:v.getColumnIndex(c),field:c.field,$table:v,$grid:v.xegrid},e=void 0,_xeUtils.default.isString(a)?(r=_vXETable.VXETable.validators.get(a))?r.cellValidatorMethod?e=r.cellValidatorMethod(l):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(l),e&&(_xeUtils.default.isError(e)?(m=!0,g.push(new Rule({type:"custom",trigger:n,content:e.message,rule:new Rule(t)}))):e.catch&&p.push(e.catch(function(e){m=!0,g.push(new Rule({type:"custom",trigger:n,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))):(r="array"===o,a=_xeUtils.default.isArray(f),l=!0,l=r||a?!a||!f.length:_xeUtils.default.isString(f)?(0,_utils.eqEmptyValue)(f.trim()):(0,_utils.eqEmptyValue)(f),(i?l||_(t,f):!l&&_(t,f))&&(m=!0,g.push(new Rule(t)))))})),Promise.all(p).then(function(){if(g.length)return Promise.reject({rules:g,rule:g[0]})})},hasCellRules:function(t,e,r){var l=h.editRules,r=r.field;return!(!r||!l)&&(l=_xeUtils.default.get(l,r))&&!!_xeUtils.default.find(l,function(e){return"all"===t||!e.trigger||t===e.trigger})},triggerValidate:function(t){var e=h.editConfig,r=h.editRules,l=g.editStore.actived,o=c.value,n=x.value;if(r&&"single"===n.msgMode&&(g.validErrorMaps={}),e&&r&&l.row){var n=l.args,i=n.row,a=n.column,u=n.cell;if(R.hasCellRules(t,i,a))return R.validCellRules(t,i,a).then(function(){"row"===o.mode&&b.clearValidate(i,a)}).catch(function(e){var e=e.rule;return e.trigger&&t!==e.trigger?Promise.resolve():(R.showValidTooltip(e={rule:e,row:i,column:a,cell:u}),Promise.reject(e))})}return Promise.resolve()},showValidTooltip:function(e){var t=h.height,r=g.tableData,l=g.validStore,o=g.validErrorMaps,n=x.value,i=s.value;if(l.visible=!0,"single"===n.msgMode?g.validErrorMaps=((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l):g.validErrorMaps=Object.assign({},o,((l={})["".concat((0,_util.getRowid)(v,e.row),":").concat(e.column.id)]={column:e.column,row:e.row,rule:e.rule,content:e.rule.content},l)),v.dispatchEvent("valid-error",e,null),i){o=e.cell;if(i&&("tooltip"===n.message||"default"===n.message&&!t&&r.length<2))return i.open(o,e.rule.content)}return(0,_vue.nextTick)()}};return __assign(__assign({},b={fullValidate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),r(e,t,!0)},validate:function(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),r(e,t)},clearValidate:function(e,t){var r,l,o=g.validErrorMaps,n=s.value,i=x.value,e=_xeUtils.default.isArray(e)?e:e?[e]:[],a=_xeUtils.default.isArray(t)?t:(t?[t]:[]).map(function(e){return(0,_util.handleFieldOrColumn)(v,e)}),u={};return n&&n.reactData.visible&&n.close(),"single"===i.msgMode?g.validErrorMaps={}:(e.length&&a.length?(u=Object.assign({},o),e.forEach(function(t){a.forEach(function(e){e="".concat((0,_util.getRowid)(v,t),":").concat(e.id);u[e]&&delete u[e]})})):e.length?(r=e.map(function(e){return"".concat((0,_util.getRowid)(v,e))}),_xeUtils.default.each(o,function(e,t){-1<r.indexOf(t.split(":")[0])&&(u[t]=e)})):a.length&&(l=a.map(function(e){return"".concat(e.id)}),_xeUtils.default.each(o,function(e,t){-1<l.indexOf(t.split(":")[1])&&(u[t]=e)})),g.validErrorMaps=u),(0,_vue.nextTick)()}}),R)},setupGrid:function(e){return e.extendTableMethods(tableValidatorMethodKeys)}},_default=validatorHook;exports.default=_default;