element-ui-pro-components-test 1.5.0

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 (53) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +21 -0
  3. package/README.md +0 -0
  4. package/lib/dialog-form.js +1175 -0
  5. package/lib/editable-pro-table.js +2080 -0
  6. package/lib/element-ui-pro-components.common.js +193 -0
  7. package/lib/index.js +1 -0
  8. package/lib/locale/index.js +44 -0
  9. package/lib/locale/lang/en.js +46 -0
  10. package/lib/locale/lang/zh-CN.js +46 -0
  11. package/lib/pro-form.js +1036 -0
  12. package/lib/pro-table.js +2779 -0
  13. package/lib/theme-chalk/editable-pro-table.css +1 -0
  14. package/lib/theme-chalk/index.css +1 -0
  15. package/lib/theme-chalk/pro-table.css +1 -0
  16. package/lib/umd/locale/en.js +67 -0
  17. package/lib/umd/locale/zh-CN.js +67 -0
  18. package/lib/utils/breakpoints.js +68 -0
  19. package/lib/utils/debounce.js +20 -0
  20. package/lib/utils/form.js +108 -0
  21. package/package.json +78 -0
  22. package/packages/dialog-form/index.js +9 -0
  23. package/packages/dialog-form/src/components/Submitter.vue +47 -0
  24. package/packages/dialog-form/src/index.vue +404 -0
  25. package/packages/editable-pro-table/index.js +9 -0
  26. package/packages/editable-pro-table/src/components/Editable.vue +203 -0
  27. package/packages/editable-pro-table/src/components/FormItem.vue +193 -0
  28. package/packages/editable-pro-table/src/components/RecordCreator.vue +43 -0
  29. package/packages/editable-pro-table/src/components/RenderCell.vue +181 -0
  30. package/packages/editable-pro-table/src/index.vue +805 -0
  31. package/packages/pro-form/index.js +9 -0
  32. package/packages/pro-form/src/components/Submitter.vue +47 -0
  33. package/packages/pro-form/src/index.vue +309 -0
  34. package/packages/pro-table/index.js +9 -0
  35. package/packages/pro-table/src/components/ColumnAlignSettings.vue +77 -0
  36. package/packages/pro-table/src/components/ColumnSettings.vue +172 -0
  37. package/packages/pro-table/src/components/ColumnSettingsItem.vue +401 -0
  38. package/packages/pro-table/src/components/svg/ArrowIcon.vue +16 -0
  39. package/packages/pro-table/src/components/svg/HolderIcon.vue +17 -0
  40. package/packages/pro-table/src/components/svg/SettingIcon.vue +20 -0
  41. package/packages/pro-table/src/components/svg/VerticalAlginBottomIcon.vue +17 -0
  42. package/packages/pro-table/src/components/svg/VerticalAlginMiddleIcon.vue +17 -0
  43. package/packages/pro-table/src/components/svg/VerticalAlignTopIcon.vue +17 -0
  44. package/packages/pro-table/src/index.vue +934 -0
  45. package/src/components/custom-render/index.vue +16 -0
  46. package/src/components/pro-form-item/index.vue +129 -0
  47. package/src/index.js +57 -0
  48. package/src/locale/index.js +47 -0
  49. package/src/locale/lang/en.js +46 -0
  50. package/src/locale/lang/zh-CN.js +46 -0
  51. package/src/utils/breakpoints.js +61 -0
  52. package/src/utils/debounce.js +22 -0
  53. package/src/utils/form.js +94 -0
