From 5e440a7dc434c43eb828fa62cf9c12b0078b8565 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 20 一月 2025 11:36:18 +0800
Subject: [PATCH] !173 发布 5.3.0-BETA 公测版本 Merge pull request !173 from 疯狂的狮子Li/dev

---
 src/types/module.d.ts |   65 ++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 21 deletions(-)

diff --git a/src/types/module.d.ts b/src/types/module.d.ts
index 82ff47f..2fc273a 100644
--- a/src/types/module.d.ts
+++ b/src/types/module.d.ts
@@ -1,28 +1,51 @@
 import modal from '@/plugins/modal';
 import tab from '@/plugins/tab';
-import { useDict } from '@/utils/dict';
-import { addDateRange, handleTree, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi';
-import { getConfigKey, updateConfigByKey } from '@/api/system/config';
-import { download as download1 } from '@/utils/request';
 import download from '@/plugins/download';
+import auth from '@/plugins/auth';
+import cache from '@/plugins/cache';
 import animate from '@/animate';
+import { useDict } from '@/utils/dict';
+import { handleTree, addDateRange, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi';
+import { getConfigKey, updateConfigByKey } from '@/api/system/config';
+import { download as rd } from '@/utils/request';
+import type { LanguageType } from '@/lang';
 
-declare module 'vue' {
-	export interface ComponentCustomProperties {
-		// 鍏ㄥ眬鏂规硶澹版槑
-		$modal: typeof modal;
-		$tab: typeof tab;
-		$download: typeof download;
-		animate: typeof animate;
+export {};
 
-		useDict: typeof useDict;
-		addDateRange: typeof addDateRange;
-		download: typeof download1;
-		handleTree: typeof handleTree;
-		getConfigKey: typeof getConfigKey;
-		updateConfigByKey: typeof updateConfigByKey;
-		selectDictLabel: typeof selectDictLabel;
-		selectDictLabels: typeof selectDictLabels;
-		parseTime: typeof parseTime;
-	}
+declare module '@vue/runtime-core' {
+  interface ComponentCustomProperties {
+    // 鍏ㄥ眬鏂规硶澹版槑
+    $modal: typeof modal;
+    $tab: typeof tab;
+    $download: typeof download;
+    $auth: typeof auth;
+    $cache: typeof cache;
+    animate: typeof animate;
+    /**
+     * i18n $t鏂规硶鏀寔ts绫诲瀷鎻愮ず
+     * @param key i18n key
+     */
+    $t(key: ObjKeysToUnion<LanguageType>): string;
+
+    useDict: typeof useDict;
+    addDateRange: typeof addDateRange;
+    download: typeof rd;
+    handleTree: typeof handleTree;
+    getConfigKey: typeof getConfigKey;
+    updateConfigByKey: typeof updateConfigByKey;
+    selectDictLabel: typeof selectDictLabel;
+    selectDictLabels: typeof selectDictLabels;
+    parseTime: typeof parseTime;
+  }
 }
+
+/**
+ * { a: 1, b: { ba: { baa: 1, bab: 2 }, bb: 2} } ---> a | b.ba.baa | b.ba.bab | b.bb
+ * https://juejin.cn/post/7280062870670606397
+ */
+export type ObjKeysToUnion<T, P extends string = ''> = T extends object
+  ? {
+      [K in keyof T]: ObjKeysToUnion<T[K], P extends '' ? `${K & string}` : `${P}.${K & string}`>;
+    }[keyof T]
+  : P;
+

--
Gitblit v1.9.3