@vue-start/element-pro 0.1.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.
package/dist/index.js ADDED
@@ -0,0 +1,1933 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var elementPlus = require('element-plus');
7
+ var lodash = require('lodash');
8
+ var hooks = require('@vue-start/hooks');
9
+ var request = require('@vue-start/request');
10
+ var rxjs = require('rxjs');
11
+
12
+ function ownKeys(object, enumerableOnly) {
13
+ var keys = Object.keys(object);
14
+
15
+ if (Object.getOwnPropertySymbols) {
16
+ var symbols = Object.getOwnPropertySymbols(object);
17
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
18
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
19
+ })), keys.push.apply(keys, symbols);
20
+ }
21
+
22
+ return keys;
23
+ }
24
+
25
+ function _objectSpread2(target) {
26
+ for (var i = 1; i < arguments.length; i++) {
27
+ var source = null != arguments[i] ? arguments[i] : {};
28
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
29
+ _defineProperty(target, key, source[key]);
30
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
31
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
32
+ });
33
+ }
34
+
35
+ return target;
36
+ }
37
+
38
+ function _defineProperty(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+
50
+ return obj;
51
+ }
52
+
53
+ function _toConsumableArray(arr) {
54
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
55
+ }
56
+
57
+ function _arrayWithoutHoles(arr) {
58
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
59
+ }
60
+
61
+ function _iterableToArray(iter) {
62
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
63
+ }
64
+
65
+ function _unsupportedIterableToArray(o, minLen) {
66
+ if (!o) return;
67
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
68
+ var n = Object.prototype.toString.call(o).slice(8, -1);
69
+ if (n === "Object" && o.constructor) n = o.constructor.name;
70
+ if (n === "Map" || n === "Set") return Array.from(o);
71
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
72
+ }
73
+
74
+ function _arrayLikeToArray(arr, len) {
75
+ if (len == null || len > arr.length) len = arr.length;
76
+
77
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
78
+
79
+ return arr2;
80
+ }
81
+
82
+ function _nonIterableSpread() {
83
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
84
+ }
85
+
86
+ /**
87
+ * ProForm ctx
88
+ */
89
+ var ProFormKey = Symbol("pro-form");
90
+ var useProForm = function useProForm() {
91
+ return vue.inject(ProFormKey);
92
+ };
93
+ var provideProForm = function provideProForm(ctx) {
94
+ vue.provide(ProFormKey, ctx);
95
+ };
96
+ /**
97
+ * ProFormList ctx
98
+ */
99
+
100
+ var ProFormListKey = Symbol("pro-form-list");
101
+ var useProFormList = function useProFormList() {
102
+ return vue.inject(ProFormListKey);
103
+ };
104
+ var provideProFormList = function provideProFormList(ctx) {
105
+ vue.provide(ProFormListKey, ctx);
106
+ };
107
+
108
+ /**
109
+ * 剔除showState或showStateRules规则为!true的值
110
+ * @param values
111
+ * @param showState
112
+ * @param showStateRules
113
+ */
114
+ var getValidValues = function getValidValues(values, showState, showStateRules) {
115
+ if (showState) {
116
+ var invalidKeys = lodash.filter(lodash.keys(showState), function (key) {
117
+ return !showState[key];
118
+ });
119
+ return lodash.omit(values, invalidKeys);
120
+ }
121
+
122
+ if (showStateRules) {
123
+ var _invalidKeys = lodash.filter(lodash.keys(showStateRules), function (key) {
124
+ return !showStateRules[key](values);
125
+ });
126
+
127
+ return lodash.omit(values, _invalidKeys);
128
+ }
129
+
130
+ return values;
131
+ };
132
+ /**
133
+ * string类型的path转为arr
134
+ * @param path
135
+ */
136
+
137
+ var convertPathToList = function convertPathToList(path) {
138
+ if (!path) {
139
+ return undefined;
140
+ }
141
+
142
+ if (lodash.isArray(path)) {
143
+ return path;
144
+ }
145
+
146
+ if (path && lodash.isString(path) && path.indexOf(".") > 0) {
147
+ return lodash.split(path, ".");
148
+ }
149
+
150
+ return [path];
151
+ };
152
+
153
+ var proFormItemProps$1 = function proFormItemProps() {
154
+ return {
155
+ name: {
156
+ type: [String, Array]
157
+ }
158
+ };
159
+ };
160
+
161
+ var ProFormItem = vue.defineComponent({
162
+ props: _objectSpread2(_objectSpread2({}, elementPlus.ElFormItem.props), proFormItemProps$1()),
163
+ setup: function setup(props, _ref) {
164
+ var slots = _ref.slots;
165
+ var invalidKeys = lodash.keys(proFormItemProps$1());
166
+ return function () {
167
+ return vue.createVNode(elementPlus.ElFormItem, vue.mergeProps(lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["name", "prop"])), {
168
+ "prop": props.prop || props.name
169
+ }), slots);
170
+ };
171
+ }
172
+ });
173
+
174
+ var proFormProps = function proFormProps() {
175
+ return {
176
+ /**
177
+ * 子组件是否只读样式
178
+ */
179
+ readonly: {
180
+ type: Boolean,
181
+ "default": undefined
182
+ },
183
+
184
+ /**
185
+ * FormComponent 根据此项来确定组件是否显示
186
+ * rules 根据rules中方法生成showState对象
187
+ */
188
+ showState: {
189
+ type: Object
190
+ },
191
+ showStateRules: {
192
+ type: Object
193
+ },
194
+
195
+ /**
196
+ * 是否只读
197
+ */
198
+ readonlyState: {
199
+ type: Object
200
+ },
201
+ readonlyStateRules: {
202
+ type: Object
203
+ },
204
+
205
+ /**
206
+ * 是否disabled
207
+ */
208
+ disableState: {
209
+ type: Object
210
+ },
211
+ disableStateRules: {
212
+ type: Object
213
+ },
214
+
215
+ /**
216
+ * 展示控件集合,readonly模式下使用这些组件渲染
217
+ */
218
+ elementMap: {
219
+ type: Object
220
+ },
221
+
222
+ /**
223
+ * provide传递
224
+ */
225
+ provideExtra: {
226
+ type: Object
227
+ }
228
+ };
229
+ };
230
+
231
+ //emit;
232
+ var ProForm = vue.defineComponent({
233
+ props: _objectSpread2(_objectSpread2({}, elementPlus.ElForm.props), proFormProps()),
234
+ setup: function setup(props, _ref2) {
235
+ var slots = _ref2.slots,
236
+ expose = _ref2.expose,
237
+ emit = _ref2.emit;
238
+ var form = vue.ref();
239
+ var formState = props.model || vue.reactive({}); //组件状态相关
240
+
241
+ var showState = props.showState || vue.reactive({});
242
+ var readonlyState = props.readonlyState || vue.reactive({});
243
+ var disableState = props.disableState || vue.reactive({}); //formState改变情况下,更新 showState,readonlyState,disableState状态
244
+
245
+ hooks.useEffect(function () {
246
+ if (props.showStateRules) {
247
+ lodash.forEach(props.showStateRules, function (fn, key) {
248
+ showState[key] = fn(formState);
249
+ });
250
+ }
251
+
252
+ if (props.readonlyStateRules) {
253
+ lodash.forEach(props.readonlyStateRules, function (fn, key) {
254
+ readonlyState[key] = fn(formState);
255
+ });
256
+ }
257
+
258
+ if (props.disableStateRules) {
259
+ lodash.forEach(props.disableStateRules, function (fn, key) {
260
+ disableState[key] = fn(formState);
261
+ });
262
+ }
263
+ }, formState); //转换为ref对象
264
+
265
+ var readonly = vue.computed(function () {
266
+ return props.readonly;
267
+ });
268
+ provideProForm(_objectSpread2({
269
+ formRef: form,
270
+ formState: formState,
271
+ showState: showState,
272
+ readonlyState: readonlyState,
273
+ disableState: disableState,
274
+ //
275
+ elementMap: props.elementMap,
276
+ //
277
+ readonly: readonly
278
+ }, props.provideExtra));
279
+
280
+ var formRef = function formRef(el) {
281
+ var nexEl = _objectSpread2(_objectSpread2({}, el), {}, {
282
+ submit: function submit() {
283
+ var _el$validate;
284
+
285
+ (_el$validate = el.validate) === null || _el$validate === void 0 ? void 0 : _el$validate.call(el, function (isValid, invalidFields) {
286
+ if (isValid) {
287
+ //验证成功
288
+ //删除不显示的值再触发事件
289
+ var _showValues = getValidValues(formState, showState, props.showStateRules);
290
+
291
+ emit("finish", _showValues, vue.toRaw(formState));
292
+ } else {
293
+ emit("finishFailed", invalidFields);
294
+ }
295
+ });
296
+ }
297
+ });
298
+
299
+ expose(nexEl);
300
+ form.value = nexEl;
301
+ };
302
+
303
+ var invalidKeys = lodash.keys(proFormProps());
304
+ return function () {
305
+ return vue.createVNode(elementPlus.ElForm, vue.mergeProps({
306
+ "ref": formRef
307
+ }, lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["model"])), {
308
+ "model": formState
309
+ }), slots);
310
+ };
311
+ }
312
+ });
313
+
314
+ var ProModuleKey = Symbol("pro-module");
315
+ var useProModule = function useProModule() {
316
+ return vue.inject(ProModuleKey);
317
+ };
318
+ var provideProModule = function provideProModule(ctx) {
319
+ vue.provide(ProModuleKey, ctx);
320
+ };
321
+
322
+ /**
323
+ * 获取Column的valueType,默认"text"
324
+ * @param column
325
+ */
326
+
327
+ var getColumnValueType = function getColumnValueType(column) {
328
+ return column.formValueType || column.valueType || "text";
329
+ };
330
+ /**
331
+ *获取Column的FormItem name
332
+ * @param column
333
+ */
334
+
335
+ var getColumnFormItemName = function getColumnFormItemName(column) {
336
+ var _column$formItemProps;
337
+
338
+ return ((_column$formItemProps = column.formItemProps) === null || _column$formItemProps === void 0 ? void 0 : _column$formItemProps.name) || column.dataIndex;
339
+ };
340
+ /**
341
+ * 根据Column生成FormItem VNode
342
+ * formFieldProps中的slots参数会以v-slots的形式传递到FormItem的录入组件(子组件)中
343
+ * @param formElementMap
344
+ * @param column
345
+ * @param needRules
346
+ */
347
+
348
+ var getFormItemEl = function getFormItemEl(formElementMap, column) {
349
+ var _column$formFieldProp;
350
+
351
+ var needRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
352
+ var valueType = getColumnValueType(column);
353
+ var Comp = lodash.get(formElementMap, valueType);
354
+
355
+ if (!Comp) {
356
+ return null;
357
+ }
358
+
359
+ var name = getColumnFormItemName(column);
360
+ var itemProps = needRules ? column.formItemProps : lodash.omit(column.formItemProps, "rules");
361
+ return vue.createVNode(Comp, vue.mergeProps({
362
+ "key": name,
363
+ "name": name,
364
+ "label": column.title
365
+ }, itemProps, {
366
+ "fieldProps": lodash.omit(column.formFieldProps, "slots"),
367
+ "showProps": column.showProps
368
+ }), (_column$formFieldProp = column.formFieldProps) === null || _column$formFieldProp === void 0 ? void 0 : _column$formFieldProp.slots);
369
+ };
370
+ /**
371
+ * 根据Column生成Item VNode
372
+ * @param elementMap
373
+ * @param column
374
+ * @param value
375
+ */
376
+
377
+ var getItemEl = function getItemEl(elementMap, column, value) {
378
+ var _column$formFieldProp2;
379
+
380
+ var valueType = column.valueType || "text";
381
+ var Comp = lodash.get(elementMap, valueType);
382
+
383
+ if (!Comp) {
384
+ return null;
385
+ }
386
+
387
+ return vue.createVNode(Comp, vue.mergeProps(lodash.omit(column.formFieldProps, "slots"), {
388
+ "showProps": column.showProps,
389
+ "value": value
390
+ }), (_column$formFieldProp2 = column.formFieldProps) === null || _column$formFieldProp2 === void 0 ? void 0 : _column$formFieldProp2.slots);
391
+ };
392
+
393
+ var proModuleProps = function proModuleProps() {
394
+ return {
395
+ /**
396
+ * 配置(静态)
397
+ */
398
+ columns: {
399
+ type: Array
400
+ },
401
+
402
+ /**
403
+ * 配置(动态)
404
+ * columns动态属性兼容
405
+ */
406
+ columnState: {
407
+ type: Object
408
+ },
409
+
410
+ /**
411
+ * 展示组件集
412
+ */
413
+ elementMap: {
414
+ type: Object
415
+ },
416
+
417
+ /**
418
+ * 录入组件集
419
+ */
420
+ formElementMap: {
421
+ type: Object
422
+ }
423
+ };
424
+ };
425
+
426
+ var ProModule = vue.defineComponent({
427
+ name: "PModule",
428
+ props: _objectSpread2({}, proModuleProps()),
429
+ setup: function setup(props, _ref) {
430
+ var slots = _ref.slots;
431
+
432
+ /**
433
+ * columns columnState 合并
434
+ */
435
+ var columns = vue.computed(function () {
436
+ return lodash.map(props.columns, function (item) {
437
+ //如果columnState中有值,merge处理
438
+ var mapData = lodash.get(props.columnState, getColumnFormItemName(item));
439
+
440
+ if (lodash.isObject(mapData) && !lodash.isEmpty(mapData) && !lodash.isArray(mapData) && !lodash.isFunction(mapData)) {
441
+ //合并
442
+ return lodash.mergeWith(item, mapData, function (objValue, srcValue) {
443
+ //如果是数组,替换
444
+ if (lodash.isArray(objValue) || lodash.isArray(srcValue)) {
445
+ return srcValue;
446
+ }
447
+ });
448
+ }
449
+
450
+ return item;
451
+ });
452
+ }); // 获取FormItem VNode
453
+
454
+ var getFormItemVNode = function getFormItemVNode(column) {
455
+ var needRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
456
+ return getFormItemEl(props.formElementMap, column, needRules);
457
+ }; // 获取Item VNode
458
+
459
+
460
+ var getItemVNode = function getItemVNode(column, value) {
461
+ return getItemEl(props.elementMap, column, value);
462
+ };
463
+
464
+ provideProModule({
465
+ columns: columns,
466
+ getFormItemVNode: getFormItemVNode,
467
+ getItemVNode: getItemVNode,
468
+ elementMap: props.elementMap,
469
+ formElementMap: props.formElementMap
470
+ });
471
+ return function () {
472
+ var _slots$default;
473
+
474
+ return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
475
+ };
476
+ }
477
+ });
478
+
479
+ var proSchemaFormProps = function proSchemaFormProps() {
480
+ return {
481
+ columns: {
482
+ type: Array
483
+ },
484
+
485
+ /**
486
+ * 录入控件集合,通过column->valueType 查找对应的录入组件
487
+ */
488
+ formElementMap: {
489
+ type: Object
490
+ },
491
+
492
+ /**
493
+ * 是否启用rules验证
494
+ */
495
+ needRules: {
496
+ type: Boolean,
497
+ "default": true
498
+ }
499
+ };
500
+ };
501
+
502
+ var ProSchemaForm = vue.defineComponent({
503
+ name: "PSchemaForm",
504
+ props: _objectSpread2(_objectSpread2({}, ProForm.props), proSchemaFormProps()),
505
+ setup: function setup(props, _ref) {
506
+ var slots = _ref.slots,
507
+ expose = _ref.expose;
508
+ var formItemList = vue.computed(function () {
509
+ if (!props.formElementMap || lodash.size(props.formElementMap) <= 0) {
510
+ return null;
511
+ }
512
+
513
+ return lodash.map(props.columns, function (item) {
514
+ return getFormItemEl(props.formElementMap, item, props.needRules);
515
+ });
516
+ });
517
+ var invalidKeys = lodash.keys(proSchemaFormProps());
518
+ return function () {
519
+ var _slots$default;
520
+
521
+ return vue.createVNode(ProForm, vue.mergeProps({
522
+ "ref": function ref(el) {
523
+ return expose(el);
524
+ }
525
+ }, lodash.omit(props, invalidKeys)), {
526
+ "default": function _default() {
527
+ return [formItemList.value, (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
528
+ }
529
+ });
530
+ };
531
+ }
532
+ });
533
+
534
+ exports.SearchMode = void 0;
535
+
536
+ (function (SearchMode) {
537
+ SearchMode["AUTO"] = "AUTO";
538
+ SearchMode["MANUAL"] = "MANUAL";
539
+ })(exports.SearchMode || (exports.SearchMode = {}));
540
+
541
+ var proSearchFormProps = function proSearchFormProps() {
542
+ return {
543
+ /**
544
+ * 初始化触发 onFinish
545
+ */
546
+ initEmit: {
547
+ type: Boolean,
548
+ "default": true
549
+ },
550
+
551
+ /**
552
+ * 模式 自动触发或者手动触发 onFinish
553
+ */
554
+ searchMode: {
555
+ type: String,
556
+ "default": exports.SearchMode.AUTO
557
+ },
558
+
559
+ /**
560
+ * 需要debounce处理的字段
561
+ */
562
+ debounceKeys: {
563
+ type: Array
564
+ },
565
+ debounceTime: {
566
+ type: Number,
567
+ "default": 800
568
+ },
569
+ //
570
+ inline: {
571
+ type: Boolean,
572
+ "default": true
573
+ }
574
+ };
575
+ };
576
+
577
+ var ProSearchForm = vue.defineComponent({
578
+ name: "PSearchForm",
579
+ props: _objectSpread2(_objectSpread2({}, lodash.omit(ProSchemaForm.props, "inline")), proSearchFormProps()),
580
+ setup: function setup(props, _ref) {
581
+ var slots = _ref.slots,
582
+ emit = _ref.emit,
583
+ expose = _ref.expose;
584
+ var formState = props.model || vue.reactive({});
585
+
586
+ var handleFinish = function handleFinish() {
587
+ var values = vue.toRaw(formState);
588
+ var showValues = getValidValues(values, props.showState, props.showStateRules);
589
+ emit("finish", showValues, values);
590
+ };
591
+
592
+ var debounceFinish = lodash.debounce(function () {
593
+ handleFinish();
594
+ }, props.debounceTime); //初始化
595
+
596
+ hooks.useEffect(function () {
597
+ if (props.initEmit) {
598
+ handleFinish();
599
+ }
600
+ }, []);
601
+
602
+ var isDebounceDataChange = function isDebounceDataChange(state, prevState, debounceKeys) {
603
+ return lodash.some(debounceKeys, function (key) {
604
+ return lodash.get(state, key) !== lodash.get(prevState, key);
605
+ });
606
+ }; //监听
607
+
608
+
609
+ hooks.useEffect(function (state, prevState) {
610
+ if (props.searchMode !== exports.SearchMode.AUTO) {
611
+ return;
612
+ } //如果改变的值中包括debounceKeys中注册的 延时触发
613
+
614
+
615
+ if (props.debounceKeys && lodash.size(props.debounceKeys) > 0 && isDebounceDataChange(state, prevState, props.debounceKeys)) {
616
+ debounceFinish();
617
+ return;
618
+ }
619
+
620
+ handleFinish();
621
+ }, function () {
622
+ return lodash.clone(formState);
623
+ });
624
+ var invalidKeys = lodash.keys(proSearchFormProps());
625
+ return function () {
626
+ return vue.createVNode(ProSchemaForm, vue.mergeProps({
627
+ "ref": function ref(el) {
628
+ return expose(el);
629
+ },
630
+ "inline": props.inline
631
+ }, lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["model"])), {
632
+ "needRules": false,
633
+ "model": formState
634
+ }), slots);
635
+ };
636
+ }
637
+ });
638
+
639
+ var proFormItemProps = function proFormItemProps() {
640
+ return {
641
+ readonly: {
642
+ type: Boolean,
643
+ "default": undefined
644
+ },
645
+ fieldProps: {
646
+ type: Object
647
+ },
648
+ showProps: {
649
+ type: Object
650
+ }
651
+ };
652
+ };
653
+
654
+ var createFormItemComponent = function createFormItemComponent(_ref) {
655
+ var InputComp = _ref.InputComp,
656
+ valueType = _ref.valueType,
657
+ name = _ref.name;
658
+ return vue.defineComponent({
659
+ name: name,
660
+ props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormItemProps()),
661
+ setup: function setup(props, _ref2) {
662
+ var slots = _ref2.slots;
663
+
664
+ var _useProForm = useProForm(),
665
+ formState = _useProForm.formState,
666
+ showState = _useProForm.showState,
667
+ readonlyState = _useProForm.readonlyState,
668
+ disableState = _useProForm.disableState,
669
+ formReadonly = _useProForm.readonly,
670
+ elementMap = _useProForm.elementMap;
671
+
672
+ var formListCtx = useProFormList(); //优先级 props.readonly > readonlyState > formContext.readonly
673
+
674
+ var readonly = vue.computed(function () {
675
+ if (lodash.isBoolean(props.readonly)) {
676
+ return props.readonly;
677
+ } else if (lodash.isBoolean(readonlyState[props.name])) {
678
+ return readonlyState[props.name];
679
+ }
680
+
681
+ return formReadonly.value;
682
+ });
683
+ var nameList = convertPathToList(props.name);
684
+ var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
685
+ var invalidKeys = lodash.keys(proFormItemProps());
686
+ return function () {
687
+ var show = lodash.get(showState, props.name);
688
+
689
+ if (lodash.isBoolean(show) && !show) {
690
+ return null;
691
+ }
692
+
693
+ var value = lodash.get(formState, path); //valueType对应的展示组件
694
+
695
+ var ShowComp = lodash.get(elementMap, valueType);
696
+ return vue.createVNode(ProFormItem, vue.mergeProps(lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["name"])), {
697
+ "name": path
698
+ }), {
699
+ "default": function _default() {
700
+ return [readonly.value ? vue.createVNode(vue.Fragment, null, [ShowComp ? vue.createVNode(ShowComp, vue.mergeProps({
701
+ "value": value
702
+ }, props.fieldProps, {
703
+ "showProps": props.showProps
704
+ }), slots) : vue.createVNode("span", null, [value])]) : vue.createVNode(InputComp, vue.mergeProps({
705
+ "modelValue": value,
706
+ "onUpdate:modelValue": function onUpdateModelValue(v) {
707
+ lodash.set(formState, path, v);
708
+ },
709
+ "clearable": true,
710
+ "disabled": lodash.get(disableState, props.name)
711
+ }, props.fieldProps), slots)];
712
+ }
713
+ });
714
+ };
715
+ }
716
+ });
717
+ };
718
+
719
+ var proSelectProps = function proSelectProps() {
720
+ return {
721
+ options: Array
722
+ };
723
+ };
724
+
725
+ var ProSelect = vue.defineComponent({
726
+ name: "PSelect",
727
+ props: _objectSpread2(_objectSpread2({}, elementPlus.ElSelect.props), proSelectProps()),
728
+ setup: function setup(props, _ref) {
729
+ var slots = _ref.slots,
730
+ emit = _ref.emit;
731
+ var invalidKeys = lodash.keys(proSelectProps());
732
+ return function () {
733
+ var _slots$default;
734
+
735
+ return vue.createVNode(elementPlus.ElSelect, vue.mergeProps(lodash.omit(props, invalidKeys), {
736
+ "onUpdate:modelValue": function onUpdateModelValue(v) {
737
+ emit("update:modelValue", v);
738
+ }
739
+ }), _objectSpread2({
740
+ "default": function _default() {
741
+ return [lodash.map(props.options, function (item) {
742
+ return vue.createVNode(elementPlus.ElOption, vue.mergeProps({
743
+ "key": item.value
744
+ }, item), null);
745
+ }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
746
+ }
747
+ }, lodash.omit(props, "slots")));
748
+ };
749
+ }
750
+ });
751
+
752
+ var ProFormText = createFormItemComponent({
753
+ InputComp: elementPlus.ElInput,
754
+ valueType: "text",
755
+ name: "PFromText"
756
+ });
757
+ var ProFormTextNumber = createFormItemComponent({
758
+ InputComp: elementPlus.ElInputNumber,
759
+ valueType: "digit",
760
+ name: "PFormNumber"
761
+ });
762
+ var ProFormDatePicker = createFormItemComponent({
763
+ InputComp: elementPlus.ElDatePicker,
764
+ valueType: "date",
765
+ name: "PFormDate"
766
+ });
767
+ var ProFormTimePicker = createFormItemComponent({
768
+ InputComp: elementPlus.ElTimePicker,
769
+ valueType: "time",
770
+ name: "PFormTime"
771
+ });
772
+ var ProFormSelect = createFormItemComponent({
773
+ InputComp: ProSelect,
774
+ valueType: "select",
775
+ name: "PFormSelect"
776
+ });
777
+ var ProFormTreeSelect = createFormItemComponent({
778
+ InputComp: elementPlus.ElTreeSelect,
779
+ valueType: "treeSelect",
780
+ name: "PFormTreeSelect"
781
+ });
782
+ var ProFormCheckbox = createFormItemComponent({
783
+ InputComp: elementPlus.ElCheckboxGroup,
784
+ valueType: "checkbox",
785
+ name: "PFromCheckbox"
786
+ });
787
+ var ProFormRadio = createFormItemComponent({
788
+ InputComp: elementPlus.ElRadioGroup,
789
+ valueType: "radio",
790
+ name: "PFromRadio"
791
+ });
792
+ var ProFormSwitch = createFormItemComponent({
793
+ InputComp: elementPlus.ElSwitch,
794
+ valueType: "switch",
795
+ name: "PFromSwitch"
796
+ });
797
+ var ProFormCascader = createFormItemComponent({
798
+ InputComp: elementPlus.ElCascader,
799
+ valueType: "cascader",
800
+ name: "PFormCascader"
801
+ });
802
+ var ProSubmitButton = vue.defineComponent({
803
+ props: _objectSpread2({}, elementPlus.ElButton.props),
804
+ setup: function setup(props, _ref) {
805
+ var slots = _ref.slots,
806
+ emit = _ref.emit;
807
+
808
+ var _useProForm = useProForm(),
809
+ formRef = _useProForm.formRef;
810
+
811
+ var handleClick = function handleClick(e) {
812
+ var _formRef$value, _formRef$value$submit;
813
+
814
+ emit("click", e);
815
+ (_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : (_formRef$value$submit = _formRef$value.submit) === null || _formRef$value$submit === void 0 ? void 0 : _formRef$value$submit.call(_formRef$value);
816
+ };
817
+
818
+ return function () {
819
+ return vue.createVNode(elementPlus.ElButton, vue.mergeProps({
820
+ "onClick": handleClick
821
+ }, props), slots);
822
+ };
823
+ }
824
+ });
825
+
826
+ var FormListProvider = vue.defineComponent({
827
+ props: {
828
+ pathList: {
829
+ type: Array
830
+ }
831
+ },
832
+ setup: function setup(props, _ref) {
833
+ var slots = _ref.slots;
834
+ provideProFormList({
835
+ pathList: props.pathList
836
+ });
837
+ return function () {
838
+ var _slots$default;
839
+
840
+ return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
841
+ };
842
+ }
843
+ });
844
+
845
+ var proFormListProps = function proFormListProps() {
846
+ return {
847
+ addButtonText: {
848
+ type: String,
849
+ "default": "添加一项"
850
+ },
851
+ addButtonProps: {
852
+ type: Object
853
+ },
854
+ //每行默认id
855
+ rowKey: {
856
+ type: String,
857
+ "default": "id"
858
+ }
859
+ };
860
+ };
861
+
862
+ var ProFormList = vue.defineComponent({
863
+ name: "PFormList",
864
+ props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormListProps()),
865
+ setup: function setup(props, _ref2) {
866
+ var slots = _ref2.slots;
867
+
868
+ var _useProForm = useProForm(),
869
+ formState = _useProForm.formState,
870
+ readonly = _useProForm.readonly;
871
+
872
+ var formListCtx = useProFormList();
873
+ var nameList = convertPathToList(props.prop);
874
+ var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
875
+
876
+ var handleAdd = function handleAdd() {
877
+ var targetList = lodash.get(formState, path);
878
+
879
+ if (!lodash.isArray(targetList)) {
880
+ targetList = [];
881
+ }
882
+
883
+ targetList.push(_defineProperty({}, props.rowKey, new Date().valueOf()));
884
+ lodash.set(formState, path, targetList);
885
+ };
886
+
887
+ var handleRemove = function handleRemove(index) {
888
+ var targetList = lodash.get(formState, path);
889
+
890
+ if (lodash.size(targetList) <= 0) {
891
+ return;
892
+ }
893
+
894
+ targetList.splice(index, 1);
895
+ };
896
+
897
+ var invalidKeys = lodash.keys(proFormListProps());
898
+ return function () {
899
+ return vue.createVNode(ProFormItem, lodash.omit(props, invalidKeys), {
900
+ "default": function _default() {
901
+ return [lodash.map(lodash.get(formState, path), function (item, index) {
902
+ var _slots$default2;
903
+
904
+ return vue.createVNode(FormListProvider, {
905
+ "key": index,
906
+ "pathList": [].concat(_toConsumableArray(path), [index])
907
+ }, {
908
+ "default": function _default() {
909
+ return [vue.createVNode("div", {
910
+ "class": "pro-form-list-item"
911
+ }, [(_slots$default2 = slots["default"]) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots), !readonly.value && vue.createVNode("div", {
912
+ "class": "pro-form-list-item-minus",
913
+ "onClick": function onClick() {
914
+ return handleRemove(index);
915
+ }
916
+ }, [slots.minus ? slots.minus() : vue.createVNode(elementPlus.ElButton, {
917
+ "link": true
918
+ }, {
919
+ "default": function _default() {
920
+ return [vue.createTextVNode("\u5220\u9664")];
921
+ }
922
+ })])])];
923
+ }
924
+ });
925
+ }), !readonly.value && vue.createVNode("div", {
926
+ "class": "pro-form-list-item-add",
927
+ "onClick": handleAdd
928
+ }, [slots.add ? slots.add() : vue.createVNode(elementPlus.ElButton, vue.mergeProps({
929
+ "type": "primary"
930
+ }, props.addButtonProps), {
931
+ "default": function _default() {
932
+ return [props.addButtonText];
933
+ }
934
+ })])];
935
+ }
936
+ });
937
+ };
938
+ }
939
+ });
940
+
941
+ var proTableProps = function proTableProps() {
942
+ return {
943
+ //操作栏
944
+ operate: {
945
+ type: Object
946
+ },
947
+ //默认空字符串
948
+ columnEmptyText: {
949
+ type: String
950
+ },
951
+
952
+ /**
953
+ * 公共column,会merge到columns item中
954
+ */
955
+ column: {
956
+ type: Object
957
+ },
958
+ //
959
+ columns: {
960
+ type: Array
961
+ },
962
+
963
+ /**
964
+ * 展示控件集合,readonly模式下使用这些组件渲染
965
+ */
966
+ elementMap: {
967
+ type: Object
968
+ }
969
+ };
970
+ };
971
+
972
+ var ProTable = vue.defineComponent({
973
+ props: _objectSpread2(_objectSpread2({}, elementPlus.ElTable.props), proTableProps()),
974
+ setup: function setup(props, _ref) {
975
+ var slots = _ref.slots,
976
+ expose = _ref.expose;
977
+ var columns = vue.computed(function () {
978
+ //根据valueType选择对应的展示组件
979
+ var columns = lodash.map(props.columns, function (item) {
980
+ //merge从共item
981
+ var nextItem = lodash.merge(props.column, item);
982
+
983
+ if (!item.customRender || !item.formatter) {
984
+ nextItem.customRender = function (_ref2) {
985
+ var text = _ref2.text;
986
+ return getItemEl(props.elementMap, _objectSpread2(_objectSpread2({}, item), {}, {
987
+ showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
988
+ content: props.columnEmptyText
989
+ })
990
+ }), text) || text || props.columnEmptyText;
991
+ };
992
+ }
993
+
994
+ return nextItem;
995
+ });
996
+ var operate = props.operate; //处理operate
997
+
998
+ if (operate && lodash.size(operate.items) > 0) {
999
+ //将itemState补充的信息拼到item中
1000
+ var completeItems = lodash.map(operate.items, function (i) {
1001
+ return _objectSpread2(_objectSpread2({}, i), lodash.get(operate.itemState, i.value));
1002
+ }); //排序
1003
+
1004
+ var operateList = lodash.sortBy(completeItems, function (item) {
1005
+ return item.sort;
1006
+ });
1007
+ columns.push(_objectSpread2(_objectSpread2({
1008
+ title: "操作",
1009
+ valueType: "option",
1010
+ fixed: "right"
1011
+ }, props.column), {}, {
1012
+ customRender: function customRender(_ref3) {
1013
+ var record = _ref3.record;
1014
+ var validList = lodash.filter(operateList, function (item) {
1015
+ if (item.show && lodash.isFunction(item.show)) {
1016
+ return item.show(record);
1017
+ }
1018
+
1019
+ return true;
1020
+ });
1021
+ return vue.createVNode("div", {
1022
+ "class": "pro-table-operate"
1023
+ }, [lodash.map(validList, function (item) {
1024
+ // 自定义
1025
+ if (lodash.isFunction(item.element)) {
1026
+ return item.element(record, item);
1027
+ }
1028
+
1029
+ return vue.createVNode(elementPlus.ElButton, {
1030
+ "key": item.value,
1031
+ "link": true,
1032
+ "disabled": lodash.isFunction(item.disabled) ? item.disabled(record) : item.disabled,
1033
+ "onClick": function onClick() {
1034
+ var _item$onClick;
1035
+
1036
+ (_item$onClick = item.onClick) === null || _item$onClick === void 0 ? void 0 : _item$onClick.call(item, record);
1037
+ }
1038
+ }, {
1039
+ "default": function _default() {
1040
+ return [item.label];
1041
+ }
1042
+ });
1043
+ })]);
1044
+ }
1045
+ }, operate.column));
1046
+ }
1047
+
1048
+ return columns;
1049
+ });
1050
+ var invalidKeys = lodash.keys(proTableProps());
1051
+ return function () {
1052
+ var _slots$default;
1053
+
1054
+ return vue.createVNode(elementPlus.ElTable, vue.mergeProps({
1055
+ "ref": function ref(el) {
1056
+ expose(el);
1057
+ }
1058
+ }, lodash.omit(props, invalidKeys)), _objectSpread2({
1059
+ "default": function _default() {
1060
+ return [lodash.map(columns.value, function (item) {
1061
+ var formatter = function formatter(record, column, value, index) {
1062
+ if (item.formatter) {
1063
+ return item.formatter(record, column, value, index);
1064
+ }
1065
+
1066
+ if (item.customRender) {
1067
+ return item.customRender({
1068
+ value: value,
1069
+ text: value,
1070
+ record: record,
1071
+ column: column
1072
+ });
1073
+ }
1074
+
1075
+ return null;
1076
+ };
1077
+
1078
+ return vue.createVNode(elementPlus.ElTableColumn, vue.mergeProps({
1079
+ "key": item.dataIndex || item.prop
1080
+ }, lodash.omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
1081
+ "label": vue.isVNode(item.title) ? undefined : item.title || item.label,
1082
+ "renderHeader": vue.isVNode(item.title) ? function () {
1083
+ return item.title;
1084
+ } : undefined,
1085
+ "prop": item.dataIndex || item.prop,
1086
+ "formatter": item.formatter || item.customRender ? formatter : undefined
1087
+ }), null);
1088
+ }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
1089
+ }
1090
+ }, lodash.omit(slots, "default")));
1091
+ };
1092
+ }
1093
+ });
1094
+
1095
+ var ProCurdModuleKey = Symbol("pro-curd-module");
1096
+ var useProCurdModule = function useProCurdModule() {
1097
+ return vue.inject(ProCurdModuleKey);
1098
+ };
1099
+ var provideProCurdModule = function provideProCurdModule(ctx) {
1100
+ vue.provide(ProCurdModuleKey, ctx);
1101
+ };
1102
+
1103
+ /**
1104
+ * curd 操作模式
1105
+ */
1106
+ exports.CurdCurrentMode = void 0;
1107
+
1108
+ (function (CurdCurrentMode) {
1109
+ CurdCurrentMode["ADD"] = "ADD";
1110
+ CurdCurrentMode["EDIT"] = "EDIT";
1111
+ CurdCurrentMode["DETAIL"] = "DETAIL";
1112
+ })(exports.CurdCurrentMode || (exports.CurdCurrentMode = {}));
1113
+
1114
+ /**
1115
+ * curd add 模式下 标记 "确定" "确定并继续" 触发
1116
+ */
1117
+ exports.CurdAddAction = void 0;
1118
+
1119
+ (function (CurdAddAction) {
1120
+ CurdAddAction["NORMAL"] = "NORMAL";
1121
+ CurdAddAction["CONTINUE"] = "CONTINUE";
1122
+ })(exports.CurdAddAction || (exports.CurdAddAction = {}));
1123
+
1124
+ var proCurdModuleProps = function proCurdModuleProps() {
1125
+ return {
1126
+ /**
1127
+ * 状态
1128
+ */
1129
+ curdState: {
1130
+ type: Object
1131
+ },
1132
+
1133
+ /**
1134
+ * 操作配置
1135
+ */
1136
+ operate: {
1137
+ type: Object
1138
+ },
1139
+
1140
+ /**
1141
+ * 列表 或 详情 的唯一标识
1142
+ */
1143
+ rowKey: {
1144
+ type: String,
1145
+ "default": "id"
1146
+ },
1147
+
1148
+ /************************* 子组件props *******************************/
1149
+ listProps: {
1150
+ type: Object
1151
+ },
1152
+ formProps: {
1153
+ type: Object
1154
+ },
1155
+ descProps: {
1156
+ type: Object
1157
+ },
1158
+ modalProps: {
1159
+ type: Object
1160
+ }
1161
+ };
1162
+ };
1163
+
1164
+ var CurdModule = vue.defineComponent({
1165
+ props: _objectSpread2({}, proCurdModuleProps()),
1166
+ setup: function setup(props, _ref) {
1167
+ var slots = _ref.slots;
1168
+
1169
+ var _useProModule = useProModule(),
1170
+ columns = _useProModule.columns;
1171
+
1172
+ var curdState = props.curdState || vue.reactive({
1173
+ detailData: {}
1174
+ });
1175
+ /**
1176
+ * 排序
1177
+ * @param list
1178
+ * @param propName
1179
+ */
1180
+
1181
+ var dealSort = function dealSort(list, propName) {
1182
+ return lodash.sortBy(list, function (item) {
1183
+ return lodash.get(item, propName);
1184
+ });
1185
+ };
1186
+ /**
1187
+ * 非 hideInForm columns
1188
+ */
1189
+
1190
+
1191
+ var formColumns = vue.computed(function () {
1192
+ return dealSort(lodash.filter(columns.value, function (item) {
1193
+ return !item.hideInForm;
1194
+ }), "formSort");
1195
+ });
1196
+ /**
1197
+ * 非 hideInDetail columns
1198
+ */
1199
+
1200
+ var descColumns = vue.computed(function () {
1201
+ return dealSort(lodash.filter(columns.value, function (item) {
1202
+ return !item.hideInDetail;
1203
+ }), "descSort");
1204
+ });
1205
+ /**
1206
+ * 非 hideInTable columns
1207
+ */
1208
+
1209
+ var tableColumns = vue.computed(function () {
1210
+ return dealSort(lodash.filter(columns.value, function (item) {
1211
+ return !item.hideInTable;
1212
+ }), "tableSort");
1213
+ });
1214
+ /**
1215
+ * search columns
1216
+ */
1217
+
1218
+ var searchColumns = vue.computed(function () {
1219
+ return dealSort(lodash.filter(columns.value, function (item) {
1220
+ return !!item.search;
1221
+ }), "searchSort");
1222
+ });
1223
+
1224
+ var operate = _objectSpread2({
1225
+ detailLabel: "详情",
1226
+ editLabel: "编辑",
1227
+ addLabel: "添加",
1228
+ deleteLabel: "删除"
1229
+ }, props.operate);
1230
+
1231
+ provideProCurdModule({
1232
+ rowKey: props.rowKey,
1233
+ curdState: curdState,
1234
+ formColumns: formColumns,
1235
+ descColumns: descColumns,
1236
+ tableColumns: tableColumns,
1237
+ searchColumns: searchColumns,
1238
+ operate: operate,
1239
+ //
1240
+ listProps: props.listProps,
1241
+ formProps: props.formProps,
1242
+ descProps: props.descProps,
1243
+ modalProps: props.modalProps
1244
+ });
1245
+ return function () {
1246
+ var _slots$default;
1247
+
1248
+ return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
1249
+ };
1250
+ }
1251
+ });
1252
+ var ProCurd = vue.defineComponent({
1253
+ props: _objectSpread2(_objectSpread2({}, ProModule.props), proCurdModuleProps()),
1254
+ setup: function setup(props, _ref2) {
1255
+ var slots = _ref2.slots;
1256
+ var moduleKeys = lodash.keys(ProModule.props);
1257
+ return function () {
1258
+ var _slots$default2;
1259
+
1260
+ return vue.createVNode(ProModule, lodash.pick(props, moduleKeys), {
1261
+ "default": function _default() {
1262
+ return [vue.createVNode(CurdModule, lodash.omit(props, moduleKeys), {
1263
+ "default": function _default() {
1264
+ return [(_slots$default2 = slots["default"]) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots)];
1265
+ }
1266
+ })];
1267
+ }
1268
+ });
1269
+ };
1270
+ }
1271
+ });
1272
+
1273
+ var proCurdNetProps = function proCurdNetProps() {
1274
+ return {
1275
+ //发起接口参数/接口回来数据 转换
1276
+ converts: {
1277
+ type: Object
1278
+ },
1279
+ //
1280
+ operate: {
1281
+ type: Object
1282
+ }
1283
+ };
1284
+ };
1285
+
1286
+ var ProCurdNet = vue.defineComponent({
1287
+ props: _objectSpread2(_objectSpread2({}, ProCurd.props), proCurdNetProps()),
1288
+ setup: function setup(props, _ref) {
1289
+ var _actionConvertParamsM;
1290
+
1291
+ var slots = _ref.slots;
1292
+
1293
+ var _useRequestProvide = request.useRequestProvide(),
1294
+ dispatchRequest = _useRequestProvide.dispatchRequest,
1295
+ requestSubject$ = _useRequestProvide.requestSubject$;
1296
+
1297
+ var curdState = props.curdState || vue.reactive({
1298
+ detailData: {}
1299
+ });
1300
+ /********************************** 网络请求相关 ***************************************/
1301
+ //默认converts
1302
+
1303
+ var converts = _objectSpread2({
1304
+ convertListParams: function convertListParams(values) {
1305
+ return values;
1306
+ },
1307
+ convertListData: function convertListData(actor) {
1308
+ var _actor$res;
1309
+
1310
+ return (_actor$res = actor.res) === null || _actor$res === void 0 ? void 0 : _actor$res.data;
1311
+ },
1312
+ convertDetailParams: function convertDetailParams(record, rowKey) {
1313
+ return lodash.pick(record, rowKey);
1314
+ },
1315
+ convertDetailData: function convertDetailData(actor) {
1316
+ var _actor$res2;
1317
+
1318
+ return (_actor$res2 = actor.res) === null || _actor$res2 === void 0 ? void 0 : _actor$res2.data;
1319
+ },
1320
+ convertAddParams: function convertAddParams(values, record) {
1321
+ return {
1322
+ body: _objectSpread2(_objectSpread2({}, record), values)
1323
+ };
1324
+ },
1325
+ convertEditParams: function convertEditParams(values, record) {
1326
+ return {
1327
+ body: _objectSpread2(_objectSpread2({}, record), values)
1328
+ };
1329
+ }
1330
+ }, props.converts);
1331
+
1332
+ var Action = {
1333
+ List: "list",
1334
+ Detail: "detail",
1335
+ Add: "add",
1336
+ Edit: "edit",
1337
+ Delete: "delete"
1338
+ }; //接口map {`${actorName}`:action}
1339
+
1340
+ var actorNameMap = {};
1341
+ var lastRequestActors = {};
1342
+ var actionConvertParamsMap = (_actionConvertParamsM = {}, _defineProperty(_actionConvertParamsM, Action.List, converts.convertListParams), _defineProperty(_actionConvertParamsM, Action.Detail, converts.convertDetailParams), _defineProperty(_actionConvertParamsM, Action.Add, converts.convertAddParams), _defineProperty(_actionConvertParamsM, Action.Edit, converts.convertEditParams), _defineProperty(_actionConvertParamsM, Action.Delete, converts.convertDeleteParams), _actionConvertParamsM);
1343
+
1344
+ var createRequestFun = function createRequestFun(action) {
1345
+ return function () {
1346
+ var actor = lodash.get(props.operate, "".concat(action, "Actor"));
1347
+
1348
+ if (!actor) {
1349
+ return;
1350
+ } // action he actorName 绑定
1351
+
1352
+
1353
+ actorNameMap[actor.name] = action;
1354
+ var convertParams = lodash.get(actionConvertParamsMap, action); // @ts-ignore
1355
+
1356
+ var nextParams = convertParams ? convertParams.apply(void 0, arguments) : undefined;
1357
+ lastRequestActors[action] = dispatchRequest(actor, nextParams);
1358
+ };
1359
+ };
1360
+
1361
+ var actions = {
1362
+ executeList: createRequestFun(Action.List),
1363
+ executeDetail: createRequestFun(Action.Detail),
1364
+ executeAdd: createRequestFun(Action.Add),
1365
+ executeEdit: createRequestFun(Action.Edit),
1366
+ executeDelete: createRequestFun(Action.Delete)
1367
+ };
1368
+ /********************************** operate ***************************************/
1369
+
1370
+ var prevListParams;
1371
+
1372
+ var handleSearch = function handleSearch() {
1373
+ actions.executeList(prevListParams);
1374
+ };
1375
+
1376
+ var operate = _objectSpread2({
1377
+ //list
1378
+ onList: function onList(values) {
1379
+ var _props$operate, _props$operate$onList;
1380
+
1381
+ prevListParams = values;
1382
+ handleSearch();
1383
+ (_props$operate = props.operate) === null || _props$operate === void 0 ? void 0 : (_props$operate$onList = _props$operate.onListBubble) === null || _props$operate$onList === void 0 ? void 0 : _props$operate$onList.call(_props$operate, "emit", values);
1384
+ },
1385
+ onListDone: function onListDone(actor) {
1386
+ var _converts$convertList, _props$operate2, _props$operate2$onLis;
1387
+
1388
+ curdState.listLoading = false;
1389
+ curdState.listData = (_converts$convertList = converts.convertListData) === null || _converts$convertList === void 0 ? void 0 : _converts$convertList.call(converts, actor);
1390
+ (_props$operate2 = props.operate) === null || _props$operate2 === void 0 ? void 0 : (_props$operate2$onLis = _props$operate2.onListBubble) === null || _props$operate2$onLis === void 0 ? void 0 : _props$operate2$onLis.call(_props$operate2, "done", actor);
1391
+ },
1392
+ onListFail: function onListFail(actor) {
1393
+ var _props$operate3, _props$operate3$onLis;
1394
+
1395
+ curdState.listLoading = false;
1396
+ (_props$operate3 = props.operate) === null || _props$operate3 === void 0 ? void 0 : (_props$operate3$onLis = _props$operate3.onListBubble) === null || _props$operate3$onLis === void 0 ? void 0 : _props$operate3$onLis.call(_props$operate3, "fail", actor);
1397
+ },
1398
+ //detail
1399
+ onDetailDone: function onDetailDone(actor) {
1400
+ var _converts$convertDeta, _props$operate4, _props$operate4$onDet;
1401
+
1402
+ curdState.detailLoading = false;
1403
+ hooks.setReactiveValue(curdState.detailData, (_converts$convertDeta = converts.convertDetailData) === null || _converts$convertDeta === void 0 ? void 0 : _converts$convertDeta.call(converts, actor));
1404
+ (_props$operate4 = props.operate) === null || _props$operate4 === void 0 ? void 0 : (_props$operate4$onDet = _props$operate4.onDetailBubble) === null || _props$operate4$onDet === void 0 ? void 0 : _props$operate4$onDet.call(_props$operate4, "done", actor);
1405
+ },
1406
+ onDetailFail: function onDetailFail(actor) {
1407
+ var _props$operate5, _props$operate5$onDet;
1408
+
1409
+ curdState.detailLoading = false;
1410
+ (_props$operate5 = props.operate) === null || _props$operate5 === void 0 ? void 0 : (_props$operate5$onDet = _props$operate5.onDetailBubble) === null || _props$operate5$onDet === void 0 ? void 0 : _props$operate5$onDet.call(_props$operate5, "fail", actor);
1411
+ },
1412
+ //add
1413
+ onAddExecute: function onAddExecute(values) {
1414
+ var _props$operate6, _props$operate6$onAdd;
1415
+
1416
+ curdState.operateLoading = true;
1417
+ actions.executeAdd(values, curdState.detailData);
1418
+ (_props$operate6 = props.operate) === null || _props$operate6 === void 0 ? void 0 : (_props$operate6$onAdd = _props$operate6.onAddBubble) === null || _props$operate6$onAdd === void 0 ? void 0 : _props$operate6$onAdd.call(_props$operate6, "execute", values);
1419
+ },
1420
+ onAddFail: function onAddFail(actor) {
1421
+ var _props$operate7, _props$operate7$onAdd;
1422
+
1423
+ curdState.operateLoading = false;
1424
+ (_props$operate7 = props.operate) === null || _props$operate7 === void 0 ? void 0 : (_props$operate7$onAdd = _props$operate7.onAddBubble) === null || _props$operate7$onAdd === void 0 ? void 0 : _props$operate7$onAdd.call(_props$operate7, "fail", actor);
1425
+ },
1426
+ //edit
1427
+ onEditExecute: function onEditExecute(values) {
1428
+ var _props$operate8, _props$operate8$onEdi;
1429
+
1430
+ curdState.operateLoading = true;
1431
+ actions.executeEdit(values, curdState.detailData);
1432
+ (_props$operate8 = props.operate) === null || _props$operate8 === void 0 ? void 0 : (_props$operate8$onEdi = _props$operate8.onEditBubble) === null || _props$operate8$onEdi === void 0 ? void 0 : _props$operate8$onEdi.call(_props$operate8, "execute", values);
1433
+ },
1434
+ onEditFail: function onEditFail(actor) {
1435
+ var _props$operate9, _props$operate9$onEdi;
1436
+
1437
+ curdState.operateLoading = false;
1438
+ (_props$operate9 = props.operate) === null || _props$operate9 === void 0 ? void 0 : (_props$operate9$onEdi = _props$operate9.onEditBubble) === null || _props$operate9$onEdi === void 0 ? void 0 : _props$operate9$onEdi.call(_props$operate9, "fail", actor);
1439
+ },
1440
+ //delete
1441
+ onDelete: function onDelete(record) {
1442
+ var _props$operate10, _props$operate10$onDe;
1443
+
1444
+ actions.executeDelete(record, props.rowKey);
1445
+ (_props$operate10 = props.operate) === null || _props$operate10 === void 0 ? void 0 : (_props$operate10$onDe = _props$operate10.onDeleteBubble) === null || _props$operate10$onDe === void 0 ? void 0 : _props$operate10$onDe.call(_props$operate10, "emit", record);
1446
+ }
1447
+ }, props.operate); //网络请求订阅
1448
+
1449
+
1450
+ hooks.useEffect(function () {
1451
+ //请求成功
1452
+ var doneSub = requestSubject$.pipe(rxjs.filter(request.isDoneRequestActor), rxjs.tap(function (actor) {
1453
+ var action = actorNameMap[actor.name];
1454
+ var actionDone = lodash.get(operate, lodash.camelCase("on-".concat(action, "-done")));
1455
+ actionDone === null || actionDone === void 0 ? void 0 : actionDone(actor);
1456
+ lastRequestActors[action] = undefined;
1457
+ })).subscribe(); //请求失败
1458
+
1459
+ var failSub = requestSubject$.pipe(rxjs.filter(request.isFailedRequestActor), rxjs.tap(function (actor) {
1460
+ var action = actorNameMap[actor.name];
1461
+ var actionFail = lodash.get(operate, lodash.camelCase("on-".concat(action, "-fail")));
1462
+ actionFail === null || actionFail === void 0 ? void 0 : actionFail(actor);
1463
+ lastRequestActors[action] = undefined;
1464
+ })).subscribe();
1465
+ return function () {
1466
+ doneSub.unsubscribe();
1467
+ failSub.unsubscribe(); //组件销毁的时候cancel请求
1468
+
1469
+ lodash.forEach(lastRequestActors, function (actor) {
1470
+ actor && dispatchRequest(_objectSpread2(_objectSpread2({}, actor), {}, {
1471
+ stage: "CANCEL"
1472
+ }));
1473
+ });
1474
+ };
1475
+ }, []);
1476
+ return function () {
1477
+ var _slots$default;
1478
+
1479
+ return vue.createVNode(ProCurd, lodash.omit(props, "converts"), {
1480
+ "default": function _default() {
1481
+ return [(_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
1482
+ }
1483
+ });
1484
+ };
1485
+ }
1486
+ });
1487
+
1488
+ /**
1489
+ * 添加 和 修改 时候的确定按钮
1490
+ */
1491
+
1492
+ var OkButton = vue.defineComponent({
1493
+ props: _objectSpread2({}, elementPlus.ElButton.props),
1494
+ setup: function setup(props, _ref) {
1495
+ var slots = _ref.slots;
1496
+
1497
+ var _useProCurdModule = useProCurdModule(),
1498
+ curdState = _useProCurdModule.curdState;
1499
+
1500
+ return function () {
1501
+ return vue.createVNode(ProSubmitButton, vue.mergeProps({
1502
+ "onClick": function onClick() {
1503
+ curdState.addAction = exports.CurdAddAction.NORMAL;
1504
+ }
1505
+ }, props, {
1506
+ "loading": curdState.operateLoading
1507
+ }), {
1508
+ "default": function _default() {
1509
+ return [slots["default"] ? slots["default"]() : "确定"];
1510
+ }
1511
+ });
1512
+ };
1513
+ }
1514
+ });
1515
+ /**
1516
+ * 添加 时候的 确定并继续添加按钮
1517
+ */
1518
+
1519
+ var ContinueAddButton = vue.defineComponent({
1520
+ props: _objectSpread2({}, elementPlus.ElButton.props),
1521
+ setup: function setup(props, _ref2) {
1522
+ var slots = _ref2.slots;
1523
+
1524
+ var _useProCurdModule2 = useProCurdModule(),
1525
+ curdState = _useProCurdModule2.curdState;
1526
+
1527
+ return function () {
1528
+ return vue.createVNode(ProSubmitButton, vue.mergeProps({
1529
+ "onClick": function onClick() {
1530
+ curdState.addAction = exports.CurdAddAction.CONTINUE;
1531
+ }
1532
+ }, props, {
1533
+ "loading": curdState.operateLoading
1534
+ }), {
1535
+ "default": function _default() {
1536
+ return [slots["default"] ? slots["default"]() : "确定并继续"];
1537
+ }
1538
+ });
1539
+ };
1540
+ }
1541
+ });
1542
+
1543
+ var proOperateButtonProps = function proOperateButtonProps() {
1544
+ return {
1545
+ //显示 确定并继续 按钮
1546
+ showContinueAdd: {
1547
+ type: Boolean,
1548
+ "default": false
1549
+ },
1550
+ //
1551
+ okText: {
1552
+ type: String,
1553
+ "default": "确定"
1554
+ },
1555
+ okButtonProps: {
1556
+ type: Object
1557
+ },
1558
+ //
1559
+ continueText: {
1560
+ type: String,
1561
+ "default": "确定并继续"
1562
+ },
1563
+ continueButtonProps: {
1564
+ type: Object
1565
+ }
1566
+ };
1567
+ };
1568
+
1569
+ var ProOperateButton = vue.defineComponent({
1570
+ props: _objectSpread2({}, proOperateButtonProps()),
1571
+ setup: function setup(props, _ref3) {
1572
+ var slots = _ref3.slots;
1573
+
1574
+ var _useProCurdModule3 = useProCurdModule(),
1575
+ curdState = _useProCurdModule3.curdState;
1576
+
1577
+ return function () {
1578
+ var _slots$left, _slots$center, _slots$right;
1579
+
1580
+ return vue.createVNode("div", {
1581
+ "class": "pro-curd-form-operate"
1582
+ }, [(_slots$left = slots.left) === null || _slots$left === void 0 ? void 0 : _slots$left.call(slots), vue.createVNode(OkButton, props.okButtonProps, {
1583
+ "default": function _default() {
1584
+ return [props.okText];
1585
+ }
1586
+ }), (_slots$center = slots.center) === null || _slots$center === void 0 ? void 0 : _slots$center.call(slots), curdState.mode === exports.CurdCurrentMode.ADD && props.showContinueAdd && vue.createVNode(ContinueAddButton, props.continueButtonProps, {
1587
+ "default": function _default() {
1588
+ return [props.continueText];
1589
+ }
1590
+ }), (_slots$right = slots.right) === null || _slots$right === void 0 ? void 0 : _slots$right.call(slots)]);
1591
+ };
1592
+ }
1593
+ });
1594
+
1595
+ var proCurdFormProps = function proCurdFormProps() {
1596
+ return {
1597
+ //
1598
+ operateButtonProps: {
1599
+ type: Object
1600
+ }
1601
+ };
1602
+ };
1603
+
1604
+ var ProCurdForm = vue.defineComponent({
1605
+ props: _objectSpread2(_objectSpread2({}, ProForm.props), proCurdFormProps()),
1606
+ setup: function setup(props, _ref4) {
1607
+ var slots = _ref4.slots;
1608
+
1609
+ var _useProModule = useProModule(),
1610
+ getFormItemVNode = _useProModule.getFormItemVNode;
1611
+
1612
+ var _useProCurdModule4 = useProCurdModule(),
1613
+ curdState = _useProCurdModule4.curdState,
1614
+ formColumns = _useProCurdModule4.formColumns,
1615
+ operate = _useProCurdModule4.operate;
1616
+
1617
+ var formVNodes = vue.computed(function () {
1618
+ return lodash.map(formColumns.value, function (item) {
1619
+ return getFormItemVNode(item, true);
1620
+ });
1621
+ });
1622
+
1623
+ var handleFinish = function handleFinish(values) {
1624
+ if (curdState.mode === exports.CurdCurrentMode.EDIT) {
1625
+ var _operate$onEditExecut;
1626
+
1627
+ //edit
1628
+ (_operate$onEditExecut = operate.onEditExecute) === null || _operate$onEditExecut === void 0 ? void 0 : _operate$onEditExecut.call(operate, values);
1629
+ } else {
1630
+ var _operate$onAddExecute;
1631
+
1632
+ //add
1633
+ (_operate$onAddExecute = operate.onAddExecute) === null || _operate$onAddExecute === void 0 ? void 0 : _operate$onAddExecute.call(operate, values);
1634
+ }
1635
+ };
1636
+
1637
+ return function () {
1638
+ return vue.createVNode(ProForm, vue.mergeProps(props, {
1639
+ "model": curdState.detailData,
1640
+ "readonly": curdState.mode === exports.CurdCurrentMode.DETAIL,
1641
+ "hideRequiredAsterisk": curdState.mode === exports.CurdCurrentMode.DETAIL,
1642
+ "onFinish": handleFinish
1643
+ }), _objectSpread2({
1644
+ "default": function _default() {
1645
+ var _slots$default;
1646
+
1647
+ return vue.createVNode(vue.Fragment, null, [formVNodes.value, curdState.mode !== exports.CurdCurrentMode.DETAIL && vue.createVNode(ProOperateButton, lodash.omit(props.operateButtonProps, "slots"), lodash.get(props.operateButtonProps, "slots")), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]);
1648
+ }
1649
+ }, lodash.omit(slots, "default")));
1650
+ };
1651
+ }
1652
+ });
1653
+ var ProCurdFormConnect = vue.defineComponent({
1654
+ setup: function setup() {
1655
+ var _useProCurdModule5 = useProCurdModule(),
1656
+ formProps = _useProCurdModule5.formProps;
1657
+
1658
+ return function () {
1659
+ return vue.createVNode(ProCurdForm, lodash.omit(formProps, "slots"), lodash.get(formProps, "slots"));
1660
+ };
1661
+ }
1662
+ });
1663
+
1664
+ var defaultPage = {
1665
+ page: 1,
1666
+ pageSize: 10
1667
+ };
1668
+
1669
+ var curdListProps = function curdListProps() {
1670
+ return {
1671
+ /**
1672
+ * extra 是否放到SearchForm中
1673
+ */
1674
+ extraInSearch: {
1675
+ type: Boolean,
1676
+ "default": undefined
1677
+ },
1678
+ //search
1679
+ searchProps: {
1680
+ type: Object
1681
+ },
1682
+ //table
1683
+ tableProps: {
1684
+ type: Object
1685
+ },
1686
+ //pagination
1687
+ paginationProps: {
1688
+ type: Object
1689
+ },
1690
+ //pageState
1691
+ pageState: {
1692
+ type: Object
1693
+ }
1694
+ };
1695
+ };
1696
+
1697
+ /**
1698
+ * 组合列表
1699
+ * SearchForm + Table + Pagination
1700
+ */
1701
+ var ProCurdList = vue.defineComponent({
1702
+ props: _objectSpread2({}, curdListProps()),
1703
+ setup: function setup(props, _ref) {
1704
+ var _props$searchProps;
1705
+
1706
+ var slots = _ref.slots;
1707
+
1708
+ var _useProModule = useProModule(),
1709
+ elementMap = _useProModule.elementMap,
1710
+ formElementMap = _useProModule.formElementMap;
1711
+
1712
+ var _useProCurdModule = useProCurdModule(),
1713
+ curdState = _useProCurdModule.curdState,
1714
+ searchColumns = _useProCurdModule.searchColumns,
1715
+ tableColumns = _useProCurdModule.tableColumns,
1716
+ operate = _useProCurdModule.operate;
1717
+ /******************* table ********************/
1718
+
1719
+
1720
+ var prepareTableItem = function prepareTableItem(propName) {
1721
+ return {
1722
+ value: propName,
1723
+ label: lodash.get(operate, "".concat(propName, "Label")),
1724
+ show: lodash.get(operate, propName, false),
1725
+ onClick: function onClick(record) {
1726
+ var fun = lodash.get(operate, lodash.camelCase("on-".concat(propName)));
1727
+ fun === null || fun === void 0 ? void 0 : fun(record);
1728
+ }
1729
+ };
1730
+ }; //table操作栏 items
1731
+
1732
+
1733
+ var tableOperateItems = [prepareTableItem("detail"), prepareTableItem("edit"), prepareTableItem("delete")];
1734
+ /******************* search pagination ********************/
1735
+
1736
+ var searchState = ((_props$searchProps = props.searchProps) === null || _props$searchProps === void 0 ? void 0 : _props$searchProps.model) || vue.reactive({});
1737
+ var pageState = props.pageState || vue.reactive(_objectSpread2({}, defaultPage));
1738
+
1739
+ var handleSearch = function handleSearch() {
1740
+ operate.onList && operate.onList(_objectSpread2(_objectSpread2({}, searchState), pageState));
1741
+ };
1742
+
1743
+ var executeSearchWithResetPage = function executeSearchWithResetPage() {
1744
+ pageState.page = 1;
1745
+ handleSearch();
1746
+ }; //无SearchForm组件 初始化
1747
+
1748
+
1749
+ hooks.useEffect(function () {
1750
+ var _props$searchProps2;
1751
+
1752
+ // 处理触发onList 操作
1753
+ if (lodash.size(searchColumns.value) <= 0 && ((_props$searchProps2 = props.searchProps) === null || _props$searchProps2 === void 0 ? void 0 : _props$searchProps2.initEmit) !== false) {
1754
+ handleSearch();
1755
+ }
1756
+ }, []); //无SearchForm组件 订阅searchState
1757
+
1758
+ hooks.useWatch(function () {
1759
+ if (lodash.size(searchColumns.value) > 0) {
1760
+ return;
1761
+ }
1762
+
1763
+ executeSearchWithResetPage();
1764
+ }, searchState);
1765
+ return function () {
1766
+ var _slots$extra, _slots$divide, _curdState$listData, _props$tableProps, _slots$divide2, _curdState$listData2;
1767
+
1768
+ var pagination = props.paginationProps; //
1769
+
1770
+ var _extra = vue.createVNode("div", {
1771
+ "class": "pro-curd-list-search"
1772
+ }, [operate.add && vue.createVNode(elementPlus.ElButton, {
1773
+ "type": "primary",
1774
+ "onClick": function onClick() {
1775
+ var _operate$onAdd;
1776
+
1777
+ (_operate$onAdd = operate.onAdd) === null || _operate$onAdd === void 0 ? void 0 : _operate$onAdd.call(operate);
1778
+ }
1779
+ }, {
1780
+ "default": function _default() {
1781
+ return [operate.addLabel];
1782
+ }
1783
+ }), (_slots$extra = slots.extra) === null || _slots$extra === void 0 ? void 0 : _slots$extra.call(slots)]);
1784
+
1785
+ return vue.createVNode(vue.Fragment, null, [lodash.size(searchColumns.value) > 0 && vue.createVNode(ProSearchForm, vue.mergeProps({
1786
+ "formElementMap": formElementMap,
1787
+ "columns": searchColumns.value
1788
+ }, props.searchProps, {
1789
+ "model": searchState,
1790
+ "onFinish": executeSearchWithResetPage
1791
+ }), {
1792
+ //extraInSearch 模式下放入SearchForm
1793
+ extra: function extra() {
1794
+ return props.extraInSearch ? _extra : null;
1795
+ }
1796
+ }), (_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), (lodash.size(searchColumns.value) <= 0 || !props.extraInSearch) && (operate.add || slots.extra) && _extra, slots["default"] ? slots["default"]() : vue.withDirectives(vue.createVNode(ProTable, vue.mergeProps({
1797
+ "elementMap": elementMap,
1798
+ "columns": tableColumns.value,
1799
+ "operate": lodash.mergeWith({
1800
+ items: tableOperateItems
1801
+ }, operate.tableOperate, function (objValue, srcValue) {
1802
+ if (lodash.isArray(objValue) && lodash.isArray(srcValue)) {
1803
+ return lodash.concat(objValue, srcValue);
1804
+ }
1805
+ })
1806
+ }, lodash.omit(props.tableProps, "slots", "operate"), {
1807
+ "data": (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
1808
+ }), (_props$tableProps = props.tableProps) === null || _props$tableProps === void 0 ? void 0 : _props$tableProps.slots), [[vue.resolveDirective("loading"), curdState.listLoading]]), (_slots$divide2 = slots.divide2) === null || _slots$divide2 === void 0 ? void 0 : _slots$divide2.call(slots), curdState.listData && lodash.isNumber((_curdState$listData2 = curdState.listData) === null || _curdState$listData2 === void 0 ? void 0 : _curdState$listData2.total) && curdState.listData.total > 0 && vue.createVNode("div", {
1809
+ "class": "pro-curd-list-bottom"
1810
+ }, [vue.createVNode(elementPlus.ElPagination, vue.mergeProps(pagination, {
1811
+ "total": curdState.listData.total,
1812
+ "currentPage": pageState.page,
1813
+ "pageSize": pageState.pageSize,
1814
+ "onSizeChange": function onSizeChange(pageSize) {
1815
+ pageState.pageSize = pageSize;
1816
+ handleSearch();
1817
+ },
1818
+ "onCurrentChange": function onCurrentChange(current) {
1819
+ pageState.page = current;
1820
+ handleSearch();
1821
+ }
1822
+ }), null)])]);
1823
+ };
1824
+ }
1825
+ });
1826
+ var ProCurdListConnect = vue.defineComponent({
1827
+ setup: function setup() {
1828
+ var _useProCurdModule2 = useProCurdModule(),
1829
+ listProps = _useProCurdModule2.listProps;
1830
+
1831
+ return function () {
1832
+ return vue.createVNode(ProCurdList, lodash.omit(listProps, "slots"), lodash.get(listProps, "slots"));
1833
+ };
1834
+ }
1835
+ });
1836
+
1837
+ function _isSlot(s) {
1838
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
1839
+ }
1840
+
1841
+ var ProCurdDesc = vue.defineComponent({
1842
+ props: _objectSpread2({}, elementPlus.ElDescriptions.props),
1843
+ setup: function setup(props, _ref) {
1844
+ var slots = _ref.slots;
1845
+
1846
+ var _useProModule = useProModule(),
1847
+ getItemVNode = _useProModule.getItemVNode;
1848
+
1849
+ var _useProCurdModule = useProCurdModule(),
1850
+ curdState = _useProCurdModule.curdState,
1851
+ descColumns = _useProCurdModule.descColumns;
1852
+
1853
+ var descVNodes = vue.computed(function () {
1854
+ return lodash.map(descColumns.value, function (item) {
1855
+ var _slot;
1856
+
1857
+ var value = lodash.get(curdState.detailData, item.dataIndex);
1858
+ return vue.createVNode(elementPlus.ElDescriptionsItem, vue.mergeProps({
1859
+ "key": item.dataIndex,
1860
+ "label": item.title
1861
+ }, lodash.get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
1862
+ "default": function _default() {
1863
+ return [_slot];
1864
+ }
1865
+ });
1866
+ });
1867
+ });
1868
+ return function () {
1869
+ return vue.createVNode(elementPlus.ElDescriptions, props, _objectSpread2({
1870
+ "default": function _default() {
1871
+ return descVNodes.value;
1872
+ }
1873
+ }, lodash.omit(slots, "default")));
1874
+ };
1875
+ }
1876
+ });
1877
+ var ProCurdDescConnect = vue.defineComponent({
1878
+ setup: function setup() {
1879
+ var _useProCurdModule2 = useProCurdModule(),
1880
+ descProps = _useProCurdModule2.descProps;
1881
+
1882
+ return function () {
1883
+ return vue.createVNode(ProCurdList, lodash.omit(descProps, "slots"), lodash.get(descProps, "slots"));
1884
+ };
1885
+ }
1886
+ });
1887
+
1888
+ exports.ContinueAddButton = ContinueAddButton;
1889
+ exports.OkButton = OkButton;
1890
+ exports.ProCurd = ProCurd;
1891
+ exports.ProCurdDesc = ProCurdDesc;
1892
+ exports.ProCurdDescConnect = ProCurdDescConnect;
1893
+ exports.ProCurdForm = ProCurdForm;
1894
+ exports.ProCurdFormConnect = ProCurdFormConnect;
1895
+ exports.ProCurdList = ProCurdList;
1896
+ exports.ProCurdListConnect = ProCurdListConnect;
1897
+ exports.ProCurdNet = ProCurdNet;
1898
+ exports.ProForm = ProForm;
1899
+ exports.ProFormCascader = ProFormCascader;
1900
+ exports.ProFormCheckbox = ProFormCheckbox;
1901
+ exports.ProFormDatePicker = ProFormDatePicker;
1902
+ exports.ProFormItem = ProFormItem;
1903
+ exports.ProFormList = ProFormList;
1904
+ exports.ProFormRadio = ProFormRadio;
1905
+ exports.ProFormSelect = ProFormSelect;
1906
+ exports.ProFormSwitch = ProFormSwitch;
1907
+ exports.ProFormText = ProFormText;
1908
+ exports.ProFormTextNumber = ProFormTextNumber;
1909
+ exports.ProFormTimePicker = ProFormTimePicker;
1910
+ exports.ProFormTreeSelect = ProFormTreeSelect;
1911
+ exports.ProModule = ProModule;
1912
+ exports.ProOperateButton = ProOperateButton;
1913
+ exports.ProSchemaForm = ProSchemaForm;
1914
+ exports.ProSearchForm = ProSearchForm;
1915
+ exports.ProSelect = ProSelect;
1916
+ exports.ProSubmitButton = ProSubmitButton;
1917
+ exports.ProTable = ProTable;
1918
+ exports.convertPathToList = convertPathToList;
1919
+ exports.createFormItemComponent = createFormItemComponent;
1920
+ exports.defaultPage = defaultPage;
1921
+ exports.getColumnFormItemName = getColumnFormItemName;
1922
+ exports.getColumnValueType = getColumnValueType;
1923
+ exports.getFormItemEl = getFormItemEl;
1924
+ exports.getItemEl = getItemEl;
1925
+ exports.getValidValues = getValidValues;
1926
+ exports.provideProCurdModule = provideProCurdModule;
1927
+ exports.provideProForm = provideProForm;
1928
+ exports.provideProFormList = provideProFormList;
1929
+ exports.provideProModule = provideProModule;
1930
+ exports.useProCurdModule = useProCurdModule;
1931
+ exports.useProForm = useProForm;
1932
+ exports.useProFormList = useProFormList;
1933
+ exports.useProModule = useProModule;