@sunny-base-web/effects 0.5.0 → 0.7.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,34 @@ 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';
33
54
 
34
55
  declare type __VLS_Props = {
35
56
  type?: 'nprogress' | 'spinner' | 'loading' | 'none';
@@ -145,6 +166,21 @@ export declare const businessCodeResponseInterceptor: ({ businessCodes, onBusine
145
166
  onBusinessError: (code: number, message: string) => Promise<void> | void;
146
167
  }) => ResponseInterceptorConfig;
147
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
+
148
184
  /**
149
185
  * 创建 @effects 插件实例
150
186
  * 在 Vue 应用入口文件 (main.ts/bootstrap.ts) 中使用 app.use() 安装
@@ -234,6 +270,14 @@ export declare const defaultResponseInterceptor: ({ codeField, dataField, succes
234
270
  successCode: ((code: any) => boolean) | number | string;
235
271
  }) => ResponseInterceptorConfig;
236
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
+
237
281
  declare type DownloadRequestConfig = {
238
282
  /**
239
283
  * 定义期望获得的数据类型。
@@ -404,12 +448,73 @@ declare interface FormItem {
404
448
  */
405
449
  export declare function getEnterStrategy(data?: any): Promise<ResponseResult<LoginStrategyResult>>;
406
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
+
407
499
  /**
408
500
  * 根据字段配置项构建options
409
501
  * @param {*} resource
410
502
  */
411
503
  export declare function getOptionsForSelectType(item: any): any;
412
504
 
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
+ };
517
+
413
518
  /**
414
519
  * 获取滑动验证码
415
520
  */
@@ -505,6 +610,275 @@ declare class InterceptorManager {
505
610
  addResponseInterceptor<T = any>({ fulfilled, rejected, }?: ResponseInterceptorConfig<T>): void;
506
611
  }
507
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
+
508
882
  /**
509
883
  * 全局加载状态管理器
510
884
  * @description 单例模式,管理全局加载动画的显示状态
@@ -657,6 +1031,10 @@ export declare interface MetaItem {
657
1031
  value: string;
658
1032
  }
659
1033
 
1034
+ declare interface OperationLogConfig {
1035
+ t: (key: string) => string;
1036
+ }
1037
+
660
1038
  export declare const OperationLogQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLDivElement>;
661
1039
 
662
1040
  /**
@@ -695,6 +1073,43 @@ declare interface Option_2 {
695
1073
  value: string;
696
1074
  }
697
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
+
698
1113
  /**
699
1114
  * 查询数据字典
700
1115
  */
@@ -898,11 +1313,445 @@ export declare interface ResponseResult<T = any> {
898
1313
  timestamp: number;
899
1314
  }
900
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
+
901
1723
  /**
902
1724
  * 保存所有系统设置
903
1725
  */
904
1726
  export declare function saveAllSettings(settings: SysSettingItem[]): Promise<any>;
905
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
+
906
1755
  /**
907
1756
  * 搜索表单配置
908
1757
  */
@@ -920,6 +1769,66 @@ export declare const searchPlanApi: {
920
1769
  findDefSearchPlan: (data: any) => Promise<any>;
921
1770
  };
922
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
+
923
1832
  /**
924
1833
  * 初始化业务表单配置
925
1834
  *
@@ -1052,7 +1961,7 @@ export declare interface SystemSettingForm {
1052
1961
  /**
1053
1962
  * 表格列配置
1054
1963
  */
1055
- export declare const tableColumns: VxeGridProps<OperationLogVO>['columns'];
1964
+ export declare const tableColumns: VxeGridProps<DataDictionaryVO>['columns'];
1056
1965
 
1057
1966
  /**
1058
1967
  * Composition API Hook: 获取全局配置
@@ -1161,7 +2070,7 @@ export declare function useList<T>(options: {
1161
2070
  /**
1162
2071
  * 表格列配置
1163
2072
  */
1164
- tableColumns: VxeGridProps['columns'];
2073
+ tableColumns: any[];
1165
2074
  /**
1166
2075
  * 表格数据类型
1167
2076
  */
@@ -1202,6 +2111,10 @@ export declare function useList<T>(options: {
1202
2111
  * 是否开启懒加载
1203
2112
  */
1204
2113
  lazy?: boolean;
2114
+ /**
2115
+ * 是否自动加载数据
2116
+ */
2117
+ autoLoad?: boolean;
1205
2118
  }): {
1206
2119
  QueryForm: DefineComponent< {}, () => VNode<RendererNode, RendererElement, {
1207
2120
  [key: string]: any;
@@ -1221,7 +2134,137 @@ export declare function useList<T>(options: {
1221
2134
  fetchResourceConfig: () => Promise<void>;
1222
2135
  };
1223
2136
 
1224
- export declare const UserQuery: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLDivElement>;
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;
1225
2268
 
1226
2269
  /**
1227
2270
  * 查询方案 API 实现
@@ -1236,6 +2279,134 @@ export declare const useSearchPlanApi: () => {
1236
2279
  findDefSearchPlan: (data: any) => Promise<any>;
1237
2280
  };
1238
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
+
1239
2410
  /**
1240
2411
  * 弱密码项
1241
2412
  */