hongrunxia 1 year ago
parent
commit
73576a977e
100 changed files with 484 additions and 236 deletions
  1. 1 1
      .env
  2. 2 1
      .env.development
  3. 4 4
      .vscode/settings.json
  4. 0 33
      README.md
  5. 0 68
      README.zh-CN.md
  6. 2 2
      apps/test-server/service/UserService.ts
  7. 2 0
      internal/vite-config/src/utils/modifyVars.ts
  8. 2 2
      mock/sys/user.ts
  9. 5 2
      package.json
  10. 192 92
      pnpm-lock.yaml
  11. 18 4
      src/App.vue
  12. 11 2
      src/api/sys/menu.ts
  13. 10 4
      src/api/sys/user.ts
  14. BIN
      src/assets/images/vent/fire/1.png
  15. BIN
      src/assets/images/vent/fire/14.png
  16. BIN
      src/assets/images/vent/fire/14173.png
  17. BIN
      src/assets/images/vent/fire/14174.png
  18. BIN
      src/assets/images/vent/fire/2.png
  19. BIN
      src/assets/images/vent/fire/bg-s.png
  20. BIN
      src/assets/images/vent/fire/bj1.png
  21. BIN
      src/assets/images/vent/fire/border.png
  22. BIN
      src/assets/images/vent/fire/bot-area.png
  23. BIN
      src/assets/images/vent/fire/bot-area1.png
  24. BIN
      src/assets/images/vent/fire/btn.png
  25. BIN
      src/assets/images/vent/fire/btn1.png
  26. BIN
      src/assets/images/vent/fire/card.png
  27. BIN
      src/assets/images/vent/fire/choice.png
  28. BIN
      src/assets/images/vent/fire/content-item.png
  29. BIN
      src/assets/images/vent/fire/contetn.png
  30. BIN
      src/assets/images/vent/fire/dz.png
  31. BIN
      src/assets/images/vent/fire/dz1.png
  32. BIN
      src/assets/images/vent/fire/dz2.png
  33. BIN
      src/assets/images/vent/fire/fc-t.png
  34. BIN
      src/assets/images/vent/fire/fc-t1.png
  35. BIN
      src/assets/images/vent/fire/fire-title.png
  36. 3 0
      src/assets/images/vent/fire/fire.svg
  37. BIN
      src/assets/images/vent/fire/firehome/CH₄.png
  38. BIN
      src/assets/images/vent/fire/firehome/CO.png
  39. BIN
      src/assets/images/vent/fire/firehome/CO₂.png
  40. BIN
      src/assets/images/vent/fire/firehome/C₂H₂.png
  41. BIN
      src/assets/images/vent/fire/firehome/C₂H₄.png
  42. BIN
      src/assets/images/vent/fire/firehome/H₂.png
  43. BIN
      src/assets/images/vent/fire/firehome/NO₂.png
  44. BIN
      src/assets/images/vent/fire/firehome/N₂.png
  45. BIN
      src/assets/images/vent/fire/firehome/O₂.png
  46. BIN
      src/assets/images/vent/fire/firehome/co1.png
  47. BIN
      src/assets/images/vent/fire/firehome/empty-qp.png
  48. BIN
      src/assets/images/vent/fire/firehome/fiber-jc.png
  49. BIN
      src/assets/images/vent/fire/firehome/miehuo.png
  50. BIN
      src/assets/images/vent/fire/firehome/qkjaq.png
  51. BIN
      src/assets/images/vent/fire/firehome/safety1.png
  52. BIN
      src/assets/images/vent/fire/firehome/safety2.png
  53. BIN
      src/assets/images/vent/fire/firehome/smoke.png
  54. BIN
      src/assets/images/vent/fire/firehome/temp.png
  55. BIN
      src/assets/images/vent/fire/firehome/title-1.png
  56. BIN
      src/assets/images/vent/fire/firehome/title-2.png
  57. BIN
      src/assets/images/vent/fire/firehome/title-3.png
  58. BIN
      src/assets/images/vent/fire/firehome/title-4.png
  59. BIN
      src/assets/images/vent/fire/firehome/ty-e.png
  60. BIN
      src/assets/images/vent/fire/firehome/work-jc.png
  61. BIN
      src/assets/images/vent/fire/firehome/zu-14578.png
  62. BIN
      src/assets/images/vent/fire/firehome/zu-e.png
  63. BIN
      src/assets/images/vent/fire/firehome/全矿井监测区域.png
  64. BIN
      src/assets/images/vent/fire/firehome/智能喷雾降尘装置-1.png
  65. BIN
      src/assets/images/vent/fire/firehome/智能喷雾降尘装置-喷雾开关.png
  66. BIN
      src/assets/images/vent/fire/firehome/智能喷雾降尘装置-断网数量.png
  67. BIN
      src/assets/images/vent/fire/firehome/智能喷雾降尘装置-联网数量.png
  68. BIN
      src/assets/images/vent/fire/firehome/智能喷雾降尘装置-设备总数.png
  69. BIN
      src/assets/images/vent/fire/firehome/标题-1.png
  70. BIN
      src/assets/images/vent/fire/firehome/标题-2.png
  71. BIN
      src/assets/images/vent/fire/firehome/标题-3.png
  72. BIN
      src/assets/images/vent/fire/firehome/标题-4.png
  73. BIN
      src/assets/images/vent/fire/firehome/粉尘关联指标.png
  74. BIN
      src/assets/images/vent/fire/firehome/粉尘静态指标.png
  75. BIN
      src/assets/images/vent/fire/fonts/douyuFont.otf
  76. 12 0
      src/assets/images/vent/fire/max.svg
  77. 12 0
      src/assets/images/vent/fire/min.svg
  78. BIN
      src/assets/images/vent/fire/no-choice.png
  79. BIN
      src/assets/images/vent/fire/pie.png
  80. 12 0
      src/assets/images/vent/fire/pj.svg
  81. 3 0
      src/assets/images/vent/fire/smoke.svg
  82. BIN
      src/assets/images/vent/fire/tab-1.png
  83. BIN
      src/assets/images/vent/fire/tab-2.png
  84. BIN
      src/assets/images/vent/fire/top-area.png
  85. 3 0
      src/assets/images/vent/fire/warn.svg
  86. BIN
      src/assets/images/vent/login/bg.png
  87. BIN
      src/assets/images/vent/login/btn-bg-hover.png
  88. BIN
      src/assets/images/vent/login/btn-bg.png
  89. BIN
      src/assets/images/vent/login/down.png
  90. BIN
      src/assets/images/vent/login/icon.png
  91. BIN
      src/assets/images/vent/login/input-down.png
  92. BIN
      src/assets/images/vent/login/input-normal.png
  93. BIN
      src/assets/images/vent/login/top.png
  94. 1 1
      src/components/Application/src/AppLocalePicker.vue
  95. 2 1
      src/components/Application/src/AppLogo.vue
  96. 168 0
      src/components/Container/src/Adaptive.vue
  97. 5 5
      src/components/ContextMenu/src/ContextMenu.vue
  98. 1 1
      src/components/CountDown/src/CountdownInput.vue
  99. 7 7
      src/components/Drawer/src/BasicDrawer.vue
  100. 6 6
      src/components/Form/src/BasicForm.vue

