Browse Source

!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

ahaos 1 year ago
parent
commit
321f21c498

+ 2 - 1
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",

+ 1 - 1
src/layout/components/Settings/index.vue

@@ -126,7 +126,7 @@ const toggleDark = () => useToggle(isDark);
 const topNavChange = (val: any) => {
   if (!val) {
     appStore.toggleSideBarHide(false);
-    permissionStore.setSidebarRouters(permissionStore.defaultRoutes);
+    permissionStore.setSidebarRouters(permissionStore.defaultRoutes as any);
   }
 };
 

+ 2 - 2
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 useSettingsStore from '@/store/modules/settings';
 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();

+ 1 - 1
src/layout/components/TopBar/search.vue

@@ -54,7 +54,7 @@ const state = reactive<SearchState>({
 const openSearch = () => {
   state.menuQuery = '';
   state.isShowSearch = true;
-  state.menuList = generateRoutes(routes.value);
+  state.menuList = generateRoutes(routes.value as any);
   nextTick(() => {
     setTimeout(() => {
       layoutMenuAutocompleteRef.value.focus();

+ 0 - 2
src/permission.ts

@@ -40,8 +40,6 @@ router.beforeEach(async (to, from, next) => {
               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 {

+ 1 - 2
src/types/axios.d.ts

@@ -1,5 +1,4 @@
-import axios from 'axios';
-
+export {};
 declare module 'axios' {
   interface AxiosResponse<T = any> {
     code: number;

+ 14 - 12
src/types/element.d.ts

@@ -5,30 +5,32 @@ declare global {
   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;
+
 }

+ 1 - 2
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 {

+ 3 - 1
src/types/module.d.ts

@@ -5,10 +5,12 @@ 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 { 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 {
     // 全局方法声明

+ 2 - 1
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;

+ 3 - 2
src/views/system/dept/index.vue

@@ -172,7 +172,7 @@ const initFormData: DeptForm = {
   email: undefined,
   status: '0'
 };
-const data = reactive<PageData<DeptForm, DeptQuery>>({
+const initData: PageData<DeptForm, DeptQuery> = {
   form: { ...initFormData },
   queryParams: {
     pageNum: 1,
@@ -187,7 +187,8 @@ const data = reactive<PageData<DeptForm, DeptQuery>>({
     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);
 

+ 1 - 1
src/views/system/user/index.vue

@@ -306,7 +306,7 @@ import { to } from 'await-to-js';
 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);

+ 9 - 2
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 ResetPwd from './resetPwd.vue';
 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: '',

+ 2 - 1
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,