Skip to content

Commit 0f7096a

Browse files
authored
feat: 将代码迁移至TS严格模式 (#684)
* feat: 将现有代码迁移至TS严格模式 - 禁止隐匿Any的This * feat: 将代码迁移至TS严格模式 - 启用JS严格模式 和 绑定类型检查 * feat: 移除无用钩子,修改为工具API * feat: 将代码迁移至TS严格模式 - 启用严格函数类型检查
1 parent 944f03a commit 0f7096a

15 files changed

Lines changed: 48 additions & 84 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"dev:linux": "vite --mode development",
99
"build:test": "vite build --mode test",
1010
"build": "vue-tsc --noEmit && vite build --mode release",
11+
"build:type": "vue-tsc --noEmit",
1112
"build:site": "vue-tsc --noEmit && vite build --mode site",
1213
"preview": "vite preview",
1314
"lint": "eslint --ext .vue,.js,.jsx,.ts,.tsx ./ --max-warnings 0",

src/hooks/event/useWindowSizeFn.ts

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/layouts/components/FrameContent.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@
66
</div>
77
</template>
88
<script lang="ts" setup>
9+
import { useWindowSize } from '@vueuse/core';
910
import debounce from 'lodash/debounce';
1011
import { computed, CSSProperties, ref, unref, watch } from 'vue';
1112
1213
import { prefix } from '@/config/global';
13-
import { useWindowSizeFn } from '@/hooks/event/useWindowSizeFn';
1414
import { useSettingStore } from '@/store';
1515
1616
defineProps({
1717
frameSrc: String,
1818
});
1919
20+
const { width, height } = useWindowSize();
21+
2022
const loading = ref(true);
2123
const heightRef = ref(window.innerHeight);
2224
const frameRef = ref<HTMLFrameElement>();
@@ -69,8 +71,8 @@ function hideLoading() {
6971
calcHeight();
7072
}
7173
72-
useWindowSizeFn(calcHeight, { immediate: true });
73-
74+
// 如果窗口大小发生变化
75+
watch([width, height], debounce(calcHeight, 250));
7476
watch(
7577
[() => settingStore.showFooter, () => settingStore.isUseTabsRouter, () => settingStore.showBreadcrumb],
7678
debounce(calcHeight, 250),

src/layouts/components/Header.vue

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@
3838
<translate-icon />
3939
</t-button>
4040
<t-dropdown-menu>
41-
<t-dropdown-item v-for="(lang, index) in langList" :key="index" :value="lang.value" @click="changeLang">{{
42-
lang.content
43-
}}</t-dropdown-item></t-dropdown-menu
41+
<t-dropdown-item
42+
v-for="(lang, index) in langList"
43+
:key="index"
44+
:value="lang.value"
45+
@click="(options) => changeLang(options.value as string)"
46+
>{{ lang.content }}</t-dropdown-item
47+
></t-dropdown-menu
4448
>
4549
</t-dropdown>
4650
<t-dropdown :min-column-width="120" trigger="click">
@@ -85,7 +89,7 @@ import { langList } from '@/locales/index';
8589
import { useLocale } from '@/locales/useLocale';
8690
import { getActive } from '@/router';
8791
import { useSettingStore, useUserStore } from '@/store';
88-
import type { MenuRoute } from '@/types/interface';
92+
import type { MenuRoute, ModeType } from '@/types/interface';
8993
9094
import MenuContent from './MenuContent.vue';
9195
import Notice from './Notice.vue';
@@ -147,11 +151,11 @@ const menuCls = computed(() => {
147151
},
148152
];
149153
});
150-
const menuTheme = computed(() => props.theme as 'light' | 'dark');
154+
const menuTheme = computed(() => props.theme as ModeType);
151155
152156
// 切换语言
153157
const { changeLocale } = useLocale();
154-
const changeLang = ({ value: lang }: { value: string }) => {
158+
const changeLang = (lang: string) => {
155159
changeLocale(lang);
156160
};
157161

src/layouts/components/LayoutContent.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
:class="`${prefix}-layout-tabs-nav`"
88
:value="$route.path"
99
:style="{ position: 'sticky', top: 0, width: '100%' }"
10-
@change="handleChangeCurrentTab"
10+
@change="(value) => handleChangeCurrentTab(value as string)"
1111
@remove="handleRemove"
1212
@drag-sort="handleDragend"
1313
>

src/layouts/components/SideNav.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import AssetLogo from '@/assets/assets-t-logo.svg?component';
2626
import { prefix } from '@/config/global';
2727
import { getActive, getRoutesExpanded } from '@/router';
2828
import { useSettingStore } from '@/store';
29-
import type { MenuRoute } from '@/types/interface';
29+
import type { MenuRoute, ModeType } from '@/types/interface';
3030
3131
import pgk from '../../../package.json';
3232
import MenuContent from './MenuContent.vue';
@@ -55,7 +55,7 @@ const props = defineProps({
5555
default: '64px',
5656
},
5757
theme: {
58-
type: String as PropType<'light' | 'dark'>,
58+
type: String as PropType<ModeType>,
5959
default: 'light',
6060
},
6161
isCompact: {

src/pages/dashboard/base/components/MiddleChart.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
theme="primary"
1515
mode="date"
1616
:default-value="LAST_7_DAYS"
17-
@change="onCurrencyChange"
17+
@change="(value) => onCurrencyChange(value as string[])"
1818
/>
1919
</div>
2020
</template>

src/pages/dashboard/base/components/OutputOverview.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
theme="primary"
1515
mode="date"
1616
:default-value="LAST_7_DAYS"
17-
@change="onStokeDataChange"
17+
@change="(value) => onStokeDataChange(value as string[])"
1818
/>
1919
</template>
2020
<div id="stokeContainer" style="width: 100%; height: 351px" class="dashboard-chart-container"></div>

src/pages/dashboard/detail/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
theme="primary"
2727
mode="date"
2828
style="width: 248px"
29-
@change="onMaterialChange"
29+
@change="(value) => onMaterialChange(value as string[])"
3030
/>
3131
</template>
3232
<div id="lineContainer" style="width: 100%; height: 416px" />

src/pages/list/base/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
:header-affixed-top="headerAffixedTop"
3232
@page-change="rehandlePageChange"
3333
@change="rehandleChange"
34-
@select-change="rehandleSelectChange"
34+
@select-change="(value) => rehandleSelectChange(value as number[])"
3535
>
3636
<template #status="{ row }">
3737
<t-tag v-if="row.status === CONTRACT_STATUS.FAIL" theme="danger" variant="light">

0 commit comments

Comments
 (0)