@vue-start/element-pro 0.1.2 → 0.2.2

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,8 +1,8 @@
1
- import { defineComponent, createVNode, Fragment, mergeProps, isVNode, ref, reactive, toRaw, computed } from 'vue';
2
- import { 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 { map, omit, get, keys, pick, isNumber, merge, size, isUndefined, mergeWith, isArray, concat } from 'lodash';
4
- import { useProTable, ProTable as ProTable$1, ProForm as ProForm$1, getFormItemEl, getColumnFormItemName, getValidValues, ProSearchForm as ProSearchForm$1, createFormItemCompFn, useProForm, ProFormList as ProFormList$1, useProCurd, CurdAddAction, CurdCurrentMode, useProModule, CurdAction, CurdSubAction } from '@vue-start/pro';
5
- import { setReactiveValue } from '@vue-start/hooks';
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
+ import { useEffect, setReactiveValue } from '@vue-start/hooks';
6
6
 
7
7
  function ownKeys(object, enumerableOnly) {
8
8
  var keys = Object.keys(object);
@@ -78,213 +78,95 @@ 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 Content = defineComponent(function () {
82
- var _useProTable = useProTable(),
83
- columns = _useProTable.columns;
84
-
85
- return function () {
86
- return createVNode(Fragment, null, [map(columns.value, function (item) {
87
- var formatter = function formatter(record, column, value, index) {
88
- if (item.customRender) {
89
- return item.customRender({
90
- value: value,
91
- text: value,
92
- record: record,
93
- column: column,
94
- index: index
95
- });
96
- }
97
-
98
- return value;
99
- };
100
-
101
- return createVNode(ElTableColumn, mergeProps({
102
- "key": item.dataIndex
103
- }, omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
104
- "label": isVNode(item.title) ? undefined : item.title || get(item, "label"),
105
- "renderHeader": isVNode(item.title) ? function () {
106
- return item.title;
107
- } : undefined,
108
- "prop": item.dataIndex,
109
- "formatter": formatter
110
- }), null);
111
- })]);
112
- };
113
- });
114
- var ProTable = defineComponent({
115
- inheritAttrs: false,
116
- props: _objectSpread2(_objectSpread2({}, ElTable.props), ProTable$1.props),
117
- setup: function setup(props, _ref) {
118
- var slots = _ref.slots,
119
- expose = _ref.expose,
120
- attrs = _ref.attrs;
121
- var tableRef = ref();
122
- var originKeys = keys(ProTable$1.props);
123
- return function () {
124
- var _slots$default;
125
-
126
- return createVNode(ProTable$1, mergeProps(attrs, pick.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["provideExtra"])), {
127
- "provideExtra": _objectSpread2({
128
- tableRef: tableRef
129
- }, props.provideExtra)
130
- }), {
131
- "default": function _default() {
132
- return [createVNode(ElTable, mergeProps({
133
- "ref": function ref(el) {
134
- expose(el);
135
- tableRef.value = el;
136
- }
137
- }, omit(props, originKeys)), _objectSpread2({
138
- "default": function _default() {
139
- return [createVNode(Content, null, null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
140
- }
141
- }, omit(slots, "default")))];
142
- }
143
- });
144
- };
145
- }
146
- });
81
+ var ProGrid = createGrid(ElRow, ElCol);
147
82
 
148
- var defaultPage = {
149
- page: 1,
150
- pageSize: 10
83
+ var createLoadingId = function createLoadingId() {
84
+ var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "comp";
85
+ return prefix + "-" + generateId();
151
86
  };
152
87
 
153
- var proListProps = function proListProps() {
88
+ var proLoadingProps = function proLoadingProps() {
154
89
  return {
155
- /**
156
- * extra 是否放到SearchForm中
157
- */
158
- extraInSearch: {
159
- type: Boolean,
160
- "default": undefined
90
+ loading: {
91
+ type: Boolean
161
92
  },
162
- //search
163
- searchProps: {
164
- type: Object
93
+ target: {
94
+ type: [String, Object]
165
95
  },
166
- //table
167
- tableProps: {
168
- type: Object
96
+ body: {
97
+ type: Boolean
169
98
  },
170
- //pagination
171
- paginationProps: {
172
- type: Object
99
+ fullscreen: {
100
+ type: Boolean
173
101
  },
174
- //pageState
175
- pageState: {
176
- type: Object
102
+ lock: {
103
+ type: Boolean
104
+ },
105
+ text: {
106
+ type: String
107
+ },
108
+ spinner: {
109
+ type: String
110
+ },
111
+ background: {
112
+ type: String
113
+ },
114
+ customClass: {
115
+ type: String
177
116
  }
178
117
  };
179
118
  };
180
119
 
181
- var ProList = defineComponent({
182
- props: _objectSpread2({}, proListProps()),
120
+ var ProLoading = defineComponent({
121
+ props: _objectSpread2({}, proLoadingProps()),
183
122
  setup: function setup(props, _ref) {
184
- var slots = _ref.slots,
185
- emit = _ref.emit;
186
-
187
- /******************* search pagination ********************/
188
- var pageState = props.pageState || reactive(_objectSpread2({}, defaultPage));
189
- var prevValues;
190
-
191
- var handleSearch = function handleSearch() {
192
- emit("list", _objectSpread2(_objectSpread2({}, prevValues), pageState));
193
- }; //页数重置1 且搜索
194
-
195
-
196
- var executeSearchWithResetPage = function executeSearchWithResetPage(values) {
197
- prevValues = values;
198
- pageState.page = 1;
199
- handleSearch();
200
- };
123
+ var slots = _ref.slots;
124
+ var id = createLoadingId();
125
+ useEffect(function () {
126
+ if (!props.loading) {
127
+ return;
128
+ }
201
129
 
202
- return function () {
203
- var _slots$divide, _slots$divide2, _slots$footerLeft, _slots$footerRight;
204
-
205
- var searchProps = props.searchProps;
206
- var tableProps = props.tableProps;
207
- var paginationProps = props.paginationProps; //操作按钮
208
-
209
- var extra = slots.extra ? createVNode("div", {
210
- "class": "pro-list-search"
211
- }, [slots.extra()]) : null; //分页参数
212
-
213
- var pagination = _objectSpread2(_objectSpread2({}, paginationProps), {}, {
214
- currentPage: pageState.page,
215
- pageSize: pageState.pageSize,
216
- onSizeChange: function onSizeChange(pageSize) {
217
- pageState.pageSize = pageSize;
218
- handleSearch();
219
- },
220
- onCurrentChange: function onCurrentChange(current) {
221
- pageState.page = current;
222
- handleSearch();
223
- }
224
- });
130
+ var element = props.target;
225
131
 
226
- return createVNode(Fragment, null, [createVNode(ProSearchForm, mergeProps(searchProps, {
227
- "onFinish": executeSearchWithResetPage
228
- }), {
229
- "default": function _default() {
230
- return [props.extraInSearch && extra];
132
+ if (!slots["default"]) {
133
+ //监听
134
+ if (props.target && isString(props.target)) {
135
+ element = document.querySelector("#" + props.target);
231
136
  }
232
- }), (_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), !props.extraInSearch && extra, slots["default"] ? slots["default"]() : createVNode(ProTable, 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", {
233
- "class": "pro-list-footer"
234
- }, [(_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)])]);
235
- };
236
- }
237
- });
238
-
239
- function _isSlot$1(s) {
240
- return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
241
- }
242
-
243
- var proGridProps = function proGridProps() {
244
- return {
245
- /**
246
- * row属性
247
- */
248
- row: {
249
- type: Object,
250
- "default": undefined
251
- },
252
-
253
- /**
254
- * 公共col属性
255
- */
256
- col: {
257
- type: Object
258
- },
137
+ } else {
138
+ //包裹
139
+ element = document.getElementById(id);
140
+ }
259
141
 
260
- /**
261
- *
262
- */
263
- items: {
264
- type: Array
265
- }
266
- };
267
- };
142
+ if (!element) {
143
+ return;
144
+ }
268
145
 
269
- var ProGrid = defineComponent({
270
- props: _objectSpread2({}, proGridProps()),
271
- setup: function setup(props) {
146
+ var instance = ElLoading.service({
147
+ target: element,
148
+ body: props.body,
149
+ fullscreen: props.fullscreen,
150
+ lock: props.lock,
151
+ text: props.text,
152
+ spinner: props.spinner,
153
+ background: props.background,
154
+ customClass: props.customClass
155
+ });
156
+ return function () {
157
+ instance && instance.close();
158
+ };
159
+ }, function () {
160
+ return props.loading;
161
+ });
272
162
  return function () {
273
- var _slot;
163
+ if (!slots["default"]) {
164
+ return null;
165
+ }
274
166
 
275
- return createVNode(ElRow, props.row, _isSlot$1(_slot = map(props.items, function (item) {
276
- return createVNode(ElCol, mergeProps({
277
- "key": item.rowKey
278
- }, merge(props.col, item.col)), {
279
- "default": function _default() {
280
- return [item.vNode];
281
- }
282
- });
283
- })) ? _slot : {
284
- "default": function _default() {
285
- return [_slot];
286
- }
287
- });
167
+ return createVNode("div", {
168
+ "id": id
169
+ }, [slots["default"]()]);
288
170
  };
289
171
  }
290
172
  });
@@ -309,112 +191,52 @@ var ProFormItem = defineComponent({
309
191
  };
310
192
  }
311
193
  });
312
- //emit;
313
- var ProForm = defineComponent({
314
- inheritAttrs: false,
315
- props: _objectSpread2(_objectSpread2(_objectSpread2({}, ElForm.props), omit(ProForm$1.props, "model")), omit(ProGrid.props, "items")),
194
+ var Form = defineComponent({
195
+ props: _objectSpread2({}, ElForm.props),
316
196
  setup: function setup(props, _ref2) {
317
197
  var slots = _ref2.slots,
318
- expose = _ref2.expose,
319
198
  emit = _ref2.emit,
320
- attrs = _ref2.attrs;
321
- var formRef = ref();
199
+ expose = _ref2.expose;
322
200
  var formState = props.model || reactive({});
323
- var showState = props.showState || reactive({});
324
-
325
- var handleRef = function handleRef(el) {
326
- var nexEl = _objectSpread2(_objectSpread2({}, el), {}, {
327
- submit: function submit() {
328
- var _el$validate;
329
-
330
- (_el$validate = el.validate) === null || _el$validate === void 0 ? void 0 : _el$validate.call(el, function (isValid, invalidFields) {
331
- if (isValid) {
332
- //验证成功
333
- //删除不显示的值再触发事件
334
- var _showValues = getValidValues(formState, showState, props.showStateRules);
335
-
336
- emit("finish", _showValues, toRaw(formState));
337
- } else {
338
- emit("finishFailed", invalidFields);
339
- }
340
- });
341
- }
342
- });
201
+ var formRef = ref();
202
+ var formMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
203
+ useEffect(function () {
204
+ if (!formRef.value) {
205
+ return;
206
+ }
343
207
 
344
- expose(nexEl);
345
- formRef.value = nexEl;
346
- };
208
+ formRef.value.submit = function () {
209
+ var _formRef$value;
347
210
 
348
- var originKeys = keys(omit(ProForm$1.props, "model"));
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));
349
221
  return function () {
350
- var _slots$default;
351
-
352
- return createVNode(ProForm$1, mergeProps(pick.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["provideExtra"])), {
353
- "model": formState,
354
- "showState": showState,
355
- "provideExtra": _objectSpread2({
356
- formRef: formRef
357
- }, props.provideExtra)
358
- }), {
359
- "default": function _default() {
360
- return [createVNode(ElForm, mergeProps({
361
- "ref": handleRef
362
- }, attrs, omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["model"])), {
363
- "model": formState
364
- }), {
365
- "default": function _default() {
366
- return [props.formElementMap && size(props.columns) > 0 && createVNode(Fragment, null, [props.row ? createVNode(ProGrid, {
367
- "row": props.row,
368
- "col": props.col,
369
- "items": map(props.columns, function (item) {
370
- var vNode = getFormItemEl(props.formElementMap, item, props.needRules);
371
- return {
372
- rowKey: getColumnFormItemName(item),
373
- vNode: vNode,
374
- col: get(item, ["extra", "col"])
375
- };
376
- })
377
- }, null) : createVNode(Fragment, null, [map(props.columns, function (item) {
378
- return getFormItemEl(props.formElementMap, item, props.needRules);
379
- })])]), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
380
- }
381
- })];
382
- }
383
- });
222
+ return createVNode(ElForm, mergeProps({
223
+ "ref": formRef
224
+ }, omit(props, "model"), {
225
+ "model": formState
226
+ }), slots);
384
227
  };
385
228
  }
386
229
  });
387
-
388
- var ProSearchForm = defineComponent({
389
- inheritAttrs: false,
390
- props: _objectSpread2(_objectSpread2(_objectSpread2({}, omit(ProForm.props, "inline")), omit(ProSearchForm$1.props, "model", "columns")), {}, {
391
- inline: {
392
- type: Boolean,
393
- "default": true
394
- }
395
- }),
396
- setup: function setup(props, _ref) {
397
- var slots = _ref.slots,
398
- attrs = _ref.attrs;
399
- var formRef = ref();
400
- var formState = props.model || reactive({});
401
- var originKeys = keys(omit(ProSearchForm$1.props, "model", "columns"));
402
- return function () {
403
- return createVNode(Fragment, null, [createVNode(ProForm, mergeProps({
404
- "ref": formRef
405
- }, attrs, omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), ["needRules", "model"])), {
406
- "model": formState,
407
- "needRules": false
408
- }), slots), createVNode(ProSearchForm$1, mergeProps(pick(props, originKeys), {
409
- "model": formState,
410
- "columns": props.columns,
411
- "onFinish": function onFinish() {
412
- var _formRef$value;
413
-
414
- (_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
415
- }
416
- }), null)]);
417
- };
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
418
240
  }
419
241
  });
420
242
 
@@ -445,7 +267,7 @@ var ProSelect = defineComponent({
445
267
 
446
268
  return createVNode(ElSelect, mergeProps(omit(props, invalidKeys), {
447
269
  "onUpdate:modelValue": function onUpdateModelValue(v) {
448
- emit("update:modelValue", v);
270
+ emit("update:modelValue", v ? v : undefined);
449
271
  }
450
272
  }), _objectSpread2({
451
273
  "default": function _default() {
@@ -455,7 +277,66 @@ var ProSelect = defineComponent({
455
277
  }, item), null);
456
278
  }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
457
279
  }
458
- }, 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
+ });
459
340
  };
460
341
  }
461
342
  });
@@ -496,7 +377,7 @@ var ProFormCheckbox = createFormItemComponent({
496
377
  name: "PFromCheckbox"
497
378
  });
498
379
  var ProFormRadio = createFormItemComponent({
499
- InputComp: ElRadioGroup,
380
+ InputComp: ProRadio,
500
381
  valueType: "radio",
501
382
  name: "PFromRadio"
502
383
  });
@@ -534,6 +415,8 @@ var ProSubmitButton = defineComponent({
534
415
  }
535
416
  });
536
417
 
418
+ var FormList = createFormList(ProFormItem);
419
+
537
420
  var proFormListProps = function proFormListProps() {
538
421
  return {
539
422
  addButtonText: {
@@ -555,215 +438,98 @@ var proFormListProps = function proFormListProps() {
555
438
 
556
439
  var ProFormList = defineComponent({
557
440
  name: "PFormList",
558
- props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormListProps()),
441
+ props: _objectSpread2(_objectSpread2({}, FormList.props), proFormListProps()),
559
442
  setup: function setup(props, _ref) {
560
443
  var slots = _ref.slots;
561
- var originKeys = keys(ProFormList$1.props);
562
444
  var invalidKeys = keys(proFormListProps());
563
445
  return function () {
564
- return createVNode(ProFormItem, mergeProps(omit.apply(void 0, [props].concat(_toConsumableArray(originKeys), _toConsumableArray(invalidKeys))), {
565
- "name": props.name
566
- }), {
567
- "default": function _default() {
568
- return [createVNode(ProFormList$1, mergeProps(pick(props, originKeys), {
569
- "name": props.name
570
- }), _objectSpread2({
571
- itemMinus: function itemMinus() {
572
- return createVNode(ElButton, mergeProps({
573
- "link": true
574
- }, props.minusButtonProps), {
575
- "default": function _default() {
576
- return [props.minusButtonText];
577
- }
578
- });
579
- },
580
- add: function add() {
581
- return createVNode(ElButton, mergeProps({
582
- "type": "primary"
583
- }, props.addButtonProps), {
584
- "default": function _default() {
585
- return [props.addButtonText];
586
- }
587
- });
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];
588
451
  }
589
- }, slots))];
590
- }
591
- });
592
- };
593
- }
594
- });
595
-
596
- /**
597
- * 添加 和 修改 时候的确定按钮
598
- */
599
-
600
- var OkButton = defineComponent({
601
- props: _objectSpread2({}, ElButton.props),
602
- setup: function setup(props, _ref) {
603
- var slots = _ref.slots;
604
-
605
- var _useProCurd = useProCurd(),
606
- curdState = _useProCurd.curdState;
607
-
608
- return function () {
609
- return createVNode(ProSubmitButton, mergeProps({
610
- "onClick": function onClick() {
611
- curdState.addAction = CurdAddAction.NORMAL;
612
- }
613
- }, props, {
614
- "loading": curdState.operateLoading
615
- }), {
616
- "default": function _default() {
617
- return [slots["default"] ? slots["default"]() : "确定"];
618
- }
619
- });
620
- };
621
- }
622
- });
623
- /**
624
- * 添加 时候的 确定并继续添加按钮
625
- */
626
-
627
- var ContinueAddButton = defineComponent({
628
- props: _objectSpread2({}, ElButton.props),
629
- setup: function setup(props, _ref2) {
630
- var slots = _ref2.slots;
631
-
632
- var _useProCurd2 = useProCurd(),
633
- curdState = _useProCurd2.curdState;
634
-
635
- return function () {
636
- return createVNode(ProSubmitButton, mergeProps({
637
- "onClick": function onClick() {
638
- curdState.addAction = CurdAddAction.CONTINUE;
639
- }
640
- }, props, {
641
- "loading": curdState.operateLoading
642
- }), {
643
- "default": function _default() {
644
- 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
+ });
645
460
  }
646
- });
461
+ }, slots));
647
462
  };
648
463
  }
