@sunny-base-web/effects 0.4.0 → 0.6.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/dist/index.d.ts CHANGED
@@ -1,13 +1,20 @@
1
+ import { AllowedComponentProps } from 'vue';
1
2
  import { App } from 'vue';
2
3
  import { AxiosInstance } from 'axios';
3
4
  import { AxiosRequestConfig } from 'axios';
4
5
  import { AxiosResponse } from 'axios';
5
6
  import { BusinessSearchAdapter } from '../../../@ui/src/index.ts';
7
+ import { ComponentCustomProperties } from 'vue';
8
+ import { ComponentCustomProps } from 'vue';
9
+ import { ComponentInternalInstance } from 'vue';
10
+ import { ComponentOptionsBase } from 'vue';
6
11
  import { ComponentOptionsMixin } from 'vue';
7
12
  import { ComponentProvideOptions } from 'vue';
13
+ import { ComponentPublicInstance } from 'vue';
8
14
  import { ComputedRef } from 'vue';
9
15
  import { CreateAxiosDefaults } from 'axios';
10
16
  import { CreateComponentPublicInstanceWithMixins } from 'vue';
17
+ import { DebuggerEvent } from 'vue';
11
18
  import { DefineComponent } from 'vue';
12
19
  import { DefineSetupFnComponent } from 'vue';
13
20
  import { ExtractPropTypes } from 'vue';
@@ -16,20 +23,39 @@ import { FavoriteState } from '@sunny-base-web/stores';
16
23
  import { FormApi } from '../../../@ui/src/index.ts';
17
24
  import { FormCommonConfig } from '../../../@ui/src/index.ts';
18
25
  import { FormSchema } from '../../../../../@ui/src/index.ts';
26
+ import { FormSchema as FormSchema_2 } from '../../../../../../@ui/src/index.ts';
27
+ import { FormSchema as FormSchema_3 } from '../../../@ui/src/index.ts';
19
28
  import { GlobalComponents } from 'vue';
20
29
  import { GlobalDirectives } from 'vue';
21
30
  import { InjectionKey } from 'vue';
22
31
  import { InternalAxiosRequestConfig } from 'axios';
32
+ import { ModalProps } from '../../../../../@ui/src/feedback/modal/types';
33
+ import { nextTick } from 'vue';
34
+ import { OnCleanup } from '@vue/reactivity';
23
35
  import { PiniaCustomStateProperties } from 'pinia';
24
36
  import { PropType } from 'vue';
25
37
  import { PublicProps } from 'vue';
26
38
  import { Ref } from 'vue';
27
39
  import { RendererElement } from 'vue';
28
40
  import { RendererNode } from 'vue';
41
+ import { SelectFieldMapping } from '../../../@ui/src/index.ts';
42
+ import { SelectOption } from '../../../@ui/src/index.ts';
43
+ import { SelectOptionsAdapter } from '../../../@ui/src/index.ts';
44
+ import { ShallowUnwrapRef } from 'vue';
45
+ import { Slot } from 'vue';
29
46
  import { Store } from 'pinia';
30
47
  import { VNode } from 'vue';
48
+ import { VNodeProps } from 'vue';
31
49
  import { VxeGridApi } from '../../../@ui/src/data/query-grid/api';
32
- import { VxeGridProps } from 'vxe-table';
50
+ import { VxeGridProps } from '../../../../../@ui/src/index.ts';
51
+ import { VxeGridPropTypes } from '@sunny-base-web/ui';
52
+ import { WatchOptions } from 'vue';
53
+ import { WatchStopHandle } from 'vue';
54
+
55
+ declare type __VLS_Props = {
56
+ type?: 'nprogress' | 'spinner' | 'loading' | 'none';
57
+ minLoadingTime?: number;
58
+ };
33
59
 
