@vue-start/element-pro 0.2.0 → 0.2.1

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.es.js CHANGED
@@ -1,7 +1,7 @@
1
- import { defineComponent, createVNode, Fragment, mergeProps, isVNode, ref, reactive, toRaw, computed } from 'vue';
2
- import { ElLoading, ElTableColumn, ElTable, ElPagination, ElRow, ElCol, ElFormItem, ElForm, ElSelect, ElOption, ElInput, ElInputNumber, ElDatePicker, ElTimePicker, ElTreeSelect, ElCheckboxGroup, ElRadioGroup, ElSwitch, ElCascader, ElButton, ElDescriptions, ElDescriptionsItem, ElDialog } from 'element-plus';
3
- import { isString, map, omit, get, keys, pick, isNumber, size, isUndefined, mergeWith, isArray, concat } from 'lodash';
4
- import { generateId, useProTable, ProTable as ProTable$1, useProForm, getFormItemEl, getColumnFormItemName, ProForm as ProForm$1, getValidValues, ProSearchForm as ProSearchForm$1, createFormItemCompFn, ProFormList as ProFormList$1, useProCurd, CurdAddAction, CurdCurrentMode, useProModule, CurdAction, CurdSubAction } from '@vue-start/pro';
1
+ import { defineComponent, createVNode, mergeProps, reactive, ref, toRaw, isVNode } from 'vue';
2
+ import { ElRow, ElCol, ElLoading, ElFormItem, ElForm, ElSelect, ElOption, ElInput, ElInputNumber, ElDatePicker, ElTimePicker, ElTreeSelect, ElCheckboxGroup, ElRadioGroup, ElSwitch, ElCascader, ElButton, ElTable, ElTableColumn, ElPagination, ElDescriptions, ElDescriptionsItem, ElDialog } from 'element-plus';
3
+ import { isString, keys, omit, map, get } from 'lodash';
4
+ import { createGrid, generateId, createExpose, createForm, createSearchForm, createFormItemCompFn, useProForm, createFormList, createTable, createCurdForm, CurdCurrentMode, useProCurd, createCurdList, createCurdDesc, CurdAction } from '@vue-start/pro';
5
5
  import { useEffect, setReactiveValue } from '@vue-start/hooks';
6
6
 