649
464
  });
650
465
 
651
- var proOperateButtonProps = function proOperateButtonProps() {
652
- return {
653
- //显示 确定并继续 按钮
654
- showContinueAdd: {
655
- type: Boolean,
656
- "default": false
657
- },
658
- //
659
- okText: {
660
- type: String,
661
- "default": "确定"
662
- },
663
- okButtonProps: {
664
- type: Object
466
+ var Table = defineComponent({
467
+ props: _objectSpread2(_objectSpread2({}, ElTable.props), {}, {
468
+ columns: {
469
+ type: Array
665
470
  },
666
- //
667
- continueText: {
668
- type: String,
669
- "default": "确定并继续"
471
+ dataSource: {
472
+ type: Array
670
473
  },
671
- continueButtonProps: {
672
- type: Object
474
+ loading: {
475
+ type: Boolean
673
476
  }
674
- };
675
- };
676
-
677
- var ProOperateButton = defineComponent({
678
- props: _objectSpread2({}, proOperateButtonProps()),
679
- setup: function setup(props, _ref3) {
680
- var slots = _ref3.slots;
681
-
682
- var _useProCurd3 = useProCurd(),
683
- curdState = _useProCurd3.curdState;
684
-
477
+ }),
478
+ setup: function setup(props, _ref) {
479
+ var slots = _ref.slots;
480
+ var id = createLoadingId("table");
685
481
  return function () {
686
- var _slots$left, _slots$center, _slots$right;
482
+ var _slots$start, _slots$default;
687
483
 
688
- return createVNode("div", {
689
- "class": "pro-curd-form-operate"
690
- }, [(_slots$left = slots.left) === null || _slots$left === void 0 ? void 0 : _slots$left.call(slots), createVNode(OkButton, props.okButtonProps, {
691
- "default": function _default() {
692
- return [props.okText];
693
- }
694
- }), (_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, {
484
+ return createVNode(ElTable, mergeProps({
485
+ "id": id
486
+ }, omit(props, "columns", "dataSource", "loading"), {
487
+ "data": props.dataSource || props.data
488
+ }), _objectSpread2({
695
489
  "default": function _default() {
696
- return [props.continueText];
490
+ return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), map(props.columns, function (item) {
491
+ return createVNode(ElTableColumn, mergeProps({
492
+ "key": item.dataIndex
493
+ }, omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
494
+ "label": isVNode(item.title) ? undefined : item.title || get(item, "label"),
495
+ "renderHeader": isVNode(item.title) ? function () {
496
+ return item.title;
497
+ } : undefined,
498
+ "prop": item.dataIndex,
499
+ "formatter": function formatter(record, column, value, index) {
500
+ if (item.customRender) {
501
+ return item.customRender({
502
+ value: value,
503
+ text: value,
504
+ record: record,
505
+ column: column,
506
+ index: index
507
+ });
508
+ }
509
+
510
+ return value;
511
+ }
512
+ }), null);
513
+ }), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && createVNode(ProLoading, {
514
+ "target": id,
515
+ "loading": true
516
+ }, null)];
697
517
  }
698
- }), (_slots$right = slots.right) === null || _slots$right === void 0 ? void 0 : _slots$right.call(slots)]);
518
+ }, omit(slots, "default", "start")));
699
519
  };
700
520
  }
701
521
  });
522
+ var ProTable = createTable(Table);
702
523
 
703
- var proCurdFormProps = function proCurdFormProps() {
524
+ var ProCurdForm = createCurdForm(ProForm, ElButton, function (curdState) {
704
525
  return {
705
- //
706
- operateButtonProps: {
707
- type: Object
708
- }
526
+ hideRequiredAsterisk: curdState.mode === CurdCurrentMode.DETAIL
709
527
  };
710
- };
711
-
712
- var ProCurdForm = defineComponent({
713
- props: _objectSpread2(_objectSpread2({}, ProForm.props), proCurdFormProps()),
714
- setup: function setup(props, _ref4) {
715
- var slots = _ref4.slots;
716
-
717
- var _useProModule = useProModule(),
718
- elementMap = _useProModule.elementMap,
719
- formElementMap = _useProModule.formElementMap;
720
-
721
- var _useProCurd4 = useProCurd(),
722
- curdState = _useProCurd4.curdState,
723
- formColumns = _useProCurd4.formColumns,
724
- sendCurdEvent = _useProCurd4.sendCurdEvent;
725
-
726
- var handleFinish = function handleFinish(values) {
727
- if (curdState.mode === CurdCurrentMode.EDIT) {
728
- //edit
729
- sendCurdEvent({
730
- action: CurdAction.EDIT,
731
- type: CurdSubAction.EXECUTE,
732
- values: values
733
- });
734
- } else {
735
- //add
736
- sendCurdEvent({
737
- action: CurdAction.ADD,
738
- type: CurdSubAction.EXECUTE,
739
- values: values
740
- });
741
- }
742
- };
743
-
744
- return function () {
745
- var _slots$default;
746
-
747
- return createVNode(ProForm, mergeProps(omit(props, "elementMap", "formElementMap"), {
748
- "elementMap": props.elementMap || elementMap,
749
- "formElementMap": props.formElementMap || formElementMap,
750
- "columns": formColumns.value,
751
- "model": curdState.detailData,
752
- "readonly": curdState.mode === CurdCurrentMode.DETAIL,
753
- "hideRequiredAsterisk": curdState.mode === CurdCurrentMode.DETAIL,
754
- "onFinish": handleFinish
755
- }), _objectSpread2({
756
- "default": function _default() {
757
- 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)];
758
- }
759
- }, omit(slots, "default")));
760
- };
761
- }
762
528
  });
763
529
  var ProCurdFormConnect = defineComponent({
764
530
  setup: function setup() {
765
- var _useProCurd5 = useProCurd(),
766
- formProps = _useProCurd5.formProps;
531
+ var _useProCurd = useProCurd(),
532
+ formProps = _useProCurd.formProps;
767
533
 
768
534
  return function () {
769
535
  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"));
@@ -771,113 +537,45 @@ var ProCurdFormConnect = defineComponent({
771
537
  }
772
538
  });
773
539
 
774
- /**
775
- * 组合列表
776
- * SearchForm + Table + Pagination
540
+ var CurdList = createCurdList(ProSearchForm, ProTable);
541
+
542
+ /**
543
+ * 组合列表
544
+ * SearchForm + Table + Pagination
777
545
  */
778
546
  var ProCurdList = defineComponent({
779
- props: _objectSpread2({}, ProList.props),
547
+ props: _objectSpread2(_objectSpread2({}, CurdList.props), {}, {
548
+ paginationProps: {
549
+ type: Object
550
+ }
551
+ }),
780
552
  setup: function setup(props, _ref) {
781
553
  var slots = _ref.slots;
782
-
783
- var _useProModule = useProModule(),
784
- elementMap = _useProModule.elementMap,
785
- formElementMap = _useProModule.formElementMap;
786
-
787
- var _useProCurd = useProCurd(),
788
- curdState = _useProCurd.curdState,
789
- searchColumns = _useProCurd.searchColumns,
790
- tableColumns = _useProCurd.tableColumns,
791
- getOperate = _useProCurd.getOperate,
792
- sendCurdEvent = _useProCurd.sendCurdEvent;
793
- /******************* table ********************/
794
-
795
-
796
- var prepareTableItem = function prepareTableItem(action) {
797
- var item = getOperate(action);
798
- return _objectSpread2(_objectSpread2({}, pick(item, "label", "element", "disabled", "sort")), {}, {
799
- show: !isUndefined(item === null || item === void 0 ? void 0 : item.show) ? item === null || item === void 0 ? void 0 : item.show : false,
800
- onClick: function onClick(record) {
801
- if (item !== null && item !== void 0 && item.onClick) {
802
- item.onClick(record);
803
- return;
804
- }
805
-
806
- sendCurdEvent({
807
- action: action,
808
- type: CurdSubAction.EMIT,
809
- record: record
810
- });
811
- },
812
- value: action
813
- });
814
- }; //table操作栏 items
815
-
816
-
817
- var tableOperateItems = [prepareTableItem(CurdAction.DETAIL), prepareTableItem(CurdAction.EDIT), prepareTableItem(CurdAction.DELETE)];
818
554
  return function () {
819
- var _curdState$listData, _curdState$listData2;
820
-
821
- var tableProps = props.tableProps;
822
- return createVNode(ProList, mergeProps({
823
- "onList": function onList(values) {
824
- sendCurdEvent({
825
- action: CurdAction.LIST,
826
- type: CurdSubAction.EMIT,
827
- values: values
828
- });
829
- }
830
- }, props, {
831
- "searchProps": _objectSpread2(_objectSpread2({
832
- formElementMap: formElementMap
833
- }, props.searchProps), {}, {
834
- columns: searchColumns.value
835
- }),
836
- "tableProps": _objectSpread2(_objectSpread2({
837
- elementMap: elementMap
838
- }, tableProps), {}, {
839
- operate: mergeWith({
840
- items: tableOperateItems
841
- }, tableProps === null || tableProps === void 0 ? void 0 : tableProps.operate, function (objValue, srcValue) {
842
- if (isArray(objValue)) {
843
- if (isArray(srcValue)) {
844
- //合并
845
- return concat(objValue, map(srcValue, function (item) {
846
- var nextItem = _objectSpread2({}, item);
847
-
848
- if (!item.onClick) {
849
- nextItem.onClick = function (record) {
850
- sendCurdEvent({
851
- action: CurdAction.LIST,
852
- type: "operate-".concat(item.value),
853
- record: record
854
- });
855
- };
856
- }
857
-
858
- return nextItem;
859
- }));
860
- } else {
861
- //使用curd默认
862
- return objValue;
863
- }
555
+ return createVNode(CurdList, omit(props, "paginationProps"), _objectSpread2({
556
+ pagination: function pagination(pageState, total, handleSearch) {
557
+ return createVNode(ElPagination, mergeProps(props.paginationProps, {
558
+ "total": total,
559
+ "currentPage": pageState.page,
560
+ "pageSize": pageState.pageSize,
561
+ "onSizeChange": function onSizeChange(pageSize) {
562
+ pageState.pageSize = pageSize;
563
+ handleSearch();
564
+ },
565
+ "onCurrentChange": function onCurrentChange(current) {
566
+ pageState.page = current;
567
+ handleSearch();
864
568
  }
865
- }),
866
- columns: tableColumns.value,
867
- loading: curdState.listLoading,
868
- data: (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
869
- }),
870
- "paginationProps": _objectSpread2(_objectSpread2({}, props.paginationProps), {}, {
871
- total: (_curdState$listData2 = curdState.listData) === null || _curdState$listData2 === void 0 ? void 0 : _curdState$listData2.total
872
- })
873
- }), slots);
569
+ }), null);
570
+ }
571
+ }, slots));
874
572
  };
875
573
  }
876
574
  });
877
575
  var ProCurdListConnect = defineComponent({
878
576
  setup: function setup() {
879
- var _useProCurd2 = useProCurd(),
880
- listProps = _useProCurd2.listProps;
577
+ var _useProCurd = useProCurd(),
578
+ listProps = _useProCurd.listProps;
881
579
 
882
580
  return function () {
883
581
  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"));
@@ -885,53 +583,14 @@ var ProCurdListConnect = defineComponent({
885
583
  }
886
584
  });
887
585
 
888
- function _isSlot(s) {
889
- return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
890
- }
891
-
892
- var ProCurdDesc = defineComponent({
893
- props: _objectSpread2({}, ElDescriptions.props),
894
- setup: function setup(props, _ref) {
895
- var slots = _ref.slots;
896
-
897
- var _useProModule = useProModule(),
898
- getItemVNode = _useProModule.getItemVNode;
899
-
900
- var _useProCurd = useProCurd(),
901
- curdState = _useProCurd.curdState,
902
- descColumns = _useProCurd.descColumns;
903
-
904
- var descVNodes = computed(function () {
905
- return map(descColumns.value, function (item) {
906
- var _slot;
907
-
908
- var value = get(curdState.detailData, item.dataIndex);
909
- return createVNode(ElDescriptionsItem, mergeProps({
910
- "key": item.dataIndex,
911
- "label": item.title
912
- }, get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
913
- "default": function _default() {
914
- return [_slot];
915
- }
916
- });
917
- });
918
- });
919
- return function () {
920
- return createVNode(ElDescriptions, props, _objectSpread2({
921
- "default": function _default() {
922
- return descVNodes.value;
923
- }
924
- }, omit(slots, "default")));
925
- };
926
- }
927
- });
586
+ var ProCurdDesc = createCurdDesc(ElDescriptions, ElDescriptionsItem);
928
587
  var ProCurdDescConnect = defineComponent({
929
588
  setup: function setup() {
930
- var _useProCurd2 = useProCurd(),
931
- descProps = _useProCurd2.descProps;
589
+ var _useProCurd = useProCurd(),
590
+ descProps = _useProCurd.descProps;
932
591
 
933
592
  return function () {
934
- 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"));
593
+ 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"));
935
594
  };
936
595
  }
937
596
  });
@@ -993,4 +652,4 @@ var ProCurdModalConnect = defineComponent({
993
652
  }
994
653
  });
995
654
 
996
- 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, ProOperateButton, ProSearchForm, ProSelect, ProSubmitButton, ProTable, createFormItemComponent, defaultPage };
655
+ export { 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, createFormItemComponent, createLoadingId };