From 321f21c4982c9cec198a27264d722180c79ef913 Mon Sep 17 00:00:00 2001 From: ahaos <8406649+lhailgl@user.noreply.gitee.com> Date: 星期二, 26 十二月 2023 18:04:35 +0800 Subject: [PATCH] !73 修复全局属性找不到的问题 * Merge remote-tracking branch 'origin/dev' into dev * fix 修复全局属性找不到的问题 * fix 修复变量问题 * fix 修复变量问题 * Merge remote-tracking branch 'origin/dev' into dev * update 依赖升级 * update 依赖升级 * Merge remote-tracking branch 'origin/dev' into dev * 升级依赖 * Merge remote-tracking branch 'origin/ts' into ts * 升级依赖 * Merge branch 'dev' of gitee.com:JavaLionLi/plus-ui into ts * 升级依赖 * !61 fix: 删除重复环境变量ElUploadInstance * fix: 删除重复环境变量ElUploadInstance --- src/types/element.d.ts | 26 +++++++------ src/views/monitor/cache/index.vue | 3 + src/views/system/dept/index.vue | 5 +- src/types/global.d.ts | 3 - src/views/system/user/profile/index.vue | 11 ++++- src/types/axios.d.ts | 3 - src/types/module.d.ts | 4 + src/permission.ts | 2 - src/views/system/user/index.vue | 2 tsconfig.json | 3 + package.json | 3 + src/layout/components/Sidebar/index.vue | 4 +- src/layout/components/TopBar/search.vue | 2 src/layout/components/Settings/index.vue | 2 14 files changed, 42 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index e1044d8..1395590 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,8 @@ "@unocss/preset-attributify": "^0.58.0", "@unocss/preset-icons": "^0.58.0", "@unocss/preset-uno": "^0.58.0", - "@vue/compiler-sfc": "3.3.9", + "@vue/compiler-sfc": "3.3.11", + "@vue/runtime-core": "3.3.11", "@vitejs/plugin-vue": "4.5.2", "autoprefixer": "10.4.14", "eslint": "8.55.0", diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue index 89b1f4c..3082beb 100644 --- a/src/layout/components/Settings/index.vue +++ b/src/layout/components/Settings/index.vue @@ -126,7 +126,7 @@ const topNavChange = (val: any) => { if (!val) { appStore.toggleSideBarHide(false); - permissionStore.setSidebarRouters(permissionStore.defaultRoutes); + permissionStore.setSidebarRouters(permissionStore.defaultRoutes as any); } }; diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index a905c70..f42473a 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -13,7 +13,7 @@ :collapse-transition="false" mode="vertical" > - <sidebar-item v-for="(r, index) in sidebarRouters" :key="r.path + index" :item="r" :base-path="r.path" /> + <sidebar-item v-for="(route, index) in sidebarRouters" :key="route.path + index" :item="route" :base-path="route.path" /> </el-menu> </transition> </el-scrollbar> @@ -29,7 +29,7 @@ import usePermissionStore from '@/store/modules/permission'; import { RouteRecordRaw } from 'vue-router'; -const { proxy } = getCurrentInstance(); +const { proxy } = getCurrentInstance() as ComponentInternalInstance; const route = useRoute(); const appStore = useAppStore(); diff --git a/src/layout/components/TopBar/search.vue b/src/layout/components/TopBar/search.vue index 62322a4..440b88d 100644 --- a/src/layout/components/TopBar/search.vue +++ b/src/layout/components/TopBar/search.vue @@ -54,7 +54,7 @@ const openSearch = () => { state.menuQuery = ''; state.isShowSearch = true; - state.menuList = generateRoutes(routes.value); + state.menuList = generateRoutes(routes.value as any); nextTick(() => { setTimeout(() => { layoutMenuAutocompleteRef.value.focus(); diff --git a/src/permission.ts b/src/permission.ts index 69795f8..ef9976a 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -40,8 +40,6 @@ router.addRoute(route); // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� } }); - const n = { ...to, replace: true }; - console.log(n); next({ path: to.path, replace: true, params: to.params, query: to.query, hash: to.hash, name: to.name as string }); // hack鏂规硶 纭繚addRoutes宸插畬鎴� } } else { diff --git a/src/types/axios.d.ts b/src/types/axios.d.ts index 2451f2a..9f2c6d2 100644 --- a/src/types/axios.d.ts +++ b/src/types/axios.d.ts @@ -1,5 +1,4 @@ -import axios from 'axios'; - +export {}; declare module 'axios' { interface AxiosResponse<T = any> { code: number; diff --git a/src/types/element.d.ts b/src/types/element.d.ts index 6a7bdef..2087773 100644 --- a/src/types/element.d.ts +++ b/src/types/element.d.ts @@ -5,30 +5,32 @@ declare type ElTableInstance = ep.TableInstance; declare type ElUploadInstance = ep.UploadInstance; declare type ElScrollbarInstance = ep.ScrollbarInstance; + declare type ElInputInstance = ep.InputInstance; + declare type ElInputNumberInstance = ep.InputNumberInstance; + declare type ElRadioInstance = ep.RadioInstance; + declare type ElRadioGroupInstance = ep.RadioGroupInstance; + declare type ElRadioButtonInstance = ep.RadioButtonInstance; + declare type ElCheckboxInstance = ep.CheckboxInstance; + declare type ElSwitchInstance = ep.SwitchInstance; + declare type ElCascaderInstance = ep.CascaderInstance; + declare type ElColorPickerInstance = ep.ColorPickerInstance; + declare type ElRateInstance = ep.RateInstance; + declare type ElSliderInstance = ep.SliderInstance; + declare type ElTreeInstance = InstanceType<typeof ep.ElTree>; declare type ElTreeSelectInstance = InstanceType<typeof ep.ElTreeSelect>; declare type ElSelectInstance = InstanceType<typeof ep.ElSelect>; 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 TransferKey = ep.TransferKey; declare type CheckboxValueType = ep.CheckboxValueType; declare type ElFormRules = ep.FormRules; declare type DateModelType = ep.DateModelType; - declare type UploadFile = typeof ep.UploadFile; + declare type UploadFile = ep.UploadFile; + } diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 10cc438..17476a3 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -1,5 +1,4 @@ -import type { ComponentInternalInstance as ComponentInstance } from 'vue/runtime-core'; -import type { PropType as VuePropType } from 'vue'; +import type { PropType as VuePropType, ComponentInternalInstance as ComponentInstance } from 'vue'; import { LanguageEnum } from '@/enums/LanguageEnum'; declare global { diff --git a/src/types/module.d.ts b/src/types/module.d.ts index 16b1116..bc2f16b 100644 --- a/src/types/module.d.ts +++ b/src/types/module.d.ts @@ -5,10 +5,12 @@ import cache from '@/plugins/cache'; import animate from '@/animate'; import { useDict } from '@/utils/dict'; -import handleTree, { addDateRange, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi'; +import { handleTree, addDateRange, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi'; import { getConfigKey, updateConfigByKey } from '@/api/system/config'; import { download as rd } from '@/utils/request'; +export {}; + declare module '@vue/runtime-core' { interface ComponentCustomProperties { // 鍏ㄥ眬鏂规硶澹版槑 diff --git a/src/views/monitor/cache/index.vue b/src/views/monitor/cache/index.vue index c58f89c..81bbf2d 100644 --- a/src/views/monitor/cache/index.vue +++ b/src/views/monitor/cache/index.vue @@ -126,8 +126,9 @@ <script setup name="Cache" lang="ts"> import { getCache } from '@/api/monitor/cache'; import * as echarts from 'echarts'; +import { CacheVO } from '@/api/monitor/cache/types'; -const cache = ref<any>({}); +const cache = ref<Partial<CacheVO>>({}); const commandstats = ref(); const usedmemory = ref(); const { proxy } = getCurrentInstance() as ComponentInternalInstance; diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 399114a..cd75d7b 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -172,7 +172,7 @@ email: undefined, status: '0' }; -const data = reactive<PageData<DeptForm, DeptQuery>>({ +const initData: PageData<DeptForm, DeptQuery> = { form: { ...initFormData }, queryParams: { pageNum: 1, @@ -187,7 +187,8 @@ email: [{ type: 'email', message: '璇疯緭鍏ユ纭殑閭鍦板潃', trigger: ['blur', 'change'] }], phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜', trigger: 'blur' }] } -}); +}; +const data = reactive<PageData<DeptForm, DeptQuery>>(initData); const { queryParams, form, rules } = toRefs<PageData<DeptForm, DeptQuery>>(data); diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index a952954..2de26a5 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -306,7 +306,7 @@ import { globalHeaders } from '@/utils/request'; const router = useRouter(); -const { proxy } = getCurrentInstance(); +const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { sys_normal_disable, sys_user_sex } = toRefs<any>(proxy?.useDict('sys_normal_disable', 'sys_user_sex')); const userList = ref<UserVO[]>(); const loading = ref(true); diff --git a/src/views/system/user/profile/index.vue b/src/views/system/user/profile/index.vue index 75e1fde..ae8fa0f 100644 --- a/src/views/system/user/profile/index.vue +++ b/src/views/system/user/profile/index.vue @@ -27,7 +27,7 @@ </li> <li class="list-group-item"> <svg-icon icon-class="tree" />鎵�灞為儴闂� - <div v-if="state.user.dept" class="pull-right">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div> + <div v-if="state.user.dept" class="pull-right">{{ state.user.dept?.deptName }} / {{ state.postGroup }}</div> </li> <li class="list-group-item"> <svg-icon icon-class="peoples" />鎵�灞炶鑹� @@ -72,9 +72,16 @@ import ThirdParty from './thirdParty.vue'; import { getAuthList } from '@/api/system/social/auth'; import { getUserProfile } from '@/api/system/user'; +import { UserVO } from '@/api/system/user/types'; const activeTab = ref('userinfo'); -const state = ref<Record<string, any>>({ +interface State { + user: Partial<UserVO>; + roleGroup: string; + postGroup: string; + auths: any; +} +const state = ref<State>({ user: {}, roleGroup: '', postGroup: '', diff --git a/tsconfig.json b/tsconfig.json index a2f57c5..bb287e9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,8 +4,9 @@ "module": "esnext", // "useDefineForClassFields": true, "moduleResolution": "bundler", - "strict": false, + "strict": true, "jsx": "preserve", + "strictNullChecks": false, "sourceMap": true, "resolveJsonModule": true, "esModuleInterop": true, -- Gitblit v1.9.3