@vue-start/element-pro 0.1.1 → 0.2.1
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 +30 -0
- package/dist/index.d.ts +879 -585
- package/dist/index.es.js +257 -967
- package/dist/index.js +258 -973
- package/package.json +2 -3
package/dist/index.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
var elementPlus = require('element-plus');
|
|
7
7
|
var lodash = require('lodash');
|
|
8
|
-
var hooks = require('@vue-start/hooks');
|
|
9
8
|
var pro = require('@vue-start/pro');
|
|
9
|
+
var hooks = require('@vue-start/hooks');
|
|
10
10
|
|
|
11
11
|
function ownKeys(object, enumerableOnly) {
|
|
12
12
|
var keys = Object.keys(object);
|
|
@@ -82,428 +82,176 @@ function _nonIterableSpread() {
|
|
|
82
82
|
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
83
|
}
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
* ProForm ctx
|
|
87
|
-
*/
|
|
88
|
-
var ProFormKey = Symbol("pro-form");
|
|
89
|
-
var useProForm = function useProForm() {
|
|
90
|
-
return vue.inject(ProFormKey);
|
|
91
|
-
};
|
|
92
|
-
var provideProForm = function provideProForm(ctx) {
|
|
93
|
-
vue.provide(ProFormKey, ctx);
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* ProFormList ctx
|
|
97
|
-
*/
|
|
85
|
+
var ProGrid = pro.createGrid(elementPlus.ElRow, elementPlus.ElCol);
|
|
98
86
|
|
|
99
|
-
var
|
|
100
|
-
var
|
|
101
|
-
return
|
|
102
|
-
};
|
|
103
|
-
var provideProFormList = function provideProFormList(ctx) {
|
|
104
|
-
vue.provide(ProFormListKey, ctx);
|
|
87
|
+
var createLoadingId = function createLoadingId() {
|
|
88
|
+
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "comp";
|
|
89
|
+
return prefix + "-" + pro.generateId();
|
|
105
90
|
};
|
|
106
91
|
|
|
107
|
-
var
|
|
92
|
+
var proLoadingProps = function proLoadingProps() {
|
|
108
93
|
return {
|
|
109
|
-
|
|
110
|
-
type:
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
var ProFormItem = vue.defineComponent({
|
|
116
|
-
props: _objectSpread2(_objectSpread2({}, elementPlus.ElFormItem.props), proFormItemProps$1()),
|
|
117
|
-
setup: function setup(props, _ref) {
|
|
118
|
-
var slots = _ref.slots;
|
|
119
|
-
var invalidKeys = lodash.keys(proFormItemProps$1());
|
|
120
|
-
return function () {
|
|
121
|
-
return vue.createVNode(elementPlus.ElFormItem, vue.mergeProps(lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["name", "prop"])), {
|
|
122
|
-
"prop": props.prop || props.name
|
|
123
|
-
}), slots);
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
var proFormProps = function proFormProps() {
|
|
129
|
-
return {
|
|
130
|
-
/**
|
|
131
|
-
* 子组件是否只读样式
|
|
132
|
-
*/
|
|
133
|
-
readonly: {
|
|
134
|
-
type: Boolean,
|
|
135
|
-
"default": undefined
|
|
94
|
+
loading: {
|
|
95
|
+
type: Boolean
|
|
136
96
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
* FormComponent 根据此项来确定组件是否显示
|
|
140
|
-
* rules 根据rules中方法生成showState对象
|
|
141
|
-
*/
|
|
142
|
-
showState: {
|
|
143
|
-
type: Object
|
|
97
|
+
target: {
|
|
98
|
+
type: [String, Object]
|
|
144
99
|
},
|
|
145
|
-
|
|
146
|
-
type:
|
|
100
|
+
body: {
|
|
101
|
+
type: Boolean
|
|
147
102
|
},
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
* 是否只读
|
|
151
|
-
*/
|
|
152
|
-
readonlyState: {
|
|
153
|
-
type: Object
|
|
103
|
+
fullscreen: {
|
|
104
|
+
type: Boolean
|
|
154
105
|
},
|
|
155
|
-
|
|
156
|
-
type:
|
|
106
|
+
lock: {
|
|
107
|
+
type: Boolean
|
|
157
108
|
},
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
* 是否disabled
|
|
161
|
-
*/
|
|
162
|
-
disableState: {
|
|
163
|
-
type: Object
|
|
109
|
+
text: {
|
|
110
|
+
type: String
|
|
164
111
|
},
|
|
165
|
-
|
|
166
|
-
type:
|
|
112
|
+
spinner: {
|
|
113
|
+
type: String
|
|
167
114
|
},
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
171
|
-
*/
|
|
172
|
-
elementMap: {
|
|
173
|
-
type: Object
|
|
115
|
+
background: {
|
|
116
|
+
type: String
|
|
174
117
|
},
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
* provide传递
|
|
178
|
-
*/
|
|
179
|
-
provideExtra: {
|
|
180
|
-
type: Object
|
|
118
|
+
customClass: {
|
|
119
|
+
type: String
|
|
181
120
|
}
|
|
182
121
|
};
|
|
183
122
|
};
|
|
184
123
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
var
|
|
190
|
-
expose = _ref2.expose,
|
|
191
|
-
emit = _ref2.emit;
|
|
192
|
-
var form = vue.ref();
|
|
193
|
-
var formState = props.model || vue.reactive({}); //组件状态相关
|
|
194
|
-
|
|
195
|
-
var showState = props.showState || vue.reactive({});
|
|
196
|
-
var readonlyState = props.readonlyState || vue.reactive({});
|
|
197
|
-
var disableState = props.disableState || vue.reactive({}); //formState改变情况下,更新 showState,readonlyState,disableState状态
|
|
198
|
-
|
|
124
|
+
var ProLoading = vue.defineComponent({
|
|
125
|
+
props: _objectSpread2({}, proLoadingProps()),
|
|
126
|
+
setup: function setup(props, _ref) {
|
|
127
|
+
var slots = _ref.slots;
|
|
128
|
+
var id = createLoadingId();
|
|
199
129
|
hooks.useEffect(function () {
|
|
200
|
-
if (props.
|
|
201
|
-
|
|
202
|
-
showState[key] = fn(formState);
|
|
203
|
-
});
|
|
130
|
+
if (!props.loading) {
|
|
131
|
+
return;
|
|
204
132
|
}
|
|
205
133
|
|
|
206
|
-
|
|
207
|
-
lodash.forEach(props.readonlyStateRules, function (fn, key) {
|
|
208
|
-
readonlyState[key] = fn(formState);
|
|
209
|
-
});
|
|
210
|
-
}
|
|
134
|
+
var element = props.target;
|
|
211
135
|
|
|
212
|
-
if (
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
136
|
+
if (!slots["default"]) {
|
|
137
|
+
//监听
|
|
138
|
+
if (props.target && lodash.isString(props.target)) {
|
|
139
|
+
element = document.querySelector("#" + props.target);
|
|
140
|
+
}
|
|
141
|
+
} else {
|
|
142
|
+
//包裹
|
|
143
|
+
element = document.getElementById(id);
|
|
216
144
|
}
|
|
217
|
-
}, formState); //转换为ref对象
|
|
218
|
-
|
|
219
|
-
var readonly = vue.computed(function () {
|
|
220
|
-
return props.readonly;
|
|
221
|
-
});
|
|
222
|
-
provideProForm(_objectSpread2({
|
|
223
|
-
formRef: form,
|
|
224
|
-
formState: formState,
|
|
225
|
-
showState: showState,
|
|
226
|
-
readonlyState: readonlyState,
|
|
227
|
-
disableState: disableState,
|
|
228
|
-
//
|
|
229
|
-
elementMap: props.elementMap,
|
|
230
|
-
//
|
|
231
|
-
readonly: readonly
|
|
232
|
-
}, props.provideExtra));
|
|
233
|
-
|
|
234
|
-
var formRef = function formRef(el) {
|
|
235
|
-
var nexEl = _objectSpread2(_objectSpread2({}, el), {}, {
|
|
236
|
-
submit: function submit() {
|
|
237
|
-
var _el$validate;
|
|
238
145
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
//删除不显示的值再触发事件
|
|
243
|
-
var _showValues = pro.getValidValues(formState, showState, props.showStateRules);
|
|
146
|
+
if (!element) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
244
149
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
150
|
+
var instance = elementPlus.ElLoading.service({
|
|
151
|
+
target: element,
|
|
152
|
+
body: props.body,
|
|
153
|
+
fullscreen: props.fullscreen,
|
|
154
|
+
lock: props.lock,
|
|
155
|
+
text: props.text,
|
|
156
|
+
spinner: props.spinner,
|
|
157
|
+
background: props.background,
|
|
158
|
+
customClass: props.customClass
|
|
251
159
|
});
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
|
|
160
|
+
return function () {
|
|
161
|
+
instance && instance.close();
|
|
162
|
+
};
|
|
163
|
+
}, function () {
|
|
164
|
+
return props.loading;
|
|
165
|
+
});
|
|
258
166
|
return function () {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
167
|
+
if (!slots["default"]) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return vue.createVNode("div", {
|
|
172
|
+
"id": id
|
|
173
|
+
}, [slots["default"]()]);
|
|
264
174
|
};
|
|
265
175
|
}
|
|
266
176
|
});
|
|
267
177
|
|
|
268
|
-
var
|
|
178
|
+
var proFormItemProps = function proFormItemProps() {
|
|
269
179
|
return {
|
|
270
|
-
|
|
271
|
-
type: Array
|
|
272
|
-
},
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* 录入控件集合,通过column->valueType 查找对应的录入组件
|
|
276
|
-
*/
|
|
277
|
-
formElementMap: {
|
|
278
|
-
type: Object
|
|
279
|
-
},
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* 是否启用rules验证
|
|
283
|
-
*/
|
|
284
|
-
needRules: {
|
|
285
|
-
type: Boolean,
|
|
286
|
-
"default": true
|
|
180
|
+
name: {
|
|
181
|
+
type: [String, Array]
|
|
287
182
|
}
|
|
288
183
|
};
|
|
289
184
|
};
|
|
290
185
|
|
|
291
|
-
var
|
|
292
|
-
|
|
293
|
-
props: _objectSpread2(_objectSpread2({}, ProForm.props), proSchemaFormProps()),
|
|
186
|
+
var ProFormItem = vue.defineComponent({
|
|
187
|
+
props: _objectSpread2(_objectSpread2({}, elementPlus.ElFormItem.props), proFormItemProps()),
|
|
294
188
|
setup: function setup(props, _ref) {
|
|
295
|
-
var slots = _ref.slots
|
|
296
|
-
|
|
297
|
-
var formItemList = vue.computed(function () {
|
|
298
|
-
if (!props.formElementMap || lodash.size(props.formElementMap) <= 0) {
|
|
299
|
-
return null;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return lodash.map(props.columns, function (item) {
|
|
303
|
-
return pro.getFormItemEl(props.formElementMap, item, props.needRules);
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
var invalidKeys = lodash.keys(proSchemaFormProps());
|
|
189
|
+
var slots = _ref.slots;
|
|
190
|
+
var invalidKeys = lodash.keys(proFormItemProps());
|
|
307
191
|
return function () {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
"ref": function ref(el) {
|
|
312
|
-
return expose(el);
|
|
313
|
-
}
|
|
314
|
-
}, lodash.omit(props, invalidKeys)), _objectSpread2({
|
|
315
|
-
"default": function _default() {
|
|
316
|
-
return [formItemList.value, (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
317
|
-
}
|
|
318
|
-
}, lodash.omit(slots, "default")));
|
|
192
|
+
return vue.createVNode(elementPlus.ElFormItem, vue.mergeProps(lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["name", "prop"])), {
|
|
193
|
+
"prop": props.prop || props.name
|
|
194
|
+
}), slots);
|
|
319
195
|
};
|
|
320
196
|
}
|
|
321
197
|
});
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
})(exports.SearchMode || (exports.SearchMode = {}));
|
|
329
|
-
|
|
330
|
-
var proSearchFormProps = function proSearchFormProps() {
|
|
331
|
-
return {
|
|
332
|
-
/**
|
|
333
|
-
* 初始化触发 onFinish
|
|
334
|
-
*/
|
|
335
|
-
initEmit: {
|
|
336
|
-
type: Boolean,
|
|
337
|
-
"default": true
|
|
338
|
-
},
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* 模式 自动触发或者手动触发 onFinish
|
|
342
|
-
*/
|
|
343
|
-
searchMode: {
|
|
344
|
-
type: String,
|
|
345
|
-
"default": exports.SearchMode.AUTO
|
|
346
|
-
},
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* 需要debounce处理的字段
|
|
350
|
-
*/
|
|
351
|
-
debounceKeys: {
|
|
352
|
-
type: Array
|
|
353
|
-
},
|
|
354
|
-
debounceTime: {
|
|
355
|
-
type: Number,
|
|
356
|
-
"default": 800
|
|
357
|
-
},
|
|
358
|
-
//
|
|
359
|
-
inline: {
|
|
360
|
-
type: Boolean,
|
|
361
|
-
"default": true
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
};
|
|
365
|
-
|
|
366
|
-
var ProSearchForm = vue.defineComponent({
|
|
367
|
-
name: "PSearchForm",
|
|
368
|
-
props: _objectSpread2(_objectSpread2({}, lodash.omit(ProSchemaForm.props, "inline")), proSearchFormProps()),
|
|
369
|
-
setup: function setup(props, _ref) {
|
|
370
|
-
var slots = _ref.slots,
|
|
371
|
-
emit = _ref.emit,
|
|
372
|
-
expose = _ref.expose;
|
|
198
|
+
var Form = vue.defineComponent({
|
|
199
|
+
props: _objectSpread2({}, elementPlus.ElForm.props),
|
|
200
|
+
setup: function setup(props, _ref2) {
|
|
201
|
+
var slots = _ref2.slots,
|
|
202
|
+
emit = _ref2.emit,
|
|
203
|
+
expose = _ref2.expose;
|
|
373
204
|
var formState = props.model || vue.reactive({});
|
|
374
|
-
|
|
375
|
-
var
|
|
376
|
-
var values = vue.toRaw(formState);
|
|
377
|
-
var showValues = pro.getValidValues(values, props.showState, props.showStateRules);
|
|
378
|
-
emit("finish", showValues, values);
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
var debounceFinish = lodash.debounce(function () {
|
|
382
|
-
handleFinish();
|
|
383
|
-
}, props.debounceTime); //初始化
|
|
384
|
-
|
|
205
|
+
var formRef = vue.ref();
|
|
206
|
+
var formMethods = ["clearValidate", "resetFields", "scrollToField", "validate", "validateField", "submit"];
|
|
385
207
|
hooks.useEffect(function () {
|
|
386
|
-
if (
|
|
387
|
-
handleFinish();
|
|
388
|
-
}
|
|
389
|
-
}, []);
|
|
390
|
-
|
|
391
|
-
var isDebounceDataChange = function isDebounceDataChange(state, prevState, debounceKeys) {
|
|
392
|
-
return lodash.some(debounceKeys, function (key) {
|
|
393
|
-
return lodash.get(state, key) !== lodash.get(prevState, key);
|
|
394
|
-
});
|
|
395
|
-
}; //监听
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
hooks.useEffect(function (state, prevState) {
|
|
399
|
-
if (props.searchMode !== exports.SearchMode.AUTO) {
|
|
400
|
-
return;
|
|
401
|
-
} //如果改变的值中包括debounceKeys中注册的 延时触发
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
if (props.debounceKeys && lodash.size(props.debounceKeys) > 0 && isDebounceDataChange(state, prevState, props.debounceKeys)) {
|
|
405
|
-
debounceFinish();
|
|
208
|
+
if (!formRef.value) {
|
|
406
209
|
return;
|
|
407
210
|
}
|
|
408
211
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
212
|
+
formRef.value.submit = function () {
|
|
213
|
+
var _formRef$value;
|
|
214
|
+
|
|
215
|
+
(_formRef$value = formRef.value) === null || _formRef$value === void 0 ? void 0 : _formRef$value.validate(function (isValid, invalidFields) {
|
|
216
|
+
if (isValid) {
|
|
217
|
+
emit("finish", vue.toRaw(formState));
|
|
218
|
+
} else {
|
|
219
|
+
emit("finishFailed", invalidFields);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
}, []);
|
|
224
|
+
expose(pro.createExpose(formMethods, formRef));
|
|
414
225
|
return function () {
|
|
415
|
-
return vue.createVNode(
|
|
416
|
-
"ref":
|
|
417
|
-
|
|
418
|
-
},
|
|
419
|
-
"inline": props.inline
|
|
420
|
-
}, lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["model"])), {
|
|
421
|
-
"needRules": false,
|
|
226
|
+
return vue.createVNode(elementPlus.ElForm, vue.mergeProps({
|
|
227
|
+
"ref": formRef
|
|
228
|
+
}, lodash.omit(props, "model"), {
|
|
422
229
|
"model": formState
|
|
423
230
|
}), slots);
|
|
424
231
|
};
|
|
425
232
|
}
|
|
426
233
|
});
|
|
234
|
+
//emit;
|
|
235
|
+
var ProForm = pro.createForm(Form, ProGrid);
|
|
236
|
+
var ProSearchForm = pro.createSearchForm(ProForm, {
|
|
237
|
+
needRules: {
|
|
238
|
+
type: Boolean,
|
|
239
|
+
"default": false
|
|
240
|
+
},
|
|
241
|
+
inline: {
|
|
242
|
+
type: Boolean,
|
|
243
|
+
"default": true
|
|
244
|
+
}
|
|
245
|
+
});
|
|
427
246
|
|
|
428
|
-
var
|
|
247
|
+
var createFormItemComponent = pro.createFormItemCompFn(ProFormItem, function (value, setValue, disabled) {
|
|
429
248
|
return {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
fieldProps: {
|
|
435
|
-
type: Object
|
|
436
|
-
},
|
|
437
|
-
showProps: {
|
|
438
|
-
type: Object
|
|
439
|
-
}
|
|
249
|
+
modelValue: value,
|
|
250
|
+
"onUpdate:modelValue": setValue,
|
|
251
|
+
clearable: true,
|
|
252
|
+
disabled: disabled
|
|
440
253
|
};
|
|
441
|
-
};
|
|
442
|
-
|
|
443
|
-
var createFormItemComponent = function createFormItemComponent(_ref) {
|
|
444
|
-
var InputComp = _ref.InputComp,
|
|
445
|
-
valueType = _ref.valueType,
|
|
446
|
-
name = _ref.name;
|
|
447
|
-
return vue.defineComponent({
|
|
448
|
-
name: name,
|
|
449
|
-
props: _objectSpread2(_objectSpread2({}, ProFormItem.props), proFormItemProps()),
|
|
450
|
-
setup: function setup(props, _ref2) {
|
|
451
|
-
var slots = _ref2.slots;
|
|
452
|
-
|
|
453
|
-
var _useProForm = useProForm(),
|
|
454
|
-
formState = _useProForm.formState,
|
|
455
|
-
showState = _useProForm.showState,
|
|
456
|
-
readonlyState = _useProForm.readonlyState,
|
|
457
|
-
disableState = _useProForm.disableState,
|
|
458
|
-
formReadonly = _useProForm.readonly,
|
|
459
|
-
elementMap = _useProForm.elementMap;
|
|
460
|
-
|
|
461
|
-
var formListCtx = useProFormList(); //优先级 props.readonly > readonlyState > formContext.readonly
|
|
462
|
-
|
|
463
|
-
var readonly = vue.computed(function () {
|
|
464
|
-
if (lodash.isBoolean(props.readonly)) {
|
|
465
|
-
return props.readonly;
|
|
466
|
-
} else if (lodash.isBoolean(readonlyState[props.name])) {
|
|
467
|
-
return readonlyState[props.name];
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
return formReadonly.value;
|
|
471
|
-
});
|
|
472
|
-
var nameList = pro.convertPathToList(props.name);
|
|
473
|
-
var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
|
|
474
|
-
var invalidKeys = lodash.keys(proFormItemProps());
|
|
475
|
-
return function () {
|
|
476
|
-
var show = lodash.get(showState, props.name);
|
|
477
|
-
|
|
478
|
-
if (lodash.isBoolean(show) && !show) {
|
|
479
|
-
return null;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
var value = lodash.get(formState, path); //valueType对应的展示组件
|
|
483
|
-
|
|
484
|
-
var ShowComp = lodash.get(elementMap, valueType);
|
|
485
|
-
return vue.createVNode(ProFormItem, vue.mergeProps(lodash.omit.apply(void 0, [props].concat(_toConsumableArray(invalidKeys), ["name"])), {
|
|
486
|
-
"name": path
|
|
487
|
-
}), {
|
|
488
|
-
"default": function _default() {
|
|
489
|
-
return [readonly.value ? vue.createVNode(vue.Fragment, null, [ShowComp ? vue.createVNode(ShowComp, vue.mergeProps({
|
|
490
|
-
"value": value
|
|
491
|
-
}, props.fieldProps, {
|
|
492
|
-
"showProps": props.showProps
|
|
493
|
-
}), slots) : vue.createVNode("span", null, [value])]) : vue.createVNode(InputComp, vue.mergeProps({
|
|
494
|
-
"modelValue": value,
|
|
495
|
-
"onUpdate:modelValue": function onUpdateModelValue(v) {
|
|
496
|
-
lodash.set(formState, path, v);
|
|
497
|
-
},
|
|
498
|
-
"clearable": true,
|
|
499
|
-
"disabled": lodash.get(disableState, props.name)
|
|
500
|
-
}, props.fieldProps), slots)];
|
|
501
|
-
}
|
|
502
|
-
});
|
|
503
|
-
};
|
|
504
|
-
}
|
|
505
|
-
});
|
|
506
|
-
};
|
|
254
|
+
});
|
|
507
255
|
|
|
508
256
|
var proSelectProps = function proSelectProps() {
|
|
509
257
|
return {
|
|
@@ -523,7 +271,7 @@ var ProSelect = vue.defineComponent({
|
|
|
523
271
|
|
|
524
272
|
return vue.createVNode(elementPlus.ElSelect, vue.mergeProps(lodash.omit(props, invalidKeys), {
|
|
525
273
|
"onUpdate:modelValue": function onUpdateModelValue(v) {
|
|
526
|
-
emit("update:modelValue", v);
|
|
274
|
+
emit("update:modelValue", v ? v : undefined);
|
|
527
275
|
}
|
|
528
276
|
}), _objectSpread2({
|
|
529
277
|
"default": function _default() {
|
|
@@ -594,7 +342,7 @@ var ProSubmitButton = vue.defineComponent({
|
|
|
594
342
|
var slots = _ref.slots,
|
|
595
343
|
emit = _ref.emit;
|
|
596
344
|
|
|
597
|
-
var _useProForm = useProForm(),
|
|
345
|
+
var _useProForm = pro.useProForm(),
|
|
598
346
|
formRef = _useProForm.formRef;
|
|
599
347
|
|
|
600
348
|
var handleClick = function handleClick(e) {
|
|
@@ -612,24 +360,7 @@ var ProSubmitButton = vue.defineComponent({
|
|
|
612
360
|
}
|
|
613
361
|
});
|
|
614
362
|
|
|
615
|
-
var
|
|
616
|
-
props: {
|
|
617
|
-
pathList: {
|
|
618
|
-
type: Array
|
|
619
|
-
}
|
|
620
|
-
},
|
|
621
|
-
setup: function setup(props, _ref) {
|
|
622
|
-
var slots = _ref.slots;
|
|
623
|
-
provideProFormList({
|
|
624
|
-
pathList: props.pathList
|
|
625
|
-
});
|
|
626
|
-
return function () {
|
|
627
|
-
var _slots$default;
|
|
628
|
-
|
|
629
|
-
return (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots);
|
|
630
|
-
};
|
|
631
|
-
}
|
|
632
|
-
});
|
|
363
|
+
var FormList = pro.createFormList(ProFormItem);
|
|
633
364
|
|
|
634
365
|
var proFormListProps = function proFormListProps() {
|
|
635
366
|
return {
|
|
@@ -640,681 +371,240 @@ var proFormListProps = function proFormListProps() {
|
|
|
640
371
|
addButtonProps: {
|
|
641
372
|
type: Object
|
|
642
373
|
},
|
|
643
|
-
|
|
644
|
-
rowKey: {
|
|
374
|
+
minusButtonText: {
|
|
645
375
|
type: String,
|
|
646
|
-
"default": "
|
|
376
|
+
"default": "删除"
|
|
377
|
+
},
|
|
378
|
+
minusButtonProps: {
|
|
379
|
+
type: Object
|
|
647
380
|
}
|
|
648
381
|
};
|
|
649
382
|
};
|
|
650
383
|
|
|
651
384
|
var ProFormList = vue.defineComponent({
|
|
652
385
|
name: "PFormList",
|
|
653
|
-
props: _objectSpread2(_objectSpread2({},
|
|
654
|
-
setup: function setup(props,
|
|
655
|
-
var slots =
|
|
656
|
-
|
|
657
|
-
var _useProForm = useProForm(),
|
|
658
|
-
formState = _useProForm.formState,
|
|
659
|
-
readonly = _useProForm.readonly;
|
|
660
|
-
|
|
661
|
-
var formListCtx = useProFormList();
|
|
662
|
-
var nameList = pro.convertPathToList(props.prop);
|
|
663
|
-
var path = formListCtx !== null && formListCtx !== void 0 && formListCtx.pathList ? [].concat(_toConsumableArray(formListCtx.pathList), _toConsumableArray(nameList)) : nameList;
|
|
664
|
-
|
|
665
|
-
var handleAdd = function handleAdd() {
|
|
666
|
-
var targetList = lodash.get(formState, path);
|
|
667
|
-
|
|
668
|
-
if (!lodash.isArray(targetList)) {
|
|
669
|
-
targetList = [];
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
targetList.push(_defineProperty({}, props.rowKey, new Date().valueOf()));
|
|
673
|
-
lodash.set(formState, path, targetList);
|
|
674
|
-
};
|
|
675
|
-
|
|
676
|
-
var handleRemove = function handleRemove(index) {
|
|
677
|
-
var targetList = lodash.get(formState, path);
|
|
678
|
-
|
|
679
|
-
if (lodash.size(targetList) <= 0) {
|
|
680
|
-
return;
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
targetList.splice(index, 1);
|
|
684
|
-
};
|
|
685
|
-
|
|
386
|
+
props: _objectSpread2(_objectSpread2({}, FormList.props), proFormListProps()),
|
|
387
|
+
setup: function setup(props, _ref) {
|
|
388
|
+
var slots = _ref.slots;
|
|
686
389
|
var invalidKeys = lodash.keys(proFormListProps());
|
|
687
390
|
return function () {
|
|
688
|
-
return vue.createVNode(
|
|
689
|
-
|
|
690
|
-
return
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
return [vue.createVNode("div", {
|
|
699
|
-
"class": "pro-form-list-item"
|
|
700
|
-
}, [(_slots$default2 = slots["default"]) === null || _slots$default2 === void 0 ? void 0 : _slots$default2.call(slots), !readonly.value && vue.createVNode("div", {
|
|
701
|
-
"class": "pro-form-list-item-minus",
|
|
702
|
-
"onClick": function onClick() {
|
|
703
|
-
return handleRemove(index);
|
|
704
|
-
}
|
|
705
|
-
}, [slots.minus ? slots.minus() : vue.createVNode(elementPlus.ElButton, {
|
|
706
|
-
"link": true
|
|
707
|
-
}, {
|
|
708
|
-
"default": function _default() {
|
|
709
|
-
return [vue.createTextVNode("\u5220\u9664")];
|
|
710
|
-
}
|
|
711
|
-
})])])];
|
|
712
|
-
}
|
|
713
|
-
});
|
|
714
|
-
}), !readonly.value && vue.createVNode("div", {
|
|
715
|
-
"class": "pro-form-list-item-add",
|
|
716
|
-
"onClick": handleAdd
|
|
717
|
-
}, [slots.add ? slots.add() : vue.createVNode(elementPlus.ElButton, vue.mergeProps({
|
|
718
|
-
"type": "primary"
|
|
719
|
-
}, props.addButtonProps), {
|
|
391
|
+
return vue.createVNode(FormList, lodash.omit(props, invalidKeys), _objectSpread2({
|
|
392
|
+
itemMinus: function itemMinus() {
|
|
393
|
+
return vue.createVNode(elementPlus.ElButton, props.minusButtonProps, {
|
|
394
|
+
"default": function _default() {
|
|
395
|
+
return [props.minusButtonText];
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
},
|
|
399
|
+
add: function add() {
|
|
400
|
+
return vue.createVNode(elementPlus.ElButton, props.addButtonProps, {
|
|
720
401
|
"default": function _default() {
|
|
721
402
|
return [props.addButtonText];
|
|
722
403
|
}
|
|
723
|
-
})
|
|
404
|
+
});
|
|
724
405
|
}
|
|
725
|
-
});
|
|
406
|
+
}, slots));
|
|
726
407
|
};
|
|
727
408
|
}
|
|
728
409
|
});
|
|
729
410
|
|
|
730
|
-
var
|
|
731
|
-
|
|
732
|
-
//操作栏
|
|
733
|
-
operate: {
|
|
734
|
-
type: Object
|
|
735
|
-
},
|
|
736
|
-
//默认空字符串
|
|
737
|
-
columnEmptyText: {
|
|
738
|
-
type: String
|
|
739
|
-
},
|
|
740
|
-
|
|
741
|
-
/**
|
|
742
|
-
* 公共column,会merge到columns item中
|
|
743
|
-
*/
|
|
744
|
-
column: {
|
|
745
|
-
type: Object
|
|
746
|
-
},
|
|
747
|
-
//
|
|
411
|
+
var Table = vue.defineComponent({
|
|
412
|
+
props: _objectSpread2(_objectSpread2({}, elementPlus.ElTable.props), {}, {
|
|
748
413
|
columns: {
|
|
749
414
|
type: Array
|
|
750
415
|
},
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
* 展示控件集合,readonly模式下使用这些组件渲染
|
|
754
|
-
*/
|
|
755
|
-
elementMap: {
|
|
756
|
-
type: Object
|
|
416
|
+
dataSource: {
|
|
417
|
+
type: Array
|
|
757
418
|
},
|
|
758
|
-
|
|
759
|
-
/**
|
|
760
|
-
* loading
|
|
761
|
-
*/
|
|
762
419
|
loading: {
|
|
763
|
-
type: Boolean
|
|
764
|
-
"default": false
|
|
420
|
+
type: Boolean
|
|
765
421
|
}
|
|
766
|
-
}
|
|
767
|
-
};
|
|
768
|
-
|
|
769
|
-
var ProTable = vue.defineComponent({
|
|
770
|
-
props: _objectSpread2(_objectSpread2({}, elementPlus.ElTable.props), proTableProps()),
|
|
422
|
+
}),
|
|
771
423
|
setup: function setup(props, _ref) {
|
|
772
|
-
var slots = _ref.slots
|
|
773
|
-
|
|
774
|
-
var columns = vue.computed(function () {
|
|
775
|
-
//根据valueType选择对应的展示组件
|
|
776
|
-
var columns = lodash.map(props.columns, function (item) {
|
|
777
|
-
//merge从共item
|
|
778
|
-
var nextItem = lodash.merge(props.column, item);
|
|
779
|
-
|
|
780
|
-
if (!item.customRender || !item.formatter) {
|
|
781
|
-
nextItem.customRender = function (_ref2) {
|
|
782
|
-
var text = _ref2.text;
|
|
783
|
-
return pro.getItemEl(props.elementMap, _objectSpread2(_objectSpread2({}, item), {}, {
|
|
784
|
-
showProps: _objectSpread2(_objectSpread2({}, item.showProps), {}, {
|
|
785
|
-
content: props.columnEmptyText
|
|
786
|
-
})
|
|
787
|
-
}), text) || text || props.columnEmptyText;
|
|
788
|
-
};
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
return nextItem;
|
|
792
|
-
});
|
|
793
|
-
var operate = props.operate; //处理operate
|
|
794
|
-
|
|
795
|
-
if (operate && lodash.size(operate.items) > 0) {
|
|
796
|
-
//将itemState补充的信息拼到item中
|
|
797
|
-
var completeItems = lodash.map(operate.items, function (i) {
|
|
798
|
-
return _objectSpread2(_objectSpread2({}, i), lodash.get(operate.itemState, i.value));
|
|
799
|
-
}); //排序
|
|
800
|
-
|
|
801
|
-
var operateList = lodash.sortBy(completeItems, function (item) {
|
|
802
|
-
return item.sort;
|
|
803
|
-
});
|
|
804
|
-
columns.push(_objectSpread2(_objectSpread2({
|
|
805
|
-
title: "操作",
|
|
806
|
-
valueType: "option",
|
|
807
|
-
fixed: "right"
|
|
808
|
-
}, props.column), {}, {
|
|
809
|
-
customRender: function customRender(_ref3) {
|
|
810
|
-
var record = _ref3.record;
|
|
811
|
-
var validList = lodash.filter(operateList, function (item) {
|
|
812
|
-
if (lodash.isFunction(item.show)) {
|
|
813
|
-
return item.show(record);
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
if (item.show === false) {
|
|
817
|
-
return false;
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
return true;
|
|
821
|
-
});
|
|
822
|
-
return vue.createVNode("div", {
|
|
823
|
-
"class": "pro-table-operate"
|
|
824
|
-
}, [lodash.map(validList, function (item) {
|
|
825
|
-
// 自定义
|
|
826
|
-
if (lodash.isFunction(item.element)) {
|
|
827
|
-
return item.element(record, item);
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
return vue.createVNode(elementPlus.ElButton, {
|
|
831
|
-
"key": item.value,
|
|
832
|
-
"type": "primary",
|
|
833
|
-
"link": true,
|
|
834
|
-
"disabled": lodash.isFunction(item.disabled) ? item.disabled(record) : item.disabled,
|
|
835
|
-
"onClick": function onClick() {
|
|
836
|
-
var _item$onClick;
|
|
837
|
-
|
|
838
|
-
(_item$onClick = item.onClick) === null || _item$onClick === void 0 ? void 0 : _item$onClick.call(item, record);
|
|
839
|
-
}
|
|
840
|
-
}, {
|
|
841
|
-
"default": function _default() {
|
|
842
|
-
return [item.label];
|
|
843
|
-
}
|
|
844
|
-
});
|
|
845
|
-
})]);
|
|
846
|
-
}
|
|
847
|
-
}, operate.column));
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
return columns;
|
|
851
|
-
});
|
|
852
|
-
var invalidKeys = lodash.keys(proTableProps());
|
|
424
|
+
var slots = _ref.slots;
|
|
425
|
+
var id = createLoadingId("table");
|
|
853
426
|
return function () {
|
|
854
|
-
var _slots$default;
|
|
427
|
+
var _slots$start, _slots$default;
|
|
855
428
|
|
|
856
|
-
return vue.
|
|
857
|
-
"
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
}
|
|
429
|
+
return vue.createVNode(elementPlus.ElTable, vue.mergeProps({
|
|
430
|
+
"id": id
|
|
431
|
+
}, lodash.omit(props, "columns", "dataSource", "loading"), {
|
|
432
|
+
"data": props.dataSource || props.data
|
|
433
|
+
}), _objectSpread2({
|
|
861
434
|
"default": function _default() {
|
|
862
|
-
return [lodash.map(columns
|
|
863
|
-
var formatter = function formatter(record, column, value, index) {
|
|
864
|
-
if (item.formatter) {
|
|
865
|
-
return item.formatter(record, column, value, index);
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
if (item.customRender) {
|
|
869
|
-
return item.customRender({
|
|
870
|
-
value: value,
|
|
871
|
-
text: value,
|
|
872
|
-
record: record,
|
|
873
|
-
column: column
|
|
874
|
-
});
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
return null;
|
|
878
|
-
};
|
|
879
|
-
|
|
435
|
+
return [(_slots$start = slots.start) === null || _slots$start === void 0 ? void 0 : _slots$start.call(slots), lodash.map(props.columns, function (item) {
|
|
880
436
|
return vue.createVNode(elementPlus.ElTableColumn, vue.mergeProps({
|
|
881
|
-
"key": item.dataIndex
|
|
437
|
+
"key": item.dataIndex
|
|
882
438
|
}, lodash.omit(item, "title", "label", "renderHeader", "prop", "dataIndex", "formatter", "customRender"), {
|
|
883
|
-
"label": vue.isVNode(item.title) ? undefined : item.title || item
|
|
439
|
+
"label": vue.isVNode(item.title) ? undefined : item.title || lodash.get(item, "label"),
|
|
884
440
|
"renderHeader": vue.isVNode(item.title) ? function () {
|
|
885
441
|
return item.title;
|
|
886
442
|
} : undefined,
|
|
887
|
-
"prop": item.dataIndex
|
|
888
|
-
"formatter":
|
|
443
|
+
"prop": item.dataIndex,
|
|
444
|
+
"formatter": function formatter(record, column, value, index) {
|
|
445
|
+
if (item.customRender) {
|
|
446
|
+
return item.customRender({
|
|
447
|
+
value: value,
|
|
448
|
+
text: value,
|
|
449
|
+
record: record,
|
|
450
|
+
column: column,
|
|
451
|
+
index: index
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
return value;
|
|
456
|
+
}
|
|
889
457
|
}), null);
|
|
890
|
-
}), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)
|
|
458
|
+
}), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), props.loading && vue.createVNode(ProLoading, {
|
|
459
|
+
"target": id,
|
|
460
|
+
"loading": true
|
|
461
|
+
}, null)];
|
|
891
462
|
}
|
|
892
|
-
}, lodash.omit(slots, "default"
|
|
463
|
+
}, lodash.omit(slots, "default", "start")));
|
|
893
464
|
};
|
|
894
465
|
}
|
|
895
466
|
});
|
|
467
|
+
var ProTable = pro.createTable(Table);
|
|
896
468
|
|
|
897
|
-
var
|
|
898
|
-
page: 1,
|
|
899
|
-
pageSize: 10
|
|
900
|
-
};
|
|
901
|
-
|
|
902
|
-
var proListProps = function proListProps() {
|
|
469
|
+
var ProCurdForm = pro.createCurdForm(ProForm, elementPlus.ElButton, function (curdState) {
|
|
903
470
|
return {
|
|
904
|
-
|
|
905
|
-
* extra 是否放到SearchForm中
|
|
906
|
-
*/
|
|
907
|
-
extraInSearch: {
|
|
908
|
-
type: Boolean,
|
|
909
|
-
"default": undefined
|
|
910
|
-
},
|
|
911
|
-
//search
|
|
912
|
-
searchProps: {
|
|
913
|
-
type: Object
|
|
914
|
-
},
|
|
915
|
-
//table
|
|
916
|
-
tableProps: {
|
|
917
|
-
type: Object
|
|
918
|
-
},
|
|
919
|
-
//pagination
|
|
920
|
-
paginationProps: {
|
|
921
|
-
type: Object
|
|
922
|
-
},
|
|
923
|
-
//pageState
|
|
924
|
-
pageState: {
|
|
925
|
-
type: Object
|
|
926
|
-
}
|
|
471
|
+
hideRequiredAsterisk: curdState.mode === pro.CurdCurrentMode.DETAIL
|
|
927
472
|
};
|
|
928
|
-
};
|
|
929
|
-
|
|
930
|
-
var ProList = vue.defineComponent({
|
|
931
|
-
props: _objectSpread2({}, proListProps()),
|
|
932
|
-
setup: function setup(props, _ref) {
|
|
933
|
-
var _props$searchProps;
|
|
934
|
-
|
|
935
|
-
var slots = _ref.slots,
|
|
936
|
-
emit = _ref.emit;
|
|
937
|
-
|
|
938
|
-
/******************* search pagination ********************/
|
|
939
|
-
var searchState = ((_props$searchProps = props.searchProps) === null || _props$searchProps === void 0 ? void 0 : _props$searchProps.model) || vue.reactive({});
|
|
940
|
-
var pageState = props.pageState || vue.reactive(_objectSpread2({}, defaultPage));
|
|
941
|
-
|
|
942
|
-
var handleSearch = function handleSearch() {
|
|
943
|
-
emit("list", _objectSpread2(_objectSpread2({}, searchState), pageState));
|
|
944
|
-
}; //页数重置1 且搜索
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
var executeSearchWithResetPage = function executeSearchWithResetPage() {
|
|
948
|
-
pageState.page = 1;
|
|
949
|
-
handleSearch();
|
|
950
|
-
}; //无SearchForm组件 初始化 触发
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
hooks.useEffect(function () {
|
|
954
|
-
var _props$searchProps2, _props$searchProps3;
|
|
955
|
-
|
|
956
|
-
if (lodash.size((_props$searchProps2 = props.searchProps) === null || _props$searchProps2 === void 0 ? void 0 : _props$searchProps2.columns) <= 0 && ((_props$searchProps3 = props.searchProps) === null || _props$searchProps3 === void 0 ? void 0 : _props$searchProps3.initEmit) !== false) {
|
|
957
|
-
handleSearch();
|
|
958
|
-
}
|
|
959
|
-
}, []); //无SearchForm组件 订阅searchState
|
|
960
|
-
|
|
961
|
-
hooks.useWatch(function () {
|
|
962
|
-
var _props$searchProps4;
|
|
963
|
-
|
|
964
|
-
if (lodash.size((_props$searchProps4 = props.searchProps) === null || _props$searchProps4 === void 0 ? void 0 : _props$searchProps4.columns) <= 0) {
|
|
965
|
-
executeSearchWithResetPage();
|
|
966
|
-
}
|
|
967
|
-
}, searchState);
|
|
968
|
-
return function () {
|
|
969
|
-
var _slots$divide, _slots$divide2;
|
|
970
|
-
|
|
971
|
-
var searchProps = props.searchProps;
|
|
972
|
-
var tableProps = props.tableProps;
|
|
973
|
-
var paginationProps = props.paginationProps; //操作按钮
|
|
974
|
-
|
|
975
|
-
var extra = slots.extra ? vue.createVNode("div", {
|
|
976
|
-
"class": "pro-list-search"
|
|
977
|
-
}, [slots.extra()]) : null; //分页参数
|
|
978
|
-
|
|
979
|
-
var pagination = _objectSpread2(_objectSpread2({}, paginationProps), {}, {
|
|
980
|
-
currentPage: pageState.page,
|
|
981
|
-
pageSize: pageState.pageSize,
|
|
982
|
-
onSizeChange: function onSizeChange(pageSize) {
|
|
983
|
-
pageState.pageSize = pageSize;
|
|
984
|
-
handleSearch();
|
|
985
|
-
},
|
|
986
|
-
onCurrentChange: function onCurrentChange(current) {
|
|
987
|
-
pageState.page = current;
|
|
988
|
-
handleSearch();
|
|
989
|
-
}
|
|
990
|
-
});
|
|
991
|
-
|
|
992
|
-
return vue.createVNode(vue.Fragment, null, [lodash.size(searchProps === null || searchProps === void 0 ? void 0 : searchProps.columns) > 0 && vue.createVNode(ProSearchForm, vue.mergeProps(searchProps, {
|
|
993
|
-
"model": searchState,
|
|
994
|
-
"onFinish": executeSearchWithResetPage
|
|
995
|
-
}), {
|
|
996
|
-
"default": function _default() {
|
|
997
|
-
return [props.extraInSearch && extra];
|
|
998
|
-
}
|
|
999
|
-
}), (_slots$divide = slots.divide) === null || _slots$divide === void 0 ? void 0 : _slots$divide.call(slots), (lodash.size(searchProps === null || searchProps === void 0 ? void 0 : searchProps.columns) <= 0 || !props.extraInSearch) && extra, slots["default"] ? slots["default"]() : vue.createVNode(ProTable, lodash.omit(tableProps, "slots"), tableProps === null || tableProps === void 0 ? void 0 : tableProps.slots), (_slots$divide2 = slots.divide2) === null || _slots$divide2 === void 0 ? void 0 : _slots$divide2.call(slots), lodash.isNumber(paginationProps === null || paginationProps === void 0 ? void 0 : paginationProps.total) && paginationProps.total > 0 && vue.createVNode(vue.Fragment, null, [slots.pagination ? slots.pagination(pagination) : vue.createVNode(elementPlus.ElPagination, pagination, null)])]);
|
|
1000
|
-
};
|
|
1001
|
-
}
|
|
1002
473
|
});
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
* 添加 和 修改 时候的确定按钮
|
|
1006
|
-
*/
|
|
1007
|
-
|
|
1008
|
-
var OkButton = vue.defineComponent({
|
|
1009
|
-
props: _objectSpread2({}, elementPlus.ElButton.props),
|
|
1010
|
-
setup: function setup(props, _ref) {
|
|
1011
|
-
var slots = _ref.slots;
|
|
1012
|
-
|
|
474
|
+
var ProCurdFormConnect = vue.defineComponent({
|
|
475
|
+
setup: function setup() {
|
|
1013
476
|
var _useProCurd = pro.useProCurd(),
|
|
1014
|
-
|
|
477
|
+
formProps = _useProCurd.formProps;
|
|
1015
478
|
|
|
1016
479
|
return function () {
|
|
1017
|
-
return vue.createVNode(
|
|
1018
|
-
"onClick": function onClick() {
|
|
1019
|
-
curdState.addAction = pro.CurdAddAction.NORMAL;
|
|
1020
|
-
}
|
|
1021
|
-
}, props, {
|
|
1022
|
-
"loading": curdState.operateLoading
|
|
1023
|
-
}), {
|
|
1024
|
-
"default": function _default() {
|
|
1025
|
-
return [slots["default"] ? slots["default"]() : "确定"];
|
|
1026
|
-
}
|
|
1027
|
-
});
|
|
480
|
+
return vue.createVNode(ProCurdForm, lodash.omit(formProps === null || formProps === void 0 ? void 0 : formProps.value, "slots"), lodash.get(formProps === null || formProps === void 0 ? void 0 : formProps.value, "slots"));
|
|
1028
481
|
};
|
|
1029
482
|
}
|
|
1030
483
|
});
|
|
1031
|
-
/**
|
|
1032
|
-
* 添加 时候的 确定并继续添加按钮
|
|
1033
|
-
*/
|
|
1034
|
-
|
|
1035
|
-
var ContinueAddButton = vue.defineComponent({
|
|
1036
|
-
props: _objectSpread2({}, elementPlus.ElButton.props),
|
|
1037
|
-
setup: function setup(props, _ref2) {
|
|
1038
|
-
var slots = _ref2.slots;
|
|
1039
484
|
|
|
1040
|
-
|
|
1041
|
-
curdState = _useProCurd2.curdState;
|
|
485
|
+
var CurdList = pro.createCurdList(ProSearchForm, ProTable);
|
|
1042
486
|
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
}), {
|
|
1051
|
-
"default": function _default() {
|
|
1052
|
-
return [slots["default"] ? slots["default"]() : "确定并继续"];
|
|
1053
|
-
}
|
|
1054
|
-
});
|
|
1055
|
-
};
|
|
1056
|
-
}
|
|
1057
|
-
});
|
|
1058
|
-
|
|
1059
|
-
var proOperateButtonProps = function proOperateButtonProps() {
|
|
1060
|
-
return {
|
|
1061
|
-
//显示 确定并继续 按钮
|
|
1062
|
-
showContinueAdd: {
|
|
1063
|
-
type: Boolean,
|
|
1064
|
-
"default": false
|
|
1065
|
-
},
|
|
1066
|
-
//
|
|
1067
|
-
okText: {
|
|
1068
|
-
type: String,
|
|
1069
|
-
"default": "确定"
|
|
1070
|
-
},
|
|
1071
|
-
okButtonProps: {
|
|
1072
|
-
type: Object
|
|
1073
|
-
},
|
|
1074
|
-
//
|
|
1075
|
-
continueText: {
|
|
1076
|
-
type: String,
|
|
1077
|
-
"default": "确定并继续"
|
|
1078
|
-
},
|
|
1079
|
-
continueButtonProps: {
|
|
487
|
+
/**
|
|
488
|
+
* 组合列表
|
|
489
|
+
* SearchForm + Table + Pagination
|
|
490
|
+
*/
|
|
491
|
+
var ProCurdList = vue.defineComponent({
|
|
492
|
+
props: _objectSpread2(_objectSpread2({}, CurdList.props), {}, {
|
|
493
|
+
paginationProps: {
|
|
1080
494
|
type: Object
|
|
1081
495
|
}
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
var ProOperateButton = vue.defineComponent({
|
|
1086
|
-
props: _objectSpread2({}, proOperateButtonProps()),
|
|
1087
|
-
setup: function setup(props, _ref3) {
|
|
1088
|
-
var slots = _ref3.slots;
|
|
1089
|
-
|
|
1090
|
-
var _useProCurd3 = pro.useProCurd(),
|
|
1091
|
-
curdState = _useProCurd3.curdState;
|
|
1092
|
-
|
|
496
|
+
}),
|
|
497
|
+
setup: function setup(props, _ref) {
|
|
498
|
+
var slots = _ref.slots;
|
|
1093
499
|
return function () {
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
500
|
+
return vue.createVNode(CurdList, lodash.omit(props, "paginationProps"), _objectSpread2({
|
|
501
|
+
pagination: function pagination(pageState, total, handleSearch) {
|
|
502
|
+
return vue.createVNode(elementPlus.ElPagination, vue.mergeProps(props.paginationProps, {
|
|
503
|
+
"total": total,
|
|
504
|
+
"currentPage": pageState.page,
|
|
505
|
+
"pageSize": pageState.pageSize,
|
|
506
|
+
"onSizeChange": function onSizeChange(pageSize) {
|
|
507
|
+
pageState.pageSize = pageSize;
|
|
508
|
+
handleSearch();
|
|
509
|
+
},
|
|
510
|
+
"onCurrentChange": function onCurrentChange(current) {
|
|
511
|
+
pageState.page = current;
|
|
512
|
+
handleSearch();
|
|
513
|
+
}
|
|
514
|
+
}), null);
|
|
1105
515
|
}
|
|
1106
|
-
}
|
|
516
|
+
}, slots));
|
|
1107
517
|
};
|
|
1108
518
|
}
|
|
1109
519
|
});
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
operateButtonProps: {
|
|
1115
|
-
type: Object
|
|
1116
|
-
}
|
|
1117
|
-
};
|
|
1118
|
-
};
|
|
1119
|
-
|
|
1120
|
-
var ProCurdForm = vue.defineComponent({
|
|
1121
|
-
props: _objectSpread2(_objectSpread2({}, ProSchemaForm.props), proCurdFormProps()),
|
|
1122
|
-
setup: function setup(props, _ref4) {
|
|
1123
|
-
var slots = _ref4.slots;
|
|
1124
|
-
|
|
1125
|
-
var _useProModule = pro.useProModule(),
|
|
1126
|
-
elementMap = _useProModule.elementMap,
|
|
1127
|
-
formElementMap = _useProModule.formElementMap;
|
|
1128
|
-
|
|
1129
|
-
var _useProCurd4 = pro.useProCurd(),
|
|
1130
|
-
curdState = _useProCurd4.curdState,
|
|
1131
|
-
formColumns = _useProCurd4.formColumns,
|
|
1132
|
-
sendCurdEvent = _useProCurd4.sendCurdEvent;
|
|
1133
|
-
|
|
1134
|
-
var handleFinish = function handleFinish(values) {
|
|
1135
|
-
if (curdState.mode === pro.CurdCurrentMode.EDIT) {
|
|
1136
|
-
//edit
|
|
1137
|
-
sendCurdEvent({
|
|
1138
|
-
action: pro.CurdAction.EDIT,
|
|
1139
|
-
type: "execute",
|
|
1140
|
-
values: values
|
|
1141
|
-
});
|
|
1142
|
-
} else {
|
|
1143
|
-
//add
|
|
1144
|
-
sendCurdEvent({
|
|
1145
|
-
action: pro.CurdAction.ADD,
|
|
1146
|
-
type: "execute",
|
|
1147
|
-
values: values
|
|
1148
|
-
});
|
|
1149
|
-
}
|
|
1150
|
-
};
|
|
520
|
+
var ProCurdListConnect = vue.defineComponent({
|
|
521
|
+
setup: function setup() {
|
|
522
|
+
var _useProCurd = pro.useProCurd(),
|
|
523
|
+
listProps = _useProCurd.listProps;
|
|
1151
524
|
|
|
1152
525
|
return function () {
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
return vue.createVNode(ProSchemaForm, vue.mergeProps({
|
|
1156
|
-
"elementMap": elementMap,
|
|
1157
|
-
"formElementMap": formElementMap
|
|
1158
|
-
}, props, {
|
|
1159
|
-
"columns": formColumns,
|
|
1160
|
-
"model": curdState.detailData,
|
|
1161
|
-
"readonly": curdState.mode === pro.CurdCurrentMode.DETAIL,
|
|
1162
|
-
"hideRequiredAsterisk": curdState.mode === pro.CurdCurrentMode.DETAIL,
|
|
1163
|
-
"onFinish": handleFinish
|
|
1164
|
-
}), _objectSpread2({
|
|
1165
|
-
"default": function _default() {
|
|
1166
|
-
return [curdState.mode !== pro.CurdCurrentMode.DETAIL && vue.createVNode(ProOperateButton, lodash.omit(props.operateButtonProps, "slots"), lodash.get(props.operateButtonProps, "slots")), (_slots$default = slots["default"]) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)];
|
|
1167
|
-
}
|
|
1168
|
-
}, lodash.omit(slots, "default")));
|
|
526
|
+
return vue.createVNode(ProCurdList, lodash.omit(listProps === null || listProps === void 0 ? void 0 : listProps.value, "slots"), lodash.get(listProps === null || listProps === void 0 ? void 0 : listProps.value, "slots"));
|
|
1169
527
|
};
|
|
1170
528
|
}
|
|
1171
529
|
});
|
|
1172
|
-
|
|
530
|
+
|
|
531
|
+
var ProCurdDesc = pro.createCurdDesc(elementPlus.ElDescriptions, elementPlus.ElDescriptionsItem);
|
|
532
|
+
var ProCurdDescConnect = vue.defineComponent({
|
|
1173
533
|
setup: function setup() {
|
|
1174
|
-
var
|
|
1175
|
-
|
|
534
|
+
var _useProCurd = pro.useProCurd(),
|
|
535
|
+
descProps = _useProCurd.descProps;
|
|
1176
536
|
|
|
1177
537
|
return function () {
|
|
1178
|
-
return vue.createVNode(
|
|
538
|
+
return vue.createVNode(ProCurdDesc, lodash.omit(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"), lodash.get(descProps === null || descProps === void 0 ? void 0 : descProps.value, "slots"));
|
|
1179
539
|
};
|
|
1180
540
|
}
|
|
1181
541
|
});
|
|
1182
542
|
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
* SearchForm + Table + Pagination
|
|
1186
|
-
*/
|
|
1187
|
-
var ProCurdList = vue.defineComponent({
|
|
1188
|
-
props: _objectSpread2({}, ProList.props),
|
|
543
|
+
var ProCurdModal = vue.defineComponent({
|
|
544
|
+
props: _objectSpread2({}, elementPlus.ElDialog.props),
|
|
1189
545
|
setup: function setup(props, _ref) {
|
|
1190
546
|
var slots = _ref.slots;
|
|
1191
547
|
|
|
1192
|
-
var _useProModule = pro.useProModule(),
|
|
1193
|
-
elementMap = _useProModule.elementMap,
|
|
1194
|
-
formElementMap = _useProModule.formElementMap;
|
|
1195
|
-
|
|
1196
548
|
var _useProCurd = pro.useProCurd(),
|
|
1197
549
|
curdState = _useProCurd.curdState,
|
|
1198
|
-
|
|
1199
|
-
tableColumns = _useProCurd.tableColumns,
|
|
1200
|
-
getOperate = _useProCurd.getOperate,
|
|
1201
|
-
sendCurdEvent = _useProCurd.sendCurdEvent;
|
|
1202
|
-
/******************* table ********************/
|
|
550
|
+
getOperate = _useProCurd.getOperate; //根据当前模式展示不同的Title
|
|
1203
551
|
|
|
1204
552
|
|
|
1205
|
-
var
|
|
1206
|
-
|
|
1207
|
-
value: action
|
|
1208
|
-
});
|
|
1209
|
-
}; //table操作栏 items
|
|
553
|
+
var getTitle = function getTitle() {
|
|
554
|
+
var _getOperate, _getOperate2, _getOperate3;
|
|
1210
555
|
|
|
556
|
+
switch (curdState.mode) {
|
|
557
|
+
case pro.CurdAction.ADD:
|
|
558
|
+
return (_getOperate = getOperate(pro.CurdAction.ADD)) === null || _getOperate === void 0 ? void 0 : _getOperate.label;
|
|
1211
559
|
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
var _tableProps$operate, _tableProps$operate2, _curdState$listData, _curdState$listData2;
|
|
560
|
+
case pro.CurdAction.EDIT:
|
|
561
|
+
return (_getOperate2 = getOperate(pro.CurdAction.EDIT)) === null || _getOperate2 === void 0 ? void 0 : _getOperate2.label;
|
|
1215
562
|
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
sendCurdEvent({
|
|
1220
|
-
action: pro.CurdAction.LIST,
|
|
1221
|
-
type: "emit",
|
|
1222
|
-
values: values
|
|
1223
|
-
});
|
|
1224
|
-
}
|
|
1225
|
-
}, props, {
|
|
1226
|
-
"searchProps": _objectSpread2(_objectSpread2({
|
|
1227
|
-
formElementMap: formElementMap
|
|
1228
|
-
}, props.searchProps), {}, {
|
|
1229
|
-
columns: searchColumns.value
|
|
1230
|
-
}),
|
|
1231
|
-
"tableProps": _objectSpread2(_objectSpread2({
|
|
1232
|
-
elementMap: elementMap
|
|
1233
|
-
}, tableProps), {}, {
|
|
1234
|
-
operate: _objectSpread2(_objectSpread2({}, tableProps === null || tableProps === void 0 ? void 0 : tableProps.operate), {}, {
|
|
1235
|
-
items: tableProps !== null && tableProps !== void 0 && (_tableProps$operate = tableProps.operate) !== null && _tableProps$operate !== void 0 && _tableProps$operate.items ? [].concat(tableOperateItems, _toConsumableArray(tableProps === null || tableProps === void 0 ? void 0 : (_tableProps$operate2 = tableProps.operate) === null || _tableProps$operate2 === void 0 ? void 0 : _tableProps$operate2.items)) : tableOperateItems
|
|
1236
|
-
}),
|
|
1237
|
-
columns: tableColumns.value,
|
|
1238
|
-
loading: curdState.listLoading,
|
|
1239
|
-
data: (_curdState$listData = curdState.listData) === null || _curdState$listData === void 0 ? void 0 : _curdState$listData.dataSource
|
|
1240
|
-
}),
|
|
1241
|
-
"paginationProps": _objectSpread2(_objectSpread2({}, props.paginationProps), {}, {
|
|
1242
|
-
total: (_curdState$listData2 = curdState.listData) === null || _curdState$listData2 === void 0 ? void 0 : _curdState$listData2.total
|
|
1243
|
-
})
|
|
1244
|
-
}), slots);
|
|
563
|
+
case pro.CurdAction.DETAIL:
|
|
564
|
+
return (_getOperate3 = getOperate(pro.CurdAction.DETAIL)) === null || _getOperate3 === void 0 ? void 0 : _getOperate3.label;
|
|
565
|
+
}
|
|
1245
566
|
};
|
|
1246
|
-
}
|
|
1247
|
-
});
|
|
1248
|
-
var ProCurdListConnect = vue.defineComponent({
|
|
1249
|
-
setup: function setup() {
|
|
1250
|
-
var _useProCurd2 = pro.useProCurd(),
|
|
1251
|
-
listProps = _useProCurd2.listProps;
|
|
1252
567
|
|
|
1253
|
-
|
|
1254
|
-
|
|
568
|
+
var handleCancel = function handleCancel() {
|
|
569
|
+
curdState.mode = undefined;
|
|
570
|
+
hooks.setReactiveValue(curdState.detailData, {});
|
|
571
|
+
curdState.detailLoading = false;
|
|
572
|
+
curdState.addAction = undefined;
|
|
1255
573
|
};
|
|
1256
|
-
}
|
|
1257
|
-
});
|
|
1258
|
-
|
|
1259
|
-
function _isSlot(s) {
|
|
1260
|
-
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
var ProCurdDesc = vue.defineComponent({
|
|
1264
|
-
props: _objectSpread2({}, elementPlus.ElDescriptions.props),
|
|
1265
|
-
setup: function setup(props, _ref) {
|
|
1266
|
-
var slots = _ref.slots;
|
|
1267
|
-
|
|
1268
|
-
var _useProModule = pro.useProModule(),
|
|
1269
|
-
getItemVNode = _useProModule.getItemVNode;
|
|
1270
|
-
|
|
1271
|
-
var _useProCurd = pro.useProCurd(),
|
|
1272
|
-
curdState = _useProCurd.curdState,
|
|
1273
|
-
descColumns = _useProCurd.descColumns;
|
|
1274
574
|
|
|
1275
|
-
var descVNodes = vue.computed(function () {
|
|
1276
|
-
return lodash.map(descColumns.value, function (item) {
|
|
1277
|
-
var _slot;
|
|
1278
|
-
|
|
1279
|
-
var value = lodash.get(curdState.detailData, item.dataIndex);
|
|
1280
|
-
return vue.createVNode(elementPlus.ElDescriptionsItem, vue.mergeProps({
|
|
1281
|
-
"key": item.dataIndex,
|
|
1282
|
-
"label": item.title
|
|
1283
|
-
}, lodash.get(item.extra, "desc")), _isSlot(_slot = getItemVNode(item, value)) ? _slot : {
|
|
1284
|
-
"default": function _default() {
|
|
1285
|
-
return [_slot];
|
|
1286
|
-
}
|
|
1287
|
-
});
|
|
1288
|
-
});
|
|
1289
|
-
});
|
|
1290
575
|
return function () {
|
|
1291
|
-
return vue.createVNode(elementPlus.
|
|
1292
|
-
"
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
576
|
+
return vue.createVNode(elementPlus.ElDialog, vue.mergeProps({
|
|
577
|
+
"destroyOnClose": true,
|
|
578
|
+
"title": getTitle(),
|
|
579
|
+
"modelValue": !!curdState.mode,
|
|
580
|
+
"onClose": handleCancel
|
|
581
|
+
}, props), slots);
|
|
1296
582
|
};
|
|
1297
583
|
}
|
|
1298
584
|
});
|
|
1299
|
-
var
|
|
585
|
+
var ProCurdModalConnect = vue.defineComponent({
|
|
1300
586
|
setup: function setup() {
|
|
1301
587
|
var _useProCurd2 = pro.useProCurd(),
|
|
1302
|
-
|
|
588
|
+
modalProps = _useProCurd2.modalProps;
|
|
1303
589
|
|
|
1304
590
|
return function () {
|
|
1305
|
-
return vue.createVNode(
|
|
591
|
+
return vue.createVNode(ProCurdModal, lodash.omit(modalProps === null || modalProps === void 0 ? void 0 : modalProps.value, "slots"), _objectSpread2({
|
|
592
|
+
"default": function _default() {
|
|
593
|
+
return [vue.createVNode(ProCurdFormConnect, null, null)];
|
|
594
|
+
}
|
|
595
|
+
}, lodash.get(modalProps === null || modalProps === void 0 ? void 0 : modalProps.value, "slots")));
|
|
1306
596
|
};
|
|
1307
597
|
}
|
|
1308
598
|
});
|
|
1309
599
|
|
|
1310
|
-
exports.ContinueAddButton = ContinueAddButton;
|
|
1311
|
-
exports.OkButton = OkButton;
|
|
1312
600
|
exports.ProCurdDesc = ProCurdDesc;
|
|
1313
601
|
exports.ProCurdDescConnect = ProCurdDescConnect;
|
|
1314
602
|
exports.ProCurdForm = ProCurdForm;
|
|
1315
603
|
exports.ProCurdFormConnect = ProCurdFormConnect;
|
|
1316
604
|
exports.ProCurdList = ProCurdList;
|
|
1317
605
|
exports.ProCurdListConnect = ProCurdListConnect;
|
|
606
|
+
exports.ProCurdModal = ProCurdModal;
|
|
607
|
+
exports.ProCurdModalConnect = ProCurdModalConnect;
|
|
1318
608
|
exports.ProForm = ProForm;
|
|
1319
609
|
exports.ProFormCascader = ProFormCascader;
|
|
1320
610
|
exports.ProFormCheckbox = ProFormCheckbox;
|
|
@@ -1328,16 +618,11 @@ exports.ProFormText = ProFormText;
|
|
|
1328
618
|
exports.ProFormTextNumber = ProFormTextNumber;
|
|
1329
619
|
exports.ProFormTimePicker = ProFormTimePicker;
|
|
1330
620
|
exports.ProFormTreeSelect = ProFormTreeSelect;
|
|
1331
|
-
exports.
|
|
1332
|
-
exports.
|
|
1333
|
-
exports.ProSchemaForm = ProSchemaForm;
|
|
621
|
+
exports.ProGrid = ProGrid;
|
|
622
|
+
exports.ProLoading = ProLoading;
|
|
1334
623
|
exports.ProSearchForm = ProSearchForm;
|
|
1335
624
|
exports.ProSelect = ProSelect;
|
|
1336
625
|
exports.ProSubmitButton = ProSubmitButton;
|
|
1337
626
|
exports.ProTable = ProTable;
|
|
1338
627
|
exports.createFormItemComponent = createFormItemComponent;
|
|
1339
|
-
exports.
|
|
1340
|
-
exports.provideProForm = provideProForm;
|
|
1341
|
-
exports.provideProFormList = provideProFormList;
|
|
1342
|
-
exports.useProForm = useProForm;
|
|
1343
|
-
exports.useProFormList = useProFormList;
|
|
628
|
+
exports.createLoadingId = createLoadingId;
|