@vue-start/element-pro 0.2.0 → 0.2.3

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, ElRadioGroup, ElRadioButton, ElRadio, ElInput, ElInputNumber, ElDatePicker, ElTimePicker, ElTreeSelect, ElCheckboxGroup, 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,141 +191,54 @@ 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 FormMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
195
+ var Form = defineComponent({
196
+ props: _objectSpread2({}, ElForm.props),
454
197
  setup: function setup(props, _ref2) {
455
198
  var slots = _ref2.slots,
456
- expose = _ref2.expose,
457
199
  emit = _ref2.emit,
458
- attrs = _ref2.attrs;
459
- var formRef = ref();
200
+ expose = _ref2.expose;
460
201
  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
- });
202
+ var formRef = ref();
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);
488
- 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
- });
512
- };
513
- }
514
- });
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"));
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));
530
221
  return function () {
531
- return createVNode(Fragment, null, [createVNode(ProForm, mergeProps({
222
+ return createVNode(ElForm, mergeProps({
532
223
  "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)]);
224
+ }, omit(props, "model"), {
225
+ "model": formState
226
+ }), slots);
545
227
  };
546
228
  }
547
229
  });
230
+ //emit;
231
+ var ProForm = createForm(Form, ProGrid, FormMethods);
232
+ var ProSearchForm = createSearchForm(ProForm, {
233
+ needRules: {
234
+ type: Boolean,
235
+ "default": false
236
+ },
237
+ inline: {
238
+ type: Boolean,
239
+ "default": true
240
+ }
241
+ }, FormMethods);
548
242
 
549
243
  var createFormItemComponent = createFormItemCompFn(ProFormItem, function (value, setValue, disabled) {
550
244
  return {
@@ -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() {
@@ -583,7 +277,66 @@ var ProSelect = defineComponent({
583
277
  }, item), null);
584
278
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
585
279
  }
586
- }, omit(props, "slots")));
280
+ }, omit(slots, "default")));
281
+ };
282
+ }
283
+ });
284
+
285
+ function _isSlot(s) {
286
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
287
+ }
288
+
289
+ var proRadioProps = function proRadioProps() {
290
+ return {
291
+ options: {
292
+ type: Array
293
+ },
294
+ buttonStyle: {
295
+ type: String,
296
+ "default": "default"
297
+ }
298
+ };
299
+ };
300
+
301
+ var ProRadio = defineComponent({
302
+ props: _objectSpread2(_objectSpread2({}, ElRadioGroup.props), proRadioProps()),
303
+ setup: function setup(props, _ref) {
304
+ var emit = _ref.emit;
305
+ var invalidKeys = keys(proRadioProps());
306
+ return function () {
307
+ var _slot;
308
+
309
+ return createVNode(ElRadioGroup, mergeProps(omit(props, invalidKeys), {
310
+ "onUpdate:modelValue": function onUpdateModelValue(v) {
311
+ emit("update:modelValue", v);
312
+ }
313
+ }), _isSlot(_slot = map(props.options, function (item) {
314
+ if (props.buttonStyle === "button") {
315
+ return createVNode(ElRadioButton, mergeProps({
316
+ "key": item.value
317
+ }, item, {
318
+ "label": item.value
319
+ }), {
320
+ "default": function _default() {
321
+ return [item.label];
322
+ }
323
+ });
324
+ }
325
+
326
+ return createVNode(ElRadio, mergeProps({
327
+ "key": item.value
328
+ }, item, {
329
+ "label": item.value
330
+ }), {
331
+ "default": function _default() {
332
+ return [item.label];
333
+ }
334
+ });
335
+ })) ? _slot : {
336
+ "default": function _default() {
337
+ return [_slot];
338
+ }
339
+ });
587
340
  };
588
341
  }
589
342
  });
@@ -624,7 +377,7 @@ var ProFormCheckbox = createFormItemComponent({
624
377
  name: "PFromCheckbox"
625
378
  });
626
379
  var ProFormRadio = createFormItemComponent({
627
- InputComp: ElRadioGroup,
380
+ InputComp: ProRadio,
628
381
  valueType: "radio",
629
382
  name: "PFromRadio"
630
383
  });
