@vue-start/pro 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/index.d.ts +113 -6
- package/dist/index.es.js +586 -131
- package/dist/index.js +588 -128
- 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);
|
|
@@ -154,17 +155,100 @@ var useComposeRequestActor = function useComposeRequestActor(actors, options, ca
|
|
|
154
155
|
}, []);
|
|
155
156
|
};
|
|
156
157
|
|
|
157
|
-
/**
|
|
158
|
-
*
|
|
159
|
-
* @param
|
|
158
|
+
/**
|
|
159
|
+
* 剔除showState或showStateRules规则为!true的值
|
|
160
|
+
* @param values
|
|
161
|
+
* @param showState
|
|
162
|
+
* @param showStateRules
|
|
163
|
+
*/
|
|
164
|
+
var getValidValues = function getValidValues(values, showState, showStateRules) {
|
|
165
|
+
if (showState) {
|
|
166
|
+
var invalidKeys = lodash.filter(lodash.keys(showState), function (key) {
|
|
167
|
+
return !showState[key];
|
|
168
|
+
});
|
|
169
|
+
return lodash.omit(values, invalidKeys);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
if (showStateRules) {
|
|
173
|
+
var _invalidKeys = lodash.filter(lodash.keys(showStateRules), function (key) {
|
|
174
|
+
return !showStateRules[key](values);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
return lodash.omit(values, _invalidKeys);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return values;
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* string类型的path转为arr
|
|
184
|
+
* @param path
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
var convertPathToList = function convertPathToList(path) {
|
|
188
|
+
if (!path) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (lodash.isArray(path)) {
|
|
193
|
+
return path;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (path && lodash.isString(path) && path.indexOf(".") > 0) {
|
|
197
|
+
return lodash.split(path, ".");
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return [path];
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* 唯一id
|
|
204
|
+
*/
|
|
205
|
+
|
|
206
|
+
var generateId = function generateId() {
|
|
207
|
+
return Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* 将listState 中的数据通过id merge到 list item中
|
|
211
|
+
* ps:数组会替换
|
|
212
|
+
* @param list
|
|
213
|
+
* @param listState
|
|
214
|
+
* @param id
|
|
215
|
+
*/
|
|
216
|
+
|
|
217
|
+
var mergeStateToList = function mergeStateToList(list, listState, id) {
|
|
218
|
+
if (!listState || !id) {
|
|
219
|
+
return list;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return lodash.map(list, function (item) {
|
|
223
|
+
var idName = lodash.isFunction(id) ? id(item) : id; //如果listState中有值,merge处理
|
|
224
|
+
|
|
225
|
+
var stateData = lodash.get(listState, idName);
|
|
226
|
+
|
|
227
|
+
if (!stateData || lodash.isEmpty(stateData) || lodash.isFunction(stateData) || !lodash.isObject(stateData)) {
|
|
228
|
+
return item;
|
|
229
|
+
} //只有是对象(键值对)才合并
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
return lodash.mergeWith(item, stateData, function (objValue, srcValue) {
|
|
233
|
+
//如果是数组,替换
|
|
234
|
+
if (lodash.isArray(objValue) || lodash.isArray(srcValue)) {
|
|
235
|
+
return srcValue;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* 获取Column的valueType,默认"text"
|
|
243
|
+
* @param column
|
|
160
244
|
*/
|
|
161
245
|
|
|
162
246
|
var getColumnValueType = function getColumnValueType(column) {
|
|
163
247
|
return column.formValueType || column.valueType || "text";
|
|
164
248
|
};
|
|
165
|
-
/**
|
|
166
|
-
*获取Column的FormItem name
|
|
167
|
-
* @param column
|
|
249
|
+
/**
|
|
250
|
+
*获取Column的FormItem name
|
|
251
|
+
* @param column
|
|
168
252
|
*/
|
|
169
253
|
|
|
170
254
|
var getColumnFormItemName = function getColumnFormItemName(column) {
|
|
@@ -172,12 +256,12 @@ var getColumnFormItemName = function getColumnFormItemName(column) {
|
|
|
172
256
|
|
|
173
257
|
return ((_column$formItemProps = column.formItemProps) === null || _column$formItemProps === void 0 ? void 0 : _column$formItemProps.name) || column.dataIndex;
|
|
174
258
|
};
|
|
175
|
-
/**
|
|
176
|
-
* 根据Column生成FormItem VNode
|
|
177
|
-
* formFieldProps中的slots参数会以v-slots的形式传递到FormItem的录入组件(子组件)中
|
|
178
|
-
* @param formElementMap
|
|
179
|
-
* @param column
|
|
180
|
-
* @param needRules
|
|
259
|
+
/**
|
|
260
|
+
* 根据Column生成FormItem VNode
|
|
261
|
+
* formFieldProps中的slots参数会以v-slots的形式传递到FormItem的录入组件(子组件)中
|
|
262
|
+
* @param formElementMap
|
|
263
|
+
* @param column
|
|
264
|
+
* @param needRules
|
|
181
265
|
*/
|
|
182
266
|
|
|
183
267
|
var getFormItemEl = function getFormItemEl(formElementMap, column) {
|
|
@@ -202,11 +286,11 @@ var getFormItemEl = function getFormItemEl(formElementMap, column) {
|
|
|
202
286
|
showProps: column.showProps
|
|
203
287
|
}), (_column$formFieldProp = column.formFieldProps) === null || _column$formFieldProp === void 0 ? void 0 : _column$formFieldProp.slots);
|
|
204
288
|
};
|
|
205
|
-
/**
|
|
206
|
-
* 根据Column生成Item VNode
|
|
207
|
-
* @param elementMap
|
|
208
|
-
* @param column
|
|
209
|
-
* @param value
|
|
289
|
+
/**
|
|
290
|
+
* 根据Column生成Item VNode
|
|
291
|
+
* @param elementMap
|
|
292
|
+
* @param column
|
|
293
|
+
* @param value
|
|
210
294
|
*/
|
|
211
295
|
|
|
212
296
|
var getItemEl = function getItemEl(elementMap, column, value) {
|
|
@@ -238,44 +322,44 @@ var RequestAction = {
|
|
|
238
322
|
|
|
239
323
|
var proModuleProps = function proModuleProps() {
|
|
240
324
|
return {
|
|
241
|
-
/**
|
|
242
|
-
* module状态
|
|
325
|
+
/**
|
|
326
|
+
* module状态
|
|
243
327
|
*/
|
|
244
328
|
state: {
|
|
245
329
|
type: Object
|
|
246
330
|
},
|
|
247
331
|
|
|
248
|
-
/**
|
|
249
|
-
* 配置(静态)
|
|
332
|
+
/**
|
|
333
|
+
* 配置(静态)
|
|
250
334
|
*/
|
|
251
335
|
columns: {
|
|
252
336
|
type: Array
|
|
253
337
|
},
|
|
254
338
|
|
|
255
|
-
/**
|
|
256
|
-
* 配置(动态)
|
|
257
|
-
* columns动态属性兼容
|
|
339
|
+
/**
|
|
340
|
+
* 配置(动态)
|
|
341
|
+
* columns动态属性兼容
|
|
258
342
|
*/
|
|
259
343
|
columnState: {
|
|
260
344
|
type: Object
|
|
261
345
|
},
|
|
262
346
|
|
|
263
|
-
/**
|
|
264
|
-
* 展示组件集
|
|
347
|
+
/**
|
|
348
|
+
* 展示组件集
|
|
265
349
|
*/
|
|
266
350
|
elementMap: {
|
|
267
351
|
type: Object
|
|
268
352
|
},
|
|
269
353
|
|
|
270
|
-
/**
|
|
271
|
-
* 录入组件集
|
|
354
|
+
/**
|
|
355
|
+
* 录入组件集
|
|
272
356
|
*/
|
|
273
357
|
formElementMap: {
|
|
274
358
|
type: Object
|
|
275
359
|
},
|
|
276
360
|
|
|
277
|
-
/**
|
|
278
|
-
* requests
|
|
361
|
+
/**
|
|
362
|
+
* requests
|
|
279
363
|
*/
|
|
280
364
|
requests: {
|
|
281
365
|
type: Array
|
|
@@ -286,27 +370,15 @@ var proModuleProps = function proModuleProps() {
|
|
|
286
370
|
var ProModule = vue.defineComponent({
|
|
287
371
|
props: _objectSpread2({}, proModuleProps()),
|
|
288
372
|
setup: function setup(props, _ref) {
|
|
289
|
-
var slots = _ref.slots
|
|
373
|
+
var slots = _ref.slots,
|
|
374
|
+
expose = _ref.expose;
|
|
290
375
|
|
|
291
|
-
/**
|
|
292
|
-
* columns columnState 合并
|
|
376
|
+
/**
|
|
377
|
+
* columns columnState 合并
|
|
293
378
|
*/
|
|
294
379
|
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;
|
|
380
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
381
|
+
return getColumnFormItemName(item);
|
|
310
382
|
});
|
|
311
383
|
});
|
|
312
384
|
/*********************************** 渲染组件 ***************************************/
|
|
@@ -460,6 +532,10 @@ var ProModule = vue.defineComponent({
|
|
|
460
532
|
requests: props.requests,
|
|
461
533
|
sendRequest: sendRequest
|
|
462
534
|
});
|
|
535
|
+
expose({
|
|
536
|
+
sendEvent: sendEvent,
|
|
537
|
+
sendRequest: sendRequest
|
|
538
|
+
});
|
|
463
539
|
return function () {
|
|
464
540
|
var _slots$default;
|
|
465
541
|
|
|
@@ -542,6 +618,11 @@ exports.CurdAddAction = void 0;
|
|
|
542
618
|
CurdAddAction["CONTINUE"] = "CONTINUE";
|
|
543
619
|
})(exports.CurdAddAction || (exports.CurdAddAction = {}));
|
|
544
620
|
|
|
621
|
+
var defaultPage = {
|
|
622
|
+
page: 1,
|
|
623
|
+
pageSize: 10
|
|
624
|
+
};
|
|
625
|
+
|
|
545
626
|
var proCurdProps = function proCurdProps() {
|
|
546
627
|
return {
|
|
547
628
|
/**
|
|
@@ -578,7 +659,8 @@ var proCurdProps = function proCurdProps() {
|
|
|
578
659
|
var Curd = vue.defineComponent({
|
|
579
660
|
props: _objectSpread2({}, proCurdProps()),
|
|
580
661
|
setup: function setup(props, _ref) {
|
|
581
|
-
var slots = _ref.slots
|
|
662
|
+
var slots = _ref.slots,
|
|
663
|
+
expose = _ref.expose;
|
|
582
664
|
|
|
583
665
|
var _ref2 = useProModule(),
|
|
584
666
|
columns = _ref2.columns,
|
|
@@ -647,12 +729,18 @@ var Curd = vue.defineComponent({
|
|
|
647
729
|
var sendCurdEvent = function sendCurdEvent(event) {
|
|
648
730
|
sendEvent({
|
|
649
731
|
type: event.action,
|
|
650
|
-
payload: lodash.omit(event, "action")
|
|
732
|
+
payload: lodash.omit(event, "action", "source"),
|
|
733
|
+
source: event.source
|
|
651
734
|
});
|
|
652
735
|
}; //事件订阅
|
|
653
736
|
|
|
654
737
|
|
|
655
738
|
useModuleEvent(function (event) {
|
|
739
|
+
//如果当前event存在source 不处理
|
|
740
|
+
if (event.source) {
|
|
741
|
+
return;
|
|
742
|
+
}
|
|
743
|
+
|
|
656
744
|
var action = event.type;
|
|
657
745
|
var _ref3 = event.payload,
|
|
658
746
|
type = _ref3.type,
|
|
@@ -729,6 +817,11 @@ var Curd = vue.defineComponent({
|
|
|
729
817
|
descProps: descProps,
|
|
730
818
|
modalProps: modalProps
|
|
731
819
|
});
|
|
820
|
+
expose({
|
|
821
|
+
sendCurdEvent: sendCurdEvent,
|
|
822
|
+
getOperate: getOperate,
|
|
823
|
+
refreshList: handleSearch
|
|
824
|
+
});
|
|
732
825
|
return function () {
|
|
733
826
|
var _slots$default;
|
|
734
827
|
|
|
@@ -745,7 +838,10 @@ var ProCurd = vue.defineComponent({
|
|
|
745
838
|
setup: function setup(props, _ref4) {
|
|
746
839
|
var _curdOperateOpts;
|
|
747
840
|
|
|
748
|
-
var slots = _ref4.slots
|
|
841
|
+
var slots = _ref4.slots,
|
|
842
|
+
expose = _ref4.expose;
|
|
843
|
+
var moduleRef = vue.ref();
|
|
844
|
+
var curdRef = vue.ref();
|
|
749
845
|
var curdState = props.curdState || vue.reactive({
|
|
750
846
|
detailData: {}
|
|
751
847
|
});
|
|
@@ -797,18 +893,383 @@ var ProCurd = vue.defineComponent({
|
|
|
797
893
|
},
|
|
798
894
|
label: "删除"
|
|
799
895
|
}), _curdOperateOpts);
|
|
896
|
+
/****************************** columns分类 *************************************/
|
|
897
|
+
|
|
800
898
|
var requests = lodash.map(props.operates, function (item) {
|
|
801
899
|
var curdOpts = lodash.get(curdOperateOpts, item.action);
|
|
802
900
|
return _objectSpread2(_objectSpread2({}, curdOpts), item);
|
|
803
901
|
});
|
|
804
902
|
var moduleKeys = lodash.keys(lodash.omit(ProModule.props, "state", "requests"));
|
|
903
|
+
expose({
|
|
904
|
+
moduleRef: moduleRef,
|
|
905
|
+
curdRef: curdRef
|
|
906
|
+
});
|
|
907
|
+
return function () {
|
|
908
|
+
return vue.createVNode(ProModule, vue.mergeProps({
|
|
909
|
+
"ref": moduleRef
|
|
910
|
+
}, lodash.pick(props, moduleKeys), {
|
|
911
|
+
"state": curdState,
|
|
912
|
+
"requests": requests
|
|
913
|
+
}), {
|
|
914
|
+
"default": function _default() {
|
|
915
|
+
return [vue.createVNode(Curd, vue.mergeProps({
|
|
916
|
+
"ref": curdRef
|
|
917
|
+
}, lodash.omit.apply(void 0, [props].concat(_toConsumableArray(moduleKeys), ["curdState", "operates"])), {
|
|
918
|
+
"operates": requests
|
|
919
|
+
}), slots)];
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
};
|
|
923
|
+
}
|
|
924
|
+
});
|
|
925
|
+
|
|
926
|
+
var modalCurdProps = function modalCurdProps() {
|
|
927
|
+
return {
|
|
928
|
+
defaultAddRecord: {
|
|
929
|
+
type: Object
|
|
930
|
+
}
|
|
931
|
+
};
|
|
932
|
+
};
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* 事件处理
|
|
936
|
+
*/
|
|
937
|
+
var ModalCurd = vue.defineComponent({
|
|
938
|
+
props: _objectSpread2({}, modalCurdProps()),
|
|
939
|
+
setup: function setup(props) {
|
|
940
|
+
var _listProps$value;
|
|
941
|
+
|
|
942
|
+
var _useProModule = useProModule(),
|
|
943
|
+
dispatch = _useProModule.dispatch,
|
|
944
|
+
sendRequest = _useProModule.sendRequest;
|
|
945
|
+
|
|
946
|
+
var _useProCurd = useProCurd(),
|
|
947
|
+
rowKey = _useProCurd.rowKey,
|
|
948
|
+
curdState = _useProCurd.curdState,
|
|
949
|
+
listProps = _useProCurd.listProps,
|
|
950
|
+
getOperate = _useProCurd.getOperate,
|
|
951
|
+
refreshList = _useProCurd.refreshList;
|
|
952
|
+
|
|
953
|
+
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)); //发送详情接口
|
|
954
|
+
|
|
955
|
+
var sendDetailRequest = function sendDetailRequest(record) {
|
|
956
|
+
var operateOpts = getOperate(exports.CurdAction.DETAIL);
|
|
957
|
+
|
|
958
|
+
if (operateOpts !== null && operateOpts !== void 0 && operateOpts.actor) {
|
|
959
|
+
//如果注册了详情接口 发起请求
|
|
960
|
+
sendRequest(exports.CurdAction.DETAIL, record, rowKey);
|
|
961
|
+
} else {
|
|
962
|
+
//直接使用当前record作为详情数据
|
|
963
|
+
dispatch({
|
|
964
|
+
type: "detailData",
|
|
965
|
+
payload: record
|
|
966
|
+
});
|
|
967
|
+
}
|
|
968
|
+
};
|
|
969
|
+
|
|
970
|
+
var dealDetail = function dealDetail(subAction, _ref) {
|
|
971
|
+
var record = _ref.record;
|
|
972
|
+
|
|
973
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
974
|
+
dispatch({
|
|
975
|
+
type: "mode",
|
|
976
|
+
payload: exports.CurdCurrentMode.DETAIL
|
|
977
|
+
});
|
|
978
|
+
sendDetailRequest(record);
|
|
979
|
+
}
|
|
980
|
+
};
|
|
981
|
+
|
|
982
|
+
var dealAdd = function dealAdd(subAction) {
|
|
983
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
984
|
+
dispatch({
|
|
985
|
+
type: "mode",
|
|
986
|
+
payload: exports.CurdCurrentMode.ADD
|
|
987
|
+
});
|
|
988
|
+
dispatch({
|
|
989
|
+
type: "detailData",
|
|
990
|
+
payload: props.defaultAddRecord || {}
|
|
991
|
+
});
|
|
992
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
993
|
+
//添加成功
|
|
994
|
+
pageState.page = 1; //重置当前页数
|
|
995
|
+
//刷新List
|
|
996
|
+
|
|
997
|
+
refreshList({
|
|
998
|
+
page: 1
|
|
999
|
+
});
|
|
1000
|
+
|
|
1001
|
+
if (curdState.addAction === exports.CurdAddAction.CONTINUE) {
|
|
1002
|
+
dispatch({
|
|
1003
|
+
type: "detailData",
|
|
1004
|
+
payload: props.defaultAddRecord || {}
|
|
1005
|
+
});
|
|
1006
|
+
} else {
|
|
1007
|
+
dispatch({
|
|
1008
|
+
type: "mode",
|
|
1009
|
+
payload: undefined
|
|
1010
|
+
});
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
};
|
|
1014
|
+
|
|
1015
|
+
var dealEdit = function dealEdit(subAction, _ref2) {
|
|
1016
|
+
var record = _ref2.record;
|
|
1017
|
+
|
|
1018
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1019
|
+
dispatch({
|
|
1020
|
+
type: "mode",
|
|
1021
|
+
payload: exports.CurdCurrentMode.EDIT
|
|
1022
|
+
});
|
|
1023
|
+
sendDetailRequest(record);
|
|
1024
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1025
|
+
// 编辑成功
|
|
1026
|
+
dispatch({
|
|
1027
|
+
type: "mode",
|
|
1028
|
+
payload: undefined
|
|
1029
|
+
}); //刷新列表
|
|
1030
|
+
|
|
1031
|
+
refreshList();
|
|
1032
|
+
}
|
|
1033
|
+
};
|
|
1034
|
+
|
|
1035
|
+
var dealDelete = function dealDelete(subAction) {
|
|
1036
|
+
if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1037
|
+
//刷新列表
|
|
1038
|
+
refreshList();
|
|
1039
|
+
}
|
|
1040
|
+
};
|
|
1041
|
+
|
|
1042
|
+
useModuleEvent(function (_ref3) {
|
|
1043
|
+
var type = _ref3.type,
|
|
1044
|
+
payload = _ref3.payload,
|
|
1045
|
+
source = _ref3.source;
|
|
1046
|
+
|
|
1047
|
+
if (source) {
|
|
1048
|
+
return;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
var action = type;
|
|
1052
|
+
var subAction = payload === null || payload === void 0 ? void 0 : payload.type;
|
|
1053
|
+
var record = payload === null || payload === void 0 ? void 0 : payload.record;
|
|
1054
|
+
|
|
1055
|
+
if (action === RequestAction.Success) {
|
|
1056
|
+
//覆盖
|
|
1057
|
+
action = lodash.get(payload, ["requestOpts", "action"]);
|
|
1058
|
+
subAction = exports.CurdSubAction.SUCCESS;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
switch (action) {
|
|
1062
|
+
case exports.CurdAction.DETAIL:
|
|
1063
|
+
dealDetail(subAction, {
|
|
1064
|
+
record: record
|
|
1065
|
+
});
|
|
1066
|
+
break;
|
|
1067
|
+
|
|
1068
|
+
case exports.CurdAction.ADD:
|
|
1069
|
+
dealAdd(subAction);
|
|
1070
|
+
break;
|
|
1071
|
+
|
|
1072
|
+
case exports.CurdAction.EDIT:
|
|
1073
|
+
dealEdit(subAction, {
|
|
1074
|
+
record: record
|
|
1075
|
+
});
|
|
1076
|
+
break;
|
|
1077
|
+
|
|
1078
|
+
case exports.CurdAction.DELETE:
|
|
1079
|
+
dealDelete(subAction);
|
|
1080
|
+
break;
|
|
1081
|
+
}
|
|
1082
|
+
});
|
|
1083
|
+
return function () {
|
|
1084
|
+
return null;
|
|
1085
|
+
};
|
|
1086
|
+
}
|
|
1087
|
+
});
|
|
1088
|
+
var ProModalCurd = vue.defineComponent({
|
|
1089
|
+
props: _objectSpread2(_objectSpread2({}, ProCurd.props), ModalCurd.props),
|
|
1090
|
+
setup: function setup(props, _ref4) {
|
|
1091
|
+
var slots = _ref4.slots;
|
|
1092
|
+
var invalidKeys = lodash.keys(ModalCurd.props);
|
|
805
1093
|
return function () {
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
1094
|
+
var _slots$default;
|
|
1095
|
+
|
|
1096
|
+
return vue.createVNode(ProCurd, lodash.omit(props, invalidKeys), {
|
|
1097
|
+
"default": function _default() {
|
|
1098
|
+
return [vue.createVNode(ModalCurd, lodash.pick(props, invalidKeys), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1099
|
+
}
|
|
1100
|
+
});
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
});
|
|
1104
|
+
|
|
1105
|
+
var pageCurdProps = function pageCurdProps() {
|
|
1106
|
+
return {
|
|
1107
|
+
defaultAddRecord: {
|
|
1108
|
+
type: Object
|
|
1109
|
+
},
|
|
1110
|
+
routeBack: {
|
|
1111
|
+
type: Function
|
|
1112
|
+
}
|
|
1113
|
+
};
|
|
1114
|
+
};
|
|
1115
|
+
|
|
1116
|
+
var PageCurd = vue.defineComponent({
|
|
1117
|
+
props: _objectSpread2({}, pageCurdProps()),
|
|
1118
|
+
setup: function setup(props) {
|
|
1119
|
+
var router = vueRouter.useRouter();
|
|
1120
|
+
var route = vueRouter.useRoute();
|
|
1121
|
+
|
|
1122
|
+
var _useProModule = useProModule(),
|
|
1123
|
+
dispatch = _useProModule.dispatch,
|
|
1124
|
+
sendRequest = _useProModule.sendRequest;
|
|
1125
|
+
|
|
1126
|
+
var _useProCurd = useProCurd(),
|
|
1127
|
+
rowKey = _useProCurd.rowKey,
|
|
1128
|
+
curdState = _useProCurd.curdState;
|
|
1129
|
+
|
|
1130
|
+
var dealList = function dealList(subAction) {
|
|
1131
|
+
if (subAction === exports.CurdSubAction.PAGE) {
|
|
1132
|
+
//其实就是个重置过程
|
|
1133
|
+
dispatch({
|
|
1134
|
+
type: "mode",
|
|
1135
|
+
payload: undefined
|
|
1136
|
+
});
|
|
1137
|
+
dispatch({
|
|
1138
|
+
type: "detailData",
|
|
1139
|
+
payload: {}
|
|
1140
|
+
});
|
|
1141
|
+
dispatch({
|
|
1142
|
+
type: "detailLoading",
|
|
1143
|
+
payload: false
|
|
1144
|
+
});
|
|
1145
|
+
dispatch({
|
|
1146
|
+
type: "addAction",
|
|
1147
|
+
payload: undefined
|
|
1148
|
+
});
|
|
1149
|
+
}
|
|
1150
|
+
};
|
|
1151
|
+
|
|
1152
|
+
var dealDetail = function dealDetail(subAction, _ref) {
|
|
1153
|
+
var record = _ref.record;
|
|
1154
|
+
|
|
1155
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1156
|
+
router.push({
|
|
1157
|
+
path: "".concat(route.path, "/detail"),
|
|
1158
|
+
query: lodash.pick(record, rowKey)
|
|
1159
|
+
});
|
|
1160
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1161
|
+
dispatch({
|
|
1162
|
+
type: "mode",
|
|
1163
|
+
payload: exports.CurdCurrentMode.DETAIL
|
|
1164
|
+
});
|
|
1165
|
+
sendRequest(exports.CurdAction.DETAIL, route.query, rowKey);
|
|
1166
|
+
}
|
|
1167
|
+
};
|
|
1168
|
+
|
|
1169
|
+
var dealAdd = function dealAdd(subAction) {
|
|
1170
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1171
|
+
router.push({
|
|
1172
|
+
path: "".concat(route.path, "/add")
|
|
1173
|
+
});
|
|
1174
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1175
|
+
dispatch({
|
|
1176
|
+
type: "mode",
|
|
1177
|
+
payload: exports.CurdCurrentMode.ADD
|
|
1178
|
+
});
|
|
1179
|
+
dispatch({
|
|
1180
|
+
type: "detailData",
|
|
1181
|
+
payload: props.defaultAddRecord || {}
|
|
1182
|
+
});
|
|
1183
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1184
|
+
if (curdState.addAction === exports.CurdAddAction.CONTINUE) {
|
|
1185
|
+
dispatch({
|
|
1186
|
+
type: "detailData",
|
|
1187
|
+
payload: props.defaultAddRecord || {}
|
|
1188
|
+
});
|
|
1189
|
+
} else {
|
|
1190
|
+
props.routeBack ? props.routeBack(exports.CurdAction.ADD) : router.go(-1);
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
1194
|
+
|
|
1195
|
+
var dealEdit = function dealEdit(subAction, _ref2) {
|
|
1196
|
+
var record = _ref2.record;
|
|
1197
|
+
|
|
1198
|
+
if (subAction === exports.CurdSubAction.EMIT) {
|
|
1199
|
+
router.push({
|
|
1200
|
+
path: "".concat(route.path, "/edit"),
|
|
1201
|
+
query: lodash.pick(record, rowKey)
|
|
1202
|
+
});
|
|
1203
|
+
} else if (subAction === exports.CurdSubAction.PAGE) {
|
|
1204
|
+
dispatch({
|
|
1205
|
+
type: "mode",
|
|
1206
|
+
payload: exports.CurdCurrentMode.EDIT
|
|
1207
|
+
});
|
|
1208
|
+
sendRequest(exports.CurdAction.DETAIL, route.query, rowKey);
|
|
1209
|
+
} else if (subAction === exports.CurdSubAction.SUCCESS) {
|
|
1210
|
+
props.routeBack ? props.routeBack(exports.CurdAction.EDIT) : router.go(-1);
|
|
1211
|
+
}
|
|
1212
|
+
};
|
|
1213
|
+
|
|
1214
|
+
useModuleEvent(function (_ref3) {
|
|
1215
|
+
var type = _ref3.type,
|
|
1216
|
+
payload = _ref3.payload,
|
|
1217
|
+
source = _ref3.source;
|
|
1218
|
+
|
|
1219
|
+
if (source) {
|
|
1220
|
+
return;
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1223
|
+
var action = type;
|
|
1224
|
+
var subAction = payload === null || payload === void 0 ? void 0 : payload.type;
|
|
1225
|
+
var record = payload === null || payload === void 0 ? void 0 : payload.record;
|
|
1226
|
+
|
|
1227
|
+
if (action === RequestAction.Success) {
|
|
1228
|
+
//覆盖
|
|
1229
|
+
action = lodash.get(payload, ["requestOpts", "action"]);
|
|
1230
|
+
subAction = exports.CurdSubAction.SUCCESS;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
switch (action) {
|
|
1234
|
+
case exports.CurdAction.LIST:
|
|
1235
|
+
dealList(subAction);
|
|
1236
|
+
break;
|
|
1237
|
+
|
|
1238
|
+
case exports.CurdAction.DETAIL:
|
|
1239
|
+
dealDetail(subAction, {
|
|
1240
|
+
record: record
|
|
1241
|
+
});
|
|
1242
|
+
break;
|
|
1243
|
+
|
|
1244
|
+
case exports.CurdAction.ADD:
|
|
1245
|
+
dealAdd(subAction);
|
|
1246
|
+
break;
|
|
1247
|
+
|
|
1248
|
+
case exports.CurdAction.EDIT:
|
|
1249
|
+
dealEdit(subAction, {
|
|
1250
|
+
record: record
|
|
1251
|
+
});
|
|
1252
|
+
break;
|
|
1253
|
+
}
|
|
1254
|
+
});
|
|
1255
|
+
return function () {
|
|
1256
|
+
return null;
|
|
1257
|
+
};
|
|
1258
|
+
}
|
|
1259
|
+
});
|
|
1260
|
+
var ProPageCurd = vue.defineComponent({
|
|
1261
|
+
props: _objectSpread2(_objectSpread2({}, ProCurd.props), PageCurd.props),
|
|
1262
|
+
setup: function setup(props, _ref4) {
|
|
1263
|
+
var slots = _ref4.slots;
|
|
1264
|
+
var invalidKeys = lodash.keys(PageCurd.props);
|
|
1265
|
+
return function () {
|
|
1266
|
+
var _slots$default;
|
|
1267
|
+
|
|
1268
|
+
return vue.createVNode(ProCurd, lodash.omit(props, invalidKeys), {
|
|
1269
|
+
"default": function _default() {
|
|
1270
|
+
return [vue.createVNode(PageCurd, lodash.pick(props, invalidKeys), null), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1271
|
+
}
|
|
1272
|
+
});
|
|
812
1273
|
};
|
|
813
1274
|
}
|
|
814
1275
|
});
|
|
@@ -876,6 +1337,9 @@ var proFormProps = function proFormProps() {
|
|
|
876
1337
|
columns: {
|
|
877
1338
|
type: Array
|
|
878
1339
|
},
|
|
1340
|
+
columnState: {
|
|
1341
|
+
type: Object
|
|
1342
|
+
},
|
|
879
1343
|
|
|
880
1344
|
/**
|
|
881
1345
|
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
@@ -941,17 +1405,9 @@ var ProForm = vue.defineComponent({
|
|
|
941
1405
|
var readonly = vue.computed(function () {
|
|
942
1406
|
return props.readonly;
|
|
943
1407
|
});
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
var formItemVNodes = vue.computed(function () {
|
|
949
|
-
if (lodash.size(props.formElementMap) <= 0) {
|
|
950
|
-
return [];
|
|
951
|
-
}
|
|
952
|
-
|
|
953
|
-
return lodash.map(props.columns, function (item) {
|
|
954
|
-
return getFormItemEl(props.formElementMap, item, props.needRules);
|
|
1408
|
+
var columns = vue.computed(function () {
|
|
1409
|
+
return mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1410
|
+
return getColumnFormItemName(item);
|
|
955
1411
|
});
|
|
956
1412
|
});
|
|
957
1413
|
provideProForm(_objectSpread2({
|
|
@@ -961,14 +1417,16 @@ var ProForm = vue.defineComponent({
|
|
|
961
1417
|
disableState: disableState,
|
|
962
1418
|
//
|
|
963
1419
|
elementMap: props.elementMap,
|
|
1420
|
+
formElementMap: props.formElementMap,
|
|
964
1421
|
//
|
|
965
1422
|
readonly: readonly,
|
|
966
1423
|
//
|
|
967
|
-
|
|
1424
|
+
columns: columns
|
|
968
1425
|
}, props.provideExtra));
|
|
969
1426
|
return function () {
|
|
970
1427
|
var _slots$default;
|
|
971
1428
|
|
|
1429
|
+
// console.log("########", columns.value, props.columns, props.columnState);
|
|
972
1430
|
return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
|
|
973
1431
|
};
|
|
974
1432
|
}
|
|
@@ -1089,51 +1547,6 @@ var ProSearchForm = vue.defineComponent({
|
|
|
1089
1547
|
}
|
|
1090
1548
|
});
|
|
1091
1549
|
|
|
1092
|
-
/**
|
|
1093
|
-
* 剔除showState或showStateRules规则为!true的值
|
|
1094
|
-
* @param values
|
|
1095
|
-
* @param showState
|
|
1096
|
-
* @param showStateRules
|
|
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
|
-
}
|
|
1105
|
-
|
|
1106
|
-
if (showStateRules) {
|
|
1107
|
-
var _invalidKeys = lodash.filter(lodash.keys(showStateRules), function (key) {
|
|
1108
|
-
return !showStateRules[key](values);
|
|
1109
|
-
});
|
|
1110
|
-
|
|
1111
|
-
return lodash.omit(values, _invalidKeys);
|
|
1112
|
-
}
|
|
1113
|
-
|
|
1114
|
-
return values;
|
|
1115
|
-
};
|
|
1116
|
-
/**
|
|
1117
|
-
* string类型的path转为arr
|
|
1118
|
-
* @param path
|
|
1119
|
-
*/
|
|
1120
|
-
|
|
1121
|
-
var convertPathToList = function convertPathToList(path) {
|
|
1122
|
-
if (!path) {
|
|
1123
|
-
return undefined;
|
|
1124
|
-
}
|
|
1125
|
-
|
|
1126
|
-
if (lodash.isArray(path)) {
|
|
1127
|
-
return path;
|
|
1128
|
-
}
|
|
1129
|
-
|
|
1130
|
-
if (path && lodash.isString(path) && path.indexOf(".") > 0) {
|
|
1131
|
-
return lodash.split(path, ".");
|
|
1132
|
-
}
|
|
1133
|
-
|
|
1134
|
-
return [path];
|
|
1135
|
-
};
|
|
1136
|
-
|
|
1137
1550
|
/**
|
|
1138
1551
|
* ProFormList ctx
|
|
1139
1552
|
*/
|
|
@@ -1350,8 +1763,8 @@ var proTableProps = function proTableProps() {
|
|
|
1350
1763
|
type: String
|
|
1351
1764
|
},
|
|
1352
1765
|
|
|
1353
|
-
/**
|
|
1354
|
-
* 公共column,会merge到columns item中
|
|
1766
|
+
/**
|
|
1767
|
+
* 公共column,会merge到columns item中
|
|
1355
1768
|
*/
|
|
1356
1769
|
column: {
|
|
1357
1770
|
type: Object
|
|
@@ -1360,23 +1773,40 @@ var proTableProps = function proTableProps() {
|
|
|
1360
1773
|
columns: {
|
|
1361
1774
|
type: Array
|
|
1362
1775
|
},
|
|
1776
|
+
columnState: {
|
|
1777
|
+
type: Object
|
|
1778
|
+
},
|
|
1363
1779
|
|
|
1364
|
-
/**
|
|
1365
|
-
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
1780
|
+
/**
|
|
1781
|
+
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
1366
1782
|
*/
|
|
1367
1783
|
elementMap: {
|
|
1368
1784
|
type: Object
|
|
1369
1785
|
},
|
|
1370
1786
|
|
|
1371
|
-
/**
|
|
1372
|
-
* loading
|
|
1787
|
+
/**
|
|
1788
|
+
* loading
|
|
1373
1789
|
*/
|
|
1374
1790
|
loading: {
|
|
1375
1791
|
type: Boolean
|
|
1376
1792
|
},
|
|
1377
1793
|
|
|
1378
|
-
/**
|
|
1379
|
-
*
|
|
1794
|
+
/**
|
|
1795
|
+
* 序号
|
|
1796
|
+
*/
|
|
1797
|
+
serialNumber: {
|
|
1798
|
+
type: Boolean
|
|
1799
|
+
},
|
|
1800
|
+
|
|
1801
|
+
/**
|
|
1802
|
+
* 分页
|
|
1803
|
+
*/
|
|
1804
|
+
pagination: {
|
|
1805
|
+
type: Object
|
|
1806
|
+
},
|
|
1807
|
+
|
|
1808
|
+
/**
|
|
1809
|
+
* provide传递
|
|
1380
1810
|
*/
|
|
1381
1811
|
provideExtra: {
|
|
1382
1812
|
type: Object
|
|
@@ -1389,8 +1819,11 @@ var ProTable = vue.defineComponent({
|
|
|
1389
1819
|
setup: function setup(props, _ref) {
|
|
1390
1820
|
var slots = _ref.slots;
|
|
1391
1821
|
var columns = vue.computed(function () {
|
|
1392
|
-
|
|
1393
|
-
|
|
1822
|
+
var mergeColumns = mergeStateToList(props.columns, props.columnState, function (item) {
|
|
1823
|
+
return item.dataIndex;
|
|
1824
|
+
}); //根据valueType选择对应的展示组件
|
|
1825
|
+
|
|
1826
|
+
var columns = lodash.map(mergeColumns, function (item) {
|
|
1394
1827
|
//merge公共item
|
|
1395
1828
|
var nextItem = lodash.merge(props.column, item);
|
|
1396
1829
|
|
|
@@ -1408,7 +1841,29 @@ var ProTable = vue.defineComponent({
|
|
|
1408
1841
|
}
|
|
1409
1842
|
|
|
1410
1843
|
return nextItem;
|
|
1411
|
-
});
|
|
1844
|
+
}); //处理序号
|
|
1845
|
+
|
|
1846
|
+
if (props.serialNumber) {
|
|
1847
|
+
columns.unshift(_objectSpread2(_objectSpread2({
|
|
1848
|
+
title: "序号",
|
|
1849
|
+
dataIndex: "serialNumber",
|
|
1850
|
+
width: 80
|
|
1851
|
+
}, props.column), {}, {
|
|
1852
|
+
// @ts-ignore
|
|
1853
|
+
customRender: function customRender(_ref3) {
|
|
1854
|
+
var _props$pagination, _props$pagination2;
|
|
1855
|
+
|
|
1856
|
+
var index = _ref3.index;
|
|
1857
|
+
|
|
1858
|
+
if ((_props$pagination = props.pagination) !== null && _props$pagination !== void 0 && _props$pagination.page && (_props$pagination2 = props.pagination) !== null && _props$pagination2 !== void 0 && _props$pagination2.pageSize) {
|
|
1859
|
+
return props.pagination.pageSize * (props.pagination.page - 1) + index + 1;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
return index + 1;
|
|
1863
|
+
}
|
|
1864
|
+
}));
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1412
1867
|
var operate = props.operate; //处理operate
|
|
1413
1868
|
|
|
1414
1869
|
if (operate && operate.items && lodash.some(operate.items, function (item) {
|
|
@@ -1427,8 +1882,8 @@ var ProTable = vue.defineComponent({
|
|
|
1427
1882
|
dataIndex: "operate",
|
|
1428
1883
|
fixed: "right"
|
|
1429
1884
|
}, props.column), {}, {
|
|
1430
|
-
customRender: function customRender(
|
|
1431
|
-
var record =
|
|
1885
|
+
customRender: function customRender(_ref4) {
|
|
1886
|
+
var record = _ref4.record;
|
|
1432
1887
|
var validItems = lodash.filter(sortedItems, function (item) {
|
|
1433
1888
|
if (item.show && lodash.isFunction(item.show)) {
|
|
1434
1889
|
return item.show(record);
|
|
@@ -1470,7 +1925,7 @@ var ProTable = vue.defineComponent({
|
|
|
1470
1925
|
return function () {
|
|
1471
1926
|
var _slots$default;
|
|
1472
1927
|
|
|
1473
|
-
return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots
|
|
1928
|
+
return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
|
|
1474
1929
|
};
|
|
1475
1930
|
}
|
|
1476
1931
|
});
|
|
@@ -1478,17 +1933,22 @@ var ProTable = vue.defineComponent({
|
|
|
1478
1933
|
exports.ProCurd = ProCurd;
|
|
1479
1934
|
exports.ProForm = ProForm;
|
|
1480
1935
|
exports.ProFormList = ProFormList;
|
|
1936
|
+
exports.ProModalCurd = ProModalCurd;
|
|
1481
1937
|
exports.ProModule = ProModule;
|
|
1938
|
+
exports.ProPageCurd = ProPageCurd;
|
|
1482
1939
|
exports.ProSearchForm = ProSearchForm;
|
|
1483
1940
|
exports.ProTable = ProTable;
|
|
1484
1941
|
exports.RequestAction = RequestAction;
|
|
1485
1942
|
exports.convertPathToList = convertPathToList;
|
|
1486
1943
|
exports.createFormItemCompFn = createFormItemCompFn;
|
|
1944
|
+
exports.defaultPage = defaultPage;
|
|
1945
|
+
exports.generateId = generateId;
|
|
1487
1946
|
exports.getColumnFormItemName = getColumnFormItemName;
|
|
1488
1947
|
exports.getColumnValueType = getColumnValueType;
|
|
1489
1948
|
exports.getFormItemEl = getFormItemEl;
|
|
1490
1949
|
exports.getItemEl = getItemEl;
|
|
1491
1950
|
exports.getValidValues = getValidValues;
|
|
1951
|
+
exports.mergeStateToList = mergeStateToList;
|
|
1492
1952
|
exports.provideProCurd = provideProCurd;
|
|
1493
1953
|
exports.provideProModule = provideProModule;
|
|
1494
1954
|
exports.useComposeRequestActor = useComposeRequestActor;
|