@@ -0,0 +1,1036 @@
1
+ module.exports =
2
+ /******/ (function(modules) { // webpackBootstrap
3
+ /******/ // The module cache
4
+ /******/ var installedModules = {};
5
+ /******/
6
+ /******/ // The require function
7
+ /******/ function __webpack_require__(moduleId) {
8
+ /******/
9
+ /******/ // Check if module is in cache
10
+ /******/ if(installedModules[moduleId]) {
11
+ /******/ return installedModules[moduleId].exports;
12
+ /******/ }
13
+ /******/ // Create a new module (and put it into the cache)
14
+ /******/ var module = installedModules[moduleId] = {
15
+ /******/ i: moduleId,
16
+ /******/ l: false,
17
+ /******/ exports: {}
18
+ /******/ };
19
+ /******/
20
+ /******/ // Execute the module function
21
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22
+ /******/
23
+ /******/ // Flag the module as loaded
24
+ /******/ module.l = true;
25
+ /******/
26
+ /******/ // Return the exports of the module
27
+ /******/ return module.exports;
28
+ /******/ }
29
+ /******/
30
+ /******/
31
+ /******/ // expose the modules object (__webpack_modules__)
32
+ /******/ __webpack_require__.m = modules;
33
+ /******/
34
+ /******/ // expose the module cache
35
+ /******/ __webpack_require__.c = installedModules;
36
+ /******/
37
+ /******/ // define getter function for harmony exports
38
+ /******/ __webpack_require__.d = function(exports, name, getter) {
39
+ /******/ if(!__webpack_require__.o(exports, name)) {
40
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
41
+ /******/ }
42
+ /******/ };
43
+ /******/
44
+ /******/ // define __esModule on exports
45
+ /******/ __webpack_require__.r = function(exports) {
46
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
47
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
48
+ /******/ }
49
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
50
+ /******/ };
51
+ /******/
52
+ /******/ // create a fake namespace object
53
+ /******/ // mode & 1: value is a module id, require it
54
+ /******/ // mode & 2: merge all properties of value into the ns
55
+ /******/ // mode & 4: return value when already ns object
56
+ /******/ // mode & 8|1: behave like require
57
+ /******/ __webpack_require__.t = function(value, mode) {
58
+ /******/ if(mode & 1) value = __webpack_require__(value);
59
+ /******/ if(mode & 8) return value;
60
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
61
+ /******/ var ns = Object.create(null);
62
+ /******/ __webpack_require__.r(ns);
63
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
64
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
65
+ /******/ return ns;
66
+ /******/ };
67
+ /******/
68
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
69
+ /******/ __webpack_require__.n = function(module) {
70
+ /******/ var getter = module && module.__esModule ?
71
+ /******/ function getDefault() { return module['default']; } :
72
+ /******/ function getModuleExports() { return module; };
73
+ /******/ __webpack_require__.d(getter, 'a', getter);
74
+ /******/ return getter;
75
+ /******/ };
76
+ /******/
77
+ /******/ // Object.prototype.hasOwnProperty.call
78
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
79
+ /******/
80
+ /******/ // __webpack_public_path__
81
+ /******/ __webpack_require__.p = "";
82
+ /******/
83
+ /******/
84
+ /******/ // Load entry module and return exports
85
+ /******/ return __webpack_require__(__webpack_require__.s = 11);
86
+ /******/ })
87
+ /************************************************************************/
88
+ /******/ ([
89
+ /* 0 */
90
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
91
+
92
+ "use strict";
93
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
94
+ /* globals __VUE_SSR_CONTEXT__ */
95
+
96
+ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
97
+ // This module is a runtime utility for cleaner component module output and will
98
+ // be included in the final webpack user bundle.
99
+
100
+ function normalizeComponent(
101
+ scriptExports,
102
+ render,
103
+ staticRenderFns,
104
+ functionalTemplate,
105
+ injectStyles,
106
+ scopeId,
107
+ moduleIdentifier /* server only */,
108
+ shadowMode /* vue-cli only */
109
+ ) {
110
+ // Vue.extend constructor export interop
111
+ var options =
112
+ typeof scriptExports === 'function' ? scriptExports.options : scriptExports
113
+
114
+ // render functions
115
+ if (render) {
116
+ options.render = render
117
+ options.staticRenderFns = staticRenderFns
118
+ options._compiled = true
119
+ }
120
+
121
+ // functional template
122
+ if (functionalTemplate) {
123
+ options.functional = true
124
+ }
125
+
126
+ // scopedId
127
+ if (scopeId) {
128
+ options._scopeId = 'data-v-' + scopeId
129
+ }
130
+
131
+ var hook
132
+ if (moduleIdentifier) {
133
+ // server build
134
+ hook = function (context) {
135
+ // 2.3 injection
136
+ context =
137
+ context || // cached call
138
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
139
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
140
+ // 2.2 with runInNewContext: true
141
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
142
+ context = __VUE_SSR_CONTEXT__
143
+ }
144
+ // inject component styles
145
+ if (injectStyles) {
146
+ injectStyles.call(this, context)
147
+ }
148
+ // register component module identifier for async chunk inferrence
149
+ if (context && context._registeredComponents) {
150
+ context._registeredComponents.add(moduleIdentifier)
151
+ }
152
+ }
153
+ // used by ssr in case component is cached and beforeCreate
154
+ // never gets called
155
+ options._ssrRegister = hook
156
+ } else if (injectStyles) {
157
+ hook = shadowMode
158
+ ? function () {
159
+ injectStyles.call(
160
+ this,
161
+ (options.functional ? this.parent : this).$root.$options.shadowRoot
162
+ )
163
+ }
164
+ : injectStyles
165
+ }
166
+
167
+ if (hook) {
168
+ if (options.functional) {
169
+ // for template-only hot-reload because in that case the render fn doesn't
170
+ // go through the normalizer
171
+ options._injectStyles = hook
172
+ // register for functional component in vue file
173
+ var originalRender = options.render
174
+ options.render = function renderWithStyleInjection(h, context) {
175
+ hook.call(context)
176
+ return originalRender(h, context)
177
+ }
178
+ } else {
179
+ // inject component registration as beforeCreate hook
180
+ var existing = options.beforeCreate
181
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook]
182
+ }
183
+ }
184
+
185
+ return {
186
+ exports: scriptExports,
187
+ options: options
188
+ }
189
+ }
190
+
191
+
192
+ /***/ }),
193
+ /* 1 */
194
+ /***/ (function(module, exports) {
195
+
196
+ module.exports = require("element-ui-pro-components/lib/locale");
197
+
198
+ /***/ }),
199
+ /* 2 */
200
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
201
+
202
+ "use strict";
203
+
204
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/custom-render/index.vue?vue&type=script&lang=js
205
+ /* harmony default export */ var custom_rendervue_type_script_lang_js = ({
206
+ name: 'CustomRender',
207
+ props: {
208
+ render: {
209
+ type: Function,
210
+ required: true
211
+ }
212
+ },
213
+ render: function (h) {
214
+ return h("Fragment", [this.render()]);
215
+ }
216
+ });
217
+ // CONCATENATED MODULE: ./src/components/custom-render/index.vue?vue&type=script&lang=js
218
+ /* harmony default export */ var components_custom_rendervue_type_script_lang_js = (custom_rendervue_type_script_lang_js);
219
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
220
+ var componentNormalizer = __webpack_require__(0);
221
+
222
+ // CONCATENATED MODULE: ./src/components/custom-render/index.vue
223
+ var render, staticRenderFns
224
+
225
+
226
+
227
+
228
+ /* normalize component */
229
+
230
+ var component = Object(componentNormalizer["a" /* default */])(
231
+ components_custom_rendervue_type_script_lang_js,
232
+ render,
233
+ staticRenderFns,
234
+ false,
235
+ null,
236
+ null,
237
+ null
238
+
239
+ )
240
+
241
+ /* harmony default export */ var custom_render = __webpack_exports__["a"] = (component.exports);
242
+
243
+ /***/ }),
244
+ /* 3 */
245
+ /***/ (function(module, exports) {
246
+
247
+ module.exports = require("element-ui-pro-components/lib/utils/form");
248
+
249
+ /***/ }),
250
+ /* 4 */
251
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
252
+
253
+ "use strict";
254
+
255
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/vue-loader/lib??vue-loader-options!./src/components/pro-form-item/index.vue?vue&type=template&id=8611eff6
256
+ var render = function render() {
257
+ var _vm = this,
258
+ _c = _vm._self._c
259
+ return _c(
260
+ "el-form-item",
261
+ _vm._b(
262
+ {
263
+ scopedSlots: _vm._u(
264
+ [
265
+ _vm.formItem.renderLabel
266
+ ? {
267
+ key: "label",
268
+ fn: function () {
269
+ return [
270
+ _c("CustomRender", {
271
+ attrs: { render: _vm.formItem.renderLabel },
272
+ }),
273
+ ]
274
+ },
275
+ proxy: true,
276
+ }
277
+ : null,
278
+ ],
279
+ null,
280
+ true
281
+ ),
282
+ },
283
+ "el-form-item",
284
+ _vm.normalizedFormItem,
285
+ false
286
+ ),
287
+ [
288
+ _vm.formItem.renderField
289
+ ? _c("CustomRender", {
290
+ attrs: {
291
+ render: () =>
292
+ _vm.formItem.renderField({
293
+ form: _vm.form,
294
+ formItem: _vm.formItem,
295
+ }),
296
+ },
297
+ })
298
+ : _vm.formItem.valueType === "slot"
299
+ ? _vm._t(_vm.formItem.prop)
300
+ : _c(
301
+ `el-${_vm.formItem.valueType}`,
302
+ _vm._g(
303
+ _vm._b(
304
+ {
305
+ tag: "component",
306
+ model: {
307
+ value: _vm.form[_vm.formItem.prop],
308
+ callback: function ($$v) {
309
+ _vm.$set(_vm.form, _vm.formItem.prop, $$v)
310
+ },
311
+ expression: "form[formItem.prop]",
312
+ },
313
+ },
314
+ "component",
315
+ _vm.formItem.fieldProps,
316
+ false
317
+ ),
318
+ _vm.formItem.fieldEvents
319
+ ),
320
+ [
321
+ _vm.formItem.valueType === "select"
322
+ ? [
323
+ _vm.isOptionGroup
324
+ ? _vm._l(_vm.formItem.options, function (group) {
325
+ return _c(
326
+ "el-option-group",
327
+ _vm._b(
328
+ { key: group.label },
329
+ "el-option-group",
330
+ group,
331
+ false
332
+ ),
333
+ _vm._l(group.options, function (option) {
334
+ return _c(
335
+ "el-option",
336
+ _vm._b(
337
+ { key: option.value },
338
+ "el-option",
339
+ option,
340
+ false
341
+ )
342
+ )
343
+ }),
344
+ 1
345
+ )
346
+ })
347
+ : _vm._l(_vm.formItem.options, function (option) {
348
+ return _c(
349
+ "el-option",
350
+ _vm._b(
351
+ { key: option.value },
352
+ "el-option",
353
+ option,
354
+ false
355
+ )
356
+ )
357
+ }),
358
+ ]
359
+ : _vm.groups.includes(_vm.formItem.valueType)
360
+ ? _vm._l(_vm.formItem.options, function (option) {
361
+ return _c(
362
+ _vm.selection[_vm.formItem.valueType],
363
+ {
364
+ key: option.value,
365
+ tag: "component",
366
+ attrs: { label: option.value },
367
+ },
368
+ [_vm._v("\n " + _vm._s(option.label) + "\n ")]
369
+ )
370
+ })
371
+ : _vm._e(),
372
+ ],
373
+ 2
374
+ ),
375
+ ],
376
+ 2
377
+ )
378
+ }
379
+ var staticRenderFns = []
380
+ render._withStripped = true
381
+
382
+
383
+ // CONCATENATED MODULE: ./src/components/pro-form-item/index.vue?vue&type=template&id=8611eff6
384
+
385
+ // EXTERNAL MODULE: ./src/components/custom-render/index.vue + 2 modules
386
+ var custom_render = __webpack_require__(2);
387
+
388
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/components/pro-form-item/index.vue?vue&type=script&lang=js
389
+
390
+ /* harmony default export */ var pro_form_itemvue_type_script_lang_js = ({
391
+ name: 'ProFormItem',
392
+ components: {
393
+ CustomRender: custom_render["a" /* default */]
394
+ },
395
+ props: {
396
+ // formItem 项
397
+ formItem: {
398
+ type: Object,
399
+ required: true
400
+ },
401
+ // 表单数据
402
+ form: {
403
+ type: Object,
404
+ required: true
405
+ }
406
+ },
407
+ computed: {
408
+ // 过滤 el-form-item 的属性
409
+ normalizedFormItem() {
410
+ const {
411
+ renderLabel,
412
+ valueType,
413
+ renderField,
414
+ fieldProps,
415
+ fieldEvents,
416
+ options,
417
+ valueEnum,
418
+ optionLoader,
419
+ initialValue,
420
+ colProps,
421
+ ...keys
422
+ } = this.formItem;
423
+ return keys;
424
+ },
425
+ isOptionGroup() {
426
+ var _this$formItem$option, _this$formItem$option2;
427
+ return (_this$formItem$option = this.formItem.options) === null || _this$formItem$option === void 0 ? void 0 : (_this$formItem$option2 = _this$formItem$option[0]) === null || _this$formItem$option2 === void 0 ? void 0 : _this$formItem$option2.options;
428
+ }
429
+ },
430
+ data() {
431
+ return {
432
+ groups: ['radio-group', 'checkbox-group'],
433
+ // valueType
434
+ selection: {
435
+ // 选项组对应的组件
436
+ 'radio-group': 'el-radio',
437
+ 'checkbox-group': 'el-checkbox'
438
+ }
439
+ };
440
+ }
441
+ });
442
+ // CONCATENATED MODULE: ./src/components/pro-form-item/index.vue?vue&type=script&lang=js
443
+ /* harmony default export */ var components_pro_form_itemvue_type_script_lang_js = (pro_form_itemvue_type_script_lang_js);
444
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
445
+ var componentNormalizer = __webpack_require__(0);
446
+
447
+ // CONCATENATED MODULE: ./src/components/pro-form-item/index.vue
448
+
449
+
450
+
451
+
452
+
453
+ /* normalize component */
454
+
455
+ var component = Object(componentNormalizer["a" /* default */])(
456
+ components_pro_form_itemvue_type_script_lang_js,
457
+ render,
458
+ staticRenderFns,
459
+ false,
460
+ null,
461
+ null,
462
+ null
463
+
464
+ )
465
+
466
+ /* harmony default export */ var pro_form_item = __webpack_exports__["a"] = (component.exports);
467
+
468
+ /***/ }),
469
+ /* 5 */,
470
+ /* 6 */
471
+ /***/ (function(module, exports, __webpack_require__) {
472
+
473
+ "use strict";
474
+
475
+
476
+ function _extends() {
477
+ return _extends = Object.assign ? Object.assign.bind() : function (a) {
478
+ for (var b, c = 1; c < arguments.length; c++) for (var d in b = arguments[c], b) Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]);
479
+ return a;
480
+ }, _extends.apply(this, arguments);
481
+ }
482
+ var normalMerge = ["attrs", "props", "domProps"],
483
+ toArrayMerge = ["class", "style", "directives"],
484
+ functionalMerge = ["on", "nativeOn"],
485
+ mergeJsxProps = function (a) {
486
+ return a.reduce(function (c, a) {
487
+ for (var b in a) if (!c[b]) c[b] = a[b];else if (-1 !== normalMerge.indexOf(b)) c[b] = _extends({}, c[b], a[b]);else if (-1 !== toArrayMerge.indexOf(b)) {
488
+ var d = c[b] instanceof Array ? c[b] : [c[b]],
489
+ e = a[b] instanceof Array ? a[b] : [a[b]];
490
+ c[b] = [].concat(d, e);
491
+ } else if (-1 !== functionalMerge.indexOf(b)) {
492
+ for (var f in a[b]) if (c[b][f]) {
493
+ var g = c[b][f] instanceof Array ? c[b][f] : [c[b][f]],
494
+ h = a[b][f] instanceof Array ? a[b][f] : [a[b][f]];
495
+ c[b][f] = [].concat(g, h);
496
+ } else c[b][f] = a[b][f];
497
+ } else if ("hook" === b) for (var i in a[b]) c[b][i] = c[b][i] ? mergeFn(c[b][i], a[b][i]) : a[b][i];else c[b] = a[b];
498
+ return c;
499
+ }, {});
500
+ },
501
+ mergeFn = function (a, b) {
502
+ return function () {
503
+ a && a.apply(this, arguments), b && b.apply(this, arguments);
504
+ };
505
+ };
506
+ module.exports = mergeJsxProps;
507
+
508
+ /***/ }),
509
+ /* 7 */,
510
+ /* 8 */,
511
+ /* 9 */,
512
+ /* 10 */,
513
+ /* 11 */
514
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
515
+
516
+ "use strict";
517
+ // ESM COMPAT FLAG
518
+ __webpack_require__.r(__webpack_exports__);
519
+
520
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/vue-loader/lib??vue-loader-options!./packages/pro-form/src/index.vue?vue&type=template&id=08d284da
521
+ var srcvue_type_template_id_08d284da_render = function render() {
522
+ var _vm = this,
523
+ _c = _vm._self._c
524
+ return _c(
525
+ "el-form",
526
+ _vm._b(
527
+ {
528
+ ref: "proFormRef",
529
+ staticClass: "pro-form",
530
+ class: _vm.className,
531
+ attrs: { model: _vm.form },
532
+ },
533
+ "el-form",
534
+ _vm.formProps,
535
+ false
536
+ ),
537
+ [
538
+ _vm.grid
539
+ ? [
540
+ _c(
541
+ "el-row",
542
+ _vm._b({}, "el-row", _vm.rowProps, false),
543
+ _vm._l(_vm.normalizedFormItems, function (formItem) {
544
+ return _c(
545
+ "el-col",
546
+ _vm._b(
547
+ { key: formItem.prop || formItem.key },
548
+ "el-col",
549
+ formItem.colProps,
550
+ false
551
+ ),
552
+ [
553
+ formItem.customSlot
554
+ ? _vm._t(
555
+ formItem.customSlot === true
556
+ ? formItem.prop
557
+ : formItem.customSlot,
558
+ null,
559
+ null,
560
+ { form: _vm.form }
561
+ )
562
+ : formItem.renderFormItem
563
+ ? _c("CustomRender", {
564
+ attrs: {
565
+ render: () => formItem.renderFormItem(_vm.form),
566
+ },
567
+ })
568
+ : _c("ProFormItem", {
569
+ attrs: { form: _vm.form, formItem: formItem },
570
+ scopedSlots: _vm._u(
571
+ [
572
+ {
573
+ key: formItem.prop,
574
+ fn: function () {
575
+ return [
576
+ _vm._t(formItem.prop, null, null, {
577
+ form: _vm.form,
578
+ formItem,
579
+ }),
580
+ ]
581
+ },
582
+ proxy: true,
583
+ },
584
+ ],
585
+ null,
586
+ true
587
+ ),
588
+ }),
589
+ ],
590
+ 2
591
+ )
592
+ }),
593
+ 1
594
+ ),
595
+ ]
596
+ : [
597
+ _vm._l(_vm.normalizedFormItems, function (formItem) {
598
+ return [
599
+ formItem.customSlot
600
+ ? _vm._t(
601
+ formItem.customSlot === true
602
+ ? formItem.prop
603
+ : formItem.customSlot,
604
+ null,
605
+ null,
606
+ { form: _vm.form }
607
+ )
608
+ : formItem.renderFormItem
609
+ ? _c("CustomRender", {
610
+ key: formItem.prop || formItem.key,
611
+ attrs: {
612
+ render: () => formItem.renderFormItem(_vm.form),
613
+ },
614
+ })
615
+ : _c("ProFormItem", {
616
+ key: formItem.prop || formItem.key,
617
+ attrs: { form: _vm.form, formItem: formItem },
618
+ scopedSlots: _vm._u(
619
+ [
620
+ {
621
+ key: formItem.prop,
622
+ fn: function () {
623
+ return [
624
+ _vm._t(formItem.prop, null, null, {
625
+ form: _vm.form,
626
+ formItem,
627
+ }),
628
+ ]
629
+ },
630
+ proxy: true,
631
+ },
632
+ ],
633
+ null,
634
+ true
635
+ ),
636
+ }),
637
+ ]
638
+ }),
639
+ ],
640
+ _vm.submitter
641
+ ? [
642
+ _c("Submitter", {
643
+ attrs: {
644
+ submitter: _vm.submitterProps,
645
+ actions: {
646
+ submit: _vm.submit,
647
+ reset: _vm.reset,
648
+ resetAllFields: _vm.resetAllFields,
649
+ },
650
+ render: _vm.submitter.customRender
651
+ ? (actions, doms) =>
652
+ _vm.submitter.customRender(_vm.form, actions, doms)
653
+ : null,
654
+ },
655
+ }),
656
+ ]
657
+ : _vm._e(),
658
+ ],
659
+ 2
660
+ )
661
+ }
662
+ var staticRenderFns = []
663
+ srcvue_type_template_id_08d284da_render._withStripped = true
664
+
665
+
666
+ // CONCATENATED MODULE: ./packages/pro-form/src/index.vue?vue&type=template&id=08d284da
667
+
668
+ // EXTERNAL MODULE: ./src/components/custom-render/index.vue + 2 modules
669
+ var custom_render = __webpack_require__(2);
670
+
671
+ // EXTERNAL MODULE: ./src/components/pro-form-item/index.vue + 4 modules
672
+ var pro_form_item = __webpack_require__(4);
673
+
674
+ // EXTERNAL MODULE: ./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js
675
+ var helper = __webpack_require__(6);
676
+ var helper_default = /*#__PURE__*/__webpack_require__.n(helper);
677
+
678
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/pro-form/src/components/Submitter.vue?vue&type=script&lang=js
679
+
680
+ /* harmony default export */ var Submittervue_type_script_lang_js = ({
681
+ name: 'Submitter',
682
+ props: {
683
+ render: {
684
+ validator: value => {
685
+ return value === null || typeof value === 'function';
686
+ },
687
+ required: true
688
+ },
689
+ submitter: {
690
+ type: Object,
691
+ required: true
692
+ },
693
+ actions: {
694
+ type: Object,
695
+ required: true
696
+ }
697
+ },
698
+ render: function (h) {
699
+ const {
700
+ submitter: {
701
+ resetText,
702
+ submitText,
703
+ resetButtonProps,
704
+ submitButtonProps
705
+ },
706
+ actions: {
707
+ reset,
708
+ submit
709
+ },
710
+ render
711
+ } = this;
712
+ // { ...props } 传递组件属性时 需要 props 包裹
713
+ const resetProps = {
714
+ props: resetButtonProps,
715
+ resetButtonProps
716
+ };
717
+ const submitProps = {
718
+ props: submitButtonProps,
719
+ submitButtonProps
720
+ };
721
+ const doms = [h("el-button", helper_default()([{}, resetProps, {
722
+ "on": {
723
+ "click": reset
724
+ },
725
+ "key": 'reset'
726
+ }]), [resetText]), h("el-button", helper_default()([{
727
+ "attrs": {
728
+ "type": "primary"
729
+ }
730
+ }, submitProps, {
731
+ "on": {
732
+ "click": submit
733
+ },
734
+ "key": 'submit'
735
+ }]), [submitText])];
736
+ return render ? h("Fragment", [render(this.actions, doms)]) : h("el-form-item", {
737
+ "class": "pro-form__submitter"
738
+ }, [doms]);
739
+ }
740
+ });
741
+ // CONCATENATED MODULE: ./packages/pro-form/src/components/Submitter.vue?vue&type=script&lang=js
742
+ /* harmony default export */ var components_Submittervue_type_script_lang_js = (Submittervue_type_script_lang_js);
743
+ // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
744
+ var componentNormalizer = __webpack_require__(0);
745
+
746
+ // CONCATENATED MODULE: ./packages/pro-form/src/components/Submitter.vue
747
+ var Submitter_render, Submitter_staticRenderFns
748
+
749
+
750
+
751
+
752
+ /* normalize component */
753
+
754
+ var component = Object(componentNormalizer["a" /* default */])(
755
+ components_Submittervue_type_script_lang_js,
756
+ Submitter_render,
757
+ Submitter_staticRenderFns,
758
+ false,
759
+ null,
760
+ "0f5f64bc",
761
+ null
762
+
763
+ )
764
+
765
+ /* harmony default export */ var Submitter = (component.exports);
766
+ // EXTERNAL MODULE: external "element-ui-pro-components/lib/utils/form"
767
+ var form_ = __webpack_require__(3);
768
+
769
+ // EXTERNAL MODULE: external "element-ui-pro-components/lib/locale"
770
+ var locale_ = __webpack_require__(1);
771
+
772
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/pro-form/src/index.vue?vue&type=script&lang=js
773
+
774
+
775
+
776
+
777
+
778
+ /* harmony default export */ var srcvue_type_script_lang_js = ({
779
+ name: 'ProForm',
780
+ components: {
781
+ CustomRender: custom_render["a" /* default */],
782
+ ProFormItem: pro_form_item["a" /* default */],
783
+ Submitter: Submitter
784
+ },
785
+ props: {
786
+ // el-form attributes 的配置
787
+ formProps: {
788
+ type: Object,
789
+ default: () => ({})
790
+ },
791
+ // el-form 的类名
792
+ className: {
793
+ type: String
794
+ },
795
+ // 列定义
796
+ formItems: {
797
+ type: Array,
798
+ required: true,
799
+ default: () => []
800
+ },
801
+ // 提交按钮相关配置
802
+ submitter: {
803
+ type: [Boolean, Object],
804
+ default: true
805
+ },
806
+ // 开启栅格化模式
807
+ grid: {
808
+ type: Boolean
809
+ },
810
+ // 开启 grid 模式时传递给 el-row
811
+ rowProps: {
812
+ type: Object,
813
+ default: () => ({
814
+ gutter: 8
815
+ })
816
+ },
817
+ // 表单默认值
818
+ initialValues: {
819
+ type: Object,
820
+ default: () => ({})
821
+ }
822
+ },
823
+ computed: {
824
+ // formItems 标准化处理
825
+ normalizedFormItems() {
826
+ return this.formItems
827
+ // 过滤隐藏项
828
+ .filter(item => !item.hideInForm).map(item => {
829
+ const {
830
+ valueType,
831
+ fieldProps = {}
832
+ } = item;
833
+ // 设置 placeholder
834
+ Object(form_["setPlaceholder"])(fieldProps, valueType);
835
+
836
+ // 设置 select options
837
+ Object(form_["setSelectOptions"])(item, this.cachedOptions);
838
+
839
+ // 设置 cascader options
840
+ Object(form_["setCascaderOptions"])(fieldProps, item, this.cachedOptions);
841
+ return {
842
+ ...item,
843
+ fieldProps
844
+ };
845
+ });
846
+ },
847
+ // submitter 标准化处理
848
+ submitterProps() {
849
+ if (this.submitter) {
850
+ // 配置按钮文本
851
+ const defaultTextConfig = {
852
+ resetText: Object(locale_["t"])('elProComponents.proForm.reset'),
853
+ submitText: Object(locale_["t"])('elProComponents.proForm.submit')
854
+ };
855
+
856
+ // 对象类型
857
+ if (typeof this.submitter === 'object') {
858
+ return {
859
+ ...defaultTextConfig,
860
+ ...this.submitter
861
+ };
862
+ }
863
+
864
+ // 返回默认配置
865
+ return {
866
+ ...defaultTextConfig
867
+ };
868
+ }
869
+ return false;
870
+ }
871
+ },
872
+ data() {
873
+ return {
874
+ cachedOptions: {},
875
+ // 下拉数据 { [prop]: res }
876
+ form: this.initForm() // 表单数据
877
+ };
878
+ },
879
+ created() {
880
+ // 获取异步数据
881
+ this.getOptions();
882
+ },
883
+ methods: {
884
+ /**
885
+ * @desc 获取异步下拉数据
886
+ */
887
+ getOptions() {
888
+ for (const item of this.formItems) {
889
+ const {
890
+ prop,
891
+ optionLoader
892
+ } = item;
893
+ if (typeof optionLoader === 'function') {
894
+ optionLoader().then(res => {
895
+ this.cachedOptions = {
896
+ ...this.cachedOptions,
897
+ [prop]: res
898
+ };
899
+ });
900
+ }
901
+ }
902
+ },
903
+ /**
904
+ * @desc 初始化表单数据
905
+ */
906
+ initForm() {
907
+ const {
908
+ formItems,
909
+ initialValues
910
+ } = this;
911
+ const data = formItems.reduce((accu, cur) => {
912
+ const {
913
+ prop,
914
+ initialValue
915
+ } = cur;
916
+ if (!prop) {
917
+ return accu;
918
+ }
919
+ return {
920
+ ...accu,
921
+ [prop]: initialValue
922
+ };
923
+ }, {});
924
+ return {
925
+ ...initialValues,
926
+ ...data
927
+ };
928
+ },
929
+ /**
930
+ * @desc 获取 el-form ref
931
+ * @returns {Object}
932
+ */
933
+ getFormRef() {
934
+ return this.$refs.proFormRef;
935
+ },
936
+ /**
937
+ * @desc 获取表单数据
938
+ * @returns {Object}
939
+ */
940
+ getForm() {
941
+ return this.form;
942
+ },
943
+ /**
944
+ * @desc 手动更新表单数据
945
+ * @param {Object} data 数据
946
+ */
947
+ setFieldsValue(data) {
948
+ this.form = {
949
+ ...this.form,
950
+ ...data
951
+ };
952
+ },
953
+ /**
954
+ * @desc 手动更新单个字段数据
955
+ * @param {String} key 键
956
+ * @param {any} value 值
957
+ */
958
+ setFieldValue(key, value) {
959
+ this.form[key] = value;
960
+ },
961
+ /**
962
+ * @desc 提交
963
+ */
964
+ submit() {
965
+ var _this$$refs$proFormRe;
966
+ (_this$$refs$proFormRe = this.$refs.proFormRef) === null || _this$$refs$proFormRe === void 0 ? void 0 : _this$$refs$proFormRe.validate((valid, object) => {
967
+ if (valid) {
968
+ // 回传给父组件
969
+ this.$emit('onFinish', this.form);
970
+ return;
971
+ }
972
+
973
+ // 回传给父组件
974
+ this.$emit('onError', object);
975
+ });
976
+ },
977
+ /**
978
+ * @desc 重置
979
+ */
980
+ async reset() {
981
+ try {
982
+ var _this$$refs$proFormRe2;
983
+ await ((_this$$refs$proFormRe2 = this.$refs.proFormRef) === null || _this$$refs$proFormRe2 === void 0 ? void 0 : _this$$refs$proFormRe2.resetFields());
984
+ // 回传给父组件
985
+ this.$emit('onReset');
986
+ } catch (err) {
987
+ console.error('err', err);
988
+ }
989
+ },
990
+ /**
991
+ * @desc 重置表单的拓展方法,过滤了非表单项的字段
992
+ */
993
+ resetAllFields() {
994
+ var _this$$refs$proFormRe3;
995
+ // 清除校验
996
+ (_this$$refs$proFormRe3 = this.$refs.proFormRef) === null || _this$$refs$proFormRe3 === void 0 ? void 0 : _this$$refs$proFormRe3.clearValidate();
997
+ // 重置数据
998
+ this.form = this.initForm();
999
+ }
1000
+ }
1001
+ });
1002
+ // CONCATENATED MODULE: ./packages/pro-form/src/index.vue?vue&type=script&lang=js
1003
+ /* harmony default export */ var pro_form_srcvue_type_script_lang_js = (srcvue_type_script_lang_js);
1004
+ // CONCATENATED MODULE: ./packages/pro-form/src/index.vue
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+ /* normalize component */
1011
+
1012
+ var src_component = Object(componentNormalizer["a" /* default */])(
1013
+ pro_form_srcvue_type_script_lang_js,
1014
+ srcvue_type_template_id_08d284da_render,
1015
+ staticRenderFns,
1016
+ false,
1017
+ null,
1018
+ null,
1019
+ null
1020
+
1021
+ )
1022
+
1023
+ /* harmony default export */ var src = (src_component.exports);
1024
+ // CONCATENATED MODULE: ./packages/pro-form/index.js
1025
+
1026
+
1027
+ // 为组件提供 install 方法
1028
+ src.install = function (Vue) {
1029
+ Vue.component(src.name, src);
1030
+ };
1031
+
1032
+ // 默认导出组件
1033
+ /* harmony default export */ var pro_form = __webpack_exports__["default"] = (src);
1034
+
1035
+ /***/ })
1036
+ /******/ ]);