@@ -662,6 +415,8 @@ var ProSubmitButton = defineComponent({
662
415
  }
663
416
  });
664
417
 
418
+ var FormList = createFormList(ProFormItem);
419
+
665
420
  var proFormListProps = function proFormListProps() {
666
421
  return {
667
422
  addButtonText: {
@@ -683,215 +438,103 @@ var proFormListProps = function proFormListProps() {
683
438
 
684
439
  var ProFormList = defineComponent({
685
440
  name: "PFormList",
686
- props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormListProps()),
441
+ props: _objectSpread2(_objectSpread2({}, FormList.props), proFormListProps()),
687
442
  setup: function setup(props, _ref) {
688
443
  var slots = _ref.slots;
689
- var originKeys = keys(ProFormList$1.props);
690
444
  var invalidKeys = keys(proFormListProps());
691
445
  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
- });
446
+ return createVNode(FormList, omit(props, invalidKeys), _objectSpread2({
447
+ itemMinus: function itemMinus() {
448
+ return createVNode(ElButton, props.minusButtonProps, {
449
+ "default": function _default() {
450
+ return [props.minusButtonText];
716
451
  }
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"]() : "确定并继续"];
452
+ });
453
+ },
454
+ add: function add() {
455
+ return createVNode(ElButton, props.addButtonProps, {
456
+ "default": function _default() {
457
+ return [props.addButtonText];
458
+ }
459
+ });
773
460
  }
774
- });
461
+ }, slots));
775
462
  };
776
463
  }
777
464
  });
778
465
 
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
466
+ var TableMethods = ["clearSelection", "getSelectionRows", "toggleRowSelection", "toggleAllSelection", "toggleRowExpansion", "setCurrentRow", "clearSort", "clearFilter", "doLayout", "sort", "scrollTo", "setScrollTop", "setScrollLeft"];
467
+ var Table = defineComponent({
468
+ props: _objectSpread2(_objectSpread2({}, ElTable.props), {}, {
469
+ columns: {
470
+ type: Array
793
471
  },
794
- //
795
- continueText: {
796
- type: String,
797
- "default": "确定并继续"
472
+ dataSource: {
473
+ type: Array
798
474
  },
799
- continueButtonProps: {
800
- type: Object
475
+ loading: {
476
+ type: Boolean
801
477
  }
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
-
478
+ }),
479
+ setup: function setup(props, _ref) {
480
+ var slots = _ref.slots,
481
+ expose = _ref.expose;
482
+ var tableRef = ref();
483
+ var id = createLoadingId("table");
484
+ expose(createExpose(TableMethods, tableRef));
813
485
  return function () {
814
- var _slots$left, _slots$center, _slots$right;
486
+ var _slots$start, _slots$default;
815
487
 
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, {
488
+ return createVNode(ElTable, mergeProps({
489
+ "ref": tableRef,
490
+ "id": id
491
+ }, omit(props, "columns", "dataSource", "loading"), {
492
+ "data": props.dataSource || props.data
493
+ }), _objectSpread2({
823
494
  "default": function _default() {
824
- return [props.continueText];
495
+ return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), map(props.columns, function (item) {
496
+ return createVNode(ElTableColumn, mergeProps({
497
+ "key": item.dataIndex
498
+ }, omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
499
+ "label": isVNode(item.title) ? undefined : item.title || get(item, "label"),
500
+ "renderHeader": isVNode(item.title) ? function () {
501
+ return item.title;
502
+ } : undefined,
503
+ "prop": item.dataIndex,
504
+ "formatter": function formatter(record, column, value, index) {
505
+ if (item.customRender) {
506
+ return item.customRender({
507
+ value: value,
508
+ text: value,
509
+ record: record,
510
+ column: column,
511
+ index: index
512
+ });
513
+ }
514
+
515
+ return value;
516
+ }
517
+ }), null);
518
+ }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && createVNode(ProLoading, {
519
+ "target": id,
520
+ "loading": true
521
+ }, null)];
825
522
  }
826
- }), (_slots$right = slots.right) === null || _slots$right === void 0 ? void 0 : _slots$right.call(slots)]);
523
+ }, omit(slots, "default", "start")));
827
524
  };
828
525
  }
829
526
  });
527
+ var ProTable = createTable(Table, undefined, TableMethods);
830
528
 
