UNPKG

vxe-table-demonic

Version:

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

1 lines 7.67 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,l=1,r=arguments.length;l<r;l++)for(var i in t=arguments[l])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);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 l(e,s,i){var t,l,c={},n=h.editRules,r=h.treeConfig,d=x.afterFullData,f=x.visibleColumn,o=(o=b.value).children||o.childrenField,g=w.value,a=(!0===e?t=d:e&&(_xeUtils.default.isFunction(e)?s=e:t=_xeUtils.default.isArray(e)?e:[e]),t=t||(v.getInsertRecords?v.getInsertRecords().concat(v.getUpdateRecords()):[]),[]),u=(x._lastCallTime=Date.now(),m=!1,E.clearValidate(),{});return n?(l=v.getColumns(),e=function(r){var e;!i&&m||(e=[],l.forEach(function(l){!i&&m||!_xeUtils.default.has(n,l.property)||e.push(R.validCellRules("all",r,l).catch(function(e){var t=e.rule,e={rule:t,rules:e.rules,rowIndex:v.getRowIndex(r),row:r,columnIndex:v.getColumnIndex(l),column:l,field:l.property,$table:v};if(c[l.property]||(c[l.property]=[]),u["".concat((0,_util.getRowid)(v,r),":").concat(l.id)]={column:l,row:r,rule:t,content:t.content},c[l.property].push(e),!i)return m=!0,Promise.reject(e)}))}),a.push(Promise.all(e)))},r?_xeUtils.default.eachTree(t,e,{children:o}):t.forEach(e),Promise.all(a).then(function(){var e,t,l,r=Object.keys(c);return p.validErrorMaps=(e=u,"single"===w.value.msgMode?(t=e,(l=Object.keys(e)).length&&(t[l=l[0]]=e[l]),t):e),(0,_vue.nextTick)().then(function(){if(r.length)return Promise.reject(c[r[0]][0]);s&&s()})}).catch(function(u){return new Promise(function(e,t){function l(){var t;u.cell=v.getCell(u.row,u.column),(0,_dom.scrollToView)(u.cell),t=u,new Promise(function(e){!1===w.value.autoPos?(v.dispatchEvent("valid-error",t,null),e()):v.handleActived(t,{type:"valid-error",trigger:"call"}).then(function(){e(R.showValidTooltip(t))})}).then(a)}var r,i,n,o,a=function(){(0,_vue.nextTick)(function(){s?(s(c),e()):("obsolete"===_conf.default.validToReject?t:e)(c)})};!1===g.autoPos?a():(n=u.row,r=u.column,i=d.indexOf(n),o=f.indexOf(r),n=0<i?d[i-1]:n,o=0<o?f[i-1]:r,v.scrollToRow(n,o).then(l))})})):(p.validErrorMaps={},(0,_vue.nextTick)().then(function(){s&&s()}))}function _(e,t){var l=e.type,r=e.min,i=e.max,e=e.pattern,n=(l="number"===l)?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!l||!isNaN(t))||!_xeUtils.default.eqNull(r)&&n<_xeUtils.default.toNumber(r)||!_xeUtils.default.eqNull(i)&&n>_xeUtils.default.toNumber(i)||!(!e||(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}var m,h=v.props,p=v.reactData,x=v.internalData,f=v.getRefMaps().refValidTooltip,e=v.getComputeMaps(),w=e.computeValidOpts,b=e.computeTreeOpts,s=e.computeEditOpts,E={},R={},R={validCellRules:function(u,s,c,e){var d,f,t=h.editRules,l=c.field,g=[],p=[];return l&&t&&(d=_xeUtils.default.get(t,l))&&(f=_xeUtils.default.isUndefined(e)?_xeUtils.default.get(s,l):e,d.forEach(function(t){var e,l,r,i=t.type,n=t.trigger,o=t.required,a=t.validator;"all"!==u&&n&&u!==n||(a?(r={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)?(l=_vXETable.VXETable.validators.get(a))?l.cellValidatorMethod?e=l.cellValidatorMethod(r):"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(r),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)}))})))):(l="array"===i,a=_xeUtils.default.isArray(f),r=!0,r=l||a?!a||!f.length:_xeUtils.default.isString(f)?(0,_utils.eqEmptyValue)(f.trim()):(0,_utils.eqEmptyValue)(f),(o?r||_(t,f):!r&&_(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,l){var r=h.editRules,l=l.field;return!(!l||!r)&&(r=_xeUtils.default.get(r,l))&&!!_xeUtils.default.find(r,function(e){return"all"===t||!e.trigger||t===e.trigger})},triggerValidate:function(t){var e=h.editConfig,l=h.editRules,r=p.editStore.actived,i=s.value,n=w.value;if(l&&"single"===n.msgMode&&(p.validErrorMaps={}),e&&l&&r.row){var n=r.args,o=n.row,a=n.column,u=n.cell;if(R.hasCellRules(t,o,a))return R.validCellRules(t,o,a).then(function(){"row"===i.mode&&E.clearValidate(o,a)}).catch(function(e){var e=e.rule;return e.trigger&&t!==e.trigger?Promise.resolve():(R.showValidTooltip(e={rule:e,row:o,column:a,cell:u}),Promise.reject(e))})}return Promise.resolve()},showValidTooltip:function(e){var t=h.height,l=p.tableData,r=p.validStore,i=p.validErrorMaps,n=e.rule,o=e.row,a=e.column,u=e.cell,s=w.value,c=f.value,d=n.content;return r.visible=!0,"single"===s.msgMode?p.validErrorMaps=((r={})["".concat((0,_util.getRowid)(v,o),":").concat(a.id)]={column:a,row:o,rule:n,content:d},r):p.validErrorMaps=Object.assign({},i,((r={})["".concat((0,_util.getRowid)(v,o),":").concat(a.id)]={column:a,row:o,rule:n,content:d},r)),v.dispatchEvent("valid-error",e,null),c&&("tooltip"===s.message||"default"===s.message&&!t&&l.length<2)?c.open(u,d):(0,_vue.nextTick)()}};return __assign(__assign({},E={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)"]),l(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)"]),l(e,t)},clearValidate:function(e,t){var l,r,i=p.validErrorMaps,n=f.value,o=w.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"===o.msgMode?p.validErrorMaps={}:(e.length&&a.length?(u=Object.assign({},i),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?(l=e.map(function(e){return"".concat((0,_util.getRowid)(v,e))}),_xeUtils.default.each(i,function(e,t){-1<l.indexOf(t.split(":")[0])&&(u[t]=e)})):a.length&&(r=a.map(function(e){return"".concat(e.id)}),_xeUtils.default.each(i,function(e,t){-1<r.indexOf(t.split(":")[1])&&(u[t]=e)})),p.validErrorMaps=u),(0,_vue.nextTick)()}}),R)},setupGrid:function(e){return e.extendTableMethods(tableValidatorMethodKeys)}},_default=validatorHook;exports.default=_default;