@vue-start/element-pro 0.2.1 → 0.2.4

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.d.ts CHANGED
@@ -3,12 +3,13 @@ import { VNode, DefineComponent, ExtractPropTypes, PropType, Component } from 'v
3
3
  import * as element_plus from 'element-plus';
4
4
  import { FormItemProps, ButtonProps as ButtonProps$1, ElSelect } from 'element-plus';
5
5
  import { FormItemRule } from 'element-plus/es/tokens/form';
6
- import { TTableColumn, ProFormProps as ProFormProps$1, ProSearchFormProps as ProSearchFormProps$1, ProFormListProps as ProFormListProps$1, ProTableProps as ProTableProps$1, ProCurdAddOrEditProps, TPageState } from '@vue-start/pro';
6
+ import { TTableColumn, ProFormProps as ProFormProps$1, ProSearchFormProps as ProSearchFormProps$1, ProFormListProps as ProFormListProps$1, ProTableProps as ProTableProps$1, ProCurdAddOrEditProps, TPageState, TOptions as TOptions$1 } from '@vue-start/pro';
7
7
  import { FilterMethods, Filters } from 'element-plus/es/components/table/src/table-column/defaults';
8
8
  import { ColSizeObject } from 'element-plus/es/components/col/src/col';
9
9
  import * as element_plus_es_utils from 'element-plus/es/utils';
10
10
  import { TableProps } from 'element-plus/es/components/table/src/table/defaults';
11
11
  import { Slots } from '@vue/runtime-core';
12
+ import { RadioGroupProps } from 'element-plus/es/components/radio/src/radio-group';
12
13
 
