vxe-pc-ui 3.8.13 → 3.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/es/form/index.js +0 -1
  2. package/es/form/src/form.js +1 -0
  3. package/es/icon/style.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/ui/index.js +1 -1
  7. package/es/ui/src/log.js +1 -1
  8. package/lib/form/index.js +0 -1
  9. package/lib/form/index.min.js +1 -1
  10. package/lib/form/src/form.js +1 -0
  11. package/lib/form/src/form.min.js +1 -1
  12. package/lib/icon/style/style.css +1 -1
  13. package/lib/icon/style/style.min.css +1 -1
  14. package/lib/index.umd.js +1573 -1573
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/style.css +1 -1
  17. package/lib/style.min.css +1 -1
  18. package/lib/ui/index.js +1 -1
  19. package/lib/ui/index.min.js +1 -1
  20. package/lib/ui/src/log.js +1 -1
  21. package/lib/ui/src/log.min.js +1 -1
  22. package/package.json +1 -1
  23. package/packages/form/index.ts +0 -1
  24. package/packages/form/src/form.ts +2 -0
  25. package/types/components/gantt-module/gantt-view.d.ts +158 -0
  26. package/types/components/gantt-module/index.d.ts +1 -0
  27. package/types/components/gantt.d.ts +113 -30
  28. package/types/components/grid.d.ts +31 -11
  29. package/types/components/table.d.ts +31 -8
  30. package/types/ui/commands.d.ts +3 -1
  31. /package/es/icon/{iconfont.1754641135399.ttf → iconfont.1754905493232.ttf} +0 -0
  32. /package/es/icon/{iconfont.1754641135399.woff → iconfont.1754905493232.woff} +0 -0
  33. /package/es/icon/{iconfont.1754641135399.woff2 → iconfont.1754905493232.woff2} +0 -0
  34. /package/es/{iconfont.1754641135399.ttf → iconfont.1754905493232.ttf} +0 -0
  35. /package/es/{iconfont.1754641135399.woff → iconfont.1754905493232.woff} +0 -0
  36. /package/es/{iconfont.1754641135399.woff2 → iconfont.1754905493232.woff2} +0 -0
  37. /package/lib/icon/style/{iconfont.1754641135399.ttf → iconfont.1754905493232.ttf} +0 -0
  38. /package/lib/icon/style/{iconfont.1754641135399.woff → iconfont.1754905493232.woff} +0 -0
  39. /package/lib/icon/style/{iconfont.1754641135399.woff2 → iconfont.1754905493232.woff2} +0 -0
  40. /package/lib/{iconfont.1754641135399.ttf → iconfont.1754905493232.ttf} +0 -0
  41. /package/lib/{iconfont.1754641135399.woff → iconfont.1754905493232.woff} +0 -0
  42. /package/lib/{iconfont.1754641135399.woff2 → iconfont.1754905493232.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -13159,14 +13159,14 @@ var defineVxeComponent = function defineVxeComponent(options) {
13159
13159
  };
13160
13160
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
13161
13161
 
13162
- var log_version = "ui v".concat("3.8.13");
13162
+ var log_version = "ui v".concat("3.8.14");
13163
13163
  var warnLog = log.create('warn', log_version);
13164
13164
  var errLog = log.create('error', log_version);
13165
13165
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
13166
13166
 
13167
13167
 
13168
13168
 
13169
- var ui_version = "3.8.13";
13169
+ var ui_version = "3.8.14";
13170
13170
  index_esm_VxeUI.uiVersion = ui_version;
13171
13171
  index_esm_VxeUI.dynamicApp = dynamicApp;
13172
13172
  function config(options) {
@@ -32391,31 +32391,7 @@ var VxeFormConfigItem = defineVxeComponent({
32391
32391
  }
32392
32392
  });
32393
32393
  /* harmony default export */ var form_config_item = (VxeFormConfigItem);
32394
- ;// CONCATENATED MODULE: ./packages/form/src/form.ts
32395
-
32396
-
32397
-
32398
-
32399
-
32400
-
32401
-
32402
-
32403
-
32404
-
32405
-
32406
-
32407
-
32408
-
32409
-
32410
-
32411
-
32412
-
32413
-
32414
-
32415
-
32416
-
32417
-
32418
-
32394
+ ;// CONCATENATED MODULE: ./packages/form/render/index.ts
32419
32395
 
32420
32396
 
32421
32397
 
@@ -32428,1659 +32404,1683 @@ var VxeFormConfigItem = defineVxeComponent({
32428
32404
 
32429
32405
 
32430
32406
 
32431
- var Rule = /*#__PURE__*/function () {
32432
- function Rule(rule) {
32433
- _classCallCheck(this, Rule);
32434
- Object.assign(this, {
32435
- $options: rule,
32436
- required: rule.required,
32437
- min: rule.min,
32438
- max: rule.min,
32439
- type: rule.type,
32440
- pattern: rule.pattern,
32441
- validator: rule.validator,
32442
- trigger: rule.trigger,
32443
- maxWidth: rule.maxWidth
32444
- });
32445
- }
32446
- return _createClass(Rule, [{
32447
- key: "content",
32448
- get: function get() {
32449
- return getFuncText(this.$options.content || this.$options.message);
32450
- }
32451
- }, {
32452
- key: "message",
32453
- get: function get() {
32454
- return this.content;
32455
- }
32456
- }]);
32457
- }(); // 如果存在 pattern,判断正则
32458
- function validREValue(pattern, val) {
32459
- if (pattern && !(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isRegExp(pattern) ? pattern : new RegExp(pattern)).test(val)) {
32460
- return false;
32461
- }
32462
- return true;
32407
+ var componentDefaultModelProp = 'value';
32408
+ /**
32409
+ * 已废弃
32410
+ * @deprecated
32411
+ */
32412
+ function getOldComponentName(name) {
32413
+ return "vxe-".concat(name.replace('$', ''));
32463
32414
  }
32464
- // 如果存在 max,判断最大值
32465
- function validMaxValue(max, num) {
32466
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(max) && num > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(max)) {
32467
- return false;
32468
- }
32469
- return true;
32415
+ /**
32416
+ * 已废弃
32417
+ * @deprecated
32418
+ */
32419
+ function getOldComponent(_ref) {
32420
+ var name = _ref.name;
32421
+ return getOldComponentName(name);
32470
32422
  }
32471
- // 如果存在 min,判断最小值
32472
- function validMinValue(min, num) {
32473
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(min) && num < external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(min)) {
32474
- return false;
32423
+ function getDefaultComponent(_ref2) {
32424
+ var name = _ref2.name;
32425
+ return getComponent(name) || name;
32426
+ }
32427
+ function getNativeAttrs(renderOpts) {
32428
+ var name = renderOpts.name,
32429
+ attrs = renderOpts.attrs;
32430
+ if (name === 'input') {
32431
+ attrs = Object.assign({
32432
+ type: 'text'
32433
+ }, attrs);
32475
32434
  }
32476
- return true;
32435
+ return attrs;
32477
32436
  }
32478
- function validRuleValue(rule, val, required) {
32479
- var type = rule.type,
32480
- min = rule.min,
32481
- max = rule.max,
32482
- pattern = rule.pattern;
32483
- var isArrType = type === 'array';
32484
- var isNumType = type === 'number';
32485
- var isStrType = type === 'string';
32486
- var strVal = "".concat(val);
32487
- if (!validREValue(pattern, strVal)) {
32488
- return false;
32437
+ function getComponentFormItemProps(renderOpts, params, value, defaultProps) {
32438
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign({}, defaultProps, renderOpts.props, _defineProperty({}, componentDefaultModelProp, value));
32439
+ }
32440
+ /**
32441
+ * 原生事件处理
32442
+ * @param renderOpts
32443
+ * @param params
32444
+ * @param modelFunc
32445
+ * @param changeFunc
32446
+ */
32447
+ function getElementOns(renderOpts, params, modelFunc, changeFunc) {
32448
+ var events = renderOpts.events;
32449
+ var modelEvent = getModelEvent(renderOpts.name);
32450
+ var changeEvent = getChangeEvent(renderOpts.name);
32451
+ var isSameEvent = changeEvent === modelEvent;
32452
+ var ons = {};
32453
+ if (events) {
32454
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(events, function (func, key) {
32455
+ ons[getOnName(key)] = function () {
32456
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32457
+ args[_key] = arguments[_key];
32458
+ }
32459
+ func.apply(void 0, [params].concat(args));
32460
+ };
32461
+ });
32489
32462
  }
32490
- if (isArrType) {
32491
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val)) {
32492
- return false;
32493
- }
32494
- if (required) {
32495
- if (!val.length) {
32496
- return false;
32463
+ if (modelFunc) {
32464
+ ons[getOnName(modelEvent)] = function (targetEvnt) {
32465
+ modelFunc(targetEvnt);
32466
+ if (isSameEvent && changeFunc) {
32467
+ changeFunc(targetEvnt);
32497
32468
  }
32498
- }
32499
- if (!validMinValue(min, val.length)) {
32500
- return false;
32501
- }
32502
- if (!validMaxValue(max, val.length)) {
32503
- return false;
32504
- }
32505
- } else if (isNumType) {
32506
- var numVal = Number(val);
32507
- if (isNaN(numVal)) {
32508
- return false;
32509
- }
32510
- if (!validMinValue(min, numVal)) {
32511
- return false;
32512
- }
32513
- if (!validMaxValue(max, numVal)) {
32514
- return false;
32515
- }
32516
- } else {
32517
- if (isStrType) {
32518
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val)) {
32519
- return false;
32469
+ if (events && events[modelEvent]) {
32470
+ events[modelEvent](params, targetEvnt);
32520
32471
  }
32521
- }
32522
- if (required) {
32523
- if (!strVal) {
32524
- return false;
32472
+ };
32473
+ }
32474
+ if (!isSameEvent && changeFunc) {
32475
+ ons[getOnName(changeEvent)] = function () {
32476
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
32477
+ args[_key2] = arguments[_key2];
32525
32478
  }
32526
- }
32527
- if (!validMinValue(min, strVal.length)) {
32528
- return false;
32529
- }
32530
- if (!validMaxValue(max, strVal.length)) {
32531
- return false;
32532
- }
32479
+ changeFunc.apply(void 0, args);
32480
+ if (events && events[changeEvent]) {
32481
+ events[changeEvent].apply(events, [params].concat(args));
32482
+ }
32483
+ };
32533
32484
  }
32534
- return true;
32485
+ return ons;
32535
32486
  }
32536
- function checkRuleStatus(rule, val) {
32537
- var required = rule.required;
32538
- var isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val) ? !val.length : eqEmptyValue(val);
32539
- if (required) {
32540
- if (isEmptyVal) {
32541
- return false;
32542
- }
32543
- if (!validRuleValue(rule, val, required)) {
32544
- return false;
32545
- }
32546
- } else {
32547
- if (!isEmptyVal) {
32548
- if (!validRuleValue(rule, val, required)) {
32549
- return false;
32487
+ /**
32488
+ * 组件事件处理
32489
+ * @param renderOpts
32490
+ * @param params
32491
+ * @param modelFunc
32492
+ * @param changeFunc
32493
+ */
32494
+ function getComponentOns(renderOpts, params, eFns, eventOns) {
32495
+ var events = renderOpts.events;
32496
+ var _ref3 = eFns || {},
32497
+ modelFunc = _ref3.model,
32498
+ changeFunc = _ref3.change;
32499
+ var modelEvent = getModelEvent(renderOpts.name);
32500
+ var changeEvent = getChangeEvent(renderOpts.name);
32501
+ var ons = {};
32502
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(events, function (func, key) {
32503
+ ons[getOnName(key)] = function () {
32504
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
32505
+ errLog('vxe.error.errFunc', [func]);
32550
32506
  }
32551
- }
32507
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
32508
+ args[_key3] = arguments[_key3];
32509
+ }
32510
+ func.apply(void 0, [params].concat(args));
32511
+ };
32512
+ });
32513
+ if (modelFunc) {
32514
+ ons[getOnName(modelEvent)] = function (targetEvnt) {
32515
+ modelFunc(targetEvnt);
32516
+ if (events && events[modelEvent]) {
32517
+ events[modelEvent](params, targetEvnt);
32518
+ }
32519
+ };
32552
32520
  }
32553
- return true;
32521
+ if (changeFunc) {
32522
+ ons[getOnName(changeEvent)] = function () {
32523
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
32524
+ args[_key4] = arguments[_key4];
32525
+ }
32526
+ changeFunc.apply(void 0, args);
32527
+ if (events && events[changeEvent]) {
32528
+ events[changeEvent].apply(events, [params].concat(args));
32529
+ }
32530
+ };
32531
+ }
32532
+ return eventOns ? Object.assign(ons, eventOns) : ons;
32554
32533
  }
32555
- function createInternalData() {
32556
- return {
32557
- meTimeout: undefined,
32558
- stTimeout: undefined,
32559
- tooltipStore: {
32560
- item: null,
32561
- visible: false
32534
+ function getItemOns(renderOpts, params) {
32535
+ var $form = params.$form,
32536
+ data = params.data,
32537
+ field = params.field;
32538
+ return getComponentOns(renderOpts, params, {
32539
+ model: function model(value) {
32540
+ // 处理 model 值双向绑定
32541
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, value);
32562
32542
  },
32563
- itemFormatCache: {}
32564
- };
32543
+ change: function change() {
32544
+ // 处理 change 事件相关逻辑
32545
+ $form.updateStatus(params);
32546
+ }
32547
+ });
32565
32548
  }
32566
- /* harmony default export */ var src_form = (/* define-vxe-component start */defineVxeComponent({
32567
- name: 'VxeForm',
32568
- mixins: [globalMixins.sizeMixin],
32569
- props: {
32570
- collapseStatus: {
32571
- type: Boolean,
32572
- default: true
32573
- },
32574
- loading: Boolean,
32575
- data: Object,
32576
- size: {
32577
- type: String,
32578
- default: function _default() {
32579
- return getConfig().form.size || getConfig().size;
32580
- }
32581
- },
32582
- span: {
32583
- type: [String, Number],
32584
- default: function _default() {
32585
- return getConfig().form.span;
32586
- }
32587
- },
32588
- align: {
32589
- type: String,
32590
- default: function _default() {
32591
- return getConfig().form.align;
32592
- }
32593
- },
32594
- verticalAlign: {
32595
- type: String,
32596
- default: function _default() {
32597
- return getConfig().form.verticalAlign;
32598
- }
32599
- },
32600
- border: {
32601
- type: Boolean,
32602
- default: function _default() {
32603
- return getConfig().form.border;
32604
- }
32605
- },
32606
- titleBackground: {
32607
- type: Boolean,
32608
- default: function _default() {
32609
- return getConfig().form.titleBackground;
32610
- }
32611
- },
32612
- titleBold: {
32613
- type: Boolean,
32614
- default: function _default() {
32615
- return getConfig().form.titleBold;
32616
- }
32617
- },
32618
- titleAlign: {
32619
- type: String,
32620
- default: function _default() {
32621
- return getConfig().form.titleAlign;
32622
- }
32549
+ function getNativeItemOns(renderOpts, params) {
32550
+ var $form = params.$form,
32551
+ data = params.data,
32552
+ field = params.field;
32553
+ return getElementOns(renderOpts, params, function (evnt) {
32554
+ // 处理 model 值双向绑定
32555
+ var itemValue = evnt.target.value;
32556
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, itemValue);
32557
+ }, function () {
32558
+ // 处理 change 事件相关逻辑
32559
+ $form.updateStatus(params);
32560
+ });
32561
+ }
32562
+ function renderNativeOptgroup(h, renderOpts, params, renderOptionsMethods) {
32563
+ var optionGroups = renderOpts.optionGroups,
32564
+ _renderOpts$optionGro = renderOpts.optionGroupProps,
32565
+ optionGroupProps = _renderOpts$optionGro === void 0 ? {} : _renderOpts$optionGro;
32566
+ var groupOptions = optionGroupProps.options || 'options';
32567
+ var groupLabel = optionGroupProps.label || 'label';
32568
+ if (optionGroups) {
32569
+ return optionGroups.map(function (group, gIndex) {
32570
+ return h('optgroup', {
32571
+ key: gIndex,
32572
+ attrs: {
32573
+ label: group[groupLabel]
32574
+ }
32575
+ }, renderOptionsMethods(group[groupOptions], renderOpts, params));
32576
+ });
32577
+ }
32578
+ return [];
32579
+ }
32580
+ /**
32581
+ * 渲染表单-项
32582
+ * 用于渲染原生的标签
32583
+ */
32584
+ function nativeItemRender(h, renderOpts, params) {
32585
+ var data = params.data,
32586
+ field = params.field;
32587
+ var name = renderOpts.name;
32588
+ var attrs = getNativeAttrs(renderOpts);
32589
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32590
+ return [h(name, {
32591
+ class: "vxe-default-".concat(name),
32592
+ attrs: attrs,
32593
+ domProps: {
32594
+ value: attrs && name === 'input' && (attrs.type === 'submit' || attrs.type === 'reset') ? null : itemValue
32623
32595
  },
32624
- titleWidth: {
32625
- type: [String, Number],
32626
- default: function _default() {
32627
- return getConfig().form.titleWidth;
32596
+ on: getNativeItemOns(renderOpts, params)
32597
+ })];
32598
+ }
32599
+ function defaultItemRender(h, renderOpts, params) {
32600
+ var data = params.data,
32601
+ field = params.field;
32602
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32603
+ return [h(getDefaultComponent(renderOpts), {
32604
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
32605
+ on: getItemOns(renderOpts, params)
32606
+ })];
32607
+ }
32608
+ /**
32609
+ * 已废弃
32610
+ * @deprecated
32611
+ */
32612
+ function oldItemRender(h, renderOpts, params) {
32613
+ var data = params.data,
32614
+ field = params.field;
32615
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32616
+ return [h(getOldComponent(renderOpts), {
32617
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
32618
+ on: getItemOns(renderOpts, params)
32619
+ })];
32620
+ }
32621
+ /**
32622
+ * 已废弃
32623
+ * @deprecated
32624
+ */
32625
+ function oldButtonItemRender(h, renderOpts, params) {
32626
+ return [h('vxe-button', {
32627
+ props: getComponentFormItemProps(renderOpts, params, null),
32628
+ on: getComponentOns(renderOpts, params)
32629
+ })];
32630
+ }
32631
+ /**
32632
+ * 已废弃
32633
+ * @deprecated
32634
+ */
32635
+ function oldButtonsItemRender(h, renderOpts, params) {
32636
+ return renderOpts.children.map(function (childRenderOpts) {
32637
+ return oldButtonItemRender(h, childRenderOpts, params)[0];
32638
+ });
32639
+ }
32640
+ /**
32641
+ * 渲染原生的 select 标签
32642
+ */
32643
+ function renderNativeFormOptions(h, options, renderOpts, params) {
32644
+ var data = params.data,
32645
+ field = params.field;
32646
+ var _renderOpts$optionPro = renderOpts.optionProps,
32647
+ optionProps = _renderOpts$optionPro === void 0 ? {} : _renderOpts$optionPro;
32648
+ var labelProp = optionProps.label || 'label';
32649
+ var valueProp = optionProps.value || 'value';
32650
+ var disabledProp = optionProps.disabled || 'disabled';
32651
+ var cellValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32652
+ if (options) {
32653
+ return options.map(function (item, oIndex) {
32654
+ return h('option', {
32655
+ key: oIndex,
32656
+ props: {
32657
+ value: item[valueProp],
32658
+ disabled: item[disabledProp],
32659
+ /* eslint-disable eqeqeq */
32660
+ selected: item[valueProp] == cellValue
32661
+ }
32662
+ }, item[labelProp]);
32663
+ });
32664
+ }
32665
+ return [];
32666
+ }
32667
+ /**
32668
+ * 渲染表单-项
32669
+ */
32670
+ function defaultFormItemRender(h, renderOpts, params) {
32671
+ var data = params.data,
32672
+ field = params.field;
32673
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32674
+ return [h(getDefaultComponent(renderOpts), {
32675
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
32676
+ on: getItemOns(renderOpts, params)
32677
+ })];
32678
+ }
32679
+ function formItemRadioAndCheckboxRender(h, renderOpts, params) {
32680
+ var options = renderOpts.options,
32681
+ optionProps = renderOpts.optionProps;
32682
+ var data = params.data,
32683
+ field = params.field;
32684
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32685
+ return [h(getDefaultComponent(renderOpts), {
32686
+ props: _objectSpread2({
32687
+ options: options,
32688
+ optionProps: optionProps
32689
+ }, getComponentFormItemProps(renderOpts, params, itemValue)),
32690
+ on: getItemOns(renderOpts, params)
32691
+ })];
32692
+ }
32693
+ /**
32694
+ * 已废弃
32695
+ * @deprecated
32696
+ */
32697
+ function oldFormItemRadioAndCheckboxRender(h, renderOpts, params) {
32698
+ var name = renderOpts.name,
32699
+ options = renderOpts.options,
32700
+ _renderOpts$optionPro2 = renderOpts.optionProps,
32701
+ optionProps = _renderOpts$optionPro2 === void 0 ? {} : _renderOpts$optionPro2;
32702
+ var data = params.data,
32703
+ field = params.field;
32704
+ var labelProp = optionProps.label || 'label';
32705
+ var valueProp = optionProps.value || 'value';
32706
+ var disabledProp = optionProps.disabled || 'disabled';
32707
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32708
+ var compName = getOldComponentName(name);
32709
+ // 如果是分组
32710
+ if (options) {
32711
+ return [h("".concat(compName, "-group"), {
32712
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
32713
+ on: getItemOns(renderOpts, params),
32714
+ scopedSlots: {
32715
+ default: function _default() {
32716
+ return options.map(function (item, index) {
32717
+ return h(compName, {
32718
+ key: index,
32719
+ props: {
32720
+ label: item[valueProp],
32721
+ content: item[labelProp],
32722
+ disabled: item[disabledProp]
32723
+ }
32724
+ });
32725
+ });
32726
+ }
32628
32727
  }
32629
- },
32630
- titleColon: {
32631
- type: Boolean,
32632
- default: function _default() {
32633
- return getConfig().form.titleColon;
32634
- }
32635
- },
32636
- titleAsterisk: {
32637
- type: Boolean,
32638
- default: function _default() {
32639
- return getConfig().form.titleAsterisk;
32640
- }
32641
- },
32642
- titleOverflow: {
32643
- type: [Boolean, String],
32644
- default: function _default() {
32645
- return getConfig().form.titleOverflow;
32646
- }
32647
- },
32648
- vertical: {
32649
- type: Boolean,
32650
- default: function _default() {
32651
- return getConfig().form.vertical;
32652
- }
32653
- },
32654
- padding: {
32655
- type: Boolean,
32656
- default: function _default() {
32657
- return getConfig().form.padding;
32658
- }
32659
- },
32660
- className: [String, Function],
32661
- readonly: Boolean,
32662
- disabled: Boolean,
32663
- items: Array,
32664
- rules: Object,
32665
- preventSubmit: {
32666
- type: Boolean,
32667
- default: function _default() {
32668
- return getConfig().form.preventSubmit;
32669
- }
32670
- },
32671
- validConfig: Object,
32672
- tooltipConfig: Object,
32673
- collapseConfig: Object,
32674
- customLayout: {
32675
- type: Boolean,
32676
- default: function _default() {
32677
- return getConfig().form.customLayout;
32678
- }
32679
- },
32680
- params: Object
32728
+ })];
32729
+ }
32730
+ return [h(compName, {
32731
+ props: getComponentFormItemProps(renderOpts, params, itemValue),
32732
+ on: getItemOns(renderOpts, params)
32733
+ })];
32734
+ }
32735
+ /**
32736
+ * 表单 - 渲染器
32737
+ */
32738
+ renderer.mixin({
32739
+ input: {
32740
+ formItemAutoFocus: 'input',
32741
+ renderFormItemContent: nativeItemRender
32681
32742
  },
32682
- inject: {
32683
- $xeGrid: {
32684
- default: null
32743
+ textarea: {
32744
+ formItemAutoFocus: 'textarea',
32745
+ renderFormItemContent: nativeItemRender
32746
+ },
32747
+ select: {
32748
+ formItemAutoFocus: 'input',
32749
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32750
+ return [h('select', {
32751
+ class: 'vxe-default-select',
32752
+ attrs: _objectSpread2({}, getNativeAttrs(renderOpts)),
32753
+ on: getNativeItemOns(renderOpts, params)
32754
+ }, renderOpts.optionGroups ? renderNativeOptgroup(h, renderOpts, params, renderNativeFormOptions) : renderNativeFormOptions(h, renderOpts.options, renderOpts, params))];
32685
32755
  }
32686
32756
  },
32687
- provide: function provide() {
32688
- var $xeForm = this;
32689
- return {
32690
- $xeForm: $xeForm,
32691
- xeFormItemInfo: null,
32692
- $xeFormGroup: null,
32693
- $xeFormItem: null
32694
- };
32757
+ VxeInput: {
32758
+ formItemAutoFocus: 'input',
32759
+ renderFormItemContent: defaultItemRender
32695
32760
  },
32696
- data: function data() {
32697
- var xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
32698
- var reactData = {
32699
- collapseAll: false,
32700
- staticItems: [],
32701
- formItems: [],
32702
- itemWidth: 0
32703
- };
32704
- var internalData = createInternalData();
32705
- return {
32706
- xID: xID,
32707
- reactData: reactData,
32708
- internalData: internalData
32709
- };
32761
+ VxeNumberInput: {
32762
+ formItemAutoFocus: 'input',
32763
+ renderFormItemContent: defaultItemRender
32710
32764
  },
32711
- computed: _objectSpread2(_objectSpread2({}, {}), {}, {
32712
- computeValidOpts: function computeValidOpts() {
32713
- var $xeForm = this;
32714
- var props = $xeForm;
32715
- return Object.assign({}, getConfig().form.validConfig, props.validConfig);
32716
- },
32717
- computeTooltipOpts: function computeTooltipOpts() {
32718
- var $xeForm = this;
32719
- var props = $xeForm;
32720
- return Object.assign({}, getConfig().tooltip, getConfig().form.tooltipConfig, props.tooltipConfig);
32721
- },
32722
- computeCollapseOpts: function computeCollapseOpts() {
32723
- var $xeForm = this;
32724
- var props = $xeForm;
32725
- return Object.assign({}, getConfig().form.collapseConfig, props.collapseConfig);
32726
- },
32727
- computeAutoItemWidthList: function computeAutoItemWidthList() {
32728
- var $xeForm = this;
32729
- var props = $xeForm;
32730
- var reactData = $xeForm.reactData;
32731
- var allTitleWidth = props.titleWidth,
32732
- allVertical = props.vertical;
32733
- var formItems = reactData.formItems;
32734
- var itemList = [];
32735
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(formItems, function (item) {
32736
- var titleWidth = item.titleWidth,
32737
- vertical = item.vertical;
32738
- if (titleWidth === 'auto') {
32739
- itemList.push(item);
32740
- } else {
32741
- var itemVertical = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(vertical) ? allVertical : vertical;
32742
- var itemTitleWidth = itemVertical ? null : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(titleWidth) ? allTitleWidth : titleWidth;
32743
- if (itemTitleWidth === 'auto' && (!item.children || !item.children.length)) {
32744
- itemList.push(item);
32765
+ VxePasswordInput: {
32766
+ formItemAutoFocus: 'input',
32767
+ renderFormItemContent: defaultItemRender
32768
+ },
32769
+ VxeTextarea: {
32770
+ formItemAutoFocus: 'textarea',
32771
+ renderFormItemContent: defaultItemRender
32772
+ },
32773
+ VxeDatePicker: {
32774
+ formItemAutoFocus: 'input',
32775
+ renderFormItemContent: defaultItemRender
32776
+ },
32777
+ VxeDateRangePicker: {
32778
+ formItemAutoFocus: 'input',
32779
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32780
+ var startField = renderOpts.startField,
32781
+ endField = renderOpts.endField;
32782
+ var $form = params.$form,
32783
+ data = params.data,
32784
+ field = params.field;
32785
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32786
+ var seProps = {};
32787
+ var seOs = {};
32788
+ if (startField && endField) {
32789
+ seProps.startValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, startField);
32790
+ seProps.endValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, endField);
32791
+ seOs['update:startValue'] = function (value) {
32792
+ if (startField) {
32793
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, startField, value);
32745
32794
  }
32746
- }
32747
- }, {
32748
- children: 'children'
32749
- });
32750
- return itemList;
32751
- }
32752
- }),
32753
- methods: {
32754
- //
32755
- // Method
32756
- //
32757
- dispatchEvent: function dispatchEvent(type, params, evnt) {
32758
- var $xeForm = this;
32759
- $xeForm.$emit(type, createEvent(evnt, {
32760
- $form: $xeForm
32761
- }, params));
32762
- },
32763
- callSlot: function callSlot(slotFunc, params, h) {
32764
- var $xeForm = this;
32765
- var slots = $xeForm.$scopedSlots;
32766
- if (slotFunc) {
32767
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(slotFunc)) {
32768
- slotFunc = slots[slotFunc] || null;
32769
- }
32770
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)) {
32771
- return vn_getSlotVNs(slotFunc.call($xeForm, params, h));
32772
- }
32773
- }
32774
- return [];
32775
- },
32776
- loadItem: function loadItem(list) {
32777
- var $xeForm = this;
32778
- var slots = $xeForm.$scopedSlots;
32779
- var reactData = $xeForm.reactData;
32780
- var internalData = $xeForm.internalData;
32781
- if (list.length) {
32782
- list.forEach(function (item) {
32783
- if (item.slots) {
32784
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(item.slots, function (func) {
32785
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
32786
- if (!slots[func]) {
32787
- errLog('vxe.error.notSlot', [func]);
32788
- }
32789
- }
32790
- });
32795
+ };
32796
+ seOs['update:endValue'] = function (value) {
32797
+ if (endField) {
32798
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, endField, value);
32791
32799
  }
32792
- });
32800
+ };
32793
32801
  }
32794
- reactData.staticItems = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(list, function (item) {
32795
- return createItem($xeForm, item);
32796
- }, {
32797
- children: 'children'
32798
- });
32799
- internalData.itemFormatCache = {};
32800
- return $xeForm.$nextTick().then(function () {
32801
- return $xeForm.recalculate();
32802
- });
32803
- },
32804
- getItems: function getItems() {
32805
- var $xeForm = this;
32806
- var reactData = $xeForm.reactData;
32807
- var itemList = [];
32808
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(reactData.formItems, function (item) {
32809
- itemList.push(item);
32810
- }, {
32811
- children: 'children'
32812
- });
32813
- return itemList;
32814
- },
32815
- getItemByField: function getItemByField(field) {
32816
- var $xeForm = this;
32817
- var reactData = $xeForm.reactData;
32818
- var rest = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(reactData.formItems, function (item) {
32819
- return item.field === field;
32820
- }, {
32821
- children: 'children'
32822
- });
32823
- return rest ? rest.item : null;
32824
- },
32825
- getCollapseStatus: function getCollapseStatus() {
32826
- var $xeForm = this;
32827
- var reactData = $xeForm.reactData;
32828
- return reactData.collapseAll;
32829
- },
32830
- toggleCollapse: function toggleCollapse() {
32831
- var $xeForm = this;
32832
- var reactData = $xeForm.reactData;
32833
- var status = !$xeForm.getCollapseStatus();
32834
- reactData.collapseAll = status;
32835
- $xeForm.$emit('update:collapseStatus', status);
32836
- return $xeForm.$nextTick();
32837
- },
32838
- toggleCollapseEvent: function toggleCollapseEvent(evnt) {
32839
- var $xeForm = this;
32840
- var props = $xeForm;
32841
- var $xeGrid = $xeForm.$xeGrid;
32842
- $xeForm.toggleCollapse();
32843
- var status = $xeForm.getCollapseStatus();
32844
- $xeForm.dispatchEvent('toggle-collapse', {
32845
- status: status,
32846
- collapse: status,
32847
- data: props.data
32848
- }, evnt);
32849
- $xeForm.dispatchEvent('collapse', {
32850
- status: status,
32851
- collapse: status,
32852
- data: props.data
32853
- }, evnt);
32854
- $xeForm.$nextTick(function () {
32855
- $xeForm.recalculate();
32856
- if ($xeGrid) {
32857
- $xeGrid.recalculate();
32858
- }
32859
- });
32860
- },
32861
- clearValidate: function clearValidate(fieldOrItem) {
32862
- var $xeForm = this;
32863
- if (fieldOrItem) {
32864
- var fields = fieldOrItem;
32865
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
32866
- fields = [fieldOrItem];
32867
- }
32868
- fields.forEach(function (field) {
32869
- if (field) {
32870
- var item = handleFieldOrItem($xeForm, field);
32871
- if (item) {
32872
- item.showError = false;
32873
- }
32802
+ return [h(getDefaultComponent(renderOpts), {
32803
+ props: getComponentFormItemProps(renderOpts, params, itemValue, seProps),
32804
+ on: getComponentOns(renderOpts, params, {
32805
+ model: function model(value) {
32806
+ // 处理 model 值双向绑定
32807
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, value);
32808
+ },
32809
+ change: function change() {
32810
+ // 处理 change 事件相关逻辑
32811
+ $form.updateStatus(params);
32874
32812
  }
32875
- });
32876
- } else {
32877
- $xeForm.getItems().forEach(function (item) {
32878
- item.showError = false;
32879
- });
32813
+ }, seOs)
32814
+ })];
32815
+ }
32816
+ },
32817
+ VxeButton: {
32818
+ renderFormItemContent: defaultFormItemRender
32819
+ },
32820
+ VxeButtonGroup: {
32821
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32822
+ var options = renderOpts.options;
32823
+ var data = params.data,
32824
+ field = params.field;
32825
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32826
+ return [h(getDefaultComponent(renderOpts), {
32827
+ props: _objectSpread2({
32828
+ options: options
32829
+ }, getComponentFormItemProps(renderOpts, params, itemValue)),
32830
+ on: getItemOns(renderOpts, params)
32831
+ })];
32832
+ }
32833
+ },
32834
+ VxeSelect: {
32835
+ formItemAutoFocus: 'input',
32836
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32837
+ var data = params.data,
32838
+ field = params.field;
32839
+ var options = renderOpts.options,
32840
+ optionProps = renderOpts.optionProps,
32841
+ optionGroups = renderOpts.optionGroups,
32842
+ optionGroupProps = renderOpts.optionGroupProps;
32843
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32844
+ return [h(getDefaultComponent(renderOpts), {
32845
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32846
+ options: options,
32847
+ optionProps: optionProps,
32848
+ optionGroups: optionGroups,
32849
+ optionGroupProps: optionGroupProps
32850
+ }),
32851
+ on: getItemOns(renderOpts, params)
32852
+ })];
32853
+ }
32854
+ },
32855
+ VxeTreeSelect: {
32856
+ formItemAutoFocus: 'input',
32857
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32858
+ var data = params.data,
32859
+ field = params.field;
32860
+ var options = renderOpts.options,
32861
+ optionProps = renderOpts.optionProps;
32862
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32863
+ return [h(getDefaultComponent(renderOpts), {
32864
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32865
+ options: options,
32866
+ optionProps: optionProps
32867
+ }),
32868
+ on: getItemOns(renderOpts, params)
32869
+ })];
32870
+ }
32871
+ },
32872
+ VxeTableSelect: {
32873
+ formItemAutoFocus: 'input',
32874
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32875
+ var data = params.data,
32876
+ field = params.field;
32877
+ var options = renderOpts.options,
32878
+ optionProps = renderOpts.optionProps;
32879
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32880
+ return [h(getDefaultComponent(renderOpts), {
32881
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32882
+ options: options,
32883
+ optionProps: optionProps
32884
+ }),
32885
+ on: getItemOns(renderOpts, params)
32886
+ })];
32887
+ }
32888
+ },
32889
+ VxeColorPicker: {
32890
+ formItemAutoFocus: 'input',
32891
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32892
+ var data = params.data,
32893
+ field = params.field;
32894
+ var options = renderOpts.options;
32895
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32896
+ return [h(getDefaultComponent(renderOpts), {
32897
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32898
+ colors: options
32899
+ }),
32900
+ on: getItemOns(renderOpts, params)
32901
+ })];
32902
+ }
32903
+ },
32904
+ VxeIconPicker: {
32905
+ formItemAutoFocus: 'input',
32906
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32907
+ var data = params.data,
32908
+ field = params.field;
32909
+ var options = renderOpts.options;
32910
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32911
+ return [h(getDefaultComponent(renderOpts), {
32912
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32913
+ icons: options
32914
+ }),
32915
+ on: getItemOns(renderOpts, params)
32916
+ })];
32917
+ }
32918
+ },
32919
+ VxeRadio: {
32920
+ renderFormItemContent: defaultFormItemRender
32921
+ },
32922
+ VxeRadioGroup: {
32923
+ renderFormItemContent: formItemRadioAndCheckboxRender
32924
+ },
32925
+ VxeCheckbox: {
32926
+ renderFormItemContent: defaultFormItemRender
32927
+ },
32928
+ VxeCheckboxGroup: {
32929
+ renderFormItemContent: formItemRadioAndCheckboxRender
32930
+ },
32931
+ VxeSwitch: {
32932
+ renderFormItemContent: defaultItemRender
32933
+ },
32934
+ VxeRate: {
32935
+ renderFormItemContent: defaultItemRender
32936
+ },
32937
+ VxeSlider: {
32938
+ renderFormItemContent: defaultItemRender
32939
+ },
32940
+ VxeImage: {
32941
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32942
+ var data = params.data,
32943
+ field = params.field;
32944
+ var props = renderOpts.props;
32945
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32946
+ return [h(getDefaultComponent(renderOpts), {
32947
+ props: _objectSpread2(_objectSpread2({}, props), {}, {
32948
+ src: itemValue
32949
+ }),
32950
+ on: getItemOns(renderOpts, params)
32951
+ })];
32952
+ }
32953
+ },
32954
+ VxeImageGroup: {
32955
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32956
+ var data = params.data,
32957
+ field = params.field;
32958
+ var props = renderOpts.props;
32959
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32960
+ return [h(getDefaultComponent(renderOpts), {
32961
+ props: _objectSpread2(_objectSpread2({}, props), {}, {
32962
+ urlList: itemValue
32963
+ }),
32964
+ on: getItemOns(renderOpts, params)
32965
+ })];
32966
+ }
32967
+ },
32968
+ VxeUpload: {
32969
+ renderFormItemContent: defaultItemRender
32970
+ },
32971
+ // 以下已废弃
32972
+ $input: {
32973
+ formItemAutoFocus: 'input',
32974
+ renderFormItemContent: oldItemRender
32975
+ },
32976
+ $textarea: {
32977
+ formItemAutoFocus: 'textarea',
32978
+ renderFormItemContent: oldItemRender
32979
+ },
32980
+ $button: {
32981
+ renderFormItemContent: oldButtonItemRender
32982
+ },
32983
+ $buttons: {
32984
+ renderFormItemContent: oldButtonsItemRender
32985
+ },
32986
+ $select: {
32987
+ formItemAutoFocus: 'input',
32988
+ renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
32989
+ var data = params.data,
32990
+ field = params.field;
32991
+ var options = renderOpts.options,
32992
+ optionProps = renderOpts.optionProps,
32993
+ optionGroups = renderOpts.optionGroups,
32994
+ optionGroupProps = renderOpts.optionGroupProps;
32995
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32996
+ return [h(getOldComponent(renderOpts), {
32997
+ props: getComponentFormItemProps(renderOpts, params, itemValue, {
32998
+ options: options,
32999
+ optionProps: optionProps,
33000
+ optionGroups: optionGroups,
33001
+ optionGroupProps: optionGroupProps
33002
+ }),
33003
+ on: getItemOns(renderOpts, params)
33004
+ })];
33005
+ }
33006
+ },
33007
+ $radio: {
33008
+ renderFormItemContent: oldFormItemRadioAndCheckboxRender
33009
+ },
33010
+ $checkbox: {
33011
+ renderFormItemContent: oldFormItemRadioAndCheckboxRender
33012
+ },
33013
+ $switch: {
33014
+ renderFormItemContent: oldItemRender
33015
+ }
33016
+ // 以上已废弃
33017
+ });
33018
+ ;// CONCATENATED MODULE: ./packages/form/src/form.ts
33019
+
33020
+
33021
+
33022
+
33023
+
33024
+
33025
+
33026
+
33027
+
33028
+
33029
+
33030
+
33031
+
33032
+
33033
+
33034
+
33035
+
33036
+
33037
+
33038
+
33039
+
33040
+
33041
+
33042
+
33043
+
33044
+
33045
+
33046
+
33047
+
33048
+
33049
+
33050
+
33051
+
33052
+
33053
+
33054
+
33055
+
33056
+ var Rule = /*#__PURE__*/function () {
33057
+ function Rule(rule) {
33058
+ _classCallCheck(this, Rule);
33059
+ Object.assign(this, {
33060
+ $options: rule,
33061
+ required: rule.required,
33062
+ min: rule.min,
33063
+ max: rule.min,
33064
+ type: rule.type,
33065
+ pattern: rule.pattern,
33066
+ validator: rule.validator,
33067
+ trigger: rule.trigger,
33068
+ maxWidth: rule.maxWidth
33069
+ });
33070
+ }
33071
+ return _createClass(Rule, [{
33072
+ key: "content",
33073
+ get: function get() {
33074
+ return getFuncText(this.$options.content || this.$options.message);
33075
+ }
33076
+ }, {
33077
+ key: "message",
33078
+ get: function get() {
33079
+ return this.content;
33080
+ }
33081
+ }]);
33082
+ }(); // 如果存在 pattern,判断正则
33083
+ function validREValue(pattern, val) {
33084
+ if (pattern && !(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isRegExp(pattern) ? pattern : new RegExp(pattern)).test(val)) {
33085
+ return false;
33086
+ }
33087
+ return true;
33088
+ }
33089
+ // 如果存在 max,判断最大值
33090
+ function validMaxValue(max, num) {
33091
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(max) && num > external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(max)) {
33092
+ return false;
33093
+ }
33094
+ return true;
33095
+ }
33096
+ // 如果存在 min,判断最小值
33097
+ function validMinValue(min, num) {
33098
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(min) && num < external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(min)) {
33099
+ return false;
33100
+ }
33101
+ return true;
33102
+ }
33103
+ function validRuleValue(rule, val, required) {
33104
+ var type = rule.type,
33105
+ min = rule.min,
33106
+ max = rule.max,
33107
+ pattern = rule.pattern;
33108
+ var isArrType = type === 'array';
33109
+ var isNumType = type === 'number';
33110
+ var isStrType = type === 'string';
33111
+ var strVal = "".concat(val);
33112
+ if (!validREValue(pattern, strVal)) {
33113
+ return false;
33114
+ }
33115
+ if (isArrType) {
33116
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val)) {
33117
+ return false;
33118
+ }
33119
+ if (required) {
33120
+ if (!val.length) {
33121
+ return false;
32880
33122
  }
32881
- return $xeForm.$nextTick();
32882
- },
32883
- getResetValue: function getResetValue(item, data, itemValue) {
32884
- var $xeForm = this;
32885
- var $xeGrid = $xeForm.$xeGrid;
32886
- var field = item.field,
32887
- resetValue = item.resetValue;
32888
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(resetValue)) {
32889
- return resetValue({
32890
- field: field,
32891
- item: item,
32892
- data: data,
32893
- $form: $xeForm,
32894
- $grid: $xeGrid
32895
- });
32896
- } else if (resetValue === null) {
32897
- // 默认
32898
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(itemValue)) {
32899
- return [];
32900
- }
33123
+ }
33124
+ if (!validMinValue(min, val.length)) {
33125
+ return false;
33126
+ }
33127
+ if (!validMaxValue(max, val.length)) {
33128
+ return false;
33129
+ }
33130
+ } else if (isNumType) {
33131
+ var numVal = Number(val);
33132
+ if (isNaN(numVal)) {
33133
+ return false;
33134
+ }
33135
+ if (!validMinValue(min, numVal)) {
33136
+ return false;
33137
+ }
33138
+ if (!validMaxValue(max, numVal)) {
33139
+ return false;
33140
+ }
33141
+ } else {
33142
+ if (isStrType) {
33143
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val)) {
33144
+ return false;
32901
33145
  }