+ 1 - 1
.env

@@ -1,2 +1,2 @@
 # spa-title
-VITE_GLOB_APP_TITLE = Vben Admin
+VITE_GLOB_APP_TITLE = 灾害预警系统

+ 2 - 1
.env.development

@@ -5,7 +5,8 @@ VITE_USE_MOCK = true
 VITE_PUBLIC_PATH = /
 
 # Basic interface address SPA
-VITE_GLOB_API_URL=/basic-api
+#VITE_GLOB_API_URL=http://182.92.126.35:9999
+VITE_GLOB_API_URL=http://182.92.126.35:8070/prevention
 
 # File upload address, optional
 VITE_GLOB_UPLOAD_URL=/upload

+ 4 - 4
.vscode/settings.json

@@ -84,13 +84,13 @@
     "editor.defaultFormatter": "esbenp.prettier-vscode"
   },
   "editor.codeActionsOnSave": {
-    "source.fixAll.eslint": true,
-    "source.fixAll.stylelint": true
+    "source.fixAll.eslint": "explicit",
+    "source.fixAll.stylelint": "explicit"
   },
   "[vue]": {
     "editor.codeActionsOnSave": {
-      "source.fixAll.eslint": true,
-      "source.fixAll.stylelint": true
+      "source.fixAll.eslint": "explicit",
+      "source.fixAll.stylelint": "explicit"
     },
     "editor.defaultFormatter": "esbenp.prettier-vscode"
   },

+ 0 - 33
README.md

@@ -1,16 +1,7 @@
-<div align="center"> <a href="https://github.com/anncwb/vue-vben-admin"> <img alt="VbenAdmin Logo" width="200" height="200" src="https://anncwb.github.io/anncwb/images/logo.png"> </a> <br> <br>
 
