| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _xeUtils = _interopRequireDefault(require("xe-utils"));
- var _conf = _interopRequireDefault(require("../../v-x-e-table/src/conf"));
- var _size = _interopRequireDefault(require("../../mixins/size"));
- var _vXETable = _interopRequireDefault(require("../../v-x-e-table"));
- var _tools = require("../../tools");
- var _util = require("./util");
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
- var Rule = /*#__PURE__*/function () {
- function Rule(rule) {
- _classCallCheck(this, Rule);
- Object.assign(this, {
- $options: rule,
- required: rule.required,
- min: rule.min,
- max: rule.min,
- type: rule.type,
- pattern: rule.pattern,
- validator: rule.validator,
- trigger: rule.trigger,
- maxWidth: rule.maxWidth
- });
- }
- _createClass(Rule, [{
- key: "message",
- get: function get() {
- return _tools.UtilTools.getFuncText(this.$options.message);
- }
- }]);
- return Rule;
- }();
- function getResetValue(value, resetValue) {
- if (_xeUtils.default.isArray(value)) {
- resetValue = [];
- }
- return resetValue;
- }
- function callSlot(_vm, slotFunc, params, h) {
- if (slotFunc) {
- var $scopedSlots = _vm.$scopedSlots;
- if (_xeUtils.default.isString(slotFunc)) {
- slotFunc = $scopedSlots[slotFunc] || null;
- }
- if (_xeUtils.default.isFunction(slotFunc)) {
- return slotFunc.call(_vm, params, h);
- }
- }
- return [];
- }
- function renderPrefixIcon(h, titlePrefix) {
- return h('span', {
- class: 'vxe-form--item-title-prefix'
- }, [h('i', {
- class: titlePrefix.icon || _conf.default.icon.FORM_PREFIX
- })]);
- }
- function renderSuffixIcon(h, titleSuffix) {
- return h('span', {
- class: 'vxe-form--item-title-suffix'
- }, [h('i', {
- class: titleSuffix.icon || _conf.default.icon.FORM_SUFFIX
- })]);
- }
- function renderTitle(h, _vm, item) {
- var data = _vm.data;
- var slots = item.slots,
- field = item.field,
- itemRender = item.itemRender,
- titlePrefix = item.titlePrefix,
- titleSuffix = item.titleSuffix;
- var compConf = (0, _tools.isEnableConf)(itemRender) ? _vXETable.default.renderer.get(itemRender.name) : null;
- var params = {
- data: data,
- property: field,
- item: item,
- $form: _vm
- };
- var tss = [];
- if (titlePrefix) {
- tss.push(titlePrefix.message ? h('vxe-tooltip', {
- props: {
- content: _tools.UtilTools.getFuncText(titlePrefix.message),
- enterable: titlePrefix.enterable,
- theme: titlePrefix.theme
- }
- }, [renderPrefixIcon(h, titlePrefix)]) : renderPrefixIcon(h, titlePrefix));
- }
- tss.push(h('span', {
- class: 'vxe-form--item-title-label'
- }, compConf && compConf.renderItemTitle ? compConf.renderItemTitle(itemRender, params) : slots && slots.title ? callSlot(_vm, slots.title, params, h) : _tools.UtilTools.getFuncText(item.title)));
- if (titleSuffix) {
- tss.push(titleSuffix.message ? h('vxe-tooltip', {
- props: {
- content: _tools.UtilTools.getFuncText(titleSuffix.message),
- enterable: titleSuffix.enterable,
- theme: titleSuffix.theme
- }
- }, [renderSuffixIcon(h, titleSuffix)]) : renderSuffixIcon(h, titleSuffix));
- }
- return tss;
- }
- function renderItems(h, _vm, itemList) {
- var _e = _vm._e,
- rules = _vm.rules,
- data = _vm.data,
- collapseAll = _vm.collapseAll,
- validOpts = _vm.validOpts,
- allTitleOverflow = _vm.titleOverflow;
- return itemList.map(function (item, index) {
- var slots = item.slots,
- title = item.title,
- folding = item.folding,
- visible = item.visible,
- visibleMethod = item.visibleMethod,
- field = item.field,
- collapseNode = item.collapseNode,
- itemRender = item.itemRender,
- showError = item.showError,
- errRule = item.errRule,
- className = item.className,
- titleOverflow = item.titleOverflow,
- children = item.children;
- var compConf = (0, _tools.isEnableConf)(itemRender) ? _vXETable.default.renderer.get(itemRender.name) : null;
- var span = item.span || _vm.span;
- var align = item.align || _vm.align;
- var titleAlign = item.titleAlign || _vm.titleAlign;
- var titleWidth = item.titleWidth || _vm.titleWidth;
- var itemVisibleMethod = visibleMethod;
- var itemOverflow = _xeUtils.default.isUndefined(titleOverflow) || _xeUtils.default.isNull(titleOverflow) ? allTitleOverflow : titleOverflow;
- var showEllipsis = itemOverflow === 'ellipsis';
- var showTitle = itemOverflow === 'title';
- var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
- var hasEllipsis = showTitle || showTooltip || showEllipsis;
- var params = {
- data: data,
- property: field,
- item: item,
- $form: _vm
- };
- var isRequired;
- if (visible === false) {
- return _e();
- } // 如果为项集合
- var isGather = children && children.length > 0;
- if (isGather) {
- var childVNs = renderItems(h, _vm, item.children);
- return childVNs.length ? h('div', {
- class: ['vxe-form--gather vxe-row', item.id, span ? "vxe-col--".concat(span, " is--span") : '', className ? _xeUtils.default.isFunction(className) ? className(params) : className : '']
- }, childVNs) : _e();
- }
- if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
- itemVisibleMethod = compConf.itemVisibleMethod;
- }
- if (rules) {
- var itemRules = rules[field];
- if (itemRules) {
- isRequired = itemRules.some(function (rule) {
- return rule.required;
- });
- }
- }
- var contentVNs = [];
- if (slots && slots.default) {
- contentVNs = callSlot(_vm, slots.default, params, h);
- } else if (compConf && compConf.renderItemContent) {
- contentVNs = compConf.renderItemContent.call(_vm, h, itemRender, params);
- } else if (compConf && compConf.renderItem) {
- contentVNs = compConf.renderItem.call(_vm, h, itemRender, params);
- } else if (field) {
- contentVNs = ["".concat(_xeUtils.default.get(data, field))];
- }
- var ons = showTooltip ? {
- mouseenter: function mouseenter(evnt) {
- _vm.triggerHeaderHelpEvent(evnt, params);
- },
- mouseleave: _vm.handleTargetLeaveEvent
- } : {};
- return h('div', {
- class: ['vxe-form--item', item.id, span ? "vxe-col--".concat(span, " is--span") : null, className ? _xeUtils.default.isFunction(className) ? className(params) : className : '', {
- 'is--title': title,
- 'is--required': isRequired,
- 'is--hidden': folding && collapseAll,
- 'is--active': !itemVisibleMethod || itemVisibleMethod(params),
- 'is--error': showError
- }],
- key: index
- }, [h('div', {
- class: 'vxe-form--item-inner'
- }, [title || slots && slots.title ? h('div', {
- class: ['vxe-form--item-title', titleAlign ? "align--".concat(titleAlign) : null, {
- 'is--ellipsis': hasEllipsis
- }],
- style: titleWidth ? {
- width: isNaN(titleWidth) ? titleWidth : "".concat(titleWidth, "px")
- } : null,
- attrs: {
- title: showTitle ? _tools.UtilTools.getFuncText(title) : null
- },
- on: ons
- }, renderTitle(h, _vm, item)) : null, h('div', {
- class: ['vxe-form--item-content', align ? "align--".concat(align) : null]
- }, contentVNs.concat([collapseNode ? h('div', {
- class: 'vxe-form--item-trigger-node',
- on: {
- click: _vm.toggleCollapseEvent
- }
- }, [h('span', {
- class: 'vxe-form--item-trigger-text'
- }, collapseAll ? _conf.default.i18n('vxe.form.unfolding') : _conf.default.i18n('vxe.form.folding')), h('i', {
- class: ['vxe-form--item-trigger-icon', collapseAll ? _conf.default.icon.FORM_FOLDING : _conf.default.icon.FORM_UNFOLDING]
- })]) : null, errRule && validOpts.showMessage ? h('div', {
- class: 'vxe-form--item-valid',
- style: errRule.maxWidth ? {
- width: "".concat(errRule.maxWidth, "px")
- } : null
- }, errRule.message) : null]))])]);
- });
- }
- var _default2 = {
- name: 'VxeForm',
- mixins: [_size.default],
- props: {
- loading: Boolean,
- data: Object,
- size: {
- type: String,
- default: function _default() {
- return _conf.default.form.size || _conf.default.size;
- }
- },
- span: [String, Number],
- align: {
- type: String,
- default: function _default() {
- return _conf.default.form.align;
- }
- },
- titleAlign: {
- type: String,
- default: function _default() {
- return _conf.default.form.titleAlign;
- }
- },
- titleWidth: [String, Number],
- titleColon: {
- type: Boolean,
- default: function _default() {
- return _conf.default.form.titleColon;
- }
- },
- titleAsterisk: {
- type: Boolean,
- default: function _default() {
- return _conf.default.form.titleAsterisk;
- }
- },
- titleOverflow: {
- type: [Boolean, String],
- default: null
- },
- items: Array,
- rules: Object,
- preventSubmit: {
- type: Boolean,
- default: function _default() {
- return _conf.default.form.preventSubmit;
- }
- },
- validConfig: Object
- },
- data: function data() {
- return {
- collapseAll: true,
- staticItems: [],
- formItems: [],
- tooltipTimeout: null,
- tooltipActive: false,
- tooltipStore: {
- item: null,
- visible: false
- }
- };
- },
- provide: function provide() {
- return {
- $xeform: this
- };
- },
- computed: {
- validOpts: function validOpts() {
- return Object.assign({}, _conf.default.form.validConfig, this.validConfig);
- },
- tooltipOpts: function tooltipOpts() {
- var opts = Object.assign({
- leaveDelay: 300
- }, _conf.default.form.tooltipConfig, this.tooltipConfig);
- if (opts.enterable) {
- opts.leaveMethod = this.handleTooltipLeaveMethod;
- }
- return opts;
- }
- },
- created: function created() {
- var _this = this;
- this.$nextTick(function () {
- var items = _this.items;
- if (items) {
- _this.loadItem(items);
- }
- });
- },
- watch: {
- staticItems: function staticItems(value) {
- this.formItems = value;
- },
- items: function items(value) {
- this.loadItem(value);
- }
- },
- render: function render(h) {
- var _ref;
- var _e = this._e,
- loading = this.loading,
- vSize = this.vSize,
- tooltipOpts = this.tooltipOpts,
- formItems = this.formItems;
- var hasUseTooltip = _vXETable.default._tooltip;
- return h('form', {
- class: ['vxe-form', (_ref = {}, _defineProperty(_ref, "size--".concat(vSize), vSize), _defineProperty(_ref, 'is--colon', this.titleColon), _defineProperty(_ref, 'is--asterisk', this.titleAsterisk), _defineProperty(_ref, 'is--loading', loading), _ref)],
- on: {
- submit: this.submitEvent,
- reset: this.resetEvent
- }
- }, [h('div', {
- class: 'vxe-form--wrapper vxe-row'
- }, renderItems(h, this, formItems)), h('div', {
- class: 'vxe-form-slots',
- ref: 'hideItem'
- }, this.$slots.default), h('div', {
- class: ['vxe-loading', {
- 'is--visible': loading
- }]
- }, [h('div', {
- class: 'vxe-loading--spinner'
- })]),
- /**
- * 工具提示
- */
- hasUseTooltip ? h('vxe-tooltip', _objectSpread({
- ref: 'tooltip'
- }, tooltipOpts)) : _e()]);
- },
- methods: {
- loadItem: function loadItem(list) {
- var _this2 = this;
- if (process.env.NODE_ENV === 'development') {
- var $scopedSlots = this.$scopedSlots;
- list.forEach(function (item) {
- if (item.slots) {
- _xeUtils.default.each(item.slots, function (func) {
- if (!_xeUtils.default.isFunction(func)) {
- if (!$scopedSlots[func]) {
- _tools.UtilTools.error('vxe.error.notSlot', [func]);
- }
- }
- });
- }
- });
- }
- this.staticItems = list.map(function (item) {
- return (0, _util.createItem)(_this2, item);
- });
- return this.$nextTick();
- },
- getItems: function getItems() {
- var itemList = [];
- _xeUtils.default.eachTree(this.formItems, function (item) {
- itemList.push(item);
- }, {
- children: 'children'
- });
- return itemList;
- },
- toggleCollapse: function toggleCollapse() {
- this.collapseAll = !this.collapseAll;
- return this.$nextTick();
- },
- toggleCollapseEvent: function toggleCollapseEvent(evnt) {
- this.toggleCollapse();
- this.$emit('toggle-collapse', {
- collapse: !this.collapseAll,
- data: this.data,
- $form: this,
- $event: evnt
- }, evnt);
- },
- submitEvent: function submitEvent(evnt) {
- var _this3 = this;
- evnt.preventDefault();
- if (!this.preventSubmit) {
- this.beginValidate().then(function () {
- _this3.$emit('submit', {
- data: _this3.data,
- $form: _this3,
- $event: evnt
- });
- }).catch(function (errMap) {
- _this3.$emit('submit-invalid', {
- data: _this3.data,
- errMap: errMap,
- $form: _this3,
- $event: evnt
- });
- });
- }
- },
- reset: function reset() {
- var _this4 = this;
- var data = this.data;
- if (data) {
- var itemList = this.getItems();
- itemList.forEach(function (item) {
- var field = item.field,
- resetValue = item.resetValue,
- itemRender = item.itemRender;
- if ((0, _tools.isEnableConf)(itemRender)) {
- var compConf = _vXETable.default.renderer.get(itemRender.name);
- if (compConf && compConf.itemResetMethod) {
- compConf.itemResetMethod({
- data: data,
- property: field,
- item: item,
- $form: _this4
- });
- } else if (field) {
- _xeUtils.default.set(data, field, resetValue === null ? getResetValue(_xeUtils.default.get(data, field), undefined) : resetValue);
- }
- }
- });
- }
- return this.clearValidate();
- },
- resetEvent: function resetEvent(evnt) {
- evnt.preventDefault();
- this.reset();
- this.$emit('reset', {
- data: this.data,
- $form: this,
- $event: evnt
- });
- },
- handleTooltipLeaveMethod: function handleTooltipLeaveMethod() {
- var _this5 = this;
- var tooltipOpts = this.tooltipOpts;
- setTimeout(function () {
- if (!_this5.tooltipActive) {
- _this5.closeTooltip();
- }
- }, tooltipOpts.leaveDelay);
- return false;
- },
- closeTooltip: function closeTooltip() {
- var tooltipStore = this.tooltipStore;
- var $tooltip = this.$refs.tooltip;
- if (tooltipStore.visible) {
- Object.assign(tooltipStore, {
- item: null,
- visible: false
- });
- if ($tooltip) {
- $tooltip.close();
- }
- }
- return this.$nextTick();
- },
- triggerHeaderHelpEvent: function triggerHeaderHelpEvent(evnt, params) {
- var item = params.item;
- var tooltipStore = this.tooltipStore;
- var $tooltip = this.$refs.tooltip;
- var overflowElem = evnt.currentTarget;
- var content = (overflowElem.textContent || '').trim();
- var isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth;
- clearTimeout(this.tooltipTimeout);
- this.tooltipActive = true;
- this.closeTooltip();
- if (content && isCellOverflow) {
- Object.assign(tooltipStore, {
- item: item,
- visible: true
- });
- if ($tooltip) {
- $tooltip.open(overflowElem, content);
- }
- }
- },
- handleTargetLeaveEvent: function handleTargetLeaveEvent() {
- var _this6 = this;
- var tooltipOpts = this.tooltipOpts;
- this.tooltipActive = false;
- if (tooltipOpts.enterable) {
- this.tooltipTimeout = setTimeout(function () {
- var $tooltip = _this6.$refs.tooltip;
- if ($tooltip && !$tooltip.isHover) {
- _this6.closeTooltip();
- }
- }, tooltipOpts.leaveDelay);
- } else {
- this.closeTooltip();
- }
- },
- clearValidate: function clearValidate(field) {
- var itemList = this.getItems();
- if (field) {
- var item = itemList.find(function (item) {
- return item.field === field;
- });
- if (item) {
- item.showError = false;
- }
- } else {
- itemList.forEach(function (item) {
- item.showError = false;
- });
- }
- return this.$nextTick();
- },
- validate: function validate(callback) {
- return this.beginValidate('', callback);
- },
- beginValidate: function beginValidate(type, callback) {
- var _this7 = this;
- var data = this.data,
- formRules = this.rules,
- validOpts = this.validOpts;
- var validRest = {};
- var validFields = [];
- var itemValids = [];
- var itemList = this.getItems();
- this.clearValidate();
- clearTimeout(this.showErrTime);
- if (data && formRules) {
- itemList.forEach(function (item) {
- var field = item.field;
- if (field) {
- itemValids.push(_this7.validItemRules(type || 'all', field).then(function () {
- item.errRule = null;
- }).catch(function (_ref2) {
- var rule = _ref2.rule,
- rules = _ref2.rules;
- var rest = {
- rule: rule,
- rules: rules,
- data: data,
- property: field,
- $form: _this7
- };
- if (!validRest[field]) {
- validRest[field] = [];
- }
- validRest[field].push(rest);
- validFields.push(field);
- item.errRule = rule;
- return Promise.reject(rest);
- }));
- }
- });
- return Promise.all(itemValids).then(function () {
- if (callback) {
- callback();
- }
- }).catch(function () {
- _this7.showErrTime = setTimeout(function () {
- itemList.forEach(function (item) {
- if (item.errRule) {
- item.showError = true;
- }
- });
- }, 20);
- if (callback) {
- callback(validRest);
- }
- if (validOpts.autoPos) {
- _this7.$nextTick(function () {
- _this7.handleFocus(validFields);
- });
- }
- return Promise.reject(validRest);
- });
- }
- if (callback) {
- callback();
- }
- return Promise.resolve();
- },
- /**
- * 校验数据
- * 按表格行、列顺序依次校验(同步或异步)
- * 校验规则根据索引顺序依次校验,如果是异步则会等待校验完成才会继续校验下一列
- * 如果校验失败则,触发回调或者 Promise<(ErrMap 校验不通过列的信息)>
- * 如果是传回调方式这返回一个 (ErrMap 校验不通过列的信息)
- *
- * rule 配置:
- * required=Boolean 是否必填
- * min=Number 最小长度
- * max=Number 最大长度
- * validator=Function({ itemValue, rule, rules, data, property }) 自定义校验,接收一个 Promise
- * trigger=change 触发方式
- */
- validItemRules: function validItemRules(type, property, val) {
- var _this8 = this;
- var data = this.data,
- formRules = this.rules;
- var errorRules = [];
- var syncVailds = [];
- if (property && formRules) {
- var rules = _xeUtils.default.get(formRules, property);
- if (rules) {
- var itemValue = _xeUtils.default.isUndefined(val) ? _xeUtils.default.get(data, property) : val;
- rules.forEach(function (rule) {
- if (type === 'all' || !rule.trigger || type === rule.trigger) {
- if (_xeUtils.default.isFunction(rule.validator)) {
- var customValid = rule.validator({
- itemValue: itemValue,
- rule: rule,
- rules: rules,
- data: data,
- property: property,
- $form: _this8
- });
- if (customValid) {
- if (_xeUtils.default.isError(customValid)) {
- errorRules.push(new Rule({
- type: 'custom',
- trigger: rule.trigger,
- message: customValid.message,
- rule: new Rule(rule)
- }));
- } else if (customValid.catch) {
- // 如果为异步校验(注:异步校验是并发无序的)
- syncVailds.push(customValid.catch(function (e) {
- errorRules.push(new Rule({
- type: 'custom',
- trigger: rule.trigger,
- message: e ? e.message : rule.message,
- rule: new Rule(rule)
- }));
- }));
- }
- }
- } else {
- var isNumber = rule.type === 'number';
- var numVal = isNumber ? _xeUtils.default.toNumber(itemValue) : _xeUtils.default.getSize(itemValue);
- if (itemValue === null || itemValue === undefined || itemValue === '') {
- if (rule.required) {
- errorRules.push(new Rule(rule));
- }
- } else if (isNumber && isNaN(itemValue) || !isNaN(rule.min) && numVal < parseFloat(rule.min) || !isNaN(rule.max) && numVal > parseFloat(rule.max) || rule.pattern && !(rule.pattern.test ? rule.pattern : new RegExp(rule.pattern)).test(itemValue)) {
- errorRules.push(new Rule(rule));
- }
- }
- }
- });
- }
- }
- return Promise.all(syncVailds).then(function () {
- if (errorRules.length) {
- var rest = {
- rules: errorRules,
- rule: errorRules[0]
- };
- return Promise.reject(rest);
- }
- });
- },
- handleFocus: function handleFocus(fields) {
- var $el = this.$el;
- var itemList = this.getItems();
- fields.some(function (property) {
- var item = itemList.find(function (item) {
- return item.field === property;
- });
- if (item && (0, _tools.isEnableConf)(item.itemRender)) {
- var itemRender = item.itemRender;
- var compConf = _vXETable.default.renderer.get(itemRender.name);
- var inputElem; // 如果指定了聚焦 class
- if (itemRender.autofocus) {
- inputElem = $el.querySelector(".".concat(item.id, " ").concat(itemRender.autofocus));
- } // 渲染器的聚焦处理
- if (!inputElem && compConf && compConf.autofocus) {
- inputElem = $el.querySelector(".".concat(item.id, " ").concat(compConf.autofocus));
- }
- if (inputElem) {
- inputElem.focus(); // 保持一致行为,光标移到末端
- if (_tools.DomTools.browse.msie) {
- var textRange = inputElem.createTextRange();
- textRange.collapse(false);
- textRange.select();
- }
- return true;
- }
- }
- });
- },
- /**
- * 更新项状态
- * 如果组件值 v-model 发生 change 时,调用改函数用于更新某一项编辑状态
- * 如果单元格配置了校验规则,则会进行校验
- */
- updateStatus: function updateStatus(scope, itemValue) {
- var _this9 = this;
- var property = scope.property;
- if (property) {
- this.validItemRules('change', property, itemValue).then(function () {
- _this9.clearValidate(property);
- }).catch(function (_ref3) {
- var rule = _ref3.rule;
- var itemList = _this9.getItems();
- var item = itemList.find(function (item) {
- return item.field === property;
- });
- if (item) {
- item.showError = true;
- item.errRule = rule;
- }
- });
- }
- }
- }
- };
- exports.default = _default2;
|