@vue-ui-kit/ant 1.7.1 → 1.7.3
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/README.md +426 -426
- package/README.zh.md +480 -480
- package/dist/cjs/index.js +1 -1
- package/dist/declarations/antProxy.d.ts +10 -0
- package/dist/es/index.js +1681 -1507
- package/dist/packages/components/PFormGroup.vue.d.ts +1 -0
- package/dist/packages/components/PGrid.vue.d.ts +1 -1
- package/dist/packages/components/PromisePicker.vue.d.ts +3 -1
- package/dist/packages/store/renderStore.d.ts +7 -5
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/declarations/antProxy.ts +10 -1
- package/src/packages/components/PForm.vue +1 -1
- package/src/packages/components/PFormGroup.vue +29 -6
- package/src/packages/components/PGrid.vue +30 -16
- package/src/packages/components/PromisePicker.vue +4 -0
- package/src/packages/store/renderStore.tsx +156 -63
- package/src/packages/styles/index.scss +6 -0
|
@@ -34,6 +34,7 @@ interface BtnOptions extends ButtonProps {
|
|
|
34
34
|
dynamicClassName?: (p: RenderTableParams) => string;
|
|
35
35
|
dropdowns?: BtnOptions[];
|
|
36
36
|
clickEvt?: (p: RenderTableParams) => any;
|
|
37
|
+
hiddenIf?: (p: RenderTableParams) => boolean;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
const antDefaultProps = {
|
|
@@ -220,121 +221,213 @@ const renderBtn = (btnOpt: BtnOptions, params: RenderTableParams) =>
|
|
|
220
221
|
);
|
|
221
222
|
const renders = {
|
|
222
223
|
...Object.fromEntries(Object.keys(componentsMap).map((name) => [name, renderBasic(name)])),
|
|
223
|
-
|
|
224
|
+
// 简单按钮
|
|
224
225
|
$button: {
|
|
225
|
-
renderItemContent(
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
) {
|
|
226
|
+
renderItemContent({ props = {}, events = {} }: RenderOptions, {
|
|
227
|
+
data,
|
|
228
|
+
field,
|
|
229
|
+
}: RenderFormParams, defaultHandler: {
|
|
230
|
+
[key: string]: (...args: any[]) => any
|
|
231
|
+
}) {
|
|
232
232
|
return (
|
|
233
233
|
<Button
|
|
234
234
|
{...omit(props, ['content'])}
|
|
235
235
|
icon={props.icon ? <Icon icon={props.icon} /> : null}
|
|
236
236
|
onClick={() => {
|
|
237
|
-
events.click?.({ data, field })
|
|
237
|
+
events.click?.({ data, field })
|
|
238
238
|
if (props.htmlType === 'reset' && defaultHandler?.reset) {
|
|
239
|
-
|
|
239
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
240
|
+
props.beforeClick({ data, field }).then((res: void | Recordable) => {
|
|
241
|
+
defaultHandler.reset(res ? { data: res, field } : { data, field })
|
|
242
|
+
})
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
defaultHandler.reset({ data, field })
|
|
246
|
+
}
|
|
240
247
|
}
|
|
241
248
|
}}
|
|
242
249
|
>
|
|
243
250
|
{props.content}
|
|
251
|
+
{
|
|
252
|
+
props.suffix?.({ data, field }) ?? null
|
|
253
|
+
}
|
|
244
254
|
</Button>
|
|
245
|
-
)
|
|
255
|
+
)
|
|
246
256
|
},
|
|
247
|
-
renderDefault(
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
) {
|
|
257
|
+
renderDefault({ props = {}, events = {} }: RenderOptions, {
|
|
258
|
+
row,
|
|
259
|
+
field,
|
|
260
|
+
}: RenderTableParams, defaultHandler: {
|
|
261
|
+
[key: string]: (...args: any[]) => any
|
|
262
|
+
}) {
|
|
254
263
|
return (
|
|
255
264
|
<Button
|
|
256
265
|
{...omit(props, ['content'])}
|
|
257
266
|
icon={props.icon ? <Icon icon={props.icon} /> : null}
|
|
258
267
|
onClick={() => {
|
|
259
|
-
events.click?.({ row, field })
|
|
268
|
+
events.click?.({ row, field })
|
|
260
269
|
if (props.htmlType === 'reset' && defaultHandler?.reset) {
|
|
261
|
-
|
|
270
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
271
|
+
defaultHandler?.setLoadings?.(true)
|
|
272
|
+
props.beforeClick({ row, field }).then((res: void | Recordable) => {
|
|
273
|
+
defaultHandler.reset(res ? { row: res, field } : { row, field })
|
|
274
|
+
}).finally(() => {
|
|
275
|
+
defaultHandler?.setLoadings?.(false)
|
|
276
|
+
})
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
defaultHandler.reset({ row, field })
|
|
280
|
+
}
|
|
262
281
|
}
|
|
263
282
|
if (props.htmlType === 'pick' && defaultHandler?.pick) {
|
|
264
|
-
|
|
283
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
284
|
+
defaultHandler?.setLoadings?.(true)
|
|
285
|
+
props.beforeClick({ row, field }).then((res: void | Recordable) => {
|
|
286
|
+
defaultHandler.pick(res ? { row: res, field } : { row, field })
|
|
287
|
+
}).finally(() => {
|
|
288
|
+
defaultHandler?.setLoadings?.(false)
|
|
289
|
+
})
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
defaultHandler.pick({ row, field })
|
|
293
|
+
}
|
|
265
294
|
}
|
|
266
295
|
}}
|
|
267
296
|
>
|
|
268
297
|
{props.content}
|
|
269
298
|
</Button>
|
|
270
|
-
)
|
|
299
|
+
)
|
|
271
300
|
},
|
|
272
301
|
},
|
|
273
302
|
// 简单按钮组
|
|
274
303
|
$buttons: {
|
|
275
|
-
renderItemContent(
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
) {
|
|
304
|
+
renderItemContent({ props = {}, children = [] }: RenderOptions, {
|
|
305
|
+
data,
|
|
306
|
+
field,
|
|
307
|
+
}: RenderFormParams, defaultHandler: {
|
|
308
|
+
[key: string]: (...args: any[]) => any
|
|
309
|
+
}) {
|
|
282
310
|
return (
|
|
283
311
|
<span class="align-gap-box w-fit">
|
|
284
|
-
{
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
312
|
+
{
|
|
313
|
+
children.map((m) => {
|
|
314
|
+
return (
|
|
315
|
+
<Button
|
|
316
|
+
{...omit(Object.assign({}, props, m.props), ['content'])}
|
|
317
|
+
icon={m.props.icon ? <Icon icon={m.props.icon} /> : null}
|
|
318
|
+
onClick={() => {
|
|
319
|
+
m.events?.click?.({ data, field })
|
|
320
|
+
if (m.props.htmlType === 'reset' && defaultHandler?.reset) {
|
|
321
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
322
|
+
props.beforeClick({ data, field }).then((res: void | Recordable) => {
|
|
323
|
+
defaultHandler.reset(res ? { data: res, field } : { data, field })
|
|
324
|
+
})
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
defaultHandler.reset({ data, field })
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (m.props.htmlType === 'pick' && defaultHandler?.pick) {
|
|
331
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
332
|
+
props.beforeClick({ data, field }).then((res: void | Recordable) => {
|
|
333
|
+
defaultHandler.pick(res ? { data: res, field } : { data, field })
|
|
334
|
+
})
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
defaultHandler.pick({ data, field })
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}}
|
|
341
|
+
>
|
|
342
|
+
{m.props.content}
|
|
343
|
+
</Button>
|
|
344
|
+
)
|
|
345
|
+
})
|
|
346
|
+
}
|
|
298
347
|
</span>
|
|
299
|
-
)
|
|
348
|
+
)
|
|
300
349
|
},
|
|
301
|
-
renderDefault(
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
350
|
+
renderDefault({ props = {}, children = [] }: RenderOptions, {
|
|
351
|
+
data,
|
|
352
|
+
row,
|
|
353
|
+
field,
|
|
354
|
+
}: RenderTableParams, defaultHandler: {
|
|
355
|
+
[key: string]: (...args: any[]) => any
|
|
356
|
+
}) {
|
|
305
357
|
return (
|
|
306
358
|
<span class="align-gap-box w-fit">
|
|
307
|
-
{
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
359
|
+
{
|
|
360
|
+
children.filter(f => !f?.props?.hiddenIf?.({
|
|
361
|
+
data,
|
|
362
|
+
row,
|
|
363
|
+
field,
|
|
364
|
+
})).map(m => (
|
|
365
|
+
<Button
|
|
366
|
+
{...omit(Object.assign({}, props, m.props), ['content', 'hiddenIf'])}
|
|
367
|
+
icon={m.props.icon ? <Icon icon={m.props.icon} /> : null}
|
|
368
|
+
onClick={() => {
|
|
369
|
+
m.events?.click?.({ data, row, field })
|
|
370
|
+
if (m.props.htmlType === 'reset' && defaultHandler?.reset) {
|
|
371
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
372
|
+
defaultHandler?.setLoadings?.(true)
|
|
373
|
+
props.beforeClick({ row, field }).then((res: void | Recordable) => {
|
|
374
|
+
defaultHandler.reset(res ? { row: res, field } : { row, field })
|
|
375
|
+
}).finally(() => {
|
|
376
|
+
defaultHandler?.setLoadings?.(false)
|
|
377
|
+
})
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
defaultHandler.reset({ row, field })
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
if (m.props.htmlType === 'pick' && defaultHandler?.pick) {
|
|
384
|
+
if (props.beforeClick && isFunction(props.beforeClick)) {
|
|
385
|
+
defaultHandler?.setLoadings?.(true)
|
|
386
|
+
props.beforeClick({ row, field }).then((res: void | Recordable) => {
|
|
387
|
+
defaultHandler.pick(res ? { row: res, field } : { row, field })
|
|
388
|
+
}).finally(() => {
|
|
389
|
+
defaultHandler?.setLoadings?.(false)
|
|
390
|
+
})
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
defaultHandler.pick({ row, field })
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}}
|
|
397
|
+
>
|
|
398
|
+
{m.props.content}
|
|
399
|
+
</Button>
|
|
400
|
+
))
|
|
401
|
+
}
|
|
318
402
|
</span>
|
|
319
|
-
)
|
|
403
|
+
)
|
|
320
404
|
},
|
|
321
405
|
},
|
|
322
406
|
ButtonTree: {
|
|
323
407
|
renderDefault({ children = [], props = {} as Recordable }, params: RenderTableParams) {
|
|
324
408
|
return (
|
|
325
409
|
<span class={props.noGap ? 'align-no-gap-box' : 'align-gap-box'}>
|
|
326
|
-
{(children as BtnOptions[])
|
|
410
|
+
{(children as BtnOptions[])
|
|
411
|
+
.filter((f) => !f.hiddenIf?.(params))
|
|
412
|
+
.map((item) => renderBtn(item, params)) ?? []}
|
|
327
413
|
</span>
|
|
328
414
|
);
|
|
329
415
|
},
|
|
330
416
|
},
|
|
331
417
|
$radio: {
|
|
332
|
-
renderItemContent(
|
|
418
|
+
renderItemContent(
|
|
419
|
+
{ props = {}, events = {}, options }: RenderOptions,
|
|
420
|
+
{ data, field }: RenderFormParams,
|
|
421
|
+
) {
|
|
333
422
|
return valued(field) ? (
|
|
334
423
|
<RadioGroup
|
|
335
424
|
v-model:value={data[field!]}
|
|
336
425
|
{...props}
|
|
337
426
|
options={props.options ?? options ?? []}
|
|
427
|
+
disabled={!!props.disabled}
|
|
428
|
+
onChange={(...arg) => {
|
|
429
|
+
events.change?.({ data, field }, ...arg);
|
|
430
|
+
}}
|
|
338
431
|
/>
|
|
339
432
|
) : null;
|
|
340
433
|
},
|
|
@@ -356,7 +449,7 @@ const renders = {
|
|
|
356
449
|
return valued(field) ? (
|
|
357
450
|
<AutoComplete
|
|
358
451
|
v-model:value={data[field!]}
|
|
359
|
-
{...props}
|
|
452
|
+
{...Object.assign({}, { filterOption: defaultProps.autoComplete.filterOption }, props)}
|
|
360
453
|
onChange={(...arg) => {
|
|
361
454
|
events.change?.({ data, field }, ...arg);
|
|
362
455
|
}}
|