Browse Source

大屏页面样式重构

develop
fuguobin 1 year ago
parent
commit
d0b0876e84
  1. 2
      .env.production
  2. 2
      package.json
  3. 10
      src/api/table/list.ts
  4. 12
      src/api/table/types.ts
  5. 10
      src/api/user/index.ts
  6. BIN
      src/assets/fonts/AlibabaPuHuiTiBold.ttf
  7. BIN
      src/assets/fonts/AlibabaPuHuiTiRegular.ttf
  8. BIN
      src/assets/fonts/YouSheBiaoTiHei.ttf
  9. 12
      src/assets/fonts/font.css
  10. 80
      src/assets/iconfont/demo_index.html
  11. 20
      src/assets/iconfont/iconfont.css
  12. 2
      src/assets/iconfont/iconfont.js
  13. 32
      src/assets/iconfont/iconfont.json
  14. BIN
      src/assets/iconfont/iconfont.ttf
  15. BIN
      src/assets/iconfont/iconfont.woff
  16. BIN
      src/assets/iconfont/iconfont.woff2
  17. 1
      src/assets/icons/baoxue-rijian.svg
  18. 1
      src/assets/icons/baoyu-rijian.svg
  19. 1
      src/assets/icons/dabaoyu-rijian.svg
  20. 1
      src/assets/icons/daxue-rijian.svg
  21. 1
      src/assets/icons/dayu-rijian.svg
  22. 1
      src/assets/icons/dongyu-rijian.svg
  23. 1
      src/assets/icons/duoyun-rijian.svg
  24. 1
      src/assets/icons/duoyun-wanjian.svg
  25. 1
      src/assets/icons/fuchen-rijian.svg
  26. 1
      src/assets/icons/leizhenyu-rijian.svg
  27. 1
      src/assets/icons/leizhenyujiabingbao.svg
  28. 1
      src/assets/icons/qiangshachenbao.svg
  29. 1
      src/assets/icons/qing-rijian.svg
  30. 1
      src/assets/icons/qing-wanjian.svg
  31. 1
      src/assets/icons/shachenbao-rijian.svg
  32. 1
      src/assets/icons/tedabaoyu.svg
  33. 1
      src/assets/icons/warning_lights.svg
  34. 1
      src/assets/icons/wu-rijian.svg
  35. 1
      src/assets/icons/xiaoxue-rijian.svg
  36. 1
      src/assets/icons/xiaoyu-rijian.svg
  37. 1
      src/assets/icons/yangsha-rijian.svg
  38. 1
      src/assets/icons/yin-rijian.svg
  39. 1
      src/assets/icons/yujiaxue-rijian.svg
  40. 1
      src/assets/icons/zhenxue-rijian.svg
  41. 1
      src/assets/icons/zhenxue-wanjian.svg
  42. 1
      src/assets/icons/zhenyu-rijian.svg
  43. 1
      src/assets/icons/zhenyu-wanjian.svg
  44. 1
      src/assets/icons/zhongxue-rijian.svg
  45. 1
      src/assets/icons/zhongyu-rijian.svg
  46. BIN
      src/assets/images/menu_bg.png
  47. BIN
      src/assets/images/screen.jpg
  48. BIN
      src/assets/images/screen.png
  49. BIN
      src/assets/images/taps.png
  50. BIN
      src/assets/images/title-bg.png
  51. BIN
      src/assets/images/weather/duoyun.png
  52. 1
      src/main.ts
  53. 2
      src/styles/dark.scss
  54. 2
      src/styles/sidebar.scss
  55. 2
      src/styles/variables.scss
  56. 3
      src/types/components.d.ts
  57. 36
      src/utils/index.ts
  58. 8
      src/utils/useStorage.ts
  59. 4
      src/views/login/index.scss
  60. 9
      src/views/login/index.vue
  61. 198
      src/views/monitoring/components/header.vue
  62. 66
      src/views/monitoring/screen/components/infoPanel.vue
  63. 12
      src/views/monitoring/screen/components/main.vue
  64. 6
      src/views/monitoring/screen/components/menu.vue
  65. 370
      src/views/monitoring/screen/index.scss
  66. 105
      src/views/monitoring/screen/index.vue
  67. 1
      vite.config.ts

2
.env.production

@ -2,4 +2,4 @@
VITE_APP_ENV = 'production' VITE_APP_ENV = 'production'
VITE_APP_TITLE = 'vue-vite-project-admin' VITE_APP_TITLE = 'vue-vite-project-admin'
VITE_APP_PORT = 8089 VITE_APP_PORT = 8089
VITE_APP_BASE_API = 'http://10.10.10.56:9000/' VITE_APP_BASE_API = 'http://localhost:8012/'

2
package.json

@ -15,6 +15,7 @@
"@vueuse/core": "^9.1.1", "@vueuse/core": "^9.1.1",
"@wangeditor/editor": "^5.0.0", "@wangeditor/editor": "^5.0.0",
"@wangeditor/editor-for-vue": "^5.1.10", "@wangeditor/editor-for-vue": "^5.1.10",
"animate.css": "^4.1.1",
"axios": "^1.3.4", "axios": "^1.3.4",
"echarts": "^5.2.2", "echarts": "^5.2.2",
"element-plus": "^2.2.32", "element-plus": "^2.2.32",
@ -25,6 +26,7 @@
"path-to-regexp": "^6.2.0", "path-to-regexp": "^6.2.0",
"pinia": "^2.0.12", "pinia": "^2.0.12",
"screenfull": "^6.0.2", "screenfull": "^6.0.2",
"swiper": "^10.2.0",
"terser": "^5.17.6", "terser": "^5.17.6",
"vue": "^3.2.45", "vue": "^3.2.45",
"vue-i18n": "^9.1.9", "vue-i18n": "^9.1.9",

10
src/api/table/list.ts

@ -56,3 +56,13 @@ export function editConfig(data: any) {
data: data data: data
}); });
} }
/**
*
*/
export function getTableFooter(): AxiosPromise<[]> {
return request({
url: '/bi/opt/getTableFooter',
method: 'get'
});
}

12
src/api/table/types.ts

@ -56,3 +56,15 @@ export interface TableVo {
C047: object; C047: object;
C048: object; C048: object;
} }
/**
*
*/
export interface PanelVo {
backImg: string;
ext: string;
id: number;
title: string;
type: string;
value?: number;
}

10
src/api/user/index.ts