-[![license](https://img.shields.io/github/license/anncwb/vue-vben-admin.svg)](LICENSE)
-
-<h1>Vue vben admin</h1>
-</div>
 
 **English** | [中文](./README.zh-CN.md)
 
-## Introduction
-
-Vue Vben Admin is a free and open source middle and back-end template. Using the latest `vue3`, `vite4`, `TypeScript` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
-
 ## Feature
 
 - **State of The Art Development**:Use front-end front-end technology development such as Vue3/vite2
@@ -21,15 +12,6 @@ Vue Vben Admin is a free and open source middle and back-end template. Using the
 - **Authority** Built-in complete dynamic routing permission generation scheme.
 - **Component** Multiple commonly used components are encapsulated twice
 
-## Preview
-
-- [vue-vben-admin](https://vben.vvbin.cn/) - Full version Chinese site
-- [vue-vben-admin-gh-pages](https://anncwb.github.io/vue-vben-admin/) - Full version of the github site
-- [vben-admin-thin-next](https://vben.vvbin.cn/thin/next/) - Simplified Chinese site
-- [vben-admin-thin-gh-pages](https://anncwb.github.io/vben-admin-thin-next/) -Simplified github site
-
-Test account: vben/123456
-
 <p align="center">
     <img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview1.png">
     <img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview2.png">
@@ -59,17 +41,6 @@ Open the project in Gitpod (free online dev environment for GitHub) and start co
 
 ## Install and use
 
-- Get the project code
-
-```bash
-git clone https://github.com/anncwb/vue-vben-admin.git
-```
-
-- Installation dependencies
-
-```bash
-cd vue-vben-admin
-
 pnpm install
 
 ```
@@ -173,7 +144,3 @@ Support modern browsers, not IE
 ## Star History Chart
 
 [![Star History Chart](https://api.star-history.com/svg?repos=vbenjs/vue-vben-admin&type=Date)](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## License
-
-[MIT © Vben-2020](./LICENSE)

+ 0 - 68
README.zh-CN.md

@@ -1,15 +1,7 @@
-<div align="center"> <a href="https://github.com/anncwb/vue-vben-admin"> <img alt="VbenAdmin Logo" width="200" height="200" src="https://anncwb.github.io/anncwb/images/logo.png"> </a> <br> <br>
 
-[![license](https://img.shields.io/github/license/anncwb/vue-vben-admin.svg)](LICENSE)
-
-<h1>Vue vben admin</h1>
-</div>
 
 **中文** | [English](./README.md)
 
-## 简介
-
-Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite4`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
 
 ## 特性
 
@@ -21,30 +13,6 @@ Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3
 - **权限** 内置完善的动态路由权限生成方案
 - **组件** 二次封装了多个常用的组件
 
-## 预览
-
-- [vue-vben-admin](https://vben.vvbin.cn/) - 完整版中文站点
-- [vue-vben-admin-gh-pages](https://anncwb.github.io/vue-vben-admin/) - 完整版 github 站点
-- [vben-admin-thin-next](https://vben.vvbin.cn/thin/next/) - 简化版中文站点
-- [vben-admin-thin-gh-pages](https://anncwb.github.io/vben-admin-thin-next/) - 简化版 github 站点
-
-测试账号: vben/123456
-
-<p align="center">
-    <img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview1.png">
-    <img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview2.png">
-    <img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview3.png">
-</p>
-
-### 使用 Gitpod
-
-在 Gitpod(适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码.
-
-[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/anncwb/vue-vben-admin)
-
-## 文档
-
-[文档地址](https://doc.vvbin.cn/)
 
 ## 准备
 
@@ -61,15 +29,8 @@ Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3
 
 - 获取项目代码
 
-```bash
-git clone https://github.com/anncwb/vue-vben-admin.git
-```
-
 - 安装依赖
 
-```bash
-cd vue-vben-admin
-
 pnpm install
 
 ```
@@ -86,23 +47,6 @@ pnpm serve
 pnpm build
 ```
 
-- docker
-
-### dockerFile 位于项目根目录下 并且支持差异化部署
-
-#### 构建镜像
-
-```bash
-docker build -t vue-vben-admin .
-```
-
-#### 动态使用环境变量实现容器差异化部署,通过不同的 VG_BASE_URL 环境变量,指向不同的后端服务地址,下面例子使用 http://localhost:3333 作为后端服务地址,并且将容器映射到 6666 端口
-
-```bash
-docker run --name vue-vben-admin -d -p 6666:80  -e VG_BASE_URL=http://localhost:3333 vue-vben-admin
-```
-
-而后可以打开 http://localhost:6666 访问
 
 ## 更新日志
 
@@ -162,14 +106,6 @@ docker run --name vue-vben-admin -d -p 6666:80  -e VG_BASE_URL=http://localhost:
 - [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression) - 用于打包输出.gz|.brotil 文件
 - [vite-plugin-svg-icons](https://github.com/anncwb/vite-plugin-svg-icons) - 用于快速生成 svg 雪碧图
 
-## 后台整合示例
-
-- [lamp-cloud](https://github.com/zuihou/lamp-cloud) - 基于 SpringCloud Alibaba 的微服务中后台快速开发平台
-- [matecloud](https://github.com/matevip/matecloud) - MateCloud 微服务脚手架,基于 Spring Cloud 2020.0.3、SpringBoot 2.5.3 的全开源平台
-
-## 维护者
-
-[@Vben](https://github.com/anncwb) [@Jinmao](https://github.com/jinmao88)
 
 ## 感谢
 
@@ -184,7 +120,3 @@ docker run --name vue-vben-admin -d -p 6666:80  -e VG_BASE_URL=http://localhost:
 ## Star 历史
 
 [![Star History Chart](https://api.star-history.com/svg?repos=vbenjs/vue-vben-admin&type=Date)](https://star-history.com/#vbenjs/vue-vben-admin&Date)
-
-## License
-
-[MIT © Vben-2020](./LICENSE)

+ 2 - 2
apps/test-server/service/UserService.ts

@@ -2,8 +2,8 @@ import { Result } from '../utils';
 
 const fakeUserInfo = {
   userId: '1',
-  username: 'vben',
-  realName: 'Vben Admin',
+  username: 'admin',
+  realName: 'admin123admin',
   desc: 'manager',
   password: '123456',
   token: 'fakeToken1',

+ 2 - 0
internal/vite-config/src/utils/modifyVars.ts

@@ -33,6 +33,8 @@ export function generateModifyVars() {
     ...v3Token,
     // reference:  Avoid repeated references
     hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
+    '@ant-prefix': 'vMonitor',
+    'ant-prefix': 'vMonitor',
     'primary-color': primary,
     ...primaryColorObj,
     'info-color': primary,

+ 2 - 2
mock/sys/user.ts

@@ -5,8 +5,8 @@ export function createFakeUserList() {
   return [
     {
       userId: '1',
-      username: 'vben',
-      realName: 'Vben Admin',
+      username: 'admin',
+      realName: 'admin123admin',
       avatar: '',
       desc: 'manager',
       password: '123456',

+ 5 - 2
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "vben-admin",
+  "name": "fire-micro",
   "version": "2.10.1",
   "homepage": "https://github.com/vbenjs/vue-vben-admin",
   "bugs": {
@@ -86,12 +86,14 @@
     "echarts": "^5.4.2",
     "exceljs": "^4.3.0",
     "lodash-es": "^4.17.21",
+    "md5": "^2.3.0",
     "mockjs": "^1.1.0",
     "nprogress": "^0.2.0",
     "path-to-regexp": "^6.2.1",
     "pinia": "2.1.4",
     "pinia-plugin-persistedstate": "^3.2.0",
     "print-js": "^1.6.0",
+    "qiankun": "^2.10.16",
     "qrcode": "^1.5.3",
     "qs": "^6.11.2",
     "resize-observer-polyfill": "^1.5.1",
@@ -100,6 +102,7 @@
     "tinymce": "^5.10.7",
     "unocss": "0.53.4",
     "vditor": "^3.9.4",
+    "vite-plugin-qiankun": "^1.0.15",
     "vue": "^3.3.4",
     "vue-i18n": "^9.6.4",
     "vue-json-pretty": "^2.2.4",
@@ -152,4 +155,4 @@
     "node": ">=16.15.1",
     "pnpm": ">=8.1.0"
   }
-}
+}

File diff suppressed because it is too large
+ 192 - 92
pnpm-lock.yaml


+ 18 - 4
src/App.vue

@@ -1,5 +1,16 @@
 <template>
-  <ConfigProvider :locale="getAntdLocale" :theme="themeConfig">
+  <AdaptiveContainer
+    v-if="runSelf"
+    :options="{ width: width, height: height }"
+    style="overflow-y: hidden"
+  >
+    <ConfigProvider :locale="getAntdLocale" :theme="themeConfig" prefixCls="vMonitor">
+      <AppProvider>
+        <RouterView />
+      </AppProvider>
+    </ConfigProvider>
+  </AdaptiveContainer>
+  <ConfigProvider v-else :locale="getAntdLocale" :theme="themeConfig" prefixCls="vMonitor">
     <AppProvider>
       <RouterView />
     </AppProvider>
@@ -11,15 +22,17 @@
   import { useTitle } from '@/hooks/web/useTitle';
   import { useLocale } from '@/locales/useLocale';
   import { ConfigProvider } from 'ant-design-vue';
-
+  import AdaptiveContainer from '/@/components/Container/src/Adaptive.vue';
   import { useDarkModeTheme } from '@/hooks/setting/useDarkModeTheme';
   import 'dayjs/locale/zh-cn';
-  import { computed } from 'vue';
+  import { computed, ref } from 'vue';
 
   // support Multi-language
   const { getAntdLocale } = useLocale();
-
+  const width = ref(1920);
+  const height = ref(928);
   const { isDark, darkTheme } = useDarkModeTheme();
+  const runSelf = ref(true);
 
   const themeConfig = computed(() =>
     Object.assign(
@@ -35,6 +48,7 @@
       isDark.value ? darkTheme : {},
     ),
   );
+
   // Listening to page changes and dynamically changing site titles
   useTitle();
 </script>

+ 11 - 2
src/api/sys/menu.ts

@@ -2,7 +2,7 @@ import { defHttp } from '@/utils/http/axios';
 import { getMenuListResultModel } from './model/menuModel';
 
 enum Api {
-  GetMenuList = '/getMenuList',
+  GetMenuList = '/sys/permissionNew/getUserPermissionByToken',
 }
 
 /**
@@ -10,5 +10,14 @@ enum Api {
  */
 
 export const getMenuList = () => {
-  return defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList });
+  return new Promise((resolve) => {
+    //为了兼容mock和接口数据
+    defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList }).then((res) => {
+      if (Array.isArray(res)) {
+        resolve(res);
+      } else {
+        resolve(res['menu']);
+      }
+    });
+  });
 };

+ 10 - 4
src/api/sys/user.ts

@@ -4,11 +4,12 @@ import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userMod
 import { ErrorMessageMode } from '#/axios';
 
 enum Api {
-  Login = '/login',
-  Logout = '/logout',
-  GetUserInfo = '/getUserInfo',
-  GetPermCode = '/getPermCode',
+  Login = '/sys/login',
+  Logout = '/sys/logout',
+  GetUserInfo = '/sys/user/getUserInfo',
+  GetPermCode = '/sys/permissionNew/getPermCode',
   TestRetry = '/testRetry',
+  getInputCode = '/sys/randomImage',
 }
 
 /**
@@ -53,3 +54,8 @@ export function testRetry() {
     },
   );
 }
+
+export function getCodeInfo(currdatetime) {
+  let url = Api.getInputCode + `/${currdatetime}`;
+  return defHttp.get({ url: url });
+}

BIN
src/assets/images/vent/fire/1.png


BIN
src/assets/images/vent/fire/14.png


BIN
src/assets/images/vent/fire/14173.png


BIN
src/assets/images/vent/fire/14174.png


BIN
src/assets/images/vent/fire/2.png


BIN
src/assets/images/vent/fire/bg-s.png


BIN
src/assets/images/vent/fire/bj1.png


BIN
src/assets/images/vent/fire/border.png


BIN
src/assets/images/vent/fire/bot-area.png


BIN
src/assets/images/vent/fire/bot-area1.png


BIN
src/assets/images/vent/fire/btn.png


BIN
src/assets/images/vent/fire/btn1.png


BIN
src/assets/images/vent/fire/card.png


BIN
src/assets/images/vent/fire/choice.png


BIN
src/assets/images/vent/fire/content-item.png


BIN
src/assets/images/vent/fire/contetn.png


BIN
src/assets/images/vent/fire/dz.png


BIN
src/assets/images/vent/fire/dz1.png


BIN
src/assets/images/vent/fire/dz2.png


BIN
src/assets/images/vent/fire/fc-t.png


BIN
src/assets/images/vent/fire/fc-t1.png


BIN
src/assets/images/vent/fire/fire-title.png


+ 3 - 0
src/assets/images/vent/fire/fire.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="19.062" height="22.015" viewBox="0 0 19.062 22.015">
+  <path id="路径_55293" data-name="路径 55293" d="M174.845,95.77c1.017.339,1.355-.593.932-.932a3.7,3.7,0,0,1-1.525-4.151c.508-1.694,1.864-2.372,1.864-4.914a3.576,3.576,0,0,1,1.355,3.219c1.694-1.948.932-4.49.593-5.676,4.321,2.287,8.048,7.286,3.728,11.522-.508.424,0,1.186.762.932,11.776-6.693,2.88-16.689,1.355-17.875.508,1.186.593,3.05-.424,3.982-1.779-6.693-6.1-8.048-6.1-8.048.508,3.473-1.948,7.2-4.236,10.081a7.684,7.684,0,0,0-.847-3.643c-.169,2.457-2.118,4.49-2.626,7.032-.678,3.389.508,5.845,5.168,8.472h0Z" transform="translate(-169.501 -73.828)" fill="#daedff"/>
+</svg>

BIN
src/assets/images/vent/fire/firehome/CH₄.png


BIN
src/assets/images/vent/fire/firehome/CO.png


BIN
src/assets/images/vent/fire/firehome/CO₂.png


BIN
src/assets/images/vent/fire/firehome/C₂H₂.png


BIN
src/assets/images/vent/fire/firehome/C₂H₄.png


BIN
src/assets/images/vent/fire/firehome/H₂.png


BIN
src/assets/images/vent/fire/firehome/NO₂.png


BIN
src/assets/images/vent/fire/firehome/N₂.png


BIN
src/assets/images/vent/fire/firehome/O₂.png


BIN
src/assets/images/vent/fire/firehome/co1.png


BIN
src/assets/images/vent/fire/firehome/empty-qp.png


BIN
src/assets/images/vent/fire/firehome/fiber-jc.png


BIN
src/assets/images/vent/fire/firehome/miehuo.png


BIN
src/assets/images/vent/fire/firehome/qkjaq.png


BIN
src/assets/images/vent/fire/firehome/safety1.png


BIN
src/assets/images/vent/fire/firehome/safety2.png


BIN
src/assets/images/vent/fire/firehome/smoke.png


BIN
src/assets/images/vent/fire/firehome/temp.png


BIN
src/assets/images/vent/fire/firehome/title-1.png


BIN
src/assets/images/vent/fire/firehome/title-2.png


BIN
src/assets/images/vent/fire/firehome/title-3.png


BIN
src/assets/images/vent/fire/firehome/title-4.png


BIN
src/assets/images/vent/fire/firehome/ty-e.png


BIN
src/assets/images/vent/fire/firehome/work-jc.png


BIN
src/assets/images/vent/fire/firehome/zu-14578.png


BIN
src/assets/images/vent/fire/firehome/zu-e.png


BIN
src/assets/images/vent/fire/firehome/全矿井监测区域.png


BIN
src/assets/images/vent/fire/firehome/智能喷雾降尘装置-1.png


BIN
src/assets/images/vent/fire/firehome/智能喷雾降尘装置-喷雾开关.png


BIN
src/assets/images/vent/fire/firehome/智能喷雾降尘装置-断网数量.png


BIN
src/assets/images/vent/fire/firehome/智能喷雾降尘装置-联网数量.png


BIN
src/assets/images/vent/fire/firehome/智能喷雾降尘装置-设备总数.png


BIN
src/assets/images/vent/fire/firehome/标题-1.png


BIN
src/assets/images/vent/fire/firehome/标题-2.png


BIN
src/assets/images/vent/fire/firehome/标题-3.png


BIN
src/assets/images/vent/fire/firehome/标题-4.png


BIN
src/assets/images/vent/fire/firehome/粉尘关联指标.png


BIN
src/assets/images/vent/fire/firehome/粉尘静态指标.png


BIN
src/assets/images/vent/fire/fonts/douyuFont.otf


+ 12 - 0
src/assets/images/vent/fire/max.svg

@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="31.761" height="46.177" viewBox="0 0 31.761 46.177">
+  <defs>
+    <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+      <stop offset="0" stop-color="#29b8ff"/>
+      <stop offset="1" stop-color="#2986ff" stop-opacity="0"/>
+    </linearGradient>
+  </defs>
+  <g id="组_14172" data-name="组 14172" transform="translate(-506.549 -355.112)">
+    <path id="路径_55369" data-name="路径 55369" d="M226.661,25.849V14.585a1.244,1.244,0,0,0-1.242-1.242h-.1a1.2,1.2,0,0,0-1.206,1.206v11.3a4.375,4.375,0,0,0-3.211,4.17,4.486,4.486,0,1,0,5.757-4.17Zm6.6-4.99a1.134,1.134,0,0,1-.443-.861V7.262a7.432,7.432,0,0,0-14.86,0V19.637a1.771,1.771,0,0,1-.6,1.357,11.81,11.81,0,0,0-4.224,9.029,12.264,12.264,0,0,0,24.521,0A11.811,11.811,0,0,0,233.259,20.859Zm-7.873,17.333a8.3,8.3,0,0,1-8.4-8.172,8.1,8.1,0,0,1,3.924-6.905l.595-.365a.659.659,0,0,0,.312-.558V7.262a3.573,3.573,0,0,1,7.143,0v14.93a.659.659,0,0,0,.312.558l.595.365a8.086,8.086,0,0,1,3.92,6.905,8.3,8.3,0,0,1-8.4,8.172Z" transform="translate(293.42 359.295)" fill="url(#linear-gradient)"/>
+    <path id="路径_55370" data-name="路径 55370" d="M282,155.954v9.231h1.865v-9.231l1.958,1.958,1.305-1.4-4.2-4.2-4.2,4.2,1.305,1.305Zm-4.662-4.755h11.189v-1.865H277.333Z" transform="translate(249.788 205.778)" fill="#3df6ff"/>
+  </g>
+</svg>

+ 12 - 0
src/assets/images/vent/fire/min.svg

@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="31.761" height="46.177" viewBox="0 0 31.761 46.177">
+  <defs>
+    <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+      <stop offset="0" stop-color="#29b8ff"/>
+      <stop offset="1" stop-color="#2986ff" stop-opacity="0"/>
+    </linearGradient>
+  </defs>
+  <g id="组_13335" data-name="组 13335" transform="translate(-0.001 0)">
+    <path id="路径_55369" data-name="路径 55369" d="M226.661,25.849V14.585a1.244,1.244,0,0,0-1.242-1.242h-.1a1.2,1.2,0,0,0-1.206,1.206v11.3a4.375,4.375,0,0,0-3.211,4.17,4.486,4.486,0,1,0,5.757-4.17Zm6.6-4.99a1.134,1.134,0,0,1-.443-.861V7.262a7.432,7.432,0,0,0-14.86,0V19.637a1.771,1.771,0,0,1-.6,1.357,11.81,11.81,0,0,0-4.223,9.029,12.264,12.264,0,0,0,24.521,0A11.811,11.811,0,0,0,233.259,20.859Zm-7.873,17.333a8.3,8.3,0,0,1-8.4-8.172,8.1,8.1,0,0,1,3.924-6.905l.595-.365a.659.659,0,0,0,.312-.558V7.262a3.573,3.573,0,0,1,7.143,0v14.93a.659.659,0,0,0,.312.558l.595.365a8.086,8.086,0,0,1,3.92,6.905,8.3,8.3,0,0,1-8.4,8.172Z" transform="translate(-213.129 4.184)" fill="url(#linear-gradient)"/>
+    <path id="路径_55370" data-name="路径 55370" d="M282,158.565v-9.231h1.865v9.231l1.958-1.958,1.305,1.4-4.2,4.2-4.2-4.2,1.305-1.305Zm-4.662,4.755h11.189v1.865H277.333Z" transform="translate(-256.76 -149.334)" fill="#3df6ff"/>
+  </g>
+</svg>

BIN
src/assets/images/vent/fire/no-choice.png


BIN
src/assets/images/vent/fire/pie.png


+ 12 - 0
src/assets/images/vent/fire/pj.svg

@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="31.761" height="46.177" viewBox="0 0 31.761 46.177">
+  <defs>
+    <linearGradient id="linear-gradient" x1="0.5" x2="0.5" y2="1" gradientUnits="objectBoundingBox">
+      <stop offset="0" stop-color="#29b8ff"/>
+      <stop offset="1" stop-color="#2986ff" stop-opacity="0"/>
+    </linearGradient>
+  </defs>
+  <g id="组_13336" data-name="组 13336" transform="translate(0 0)">
+    <path id="路径_55369" data-name="路径 55369" d="M226.661,25.849V14.585a1.244,1.244,0,0,0-1.242-1.242h-.1a1.2,1.2,0,0,0-1.206,1.206v11.3a4.375,4.375,0,0,0-3.211,4.17,4.486,4.486,0,1,0,5.757-4.17Zm6.6-4.99a1.134,1.134,0,0,1-.443-.861V7.262a7.432,7.432,0,0,0-14.86,0V19.637a1.771,1.771,0,0,1-.6,1.357,11.81,11.81,0,0,0-4.223,9.029,12.264,12.264,0,0,0,24.521,0A11.811,11.811,0,0,0,233.259,20.859Zm-7.873,17.333a8.3,8.3,0,0,1-8.4-8.172,8.1,8.1,0,0,1,3.924-6.905l.595-.365a.659.659,0,0,0,.312-.558V7.262a3.573,3.573,0,0,1,7.143,0v14.93a.659.659,0,0,0,.312.558l.595.365a8.086,8.086,0,0,1,3.92,6.905,8.3,8.3,0,0,1-8.4,8.172Z" transform="translate(-213.129 4.184)" fill="url(#linear-gradient)"/>
+    <path id="路径_55371" data-name="路径 55371" d="M64,120.4v2.264H75.189V120.4Zm0,13.846H75.189v-2.264H64Zm0-5.79H75.189v-2.264H64Z" transform="translate(-43.428 -120.4)" fill="#3df6ff"/>
+  </g>
+</svg>

+ 3 - 0
src/assets/images/vent/fire/smoke.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="19.384" height="19.402" viewBox="0 0 19.384 19.402">
+  <path id="路径_55652" data-name="路径 55652" d="M142.32,152.781a.968.968,0,0,1-.969-.969v-7.77a.965.965,0,0,1,.288-.687l1.965-1.95a.975.975,0,0,1,.681-.282h2.88v-3.876H142.68l-4.209,3.631v10.934a.969.969,0,0,1-1.938,0V140.433a.968.968,0,0,1,.336-.733l4.814-4.154a.97.97,0,0,1,.633-.236h5.814a.968.968,0,0,1,.969.969v5.814a.968.968,0,0,1-.969.969h-3.446l-1.4,1.384v7.367a.968.968,0,0,1-.969.969Zm9.692-15.533a.968.968,0,0,1-.533-1.777l2.937-1.932a.969.969,0,1,1,1.063,1.62l-2.937,1.932A.974.974,0,0,1,152.012,137.248Zm2.934,2.943h-2.937a.969.969,0,1,1,0-1.938h2.937a.969.969,0,1,1,0,1.938Zm0,4.821a.972.972,0,0,1-.536-.16l-2.937-1.95a.97.97,0,1,1,1.072-1.617l2.937,1.95a.969.969,0,0,1-.536,1.777Z" transform="translate(-136.533 -133.379)" fill="#daedff"/>
+</svg>

BIN
src/assets/images/vent/fire/tab-1.png


BIN
src/assets/images/vent/fire/tab-2.png


BIN
src/assets/images/vent/fire/top-area.png


+ 3 - 0
src/assets/images/vent/fire/warn.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="22.631" height="22.631" viewBox="0 0 22.631 22.631">
+  <path id="路径_55651" data-name="路径 55651" d="M10.815,4.056a6.76,6.76,0,0,1,6.76,6.76v5.408a1.352,1.352,0,0,1-1.352,1.352H5.408a1.352,1.352,0,0,1-1.352-1.352V10.815a6.76,6.76,0,0,1,6.76-6.76Zm0,10.815A4.056,4.056,0,1,0,6.76,10.815,4.056,4.056,0,0,0,10.815,14.871Zm0-1.352a2.7,2.7,0,1,1,2.7-2.7A2.7,2.7,0,0,1,10.815,13.519ZM10.139,0h1.353V2.7H10.139V0Zm8.788,9.464h2.7v1.352h-2.7ZM0,9.464H2.7v1.352H0Zm2.542-6.48L3.5,2.028,5.409,3.94,4.454,4.9,2.542,2.984Zm15.594-.955.955.955L17.179,4.9l-.956-.956,1.912-1.912ZM2.7,18.927H18.927a1.352,1.352,0,0,1,0,2.7H2.7a1.352,1.352,0,0,1,0-2.7Z" transform="translate(0.5 0.5)" fill="#daedff" stroke="rgba(0,0,0,0)" stroke-miterlimit="10" stroke-width="1"/>
+</svg>

BIN
src/assets/images/vent/login/bg.png


BIN
src/assets/images/vent/login/btn-bg-hover.png


BIN
src/assets/images/vent/login/btn-bg.png


BIN
src/assets/images/vent/login/down.png


BIN
src/assets/images/vent/login/icon.png


BIN
src/assets/images/vent/login/input-down.png


BIN
src/assets/images/vent/login/input-normal.png


BIN
src/assets/images/vent/login/top.png


+ 1 - 1
src/components/Application/src/AppLocalePicker.vue

@@ -69,7 +69,7 @@
 
 <style lang="less">
   .app-locale-picker-overlay {
-    .ant-dropdown-menu-item {
+    .vMonitor-dropdown-menu-item {
       min-width: 160px;
     }
   }

+ 2 - 1
src/components/Application/src/AppLogo.vue

@@ -76,7 +76,8 @@
     }
 
     &.light &__title {
-      color: @primary-color;
+      // color: @primary-color;
+      color: #fff;
     }
 
     &.dark &__title {

+ 168 - 0
src/components/Container/src/Adaptive.vue

@@ -0,0 +1,168 @@
+<template>
+  <div id="adaptive-container" :ref="refName">
+    <template v-if="ready">
+      <slot></slot>
+    </template>
+  </div>
+</template>
+
+<script>
+  import { ref, onMounted, onUnmounted, nextTick, defineComponent } from 'vue';
+  import { debounce, setRem } from '/@/utils/index';
+  import { useAppStore } from '/@/store/modules/app';
+
+  export default defineComponent({
+    name: 'AdaptiveContainer',
+    props: {
+      options: Object,
+    },
+    setup(ctx) {
+      const appStore = useAppStore();
+
+      const refName = 'AdaptiveContainer'; //AdaptiveContainer
+      // 屏幕宽度
+      const width = ref(0);
+      // 屏幕高度
+      const height = ref(0);
+      // 原始屏幕宽度
+      const originalWidth = ref(0);
+      // 原始屏幕高度
+      const originalHeight = ref(0);
+      // 控制显示
+      const ready = ref(false);
+      /*
+       * dom:well-container的dom
+       * observer: window.MutationObserver(Bom实例)监听dom改变
+       */
+      let dom, observer;
+
+      //设置初始值
+      const initSize = () => {
+        return new Promise((resolve) => {
+          nextTick(() => {
+            dom = document.getElementById('adaptive-container');
+            // 获取大屏的传入尺寸
+            if (ctx.options && ctx.options.width && ctx.options.height) {
+              //传入宽高
+              width.value = ctx.options.width;
+              height.value = ctx.options.height;
+            } else {
+              //可见宽高
+              width.value = dom.clientWidth;
+              height.value = dom.clientHeight;
+            }
+            // 获取画布尺寸
+            if (!originalWidth.value || !originalHeight.value) {
+              //屏幕分辨率宽高
+              originalWidth.value = window.screen.width;
+              originalHeight.value = window.screen.height;
+            }
+            resolve();
+          });
+        });
+      };
+
+      const updateSize = () => {
+        if (width.value && height.value) {
+          dom.style.width = `${width.value}px`;
+          dom.style.height = `${height.value}px`;
+        } else {
+          dom.style.width = `${originalWidth.value}px`;
+          dom.style.height = `${originalHeight.value}px`;
+        }
+      };
+
+      const updateScale = () => {
+        // debugger
+        // 获取真实的视口尺寸
+        const currentWidth = document.body.clientWidth;
+        const currentHeight = document.body.clientHeight;
+        // 获取大屏最终的宽高
+        const realWidth = width.value || originalWidth.value;
+        const realHeight = height.value || originalHeight.value;
+        // console.log(currentWidth, currentHeight)
+        // 缩放比例  = 分辨率宽高 / 传入宽高(可视宽高)
+        const widthScale = currentWidth / realWidth;
+        const heightScale = currentHeight / realHeight;
+        //如果dom存在,就按照比例缩放
+        dom && (dom.style.transform = `scale(${widthScale}, ${heightScale})`);
+      };
+      const cssSize = () => {
+        const currentWidth = document.body.clientWidth;
+        const realWidth = width.value || originalWidth.value;
+        const whdef = 100 / 1920; // 表示1920的设计图,使用100PX的默认值
+        const wW = currentWidth / realWidth; // 当前窗口的宽度
+        const rem = wW * whdef; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
+        document.documentElement.style.fontSize = rem + 'px';
+        window.addEventListener('resize', function () {
+          const whdef = 100 / 1920; // 表示1920的设计图,使用100PX的默认值
+          const wW = window.innerWidth; // 当前窗口的宽度
+          const rem = wW * whdef; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
+          document.documentElement.style.fontSize = rem + 'px';
+        });
+      };
+
+      //重置缩放比例
+      const onResize = async () => {
+        // debugger;
+        await initSize();
+        updateScale();
+        setRem();
+        cssSize();
+      };
+
+      const initMutationObserver = () => {
+        //监听元素属性变化
+        const MutationObserver = window.MutationObserver;
+        //如果变化,就用onResize重置屏幕所缩放比例
+        observer = new MutationObserver(onResize);
+        observer.observe(dom, {
+          attributes: true,
+          attributeFilter: ['style'],
+          attributeOldValue: true,
+        });
+      };
+      //移除监听属性
+      const removeMutationObserver = () => {
+        if (observer) {
+          observer.disconnect();
+          observer.takeRecords();
+          observer = null;
+        }
+      };
+      //
+      onMounted(async () => {
+        ready.value = false;
+        await initSize();
+        updateSize();
+        updateScale();
+        setRem();
+        cssSize();
+        window.addEventListener('resize', debounce(100, onResize));
+        initMutationObserver();
+        ready.value = true;
+      });
+
+      onUnmounted(() => {
+        window.removeEventListener('resize', onResize);
+        removeMutationObserver();
+      });
+
+      return {
+        refName,
+        ready,
+      };
+    },
+  });
+</script>
+
+<style lang="less" scoped>
+  #adaptive-container {
+    position: relative;
+    z-index: 0;
+    top: 0;
+    left: 0;
+    overflow: hidden;
+    transform-origin: left top;
+  }
+</style>

+ 5 - 5
src/components/ContextMenu/src/ContextMenu.vue

@@ -166,7 +166,7 @@
         margin: 0 !important;
       }
 
-      &:not(.ant-menu-item-disabled):hover {
+      &:not(.vMonitor-menu-item-disabled):hover {
         background-color: @item-hover-bg;
         color: @text-color-base;
       }
@@ -197,20 +197,20 @@
     }
     .item-style();
 
-    .ant-divider {
+    .vMonitor-divider {
       margin: 0;
     }
 
     &__popup {
-      .ant-divider {
+      .vMonitor-divider {
         margin: 0;
       }
 
       .item-style();
     }
 
-    .ant-menu-submenu-title,
-    .ant-menu-item {
+    .vMonitor-menu-submenu-title,
+    .vMonitor-menu-item {
       padding: 0 !important;
     }
   }

+ 1 - 1
src/components/CountDown/src/CountdownInput.vue

@@ -33,7 +33,7 @@
   @prefix-cls: ~'@{namespace}-countdown-input';
 
   .@{prefix-cls} {
-    .ant-input-group-addon {
+    .vMonitor-input-group-addon {
       padding-right: 0;
       border: none;
       background-color: transparent;

+ 7 - 7
src/components/Drawer/src/BasicDrawer.vue

@@ -174,17 +174,17 @@
   @prefix-cls-detail: ~'@{namespace}-basic-drawer__detail';
 
   .@{prefix-cls} {
-    .ant-drawer-wrapper-body {
+    .vMonitor-drawer-wrapper-body {
       overflow: hidden;
     }
 
-    .ant-drawer-close {
+    .vMonitor-drawer-close {
       &:hover {
         color: @error-color;
       }
     }
 
-    .ant-drawer-body {
+    .vMonitor-drawer-body {
       height: calc(100% - @header-height);
       padding: 0;
       background-color: @component-background;
@@ -203,7 +203,7 @@
   .@{prefix-cls-detail} {
     position: absolute;
 
-    .ant-drawer-header {
+    .vMonitor-drawer-header {
       box-sizing: border-box;
       width: 100%;
       height: @detail-header-height;
@@ -211,11 +211,11 @@
       border-top: 1px solid @border-color-base;
     }
 
-    .ant-drawer-title {
+    .vMonitor-drawer-title {
       height: 100%;
     }
 
-    .ant-drawer-close {
+    .vMonitor-drawer-close {
       height: @detail-header-height;
       line-height: @detail-header-height;
     }
@@ -224,7 +224,7 @@
       padding: 0 !important;
     }
 
-    .ant-drawer-body {
+    .vMonitor-drawer-body {
       height: calc(100% - @detail-header-height);
     }
   }

+ 6 - 6
src/components/Form/src/BasicForm.vue

@@ -324,7 +324,7 @@
   @prefix-cls: ~'@{namespace}-basic-form';
 
   .@{prefix-cls} {
-    .ant-form-item {
+    .vMonitor-form-item {
       &-label label::after {
         margin: 0 6px 0 2px;
       }
@@ -333,16 +333,16 @@
       //   margin-bottom: 0;
       // }
 
-      // &:not(.ant-form-item-with-help) {
+      // &:not(.vMonitor-form-item-with-help) {
       //   margin-bottom: 20px;
       // }
 
       &.suffix-item {
-        .ant-form-item-children {
+        .vMonitor-form-item-children {
           display: flex;
         }
 
-        .ant-form-item-control {
+        .vMonitor-form-item-control {
           // margin-top: 4px;
         }
 
@@ -356,12 +356,12 @@
       }
     }
 
-    .ant-form-explain {
+    .vMonitor-form-explain {
       font-size: 14px;
     }
 
     &--compact {
-      .ant-form-item {
+      .vMonitor-form-item {
         margin-bottom: 8px !important;
       }
     }

Some files were not shown because too many files changed in this diff