7
7
  function ownKeys(object, enumerableOnly) {
@@ -78,6 +78,8 @@ function _nonIterableSpread() {
78
78
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
79
79
  }
80
80
 
81
+ var ProGrid = createGrid(ElRow, ElCol);
82
+
81
83
  var createLoadingId = function createLoadingId() {
82
84
  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "comp";
83
85
  return prefix + "-" + generateId();
@@ -169,227 +171,6 @@ var ProLoading = defineComponent({
169
171
  }
170
172
  });
171
173
 
172
- var Content$1 = defineComponent(function () {
173
- var _useProTable = useProTable(),
174
- columns = _useProTable.columns;
175
-
176
- return function () {
177
- return createVNode(Fragment, null, [map(columns.value, function (item) {
178
- var formatter = function formatter(record, column, value, index) {
179
- if (item.customRender) {
180
- return item.customRender({
181
- value: value,
182
- text: value,
183
- record: record,
184
- column: column,
185
- index: index
186
- });
187
- }
188
-
189
- return value;
190
- };
191
-
192
- return createVNode(ElTableColumn, mergeProps({
193
- "key": item.dataIndex
194
- }, omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
195
- "label": isVNode(item.title) ? undefined : item.title || get(item, "label"),
196
- "renderHeader": isVNode(item.title) ? function () {
197
- return item.title;
198
- } : undefined,
199
- "prop": item.dataIndex,
200
- "formatter": formatter
201
- }), null);
202
- })]);
203
- };
204
- });
205
- var ProTable = defineComponent({
206
- inheritAttrs: false,
207
- props: _objectSpread2(_objectSpread2({}, ElTable.props), ProTable$1.props),
208
- setup: function setup(props, _ref) {
209
- var slots = _ref.slots,
210
- expose = _ref.expose,
211
- attrs = _ref.attrs;
212
- var id = createLoadingId("table");
213
- var tableRef = ref();
214
- expose({
215
- tableRef: tableRef
216
- });
217
- var originKeys = keys(ProTable$1.props);
218
- return function () {
219
- var _slots$top, _slots$default;
220
-
221
- return createVNode(ProTable$1, mergeProps(pick.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["provideExtra"])), {
222
- "provideExtra": _objectSpread2({
223
- tableRef: tableRef
224
- }, props.provideExtra)
225
- }), {
226
- "default": function _default() {
227
- return [createVNode(ElTable, mergeProps({
228
- "ref": tableRef,
229
- "id": id
230
- }, attrs, omit(props, originKeys)), _objectSpread2({
231
- "default": function _default() {
232
- return [(_slots$top = slots.top) === null || _slots$top === void 0 ? void 0 : _slots$top.call(slots), createVNode(Content$1, null, null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && createVNode(ProLoading, {
233
- "target": id,
234
- "loading": true
235
- }, null)];
236
- }
237
- }, omit(slots, "default")))];
238
- }
239
- });
240
- };
241
- }
242
- });
243
-
244
- var defaultPage = {
245
- page: 1,
246
- pageSize: 10
247
- };
248
-
249
- var proListProps = function proListProps() {
250
- return {
251
- /**
252
- * extra 是否放到SearchForm中
253
- */
254
- extraInSearch: {
255
- type: Boolean,
256
- "default": undefined
257
- },
258
- //search
259
- searchProps: {
260
- type: Object
261
- },
262
- //table
263
- tableProps: {
264
- type: Object
265
- },
266
- //pagination
267
- paginationProps: {
268
- type: Object
269
- },
270
- //pageState
271
- pageState: {
272
- type: Object
273
- }
274
- };
275
- };
276
-
277
- var ProList = defineComponent({
278
- props: _objectSpread2({}, proListProps()),
279
- setup: function setup(props, _ref) {
280
- var slots = _ref.slots,
281
- emit = _ref.emit;
282
-
283
- /******************* search pagination ********************/
284
- var pageState = props.pageState || reactive(_objectSpread2({}, defaultPage));
285
- var prevValues;
286
-
287
- var handleSearch = function handleSearch() {
288
- emit("list", _objectSpread2(_objectSpread2({}, prevValues), pageState));
289
- }; //页数重置1 且搜索
290
-
291
-
292
- var executeSearchWithResetPage = function executeSearchWithResetPage(values) {
293
- prevValues = values;
294
- pageState.page = 1;
295
- handleSearch();
296
- };
297
-
298
- return function () {
299
- var _slots$divide, _slots$divide2, _slots$footerLeft, _slots$footerRight;
300
-
301
- var searchProps = props.searchProps;
302
- var tableProps = props.tableProps;
303
- var paginationProps = props.paginationProps; //操作按钮
304
-
305
- var extra = slots.extra ? createVNode("div", {
306
- "class": "pro-list-search"
307
- }, [slots.extra()]) : null; //分页参数
308
-
309
- var pagination = _objectSpread2(_objectSpread2({}, paginationProps), {}, {
310
- currentPage: pageState.page,
311
- pageSize: pageState.pageSize,
312
- onSizeChange: function onSizeChange(pageSize) {
313
- pageState.pageSize = pageSize;
314
- handleSearch();
315
- },
316
- onCurrentChange: function onCurrentChange(current) {
317
- pageState.page = current;
318
- handleSearch();
319
- }
320
- });
321
-
322
- return createVNode(Fragment, null, [createVNode(ProSearchForm, mergeProps(searchProps, {
323
- "onFinish": executeSearchWithResetPage
324
- }), {
325
- "default": function _default() {
326
- return [props.extraInSearch && extra];
327
- }
328
- }), (_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), !props.extraInSearch && extra, slots["default"] ? slots["default"]() : createVNode(ProTable, mergeProps({
329
- "pagination": {
330
- page: pageState.page,
331
- pageSize: pageState.pageSize
332
- }
333
- }, omit(tableProps, "slots")), tableProps === null || tableProps === void 0 ? void 0 : tableProps.slots), (_slots$divide2 = slots.divide2) === null || _slots$divide2 === void 0 ? void 0 : _slots$divide2.call(slots), createVNode("div", {
334
- "class": "pro-list-footer"
335
- }, [(_slots$footerLeft = slots.footerLeft) === null || _slots$footerLeft === void 0 ? void 0 : _slots$footerLeft.call(slots), isNumber(paginationProps === null || paginationProps === void 0 ? void 0 : paginationProps.total) && paginationProps.total > 0 && createVNode(Fragment, null, [slots.pagination ? slots.pagination(pagination) : createVNode(ElPagination, pagination, null)]), (_slots$footerRight = slots.footerRight) === null || _slots$footerRight === void 0 ? void 0 : _slots$footerRight.call(slots)])]);
336
- };
337
- }
338
- });
339
-
340
- function _isSlot$1(s) {
341
- return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
342
- }
343
-
344
- var proGridProps = function proGridProps() {
345
- return {
346
- /**
347
- * row属性
348
- */
349
- row: {
350
- type: Object,
351
- "default": undefined
352
- },
353
-
354
- /**
355
- * 公共col属性
356
- */
357
- col: {
358
- type: Object
359
- },
360
-
361
- /**
362
- *
363
- */
364
- items: {
365
- type: Array
366
- }
367
- };
368
- };
369
-
370
- var ProGrid = defineComponent({
371
- props: _objectSpread2({}, proGridProps()),
372
- setup: function setup(props) {
373
- return function () {
374
- var _slot;
375
-
376
- return createVNode(ElRow, props.row, _isSlot$1(_slot = map(props.items, function (item) {
377
- return createVNode(ElCol, mergeProps({
378
- "key": item.rowKey
379
- }, props.col, item.col), {
380
- "default": function _default() {
381
- return [item.vNode];
382
- }
383
- });
384
- })) ? _slot : {
385
- "default": function _default() {
386
- return [_slot];
387
- }
388
- });
389
- };
390
- }
391
- });
392
-
393
174
  var proFormItemProps = function proFormItemProps() {
394
175
  return {
395
176
  name: {
@@ -410,139 +191,52 @@ var ProFormItem = defineComponent({
410
191
  };
411
192
  }
412
193
  });
413
- //emit;
414
- var Content = defineComponent({
415
- props: _objectSpread2(_objectSpread2({}, ProGrid.props), {}, {
416
- needRules: {
417
- type: Boolean
418
- }
419
- }),
420
- setup: function setup(props) {
421
- var _useProForm = useProForm(),
422
- formElementMap = _useProForm.formElementMap,
423
- columns = _useProForm.columns;
424
-
425
- return function () {
426
- if (!formElementMap || size(columns.value) <= 0) {
427
- return null;
428
- }
429
-
430
- if (!props.row) {
431
- return map(columns.value, function (item) {
432
- return getFormItemEl(formElementMap, item, props.needRules);
433
- });
434
- }
435
-
436
- return createVNode(ProGrid, {
437
- "row": props.row,
438
- "col": props.col,
439
- "items": map(columns.value, function (item) {
440
- var vNode = getFormItemEl(formElementMap, item, props.needRules);
441
- return {
442
- rowKey: getColumnFormItemName(item),
443
- vNode: vNode,
444
- col: get(item, ["extra", "col"])
445
- };
446
- })
447
- }, null);
448
- };
449
- }
450
- });
451
- var ProForm = defineComponent({
452
- inheritAttrs: false,
453
- props: _objectSpread2(_objectSpread2(_objectSpread2({}, ElForm.props), omit(ProForm$1.props, "model")), omit(ProGrid.props, "items")),
194
+ var Form = defineComponent({
195
+ props: _objectSpread2({}, ElForm.props),
454
196
  setup: function setup(props, _ref2) {
455
197
  var slots = _ref2.slots,
456
- expose = _ref2.expose,
457
198
  emit = _ref2.emit,
458
- attrs = _ref2.attrs;
459
- var formRef = ref();
199
+ expose = _ref2.expose;
460
200
  var formState = props.model || reactive({});
461
- var showState = props.showState || reactive({});
462
-
463
- var handleRef = function handleRef(el) {
464
- var nexEl = _objectSpread2(_objectSpread2({}, el), {}, {
465
- submit: function submit() {
466
- var _el$validate;
467
-
468
- (_el$validate = el.validate) === null || _el$validate === void 0 ? void 0 : _el$validate.call(el, function (isValid, invalidFields) {
469
- if (isValid) {
470
- //验证成功
471
- //删除不显示的值再触发事件
472
- var _showValues = getValidValues(formState, showState, props.showStateRules);
473
-
474
- emit("finish", _showValues, toRaw(formState));
475
- } else {
476
- emit("finishFailed", invalidFields);
477
- }
478
- });
479
- }
480
- });
201
+ var formRef = ref();
202
+ var formMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
203
+ useEffect(function () {
204
+ if (!formRef.value) {
205
+ return;
206
+ }
481
207
 
482
- expose(nexEl);
483
- formRef.value = nexEl;
484
- };
208
+ formRef.value.submit = function () {
209
+ var _formRef$value;
485
210
 
486
- var originKeys = keys(omit(ProForm$1.props, "model"));
487
- var gridKeys = keys(ProGrid.props);
211
+ (_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.validate(function (isValid, invalidFields) {
212
+ if (isValid) {
213
+ emit("finish", toRaw(formState));
214
+ } else {
215
+ emit("finishFailed", invalidFields);
216
+ }
217
+ });
218
+ };
219
+ }, []);
220
+ expose(createExpose(formMethods, formRef));
488
221
  return function () {
489
- var _slots$top, _slots$default;
490
-
491
- return createVNode(ProForm$1, mergeProps(pick.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["provideExtra"])), {
492
- "model": formState,
493
- "showState": showState,
494
- "provideExtra": _objectSpread2({
495
- formRef: formRef
496
- }, props.provideExtra)
497
- }), {
498
- "default": function _default() {
499
- return [createVNode(ElForm, mergeProps({
500
- "ref": handleRef
501
- }, attrs, omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["model"], _toConsumableArray(gridKeys))), {
502
- "model": formState
503
- }), {
504
- "default": function _default() {
505
- return [(_slots$top = slots.top) === null || _slots$top === void 0 ? void 0 : _slots$top.call(slots), createVNode(Content, mergeProps(pick(props, gridKeys), {
506
- "needRules": props.needRules
507
- }), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
508
- }
509
- })];
510
- }
511
- });
222
+ return createVNode(ElForm, mergeProps({
223
+ "ref": formRef
224
+ }, omit(props, "model"), {
225
+ "model": formState
226
+ }), slots);
512
227
  };
513
228
  }
514
229
  });
515
-
516
- var ProSearchForm = defineComponent({
517
- inheritAttrs: false,
518
- props: _objectSpread2(_objectSpread2(_objectSpread2({}, omit(ProForm.props, "inline")), omit(ProSearchForm$1.props, "model", "columns")), {}, {
519
- inline: {
520
- type: Boolean,
521
- "default": true
522
- }
523
- }),
524
- setup: function setup(props, _ref) {
525
- var slots = _ref.slots,
526
- attrs = _ref.attrs;
527
- var formRef = ref();
528
- var formState = props.model || reactive({});
529
- var originKeys = keys(omit(ProSearchForm$1.props, "model", "columns"));
530
- return function () {
531
- return createVNode(Fragment, null, [createVNode(ProForm, mergeProps({
532
- "ref": formRef
533
- }, attrs, omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["needRules", "model"])), {
534
- "model": formState,
535
- "needRules": false
536
- }), slots), createVNode(ProSearchForm$1, mergeProps(pick(props, originKeys), {
537
- "model": formState,
538
- "columns": props.columns,
539
- "onFinish": function onFinish() {
540
- var _formRef$value;
541
-
542
- (_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
543
- }
544
- }), null)]);
545
- };
230
+ //emit;
231
+ var ProForm = createForm(Form, ProGrid);
232
+ var ProSearchForm = createSearchForm(ProForm, {
233
+ needRules: {
234
+ type: Boolean,
235
+ "default": false
236
+ },
237
+ inline: {
238
+ type: Boolean,
239
+ "default": true
546
240
  }
547
241
  });
548
242
 
@@ -573,7 +267,7 @@ var ProSelect = defineComponent({
573
267
 
574
268
  return createVNode(ElSelect, mergeProps(omit(props, invalidKeys), {
575
269
  "onUpdate:modelValue": function onUpdateModelValue(v) {
576
- emit("update:modelValue", v);
270
+ emit("update:modelValue", v ? v : undefined);
577
271
  }
578
272
  }), _objectSpread2({
579
273
  "default": function _default() {
@@ -662,6 +356,8 @@ var ProSubmitButton = defineComponent({
662
356
  }
663
357
  });
664
358
 
359
+ var FormList = createFormList(ProFormItem);
360
+
665
361
  var proFormListProps = function proFormListProps() {
666
362
  return {
667
363
  addButtonText: {
@@ -683,215 +379,98 @@ var proFormListProps = function proFormListProps() {
683
379
 
684
380
  var ProFormList = defineComponent({
685
381
  name: "PFormList",
686
- props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormListProps()),
382
+ props: _objectSpread2(_objectSpread2({}, FormList.props), proFormListProps()),
687
383
  setup: function setup(props, _ref) {
688
384
  var slots = _ref.slots;
689
- var originKeys = keys(ProFormList$1.props);
690
385
  var invalidKeys = keys(proFormListProps());
691
386
  return function () {
692
- return createVNode(ProFormItem, mergeProps(omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), _toConsumableArray(invalidKeys))), {
693
- "name": props.name
694
- }), {
695
- "default": function _default() {
696
- return [createVNode(ProFormList$1, mergeProps(pick(props, originKeys), {
697
- "name": props.name
698
- }), _objectSpread2({
699
- itemMinus: function itemMinus() {
700
- return createVNode(ElButton, mergeProps({
701
- "link": true
702
- }, props.minusButtonProps), {
703
- "default": function _default() {
704
- return [props.minusButtonText];
705
- }
706
- });
707
- },
708
- add: function add() {
709
- return createVNode(ElButton, mergeProps({
710
- "type": "primary"
711
- }, props.addButtonProps), {
712
- "default": function _default() {
713
- return [props.addButtonText];
714
- }
715
- });
387
+ return createVNode(FormList, omit(props, invalidKeys), _objectSpread2({
388
+ itemMinus: function itemMinus() {
389
+ return createVNode(ElButton, props.minusButtonProps, {
390
+ "default": function _default() {
391
+ return [props.minusButtonText];
716
392
  }
717
- }, slots))];
718
- }
719
- });
720
- };
721
- }
722
- });
723
-
724
- /**
725
- * 添加 和 修改 时候的确定按钮
726
- */
727
-
728
- var OkButton = defineComponent({
729
- props: _objectSpread2({}, ElButton.props),
730
- setup: function setup(props, _ref) {
731
- var slots = _ref.slots;
732
-
733
- var _useProCurd = useProCurd(),
734
- curdState = _useProCurd.curdState;
735
-
736
- return function () {
737
- return createVNode(ProSubmitButton, mergeProps({
738
- "onClick": function onClick() {
739
- curdState.addAction = CurdAddAction.NORMAL;
740
- }
741
- }, props, {
742
- "loading": curdState.operateLoading
743
- }), {
744
- "default": function _default() {
745
- return [slots["default"] ? slots["default"]() : "确定"];
746
- }
747
- });
748
- };
749
- }
750
- });
751
- /**
752
- * 添加 时候的 确定并继续添加按钮
753
- */
754
-
755
- var ContinueAddButton = defineComponent({
756
- props: _objectSpread2({}, ElButton.props),
757
- setup: function setup(props, _ref2) {
758
- var slots = _ref2.slots;
759
-
760
- var _useProCurd2 = useProCurd(),
761
- curdState = _useProCurd2.curdState;
762
-
763
- return function () {
764
- return createVNode(ProSubmitButton, mergeProps({
765
- "onClick": function onClick() {
766
- curdState.addAction = CurdAddAction.CONTINUE;
767
- }
768
- }, props, {
769
- "loading": curdState.operateLoading
770
- }), {
771
- "default": function _default() {
772
- return [slots["default"] ? slots["default"]() : "确定并继续"];
393
+ });
394
+ },
395
+ add: function add() {
396
+ return createVNode(ElButton, props.addButtonProps, {
397
+ "default": function _default() {
398
+ return [props.addButtonText];
399
+ }
400
+ });
773
401
  }
774
- });
402
+ }, slots));
775
403
  };
776
404
  }
777
405
  });
778
406
 
779
- var proOperateButtonProps = function proOperateButtonProps() {
780
- return {
781
- //显示 确定并继续 按钮
782
- showContinueAdd: {
783
- type: Boolean,
784
- "default": false
785
- },
786
- //
787
- okText: {
788
- type: String,
789
- "default": "确定"
790
- },
791
- okButtonProps: {
792
- type: Object
407
+ var Table = defineComponent({
408
+ props: _objectSpread2(_objectSpread2({}, ElTable.props), {}, {
409
+ columns: {
410
+ type: Array
793
411
  },
794
- //
795
- continueText: {
796
- type: String,
797
- "default": "确定并继续"
412
+ dataSource: {
413
+ type: Array
798
414
  },
799
- continueButtonProps: {
800
- type: Object
415
+ loading: {
416
+ type: Boolean
801
417
  }
802
- };
803
- };
804
-
805
- var ProOperateButton = defineComponent({
806
- props: _objectSpread2({}, proOperateButtonProps()),
807
- setup: function setup(props, _ref3) {
808
- var slots = _ref3.slots;
809
-
810
- var _useProCurd3 = useProCurd(),
811
- curdState = _useProCurd3.curdState;
812
-
418
+ }),
419
+ setup: function setup(props, _ref) {
420
+ var slots = _ref.slots;
421
+ var id = createLoadingId("table");
813
422
  return function () {
814
- var _slots$left, _slots$center, _slots$right;
423
+ var _slots$start, _slots$default;
815
424
 
816
- return createVNode("div", {
817
- "class": "pro-curd-form-operate"
818
- }, [(_slots$left = slots.left) === null || _slots$left === void 0 ? void 0 : _slots$left.call(slots), createVNode(OkButton, props.okButtonProps, {
819
- "default": function _default() {
820
- return [props.okText];
821
- }
822
- }), (_slots$center = slots.center) === null || _slots$center === void 0 ? void 0 : _slots$center.call(slots), curdState.mode === CurdCurrentMode.ADD && props.showContinueAdd && createVNode(ContinueAddButton, props.continueButtonProps, {
425
+ return createVNode(ElTable, mergeProps({
426
+ "id": id
427
+ }, omit(props, "columns", "dataSource", "loading"), {
428
+ "data": props.dataSource || props.data
429
+ }), _objectSpread2({
823
430
  "default": function _default() {
824
- return [props.continueText];
431
+ return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), map(props.columns, function (item) {
432
+ return createVNode(ElTableColumn, mergeProps({
433
+ "key": item.dataIndex
434
+ }, omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
435
+ "label": isVNode(item.title) ? undefined : item.title || get(item, "label"),
436
+ "renderHeader": isVNode(item.title) ? function () {
437
+ return item.title;
438
+ } : undefined,
439
+ "prop": item.dataIndex,
440
+ "formatter": function formatter(record, column, value, index) {
441
+ if (item.customRender) {
442
+ return item.customRender({
443
+ value: value,
444
+ text: value,
445
+ record: record,
446
+ column: column,
447
+ index: index
448
+ });
449
+ }
450
+
451
+ return value;
452
+ }
453
+ }), null);
454
+ }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && createVNode(ProLoading, {
455
+ "target": id,
456
+ "loading": true
457
+ }, null)];
825
458
  }
826
- }), (_slots$right = slots.right) === null || _slots$right === void 0 ? void 0 : _slots$right.call(slots)]);
459
+ }, omit(slots, "default", "start")));
827
460
  };
828
461
  }
829
462
  });
463
+ var ProTable = createTable(Table);
830
464
 
831
- var proCurdFormProps = function proCurdFormProps() {
465
+ var ProCurdForm = createCurdForm(ProForm, ElButton, function (curdState) {
832
466
  return {
833
- //
834
- operateButtonProps: {
835
- type: Object
836
- }
467
+ hideRequiredAsterisk: curdState.mode === CurdCurrentMode.DETAIL
837
468
  };
838
- };
839
-
840
- var ProCurdForm = defineComponent({
841
- props: _objectSpread2(_objectSpread2({}, ProForm.props), proCurdFormProps()),
842
- setup: function setup(props, _ref4) {
843
- var slots = _ref4.slots;
844
-
845
- var _useProModule = useProModule(),
846
- elementMap = _useProModule.elementMap,
847
- formElementMap = _useProModule.formElementMap;
848
-
849
- var _useProCurd4 = useProCurd(),
850
- curdState = _useProCurd4.curdState,
851
- formColumns = _useProCurd4.formColumns,
852
- sendCurdEvent = _useProCurd4.sendCurdEvent;
853
-
854
- var handleFinish = function handleFinish(values) {
855
- if (curdState.mode === CurdCurrentMode.EDIT) {
856
- //edit
857
- sendCurdEvent({
858
- action: CurdAction.EDIT,
859
- type: CurdSubAction.EXECUTE,
860
- values: values
861
- });
862
- } else {
863
- //add
864
- sendCurdEvent({
865
- action: CurdAction.ADD,
866
- type: CurdSubAction.EXECUTE,
867
- values: values
868
- });
869
- }
870
- };
871
-
872
- return function () {
873
- var _slots$default;
874
-
875
- return createVNode(ProForm, mergeProps(omit(props, "elementMap", "formElementMap"), {
876
- "elementMap": props.elementMap || elementMap,
877
- "formElementMap": props.formElementMap || formElementMap,
878
- "columns": formColumns.value,
879
- "model": curdState.detailData,
880
- "readonly": curdState.mode === CurdCurrentMode.DETAIL,
881
- "hideRequiredAsterisk": curdState.mode === CurdCurrentMode.DETAIL,
882
- "onFinish": handleFinish
883
- }), _objectSpread2({
884
- "default": function _default() {
885
- return [curdState.mode !== CurdCurrentMode.DETAIL && createVNode(ProOperateButton, omit(props.operateButtonProps, "slots"), get(props.operateButtonProps, "slots")), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
886
- }
887
- }, omit(slots, "default")));
888
- };
889
- }
890
469
  });
891
470
  var ProCurdFormConnect = defineComponent({
892
471
  setup: function setup() {
893
- var _useProCurd5 = useProCurd(),
894
- formProps = _useProCurd5.formProps;
472
+ var _useProCurd = useProCurd(),
473
+ formProps = _useProCurd.formProps;
895
474
 
896
475
  return function () {
897
476
  return createVNode(ProCurdForm, omit(formProps === null || formProps === void 0 ? void 0 : formProps.value, "slots"), get(formProps === null || formProps === void 0 ? void 0 : formProps.value, "slots"));
@@ -899,114 +478,45 @@ var ProCurdFormConnect = defineComponent({
899
478
  }
900
479
  });
901
480
 
902
- /**
903
- * 组合列表
904
- * SearchForm + Table + Pagination
481
+ var CurdList = createCurdList(ProSearchForm, ProTable);
482
+
483
+ /**
484
+ * 组合列表
485
+ * SearchForm + Table + Pagination
905
486
  */
906
487
  var ProCurdList = defineComponent({
907
- props: _objectSpread2({}, ProList.props),
488
+ props: _objectSpread2(_objectSpread2({}, CurdList.props), {}, {
489
+ paginationProps: {
490
+ type: Object
491
+ }
492
+ }),
908
493
  setup: function setup(props, _ref) {
909
494
  var slots = _ref.slots;
910
-
911
- var _useProModule = useProModule(),
912
- elementMap = _useProModule.elementMap,
913
- formElementMap = _useProModule.formElementMap;
914
-
915
- var _useProCurd = useProCurd(),
916
- curdState = _useProCurd.curdState,
917
- searchColumns = _useProCurd.searchColumns,
918
- tableColumns = _useProCurd.tableColumns,
919
- getOperate = _useProCurd.getOperate,
920
- sendCurdEvent = _useProCurd.sendCurdEvent;
921
- /******************* table ********************/
922
-
923
-
924
- var prepareTableItem = function prepareTableItem(action) {
925
- var item = getOperate(action);
926
- return _objectSpread2(_objectSpread2({}, pick(item, "label", "element", "disabled", "sort")), {}, {
927
- show: !isUndefined(item === null || item === void 0 ? void 0 : item.show) ? item === null || item === void 0 ? void 0 : item.show : false,
928
- onClick: function onClick(record) {
929
- if (item !== null && item !== void 0 && item.onClick) {
930
- item.onClick(record);
931
- return;
932
- }
933
-
934
- sendCurdEvent({
935
- action: action,
936
- type: CurdSubAction.EMIT,
937
- record: record
938
- });
939
- },
940
- value: action
941
- });
942
- }; //table操作栏 items
943
-
944
-
945
- var tableOperateItems = [prepareTableItem(CurdAction.DETAIL), prepareTableItem(CurdAction.EDIT), prepareTableItem(CurdAction.DELETE)];
946
495
  return function () {
947
- var _curdState$listData, _curdState$listData2;
948
-
949
- var tableProps = props.tableProps;
950
- var paginationProps = props.paginationProps;
951
- return createVNode(ProList, mergeProps({
952
- "onList": function onList(values) {
953
- sendCurdEvent({
954
- action: CurdAction.LIST,
955
- type: CurdSubAction.EMIT,
956
- values: values
957
- });
958
- }
959
- }, props, {
960
- "searchProps": _objectSpread2(_objectSpread2({
961
- formElementMap: formElementMap
962
- }, props.searchProps), {}, {
963
- columns: searchColumns.value
964
- }),
965
- "tableProps": _objectSpread2(_objectSpread2({
966
- elementMap: elementMap
967
- }, tableProps), {}, {
968
- operate: mergeWith({
969
- items: tableOperateItems
970
- }, tableProps === null || tableProps === void 0 ? void 0 : tableProps.operate, function (objValue, srcValue) {
971
- if (isArray(objValue)) {
972
- if (isArray(srcValue)) {
973
- //合并
974
- return concat(objValue, map(srcValue, function (item) {
975
- var nextItem = _objectSpread2({}, item);
976
-
977
- if (!item.onClick) {
978
- nextItem.onClick = function (record) {
979
- sendCurdEvent({
980
- action: "operate",
981
- type: item.value,
982
- record: record
983
- });
984
- };
985
- }
986
-
987
- return nextItem;
988
- }));
989
- } else {
990
- //使用curd默认
991
- return objValue;
992
- }
496
+ return createVNode(CurdList, omit(props, "paginationProps"), _objectSpread2({
497
+ pagination: function pagination(pageState, total, handleSearch) {
498
+ return createVNode(ElPagination, mergeProps(props.paginationProps, {
499
+ "total": total,
500
+ "currentPage": pageState.page,
501
+ "pageSize": pageState.pageSize,
502
+ "onSizeChange": function onSizeChange(pageSize) {
503
+ pageState.pageSize = pageSize;
504
+ handleSearch();
505
+ },
506
+ "onCurrentChange": function onCurrentChange(current) {
507
+ pageState.page = current;
508
+ handleSearch();
993
509
  }
994
- }),
995
- columns: tableColumns.value,
996
- loading: curdState.listLoading,
997
- data: (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
998
- }),
999
- "paginationProps": _objectSpread2(_objectSpread2({}, paginationProps), {}, {
1000
- total: (_curdState$listData2 = curdState.listData) === null || _curdState$listData2 === void 0 ? void 0 : _curdState$listData2.total
1001
- })
1002
- }), slots);
510
+ }), null);
511
+ }
512
+ }, slots));
1003
513
  };
1004
514
  }
1005
515
  });
1006
516
  var ProCurdListConnect = defineComponent({
1007
517
  setup: function setup() {
1008
- var _useProCurd2 = useProCurd(),
1009
- listProps = _useProCurd2.listProps;
518
+ var _useProCurd = useProCurd(),
519
+ listProps = _useProCurd.listProps;
1010
520
 
1011
521
  return function () {
1012
522
  return createVNode(ProCurdList, omit(listProps === null || listProps === void 0 ? void 0 : listProps.value, "slots"), get(listProps === null || listProps === void 0 ? void 0 : listProps.value, "slots"));
@@ -1014,53 +524,14 @@ var ProCurdListConnect = defineComponent({
1014
524
  }
1015
525
  });
1016
526
 
1017
- function _isSlot(s) {
1018
- return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
1019
- }
1020
-
1021
- var ProCurdDesc = defineComponent({
1022
- props: _objectSpread2({}, ElDescriptions.props),
1023
- setup: function setup(props, _ref) {
1024
- var slots = _ref.slots;
1025
-
1026
- var _useProModule = useProModule(),
1027
- getItemVNode = _useProModule.getItemVNode;
1028
-
1029
- var _useProCurd = useProCurd(),
1030
- curdState = _useProCurd.curdState,
1031
- descColumns = _useProCurd.descColumns;
1032
-
1033
- var descVNodes = computed(function () {
1034
- return map(descColumns.value, function (item) {
1035
- var _slot;
1036
-
1037
- var value = get(curdState.detailData, item.dataIndex);
1038
- return createVNode(ElDescriptionsItem, mergeProps({
1039
- "key": item.dataIndex,
1040
- "label": item.title
1041
- }, get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
1042
- "default": function _default() {
1043
- return [_slot];
1044
- }
1045
- });
1046
- });
1047
- });
1048
- return function () {
1049
- return createVNode(ElDescriptions, props, _objectSpread2({
1050
- "default": function _default() {
1051
- return descVNodes.value;
1052
- }
1053
- }, omit(slots, "default")));
1054
- };
1055
- }
1056
- });
527
+ var ProCurdDesc = createCurdDesc(ElDescriptions, ElDescriptionsItem);
1057
528
  var ProCurdDescConnect = defineComponent({
1058
529
  setup: function setup() {
1059
- var _useProCurd2 = useProCurd(),
1060
- descProps = _useProCurd2.descProps;
530
+ var _useProCurd = useProCurd(),
531
+ descProps = _useProCurd.descProps;
1061
532
 
1062
533
  return function () {
1063
- return createVNode(ProCurdList, omit(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"), get(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"));
534
+ return createVNode(ProCurdDesc, omit(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"), get(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"));
1064
535
  };
1065
536
  }
1066
537
  });
@@ -1122,4 +593,4 @@ var ProCurdModalConnect = defineComponent({
1122
593
  }
1123
594
  });
1124
595
 
1125
- export { ContinueAddButton, OkButton, ProCurdDesc, ProCurdDescConnect, ProCurdForm, ProCurdFormConnect, ProCurdList, ProCurdListConnect, ProCurdModal, ProCurdModalConnect, ProForm, ProFormCascader, ProFormCheckbox, ProFormDatePicker, ProFormItem, ProFormList, ProFormRadio, ProFormSelect, ProFormSwitch, ProFormText, ProFormTextNumber, ProFormTimePicker, ProFormTreeSelect, ProGrid, ProList, ProLoading, ProOperateButton, ProSearchForm, ProSelect, ProSubmitButton, ProTable, createFormItemComponent, createLoadingId, defaultPage };
596
+ export { ProCurdDesc, ProCurdDescConnect, ProCurdForm, ProCurdFormConnect, ProCurdList, ProCurdListConnect, ProCurdModal, ProCurdModalConnect, ProForm, ProFormCascader, ProFormCheckbox, ProFormDatePicker, ProFormItem, ProFormList, ProFormRadio, ProFormSelect, ProFormSwitch, ProFormText, ProFormTextNumber, ProFormTimePicker, ProFormTreeSelect, ProGrid, ProLoading, ProSearchForm, ProSelect, ProSubmitButton, ProTable, createFormItemComponent, createLoadingId };