wangxx пре 4 месеци
родитељ
комит
e184e58edd
7 измењених фајлова са 354 додато и 0 уклоњено
  1. 8 0
      .env.development
  2. 11 0
      .env.production
  3. 11 0
      .env.staging
  4. 23 0
      .gitignore
  5. 20 0
      LICENSE
  6. 215 0
      index.html
  7. 66 0
      package.json

+ 8 - 0
.env.development

@@ -0,0 +1,8 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 安检分级质控系统-管理端
3
+
4
+# 开发环境配置
5
+VITE_APP_ENV = 'development'
6
+
7
+# 安检分级质控系统-管理端/开发环境
8
+VITE_APP_BASE_API = '/dev-api'

+ 11 - 0
.env.production

@@ -0,0 +1,11 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 安检分级质控系统-管理端
3
+
4
+# 生产环境配置
5
+VITE_APP_ENV = 'production'
6
+
7
+# 安检分级质控系统-管理端/生产环境
8
+VITE_APP_BASE_API = '/prod-api'
9
+
10
+# 是否在打包时开启压缩,支持 gzip 和 brotli
11
+VITE_BUILD_COMPRESS = gzip

+ 11 - 0
.env.staging

@@ -0,0 +1,11 @@
1
+# 页面标题
2
+VITE_APP_TITLE = 安检分级质控系统-管理端
3
+
4
+# 生产环境配置
5
+VITE_APP_ENV = 'staging'
6
+
7
+# 安检分级质控系统-管理端/生产环境
8
+VITE_APP_BASE_API = '/stage-api'
9
+
10
+# 是否在打包时开启压缩,支持 gzip 和 brotli
11
+VITE_BUILD_COMPRESS = gzip

+ 23 - 0
.gitignore

@@ -0,0 +1,23 @@
1
+.DS_Store
2
+node_modules/
3
+dist/
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+**/*.log
8
+
9
+tests/**/coverage/
10
+tests/e2e/reports
11
+selenium-debug.log
12
+
13
+# Editor directories and files
14
+.idea
15
+.vscode
16
+*.suo
17
+*.ntvs*
18
+*.njsproj
19
+*.sln
20
+*.local
21
+
22
+package-lock.json
23
+yarn.lock

+ 20 - 0
LICENSE

@@ -0,0 +1,20 @@
1
+The MIT License (MIT)
2
+
3
+Copyright (c) 2018 RuoYi
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+this software and associated documentation files (the "Software"), to deal in
7
+the Software without restriction, including without limitation the rights to
8
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+the Software, and to permit persons to whom the Software is furnished to do so,
10
+subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in all
13
+copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 215 - 0
index.html