13
14
  interface ModalProps {
14
15
  appendToBody?: boolean;
@@ -249,6 +250,7 @@ interface FormProps {
249
250
  hideRequiredAsterisk?: boolean;
250
251
  scrollToError?: boolean;
251
252
  }
253
+ declare const FormMethods: string[];
252
254
  declare type ProFormProps = ProFormProps$1 & FormProps & Omit<ProGridProps, "items"> & {
253
255
  onFinish?: (showValues: Record<string, any>, values: Record<string, any>) => void;
254
256
  onFinishFailed?: (invalidFields: Record<string, any>) => void;
@@ -1017,6 +1019,8 @@ declare const createFormItemComponent: ({ InputComp, valueType, name }: {
1017
1019
  [x: string]: any;
1018
1020
  }>;
1019
1021
 
1022
+ declare type ProTableColumnProps = TableColumnCtx<any>;
1023
+ declare const ProTableColumn: DefineComponent<ProTableColumnProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<ProTableColumnProps>, {}>;
1020
1024
  declare type ProTableProps = Omit<ProTableProps$1, "columns"> & {
1021
1025
  columns?: TColumns;
1022
1026
  } & Omit<TableProps<any>, "tableLayout" | "flexible" | "data"> & {
@@ -1025,6 +1029,7 @@ declare type ProTableProps = Omit<ProTableProps$1, "columns"> & {
1025
1029
  data?: any;
1026
1030
  loading?: boolean;
1027
1031
  };
1032
+ declare const TableMethods: string[];
1028
1033
  declare const ProTable: DefineComponent<ProTableProps>;
1029
1034
 
1030
1035
  declare type ProCurdFormProps = ProFormProps & ProCurdAddOrEditProps;
@@ -1088,4 +1093,16 @@ declare const ProSelect: vue.DefineComponent<any, {}, {}, {}, {}, vue.ComponentO
1088
1093
  [x: string]: any;
1089
1094
  }>;
1090
1095
 
1091
- export { ButtonProps, DescriptionsProps, ModalProps, PaginationProps, ProCurdDesc, ProCurdDescConnect, ProCurdForm, ProCurdFormConnect, ProCurdFormProps, ProCurdList, ProCurdListConnect, ProCurdListProps, ProCurdModal, ProCurdModalConnect, ProForm, ProFormCascader, ProFormCheckbox, ProFormDatePicker, ProFormItem, ProFormItemProps, ProFormList, ProFormListProps, ProFormProps, ProFormRadio, ProFormSelect, ProFormSwitch, ProFormText, ProFormTextNumber, ProFormTimePicker, ProFormTreeSelect, ProGrid, ProGridProps, ProLoading, ProLoadingProps, ProSearchForm, ProSearchFormProps, ProSelect, ProSelectProps, ProSubmitButton, ProTable, ProTableProps, createFormItemComponent, createLoadingId };
1096
+ declare const proRadioProps: () => {
1097
+ options: {
1098
+ type: PropType<TOptions$1>;
1099
+ };
1100
+ buttonStyle: {
1101
+ type: PropType<"default" | "button">;
1102
+ default: string;
1103
+ };
1104
+ };
1105
+ declare type ProRadioProps = Partial<ExtractPropTypes<ReturnType<typeof proRadioProps>>> & RadioGroupProps;
1106
+ declare const ProRadio: vue.DefineComponent<ProRadioProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<ProRadioProps>, {}>;
1107
+
1108
+ export { ButtonProps, DescriptionsProps, FormMethods, ModalProps, PaginationProps, ProCurdDesc, ProCurdDescConnect, ProCurdForm, ProCurdFormConnect, ProCurdFormProps, ProCurdList, ProCurdListConnect, ProCurdListProps, ProCurdModal, ProCurdModalConnect, ProForm, ProFormCascader, ProFormCheckbox, ProFormDatePicker, ProFormItem, ProFormItemProps, ProFormList, ProFormListProps, ProFormProps, ProFormRadio, ProFormSelect, ProFormSwitch, ProFormText, ProFormTextNumber, ProFormTimePicker, ProFormTreeSelect, ProGrid, ProGridProps, ProLoading, ProLoadingProps, ProRadio, ProRadioProps, ProSearchForm, ProSearchFormProps, ProSelect, ProSelectProps, ProSubmitButton, ProTable, ProTableColumn, ProTableColumnProps, ProTableProps, TableMethods, createFormItemComponent, createLoadingId };
package/dist/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
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';
2
+ import { ElRow, ElCol, ElLoading, ElFormItem, ElForm, ElSelect, ElOption, ElRadioGroup, ElRadioButton, ElRadio, ElInput, ElInputNumber, ElDatePicker, ElTimePicker, ElTreeSelect, ElCheckboxGroup, ElSwitch, ElCascader, ElButton, ElTableColumn, ElTable, ElPagination, ElDescriptions, ElDescriptionsItem, ElDialog } from 'element-plus';
3
+ import { isString, keys, omit, map, size, get } from 'lodash';
4
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
 
@@ -191,6 +191,7 @@ var ProFormItem = defineComponent({
191
191
  };
192
192
  }
193
193
  });
194
+ var FormMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
194
195
  var Form = defineComponent({
195
196
  props: _objectSpread2({}, ElForm.props),
196
197
  setup: function setup(props, _ref2) {
@@ -199,7 +200,6 @@ var Form = defineComponent({
199
200
  expose = _ref2.expose;
200
201
  var formState = props.model || reactive({});
201
202
  var formRef = ref();
202
- var formMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
203
203
  useEffect(function () {
204
204
  if (!formRef.value) {
205
205
  return;
@@ -217,7 +217,7 @@ var Form = defineComponent({
217
217
  });
218
218
  };
219
219
  }, []);
220
- expose(createExpose(formMethods, formRef));
220
+ expose(createExpose(FormMethods, formRef));
221
221
  return function () {
222
222
  return createVNode(ElForm, mergeProps({
223
223
  "ref": formRef
@@ -228,7 +228,7 @@ var Form = defineComponent({
228
228
  }
229
229
  });
230
230
  //emit;
231
- var ProForm = createForm(Form, ProGrid);
231
+ var ProForm = createForm(Form, ProGrid, FormMethods);
232
232
  var ProSearchForm = createSearchForm(ProForm, {
233
233
  needRules: {
234
234
  type: Boolean,
@@ -238,7 +238,7 @@ var ProSearchForm = createSearchForm(ProForm, {
238
238
  type: Boolean,
239
239
  "default": true
240
240
  }
241
- });
241
+ }, FormMethods);
242
242
 
243
243
  var createFormItemComponent = createFormItemCompFn(ProFormItem, function (value, setValue, disabled) {
244
244
  return {
@@ -277,7 +277,66 @@ var ProSelect = defineComponent({
277
277
  }, item), null);
278
278
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
279
279
  }
280
- }, 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
+ });
281
340
  };
282
341
  }
283
342
  });
@@ -318,7 +377,7 @@ var ProFormCheckbox = createFormItemComponent({
318
377
  name: "PFromCheckbox"
319
378
  });
320
379
  var ProFormRadio = createFormItemComponent({
321
- InputComp: ElRadioGroup,
380
+ InputComp: ProRadio,
322
381
  valueType: "radio",
323
382
  name: "PFromRadio"
324
383
  });
@@ -404,6 +463,55 @@ var ProFormList = defineComponent({
404
463
  }
405
464
  });
406
465
 
466
+ var ProTableColumn = defineComponent({
467
+ props: _objectSpread2(_objectSpread2({}, omit(ElTableColumn.props, "label", "prop")), {}, {
468
+ title: {
469
+ type: String
470
+ },
471
+ dataIndex: {
472
+ type: String
473
+ },
474
+ children: {
475
+ type: Array
476
+ },
477
+ customRender: {
478
+ type: Function
479
+ }
480
+ }),
481
+ setup: function setup(props) {
482
+ return function () {
483
+ return createVNode(ElTableColumn, mergeProps(omit(props, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender", "children"), {
484
+ "label": isVNode(props.title) ? undefined : props.title,
485
+ "renderHeader": isVNode(props.title) ? function () {
486
+ return props.title;
487
+ } : undefined,
488
+ "prop": props.dataIndex,
489
+ "formatter": function formatter(record, column, value, index) {
490
+ if (props.customRender) {
491
+ return props.customRender({
492
+ value: value,
493
+ text: value,
494
+ record: record,
495
+ column: column,
496
+ index: index
497
+ });
498
+ }
499
+
500
+ return value;
501
+ }
502
+ }), {
503
+ "default": function _default() {
504
+ return [size(props.children) > 0 && map(props.children, function (item) {
505
+ return createVNode(ProTableColumn, mergeProps({
506
+ "key": item.dataIndex
507
+ }, item), null);
508
+ })];
509
+ }
510
+ });
511
+ };
512
+ }
513
+ });
514
+ var TableMethods = ["clearSelection", "getSelectionRows", "toggleRowSelection", "toggleAllSelection", "toggleRowExpansion", "setCurrentRow", "clearSort", "clearFilter", "doLayout", "sort", "scrollTo", "setScrollTop", "setScrollLeft"];
407
515
  var Table = defineComponent({
408
516
  props: _objectSpread2(_objectSpread2({}, ElTable.props), {}, {
409
517
  columns: {
@@ -417,40 +525,25 @@ var Table = defineComponent({
417
525
  }
418
526
  }),
419
527
  setup: function setup(props, _ref) {
420
- var slots = _ref.slots;
528
+ var slots = _ref.slots,
529
+ expose = _ref.expose;
530
+ var tableRef = ref();
421
531
  var id = createLoadingId("table");
532
+ expose(createExpose(TableMethods, tableRef));
422
533
  return function () {
423
534
  var _slots$start, _slots$default;
424
535
 
425
536
  return createVNode(ElTable, mergeProps({
537
+ "ref": tableRef,
426
538
  "id": id
427
539
  }, omit(props, "columns", "dataSource", "loading"), {
428
540
  "data": props.dataSource || props.data
429
541
  }), _objectSpread2({
430
542
  "default": function _default() {
431
543
  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({
544
+ return createVNode(ProTableColumn, mergeProps({
433
545
  "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);
546
+ }, item), null);
454
547
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && createVNode(ProLoading, {
455
548
  "target": id,
456
549
  "loading": true
@@ -460,13 +553,13 @@ var Table = defineComponent({
460
553
  };
461
554
  }
462
555
  });
463
- var ProTable = createTable(Table);
556
+ var ProTable = createTable(Table, undefined, TableMethods);
464
557
 
465
558
  var ProCurdForm = createCurdForm(ProForm, ElButton, function (curdState) {
466
559
  return {
467
560
  hideRequiredAsterisk: curdState.mode === CurdCurrentMode.DETAIL
468
561
  };
469
- });
562
+ }, FormMethods);
470
563
  var ProCurdFormConnect = defineComponent({
471
564
  setup: function setup() {
472
565
  var _useProCurd = useProCurd(),
@@ -593,4 +686,4 @@ var ProCurdModalConnect = defineComponent({
593
686
  }
594
687
  });
595
688
 
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 };
689
+ 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, ProTableColumn, TableMethods, createFormItemComponent, createLoadingId };
package/dist/index.js CHANGED
@@ -195,6 +195,7 @@ var ProFormItem = vue.defineComponent({
195
195
  };
196
196
  }
197
197
  });
198
+ var FormMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
198
199
  var Form = vue.defineComponent({
199
200
  props: _objectSpread2({}, elementPlus.ElForm.props),
200
201
  setup: function setup(props, _ref2) {
@@ -203,7 +204,6 @@ var Form = vue.defineComponent({
203
204
  expose = _ref2.expose;
204
205
  var formState = props.model || vue.reactive({});
205
206
  var formRef = vue.ref();
206
- var formMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
207
207
  hooks.useEffect(function () {
208
208
  if (!formRef.value) {
209
209
  return;
@@ -221,7 +221,7 @@ var Form = vue.defineComponent({
221
221
  });
222
222
  };
223
223
  }, []);
224
- expose(pro.createExpose(formMethods, formRef));
224
+ expose(pro.createExpose(FormMethods, formRef));
225
225
  return function () {
226
226
  return vue.createVNode(elementPlus.ElForm, vue.mergeProps({
227
227
  "ref": formRef
@@ -232,7 +232,7 @@ var Form = vue.defineComponent({
232
232
  }
233
233
  });
234
234
  //emit;
235
- var ProForm = pro.createForm(Form, ProGrid);
235
+ var ProForm = pro.createForm(Form, ProGrid, FormMethods);
236
236
  var ProSearchForm = pro.createSearchForm(ProForm, {
237
237
  needRules: {
238
238
  type: Boolean,
@@ -242,7 +242,7 @@ var ProSearchForm = pro.createSearchForm(ProForm, {
242
242
  type: Boolean,
243
243
  "default": true
244
244
  }
245
- });
245
+ }, FormMethods);
246
246
 
247
247
  var createFormItemComponent = pro.createFormItemCompFn(ProFormItem, function (value, setValue, disabled) {
248
248
  return {
@@ -281,7 +281,66 @@ var ProSelect = vue.defineComponent({
281
281
  }, item), null);
282
282
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
283
283
  }
284
- }, lodash.omit(props, "slots")));
284
+ }, lodash.omit(slots, "default")));
285
+ };
286
+ }
287
+ });
288
+
289
+ function _isSlot(s) {
290
+ return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
291
+ }
292
+
293
+ var proRadioProps = function proRadioProps() {
294
+ return {
295
+ options: {
296
+ type: Array
297
+ },
298
+ buttonStyle: {
299
+ type: String,
300
+ "default": "default"
301
+ }
302
+ };
303
+ };
304
+
305
+ var ProRadio = vue.defineComponent({
306
+ props: _objectSpread2(_objectSpread2({}, elementPlus.ElRadioGroup.props), proRadioProps()),
307
+ setup: function setup(props, _ref) {
308
+ var emit = _ref.emit;
309
+ var invalidKeys = lodash.keys(proRadioProps());
310
+ return function () {
311
+ var _slot;
312
+
313
+ return vue.createVNode(elementPlus.ElRadioGroup, vue.mergeProps(lodash.omit(props, invalidKeys), {
314
+ "onUpdate:modelValue": function onUpdateModelValue(v) {
315
+ emit("update:modelValue", v);
316
+ }
317
+ }), _isSlot(_slot = lodash.map(props.options, function (item) {
318
+ if (props.buttonStyle === "button") {
319
+ return vue.createVNode(elementPlus.ElRadioButton, vue.mergeProps({
320
+ "key": item.value
321
+ }, item, {
322
+ "label": item.value
323
+ }), {
324
+ "default": function _default() {
325
+ return [item.label];
326
+ }
327
+ });
328
+ }
329
+
330
+ return vue.createVNode(elementPlus.ElRadio, vue.mergeProps({
331
+ "key": item.value
332
+ }, item, {
333
+ "label": item.value
334
+ }), {
335
+ "default": function _default() {
336
+ return [item.label];
337
+ }
338
+ });
339
+ })) ? _slot : {
340
+ "default": function _default() {
341
+ return [_slot];
342
+ }
343
+ });
285
344
  };
286
345
  }
287
346
  });
@@ -322,7 +381,7 @@ var ProFormCheckbox = createFormItemComponent({
322
381
  name: "PFromCheckbox"
323
382
  });
324
383
  var ProFormRadio = createFormItemComponent({
325
- InputComp: elementPlus.ElRadioGroup,
384
+ InputComp: ProRadio,
326
385
  valueType: "radio",
327
386
  name: "PFromRadio"
328
387
  });
@@ -408,6 +467,55 @@ var ProFormList = vue.defineComponent({
408
467
  }
409
468
  });
410
469
 
470
+ var ProTableColumn = vue.defineComponent({
471
+ props: _objectSpread2(_objectSpread2({}, lodash.omit(elementPlus.ElTableColumn.props, "label", "prop")), {}, {
472
+ title: {
473
+ type: String
474
+ },
475
+ dataIndex: {
476
+ type: String
477
+ },
478
+ children: {
479
+ type: Array
480
+ },
481
+ customRender: {
482
+ type: Function
483
+ }
484
+ }),
485
+ setup: function setup(props) {
486
+ return function () {
487
+ return vue.createVNode(elementPlus.ElTableColumn, vue.mergeProps(lodash.omit(props, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender", "children"), {
488
+ "label": vue.isVNode(props.title) ? undefined : props.title,
489
+ "renderHeader": vue.isVNode(props.title) ? function () {
490
+ return props.title;
491
+ } : undefined,
492
+ "prop": props.dataIndex,
493
+ "formatter": function formatter(record, column, value, index) {
494
+ if (props.customRender) {
495
+ return props.customRender({
496
+ value: value,
497
+ text: value,
498
+ record: record,
499
+ column: column,
500
+ index: index
501
+ });
502
+ }
503
+
504
+ return value;
505
+ }
506
+ }), {
507
+ "default": function _default() {
508
+ return [lodash.size(props.children) > 0 && lodash.map(props.children, function (item) {
509
+ return vue.createVNode(ProTableColumn, vue.mergeProps({
510
+ "key": item.dataIndex
511
+ }, item), null);
512
+ })];
513
+ }
514
+ });
515
+ };
516
+ }
517
+ });
518
+ var TableMethods = ["clearSelection", "getSelectionRows", "toggleRowSelection", "toggleAllSelection", "toggleRowExpansion", "setCurrentRow", "clearSort", "clearFilter", "doLayout", "sort", "scrollTo", "setScrollTop", "setScrollLeft"];
411
519
  var Table = vue.defineComponent({
412
520
  props: _objectSpread2(_objectSpread2({}, elementPlus.ElTable.props), {}, {
413
521
  columns: {
@@ -421,40 +529,25 @@ var Table = vue.defineComponent({
421
529
  }
422
530
  }),
423
531
  setup: function setup(props, _ref) {
424
- var slots = _ref.slots;
532
+ var slots = _ref.slots,
533
+ expose = _ref.expose;
534
+ var tableRef = vue.ref();
425
535
  var id = createLoadingId("table");
536
+ expose(pro.createExpose(TableMethods, tableRef));
426
537
  return function () {
427
538
  var _slots$start, _slots$default;
428
539
 
429
540
  return vue.createVNode(elementPlus.ElTable, vue.mergeProps({
541
+ "ref": tableRef,
430
542
  "id": id
431
543
  }, lodash.omit(props, "columns", "dataSource", "loading"), {
432
544
  "data": props.dataSource || props.data
433
545
  }), _objectSpread2({
434
546
  "default": function _default() {
435
547
  return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), lodash.map(props.columns, function (item) {
436
- return vue.createVNode(elementPlus.ElTableColumn, vue.mergeProps({
548
+ return vue.createVNode(ProTableColumn, vue.mergeProps({
437
549
  "key": item.dataIndex
438
- }, lodash.omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
439
- "label": vue.isVNode(item.title) ? undefined : item.title || lodash.get(item, "label"),
440
- "renderHeader": vue.isVNode(item.title) ? function () {
441
- return item.title;
442
- } : undefined,
443
- "prop": item.dataIndex,
444
- "formatter": function formatter(record, column, value, index) {
445
- if (item.customRender) {
446
- return item.customRender({
447
- value: value,
448
- text: value,
449
- record: record,
450
- column: column,
451
- index: index
452
- });
453
- }
454
-
455
- return value;
456
- }
457
- }), null);
550
+ }, item), null);
458
551
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && vue.createVNode(ProLoading, {
459
552
  "target": id,
460
553
  "loading": true
@@ -464,13 +557,13 @@ var Table = vue.defineComponent({
464
557
  };
465
558
  }
466
559
  });
467
- var ProTable = pro.createTable(Table);
560
+ var ProTable = pro.createTable(Table, undefined, TableMethods);
468
561
 
469
562
  var ProCurdForm = pro.createCurdForm(ProForm, elementPlus.ElButton, function (curdState) {
470
563
  return {
471
564
  hideRequiredAsterisk: curdState.mode === pro.CurdCurrentMode.DETAIL
472
565
  };
473
- });
566
+ }, FormMethods);
474
567
  var ProCurdFormConnect = vue.defineComponent({
475
568
  setup: function setup() {
476
569
  var _useProCurd = pro.useProCurd(),
@@ -597,6 +690,7 @@ var ProCurdModalConnect = vue.defineComponent({
597
690
  }
598
691
  });
599
692
 
693
+ exports.FormMethods = FormMethods;
600
694
  exports.ProCurdDesc = ProCurdDesc;
601
695
  exports.ProCurdDescConnect = ProCurdDescConnect;
602
696
  exports.ProCurdForm = ProCurdForm;
@@ -620,9 +714,12 @@ exports.ProFormTimePicker = ProFormTimePicker;
620
714
  exports.ProFormTreeSelect = ProFormTreeSelect;
621
715
  exports.ProGrid = ProGrid;
622
716
  exports.ProLoading = ProLoading;
717
+ exports.ProRadio = ProRadio;
623
718
  exports.ProSearchForm = ProSearchForm;
624
719
  exports.ProSelect = ProSelect;
625
720
  exports.ProSubmitButton = ProSubmitButton;
626
721
  exports.ProTable = ProTable;
722
+ exports.ProTableColumn = ProTableColumn;
723
+ exports.TableMethods = TableMethods;
627
724
  exports.createFormItemComponent = createFormItemComponent;
628
725
  exports.createLoadingId = createLoadingId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-start/element-pro",
3
- "version": "0.2.1",
3
+ "version": "0.2.4",
4
4
  "description": "> TODO: description",
5
5
  "author": "zx <zxpstudy@163.com>",
6
6
  "homepage": "https://github.com/zxeryu/vue-start#readme",
@@ -32,5 +32,5 @@
32
32
  "rxjs": ">=7.x",
33
33
  "vue": ">= 3.x"
34
34
  },
35
- "gitHead": "c075692298700095cc58c30d657ef48a2a47d7a4"
35
+ "gitHead": "817582dc319eea2d525e93234e02185d0844a207"
36
36
  }