Browse Source

删除没用的svg,对接其他系统的接口。

jiaxiaoqiang 1 năm trước cách đây
mục cha
commit
97f20064b6
63 tập tin đã thay đổi với 1262 bổ sung229 xóa
  1. 6 5
      .env.development
  2. 1 1
      src/api/auth/index.ts
  3. 1 1
      src/api/auth/types.ts
  4. 1 0
      src/api/user/types.ts
  5. 87 0
      src/assets/icons/DDS.svg
  6. 437 0
      src/assets/icons/ERP.svg
  7. 89 0
      src/assets/icons/MES.svg
  8. 291 0
      src/assets/icons/PDM.svg
  9. 38 0
      src/assets/icons/QMS.svg
  10. 0 1
      src/assets/icons/api.svg
  11. 0 1
      src/assets/icons/cascader.svg
  12. 0 1
      src/assets/icons/client.svg
  13. 0 1
      src/assets/icons/close.svg
  14. 0 1
      src/assets/icons/close_all.svg
  15. 0 1
      src/assets/icons/close_left.svg
  16. 0 1
      src/assets/icons/close_other.svg
  17. 0 1
      src/assets/icons/close_right.svg
  18. 0 1
      src/assets/icons/dict.svg
  19. 0 1
      src/assets/icons/document.svg
  20. 0 1
      src/assets/icons/download.svg
  21. 0 1
      src/assets/icons/edit.svg
  22. 0 1
      src/assets/icons/eye-open.svg
  23. 0 1
      src/assets/icons/eye.svg
  24. 0 1
      src/assets/icons/fullscreen-exit.svg
  25. 0 1
      src/assets/icons/fullscreen.svg
  26. 0 1
      src/assets/icons/github.svg
  27. 9 0
      src/assets/icons/gongzuoshixiang.svg
  28. 0 1
      src/assets/icons/homepage.svg
  29. 0 1
      src/assets/icons/indent-decrease.svg
  30. 0 1
      src/assets/icons/ip.svg
  31. 6 0
      src/assets/icons/laba.svg
  32. 0 1
      src/assets/icons/language.svg
  33. 0 1
      src/assets/icons/link.svg
  34. 0 1
      src/assets/icons/menu.svg
  35. 0 1
      src/assets/icons/message.svg
  36. 0 1
      src/assets/icons/money.svg
  37. 0 1
      src/assets/icons/monitor.svg
  38. 0 1
      src/assets/icons/moon.svg
  39. 0 1
      src/assets/icons/order.svg
  40. 0 1
      src/assets/icons/peoples.svg
  41. 0 1
      src/assets/icons/project.svg
  42. 0 1
      src/assets/icons/publish.svg
  43. 0 1
      src/assets/icons/refresh.svg
  44. 0 1
      src/assets/icons/role.svg
  45. 0 1
      src/assets/icons/security.svg
  46. 62 0
      src/assets/icons/set.svg
  47. 0 1
      src/assets/icons/setting.svg
  48. 0 1
      src/assets/icons/size.svg
  49. 0 1
      src/assets/icons/sunny.svg
  50. 0 1
      src/assets/icons/system.svg
  51. 0 1
      src/assets/icons/table.svg
  52. 0 1
      src/assets/icons/todolist.svg
  53. 0 1
      src/assets/icons/tree.svg
  54. 0 1
      src/assets/icons/visit.svg
  55. 6 0
      src/assets/icons/wanchengrenwu.svg
  56. 7 0
      src/assets/icons/youjian.svg
  57. 15 13
      src/layout/components/header.vue
  58. 2 5
      src/store/modules/user.ts
  59. 150 104
      src/typings/components.d.ts
  60. 3 54
      src/views/login/index.vue
  61. 6 1
      src/views/main/main.vue
  62. 44 3
      src/views/systems/systems.vue
  63. 1 0
      vite.config.ts

+ 6 - 5
.env.development