@ -12,6 +12,16 @@ export function getUserInfo(): AxiosPromise<UserInfo> {
}); });
} }
/**
*
*/
export function getWeather(): AxiosPromise<[]> {
return request({
url: '/model/dcBusiRealWeatherHours/oneLast',
method: 'get'
});
}
/** /**
* *
* *

BIN
src/assets/fonts/AlibabaPuHuiTiBold.ttf

Binary file not shown.

BIN
src/assets/fonts/AlibabaPuHuiTiRegular.ttf

Binary file not shown.

BIN
src/assets/fonts/YouSheBiaoTiHei.ttf

Binary file not shown.

12
src/assets/fonts/font.css

@ -0,0 +1,12 @@
@font-face {
font-family: 'YouSheBiaoTiHei';
src: url('YouSheBiaoTiHei.ttf') format('truetype');
}
@font-face {
font-family: 'AlibabaPuHuiTiRegular';
src: url('AlibabaPuHuiTiRegular.ttf') format('truetype');
}
@font-face {
font-family: 'AlibabaPuHuiTiBold';
src: url('AlibabaPuHuiTiBold.ttf') format('truetype');
}

80
src/assets/iconfont/demo_index.html

@ -55,15 +55,27 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xeb04;</span> <span class="icon iconfont">&#xe845;</span>
<div class="name">箭头_切换向下</div> <div class="name">up</div>
<div class="code-name">&amp;#xeb04;</div> <div class="code-name">&amp;#xe845;</div>
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xeb05;</span> <span class="icon iconfont">&#xe8f8;</span>
<div class="name">箭头_切换向上</div> <div class="name">323向左交换</div>
<div class="code-name">&amp;#xeb05;</div> <div class="code-name">&amp;#xe8f8;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe8f9;</span>
<div class="name">324向右交换</div>
<div class="code-name">&amp;#xe8f9;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe849;</span>
<div class="name">angle-double-up</div>
<div class="code-name">&amp;#xe849;</div>
</li> </li>
<li class="dib"> <li class="dib">
@ -384,9 +396,9 @@
<pre><code class="language-css" <pre><code class="language-css"
>@font-face { >@font-face {
font-family: 'iconfont'; font-family: 'iconfont';
src: url('iconfont.woff2?t=1693533922330') format('woff2'), src: url('iconfont.woff2?t=1694076506316') format('woff2'),
url('iconfont.woff?t=1693533922330') format('woff'), url('iconfont.woff?t=1694076506316') format('woff'),
url('iconfont.ttf?t=1693533922330') format('truetype'); url('iconfont.ttf?t=1694076506316') format('truetype');
} }
</code></pre> </code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@ -413,23 +425,41 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-decline"></span> <span class="icon iconfont icon-arrow-up"></span>
<div class="name"> <div class="name">
箭头_切换向下 up
</div> </div>
<div class="code-name">.icon-decline <div class="code-name">.icon-arrow-up
</div> </div>
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-rise"></span> <span class="icon iconfont icon-rise"></span>
<div class="name"> <div class="name">
箭头_切换向上 323向左交换
</div> </div>
<div class="code-name">.icon-rise <div class="code-name">.icon-rise
</div> </div>
</li> </li>
<li class="dib">
<span class="icon iconfont icon-decline"></span>
<div class="name">
324向右交换
</div>
<div class="code-name">.icon-decline
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-angle-double"></span>
<div class="name">
angle-double-up
</div>
<div class="code-name">.icon-angle-double
</div>
</li>
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-visits-chart"></span> <span class="icon iconfont icon-visits-chart"></span>
<div class="name"> <div class="name">
@ -909,20 +939,36 @@
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-decline"></use> <use xlink:href="#icon-arrow-up"></use>
</svg> </svg>
<div class="name">箭头_切换向下</div> <div class="name">up</div>
<div class="code-name">#icon-decline</div> <div class="code-name">#icon-arrow-up</div>
</li> </li>
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-rise"></use> <use xlink:href="#icon-rise"></use>
</svg> </svg>
<div class="name">箭头_切换向上</div> <div class="name">323向左交换</div>
<div class="code-name">#icon-rise</div> <div class="code-name">#icon-rise</div>
</li> </li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-decline"></use>
</svg>
<div class="name">324向右交换</div>
<div class="code-name">#icon-decline</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-angle-double"></use>
</svg>
<div class="name">angle-double-up</div>
<div class="code-name">#icon-angle-double</div>
</li>
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-visits-chart"></use> <use xlink:href="#icon-visits-chart"></use>

20
src/assets/iconfont/iconfont.css

@ -1,8 +1,8 @@
@font-face { @font-face {
font-family: "iconfont"; /* Project id 3987011 */ font-family: "iconfont"; /* Project id 3987011 */
src: url('iconfont.woff2?t=1693533922330') format('woff2'), src: url('iconfont.woff2?t=1694076506316') format('woff2'),
url('iconfont.woff?t=1693533922330') format('woff'), url('iconfont.woff?t=1694076506316') format('woff'),
url('iconfont.ttf?t=1693533922330') format('truetype'); url('iconfont.ttf?t=1694076506316') format('truetype');
} }
.iconfont { .iconfont {
@ -13,12 +13,20 @@
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.icon-decline:before { .icon-arrow-up:before {
content: "\eb04"; content: "\e845";
} }
.icon-rise:before { .icon-rise:before {
content: "\eb05"; content: "\e8f8";
}
.icon-decline:before {
content: "\e8f9";
}
.icon-angle-double:before {
content: "\e849";
} }
.icon-visits-chart:before { .icon-visits-chart:before {

2
src/assets/iconfont/iconfont.js

File diff suppressed because one or more lines are too long

32
src/assets/iconfont/iconfont.json

@ -6,18 +6,32 @@
"description": "", "description": "",
"glyphs": [ "glyphs": [
{ {
"icon_id": "5387575", "icon_id": "34453072",
"name": "箭头_切换向下", "name": "up",
"font_class": "decline", "font_class": "arrow-up",
"unicode": "eb04", "unicode": "e845",
"unicode_decimal": 60164 "unicode_decimal": 59461
}, },
{ {
"icon_id": "5387578", "icon_id": "1727559",
"name": "箭头_切换向上", "name": "323向左交换",
"font_class": "rise", "font_class": "rise",
"unicode": "eb05", "unicode": "e8f8",
"unicode_decimal": 60165 "unicode_decimal": 59640
},
{
"icon_id": "1727561",
"name": "324向右交换",
"font_class": "decline",
"unicode": "e8f9",
"unicode_decimal": 59641
},
{
"icon_id": "6151391",
"name": "angle-double-up",
"font_class": "angle-double",
"unicode": "e849",
"unicode_decimal": 59465
}, },
{ {
"icon_id": "6033101", "icon_id": "6033101",

BIN
src/assets/iconfont/iconfont.ttf

Binary file not shown.

BIN
src/assets/iconfont/iconfont.woff

Binary file not shown.

BIN
src/assets/iconfont/iconfont.woff2

Binary file not shown.

1
src/assets/icons/baoxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M755.2 274.4c84.8 0 153.5 70.6 153.5 154.9 0 79.1-61.2 145-138.5 152.6H263.6c-86.7-12.2-148.3-88.1-148.3-177.5 0-83.8 57.9-154 136.1-172.8 25.4-91.8 112.1-162 211.9-162 120.6 0 215.2 100.8 215.2 219.9 0 2.8-0.5 5.2-0.5 8.5 22.6-13.2 49-23.6 77.2-23.6z" fill="#E5E5E5" /><path d="M395.6 844.9h-35.2l24.9-24.9c6.6-6.6 6.6-17.3 0-23.8-6.6-6.6-17.3-6.6-23.8 0L336.6 821v-35.2c0-9.3-7.5-16.9-16.9-16.9s-16.9 7.5-16.9 16.9V821L278 796.2c-6.6-6.6-17.3-6.6-23.8 0-6.6 6.6-6.6 17.3 0 23.8l24.9 24.9h-35.2c-9.3 0-16.9 7.5-16.9 16.9s7.5 16.9 16.9 16.9H279l-24.9 24.9c-6.6 6.6-6.6 17.3 0 23.8 3.3 3.3 7.6 4.9 11.9 4.9s8.6-1.6 11.9-4.9l24.9-24.9v35.2c0 9.3 7.5 16.9 16.9 16.9s16.9-7.5 16.9-16.9v-35.2l24.9 24.9c3.3 3.3 7.6 4.9 11.9 4.9s8.6-1.6 11.9-4.9c6.6-6.6 6.6-17.3 0-23.8l-24.9-24.9h35.2c9.3 0 16.9-7.5 16.9-16.9s-7.6-16.9-16.9-16.9z m91.1-175.8h-35.2l24.9-24.9c6.6-6.6 6.6-17.3 0-23.8-6.6-6.6-17.3-6.6-23.8 0l-24.9 24.9v-35.2c0-9.3-7.5-16.9-16.9-16.9s-16.9 7.5-16.9 16.9v35.2L369 620.4c-6.6-6.6-17.3-6.6-23.8 0-6.6 6.6-6.6 17.3 0 23.8l24.9 24.9H335c-9.3 0-16.9 7.5-16.9 16.9s7.5 16.9 16.9 16.9h35.2l-24.9 24.9c-6.6 6.6-6.6 17.3 0 23.8 3.3 3.3 7.6 4.9 11.9 4.9s8.6-1.6 11.9-4.9l24.9-24.9v35.2c0 9.3 7.5 16.9 16.9 16.9s16.9-7.5 16.9-16.9v-35.2l24.9 24.9c3.3 3.3 7.6 4.9 11.9 4.9s8.6-1.6 11.9-4.9c6.6-6.6 6.6-17.3 0-23.8l-24.9-24.9h35.2c9.3 0 16.9-7.5 16.9-16.9s-7.6-16.9-17-16.9z m141.7 175.8h-35.2l24.9-24.9c6.6-6.6 6.6-17.3 0-23.8-6.6-6.6-17.3-6.6-23.8 0L569.4 821v-35.2c0-9.3-7.5-16.9-16.9-16.9s-16.9 7.5-16.9 16.9V821l-24.9-24.9c-6.6-6.6-17.3-6.6-23.8 0-6.6 6.6-6.6 17.3 0 23.8l24.9 24.9h-35.2c-9.3 0-16.9 7.5-16.9 16.9s7.5 16.9 16.9 16.9h35.2L487 903.4c-6.6 6.6-6.6 17.3 0 23.8 3.3 3.3 7.6 4.9 11.9 4.9s8.6-1.6 11.9-4.9l24.9-24.9v35.2c0 9.3 7.5 16.9 16.9 16.9s16.9-7.5 16.9-16.9v-35.2l24.9 24.9c3.3 3.3 7.6 4.9 11.9 4.9 4.3 0 8.6-1.6 11.9-4.9 6.6-6.6 6.6-17.3 0-23.8l-24.9-24.9h35.2c9.3 0 16.9-7.5 16.9-16.9s-7.7-16.7-17-16.7z m91.2-175.8h-35.2l24.9-24.9c6.6-6.6 6.6-17.3 0-23.8-6.6-6.6-17.3-6.6-23.8 0l-24.9 24.9v-35.2c0-9.3-7.5-16.9-16.9-16.9s-16.9 7.5-16.9 16.9v35.2L602 620.4c-6.6-6.6-17.3-6.6-23.8 0-6.6 6.6-6.6 17.3 0 23.8l24.9 24.9h-35.2c-9.3 0-16.9 7.5-16.9 16.9s7.5 16.9 16.9 16.9H603l-24.9 24.9c-6.6 6.6-6.6 17.3 0 23.8 3.3 3.3 7.6 4.9 11.9 4.9 4.3 0 8.6-1.6 11.9-4.9l24.9-24.9v35.2c0 9.3 7.5 16.9 16.9 16.9s16.9-7.5 16.9-16.9v-35.2l24.9 24.9c3.3 3.3 7.6 4.9 11.9 4.9 4.3 0 8.6-1.6 11.9-4.9 6.6-6.6 6.6-17.3 0-23.8l-24.9-24.9h35.2c9.3 0 16.9-7.5 16.9-16.9s-7.6-16.9-16.9-16.9z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

1
src/assets/icons/baoyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M774.3 287.3c91.4 0 165.6 76.2 165.6 167.1 0 85.3-66 156.4-149.3 164.5H244.1c-93.4-13.2-160-95-160-191.5 0-90.4 62.5-166.1 146.8-186.4 27.4-99 120.9-174.7 228.5-174.7 130 0 232.1 108.7 232.1 237.2 0 3-0.5 5.6-0.5 9.1 24.4-14.2 52.8-25.3 83.3-25.3z" fill="#E5E5E5" /><path d="M266.2 789.6c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l37.1-76.3c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-37.1 76.3c-5.5 11.3-16.9 17.9-28.6 17.9z m0 168.1c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l37.1-76.3c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-37.1 76.3c-5.5 11.3-16.9 17.9-28.6 17.9z m155.3-167c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l18.7-38.4c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-18.7 38.4c-5.5 11.3-16.8 17.9-28.6 17.9z m0 127.9c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l18.7-38.4c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-18.7 38.4c-5.5 11.3-16.8 17.9-28.6 17.9z m292.2-127.9c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l18.7-38.4c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-18.7 38.4c-5.5 11.3-16.8 17.9-28.6 17.9z m0 127.9c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l18.7-38.4c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-18.7 38.4c-5.5 11.3-16.8 17.9-28.6 17.9z m-149-129c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l37.1-76.3c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-37.1 76.3c-5.5 11.3-16.8 17.9-28.6 17.9z m0 168.1c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.3-26.7-14.7-42.5l37.1-76.3c7.7-15.8 26.7-22.3 42.5-14.7 15.8 7.7 22.3 26.7 14.7 42.5l-37.1 76.3c-5.5 11.3-16.8 17.9-28.6 17.9z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

1
src/assets/icons/dabaoyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M771.7 289.5c90.5 0 163.9 75.4 163.9 165.4 0 84.5-65.4 154.9-147.8 162.9h-541c-92.5-13.1-158.4-94-158.4-189.6 0-89.5 61.8-164.4 145.3-184.5 27.2-98 119.7-173 226.3-173 128.7 0 229.8 107.6 229.8 234.8 0 3-0.5 5.5-0.5 9.1 24.1-14 52.2-25.1 82.4-25.1z" fill="#E5E5E5" /><path d="M361.5 786.8c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42L370 666c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.8 75.6c-5.3 11.2-16.5 17.7-28.2 17.7z m0 166.4c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.8-75.6c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.8 75.6c-5.4 11.2-16.6 17.7-28.3 17.7z m128.6-165.3c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7z m0 126.6c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7zM238.6 787.9c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7z m0 126.6c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7z m503.1-126.6c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7z m0 126.6c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l18.5-38c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-18.5 38c-5.4 11.2-16.6 17.7-28.3 17.7zM619.4 786.8c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42L628 666c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.8 75.6c-5.5 11.2-16.7 17.7-28.3 17.7z m0 166.4c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.8-75.6c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.8 75.6c-5.5 11.2-16.7 17.7-28.3 17.7z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/icons/daxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M761.5 283.8c86.9 0 157.5 72.5 157.5 158.9 0 81.2-62.8 148.8-142 156.5H257.2C168.3 586.6 105 508.9 105 417.1c0-86 59.4-158 139.6-177.3 26.1-94.2 115-166.2 217.4-166.2 123.7 0 220.8 103.4 220.8 225.6 0 2.9-0.5 5.3-0.5 8.7 23.2-13.5 50.2-24.1 79.2-24.1z" fill="#E5E5E5" /><path d="M583.4 827.2h-39.5l28-28c7.4-7.4 7.4-19.4 0-26.8-7.4-7.4-19.4-7.4-26.8 0l-28 28v-39.5c0-10.5-8.5-19-19-19s-19 8.5-19 19v39.5l-28-28c-7.4-7.4-19.4-7.4-26.8 0-7.4 7.4-7.4 19.4 0 26.8l28 28h-39.5c-10.5 0-19 8.5-19 19s8.5 19 19 19h39.5l-28 28c-7.4 7.4-7.4 19.4 0 26.8 3.7 3.7 8.6 5.6 13.4 5.6s9.7-1.9 13.4-5.6l28-28v39.5c0 10.5 8.5 19 19 19s19-8.5 19-19V892l28 28c3.7 3.7 8.6 5.6 13.4 5.6s9.7-1.9 13.4-5.6c7.4-7.4 7.4-19.4 0-26.8l-28-28h39.5c10.5 0 19-8.5 19-19s-8.5-19-19-19z m-171.2-95.9c0-10.5-8.5-19-19-19h-39.5l28-28c7.4-7.4 7.4-19.4 0-26.8-7.4-7.4-19.4-7.4-26.8 0l-28 28V646c0-10.5-8.5-19-19-19s-19 8.5-19 19v39.5l-28-28c-7.4-7.4-19.4-7.4-26.8 0-7.4 7.4-7.4 19.4 0 26.8l28 28h-39.5c-10.5 0-19 8.5-19 19s8.5 19 19 19h39.5l-28 28c-7.4 7.4-7.4 19.4 0 26.8 3.7 3.7 8.6 5.6 13.4 5.6s9.7-1.9 13.4-5.6l28-28v39.5c0 10.5 8.5 19 19 19s19-8.5 19-19V777l28 28c3.7 3.7 8.6 5.6 13.4 5.6s9.7-1.9 13.4-5.6c7.4-7.4 7.4-19.4 0-26.8l-28-28h39.5c10.5 0 19-8.4 19-18.9z m360.9-19h-39.5l28-28c7.4-7.4 7.4-19.4 0-26.8-7.4-7.4-19.4-7.4-26.8 0l-28 28V646c0-10.5-8.5-19-19-19s-19 8.5-19 19v39.5l-28-28c-7.4-7.4-19.4-7.4-26.8 0-7.4 7.4-7.4 19.4 0 26.8l28 28h-39.5c-10.5 0-19 8.5-19 19s8.5 19 19 19H642l-28 28c-7.4 7.4-7.4 19.4 0 26.8 3.7 3.7 8.6 5.6 13.4 5.6s9.7-1.9 13.4-5.6l28-28v39.5c0 10.5 8.5 19 19 19s19-8.5 19-19V777l28 28c3.7 3.7 8.6 5.6 13.4 5.6 4.8 0 9.7-1.9 13.4-5.6 7.4-7.4 7.4-19.4 0-26.8l-28-28h39.5c10.5 0 19-8.5 19-19 0-10.4-8.5-18.9-19-18.9z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

1
src/assets/icons/dayu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M775.3 286.4c91.8 0 166.2 76.5 166.2 167.7 0 85.6-66.3 157-149.9 165.2H243.1C149.3 606.1 82.5 524 82.5 427.1c0-90.7 62.7-166.7 147.3-187.1 27.5-99.4 121.3-175.4 229.4-175.4 130.5 0 233 109.1 233 238.1 0 3.1-0.5 5.6-0.5 9.2 24.5-14.3 53-25.5 83.6-25.5z" fill="#E5E5E5" /><path d="M318 790.6c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l37.3-76.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-37.3 76.6c-5.5 11.3-16.9 17.9-28.7 17.9z m0 168.7c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l37.3-76.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-37.3 76.6c-5.5 11.3-16.9 17.9-28.7 17.9z m168.7-167.6c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l18.8-38.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-18.8 38.6c-5.6 11.3-16.9 17.9-28.7 17.9z m0 128.4c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l18.8-38.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-18.8 38.6c-5.6 11.3-16.9 17.9-28.7 17.9z m156.5-129.5c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l37.3-76.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-37.3 76.6c-5.6 11.3-16.9 17.9-28.7 17.9z m0 168.7c-4.7 0-9.4-1-13.9-3.2-15.8-7.7-22.4-26.8-14.7-42.6l37.3-76.6c7.7-15.8 26.8-22.4 42.6-14.7 15.8 7.7 22.4 26.8 14.7 42.6l-37.3 76.6c-5.6 11.3-16.9 17.9-28.7 17.9z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/assets/icons/dongyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M281.2 781.7c-4.6 0-9.2-1-13.6-3.1-15.5-7.5-22-25.9-14.4-41.2l36.5-74.2c7.6-15.3 26.3-21.7 41.8-14.2 15.5 7.5 22 25.9 14.4 41.2l-36.5 74.2c-5.5 10.9-16.6 17.3-28.2 17.3z m0 163.3c-4.6 0-9.2-1-13.6-3.1-15.5-7.5-22-25.9-14.4-41.2l36.5-74.2c7.6-15.3 26.3-21.7 41.8-14.2 15.5 7.5 22 25.9 14.4 41.2l-36.5 74.2c-5.5 10.9-16.6 17.3-28.2 17.3zM675 781.7c-4.6 0-9.2-1-13.6-3.1-15.5-7.5-22-25.9-14.4-41.2l36.5-74.2c7.6-15.3 26.3-21.7 41.8-14.2 15.5 7.5 22 25.9 14.4 41.2l-36.5 74.2c-5.5 10.9-16.6 17.3-28.2 17.3z m0 163.3c-4.6 0-9.2-1-13.6-3.1-15.5-7.5-22-25.9-14.4-41.2l36.5-74.2c7.6-15.3 26.3-21.7 41.8-14.2 15.5 7.5 22 25.9 14.4 41.2l-36.5 74.2c-5.5 10.9-16.6 17.3-28.2 17.3z" fill="#B3E2FF" /><path d="M770.1 293.7c90 0 162.9 74 162.9 162.3 0 82.9-65 152-146.9 159.9H248.4c-92-12.8-157.4-92.3-157.4-186 0-87.8 61.5-161.4 144.4-181.1C262.4 152.5 354.3 79 460.3 79c127.9 0 228.4 105.6 228.4 230.4 0 3-0.5 5.4-0.5 8.9 24-13.8 51.9-24.6 81.9-24.6z" fill="#E5E5E5" /><path d="M458.9 642.3h81.3v290.1h-81.3z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/icons/duoyun-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M936.9 407.6h-43.2c-17.9 0-32.7 14.3-32.7 32.7 0 18.4 14.7 32.7 32.7 32.7h43.2c17.9 0 32.7-14.3 32.7-32.7 0-18.4-14.7-32.7-32.7-32.7z m-437.3-97.5c12.4 12.4 33.6 12.4 46 0s12.4-33.1 0-46l-30.8-30.4c-12.4-12.4-33.6-12.4-46 0-12.4 12.4-12.4 33.1 0 45.5 0 0.1 30.8 30.9 30.8 30.9zM884 234.2c-12.4-12.4-33.6-12.4-46 0l-30.8 30.4c-12.4 12.4-12.4 33.1 0 46 12.4 12 33.1 12 46-0.5l30.8-30.4c12.5-12.8 12.5-33.1 0-45.5z m-207.8 22.1c17.9 0 32.7-14.3 32.7-32.7v-43.2c0-17.9-14.7-32.7-32.7-32.7s-32.7 14.3-32.7 32.7v43.2c0 18.4 14.7 32.7 32.7 32.7z" fill="#FFCD00" /><path d="M679.4 575.9c82.8 0 149.9 69 149.9 151.3 0 77.3-59.8 141.6-135.2 149H199.3c-84.6-12-144.9-86-144.9-173.4 0-81.9 56.6-150.4 132.9-168.8 24.8-89.7 109.5-158.2 206.9-158.2 117.7 0 210.2 98.4 210.2 214.8 0 2.8-0.5 5.1-0.5 8.3 22.2-12.9 47.9-23 75.5-23z" fill="#E5E5E5" /><path d="M647.3 519.8c8.9-1.3 17.3-2.1 25.8-2.1 36 0 69.4 10.2 98.2 27.9 30-27.5 49.1-66.4 49.1-110.8 0-82.5-66.8-148.9-148.9-148.9-58.8 0-110 34.3-133.7 84.2 53.3 32.9 93.5 86.6 109.5 149.7z" fill="#FFCD00" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/icons/duoyun-wanjian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M693.3 558.7c86.3 0 156.4 71.9 156.4 157.8 0 80.6-62.4 147.7-141 155.4H192.6C104.3 859.4 41.5 782.2 41.5 691c0-85.4 59-156.8 138.6-176C206 421.5 294.3 350 396 350c122.8 0 219.2 102.6 219.2 224 0 2.9-0.5 5.3-0.5 8.6 23-13.4 49.8-23.9 78.6-23.9z" fill="#E5E5E5" /><path d="M396 350c122.8 0 219.2 102.6 219.2 224 0 2.9-0.5 5.3-0.5 8.6 23-13.4 49.9-24 78.7-24 86.3 0 156.4 71.9 156.4 157.8 0 80.6-62.4 147.7-141 155.4H192.6C104.3 859.4 41.5 782.2 41.5 691c0-85.4 59-156.8 138.6-176C206 421.5 294.3 350 396 350" fill="#E5E5E5" /><path d="M851.8 439.6c-122.7 0-222.2-99.5-222.2-222.2 0-22.7 3.4-44.6 9.7-65.2-67.5 40.2-112.7 113.8-112.7 198 0 0.8 0.1 1.6 0.1 2.3 62.2 38.3 107.1 102.9 119.6 178.7 15.9-4.7 31.6-7.1 47.1-7.1 48.2 0 92.2 18.1 125.9 47.9 82.2-23 145.8-90.5 163.3-174.9-36.8 26.7-81.9 42.5-130.8 42.5z" fill="#FFCD00" /></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/icons/fuchen-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M124.7 801.2h774.6V877H124.7zM474.8 490.2a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM474.8 300.6a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM474.8 684.4a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM653.6 381.9a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM653.6 192.3a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM653.6 576.1a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM279.8 381.9a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM279.8 192.3a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0zM279.8 576.1a45.3 45.3 0 1 0 90.6 0 45.3 45.3 0 1 0-90.6 0z" /></svg>

After

Width:  |  Height:  |  Size: 853 B

1
src/assets/icons/leizhenyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M317.4 656.5c-16.2-7.9-35.7-1.1-43.5 15l-38.1 78.2c-7.9 16.2-1.1 35.7 15 43.5 4.6 2.2 9.4 3.3 14.2 3.3 12.1 0 23.7-6.7 29.3-18.3l38.1-78.2c7.9-16.2 1.1-35.7-15-43.5z m0 172.3c-16.2-7.9-35.7-1.1-43.5 15L235.8 922c-7.9 16.2-1.1 35.7 15 43.5 4.6 2.2 9.4 3.3 14.2 3.3 12.1 0 23.7-6.7 29.3-18.3l38.1-78.2c7.9-16.2 1.1-35.7-15-43.5z m343.7-35.5c4.6 2.2 9.4 3.3 14.2 3.3 12.1 0 23.7-6.7 29.3-18.3l38.1-78.2c7.9-16.2 1.1-35.7-15-43.5-16.2-7.9-35.7-1.1-43.5 15L646 749.7c-7.8 16.2-1.1 35.7 15.1 43.6z m66.5 35.5c-16.2-7.9-35.7-1.1-43.5 15L646 922.1c-7.9 16.2-1.1 35.7 15 43.5 4.6 2.2 9.4 3.3 14.2 3.3 12.1 0 23.7-6.7 29.3-18.3l38.1-78.2c7.9-16.3 1.2-35.8-15-43.6z" fill="#B3E2FF" /><path d="M780.9 281.6c93.7 0 169.7 78.1 169.7 171.3 0 87.5-67.7 160.4-153.1 168.7H237.4c-95.8-13.5-164-97.4-164-196.3 0-92.7 64-170.3 150.5-191.1 28-101.5 123.8-179.1 234.2-179.1C591.4 55.1 696 166.5 696 298.2c0 3.1-0.5 5.7-0.5 9.4 25-14.5 54.2-26 85.4-26z" fill="#E5E5E5" /><path d="M489.9 677.2h-84.1c-11 0-18.6-9.7-14.6-18.7L480.5 450c2.3-5.4 8.1-8.9 14.6-8.9h71.4c11.1 0 18.7 9.9 14.5 19l-54.4 120.5h91.6c13.5 0 20.7 14 11.8 22.9L463.4 859.6c-10.9 11-31.2 1.5-26.9-12.6l53.4-169.8z" fill="#FFCD00" /></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
src/assets/icons/leizhenyujiabingbao.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M782.8 280c94.4 0 170.9 78.6 170.9 172.5 0 88.1-68.2 161.5-154.1 169.9H235.4c-96.5-13.6-165.2-98-165.2-197.7 0-93.3 64.5-171.4 151.5-192.4 28.4-102.2 124.9-180.4 236-180.4 134.2 0 239.6 112.2 239.6 244.8 0 3.1-0.5 5.8-0.5 9.4 25.2-14.6 54.5-26.1 86-26.1z" fill="#E5E5E5" /><path d="M485.4 503.2h-76.3c-10 0-16.8-8.8-13.3-17l81-189.2c2.1-4.9 7.4-8.1 13.3-8.1h64.8c10.1 0 17 9 13.2 17.2l-49.4 109.3h83.1c12.2 0 18.7 12.7 10.7 20.8L461.4 668.7c-9.9 9.9-28.3 1.3-24.4-11.5l48.4-154z" fill="#FFCD00" /><path d="M322.6 657.5c-16.3-7.9-35.9-1.1-43.8 15.1l-38.3 78.8c-7.9 16.3-1.1 35.9 15.1 43.8 4.6 2.2 9.5 3.3 14.3 3.3 12.2 0 23.8-6.8 29.5-18.4l38.3-78.8c7.9-16.3 1.1-35.9-15.1-43.8z m0 173.5c-16.3-7.9-35.9-1.1-43.8 15.1l-38.3 78.8c-7.9 16.3-1.1 35.9 15.1 43.8 4.6 2.2 9.5 3.3 14.3 3.3 12.2 0 23.8-6.8 29.5-18.4l38.3-78.8c7.9-16.3 1.1-35.9-15.1-43.8z m346.1-35.8c4.6 2.2 9.5 3.3 14.3 3.3 12.2 0 23.8-6.8 29.5-18.4l38.3-78.8c7.9-16.3 1.1-35.9-15.1-43.8-16.3-7.9-35.9-1.1-43.8 15.1l-38.3 78.8c-8 16.3-1.2 35.9 15.1 43.8z m67 35.8c-16.3-7.9-35.9-1.1-43.8 15.1l-38.3 78.8c-7.9 16.3-1.1 35.9 15.1 43.8 4.6 2.2 9.5 3.3 14.3 3.3 12.2 0 23.8-6.8 29.5-18.4l38.3-78.8c7.9-16.3 1.2-35.9-15.1-43.8zM438.069 877.538a75.4 75.4 0 1 0 106.63-106.634 75.4 75.4 0 1 0-106.63 106.634z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

1
src/assets/icons/qiangshachenbao.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M773.3 535.6H149.1c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h624.2c44.4 0 80.5-36.1 80.5-80.5 0-29.7-16.3-56.9-42.4-71-12.8-6.9-17.6-22.8-10.7-35.6 6.9-12.8 22.8-17.6 35.6-10.7 43.2 23.3 70.1 68.2 70.1 117.3 0 73.3-59.7 133.1-133.1 133.1z" /><path fill="#333333" d="M630.7 363.1H143.9c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h486.8c29.4 0 53.3-23.9 53.3-53.3s-23.9-53.3-53.3-53.3c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3c58.4 0 105.9 47.5 105.9 105.9s-47.5 105.9-105.9 105.9z" /><path fill="#333333" d="M464.8 240a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM336.2 240a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM207.6 240a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM754.6 872.8c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3c29.4 0 53.3-23.9 53.3-53.3s-23.9-53.3-53.3-53.3H154.4c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h600.2c58.4 0 105.9 47.5 105.9 105.9 0 58.4-47.5 105.9-105.9 105.9z" /><path fill="#333333" d="M588.7 794.5a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM460.1 794.5a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM331.4 794.5a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM203.1 794.5a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM588.7 605.2a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM460.1 605.2a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM331.4 605.2a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM203.1 605.2a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM588.7 415.9a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM460.1 415.9a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM331.4 415.9a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0zM203.1 415.9a32.9 32.9 0 1 0 65.8 0 32.9 32.9 0 1 0-65.8 0z" /></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

1
src/assets/icons/qing-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M897.7 544.7H756.2c-15 0-27.2-12.2-27.2-27.2v-10.9c0-15 12.2-27.2 27.2-27.2h141.5c15 0 27.2 12.2 27.2 27.2v10.9c0 15-12.2 27.2-27.2 27.2zM717.6 358.1c-10.6 10.6-27.9 10.6-38.5 0l-7.7-7.7c-10.6-10.6-10.6-27.9 0-38.5l100.1-100.1c10.6-10.6 27.9-10.6 38.5 0l7.7 7.7c10.6 10.6 10.6 27.9 0 38.5L717.6 358.1z m-199.4-52.9h-10.9c-15 0-27.2-12.2-27.2-27.2V136.4c0-15 12.2-27.2 27.2-27.2h10.9c15 0 27.2 12.2 27.2 27.2V278c0 15-12.1 27.2-27.2 27.2z m-172.4 52.9c-10.7 10.6-27.9 10.6-38.6 0L206.8 258c-10.6-10.6-10.6-27.9 0-38.5l7.7-7.7c10.7-10.6 27.9-10.6 38.6 0l100.4 100.1c10.6 10.6 10.7 27.8 0.1 38.4l-0.1 0.1-7.7 7.7z m-50.1 148.5v10.9c0 15-12.2 27.2-27.2 27.2H126.4c-15 0.1-27.3-12.1-27.3-27.1v-11c0-15 12.2-27.2 27.2-27.2h142.1c15.1-0.1 27.3 12 27.3 27.2 0-0.1 0-0.1 0 0z m11.5 159.3c10.7-10.6 27.9-10.6 38.6 0l7.7 7.7c10.6 10.6 10.7 27.8 0.1 38.4l-0.1 0.1-100.4 100.1c-10.7 10.6-27.9 10.6-38.6 0l-7.7-7.7c-10.6-10.6-10.7-27.8-0.1-38.4l0.1-0.1 100.4-100.1z m200.1 52.9h11.1c15 0 27.2 12.2 27.2 27.2v141.5c0 15-12.2 27.2-27.2 27.2h-11.1c-15 0-27.2-12.2-27.2-27.2V746c0-15 12.2-27.2 27.2-27.2z m172.5-52.9c10.7-10.6 27.9-10.6 38.6 0L818.8 766c10.6 10.6 10.6 27.9 0 38.5l-7.7 7.7c-10.7 10.6-27.9 10.6-38.6 0L672 712.1c-10.6-10.6-10.7-27.8-0.1-38.4l0.1-0.1 7.8-7.7zM343.3 512c0 93.2 75.5 168.8 168.7 168.8 93.2 0 168.8-75.5 168.8-168.7v-0.2c0-93.2-75.5-168.7-168.7-168.8S343.3 418.7 343.3 512c0-0.1 0 0 0 0z" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

1
src/assets/icons/qing-wanjian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M871.4 526c-51.8 95.7-153.1 160.8-269.6 160.8-169.2 0-306.3-137.2-306.3-306.3 0-84.7 34.4-161.4 90-216.8C249.4 215 152.6 346.4 152.6 500.4c0 198.8 161.2 359.9 360 359.9 190.1 0.1 345.7-147.4 358.8-334.3z" /></svg>

After

Width:  |  Height:  |  Size: 496 B

1
src/assets/icons/shachenbao-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M762.7 538.8H139.9c-16.5 0-29.9-13.4-29.9-29.9s13.4-29.9 29.9-29.9h622.7c50.4 0 91.5-41 91.5-91.5 0-33.7-18.5-64.6-48.2-80.6-14.5-7.8-20-25.9-12.1-40.5 7.8-14.5 25.9-20 40.5-12.1 49.1 26.4 79.7 77.5 79.7 133.3-0.1 83.3-67.9 151.2-151.3 151.2z" /><path fill="#333333" d="M600.6 390.6H139.9c-16.5 0-29.9-13.4-29.9-29.9s13.4-29.9 29.9-29.9h460.7c33.4 0 60.6-27.2 60.6-60.6 0-33.4-27.2-60.6-60.6-60.6-16.5 0-29.9-13.4-29.9-29.9s13.4-29.9 29.9-29.9c66.4 0 120.4 54 120.4 120.4s-54 120.4-120.4 120.4z" /><path fill="#333333" d="M412.2 226.8a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM266 226.8a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM119.9 226.8a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM741.4 874.2c-16.5 0-29.9-13.4-29.9-29.9s13.4-29.9 29.9-29.9c33.4 0 60.6-27.2 60.6-60.6 0-33.4-27.2-60.6-60.6-60.6H139.9c-16.5 0-29.9-13.4-29.9-29.9s13.4-29.9 29.9-29.9h601.4c66.4 0 120.4 54 120.4 120.4s-54 120.4-120.3 120.4z" /><path fill="#333333" d="M553 797.2a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM406.8 797.2a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM260.6 797.2a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0zM114.8 797.2a37.3 37.3 0 1 0 74.6 0 37.3 37.3 0 1 0-74.6 0z" /></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
src/assets/icons/tedabaoyu.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M771.3 289.9c90.4 0 163.6 75.3 163.6 165.1 0 84.3-65.3 154.6-147.6 162.6H247.2c-92.4-13.1-158.1-93.9-158.1-189.2 0-89.4 61.7-164.1 145.1-184.2C261.3 146.3 353.6 71.5 460 71.5c128.5 0 229.4 107.4 229.4 234.4 0 3-0.5 5.5-0.5 9 24.1-14 52.3-25 82.4-25z" fill="#E5E5E5" /><path d="M349.2 786.3c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.6 17.7-28.3 17.7z m0 166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.6 17.7-28.3 17.7z m257.4-166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5s22.1 26.4 14.5 42l-36.7 75.4c-5.4 11.2-16.6 17.7-28.3 17.7z m0 166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.7 75.4c-5.4 11.2-16.6 17.7-28.3 17.7zM481.1 786.3c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5s22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.7 17.7-28.3 17.7z m0 166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.7 17.7-28.3 17.7zM223.7 786.3c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42L252 768.6c-5.5 11.2-16.7 17.7-28.3 17.7z m0 166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42L252 934.8c-5.5 11.2-16.7 17.7-28.3 17.7z m514.8-166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5s22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.7 17.7-28.3 17.7z m0 166.2c-4.6 0-9.3-1-13.7-3.2-15.6-7.6-22.1-26.4-14.5-42l36.7-75.4c7.6-15.6 26.4-22.1 42-14.5 15.6 7.6 22.1 26.4 14.5 42l-36.7 75.4c-5.5 11.2-16.7 17.7-28.3 17.7z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/icons/warning_lights.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="26" height="26" viewBox="0 0 26 26"><defs><clipPath id="master_svg0_7_0532/1_12058"><rect x="0" y="0" width="26" height="26" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_0532/1_12058)"><g><path d="M5.416748046875,14.08333C5.416748046875,9.89517,8.811918046875,6.5,13.000078046875,6.5C17.188248046875,6.5,20.583448046875,9.89517,20.583448046875,14.08333L20.583448046875,22.2083C20.583448046875,22.8066,20.098348046875,23.2917,19.500048046875,23.2917L6.500078046875,23.2917C5.901772046875,23.2917,5.416747550964,22.8066,5.416748046875,22.2083L5.416748046875,14.08333ZM13.000078046875,8.66667C10.008458046874999,8.66667,7.583418046875,11.091709999999999,7.583418046875,14.08333L7.583418046875,21.125L18.416748046875,21.125L18.416748046875,14.08333C18.416748046875,11.091709999999999,15.991748046875,8.66667,13.000078046875,8.66667Z" fill-opacity="1"/></g><g><path d="M13,7.58343505828125C9.41037,7.58343505828125,6.5,10.493812988281249,6.5,14.083432988281249L6.5,22.20841298828125L19.5,22.20841298828125L19.5,14.083432988281249C19.5,10.493812988281249,16.5896,7.58343505828125,13,7.58343505828125ZM13.28825,14.08344298828125L14.48641,12.086852988281251L12.628499999999999,10.97210298828125L9.46191,16.25010298828125L12.71191,16.25010298828125L11.51375,18.24671298828125L13.37166,19.361412988281252L16.5382,14.08344298828125L13.28825,14.08344298828125Z" fill-rule="evenodd" fill-opacity="1"/></g><g><path d="M2.708251953125,21.125L23.291551953125,21.125L23.291551953125,23.2917L2.708251953125,23.2917L2.708251953125,21.125ZM14.083251953125,1.625L14.083251953125,4.875L11.916581953125,4.875L11.916581953125,1.625L14.083251953125,1.625ZM22.115051953125,5.95833L19.817351953125,8.25662L18.284951953125002,6.72425L20.583251953125,4.4265L22.115051953125,5.95833ZM5.416581953125,4.4265L7.714871953125,6.72425L6.182501953125,8.25662L3.884751953125,5.95833L5.416581953125,4.4265Z" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

1
src/assets/icons/wu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M151.7 181.3h722.1v116.1H151.7z m-0.7 272.6h722.1V570H151z m-0.7 272.7h722.1v116.1H150.3z" /></svg>

After

Width:  |  Height:  |  Size: 382 B

1
src/assets/icons/xiaoxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M773.6 289.2c91.2 0 165.1 76 165.1 166.6 0 85.1-65.8 156-148.9 164.1h-545C151.6 606.7 85.3 525.2 85.3 429c0-90.2 62.3-165.6 146.4-185.9C259 144.3 352.2 68.9 459.6 68.9 589.2 68.9 691 177.3 691 305.4c0 3-0.5 5.6-0.5 9.1 24.3-14.2 52.7-25.3 83.1-25.3z" fill="#E5E5E5" /><path d="M635.4 776.8h-57.2l40.5-40.5c10.7-10.7 10.7-28.1 0-38.8-10.7-10.7-28.1-10.7-38.8 0L539.4 738v-57.2c0-15.2-12.3-27.4-27.4-27.4s-27.4 12.3-27.4 27.4V738l-40.5-40.5c-10.7-10.7-28.1-10.7-38.8 0-10.7 10.7-10.7 28.1 0 38.8l40.5 40.5h-57.2c-15.2 0-27.4 12.3-27.4 27.4 0 15.2 12.3 27.4 27.4 27.4h57.2l-40.5 40.5c-10.7 10.7-10.7 28.1 0 38.8 5.4 5.4 12.4 8 19.4 8 7 0 14-2.7 19.4-8l40.5-40.5v57.2c0 15.2 12.3 27.4 27.4 27.4s27.4-12.3 27.4-27.4v-57.2l40.5 40.5c5.4 5.4 12.4 8 19.4 8 7 0 14-2.7 19.4-8 10.7-10.7 10.7-28.1 0-38.8l-40.5-40.5h57.2c15.2 0 27.4-12.3 27.4-27.4 0.1-15.1-12.2-27.4-27.4-27.4z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/icons/xiaoyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M766.9 293.6c88.8 0 160.9 74 160.9 162.4 0 82.9-64.2 152-145.1 159.9H251.6c-90.8-12.8-155.5-92.3-155.5-186.1 0-87.9 60.7-161.4 142.6-181.1 26.7-96.2 117.5-169.8 222.1-169.8 126.4 0 225.6 105.6 225.6 230.5 0 3-0.5 5.4-0.5 8.9 23.8-13.8 51.4-24.7 81-24.7z" fill="#E5E5E5" /><path d="M493.9 781.7c-4.5 0-9.1-1-13.5-3.1-15.3-7.5-21.7-25.9-14.3-41.3l36.1-74.2c7.5-15.3 25.9-21.7 41.3-14.3s21.7 25.9 14.3 41.3l-36.1 74.2c-5.3 11.1-16.3 17.4-27.8 17.4z m0 163.4c-4.5 0-9.1-1-13.5-3.1-15.3-7.5-21.7-25.9-14.3-41.3l36.1-74.2c7.5-15.3 25.9-21.7 41.3-14.3s21.7 25.9 14.3 41.3l-36.1 74.2c-5.3 11-16.3 17.4-27.8 17.4z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 896 B

1
src/assets/icons/yangsha-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M171.8 554.6h-57.2c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h57.2c14.5 0 26.3 11.8 26.3 26.3 0 14.6-11.8 26.3-26.3 26.3z m400.9 0l-313.1-0.6c-14.5 0-26.3-11.8-26.3-26.4 0-14.5 11.8-26.3 26.3-26.3h0.1l313 0.6c34.7 0 62.9-36.2 62.9-80.6 0-30.6-13.4-58.2-35-72.1-12.2-7.9-15.7-24.2-7.9-36.4 7.9-12.2 24.2-15.7 36.4-7.9 36.5 23.5 59.1 68.1 59.1 116.3 0.1 73.7-51.7 133.4-115.5 133.4z" /><path fill="#333333" d="M453.5 403.1H114.6c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h338.9c21.8 0 40.3-24.5 40.3-53.4s-18.4-53.4-40.3-53.4c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3c51.2 0 92.9 47.6 92.9 106s-41.7 106-92.9 106zM747.6 227.4a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM747.6 415.9a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM747.6 604.4a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM747.6 792.9a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM863.4 326.4a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM863.4 514.9a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM863.4 703.5a36.2 36.2 0 1 0 72.4 0 36.2 36.2 0 1 0-72.4 0zM552.6 833h-438c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h438c21.8 0 40.3-24.5 40.3-53.4 0-18.7-7.3-35.7-19.6-45.6-11.3-9.1-13.1-25.7-3.9-37 9.1-11.3 25.7-13.1 37-3.9 24.5 19.8 39.1 52.2 39.1 86.6 0 58.3-41.6 105.9-92.9 105.9z" /><path fill="#333333" d="M475.1 696.1H114.6c-14.5 0-26.3-11.8-26.3-26.3s11.8-26.3 26.3-26.3h360.5c14.5 0 26.3 11.8 26.3 26.3 0 14.6-11.8 26.3-26.3 26.3z" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

1
src/assets/icons/yin-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#333333" d="M791.8 488.2c97.5 0 176.6 81.3 176.6 178.3 0 91-70.4 166.9-159.3 175.5h-583C126.5 827.9 55.5 740.7 55.5 637.7c0-96.4 66.6-177.2 156.6-198.8 29.3-105.7 129-186.4 243.8-186.4 138.7 0 247.6 115.9 247.6 253 0 3.3-0.5 6-0.5 9.8 26-15.2 56.3-27.1 88.8-27.1z" /></svg>

After

Width:  |  Height:  |  Size: 544 B

1
src/assets/icons/yujiaxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M770.7 290.4c90.2 0 163.3 75.1 163.3 164.8 0 84.1-65.1 154.3-147.3 162.3H247.8C155.6 604.4 90 523.8 90 428.6c0-89.2 61.6-163.8 144.8-183.8 27-97.7 119.2-172.3 225.4-172.3 128.2 0 228.9 107.2 228.9 233.9 0 3-0.5 5.5-0.5 9 24-14 52.1-25 82.1-25z" fill="#E5E5E5" /><path d="M381.1 651c-15.6-7.6-34.3-1.1-41.9 14.5l-36.6 75.3c-7.6 15.6-1.1 34.3 14.5 41.9 4.4 2.1 9.1 3.2 13.7 3.2 11.6 0 22.8-6.5 28.2-17.6l36.6-75.3c7.6-15.7 1.1-34.5-14.5-42z m0 165.8c-15.6-7.6-34.3-1.1-41.9 14.5l-36.6 75.3c-7.6 15.6-1.1 34.3 14.5 41.9 4.4 2.1 9.1 3.2 13.7 3.2 11.6 0 22.8-6.5 28.2-17.6l36.6-75.3c7.6-15.7 1.1-34.5-14.5-42z m360.6-44.2h-56.6l40-40c10.6-10.6 10.6-27.8 0-38.4-10.6-10.6-27.8-10.6-38.4 0l-40 40v-56.6c0-15-12.1-27.1-27.1-27.1s-27.1 12.1-27.1 27.1v56.6l-40-40c-10.6-10.6-27.8-10.6-38.4 0-10.6 10.6-10.6 27.8 0 38.4l40 40h-56.6c-15 0-27.1 12.1-27.1 27.1s12.1 27.1 27.1 27.1h56.6l-40 40c-10.6 10.6-10.6 27.8 0 38.4 5.3 5.3 12.2 7.9 19.2 7.9s13.9-2.6 19.2-7.9l40-40v56.6c0 15 12.1 27.1 27.1 27.1s27.1-12.1 27.1-27.1v-56.6l40 40c5.3 5.3 12.2 7.9 19.2 7.9 6.9 0 13.9-2.6 19.2-7.9 10.6-10.6 10.6-27.8 0-38.4l-40-40h56.6c15 0 27.1-12.1 27.1-27.1s-12.1-27.1-27.1-27.1z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
src/assets/icons/zhenxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M909.9 287.2H873c-15.3 0-27.9 12.2-27.9 27.9S857.7 343 873 343h36.9c15.3 0 27.9-12.2 27.9-27.9s-12.6-27.9-27.9-27.9zM575.5 164.6l-26.3-25.9c-10.6-10.6-28.7-10.6-39.3 0-10.6 10.6-10.6 28.3 0 38.9l26.3 26.3c10.6 10.6 28.7 10.6 39.3 0 10.6-10.6 10.6-28.3 0-39.3z m289.2-25.5c-10.6-10.6-28.7-10.6-39.3 0L799.1 165c-10.6 10.6-10.6 28.3 0 39.3 10.6 10.2 28.3 10.2 39.3-0.4l26.3-25.9c10.6-11.1 10.6-28.3 0-38.9z m-177.6 18.8c15.3 0 27.9-12.2 27.9-27.9V93.1c0-15.3-12.6-27.9-27.9-27.9-15.3 0-27.9 12.2-27.9 27.9V130c0 15.7 12.6 27.9 27.9 27.9z m-4.1 25.2c-50.2 0-94 29.3-114.2 71.9 45.5 28.2 79.9 74.1 93.6 128 20-10.3 83.8-16.1 118.6 7.1 23.2-23.2 29.2-41.8 29.2-79.7 0.1-70.5-57-127.3-127.2-127.3z" fill="#FFCD00" /><path d="M573 813.5h-46.6l33-33c8.7-8.7 8.7-22.9 0-31.6-8.7-8.7-22.9-8.7-31.6 0l-33 33v-46.6c0-12.3-10-22.3-22.3-22.3s-22.3 10-22.3 22.3v46.6l-33-33c-8.7-8.7-22.9-8.7-31.6 0-8.7 8.7-8.7 22.9 0 31.6l33 33H372c-12.3 0-22.3 10-22.3 22.3s10 22.3 22.3 22.3h46.6l-33 33c-8.7 8.7-8.7 22.9 0 31.6 4.4 4.4 10.1 6.5 15.8 6.5s11.4-2.2 15.8-6.5l33-33v46.6c0 12.3 10 22.3 22.3 22.3s22.3-10 22.3-22.3v-46.6l33 33c4.4 4.4 10.1 6.5 15.8 6.5 5.7 0 11.4-2.2 15.8-6.5 8.7-8.7 8.7-22.9 0-31.6l-33-33H573c12.3 0 22.3-10 22.3-22.3s-10-22.3-22.3-22.3z" fill="#B3E2FF" /><path d="M716.8 427.3c83.5 0 151.3 59.4 151.3 130.3 0 66.6-60.3 122-136.4 128.4H232.4C147 675.7 86.2 612 86.2 536.7c0-70.5 57.1-129.6 134.1-145.4C245.4 314 330.8 255 429.2 255c118.8 0 212.1 84.8 212.1 185 0 2.4-0.5 4.4-0.5 7.1 22.2-11 48.2-19.8 76-19.8z" fill="#E5E5E5" /></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1
src/assets/icons/zhenxue-wanjian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M835.6 312C734.2 312 652 229.8 652 128.4c0-18.7 2.8-36.8 8-53.8-55.7 33.2-93.1 94-93.1 163.5v1.9c51.4 31.6 88.5 85 98.8 147.6 13.1-3.9 26.1-5.9 38.9-5.9 39.8 0 76.2 15 104 39.6 67.9-19 120.4-74.8 134.9-144.5-30.3 22.1-67.6 35.2-107.9 35.2z" fill="#FFCD00" /><path d="M567.2 804.2h-46.6l33-33c8.7-8.7 8.7-22.9 0-31.6-8.7-8.7-22.9-8.7-31.6 0l-33 33V726c0-12.3-10-22.3-22.3-22.3s-22.3 10-22.3 22.3v46.6l-33-33c-8.7-8.7-22.9-8.7-31.6 0-8.7 8.7-8.7 22.9 0 31.6l33 33h-46.6c-12.3 0-22.3 10-22.3 22.3s10 22.3 22.3 22.3h46.6l-33 33c-8.7 8.7-8.7 22.9 0 31.6 4.4 4.4 10.1 6.5 15.8 6.5s11.4-2.2 15.8-6.5l33-33V927c0 12.3 10 22.3 22.3 22.3s22.3-10 22.3-22.3v-46.6l33 33c4.4 4.4 10.1 6.5 15.8 6.5 5.7 0 11.4-2.2 15.8-6.5 8.7-8.7 8.7-22.9 0-31.6l-33-33h46.6c12.3 0 22.3-10 22.3-22.3s-10-22.3-22.3-22.3z" fill="#B3E2FF" /><path d="M711 418.1c83.5 0 151.2 59.4 151.2 130.3 0 66.5-60.3 122-136.4 128.3H226.7c-85.4-10.3-146.1-74.1-146.1-149.3 0-70.5 57.1-129.5 134.1-145.4 25.1-77.2 110.4-136.3 208.8-136.3 118.8 0 212 84.8 212 185 0 2.4-0.5 4.4-0.5 7.1 22.2-11 48.2-19.7 76-19.7z" fill="#E5E5E5" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/icons/zhenyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M450.2 808.1c3.9 1.9 8 2.7 12 2.7 10.4 0 20.4-5.9 25.2-15.9l32.2-67.3c6.6-13.9 0.8-30.6-13.1-37.2-13.9-6.7-30.6-0.8-37.2 13.1L437 770.9c-6.6 13.9-0.7 30.5 13.2 37.2z m56.8 30.4c-13.9-6.7-30.6-1-37.3 12.9l-32.6 67.1c-6.7 13.9-1 30.6 12.9 37.3 3.9 1.9 8.1 2.8 12.2 2.8 10.3 0 20.3-5.8 25.1-15.7l32.6-67.1c6.8-13.9 1-30.6-12.9-37.3z" fill="#B3E2FF" /><path d="M894.6 279H859c-14.7 0-26.8 11.7-26.8 26.8s12.1 26.8 26.8 26.8h35.5c14.7 0 26.8-11.7 26.8-26.8s-12-26.8-26.7-26.8z m-359.3-80.1c10.2 10.2 27.6 10.2 37.8 0 10.2-10.2 10.2-27.2 0-37.8l-25.3-24.9c-10.2-10.2-27.6-10.2-37.8 0-10.2 10.2-10.2 27.2 0 37.4l25.3 25.3z m315.8-62.4c-10.2-10.2-27.6-10.2-37.8 0l-25.3 25c-10.2 10.2-10.2 27.2 0 37.8 10.2 9.8 27.2 9.8 37.8-0.4l25.3-24.9c10.2-10.7 10.2-27.3 0-37.5z m-170.7 18.2c14.7 0 26.8-11.7 26.8-26.8V92.3c0-14.7-12.1-26.8-26.8-26.8-14.7 0-26.8 11.7-26.8 26.8v35.5c-0.1 15.1 12 26.9 26.8 26.9z m-23.7 216.4c19.2-9.9 80.6-15.5 114.1 6.8 22.3-22.3 28.1-40.2 28.1-76.7 0-67.8-54.9-122.3-122.3-122.3-48.3 0-90.4 28.2-109.8 69.2 43.6 27.1 76.7 71.2 89.9 123z" fill="#FFCD00" /><path d="M709 413.7c80.3 0 145.5 57.1 145.5 125.3 0 64-58 117.3-131.2 123.4H243.2c-82.1-9.9-140.5-71.2-140.5-143.6 0-67.8 54.9-124.6 128.9-139.8 24.1-74.3 106.2-131 200.8-131 114.2 0 203.9 81.5 203.9 177.9 0 2.3-0.4 4.2-0.4 6.9 21.3-10.7 46.3-19.1 73.1-19.1z" fill="#E5E5E5" /></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/assets/icons/zhenyu-wanjian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M822.5 303.2c-97.3 0-176.1-78.9-176.1-176.1 0-18 2.7-35.3 7.7-51.7-53.5 31.8-89.3 90.2-89.3 156.9v1.8c49.3 30.3 84.9 81.6 94.8 141.6 12.6-3.7 25.1-5.6 37.3-5.6 38.2 0 73.1 14.4 99.8 38 65.1-18.2 115.6-71.7 129.4-138.6-29.2 21.2-64.9 33.7-103.6 33.7z" fill="#FFCD00" /><path d="M456.7 801.2c-4.1 0-8.2-0.9-12.2-2.8-13.8-6.7-19.6-23.4-12.9-37.2l32.5-66.9c6.7-13.8 23.4-19.6 37.2-12.9 13.8 6.7 19.6 23.4 12.9 37.2l-32.5 66.9c-4.7 10-14.6 15.7-25 15.7z m0 147.4c-4.1 0-8.2-0.9-12.2-2.8-13.8-6.7-19.6-23.4-12.9-37.2l32.5-66.9c6.7-13.8 23.4-19.6 37.2-12.9 13.8 6.7 19.6 23.4 12.9 37.2l-32.5 66.9c-4.7 9.9-14.6 15.7-25 15.7z" fill="#B3E2FF" /><path d="M702.9 405.1c80.1 0 145.1 57 145.1 125 0 63.9-57.9 117.1-130.9 123.1h-479C156.3 643.4 98 582.2 98 510c0-67.7 54.8-124.3 128.6-139.5 24-74.1 105.9-130.7 200.3-130.7 114 0 203.4 81.3 203.4 177.5 0 2.3-0.4 4.2-0.4 6.8 21.4-10.7 46.3-19 73-19z" fill="#E5E5E5" /></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/icons/zhongxue-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M770.3 296.9c90 0 163 75 163 164.5 0 84-65 154-147 162h-538c-92-13-157.5-93.5-157.5-188.5 0-89 61.5-163.5 144.5-183.5 27-97.5 119-172 225-172 128 0 228.5 107 228.5 233.5 0 3-0.5 5.5-0.5 9 24-14 52-25 82-25z" fill="#E5E5E5" /><path d="M452.5 783.5h-51.7l36.6-36.6c9.7-9.7 9.7-25.4 0-35.1-9.7-9.7-25.4-9.7-35.1 0l-36.6 36.6v-51.7c0-13.7-11.1-24.8-24.8-24.8-13.7 0-24.8 11.1-24.8 24.8v51.7l-36.6-36.6c-9.7-9.7-25.4-9.7-35.1 0-9.7 9.7-9.7 25.4 0 35.1l36.6 36.6h-51.7c-13.7 0-24.8 11.1-24.8 24.8 0 13.7 11.1 24.8 24.8 24.8H281l-36.6 36.6c-9.7 9.7-9.7 25.4 0 35.1 4.8 4.8 11.2 7.3 17.5 7.3 6.3 0 12.7-2.4 17.5-7.3l36.6-36.6v51.7c0 13.7 11.1 24.8 24.8 24.8 13.7 0 24.8-11.1 24.8-24.8v-51.7l36.6 36.6c4.8 4.8 11.2 7.3 17.5 7.3s12.7-2.4 17.5-7.3c9.7-9.7 9.7-25.4 0-35.1L400.8 833h51.7c13.7 0 24.8-11.1 24.8-24.8-0.1-13.6-11.1-24.7-24.8-24.7z m350 0h-51.7l36.6-36.6c9.7-9.7 9.7-25.4 0-35.1-9.7-9.7-25.4-9.7-35.1 0l-36.6 36.6v-51.7c0-13.7-11.1-24.8-24.8-24.8-13.7 0-24.8 11.1-24.8 24.8v51.7l-36.6-36.6c-9.7-9.7-25.4-9.7-35.1 0-9.7 9.7-9.7 25.4 0 35.1l36.6 36.6h-51.7c-13.7 0-24.8 11.1-24.8 24.8 0 13.7 11.1 24.8 24.8 24.8H631l-36.6 36.6c-9.7 9.7-9.7 25.4 0 35.1 4.8 4.8 11.2 7.3 17.5 7.3 6.3 0 12.7-2.4 17.5-7.3l36.6-36.6v51.7c0 13.7 11.1 24.8 24.8 24.8 13.7 0 24.8-11.1 24.8-24.8v-51.7l36.6 36.6c4.8 4.8 11.2 7.3 17.5 7.3 6.3 0 12.7-2.4 17.5-7.3 9.7-9.7 9.7-25.4 0-35.1L750.8 833h51.7c13.7 0 24.8-11.1 24.8-24.8 0-13.6-11.1-24.7-24.8-24.7z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

1
src/assets/icons/zhongyu-rijian.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M775.3 286.5c91.7 0 166.2 76.5 166.2 167.7 0 85.6-66.3 157-149.9 165.1H243.1C149.3 606 82.6 524 82.6 427.1c0-90.7 62.7-166.7 147.3-187.1 27.5-99.4 121.3-175.3 229.4-175.3 130.5 0 232.9 109.1 232.9 238 0 3.1-0.5 5.6-0.5 9.2 24.4-14.2 53-25.4 83.6-25.4z" fill="#E5E5E5" /><path d="M420.3 653.4c-15.8-7.7-34.9-1.1-42.6 14.7l-37.3 76.6c-7.7 15.8-1.1 34.9 14.7 42.6 4.5 2.2 9.2 3.2 13.9 3.2 11.8 0 23.2-6.6 28.7-17.9L435 696c7.7-15.8 1.1-34.9-14.7-42.6z m0 168.7c-15.8-7.7-34.9-1.1-42.6 14.7l-37.3 76.6c-7.7 15.8-1.1 34.9 14.7 42.6 4.5 2.2 9.2 3.2 13.9 3.2 11.8 0 23.2-6.6 28.7-17.9l37.3-76.6c7.7-15.8 1.1-34.9-14.7-42.6z m157.9-34.8c4.5 2.2 9.2 3.2 13.9 3.2 11.8 0 23.2-6.6 28.7-17.9l37.3-76.6c7.7-15.8 1.1-34.9-14.7-42.6-15.8-7.7-34.9-1.1-42.6 14.7l-37.3 76.6c-7.7 15.9-1.1 34.9 14.7 42.6z m65.2 34.8c-15.8-7.7-34.9-1.1-42.6 14.7l-37.3 76.6c-7.7 15.8-1.1 34.9 14.7 42.6 4.5 2.2 9.2 3.2 13.9 3.2 11.8 0 23.2-6.6 28.7-17.9l37.3-76.6c7.7-15.8 1.1-34.9-14.7-42.6z" fill="#B3E2FF" /></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/assets/images/menu_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
src/assets/images/screen.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

BIN
src/assets/images/screen.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 KiB

BIN
src/assets/images/taps.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

BIN
src/assets/images/title-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
src/assets/images/weather/duoyun.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

1
src/main.ts

@ -22,6 +22,7 @@ import '@/styles/index.scss';
import 'element-plus/theme-chalk/dark/css-vars.css'; import 'element-plus/theme-chalk/dark/css-vars.css';
import '@/assets/iconfont/iconfont.css' import '@/assets/iconfont/iconfont.css'
import 'vxe-table/lib/style.css'; import 'vxe-table/lib/style.css';
import 'animate.css/animate.min.css';
const app = createApp(App); const app = createApp(App);
// 全局注册 自定义指令(directive) // 全局注册 自定义指令(directive)

2
src/styles/dark.scss

@ -9,6 +9,8 @@ html.dark{
--subMenuActiveText:var(--el-menu-active-color); --subMenuActiveText:var(--el-menu-active-color);
--subMenuHover: rgba(0,0,0,.2); --subMenuHover: rgba(0,0,0,.2);
--tableBg:#1d1e1f;
.navbar { .navbar {
background-color: var(--el-bg-color); background-color: var(--el-bg-color);

2
src/styles/sidebar.scss

@ -165,7 +165,7 @@
.mainContainer, .mainContainer,
.sidebarContainer { .sidebarContainer {
transition: none; // transition: none;
} }
} }
} }

2
src/styles/variables.scss

@ -20,6 +20,8 @@
--subMenuDarkBg: #1f2d3d; --subMenuDarkBg: #1f2d3d;
--subMenuDarkActiveText: #f4f4f5; --subMenuDarkActiveText: #f4f4f5;
--subMenuDarkHover: #001528; --subMenuDarkHover: #001528;
--tableBg:#020B3E;
} }

3
src/types/components.d.ts

@ -33,11 +33,8 @@ declare module '@vue/runtime-core' {
LangSelect: typeof import('./../components/LangSelect/index.vue')['default'] LangSelect: typeof import('./../components/LangSelect/index.vue')['default']
MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default'] MultiUpload: typeof import('./../components/Upload/MultiUpload.vue')['default']
NButton: typeof import('naive-ui')['NButton'] NButton: typeof import('naive-ui')['NButton']
NCard: typeof import('naive-ui')['NCard']
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
NIcon: typeof import('naive-ui')['NIcon'] NIcon: typeof import('naive-ui')['NIcon']
NMenu: typeof import('naive-ui')['NMenu'] NMenu: typeof import('naive-ui')['NMenu']
NModal: typeof import('naive-ui')['NModal']
NSpin: typeof import('naive-ui')['NSpin'] NSpin: typeof import('naive-ui')['NSpin']
NTooltip: typeof import('naive-ui')['NTooltip'] NTooltip: typeof import('naive-ui')['NTooltip']
Pagination: typeof import('./../components/Pagination/index.vue')['default'] Pagination: typeof import('./../components/Pagination/index.vue')['default']

36
src/utils/index.ts

@ -159,6 +159,42 @@ export function uniqueArrayObject(arr = [], key = 'id') {
return list; return list;
} }
/**
*
* @param {array} data
*/
export function getLastLevelNode(data: any) {
if (data.length === 0) {
return null; // 数组为空,返回null或自定义默认值
}
const lastItem = data[data.length - 1]; // 获取数组的最后一个元素
if (lastItem.children && lastItem.children.length > 0) {
return getLastLevelNode(lastItem.children); // 继续递归调用
}
return lastItem; // 返回最后一个层级
}
/**
*
* @param {array} data
*/
export function getFirstNodeLastLevel(data: any) {
if (data.length === 0) {
return null; // 数组为空,返回null或自定义默认值
}
const firstNode = data[0];
if (firstNode.children && firstNode.children.length > 0) {
return getFirstNodeLastLevel(firstNode.children);
}
return firstNode; // 返回第一个节点的最后一个层级的数据
}
/** /**
* *
*/ */

8
src/utils/useStorage.ts

@ -17,10 +17,10 @@ type StorageData = {
type StorageType = 'localStorage' | 'sessionStorage'; type StorageType = 'localStorage' | 'sessionStorage';
const getItem = (key: string, storageType: StorageType): any => { const getItem = (key: string, storageType: StorageType): any => {
debugger
try { try {
const storage = getStorage(storageType); const storage = getStorage(storageType);
const item = storage.getItem(key); const item = storage.getItem(key);
debugger
if (item) { if (item) {
return JSON.parse(item); return JSON.parse(item);
} }
@ -76,9 +76,9 @@ const initializeStorage = (storageType: StorageType): void => {
}; };
const useStorage = (storageType: StorageType) => { const useStorage = (storageType: StorageType) => {
const getUseStorage = () => { const getUseStorage = (key: string) => {
debugger getItem(key,storageType);
return computed(() => storageData.value); // return computed(() => storageData.value);
}; };
const setUseStorage = (key: string, value: any) => { const setUseStorage = (key: string, value: any) => {

4
src/views/login/index.scss

@ -92,6 +92,10 @@
} }
} }
.video {
object-fit: cover
}
.videoCover { .videoCover {
img { img {
z-index: 0; z-index: 0;

9
src/views/login/index.vue

@ -41,13 +41,13 @@
</el-button> </el-button>
</el-form> </el-form>
</div> </div>
<video :style="resizeStyle" autoplay loop muted v-on:canplay="onCanplay" v-if="settingsStore.showVideo"> <video class="video" :style="resizeStyle" autoplay loop muted v-on:canplay="onCanplay" v-if="settingsStore.showVideo">
<source src="../../assets/images/login-bg.mp4" type="video/mp4" /> <source src="../../assets/images/login-bg.mp4" type="video/mp4" />
</video> </video>
<div class="videoCover" v-if="!videoCanPlay && settingsStore.showVideo"> <div class="videoCover" v-if="!videoCanPlay && settingsStore.showVideo">
<img :style="resizeStyle" src="../../assets/images/login-bg.png" alt="视频封面"> <img :style="resizeStyle" src="../../assets/images/login-bg.png" alt="视频封面">
</div> </div>
<div class="copyright">Copyright © 2023 Daniel {{ $t('login.copyright') }}</div> <div class="copyright">Copyright © 2023 Luenmei {{ $t('login.copyright') }}</div>
</div> </div>
</template> </template>
@ -98,7 +98,10 @@ function checkCapslock(e: any) {
onMounted(() => { onMounted(() => {
// getCaptcha(); // getCaptcha();
resizeFun() resizeStyle.value = {
height: '100vh',
width: '100vw',
}
}); });
function onCanplay() { function onCanplay() {

198
src/views/monitoring/components/header.vue

@ -0,0 +1,198 @@
<template>
<div class="title">
<h3>{{ titleData }}</h3>
</div>
<div class="weather">
<div class="time">
{{ currentTime }} {{ lunarDay.ncWeek }}
</div>
<div class="line"></div>
<div class="forecast">
<span>{{ weatherData.city }}{{ weatherData.weather }} {{ weatherData.temperature }}</span>
<svg-icon class="weatherSvg" :icon-class="weatherData.weatherImg" />
<!-- <img src="../../../assets/images/weather/duoyun.png" /> -->
</div>
</div>
<div class="seeting">
<n-tooltip trigger="hover" v-if="settingShow">
<template #trigger>
<n-button class="tooltips" circle quaternary @click="showClick">
<template #icon>
<n-icon>
<Settings />
</n-icon>
</template>
</n-button>
</template>
显示项
</n-tooltip>
<n-tooltip trigger="hover">
<template #trigger>
<n-button class="tooltips" circle quaternary @click="returnBack">
<template #icon>
<n-icon>
<Power />
</n-icon>
</template>
</n-button>
</template>
返回首页
</n-tooltip>
</div>
</template>
<script lang="ts" setup>
import { getWeather } from '@/api/user/index';
import { Filter, Maximize, Settings, Power } from '@vicons/tabler';
import { useDateFormat, useNow } from '@vueuse/core';
const currentTime = useDateFormat(useNow(), 'YYYY-MM-DD HH:mm:ss');
import calendar from '@/utils/lunar';
const emit = defineEmits(['showModalClick', 'returnClick']);
const timer = ref()
const isCurrentRoute = ref(true)
const weatherData = ref(
{ city: "", weather: "", temperature: "", weatherImg: "" }
);
const lunarDay: any = calendar.solarToLunar(
useNow().value.getUTCFullYear(),
useNow().value.getUTCMonth() + 1,
useNow().value.getUTCDate()
);
const props = defineProps({
titleData: {
type: String,
default: '数据大屏',
},
settingShow: {
type: Boolean,
default: false
}
});
onMounted(() => {
getWeatherData()
});
function showClick() {
///
emit('showModalClick', true);
// showModal.value = true;
}
function returnBack() {
//
emit('returnClick', '');
// router.replace("/dashboard")
}
// function getWeatherData() {
// //
// getWeather().then((res: any) => {
// if (res.code === 200) {
// weatherData.value = res.data;
// }
// });
// }
function getWeatherData() {
//
getWeather().then((res: any) => {
if (res.code === 200) {
if (isCurrentRoute) {
timer.value = setTimeout(async () => {
await (timer.value && clearTimeout(timer.value));
await getWeatherData();
}, 600000)
}
weatherData.value = res.data;
} else {
clearTimeout(timer.value);
}
});
}
</script>
<style lang="scss" scoped>
.header {
display: flex;
justify-content: space-between;
align-items: center;
// height: 5.7rem;
.title {
width: 80%;
background: url(@/assets/images/title-bg.png);
background-size: 100%;
text-align: center;
padding-bottom: 38px;
margin: 0 auto;
h3 {
font-size: 38px;
font-family: 'YouSheBiaoTiHei';
font-weight: 400;
letter-spacing: 4px;
background: linear-gradient(180deg, #FEFDFF 0%, #95DAFF 97%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin: 0;
}
}
}
.weather {
display: flex;
align-items: center;
position: absolute;
top: 2.5rem;
left: 7rem;
color: #B2D4FF;
font-size: 1.8rem;
line-height: 2.2rem;
font-family: 'AlibabaPuHuiTiRegular';
.line {
width: 2px;
height: 2rem;
background: linear-gradient(to top, #000E38, #1EA8DD, #000E38);
margin: 0 1rem;
}
.forecast {
display: flex;
align-items: center;
.weatherSvg {
width: 1.5em !important;
height: 1.5em !important;
margin-left: 10px;
}
// img {
// width: 25px;
// margin-left: 10px;
// }
}
}
.seeting {
position: absolute;
top: 2.5rem;
right: 7rem;
.tooltips {
width: 36px;
height: 36px;
background: linear-gradient(180deg, #003269 1%, rgba(3, 79, 163, 0.2314) 56%, #003269 100%);
border-radius: 0px 0px 0px 0px;
opacity: 1;
:deep(span) {
color: #5beff9;
}
margin-left: 10px;
}
}
</style>

66
src/views/monitoring/screen/components/infoPanel.vue

@ -0,0 +1,66 @@
<template>
<div class="infoPanel">
<swiper class="swiper" :loop="true"
:autoplay="{ delay: 500000, pauseOnMouseEnter: true, disableOnInteraction: false }" :modules="modules"
:slides-per-view="4" :space-between="15" navigation :pagination="{ clickable: true }">
<swiper-slide class="item" v-for="(item, index) in panelData" :key="index">
<div class="content">
<div class="icon">
<img src="@/assets/images/menu_bg.png" />
</div>
<div class="numValue">
<span>
<countTo :start="1" :end="item.value" :duration="3000"></countTo>
</span>
<i>{{ item.ext }}</i>
<p>{{ item.title }}</p>
</div>
</div>
</swiper-slide>
</swiper>
</div>
</template>
<script lang="ts" setup>
import { Swiper, SwiperSlide } from 'swiper/vue';
import { Navigation, Pagination, Autoplay } from 'swiper/modules';
import { getTableFooter } from '@/api/table/list';
import { PanelVo } from '@/api/table/types';
import countTo from '@/utils/countTo';
import 'swiper/css';
const modules = [Navigation, Pagination, Autoplay];
const panelData = ref<PanelVo[]>();
interface CardData {
id: string;
title: string;
value: number;
ext: string,
time: number;
icon: string;
}
const cardData: CardData[] = [
{
id: '1',
title: '设备在线率',
value: 95,
ext: '%',
time: 5000,
icon: ''
},
];
onMounted(() => {
getPanel()
});
function getPanel() {
//
getTableFooter().then((res: any) => {
if (res.code === 200) {
panelData.value = res.data;
}
});
}
</script>

12
src/views/monitoring/screen/components/main.vue

@ -15,12 +15,14 @@
<n-spin :show="loadingShow"> <n-spin :show="loadingShow">
<vxe-grid ref="tableRef" class="tableGrid" align="center" auto-resize :height="sidebarHeight - 4" <vxe-grid ref="tableRef" class="tableGrid" align="center" auto-resize :height="sidebarHeight - 4"
header-row-class-name="headerRowClass" header-cell-class-name="headerCellClass" row-class-name="tableRowClass" header-row-class-name="headerRowClass" header-cell-class-name="headerCellClass" row-class-name="tableRowClass"
cell-class-name="tableCellClass" :sort-config="{ multiple: true, trigger: 'cell' }" :border="true" cell-class-name="tableCellClass" :sort-config="{ multiple: true, trigger: 'cell' }" stripe border="outer"
:column-config="{ resizable: true, useKey: true }" :row-config="{ useKey: true }" :columns="tableColumn" :column-config="{ resizable: true, useKey: true }" :row-config="{ useKey: true }" :columns="tableColumn"
:data="tableData" @cell-dblclick="cellDBLClickEvent"> :data="tableData" @cell-dblclick="cellDBLClickEvent">
<template #deviceuuid_default="{ row }"> <template #deviceuuid_default="{ row }">
<span class="tips green" v-if="row.deviceuuid.deviceStatus === 0"></span> <svg-icon icon-class="warning_lights" style="fill:currentColor;width: 15px;height: 15px;color: green;"
<span class="tips red" v-if="row.deviceuuid.deviceStatus === 2"></span> v-if="row.deviceuuid.deviceStatus === 0" />
<svg-icon icon-class="warning_lights" style="fill:currentColor;width: 15px;height: 15px;color: red;"
v-if="row.deviceuuid.deviceStatus === 2" />
<span class="name" @click.native="nameClick(row.deviceuuid)">{{ row.deviceuuid.title }}</span> <span class="name" @click.native="nameClick(row.deviceuuid)">{{ row.deviceuuid.title }}</span>
</template> </template>
</vxe-grid> </vxe-grid>
@ -108,8 +110,8 @@ const formRules = ref<VxeFormPropTypes.Rules>({
const userStorageInfo = sessionStorage.getItem('userInfo') const userStorageInfo = sessionStorage.getItem('userInfo')
const userInfo = JSON.parse(userStorageInfo === null ? '' : userStorageInfo); const userInfo = JSON.parse(userStorageInfo === null ? '' : userStorageInfo);
// const loginIp = userInfo.loginIp.split('.').join(''); // const loginIp = userInfo.loginIp.split('.').join('');
const baseApi = "http://10.10.10.56:9000"//websocket // const baseApi = "http://localhost:8001/prod-api"//websocket
// const baseApi = import.meta.env.VITE_APP_BASE_API const baseApi = import.meta.env.VITE_APP_BASE_API
const apiUrl = baseApi.replace(/https?:/, ''); const apiUrl = baseApi.replace(/https?:/, '');
const wsUrl = `ws:${apiUrl}/websocket/${userInfo.userName}`; //websocket const wsUrl = `ws:${apiUrl}/websocket/${userInfo.userName}`; //websocket
// const wsData = ref(socket.data); // const wsData = ref(socket.data);

6
src/views/monitoring/screen/components/menu.vue

@ -8,6 +8,7 @@
import type { MenuOption } from 'naive-ui'; import type { MenuOption } from 'naive-ui';
// import { NEllipsis } from 'naive-ui'; // import { NEllipsis } from 'naive-ui';
import { getMenu } from '@/api/table/list'; import { getMenu } from '@/api/table/list';
import { getFirstNodeLastLevel } from '@/utils/index';
import useStorage from '@/utils/useStorage' import useStorage from '@/utils/useStorage'
import mitt from '@/plugins/bus'; import mitt from '@/plugins/bus';
const menuOptions = ref([]); const menuOptions = ref([]);
@ -24,10 +25,7 @@ function menuApi() {
// //
getMenu().then((res: any) => { getMenu().then((res: any) => {
if (res.code === 200) { if (res.code === 200) {
const key = const key=getFirstNodeLastLevel(res.data).deptId
res.data[0] && res.data[0].children && res.data[0].children.length > 0
? res.data[0].children[0].deptId
: res.data[0].deptId;
removeChildren(res.data); removeChildren(res.data);
menuOptions.value = res.data; menuOptions.value = res.data;
selectedKey.value = key; selectedKey.value = key;

370
src/views/monitoring/screen/index.scss

@ -1,52 +1,175 @@
@import url('@/assets/fonts/font.css');
.screen { .screen {
position: relative;
width: 100%; width: 100%;
height: 100vh; height: 100vh;
background: url(@/assets/images/screen.jpg); background: url(@/assets/images/screen.png);
// background-color: var(--tableBg);
background-size: 100% 100%; background-size: 100% 100%;
padding: 20px; background-color: rgba(0, 0, 0, 0.3);
background-blend-mode: multiply;
padding: 0 25px;
overflow: hidden; overflow: hidden;
.title { .menuShow {
display: flex; width: 26px;
justify-content: space-between; height: 26px;
align-items: center; position: absolute;
height: 5.7rem; top: 118px;
left: 0;
color: #B1E3FF;
text-align: center;
border: 1px solid #0D55B0;
background-color: #02072E;
border-right: none;
cursor: pointer;
.iconfont {
display: inline-block;
}
h3 { .left {
font-size: 3.8rem; transform: rotate(0deg);
font-weight: 800; -webkit-transform: rotate(0deg);
color: #84e0f7; transition: transform .5s;
}
.right {
transform: rotate(180deg);
-webkit-transform: rotate(180deg);
transition: transform .5s;
} }
} }
.seeting { .panelBtn {
.tooltips { position: absolute;
color: #606266; bottom: 0;
border: 2px solid #1e60a6; left: 0;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); right: 0;
background-color: transparent; width: 70%;
text-align: center;
color: #A2CEFF;
background: url(@/assets/images/title-bg.png);
background-size: 100%;
margin: 0 auto;
cursor: pointer;
transition: width 0.28s;
.iconfont {
display: inline-block;
font-size: 18px;
}
:deep(span) { .up {
color: #5beff9; transform: rotate(0deg);
} -webkit-transform: rotate(0deg);
transition: transform .5s;
}
margin-left: 10px; .down {
transform: rotate(180deg);
-webkit-transform: rotate(180deg);
transition: transform .5s;
} }
} }
.panelBtn.left {
left: 14%
}
// .header {
// display: flex;
// justify-content: space-between;
// align-items: center;
// // height: 5.7rem;
// .title {
// width: 1500px;
// background: url(@/assets/images/title-bg.png);
// background-size: 100%;
// text-align: center;
// padding-bottom: 38px;
// margin: 0 auto;
// h3 {
// font-size: 3.8rem;
// font-family: 'YouSheBiaoTiHei';
// font-weight: 400;
// letter-spacing: 4px;
// background: linear-gradient(180deg, #FEFDFF 0%, #95DAFF 97%);
// background-clip: text;
// -webkit-background-clip: text;
// -webkit-text-fill-color: transparent;
// margin: 0;
// }
// }
// }
// .weather {
// display: flex;
// align-items: center;
// position: absolute;
// top: 2.5rem;
// left: 7rem;
// color: #B2D4FF;
// font-size: 1.6rem;
// line-height: 2.2rem;
// font-family: 'AlibabaPuHuiTiRegular';
// .line {
// width: 2px;
// height: 2rem;
// background: linear-gradient(to top, #000E38, #1EA8DD, #000E38);
// margin: 0 1rem;
// }
// .forecast {
// display: flex;
// align-items: center;
// img {
// width: 25px;
// margin-left: 10px;
// }
// }
// }
// .seeting {
// position: absolute;
// top: 2.5rem;
// right: 7rem;
// .tooltips {
// width: 36px;
// height: 36px;
// background: linear-gradient(180deg, #003269 1%, rgba(3, 79, 163, 0.2314) 56%, #003269 100%);
// border-radius: 0px 0px 0px 0px;
// opacity: 1;
// :deep(span) {
// color: #5beff9;
// }
// margin-left: 10px;
// }
// }
.layout { .layout {
display: flex; display: flex;
margin-top: 20px; // margin-top: 20px;
.sidebar { .sidebar {
width: 12%; width: 12%;
height: calc(100vh - 5.7rem - 60px); height: calc(100vh - 95px - 30px); //屏幕高度-头部header高度-底部高度
flex-shrink: 0; flex-shrink: 0;
border: 2px solid #1e60a6; border: 1px solid #0D55B0;
padding: 10px; padding: 10px 0;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12); // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12);
margin-right: 1vw; margin-right: 1vw;
overflow: scroll; position: relative;
overflow: auto;
transition: width 0.28s;
.menu { .menu {
text-align: center; text-align: center;
@ -56,40 +179,97 @@
.n-menu-item { .n-menu-item {
.n-menu-item-content { .n-menu-item-content {
padding-left: 18px !important; padding: 0 !important;
.n-ellipsis {
font-family: 'AlibabaPuHuiTiBold';
padding: 0 15px;
}
} }
.n-menu-item-content-header { .n-menu-item-content-header {
font-size: 2.2rem; font-size: 2.4rem;
color: #84e0f7; color: #B1E3FF;
} }
} }
.n-submenu-children { .n-submenu-children {
.n-menu-item-content-header { .n-menu-item-content-header {
font-size: 1.4rem; font-size: 1.8rem;
} }
.n-menu-item-content--selected { .n-menu-item-content--selected {
.n-menu-item-content-header { .n-menu-item-content-header {
color: #ffd04b; color: #fff;
.n-ellipsis {
position: relative;
span {
padding: 0 10px;
}
span::before {
content: '';
position: absolute;
left: 0;
top: 0.7rem;
width: 1.8rem;
height: 1.8rem;
background: url(../../../assets/images/taps.png) no-repeat;
background-size: cover;
}
}
} }
} }
.n-menu-item-content--selected::before {
background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%);
left: 0;
right: 0;
}
.n-menu-item-content--selected::after {
content: '';
position: absolute;
bottom: 0;
width: 100%;
height: 2px;
background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%);
}
} }
.n-base-icon { .n-base-icon {
color: #84e0f7; color: #84e0f7;
right: 10px;
} }
} }
} }
} }
.sidebar.sidebarHide {
width: 0;
border: none;
margin-right: 0;
transition: width 0.28s;
}
.sidebar::after {
content: '';
position: absolute;
bottom: 0;
width: 100%;
height: 18rem;
background: url('../../../assets/images/menu_bg.png') no-repeat;
}
.main { .main {
position: relative;
width: 87%; width: 87%;
.headerInfo { .headerInfo {
border: 2px solid #1e60a6; border: 1px solid #0D55B0;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124);
margin-bottom: 10px; margin-bottom: 10px;
.header { .header {
@ -127,6 +307,8 @@
.mainTable { .mainTable {
// height: calc(100vh - 8rem - 202px); // height: calc(100vh - 8rem - 202px);
// height: calc(100% - 162px); // height: calc(100% - 162px);
background-color: rgba(0, 0, 0, 0.1);
transition: height 0.28s;
overflow: hidden; overflow: hidden;
.tableGrid { .tableGrid {
@ -136,8 +318,8 @@
--vxe-table-border-color: none; --vxe-table-border-color: none;
--vxe-font-color: #5beff9; --vxe-font-color: #5beff9;
--vxe-table-header-font-color: #ffffffb3; --vxe-table-header-font-color: #ffffffb3;
border: 2px solid #1e60a6; border: 1px solid #0D55B0;
box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124);
:deep(.vxe-table) { :deep(.vxe-table) {
@ -148,10 +330,15 @@
.headerRowClass { .headerRowClass {
.headerCellClass { .headerCellClass {
border: 1px solid rgba(255, 255, 255, 0.1) !important; color: #eee;
border-right: none !important; border: 1px solid rgba(12, 80, 166, 1) !important;
border-left: none !important;
} }
// .headerCellClass:nth-child(1){
// border-left: none !important;
// }
.headerCellClass.col--fixed { .headerCellClass.col--fixed {
// background-color: #020e38; // background-color: #020e38;
// box-shadow: inset 0px 0px 10px 0px #245a7c; // box-shadow: inset 0px 0px 10px 0px #245a7c;
@ -160,14 +347,19 @@
.tableRowClass { .tableRowClass {
.tableCellClass { .tableCellClass {
border-bottom: 1px solid #265a89 !important;
// border-bottom: 1px solid #265a89 !important;
.vxe-cell {
font-family: 'AlibabaPuHuiTiRegular';
color: #B1E3FF;
}
.vxe-cell--html { .vxe-cell--html {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.warning{ .warning {
font-size: 15px; font-size: 15px;
font-weight: bold; font-weight: bold;
color: red; color: red;
@ -188,6 +380,11 @@
} }
} }
.tableRowClass.row--stripe {
background-color: rgba(0, 95, 199, 0.15);
;
}
.tips { .tips {
display: inline-block; display: inline-block;
width: 10px; width: 10px;
@ -205,7 +402,8 @@
background-color: red; background-color: red;
} }
.name{ .name {
margin-left: 5px;
cursor: pointer; cursor: pointer;
} }
@ -260,6 +458,65 @@
// background-color: transparent; // background-color: transparent;
// } // }
} }
.infoPanel {
height: 280px;
margin-top: 20px;
transition: transform 0.5s;
:deep(.swiper) {
--swiper-theme-color: #ff6600;
/* 设置Swiper风格 */
--swiper-navigation-color: #00ff33;
/* 单独设置按钮颜色 */
--swiper-navigation-size: 30px;
/* 设置按钮大小 */
.item {
height: 280px;
.content {
display: flex;
align-items: center;
height: -webkit-fill-available;
border: 2px solid #0D54AE;
border-radius: 5px;
color: #fff;
padding: 15px;
background: rgba(2, 7, 46, 0.77);
.icon {
width: 40%;
img {
width: 100%;
}
}
.numValue {
flex: 1;
text-align: center;
color: #99E5FF;
span {
font-size: 5rem;
}
i {
font-size: 3rem;
font-style: normal;
}
p {
font-size: 2rem;
margin: 0;
color: #1782FF;
}
}
}
}
}
}
} }
/*滚动条整体部分*/ /*滚动条整体部分*/
@ -306,24 +563,25 @@
} }
// .cardClass { // .cardClass {
.showTree { .showTree {
.weight { .weight {
display: flex; display: flex;
align-items: center; align-items: center;
margin-left: auto; margin-left: auto;
span { span {
margin-right: 2px; margin-right: 2px;
}
} }
} }
}
.treeBtn { .treeBtn {
margin-top: 20px; margin-top: 20px;
text-align: right; text-align: right;
.n-button { .n-button {
margin-left: 10px; margin-left: 10px;
}
} }
}
// } // }

105
src/views/monitoring/screen/index.vue

@ -1,33 +1,21 @@
<template> <template>
<div ref="screenRef" class="screen"> <div ref="screenRef" class="screen">
<secton ref="titleRef" class="title"> <section ref="titleRef" class="header">
<h3>{{ titleData }}</h3> <Header :titleData="titleData" :settingShow="true" @showModalClick="showModalClick" @returnClick="returnClick" />
<!-- <div class="title">
<h3>{{ titleData }}</h3>
</div>
<div class="weather">
<div class="time">
{{ currentTime }} {{ lunarDay.ncWeek }}
</div>
<div class="line"></div>
<div class="forecast">
<span>天气多云</span>
<img src="../../../assets/images/weather/duoyun.png" />
</div>
</div>
<div class="seeting"> <div class="seeting">
<!-- <n-tooltip trigger="hover">
<template #trigger>
<n-button class="tooltips" circle quaternary @click="filterClick">
<template #icon>
<n-icon>
<Filter />
</n-icon>
</template>
</n-button>
</template>
{{ tapsShow === true ? '隐藏' : '显示' }}
</n-tooltip> -->
<!-- <el-button @click="screenClick">全屏</el-button> -->
<!-- <n-tooltip trigger="hover">
<template #trigger>
<n-button class="tooltips" circle quaternary @click="screenClick">
<template #icon>
<n-icon>
<Maximize />
</n-icon>
</template>
</n-button>
</template>
全屏
</n-tooltip> -->
<n-tooltip trigger="hover"> <n-tooltip trigger="hover">
<template #trigger> <template #trigger>
<n-button class="tooltips" circle quaternary @click="showClick"> <n-button class="tooltips" circle quaternary @click="showClick">
@ -52,14 +40,15 @@
</template> </template>
返回首页 返回首页
</n-tooltip> </n-tooltip>
</div> </div> -->
</secton> </section>
<section class="layout"> <section class="layout">
<div ref="sidebar" class="sidebar"> <div ref="sidebar" class="sidebar animate__animated animate__fadeIn" :class="menuShow ? '' : 'sidebarHide'">
<Menu @tableMenuData="tableMenuData" /> <Menu @tableMenuData="tableMenuData" />
</div> </div>
<div class="main"> <div class="main" :style="`width: ${mainWidth}%`">
<Main :tapsShow="tapsShow" :sidebarHeight="sidebarHeight" @tableHeaderData="tableHeaderData" /> <Main :tapsShow="tapsShow" :sidebarHeight="sidebarHeight" @tableHeaderData="tableHeaderData" />
<InfoPanel class="animate__animated animate__fadeInUp" v-if="panelShow" />
</div> </div>
</section> </section>
<section> <section>
@ -79,14 +68,33 @@
</el-dialog> </el-dialog>
<!-- </n-modal> --> <!-- </n-modal> -->
</section> </section>
<div class="menuShow" @click="menuIsShow">
<i class="iconfont icon-angle-double" :class="menuShow ? 'left' : 'right'"></i>
</div>
<div class="panelBtn" :class="menuShow ? 'left' : 'right'" @click="panelClick">
<i class="iconfont icon-arrow-up" :class="!panelShow ? 'up' : 'down'"></i>
<!-- <n-button type="info" size="tiny" ghost @click="panelClick">按钮</n-button> -->
</div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import router from '@/router'; import router from '@/router';
import { Filter, Maximize, Settings, Power } from '@vicons/tabler'; // import { useDateFormat, useNow } from '@vueuse/core';
// import { Filter, Maximize, Settings, Power } from '@vicons/tabler';
import Menu from './components/menu.vue'; import Menu from './components/menu.vue';
import Main from './components/main.vue'; import Main from './components/main.vue';
import InfoPanel from './components/infoPanel.vue';
import ShowTree from './components/showTree.vue'; import ShowTree from './components/showTree.vue';
import Header from '../components/header.vue';
import useStorage from '@/utils/useStorage'
const sessionStorageIns = useStorage('sessionStorage');
// import calendar from '@/utils/lunar';
// const currentTime = useDateFormat(useNow(), 'YYYY-MM-DD HH:mm:ss');
// const lunarDay: any = calendar.solarToLunar(
// useNow().value.getUTCFullYear(),
// useNow().value.getUTCMonth() + 1,
// useNow().value.getUTCDate()
// );
// import screenfull from 'screenfull' // import screenfull from 'screenfull'
const tapsShow = ref(false); const tapsShow = ref(false);
const showModal = ref(false); const showModal = ref(false);
@ -95,18 +103,25 @@ const titleRef = ref<HTMLElement>();
const sidebar = ref<HTMLElement>(); const sidebar = ref<HTMLElement>();
const sidebarHeight = ref() const sidebarHeight = ref()
const headerData = ref([]); const headerData = ref([]);
const mainWidth = ref(87)
const titleData = ref('') const titleData = ref('')
const menuShow = ref(true)
const panelShow = ref(false)
const panelHeight = ref(0)
onMounted(() => { onMounted(() => {
// titleRef.value?.clientHeight; // // titleRef.value?.clientHeight; //
console.log(sidebar.value) console.log(sidebar.value)
sidebarHeight.value = sidebar.value?.offsetHeight; // const offsetHeight = sidebar.value?.offsetHeight; //
sidebarHeight.value = offsetHeight === undefined ? 0 : offsetHeight - panelHeight.value
// menuShow.value=localStorage.getItem('menuShow')===undefined?true:JSON.parse(localStorage.getItem('menuShow'));
console.log("sidebar:", sidebar.value?.offsetHeight) console.log("sidebar:", sidebar.value?.offsetHeight)
}); });
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
// //
sidebarHeight.value = sidebar.value?.offsetHeight; // const offsetHeight = sidebar.value?.offsetHeight; //
sidebarHeight.value = offsetHeight === undefined ? 0 : offsetHeight - panelHeight.value
console.log("监听sidebar:", sidebar.value?.offsetHeight) console.log("监听sidebar:", sidebar.value?.offsetHeight)
}); });
@ -124,20 +139,36 @@ function filterClick() {
/// ///
tapsShow.value = !tapsShow.value; tapsShow.value = !tapsShow.value;
} }
function showClick() { function showModalClick(val: boolean) {
/// ///
showModal.value = true; showModal.value = val;
} }
function cancelClick() { function cancelClick() {
// //
showModal.value = false; showModal.value = false;
} }
function returnBack() { function returnClick(val: string) {
// //
router.replace("/dashboard") router.replace("/dashboard")
} }
function menuIsShow() {
//
menuShow.value = !menuShow.value
mainWidth.value = menuShow.value ? 87 : 100
sessionStorageIns.setUseStorage('menuShow', menuShow.value);
}
function panelClick() {
//
panelShow.value = !panelShow.value
panelHeight.value = panelShow.value ? 300 : 0
const offsetHeight = sidebar.value?.offsetHeight; //
sidebarHeight.value = offsetHeight === undefined ? 0 : offsetHeight - panelHeight.value
sessionStorageIns.setUseStorage('panelShow', panelShow.value);
}
// function screenClick(){ // function screenClick(){
// if (screenfull.isEnabled) { // if (screenfull.isEnabled) {
// // // //

1
vite.config.ts

@ -46,6 +46,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
proxy: { proxy: {
[env.VITE_APP_BASE_API]: { [env.VITE_APP_BASE_API]: {
// target: 'http://172.1.2.157:9000/',//本地接口地址 // target: 'http://172.1.2.157:9000/',//本地接口地址
// target: 'http://172.1.2.48:9000/',//本地接口地址
target: 'http://10.10.10.56:9000/',//线上接口地址 target: 'http://10.10.10.56:9000/',//线上接口地址
changeOrigin: true, changeOrigin: true,
rewrite: path => rewrite: path =>

Loading…
Cancel
Save