32902
- return resetValue;
32903
- },
32904
- reset: function reset() {
32905
- var $xeForm = this;
32906
- var props = $xeForm;
32907
- var $xeGrid = $xeForm.$xeGrid;
32908
- var internalData = $xeForm.internalData;
32909
- var data = props.data;
32910
- var itemList = $xeForm.getItems();
32911
- if (data) {
32912
- itemList.forEach(function (item) {
32913
- var field = item.field,
32914
- itemRender = item.itemRender;
32915
- if (isEnableConf(itemRender)) {
32916
- var name = itemRender.name,
32917
- startField = itemRender.startField,
32918
- endField = itemRender.endField;
32919
- var compConf = renderer.get(name);
32920
- var fiResetMethod = compConf ? compConf.formItemResetMethod || compConf.itemResetMethod : null;
32921
- if (compConf && fiResetMethod) {
32922
- fiResetMethod({
32923
- data: data,
32924
- field: field,
32925
- property: field,
32926
- item: item,
32927
- $form: $xeForm,
32928
- $grid: $xeGrid
32929
- });
32930
- } else if (field) {
32931
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
32932
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, $xeForm.getResetValue(item, data, itemValue));
32933
- }
32934
- if (startField && endField) {
32935
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, startField, $xeForm.getResetValue(item, data, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, startField)));
32936
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, endField, $xeForm.getResetValue(item, data, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, endField)));
32937
- }
32938
- }
32939
- });
33146
+ }
33147
+ if (required) {
33148
+ if (!strVal) {
33149
+ return false;
32940
33150
  }
32941
- internalData.itemFormatCache = {};
32942
- $xeForm.clearValidate();
32943
- return $xeForm.recalculate();
33151
+ }
33152
+ if (!validMinValue(min, strVal.length)) {
33153
+ return false;
33154
+ }
33155
+ if (!validMaxValue(max, strVal.length)) {
33156
+ return false;
33157
+ }
33158
+ }
33159
+ return true;
33160
+ }
33161
+ function checkRuleStatus(rule, val) {
33162
+ var required = rule.required;
33163
+ var isEmptyVal = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(val) ? !val.length : eqEmptyValue(val);
33164
+ if (required) {
33165
+ if (isEmptyVal) {
33166
+ return false;
33167
+ }
33168
+ if (!validRuleValue(rule, val, required)) {
33169
+ return false;
33170
+ }
33171
+ } else {
33172
+ if (!isEmptyVal) {
33173
+ if (!validRuleValue(rule, val, required)) {
33174
+ return false;
33175
+ }
33176
+ }
33177
+ }
33178
+ return true;
33179
+ }
33180
+ function createInternalData() {
33181
+ return {
33182
+ meTimeout: undefined,
33183
+ stTimeout: undefined,
33184
+ tooltipStore: {
33185
+ item: null,
33186
+ visible: false
32944
33187
  },
32945
- resetEvent: function resetEvent(evnt) {
32946
- var $xeForm = this;
32947
- var props = $xeForm;
32948
- evnt.preventDefault();
32949
- $xeForm.reset();
32950
- $xeForm.dispatchEvent('reset', {
32951
- data: props.data
32952
- }, evnt);
33188
+ itemFormatCache: {}
33189
+ };
33190
+ }
33191
+ /* harmony default export */ var src_form = (/* define-vxe-component start */defineVxeComponent({
33192
+ name: 'VxeForm',
33193
+ mixins: [globalMixins.sizeMixin],
33194
+ props: {
33195
+ collapseStatus: {
33196
+ type: Boolean,
33197
+ default: true
32953
33198
  },
32954
- handleFocus: function handleFocus(fields) {
32955
- var $xeForm = this;
32956
- var props = $xeForm;
32957
- var $xeGrid = $xeForm.$xeGrid;
32958
- var el = $xeForm.$refs.refElem;
32959
- if (el) {
32960
- for (var i = 0; i < fields.length; i++) {
32961
- var field = fields[i];
32962
- var item = $xeForm.getItemByField(field);
32963
- if (item && isEnableConf(item.itemRender)) {
32964
- var itemRender = item.itemRender;
32965
- var compConf = renderer.get(itemRender.name);
32966
- // 定位到第一个
32967
- if (!i) {
32968
- scrollToView(el.querySelector(".".concat(item.id)));
32969
- }
32970
- var inputElem = null;
32971
- var autoFocus = itemRender.autoFocus || itemRender.autofocus || (compConf ? compConf.formItemAutoFocus : null);
32972
- // 如果指定了聚焦 class
32973
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(autoFocus)) {
32974
- inputElem = autoFocus({
32975
- $form: $xeForm,
32976
- $grid: $xeGrid,
32977
- item: item,
32978
- data: props.data,
32979
- field: field
32980
- });
32981
- } else {
32982
- if (autoFocus === true) {
32983
- // 自动匹配模式,会自动匹配第一个可输入元素
32984
- inputElem = el.querySelector(".".concat(item.id, " input,textarea"));
32985
- } else if (autoFocus) {
32986
- inputElem = el.querySelector(".".concat(item.id, " ").concat(autoFocus));
32987
- }
32988
- }
32989
- if (inputElem) {
32990
- inputElem.focus();
32991
- break;
32992
- }
32993
- }
32994
- }
33199
+ loading: Boolean,
33200
+ data: Object,
33201
+ size: {
33202
+ type: String,
33203
+ default: function _default() {
33204
+ return getConfig().form.size || getConfig().size;
32995
33205
  }
32996
33206
  },
32997
- /**
32998
- * 校验数据
32999
- * 按表格行、列顺序依次校验(同步或异步)
33000
- * 校验规则根据索引顺序依次校验,如果是异步则会等待校验完成才会继续校验下一列
33001
- * 如果校验失败则,触发回调或者 Promise<(ErrMap 校验不通过列的信息)>
33002
- * 如果是传回调方式这返回一个 (ErrMap 校验不通过列的信息)
33003
- *
33004
- * rule 配置:
33005
- * required=Boolean 是否必填
33006
- * min=Number 最小长度
33007
- * max=Number 最大长度
33008
- * validator=Function({ itemValue, rule, rules, data, property }) 自定义校验,接收一个 Promise
33009
- * trigger=change 触发方式
33010
- */
33011
- validItemRules: function validItemRules(validType, fields, val) {
33012
- var $xeForm = this;
33013
- var props = $xeForm;
33014
- var data = props.data,
33015
- formRules = props.rules;
33016
- var errorMaps = {};
33017
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fields)) {
33018
- fields = [fields];
33207
+ span: {
33208
+ type: [String, Number],
33209
+ default: function _default() {
33210
+ return getConfig().form.span;
33019
33211
  }
33020
- return Promise.all(fields.map(function (property) {
33021
- var errorRules = [];
33022
- var syncVailds = [];
33023
- if (property && formRules) {
33024
- var rules = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(formRules, property);
33025
- if (rules) {
33026
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(val) ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, property) : val;
33027
- rules.forEach(function (rule) {
33028
- var trigger = rule.trigger,
33029
- validator = rule.validator;
33030
- if (validType === 'all' || !trigger || validType === trigger) {
33031
- if (validator) {
33032
- var validParams = {
33033
- itemValue: itemValue,
33034
- rule: rule,
33035
- rules: rules,
33036
- data: data,
33037
- field: property,
33038
- property: property,
33039
- $form: $xeForm
33040
- };
33041
- var customValid;
33042
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(validator)) {
33043
- var gvItem = validators.get(validator);
33044
- if (gvItem) {
33045
- var validatorMethod = gvItem.formItemValidatorMethod || gvItem.itemValidatorMethod;
33046
- if (validatorMethod) {
33047
- customValid = validatorMethod(validParams);
33048
- } else {
33049
- warnLog('vxe.error.notValidators', [validator]);
33050
- }
33051
- } else {
33052
- errLog('vxe.error.notValidators', [validator]);
33053
- }
33054
- } else {
33055
- customValid = validator(validParams);
33056
- }
33057
- if (customValid) {
33058
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isError(customValid)) {
33059
- errorRules.push(new Rule({
33060
- type: 'custom',
33061
- trigger: trigger,
33062
- content: customValid.message,
33063
- rule: new Rule(rule)
33064
- }));
33065
- } else if (customValid.catch) {
33066
- // 如果为异步校验(注:异步校验是并发无序的)
33067
- syncVailds.push(customValid.catch(function (e) {
33068
- errorRules.push(new Rule({
33069
- type: 'custom',
33070
- trigger: trigger,
33071
- content: e ? e.message : rule.content || rule.message,
33072
- rule: new Rule(rule)
33073
- }));
33074
- }));
33075
- }
33076
- }
33077
- } else {
33078
- if (!checkRuleStatus(rule, itemValue)) {
33079
- errorRules.push(new Rule(rule));
33080
- }
33081
- }
33082
- }
33083
- });
33084
- }
33085
- }
33086
- return Promise.all(syncVailds).then(function () {
33087
- if (errorRules.length) {
33088
- errorMaps[property] = errorRules.map(function (rule) {
33089
- return {
33090
- $form: $xeForm,
33091
- rule: rule,
33092
- data: data,
33093
- field: property,
33094
- property: property
33095
- };
33096
- });
33097
- }
33098
- });
33099
- })).then(function () {
33100
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEmpty(errorMaps)) {
33101
- return Promise.reject(errorMaps);
33102
- }
33103
- });
33104
33212
  },
33105
- beginValidate: function beginValidate(itemList, type, callback) {
33106
- var $xeForm = this;
33107
- var props = $xeForm;
33108
- var internalData = $xeForm.internalData;
33109
- var data = props.data,
33110
- formRules = props.rules;
33111
- var validOpts = $xeForm.computeValidOpts;
33112
- var validRest = {};
33113
- var validFields = [];
33114
- var itemValids = [];
33115
- clearTimeout(internalData.meTimeout);
33116
- if (data && formRules) {
33117
- itemList.forEach(function (item) {
33118
- var field = item.field;
33119
- if (field && !isHiddenItem($xeForm, item) && isActiveItem($xeForm, item)) {
33120
- itemValids.push($xeForm.validItemRules(type || 'all', field).then(function () {
33121
- item.errRule = null;
33122
- }).catch(function (errorMaps) {
33123
- var rest = errorMaps[field];
33124
- if (!validRest[field]) {
33125
- validRest[field] = [];
33126
- }
33127
- validRest[field].push(rest);
33128
- validFields.push(field);
33129
- item.errRule = rest[0].rule;
33130
- return Promise.reject(rest);
33131
- }));
33132
- }
33133
- });
33134
- return Promise.all(itemValids).then(function () {
33135
- if (callback) {
33136
- callback();
33137
- }
33138
- }).catch(function () {
33139
- return new Promise(function (resolve) {
33140
- internalData.meTimeout = setTimeout(function () {
33141
- itemList.forEach(function (item) {
33142
- if (item.errRule) {
33143
- item.showError = true;
33144
- }
33145
- });
33146
- }, 20);
33147
- if (validOpts.autoPos !== false) {
33148
- $xeForm.$nextTick(function () {
33149
- $xeForm.handleFocus(validFields);
33150
- });
33151
- }
33152
- if (callback) {
33153
- callback(validRest);
33154
- resolve();
33155
- } else {
33156
- resolve(validRest);
33157
- }
33158
- });
33159
- });
33213
+ align: {
33214
+ type: String,
33215
+ default: function _default() {
33216
+ return getConfig().form.align;
33160
33217
  }
33161
- if (callback) {
33162
- callback();
33218
+ },
33219
+ verticalAlign: {
33220
+ type: String,
33221
+ default: function _default() {
33222
+ return getConfig().form.verticalAlign;
33163
33223
  }
33164
- return Promise.resolve();
33165
33224
  },
33166
- validate: function validate(callback) {
33167
- var $xeForm = this;
33168
- var props = $xeForm;
33169
- var readonly = props.readonly;
33170
- $xeForm.clearValidate();
33171
- if (readonly) {
33172
- return $xeForm.$nextTick();
33225
+ border: {
33226
+ type: Boolean,
33227
+ default: function _default() {
33228
+ return getConfig().form.border;
33173
33229
  }
33174
- return $xeForm.beginValidate($xeForm.getItems(), '', callback).then(function (params) {
33175
- $xeForm.recalculate();
33176
- return params;
33177
- });
33178
33230
  },
33179
- validateField: function validateField(fieldOrItem, callback) {
33180
- var $xeForm = this;
33181
- var props = $xeForm;
33182
- var readonly = props.readonly;
33183
- if (readonly) {
33184
- return $xeForm.$nextTick();
33231
+ titleBackground: {
33232
+ type: Boolean,
33233
+ default: function _default() {
33234
+ return getConfig().form.titleBackground;
33185
33235
  }
33186
- var fields = [];
33187
- if (fieldOrItem) {
33188
- if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
33189
- fields = fieldOrItem;
33190
- } else {
33191
- fields = [fieldOrItem];
33192
- }
33236
+ },
33237
+ titleBold: {
33238
+ type: Boolean,
33239
+ default: function _default() {
33240
+ return getConfig().form.titleBold;
33193
33241
  }
33194
- return $xeForm.beginValidate(fields.map(function (field) {
33195
- return handleFieldOrItem($xeForm, field);
33196
- }), '', callback).then(function (params) {
33197
- $xeForm.recalculate();
33198
- return params;
33199
- });
33200
33242
  },
33201
- submitEvent: function submitEvent(evnt) {
33202
- var $xeForm = this;
33203
- var props = $xeForm;
33204
- var readonly = props.readonly;
33205
- evnt.preventDefault();
33206
- if (!props.preventSubmit) {
33207
- $xeForm.clearValidate();
33208
- if (readonly) {
33209
- $xeForm.dispatchEvent('submit', {
33210
- data: props.data
33211
- }, evnt);
33212
- $xeForm.recalculate();
33213
- return;
33214
- }
33215
- $xeForm.beginValidate($xeForm.getItems()).then(function (errMap) {
33216
- if (errMap) {
33217
- $xeForm.dispatchEvent('submit-invalid', {
33218
- data: props.data,
33219
- errMap: errMap
33220
- }, evnt);
33221
- } else {
33222
- $xeForm.dispatchEvent('submit', {
33223
- data: props.data
33224
- }, evnt);
33225
- }
33226
- $xeForm.recalculate();
33227
- });
33243
+ titleAlign: {
33244
+ type: String,
33245
+ default: function _default() {
33246
+ return getConfig().form.titleAlign;
33228
33247
  }
33229
33248
  },
33230
- closeTooltip: function closeTooltip() {
33231
- var $xeForm = this;
33232
- var internalData = $xeForm.internalData;
33233
- var tooltipStore = internalData.tooltipStore;
33234
- var $tooltip = $xeForm.$refs.refTooltip;
33235
- if (tooltipStore.visible) {
33236
- Object.assign(tooltipStore, {
33237
- item: null,
33238
- visible: false
33239
- });
33240
- if ($tooltip) {
33241
- $tooltip.close();
33242
- }
33249
+ titleWidth: {
33250
+ type: [String, Number],
33251
+ default: function _default() {
33252
+ return getConfig().form.titleWidth;
33253
+ }
33254
+ },
33255
+ titleColon: {
33256
+ type: Boolean,
33257
+ default: function _default() {
33258
+ return getConfig().form.titleColon;
33259
+ }
33260
+ },
33261
+ titleAsterisk: {
33262
+ type: Boolean,
33263
+ default: function _default() {
33264
+ return getConfig().form.titleAsterisk;
33243
33265
  }
33244
- return $xeForm.$nextTick();
33245
33266
  },
33246
- triggerTitleTipEvent: function triggerTitleTipEvent(evnt, params) {
33247
- var $xeForm = this;
33248
- var internalData = $xeForm.internalData;
33249
- var item = params.item;
33250
- var tooltipStore = internalData.tooltipStore;
33251
- var $tooltip = $xeForm.$refs.refTooltip;
33252
- var overflowElem = evnt.currentTarget.children[0];
33253
- var content = (overflowElem.textContent || '').trim();
33254
- var isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth;
33255
- clearTimeout(internalData.stTimeout);
33256
- if (tooltipStore.item !== item) {
33257
- $xeForm.closeTooltip();
33267
+ titleOverflow: {
33268
+ type: [Boolean, String],
33269
+ default: function _default() {
33270
+ return getConfig().form.titleOverflow;
33258
33271
  }
33259
- if (content && isCellOverflow) {
33260
- Object.assign(tooltipStore, {
33261
- item: item,
33262
- visible: true
33263
- });
33264
- if ($tooltip) {
33265
- $tooltip.open(overflowElem, content);
33266
- }
33272
+ },
33273
+ vertical: {
33274
+ type: Boolean,
33275
+ default: function _default() {
33276
+ return getConfig().form.vertical;
33267
33277
  }
33268
33278
  },
33269
- handleTitleTipLeaveEvent: function handleTitleTipLeaveEvent() {
33270
- var $xeForm = this;
33271
- var internalData = $xeForm.internalData;
33272
- var tooltipOpts = $xeForm.computeTooltipOpts;
33273
- var $tooltip = $xeForm.$refs.refTooltip;
33274
- if ($tooltip) {
33275
- $tooltip.setActived(false);
33279
+ padding: {
33280
+ type: Boolean,
33281
+ default: function _default() {
33282
+ return getConfig().form.padding;
33276
33283
  }
33277
- if (tooltipOpts.enterable) {
33278
- internalData.stTimeout = setTimeout(function () {
33279
- $tooltip = $xeForm.$refs.refTooltip;
33280
- if ($tooltip && !$tooltip.isActived()) {
33281
- $xeForm.closeTooltip();
33282
- }
33283
- }, tooltipOpts.leaveDelay);
33284
- } else {
33285
- $xeForm.closeTooltip();
33284
+ },
33285
+ className: [String, Function],
33286
+ readonly: Boolean,
33287
+ disabled: Boolean,
33288
+ items: Array,
33289
+ rules: Object,
33290
+ preventSubmit: {
33291
+ type: Boolean,
33292
+ default: function _default() {
33293
+ return getConfig().form.preventSubmit;
33286
33294
  }
33287
33295
  },
33288
- triggerItemEvent: function triggerItemEvent(evnt, field, itemValue) {
33289
- var $xeForm = this;
33290
- if (field) {
33291
- return $xeForm.validItemRules(evnt ? ['blur'].includes(evnt.type) ? 'blur' : 'change' : 'all', field, itemValue).then(function () {
33292
- $xeForm.clearValidate(field);
33293
- }).catch(function (errorMaps) {
33294
- var rest = errorMaps[field];
33295
- var item = $xeForm.getItemByField(field);
33296
- if (rest && item) {
33297
- item.showError = true;
33298
- item.errRule = rest[0].rule;
33299
- }
33300
- });
33296
+ validConfig: Object,
33297
+ tooltipConfig: Object,
33298
+ collapseConfig: Object,
33299
+ customLayout: {
33300
+ type: Boolean,
33301
+ default: function _default() {
33302
+ return getConfig().form.customLayout;
33301
33303
  }
33302
- return $xeForm.$nextTick();
33303
33304
  },
33304
- /**
33305
- * 更新项状态
33306
- * 如果组件值 v-model 发生 change 时,调用改函数用于更新某一项编辑状态
33307
- * 如果单元格配置了校验规则,则会进行校验
33308
- */
33309
- updateStatus: function updateStatus(scope, itemValue) {
33305
+ params: Object
33306
+ },
33307
+ inject: {
33308
+ $xeGrid: {
33309
+ default: null
33310
+ }
33311
+ },
33312
+ provide: function provide() {
33313
+ var $xeForm = this;
33314
+ return {
33315
+ $xeForm: $xeForm,
33316
+ xeFormItemInfo: null,
33317
+ $xeFormGroup: null,
33318
+ $xeFormItem: null
33319
+ };
33320
+ },
33321
+ data: function data() {
33322
+ var xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
33323
+ var reactData = {
33324
+ collapseAll: false,
33325
+ staticItems: [],
33326
+ formItems: [],
33327
+ itemWidth: 0
33328
+ };
33329
+ var internalData = createInternalData();
33330
+ return {
33331
+ xID: xID,
33332
+ reactData: reactData,
33333
+ internalData: internalData
33334
+ };
33335
+ },
33336
+ computed: _objectSpread2(_objectSpread2({}, {}), {}, {
33337
+ computeValidOpts: function computeValidOpts() {
33310
33338
  var $xeForm = this;
33311
- var field = scope.field;
33312
- return $xeForm.triggerItemEvent(new Event('change'), field, itemValue);
33339
+ var props = $xeForm;
33340
+ return Object.assign({}, getConfig().form.validConfig, props.validConfig);
33313
33341
  },
33314
- recalculate: function recalculate() {
33342
+ computeTooltipOpts: function computeTooltipOpts() {
33315
33343
  var $xeForm = this;
33316
- var autoItemWidthList = $xeForm.computeAutoItemWidthList;
33317
- var el = $xeForm.$refs.refElem;
33318
- if (el && autoItemWidthList.length) {
33319
- var itemElList = el.querySelectorAll(autoItemWidthList.map(function (item) {
33320
- return ".vxe-form--item-title[itemid=\"".concat(item.id, "\"]");
33321
- }).join(','));
33322
- var maxItemWidth = 0;
33323
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(itemElList, function (itemEl) {
33324
- itemEl.style.width = '';
33325
- maxItemWidth = Math.max(maxItemWidth, Math.ceil(itemEl.clientWidth + 2));
33326
- });
33327
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(itemElList, function (itemEl) {
33328
- itemEl.style.width = "".concat(maxItemWidth, "px");
33329
- });
33330
- }
33331
- return $xeForm.$nextTick();
33344
+ var props = $xeForm;
33345
+ return Object.assign({}, getConfig().tooltip, getConfig().form.tooltipConfig, props.tooltipConfig);
33332
33346
  },
33333
- handleGlobalResizeEvent: function handleGlobalResizeEvent() {
33347
+ computeCollapseOpts: function computeCollapseOpts() {
33334
33348
  var $xeForm = this;
33335
- $xeForm.recalculate();
33349
+ var props = $xeForm;
33350
+ return Object.assign({}, getConfig().form.collapseConfig, props.collapseConfig);
33336
33351
  },
33337
- //
33338
- // Render
33339
- //
33340
- renderVN: function renderVN(h) {
33352
+ computeAutoItemWidthList: function computeAutoItemWidthList() {
33341
33353
  var $xeForm = this;
33342
33354
  var props = $xeForm;
33343
- var slots = $xeForm.$scopedSlots;
33344
33355
  var reactData = $xeForm.reactData;
33345
- var loading = props.loading,
33346
- border = props.border,
33347
- className = props.className,
33348
- data = props.data,
33349
- customLayout = props.customLayout;
33356
+ var allTitleWidth = props.titleWidth,
33357
+ allVertical = props.vertical;
33350
33358
  var formItems = reactData.formItems;
33351
- // const formItems: any[] = []
33352
- var vSize = $xeForm.computeSize;
33353
- var tooltipOpts = $xeForm.computeTooltipOpts;
33354
- var defaultSlot = slots.default;
33355
- return h('form', {
33356
- ref: 'refElem',
33357
- class: ['vxe-form', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
33358
- items: formItems,
33359
- data: data,
33360
- $form: $xeForm
33361
- }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--border', border), 'custom--layout', customLayout), 'is--loading', loading)],
33362
- on: {
33363
- submit: $xeForm.submitEvent,
33364
- reset: $xeForm.resetEvent
33365
- }
33366
- }, [h('div', {
33367
- class: 'vxe-form--wrapper vxe-form--item-row'
33368
- }, customLayout ? defaultSlot ? defaultSlot({}) : [] : formItems.map(function (item, index) {
33369
- return h(form_config_item, {
33370
- key: index,
33371
- props: {
33372
- itemConfig: item
33359
+ var itemList = [];
33360
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(formItems, function (item) {
33361
+ var titleWidth = item.titleWidth,
33362
+ vertical = item.vertical;
33363
+ if (titleWidth === 'auto') {
33364
+ itemList.push(item);
33365
+ } else {
33366
+ var itemVertical = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(vertical) ? allVertical : vertical;
33367
+ var itemTitleWidth = itemVertical ? null : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(titleWidth) ? allTitleWidth : titleWidth;
33368
+ if (itemTitleWidth === 'auto' && (!item.children || !item.children.length)) {
33369
+ itemList.push(item);
33373
33370
  }
33374
- });
33375
- })), h('div', {
33376
- class: 'vxe-form-slots',
33377
- ref: 'hideItem'
33378
- }, customLayout ? [] : defaultSlot ? defaultSlot({}) : []),
33379
- /**
33380
- * 加载中
33381
- */
33382
- h(src_loading, {
33383
- class: 'vxe-form--loading',
33384
- props: {
33385
- value: loading
33386
33371
  }
33387
- }),
33388
- /**
33389
- * 工具提示
33390
- */
33391
- h(tooltip, _objectSpread2({
33392
- ref: 'refTooltip'
33393
- }, tooltipOpts))]);
33372
+ }, {
33373
+ children: 'children'
33374
+ });
33375
+ return itemList;
33394
33376
  }
33395
- },
33396
- watch: {
33397
- 'reactData.staticItems': function reactDataStaticItems() {
33377
+ }),
33378
+ methods: {
33379
+ //
33380
+ // Method
33381
+ //
33382
+ dispatchEvent: function dispatchEvent(type, params, evnt) {
33383
+ var $xeForm = this;
33384
+ $xeForm.$emit(type, createEvent(evnt, {
33385
+ $form: $xeForm
33386
+ }, params));
33387
+ },
33388
+ callSlot: function callSlot(slotFunc, params, h) {
33389
+ var $xeForm = this;
33390
+ var slots = $xeForm.$scopedSlots;
33391
+ if (slotFunc) {
33392
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(slotFunc)) {
33393
+ slotFunc = slots[slotFunc] || null;
33394
+ }
33395
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)) {
33396
+ return vn_getSlotVNs(slotFunc.call($xeForm, params, h));
33397
+ }
33398
+ }
33399
+ return [];
33400
+ },
33401
+ loadItem: function loadItem(list) {
33402
+ var $xeForm = this;
33403
+ var slots = $xeForm.$scopedSlots;
33404
+ var reactData = $xeForm.reactData;
33405
+ var internalData = $xeForm.internalData;
33406
+ if (list.length) {
33407
+ list.forEach(function (item) {
33408
+ if (item.slots) {
33409
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(item.slots, function (func) {
33410
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
33411
+ if (!slots[func]) {
33412
+ errLog('vxe.error.notSlot', [func]);
33413
+ }
33414
+ }
33415
+ });
33416
+ }
33417
+ });
33418
+ }
33419
+ reactData.staticItems = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(list, function (item) {
33420
+ return createItem($xeForm, item);
33421
+ }, {
33422
+ children: 'children'
33423
+ });
33424
+ internalData.itemFormatCache = {};
33425
+ return $xeForm.$nextTick().then(function () {
33426
+ return $xeForm.recalculate();
33427
+ });
33428
+ },
33429
+ getItems: function getItems() {
33398
33430
  var $xeForm = this;
33399
33431
  var reactData = $xeForm.reactData;
33400
- reactData.formItems = reactData.staticItems;
33401
- $xeForm.$nextTick().then(function () {
33402
- $xeForm.recalculate();
33432
+ var itemList = [];
33433
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(reactData.formItems, function (item) {
33434
+ itemList.push(item);
33435
+ }, {
33436
+ children: 'children'
33403
33437
  });
33438
+ return itemList;
33404
33439
  },
33405
- items: function items() {
33440
+ getItemByField: function getItemByField(field) {
33406
33441
  var $xeForm = this;
33407
- var props = $xeForm;
33408
- $xeForm.loadItem(props.items || []);
33442
+ var reactData = $xeForm.reactData;
33443
+ var rest = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(reactData.formItems, function (item) {
33444
+ return item.field === field;
33445
+ }, {
33446
+ children: 'children'
33447
+ });
33448
+ return rest ? rest.item : null;
33409
33449
  },
33410
- collapseStatus: function collapseStatus(val) {
33450
+ getCollapseStatus: function getCollapseStatus() {
33411
33451
  var $xeForm = this;
33412
33452
  var reactData = $xeForm.reactData;
33413
- reactData.collapseAll = !!val;
33453
+ return reactData.collapseAll;
33414
33454
  },
33415
- readonly: function readonly() {
33455
+ toggleCollapse: function toggleCollapse() {
33416
33456
  var $xeForm = this;
33417
- $xeForm.clearValidate();
33457
+ var reactData = $xeForm.reactData;
33458
+ var status = !$xeForm.getCollapseStatus();
33459
+ reactData.collapseAll = status;
33460
+ $xeForm.$emit('update:collapseStatus', status);
33461
+ return $xeForm.$nextTick();
33418
33462
  },
33419
- disabled: function disabled() {
33463
+ toggleCollapseEvent: function toggleCollapseEvent(evnt) {
33420
33464
  var $xeForm = this;
33421
- $xeForm.clearValidate();
33422
- }
33423
- },
33424
- created: function created() {
33425
- var $xeForm = this;
33426
- var props = $xeForm;
33427
- var reactData = $xeForm.reactData;
33428
- reactData.collapseAll = !!props.collapseStatus;
33429
- },
33430
- mounted: function mounted() {
33431
- var $xeForm = this;
33432
- var props = $xeForm;
33433
- if (props.items) {
33434
- $xeForm.loadItem(props.items);
33435
- }
33436
- $xeForm.$nextTick(function () {
33437
- if (props.customLayout && props.items) {
33438
- errLog('vxe.error.errConflicts', ['custom-layout', 'items']);
33439
- }
33440
- });
33441
- globalEvents.on($xeForm, 'resize', $xeForm.handleGlobalResizeEvent);
33442
- },
33443
- destroyed: function destroyed() {
33444
- var $xeForm = this;
33445
- var internalData = $xeForm.internalData;
33446
- globalEvents.off($xeForm, 'resize');
33447
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
33448
- },
33449
- render: function render(h) {
33450
- return this.renderVN(h);
33451
- }
33452
- })); /* define-vxe-component end */
33453
- ;// CONCATENATED MODULE: ./packages/form/render/index.ts
33454
-
33455
-
33456
-
33457
-
33458
-
33459
-
33460
-
33461
-
33462
-
33463
-
33464
-
33465
-
33466
- var componentDefaultModelProp = 'value';
33467
- /**
33468
- * 已废弃
33469
- * @deprecated
33470
- */
33471
- function getOldComponentName(name) {
33472
- return "vxe-".concat(name.replace('$', ''));
33473
- }
33474
- /**
33475
- * 已废弃
33476
- * @deprecated
33477
- */
33478
- function getOldComponent(_ref) {
33479
- var name = _ref.name;
33480
- return getOldComponentName(name);
33481
- }
33482
- function getDefaultComponent(_ref2) {
33483
- var name = _ref2.name;
33484
- return getComponent(name) || name;
33485
- }
33486
- function getNativeAttrs(renderOpts) {
33487
- var name = renderOpts.name,
33488
- attrs = renderOpts.attrs;
33489
- if (name === 'input') {
33490
- attrs = Object.assign({
33491
- type: 'text'
33492
- }, attrs);
33493
- }
33494
- return attrs;
33495
- }
33496
- function getComponentFormItemProps(renderOpts, params, value, defaultProps) {
33497
- return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign({}, defaultProps, renderOpts.props, _defineProperty({}, componentDefaultModelProp, value));
33498
- }
33499
- /**
33500
- * 原生事件处理
33501
- * @param renderOpts
33502
- * @param params
33503
- * @param modelFunc
33504
- * @param changeFunc
33505
- */
33506
- function getElementOns(renderOpts, params, modelFunc, changeFunc) {
33507
- var events = renderOpts.events;
33508
- var modelEvent = getModelEvent(renderOpts.name);
33509
- var changeEvent = getChangeEvent(renderOpts.name);
33510
- var isSameEvent = changeEvent === modelEvent;
33511
- var ons = {};
33512
- if (events) {
33513
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(events, function (func, key) {
33514
- ons[getOnName(key)] = function () {
33515
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33516
- args[_key] = arguments[_key];
33465
+ var props = $xeForm;
33466
+ var $xeGrid = $xeForm.$xeGrid;
33467
+ $xeForm.toggleCollapse();
33468
+ var status = $xeForm.getCollapseStatus();
33469
+ $xeForm.dispatchEvent('toggle-collapse', {
33470
+ status: status,
33471
+ collapse: status,
33472
+ data: props.data
33473
+ }, evnt);
33474
+ $xeForm.dispatchEvent('collapse', {
33475
+ status: status,
33476
+ collapse: status,
33477
+ data: props.data
33478
+ }, evnt);
33479
+ $xeForm.$nextTick(function () {
33480
+ $xeForm.recalculate();
33481
+ if ($xeGrid) {
33482
+ $xeGrid.recalculate();
33517
33483
  }
33518
- func.apply(void 0, [params].concat(args));
33519
- };
33520
- });
33521
- }
33522
- if (modelFunc) {
33523
- ons[getOnName(modelEvent)] = function (targetEvnt) {
33524
- modelFunc(targetEvnt);
33525
- if (isSameEvent && changeFunc) {
33526
- changeFunc(targetEvnt);
33527
- }
33528
- if (events && events[modelEvent]) {
33529
- events[modelEvent](params, targetEvnt);
33530
- }
33531
- };
33532
- }
33533
- if (!isSameEvent && changeFunc) {
33534
- ons[getOnName(changeEvent)] = function () {
33535
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
33536
- args[_key2] = arguments[_key2];
33537
- }
33538
- changeFunc.apply(void 0, args);
33539
- if (events && events[changeEvent]) {
33540
- events[changeEvent].apply(events, [params].concat(args));
33541
- }
33542
- };
33543
- }
33544
- return ons;
33545
- }
33546
- /**
33547
- * 组件事件处理
33548
- * @param renderOpts
33549
- * @param params
33550
- * @param modelFunc
33551
- * @param changeFunc
33552
- */
33553
- function getComponentOns(renderOpts, params, eFns, eventOns) {
33554
- var events = renderOpts.events;
33555
- var _ref3 = eFns || {},
33556
- modelFunc = _ref3.model,
33557
- changeFunc = _ref3.change;
33558
- var modelEvent = getModelEvent(renderOpts.name);
33559
- var changeEvent = getChangeEvent(renderOpts.name);
33560
- var ons = {};
33561
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().objectEach(events, function (func, key) {
33562
- ons[getOnName(key)] = function () {
33563
- if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(func)) {
33564
- errLog('vxe.error.errFunc', [func]);
33565
- }
33566
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
33567
- args[_key3] = arguments[_key3];
33568
- }
33569
- func.apply(void 0, [params].concat(args));
33570
- };
33571
- });
33572
- if (modelFunc) {
33573
- ons[getOnName(modelEvent)] = function (targetEvnt) {
33574
- modelFunc(targetEvnt);
33575
- if (events && events[modelEvent]) {
33576
- events[modelEvent](params, targetEvnt);
33577
- }
33578
- };
33579
- }
33580
- if (changeFunc) {
33581
- ons[getOnName(changeEvent)] = function () {
33582
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
33583
- args[_key4] = arguments[_key4];
33584
- }
33585
- changeFunc.apply(void 0, args);
33586
- if (events && events[changeEvent]) {
33587
- events[changeEvent].apply(events, [params].concat(args));
33484
+ });
33485
+ },
33486
+ clearValidate: function clearValidate(fieldOrItem) {
33487
+ var $xeForm = this;
33488
+ if (fieldOrItem) {
33489
+ var fields = fieldOrItem;
33490
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
33491
+ fields = [fieldOrItem];
33492
+ }
33493
+ fields.forEach(function (field) {
33494
+ if (field) {
33495
+ var item = handleFieldOrItem($xeForm, field);
33496
+ if (item) {
33497
+ item.showError = false;
33498
+ }
33499
+ }
33500
+ });
33501
+ } else {
33502
+ $xeForm.getItems().forEach(function (item) {
33503
+ item.showError = false;
33504
+ });
33588
33505
  }
33589
- };
33590
- }
33591
- return eventOns ? Object.assign(ons, eventOns) : ons;
33592
- }
33593
- function getItemOns(renderOpts, params) {
33594
- var $form = params.$form,
33595
- data = params.data,
33596
- field = params.field;
33597
- return getComponentOns(renderOpts, params, {
33598
- model: function model(value) {
33599
- // 处理 model 值双向绑定
33600
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, value);
33506
+ return $xeForm.$nextTick();
33601
33507
  },
33602
- change: function change() {
33603
- // 处理 change 事件相关逻辑
33604
- $form.updateStatus(params);
33605
- }
33606
- });
33607
- }
33608
- function getNativeItemOns(renderOpts, params) {
33609
- var $form = params.$form,
33610
- data = params.data,
33611
- field = params.field;
33612
- return getElementOns(renderOpts, params, function (evnt) {
33613
- // 处理 model 值双向绑定
33614
- var itemValue = evnt.target.value;
33615
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, itemValue);
33616
- }, function () {
33617
- // 处理 change 事件相关逻辑
33618
- $form.updateStatus(params);
33619
- });
33620
- }
33621
- function renderNativeOptgroup(h, renderOpts, params, renderOptionsMethods) {
33622
- var optionGroups = renderOpts.optionGroups,
33623
- _renderOpts$optionGro = renderOpts.optionGroupProps,
33624
- optionGroupProps = _renderOpts$optionGro === void 0 ? {} : _renderOpts$optionGro;
33625
- var groupOptions = optionGroupProps.options || 'options';
33626
- var groupLabel = optionGroupProps.label || 'label';
33627
- if (optionGroups) {
33628
- return optionGroups.map(function (group, gIndex) {
33629
- return h('optgroup', {
33630
- key: gIndex,
33631
- attrs: {
33632
- label: group[groupLabel]
33508
+ getResetValue: function getResetValue(item, data, itemValue) {
33509
+ var $xeForm = this;
33510
+ var $xeGrid = $xeForm.$xeGrid;
33511
+ var field = item.field,
33512
+ resetValue = item.resetValue;
33513
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(resetValue)) {
33514
+ return resetValue({
33515
+ field: field,
33516
+ item: item,
33517
+ data: data,
33518
+ $form: $xeForm,
33519
+ $grid: $xeGrid
33520
+ });
33521
+ } else if (resetValue === null) {
33522
+ // 默认
33523
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(itemValue)) {
33524
+ return [];
33633
33525
  }
33634
- }, renderOptionsMethods(group[groupOptions], renderOpts, params));
33635
- });
33636
- }
33637
- return [];
33638
- }
33639
- /**
33640
- * 渲染表单-项
33641
- * 用于渲染原生的标签
33642
- */
33643
- function nativeItemRender(h, renderOpts, params) {
33644
- var data = params.data,
33645
- field = params.field;
33646
- var name = renderOpts.name;
33647
- var attrs = getNativeAttrs(renderOpts);
33648
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33649
- return [h(name, {
33650
- class: "vxe-default-".concat(name),
33651
- attrs: attrs,
33652
- domProps: {
33653
- value: attrs && name === 'input' && (attrs.type === 'submit' || attrs.type === 'reset') ? null : itemValue
33526
+ }
33527
+ return resetValue;
33654
33528
  },
33655
- on: getNativeItemOns(renderOpts, params)
33656
- })];
33657
- }
33658
- function defaultItemRender(h, renderOpts, params) {
33659
- var data = params.data,
33660
- field = params.field;
33661
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33662
- return [h(getDefaultComponent(renderOpts), {
33663
- props: getComponentFormItemProps(renderOpts, params, itemValue),
33664
- on: getItemOns(renderOpts, params)
33665
- })];
33666
- }
33667
- /**
33668
- * 已废弃
33669
- * @deprecated
33670
- */
33671
- function oldItemRender(h, renderOpts, params) {
33672
- var data = params.data,
33673
- field = params.field;
33674
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33675
- return [h(getOldComponent(renderOpts), {
33676
- props: getComponentFormItemProps(renderOpts, params, itemValue),
33677
- on: getItemOns(renderOpts, params)
33678
- })];
33679
- }
33680
- /**
33681
- * 已废弃
33682
- * @deprecated
33683
- */
33684
- function oldButtonItemRender(h, renderOpts, params) {
33685
- return [h('vxe-button', {
33686
- props: getComponentFormItemProps(renderOpts, params, null),
33687
- on: getComponentOns(renderOpts, params)
33688
- })];
33689
- }
33690
- /**
33691
- * 已废弃
33692
- * @deprecated
33693
- */
33694
- function oldButtonsItemRender(h, renderOpts, params) {
33695
- return renderOpts.children.map(function (childRenderOpts) {
33696
- return oldButtonItemRender(h, childRenderOpts, params)[0];
33697
- });
33698
- }
33699
- /**
33700
- * 渲染原生的 select 标签
33701
- */
33702
- function renderNativeFormOptions(h, options, renderOpts, params) {
33703
- var data = params.data,
33704
- field = params.field;
33705
- var _renderOpts$optionPro = renderOpts.optionProps,
33706
- optionProps = _renderOpts$optionPro === void 0 ? {} : _renderOpts$optionPro;
33707
- var labelProp = optionProps.label || 'label';
33708
- var valueProp = optionProps.value || 'value';
33709
- var disabledProp = optionProps.disabled || 'disabled';
33710
- var cellValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33711
- if (options) {
33712
- return options.map(function (item, oIndex) {
33713
- return h('option', {
33714
- key: oIndex,
33715
- props: {
33716
- value: item[valueProp],
33717
- disabled: item[disabledProp],
33718
- /* eslint-disable eqeqeq */
33719
- selected: item[valueProp] == cellValue
33720
- }
33721
- }, item[labelProp]);
33722
- });
33723
- }
33724
- return [];
33725
- }
33726
- /**
33727
- * 渲染表单-项
33728
- */
33729
- function defaultFormItemRender(h, renderOpts, params) {
33730
- var data = params.data,
33731
- field = params.field;
33732
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33733
- return [h(getDefaultComponent(renderOpts), {
33734
- props: getComponentFormItemProps(renderOpts, params, itemValue),
33735
- on: getItemOns(renderOpts, params)
33736
- })];
33737
- }
33738
- function formItemRadioAndCheckboxRender(h, renderOpts, params) {
33739
- var options = renderOpts.options,
33740
- optionProps = renderOpts.optionProps;
33741
- var data = params.data,
33742
- field = params.field;
33743
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33744
- return [h(getDefaultComponent(renderOpts), {
33745
- props: _objectSpread2({
33746
- options: options,
33747
- optionProps: optionProps
33748
- }, getComponentFormItemProps(renderOpts, params, itemValue)),
33749
- on: getItemOns(renderOpts, params)
33750
- })];
33751
- }
33752
- /**
33753
- * 已废弃
33754
- * @deprecated
33755
- */
33756
- function oldFormItemRadioAndCheckboxRender(h, renderOpts, params) {
33757
- var name = renderOpts.name,
33758
- options = renderOpts.options,
33759
- _renderOpts$optionPro2 = renderOpts.optionProps,
33760
- optionProps = _renderOpts$optionPro2 === void 0 ? {} : _renderOpts$optionPro2;
33761
- var data = params.data,
33762
- field = params.field;
33763
- var labelProp = optionProps.label || 'label';
33764
- var valueProp = optionProps.value || 'value';
33765
- var disabledProp = optionProps.disabled || 'disabled';
33766
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33767
- var compName = getOldComponentName(name);
33768
- // 如果是分组
33769
- if (options) {
33770
- return [h("".concat(compName, "-group"), {
33771
- props: getComponentFormItemProps(renderOpts, params, itemValue),
33772
- on: getItemOns(renderOpts, params),
33773
- scopedSlots: {
33774
- default: function _default() {
33775
- return options.map(function (item, index) {
33776
- return h(compName, {
33777
- key: index,
33778
- props: {
33779
- label: item[valueProp],
33780
- content: item[labelProp],
33781
- disabled: item[disabledProp]
33529
+ reset: function reset() {
33530
+ var $xeForm = this;
33531
+ var props = $xeForm;
33532
+ var $xeGrid = $xeForm.$xeGrid;
33533
+ var internalData = $xeForm.internalData;
33534
+ var data = props.data;
33535
+ var itemList = $xeForm.getItems();
33536
+ if (data) {
33537
+ itemList.forEach(function (item) {
33538
+ var field = item.field,
33539
+ itemRender = item.itemRender;
33540
+ if (isEnableConf(itemRender)) {
33541
+ var name = itemRender.name,
33542
+ startField = itemRender.startField,
33543
+ endField = itemRender.endField;
33544
+ var compConf = renderer.get(name);
33545
+ var fiResetMethod = compConf ? compConf.formItemResetMethod || compConf.itemResetMethod : null;
33546
+ if (compConf && fiResetMethod) {
33547
+ fiResetMethod({
33548
+ data: data,
33549
+ field: field,
33550
+ property: field,
33551
+ item: item,
33552
+ $form: $xeForm,
33553
+ $grid: $xeGrid
33554
+ });
33555
+ } else if (field) {
33556
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33557
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, $xeForm.getResetValue(item, data, itemValue));
33558
+ }
33559
+ if (startField && endField) {
33560
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, startField, $xeForm.getResetValue(item, data, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, startField)));
33561
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, endField, $xeForm.getResetValue(item, data, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, endField)));
33562
+ }
33563
+ }
33564
+ });
33565
+ }
33566
+ internalData.itemFormatCache = {};
33567
+ $xeForm.clearValidate();
33568
+ return $xeForm.recalculate();
33569
+ },
33570
+ resetEvent: function resetEvent(evnt) {
33571
+ var $xeForm = this;
33572
+ var props = $xeForm;
33573
+ evnt.preventDefault();
33574
+ $xeForm.reset();
33575
+ $xeForm.dispatchEvent('reset', {
33576
+ data: props.data
33577
+ }, evnt);
33578
+ },
33579
+ handleFocus: function handleFocus(fields) {
33580
+ var $xeForm = this;
33581
+ var props = $xeForm;
33582
+ var $xeGrid = $xeForm.$xeGrid;
33583
+ var el = $xeForm.$refs.refElem;
33584
+ if (el) {
33585
+ for (var i = 0; i < fields.length; i++) {
33586
+ var field = fields[i];
33587
+ var item = $xeForm.getItemByField(field);
33588
+ if (item && isEnableConf(item.itemRender)) {
33589
+ var itemRender = item.itemRender;
33590
+ var compConf = renderer.get(itemRender.name);
33591
+ // 定位到第一个
33592
+ if (!i) {
33593
+ scrollToView(el.querySelector(".".concat(item.id)));
33594
+ }
33595
+ var inputElem = null;
33596
+ var autoFocus = itemRender.autoFocus || itemRender.autofocus || (compConf ? compConf.formItemAutoFocus : null);
33597
+ // 如果指定了聚焦 class
33598
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(autoFocus)) {
33599
+ inputElem = autoFocus({
33600
+ $form: $xeForm,
33601
+ $grid: $xeGrid,
33602
+ item: item,
33603
+ data: props.data,
33604
+ field: field
33605
+ });
33606
+ } else {
33607
+ if (autoFocus === true) {
33608
+ // 自动匹配模式,会自动匹配第一个可输入元素
33609
+ inputElem = el.querySelector(".".concat(item.id, " input,textarea"));
33610
+ } else if (autoFocus) {
33611
+ inputElem = el.querySelector(".".concat(item.id, " ").concat(autoFocus));
33782
33612
  }
33783
- });
33784
- });
33613
+ }
33614
+ if (inputElem) {
33615
+ inputElem.focus();
33616
+ break;
33617
+ }
33618
+ }
33785
33619
  }
33786
33620
  }
33787
- })];
33788
- }
33789
- return [h(compName, {
33790
- props: getComponentFormItemProps(renderOpts, params, itemValue),
33791
- on: getItemOns(renderOpts, params)
33792
- })];
33793
- }
33794
- /**
33795
- * 表单 - 渲染器
33796
- */
33797
- renderer.mixin({
33798
- input: {
33799
- formItemAutoFocus: 'input',
33800
- renderFormItemContent: nativeItemRender
33801
- },
33802
- textarea: {
33803
- formItemAutoFocus: 'textarea',
33804
- renderFormItemContent: nativeItemRender
33805
- },
33806
- select: {
33807
- formItemAutoFocus: 'input',
33808
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33809
- return [h('select', {
33810
- class: 'vxe-default-select',
33811
- attrs: _objectSpread2({}, getNativeAttrs(renderOpts)),
33812
- on: getNativeItemOns(renderOpts, params)
33813
- }, renderOpts.optionGroups ? renderNativeOptgroup(h, renderOpts, params, renderNativeFormOptions) : renderNativeFormOptions(h, renderOpts.options, renderOpts, params))];
33814
- }
33815
- },
33816
- VxeInput: {
33817
- formItemAutoFocus: 'input',
33818
- renderFormItemContent: defaultItemRender
33819
- },
33820
- VxeNumberInput: {
33821
- formItemAutoFocus: 'input',
33822
- renderFormItemContent: defaultItemRender
33823
- },
33824
- VxePasswordInput: {
33825
- formItemAutoFocus: 'input',
33826
- renderFormItemContent: defaultItemRender
33827
- },
33828
- VxeTextarea: {
33829
- formItemAutoFocus: 'textarea',
33830
- renderFormItemContent: defaultItemRender
33831
- },
33832
- VxeDatePicker: {
33833
- formItemAutoFocus: 'input',
33834
- renderFormItemContent: defaultItemRender
33835
- },
33836
- VxeDateRangePicker: {
33837
- formItemAutoFocus: 'input',
33838
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33839
- var startField = renderOpts.startField,
33840
- endField = renderOpts.endField;
33841
- var $form = params.$form,
33842
- data = params.data,
33843
- field = params.field;
33844
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33845
- var seProps = {};
33846
- var seOs = {};
33847
- if (startField && endField) {
33848
- seProps.startValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, startField);
33849
- seProps.endValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, endField);
33850
- seOs['update:startValue'] = function (value) {
33851
- if (startField) {
33852
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, startField, value);
33621
+ },
33622
+ /**
33623
+ * 校验数据
33624
+ * 按表格行、列顺序依次校验(同步或异步)
33625
+ * 校验规则根据索引顺序依次校验,如果是异步则会等待校验完成才会继续校验下一列
33626
+ * 如果校验失败则,触发回调或者 Promise<(ErrMap 校验不通过列的信息)>
33627
+ * 如果是传回调方式这返回一个 (ErrMap 校验不通过列的信息)
33628
+ *
33629
+ * rule 配置:
33630
+ * required=Boolean 是否必填
33631
+ * min=Number 最小长度
33632
+ * max=Number 最大长度
33633
+ * validator=Function({ itemValue, rule, rules, data, property }) 自定义校验,接收一个 Promise
33634
+ * trigger=change 触发方式
33635
+ */
33636
+ validItemRules: function validItemRules(validType, fields, val) {
33637
+ var $xeForm = this;
33638
+ var props = $xeForm;
33639
+ var data = props.data,
33640
+ formRules = props.rules;
33641
+ var errorMaps = {};
33642
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fields)) {
33643
+ fields = [fields];
33644
+ }
33645
+ return Promise.all(fields.map(function (property) {
33646
+ var errorRules = [];
33647
+ var syncVailds = [];
33648
+ if (property && formRules) {
33649
+ var rules = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(formRules, property);
33650
+ if (rules) {
33651
+ var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(val) ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, property) : val;
33652
+ rules.forEach(function (rule) {
33653
+ var trigger = rule.trigger,
33654
+ validator = rule.validator;
33655
+ if (validType === 'all' || !trigger || validType === trigger) {
33656
+ if (validator) {
33657
+ var validParams = {
33658
+ itemValue: itemValue,
33659
+ rule: rule,
33660
+ rules: rules,
33661
+ data: data,
33662
+ field: property,
33663
+ property: property,
33664
+ $form: $xeForm
33665
+ };
33666
+ var customValid;
33667
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(validator)) {
33668
+ var gvItem = validators.get(validator);
33669
+ if (gvItem) {
33670
+ var validatorMethod = gvItem.formItemValidatorMethod || gvItem.itemValidatorMethod;
33671
+ if (validatorMethod) {
33672
+ customValid = validatorMethod(validParams);
33673
+ } else {
33674
+ warnLog('vxe.error.notValidators', [validator]);
33675
+ }
33676
+ } else {
33677
+ errLog('vxe.error.notValidators', [validator]);
33678
+ }
33679
+ } else {
33680
+ customValid = validator(validParams);
33681
+ }
33682
+ if (customValid) {
33683
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isError(customValid)) {
33684
+ errorRules.push(new Rule({
33685
+ type: 'custom',
33686
+ trigger: trigger,
33687
+ content: customValid.message,
33688
+ rule: new Rule(rule)
33689
+ }));
33690
+ } else if (customValid.catch) {
33691
+ // 如果为异步校验(注:异步校验是并发无序的)
33692
+ syncVailds.push(customValid.catch(function (e) {
33693
+ errorRules.push(new Rule({
33694
+ type: 'custom',
33695
+ trigger: trigger,
33696
+ content: e ? e.message : rule.content || rule.message,
33697
+ rule: new Rule(rule)
33698
+ }));
33699
+ }));
33700
+ }
33701
+ }
33702
+ } else {
33703
+ if (!checkRuleStatus(rule, itemValue)) {
33704
+ errorRules.push(new Rule(rule));
33705
+ }
33706
+ }
33707
+ }
33708
+ });
33853
33709
  }
33854
- };
33855
- seOs['update:endValue'] = function (value) {
33856
- if (endField) {
33857
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, endField, value);
33710
+ }
33711
+ return Promise.all(syncVailds).then(function () {
33712
+ if (errorRules.length) {
33713
+ errorMaps[property] = errorRules.map(function (rule) {
33714
+ return {
33715
+ $form: $xeForm,
33716
+ rule: rule,
33717
+ data: data,
33718
+ field: property,
33719
+ property: property
33720
+ };
33721
+ });
33722
+ }
33723
+ });
33724
+ })).then(function () {
33725
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEmpty(errorMaps)) {
33726
+ return Promise.reject(errorMaps);
33727
+ }
33728
+ });
33729
+ },
33730
+ beginValidate: function beginValidate(itemList, type, callback) {
33731
+ var $xeForm = this;
33732
+ var props = $xeForm;
33733
+ var internalData = $xeForm.internalData;
33734
+ var data = props.data,
33735
+ formRules = props.rules;
33736
+ var validOpts = $xeForm.computeValidOpts;
33737
+ var validRest = {};
33738
+ var validFields = [];
33739
+ var itemValids = [];
33740
+ clearTimeout(internalData.meTimeout);
33741
+ if (data && formRules) {
33742
+ itemList.forEach(function (item) {
33743
+ var field = item.field;
33744
+ if (field && !isHiddenItem($xeForm, item) && isActiveItem($xeForm, item)) {
33745
+ itemValids.push($xeForm.validItemRules(type || 'all', field).then(function () {
33746
+ item.errRule = null;
33747
+ }).catch(function (errorMaps) {
33748
+ var rest = errorMaps[field];
33749
+ if (!validRest[field]) {
33750
+ validRest[field] = [];
33751
+ }
33752
+ validRest[field].push(rest);
33753
+ validFields.push(field);
33754
+ item.errRule = rest[0].rule;
33755
+ return Promise.reject(rest);
33756
+ }));
33757
+ }
33758
+ });
33759
+ return Promise.all(itemValids).then(function () {
33760
+ if (callback) {
33761
+ callback();
33858
33762
  }
33859
- };
33763
+ }).catch(function () {
33764
+ return new Promise(function (resolve) {
33765
+ internalData.meTimeout = setTimeout(function () {
33766
+ itemList.forEach(function (item) {
33767
+ if (item.errRule) {
33768
+ item.showError = true;
33769
+ }
33770
+ });
33771
+ }, 20);
33772
+ if (validOpts.autoPos !== false) {
33773
+ $xeForm.$nextTick(function () {
33774
+ $xeForm.handleFocus(validFields);
33775
+ });
33776
+ }
33777
+ if (callback) {
33778
+ callback(validRest);
33779
+ resolve();
33780
+ } else {
33781
+ resolve(validRest);
33782
+ }
33783
+ });
33784
+ });
33860
33785
  }
33861
- return [h(getDefaultComponent(renderOpts), {
33862
- props: getComponentFormItemProps(renderOpts, params, itemValue, seProps),
33863
- on: getComponentOns(renderOpts, params, {
33864
- model: function model(value) {
33865
- // 处理 model 值双向绑定
33866
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(data, field, value);
33867
- },
33868
- change: function change() {
33869
- // 处理 change 事件相关逻辑
33870
- $form.updateStatus(params);
33786
+ if (callback) {
33787
+ callback();
33788
+ }
33789
+ return Promise.resolve();
33790
+ },
33791
+ validate: function validate(callback) {
33792
+ var $xeForm = this;
33793
+ var props = $xeForm;
33794
+ var readonly = props.readonly;
33795
+ $xeForm.clearValidate();
33796
+ if (readonly) {
33797
+ return $xeForm.$nextTick();
33798
+ }
33799
+ return $xeForm.beginValidate($xeForm.getItems(), '', callback).then(function (params) {
33800
+ $xeForm.recalculate();
33801
+ return params;
33802
+ });
33803
+ },
33804
+ validateField: function validateField(fieldOrItem, callback) {
33805
+ var $xeForm = this;
33806
+ var props = $xeForm;
33807
+ var readonly = props.readonly;
33808
+ if (readonly) {
33809
+ return $xeForm.$nextTick();
33810
+ }
33811
+ var fields = [];
33812
+ if (fieldOrItem) {
33813
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(fieldOrItem)) {
33814
+ fields = fieldOrItem;
33815
+ } else {
33816
+ fields = [fieldOrItem];
33817
+ }
33818
+ }
33819
+ return $xeForm.beginValidate(fields.map(function (field) {
33820
+ return handleFieldOrItem($xeForm, field);
33821
+ }), '', callback).then(function (params) {
33822
+ $xeForm.recalculate();
33823
+ return params;
33824
+ });
33825
+ },
33826
+ submitEvent: function submitEvent(evnt) {
33827
+ var $xeForm = this;
33828
+ var props = $xeForm;
33829
+ var readonly = props.readonly;
33830
+ evnt.preventDefault();
33831
+ if (!props.preventSubmit) {
33832
+ $xeForm.clearValidate();
33833
+ if (readonly) {
33834
+ $xeForm.dispatchEvent('submit', {
33835
+ data: props.data
33836
+ }, evnt);
33837
+ $xeForm.recalculate();
33838
+ return;
33839
+ }
33840
+ $xeForm.beginValidate($xeForm.getItems()).then(function (errMap) {
33841
+ if (errMap) {
33842
+ $xeForm.dispatchEvent('submit-invalid', {
33843
+ data: props.data,
33844
+ errMap: errMap
33845
+ }, evnt);
33846
+ } else {
33847
+ $xeForm.dispatchEvent('submit', {
33848
+ data: props.data
33849
+ }, evnt);
33871
33850
  }
33872
- }, seOs)
33873
- })];
33874
- }
33875
- },
33876
- VxeButton: {
33877
- renderFormItemContent: defaultFormItemRender
33878
- },
33879
- VxeButtonGroup: {
33880
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33881
- var options = renderOpts.options;
33882
- var data = params.data,
33883
- field = params.field;
33884
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33885
- return [h(getDefaultComponent(renderOpts), {
33886
- props: _objectSpread2({
33887
- options: options
33888
- }, getComponentFormItemProps(renderOpts, params, itemValue)),
33889
- on: getItemOns(renderOpts, params)
33890
- })];
33891
- }
33892
- },
33893
- VxeSelect: {
33894
- formItemAutoFocus: 'input',
33895
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33896
- var data = params.data,
33897
- field = params.field;
33898
- var options = renderOpts.options,
33899
- optionProps = renderOpts.optionProps,
33900
- optionGroups = renderOpts.optionGroups,
33901
- optionGroupProps = renderOpts.optionGroupProps;
33902
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33903
- return [h(getDefaultComponent(renderOpts), {
33904
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
33905
- options: options,
33906
- optionProps: optionProps,
33907
- optionGroups: optionGroups,
33908
- optionGroupProps: optionGroupProps
33909
- }),
33910
- on: getItemOns(renderOpts, params)
33911
- })];
33912
- }
33913
- },
33914
- VxeTreeSelect: {
33915
- formItemAutoFocus: 'input',
33916
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33917
- var data = params.data,
33918
- field = params.field;
33919
- var options = renderOpts.options,
33920
- optionProps = renderOpts.optionProps;
33921
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33922
- return [h(getDefaultComponent(renderOpts), {
33923
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
33924
- options: options,
33925
- optionProps: optionProps
33926
- }),
33927
- on: getItemOns(renderOpts, params)
33928
- })];
33929
- }
33930
- },
33931
- VxeTableSelect: {
33932
- formItemAutoFocus: 'input',
33933
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33934
- var data = params.data,
33935
- field = params.field;
33936
- var options = renderOpts.options,
33937
- optionProps = renderOpts.optionProps;
33938
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33939
- return [h(getDefaultComponent(renderOpts), {
33940
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
33941
- options: options,
33942
- optionProps: optionProps
33943
- }),
33944
- on: getItemOns(renderOpts, params)
33945
- })];
33946
- }
33947
- },
33948
- VxeColorPicker: {
33949
- formItemAutoFocus: 'input',
33950
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33951
- var data = params.data,
33952
- field = params.field;
33953
- var options = renderOpts.options;
33954
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33955
- return [h(getDefaultComponent(renderOpts), {
33956
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
33957
- colors: options
33958
- }),
33959
- on: getItemOns(renderOpts, params)
33960
- })];
33961
- }
33962
- },
33963
- VxeIconPicker: {
33964
- formItemAutoFocus: 'input',
33965
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
33966
- var data = params.data,
33967
- field = params.field;
33968
- var options = renderOpts.options;
33969
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
33970
- return [h(getDefaultComponent(renderOpts), {
33971
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
33972
- icons: options
33973
- }),
33974
- on: getItemOns(renderOpts, params)
33975
- })];
33976
- }
33977
- },
33978
- VxeRadio: {
33979
- renderFormItemContent: defaultFormItemRender
33980
- },
33981
- VxeRadioGroup: {
33982
- renderFormItemContent: formItemRadioAndCheckboxRender
33983
- },
33984
- VxeCheckbox: {
33985
- renderFormItemContent: defaultFormItemRender
33986
- },
33987
- VxeCheckboxGroup: {
33988
- renderFormItemContent: formItemRadioAndCheckboxRender
33989
- },
33990
- VxeSwitch: {
33991
- renderFormItemContent: defaultItemRender
33992
- },
33993
- VxeRate: {
33994
- renderFormItemContent: defaultItemRender
33995
- },
33996
- VxeSlider: {
33997
- renderFormItemContent: defaultItemRender
33998
- },
33999
- VxeImage: {
34000
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
34001
- var data = params.data,
34002
- field = params.field;
34003
- var props = renderOpts.props;
34004
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
34005
- return [h(getDefaultComponent(renderOpts), {
34006
- props: _objectSpread2(_objectSpread2({}, props), {}, {
34007
- src: itemValue
34008
- }),
34009
- on: getItemOns(renderOpts, params)
34010
- })];
33851
+ $xeForm.recalculate();
33852
+ });
33853
+ }
33854
+ },
33855
+ closeTooltip: function closeTooltip() {
33856
+ var $xeForm = this;
33857
+ var internalData = $xeForm.internalData;
33858
+ var tooltipStore = internalData.tooltipStore;
33859
+ var $tooltip = $xeForm.$refs.refTooltip;
33860
+ if (tooltipStore.visible) {
33861
+ Object.assign(tooltipStore, {
33862
+ item: null,
33863
+ visible: false
33864
+ });
33865
+ if ($tooltip) {
33866
+ $tooltip.close();
33867
+ }
33868
+ }
33869
+ return $xeForm.$nextTick();
33870
+ },
33871
+ triggerTitleTipEvent: function triggerTitleTipEvent(evnt, params) {
33872
+ var $xeForm = this;
33873
+ var internalData = $xeForm.internalData;
33874
+ var item = params.item;
33875
+ var tooltipStore = internalData.tooltipStore;
33876
+ var $tooltip = $xeForm.$refs.refTooltip;
33877
+ var overflowElem = evnt.currentTarget.children[0];
33878
+ var content = (overflowElem.textContent || '').trim();
33879
+ var isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth;
33880
+ clearTimeout(internalData.stTimeout);
33881
+ if (tooltipStore.item !== item) {
33882
+ $xeForm.closeTooltip();
33883
+ }
33884
+ if (content && isCellOverflow) {
33885
+ Object.assign(tooltipStore, {
33886
+ item: item,
33887
+ visible: true
33888
+ });
33889
+ if ($tooltip) {
33890
+ $tooltip.open(overflowElem, content);
33891
+ }
33892
+ }
33893
+ },
33894
+ handleTitleTipLeaveEvent: function handleTitleTipLeaveEvent() {
33895
+ var $xeForm = this;
33896
+ var internalData = $xeForm.internalData;
33897
+ var tooltipOpts = $xeForm.computeTooltipOpts;
33898
+ var $tooltip = $xeForm.$refs.refTooltip;
33899
+ if ($tooltip) {
33900
+ $tooltip.setActived(false);
33901
+ }
33902
+ if (tooltipOpts.enterable) {
33903
+ internalData.stTimeout = setTimeout(function () {
33904
+ $tooltip = $xeForm.$refs.refTooltip;
33905
+ if ($tooltip && !$tooltip.isActived()) {
33906
+ $xeForm.closeTooltip();
33907
+ }
33908
+ }, tooltipOpts.leaveDelay);
33909
+ } else {
33910
+ $xeForm.closeTooltip();
33911
+ }
33912
+ },
33913
+ triggerItemEvent: function triggerItemEvent(evnt, field, itemValue) {
33914
+ var $xeForm = this;
33915
+ if (field) {
33916
+ return $xeForm.validItemRules(evnt ? ['blur'].includes(evnt.type) ? 'blur' : 'change' : 'all', field, itemValue).then(function () {
33917
+ $xeForm.clearValidate(field);
33918
+ }).catch(function (errorMaps) {
33919
+ var rest = errorMaps[field];
33920
+ var item = $xeForm.getItemByField(field);
33921
+ if (rest && item) {
33922
+ item.showError = true;
33923
+ item.errRule = rest[0].rule;
33924
+ }
33925
+ });
33926
+ }
33927
+ return $xeForm.$nextTick();
33928
+ },
33929
+ /**
33930
+ * 更新项状态
33931
+ * 如果组件值 v-model 发生 change 时,调用改函数用于更新某一项编辑状态
33932
+ * 如果单元格配置了校验规则,则会进行校验
33933
+ */
33934
+ updateStatus: function updateStatus(scope, itemValue) {
33935
+ var $xeForm = this;
33936
+ var field = scope.field;
33937
+ return $xeForm.triggerItemEvent(new Event('change'), field, itemValue);
33938
+ },
33939
+ recalculate: function recalculate() {
33940
+ var $xeForm = this;
33941
+ var autoItemWidthList = $xeForm.computeAutoItemWidthList;
33942
+ var el = $xeForm.$refs.refElem;
33943
+ if (el && autoItemWidthList.length) {
33944
+ var itemElList = el.querySelectorAll(autoItemWidthList.map(function (item) {
33945
+ return ".vxe-form--item-title[itemid=\"".concat(item.id, "\"]");
33946
+ }).join(','));
33947
+ var maxItemWidth = 0;
33948
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(itemElList, function (itemEl) {
33949
+ itemEl.style.width = '';
33950
+ maxItemWidth = Math.max(maxItemWidth, Math.ceil(itemEl.clientWidth + 2));
33951
+ });
33952
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().arrayEach(itemElList, function (itemEl) {
33953
+ itemEl.style.width = "".concat(maxItemWidth, "px");
33954
+ });
33955
+ }
33956
+ return $xeForm.$nextTick();
33957
+ },
33958
+ handleGlobalResizeEvent: function handleGlobalResizeEvent() {
33959
+ var $xeForm = this;
33960
+ $xeForm.recalculate();
33961
+ },
33962
+ //
33963
+ // Render
33964
+ //
33965
+ renderVN: function renderVN(h) {
33966
+ var $xeForm = this;
33967
+ var props = $xeForm;
33968
+ var slots = $xeForm.$scopedSlots;
33969
+ var reactData = $xeForm.reactData;
33970
+ var loading = props.loading,
33971
+ border = props.border,
33972
+ className = props.className,
33973
+ data = props.data,
33974
+ customLayout = props.customLayout;
33975
+ var formItems = reactData.formItems;
33976
+ // const formItems: any[] = []
33977
+ var vSize = $xeForm.computeSize;
33978
+ var tooltipOpts = $xeForm.computeTooltipOpts;
33979
+ var defaultSlot = slots.default;
33980
+ return h('form', {
33981
+ ref: 'refElem',
33982
+ class: ['vxe-form', className ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(className) ? className({
33983
+ items: formItems,
33984
+ data: data,
33985
+ $form: $xeForm
33986
+ }) : className : '', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--border', border), 'custom--layout', customLayout), 'is--loading', loading)],
33987
+ on: {
33988
+ submit: $xeForm.submitEvent,
33989
+ reset: $xeForm.resetEvent
33990
+ }
33991
+ }, [h('div', {
33992
+ class: 'vxe-form--wrapper vxe-form--item-row'
33993
+ }, customLayout ? defaultSlot ? defaultSlot({}) : [] : formItems.map(function (item, index) {
33994
+ return h(form_config_item, {
33995
+ key: index,
33996
+ props: {
33997
+ itemConfig: item
33998
+ }
33999
+ });
34000
+ })), h('div', {
34001
+ class: 'vxe-form-slots',
34002
+ ref: 'hideItem'
34003
+ }, customLayout ? [] : defaultSlot ? defaultSlot({}) : []),
34004
+ /**
34005
+ * 加载中
34006
+ */
34007
+ h(src_loading, {
34008
+ class: 'vxe-form--loading',
34009
+ props: {
34010
+ value: loading
34011
+ }
34012
+ }),
34013
+ /**
34014
+ * 工具提示
34015
+ */
34016
+ h(tooltip, _objectSpread2({
34017
+ ref: 'refTooltip'
34018
+ }, tooltipOpts))]);
34011
34019
  }
34012
34020
  },
