@vue-start/pro 0.3.0 → 0.4.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 +27 -0
- package/dist/index.d.ts +249 -432
- package/dist/index.es.js +1245 -495
- package/dist/index.js +1257 -496
- package/package.json +2 -2
package/dist/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent,
|
|
2
|
-
import { map, isString, forEach,
|
|
1
|
+
import { defineComponent, createVNode, mergeProps, isVNode, computed, h, inject, reactive, Fragment, provide, ref } from 'vue';
|
|
2
|
+
import { map, isString, forEach, reduce, size, get, set, pick, omit, isArray, some, keys, isFunction, head, isObject, findIndex, find, filter as filter$1, split, isEmpty, mergeWith, sortBy, concat, isUndefined, debounce, clone, isBoolean } from 'lodash';
|
|
3
3
|
import { filter, tap, merge, Subject } from 'rxjs';
|
|
4
4
|
import { useEffect, setReactiveValue, useWatch } from '@vue-start/hooks';
|
|
5
5
|
import { useRequestProvide, isFailedRequestActor, isPreRequestActor, isDoneRequestActor } from '@vue-start/request';
|
|
@@ -79,6 +79,50 @@ function _nonIterableSpread() {
|
|
|
79
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
80
|
}
|
|
81
81
|
|
|
82
|
+
function _isSlot$1(s) {
|
|
83
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
var proGridProps = function proGridProps() {
|
|
87
|
+
return {
|
|
88
|
+
row: {
|
|
89
|
+
type: Object,
|
|
90
|
+
"default": undefined
|
|
91
|
+
},
|
|
92
|
+
col: {
|
|
93
|
+
type: Object
|
|
94
|
+
},
|
|
95
|
+
items: {
|
|
96
|
+
type: Array
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var createGrid = function createGrid(Row, Col) {
|
|
102
|
+
return defineComponent({
|
|
103
|
+
props: _objectSpread2({}, proGridProps()),
|
|
104
|
+
setup: function setup(props) {
|
|
105
|
+
return function () {
|
|
106
|
+
var _slot;
|
|
107
|
+
|
|
108
|
+
return createVNode(Row, props.row, _isSlot$1(_slot = map(props.items, function (item) {
|
|
109
|
+
return createVNode(Col, mergeProps({
|
|
110
|
+
"key": item.rowKey
|
|
111
|
+
}, props.col, item.col), {
|
|
112
|
+
"default": function _default() {
|
|
113
|
+
return [item.vNode];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
})) ? _slot : {
|
|
117
|
+
"default": function _default() {
|
|
118
|
+
return [_slot];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
|
|
82
126
|
var createUseRequestActor = function createUseRequestActor(filterFun) {
|
|
83
127
|
return function (actors, callback) {
|
|
84
128
|
var _useRequestProvide = useRequestProvide(),
|
|
@@ -151,94 +195,12 @@ var useComposeRequestActor = function useComposeRequestActor(actors, options, ca
|
|
|
151
195
|
}, []);
|
|
152
196
|
};
|
|
153
197
|
|
|
154
|
-
|
|
155
|
-
* 剔除showState或showStateRules规则为!true的值
|
|
156
|
-
* @param values
|
|
157
|
-
* @param showState
|
|
158
|
-
* @param showStateRules
|
|
159
|
-
*/
|
|
160
|
-
var getValidValues = function getValidValues(values, showState, showStateRules) {
|
|
161
|
-
if (showState) {
|
|
162
|
-
var invalidKeys = filter$1(keys(showState), function (key) {
|
|
163
|
-
return !showState[key];
|
|
164
|
-
});
|
|
165
|
-
return omit(values, invalidKeys);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (showStateRules) {
|
|
169
|
-
var _invalidKeys = filter$1(keys(showStateRules), function (key) {
|
|
170
|
-
return !showStateRules[key](values);
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
return omit(values, _invalidKeys);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return values;
|
|
177
|
-
};
|
|
178
|
-
/**
|
|
179
|
-
* string类型的path转为arr
|
|
180
|
-
* @param path
|
|
181
|
-
*/
|
|
182
|
-
|
|
183
|
-
var convertPathToList = function convertPathToList(path) {
|
|
184
|
-
if (!path) {
|
|
185
|
-
return undefined;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if (isArray(path)) {
|
|
189
|
-
return path;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if (path && isString(path) && path.indexOf(".") > 0) {
|
|
193
|
-
return split(path, ".");
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return [path];
|
|
197
|
-
};
|
|
198
|
-
/**
|
|
199
|
-
* 唯一id
|
|
200
|
-
*/
|
|
201
|
-
|
|
202
|
-
var generateId = function generateId() {
|
|
203
|
-
return Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* 将listState 中的数据通过id merge到 list item中
|
|
207
|
-
* ps:数组会替换
|
|
208
|
-
* @param list
|
|
209
|
-
* @param listState
|
|
210
|
-
* @param id
|
|
211
|
-
*/
|
|
212
|
-
|
|
213
|
-
var mergeStateToList = function mergeStateToList(list, listState, id) {
|
|
214
|
-
if (!listState || !id) {
|
|
215
|
-
return list;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return map(list, function (item) {
|
|
219
|
-
var idName = isFunction(id) ? id(item) : id; //如果listState中有值,merge处理
|
|
220
|
-
|
|
221
|
-
var stateData = get(listState, idName);
|
|
222
|
-
|
|
223
|
-
if (!stateData || isEmpty(stateData) || isFunction(stateData) || !isObject(stateData)) {
|
|
224
|
-
return item;
|
|
225
|
-
} //只有是对象(键值对)才合并
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return mergeWith(item, stateData, function (objValue, srcValue) {
|
|
229
|
-
//如果是数组,替换
|
|
230
|
-
if (isArray(objValue) || isArray(srcValue)) {
|
|
231
|
-
return srcValue;
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
};
|
|
198
|
+
/***************************************** curd模式 *****************************************/
|
|
236
199
|
|
|
237
200
|
/**
|
|
238
201
|
* 获取Column的valueType,默认"text"
|
|
239
202
|
* @param column
|
|
240
203
|
*/
|
|
241
|
-
|
|
242
204
|
var getColumnValueType = function getColumnValueType(column) {
|
|
243
205
|
return column.formValueType || column.valueType || "text";
|
|
244
206
|
};
|
|
@@ -304,6 +266,213 @@ var getItemEl = function getItemEl(elementMap, column, value) {
|
|
|
304
266
|
value: value
|
|
305
267
|
}), (_column$formFieldProp2 = column.formFieldProps) === null || _column$formFieldProp2 === void 0 ? void 0 : _column$formFieldProp2.slots);
|
|
306
268
|
};
|
|
269
|
+
/***************************************** 通用模式 *****************************************/
|
|
270
|
+
|
|
271
|
+
var renderElements = function renderElements(elementMap, elementConfigs) {
|
|
272
|
+
return map(elementConfigs, function (elementConfig) {
|
|
273
|
+
return renderElement(elementMap, elementConfig);
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* props转换
|
|
278
|
+
*/
|
|
279
|
+
|
|
280
|
+
var convertPropsEl = function convertPropsEl(elementMap, elementConfig) {
|
|
281
|
+
var _elementConfig$highCo;
|
|
282
|
+
|
|
283
|
+
var elementProps = elementConfig.elementProps;
|
|
284
|
+
|
|
285
|
+
var nextProps = _objectSpread2({}, elementConfig.elementProps);
|
|
286
|
+
|
|
287
|
+
forEach((_elementConfig$highCo = elementConfig.highConfig$) === null || _elementConfig$highCo === void 0 ? void 0 : _elementConfig$highCo.registerPropsTrans, function (item) {
|
|
288
|
+
var target = get(elementProps, item.name);
|
|
289
|
+
|
|
290
|
+
if (!target || isVNode(target)) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
if (isArray(target)) {
|
|
295
|
+
//如果list中存在VNode,不转换
|
|
296
|
+
if (some(target, function (sub) {
|
|
297
|
+
return isVNode(sub);
|
|
298
|
+
})) {
|
|
299
|
+
return;
|
|
300
|
+
} //如果碰到特殊场景,可以替换成单个渲染模式
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
set(nextProps, item.name, renderElements(elementMap, target));
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
if (!target.elementType) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (item.isFun) {
|
|
312
|
+
set(nextProps, item.name, function () {
|
|
313
|
+
for (var _len = arguments.length, params$ = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
314
|
+
params$[_key] = arguments[_key];
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
var ep = item.needParams ? _objectSpread2(_objectSpread2({}, target.elementProps), {}, {
|
|
318
|
+
params$: params$
|
|
319
|
+
}) : target.elementProps;
|
|
320
|
+
return renderElement(elementMap, _objectSpread2(_objectSpread2({}, target), {}, {
|
|
321
|
+
elementProps: ep
|
|
322
|
+
}));
|
|
323
|
+
});
|
|
324
|
+
} else {
|
|
325
|
+
set(nextProps, item.name, renderElement(elementMap, target));
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
return nextProps;
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* slots转换
|
|
332
|
+
*/
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
var convertSlots = function convertSlots(elementMap, elementConfig) {
|
|
336
|
+
var children = size(elementConfig.children) > 0 ? renderElements(elementMap, elementConfig.children) : undefined; //children插槽名称
|
|
337
|
+
|
|
338
|
+
var childrenSlotName = elementConfig.childrenSlotName || "default";
|
|
339
|
+
var validSlots = omit(elementConfig.slots, children ? childrenSlotName : ""); //如果slots注册的是 IElementConfig ,进行转换
|
|
340
|
+
|
|
341
|
+
forEach(keys(validSlots), function (k) {
|
|
342
|
+
var v = validSlots[k]; //IElementConfig
|
|
343
|
+
|
|
344
|
+
if (v && !isFunction(v) && v.elementType) {
|
|
345
|
+
validSlots[k] = function () {
|
|
346
|
+
for (var _len2 = arguments.length, params$ = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
347
|
+
params$[_key2] = arguments[_key2];
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
//如果需要params,在props中注入 params$
|
|
351
|
+
var elementProps = v.needParams ? _objectSpread2(_objectSpread2({}, v.elementProps), {}, {
|
|
352
|
+
params$: params$
|
|
353
|
+
}) : v.elementProps;
|
|
354
|
+
return renderElement(elementMap, _objectSpread2(_objectSpread2({}, v), {}, {
|
|
355
|
+
elementProps: elementProps
|
|
356
|
+
}));
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
return _objectSpread2(_defineProperty({}, childrenSlotName, children ? function () {
|
|
361
|
+
return children;
|
|
362
|
+
} : undefined), validSlots);
|
|
363
|
+
};
|
|
364
|
+
/**
|
|
365
|
+
*
|
|
366
|
+
* @param elementMap
|
|
367
|
+
* @param elementConfig
|
|
368
|
+
*/
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
var renderElement = function renderElement(elementMap, elementConfig) {
|
|
372
|
+
var El = get(elementMap, elementConfig.elementType) || elementConfig.elementType; //如果有highConfig$,包裹一层Wrapper
|
|
373
|
+
|
|
374
|
+
if (elementConfig.highConfig$) {
|
|
375
|
+
return h(Wrapper, {
|
|
376
|
+
key: elementConfig.elementId,
|
|
377
|
+
elementMap: elementMap,
|
|
378
|
+
elementConfig: elementConfig
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
var slots = convertSlots(elementMap, elementConfig);
|
|
383
|
+
var elementProps = convertPropsEl(elementMap, elementConfig);
|
|
384
|
+
return h(El, _objectSpread2({
|
|
385
|
+
key: elementConfig.elementId
|
|
386
|
+
}, elementProps), slots);
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* 获取第一层级属性名
|
|
390
|
+
* 如:['aaa','bbb',...] 中的 'aaa'
|
|
391
|
+
* 如:"aaa.bbb.ccc..." 中的 'aaa'
|
|
392
|
+
*/
|
|
393
|
+
|
|
394
|
+
var getFirstPropName = function getFirstPropName(name) {
|
|
395
|
+
if (isArray(name)) {
|
|
396
|
+
return head(name);
|
|
397
|
+
} else if (isString(name) && name.indexOf(".") > 0) {
|
|
398
|
+
return name.substring(0, name.indexOf("."));
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return name;
|
|
402
|
+
};
|
|
403
|
+
/**
|
|
404
|
+
* 处理highConfig$
|
|
405
|
+
*/
|
|
406
|
+
|
|
407
|
+
var Wrapper = defineComponent({
|
|
408
|
+
props: {
|
|
409
|
+
elementMap: {
|
|
410
|
+
type: Object
|
|
411
|
+
},
|
|
412
|
+
elementConfig: {
|
|
413
|
+
type: Object
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
setup: function setup(props) {
|
|
417
|
+
var _useProModule = useProModule(),
|
|
418
|
+
state = _useProModule.state,
|
|
419
|
+
sendEvent = _useProModule.sendEvent;
|
|
420
|
+
|
|
421
|
+
var elementMap = props.elementMap,
|
|
422
|
+
elementConfig = props.elementConfig;
|
|
423
|
+
var highConfig$ = elementConfig.highConfig$; //转换props
|
|
424
|
+
|
|
425
|
+
var elementProps = convertPropsEl(elementMap, elementConfig); //事件订阅
|
|
426
|
+
|
|
427
|
+
var events = reduce(highConfig$.registerEventList, function (pair, item) {
|
|
428
|
+
return _objectSpread2(_objectSpread2({}, pair), {}, _defineProperty({}, item.name, function () {
|
|
429
|
+
for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
430
|
+
params[_key3] = arguments[_key3];
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
sendEvent({
|
|
434
|
+
type: item.sendEventName || elementConfig.elementId,
|
|
435
|
+
payload: params
|
|
436
|
+
});
|
|
437
|
+
}));
|
|
438
|
+
}, {}); //receiveStateList 订阅
|
|
439
|
+
|
|
440
|
+
var receiveStates = computed(function () {
|
|
441
|
+
if (!highConfig$.registerStateList || size(highConfig$.registerStateList) <= 0) {
|
|
442
|
+
return undefined;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
var changeProps = _objectSpread2({}, elementProps); //赋值 && 返回一级属性名称
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
var firstPropNameList = map(highConfig$.registerStateList, function (item) {
|
|
449
|
+
var targetName = item.mapName || item.name; //从state中取值
|
|
450
|
+
|
|
451
|
+
var value = get(state, item.name); //赋值
|
|
452
|
+
|
|
453
|
+
set(changeProps, targetName, value); //返回一级属性名称
|
|
454
|
+
|
|
455
|
+
return getFirstPropName(targetName);
|
|
456
|
+
});
|
|
457
|
+
return pick(changeProps, firstPropNameList);
|
|
458
|
+
});
|
|
459
|
+
var El = get(elementMap, elementConfig.elementType) || elementConfig.elementType;
|
|
460
|
+
var slots = convertSlots(elementMap, elementConfig);
|
|
461
|
+
return function () {
|
|
462
|
+
//如果标记show$值为false,不渲染组件
|
|
463
|
+
var show$ = get(receiveStates.value, "show$");
|
|
464
|
+
|
|
465
|
+
if (show$ === false) {
|
|
466
|
+
return null;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
return h(El, _objectSpread2(_objectSpread2(_objectSpread2({
|
|
470
|
+
key: elementConfig.elementId
|
|
471
|
+
}, elementProps), omit(receiveStates.value, "show$")), events), slots);
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
|
|
307
476
|
var ProModuleKey = Symbol("pro-module");
|
|
308
477
|
var useProModule = function useProModule() {
|
|
309
478
|
return inject(ProModuleKey);
|
|
@@ -326,32 +495,17 @@ var proModuleProps = function proModuleProps() {
|
|
|
326
495
|
},
|
|
327
496
|
|
|
328
497
|
/**
|
|
329
|
-
*
|
|
330
|
-
*/
|
|
331
|
-
columns: {
|
|
332
|
-
type: Array
|
|
333
|
-
},
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* 配置(动态)
|
|
337
|
-
* columns动态属性兼容
|
|
338
|
-
*/
|
|
339
|
-
columnState: {
|
|
340
|
-
type: Object
|
|
341
|
-
},
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* 展示组件集
|
|
498
|
+
* 组件集
|
|
345
499
|
*/
|
|
346
500
|
elementMap: {
|
|
347
501
|
type: Object
|
|
348
502
|
},
|
|
349
503
|
|
|
350
504
|
/**
|
|
351
|
-
*
|
|
505
|
+
* 组件描述(树)
|
|
352
506
|
*/
|
|
353
|
-
|
|
354
|
-
type:
|
|
507
|
+
elementConfigs: {
|
|
508
|
+
type: Array
|
|
355
509
|
},
|
|
356
510
|
|
|
357
511
|
/**
|
|
@@ -369,25 +523,13 @@ var ProModule = defineComponent({
|
|
|
369
523
|
var slots = _ref.slots,
|
|
370
524
|
expose = _ref.expose;
|
|
371
525
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
return getColumnFormItemName(item);
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
/*********************************** 渲染组件 ***************************************/
|
|
381
|
-
// 获取FormItem VNode
|
|
382
|
-
|
|
383
|
-
var getFormItemVNode = function getFormItemVNode(column) {
|
|
384
|
-
var needRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
385
|
-
return getFormItemEl(props.formElementMap, column, needRules);
|
|
386
|
-
}; // 获取Item VNode
|
|
387
|
-
|
|
526
|
+
/*********************************** render ***************************************/
|
|
527
|
+
var render = function render(elementConfig) {
|
|
528
|
+
if (isArray(elementConfig)) {
|
|
529
|
+
return renderElements(props.elementMap, elementConfig);
|
|
530
|
+
}
|
|
388
531
|
|
|
389
|
-
|
|
390
|
-
return getItemEl(props.elementMap, column, value);
|
|
532
|
+
return renderElement(props.elementMap, elementConfig);
|
|
391
533
|
};
|
|
392
534
|
/*********************************** 事件处理 ***************************************/
|
|
393
535
|
|
|
@@ -403,13 +545,15 @@ var ProModule = defineComponent({
|
|
|
403
545
|
var state = props.state || reactive({});
|
|
404
546
|
|
|
405
547
|
var dispatch = function dispatch(action) {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
548
|
+
var prev = state[action.type];
|
|
549
|
+
var data = isFunction(action.payload) ? action.payload(prev) : action.payload; //如果要更新的属性值是 object ,执行覆盖操作
|
|
550
|
+
|
|
551
|
+
if (isObject(prev)) {
|
|
552
|
+
setReactiveValue(state[action.type], data);
|
|
409
553
|
return;
|
|
410
554
|
}
|
|
411
555
|
|
|
412
|
-
state[action.type] =
|
|
556
|
+
state[action.type] = data;
|
|
413
557
|
};
|
|
414
558
|
/*********************************** request ***************************************/
|
|
415
559
|
|
|
@@ -513,11 +657,7 @@ var ProModule = defineComponent({
|
|
|
513
657
|
}
|
|
514
658
|
}, true);
|
|
515
659
|
provideProModule({
|
|
516
|
-
columns: columns,
|
|
517
|
-
getFormItemVNode: getFormItemVNode,
|
|
518
|
-
getItemVNode: getItemVNode,
|
|
519
660
|
elementMap: props.elementMap,
|
|
520
|
-
formElementMap: props.formElementMap,
|
|
521
661
|
//
|
|
522
662
|
subject$: subject$,
|
|
523
663
|
sendEvent: sendEvent,
|
|
@@ -535,7 +675,7 @@ var ProModule = defineComponent({
|
|
|
535
675
|
return function () {
|
|
536
676
|
var _slots$default;
|
|
537
677
|
|
|
538
|
-
return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
|
|
678
|
+
return createVNode(Fragment, null, [size(props.elementConfigs) > 0 && render(props.elementConfigs), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]);
|
|
539
679
|
};
|
|
540
680
|
}
|
|
541
681
|
});
|
|
@@ -593,26 +733,201 @@ var CurdSubAction;
|
|
|
593
733
|
CurdSubAction["FAIL"] = "FAIL";
|
|
594
734
|
})(CurdSubAction || (CurdSubAction = {}));
|
|
595
735
|
|
|
596
|
-
/**
|
|
597
|
-
* curd 操作模式
|
|
736
|
+
/**
|
|
737
|
+
* curd 操作模式
|
|
738
|
+
*/
|
|
739
|
+
var CurdCurrentMode;
|
|
740
|
+
|
|
741
|
+
(function (CurdCurrentMode) {
|
|
742
|
+
CurdCurrentMode["ADD"] = "ADD";
|
|
743
|
+
CurdCurrentMode["EDIT"] = "EDIT";
|
|
744
|
+
CurdCurrentMode["DETAIL"] = "DETAIL";
|
|
745
|
+
})(CurdCurrentMode || (CurdCurrentMode = {}));
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* curd add 模式下 标记 "确定" "确定并继续" 触发
|
|
749
|
+
*/
|
|
750
|
+
var CurdAddAction;
|
|
751
|
+
|
|
752
|
+
(function (CurdAddAction) {
|
|
753
|
+
CurdAddAction["NORMAL"] = "NORMAL";
|
|
754
|
+
CurdAddAction["CONTINUE"] = "CONTINUE";
|
|
755
|
+
})(CurdAddAction || (CurdAddAction = {}));
|
|
756
|
+
|
|
757
|
+
var treeDefaultNames = {
|
|
758
|
+
children: "children",
|
|
759
|
+
label: "label",
|
|
760
|
+
value: "value"
|
|
761
|
+
};
|
|
762
|
+
/**
|
|
763
|
+
* 根据value从treeData中找到对象
|
|
764
|
+
* @param data
|
|
765
|
+
* @param value
|
|
766
|
+
* @param fieldNames
|
|
767
|
+
* @param cb 对象:同步 方法:回调,可以理解为异步
|
|
768
|
+
*/
|
|
769
|
+
|
|
770
|
+
var findTargetInTree = function findTargetInTree(data, value, fieldNames, cb) {
|
|
771
|
+
var index = findIndex(data, function (item) {
|
|
772
|
+
return get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value) || treeDefaultNames.value) === value;
|
|
773
|
+
});
|
|
774
|
+
|
|
775
|
+
if (index > -1) {
|
|
776
|
+
if (isFunction(cb)) {
|
|
777
|
+
cb(index, data[index], data);
|
|
778
|
+
} else {
|
|
779
|
+
cb.index = index;
|
|
780
|
+
cb.target = data[index];
|
|
781
|
+
cb.list = data;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
forEach(data, function (item) {
|
|
788
|
+
var children = get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || treeDefaultNames.children);
|
|
789
|
+
|
|
790
|
+
if (size(children) > 0) {
|
|
791
|
+
findTargetInTree(children, value, fieldNames, cb);
|
|
792
|
+
}
|
|
793
|
+
});
|
|
794
|
+
};
|
|
795
|
+
/**
|
|
796
|
+
* 根据value从treeData中找出对象及父列表
|
|
797
|
+
* @param data
|
|
798
|
+
* @param value
|
|
799
|
+
* @param fieldNames
|
|
800
|
+
* @param cb
|
|
801
|
+
* @param parent
|
|
802
|
+
*/
|
|
803
|
+
|
|
804
|
+
var findTargetListInTree = function findTargetListInTree(data, value, fieldNames, cb) {
|
|
805
|
+
var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
806
|
+
var target = find(data, function (item) {
|
|
807
|
+
return get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value) || treeDefaultNames.value) === value;
|
|
808
|
+
});
|
|
809
|
+
|
|
810
|
+
if (target) {
|
|
811
|
+
if (isFunction(cb)) {
|
|
812
|
+
cb([].concat(_toConsumableArray(parent), [target]));
|
|
813
|
+
} else {
|
|
814
|
+
cb.list = [].concat(_toConsumableArray(parent), [target]);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
forEach(data, function (item) {
|
|
821
|
+
var children = get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || treeDefaultNames.children);
|
|
822
|
+
|
|
823
|
+
if (size(children) > 0) {
|
|
824
|
+
findTargetListInTree(children, value, fieldNames, cb, [].concat(_toConsumableArray(parent), [item]));
|
|
825
|
+
}
|
|
826
|
+
});
|
|
827
|
+
};
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* 剔除showState或showStateRules规则为!true的值
|
|
831
|
+
* @param values
|
|
832
|
+
* @param showState
|
|
833
|
+
* @param showStateRules
|
|
834
|
+
*/
|
|
835
|
+
|
|
836
|
+
var getValidValues = function getValidValues(values, showState, showStateRules) {
|
|
837
|
+
if (showState) {
|
|
838
|
+
var invalidKeys = filter$1(keys(showState), function (key) {
|
|
839
|
+
return !showState[key];
|
|
840
|
+
});
|
|
841
|
+
return omit(values, invalidKeys);
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
if (showStateRules) {
|
|
845
|
+
var _invalidKeys = filter$1(keys(showStateRules), function (key) {
|
|
846
|
+
return !showStateRules[key](values);
|
|
847
|
+
});
|
|
848
|
+
|
|
849
|
+
return omit(values, _invalidKeys);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
return values;
|
|
853
|
+
};
|
|
854
|
+
/**
|
|
855
|
+
* string类型的path转为arr
|
|
856
|
+
* @param path
|
|
857
|
+
*/
|
|
858
|
+
|
|
859
|
+
var convertPathToList = function convertPathToList(path) {
|
|
860
|
+
if (!path) {
|
|
861
|
+
return undefined;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
if (isArray(path)) {
|
|
865
|
+
return path;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
if (path && isString(path) && path.indexOf(".") > 0) {
|
|
869
|
+
return split(path, ".");
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
return [path];
|
|
873
|
+
};
|
|
874
|
+
/**
|
|
875
|
+
* 将listState 中的数据通过id merge到 list item中
|
|
876
|
+
* ps:数组会替换
|
|
877
|
+
* 注意:mergeWith 会改变原始对象
|
|
878
|
+
* @param list
|
|
879
|
+
* @param listState
|
|
880
|
+
* @param id
|
|
881
|
+
*/
|
|
882
|
+
|
|
883
|
+
var mergeStateToList = function mergeStateToList(list, listState, id) {
|
|
884
|
+
if (!listState || !id) {
|
|
885
|
+
return list;
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
return map(list, function (item) {
|
|
889
|
+
var idName = isFunction(id) ? id(item) : id; //如果listState中有值,merge处理
|
|
890
|
+
|
|
891
|
+
var stateData = get(listState, idName);
|
|
892
|
+
|
|
893
|
+
if (!stateData || isEmpty(stateData) || isFunction(stateData) || !isObject(stateData)) {
|
|
894
|
+
return item;
|
|
895
|
+
} //只有是对象(键值对)才合并
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
return mergeWith(item, stateData, function (objValue, srcValue) {
|
|
899
|
+
//如果是数组,替换
|
|
900
|
+
if (isArray(objValue) || isArray(srcValue)) {
|
|
901
|
+
return srcValue;
|
|
902
|
+
}
|
|
903
|
+
});
|
|
904
|
+
});
|
|
905
|
+
};
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* 唯一id
|
|
598
909
|
*/
|
|
599
|
-
var CurdCurrentMode;
|
|
600
|
-
|
|
601
|
-
(function (CurdCurrentMode) {
|
|
602
|
-
CurdCurrentMode["ADD"] = "ADD";
|
|
603
|
-
CurdCurrentMode["EDIT"] = "EDIT";
|
|
604
|
-
CurdCurrentMode["DETAIL"] = "DETAIL";
|
|
605
|
-
})(CurdCurrentMode || (CurdCurrentMode = {}));
|
|
606
910
|
|
|
607
|
-
|
|
608
|
-
|
|
911
|
+
var generateId = function generateId() {
|
|
912
|
+
return Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
|
|
913
|
+
};
|
|
914
|
+
/**
|
|
915
|
+
* ref 传递
|
|
609
916
|
*/
|
|
610
|
-
var CurdAddAction;
|
|
611
917
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
918
|
+
var createExpose = function createExpose(methods, targetRef) {
|
|
919
|
+
return reduce(methods, function (pair, method) {
|
|
920
|
+
return _objectSpread2(_objectSpread2({}, pair), {}, _defineProperty({}, method, function () {
|
|
921
|
+
var _targetRef$value, _targetRef$value$meth;
|
|
922
|
+
|
|
923
|
+
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
924
|
+
params[_key] = arguments[_key];
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
return (_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 ? void 0 : (_targetRef$value$meth = _targetRef$value[method]) === null || _targetRef$value$meth === void 0 ? void 0 : _targetRef$value$meth.call.apply(_targetRef$value$meth, [_targetRef$value].concat(params));
|
|
928
|
+
}));
|
|
929
|
+
}, {});
|
|
930
|
+
};
|
|
616
931
|
|
|
617
932
|
var defaultPage = {
|
|
618
933
|
page: 1,
|
|
@@ -621,6 +936,28 @@ var defaultPage = {
|
|
|
621
936
|
|
|
622
937
|
var proCurdProps = function proCurdProps() {
|
|
623
938
|
return {
|
|
939
|
+
/**
|
|
940
|
+
* 配置(静态)
|
|
941
|
+
*/
|
|
942
|
+
columns: {
|
|
943
|
+
type: Array
|
|
944
|
+
},
|
|
945
|
+
|
|
946
|
+
/**
|
|
947
|
+
* 配置(动态)
|
|
948
|
+
* columns动态属性兼容
|
|
949
|
+
*/
|
|
950
|
+
columnState: {
|
|
951
|
+
type: Object
|
|
952
|
+
},
|
|
953
|
+
|
|
954
|
+
/**
|
|
955
|
+
* 录入组件集
|
|
956
|
+
*/
|
|
957
|
+
formElementMap: {
|
|
958
|
+
type: Object
|
|
959
|
+
},
|
|
960
|
+
|
|
624
961
|
/**
|
|
625
962
|
* 列表 或 详情 的唯一标识
|
|
626
963
|
*/
|
|
@@ -659,58 +996,67 @@ var Curd = defineComponent({
|
|
|
659
996
|
expose = _ref.expose;
|
|
660
997
|
|
|
661
998
|
var _ref2 = useProModule(),
|
|
662
|
-
|
|
999
|
+
elementMap = _ref2.elementMap,
|
|
663
1000
|
state = _ref2.state,
|
|
664
1001
|
sendEvent = _ref2.sendEvent,
|
|
665
1002
|
sendRequest = _ref2.sendRequest;
|
|
666
1003
|
/**
|
|
667
|
-
*
|
|
668
|
-
* @param list
|
|
669
|
-
* @param propName
|
|
1004
|
+
* columns columnState 合并
|
|
670
1005
|
*/
|
|
671
1006
|
|
|
672
1007
|
|
|
673
|
-
var
|
|
674
|
-
return
|
|
675
|
-
return
|
|
1008
|
+
var columns = computed(function () {
|
|
1009
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1010
|
+
return getColumnFormItemName(item);
|
|
676
1011
|
});
|
|
1012
|
+
});
|
|
1013
|
+
/*********************************** 渲染组件 ***************************************/
|
|
1014
|
+
// 获取FormItem VNode
|
|
1015
|
+
|
|
1016
|
+
var getFormItemVNode = function getFormItemVNode(column) {
|
|
1017
|
+
var needRules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
1018
|
+
return getFormItemEl(props.formElementMap, column, needRules);
|
|
1019
|
+
}; // 获取Item VNode
|
|
1020
|
+
|
|
1021
|
+
|
|
1022
|
+
var getItemVNode = function getItemVNode(column, value) {
|
|
1023
|
+
return getItemEl(elementMap, column, value);
|
|
677
1024
|
};
|
|
678
1025
|
/**
|
|
679
|
-
*
|
|
1026
|
+
* ${signName} 配置为true 会被选择
|
|
1027
|
+
* @param signName
|
|
1028
|
+
* @param opposite 如果为true,未配置(undefined)会被选择
|
|
680
1029
|
*/
|
|
681
1030
|
|
|
682
1031
|
|
|
1032
|
+
var getSignColumns = function getSignColumns(signName, opposite) {
|
|
1033
|
+
var signColumns = filter$1(columns.value, function (item) {
|
|
1034
|
+
var sign = get(item, ["extra", signName]) || get(item, signName);
|
|
1035
|
+
|
|
1036
|
+
if (opposite) {
|
|
1037
|
+
//不为false 即为选中
|
|
1038
|
+
return sign !== false;
|
|
1039
|
+
} //只有true 才为选中
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
return sign;
|
|
1043
|
+
});
|
|
1044
|
+
return sortBy(signColumns, function (item) {
|
|
1045
|
+
return get(item, ["extra", "".concat(signName, "Sort")]) || get(item, "".concat(signName, "Sort"));
|
|
1046
|
+
});
|
|
1047
|
+
};
|
|
1048
|
+
|
|
683
1049
|
var formColumns = computed(function () {
|
|
684
|
-
return
|
|
685
|
-
return !item.hideInForm;
|
|
686
|
-
}), "formSort");
|
|
1050
|
+
return getSignColumns("form", true);
|
|
687
1051
|
});
|
|
688
|
-
/**
|
|
689
|
-
* 非 hideInDetail columns
|
|
690
|
-
*/
|
|
691
|
-
|
|
692
1052
|
var descColumns = computed(function () {
|
|
693
|
-
return
|
|
694
|
-
return !item.hideInDetail;
|
|
695
|
-
}), "descSort");
|
|
1053
|
+
return getSignColumns("detail", true);
|
|
696
1054
|
});
|
|
697
|
-
/**
|
|
698
|
-
* 非 hideInTable columns
|
|
699
|
-
*/
|
|
700
|
-
|
|
701
1055
|
var tableColumns = computed(function () {
|
|
702
|
-
return
|
|
703
|
-
return !item.hideInTable;
|
|
704
|
-
}), "tableSort");
|
|
1056
|
+
return getSignColumns("table", true);
|
|
705
1057
|
});
|
|
706
|
-
/**
|
|
707
|
-
* search columns
|
|
708
|
-
*/
|
|
709
|
-
|
|
710
1058
|
var searchColumns = computed(function () {
|
|
711
|
-
return
|
|
712
|
-
return !!item.search;
|
|
713
|
-
}), "searchSort");
|
|
1059
|
+
return getSignColumns("search");
|
|
714
1060
|
});
|
|
715
1061
|
/******************************** 逻辑 *************************************/
|
|
716
1062
|
//上一次发起列表请求的参数
|
|
@@ -795,6 +1141,13 @@ var Curd = defineComponent({
|
|
|
795
1141
|
return props.modalProps;
|
|
796
1142
|
});
|
|
797
1143
|
provideProCurd({
|
|
1144
|
+
columns: columns,
|
|
1145
|
+
getSignColumns: getSignColumns,
|
|
1146
|
+
getFormItemVNode: getFormItemVNode,
|
|
1147
|
+
getItemVNode: getItemVNode,
|
|
1148
|
+
elementMap: elementMap,
|
|
1149
|
+
formElementMap: props.formElementMap,
|
|
1150
|
+
//
|
|
798
1151
|
rowKey: props.rowKey,
|
|
799
1152
|
curdState: state,
|
|
800
1153
|
formColumns: formColumns,
|
|
@@ -1176,99 +1529,419 @@ var PageCurd = defineComponent({
|
|
|
1176
1529
|
type: "detailData",
|
|
1177
1530
|
payload: props.defaultAddRecord || {}
|
|
1178
1531
|
});
|
|
1179
|
-
} else if (subAction === CurdSubAction.SUCCESS) {
|
|
1180
|
-
if (curdState.addAction === CurdAddAction.CONTINUE) {
|
|
1181
|
-
dispatch({
|
|
1182
|
-
type: "detailData",
|
|
1183
|
-
payload: props.defaultAddRecord || {}
|
|
1184
|
-
});
|
|
1185
|
-
} else {
|
|
1186
|
-
props.routeBack ? props.routeBack(CurdAction.ADD) : router.go(-1);
|
|
1187
|
-
}
|
|
1188
|
-
}
|
|
1189
|
-
};
|
|
1532
|
+
} else if (subAction === CurdSubAction.SUCCESS) {
|
|
1533
|
+
if (curdState.addAction === CurdAddAction.CONTINUE) {
|
|
1534
|
+
dispatch({
|
|
1535
|
+
type: "detailData",
|
|
1536
|
+
payload: props.defaultAddRecord || {}
|
|
1537
|
+
});
|
|
1538
|
+
} else {
|
|
1539
|
+
props.routeBack ? props.routeBack(CurdAction.ADD) : router.go(-1);
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
};
|
|
1543
|
+
|
|
1544
|
+
var dealEdit = function dealEdit(subAction, _ref2) {
|
|
1545
|
+
var record = _ref2.record;
|
|
1546
|
+
|
|
1547
|
+
if (subAction === CurdSubAction.EMIT) {
|
|
1548
|
+
router.push({
|
|
1549
|
+
path: "".concat(route.path, "/edit"),
|
|
1550
|
+
query: pick(record, rowKey)
|
|
1551
|
+
});
|
|
1552
|
+
} else if (subAction === CurdSubAction.PAGE) {
|
|
1553
|
+
dispatch({
|
|
1554
|
+
type: "mode",
|
|
1555
|
+
payload: CurdCurrentMode.EDIT
|
|
1556
|
+
});
|
|
1557
|
+
sendRequest(CurdAction.DETAIL, route.query, rowKey);
|
|
1558
|
+
} else if (subAction === CurdSubAction.SUCCESS) {
|
|
1559
|
+
props.routeBack ? props.routeBack(CurdAction.EDIT) : router.go(-1);
|
|
1560
|
+
}
|
|
1561
|
+
};
|
|
1562
|
+
|
|
1563
|
+
useModuleEvent(function (_ref3) {
|
|
1564
|
+
var type = _ref3.type,
|
|
1565
|
+
payload = _ref3.payload,
|
|
1566
|
+
source = _ref3.source;
|
|
1567
|
+
|
|
1568
|
+
if (source) {
|
|
1569
|
+
return;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
var action = type;
|
|
1573
|
+
var subAction = payload === null || payload === void 0 ? void 0 : payload.type;
|
|
1574
|
+
var record = payload === null || payload === void 0 ? void 0 : payload.record;
|
|
1575
|
+
|
|
1576
|
+
if (action === RequestAction.Success) {
|
|
1577
|
+
//覆盖
|
|
1578
|
+
action = get(payload, ["requestOpts", "action"]);
|
|
1579
|
+
subAction = CurdSubAction.SUCCESS;
|
|
1580
|
+
}
|
|
1581
|
+
|
|
1582
|
+
switch (action) {
|
|
1583
|
+
case CurdAction.LIST:
|
|
1584
|
+
dealList(subAction);
|
|
1585
|
+
break;
|
|
1586
|
+
|
|
1587
|
+
case CurdAction.DETAIL:
|
|
1588
|
+
dealDetail(subAction, {
|
|
1589
|
+
record: record
|
|
1590
|
+
});
|
|
1591
|
+
break;
|
|
1592
|
+
|
|
1593
|
+
case CurdAction.ADD:
|
|
1594
|
+
dealAdd(subAction);
|
|
1595
|
+
break;
|
|
1596
|
+
|
|
1597
|
+
case CurdAction.EDIT:
|
|
1598
|
+
dealEdit(subAction, {
|
|
1599
|
+
record: record
|
|
1600
|
+
});
|
|
1601
|
+
break;
|
|
1602
|
+
}
|
|
1603
|
+
});
|
|
1604
|
+
return function () {
|
|
1605
|
+
return null;
|
|
1606
|
+
};
|
|
1607
|
+
}
|
|
1608
|
+
});
|
|
1609
|
+
var ProPageCurd = defineComponent({
|
|
1610
|
+
props: _objectSpread2(_objectSpread2({}, ProCurd.props), PageCurd.props),
|
|
1611
|
+
setup: function setup(props, _ref4) {
|
|
1612
|
+
var slots = _ref4.slots;
|
|
1613
|
+
var invalidKeys = keys(PageCurd.props);
|
|
1614
|
+
return function () {
|
|
1615
|
+
var _slots$default;
|
|
1616
|
+
|
|
1617
|
+
return createVNode(ProCurd, omit(props, invalidKeys), {
|
|
1618
|
+
"default": function _default() {
|
|
1619
|
+
return [createVNode(PageCurd, pick(props, invalidKeys), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1620
|
+
}
|
|
1621
|
+
});
|
|
1622
|
+
};
|
|
1623
|
+
}
|
|
1624
|
+
});
|
|
1625
|
+
|
|
1626
|
+
function _isSlot(s) {
|
|
1627
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
var createCurdDesc = function createCurdDesc(Descriptions, DescriptionsItem) {
|
|
1631
|
+
return defineComponent({
|
|
1632
|
+
props: _objectSpread2(_objectSpread2({}, Descriptions.props), {}, {
|
|
1633
|
+
//重写Item content
|
|
1634
|
+
renderItem: {
|
|
1635
|
+
type: Function
|
|
1636
|
+
}
|
|
1637
|
+
}),
|
|
1638
|
+
setup: function setup(props, _ref) {
|
|
1639
|
+
var slots = _ref.slots;
|
|
1640
|
+
|
|
1641
|
+
var _useProCurd = useProCurd(),
|
|
1642
|
+
getItemVNode = _useProCurd.getItemVNode,
|
|
1643
|
+
curdState = _useProCurd.curdState,
|
|
1644
|
+
descColumns = _useProCurd.descColumns;
|
|
1645
|
+
|
|
1646
|
+
var descVNodes = computed(function () {
|
|
1647
|
+
return map(descColumns.value, function (item) {
|
|
1648
|
+
var _slot;
|
|
1649
|
+
|
|
1650
|
+
var _props$renderItem;
|
|
1651
|
+
|
|
1652
|
+
var vn = (_props$renderItem = props.renderItem) === null || _props$renderItem === void 0 ? void 0 : _props$renderItem.call(props, item);
|
|
1653
|
+
|
|
1654
|
+
if (vn) {
|
|
1655
|
+
return vn;
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
var value = get(curdState.detailData, item.dataIndex);
|
|
1659
|
+
return createVNode(DescriptionsItem, mergeProps({
|
|
1660
|
+
"key": item.dataIndex,
|
|
1661
|
+
"label": item.title
|
|
1662
|
+
}, get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
|
|
1663
|
+
"default": function _default() {
|
|
1664
|
+
return [_slot];
|
|
1665
|
+
}
|
|
1666
|
+
});
|
|
1667
|
+
});
|
|
1668
|
+
});
|
|
1669
|
+
return function () {
|
|
1670
|
+
var _slots$start, _slots$default;
|
|
1671
|
+
|
|
1672
|
+
return createVNode(Descriptions, props, _objectSpread2({
|
|
1673
|
+
"default": function _default() {
|
|
1674
|
+
return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), descVNodes.value, (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1675
|
+
}
|
|
1676
|
+
}, omit(slots, "default", "start")));
|
|
1677
|
+
};
|
|
1678
|
+
}
|
|
1679
|
+
});
|
|
1680
|
+
};
|
|
1681
|
+
|
|
1682
|
+
var proCurdAddOrEditProps = function proCurdAddOrEditProps() {
|
|
1683
|
+
return {
|
|
1684
|
+
//是否使用operate bar
|
|
1685
|
+
operateBar: {
|
|
1686
|
+
type: Boolean,
|
|
1687
|
+
"default": true
|
|
1688
|
+
},
|
|
1689
|
+
//显示 确定并继续 按钮
|
|
1690
|
+
showContinueAdd: {
|
|
1691
|
+
type: Boolean,
|
|
1692
|
+
"default": false
|
|
1693
|
+
},
|
|
1694
|
+
//
|
|
1695
|
+
okText: {
|
|
1696
|
+
type: String,
|
|
1697
|
+
"default": "确定"
|
|
1698
|
+
},
|
|
1699
|
+
okButtonProps: {
|
|
1700
|
+
type: Object
|
|
1701
|
+
},
|
|
1702
|
+
//
|
|
1703
|
+
continueText: {
|
|
1704
|
+
type: String,
|
|
1705
|
+
"default": "确定并继续"
|
|
1706
|
+
},
|
|
1707
|
+
continueButtonProps: {
|
|
1708
|
+
type: Object
|
|
1709
|
+
}
|
|
1710
|
+
};
|
|
1711
|
+
};
|
|
1712
|
+
|
|
1713
|
+
var createCurdForm = function createCurdForm(Form, Button, convertFormProps) {
|
|
1714
|
+
return defineComponent({
|
|
1715
|
+
props: _objectSpread2(_objectSpread2({}, Form.props), proCurdAddOrEditProps()),
|
|
1716
|
+
setup: function setup(props, _ref) {
|
|
1717
|
+
var slots = _ref.slots;
|
|
1718
|
+
|
|
1719
|
+
var _useProCurd = useProCurd(),
|
|
1720
|
+
elementMap = _useProCurd.elementMap,
|
|
1721
|
+
formElementMap = _useProCurd.formElementMap,
|
|
1722
|
+
curdState = _useProCurd.curdState,
|
|
1723
|
+
formColumns = _useProCurd.formColumns,
|
|
1724
|
+
sendCurdEvent = _useProCurd.sendCurdEvent;
|
|
1725
|
+
|
|
1726
|
+
var formRef = ref();
|
|
1727
|
+
|
|
1728
|
+
var handleFinish = function handleFinish(values) {
|
|
1729
|
+
if (curdState.mode === CurdCurrentMode.EDIT) {
|
|
1730
|
+
//edit
|
|
1731
|
+
sendCurdEvent({
|
|
1732
|
+
action: CurdAction.EDIT,
|
|
1733
|
+
type: CurdSubAction.EXECUTE,
|
|
1734
|
+
values: values
|
|
1735
|
+
});
|
|
1736
|
+
} else {
|
|
1737
|
+
//add
|
|
1738
|
+
sendCurdEvent({
|
|
1739
|
+
action: CurdAction.ADD,
|
|
1740
|
+
type: CurdSubAction.EXECUTE,
|
|
1741
|
+
values: values
|
|
1742
|
+
});
|
|
1743
|
+
}
|
|
1744
|
+
};
|
|
1745
|
+
|
|
1746
|
+
var handleAdd = function handleAdd() {
|
|
1747
|
+
var _formRef$value;
|
|
1748
|
+
|
|
1749
|
+
curdState.addAction = CurdAddAction.NORMAL;
|
|
1750
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
1751
|
+
};
|
|
1752
|
+
|
|
1753
|
+
var handleContinueAdd = function handleContinueAdd() {
|
|
1754
|
+
var _formRef$value2;
|
|
1755
|
+
|
|
1756
|
+
curdState.addAction = CurdAddAction.CONTINUE;
|
|
1757
|
+
(_formRef$value2 = formRef.value) === null || _formRef$value2 === void 0 ? void 0 : _formRef$value2.submit();
|
|
1758
|
+
};
|
|
1759
|
+
|
|
1760
|
+
return function () {
|
|
1761
|
+
var _slots$divide, _slots$operateStart, _slots$operateCenter, _slots$operateEnd, _slots$default;
|
|
1762
|
+
|
|
1763
|
+
return createVNode(Form, mergeProps({
|
|
1764
|
+
"ref": formRef
|
|
1765
|
+
}, props, {
|
|
1766
|
+
"elementMap": props.elementMap || elementMap,
|
|
1767
|
+
"formElementMap": props.formElementMap || formElementMap,
|
|
1768
|
+
"columns": formColumns.value,
|
|
1769
|
+
"model": curdState.detailData,
|
|
1770
|
+
"readonly": curdState.mode === CurdCurrentMode.DETAIL,
|
|
1771
|
+
"onFinish": handleFinish
|
|
1772
|
+
}, convertFormProps === null || convertFormProps === void 0 ? void 0 : convertFormProps(curdState)), _objectSpread2({
|
|
1773
|
+
"default": function _default() {
|
|
1774
|
+
return [(_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), props.operateBar && createVNode("div", {
|
|
1775
|
+
"class": "pro-curd-form-operate"
|
|
1776
|
+
}, [(_slots$operateStart = slots.operateStart) === null || _slots$operateStart === void 0 ? void 0 : _slots$operateStart.call(slots), curdState.mode !== CurdCurrentMode.DETAIL && createVNode(Button, mergeProps({
|
|
1777
|
+
"onClick": handleAdd
|
|
1778
|
+
}, props.okButtonProps, {
|
|
1779
|
+
"loading": curdState.operateLoading
|
|
1780
|
+
}), {
|
|
1781
|
+
"default": function _default() {
|
|
1782
|
+
return [props.okText];
|
|
1783
|
+
}
|
|
1784
|
+
}), (_slots$operateCenter = slots.operateCenter) === null || _slots$operateCenter === void 0 ? void 0 : _slots$operateCenter.call(slots), props.showContinueAdd && curdState.mode === CurdCurrentMode.ADD && createVNode(Button, mergeProps({
|
|
1785
|
+
"onClick": handleContinueAdd
|
|
1786
|
+
}, props.continueButtonProps, {
|
|
1787
|
+
"loading": curdState.operateLoading
|
|
1788
|
+
}), {
|
|
1789
|
+
"default": function _default() {
|
|
1790
|
+
return [props.continueText];
|
|
1791
|
+
}
|
|
1792
|
+
}), (_slots$operateEnd = slots.operateEnd) === null || _slots$operateEnd === void 0 ? void 0 : _slots$operateEnd.call(slots)]), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1793
|
+
}
|
|
1794
|
+
}, omit(slots, "default", "divide", "operateStart", "operateCenter", "operateEnd")));
|
|
1795
|
+
};
|
|
1796
|
+
}
|
|
1797
|
+
});
|
|
1798
|
+
};
|
|
1799
|
+
|
|
1800
|
+
var proCurdListProps = function proCurdListProps() {
|
|
1801
|
+
return {
|
|
1802
|
+
/**
|
|
1803
|
+
* extra 是否放到SearchForm中
|
|
1804
|
+
*/
|
|
1805
|
+
extraInSearch: {
|
|
1806
|
+
type: Boolean,
|
|
1807
|
+
"default": undefined
|
|
1808
|
+
},
|
|
1809
|
+
//search
|
|
1810
|
+
searchProps: {
|
|
1811
|
+
type: Object
|
|
1812
|
+
},
|
|
1813
|
+
//table
|
|
1814
|
+
tableProps: {
|
|
1815
|
+
type: Object
|
|
1816
|
+
},
|
|
1817
|
+
//pageState
|
|
1818
|
+
pageState: {
|
|
1819
|
+
type: Object
|
|
1820
|
+
}
|
|
1821
|
+
};
|
|
1822
|
+
};
|
|
1823
|
+
|
|
1824
|
+
var createCurdList = function createCurdList(SearchForm, Table) {
|
|
1825
|
+
return defineComponent({
|
|
1826
|
+
props: _objectSpread2({}, proCurdListProps()),
|
|
1827
|
+
setup: function setup(props, _ref) {
|
|
1828
|
+
var slots = _ref.slots;
|
|
1829
|
+
|
|
1830
|
+
var _useProCurd = useProCurd(),
|
|
1831
|
+
elementMap = _useProCurd.elementMap,
|
|
1832
|
+
formElementMap = _useProCurd.formElementMap,
|
|
1833
|
+
curdState = _useProCurd.curdState,
|
|
1834
|
+
searchColumns = _useProCurd.searchColumns,
|
|
1835
|
+
tableColumns = _useProCurd.tableColumns,
|
|
1836
|
+
getOperate = _useProCurd.getOperate,
|
|
1837
|
+
sendCurdEvent = _useProCurd.sendCurdEvent;
|
|
1838
|
+
/******************* search pagination ********************/
|
|
1839
|
+
|
|
1840
|
+
|
|
1841
|
+
var pageState = props.pageState || reactive(_objectSpread2({}, defaultPage));
|
|
1842
|
+
var prevValues;
|
|
1843
|
+
|
|
1844
|
+
var handleSearch = function handleSearch() {
|
|
1845
|
+
sendCurdEvent({
|
|
1846
|
+
action: CurdAction.LIST,
|
|
1847
|
+
type: CurdSubAction.EMIT,
|
|
1848
|
+
values: _objectSpread2(_objectSpread2({}, prevValues), pageState)
|
|
1849
|
+
});
|
|
1850
|
+
};
|
|
1190
1851
|
|
|
1191
|
-
|
|
1192
|
-
|
|
1852
|
+
var executeSearchWithResetPage = function executeSearchWithResetPage(values) {
|
|
1853
|
+
prevValues = values;
|
|
1854
|
+
pageState.page = 1;
|
|
1855
|
+
handleSearch();
|
|
1856
|
+
};
|
|
1857
|
+
/******************* table ********************/
|
|
1193
1858
|
|
|
1194
|
-
if (subAction === CurdSubAction.EMIT) {
|
|
1195
|
-
router.push({
|
|
1196
|
-
path: "".concat(route.path, "/edit"),
|
|
1197
|
-
query: pick(record, rowKey)
|
|
1198
|
-
});
|
|
1199
|
-
} else if (subAction === CurdSubAction.PAGE) {
|
|
1200
|
-
dispatch({
|
|
1201
|
-
type: "mode",
|
|
1202
|
-
payload: CurdCurrentMode.EDIT
|
|
1203
|
-
});
|
|
1204
|
-
sendRequest(CurdAction.DETAIL, route.query, rowKey);
|
|
1205
|
-
} else if (subAction === CurdSubAction.SUCCESS) {
|
|
1206
|
-
props.routeBack ? props.routeBack(CurdAction.EDIT) : router.go(-1);
|
|
1207
|
-
}
|
|
1208
|
-
};
|
|
1209
1859
|
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
payload = _ref3.payload,
|
|
1213
|
-
source = _ref3.source;
|
|
1860
|
+
var createTableItem = function createTableItem(action) {
|
|
1861
|
+
var operate = getOperate(action);
|
|
1214
1862
|
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1863
|
+
var item = _objectSpread2(_objectSpread2({}, pick(operate, "label", "element", "disabled", "sort", "onClick")), {}, {
|
|
1864
|
+
show: !isUndefined(operate === null || operate === void 0 ? void 0 : operate.show) ? operate === null || operate === void 0 ? void 0 : operate.show : false,
|
|
1865
|
+
value: action
|
|
1866
|
+
});
|
|
1218
1867
|
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1868
|
+
if (!item.onClick) {
|
|
1869
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
1870
|
+
onClick: function onClick(record) {
|
|
1871
|
+
//默认发送事件
|
|
1872
|
+
sendCurdEvent({
|
|
1873
|
+
action: action,
|
|
1874
|
+
type: CurdSubAction.EMIT,
|
|
1875
|
+
record: record
|
|
1876
|
+
});
|
|
1877
|
+
}
|
|
1878
|
+
});
|
|
1879
|
+
}
|
|
1222
1880
|
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
action = get(payload, ["requestOpts", "action"]);
|
|
1226
|
-
subAction = CurdSubAction.SUCCESS;
|
|
1227
|
-
}
|
|
1881
|
+
return item;
|
|
1882
|
+
}; //table操作栏 items
|
|
1228
1883
|
|
|
1229
|
-
switch (action) {
|
|
1230
|
-
case CurdAction.LIST:
|
|
1231
|
-
dealList(subAction);
|
|
1232
|
-
break;
|
|
1233
1884
|
|
|
1234
|
-
|
|
1235
|
-
dealDetail(subAction, {
|
|
1236
|
-
record: record
|
|
1237
|
-
});
|
|
1238
|
-
break;
|
|
1885
|
+
var tableOperateItems = [createTableItem(CurdAction.DETAIL), createTableItem(CurdAction.EDIT), createTableItem(CurdAction.DELETE)]; //新配置的operate item,添加默认发送事件方法
|
|
1239
1886
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1887
|
+
var convertOperateItems = function convertOperateItems(list) {
|
|
1888
|
+
return map(list, function (item) {
|
|
1889
|
+
if (!item.onClick) {
|
|
1890
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
1891
|
+
onClick: function onClick(record) {
|
|
1892
|
+
sendCurdEvent({
|
|
1893
|
+
action: "operate",
|
|
1894
|
+
type: item.value,
|
|
1895
|
+
record: record
|
|
1896
|
+
});
|
|
1897
|
+
}
|
|
1898
|
+
});
|
|
1899
|
+
}
|
|
1243
1900
|
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
});
|
|
1248
|
-
break;
|
|
1249
|
-
}
|
|
1250
|
-
});
|
|
1251
|
-
return function () {
|
|
1252
|
-
return null;
|
|
1253
|
-
};
|
|
1254
|
-
}
|
|
1255
|
-
});
|
|
1256
|
-
var ProPageCurd = defineComponent({
|
|
1257
|
-
props: _objectSpread2(_objectSpread2({}, ProCurd.props), PageCurd.props),
|
|
1258
|
-
setup: function setup(props, _ref4) {
|
|
1259
|
-
var slots = _ref4.slots;
|
|
1260
|
-
var invalidKeys = keys(PageCurd.props);
|
|
1261
|
-
return function () {
|
|
1262
|
-
var _slots$default;
|
|
1901
|
+
return item;
|
|
1902
|
+
});
|
|
1903
|
+
};
|
|
1263
1904
|
|
|
1264
|
-
return
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1905
|
+
return function () {
|
|
1906
|
+
var _props$searchProps, _slots$divide, _curdState$listData, _slots$divide2, _slots$footerStart, _slots$pagination, _curdState$listData2, _slots$footerEnd;
|
|
1907
|
+
|
|
1908
|
+
var tableProps = props.tableProps;
|
|
1909
|
+
var extra = slots.extra ? createVNode("div", {
|
|
1910
|
+
"class": "pro-curd-list-extra"
|
|
1911
|
+
}, [slots.extra()]) : null;
|
|
1912
|
+
return createVNode(Fragment, null, [createVNode(SearchForm, mergeProps({
|
|
1913
|
+
"formElementMap": formElementMap
|
|
1914
|
+
}, omit(props.searchProps, "slots"), {
|
|
1915
|
+
"columns": searchColumns.value,
|
|
1916
|
+
"onFinish": executeSearchWithResetPage
|
|
1917
|
+
}), _objectSpread2({
|
|
1918
|
+
"default": function _default() {
|
|
1919
|
+
return [props.extraInSearch && extra];
|
|
1920
|
+
}
|
|
1921
|
+
}, (_props$searchProps = props.searchProps) === null || _props$searchProps === void 0 ? void 0 : _props$searchProps.slots)), (_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), !props.extraInSearch && extra, slots.table ? slots.table() : createVNode(Table, mergeProps({
|
|
1922
|
+
"elementMap": elementMap
|
|
1923
|
+
}, omit(tableProps, "slots", "operate"), {
|
|
1924
|
+
"operate": mergeWith({
|
|
1925
|
+
items: tableOperateItems
|
|
1926
|
+
}, tableProps === null || tableProps === void 0 ? void 0 : tableProps.operate, function (objValue, srcValue) {
|
|
1927
|
+
if (isArray(objValue) && isArray(srcValue)) {
|
|
1928
|
+
return concat(objValue, convertOperateItems(srcValue));
|
|
1929
|
+
}
|
|
1930
|
+
}),
|
|
1931
|
+
"paginationState": {
|
|
1932
|
+
page: pageState.page,
|
|
1933
|
+
pageSize: pageState.pageSize
|
|
1934
|
+
},
|
|
1935
|
+
"columns": tableColumns.value,
|
|
1936
|
+
"loading": curdState.listLoading,
|
|
1937
|
+
"dataSource": (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
|
|
1938
|
+
}), 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", {
|
|
1939
|
+
"class": "pro-curd-list-footer"
|
|
1940
|
+
}, [(_slots$footerStart = slots.footerStart) === null || _slots$footerStart === void 0 ? void 0 : _slots$footerStart.call(slots), (_slots$pagination = slots.pagination) === null || _slots$pagination === void 0 ? void 0 : _slots$pagination.call(slots, pageState, (_curdState$listData2 = curdState.listData) === null || _curdState$listData2 === void 0 ? void 0 : _curdState$listData2.total, handleSearch), (_slots$footerEnd = slots.footerEnd) === null || _slots$footerEnd === void 0 ? void 0 : _slots$footerEnd.call(slots)])]);
|
|
1941
|
+
};
|
|
1942
|
+
}
|
|
1943
|
+
});
|
|
1944
|
+
};
|
|
1272
1945
|
|
|
1273
1946
|
var ProFormKey = Symbol("pro-form");
|
|
1274
1947
|
var useProForm = function useProForm() {
|
|
@@ -1368,65 +2041,120 @@ var proFormProps = function proFormProps() {
|
|
|
1368
2041
|
};
|
|
1369
2042
|
};
|
|
1370
2043
|
|
|
1371
|
-
var
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
2044
|
+
var createForm = function createForm(Form, Grid) {
|
|
2045
|
+
return defineComponent({
|
|
2046
|
+
inheritAttrs: false,
|
|
2047
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Form.props), proFormProps()), omit(Grid.props, "items")),
|
|
2048
|
+
setup: function setup(props, _ref) {
|
|
2049
|
+
var slots = _ref.slots,
|
|
2050
|
+
emit = _ref.emit,
|
|
2051
|
+
expose = _ref.expose,
|
|
2052
|
+
attrs = _ref.attrs;
|
|
2053
|
+
var formState = props.model || reactive({}); //组件状态相关
|
|
2054
|
+
|
|
2055
|
+
var showState = props.showState || reactive({});
|
|
2056
|
+
var readonlyState = props.readonlyState || reactive({});
|
|
2057
|
+
var disableState = props.disableState || reactive({}); //formState改变情况下,更新 showState,readonlyState,disableState状态
|
|
2058
|
+
|
|
2059
|
+
useEffect(function () {
|
|
2060
|
+
if (props.showStateRules) {
|
|
2061
|
+
forEach(props.showStateRules, function (fn, key) {
|
|
2062
|
+
showState[key] = fn(formState);
|
|
2063
|
+
});
|
|
2064
|
+
}
|
|
1376
2065
|
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
2066
|
+
if (props.readonlyStateRules) {
|
|
2067
|
+
forEach(props.readonlyStateRules, function (fn, key) {
|
|
2068
|
+
readonlyState[key] = fn(formState);
|
|
2069
|
+
});
|
|
2070
|
+
}
|
|
1380
2071
|
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
}
|
|
1386
|
-
}
|
|
2072
|
+
if (props.disableStateRules) {
|
|
2073
|
+
forEach(props.disableStateRules, function (fn, key) {
|
|
2074
|
+
disableState[key] = fn(formState);
|
|
2075
|
+
});
|
|
2076
|
+
}
|
|
2077
|
+
}, formState); //readonly
|
|
1387
2078
|
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
});
|
|
1392
|
-
}
|
|
2079
|
+
var readonly = computed(function () {
|
|
2080
|
+
return props.readonly;
|
|
2081
|
+
}); //columns合并
|
|
1393
2082
|
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
2083
|
+
var columns = computed(function () {
|
|
2084
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
2085
|
+
return getColumnFormItemName(item);
|
|
1397
2086
|
});
|
|
1398
|
-
}
|
|
1399
|
-
}, formState); //转换为ref对象
|
|
1400
|
-
|
|
1401
|
-
var readonly = computed(function () {
|
|
1402
|
-
return props.readonly;
|
|
1403
|
-
});
|
|
1404
|
-
var columns = computed(function () {
|
|
1405
|
-
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1406
|
-
return getColumnFormItemName(item);
|
|
1407
2087
|
});
|
|
1408
|
-
});
|
|
1409
|
-
provideProForm(_objectSpread2({
|
|
1410
|
-
formState: formState,
|
|
1411
|
-
showState: showState,
|
|
1412
|
-
readonlyState: readonlyState,
|
|
1413
|
-
disableState: disableState,
|
|
1414
|
-
//
|
|
1415
|
-
elementMap: props.elementMap,
|
|
1416
|
-
formElementMap: props.formElementMap,
|
|
1417
|
-
//
|
|
1418
|
-
readonly: readonly,
|
|
1419
|
-
//
|
|
1420
|
-
columns: columns
|
|
1421
|
-
}, props.provideExtra));
|
|
1422
|
-
return function () {
|
|
1423
|
-
var _slots$default;
|
|
1424
2088
|
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
}
|
|
2089
|
+
var handleFinish = function handleFinish(values) {
|
|
2090
|
+
//删除不显示的值再触发事件
|
|
2091
|
+
var showValues = getValidValues(values, showState, props.showStateRules);
|
|
2092
|
+
emit("finish", showValues, values);
|
|
2093
|
+
};
|
|
2094
|
+
|
|
2095
|
+
var formRef = ref();
|
|
2096
|
+
expose({
|
|
2097
|
+
submit: function submit() {
|
|
2098
|
+
var _formRef$value;
|
|
2099
|
+
|
|
2100
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
2101
|
+
},
|
|
2102
|
+
resetFields: function resetFields() {
|
|
2103
|
+
var _formRef$value2;
|
|
2104
|
+
|
|
2105
|
+
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2106
|
+
params[_key] = arguments[_key];
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2109
|
+
(_formRef$value2 = formRef.value) === null || _formRef$value2 === void 0 ? void 0 : _formRef$value2.resetFields.apply(_formRef$value2, params);
|
|
2110
|
+
}
|
|
2111
|
+
});
|
|
2112
|
+
provideProForm(_objectSpread2({
|
|
2113
|
+
formState: formState,
|
|
2114
|
+
showState: showState,
|
|
2115
|
+
readonlyState: readonlyState,
|
|
2116
|
+
disableState: disableState,
|
|
2117
|
+
//
|
|
2118
|
+
elementMap: props.elementMap,
|
|
2119
|
+
formElementMap: props.formElementMap,
|
|
2120
|
+
//
|
|
2121
|
+
readonly: readonly,
|
|
2122
|
+
//
|
|
2123
|
+
columns: columns,
|
|
2124
|
+
//
|
|
2125
|
+
formRef: formRef
|
|
2126
|
+
}, props.provideExtra));
|
|
2127
|
+
var invalidKeys = keys(proFormProps());
|
|
2128
|
+
var gridKeys = keys(omit(Grid.props, "items"));
|
|
2129
|
+
return function () {
|
|
2130
|
+
var _slots$start, _slots$default;
|
|
2131
|
+
|
|
2132
|
+
return createVNode(Form, mergeProps({
|
|
2133
|
+
"ref": formRef
|
|
2134
|
+
}, omit(attrs, "onFinish"), omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), _toConsumableArray(gridKeys), ["onFinish"])), {
|
|
2135
|
+
"model": formState,
|
|
2136
|
+
"onFinish": handleFinish
|
|
2137
|
+
}), _objectSpread2({
|
|
2138
|
+
"default": function _default() {
|
|
2139
|
+
return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), props.formElementMap && size(columns.value) > 0 && createVNode(Fragment, null, [props.row ? createVNode(Grid, {
|
|
2140
|
+
"row": props.row,
|
|
2141
|
+
"col": props.col,
|
|
2142
|
+
"items": map(columns.value, function (item) {
|
|
2143
|
+
return {
|
|
2144
|
+
rowKey: getColumnFormItemName(item),
|
|
2145
|
+
vNode: getFormItemEl(props.formElementMap, item, props.needRules),
|
|
2146
|
+
col: get(item, ["extra", "col"])
|
|
2147
|
+
};
|
|
2148
|
+
})
|
|
2149
|
+
}, null) : map(columns.value, function (item) {
|
|
2150
|
+
return getFormItemEl(props.formElementMap, item, props.needRules);
|
|
2151
|
+
})]), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
2152
|
+
}
|
|
2153
|
+
}, omit(slots, "default")));
|
|
2154
|
+
};
|
|
2155
|
+
}
|
|
2156
|
+
});
|
|
2157
|
+
};
|
|
1430
2158
|
|
|
1431
2159
|
var SearchMode;
|
|
1432
2160
|
|
|
@@ -1475,6 +2203,11 @@ var proSearchFormProps = function proSearchFormProps() {
|
|
|
1475
2203
|
debounceKeys: {
|
|
1476
2204
|
type: Array
|
|
1477
2205
|
},
|
|
2206
|
+
//默认 valueType 为 text 的控件会debounce处理
|
|
2207
|
+
debounceTypes: {
|
|
2208
|
+
type: Array,
|
|
2209
|
+
"default": ["text"]
|
|
2210
|
+
},
|
|
1478
2211
|
debounceTime: {
|
|
1479
2212
|
type: Number,
|
|
1480
2213
|
"default": 800
|
|
@@ -1486,62 +2219,74 @@ var proSearchFormProps = function proSearchFormProps() {
|
|
|
1486
2219
|
* 该组件只是个模式,最终返回null,不做任何渲染,应配合着ProForm的包装类一起使用
|
|
1487
2220
|
* 针对传入的model(监听对象)做相应的finish(回调)处理
|
|
1488
2221
|
*/
|
|
1489
|
-
var
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
var
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
2222
|
+
var createSearchForm = function createSearchForm(Form, Props) {
|
|
2223
|
+
return defineComponent({
|
|
2224
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Form.props), Props), proSearchFormProps()),
|
|
2225
|
+
setup: function setup(props, _ref) {
|
|
2226
|
+
var slots = _ref.slots;
|
|
2227
|
+
var formState = props.model || reactive({});
|
|
2228
|
+
var valueTypeSet = new Set(props.debounceTypes); //根据column valueType 算出默认需要debounce处理的属性集合
|
|
2229
|
+
|
|
2230
|
+
var defaultDebounceKeys = map(filter$1(props.columns, function (column) {
|
|
2231
|
+
var valueType = getColumnValueType(column); //默认input组件的触发事件需要debounce处理
|
|
2232
|
+
|
|
2233
|
+
return valueTypeSet.has(valueType);
|
|
2234
|
+
}), function (column) {
|
|
2235
|
+
return getColumnFormItemName(column);
|
|
2236
|
+
});
|
|
2237
|
+
var formRef = ref();
|
|
1501
2238
|
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
};
|
|
2239
|
+
var handleFinish = function handleFinish() {
|
|
2240
|
+
var _formRef$value;
|
|
1505
2241
|
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
}, props.debounceTime); //初始化
|
|
2242
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
2243
|
+
};
|
|
1509
2244
|
|
|
1510
|
-
|
|
1511
|
-
if (props.initEmit) {
|
|
2245
|
+
var debounceFinish = debounce(function () {
|
|
1512
2246
|
handleFinish();
|
|
1513
|
-
}
|
|
1514
|
-
}, []);
|
|
2247
|
+
}, props.debounceTime); //初始化
|
|
1515
2248
|
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
2249
|
+
useEffect(function () {
|
|
2250
|
+
if (props.initEmit) {
|
|
2251
|
+
handleFinish();
|
|
2252
|
+
}
|
|
2253
|
+
}, []);
|
|
1521
2254
|
|
|
2255
|
+
var isDebounceDataChange = function isDebounceDataChange(state, prevState, debounceKeys) {
|
|
2256
|
+
return some(debounceKeys, function (key) {
|
|
2257
|
+
return get(state, key) !== get(prevState, key);
|
|
2258
|
+
});
|
|
2259
|
+
}; //监听
|
|
1522
2260
|
|
|
1523
|
-
useWatch(function (state, prevState) {
|
|
1524
|
-
if (props.searchMode !== SearchMode.AUTO) {
|
|
1525
|
-
return;
|
|
1526
|
-
} //如果改变的值中包括debounceKeys中注册的 延时触发
|
|
1527
2261
|
|
|
2262
|
+
useWatch(function (state, prevState) {
|
|
2263
|
+
if (props.searchMode !== SearchMode.AUTO) {
|
|
2264
|
+
return;
|
|
2265
|
+
} //如果改变的值中包括debounceKeys中注册的 延时触发
|
|
1528
2266
|
|
|
1529
|
-
var debounceKeys = size(props.debounceKeys) > 0 ? props.debounceKeys : defaultDebounceKeys;
|
|
1530
2267
|
|
|
1531
|
-
|
|
1532
|
-
debounceFinish();
|
|
1533
|
-
return;
|
|
1534
|
-
}
|
|
2268
|
+
var debounceKeys = size(props.debounceKeys) > 0 ? props.debounceKeys : defaultDebounceKeys;
|
|
1535
2269
|
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
});
|
|
2270
|
+
if (size(debounceKeys) > 0 && isDebounceDataChange(state, prevState, debounceKeys)) {
|
|
2271
|
+
debounceFinish();
|
|
2272
|
+
return;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
handleFinish();
|
|
2276
|
+
}, function () {
|
|
2277
|
+
return clone(formState);
|
|
2278
|
+
});
|
|
2279
|
+
var invalidKeys = keys(omit(proSearchFormProps(), "columns"));
|
|
2280
|
+
return function () {
|
|
2281
|
+
return createVNode(Form, mergeProps({
|
|
2282
|
+
"ref": formRef
|
|
2283
|
+
}, omit(props, invalidKeys), {
|
|
2284
|
+
"model": formState
|
|
2285
|
+
}), slots);
|
|
2286
|
+
};
|
|
2287
|
+
}
|
|
2288
|
+
});
|
|
2289
|
+
};
|
|
1545
2290
|
|
|
1546
2291
|
/**
|
|
1547
2292
|
* ProFormList ctx
|
|
@@ -1575,86 +2320,83 @@ var FormListProvider = defineComponent({
|
|
|
1575
2320
|
}
|
|
1576
2321
|
});
|
|
1577
2322
|
|
|
1578
|
-
var
|
|
1579
|
-
return {
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
}
|
|
1590
|
-
};
|
|
1591
|
-
};
|
|
1592
|
-
|
|
1593
|
-
var ProFormList = defineComponent({
|
|
1594
|
-
props: _objectSpread2({}, proFormListProps()),
|
|
1595
|
-
setup: function setup(props, _ref2) {
|
|
1596
|
-
var slots = _ref2.slots;
|
|
1597
|
-
|
|
1598
|
-
var _useProForm = useProForm(),
|
|
1599
|
-
formState = _useProForm.formState,
|
|
1600
|
-
readonly = _useProForm.readonly;
|
|
2323
|
+
var createFormList = function createFormList(FormItem) {
|
|
2324
|
+
return defineComponent({
|
|
2325
|
+
props: _objectSpread2(_objectSpread2({}, FormItem.props), {}, {
|
|
2326
|
+
//每行默认id
|
|
2327
|
+
rowKey: {
|
|
2328
|
+
type: String,
|
|
2329
|
+
"default": "id"
|
|
2330
|
+
}
|
|
2331
|
+
}),
|
|
2332
|
+
setup: function setup(props, _ref2) {
|
|
2333
|
+
var slots = _ref2.slots;
|
|
1601
2334
|
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
2335
|
+
var _useProForm = useProForm(),
|
|
2336
|
+
formState = _useProForm.formState,
|
|
2337
|
+
readonly = _useProForm.readonly;
|
|
1605
2338
|
|
|
1606
|
-
|
|
1607
|
-
var
|
|
2339
|
+
var formListCtx = useProFormList();
|
|
2340
|
+
var nameList = convertPathToList(props.name);
|
|
2341
|
+
var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
|
|
1608
2342
|
|
|
1609
|
-
|
|
1610
|
-
targetList =
|
|
1611
|
-
}
|
|
2343
|
+
var handleAdd = function handleAdd() {
|
|
2344
|
+
var targetList = get(formState, path);
|
|
1612
2345
|
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
2346
|
+
if (!isArray(targetList)) {
|
|
2347
|
+
targetList = [];
|
|
2348
|
+
}
|
|
1616
2349
|
|
|
1617
|
-
|
|
1618
|
-
|
|
2350
|
+
targetList.push(_defineProperty({}, props.rowKey, new Date().valueOf()));
|
|
2351
|
+
set(formState, path, targetList);
|
|
2352
|
+
};
|
|
1619
2353
|
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
}
|
|
2354
|
+
var handleRemove = function handleRemove(index) {
|
|
2355
|
+
var targetList = get(formState, path);
|
|
1623
2356
|
|
|
1624
|
-
|
|
1625
|
-
|
|
2357
|
+
if (size(targetList) <= 0) {
|
|
2358
|
+
return;
|
|
2359
|
+
}
|
|
1626
2360
|
|
|
1627
|
-
|
|
1628
|
-
|
|
2361
|
+
targetList.splice(index, 1);
|
|
2362
|
+
};
|
|
1629
2363
|
|
|
1630
|
-
return
|
|
1631
|
-
var _slots$
|
|
2364
|
+
return function () {
|
|
2365
|
+
var _slots$add;
|
|
1632
2366
|
|
|
1633
|
-
return createVNode(
|
|
1634
|
-
"key": index,
|
|
1635
|
-
"pathList": [].concat(_toConsumableArray(path), [index])
|
|
1636
|
-
}, {
|
|
2367
|
+
return createVNode(FormItem, omit(props, "rowKey"), {
|
|
1637
2368
|
"default": function _default() {
|
|
1638
|
-
return [
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
2369
|
+
return [map(get(formState, path), function (item, index) {
|
|
2370
|
+
var _slots$default2, _slots$itemAdd, _slots$itemMinus;
|
|
2371
|
+
|
|
2372
|
+
return createVNode(FormListProvider, {
|
|
2373
|
+
"key": item[props.rowKey] || index,
|
|
2374
|
+
"pathList": [].concat(_toConsumableArray(path), [index])
|
|
2375
|
+
}, {
|
|
2376
|
+
"default": function _default() {
|
|
2377
|
+
return [createVNode("div", {
|
|
2378
|
+
"class": "pro-form-list-item"
|
|
2379
|
+
}, [(_slots$default2 = slots["default"]) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots), !readonly.value && createVNode(Fragment, null, [createVNode("div", {
|
|
2380
|
+
"class": "pro-form-list-item-add",
|
|
2381
|
+
"onClick": handleAdd
|
|
2382
|
+
}, [(_slots$itemAdd = slots.itemAdd) === null || _slots$itemAdd === void 0 ? void 0 : _slots$itemAdd.call(slots)]), createVNode("div", {
|
|
2383
|
+
"class": "pro-form-list-item-minus",
|
|
2384
|
+
"onClick": function onClick() {
|
|
2385
|
+
return handleRemove(index);
|
|
2386
|
+
}
|
|
2387
|
+
}, [(_slots$itemMinus = slots.itemMinus) === null || _slots$itemMinus === void 0 ? void 0 : _slots$itemMinus.call(slots)])])])];
|
|
2388
|
+
}
|
|
2389
|
+
});
|
|
2390
|
+
}), !readonly.value && createVNode("div", {
|
|
2391
|
+
"class": "pro-form-list-add",
|
|
1642
2392
|
"onClick": handleAdd
|
|
1643
|
-
}, [(_slots$
|
|
1644
|
-
"class": "pro-form-list-item-minus",
|
|
1645
|
-
"onClick": function onClick() {
|
|
1646
|
-
return handleRemove(index);
|
|
1647
|
-
}
|
|
1648
|
-
}, [(_slots$itemMinus = slots.itemMinus) === null || _slots$itemMinus === void 0 ? void 0 : _slots$itemMinus.call(slots)])])])];
|
|
2393
|
+
}, [(_slots$add = slots.add) === null || _slots$add === void 0 ? void 0 : _slots$add.call(slots)])];
|
|
1649
2394
|
}
|
|
1650
2395
|
});
|
|
1651
|
-
}
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
};
|
|
1656
|
-
}
|
|
1657
|
-
});
|
|
2396
|
+
};
|
|
2397
|
+
}
|
|
2398
|
+
});
|
|
2399
|
+
};
|
|
1658
2400
|
|
|
1659
2401
|
var proFormItemProps = function proFormItemProps() {
|
|
1660
2402
|
return {
|
|
@@ -1780,13 +2522,6 @@ var proTableProps = function proTableProps() {
|
|
|
1780
2522
|
type: Object
|
|
1781
2523
|
},
|
|
1782
2524
|
|
|
1783
|
-
/**
|
|
1784
|
-
* loading
|
|
1785
|
-
*/
|
|
1786
|
-
loading: {
|
|
1787
|
-
type: Boolean
|
|
1788
|
-
},
|
|
1789
|
-
|
|
1790
2525
|
/**
|
|
1791
2526
|
* 序号
|
|
1792
2527
|
*/
|
|
@@ -1797,7 +2532,7 @@ var proTableProps = function proTableProps() {
|
|
|
1797
2532
|
/**
|
|
1798
2533
|
* 分页
|
|
1799
2534
|
*/
|
|
1800
|
-
|
|
2535
|
+
paginationState: {
|
|
1801
2536
|
type: Object
|
|
1802
2537
|
},
|
|
1803
2538
|
|
|
@@ -1810,62 +2545,35 @@ var proTableProps = function proTableProps() {
|
|
|
1810
2545
|
};
|
|
1811
2546
|
};
|
|
1812
2547
|
|
|
1813
|
-
var
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
var mergeColumns = mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1819
|
-
return item.dataIndex;
|
|
1820
|
-
}); //根据valueType选择对应的展示组件
|
|
1821
|
-
|
|
1822
|
-
var columns = map(mergeColumns, function (item) {
|
|
1823
|
-
//merge公共item
|
|
1824
|
-
var nextItem = merge$1(props.column, item);
|
|
1825
|
-
|
|
1826
|
-
if (!item.customRender) {
|
|
1827
|
-
nextItem.customRender = function (_ref2) {
|
|
1828
|
-
var text = _ref2.text;
|
|
1829
|
-
var vn = getItemEl(props.elementMap, _objectSpread2(_objectSpread2({}, item), {}, {
|
|
1830
|
-
showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
|
|
1831
|
-
content: props.columnEmptyText
|
|
1832
|
-
})
|
|
1833
|
-
}), text); //如果找不到注册的组件,使用当前值 及 columnEmptyText
|
|
1834
|
-
|
|
1835
|
-
return vn || text || props.columnEmptyText;
|
|
1836
|
-
};
|
|
1837
|
-
}
|
|
1838
|
-
|
|
1839
|
-
return nextItem;
|
|
1840
|
-
}); //处理序号
|
|
2548
|
+
var createTable = function createTable(Table, Props) {
|
|
2549
|
+
return defineComponent({
|
|
2550
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Table.props), Props), proTableProps()),
|
|
2551
|
+
setup: function setup(props, _ref) {
|
|
2552
|
+
var slots = _ref.slots;
|
|
1841
2553
|
|
|
1842
|
-
|
|
1843
|
-
|
|
2554
|
+
var createNumberColumn = function createNumberColumn() {
|
|
2555
|
+
return _objectSpread2(_objectSpread2({
|
|
1844
2556
|
title: "序号",
|
|
1845
2557
|
dataIndex: "serialNumber",
|
|
1846
2558
|
width: 80
|
|
1847
2559
|
}, props.column), {}, {
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
var _props$pagination, _props$pagination2;
|
|
2560
|
+
customRender: function customRender(_ref2) {
|
|
2561
|
+
var _props$paginationStat, _props$paginationStat2;
|
|
1851
2562
|
|
|
1852
|
-
var index =
|
|
2563
|
+
var index = _ref2.index;
|
|
1853
2564
|
|
|
1854
|
-
if ((_props$
|
|
1855
|
-
return props.
|
|
2565
|
+
if ((_props$paginationStat = props.paginationState) !== null && _props$paginationStat !== void 0 && _props$paginationStat.page && (_props$paginationStat2 = props.paginationState) !== null && _props$paginationStat2 !== void 0 && _props$paginationStat2.pageSize) {
|
|
2566
|
+
return props.paginationState.pageSize * (props.paginationState.page - 1) + index + 1;
|
|
1856
2567
|
}
|
|
1857
2568
|
|
|
1858
2569
|
return index + 1;
|
|
1859
2570
|
}
|
|
1860
|
-
})
|
|
1861
|
-
}
|
|
2571
|
+
});
|
|
2572
|
+
};
|
|
1862
2573
|
|
|
1863
|
-
var
|
|
2574
|
+
var createOperateColumn = function createOperateColumn() {
|
|
2575
|
+
var operate = props.operate; //将itemState补充的信息拼到item中
|
|
1864
2576
|
|
|
1865
|
-
if (operate && operate.items && some(operate.items, function (item) {
|
|
1866
|
-
return item.show;
|
|
1867
|
-
})) {
|
|
1868
|
-
//将itemState补充的信息拼到item中
|
|
1869
2577
|
var items = map(operate.items, function (i) {
|
|
1870
2578
|
return _objectSpread2(_objectSpread2({}, i), get(operate.itemState, i.value));
|
|
1871
2579
|
}); //排序
|
|
@@ -1873,14 +2581,14 @@ var ProTable = defineComponent({
|
|
|
1873
2581
|
var sortedItems = sortBy(items, function (item) {
|
|
1874
2582
|
return item.sort;
|
|
1875
2583
|
});
|
|
1876
|
-
|
|
2584
|
+
return _objectSpread2(_objectSpread2(_objectSpread2({}, props.column), {}, {
|
|
1877
2585
|
title: "操作",
|
|
1878
2586
|
dataIndex: "operate",
|
|
1879
2587
|
fixed: "right"
|
|
1880
|
-
},
|
|
1881
|
-
customRender: function customRender(
|
|
1882
|
-
var record =
|
|
1883
|
-
var
|
|
2588
|
+
}, operate.column), {}, {
|
|
2589
|
+
customRender: function customRender(_ref3) {
|
|
2590
|
+
var record = _ref3.record;
|
|
2591
|
+
var showItems = filter$1(sortedItems, function (item) {
|
|
1884
2592
|
if (item.show && isFunction(item.show)) {
|
|
1885
2593
|
return item.show(record);
|
|
1886
2594
|
}
|
|
@@ -1893,7 +2601,7 @@ var ProTable = defineComponent({
|
|
|
1893
2601
|
});
|
|
1894
2602
|
return createVNode("div", {
|
|
1895
2603
|
"class": "pro-table-operate"
|
|
1896
|
-
}, [map(
|
|
2604
|
+
}, [map(showItems, function (item) {
|
|
1897
2605
|
//自定义
|
|
1898
2606
|
if (isFunction(item.element)) {
|
|
1899
2607
|
return item.element(record, item);
|
|
@@ -1910,20 +2618,62 @@ var ProTable = defineComponent({
|
|
|
1910
2618
|
}, [item.label]);
|
|
1911
2619
|
})]);
|
|
1912
2620
|
}
|
|
1913
|
-
}
|
|
1914
|
-
}
|
|
2621
|
+
});
|
|
2622
|
+
};
|
|
1915
2623
|
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
2624
|
+
var columns = computed(function () {
|
|
2625
|
+
var mergeColumns = mergeStateToList(props.columns, props.columnState, function (item) {
|
|
2626
|
+
return item.dataIndex;
|
|
2627
|
+
}); //根据valueType选择对应的展示组件
|
|
2628
|
+
|
|
2629
|
+
var columns = map(mergeColumns, function (item) {
|
|
2630
|
+
//merge公共item
|
|
2631
|
+
var nextItem = _objectSpread2(_objectSpread2({}, props.column), item);
|
|
2632
|
+
|
|
2633
|
+
if (!item.customRender) {
|
|
2634
|
+
nextItem.customRender = function (_ref4) {
|
|
2635
|
+
var text = _ref4.text;
|
|
2636
|
+
var vn = getItemEl(props.elementMap, _objectSpread2(_objectSpread2({}, item), {}, {
|
|
2637
|
+
showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
|
|
2638
|
+
content: props.columnEmptyText
|
|
2639
|
+
})
|
|
2640
|
+
}), text); //如果找不到注册的组件,使用当前值 及 columnEmptyText
|
|
2641
|
+
|
|
2642
|
+
return vn || text || props.columnEmptyText;
|
|
2643
|
+
};
|
|
2644
|
+
}
|
|
1923
2645
|
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
2646
|
+
return nextItem;
|
|
2647
|
+
}); //处理序号
|
|
2648
|
+
|
|
2649
|
+
if (props.serialNumber) {
|
|
2650
|
+
columns.unshift(createNumberColumn());
|
|
2651
|
+
} //处理operate
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
if (props.operate && props.operate.items && some(props.operate.items, function (item) {
|
|
2655
|
+
return item.show;
|
|
2656
|
+
})) {
|
|
2657
|
+
columns.push(createOperateColumn());
|
|
2658
|
+
}
|
|
2659
|
+
|
|
2660
|
+
return columns;
|
|
2661
|
+
});
|
|
2662
|
+
var tableRef = ref();
|
|
2663
|
+
provideProTable(_objectSpread2({
|
|
2664
|
+
columns: columns,
|
|
2665
|
+
tableRef: tableRef
|
|
2666
|
+
}, props.provideExtra));
|
|
2667
|
+
var invalidKeys = keys(proTableProps());
|
|
2668
|
+
return function () {
|
|
2669
|
+
return createVNode(Table, mergeProps({
|
|
2670
|
+
"ref": tableRef
|
|
2671
|
+
}, omit(props, invalidKeys), {
|
|
2672
|
+
"columns": columns.value
|
|
2673
|
+
}), slots);
|
|
2674
|
+
};
|
|
2675
|
+
}
|
|
2676
|
+
});
|
|
2677
|
+
};
|
|
1928
2678
|
|
|
1929
|
-
export { CurdAction, CurdAddAction, CurdCurrentMode, CurdSubAction, ProCurd,
|
|
2679
|
+
export { CurdAction, CurdAddAction, CurdCurrentMode, CurdSubAction, ProCurd, ProModalCurd, ProModule, ProPageCurd, RequestAction, SearchMode, Wrapper, convertPathToList, createCurdDesc, createCurdForm, createCurdList, createExpose, createForm, createFormItemCompFn, createFormList, createGrid, createSearchForm, createTable, defaultPage, findTargetInTree, findTargetListInTree, generateId, getColumnFormItemName, getColumnValueType, getFirstPropName, getFormItemEl, getItemEl, getValidValues, mergeStateToList, provideProCurd, provideProModule, renderElement, renderElements, useComposeRequestActor, useDoneRequestActor, useFailedRequestActor, useModuleEvent, useProCurd, useProForm, useProFormList, useProModule, useProTable };
|