34
60
  /**
35
61
  * 添加收藏菜单
@@ -140,6 +166,21 @@ export declare const businessCodeResponseInterceptor: ({ businessCodes, onBusine
140
166
  onBusinessError: (code: number, message: string) => Promise<void> | void;
141
167
  }) => ResponseInterceptorConfig;
142
168
 
169
+ /**
170
+ * 收集 Schema 中的字典声明(工具函数)
171
+ * Collect dictionary declarations from Schema (utility function)
172
+ *
173
+ * @param schema - 表单 Schema
174
+ * @returns 字典编码列表
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const dictCodes = collectSchemaDictCodes(searchFormSchema);
179
+ * console.log(dictCodes); // ['SFQY', 'LANG']
180
+ * ```
181
+ */
182
+ export declare function collectSchemaDictCodes(schema: FormSchema_3[]): (string | number)[];
183
+
143
184
  /**
144
185
  * 创建 @effects 插件实例
145
186
  * 在 Vue 应用入口文件 (main.ts/bootstrap.ts) 中使用 app.use() 安装
@@ -229,6 +270,14 @@ export declare const defaultResponseInterceptor: ({ codeField, dataField, succes
229
270
  successCode: ((code: any) => boolean) | number | string;
230
271
  }) => ResponseInterceptorConfig;
231
272
 
273
+ /**
274
+ * 默认的 Select 选项适配器实现
275
+ * Default Select options adapter implementation
276
+ * @description 调用 /core/contact/findAuthDictList 接口批量加载字典选项
277
+ * @description Calls /core/contact/findAuthDictList API to batch load dictionary options
278
+ */
279
+ export declare const defaultSelectOptionsAdapter: SelectOptionsAdapter;
280
+
232
281
  declare type DownloadRequestConfig = {
233
282
  /**
234
283
  * 定义期望获得的数据类型。
@@ -363,6 +412,12 @@ declare class FileUploader {
363
412
  }, config?: RequestClientConfig): Promise<T>;
364
413
  }
365
414
 
415
+ /**
416
+ * 根据选项key、list返回对应name
417
+ * @param {*} optionlist
418
+ */
419
+ export declare function filterSelect(val: string, optionlist: Option_2[]): string;
420
+
366
421
  /**
367
422
  * 获取所有系统设置
368
423
  */
@@ -393,16 +448,72 @@ declare interface FormItem {
393
448
  */
394
449
  export declare function getEnterStrategy(data?: any): Promise<ResponseResult<LoginStrategyResult>>;
395
450
 
451
+ export declare const getJobGroupConfig: ({ t }: JobGroupConfig) => {
452
+ searchFormSchema: FormSchema_2[];
453
+ tableColumns: VxeGridPropTypes.Columns<JobGroupVO>;
454
+ statusOptions: {
455
+ cKeyname: string;
456
+ cKeynumb: string;
457
+ }[];
458
+ zcfsOpts: {
459
+ cKeyname: string;
460
+ cKeynumb: string;
461
+ }[];
462
+ };
463
+
464
+ export declare const getJobInfoConfig: ({ t }: JobInfoConfig) => {
465
+ searchFormSchema: FormSchema_2[];
466
+ tableColumns: VxeGridPropTypes.Columns<JobInfoVO>;
467
+ scheduleTypeOptions: {
468
+ cKeyname: string;
469
+ cKeynumb: string;
470
+ }[];
471
+ glueTypeOptions: {
472
+ cKeyname: string;
473
+ cKeynumb: string;
474
+ }[];
475
+ triggerStatusOptions: {
476
+ cKeyname: string;
477
+ cKeynumb: string;
478
+ }[];
479
+ };
480
+
481
+ export declare const getJobLogConfig: ({ t }: JobLogConfig) => {
482
+ searchFormSchema: FormSchema_2[];
483
+ tableColumns: VxeGridPropTypes.Columns<JobLogVO>;
484
+ triggerCodeOptions: {
485
+ cKeyname: string;
486
+ cKeynumb: string;
487
+ }[];
488
+ handleCodeOptions: {
489
+ cKeyname: string;
490
+ cKeynumb: string;
491
+ }[];
492
+ };
493
+
494
+ export declare const getOperationLogConfig: ({ t }: OperationLogConfig) => {
495
+ searchFormSchema: FormSchema[];
496
+ tableColumns: VxeGridPropTypes.Columns<OperationLogVO>;
497
+ };
498
+
396
499
  /**
397
500
  * 根据字段配置项构建options
398
501
  * @param {*} resource
399
502
  */
400
503
  export declare function getOptionsForSelectType(item: any): any;
401
504
 
402
- export declare function getResourceByParIdOrModnumb({ parId, modnumb }: {
403
- parId?: string;
404
- modnumb?: string;
405
- }): Promise<any> | undefined;
505
+ export declare const getRoleConfig: ({ t, formApi }: RoleConfig) => {
506
+ searchFormSchema: FormSchema[];
507
+ tableColumns: VxeGridPropTypes.Columns<any>;
508
+ resourceConfig: {
509
+ resourceId: string;
510
+ nResourceid: number;
511
+ cModnumb: string;
512
+ };
513
+ addEditFormSchema: FormSchema[];
514
+ authFormSchema: FormSchema[];
515
+ authGridColumns: VxeGridPropTypes.Columns<any>;
516
+ };
406
517
 
407
518
  /**
408
519
  * 获取滑动验证码
@@ -414,6 +525,31 @@ export declare function getSlideVerificationCode(data: any): Promise<any>;
414
525
  */
415
526
  export declare let globalConfig: EffectsConfig;
416
527
 
528
+ export declare const GlobalLoading: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
529
+
530
+ /**
531
+ * GlobalLoading 组件属性类型定义
532
+ */
533
+ /**
534
+ * GlobalLoading 组件属性
535
+ */
536
+ export declare interface GlobalLoadingProps {
537
+ /**
538
+ * 加载动画类型
539
+ * - 'nprogress': 顶部进度条(由外部控制)
540
+ * - 'spinner': 方块跳跃动画
541
+ * - 'loading': 四点旋转动画
542
+ * - 'none': 禁用加载动画
543
+ * @default 'spinner'
544
+ */
545
+ type?: 'nprogress' | 'spinner' | 'loading' | 'none';
546
+ /**
547
+ * 最小加载时间(毫秒),避免闪烁
548
+ * @default 50
549
+ */
550
+ minLoadingTime?: number;
551
+ }
552
+
417
553
  export declare interface HttpResponse<T = any> {
418
554
  /**
419
555
  * 0 表示成功 其他表示失败
@@ -441,6 +577,7 @@ export declare function initButtonItem(data: any): {
441
577
  cSubArea: any;
442
578
  name: any;
443
579
  code: any;
580
+ params: string;
444
581
  };
445
582
 
446
583
  /**
@@ -449,6 +586,10 @@ export declare function initButtonItem(data: any): {
449
586
  */
450
587
  export declare function initFormItem(data: any): FormItem;
451
588
 
589
+ /**
590
+ * 根据资源接口返回构建配置(表单、表格、按钮)项
591
+ * @param {*} resource
592
+ */
452
593
  export declare function initResourceConstructor(result: any): {
453
594
  resFieldList: Record<string, any[]>;
454
595
  resButtonList: Record<string, any[]>;
@@ -469,6 +610,308 @@ declare class InterceptorManager {
469
610
  addResponseInterceptor<T = any>({ fulfilled, rejected, }?: ResponseInterceptorConfig<T>): void;
470
611
  }
471
612
 
613
+ declare interface JobGroupConfig {
614
+ t: (key: string) => string;
615
+ }
616
+
617
+ export declare const JobGroupQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
618
+ formRef: CreateComponentPublicInstanceWithMixins<Readonly<{
619
+ visible: boolean;
620
+ formData?: any;
621
+ }> & Readonly<{
622
+ onSuccess?: (() => any) | undefined;
623
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
624
+ }>, {
625
+ show: (data?: any) => void;
626
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
627
+ success: () => any;
628
+ "update:visible": (value: boolean) => any;
629
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
630
+ formRef: any;
631
+ }, any, ComponentProvideOptions, {
632
+ P: {};
633
+ B: {};
634
+ D: {};
635
+ C: {};
636
+ M: {};
637
+ Defaults: {};
638
+ }, Readonly<{
639
+ visible: boolean;
640
+ formData?: any;
641
+ }> & Readonly<{
642
+ onSuccess?: (() => any) | undefined;
643
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
644
+ }>, {
645
+ show: (data?: any) => void;
646
+ }, {}, {}, {}, {}> | null;
647
+ }, HTMLDivElement>;
648
+
649
+ /**
650
+ * 执行器信息VO
651
+ */
652
+ export declare interface JobGroupVO {
653
+ /**
654
+ * Appname
655
+ */
656
+ appname: string;
657
+ /**
658
+ * 名称
659
+ */
660
+ title: string;
661
+ /**
662
+ * 注册方式
663
+ */
664
+ addressType: string;
665
+ /**
666
+ * OnLine地址列表
667
+ */
668
+ addressList: string;
669
+ }
670
+
671
+ declare interface JobInfoConfig {
672
+ t: (key: string) => string;
673
+ }
674
+
675
+ export declare const JobInfoQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
676
+ formRef: CreateComponentPublicInstanceWithMixins<Readonly<{
677
+ visible: boolean;
678
+ formData?: any;
679
+ }> & Readonly<{
680
+ onSuccess?: (() => any) | undefined;
681
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
682
+ }>, {
683
+ show: (data?: any) => void;
684
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
685
+ success: () => any;
686
+ "update:visible": (value: boolean) => any;
687
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
688
+ formRef: any;
689
+ }, any, ComponentProvideOptions, {
690
+ P: {};
691
+ B: {};
692
+ D: {};
693
+ C: {};
694
+ M: {};
695
+ Defaults: {};
696
+ }, Readonly<{
697
+ visible: boolean;
698
+ formData?: any;
699
+ }> & Readonly<{
700
+ onSuccess?: (() => any) | undefined;
701
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
702
+ }>, {
703
+ show: (data?: any) => void;
704
+ }, {}, {}, {}, {}> | null;
705
+ onceRef: CreateComponentPublicInstanceWithMixins<Readonly<{
706
+ visible: boolean;
707
+ formData?: any;
708
+ }> & Readonly<{
709
+ onSuccess?: (() => any) | undefined;
710
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
711
+ }>, {
712
+ show: (data?: any) => void;
713
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
714
+ success: () => any;
715
+ "update:visible": (value: boolean) => any;
716
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
717
+ formRef: any;
718
+ }, any, ComponentProvideOptions, {
719
+ P: {};
720
+ B: {};
721
+ D: {};
722
+ C: {};
723
+ M: {};
724
+ Defaults: {};
725
+ }, Readonly<{
726
+ visible: boolean;
727
+ formData?: any;
728
+ }> & Readonly<{
729
+ onSuccess?: (() => any) | undefined;
730
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
731
+ }>, {
732
+ show: (data?: any) => void;
733
+ }, {}, {}, {}, {}> | null;
734
+ codeRef: CreateComponentPublicInstanceWithMixins<Readonly<{
735
+ visible: boolean;
736
+ formData?: any;
737
+ }> & Readonly<{
738
+ onSuccess?: (() => any) | undefined;
739
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
740
+ }>, {
741
+ show: (data?: any) => void;
742
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
743
+ success: () => any;
744
+ "update:visible": (value: boolean) => any;
745
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
746
+ P: {};
747
+ B: {};
748
+ D: {};
749
+ C: {};
750
+ M: {};
751
+ Defaults: {};
752
+ }, Readonly<{
753
+ visible: boolean;
754
+ formData?: any;
755
+ }> & Readonly<{
756
+ onSuccess?: (() => any) | undefined;
757
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
758
+ }>, {
759
+ show: (data?: any) => void;
760
+ }, {}, {}, {}, {}> | null;
761
+ }, HTMLDivElement>;
762
+
763
+ /**
764
+ * 定时任务信息VO
765
+ */
766
+ export declare interface JobInfoVO {
767
+ /**
768
+ * 任务id
769
+ */
770
+ id: string | number;
771
+ /**
772
+ * 任务描述
773
+ */
774
+ jobDesc: string;
775
+ /**
776
+ * 执行器
777
+ */
778
+ jobGroupTitle: string;
779
+ /**
780
+ * 调度类型
781
+ */
782
+ scheduleType: string;
783
+ /**
784
+ * 运行模式
785
+ */
786
+ glueType: string;
787
+ /**
788
+ * 负责人
789
+ */
790
+ author: string;
791
+ /**
792
+ * 状态
793
+ */
794
+ triggerStatus: string;
795
+ }
796
+
797
+ declare interface JobLogConfig {
798
+ t: (key: string) => string;
799
+ }
800
+
801
+ export declare const JobLogQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
802
+ logListRef: CreateComponentPublicInstanceWithMixins<Readonly<{
803
+ visible: boolean;
804
+ }> & Readonly<{
805
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
806
+ }>, {
807
+ show: (id: string) => Promise<void>;
808
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
809
+ "update:visible": (value: boolean) => any;
810
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
811
+ logboxRef: HTMLDivElement;
812
+ }, any, ComponentProvideOptions, {
813
+ P: {};
814
+ B: {};
815
+ D: {};
816
+ C: {};
817
+ M: {};
818
+ Defaults: {};
819
+ }, Readonly<{
820
+ visible: boolean;
821
+ }> & Readonly<{
822
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
823
+ }>, {
824
+ show: (id: string) => Promise<void>;
825
+ }, {}, {}, {}, {}> | null;
826
+ }, HTMLDivElement>;
827
+
828
+ /**
829
+ * 调度日志信息VO
830
+ */
831
+ export declare interface JobLogVO {
832
+ /**
833
+ * 任务ID
834
+ */
835
+ jobld: string | number;
836
+ /**
837
+ * 任务描述
838
+ */
839
+ jobDesc: string;
840
+ /**
841
+ * 调度结果
842
+ */
843
+ triggerCode: string;
844
+ /**
845
+ * 调度时间
846
+ */
847
+ triggerTime: string;
848
+ /**
849
+ * 本次执行地址
850
+ */
851
+ executorAddress: string;
852
+ /**
853
+ * 执行任务
854
+ */
855
+ executorHandler: string;
856
+ /**
857
+ * 执行参数
858
+ */
859
+ executorParam: string;
860
+ /**
861
+ * 调度备注
862
+ */
863
+ handleDdbz: string;
864
+ /**
865
+ * 执行时间
866
+ */
867
+ handleTime: string;
868
+ /**
869
+ * 执行结果
870
+ */
871
+ handleCode: string;
872
+ /**
873
+ * 执行备注
874
+ */
875
+ handleMsg: string;
876
+ /**
877
+ * 执行日志
878
+ */
879
+ handleZxrz: string;
880
+ }
881
+
882
+ /**
883
+ * 全局加载状态管理器
884
+ * @description 单例模式,管理全局加载动画的显示状态
885
+ * @since 简化版:仅使用布尔值,不使用计数器(因为只处理路由导航)
886
+ */
887
+ export declare class LoadingManager {
888
+ private static instance;
889
+ private _isLoading;
890
+ /**
891
+ * 当前是否处于加载状态(响应式)
892
+ */
893
+ readonly isLoading: ComputedRef<boolean>;
894
+ private constructor();
895
+ /**
896
+ * 获取单例实例
897
+ */
898
+ static getInstance(): LoadingManager;
899
+ /**
900
+ * 开始加载
901
+ */
902
+ startLoading(): void;
903
+ /**
904
+ * 结束加载
905
+ */
906
+ stopLoading(): void;
907
+ /**
908
+ * 强制停止加载(等同于 stopLoading,为了保持 API 兼容性)
909
+ */
910
+ forceStop(): void;
911
+ }
912
+
913
+ export declare const loadingManager: LoadingManager;
914
+
472
915
  export declare const Login: DefineComponent<ExtractPropTypes< {
473
916
  bg01: {
474
917
  type: StringConstructor;
@@ -588,6 +1031,10 @@ export declare interface MetaItem {
588
1031
  value: string;
589
1032
  }
590
1033
 
1034
+ declare interface OperationLogConfig {
1035
+ t: (key: string) => string;
1036
+ }
1037
+
591
1038
  export declare const OperationLogQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLDivElement>;
592
1039
 
593
1040
  /**
@@ -621,6 +1068,48 @@ export declare interface OperationLogVO {
621
1068
  nSecond: number;
622
1069
  }
623
1070
 
1071
+ declare interface Option_2 {
1072
+ label: string;
1073
+ value: string;
1074
+ }
1075
+
1076
+ /**
1077
+ * 路由守卫预加载工具
1078
+ * Route guard pre-loading utility
1079
+ *
1080
+ * @description 用于在路由级别预加载字典选项
1081
+ * @description Used for pre-loading dictionary options at route level
1082
+ *
1083
+ * @param dictCodes - 字典编码列表
1084
+ * @param fieldMapping - 字段映射配置
1085
+ * @returns 加载函数
1086
+ *
1087
+ * @example
1088
+ * ```typescript
1089
+ * // router/guard.ts
1090
+ * import { preLoadSelectOptions } from '@sunny-base-web/effects';
1091
+ *
1092
+ * router.beforeEach(async (to, from, next) => {
1093
+ * if (to.meta.selectOptions) {
1094
+ * await preLoadSelectOptions(to.meta.selectOptions as string[]);
1095
+ * }
1096
+ * next();
1097
+ * });
1098
+ *
1099
+ * // router/index.ts
1100
+ * {
1101
+ * path: '/setting/demo/test',
1102
+ * meta: {
1103
+ * selectOptions: ['SFQY', 'LANG']
1104
+ * }
1105
+ * }
1106
+ * ```
1107
+ */
1108
+ export declare function preLoadSelectOptions(dictCodes: (string | number)[], fieldMapping?: {
1109
+ label?: string;
1110
+ value?: string;
1111
+ }): Promise<void>;
1112
+
624
1113
  /**
625
1114
  * 查询数据字典
626
1115
  */
@@ -824,11 +1313,445 @@ export declare interface ResponseResult<T = any> {
824
1313
  timestamp: number;
825
1314
  }
826
1315
 
1316
+ export declare const RoleAdd: DefineComponent< {}, {
1317
+ addInit: () => Promise<void>;
1318
+ editInit: (record: any) => Promise<void>;
1319
+ detailInit: (record: any) => void;
1320
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1321
+ success: () => any;
1322
+ }, string, PublicProps, Readonly<{}> & Readonly<{
1323
+ onSuccess?: (() => any) | undefined;
1324
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
1325
+ modalRef: ({
1326
+ $: ComponentInternalInstance;
1327
+ $data: {};
1328
+ $props: {
1329
+ readonly modelValue?: boolean | undefined;
1330
+ readonly title?: string | undefined;
1331
+ readonly width?: string | number | undefined;
1332
+ readonly top?: string | number | undefined;
1333
+ readonly zIndex?: number | undefined;
1334
+ readonly helpMessage?: string | undefined;
1335
+ readonly closeOnEsc?: boolean | undefined;
1336
+ readonly fullscreen?: boolean | undefined;
1337
+ readonly closeOnClickModal?: boolean | undefined;
1338
+ readonly okText?: string | undefined;
1339
+ readonly cancelText?: string | undefined;
1340
+ readonly okLoading?: boolean | undefined;
1341
+ readonly confirmLoading?: boolean | undefined;
1342
+ readonly hideCancel?: boolean | undefined;
1343
+ readonly okButtonProps?: any;
1344
+ readonly cancelButtonProps?: any;
1345
+ readonly onVisibleChange?: ((visible: boolean) => void) | undefined;
1346
+ readonly onBeforeOk?: ((done?: (closed: boolean) => void) => void | boolean | Promise<void | boolean>) | undefined;
1347
+ readonly onBeforeCancel?: (() => boolean | Promise<boolean>) | undefined;
1348
+ readonly onClose?: ((() => void) & (() => any)) | undefined;
1349
+ readonly onOk?: ((() => void) & (() => any)) | undefined;
1350
+ readonly "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1351
+ readonly "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1352
+ } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
1353
+ $attrs: {
1354
+ [x: string]: unknown;
1355
+ };
1356
+ $refs: {
1357
+ [x: string]: unknown;
1358
+ };
1359
+ $slots: Readonly<{
1360
+ [name: string]: Slot<any> | undefined;
1361
+ }>;
1362
+ $root: ComponentPublicInstance | null;
1363
+ $parent: ComponentPublicInstance | null;
1364
+ $host: Element | null;
1365
+ $emit: ((event: "close") => void) & ((event: "update:modelValue", value: boolean) => void) & ((event: "ok") => void) & ((event: "fullscreen-change", value: boolean) => void);
1366
+ $el: any;
1367
+ $options: ComponentOptionsBase<Readonly<ModalProps> & Readonly<{
1368
+ onClose?: (() => any) | undefined;
1369
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1370
+ onOk?: (() => any) | undefined;
1371
+ "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1372
+ }>, {
1373
+ toggleMaximize: () => void;
1374
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1375
+ close: () => any;
1376
+ "update:modelValue": (value: boolean) => any;
1377
+ ok: () => any;
1378
+ "fullscreen-change": (value: boolean) => any;
1379
+ }, string, {
1380
+ title: string;
1381
+ modelValue: boolean;
1382
+ width: string | number;
1383
+ zIndex: number;
1384
+ helpMessage: string;
1385
+ closeOnEsc: boolean;
1386
+ fullscreen: boolean;
1387
+ closeOnClickModal: boolean;
1388
+ }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
1389
+ beforeCreate?: (() => void) | (() => void)[];
1390
+ created?: (() => void) | (() => void)[];
1391
+ beforeMount?: (() => void) | (() => void)[];
1392
+ mounted?: (() => void) | (() => void)[];
1393
+ beforeUpdate?: (() => void) | (() => void)[];
1394
+ updated?: (() => void) | (() => void)[];
1395
+ activated?: (() => void) | (() => void)[];
1396
+ deactivated?: (() => void) | (() => void)[];
1397
+ beforeDestroy?: (() => void) | (() => void)[];
1398
+ beforeUnmount?: (() => void) | (() => void)[];
1399
+ destroyed?: (() => void) | (() => void)[];
1400
+ unmounted?: (() => void) | (() => void)[];
1401
+ renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1402
+ renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1403
+ errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
1404
+ };
1405
+ $forceUpdate: () => void;
1406
+ $nextTick: typeof nextTick;
1407
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
1408
+ } & Readonly<{
1409
+ title: string;
1410
+ modelValue: boolean;
1411
+ width: string | number;
1412
+ zIndex: number;
1413
+ helpMessage: string;
1414
+ closeOnEsc: boolean;
1415
+ fullscreen: boolean;
1416
+ closeOnClickModal: boolean;
1417
+ }> & Omit<Readonly<ModalProps> & Readonly<{
1418
+ onClose?: (() => any) | undefined;
1419
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1420
+ onOk?: (() => any) | undefined;
1421
+ "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1422
+ }>, "toggleMaximize" | ("title" | "modelValue" | "width" | "zIndex" | "helpMessage" | "closeOnEsc" | "fullscreen" | "closeOnClickModal")> & ShallowUnwrapRef< {
1423
+ toggleMaximize: () => void;
1424
+ }> & {} & ComponentCustomProperties & {} & {
1425
+ $slots: {
1426
+ default?(_: {}): any;
1427
+ title?(_: {}): any;
1428
+ footer?(_: {}): any;
1429
+ insertFooter?(_: {}): any;
1430
+ centerFooter?(_: {}): any;
1431
+ appendFooter?(_: {}): any;
1432
+ };
1433
+ }) | null;
1434
+ treeRef: any;
1435
+ }, any>;
1436
+
1437
+ export declare const RoleAuth: DefineComponent< {}, {
1438
+ openInit: (record: any) => Promise<void>;
1439
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1440
+ success: () => any;
1441
+ }, string, PublicProps, Readonly<{}> & Readonly<{
1442
+ onSuccess?: (() => any) | undefined;
1443
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
1444
+ RoleChooseUserRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
1445
+ onChooseUserEmit?: ((...args: any[]) => any) | undefined;
1446
+ }>, {
1447
+ openInit: () => void;
1448
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1449
+ chooseUserEmit: (...args: any[]) => void;
1450
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
1451
+ P: {};
1452
+ B: {};
1453
+ D: {};
1454
+ C: {};
1455
+ M: {};
1456
+ Defaults: {};
1457
+ }, Readonly<{}> & Readonly<{
1458
+ onChooseUserEmit?: ((...args: any[]) => any) | undefined;
1459
+ }>, {
1460
+ openInit: () => void;
1461
+ }, {}, {}, {}, {}> | null;
1462
+ }, any>;
1463
+
1464
+ declare interface RoleConfig {
1465
+ t: (key: string) => string;
1466
+ formApi?: any;
1467
+ }
1468
+
1469
+ export declare const RoleQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
1470
+ RoleAddRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
1471
+ onSuccess?: (() => any) | undefined;
1472
+ }>, {
1473
+ addInit: () => Promise<void>;
1474
+ editInit: (record: any) => Promise<void>;
1475
+ detailInit: (record: any) => void;
1476
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1477
+ success: () => any;
1478
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {
1479
+ modalRef: ({
1480
+ $: ComponentInternalInstance;
1481
+ $data: {};
1482
+ $props: {
1483
+ readonly modelValue?: boolean | undefined;
1484
+ readonly title?: string | undefined;
1485
+ readonly width?: string | number | undefined;
1486
+ readonly top?: string | number | undefined;
1487
+ readonly zIndex?: number | undefined;
1488
+ readonly helpMessage?: string | undefined;
1489
+ readonly closeOnEsc?: boolean | undefined;
1490
+ readonly fullscreen?: boolean | undefined;
1491
+ readonly closeOnClickModal?: boolean | undefined;
1492
+ readonly okText?: string | undefined;
1493
+ readonly cancelText?: string | undefined;
1494
+ readonly okLoading?: boolean | undefined;
1495
+ readonly confirmLoading?: boolean | undefined;
1496
+ readonly hideCancel?: boolean | undefined;
1497
+ readonly okButtonProps?: any;
1498
+ readonly cancelButtonProps?: any;
1499
+ readonly onVisibleChange?: ((visible: boolean) => void) | undefined;
1500
+ readonly onBeforeOk?: ((done?: (closed: boolean) => void) => void | boolean | Promise<void | boolean>) | undefined;
1501
+ readonly onBeforeCancel?: (() => boolean | Promise<boolean>) | undefined;
1502
+ readonly onClose?: ((() => void) & (() => any)) | undefined;
1503
+ readonly onOk?: ((() => void) & (() => any)) | undefined;
1504
+ readonly "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1505
+ readonly "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1506
+ } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
1507
+ $attrs: {
1508
+ [x: string]: unknown;
1509
+ };
1510
+ $refs: {
1511
+ [x: string]: unknown;
1512
+ };
1513
+ $slots: Readonly<{
1514
+ [name: string]: Slot<any> | undefined;
1515
+ }>;
1516
+ $root: ComponentPublicInstance | null;
1517
+ $parent: ComponentPublicInstance | null;
1518
+ $host: Element | null;
1519
+ $emit: ((event: "close") => void) & ((event: "update:modelValue", value: boolean) => void) & ((event: "ok") => void) & ((event: "fullscreen-change", value: boolean) => void);
1520
+ $el: any;
1521
+ $options: ComponentOptionsBase<Readonly<ModalProps> & Readonly<{
1522
+ onClose?: (() => any) | undefined;
1523
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1524
+ onOk?: (() => any) | undefined;
1525
+ "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1526
+ }>, {
1527
+ toggleMaximize: () => void;
1528
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1529
+ close: () => any;
1530
+ "update:modelValue": (value: boolean) => any;
1531
+ ok: () => any;
1532
+ "fullscreen-change": (value: boolean) => any;
1533
+ }, string, {
1534
+ title: string;
1535
+ modelValue: boolean;
1536
+ width: string | number;
1537
+ zIndex: number;
1538
+ helpMessage: string;
1539
+ closeOnEsc: boolean;
1540
+ fullscreen: boolean;
1541
+ closeOnClickModal: boolean;
1542
+ }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
1543
+ beforeCreate?: (() => void) | (() => void)[];
1544
+ created?: (() => void) | (() => void)[];
1545
+ beforeMount?: (() => void) | (() => void)[];
1546
+ mounted?: (() => void) | (() => void)[];
1547
+ beforeUpdate?: (() => void) | (() => void)[];
1548
+ updated?: (() => void) | (() => void)[];
1549
+ activated?: (() => void) | (() => void)[];
1550
+ deactivated?: (() => void) | (() => void)[];
1551
+ beforeDestroy?: (() => void) | (() => void)[];
1552
+ beforeUnmount?: (() => void) | (() => void)[];
1553
+ destroyed?: (() => void) | (() => void)[];
1554
+ unmounted?: (() => void) | (() => void)[];
1555
+ renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1556
+ renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1557
+ errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
1558
+ };
1559
+ $forceUpdate: () => void;
1560
+ $nextTick: nextTick;
1561
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
1562
+ } & Readonly<{
1563
+ title: string;
1564
+ modelValue: boolean;
1565
+ width: string | number;
1566
+ zIndex: number;
1567
+ helpMessage: string;
1568
+ closeOnEsc: boolean;
1569
+ fullscreen: boolean;
1570
+ closeOnClickModal: boolean;
1571
+ }> & Omit<Readonly<ModalProps> & Readonly<{
1572
+ onClose?: (() => any) | undefined;
1573
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1574
+ onOk?: (() => any) | undefined;
1575
+ "onFullscreen-change"?: ((value: boolean) => any) | undefined;
1576
+ }>, "toggleMaximize" | ("title" | "modelValue" | "width" | "zIndex" | "helpMessage" | "closeOnEsc" | "fullscreen" | "closeOnClickModal")> & ShallowUnwrapRef< {
1577
+ toggleMaximize: () => void;
1578
+ }> & {} & ComponentCustomProperties & {} & {
1579
+ $slots: {
1580
+ default?(_: {}): any;
1581
+ title?(_: {}): any;
1582
+ footer?(_: {}): any;
1583
+ insertFooter?(_: {}): any;
1584
+ centerFooter?(_: {}): any;
1585
+ appendFooter?(_: {}): any;
1586
+ };
1587
+ }) | null;
1588
+ treeRef: any;
1589
+ }, any, ComponentProvideOptions, {
1590
+ P: {};
1591
+ B: {};
1592
+ D: {};
1593
+ C: {};
1594
+ M: {};
1595
+ Defaults: {};
1596
+ }, Readonly<{}> & Readonly<{
1597
+ onSuccess?: (() => any) | undefined;
1598
+ }>, {
1599
+ addInit: () => Promise<void>;
1600
+ editInit: (record: any) => Promise<void>;
1601
+ detailInit: (record: any) => void;
1602
+ }, {}, {}, {}, {}> | null;
1603
+ RoleAuthRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
1604
+ onSuccess?: (() => any) | undefined;
1605
+ }>, {
1606
+ openInit: (record: any) => Promise<void>;
1607
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1608
+ success: () => any;
1609
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {
1610
+ RoleChooseUserRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
1611
+ onChooseUserEmit?: ((...args: any[]) => any) | undefined;
1612
+ }>, {
1613
+ openInit: () => void;
1614
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1615
+ chooseUserEmit: (...args: any[]) => void;
1616
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
1617
+ P: {};
1618
+ B: {};
1619
+ D: {};
1620
+ C: {};
1621
+ M: {};
1622
+ Defaults: {};
1623
+ }, Readonly<{}> & Readonly<{
1624
+ onChooseUserEmit?: ((...args: any[]) => any) | undefined;
1625
+ }>, {
1626
+ openInit: () => void;
1627
+ }, {}, {}, {}, {}> | null;
1628
+ }, any, ComponentProvideOptions, {
1629
+ P: {};
1630
+ B: {};
1631
+ D: {};
1632
+ C: {};
1633
+ M: {};
1634
+ Defaults: {};
1635
+ }, Readonly<{}> & Readonly<{
1636
+ onSuccess?: (() => any) | undefined;
1637
+ }>, {
1638
+ openInit: (record: any) => Promise<void>;
1639
+ }, {}, {}, {}, {}> | null;
1640
+ }, HTMLDivElement>;
1641
+
1642
+ /**
1643
+ * 角色查询参数
1644
+ */
1645
+ export declare interface RoleQueryParams {
1646
+ /**
1647
+ * 页码
1648
+ */
1649
+ pageNo: number;
1650
+ /**
1651
+ * 每页大小
1652
+ */
1653
+ pageSize: number;
1654
+ /**
1655
+ * 角色信息
1656
+ */
1657
+ authRole: {
1658
+ /**
1659
+ * 角色编号
1660
+ */
1661
+ cRolenumb?: string;
1662
+ /**
1663
+ * 角色名称
1664
+ */
1665
+ cRolename?: string;
1666
+ /**
1667
+ * 所属系统
1668
+ */
1669
+ CSystem?: string;
1670
+ /**
1671
+ * 所属组织
1672
+ */
1673
+ corg?: string;
1674
+ /**
1675
+ * 所属类型
1676
+ */
1677
+ сType?: string;
1678
+ };
1679
+ }
1680
+
1681
+ /**
1682
+ * 角色信息VO
1683
+ */
1684
+ export declare interface RoleVO {
1685
+ /**
1686
+ * ID
1687
+ */
1688
+ id: string;
1689
+ /**
1690
+ * 角色编号
1691
+ */
1692
+ cRolenumb: string;
1693
+ /**
1694
+ * 角色名称
1695
+ */
1696
+ cRolename: string;
1697
+ /**
1698
+ * 所属系统
1699
+ */
1700
+ CSystem: string;
1701
+ /**
1702
+ * 所属组织
1703
+ */
1704
+ corg: string;
1705
+ /**
1706
+ * 所属类型
1707
+ */
1708
+ сType: string;
1709
+ /**
1710
+ * 敏感角色
1711
+ */
1712
+ nSensitive: string;
1713
+ /**
1714
+ * 创建人
1715
+ */
1716
+ cCrename: string;
1717
+ /**
1718
+ * 创建时间
1719
+ */
1720
+ dCredate: string;
1721
+ }
1722
+
827
1723
  /**
828
1724
  * 保存所有系统设置
829
1725
  */