@@ -0,0 +1,215 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+  <meta charset="utf-8">
6
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
+  <meta name="renderer" content="webkit">
8
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9
+  <link rel="icon" href="/favicon.ico">
10
+  <title>安检分级质控系统-管理端</title>
11
+  <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
12
+  <style>
13
+    html,
14
+    body,
15
+    #app {
16
+      height: 100%;
17
+      margin: 0px;
18
+      padding: 0px;
19
+    }
20
+
21
+    .chromeframe {
22
+      margin: 0.2em 0;
23
+      background: #ccc;
24
+      color: #000;
25
+      padding: 0.2em 0;
26
+    }
27
+
28
+    #loader-wrapper {
29
+      position: fixed;
30
+      top: 0;
31
+      left: 0;
32
+      width: 100%;
33
+      height: 100%;
34
+      z-index: 999999;
35
+    }
36
+
37
+    #loader {
38
+      display: block;
39
+      position: relative;
40
+      left: 50%;
41
+      top: 50%;
42
+      width: 150px;
43
+      height: 150px;
44
+      margin: -75px 0 0 -75px;
45
+      border-radius: 50%;
46
+      border: 3px solid transparent;
47
+      border-top-color: #FFF;
48
+      -webkit-animation: spin 2s linear infinite;
49
+      -ms-animation: spin 2s linear infinite;
50
+      -moz-animation: spin 2s linear infinite;
51
+      -o-animation: spin 2s linear infinite;
52
+      animation: spin 2s linear infinite;
53
+      z-index: 1001;
54
+    }
55
+
56
+    #loader:before {
57
+      content: "";
58
+      position: absolute;
59
+      top: 5px;
60
+      left: 5px;
61
+      right: 5px;
62
+      bottom: 5px;
63
+      border-radius: 50%;
64
+      border: 3px solid transparent;
65
+      border-top-color: #FFF;
66
+      -webkit-animation: spin 3s linear infinite;
67
+      -moz-animation: spin 3s linear infinite;
68
+      -o-animation: spin 3s linear infinite;
69
+      -ms-animation: spin 3s linear infinite;
70
+      animation: spin 3s linear infinite;
71
+    }
72
+
73
+    #loader:after {
74
+      content: "";
75
+      position: absolute;
76
+      top: 15px;
77
+      left: 15px;
78
+      right: 15px;
79
+      bottom: 15px;
80
+      border-radius: 50%;
81
+      border: 3px solid transparent;
82
+      border-top-color: #FFF;
83
+      -moz-animation: spin 1.5s linear infinite;
84
+      -o-animation: spin 1.5s linear infinite;
85
+      -ms-animation: spin 1.5s linear infinite;
86
+      -webkit-animation: spin 1.5s linear infinite;
87
+      animation: spin 1.5s linear infinite;
88
+    }
89
+
90
+
91
+    @-webkit-keyframes spin {
92
+      0% {
93
+        -webkit-transform: rotate(0deg);
94
+        -ms-transform: rotate(0deg);
95
+        transform: rotate(0deg);
96
+      }
97
+
98
+      100% {
99
+        -webkit-transform: rotate(360deg);
100
+        -ms-transform: rotate(360deg);
101
+        transform: rotate(360deg);
102
+      }
103
+    }
104
+
105
+    @keyframes spin {
106
+      0% {
107
+        -webkit-transform: rotate(0deg);
108
+        -ms-transform: rotate(0deg);
109
+        transform: rotate(0deg);
110
+      }
111
+
112
+      100% {
113
+        -webkit-transform: rotate(360deg);
114
+        -ms-transform: rotate(360deg);
115
+        transform: rotate(360deg);
116
+      }
117
+    }
118
+
119
+
120
+    #loader-wrapper .loader-section {
121
+      position: fixed;
122
+      top: 0;
123
+      width: 51%;
124
+      height: 100%;
125
+      background: #7171C6;
126
+      z-index: 1000;
127
+      -webkit-transform: translateX(0);
128
+      -ms-transform: translateX(0);
129
+      transform: translateX(0);
130
+    }
131
+
132
+    #loader-wrapper .loader-section.section-left {
133
+      left: 0;
134
+    }
135
+
136
+    #loader-wrapper .loader-section.section-right {
137
+      right: 0;
138
+    }
139
+
140
+
141
+    .loaded #loader-wrapper .loader-section.section-left {
142
+      -webkit-transform: translateX(-100%);
143
+      -ms-transform: translateX(-100%);
144
+      transform: translateX(-100%);
145
+      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
146
+      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
147
+    }
148
+
149
+    .loaded #loader-wrapper .loader-section.section-right {
150
+      -webkit-transform: translateX(100%);
151
+      -ms-transform: translateX(100%);
152
+      transform: translateX(100%);
153
+      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
154
+      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
155
+    }
156
+
157
+    .loaded #loader {
158
+      opacity: 0;
159
+      -webkit-transition: all 0.3s ease-out;
160
+      transition: all 0.3s ease-out;
161
+    }
162
+
163
+    .loaded #loader-wrapper {
164
+      visibility: hidden;
165
+      -webkit-transform: translateY(-100%);
166
+      -ms-transform: translateY(-100%);
167
+      transform: translateY(-100%);
168
+      -webkit-transition: all 0.3s 1s ease-out;
169
+      transition: all 0.3s 1s ease-out;
170
+    }
171
+
172
+    .no-js #loader-wrapper {
173
+      display: none;
174
+    }
175
+
176
+    .no-js h1 {
177
+      color: #222222;
178
+    }
179
+
180
+    #loader-wrapper .load_title {
181
+      font-family: 'Open Sans';
182
+      color: #FFF;
183
+      font-size: 19px;
184
+      width: 100%;
185
+      text-align: center;
186
+      z-index: 9999999999999;
187
+      position: absolute;
188
+      top: 60%;
189
+      opacity: 1;
190
+      line-height: 30px;
191
+    }
192
+
193
+    #loader-wrapper .load_title span {
194
+      font-weight: normal;
195
+      font-style: italic;
196
+      font-size: 13px;
197
+      color: #FFF;
198
+      opacity: 0.5;
199
+    }
200
+  </style>
201
+</head>
202
+
203
+<body>
204
+  <div id="app">
205
+    <div id="loader-wrapper">
206
+      <div id="loader"></div>
207
+      <div class="loader-section section-left"></div>
208
+      <div class="loader-section section-right"></div>
209
+      <div class="load_title">正在加载系统资源,请耐心等待</div>
210
+    </div>
211
+  </div>
212
+  <script type="module" src="/src/main.js"></script>
213
+</body>
214
+
215
+</html>

