From 3267f596030260a4fe0f3ff6be8fca93c9cc2466 Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail.com>
Date: 星期二, 06 六月 2023 20:54:52 +0800
Subject: [PATCH] add vue全局声明、Ele全局实例、类型声明
---
src/types/element.d.ts | 33 ++++++++++++++++++++++++++++++++-
src/types/global.d.ts | 26 ++++++++++++++++----------
2 files changed, 48 insertions(+), 11 deletions(-)
diff --git a/src/types/element.d.ts b/src/types/element.d.ts
index 8632484..fdc6578 100644
--- a/src/types/element.d.ts
+++ b/src/types/element.d.ts
@@ -1 +1,32 @@
-declare type ElTagType = '' | 'success' | 'warning' | 'info' | 'danger' | 'default' | 'primary';
+import type * as ep from 'element-plus';
+declare global {
+ declare type ElTagType = '' | 'success' | 'warning' | 'info' | 'danger' | 'default' | 'primary';
+ declare type ElFormInstance = InstanceType<typeof ep.ElForm>;
+ declare type ElTableInstance = InstanceType<typeof ep.ElTable>;
+ declare type ElTreeInstance = InstanceType<typeof ep.ElTree>;
+ declare type ElTreeSelectInstance = InstanceType<typeof ep.ElTreeSelect>;
+ declare type ElSelectInstance = InstanceType<typeof ep.ElSelect>;
+ declare type ElUploadInstance = InstanceType<typeof ep.ElUpload>;
+ declare type ElCardInstance = InstanceType<typeof ep.ElCard>;
+ declare type ElDialogInstance = InstanceType<typeof ep.ElDialog>;
+ declare type ElInputInstance = InstanceType<typeof ep.ElInput>;
+ declare type ElInputNumberInstance = InstanceType<typeof ep.ElInputNumber>;
+ declare type ElRadioInstance = InstanceType<typeof ep.ElRadio>;
+ declare type ElRadioGroupInstance = InstanceType<typeof ep.ElRadioGroup>;
+ declare type ElRadioButtonInstance = InstanceType<typeof ep.ElRadioButton>;
+ declare type ElCheckboxInstance = InstanceType<typeof ep.ElCheckbox>;
+ declare type ElCheckboxGroupInstance = InstanceType<typeof ep.ElCheckboxGroup>;
+ declare type ElSwitchInstance = InstanceType<typeof ep.ElSwitch>;
+ declare type ElDatePickerInstance = InstanceType<typeof ep.ElDatePicker>;
+ declare type ElTimePickerInstance = InstanceType<typeof ep.ElTimePicker>;
+ declare type ElTimeSelectInstance = InstanceType<typeof ep.ElTimeSelect>;
+ declare type ElCascaderInstance = InstanceType<typeof ep.ElCascader>;
+ declare type ElColorPickerInstance = InstanceType<typeof ep.ElColorPicker>;
+ declare type ElRateInstance = InstanceType<typeof ep.ElRate>;
+ declare type ElSliderInstance = InstanceType<typeof ep.ElSlider>;
+ declare type ElUploadInstance = InstanceType<typeof ep.ElUpload>;
+
+ declare type ElFormRules = ep.FormRules;
+ declare type DateModelType = ep.DateModelType;
+ declare type UploadFile = typeof ep.UploadFile;
+}
diff --git a/src/types/global.d.ts b/src/types/global.d.ts
index 5a972a3..b9bc5f4 100644
--- a/src/types/global.d.ts
+++ b/src/types/global.d.ts
@@ -1,9 +1,15 @@
-import { FormRules } from 'element-plus';
+import type { ComponentInternalInstance as ComponentInstance, PropType as VuePropType } from 'vue';
+
declare global {
+ /** vue Instance */
+ declare type ComponentInternalInstance = ComponentInstance;
+ /**vue */
+ declare type PropType<T> = VuePropType<T>;
+
/**
* 鐣岄潰瀛楁闅愯棌灞炴��
*/
- interface FieldOption {
+ declare interface FieldOption {
key: number;
label: string;
visible: boolean;
@@ -12,7 +18,7 @@
/**
* 寮圭獥灞炴��
*/
- interface DialogOption {
+ declare interface DialogOption {
/**
* 寮圭獥鏍囬
*/
@@ -23,7 +29,7 @@
visible: boolean;
}
- interface UploadOption {
+ declare interface UploadOption {
/** 璁剧疆涓婁紶鐨勮姹傚ご閮� */
headers: { [key: string]: any };
@@ -34,7 +40,7 @@
/**
* 瀵煎叆灞炴��
*/
- interface ImportOption extends UploadOption {
+ declare interface ImportOption extends UploadOption {
/** 鏄惁鏄剧ず寮瑰嚭灞� */
open: boolean;
/** 寮瑰嚭灞傛爣棰� */
@@ -48,14 +54,14 @@
/**
* 瀛楀吀鏁版嵁 鏁版嵁閰嶇疆
*/
- interface DictDataOption {
+ declare interface DictDataOption {
label: string;
value: string;
elTagType?: ElTagType;
elTagClass?: string;
}
- interface BaseEntity {
+ declare interface BaseEntity {
createBy?: any;
createDept?: any;
createTime?: string;
@@ -68,15 +74,15 @@
* T : 琛ㄥ崟鏁版嵁
* D : 鏌ヨ鍙傛暟
*/
- interface PageData<T, D> {
+ declare interface PageData<T, D> {
form: T;
queryParams: D;
- rules: FormRules;
+ rules: ElFormRules;
}
/**
* 鍒嗛〉鏌ヨ鍙傛暟
*/
- interface PageQuery {
+ declare interface PageQuery {
pageNum: number;
pageSize: number;
}
--
Gitblit v1.9.3