830
1726
  export declare function saveAllSettings(settings: SysSettingItem[]): Promise<any>;
831
1727
 
1728
+ /**
1729
+ * Schema 选项加载器返回值
1730
+ * Schema options loader return value
1731
+ */
1732
+ export declare interface SchemaOptionsLoaderReturn {
1733
+ /**
1734
+ * 增强后的 Schema(自动注入 options)
1735
+ * Enhanced Schema (with auto-injected options)
1736
+ */
1737
+ enhancedSchema: ComputedRef<FormSchema_3[]>;
1738
+ /**
1739
+ * 选项映射表
1740
+ * Options map
1741
+ */
1742
+ optionsMap: Ref<Record<string, SelectOption[]>>;
1743
+ /**
1744
+ * 加载状态
1745
+ * Loading state
1746
+ */
1747
+ loading: Ref<boolean>;
1748
+ /**
1749
+ * 手动加载
1750
+ * Manual load
1751
+ */
1752
+ load: () => Promise<void>;
1753
+ }
1754
+
832
1755
  /**
833
1756
  * 搜索表单配置
834
1757
  */
@@ -846,6 +1769,66 @@ export declare const searchPlanApi: {
846
1769
  findDefSearchPlan: (data: any) => Promise<any>;
847
1770
  };
848
1771
 