+ 66 - 0
package.json

@@ -0,0 +1,66 @@
1
+{
2
+  "name": "airport-web",
3
+  "version": "3.9.0",
4
+  "description": "安检分级质控系统-管理端",
5
+  "author": "sundot",
6
+  "license": "MIT",
7
+  "type": "module",
8
+  "scripts": {
9
+    "dev": "vite",
10
+    "build:prod": "vite build",
11
+    "build:stage": "vite build --mode staging",
12
+    "preview": "vite preview",
13
+    "build": "vite build",
14
+    "deploy": "node script/deploy.mjs --env dev",
15
+    "deploy:prod": "node script/deploy.mjs --env prod"
16
+  },
17
+  "repository": {
18
+    "type": "git",
19
+    "url": "http://git.sundot.cn/airport/airport-web.git"
20
+  },
21
+  "dependencies": {
22
+    "@codemirror/basic-setup": "^0.20.0",
23
+    "@codemirror/lang-sql": "^6.9.0",
24
+    "@codemirror/language": "^6.11.1",
25
+    "@codemirror/state": "^6.5.2",
26
+    "@codemirror/view": "^6.37.2",
27
+    "@element-plus/icons-vue": "2.3.1",
28
+    "@vueup/vue-quill": "1.2.0",
29
+    "@vueuse/core": "13.3.0",
30
+    "axios": "1.9.0",
31
+    "clipboard": "2.0.11",
32
+    "codemirror-editor-vue3": "^2.8.0",
33
+    "echarts": "5.6.0",
34
+    "element-plus": "2.9.9",
35
+    "file-saver": "2.0.5",
36
+    "fuse.js": "6.6.2",
37
+    "js-beautify": "1.14.11",
38
+    "js-cookie": "3.0.5",
39
+    "jsencrypt": "3.3.2",
40
+    "moment": "^2.30.1",
41
+    "nprogress": "0.2.0",
42
+    "pinia": "3.0.2",
43
+    "splitpanes": "4.0.4",
44
+    "vue": "3.5.16",
45
+    "vue-cropper": "1.1.1",
46
+    "vue-router": "4.5.1",
47
+    "vue3-scroll-seamless": "^1.0.6",
48
+    "vuedraggable": "4.1.0",
49
+    "wow.js": "^1.2.2"
50
+  },
51
+  "devDependencies": {
52
+    "@vitejs/plugin-vue": "5.2.4",
53
+    "cli-progress": "^3.12.0",
54
+    "less": "^4.3.0",
55
+    "sass-embedded": "1.89.1",
56
+    "ssh2-sftp-client": "^12.0.1",
57
+    "unplugin-auto-import": "0.18.6",
58
+    "unplugin-vue-setup-extend-plus": "1.0.1",
59
+    "vite": "6.3.5",
60
+    "vite-plugin-compression": "0.5.1",
61
+    "vite-plugin-svg-icons": "2.0.1"
62
+  },
63
+  "overrides": {
64
+    "quill": "2.0.2"
65
+  }
66
+}