@@ -2,16 +2,17 @@
 NODE_ENV='development'
 
 # 应用端口
-VITE_APP_PORT = 3005
+VITE_APP_PORT = 3009
 
 # 代理前缀
 VITE_APP_BASE_API = '/dev-api'
 
-# 线上接口地址
-# VITE_APP_API_URL = http://vapi.youlai.tech
+# 上传文件接口地址
+VITE_APP_UPLOAD_URL = 'http://192.168.101.4:9000'
+
 # 开发接口地址
- VITE_APP_API_URL = 'http://192.168.101.4:8078'
-#VITE_APP_API_URL = 'http://192.168.101.51:8078'
+ VITE_APP_API_URL = 'http://192.168.101.26:7105'
+
 
 # 是否启用 Mock 服务
 VITE_MOCK_DEV_SERVER = false

+ 1 - 1
src/api/auth/index.ts

@@ -15,7 +15,7 @@ export function loginApi(data: LoginData): AxiosPromise<LoginResult> {
   // formData.append("captchaKey", data.captchaKey || "");
   // formData.append("captchaCode", data.captchaCode || "");
   return request({
-    url: "/api/auth/backLogin",
+    url: "/api/auth/login",
     method: "post",
     data: data,
     // headers: {

+ 1 - 1
src/api/auth/types.ts

@@ -21,7 +21,7 @@ export interface LoginData {
    */
   captchaCode?: string;
 
-  orgId: number;
+  orgId?: number;
 }
 
 /**

+ 1 - 0
src/api/user/types.ts

@@ -9,6 +9,7 @@ export interface UserInfo {
   roles: string[];
   perms: string[];
   deptId?: string;
+  sysData?: any[];
 }
 
 /**

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 87 - 0
src/assets/icons/DDS.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 437 - 0
src/assets/icons/ERP.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 89 - 0
src/assets/icons/MES.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 291 - 0
src/assets/icons/PDM.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 38 - 0
src/assets/icons/QMS.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/api.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/cascader.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/client.svg


+ 0 - 1
src/assets/icons/close.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 36 36"><path d="m19.41 18 8.29-8.29a1 1 0 0 0-1.41-1.41L18 16.59l-8.29-8.3a1 1 0 0 0-1.42 1.42l8.3 8.29-8.3 8.29A1 1 0 1 0 9.7 27.7l8.3-8.29 8.29 8.29a1 1 0 0 0 1.41-1.41z" fill="currentColor"/></svg>

+ 0 - 1
src/assets/icons/close_all.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 36 36"><path d="M26 17H10a1 1 0 0 0 0 2h16a1 1 0 0 0 0-2z" fill="currentColor"/></svg>

+ 0 - 1
src/assets/icons/close_left.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="m7 12 7 7m-7-7 7-7" stroke-linejoin="round"/><path d="M21 12H7.5"/><path d="M3 3v18" stroke-linejoin="round"/></g></svg>

+ 0 - 1
src/assets/icons/close_other.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 20 20"><path d="M3 5h14V3H3v2zm12 8V7H5v6h10zM3 17h14v-2H3v2z" fill="currentColor"/></svg>

+ 0 - 1
src/assets/icons/close_right.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="m17 12-7 7m7-7-7-7" stroke-linejoin="round"/><path d="M3 12h13.5"/><path d="M21 3v18" stroke-linejoin="round"/></g></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/dict.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/document.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/download.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/edit.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/eye-open.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/eye.svg


+ 0 - 1
src/assets/icons/fullscreen-exit.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"/></svg>

+ 0 - 1
src/assets/icons/fullscreen.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M8 3v2H4v4H2V3h6zM2 21v-6h2v4h4v2H2zm20 0h-6v-2h4v-4h2v6zm0-12h-2V5h-4V3h6v6z"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/github.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 9 - 0
src/assets/icons/gongzuoshixiang.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/homepage.svg


+ 0 - 1
src/assets/icons/indent-decrease.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3 4h18v2H3V4zm0 15h18v2H3v-2zm8-5h10v2H11v-2zm0-5h10v2H11V9zm-8 3.5L7 9v7l-4-3.5z"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/ip.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 6 - 0
src/assets/icons/laba.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/language.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/link.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/menu.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/message.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/money.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/monitor.svg


+ 0 - 1
src/assets/icons/moon.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.98 6.98 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/order.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/peoples.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/project.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/publish.svg


+ 0 - 1
src/assets/icons/refresh.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="1em" height="1em" viewBox="0 0 512 512"><path d="m400 148-21.12-24.57A191.43 191.43 0 0 0 240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 0 0 181.07-128" fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" stroke-width="32"/><path d="M464 68.45V220a4 4 0 0 1-4 4H308.45a4 4 0 0 1-2.83-6.83L457.17 65.62a4 4 0 0 1 6.83 2.83z" fill="currentColor"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/role.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/security.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 62 - 0
src/assets/icons/set.svg


+ 0 - 1
src/assets/icons/setting.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="m12 1 9.5 5.5v11L12 23l-9.5-5.5v-11L12 1zm0 2.311L4.5 7.653v8.694l7.5 4.342 7.5-4.342V7.653L12 3.311zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></svg>

+ 0 - 1
src/assets/icons/size.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M10 6v15H8V6H2V4h14v2h-6zm8 8v7h-2v-7h-3v-2h8v2h-3z"/></svg>

+ 0 - 1
src/assets/icons/sunny.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85 1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/system.svg


+ 0 - 1
src/assets/icons/table.svg

@@ -1 +0,0 @@
-<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M0 64v896h1024V64H0zm384 576V448h256v192H384zm256 64v192H384V704h256zm0-512v192H384V192h256zm-320 0v192H64V192h256zM64 448h256v192H64V448zm640 0h256v192H704V448zm0-64V192h256v192H704zM64 704h256v192H64V704zm640 192V704h256v192H704z"/></svg>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/todolist.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/tree.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
src/assets/icons/visit.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 6 - 0
src/assets/icons/wanchengrenwu.svg


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 7 - 0
src/assets/icons/youjian.svg


+ 15 - 13
src/layout/components/header.vue

@@ -32,20 +32,20 @@
           trigger="contextmenu"
           @command="handleCommand"
         >
-          <!--          <img-->
-          <!--            v-if="userStore.user.avatar"-->
-          <!--            :alt="userStore.user.avatar"-->
-          <!--            :src="userStore.user.avatar"-->
-          <!--            fit="cover"-->
-          <!--            style="-->
-          <!--              width: 48px;-->
-          <!--              height: 48px;-->
-          <!--              border-radius: 24px;-->
-          <!--              border: 1px solid #ccc;-->
-          <!--            "-->
-          <!--            @click="showClick"-->
-          <!--          />-->
+          <img
+            v-if="userStore.user.avatar"
+            :src="baseUrl + userStore.user.avatar"
+            fit="cover"
+            style="
+              width: 48px;
+              height: 48px;
+              border-radius: 24px;
+              border: 1px solid #ccc;
+            "
+            @click="showClick"
+          />
           <svg-icon
+            v-else
             icon-class="head"
             size="48"
             style="
@@ -75,6 +75,8 @@ import { useUserStore } from "@/store";
 
 const userStore = useUserStore();
 
+const baseUrl = import.meta.env.VITE_APP_UPLOAD_URL;
+
 const router = useRouter();
 const route = useRoute();
 const routeMeta = computed(() => {

+ 2 - 5
src/store/modules/user.ts

@@ -44,14 +44,11 @@ export const useUserStore = defineStore("user", () => {
             reject("Verification failed, please Login again.");
             return;
           }
-          user.value.userId = data.id;
           user.value.username = data.userName;
-          user.value.roles = data.roles;
-          user.value.deptId = data.deptId;
-
+          user.value.avatar = data.avatar ?? "";
           isGetAuth.value = true;
 
-          user.value.perms = data.permissions ?? [];
+          user.value.sysData = data.menus ?? [];
 
           resolve(data);
         })

+ 150 - 104
src/typings/components.d.ts

@@ -3,111 +3,157 @@
 // @ts-nocheck
 // Generated by unplugin-vue-components
 // Read more: https://github.com/vuejs/core/pull/3399
-export { }
+export {}
 
-declare module 'vue' {
-  ExcelUpload: typeof import('./../components/Upload/ExcelUpload.vue')['default']
-  CommonTable: typeof import('./../components/CommonTable/index.vue')['default']
-  AppLink: typeof import('./../components/AppLink/index.vue')['default']
-  AppMain: typeof import('./../layout/components/AppMain/index.vue')['default']
-  BarChart: typeof import('./../views/dashboard/components/BarChart.vue')['default']
-  Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default']
-  DeptTree: typeof import('./../views/system/user/components/dept-tree.vue')['default']
-  Dictionary: typeof import('./../components/Dictionary/index.vue')['default']
-  DictItem: typeof import('./../views/system/dict/components/dict-item.vue')['default']
-  ElAlert: typeof import('element-plus/es')['ElAlert']
-  ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
-  ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
-  ElButton: typeof import('element-plus/es')['ElButton']
-  ElCard: typeof import('element-plus/es')['ElCard']
-  ElCol: typeof import('element-plus/es')['ElCol']
-  ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
-  ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
-  ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
-  ElDialog: typeof import('element-plus/es')['ElDialog']
-  ElDivider: typeof import('element-plus/es')['ElDivider']
-  ElDrawer: typeof import('element-plus/es')['ElDrawer']
-  ElDropdown: typeof import('element-plus/es')['ElDropdown']
-  ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
-  ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
-  ElForm: typeof import('element-plus/es')['ElForm']
-  ElFormItem: typeof import('element-plus/es')['ElFormItem']
-  ElIcon: typeof import('element-plus/es')['ElIcon']
-  ElImage: typeof import('element-plus/es')['ElImage']
-  ElInput: typeof import('element-plus/es')['ElInput']
-  ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
-  ElLink: typeof import('element-plus/es')['ElLink']
-  ElMenu: typeof import('element-plus/es')['ElMenu']
-  ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
-  ElOption: typeof import('element-plus/es')['ElOption']
-  ElPagination: typeof import('element-plus/es')['ElPagination']
-  ElPopover: typeof import('element-plus/es')['ElPopover']
-  ElRadio: typeof import('element-plus/es')['ElRadio']
-  ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
-  ElRow: typeof import('element-plus/es')['ElRow']
-  ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
-  ElSelect: typeof import('element-plus/es')['ElSelect']
-  ElStatistic: typeof import('element-plus/es')['ElStatistic']
-  ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
-  ElSwitch: typeof import('element-plus/es')['ElSwitch']
-  ElTable: typeof import('element-plus/es')['ElTable']
-  ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
-  ElTabPane: typeof import('element-plus/es')['ElTabPane']
-  ElTabs: typeof import('element-plus/es')['ElTabs']
-  ElTag: typeof import('element-plus/es')['ElTag']
-  ElText: (typeof import("element-plus/es"))["ElText"]
-  ElTooltip: typeof import('element-plus/es')['ElTooltip']
-  ElTree: typeof import('element-plus/es')['ElTree']
-  ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
-  ElUpload: typeof import('element-plus/es')['ElUpload']
-  ElWatermark: typeof import('element-plus/es')['ElWatermark']
-  FunnelChart: typeof import('./../views/dashboard/components/FunnelChart.vue')['default']
-  GithubCorner: typeof import('./../components/GithubCorner/index.vue')['default']
-  Hamburger: typeof import('./../components/Hamburger/index.vue')['default']
-  IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
-  IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
-  IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
-  IEpClose: typeof import('~icons/ep/close')['default']
-  IEpCollection: (typeof import("~icons/ep/collection"))["default"]
-  IEpDelete: typeof import('~icons/ep/delete')['default']
-  IEpDownload: typeof import('~icons/ep/download')['default']
-  IEpEdit: typeof import('~icons/ep/edit')['default']
-  IEpPlus: typeof import('~icons/ep/plus')['default']
-  IEpPosition: (typeof import("~icons/ep/position"))["default"]
-  IEpQuestionFilled: typeof import('~icons/ep/question-filled')['default']
-  IEpRefresh: typeof import('~icons/ep/refresh')['default']
-  IEpRefreshLeft: typeof import('~icons/ep/refresh-left')['default']
-  IEpSearch: typeof import('~icons/ep/search')['default']
-  IEpSetting: (typeof import("~icons/ep/setting"))["default"]
-  IEpTop: typeof import('~icons/ep/top')['default']
-  IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
-  LangSelect: typeof import('./../components/LangSelect/index.vue')['default']
-  LayoutSelect: typeof import('./../layout/components/Settings/components/LayoutSelect.vue')['default']
-  MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default']
-  NavBar: typeof import('./../layout/components/NavBar/index.vue')['default']
-  NavbarLeft: typeof import('./../layout/components/NavBar/components/NavbarLeft.vue')['default']
-  NavbarRight: typeof import('./../layout/components/NavBar/components/NavbarRight.vue')['default']
-  Pagination: typeof import('./../components/Pagination/index.vue')['default']
-  PieChart: typeof import('./../views/dashboard/components/PieChart.vue')['default']
-  RadarChart: typeof import('./../views/dashboard/components/RadarChart.vue')['default']
-  RightPanel: (typeof import("./../components/RightPanel/index.vue"))["default"]
-  RouterLink: typeof import('vue-router')['RouterLink']
-  RouterView: typeof import('vue-router')['RouterView']
-  Settings: typeof import('./../layout/components/Settings/index.vue')['default']
-  Sidebar: typeof import('./../layout/components/Sidebar/index.vue')['default']
-  SidebarLogo: typeof import('./../layout/components/Sidebar/components/SidebarLogo.vue')['default']
-  SidebarMenu: typeof import('./../layout/components/Sidebar/components/SidebarMenu.vue')['default']
-  SidebarMenuItem: typeof import('./../layout/components/Sidebar/components/SidebarMenuItem.vue')['default']
-  SidebarMenuItemTitle: typeof import('./../layout/components/Sidebar/components/SidebarMenuItemTitle.vue')['default']
-  SidebarMixTopMenu: typeof import('./../layout/components/Sidebar/components/SidebarMixTopMenu.vue')['default']
-  SingleUpload: typeof import('./../components/Upload/SingleUpload.vue')['default']
-  SizeSelect: typeof import('./../components/SizeSelect/index.vue')['default']
-  SvgIcon: typeof import('./../components/SvgIcon/index.vue')['default']
-  TagsView: typeof import('./../layout/components/TagsView/index.vue')['default']
-  ThemeColorPicker: typeof import('./../layout/components/Settings/components/ThemeColorPicker.vue')['default']
-  WangEditor: typeof import('./../components/WangEditor/index.vue')['default']
+declare module "vue" {
+  typeof import("./../components/Upload/ExcelUpload.vue")[
+    "default"
+  ];
+  typeof import("./../components/CommonTable/index.vue")[
+    "default"
+  ];
+  typeof import("./../components/AppLink/index.vue")["default"];
+  typeof import("./../layout/components/AppMain/index.vue")["default"];
+  typeof import("./../views/dashboard/components/BarChart.vue")[
+    "default"
+  ];
+  typeof import("./../components/Breadcrumb/index.vue")["default"];
+  typeof import("./../views/system/user/components/dept-tree.vue")[
+    "default"
+  ];
+  typeof import("./../components/Dictionary/index.vue")["default"];
+  typeof import("./../views/system/dict/components/dict-item.vue")[
+    "default"
+  ];
+  typeof import("element-plus/es")["ElAlert"];
+  typeof import("element-plus/es")["ElBreadcrumb"];
+  typeof import("element-plus/es")["ElBreadcrumbItem"];
+  typeof import("element-plus/es")["ElButton"];
+  typeof import("element-plus/es")["ElCard"];
+  typeof import("element-plus/es")["ElCol"];
+  typeof import("element-plus/es")["ElColorPicker"];
+  typeof import("element-plus/es")["ElConfigProvider"];
+  typeof import("element-plus/es")["ElDatePicker"];
+  typeof import("element-plus/es")["ElDialog"];
+  typeof import("element-plus/es")["ElDivider"];
+  typeof import("element-plus/es")["ElDrawer"];
+  typeof import("element-plus/es")["ElDropdown"];
+  typeof import("element-plus/es")["ElDropdownItem"];
+  typeof import("element-plus/es")["ElDropdownMenu"];
+  typeof import("element-plus/es")["ElForm"];
+  typeof import("element-plus/es")["ElFormItem"];
+  typeof import("element-plus/es")["ElIcon"];
+  typeof import("element-plus/es")["ElImage"];
+  typeof import("element-plus/es")["ElInput"];
+  typeof import("element-plus/es")["ElInputNumber"];
+  typeof import("element-plus/es")["ElLink"];
+  typeof import("element-plus/es")["ElMenu"];
+  typeof import("element-plus/es")["ElMenuItem"];
+  typeof import("element-plus/es")["ElOption"];
+  typeof import("element-plus/es")["ElPagination"];
+  typeof import("element-plus/es")["ElPopover"];
+  typeof import("element-plus/es")["ElRadio"];
+  typeof import("element-plus/es")["ElRadioGroup"];
+  typeof import("element-plus/es")["ElRow"];
+  typeof import("element-plus/es")["ElScrollbar"];
+  typeof import("element-plus/es")["ElSelect"];
+  typeof import("element-plus/es")["ElStatistic"];
+  typeof import("element-plus/es")["ElSubMenu"];
+  typeof import("element-plus/es")["ElSwitch"];
+  typeof import("element-plus/es")["ElTable"];
+  typeof import("element-plus/es")["ElTableColumn"];
+  typeof import("element-plus/es")["ElTabPane"];
+  typeof import("element-plus/es")["ElTabs"];
+  typeof import("element-plus/es")["ElTag"];
+  (typeof import("element-plus/es"))["ElText"];
+  typeof import("element-plus/es")["ElTooltip"];
+  typeof import("element-plus/es")["ElTree"];
+  typeof import("element-plus/es")["ElTreeSelect"];
+  typeof import("element-plus/es")["ElUpload"];
+  typeof import("element-plus/es")["ElWatermark"];
+  typeof import("./../views/dashboard/components/FunnelChart.vue")[
+    "default"
+  ];
+  typeof import("./../components/GithubCorner/index.vue")[
+    "default"
+  ];
+  typeof import("./../components/Hamburger/index.vue")["default"];
+  typeof import("./../components/IconSelect/index.vue")["default"];
+  typeof import("~icons/ep/caret-bottom")["default"];
+  typeof import("~icons/ep/caret-top")["default"];
+  typeof import("~icons/ep/close")["default"];
+  (typeof import("~icons/ep/collection"))["default"];
+  typeof import("~icons/ep/delete")["default"];
+  typeof import("~icons/ep/download")["default"];
+  typeof import("~icons/ep/edit")["default"];
+  typeof import("~icons/ep/plus")["default"];
+  (typeof import("~icons/ep/position"))["default"];
+  typeof import("~icons/ep/question-filled")["default"];
+  typeof import("~icons/ep/refresh")["default"];
+  typeof import("~icons/ep/refresh-left")["default"];
+  typeof import("~icons/ep/search")["default"];
+  (typeof import("~icons/ep/setting"))["default"];
+  typeof import("~icons/ep/top")["default"];
+  typeof import("~icons/ep/upload-filled")["default"];
+  typeof import("./../components/LangSelect/index.vue")["default"];
+  typeof import(
+    "./../layout/components/Settings/components/LayoutSelect.vue"
+  )["default"];
+  typeof import("./../components/Upload/MultiUpload.vue")[
+    "default"
+  ];
+  typeof import("./../layout/components/NavBar/index.vue")["default"];
+  typeof import(
+    "./../layout/components/NavBar/components/NavbarLeft.vue"
+  )["default"];
+  typeof import(
+    "./../layout/components/NavBar/components/NavbarRight.vue"
+  )["default"];
+  typeof import("./../components/Pagination/index.vue")["default"];
+  typeof import("./../views/dashboard/components/PieChart.vue")[
+    "default"
+  ];
+  typeof import("./../views/dashboard/components/RadarChart.vue")[
+    "default"
+  ];
+  (typeof import("./../components/RightPanel/index.vue"))[
+    "default"
+  ];
+  typeof import("vue-router")["RouterLink"];
+  typeof import("vue-router")["RouterView"];
+  typeof import("./../layout/components/Settings/index.vue")[
+    "default"
+  ];
+  typeof import("./../layout/components/Sidebar/index.vue")["default"];
+  typeof import(
+    "./../layout/components/Sidebar/components/SidebarLogo.vue"
+  )["default"];
+  typeof import(
+    "./../layout/components/Sidebar/components/SidebarMenu.vue"
+  )["default"];
+  typeof import(
+    "./../layout/components/Sidebar/components/SidebarMenuItem.vue"
+  )["default"];
+  typeof import(
+    "./../layout/components/Sidebar/components/SidebarMenuItemTitle.vue"
+  )["default"];
+  typeof import(
+    "./../layout/components/Sidebar/components/SidebarMixTopMenu.vue"
+  )["default"];
+  typeof import("./../components/Upload/SingleUpload.vue")[
+    "default"
+  ];
+  typeof import("./../components/SizeSelect/index.vue")["default"];
+  typeof import("./../components/SvgIcon/index.vue")["default"];
+  typeof import("./../layout/components/TagsView/index.vue")[
+    "default"
+  ];
+  typeof import(
+    "./../layout/components/Settings/components/ThemeColorPicker.vue"
+  )["default"];
+  typeof import("./../components/WangEditor/index.vue")["default"];
 }
+
 export interface ComponentCustomProperties {
-  vLoading: typeof import('element-plus/es')['ElLoadingDirective']
-}
+  vLoading: (typeof import("element-plus/es"))["ElLoadingDirective"];
 }

+ 3 - 54
src/views/login/index.vue

@@ -1,17 +1,5 @@
 <template>
   <div class="login-container">
-    <!-- 顶部 -->
-    <!-- <div class="absolute-lt flex-x-end p-3 w-full">
-      <el-switch
-        v-model="isDark"
-        inline-prompt
-        :active-icon="Moon"
-        :inactive-icon="Sunny"
-        @change="toggleTheme"
-      />
-      <lang-select class="ml-2 cursor-pointer" />
-    </div> -->
-    <!-- 登录表单 -->
     <el-card
       class="!border-none !rounded-4% w-100 <sm:w-85"
       style="background-color: #a0a8b2"
@@ -59,33 +47,11 @@
                 show-password
                 size="large"
                 type="password"
-                @keyup="checkCapslock"
               />
             </div>
           </el-form-item>
         </el-tooltip>
 
-        <!-- 组织 -->
-        <el-form-item prop="orgId">
-          <div class="flex-y-center w-full">
-            <svg-icon class="mx-2" icon-class="captcha" />
-            <el-select
-              v-model="loginData.orgId"
-              class="no-border"
-              placeholder="请选择组织"
-              size="large"
-              @keyup.enter="handleLogin"
-            >
-              <el-option
-                v-for="item in orgList"
-                :key="item.id"
-                :label="item.deptName"
-                :value="item.id"
-              />
-            </el-select>
-          </div>
-        </el-form-item>
-
         <!-- 登录按钮 -->
         <el-button
           :loading="loading"
@@ -113,7 +79,7 @@
 
 <script lang="ts" setup>
 import { useSettingsStore, useUserStore } from "@/store";
-import { getCaptchaApi, getOrgListApi } from "@/api/auth";
+import { getCaptchaApi } from "@/api/auth";
 import { LoginData } from "@/api/auth/types";
 import { LocationQuery, LocationQueryValue, useRoute } from "vue-router";
 import router from "@/router";
@@ -137,8 +103,8 @@ const loginFormRef = ref(ElForm); // 登录表单ref
 const { height } = useWindowSize();
 
 const loginData = ref<LoginData>({
-  userName: "admin",
-  password: "admin@123",
+  userName: "",
+  password: "",
 });
 
 const loginRules = computed?.(() => {
@@ -162,13 +128,6 @@ const loginRules = computed?.(() => {
         trigger: "blur",
       },
     ],
-    orgId: [
-      {
-        required: true,
-        trigger: "blur",
-        message: t("login.message.orgId.required"),
-      },
-    ],
   };
 });
 
@@ -182,15 +141,6 @@ function getCaptcha() {
   });
 }
 
-function getOrgList() {
-  getOrgListApi().then((data: any) => {
-    orgList.value = data.data;
-    if (orgList.value) {
-      loginData.value.orgId = orgList.value[0].id;
-    }
-  });
-}
-
 /**
  * 登录
  */
@@ -255,7 +205,6 @@ function checkCapslock(e: any) {
 }
 
 onMounted?.(() => {
-  getOrgList();
   toggleTheme();
 });
 </script>

+ 6 - 1
src/views/main/main.vue

@@ -1,8 +1,13 @@
 <template>
-  <div @click="gotoZHDP">综合大屏</div>
+  <div>
+    <Systems />
+    <div @click="gotoZHDP">综合大屏</div>
+  </div>
 </template>
 
 <script lang="ts" setup>
+import Systems from "@/views/systems/systems.vue";
+
 const router = useRouter();
 const gotoZHDP = () => {
   router.push({ name: "totalScreen" });

+ 44 - 3
src/views/systems/systems.vue

@@ -1,7 +1,48 @@
 <template>
-  <div>src/views/systems /systems</div>
+  <div class="sys-container">
+    <div v-for="(item, index) in sysData" :key="index" class="sys-item">
+      <svg-icon :icon-class="item.icon" alt="" class="sys-item-img" size="60" />
+      <h3 class="sys-item-title">{{ item.menuName }}</h3>
+    </div>
+  </div>
 </template>
 
-<script lang="ts" setup></script>
+<script lang="ts" setup>
+import { useUserStore } from "@/store";
 
-<style lang="scss" scoped></style>
+const userStore = useUserStore();
+
+const sysData = ref<any[]>([{}, {}, {}]);
+
+onMounted(async () => {
+  let res = await userStore.getUserInfo();
+  sysData.value = res.menus;
+});
+</script>
+
+<style lang="scss" scoped>
+.sys-container {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+}
+
+.sys-item {
+  min-width: 120px;
+  padding: 15px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+
+  .sys-item-img {
+    width: 60px;
+  }
+
+  .sys-item-title {
+    font-size: 18px;
+    font-weight: bold;
+    margin-bottom: 10px;
+  }
+}
+</style>

+ 1 - 0
vite.config.ts

@@ -198,6 +198,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
     },
     // 构建配置
     build: {
+      sourcemap: true,
       chunkSizeWarningLimit: 2000, // 消除打包大小超过500kb警告
       minify: "terser", // Vite 2.6.x 以上需要配置 minify: "terser", terserOptions 才能生效
       terserOptions: {