1772
+ /**
1773
+ * Select 选项缓存管理器
1774
+ * Select options cache manager
1775
+ * @description 统一管理所有 Select 的选项加载和缓存,支持请求去重
1776
+ * @description Unified management of all Select option loading and caching with request deduplication
1777
+ */
1778
+ declare class SelectOptionsManager {
1779
+ /**
1780
+ * 选项缓存
1781
+ * Options cache
1782
+ * @description 缓存已加载的选项数据
1783
+ * @description Cache loaded option data
1784
+ */
1785
+ private readonly cache;
1786
+ /**
1787
+ * 加载中的 Promise(避免重复请求)
1788
+ * Loading Promises (avoid duplicate requests)
1789
+ * @description 当多个组件同时加载相同字典时,共享同一个 Promise
1790
+ * @description When multiple components load the same dictionary simultaneously, share the same Promise
1791
+ */
1792
+ private readonly loadingPromises;
1793
+ /**
1794
+ * 批量加载选项(带缓存和去重)
1795
+ * Batch load options (with cache and deduplication)
1796
+ * @param numbList - 字典编码列表
1797
+ * @param fieldMapping - 字段映射配置
1798
+ * @param forceReload - 是否强制刷新(忽略缓存)
1799
+ * @returns 选项映射表 { dictCode: options }
1800
+ */
1801
+ loadOptions(numbList: (string | number)[], fieldMapping?: SelectFieldMapping, forceReload?: boolean): Promise<Record<string, SelectOption[]>>;
1802
+ /**
1803
+ * 获取单个字典的选项(从缓存)
1804
+ * Get single dictionary options (from cache)
1805
+ * @param dictCode - 字典编码
1806
+ * @returns 选项数组
1807
+ */
1808
+ getOptions(dictCode: string | number): SelectOption[];
1809
+ /**
1810
+ * 清除指定字典的缓存
1811
+ * Clear cache for specified dictionary
1812
+ * @param dictCode - 字典编码(可选,不传则清除所有)
1813
+ */
1814
+ clearCache(dictCode?: string | number): void;
1815
+ /**
1816
+ * 检查字典是否已缓存
1817
+ * Check if dictionary is cached
1818
+ * @param dictCode - 字典编码
1819
+ * @returns 是否已缓存
1820
+ */
1821
+ hasCache(dictCode: string | number): boolean;
1822
+ /**
1823
+ * 获取缓存大小
1824
+ * Get cache size
1825
+ * @returns 缓存的字典数量
1826
+ */
1827
+ getCacheSize(): number;
1828
+ }
1829
+
1830
+ export declare const selectOptionsManager: SelectOptionsManager;
1831
+
849
1832
  /**
850
1833
  * 初始化业务表单配置
851
1834
  *
@@ -978,7 +1961,7 @@ export declare interface SystemSettingForm {
978
1961
  /**
979
1962
  * 表格列配置
980
1963
  */