831
- var proCurdFormProps = function proCurdFormProps() {
529
+ var ProCurdForm = createCurdForm(ProForm, ElButton, function (curdState) {
832
530
  return {
833
- //
834
- operateButtonProps: {
835
- type: Object
836
- }
531
+ hideRequiredAsterisk: curdState.mode === CurdCurrentMode.DETAIL
837
532
  };
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
- });
533
+ }, FormMethods);
891
534
  var ProCurdFormConnect = defineComponent({
892
535
  setup: function setup() {
893
- var _useProCurd5 = useProCurd(),
894
- formProps = _useProCurd5.formProps;
536
+ var _useProCurd = useProCurd(),
537
+ formProps = _useProCurd.formProps;
895
538
 
896
539
  return function () {
897
540
  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 +542,45 @@ var ProCurdFormConnect = defineComponent({
899
542
  }
900
543
  });
901
544
 
902
- /**
903
- * 组合列表
904
- * SearchForm + Table + Pagination
545
+ var CurdList = createCurdList(ProSearchForm, ProTable);
546
+
547
+ /**
548
+ * 组合列表
549
+ * SearchForm + Table + Pagination
905
550
  */
906
551
  var ProCurdList = defineComponent({
907
- props: _objectSpread2({}, ProList.props),
552
+ props: _objectSpread2(_objectSpread2({}, CurdList.props), {}, {
553
+ paginationProps: {
554
+ type: Object
555
+ }
556
+ }),
908
557
  setup: function setup(props, _ref) {
909
558
  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
559
  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
- }
560
+ return createVNode(CurdList, omit(props, "paginationProps"), _objectSpread2({
561
+ pagination: function pagination(pageState, total, handleSearch) {
562
+ return createVNode(ElPagination, mergeProps(props.paginationProps, {
563
+ "total": total,
564
+ "currentPage": pageState.page,
565
+ "pageSize": pageState.pageSize,
566
+ "onSizeChange": function onSizeChange(pageSize) {
567
+ pageState.pageSize = pageSize;
568
+ handleSearch();
569
+ },
570
+ "onCurrentChange": function onCurrentChange(current) {
571
+ pageState.page = current;
572
+ handleSearch();
993
573
  }
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);
574
+ }), null);
575
+ }
576
+ }, slots));
1003
577
  };
1004
578
  }
1005
579
  });
1006
580
  var ProCurdListConnect = defineComponent({
1007
581
  setup: function setup() {
1008
- var _useProCurd2 = useProCurd(),
1009
- listProps = _useProCurd2.listProps;
582
+ var _useProCurd = useProCurd(),
583
+ listProps = _useProCurd.listProps;
1010
584
 
1011
585
  return function () {
1012
586
  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 +588,14 @@ var ProCurdListConnect = defineComponent({
1014
588
  }
1015
589
  });
1016
590
 
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
- });
591
+ var ProCurdDesc = createCurdDesc(ElDescriptions, ElDescriptionsItem);
1057
592
  var ProCurdDescConnect = defineComponent({
1058
593
  setup: function setup() {
1059
- var _useProCurd2 = useProCurd(),
1060
- descProps = _useProCurd2.descProps;
594
+ var _useProCurd = useProCurd(),
595
+ descProps = _useProCurd.descProps;
1061
596
 
1062
597
  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"));
598
+ 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
599
  };
1065
600
  }
1066
601
  });
@@ -1122,4 +657,4 @@ var ProCurdModalConnect = defineComponent({
1122
657
  }
1123
658
  });
1124
659
 
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 };
660
+ export { FormMethods, ProCurdDesc, ProCurdDescConnect, ProCurdForm, ProCurdFormConnect, ProCurdList, ProCurdListConnect, ProCurdModal, ProCurdModalConnect, ProForm, ProFormCascader, ProFormCheckbox, ProFormDatePicker, ProFormItem, ProFormList, ProFormRadio, ProFormSelect, ProFormSwitch, ProFormText, ProFormTextNumber, ProFormTimePicker, ProFormTreeSelect, ProGrid, ProLoading, ProRadio, ProSearchForm, ProSelect, ProSubmitButton, ProTable, TableMethods, createFormItemComponent, createLoadingId };