@vue-start/pro 0.2.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/index.d.ts +203 -311
- package/dist/index.es.js +1388 -407
- package/dist/index.js +1401 -408
- package/package.json +10 -2
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ var lodash = require('lodash');
|
|
|
7
7
|
var rxjs = require('rxjs');
|
|
8
8
|
var hooks = require('@vue-start/hooks');
|
|
9
9
|
var request = require('@vue-start/request');
|
|
10
|
+
var vueRouter = require('vue-router');
|
|
10
11
|
|
|
11
12
|
function ownKeys(object, enumerableOnly) {
|
|
12
13
|
var keys = Object.keys(object);
|
|
@@ -82,6 +83,50 @@ function _nonIterableSpread() {
|
|
|
82
83
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
83
84
|
}
|
|
84
85
|
|
|
86
|
+
function _isSlot$1(s) {
|
|
87
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
var proGridProps = function proGridProps() {
|
|
91
|
+
return {
|
|
92
|
+
row: {
|
|
93
|
+
type: Object,
|
|
94
|
+
"default": undefined
|
|
95
|
+
},
|
|
96
|
+
col: {
|
|
97
|
+
type: Object
|
|
98
|
+
},
|
|
99
|
+
items: {
|
|
100
|
+
type: Array
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var createGrid = function createGrid(Row, Col) {
|
|
106
|
+
return vue.defineComponent({
|
|
107
|
+
props: _objectSpread2({}, proGridProps()),
|
|
108
|
+
setup: function setup(props) {
|
|
109
|
+
return function () {
|
|
110
|
+
var _slot;
|
|
111
|
+
|
|
112
|
+
return vue.createVNode(Row, props.row, _isSlot$1(_slot = lodash.map(props.items, function (item) {
|
|
113
|
+
return vue.createVNode(Col, vue.mergeProps({
|
|
114
|
+
"key": item.rowKey
|
|
115
|
+
}, props.col, item.col), {
|
|
116
|
+
"default": function _default() {
|
|
117
|
+
return [item.vNode];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
})) ? _slot : {
|
|
121
|
+
"default": function _default() {
|
|
122
|
+
return [_slot];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
|
|
85
130
|
var createUseRequestActor = function createUseRequestActor(filterFun) {
|
|
86
131
|
return function (actors, callback) {
|
|
87
132
|
var _useRequestProvide = request.useRequestProvide(),
|
|
@@ -154,17 +199,192 @@ var useComposeRequestActor = function useComposeRequestActor(actors, options, ca
|
|
|
154
199
|
}, []);
|
|
155
200
|
};
|
|
156
201
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
202
|
+
var treeDefaultNames = {
|
|
203
|
+
children: "children",
|
|
204
|
+
label: "label",
|
|
205
|
+
value: "value"
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* 根据value从treeData中找到对象
|
|
209
|
+
* @param data
|
|
210
|
+
* @param value
|
|
211
|
+
* @param fieldNames
|
|
212
|
+
* @param cb 对象:同步 方法:回调,可以理解为异步
|
|
213
|
+
*/
|
|
214
|
+
|
|
215
|
+
var findTargetInTree = function findTargetInTree(data, value, fieldNames, cb) {
|
|
216
|
+
var index = lodash.findIndex(data, function (item) {
|
|
217
|
+
return lodash.get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value) || treeDefaultNames.value) === value;
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
if (index > -1) {
|
|
221
|
+
if (lodash.isFunction(cb)) {
|
|
222
|
+
cb(index, data[index], data);
|
|
223
|
+
} else {
|
|
224
|
+
cb.index = index;
|
|
225
|
+
cb.target = data[index];
|
|
226
|
+
cb.list = data;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
lodash.forEach(data, function (item) {
|
|
233
|
+
var children = lodash.get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || treeDefaultNames.children);
|
|
234
|
+
|
|
235
|
+
if (lodash.size(children) > 0) {
|
|
236
|
+
findTargetInTree(children, value, fieldNames, cb);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* 根据value从treeData中找出对象及父列表
|
|
242
|
+
* @param data
|
|
243
|
+
* @param value
|
|
244
|
+
* @param fieldNames
|
|
245
|
+
* @param cb
|
|
246
|
+
* @param parent
|
|
247
|
+
*/
|
|
248
|
+
|
|
249
|
+
var findTargetListInTree = function findTargetListInTree(data, value, fieldNames, cb) {
|
|
250
|
+
var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
251
|
+
var target = lodash.find(data, function (item) {
|
|
252
|
+
return lodash.get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value) || treeDefaultNames.value) === value;
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
if (target) {
|
|
256
|
+
if (lodash.isFunction(cb)) {
|
|
257
|
+
cb([].concat(_toConsumableArray(parent), [target]));
|
|
258
|
+
} else {
|
|
259
|
+
cb.list = [].concat(_toConsumableArray(parent), [target]);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
lodash.forEach(data, function (item) {
|
|
266
|
+
var children = lodash.get(item, (fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children) || treeDefaultNames.children);
|
|
267
|
+
|
|
268
|
+
if (lodash.size(children) > 0) {
|
|
269
|
+
findTargetListInTree(children, value, fieldNames, cb, [].concat(_toConsumableArray(parent), [item]));
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* 剔除showState或showStateRules规则为!true的值
|
|
276
|
+
* @param values
|
|
277
|
+
* @param showState
|
|
278
|
+
* @param showStateRules
|
|
279
|
+
*/
|
|
280
|
+
|
|
281
|
+
var getValidValues = function getValidValues(values, showState, showStateRules) {
|
|
282
|
+
if (showState) {
|
|
283
|
+
var invalidKeys = lodash.filter(lodash.keys(showState), function (key) {
|
|
284
|
+
return !showState[key];
|
|
285
|
+
});
|
|
286
|
+
return lodash.omit(values, invalidKeys);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
if (showStateRules) {
|
|
290
|
+
var _invalidKeys = lodash.filter(lodash.keys(showStateRules), function (key) {
|
|
291
|
+
return !showStateRules[key](values);
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
return lodash.omit(values, _invalidKeys);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return values;
|
|
298
|
+
};
|
|
299
|
+
/**
|
|
300
|
+
* string类型的path转为arr
|
|
301
|
+
* @param path
|
|
302
|
+
*/
|
|
303
|
+
|
|
304
|
+
var convertPathToList = function convertPathToList(path) {
|
|
305
|
+
if (!path) {
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
if (lodash.isArray(path)) {
|
|
310
|
+
return path;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (path && lodash.isString(path) && path.indexOf(".") > 0) {
|
|
314
|
+
return lodash.split(path, ".");
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
return [path];
|
|
318
|
+
};
|
|
319
|
+
/**
|
|
320
|
+
* 将listState 中的数据通过id merge到 list item中
|
|
321
|
+
* ps:数组会替换
|
|
322
|
+
* 注意:mergeWith 会改变原始对象
|
|
323
|
+
* @param list
|
|
324
|
+
* @param listState
|
|
325
|
+
* @param id
|
|
326
|
+
*/
|
|
327
|
+
|
|
328
|
+
var mergeStateToList = function mergeStateToList(list, listState, id) {
|
|
329
|
+
if (!listState || !id) {
|
|
330
|
+
return list;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
return lodash.map(list, function (item) {
|
|
334
|
+
var idName = lodash.isFunction(id) ? id(item) : id; //如果listState中有值,merge处理
|
|
335
|
+
|
|
336
|
+
var stateData = lodash.get(listState, idName);
|
|
337
|
+
|
|
338
|
+
if (!stateData || lodash.isEmpty(stateData) || lodash.isFunction(stateData) || !lodash.isObject(stateData)) {
|
|
339
|
+
return item;
|
|
340
|
+
} //只有是对象(键值对)才合并
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
return lodash.mergeWith(item, stateData, function (objValue, srcValue) {
|
|
344
|
+
//如果是数组,替换
|
|
345
|
+
if (lodash.isArray(objValue) || lodash.isArray(srcValue)) {
|
|
346
|
+
return srcValue;
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* 唯一id
|
|
354
|
+
*/
|
|
355
|
+
|
|
356
|
+
var generateId = function generateId() {
|
|
357
|
+
return Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
|
|
358
|
+
};
|
|
359
|
+
/**
|
|
360
|
+
* ref 传递
|
|
361
|
+
*/
|
|
362
|
+
|
|
363
|
+
var createExpose = function createExpose(methods, targetRef) {
|
|
364
|
+
return lodash.reduce(methods, function (pair, method) {
|
|
365
|
+
return _objectSpread2(_objectSpread2({}, pair), {}, _defineProperty({}, method, function () {
|
|
366
|
+
var _targetRef$value, _targetRef$value$meth;
|
|
367
|
+
|
|
368
|
+
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
369
|
+
params[_key] = arguments[_key];
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
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));
|
|
373
|
+
}));
|
|
374
|
+
}, {});
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* 获取Column的valueType,默认"text"
|
|
379
|
+
* @param column
|
|
160
380
|
*/
|
|
161
381
|
|
|
162
382
|
var getColumnValueType = function getColumnValueType(column) {
|
|
163
383
|
return column.formValueType || column.valueType || "text";
|
|
164
384
|
};
|
|
165
|
-
/**
|
|
166
|
-
*获取Column的FormItem name
|
|
167
|
-
* @param column
|
|
385
|
+
/**
|
|
386
|
+
*获取Column的FormItem name
|
|
387
|
+
* @param column
|
|
168
388
|
*/
|
|
169
389
|
|
|
170
390
|
var getColumnFormItemName = function getColumnFormItemName(column) {
|
|
@@ -172,12 +392,12 @@ var getColumnFormItemName = function getColumnFormItemName(column) {
|
|
|
172
392
|
|
|
173
393
|
return ((_column$formItemProps = column.formItemProps) === null || _column$formItemProps === void 0 ? void 0 : _column$formItemProps.name) || column.dataIndex;
|
|
174
394
|
};
|
|
175
|
-
/**
|
|
176
|
-
* 根据Column生成FormItem VNode
|
|
177
|
-
* formFieldProps中的slots参数会以v-slots的形式传递到FormItem的录入组件(子组件)中
|
|
178
|
-
* @param formElementMap
|
|
179
|
-
* @param column
|
|
180
|
-
* @param needRules
|
|
395
|
+
/**
|
|
396
|
+
* 根据Column生成FormItem VNode
|
|
397
|
+
* formFieldProps中的slots参数会以v-slots的形式传递到FormItem的录入组件(子组件)中
|
|
398
|
+
* @param formElementMap
|
|
399
|
+
* @param column
|
|
400
|
+
* @param needRules
|
|
181
401
|
*/
|
|
182
402
|
|
|
183
403
|
var getFormItemEl = function getFormItemEl(formElementMap, column) {
|
|
@@ -202,11 +422,11 @@ var getFormItemEl = function getFormItemEl(formElementMap, column) {
|
|
|
202
422
|
showProps: column.showProps
|
|
203
423
|
}), (_column$formFieldProp = column.formFieldProps) === null || _column$formFieldProp === void 0 ? void 0 : _column$formFieldProp.slots);
|
|
204
424
|
};
|
|
205
|
-
/**
|
|
206
|
-
* 根据Column生成Item VNode
|
|
207
|
-
* @param elementMap
|
|
208
|
-
* @param column
|
|
209
|
-
* @param value
|
|
425
|
+
/**
|
|
426
|
+
* 根据Column生成Item VNode
|
|
427
|
+
* @param elementMap
|
|
428
|
+
* @param column
|
|
429
|
+
* @param value
|
|
210
430
|
*/
|
|
211
431
|
|
|
212
432
|
var getItemEl = function getItemEl(elementMap, column, value) {
|
|
@@ -238,44 +458,44 @@ var RequestAction = {
|
|
|
238
458
|
|
|
239
459
|
var proModuleProps = function proModuleProps() {
|
|
240
460
|
return {
|
|
241
|
-
/**
|
|
242
|
-
* module状态
|
|
461
|
+
/**
|
|
462
|
+
* module状态
|
|
243
463
|
*/
|
|
244
464
|
state: {
|
|
245
465
|
type: Object
|
|
246
466
|
},
|
|
247
467
|
|
|
248
|
-
/**
|
|
249
|
-
* 配置(静态)
|
|
468
|
+
/**
|
|
469
|
+
* 配置(静态)
|
|
250
470
|
*/
|
|
251
471
|
columns: {
|
|
252
472
|
type: Array
|
|
253
473
|
},
|
|
254
474
|
|
|
255
|
-
/**
|
|
256
|
-
* 配置(动态)
|
|
257
|
-
* columns动态属性兼容
|
|
475
|
+
/**
|
|
476
|
+
* 配置(动态)
|
|
477
|
+
* columns动态属性兼容
|
|
258
478
|
*/
|
|
259
479
|
columnState: {
|
|
260
480
|
type: Object
|
|
261
481
|
},
|
|
262
482
|
|
|
263
|
-
/**
|
|
264
|
-
* 展示组件集
|
|
483
|
+
/**
|
|
484
|
+
* 展示组件集
|
|
265
485
|
*/
|
|
266
486
|
elementMap: {
|
|
267
487
|
type: Object
|
|
268
488
|
},
|
|
269
489
|
|
|
270
|
-
/**
|
|
271
|
-
* 录入组件集
|
|
490
|
+
/**
|
|
491
|
+
* 录入组件集
|
|
272
492
|
*/
|
|
273
493
|
formElementMap: {
|
|
274
494
|
type: Object
|
|
275
495
|
},
|
|
276
496
|
|
|
277
|
-
/**
|
|
278
|
-
* requests
|
|
497
|
+
/**
|
|
498
|
+
* requests
|
|
279
499
|
*/
|
|
280
500
|
requests: {
|
|
281
501
|
type: Array
|
|
@@ -286,27 +506,15 @@ var proModuleProps = function proModuleProps() {
|
|
|
286
506
|
var ProModule = vue.defineComponent({
|
|
287
507
|
props: _objectSpread2({}, proModuleProps()),
|
|
288
508
|
setup: function setup(props, _ref) {
|
|
289
|
-
var slots = _ref.slots
|
|
509
|
+
var slots = _ref.slots,
|
|
510
|
+
expose = _ref.expose;
|
|
290
511
|
|
|
291
|
-
/**
|
|
292
|
-
* columns columnState 合并
|
|
512
|
+
/**
|
|
513
|
+
* columns columnState 合并
|
|
293
514
|
*/
|
|
294
515
|
var columns = vue.computed(function () {
|
|
295
|
-
return
|
|
296
|
-
|
|
297
|
-
var mapData = lodash.get(props.columnState, getColumnFormItemName(item));
|
|
298
|
-
|
|
299
|
-
if (lodash.isObject(mapData) && !lodash.isEmpty(mapData) && !lodash.isArray(mapData) && !lodash.isFunction(mapData)) {
|
|
300
|
-
//合并
|
|
301
|
-
return lodash.mergeWith(item, mapData, function (objValue, srcValue) {
|
|
302
|
-
//如果是数组,替换
|
|
303
|
-
if (lodash.isArray(objValue) || lodash.isArray(srcValue)) {
|
|
304
|
-
return srcValue;
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
return item;
|
|
516
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
517
|
+
return getColumnFormItemName(item);
|
|
310
518
|
});
|
|
311
519
|
});
|
|
312
520
|
/*********************************** 渲染组件 ***************************************/
|
|
@@ -460,6 +668,10 @@ var ProModule = vue.defineComponent({
|
|
|
460
668
|
requests: props.requests,
|
|
461
669
|
sendRequest: sendRequest
|
|
462
670
|
});
|
|
671
|
+
expose({
|
|
672
|
+
sendEvent: sendEvent,
|
|
673
|
+
sendRequest: sendRequest
|
|
674
|
+
});
|
|
463
675
|
return function () {
|
|
464
676
|
var _slots$default;
|
|
465
677
|
|
|
@@ -542,18 +754,23 @@ exports.CurdAddAction = void 0;
|
|
|
542
754
|
CurdAddAction["CONTINUE"] = "CONTINUE";
|
|
543
755
|
})(exports.CurdAddAction || (exports.CurdAddAction = {}));
|
|
544
756
|
|
|
757
|
+
var defaultPage = {
|
|
758
|
+
page: 1,
|
|
759
|
+
pageSize: 10
|
|
760
|
+
};
|
|
761
|
+
|
|
545
762
|
var proCurdProps = function proCurdProps() {
|
|
546
763
|
return {
|
|
547
|
-
/**
|
|
548
|
-
* 列表 或 详情 的唯一标识
|
|
764
|
+
/**
|
|
765
|
+
* 列表 或 详情 的唯一标识
|
|
549
766
|
*/
|
|
550
767
|
rowKey: {
|
|
551
768
|
type: String,
|
|
552
769
|
"default": "id"
|
|
553
770
|
},
|
|
554
771
|
|
|
555
|
-
/**
|
|
556
|
-
* operates
|
|
772
|
+
/**
|
|
773
|
+
* operates
|
|
557
774
|
*/
|
|
558
775
|
operates: {
|
|
559
776
|
type: Array
|
|
@@ -578,17 +795,18 @@ var proCurdProps = function proCurdProps() {
|
|
|
578
795
|
var Curd = vue.defineComponent({
|
|
579
796
|
props: _objectSpread2({}, proCurdProps()),
|
|
580
797
|
setup: function setup(props, _ref) {
|
|
581
|
-
var slots = _ref.slots
|
|
798
|
+
var slots = _ref.slots,
|
|
799
|
+
expose = _ref.expose;
|
|
582
800
|
|
|
583
801
|
var _ref2 = useProModule(),
|
|
584
802
|
columns = _ref2.columns,
|
|
585
803
|
state = _ref2.state,
|
|
586
804
|
sendEvent = _ref2.sendEvent,
|
|
587
805
|
sendRequest = _ref2.sendRequest;
|
|
588
|
-
/**
|
|
589
|
-
* 排序
|
|
590
|
-
* @param list
|
|
591
|
-
* @param propName
|
|
806
|
+
/**
|
|
807
|
+
* 排序
|
|
808
|
+
* @param list
|
|
809
|
+
* @param propName
|
|
592
810
|
*/
|
|
593
811
|
|
|
594
812
|
|
|
@@ -597,8 +815,8 @@ var Curd = vue.defineComponent({
|
|
|
597
815
|
return lodash.get(item, propName);
|
|
598
816
|
});
|
|
599
817
|
};
|
|
600
|
-
/**
|
|
601
|
-
* 非 hideInForm columns
|
|
818
|
+
/**
|
|
819
|
+
* 非 hideInForm columns
|
|
602
820
|
*/
|
|
603
821
|
|
|
604
822
|
|
|
@@ -607,8 +825,8 @@ var Curd = vue.defineComponent({
|
|
|
607
825
|
return !item.hideInForm;
|
|
608
826
|
}), "formSort");
|
|
609
827
|
});
|
|
610
|
-
/**
|
|
611
|
-
* 非 hideInDetail columns
|
|
828
|
+
/**
|
|
829
|
+
* 非 hideInDetail columns
|
|
612
830
|
*/
|
|
613
831
|
|
|
614
832
|
var descColumns = vue.computed(function () {
|
|
@@ -616,8 +834,8 @@ var Curd = vue.defineComponent({
|
|
|
616
834
|
return !item.hideInDetail;
|
|
617
835
|
}), "descSort");
|
|
618
836
|
});
|
|
619
|
-
/**
|
|
620
|
-
* 非 hideInTable columns
|
|
837
|
+
/**
|
|
838
|
+
* 非 hideInTable columns
|
|
621
839
|
*/
|
|
622
840
|
|
|
623
841
|
var tableColumns = vue.computed(function () {
|
|
@@ -625,8 +843,8 @@ var Curd = vue.defineComponent({
|
|
|
625
843
|
return !item.hideInTable;
|
|
626
844
|
}), "tableSort");
|
|
627
845
|
});
|
|
628
|
-
/**
|
|
629
|
-
* search columns
|
|
846
|
+
/**
|
|
847
|
+
* search columns
|
|
630
848
|
*/
|
|
631
849
|
|
|
632
850
|
var searchColumns = vue.computed(function () {
|
|
@@ -647,12 +865,18 @@ var Curd = vue.defineComponent({
|
|
|
647
865
|
var sendCurdEvent = function sendCurdEvent(event) {
|
|
648
866
|
sendEvent({
|
|
649
867
|
type: event.action,
|
|
650
|
-
payload: lodash.omit(event, "action")
|
|
868
|
+
payload: lodash.omit(event, "action", "source"),
|
|
869
|
+
source: event.source
|
|
651
870
|
});
|
|
652
871
|
}; //事件订阅
|
|
653
872
|
|
|
654
873
|
|
|
655
874
|
useModuleEvent(function (event) {
|
|
875
|
+
//如果当前event存在source 不处理
|
|
876
|
+
if (event.source) {
|
|
877
|
+
return;
|
|
878
|
+
}
|
|
879
|
+
|
|
656
880
|
var action = event.type;
|
|
657
881
|
var _ref3 = event.payload,
|
|
658
882
|
type = _ref3.type,
|
|
@@ -729,6 +953,11 @@ var Curd = vue.defineComponent({
|
|
|
729
953
|
descProps: descProps,
|
|
730
954
|
modalProps: modalProps
|
|
731
955
|
});
|
|
956
|
+
expose({
|
|
957
|
+
sendCurdEvent: sendCurdEvent,
|
|
958
|
+
getOperate: getOperate,
|
|
959
|
+
refreshList: handleSearch
|
|
960
|
+
});
|
|
732
961
|
return function () {
|
|
733
962
|
var _slots$default;
|
|
734
963
|
|
|
@@ -745,7 +974,10 @@ var ProCurd = vue.defineComponent({
|
|
|
745
974
|
setup: function setup(props, _ref4) {
|
|
746
975
|
var _curdOperateOpts;
|
|
747
976
|
|
|
748
|
-
var slots = _ref4.slots
|
|
977
|
+
var slots = _ref4.slots,
|
|
978
|
+
expose = _ref4.expose;
|
|
979
|
+
var moduleRef = vue.ref();
|
|
980
|
+
var curdRef = vue.ref();
|
|
749
981
|
var curdState = props.curdState || vue.reactive({
|
|
750
982
|
detailData: {}
|
|
751
983
|
});
|
|
@@ -797,183 +1029,913 @@ var ProCurd = vue.defineComponent({
|
|
|
797
1029
|
},
|
|
798
1030
|
label: "删除"
|
|
799
1031
|
}), _curdOperateOpts);
|
|
1032
|
+
/****************************** columns分类 *************************************/
|
|
1033
|
+
|
|
800
1034
|
var requests = lodash.map(props.operates, function (item) {
|
|
801
1035
|
var curdOpts = lodash.get(curdOperateOpts, item.action);
|
|
802
1036
|
return _objectSpread2(_objectSpread2({}, curdOpts), item);
|
|
803
1037
|
});
|
|
804
1038
|
var moduleKeys = lodash.keys(lodash.omit(ProModule.props, "state", "requests"));
|
|
1039
|
+
expose({
|
|
1040
|
+
moduleRef: moduleRef,
|
|
1041
|
+
curdRef: curdRef
|
|
1042
|
+
});
|
|
805
1043
|
return function () {
|
|
806
|
-
return vue.
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
}),
|
|
1044
|
+
return vue.createVNode(ProModule, vue.mergeProps({
|
|
1045
|
+
"ref": moduleRef
|
|
1046
|
+
}, lodash.pick(props, moduleKeys), {
|
|
1047
|
+
"state": curdState,
|
|
1048
|
+
"requests": requests
|
|
1049
|
+
}), {
|
|
1050
|
+
"default": function _default() {
|
|
1051
|
+
return [vue.createVNode(Curd, vue.mergeProps({
|
|
1052
|
+
"ref": curdRef
|
|
1053
|
+
}, lodash.omit.apply(void 0, [props].concat(_toConsumableArray(moduleKeys), ["curdState", "operates"])), {
|
|
1054
|
+
"operates": requests
|
|
1055
|
+
}), slots)];
|
|
1056
|
+
}
|
|
1057
|
+
});
|
|
812
1058
|
};
|
|
813
1059
|
}
|
|
814
1060
|
});
|
|
815
1061
|
|
|
816
|
-
var
|
|
817
|
-
var useProForm = function useProForm() {
|
|
818
|
-
return vue.inject(ProFormKey);
|
|
819
|
-
};
|
|
820
|
-
|
|
821
|
-
var provideProForm = function provideProForm(ctx) {
|
|
822
|
-
vue.provide(ProFormKey, ctx);
|
|
823
|
-
};
|
|
824
|
-
|
|
825
|
-
var proFormProps = function proFormProps() {
|
|
1062
|
+
var modalCurdProps = function modalCurdProps() {
|
|
826
1063
|
return {
|
|
827
|
-
|
|
828
|
-
* 同 antd 或 element form中的model
|
|
829
|
-
*/
|
|
830
|
-
model: {
|
|
1064
|
+
defaultAddRecord: {
|
|
831
1065
|
type: Object
|
|
832
|
-
}
|
|
1066
|
+
}
|
|
1067
|
+
};
|
|
1068
|
+
};
|
|
833
1069
|
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
1070
|
+
/**
|
|
1071
|
+
* 事件处理
|
|
1072
|
+
*/
|
|
1073
|
+
var ModalCurd = vue.defineComponent({
|
|
1074
|
+
props: _objectSpread2({}, modalCurdProps()),
|
|
1075
|
+
setup: function setup(props) {
|
|
1076
|
+
var _listProps$value;
|
|
1077
|
+
|
|
1078
|
+
var _useProModule = useProModule(),
|
|
1079
|
+
dispatch = _useProModule.dispatch,
|
|
1080
|
+
sendRequest = _useProModule.sendRequest;
|
|
1081
|
+
|
|
1082
|
+
var _useProCurd = useProCurd(),
|
|
1083
|
+
rowKey = _useProCurd.rowKey,
|
|
1084
|
+
curdState = _useProCurd.curdState,
|
|
1085
|
+
listProps = _useProCurd.listProps,
|
|
1086
|
+
getOperate = _useProCurd.getOperate,
|
|
1087
|
+
refreshList = _useProCurd.refreshList;
|
|
1088
|
+
|
|
1089
|
+
var pageState = (listProps === null || listProps === void 0 ? void 0 : (_listProps$value = listProps.value) === null || _listProps$value === void 0 ? void 0 : _listProps$value.pageState) || vue.reactive(_objectSpread2({}, defaultPage)); //发送详情接口
|
|
1090
|
+
|
|
1091
|
+
var sendDetailRequest = function sendDetailRequest(record) {
|
|
1092
|
+
var operateOpts = getOperate(exports.CurdAction.DETAIL);
|
|
1093
|
+
|
|
1094
|
+
if (operateOpts !== null && operateOpts !== void 0 && operateOpts.actor) {
|
|
1095
|
+
//如果注册了详情接口 发起请求
|
|
1096
|
+
sendRequest(exports.CurdAction.DETAIL, record, rowKey);
|
|
1097
|
+
} else {
|
|
1098
|
+
//直接使用当前record作为详情数据
|
|
1099
|
+
dispatch({
|
|
1100
|
+
type: "detailData",
|
|
1101
|
+
payload: record
|
|
1102
|
+
});
|
|
1103
|
+
}
|
|
1104
|
+
};
|
|
841
1105
|
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
* rules 根据rules中方法生成showState对象
|
|
845
|
-
*/
|
|
846
|
-
showState: {
|
|
847
|
-
type: Object
|
|
848
|
-
},
|
|
849
|
-
showStateRules: {
|
|
850
|
-
type: Object
|
|
851
|
-
},
|
|
1106
|
+
var dealDetail = function dealDetail(subAction, _ref) {
|
|
1107
|
+
var record = _ref.record;
|
|
852
1108
|
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
},
|
|
1109
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1110
|
+
dispatch({
|
|
1111
|
+
type: "mode",
|
|
1112
|
+
payload: exports.CurdCurrentMode.DETAIL
|
|
1113
|
+
});
|
|
1114
|
+
sendDetailRequest(record);
|
|
1115
|
+
}
|
|
1116
|
+
};
|
|
862
1117
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
1118
|
+
var dealAdd = function dealAdd(subAction) {
|
|
1119
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1120
|
+
dispatch({
|
|
1121
|
+
type: "mode",
|
|
1122
|
+
payload: exports.CurdCurrentMode.ADD
|
|
1123
|
+
});
|
|
1124
|
+
dispatch({
|
|
1125
|
+
type: "detailData",
|
|
1126
|
+
payload: props.defaultAddRecord || {}
|
|
1127
|
+
});
|
|
1128
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1129
|
+
//添加成功
|
|
1130
|
+
pageState.page = 1; //重置当前页数
|
|
1131
|
+
//刷新List
|
|
872
1132
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
columns: {
|
|
877
|
-
type: Array
|
|
878
|
-
},
|
|
1133
|
+
refreshList({
|
|
1134
|
+
page: 1
|
|
1135
|
+
});
|
|
879
1136
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
1137
|
+
if (curdState.addAction === exports.CurdAddAction.CONTINUE) {
|
|
1138
|
+
dispatch({
|
|
1139
|
+
type: "detailData",
|
|
1140
|
+
payload: props.defaultAddRecord || {}
|
|
1141
|
+
});
|
|
1142
|
+
} else {
|
|
1143
|
+
dispatch({
|
|
1144
|
+
type: "mode",
|
|
1145
|
+
payload: undefined
|
|
1146
|
+
});
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
};
|
|
886
1150
|
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
*/
|
|
890
|
-
formElementMap: {
|
|
891
|
-
type: Object
|
|
892
|
-
},
|
|
1151
|
+
var dealEdit = function dealEdit(subAction, _ref2) {
|
|
1152
|
+
var record = _ref2.record;
|
|
893
1153
|
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
1154
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1155
|
+
dispatch({
|
|
1156
|
+
type: "mode",
|
|
1157
|
+
payload: exports.CurdCurrentMode.EDIT
|
|
1158
|
+
});
|
|
1159
|
+
sendDetailRequest(record);
|
|
1160
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1161
|
+
// 编辑成功
|
|
1162
|
+
dispatch({
|
|
1163
|
+
type: "mode",
|
|
1164
|
+
payload: undefined
|
|
1165
|
+
}); //刷新列表
|
|
1166
|
+
|
|
1167
|
+
refreshList();
|
|
1168
|
+
}
|
|
1169
|
+
};
|
|
901
1170
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
1171
|
+
var dealDelete = function dealDelete(subAction) {
|
|
1172
|
+
if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1173
|
+
//刷新列表
|
|
1174
|
+
refreshList();
|
|
1175
|
+
}
|
|
1176
|
+
};
|
|
1177
|
+
|
|
1178
|
+
useModuleEvent(function (_ref3) {
|
|
1179
|
+
var type = _ref3.type,
|
|
1180
|
+
payload = _ref3.payload,
|
|
1181
|
+
source = _ref3.source;
|
|
1182
|
+
|
|
1183
|
+
if (source) {
|
|
1184
|
+
return;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
var action = type;
|
|
1188
|
+
var subAction = payload === null || payload === void 0 ? void 0 : payload.type;
|
|
1189
|
+
var record = payload === null || payload === void 0 ? void 0 : payload.record;
|
|
1190
|
+
|
|
1191
|
+
if (action === RequestAction.Success) {
|
|
1192
|
+
//覆盖
|
|
1193
|
+
action = lodash.get(payload, ["requestOpts", "action"]);
|
|
1194
|
+
subAction = exports.CurdSubAction.SUCCESS;
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
switch (action) {
|
|
1198
|
+
case exports.CurdAction.DETAIL:
|
|
1199
|
+
dealDetail(subAction, {
|
|
1200
|
+
record: record
|
|
1201
|
+
});
|
|
1202
|
+
break;
|
|
1203
|
+
|
|
1204
|
+
case exports.CurdAction.ADD:
|
|
1205
|
+
dealAdd(subAction);
|
|
1206
|
+
break;
|
|
1207
|
+
|
|
1208
|
+
case exports.CurdAction.EDIT:
|
|
1209
|
+
dealEdit(subAction, {
|
|
1210
|
+
record: record
|
|
1211
|
+
});
|
|
1212
|
+
break;
|
|
1213
|
+
|
|
1214
|
+
case exports.CurdAction.DELETE:
|
|
1215
|
+
dealDelete(subAction);
|
|
1216
|
+
break;
|
|
1217
|
+
}
|
|
1218
|
+
});
|
|
1219
|
+
return function () {
|
|
1220
|
+
return null;
|
|
1221
|
+
};
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
1224
|
+
var ProModalCurd = vue.defineComponent({
|
|
1225
|
+
props: _objectSpread2(_objectSpread2({}, ProCurd.props), ModalCurd.props),
|
|
1226
|
+
setup: function setup(props, _ref4) {
|
|
1227
|
+
var slots = _ref4.slots;
|
|
1228
|
+
var invalidKeys = lodash.keys(ModalCurd.props);
|
|
1229
|
+
return function () {
|
|
1230
|
+
var _slots$default;
|
|
1231
|
+
|
|
1232
|
+
return vue.createVNode(ProCurd, lodash.omit(props, invalidKeys), {
|
|
1233
|
+
"default": function _default() {
|
|
1234
|
+
return [vue.createVNode(ModalCurd, lodash.pick(props, invalidKeys), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1235
|
+
}
|
|
1236
|
+
});
|
|
1237
|
+
};
|
|
1238
|
+
}
|
|
1239
|
+
});
|
|
1240
|
+
|
|
1241
|
+
var pageCurdProps = function pageCurdProps() {
|
|
1242
|
+
return {
|
|
1243
|
+
defaultAddRecord: {
|
|
906
1244
|
type: Object
|
|
1245
|
+
},
|
|
1246
|
+
routeBack: {
|
|
1247
|
+
type: Function
|
|
907
1248
|
}
|
|
908
1249
|
};
|
|
909
1250
|
};
|
|
910
1251
|
|
|
911
|
-
var
|
|
912
|
-
props: _objectSpread2({},
|
|
913
|
-
setup: function setup(props
|
|
914
|
-
var
|
|
915
|
-
var
|
|
1252
|
+
var PageCurd = vue.defineComponent({
|
|
1253
|
+
props: _objectSpread2({}, pageCurdProps()),
|
|
1254
|
+
setup: function setup(props) {
|
|
1255
|
+
var router = vueRouter.useRouter();
|
|
1256
|
+
var route = vueRouter.useRoute();
|
|
1257
|
+
|
|
1258
|
+
var _useProModule = useProModule(),
|
|
1259
|
+
dispatch = _useProModule.dispatch,
|
|
1260
|
+
sendRequest = _useProModule.sendRequest;
|
|
1261
|
+
|
|
1262
|
+
var _useProCurd = useProCurd(),
|
|
1263
|
+
rowKey = _useProCurd.rowKey,
|
|
1264
|
+
curdState = _useProCurd.curdState;
|
|
1265
|
+
|
|
1266
|
+
var dealList = function dealList(subAction) {
|
|
1267
|
+
if (subAction === exports.CurdSubAction.PAGE) {
|
|
1268
|
+
//其实就是个重置过程
|
|
1269
|
+
dispatch({
|
|
1270
|
+
type: "mode",
|
|
1271
|
+
payload: undefined
|
|
1272
|
+
});
|
|
1273
|
+
dispatch({
|
|
1274
|
+
type: "detailData",
|
|
1275
|
+
payload: {}
|
|
1276
|
+
});
|
|
1277
|
+
dispatch({
|
|
1278
|
+
type: "detailLoading",
|
|
1279
|
+
payload: false
|
|
1280
|
+
});
|
|
1281
|
+
dispatch({
|
|
1282
|
+
type: "addAction",
|
|
1283
|
+
payload: undefined
|
|
1284
|
+
});
|
|
1285
|
+
}
|
|
1286
|
+
};
|
|
916
1287
|
|
|
917
|
-
var
|
|
918
|
-
|
|
919
|
-
var disableState = props.disableState || vue.reactive({}); //formState改变情况下,更新 showState,readonlyState,disableState状态
|
|
1288
|
+
var dealDetail = function dealDetail(subAction, _ref) {
|
|
1289
|
+
var record = _ref.record;
|
|
920
1290
|
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
1291
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1292
|
+
router.push({
|
|
1293
|
+
path: "".concat(route.path, "/detail"),
|
|
1294
|
+
query: lodash.pick(record, rowKey)
|
|
1295
|
+
});
|
|
1296
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1297
|
+
dispatch({
|
|
1298
|
+
type: "mode",
|
|
1299
|
+
payload: exports.CurdCurrentMode.DETAIL
|
|
925
1300
|
});
|
|
1301
|
+
sendRequest(exports.CurdAction.DETAIL, route.query, rowKey);
|
|
926
1302
|
}
|
|
1303
|
+
};
|
|
927
1304
|
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
1305
|
+
var dealAdd = function dealAdd(subAction) {
|
|
1306
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1307
|
+
router.push({
|
|
1308
|
+
path: "".concat(route.path, "/add")
|
|
931
1309
|
});
|
|
1310
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1311
|
+
dispatch({
|
|
1312
|
+
type: "mode",
|
|
1313
|
+
payload: exports.CurdCurrentMode.ADD
|
|
1314
|
+
});
|
|
1315
|
+
dispatch({
|
|
1316
|
+
type: "detailData",
|
|
1317
|
+
payload: props.defaultAddRecord || {}
|
|
1318
|
+
});
|
|
1319
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1320
|
+
if (curdState.addAction === exports.CurdAddAction.CONTINUE) {
|
|
1321
|
+
dispatch({
|
|
1322
|
+
type: "detailData",
|
|
1323
|
+
payload: props.defaultAddRecord || {}
|
|
1324
|
+
});
|
|
1325
|
+
} else {
|
|
1326
|
+
props.routeBack ? props.routeBack(exports.CurdAction.ADD) : router.go(-1);
|
|
1327
|
+
}
|
|
932
1328
|
}
|
|
1329
|
+
};
|
|
933
1330
|
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
1331
|
+
var dealEdit = function dealEdit(subAction, _ref2) {
|
|
1332
|
+
var record = _ref2.record;
|
|
1333
|
+
|
|
1334
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1335
|
+
router.push({
|
|
1336
|
+
path: "".concat(route.path, "/edit"),
|
|
1337
|
+
query: lodash.pick(record, rowKey)
|
|
1338
|
+
});
|
|
1339
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1340
|
+
dispatch({
|
|
1341
|
+
type: "mode",
|
|
1342
|
+
payload: exports.CurdCurrentMode.EDIT
|
|
937
1343
|
});
|
|
1344
|
+
sendRequest(exports.CurdAction.DETAIL, route.query, rowKey);
|
|
1345
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1346
|
+
props.routeBack ? props.routeBack(exports.CurdAction.EDIT) : router.go(-1);
|
|
938
1347
|
}
|
|
939
|
-
}
|
|
1348
|
+
};
|
|
940
1349
|
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
* 将columns 转化为FormItem VNode对象
|
|
946
|
-
*/
|
|
1350
|
+
useModuleEvent(function (_ref3) {
|
|
1351
|
+
var type = _ref3.type,
|
|
1352
|
+
payload = _ref3.payload,
|
|
1353
|
+
source = _ref3.source;
|
|
947
1354
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
return [];
|
|
1355
|
+
if (source) {
|
|
1356
|
+
return;
|
|
951
1357
|
}
|
|
952
1358
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
1359
|
+
var action = type;
|
|
1360
|
+
var subAction = payload === null || payload === void 0 ? void 0 : payload.type;
|
|
1361
|
+
var record = payload === null || payload === void 0 ? void 0 : payload.record;
|
|
1362
|
+
|
|
1363
|
+
if (action === RequestAction.Success) {
|
|
1364
|
+
//覆盖
|
|
1365
|
+
action = lodash.get(payload, ["requestOpts", "action"]);
|
|
1366
|
+
subAction = exports.CurdSubAction.SUCCESS;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
switch (action) {
|
|
1370
|
+
case exports.CurdAction.LIST:
|
|
1371
|
+
dealList(subAction);
|
|
1372
|
+
break;
|
|
1373
|
+
|
|
1374
|
+
case exports.CurdAction.DETAIL:
|
|
1375
|
+
dealDetail(subAction, {
|
|
1376
|
+
record: record
|
|
1377
|
+
});
|
|
1378
|
+
break;
|
|
1379
|
+
|
|
1380
|
+
case exports.CurdAction.ADD:
|
|
1381
|
+
dealAdd(subAction);
|
|
1382
|
+
break;
|
|
1383
|
+
|
|
1384
|
+
case exports.CurdAction.EDIT:
|
|
1385
|
+
dealEdit(subAction, {
|
|
1386
|
+
record: record
|
|
1387
|
+
});
|
|
1388
|
+
break;
|
|
1389
|
+
}
|
|
956
1390
|
});
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
formItemVNodes: formItemVNodes
|
|
968
|
-
}, props.provideExtra));
|
|
1391
|
+
return function () {
|
|
1392
|
+
return null;
|
|
1393
|
+
};
|
|
1394
|
+
}
|
|
1395
|
+
});
|
|
1396
|
+
var ProPageCurd = vue.defineComponent({
|
|
1397
|
+
props: _objectSpread2(_objectSpread2({}, ProCurd.props), PageCurd.props),
|
|
1398
|
+
setup: function setup(props, _ref4) {
|
|
1399
|
+
var slots = _ref4.slots;
|
|
1400
|
+
var invalidKeys = lodash.keys(PageCurd.props);
|
|
969
1401
|
return function () {
|
|
970
1402
|
var _slots$default;
|
|
971
1403
|
|
|
972
|
-
return (
|
|
1404
|
+
return vue.createVNode(ProCurd, lodash.omit(props, invalidKeys), {
|
|
1405
|
+
"default": function _default() {
|
|
1406
|
+
return [vue.createVNode(PageCurd, lodash.pick(props, invalidKeys), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1407
|
+
}
|
|
1408
|
+
});
|
|
973
1409
|
};
|
|
974
1410
|
}
|
|
975
1411
|
});
|
|
976
1412
|
|
|
1413
|
+
function _isSlot(s) {
|
|
1414
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
var createCurdDesc = function createCurdDesc(Descriptions, DescriptionsItem) {
|
|
1418
|
+
return vue.defineComponent({
|
|
1419
|
+
props: _objectSpread2({}, Descriptions.props),
|
|
1420
|
+
setup: function setup(props, _ref) {
|
|
1421
|
+
var slots = _ref.slots;
|
|
1422
|
+
|
|
1423
|
+
var _useProModule = useProModule(),
|
|
1424
|
+
getItemVNode = _useProModule.getItemVNode;
|
|
1425
|
+
|
|
1426
|
+
var _useProCurd = useProCurd(),
|
|
1427
|
+
curdState = _useProCurd.curdState,
|
|
1428
|
+
descColumns = _useProCurd.descColumns;
|
|
1429
|
+
|
|
1430
|
+
var descVNodes = vue.computed(function () {
|
|
1431
|
+
return lodash.map(descColumns.value, function (item) {
|
|
1432
|
+
var _slot;
|
|
1433
|
+
|
|
1434
|
+
var value = lodash.get(curdState.detailData, item.dataIndex);
|
|
1435
|
+
return vue.createVNode(DescriptionsItem, vue.mergeProps({
|
|
1436
|
+
"key": item.dataIndex,
|
|
1437
|
+
"label": item.title
|
|
1438
|
+
}, lodash.get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
|
|
1439
|
+
"default": function _default() {
|
|
1440
|
+
return [_slot];
|
|
1441
|
+
}
|
|
1442
|
+
});
|
|
1443
|
+
});
|
|
1444
|
+
});
|
|
1445
|
+
return function () {
|
|
1446
|
+
var _slots$start, _slots$default;
|
|
1447
|
+
|
|
1448
|
+
return vue.createVNode(Descriptions, props, _objectSpread2({
|
|
1449
|
+
"default": function _default() {
|
|
1450
|
+
return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), descVNodes, (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1451
|
+
}
|
|
1452
|
+
}, lodash.omit(slots, "default", "start")));
|
|
1453
|
+
};
|
|
1454
|
+
}
|
|
1455
|
+
});
|
|
1456
|
+
};
|
|
1457
|
+
|
|
1458
|
+
var proCurdAddOrEditProps = function proCurdAddOrEditProps() {
|
|
1459
|
+
return {
|
|
1460
|
+
//是否使用operate bar
|
|
1461
|
+
operateBar: {
|
|
1462
|
+
type: Boolean,
|
|
1463
|
+
"default": true
|
|
1464
|
+
},
|
|
1465
|
+
//显示 确定并继续 按钮
|
|
1466
|
+
showContinueAdd: {
|
|
1467
|
+
type: Boolean,
|
|
1468
|
+
"default": false
|
|
1469
|
+
},
|
|
1470
|
+
//
|
|
1471
|
+
okText: {
|
|
1472
|
+
type: String,
|
|
1473
|
+
"default": "确定"
|
|
1474
|
+
},
|
|
1475
|
+
okButtonProps: {
|
|
1476
|
+
type: Object
|
|
1477
|
+
},
|
|
1478
|
+
//
|
|
1479
|
+
continueText: {
|
|
1480
|
+
type: String,
|
|
1481
|
+
"default": "确定并继续"
|
|
1482
|
+
},
|
|
1483
|
+
continueButtonProps: {
|
|
1484
|
+
type: Object
|
|
1485
|
+
}
|
|
1486
|
+
};
|
|
1487
|
+
};
|
|
1488
|
+
|
|
1489
|
+
var createCurdForm = function createCurdForm(Form, Button, convertFormProps) {
|
|
1490
|
+
return vue.defineComponent({
|
|
1491
|
+
props: _objectSpread2(_objectSpread2({}, Form.props), proCurdAddOrEditProps()),
|
|
1492
|
+
setup: function setup(props, _ref) {
|
|
1493
|
+
var slots = _ref.slots;
|
|
1494
|
+
|
|
1495
|
+
var _useProModule = useProModule(),
|
|
1496
|
+
elementMap = _useProModule.elementMap,
|
|
1497
|
+
formElementMap = _useProModule.formElementMap;
|
|
1498
|
+
|
|
1499
|
+
var _useProCurd = useProCurd(),
|
|
1500
|
+
curdState = _useProCurd.curdState,
|
|
1501
|
+
formColumns = _useProCurd.formColumns,
|
|
1502
|
+
sendCurdEvent = _useProCurd.sendCurdEvent;
|
|
1503
|
+
|
|
1504
|
+
var formRef = vue.ref();
|
|
1505
|
+
|
|
1506
|
+
var handleFinish = function handleFinish(values) {
|
|
1507
|
+
if (curdState.mode === exports.CurdCurrentMode.EDIT) {
|
|
1508
|
+
//edit
|
|
1509
|
+
sendCurdEvent({
|
|
1510
|
+
action: exports.CurdAction.EDIT,
|
|
1511
|
+
type: exports.CurdSubAction.EXECUTE,
|
|
1512
|
+
values: values
|
|
1513
|
+
});
|
|
1514
|
+
} else {
|
|
1515
|
+
//add
|
|
1516
|
+
sendCurdEvent({
|
|
1517
|
+
action: exports.CurdAction.ADD,
|
|
1518
|
+
type: exports.CurdSubAction.EXECUTE,
|
|
1519
|
+
values: values
|
|
1520
|
+
});
|
|
1521
|
+
}
|
|
1522
|
+
};
|
|
1523
|
+
|
|
1524
|
+
var handleAdd = function handleAdd() {
|
|
1525
|
+
var _formRef$value;
|
|
1526
|
+
|
|
1527
|
+
curdState.addAction = exports.CurdAddAction.NORMAL;
|
|
1528
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
1529
|
+
};
|
|
1530
|
+
|
|
1531
|
+
var handleContinueAdd = function handleContinueAdd() {
|
|
1532
|
+
var _formRef$value2;
|
|
1533
|
+
|
|
1534
|
+
curdState.addAction = exports.CurdAddAction.CONTINUE;
|
|
1535
|
+
(_formRef$value2 = formRef.value) === null || _formRef$value2 === void 0 ? void 0 : _formRef$value2.submit();
|
|
1536
|
+
};
|
|
1537
|
+
|
|
1538
|
+
return function () {
|
|
1539
|
+
var _slots$divide, _slots$operateStart, _slots$operateCenter, _slots$operateEnd, _slots$default;
|
|
1540
|
+
|
|
1541
|
+
return vue.createVNode(Form, vue.mergeProps({
|
|
1542
|
+
"ref": formRef
|
|
1543
|
+
}, props, {
|
|
1544
|
+
"elementMap": props.elementMap || elementMap,
|
|
1545
|
+
"formElementMap": props.formElementMap || formElementMap,
|
|
1546
|
+
"columns": formColumns.value,
|
|
1547
|
+
"model": curdState.detailData,
|
|
1548
|
+
"readonly": curdState.mode === exports.CurdCurrentMode.DETAIL,
|
|
1549
|
+
"onFinish": handleFinish
|
|
1550
|
+
}, convertFormProps === null || convertFormProps === void 0 ? void 0 : convertFormProps(curdState)), _objectSpread2({
|
|
1551
|
+
"default": function _default() {
|
|
1552
|
+
return [(_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), props.operateBar && vue.createVNode("div", {
|
|
1553
|
+
"class": "pro-curd-form-operate"
|
|
1554
|
+
}, [(_slots$operateStart = slots.operateStart) === null || _slots$operateStart === void 0 ? void 0 : _slots$operateStart.call(slots), curdState.mode !== exports.CurdCurrentMode.DETAIL && vue.createVNode(Button, vue.mergeProps({
|
|
1555
|
+
"onClick": handleAdd
|
|
1556
|
+
}, props.okButtonProps, {
|
|
1557
|
+
"loading": curdState.operateLoading
|
|
1558
|
+
}), {
|
|
1559
|
+
"default": function _default() {
|
|
1560
|
+
return [props.okText];
|
|
1561
|
+
}
|
|
1562
|
+
}), (_slots$operateCenter = slots.operateCenter) === null || _slots$operateCenter === void 0 ? void 0 : _slots$operateCenter.call(slots), props.showContinueAdd && curdState.mode === exports.CurdCurrentMode.ADD && vue.createVNode(Button, vue.mergeProps({
|
|
1563
|
+
"onClick": handleContinueAdd
|
|
1564
|
+
}, props.continueButtonProps, {
|
|
1565
|
+
"loading": curdState.operateLoading
|
|
1566
|
+
}), {
|
|
1567
|
+
"default": function _default() {
|
|
1568
|
+
return [props.continueText];
|
|
1569
|
+
}
|
|
1570
|
+
}), (_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)];
|
|
1571
|
+
}
|
|
1572
|
+
}, lodash.omit(slots, "default", "divide", "operateStart", "operateCenter", "operateEnd")));
|
|
1573
|
+
};
|
|
1574
|
+
}
|
|
1575
|
+
});
|
|
1576
|
+
};
|
|
1577
|
+
|
|
1578
|
+
var proCurdListProps = function proCurdListProps() {
|
|
1579
|
+
return {
|
|
1580
|
+
/**
|
|
1581
|
+
* extra 是否放到SearchForm中
|
|
1582
|
+
*/
|
|
1583
|
+
extraInSearch: {
|
|
1584
|
+
type: Boolean,
|
|
1585
|
+
"default": undefined
|
|
1586
|
+
},
|
|
1587
|
+
//search
|
|
1588
|
+
searchProps: {
|
|
1589
|
+
type: Object
|
|
1590
|
+
},
|
|
1591
|
+
//table
|
|
1592
|
+
tableProps: {
|
|
1593
|
+
type: Object
|
|
1594
|
+
},
|
|
1595
|
+
//pageState
|
|
1596
|
+
pageState: {
|
|
1597
|
+
type: Object
|
|
1598
|
+
}
|
|
1599
|
+
};
|
|
1600
|
+
};
|
|
1601
|
+
|
|
1602
|
+
var createCurdList = function createCurdList(SearchForm, Table) {
|
|
1603
|
+
return vue.defineComponent({
|
|
1604
|
+
props: _objectSpread2({}, proCurdListProps()),
|
|
1605
|
+
setup: function setup(props, _ref) {
|
|
1606
|
+
var slots = _ref.slots;
|
|
1607
|
+
|
|
1608
|
+
var _useProModule = useProModule(),
|
|
1609
|
+
elementMap = _useProModule.elementMap,
|
|
1610
|
+
formElementMap = _useProModule.formElementMap;
|
|
1611
|
+
|
|
1612
|
+
var _useProCurd = useProCurd(),
|
|
1613
|
+
curdState = _useProCurd.curdState,
|
|
1614
|
+
searchColumns = _useProCurd.searchColumns,
|
|
1615
|
+
tableColumns = _useProCurd.tableColumns,
|
|
1616
|
+
getOperate = _useProCurd.getOperate,
|
|
1617
|
+
sendCurdEvent = _useProCurd.sendCurdEvent;
|
|
1618
|
+
/******************* search pagination ********************/
|
|
1619
|
+
|
|
1620
|
+
|
|
1621
|
+
var pageState = props.pageState || vue.reactive(_objectSpread2({}, defaultPage));
|
|
1622
|
+
var prevValues;
|
|
1623
|
+
|
|
1624
|
+
var handleSearch = function handleSearch() {
|
|
1625
|
+
sendCurdEvent({
|
|
1626
|
+
action: exports.CurdAction.LIST,
|
|
1627
|
+
type: exports.CurdSubAction.EMIT,
|
|
1628
|
+
values: _objectSpread2(_objectSpread2({}, prevValues), pageState)
|
|
1629
|
+
});
|
|
1630
|
+
};
|
|
1631
|
+
|
|
1632
|
+
var executeSearchWithResetPage = function executeSearchWithResetPage(values) {
|
|
1633
|
+
prevValues = values;
|
|
1634
|
+
pageState.page = 1;
|
|
1635
|
+
handleSearch();
|
|
1636
|
+
};
|
|
1637
|
+
/******************* table ********************/
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
var createTableItem = function createTableItem(action) {
|
|
1641
|
+
var operate = getOperate(action);
|
|
1642
|
+
|
|
1643
|
+
var item = _objectSpread2(_objectSpread2({}, lodash.pick(operate, "label", "element", "disabled", "sort", "onClick")), {}, {
|
|
1644
|
+
show: !lodash.isUndefined(operate === null || operate === void 0 ? void 0 : operate.show) ? operate === null || operate === void 0 ? void 0 : operate.show : false,
|
|
1645
|
+
value: action
|
|
1646
|
+
});
|
|
1647
|
+
|
|
1648
|
+
if (!item.onClick) {
|
|
1649
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
1650
|
+
onClick: function onClick(record) {
|
|
1651
|
+
//默认发送事件
|
|
1652
|
+
sendCurdEvent({
|
|
1653
|
+
action: action,
|
|
1654
|
+
type: exports.CurdSubAction.EMIT,
|
|
1655
|
+
record: record
|
|
1656
|
+
});
|
|
1657
|
+
}
|
|
1658
|
+
});
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
return item;
|
|
1662
|
+
}; //table操作栏 items
|
|
1663
|
+
|
|
1664
|
+
|
|
1665
|
+
var tableOperateItems = [createTableItem(exports.CurdAction.DETAIL), createTableItem(exports.CurdAction.EDIT), createTableItem(exports.CurdAction.DELETE)]; //新配置的operate item,添加默认发送事件方法
|
|
1666
|
+
|
|
1667
|
+
var convertOperateItems = function convertOperateItems(list) {
|
|
1668
|
+
return lodash.map(list, function (item) {
|
|
1669
|
+
if (!item.onClick) {
|
|
1670
|
+
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
1671
|
+
onClick: function onClick(record) {
|
|
1672
|
+
sendCurdEvent({
|
|
1673
|
+
action: "operate",
|
|
1674
|
+
type: item.value,
|
|
1675
|
+
record: record
|
|
1676
|
+
});
|
|
1677
|
+
}
|
|
1678
|
+
});
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
return item;
|
|
1682
|
+
});
|
|
1683
|
+
};
|
|
1684
|
+
|
|
1685
|
+
return function () {
|
|
1686
|
+
var _props$searchProps, _slots$divide, _curdState$listData, _slots$divide2, _slots$footerStart, _slots$pagination, _curdState$listData2, _slots$footerEnd;
|
|
1687
|
+
|
|
1688
|
+
var tableProps = props.tableProps;
|
|
1689
|
+
var extra = slots.extra ? vue.createVNode("div", {
|
|
1690
|
+
"class": "pro-curd-list-extra"
|
|
1691
|
+
}, [slots.extra()]) : null;
|
|
1692
|
+
return vue.createVNode(vue.Fragment, null, [vue.createVNode(SearchForm, vue.mergeProps({
|
|
1693
|
+
"formElementMap": formElementMap
|
|
1694
|
+
}, lodash.omit(props.searchProps, "slots"), {
|
|
1695
|
+
"columns": searchColumns.value,
|
|
1696
|
+
"onFinish": executeSearchWithResetPage
|
|
1697
|
+
}), _objectSpread2({
|
|
1698
|
+
"default": function _default() {
|
|
1699
|
+
return [props.extraInSearch && extra];
|
|
1700
|
+
}
|
|
1701
|
+
}, (_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() : vue.createVNode(Table, vue.mergeProps({
|
|
1702
|
+
"elementMap": elementMap
|
|
1703
|
+
}, lodash.omit(tableProps, "slots", "operate"), {
|
|
1704
|
+
"operate": lodash.mergeWith({
|
|
1705
|
+
items: tableOperateItems
|
|
1706
|
+
}, tableProps === null || tableProps === void 0 ? void 0 : tableProps.operate, function (objValue, srcValue) {
|
|
1707
|
+
if (lodash.isArray(objValue) && lodash.isArray(srcValue)) {
|
|
1708
|
+
return lodash.concat(objValue, convertOperateItems(srcValue));
|
|
1709
|
+
}
|
|
1710
|
+
}),
|
|
1711
|
+
"paginationState": {
|
|
1712
|
+
page: pageState.page,
|
|
1713
|
+
pageSize: pageState.pageSize
|
|
1714
|
+
},
|
|
1715
|
+
"columns": tableColumns.value,
|
|
1716
|
+
"loading": curdState.listLoading,
|
|
1717
|
+
"dataSource": (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
|
|
1718
|
+
}), tableProps === null || tableProps === void 0 ? void 0 : tableProps.slots), (_slots$divide2 = slots.divide2) === null || _slots$divide2 === void 0 ? void 0 : _slots$divide2.call(slots), vue.createVNode("div", {
|
|
1719
|
+
"class": "pro-curd-list-footer"
|
|
1720
|
+
}, [(_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)])]);
|
|
1721
|
+
};
|
|
1722
|
+
}
|
|
1723
|
+
});
|
|
1724
|
+
};
|
|
1725
|
+
|
|
1726
|
+
var ProFormKey = Symbol("pro-form");
|
|
1727
|
+
var useProForm = function useProForm() {
|
|
1728
|
+
return vue.inject(ProFormKey);
|
|
1729
|
+
};
|
|
1730
|
+
|
|
1731
|
+
var provideProForm = function provideProForm(ctx) {
|
|
1732
|
+
vue.provide(ProFormKey, ctx);
|
|
1733
|
+
};
|
|
1734
|
+
|
|
1735
|
+
var proFormProps = function proFormProps() {
|
|
1736
|
+
return {
|
|
1737
|
+
/**
|
|
1738
|
+
* 同 antd 或 element form中的model
|
|
1739
|
+
*/
|
|
1740
|
+
model: {
|
|
1741
|
+
type: Object
|
|
1742
|
+
},
|
|
1743
|
+
|
|
1744
|
+
/**
|
|
1745
|
+
* 子组件是否只读样式
|
|
1746
|
+
*/
|
|
1747
|
+
readonly: {
|
|
1748
|
+
type: Boolean,
|
|
1749
|
+
"default": undefined
|
|
1750
|
+
},
|
|
1751
|
+
|
|
1752
|
+
/**
|
|
1753
|
+
* FormComponent 根据此项来确定组件是否显示
|
|
1754
|
+
* rules 根据rules中方法生成showState对象
|
|
1755
|
+
*/
|
|
1756
|
+
showState: {
|
|
1757
|
+
type: Object
|
|
1758
|
+
},
|
|
1759
|
+
showStateRules: {
|
|
1760
|
+
type: Object
|
|
1761
|
+
},
|
|
1762
|
+
|
|
1763
|
+
/**
|
|
1764
|
+
* 是否只读
|
|
1765
|
+
*/
|
|
1766
|
+
readonlyState: {
|
|
1767
|
+
type: Object
|
|
1768
|
+
},
|
|
1769
|
+
readonlyStateRules: {
|
|
1770
|
+
type: Object
|
|
1771
|
+
},
|
|
1772
|
+
|
|
1773
|
+
/**
|
|
1774
|
+
* 是否disabled
|
|
1775
|
+
*/
|
|
1776
|
+
disableState: {
|
|
1777
|
+
type: Object
|
|
1778
|
+
},
|
|
1779
|
+
disableStateRules: {
|
|
1780
|
+
type: Object
|
|
1781
|
+
},
|
|
1782
|
+
|
|
1783
|
+
/**
|
|
1784
|
+
*
|
|
1785
|
+
*/
|
|
1786
|
+
columns: {
|
|
1787
|
+
type: Array
|
|
1788
|
+
},
|
|
1789
|
+
columnState: {
|
|
1790
|
+
type: Object
|
|
1791
|
+
},
|
|
1792
|
+
|
|
1793
|
+
/**
|
|
1794
|
+
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
1795
|
+
*/
|
|
1796
|
+
elementMap: {
|
|
1797
|
+
type: Object
|
|
1798
|
+
},
|
|
1799
|
+
|
|
1800
|
+
/**
|
|
1801
|
+
* 录入控件集合
|
|
1802
|
+
*/
|
|
1803
|
+
formElementMap: {
|
|
1804
|
+
type: Object
|
|
1805
|
+
},
|
|
1806
|
+
|
|
1807
|
+
/**
|
|
1808
|
+
* 是否启用rules验证
|
|
1809
|
+
*/
|
|
1810
|
+
needRules: {
|
|
1811
|
+
type: Boolean,
|
|
1812
|
+
"default": true
|
|
1813
|
+
},
|
|
1814
|
+
|
|
1815
|
+
/**
|
|
1816
|
+
* provide传递
|
|
1817
|
+
*/
|
|
1818
|
+
provideExtra: {
|
|
1819
|
+
type: Object
|
|
1820
|
+
}
|
|
1821
|
+
};
|
|
1822
|
+
};
|
|
1823
|
+
|
|
1824
|
+
var createForm = function createForm(Form, Grid) {
|
|
1825
|
+
return vue.defineComponent({
|
|
1826
|
+
inheritAttrs: false,
|
|
1827
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Form.props), proFormProps()), lodash.omit(Grid.props, "items")),
|
|
1828
|
+
setup: function setup(props, _ref) {
|
|
1829
|
+
var slots = _ref.slots,
|
|
1830
|
+
emit = _ref.emit,
|
|
1831
|
+
expose = _ref.expose,
|
|
1832
|
+
attrs = _ref.attrs;
|
|
1833
|
+
var formState = props.model || vue.reactive({}); //组件状态相关
|
|
1834
|
+
|
|
1835
|
+
var showState = props.showState || vue.reactive({});
|
|
1836
|
+
var readonlyState = props.readonlyState || vue.reactive({});
|
|
1837
|
+
var disableState = props.disableState || vue.reactive({}); //formState改变情况下,更新 showState,readonlyState,disableState状态
|
|
1838
|
+
|
|
1839
|
+
hooks.useEffect(function () {
|
|
1840
|
+
if (props.showStateRules) {
|
|
1841
|
+
lodash.forEach(props.showStateRules, function (fn, key) {
|
|
1842
|
+
showState[key] = fn(formState);
|
|
1843
|
+
});
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
if (props.readonlyStateRules) {
|
|
1847
|
+
lodash.forEach(props.readonlyStateRules, function (fn, key) {
|
|
1848
|
+
readonlyState[key] = fn(formState);
|
|
1849
|
+
});
|
|
1850
|
+
}
|
|
1851
|
+
|
|
1852
|
+
if (props.disableStateRules) {
|
|
1853
|
+
lodash.forEach(props.disableStateRules, function (fn, key) {
|
|
1854
|
+
disableState[key] = fn(formState);
|
|
1855
|
+
});
|
|
1856
|
+
}
|
|
1857
|
+
}, formState); //readonly
|
|
1858
|
+
|
|
1859
|
+
var readonly = vue.computed(function () {
|
|
1860
|
+
return props.readonly;
|
|
1861
|
+
}); //columns合并
|
|
1862
|
+
|
|
1863
|
+
var columns = vue.computed(function () {
|
|
1864
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1865
|
+
return getColumnFormItemName(item);
|
|
1866
|
+
});
|
|
1867
|
+
});
|
|
1868
|
+
|
|
1869
|
+
var handleFinish = function handleFinish(values) {
|
|
1870
|
+
//删除不显示的值再触发事件
|
|
1871
|
+
var showValues = getValidValues(values, showState, props.showStateRules);
|
|
1872
|
+
emit("finish", showValues, values);
|
|
1873
|
+
};
|
|
1874
|
+
|
|
1875
|
+
var formRef = vue.ref();
|
|
1876
|
+
expose({
|
|
1877
|
+
submit: function submit() {
|
|
1878
|
+
var _formRef$value;
|
|
1879
|
+
|
|
1880
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
1881
|
+
},
|
|
1882
|
+
resetFields: function resetFields() {
|
|
1883
|
+
var _formRef$value2;
|
|
1884
|
+
|
|
1885
|
+
for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1886
|
+
params[_key] = arguments[_key];
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
(_formRef$value2 = formRef.value) === null || _formRef$value2 === void 0 ? void 0 : _formRef$value2.resetFields.apply(_formRef$value2, params);
|
|
1890
|
+
}
|
|
1891
|
+
});
|
|
1892
|
+
provideProForm(_objectSpread2({
|
|
1893
|
+
formState: formState,
|
|
1894
|
+
showState: showState,
|
|
1895
|
+
readonlyState: readonlyState,
|
|
1896
|
+
disableState: disableState,
|
|
1897
|
+
//
|
|
1898
|
+
elementMap: props.elementMap,
|
|
1899
|
+
formElementMap: props.formElementMap,
|
|
1900
|
+
//
|
|
1901
|
+
readonly: readonly,
|
|
1902
|
+
//
|
|
1903
|
+
columns: columns,
|
|
1904
|
+
//
|
|
1905
|
+
formRef: formRef
|
|
1906
|
+
}, props.provideExtra));
|
|
1907
|
+
var invalidKeys = lodash.keys(proFormProps());
|
|
1908
|
+
var gridKeys = lodash.keys(lodash.omit(Grid.props, "items"));
|
|
1909
|
+
return function () {
|
|
1910
|
+
var _slots$start, _slots$default;
|
|
1911
|
+
|
|
1912
|
+
return vue.createVNode(Form, vue.mergeProps({
|
|
1913
|
+
"ref": formRef
|
|
1914
|
+
}, lodash.omit(attrs, "onFinish"), lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), _toConsumableArray(gridKeys), ["onFinish"])), {
|
|
1915
|
+
"model": formState,
|
|
1916
|
+
"onFinish": handleFinish
|
|
1917
|
+
}), _objectSpread2({
|
|
1918
|
+
"default": function _default() {
|
|
1919
|
+
return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), props.formElementMap && lodash.size(columns.value) > 0 && vue.createVNode(vue.Fragment, null, [props.row ? vue.createVNode(Grid, {
|
|
1920
|
+
"row": props.row,
|
|
1921
|
+
"col": props.col,
|
|
1922
|
+
"items": lodash.map(columns.value, function (item) {
|
|
1923
|
+
return {
|
|
1924
|
+
rowKey: getColumnFormItemName(item),
|
|
1925
|
+
vNode: getFormItemEl(props.formElementMap, item, props.needRules),
|
|
1926
|
+
col: lodash.get(item, ["extra", "col"])
|
|
1927
|
+
};
|
|
1928
|
+
})
|
|
1929
|
+
}, null) : lodash.map(columns.value, function (item) {
|
|
1930
|
+
return getFormItemEl(props.formElementMap, item, props.needRules);
|
|
1931
|
+
})]), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1932
|
+
}
|
|
1933
|
+
}, lodash.omit(slots, "default")));
|
|
1934
|
+
};
|
|
1935
|
+
}
|
|
1936
|
+
});
|
|
1937
|
+
};
|
|
1938
|
+
|
|
977
1939
|
exports.SearchMode = void 0;
|
|
978
1940
|
|
|
979
1941
|
(function (SearchMode) {
|
|
@@ -1021,6 +1983,11 @@ var proSearchFormProps = function proSearchFormProps() {
|
|
|
1021
1983
|
debounceKeys: {
|
|
1022
1984
|
type: Array
|
|
1023
1985
|
},
|
|
1986
|
+
//默认 valueType 为 text 的控件会debounce处理
|
|
1987
|
+
debounceTypes: {
|
|
1988
|
+
type: Array,
|
|
1989
|
+
"default": ["text"]
|
|
1990
|
+
},
|
|
1024
1991
|
debounceTime: {
|
|
1025
1992
|
type: Number,
|
|
1026
1993
|
"default": 800
|
|
@@ -1032,106 +1999,73 @@ var proSearchFormProps = function proSearchFormProps() {
|
|
|
1032
1999
|
* 该组件只是个模式,最终返回null,不做任何渲染,应配合着ProForm的包装类一起使用
|
|
1033
2000
|
* 针对传入的model(监听对象)做相应的finish(回调)处理
|
|
1034
2001
|
*/
|
|
1035
|
-
var
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
var
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
emit("finish");
|
|
1050
|
-
};
|
|
1051
|
-
|
|
1052
|
-
var debounceFinish = lodash.debounce(function () {
|
|
1053
|
-
handleFinish();
|
|
1054
|
-
}, props.debounceTime); //初始化
|
|
1055
|
-
|
|
1056
|
-
hooks.useEffect(function () {
|
|
1057
|
-
if (props.initEmit) {
|
|
1058
|
-
handleFinish();
|
|
1059
|
-
}
|
|
1060
|
-
}, []);
|
|
1061
|
-
|
|
1062
|
-
var isDebounceDataChange = function isDebounceDataChange(state, prevState, debounceKeys) {
|
|
1063
|
-
return lodash.some(debounceKeys, function (key) {
|
|
1064
|
-
return lodash.get(state, key) !== lodash.get(prevState, key);
|
|
2002
|
+
var createSearchForm = function createSearchForm(Form, Props) {
|
|
2003
|
+
return vue.defineComponent({
|
|
2004
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Form.props), Props), proSearchFormProps()),
|
|
2005
|
+
setup: function setup(props, _ref) {
|
|
2006
|
+
var slots = _ref.slots;
|
|
2007
|
+
var formState = props.model || vue.reactive({});
|
|
2008
|
+
var valueTypeSet = new Set(props.debounceTypes); //根据column valueType 算出默认需要debounce处理的属性集合
|
|
2009
|
+
|
|
2010
|
+
var defaultDebounceKeys = lodash.map(lodash.filter(props.columns, function (column) {
|
|
2011
|
+
var valueType = getColumnValueType(column); //默认input组件的触发事件需要debounce处理
|
|
2012
|
+
|
|
2013
|
+
return valueTypeSet.has(valueType);
|
|
2014
|
+
}), function (column) {
|
|
2015
|
+
return getColumnFormItemName(column);
|
|
1065
2016
|
});
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
hooks.useWatch(function (state, prevState) {
|
|
1070
|
-
if (props.searchMode !== exports.SearchMode.AUTO) {
|
|
1071
|
-
return;
|
|
1072
|
-
} //如果改变的值中包括debounceKeys中注册的 延时触发
|
|
1073
|
-
|
|
2017
|
+
var formRef = vue.ref();
|
|
1074
2018
|
|
|
1075
|
-
var
|
|
2019
|
+
var handleFinish = function handleFinish() {
|
|
2020
|
+
var _formRef$value;
|
|
1076
2021
|
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
return;
|
|
1080
|
-
}
|
|
2022
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.submit();
|
|
2023
|
+
};
|
|
1081
2024
|
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
});
|
|
1086
|
-
return function () {
|
|
1087
|
-
return null;
|
|
1088
|
-
};
|
|
1089
|
-
}
|
|
1090
|
-
});
|
|
2025
|
+
var debounceFinish = lodash.debounce(function () {
|
|
2026
|
+
handleFinish();
|
|
2027
|
+
}, props.debounceTime); //初始化
|
|
1091
2028
|
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
*/
|
|
1098
|
-
var getValidValues = function getValidValues(values, showState, showStateRules) {
|
|
1099
|
-
if (showState) {
|
|
1100
|
-
var invalidKeys = lodash.filter(lodash.keys(showState), function (key) {
|
|
1101
|
-
return !showState[key];
|
|
1102
|
-
});
|
|
1103
|
-
return lodash.omit(values, invalidKeys);
|
|
1104
|
-
}
|
|
2029
|
+
hooks.useEffect(function () {
|
|
2030
|
+
if (props.initEmit) {
|
|
2031
|
+
handleFinish();
|
|
2032
|
+
}
|
|
2033
|
+
}, []);
|
|
1105
2034
|
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
2035
|
+
var isDebounceDataChange = function isDebounceDataChange(state, prevState, debounceKeys) {
|
|
2036
|
+
return lodash.some(debounceKeys, function (key) {
|
|
2037
|
+
return lodash.get(state, key) !== lodash.get(prevState, key);
|
|
2038
|
+
});
|
|
2039
|
+
}; //监听
|
|
1110
2040
|
|
|
1111
|
-
return lodash.omit(values, _invalidKeys);
|
|
1112
|
-
}
|
|
1113
2041
|
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
* @param path
|
|
1119
|
-
*/
|
|
2042
|
+
hooks.useWatch(function (state, prevState) {
|
|
2043
|
+
if (props.searchMode !== exports.SearchMode.AUTO) {
|
|
2044
|
+
return;
|
|
2045
|
+
} //如果改变的值中包括debounceKeys中注册的 延时触发
|
|
1120
2046
|
|
|
1121
|
-
var convertPathToList = function convertPathToList(path) {
|
|
1122
|
-
if (!path) {
|
|
1123
|
-
return undefined;
|
|
1124
|
-
}
|
|
1125
2047
|
|
|
1126
|
-
|
|
1127
|
-
return path;
|
|
1128
|
-
}
|
|
2048
|
+
var debounceKeys = lodash.size(props.debounceKeys) > 0 ? props.debounceKeys : defaultDebounceKeys;
|
|
1129
2049
|
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
2050
|
+
if (lodash.size(debounceKeys) > 0 && isDebounceDataChange(state, prevState, debounceKeys)) {
|
|
2051
|
+
debounceFinish();
|
|
2052
|
+
return;
|
|
2053
|
+
}
|
|
1133
2054
|
|
|
1134
|
-
|
|
2055
|
+
handleFinish();
|
|
2056
|
+
}, function () {
|
|
2057
|
+
return lodash.clone(formState);
|
|
2058
|
+
});
|
|
2059
|
+
var invalidKeys = lodash.keys(lodash.omit(proSearchFormProps(), "columns"));
|
|
2060
|
+
return function () {
|
|
2061
|
+
return vue.createVNode(Form, vue.mergeProps({
|
|
2062
|
+
"ref": formRef
|
|
2063
|
+
}, lodash.omit(props, invalidKeys), {
|
|
2064
|
+
"model": formState
|
|
2065
|
+
}), slots);
|
|
2066
|
+
};
|
|
2067
|
+
}
|
|
2068
|
+
});
|
|
1135
2069
|
};
|
|
1136
2070
|
|
|
1137
2071
|
/**
|
|
@@ -1166,86 +2100,83 @@ var FormListProvider = vue.defineComponent({
|
|
|
1166
2100
|
}
|
|
1167
2101
|
});
|
|
1168
2102
|
|
|
1169
|
-
var
|
|
1170
|
-
return {
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
}
|
|
1181
|
-
};
|
|
1182
|
-
};
|
|
1183
|
-
|
|
1184
|
-
var ProFormList = vue.defineComponent({
|
|
1185
|
-
props: _objectSpread2({}, proFormListProps()),
|
|
1186
|
-
setup: function setup(props, _ref2) {
|
|
1187
|
-
var slots = _ref2.slots;
|
|
1188
|
-
|
|
1189
|
-
var _useProForm = useProForm(),
|
|
1190
|
-
formState = _useProForm.formState,
|
|
1191
|
-
readonly = _useProForm.readonly;
|
|
2103
|
+
var createFormList = function createFormList(FormItem) {
|
|
2104
|
+
return vue.defineComponent({
|
|
2105
|
+
props: _objectSpread2(_objectSpread2({}, FormItem.props), {}, {
|
|
2106
|
+
//每行默认id
|
|
2107
|
+
rowKey: {
|
|
2108
|
+
type: String,
|
|
2109
|
+
"default": "id"
|
|
2110
|
+
}
|
|
2111
|
+
}),
|
|
2112
|
+
setup: function setup(props, _ref2) {
|
|
2113
|
+
var slots = _ref2.slots;
|
|
1192
2114
|
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
2115
|
+
var _useProForm = useProForm(),
|
|
2116
|
+
formState = _useProForm.formState,
|
|
2117
|
+
readonly = _useProForm.readonly;
|
|
1196
2118
|
|
|
1197
|
-
|
|
1198
|
-
var
|
|
2119
|
+
var formListCtx = useProFormList();
|
|
2120
|
+
var nameList = convertPathToList(props.name);
|
|
2121
|
+
var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
|
|
1199
2122
|
|
|
1200
|
-
|
|
1201
|
-
targetList =
|
|
1202
|
-
}
|
|
2123
|
+
var handleAdd = function handleAdd() {
|
|
2124
|
+
var targetList = lodash.get(formState, path);
|
|
1203
2125
|
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
2126
|
+
if (!lodash.isArray(targetList)) {
|
|
2127
|
+
targetList = [];
|
|
2128
|
+
}
|
|
1207
2129
|
|
|
1208
|
-
|
|
1209
|
-
|
|
2130
|
+
targetList.push(_defineProperty({}, props.rowKey, new Date().valueOf()));
|
|
2131
|
+
lodash.set(formState, path, targetList);
|
|
2132
|
+
};
|
|
1210
2133
|
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
}
|
|
2134
|
+
var handleRemove = function handleRemove(index) {
|
|
2135
|
+
var targetList = lodash.get(formState, path);
|
|
1214
2136
|
|
|
1215
|
-
|
|
1216
|
-
|
|
2137
|
+
if (lodash.size(targetList) <= 0) {
|
|
2138
|
+
return;
|
|
2139
|
+
}
|
|
1217
2140
|
|
|
1218
|
-
|
|
1219
|
-
|
|
2141
|
+
targetList.splice(index, 1);
|
|
2142
|
+
};
|
|
1220
2143
|
|
|
1221
|
-
return
|
|
1222
|
-
var _slots$
|
|
2144
|
+
return function () {
|
|
2145
|
+
var _slots$add;
|
|
1223
2146
|
|
|
1224
|
-
return vue.createVNode(
|
|
1225
|
-
"key": index,
|
|
1226
|
-
"pathList": [].concat(_toConsumableArray(path), [index])
|
|
1227
|
-
}, {
|
|
2147
|
+
return vue.createVNode(FormItem, lodash.omit(props, "rowKey"), {
|
|
1228
2148
|
"default": function _default() {
|
|
1229
|
-
return [
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
2149
|
+
return [lodash.map(lodash.get(formState, path), function (item, index) {
|
|
2150
|
+
var _slots$default2, _slots$itemAdd, _slots$itemMinus;
|
|
2151
|
+
|
|
2152
|
+
return vue.createVNode(FormListProvider, {
|
|
2153
|
+
"key": item[props.rowKey] || index,
|
|
2154
|
+
"pathList": [].concat(_toConsumableArray(path), [index])
|
|
2155
|
+
}, {
|
|
2156
|
+
"default": function _default() {
|
|
2157
|
+
return [vue.createVNode("div", {
|
|
2158
|
+
"class": "pro-form-list-item"
|
|
2159
|
+
}, [(_slots$default2 = slots["default"]) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots), !readonly.value && vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
2160
|
+
"class": "pro-form-list-item-add",
|
|
2161
|
+
"onClick": handleAdd
|
|
2162
|
+
}, [(_slots$itemAdd = slots.itemAdd) === null || _slots$itemAdd === void 0 ? void 0 : _slots$itemAdd.call(slots)]), vue.createVNode("div", {
|
|
2163
|
+
"class": "pro-form-list-item-minus",
|
|
2164
|
+
"onClick": function onClick() {
|
|
2165
|
+
return handleRemove(index);
|
|
2166
|
+
}
|
|
2167
|
+
}, [(_slots$itemMinus = slots.itemMinus) === null || _slots$itemMinus === void 0 ? void 0 : _slots$itemMinus.call(slots)])])])];
|
|
2168
|
+
}
|
|
2169
|
+
});
|
|
2170
|
+
}), !readonly.value && vue.createVNode("div", {
|
|
2171
|
+
"class": "pro-form-list-add",
|
|
1233
2172
|
"onClick": handleAdd
|
|
1234
|
-
}, [(_slots$
|
|
1235
|
-
"class": "pro-form-list-item-minus",
|
|
1236
|
-
"onClick": function onClick() {
|
|
1237
|
-
return handleRemove(index);
|
|
1238
|
-
}
|
|
1239
|
-
}, [(_slots$itemMinus = slots.itemMinus) === null || _slots$itemMinus === void 0 ? void 0 : _slots$itemMinus.call(slots)])])])];
|
|
2173
|
+
}, [(_slots$add = slots.add) === null || _slots$add === void 0 ? void 0 : _slots$add.call(slots)])];
|
|
1240
2174
|
}
|
|
1241
2175
|
});
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
};
|
|
1247
|
-
}
|
|
1248
|
-
});
|
|
2176
|
+
};
|
|
2177
|
+
}
|
|
2178
|
+
});
|
|
2179
|
+
};
|
|
1249
2180
|
|
|
1250
2181
|
var proFormItemProps = function proFormItemProps() {
|
|
1251
2182
|
return {
|
|
@@ -1350,8 +2281,8 @@ var proTableProps = function proTableProps() {
|
|
|
1350
2281
|
type: String
|
|
1351
2282
|
},
|
|
1352
2283
|
|
|
1353
|
-
/**
|
|
1354
|
-
* 公共column,会merge到columns item中
|
|
2284
|
+
/**
|
|
2285
|
+
* 公共column,会merge到columns item中
|
|
1355
2286
|
*/
|
|
1356
2287
|
column: {
|
|
1357
2288
|
type: Object
|
|
@@ -1360,23 +2291,33 @@ var proTableProps = function proTableProps() {
|
|
|
1360
2291
|
columns: {
|
|
1361
2292
|
type: Array
|
|
1362
2293
|
},
|
|
2294
|
+
columnState: {
|
|
2295
|
+
type: Object
|
|
2296
|
+
},
|
|
1363
2297
|
|
|
1364
|
-
/**
|
|
1365
|
-
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
2298
|
+
/**
|
|
2299
|
+
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
1366
2300
|
*/
|
|
1367
2301
|
elementMap: {
|
|
1368
2302
|
type: Object
|
|
1369
2303
|
},
|
|
1370
2304
|
|
|
1371
|
-
/**
|
|
1372
|
-
*
|
|
2305
|
+
/**
|
|
2306
|
+
* 序号
|
|
1373
2307
|
*/
|
|
1374
|
-
|
|
2308
|
+
serialNumber: {
|
|
1375
2309
|
type: Boolean
|
|
1376
2310
|
},
|
|
1377
2311
|
|
|
1378
|
-
/**
|
|
1379
|
-
*
|
|
2312
|
+
/**
|
|
2313
|
+
* 分页
|
|
2314
|
+
*/
|
|
2315
|
+
paginationState: {
|
|
2316
|
+
type: Object
|
|
2317
|
+
},
|
|
2318
|
+
|
|
2319
|
+
/**
|
|
2320
|
+
* provide传递
|
|
1380
2321
|
*/
|
|
1381
2322
|
provideExtra: {
|
|
1382
2323
|
type: Object
|
|
@@ -1384,37 +2325,35 @@ var proTableProps = function proTableProps() {
|
|
|
1384
2325
|
};
|
|
1385
2326
|
};
|
|
1386
2327
|
|
|
1387
|
-
var
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
var
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
var
|
|
1401
|
-
showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
|
|
1402
|
-
content: props.columnEmptyText
|
|
1403
|
-
})
|
|
1404
|
-
}), text); //如果找不到注册的组件,使用当前值 及 columnEmptyText
|
|
2328
|
+
var createTable = function createTable(Table, Props) {
|
|
2329
|
+
return vue.defineComponent({
|
|
2330
|
+
props: _objectSpread2(_objectSpread2(_objectSpread2({}, Table.props), Props), proTableProps()),
|
|
2331
|
+
setup: function setup(props, _ref) {
|
|
2332
|
+
var slots = _ref.slots;
|
|
2333
|
+
|
|
2334
|
+
var createNumberColumn = function createNumberColumn() {
|
|
2335
|
+
return _objectSpread2(_objectSpread2({
|
|
2336
|
+
title: "序号",
|
|
2337
|
+
dataIndex: "serialNumber",
|
|
2338
|
+
width: 80
|
|
2339
|
+
}, props.column), {}, {
|
|
2340
|
+
customRender: function customRender(_ref2) {
|
|
2341
|
+
var _props$paginationStat, _props$paginationStat2;
|
|
1405
2342
|
|
|
1406
|
-
|
|
1407
|
-
};
|
|
1408
|
-
}
|
|
2343
|
+
var index = _ref2.index;
|
|
1409
2344
|
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
2345
|
+
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) {
|
|
2346
|
+
return props.paginationState.pageSize * (props.paginationState.page - 1) + index + 1;
|
|
2347
|
+
}
|
|
2348
|
+
|
|
2349
|
+
return index + 1;
|
|
2350
|
+
}
|
|
2351
|
+
});
|
|
2352
|
+
};
|
|
2353
|
+
|
|
2354
|
+
var createOperateColumn = function createOperateColumn() {
|
|
2355
|
+
var operate = props.operate; //将itemState补充的信息拼到item中
|
|
1413
2356
|
|
|
1414
|
-
if (operate && operate.items && lodash.some(operate.items, function (item) {
|
|
1415
|
-
return item.show;
|
|
1416
|
-
})) {
|
|
1417
|
-
//将itemState补充的信息拼到item中
|
|
1418
2357
|
var items = lodash.map(operate.items, function (i) {
|
|
1419
2358
|
return _objectSpread2(_objectSpread2({}, i), lodash.get(operate.itemState, i.value));
|
|
1420
2359
|
}); //排序
|
|
@@ -1422,14 +2361,14 @@ var ProTable = vue.defineComponent({
|
|
|
1422
2361
|
var sortedItems = lodash.sortBy(items, function (item) {
|
|
1423
2362
|
return item.sort;
|
|
1424
2363
|
});
|
|
1425
|
-
|
|
2364
|
+
return _objectSpread2(_objectSpread2(_objectSpread2({}, props.column), {}, {
|
|
1426
2365
|
title: "操作",
|
|
1427
2366
|
dataIndex: "operate",
|
|
1428
2367
|
fixed: "right"
|
|
1429
|
-
},
|
|
2368
|
+
}, operate.column), {}, {
|
|
1430
2369
|
customRender: function customRender(_ref3) {
|
|
1431
2370
|
var record = _ref3.record;
|
|
1432
|
-
var
|
|
2371
|
+
var showItems = lodash.filter(sortedItems, function (item) {
|
|
1433
2372
|
if (item.show && lodash.isFunction(item.show)) {
|
|
1434
2373
|
return item.show(record);
|
|
1435
2374
|
}
|
|
@@ -1442,7 +2381,7 @@ var ProTable = vue.defineComponent({
|
|
|
1442
2381
|
});
|
|
1443
2382
|
return vue.createVNode("div", {
|
|
1444
2383
|
"class": "pro-table-operate"
|
|
1445
|
-
}, [lodash.map(
|
|
2384
|
+
}, [lodash.map(showItems, function (item) {
|
|
1446
2385
|
//自定义
|
|
1447
2386
|
if (lodash.isFunction(item.element)) {
|
|
1448
2387
|
return item.element(record, item);
|
|
@@ -1459,36 +2398,90 @@ var ProTable = vue.defineComponent({
|
|
|
1459
2398
|
}, [item.label]);
|
|
1460
2399
|
})]);
|
|
1461
2400
|
}
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
2401
|
+
});
|
|
2402
|
+
};
|
|
1464
2403
|
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
2404
|
+
var columns = vue.computed(function () {
|
|
2405
|
+
var mergeColumns = mergeStateToList(props.columns, props.columnState, function (item) {
|
|
2406
|
+
return item.dataIndex;
|
|
2407
|
+
}); //根据valueType选择对应的展示组件
|
|
2408
|
+
|
|
2409
|
+
var columns = lodash.map(mergeColumns, function (item) {
|
|
2410
|
+
//merge公共item
|
|
2411
|
+
var nextItem = _objectSpread2(_objectSpread2({}, props.column), item);
|
|
2412
|
+
|
|
2413
|
+
if (!item.customRender) {
|
|
2414
|
+
nextItem.customRender = function (_ref4) {
|
|
2415
|
+
var text = _ref4.text;
|
|
2416
|
+
var vn = getItemEl(props.elementMap, _objectSpread2(_objectSpread2({}, item), {}, {
|
|
2417
|
+
showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
|
|
2418
|
+
content: props.columnEmptyText
|
|
2419
|
+
})
|
|
2420
|
+
}), text); //如果找不到注册的组件,使用当前值 及 columnEmptyText
|
|
2421
|
+
|
|
2422
|
+
return vn || text || props.columnEmptyText;
|
|
2423
|
+
};
|
|
2424
|
+
}
|
|
1472
2425
|
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
2426
|
+
return nextItem;
|
|
2427
|
+
}); //处理序号
|
|
2428
|
+
|
|
2429
|
+
if (props.serialNumber) {
|
|
2430
|
+
columns.unshift(createNumberColumn());
|
|
2431
|
+
} //处理operate
|
|
2432
|
+
|
|
2433
|
+
|
|
2434
|
+
if (props.operate && props.operate.items && lodash.some(props.operate.items, function (item) {
|
|
2435
|
+
return item.show;
|
|
2436
|
+
})) {
|
|
2437
|
+
columns.push(createOperateColumn());
|
|
2438
|
+
}
|
|
2439
|
+
|
|
2440
|
+
return columns;
|
|
2441
|
+
});
|
|
2442
|
+
var tableRef = vue.ref();
|
|
2443
|
+
provideProTable(_objectSpread2({
|
|
2444
|
+
columns: columns,
|
|
2445
|
+
tableRef: tableRef
|
|
2446
|
+
}, props.provideExtra));
|
|
2447
|
+
var invalidKeys = lodash.keys(proTableProps());
|
|
2448
|
+
return function () {
|
|
2449
|
+
return vue.createVNode(Table, vue.mergeProps({
|
|
2450
|
+
"ref": tableRef
|
|
2451
|
+
}, lodash.omit(props, invalidKeys), {
|
|
2452
|
+
"columns": columns.value
|
|
2453
|
+
}), slots);
|
|
2454
|
+
};
|
|
2455
|
+
}
|
|
2456
|
+
});
|
|
2457
|
+
};
|
|
1477
2458
|
|
|
1478
2459
|
exports.ProCurd = ProCurd;
|
|
1479
|
-
exports.
|
|
1480
|
-
exports.ProFormList = ProFormList;
|
|
2460
|
+
exports.ProModalCurd = ProModalCurd;
|
|
1481
2461
|
exports.ProModule = ProModule;
|
|
1482
|
-
exports.
|
|
1483
|
-
exports.ProTable = ProTable;
|
|
2462
|
+
exports.ProPageCurd = ProPageCurd;
|
|
1484
2463
|
exports.RequestAction = RequestAction;
|
|
1485
2464
|
exports.convertPathToList = convertPathToList;
|
|
2465
|
+
exports.createCurdDesc = createCurdDesc;
|
|
2466
|
+
exports.createCurdForm = createCurdForm;
|
|
2467
|
+
exports.createCurdList = createCurdList;
|
|
2468
|
+
exports.createExpose = createExpose;
|
|
2469
|
+
exports.createForm = createForm;
|
|
1486
2470
|
exports.createFormItemCompFn = createFormItemCompFn;
|
|
2471
|
+
exports.createFormList = createFormList;
|
|
2472
|
+
exports.createGrid = createGrid;
|
|
2473
|
+
exports.createSearchForm = createSearchForm;
|
|
2474
|
+
exports.createTable = createTable;
|
|
2475
|
+
exports.defaultPage = defaultPage;
|
|
2476
|
+
exports.findTargetInTree = findTargetInTree;
|
|
2477
|
+
exports.findTargetListInTree = findTargetListInTree;
|
|
2478
|
+
exports.generateId = generateId;
|
|
1487
2479
|
exports.getColumnFormItemName = getColumnFormItemName;
|
|
1488
2480
|
exports.getColumnValueType = getColumnValueType;
|
|
1489
2481
|
exports.getFormItemEl = getFormItemEl;
|
|
1490
2482
|
exports.getItemEl = getItemEl;
|
|
1491
2483
|
exports.getValidValues = getValidValues;
|
|
2484
|
+
exports.mergeStateToList = mergeStateToList;
|
|
1492
2485
|
exports.provideProCurd = provideProCurd;
|
|
1493
2486
|
exports.provideProModule = provideProModule;
|
|
1494
2487
|
exports.useComposeRequestActor = useComposeRequestActor;
|