981
- export declare const tableColumns: VxeGridProps<OperationLogVO>['columns'];
1964
+ export declare const tableColumns: VxeGridProps<DataDictionaryVO>['columns'];
982
1965
 
983
1966
  /**
984
1967
  * Composition API Hook: 获取全局配置
@@ -1036,6 +2019,45 @@ export declare function useFavorite(): {
1036
2019
  }>;
1037
2020
  };
1038
2021
 
2022
+ export declare function useGlobalLoading(): UseGlobalLoadingReturn;
2023
+
2024
+ /**
2025
+ * 全局加载动画控制 Composable
2026
+ * @description 提供编程式控制全局加载动画的 API
2027
+ * @example
2028
+ * ```ts
2029
+ * const { start, stop, withLoading } = useGlobalLoading();
2030
+ *
2031
+ * // 手动控制
2032
+ * start();
2033
+ * await fetchData();
2034
+ * stop();
2035
+ *
2036
+ * // 自动包装
2037
+ * await withLoading(fetchUserData());
2038
+ * ```
2039
+ */
2040
+ export declare interface UseGlobalLoadingReturn {
2041
+ /**
2042
+ * 显示全局加载动画
2043
+ */
2044
+ start: () => void;
2045
+ /**
2046
+ * 隐藏全局加载动画
2047
+ */
2048
+ stop: () => void;
2049
+ /**
2050
+ * 包装异步函数,自动显示/隐藏加载
2051
+ * @param fn - 异步函数
2052
+ * @example
2053
+ * ```ts
2054
+ * const { withLoading } = useGlobalLoading();
2055
+ * await withLoading(fetchUserData());
2056
+ * ```
2057
+ */
2058
+ withLoading: <T>(fn: Promise<T>) => Promise<T>;
2059
+ }
2060
+
1039
2061
  /**
1040
2062
  * 列表页通用配置
1041
2063
  * @param options 配置选项
@@ -1072,6 +2094,27 @@ export declare function useList<T>(options: {
1072
2094
  * 表格事件配置
1073
2095
  */