34013
- VxeImageGroup: {
34014
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
34015
- var data = params.data,
34016
- field = params.field;
34017
- var props = renderOpts.props;
34018
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
34019
- return [h(getDefaultComponent(renderOpts), {
34020
- props: _objectSpread2(_objectSpread2({}, props), {}, {
34021
- urlList: itemValue
34022
- }),
34023
- on: getItemOns(renderOpts, params)
34024
- })];
34021
+ watch: {
34022
+ 'reactData.staticItems': function reactDataStaticItems() {
34023
+ var $xeForm = this;
34024
+ var reactData = $xeForm.reactData;
34025
+ reactData.formItems = reactData.staticItems;
34026
+ $xeForm.$nextTick().then(function () {
34027
+ $xeForm.recalculate();
34028
+ });
34029
+ },
34030
+ items: function items() {
34031
+ var $xeForm = this;
34032
+ var props = $xeForm;
34033
+ $xeForm.loadItem(props.items || []);
34034
+ },
34035
+ collapseStatus: function collapseStatus(val) {
34036
+ var $xeForm = this;
34037
+ var reactData = $xeForm.reactData;
34038
+ reactData.collapseAll = !!val;
34039
+ },
34040
+ readonly: function readonly() {
34041
+ var $xeForm = this;
34042
+ $xeForm.clearValidate();
34043
+ },
34044
+ disabled: function disabled() {
34045
+ var $xeForm = this;
34046
+ $xeForm.clearValidate();
34025
34047
  }
34026
34048
  },
34027
- VxeUpload: {
34028
- renderFormItemContent: defaultItemRender
34029
- },
34030
- // 以下已废弃
34031
- $input: {
34032
- formItemAutoFocus: 'input',
34033
- renderFormItemContent: oldItemRender
34034
- },
34035
- $textarea: {
34036
- formItemAutoFocus: 'textarea',
34037
- renderFormItemContent: oldItemRender
34038
- },
34039
- $button: {
34040
- renderFormItemContent: oldButtonItemRender
34041
- },
34042
- $buttons: {
34043
- renderFormItemContent: oldButtonsItemRender
34049
+ created: function created() {
34050
+ var $xeForm = this;
34051
+ var props = $xeForm;
34052
+ var reactData = $xeForm.reactData;
34053
+ reactData.collapseAll = !!props.collapseStatus;
34044
34054
  },
34045
- $select: {
34046
- formItemAutoFocus: 'input',
34047
- renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
34048
- var data = params.data,
34049
- field = params.field;
34050
- var options = renderOpts.options,
34051
- optionProps = renderOpts.optionProps,
34052
- optionGroups = renderOpts.optionGroups,
34053
- optionGroupProps = renderOpts.optionGroupProps;
34054
- var itemValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(data, field);
34055
- return [h(getOldComponent(renderOpts), {
34056
- props: getComponentFormItemProps(renderOpts, params, itemValue, {
34057
- options: options,
34058
- optionProps: optionProps,
34059
- optionGroups: optionGroups,
34060
- optionGroupProps: optionGroupProps
34061
- }),
34062
- on: getItemOns(renderOpts, params)
34063
- })];
34055
+ mounted: function mounted() {
34056
+ var $xeForm = this;
34057
+ var props = $xeForm;
34058
+ if (props.items) {
34059
+ $xeForm.loadItem(props.items);
34064
34060
  }
34061
+ $xeForm.$nextTick(function () {
34062
+ if (props.customLayout && props.items) {
34063
+ errLog('vxe.error.errConflicts', ['custom-layout', 'items']);
34064
+ }
34065
+ });
34066
+ globalEvents.on($xeForm, 'resize', $xeForm.handleGlobalResizeEvent);
34065
34067
  },
34066
- $radio: {
34067
- renderFormItemContent: oldFormItemRadioAndCheckboxRender
34068
- },
34069
- $checkbox: {
34070
- renderFormItemContent: oldFormItemRadioAndCheckboxRender
34068
+ destroyed: function destroyed() {
34069
+ var $xeForm = this;
34070
+ var internalData = $xeForm.internalData;
34071
+ globalEvents.off($xeForm, 'resize');
34072
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
34071
34073
  },
34072
- $switch: {
34073
- renderFormItemContent: oldItemRender
34074
+ render: function render(h) {
34075
+ return this.renderVN(h);
34074
34076
  }
34075
- // 以上已废弃
34076
- });
34077
+ })); /* define-vxe-component end */
34077
34078
  ;// CONCATENATED MODULE: ./packages/form/index.ts
34078
34079
 
34079
34080
 
34080
34081
 
34081
34082
 
34082
34083
 
34083
-
34084
34084
  var VxeForm = Object.assign(src_form, {
34085
34085
  install: function install(app) {
34086
34086
  app.component(src_form.name, src_form);