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