1074
2096
  gridEvents?: any;
2097
+ /**
2098
+ * 树形配置
2099
+ */
2100
+ treeConfig?: any;
2101
+ /**
2102
+ * 树形表格懒加载方法
2103
+ */
2104
+ loadMethod?: (row: any) => Promise<any[]>;
2105
+ /**
2106
+ * 对象转值字段列表
2107
+ * 用于将 BusinessSearch 等返回的对象数组转换为值字符串
2108
+ */
2109
+ objectToValueFields?: string[];
2110
+ /**
2111
+ * 是否开启懒加载
2112
+ */
2113
+ lazy?: boolean;
2114
+ /**
2115
+ * 是否自动加载数据
2116
+ */
2117
+ autoLoad?: boolean;
1075
2118
  }): {
1076
2119
  QueryForm: DefineComponent< {}, () => VNode<RendererNode, RendererElement, {
1077
2120
  [key: string]: any;
@@ -1091,6 +2134,138 @@ export declare function useList<T>(options: {
1091
2134
  fetchResourceConfig: () => Promise<void>;
1092
2135
  };
1093
2136
 
2137
+ export declare const UserQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {
2138
+ UserAddRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
2139
+ onSuccess?: (() => any) | undefined;
2140
+ }>, {
2141
+ addInit: () => void;
2142
+ editInit: (record: any) => Promise<void>;
2143
+ detailInit: (record: any) => void;
2144
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2145
+ success: () => any;
2146
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2147
+ P: {};
2148
+ B: {};
2149
+ D: {};
2150
+ C: {};
2151
+ M: {};
2152
+ Defaults: {};
2153
+ }, Readonly<{}> & Readonly<{
2154
+ onSuccess?: (() => any) | undefined;
2155
+ }>, {
2156
+ addInit: () => void;
2157
+ editInit: (record: any) => Promise<void>;
2158
+ detailInit: (record: any) => void;
2159
+ }, {}, {}, {}, {}> | null;
2160
+ UserAuthRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
2161
+ onSuccess?: (() => any) | undefined;
2162
+ }>, {
2163
+ openInit: (record: any) => Promise<void>;
2164
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2165
+ success: () => any;
2166
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {
2167
+ UserChooseRoleRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
2168
+ onChooseRoleEmit?: ((...args: any[]) => any) | undefined;
2169
+ }>, {
2170
+ openInit: () => void;
2171
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2172
+ chooseRoleEmit: (...args: any[]) => void;
2173
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2174
+ P: {};
2175
+ B: {};
2176
+ D: {};
2177
+ C: {};
2178
+ M: {};
2179
+ Defaults: {};
2180
+ }, Readonly<{}> & Readonly<{
2181
+ onChooseRoleEmit?: ((...args: any[]) => any) | undefined;
2182
+ }>, {
2183
+ openInit: () => void;
2184
+ }, {}, {}, {}, {}> | null;
2185
+ }, any, ComponentProvideOptions, {
2186
+ P: {};
2187
+ B: {};
2188
+ D: {};
2189
+ C: {};
2190
+ M: {};
2191
+ Defaults: {};
2192
+ }, Readonly<{}> & Readonly<{
2193
+ onSuccess?: (() => any) | undefined;
2194
+ }>, {
2195
+ openInit: (record: any) => Promise<void>;
2196
+ }, {}, {}, {}, {}> | null;
2197
+ UserBindMacRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
2198
+ onSuccess?: (() => any) | undefined;
2199
+ }>, {
2200
+ openInit: (record: any) => Promise<void>;
2201
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2202
+ success: () => any;
2203
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2204
+ P: {};
2205
+ B: {};
2206
+ D: {};
2207
+ C: {};
2208
+ M: {};
2209
+ Defaults: {};
2210
+ }, Readonly<{}> & Readonly<{
2211
+ onSuccess?: (() => any) | undefined;
2212
+ }>, {
2213
+ openInit: (record: any) => Promise<void>;
2214
+ }, {}, {}, {}, {}> | null;
2215
+ UserOtherAuthRef: CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
2216
+ onSuccess?: (() => any) | undefined;
2217
+ }>, {
2218
+ openInit: (record: any) => Promise<void>;
2219
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2220
+ success: () => any;
2221
+ }, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2222
+ P: {};
2223
+ B: {};
2224
+ D: {};
2225
+ C: {};
2226
+ M: {};
2227
+ Defaults: {};
2228
+ }, Readonly<{}> & Readonly<{
2229
+ onSuccess?: (() => any) | undefined;
2230
+ }>, {
2231
+ openInit: (record: any) => Promise<void>;
2232
+ }, {}, {}, {}, {}> | null;
2233
+ }, HTMLDivElement>;
2234
+
2235
+ /**
2236
+ * 处理声明式 Schema 的选项加载
2237
+ * Process declarative Schema options loading
2238
+ *
2239
+ * @param schema - 表单 Schema
2240
+ * @param immediate - 是否立即加载
2241
+ * @returns 增强后的 Schema 和加载方法
2242
+ *
2243
+ * @example
2244
+ * ```typescript
2245
+ * // 在 config.ts 中声明式配置
2246
+ * export const searchFormSchema: FormSchema[] = [
2247
+ * {
2248
+ * fieldName: 'nZt',
2249
+ * component: 'Select',
2250
+ * selectOptions: {
2251
+ * dictCode: 'SFQY',
2252
+ * fieldMapping: { label: 'cName', value: 'cXuhao' }
2253
+ * }
2254
+ * }
2255
+ * ]
2256
+ *
2257
+ * // 在组件中使用
2258
+ * const { enhancedSchema, optionsMap } = useSchemaOptionsLoader(searchFormSchema);
2259
+ *
2260
+ * // 传递给 useList
2261
+ * useList({
2262
+ * searchFormSchema: enhancedSchema.value,
2263
+ * ...
2264
+ * })
2265
+ * ```
2266
+ */
2267
+ export declare function useSchemaOptionsLoader(schema: FormSchema_3[] | Ref<FormSchema_3[]>, immediate?: boolean): SchemaOptionsLoaderReturn;
2268
+
1094
2269
  /**
1095
2270
  * 查询方案 API 实现
1096
2271
  * 所有模块通用的查询方案 API 配置
@@ -1104,6 +2279,134 @@ export declare const useSearchPlanApi: () => {
1104
2279
  findDefSearchPlan: (data: any) => Promise<any>;
1105
2280
  };
1106
2281
 
2282
+ /**
2283
+ * Select 选项加载 Hook
2284
+ * Select options loading Hook
2285
+ * @description 批量加载多个字典选项,自动缓存和去重
2286
+ * @description Batch load multiple dictionary options with automatic caching and deduplication
2287
+ *
2288
+ * @param params - Hook 参数
2289
+ * @returns 选项数据和加载方法
2290
+ *
2291
+ * @example
2292
+ * ```ts
2293
+ * // 基础用法
2294
+ * const { optionsMap } = useSelectOptions({
2295
+ * numbList: ['SFQY', 'LANG']
2296
+ * });
2297
+ *
2298
+ * // 在 Schema 中使用
2299
+ * componentProps: {
2300
+ * options: optionsMap.value['SFQY']
2301
+ * }
2302
+ *
2303
+ * // 自定义字段映射
2304
+ * const { optionsMap } = useSelectOptions({
2305
+ * numbList: ['USER_STATUS'],
2306
+ * fieldMapping: {
2307
+ * label: 'statusName',
2308
+ * value: 'statusCode'
2309
+ * }
2310
+ * });
2311
+ *
2312
+ * // 手动加载
2313
+ * const { optionsMap, load } = useSelectOptions({
2314
+ * numbList: ['USER_LIST'],
2315
+ * immediate: false
2316
+ * });
2317
+ *
2318
+ * // 在需要时调用
2319
+ * await load();
2320
+ * ```
2321
+ */
2322
+ export declare function useSelectOptions(params: UseSelectOptionsParams): UseSelectOptionsReturn;
2323
+
2324
+ /**
2325
+ * Hook 参数
2326
+ * Hook parameters
2327
+ */
2328
+ export declare interface UseSelectOptionsParams {
2329
+ /**
2330
+ * 字典编码列表
2331
+ * Dictionary code list
2332
+ * @description 需要批量加载的字典编码
2333
+ * @description Dictionary codes to be batch loaded
2334
+ */
2335
+ numbList: (string | number)[];
2336
+ /**
2337
+ * 字段映射配置
2338
+ * Field mapping configuration
2339
+ * @description 自定义 label 和 value 对应的后端字段名
2340
+ * @description Customize backend field names for label and value
2341
+ */
2342
+ fieldMapping?: SelectFieldMapping;
2343
+ /**
2344
+ * 是否立即加载
2345
+ * Whether to load immediately
2346
+ * @default true
2347
+ * @description 设置为 false 时,需要手动调用 load() 方法
2348
+ * @description When set to false, need to manually call load() method
2349
+ */
2350
+ immediate?: boolean;
2351
+ /**
2352
+ * 是否强制刷新
2353
+ * Whether to force reload
2354
+ * @default false
2355
+ * @description 设置为 true 时,忽略缓存重新加载
2356
+ * @description When set to true, ignore cache and reload
2357
+ */
2358
+ forceReload?: boolean;
2359
+ }
2360
+
2361
+ /**
2362
+ * Hook 返回值
2363
+ * Hook return value
2364
+ */
2365
+ export declare interface UseSelectOptionsReturn {
2366
+ /**
2367
+ * 选项映射表
2368
+ * Options map
2369
+ * @description 响应式的选项数据,按字典编码分组
2370
+ * @description Reactive option data, grouped by dictionary code
2371
+ * @example
2372
+ * ```ts
2373
+ * optionsMap.value['SFQY'] // 获取 SFQY 字典的选项
2374
+ * ```
2375
+ */
2376
+ optionsMap: Ref<Record<string, SelectOption[]>>;
2377
+ /**
2378
+ * 加载状态
2379
+ * Loading state
2380
+ */
2381
+ loading: Ref<boolean>;
2382
+ /**
2383
+ * 手动加载
2384
+ * Manual load
2385
+ * @description 手动触发加载选项
2386
+ * @description Manually trigger loading options
2387
+ */
2388
+ load: () => Promise<void>;
2389
+ /**
2390
+ * 获取单个字典的选项
2391
+ * Get single dictionary options
2392
+ * @param dictCode - 字典编码
2393
+ * @returns 选项数组
2394
+ */
2395
+ getOptions: (dictCode: string | number) => SelectOption[];
2396
+ /**
2397
+ * 刷新指定字典的选项
2398
+ * Reload specific dictionary options
2399
+ * @param dictCode - 字典编码
2400
+ */
2401
+ reload: (dictCode: string | number) => Promise<void>;
2402
+ /**
2403
+ * 清除指定字典的缓存
2404
+ * Clear cache for specific dictionary
2405
+ * @param dictCode - 字典编码(可选)
2406
+ */
2407
+ clearCache: (dictCode?: string | number) => void;
2408
+ }
2409
+
1107
2410
  /**
1108
2411
  * 弱密码项
1109
2412
  */