Compare commits
	
		
			274 Commits
		
	
	
		
			d3760f5dee
			...
			projects/l
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 10219fd841 | |||
| 74a2a3b8e5 | |||
| c3b4223e5b | |||
| 070e01c2c4 | |||
| 2665b6a0b0 | |||
| a71fb90e6a | |||
| ac85c83cf9 | |||
| c2e987aee4 | |||
| 0e4ed597cd | |||
| 3e7914ac91 | |||
| 9c19a6197a | |||
| 074b35b6a6 | |||
| 9be57ad750 | |||
| f7313c5911 | |||
| a7e81ad8fb | |||
| 32cbf9076f | |||
| 9a411cc663 | |||
| 
						 | 
					445a88e540 | ||
| 
						 | 
					2b355aaf8f | ||
| f60a46ed1d | |||
| 2688896660 | |||
| 
						 | 
					4a67e226e1 | ||
| 
						 | 
					11ee0d6541 | ||
| 98b3237c9a | |||
| 
						 | 
					46aaa47e07 | ||
| ca0f62b2eb | |||
| 5534104e87 | |||
| b72fe1bfed | |||
| f4493bde1c | |||
| 
						 | 
					d682ecc91c | ||
| 
						 | 
					2b76ef7d23 | ||
| 9ec13b35b8 | |||
| 7acccd3de0 | |||
| e40f45a79a | |||
| 77083a84a1 | |||
| 9f53ea6981 | |||
| 8f634d012c | |||
| 03c573d5b2 | |||
| 348714edaf | |||
| 814fe4605a | |||
| bb6bfc5ab6 | |||
| 0162f338ba | |||
| 8f99915720 | |||
| 744e5d80be | |||
| 
						 | 
					d3b119ad9b | ||
| 
						 | 
					69bdab75d4 | ||
| af5e0333ed | |||
| b2ee61b8cb | |||
| 723d83cc02 | |||
| 769830c448 | |||
| 907db90e93 | |||
| 6e390bf12a | |||
| b39f0625a1 | |||
| e985c73e00 | |||
| 180fcf5ad8 | |||
| 
						 | 
					b1c0d21888 | ||
| 
						 | 
					96d52fafee | ||
| 4f7889ff60 | |||
| bc2c5a4787 | |||
| ab8e9cb2a5 | |||
| 57960ff8bf | |||
| b9e39dacf1 | |||
| 80ad95be6e | |||
| 7dfaae02a8 | |||
| cf2d7af94b | |||
| a48b31dcbe | |||
| 96b0a9e503 | |||
| 9c257aa24a | |||
| 7ab5f1b812 | |||
| 5c796cd44f | |||
| fe0b5538a8 | |||
| 90695acefd | |||
| a90c5cca0c | |||
| 4d7e3c0e04 | |||
| ee40707d2c | |||
| 20808c0975 | |||
| 87f56dd9ac | |||
| 24ffea330d | |||
| a4594426c3 | |||
| c899bb37e3 | |||
| 47e91d821b | |||
| d907d2f341 | |||
| 1116531aff | |||
| 8dc5bbb4d8 | |||
| c24d22aedd | |||
| bbbfa9644d | |||
| db4ecc91d6 | |||
| 
						 | 
					699810f40a | ||
| 
						 | 
					d454f20bd6 | ||
| 56f209a27e | |||
| 980f3468b7 | |||
| 95da2191dd | |||
| 42550264c8 | |||
| 727f7d57c3 | |||
| aa32e4d3fb | |||
| dcda3a6294 | |||
| f43b1c1eab | |||
| ca3965e8cb | |||
| ee3d6f9dc6 | |||
| e2a777069e | |||
| 06fa7d40b3 | |||
| f6f0480744 | |||
| 45e7f337bf | |||
| 8e0d63839a | |||
| 6c21f01fd7 | |||
| 52bc38499c | |||
| c600d14f8f | |||
| 2265c549e6 | |||
| a74242f3b3 | |||
| ebcf3d4d78 | |||
| 8ad84a4d61 | |||
| ff9e93d264 | |||
| 928258e509 | |||
| 
						 | 
					ee0affc78f | ||
| 
						 | 
					dfec94be17 | ||
| a12530b835 | |||
| b3db8dcae8 | |||
| 24a0857808 | |||
| e0cc022e34 | |||
| 71bcd14c72 | |||
| 646859aeef | |||
| 5a31498224 | |||
| c965dfbc5a | |||
| c364162a2a | |||
| 282ef45114 | |||
| 0371859d14 | |||
| 7407b97f5a | |||
| eff5e0d1e1 | |||
| 60dc449a27 | |||
| 159d626b30 | |||
| 
						 | 
					bc5d3d44d5 | ||
| a6d8a7a9da | |||
| 7d2bfaea18 | |||
| 
						 | 
					e9538744c3 | ||
| 
						 | 
					8cf2f9f7e9 | ||
| 772a4b0633 | |||
| 27ebe39a96 | |||
| 97f9b52e87 | |||
| 
						 | 
					f85cb9c50f | ||
| 
						 | 
					e8cc1fc50b | ||
| f08c79fc23 | |||
| f341ec7b30 | |||
| 2c6a6b001c | |||
| b17bc0e162 | |||
| d595bf2660 | |||
| 529889fd07 | |||
| 2f18299b0b | |||
| d1c93cbf46 | |||
| 
						 | 
					7d959e8ad3 | ||
| 
						 | 
					6f0040a0ae | ||
| 347265853e | |||
| 
						 | 
					f1bbdf82e5 | ||
| 
						 | 
					645ba2843f | ||
| f2f3a9e850 | |||
| 14e06d9456 | |||
| 4e05b3e3d6 | |||
| 6e678f7c68 | |||
| b91b8c3d3c | |||
| a445c8a61d | |||
| df0dc6bfa0 | |||
| c44ec6f49c | |||
| 6197b606f1 | |||
| c7b32ab34e | |||
| e2527f2e30 | |||
| 76100ad07d | |||
| fa02c3933d | |||
| d63d49ccc9 | |||
| cd437ed7d3 | |||
| 052f54833c | |||
| e42b7035fe | |||
| a505f34abc | |||
| edc5d64acc | |||
| e5fed36234 | |||
| 2dd40261a4 | |||
| e16b6f8ec4 | |||
| 9c59a7e715 | |||
| 55e8de1136 | |||
| ffedc7c256 | |||
| fbd78c6aa5 | |||
| 6f71b6a7c0 | |||
| 55f90a7102 | |||
| b6df60a315 | |||
| 31dbc025c8 | |||
| 63206d4769 | |||
| b23b5256f9 | |||
| 21fbd88a32 | |||
| 0158a11644 | |||
| 62256b57a5 | |||
| 0e6c01e578 | |||
| 0ec4238042 | |||
| fd0c14ff1c | |||
| 72393caee1 | |||
| 14eb83932e | |||
| 0f6418fcf9 | |||
| 100d28fd68 | |||
| bf52db3b6a | |||
| 0f5e4b8368 | |||
| e37bb3f2ce | |||
| 84ed13d58f | |||
| 383f98e1d9 | |||
| 5aafefda26 | |||
| 6975c52062 | |||
| 4ad325c02c | |||
| 9dc580ddd2 | |||
| 3656a92f63 | |||
| 573192d27a | |||
| 50318121dc | |||
| 01fe2da523 | |||
| 3d24159743 | |||
| 54d22292c1 | |||
| 9556cdfb0e | |||
| fc2037a10a | |||
| 4eb9b321db | |||
| 1b055ebfa4 | |||
| fa2505d5a2 | |||
| d370948705 | |||
| 6e39dd48ff | |||
| a4c1438e59 | |||
| 577fcb53d2 | |||
| 56191453af | |||
| 84a055e605 | |||
| 2cf0e718f7 | |||
| 54ce9639ab | |||
| 5cc3fb758e | |||
| a312117ea3 | |||
| fc94d0cccc | |||
| c466cbb378 | |||
| 18a9a4f51b | |||
| c11c32d7ee | |||
| 3900dcfbd8 | |||
| 8f61e9a9d9 | |||
| 2a2ef5ab5c | |||
| ccfc4eacba | |||
| 4c829d21f5 | |||
| 6852bc8c85 | |||
| c755ecc105 | |||
| 9947b2fa37 | |||
| 48d208a539 | |||
| 2febe5a12a | |||
| 8fd1504dc0 | |||
| 1c7e908d2e | |||
| 291197a28d | |||
| c7c89e2243 | |||
| 14a626b766 | |||
| cee4ebfd43 | |||
| 9831026c5a | |||
| 1e538579a8 | |||
| 33ff942fc6 | |||
| bd56b12560 | |||
| 61a6e7dafb | |||
| f5fb852d5d | |||
| 810b4b87a8 | |||
| c946f12004 | |||
| 4350bafa23 | |||
| a49db190e3 | |||
| ecfed2eddf | |||
| 6b988bbaf7 | |||
| 4d0c0ae91a | |||
| 7c665484a7 | |||
| 1299ebd0c9 | |||
| 78777d5d24 | |||
| c357ab8005 | |||
| 73831ea8cf | |||
| 3d1bc2cc98 | |||
| 01f459e811 | |||
| a402a8bf63 | |||
| 969a5303a8 | |||
| 0719116cbc | |||
| b281df661b | |||
| 50517c4244 | |||
| 6b9f7d7b9c | |||
| f4662a33b9 | |||
| f5accd1f61 | |||
| 797dc1e029 | 
							
								
								
									
										12
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						@@ -1,11 +1,21 @@
 | 
				
			|||||||
 | 
					###
 | 
				
			||||||
 | 
					 # @Author: Do not edit
 | 
				
			||||||
 | 
					 # @Date: 2023-08-29 09:40:39
 | 
				
			||||||
 | 
					 # @LastEditTime: 2023-10-16 09:22:52
 | 
				
			||||||
 | 
					 # @LastEditors: DY
 | 
				
			||||||
 | 
					 # @Description: 
 | 
				
			||||||
 | 
					### 
 | 
				
			||||||
# 开发环境配置
 | 
					# 开发环境配置
 | 
				
			||||||
ENV = 'development'
 | 
					ENV = 'development'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 页面标题
 | 
					# 页面标题
 | 
				
			||||||
VUE_APP_TITLE = 芋道管理系统
 | 
					VUE_APP_TITLE = 产线监控系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 芋道管理系统/开发环境
 | 
					# 芋道管理系统/开发环境
 | 
				
			||||||
 | 
					# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
 | 
				
			||||||
 | 
					# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
 | 
				
			||||||
VUE_APP_BASE_API = 'http://192.168.0.33:48080'
 | 
					VUE_APP_BASE_API = 'http://192.168.0.33:48080'
 | 
				
			||||||
 | 
					# VUE_APP_BASE_API = 'http://192.168.1.188:48080'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 路由懒加载
 | 
					# 路由懒加载
 | 
				
			||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
 | 
					VUE_CLI_BABEL_TRANSPILE_MODULES = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
ENV = 'development'
 | 
					ENV = 'development'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 页面标题
 | 
					# 页面标题
 | 
				
			||||||
VUE_APP_TITLE = 芋道管理系统
 | 
					VUE_APP_TITLE = 产线监控系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 芋道管理系统/本地环境
 | 
					# 芋道管理系统/本地环境
 | 
				
			||||||
VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn'
 | 
					VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,13 +2,15 @@
 | 
				
			|||||||
ENV = 'production'
 | 
					ENV = 'production'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 页面标题
 | 
					# 页面标题
 | 
				
			||||||
VUE_APP_TITLE = 芋道管理系统
 | 
					VUE_APP_TITLE = 产线监控系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 芋道管理系统/生产环境
 | 
					# 芋道管理系统/生产环境
 | 
				
			||||||
VUE_APP_BASE_API = '/prod-api'
 | 
					VUE_APP_BASE_API = '/prod-api'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 根据服务器或域名修改
 | 
					# 根据服务器或域名修改
 | 
				
			||||||
PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/'
 | 
					# PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/'
 | 
				
			||||||
 | 
					PUBLIC_PATH = 'http://192.168.0.33:8888/'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 二级部署路径
 | 
					# 二级部署路径
 | 
				
			||||||
VUE_APP_APP_NAME ='yudao-admin'
 | 
					VUE_APP_APP_NAME ='yudao-admin'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
NODE_ENV = production
 | 
					NODE_ENV = production
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 页面标题
 | 
					# 页面标题
 | 
				
			||||||
VUE_APP_TITLE = 芋道管理系统
 | 
					VUE_APP_TITLE = 产线监控系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 测试环境配置
 | 
					# 测试环境配置
 | 
				
			||||||
ENV = 'staging'
 | 
					ENV = 'staging'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ NODE_ENV = development
 | 
				
			|||||||
ENV = 'staging'
 | 
					ENV = 'staging'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 页面标题
 | 
					# 页面标题
 | 
				
			||||||
VUE_APP_TITLE = 芋道管理系统
 | 
					VUE_APP_TITLE = 产线监控系统
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 芋道管理系统/测试环境
 | 
					# 芋道管理系统/测试环境
 | 
				
			||||||
VUE_APP_BASE_API = 'http://127.0.0.1:48080'
 | 
					VUE_APP_BASE_API = 'http://127.0.0.1:48080'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -20,3 +20,4 @@ selenium-debug.log
 | 
				
			|||||||
*.local
 | 
					*.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package-lock.json
 | 
					package-lock.json
 | 
				
			||||||
 | 
					echarts.js
 | 
				
			||||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
								
							
							
						
						@@ -50,31 +50,40 @@
 | 
				
			|||||||
    "code-brick-zj": "^1.0.2",
 | 
					    "code-brick-zj": "^1.0.2",
 | 
				
			||||||
    "core-js": "^3.26.0",
 | 
					    "core-js": "^3.26.0",
 | 
				
			||||||
    "crypto-js": "^4.0.0",
 | 
					    "crypto-js": "^4.0.0",
 | 
				
			||||||
 | 
					    "diagram-js": "^12.3.0",
 | 
				
			||||||
    "echarts": "5.4.0",
 | 
					    "echarts": "5.4.0",
 | 
				
			||||||
    "element-ui": "2.15.12",
 | 
					    "element-ui": "2.15.12",
 | 
				
			||||||
    "file-saver": "2.0.5",
 | 
					    "file-saver": "^2.0.5",
 | 
				
			||||||
    "fuse.js": "6.6.2",
 | 
					    "fuse.js": "6.6.2",
 | 
				
			||||||
    "highlight.js": "9.18.5",
 | 
					    "highlight.js": "9.18.5",
 | 
				
			||||||
 | 
					    "html2canvas": "^1.4.1",
 | 
				
			||||||
    "js-beautify": "1.13.0",
 | 
					    "js-beautify": "1.13.0",
 | 
				
			||||||
    "jsencrypt": "3.3.1",
 | 
					    "jsencrypt": "3.3.1",
 | 
				
			||||||
 | 
					    "jspdf": "^2.5.1",
 | 
				
			||||||
    "min-dash": "3.5.2",
 | 
					    "min-dash": "3.5.2",
 | 
				
			||||||
 | 
					    "mockjs": "^1.1.0",
 | 
				
			||||||
    "moment": "^2.29.4",
 | 
					    "moment": "^2.29.4",
 | 
				
			||||||
    "nprogress": "0.2.0",
 | 
					    "nprogress": "0.2.0",
 | 
				
			||||||
    "qrcode.vue": "^1.7.0",
 | 
					    "qrcode.vue": "^1.7.0",
 | 
				
			||||||
 | 
					    "qs": "^6.11.2",
 | 
				
			||||||
    "quill": "1.3.7",
 | 
					    "quill": "1.3.7",
 | 
				
			||||||
    "screenfull": "5.0.2",
 | 
					    "screenfull": "5.0.2",
 | 
				
			||||||
    "sortablejs": "1.10.2",
 | 
					    "sortablejs": "1.10.2",
 | 
				
			||||||
    "throttle-debounce": "2.1.0",
 | 
					    "throttle-debounce": "2.1.0",
 | 
				
			||||||
 | 
					    "video.js": "^8.5.2",
 | 
				
			||||||
    "vue": "2.7.14",
 | 
					    "vue": "2.7.14",
 | 
				
			||||||
    "vue-count-to": "1.0.13",
 | 
					    "vue-count-to": "1.0.13",
 | 
				
			||||||
    "vue-cropper": "0.5.8",
 | 
					    "vue-cropper": "0.5.8",
 | 
				
			||||||
    "vue-meta": "^2.4.0",
 | 
					    "vue-meta": "^2.4.0",
 | 
				
			||||||
 | 
					    "vue-plugin-hiprint": "0.0.54-fix",
 | 
				
			||||||
    "vue-quill-editor": "^3.0.6",
 | 
					    "vue-quill-editor": "^3.0.6",
 | 
				
			||||||
    "vue-router": "3.4.9",
 | 
					    "vue-router": "3.4.9",
 | 
				
			||||||
    "vue-video-player": "^5.0.2",
 | 
					    "vue-video-player": "^5.0.2",
 | 
				
			||||||
    "vuedraggable": "2.24.3",
 | 
					    "vuedraggable": "2.24.3",
 | 
				
			||||||
    "vuex": "3.6.2",
 | 
					    "vuex": "3.6.2",
 | 
				
			||||||
    "xml-js": "1.6.11"
 | 
					    "xlsx": "^0.18.5",
 | 
				
			||||||
 | 
					    "xml-js": "1.6.11",
 | 
				
			||||||
 | 
					    "yorkie": "^2.0.0"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@vue/cli-plugin-babel": "4.5.18",
 | 
					    "@vue/cli-plugin-babel": "4.5.18",
 | 
				
			||||||
@@ -88,7 +97,7 @@
 | 
				
			|||||||
    "chalk": "4.1.0",
 | 
					    "chalk": "4.1.0",
 | 
				
			||||||
    "compression-webpack-plugin": "5.0.2",
 | 
					    "compression-webpack-plugin": "5.0.2",
 | 
				
			||||||
    "connect": "3.6.6",
 | 
					    "connect": "3.6.6",
 | 
				
			||||||
    "eslint": "7.15.0",
 | 
					    "eslint": "6.8.0",
 | 
				
			||||||
    "eslint-config-airbnb-base": "^14.0.0",
 | 
					    "eslint-config-airbnb-base": "^14.0.0",
 | 
				
			||||||
    "eslint-plugin-import": "^2.26.0",
 | 
					    "eslint-plugin-import": "^2.26.0",
 | 
				
			||||||
    "eslint-plugin-prettier": "^3.1.0",
 | 
					    "eslint-plugin-prettier": "^3.1.0",
 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 2.0 KiB  | 
@@ -2,215 +2,217 @@
 | 
				
			|||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
  <meta charset="utf-8">
 | 
						<meta charset="utf-8" />
 | 
				
			||||||
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 | 
						<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
 | 
				
			||||||
  <meta name="renderer" content="webkit">
 | 
						<meta name="renderer" content="webkit" />
 | 
				
			||||||
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
 | 
						<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
 | 
				
			||||||
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
 | 
						<link rel="stylesheet" type="text/css" media="print" href="<%= BASE_URL %>print-lock.css">
 | 
				
			||||||
  <title>
 | 
						<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
 | 
				
			||||||
    <%= webpackConfig.name %>
 | 
						<title>
 | 
				
			||||||
  </title>
 | 
							<%= webpackConfig.name %>
 | 
				
			||||||
  <!--[if lt IE 11]><script>window.location.href='html/ie.html';</script><![endif]-->
 | 
						</title>
 | 
				
			||||||
  <style>
 | 
						<!--[if lt IE 11]>
 | 
				
			||||||
    html,
 | 
								<script>
 | 
				
			||||||
    body,
 | 
									window.location.href = 'html/ie.html';
 | 
				
			||||||
    #app {
 | 
								</script>
 | 
				
			||||||
      height: 100%;
 | 
							<![endif]-->
 | 
				
			||||||
      margin: 0px;
 | 
						<style>
 | 
				
			||||||
      padding: 0px;
 | 
							html,
 | 
				
			||||||
    }
 | 
							body,
 | 
				
			||||||
 | 
							#app {
 | 
				
			||||||
 | 
								height: 100%;
 | 
				
			||||||
 | 
								margin: 0px;
 | 
				
			||||||
 | 
								padding: 0px;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .chromeframe {
 | 
							.chromeframe {
 | 
				
			||||||
      margin: 0.2em 0;
 | 
								margin: 0.2em 0;
 | 
				
			||||||
      background: #ccc;
 | 
								background: #ccc;
 | 
				
			||||||
      color: #000;
 | 
								color: #000;
 | 
				
			||||||
      padding: 0.2em 0;
 | 
								padding: 0.2em 0;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader-wrapper {
 | 
							#loader-wrapper {
 | 
				
			||||||
      position: fixed;
 | 
								position: fixed;
 | 
				
			||||||
      top: 0;
 | 
								top: 0;
 | 
				
			||||||
      left: 0;
 | 
								left: 0;
 | 
				
			||||||
      width: 100%;
 | 
								width: 100%;
 | 
				
			||||||
      height: 100%;
 | 
								height: 100%;
 | 
				
			||||||
      z-index: 999999;
 | 
								z-index: 999999;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader {
 | 
							#loader {
 | 
				
			||||||
      display: block;
 | 
								display: block;
 | 
				
			||||||
      position: relative;
 | 
								position: relative;
 | 
				
			||||||
      left: 50%;
 | 
								left: 50%;
 | 
				
			||||||
      top: 50%;
 | 
								top: 50%;
 | 
				
			||||||
      width: 150px;
 | 
								width: 150px;
 | 
				
			||||||
      height: 150px;
 | 
								height: 150px;
 | 
				
			||||||
      margin: -75px 0 0 -75px;
 | 
								margin: -75px 0 0 -75px;
 | 
				
			||||||
      border-radius: 50%;
 | 
								border-radius: 50%;
 | 
				
			||||||
      border: 3px solid transparent;
 | 
								border: 3px solid transparent;
 | 
				
			||||||
      border-top-color: #FFF;
 | 
								border-top-color: #fff;
 | 
				
			||||||
      -webkit-animation: spin 2s linear infinite;
 | 
								-webkit-animation: spin 2s linear infinite;
 | 
				
			||||||
      -ms-animation: spin 2s linear infinite;
 | 
								-ms-animation: spin 2s linear infinite;
 | 
				
			||||||
      -moz-animation: spin 2s linear infinite;
 | 
								-moz-animation: spin 2s linear infinite;
 | 
				
			||||||
      -o-animation: spin 2s linear infinite;
 | 
								-o-animation: spin 2s linear infinite;
 | 
				
			||||||
      animation: spin 2s linear infinite;
 | 
								animation: spin 2s linear infinite;
 | 
				
			||||||
      z-index: 1001;
 | 
								z-index: 1001;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader:before {
 | 
							#loader:before {
 | 
				
			||||||
      content: "";
 | 
								content: '';
 | 
				
			||||||
      position: absolute;
 | 
								position: absolute;
 | 
				
			||||||
      top: 5px;
 | 
								top: 5px;
 | 
				
			||||||
      left: 5px;
 | 
								left: 5px;
 | 
				
			||||||
      right: 5px;
 | 
								right: 5px;
 | 
				
			||||||
      bottom: 5px;
 | 
								bottom: 5px;
 | 
				
			||||||
      border-radius: 50%;
 | 
								border-radius: 50%;
 | 
				
			||||||
      border: 3px solid transparent;
 | 
								border: 3px solid transparent;
 | 
				
			||||||
      border-top-color: #FFF;
 | 
								border-top-color: #fff;
 | 
				
			||||||
      -webkit-animation: spin 3s linear infinite;
 | 
								-webkit-animation: spin 3s linear infinite;
 | 
				
			||||||
      -moz-animation: spin 3s linear infinite;
 | 
								-moz-animation: spin 3s linear infinite;
 | 
				
			||||||
      -o-animation: spin 3s linear infinite;
 | 
								-o-animation: spin 3s linear infinite;
 | 
				
			||||||
      -ms-animation: spin 3s linear infinite;
 | 
								-ms-animation: spin 3s linear infinite;
 | 
				
			||||||
      animation: spin 3s linear infinite;
 | 
								animation: spin 3s linear infinite;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader:after {
 | 
							#loader:after {
 | 
				
			||||||
      content: "";
 | 
								content: '';
 | 
				
			||||||
      position: absolute;
 | 
								position: absolute;
 | 
				
			||||||
      top: 15px;
 | 
								top: 15px;
 | 
				
			||||||
      left: 15px;
 | 
								left: 15px;
 | 
				
			||||||
      right: 15px;
 | 
								right: 15px;
 | 
				
			||||||
      bottom: 15px;
 | 
								bottom: 15px;
 | 
				
			||||||
      border-radius: 50%;
 | 
								border-radius: 50%;
 | 
				
			||||||
      border: 3px solid transparent;
 | 
								border: 3px solid transparent;
 | 
				
			||||||
      border-top-color: #FFF;
 | 
								border-top-color: #fff;
 | 
				
			||||||
      -moz-animation: spin 1.5s linear infinite;
 | 
								-moz-animation: spin 1.5s linear infinite;
 | 
				
			||||||
      -o-animation: spin 1.5s linear infinite;
 | 
								-o-animation: spin 1.5s linear infinite;
 | 
				
			||||||
      -ms-animation: spin 1.5s linear infinite;
 | 
								-ms-animation: spin 1.5s linear infinite;
 | 
				
			||||||
      -webkit-animation: spin 1.5s linear infinite;
 | 
								-webkit-animation: spin 1.5s linear infinite;
 | 
				
			||||||
      animation: spin 1.5s linear infinite;
 | 
								animation: spin 1.5s linear infinite;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@-webkit-keyframes spin {
 | 
				
			||||||
 | 
								0% {
 | 
				
			||||||
 | 
									-webkit-transform: rotate(0deg);
 | 
				
			||||||
 | 
									-ms-transform: rotate(0deg);
 | 
				
			||||||
 | 
									transform: rotate(0deg);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @-webkit-keyframes spin {
 | 
								100% {
 | 
				
			||||||
      0% {
 | 
									-webkit-transform: rotate(360deg);
 | 
				
			||||||
        -webkit-transform: rotate(0deg);
 | 
									-ms-transform: rotate(360deg);
 | 
				
			||||||
        -ms-transform: rotate(0deg);
 | 
									transform: rotate(360deg);
 | 
				
			||||||
        transform: rotate(0deg);
 | 
								}
 | 
				
			||||||
      }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      100% {
 | 
							@keyframes spin {
 | 
				
			||||||
        -webkit-transform: rotate(360deg);
 | 
								0% {
 | 
				
			||||||
        -ms-transform: rotate(360deg);
 | 
									-webkit-transform: rotate(0deg);
 | 
				
			||||||
        transform: rotate(360deg);
 | 
									-ms-transform: rotate(0deg);
 | 
				
			||||||
      }
 | 
									transform: rotate(0deg);
 | 
				
			||||||
    }
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @keyframes spin {
 | 
								100% {
 | 
				
			||||||
      0% {
 | 
									-webkit-transform: rotate(360deg);
 | 
				
			||||||
        -webkit-transform: rotate(0deg);
 | 
									-ms-transform: rotate(360deg);
 | 
				
			||||||
        -ms-transform: rotate(0deg);
 | 
									transform: rotate(360deg);
 | 
				
			||||||
        transform: rotate(0deg);
 | 
								}
 | 
				
			||||||
      }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      100% {
 | 
							#loader-wrapper .loader-section {
 | 
				
			||||||
        -webkit-transform: rotate(360deg);
 | 
								position: fixed;
 | 
				
			||||||
        -ms-transform: rotate(360deg);
 | 
								top: 0;
 | 
				
			||||||
        transform: rotate(360deg);
 | 
								width: 51%;
 | 
				
			||||||
      }
 | 
								height: 100%;
 | 
				
			||||||
    }
 | 
								background: #7171c6;
 | 
				
			||||||
 | 
								z-index: 1000;
 | 
				
			||||||
 | 
								-webkit-transform: translateX(0);
 | 
				
			||||||
 | 
								-ms-transform: translateX(0);
 | 
				
			||||||
 | 
								transform: translateX(0);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							#loader-wrapper .loader-section.section-left {
 | 
				
			||||||
 | 
								left: 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader-wrapper .loader-section {
 | 
							#loader-wrapper .loader-section.section-right {
 | 
				
			||||||
      position: fixed;
 | 
								right: 0;
 | 
				
			||||||
      top: 0;
 | 
							}
 | 
				
			||||||
      width: 51%;
 | 
					 | 
				
			||||||
      height: 100%;
 | 
					 | 
				
			||||||
      background: #7171C6;
 | 
					 | 
				
			||||||
      z-index: 1000;
 | 
					 | 
				
			||||||
      -webkit-transform: translateX(0);
 | 
					 | 
				
			||||||
      -ms-transform: translateX(0);
 | 
					 | 
				
			||||||
      transform: translateX(0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader-wrapper .loader-section.section-left {
 | 
							.loaded #loader-wrapper .loader-section.section-left {
 | 
				
			||||||
      left: 0;
 | 
								-webkit-transform: translateX(-100%);
 | 
				
			||||||
    }
 | 
								-ms-transform: translateX(-100%);
 | 
				
			||||||
 | 
								transform: translateX(-100%);
 | 
				
			||||||
 | 
								-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
 | 
				
			||||||
 | 
								transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #loader-wrapper .loader-section.section-right {
 | 
							.loaded #loader-wrapper .loader-section.section-right {
 | 
				
			||||||
      right: 0;
 | 
								-webkit-transform: translateX(100%);
 | 
				
			||||||
    }
 | 
								-ms-transform: translateX(100%);
 | 
				
			||||||
 | 
								transform: translateX(100%);
 | 
				
			||||||
 | 
								-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
 | 
				
			||||||
 | 
								transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.loaded #loader {
 | 
				
			||||||
 | 
								opacity: 0;
 | 
				
			||||||
 | 
								-webkit-transition: all 0.3s ease-out;
 | 
				
			||||||
 | 
								transition: all 0.3s ease-out;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .loaded #loader-wrapper .loader-section.section-left {
 | 
							.loaded #loader-wrapper {
 | 
				
			||||||
      -webkit-transform: translateX(-100%);
 | 
								visibility: hidden;
 | 
				
			||||||
      -ms-transform: translateX(-100%);
 | 
								-webkit-transform: translateY(-100%);
 | 
				
			||||||
      transform: translateX(-100%);
 | 
								-ms-transform: translateY(-100%);
 | 
				
			||||||
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
 | 
								transform: translateY(-100%);
 | 
				
			||||||
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
 | 
								-webkit-transition: all 0.3s 1s ease-out;
 | 
				
			||||||
    }
 | 
								transition: all 0.3s 1s ease-out;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .loaded #loader-wrapper .loader-section.section-right {
 | 
							.no-js #loader-wrapper {
 | 
				
			||||||
      -webkit-transform: translateX(100%);
 | 
								display: none;
 | 
				
			||||||
      -ms-transform: translateX(100%);
 | 
							}
 | 
				
			||||||
      transform: translateX(100%);
 | 
					 | 
				
			||||||
      -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
 | 
					 | 
				
			||||||
      transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .loaded #loader {
 | 
							.no-js h1 {
 | 
				
			||||||
      opacity: 0;
 | 
								color: #222222;
 | 
				
			||||||
      -webkit-transition: all 0.3s ease-out;
 | 
							}
 | 
				
			||||||
      transition: all 0.3s ease-out;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .loaded #loader-wrapper {
 | 
							#loader-wrapper .load_title {
 | 
				
			||||||
      visibility: hidden;
 | 
								font-family: 'Open Sans';
 | 
				
			||||||
      -webkit-transform: translateY(-100%);
 | 
								color: #fff;
 | 
				
			||||||
      -ms-transform: translateY(-100%);
 | 
								font-size: 19px;
 | 
				
			||||||
      transform: translateY(-100%);
 | 
								width: 100%;
 | 
				
			||||||
      -webkit-transition: all 0.3s 1s ease-out;
 | 
								text-align: center;
 | 
				
			||||||
      transition: all 0.3s 1s ease-out;
 | 
								z-index: 9999999999999;
 | 
				
			||||||
    }
 | 
								position: absolute;
 | 
				
			||||||
 | 
								top: 60%;
 | 
				
			||||||
 | 
								opacity: 1;
 | 
				
			||||||
 | 
								line-height: 30px;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .no-js #loader-wrapper {
 | 
							#loader-wrapper .load_title span {
 | 
				
			||||||
      display: none;
 | 
								font-weight: normal;
 | 
				
			||||||
    }
 | 
								font-style: italic;
 | 
				
			||||||
 | 
								font-size: 13px;
 | 
				
			||||||
    .no-js h1 {
 | 
								color: #fff;
 | 
				
			||||||
      color: #222222;
 | 
								opacity: 0.5;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
						</style>
 | 
				
			||||||
    #loader-wrapper .load_title {
 | 
					 | 
				
			||||||
      font-family: 'Open Sans';
 | 
					 | 
				
			||||||
      color: #FFF;
 | 
					 | 
				
			||||||
      font-size: 19px;
 | 
					 | 
				
			||||||
      width: 100%;
 | 
					 | 
				
			||||||
      text-align: center;
 | 
					 | 
				
			||||||
      z-index: 9999999999999;
 | 
					 | 
				
			||||||
      position: absolute;
 | 
					 | 
				
			||||||
      top: 60%;
 | 
					 | 
				
			||||||
      opacity: 1;
 | 
					 | 
				
			||||||
      line-height: 30px;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #loader-wrapper .load_title span {
 | 
					 | 
				
			||||||
      font-weight: normal;
 | 
					 | 
				
			||||||
      font-style: italic;
 | 
					 | 
				
			||||||
      font-size: 13px;
 | 
					 | 
				
			||||||
      color: #FFF;
 | 
					 | 
				
			||||||
      opacity: 0.5;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  </style>
 | 
					 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
  <div id="app">
 | 
						<div id="app">
 | 
				
			||||||
    <div id="loader-wrapper">
 | 
							<div id="loader-wrapper">
 | 
				
			||||||
      <div id="loader"></div>
 | 
								<div id="loader"></div>
 | 
				
			||||||
      <div class="loader-section section-left"></div>
 | 
								<div class="loader-section section-left"></div>
 | 
				
			||||||
      <div class="loader-section section-right"></div>
 | 
								<div class="loader-section section-right"></div>
 | 
				
			||||||
      <div class="load_title">正在加载系统资源,请耐心等待</div>
 | 
								<div class="load_title">正在加载系统资源,请耐心等待</div>
 | 
				
			||||||
    </div>
 | 
							</div>
 | 
				
			||||||
  </div>
 | 
						</div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										339
									
								
								public/print-lock.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,339 @@
 | 
				
			|||||||
 | 
					@media print {
 | 
				
			||||||
 | 
					  body {
 | 
				
			||||||
 | 
					    margin: 0px;
 | 
				
			||||||
 | 
					    padding: 0px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@page {
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper * {
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  -moz-box-sizing: border-box; /* Firefox */
 | 
				
			||||||
 | 
					  -webkit-box-sizing: border-box; /* Safari */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper *:focus {
 | 
				
			||||||
 | 
					  outline: -webkit-focus-ring-color auto 0px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper {
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  padding: 0 0 0 0;
 | 
				
			||||||
 | 
					  page-break-after: always;
 | 
				
			||||||
 | 
					  -webkit-user-select: none; /* Chrome/Safari/Opera */
 | 
				
			||||||
 | 
					  -moz-user-select: none; /* Firefox */
 | 
				
			||||||
 | 
					  user-select: none;
 | 
				
			||||||
 | 
					  overflow-x: hidden;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper .hiprint-printPaper-content {
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 火狐浏览器打印 第一页过后 重叠问题 */
 | 
				
			||||||
 | 
					@-moz-document url-prefix() {
 | 
				
			||||||
 | 
					  .hiprint-printPaper .hiprint-printPaper-content {
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    margin-top: 20px;
 | 
				
			||||||
 | 
					    top: -20px
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper.design {
 | 
				
			||||||
 | 
					  overflow: visible;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printTemplate .hiprint-printPanel {
 | 
				
			||||||
 | 
					  page-break-after: always;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper, hiprint-printPanel {
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  border: 0px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPanel .hiprint-printPaper:last-child {
 | 
				
			||||||
 | 
					  page-break-after: avoid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printTemplate .hiprint-printPanel:last-child {
 | 
				
			||||||
 | 
					  page-break-after: avoid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper .hideheaderLinetarget {
 | 
				
			||||||
 | 
					  border-top: 0px dashed rgb(201, 190, 190) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper .hidefooterLinetarget {
 | 
				
			||||||
 | 
					  border-top: 0px dashed rgb(201, 190, 190) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper.design {
 | 
				
			||||||
 | 
					  border: 1px dashed rgba(170, 170, 170, 0.7);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content {
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.design .resize-panel {
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  border: 1px dotted;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-text {
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					  background-repeat: repeat;
 | 
				
			||||||
 | 
					  padding: 0 0 0 0;
 | 
				
			||||||
 | 
					  border: 0.75pt none rgb(0, 0, 0);
 | 
				
			||||||
 | 
					  direction: ltr;
 | 
				
			||||||
 | 
					  font-family: 'SimSun';
 | 
				
			||||||
 | 
					  font-size: 9pt;
 | 
				
			||||||
 | 
					  font-style: normal;
 | 
				
			||||||
 | 
					  font-weight: normal;
 | 
				
			||||||
 | 
					  padding-bottom: 0pt;
 | 
				
			||||||
 | 
					  padding-left: 0pt;
 | 
				
			||||||
 | 
					  padding-right: 0pt;
 | 
				
			||||||
 | 
					  padding-top: 0pt;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					  line-height: 9.75pt;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  word-wrap: break-word;
 | 
				
			||||||
 | 
					  word-break: break-all;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.design .hiprint-printElement-text-content {
 | 
				
			||||||
 | 
					  border: 1px dashed rgb(206, 188, 188);
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-longText {
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					  background-repeat: repeat;
 | 
				
			||||||
 | 
					  border: 0.75pt none rgb(0, 0, 0);
 | 
				
			||||||
 | 
					  direction: ltr;
 | 
				
			||||||
 | 
					  font-family: 'SimSun';
 | 
				
			||||||
 | 
					  font-size: 9pt;
 | 
				
			||||||
 | 
					  font-style: normal;
 | 
				
			||||||
 | 
					  font-weight: normal;
 | 
				
			||||||
 | 
					  padding-bottom: 0pt;
 | 
				
			||||||
 | 
					  padding-left: 0pt;
 | 
				
			||||||
 | 
					  padding-right: 0pt;
 | 
				
			||||||
 | 
					  padding-top: 0pt;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					  line-height: 9.75pt;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  word-wrap: break-word;
 | 
				
			||||||
 | 
					  word-break: break-all;
 | 
				
			||||||
 | 
					  /*white-space: pre-wrap*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-table {
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					  background-repeat: repeat;
 | 
				
			||||||
 | 
					  color: rgb(0, 0, 0);
 | 
				
			||||||
 | 
					  border-color: rgb(0, 0, 0);
 | 
				
			||||||
 | 
					  border-style: none;
 | 
				
			||||||
 | 
					  direction: ltr;
 | 
				
			||||||
 | 
					  font-family: 'SimSun';
 | 
				
			||||||
 | 
					  font-size: 9pt;
 | 
				
			||||||
 | 
					  font-style: normal;
 | 
				
			||||||
 | 
					  font-weight: normal;
 | 
				
			||||||
 | 
					  padding-bottom: 0pt;
 | 
				
			||||||
 | 
					  padding-left: 0pt;
 | 
				
			||||||
 | 
					  padding-right: 0pt;
 | 
				
			||||||
 | 
					  padding-top: 0pt;
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					  padding: 0 0 0 0;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  line-height: 9.75pt;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-table thead {
 | 
				
			||||||
 | 
					  background: #e8e8e8;
 | 
				
			||||||
 | 
					  font-weight: 700;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td {
 | 
				
			||||||
 | 
					  border-color: rgb(0, 0, 0);
 | 
				
			||||||
 | 
					  /*border-style: none;*/
 | 
				
			||||||
 | 
					  /*border: 1px solid rgb(0, 0, 0);*/
 | 
				
			||||||
 | 
					  font-weight: normal;
 | 
				
			||||||
 | 
					  direction: ltr;
 | 
				
			||||||
 | 
					  padding-bottom: 0pt;
 | 
				
			||||||
 | 
					  padding-left: 4pt;
 | 
				
			||||||
 | 
					  padding-right: 4pt;
 | 
				
			||||||
 | 
					  padding-top: 0pt;
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					  vertical-align: middle;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  word-wrap: break-word;
 | 
				
			||||||
 | 
					  word-break: break-all;
 | 
				
			||||||
 | 
					  /*line-height: 9.75pt;
 | 
				
			||||||
 | 
					  font-size: 9pt;*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-all {
 | 
				
			||||||
 | 
					  border: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-none {
 | 
				
			||||||
 | 
					  border: 0px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-lr {
 | 
				
			||||||
 | 
					  border-left: 1px solid;
 | 
				
			||||||
 | 
					  border-right: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-left {
 | 
				
			||||||
 | 
					  border-left: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-right {
 | 
				
			||||||
 | 
					  border-right: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-tb {
 | 
				
			||||||
 | 
					  border-top: 1px solid;
 | 
				
			||||||
 | 
					  border-bottom: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-top {
 | 
				
			||||||
 | 
					  border-top: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-bottom {
 | 
				
			||||||
 | 
					  border-bottom: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-td-none td {
 | 
				
			||||||
 | 
					  border: 0px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget-border-td-all td:not(:last-child) {
 | 
				
			||||||
 | 
					  border-right: 1px solid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*.hiprint-printElement-tableTarget tr,*/
 | 
				
			||||||
 | 
					.hiprint-printElement-tableTarget td {
 | 
				
			||||||
 | 
					  height: 18pt;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper .hiprint-paperNumber {
 | 
				
			||||||
 | 
					  font-size: 9pt;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.design .hiprint-printElement-table-handle {
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  height: 21pt;
 | 
				
			||||||
 | 
					  width: 21pt;
 | 
				
			||||||
 | 
					  background: red;
 | 
				
			||||||
 | 
					  z-index: 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printPaper .hiprint-paperNumber-disabled {
 | 
				
			||||||
 | 
					  float: right !important;
 | 
				
			||||||
 | 
					  right: 0 !important;
 | 
				
			||||||
 | 
					  color: gainsboro !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-vline, .hiprint-printElement-hline {
 | 
				
			||||||
 | 
					  border: 0px none rgb(0, 0, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-vline {
 | 
				
			||||||
 | 
					  border-left: 0.75pt solid #000;
 | 
				
			||||||
 | 
					  border-right: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					  border-bottom: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					  border-top: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-hline {
 | 
				
			||||||
 | 
					  border-top: 0.75pt solid #000;
 | 
				
			||||||
 | 
					  border-right: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					  border-bottom: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					  border-left: 0px none rgb(0, 0, 0) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-printElement-oval, .hiprint-printElement-rect {
 | 
				
			||||||
 | 
					  border: 0.75pt solid #000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-middle {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-middle > div {
 | 
				
			||||||
 | 
					  display: grid;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-bottom {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-bottom > div {
 | 
				
			||||||
 | 
					  display: grid;
 | 
				
			||||||
 | 
					  align-items: flex-end;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-wrap {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap {
 | 
				
			||||||
 | 
					  white-space: nowrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-wrap .hiprint-text-content-wrap-clip {
 | 
				
			||||||
 | 
					  white-space: nowrap;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					  text-overflow: clip;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis {
 | 
				
			||||||
 | 
					  white-space: nowrap;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					  text-overflow: ellipsis;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*hi-grid-row */
 | 
				
			||||||
 | 
					.hi-grid-row {
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  height: auto;
 | 
				
			||||||
 | 
					  margin-right: 0;
 | 
				
			||||||
 | 
					  margin-left: 0;
 | 
				
			||||||
 | 
					  zoom: 1;
 | 
				
			||||||
 | 
					  display: block;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hi-grid-row::after, .hi-grid-row::before {
 | 
				
			||||||
 | 
					  display: table;
 | 
				
			||||||
 | 
					  content: '';
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hi-grid-col {
 | 
				
			||||||
 | 
					  display: block;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  float: left;
 | 
				
			||||||
 | 
					  flex: 0 0 auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.table-grid-row {
 | 
				
			||||||
 | 
					  margin-left: -0pt;
 | 
				
			||||||
 | 
					  margin-right: -0pt;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tableGridColumnsGutterRow {
 | 
				
			||||||
 | 
					  padding-left: 0pt;
 | 
				
			||||||
 | 
					  padding-right: 0pt;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hiprint-gridColumnsFooter {
 | 
				
			||||||
 | 
					  text-align: left;
 | 
				
			||||||
 | 
					  clear: both;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								public/static/videos/login.webm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										37
									
								
								src/api/analysis/energyAnalysis.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取走势分析数据
 | 
				
			||||||
 | 
					export function getEnergyTrend(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/energy-analysis/getTrend',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取对比分析数据
 | 
				
			||||||
 | 
					export function getCompare(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/energy-analysis/getCompare',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取同比分析数据(1:季度,2:月;3:日)
 | 
				
			||||||
 | 
					export function getYoy(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/energy-analysis/getYoy',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取环比分析数据(1:月,2:周,3:日)
 | 
				
			||||||
 | 
					export function getQoq(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/energy-analysis/getChain',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										70
									
								
								src/api/base/energyPlc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源实时数据库plc相关
 | 
				
			||||||
 | 
					export function createEnergyPlc(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源实时数据库plc相关
 | 
				
			||||||
 | 
					export function updateEnergyPlc(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源实时数据库plc相关
 | 
				
			||||||
 | 
					export function deleteEnergyPlc(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源实时数据库plc相关
 | 
				
			||||||
 | 
					export function getEnergyPlc(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得实时数据表列表(所有)
 | 
				
			||||||
 | 
					export function getEnergyPlcAll() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取关联表编码
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源实时数据库plc相关分页
 | 
				
			||||||
 | 
					export function getEnergyPlcPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源实时数据库plc相关 Excel
 | 
				
			||||||
 | 
					export function exportEnergyPlcExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/energyPlcConnect.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源与对象的关联关系(一对多)
 | 
				
			||||||
 | 
					export function createEnergyPlcConnect(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源与对象的关联关系(一对多)
 | 
				
			||||||
 | 
					export function updateEnergyPlcConnect(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源与对象的关联关系(一对多)
 | 
				
			||||||
 | 
					export function deleteEnergyPlcConnect(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源与对象的关联关系(一对多)
 | 
				
			||||||
 | 
					export function getEnergyPlcConnect(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源与对象的关联关系(一对多)分页
 | 
				
			||||||
 | 
					export function getEnergyPlcConnectPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源与对象的关联关系(一对多) Excel
 | 
				
			||||||
 | 
					export function exportEnergyPlcConnectExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-connect/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/energyPlcParam.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源plc详细点
 | 
				
			||||||
 | 
					export function createEnergyPlcParam(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源plc详细点
 | 
				
			||||||
 | 
					export function updateEnergyPlcParam(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源plc详细点
 | 
				
			||||||
 | 
					export function deleteEnergyPlcParam(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源plc详细点
 | 
				
			||||||
 | 
					export function getEnergyPlcParam(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源plc详细点分页
 | 
				
			||||||
 | 
					export function getEnergyPlcParamPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源plc详细点 Excel
 | 
				
			||||||
 | 
					export function exportEnergyPlcParamExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-plc-param/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/energyQuantityRealtime.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建后端统计 能源抄表 实时
 | 
				
			||||||
 | 
					export function createEnergyQuantityRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新后端统计 能源抄表 实时
 | 
				
			||||||
 | 
					export function updateEnergyQuantityRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除后端统计 能源抄表 实时
 | 
				
			||||||
 | 
					export function deleteEnergyQuantityRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端统计 能源抄表 实时
 | 
				
			||||||
 | 
					export function getEnergyQuantityRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端统计 能源抄表 实时分页
 | 
				
			||||||
 | 
					export function getEnergyQuantityRealtimePage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出后端统计 能源抄表 实时 Excel
 | 
				
			||||||
 | 
					export function exportEnergyQuantityRealtimeExcel(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-quantity-realtime/export-excel',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										70
									
								
								src/api/base/energyType.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源类型
 | 
				
			||||||
 | 
					export function createEnergyType(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源类型
 | 
				
			||||||
 | 
					export function updateEnergyType(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源类型
 | 
				
			||||||
 | 
					export function deleteEnergyType(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源类型
 | 
				
			||||||
 | 
					export function getEnergyType(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源类型分页
 | 
				
			||||||
 | 
					export function getEnergyTypePage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源类型列表(获取所有)
 | 
				
			||||||
 | 
					export function getEnergyTypeListAll() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源类型编码
 | 
				
			||||||
 | 
					export function getEnergyTypeCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源类型 Excel
 | 
				
			||||||
 | 
					export function exportEnergyTypeExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/energy-type/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										61
									
								
								src/api/base/equipment.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,61 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备
 | 
				
			||||||
 | 
					export function createEquipment(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备
 | 
				
			||||||
 | 
					export function updateEquipment(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备
 | 
				
			||||||
 | 
					export function deleteEquipment(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备
 | 
				
			||||||
 | 
					export function getEquipment(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备分页
 | 
				
			||||||
 | 
					export function getEquipmentPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 获得所有设备列表
 | 
				
			||||||
 | 
					export function getEquipmentAll() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentAttr.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备属性
 | 
				
			||||||
 | 
					export function createEquipmentAttr(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备属性
 | 
				
			||||||
 | 
					export function updateEquipmentAttr(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备属性
 | 
				
			||||||
 | 
					export function deleteEquipmentAttr(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备属性
 | 
				
			||||||
 | 
					export function getEquipmentAttr(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备属性分页
 | 
				
			||||||
 | 
					export function getEquipmentAttrPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备属性 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentAttrExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-attr/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentBindGroup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备与分组绑定
 | 
				
			||||||
 | 
					export function createEquipmentBindGroup(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备与分组绑定
 | 
				
			||||||
 | 
					export function updateEquipmentBindGroup(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备与分组绑定
 | 
				
			||||||
 | 
					export function deleteEquipmentBindGroup(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备与分组绑定
 | 
				
			||||||
 | 
					export function getEquipmentBindGroup(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备与分组绑定分页
 | 
				
			||||||
 | 
					export function getEquipmentBindGroupPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备与分组绑定 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentBindGroupExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-group/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentBindSection.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建工段设备绑定
 | 
				
			||||||
 | 
					export function createEquipmentBindSection(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新工段设备绑定
 | 
				
			||||||
 | 
					export function updateEquipmentBindSection(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除工段设备绑定
 | 
				
			||||||
 | 
					export function deleteEquipmentBindSection(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得工段设备绑定
 | 
				
			||||||
 | 
					export function getEquipmentBindSection(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得工段设备绑定分页
 | 
				
			||||||
 | 
					export function getEquipmentBindSectionPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出工段设备绑定 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentBindSectionExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-bind-section/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentFile.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备文件对应
 | 
				
			||||||
 | 
					export function createEquipmentFile(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备文件对应
 | 
				
			||||||
 | 
					export function updateEquipmentFile(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备文件对应
 | 
				
			||||||
 | 
					export function deleteEquipmentFile(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备文件对应
 | 
				
			||||||
 | 
					export function getEquipmentFile(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备文件对应分页
 | 
				
			||||||
 | 
					export function getEquipmentFilePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备文件对应 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentFileExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-file/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentGroup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备分组(用于同类型不同厂家的设备区分)
 | 
				
			||||||
 | 
					export function createEquipmentGroup(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备分组(用于同类型不同厂家的设备区分)
 | 
				
			||||||
 | 
					export function updateEquipmentGroup(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备分组(用于同类型不同厂家的设备区分)
 | 
				
			||||||
 | 
					export function deleteEquipmentGroup(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备分组(用于同类型不同厂家的设备区分)
 | 
				
			||||||
 | 
					export function getEquipmentGroup(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备分组(用于同类型不同厂家的设备区分)分页
 | 
				
			||||||
 | 
					export function getEquipmentGroupPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备分组(用于同类型不同厂家的设备区分) Excel
 | 
				
			||||||
 | 
					export function exportEquipmentGroupExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentGroupAlarm.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备分组报警明细
 | 
				
			||||||
 | 
					export function createEquipmentGroupAlarm(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备分组报警明细
 | 
				
			||||||
 | 
					export function updateEquipmentGroupAlarm(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备分组报警明细
 | 
				
			||||||
 | 
					export function deleteEquipmentGroupAlarm(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备分组报警明细
 | 
				
			||||||
 | 
					export function getEquipmentGroupAlarm(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备分组报警明细分页
 | 
				
			||||||
 | 
					export function getEquipmentGroupAlarmPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备分组报警明细 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentGroupAlarmExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-group-alarm/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentPlc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建实时数据采集配置
 | 
				
			||||||
 | 
					export function createEquipmentPlc(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新实时数据采集配置
 | 
				
			||||||
 | 
					export function updateEquipmentPlc(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除实时数据采集配置
 | 
				
			||||||
 | 
					export function deleteEquipmentPlc(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得实时数据采集配置
 | 
				
			||||||
 | 
					export function getEquipmentPlc(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得实时数据采集配置分页
 | 
				
			||||||
 | 
					export function getEquipmentPlcPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出实时数据采集配置 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentPlcExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentPlcConnect.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备与实时采集关系表(一对多)
 | 
				
			||||||
 | 
					export function createEquipmentPlcConnect(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备与实时采集关系表(一对多)
 | 
				
			||||||
 | 
					export function updateEquipmentPlcConnect(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备与实时采集关系表(一对多)
 | 
				
			||||||
 | 
					export function deleteEquipmentPlcConnect(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备与实时采集关系表(一对多)
 | 
				
			||||||
 | 
					export function getEquipmentPlcConnect(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备与实时采集关系表(一对多)分页
 | 
				
			||||||
 | 
					export function getEquipmentPlcConnectPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备与实时采集关系表(一对多) Excel
 | 
				
			||||||
 | 
					export function exportEquipmentPlcConnectExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-connect/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentPlcParam.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备数采详情
 | 
				
			||||||
 | 
					export function createEquipmentPlcParam(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备数采详情
 | 
				
			||||||
 | 
					export function updateEquipmentPlcParam(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备数采详情
 | 
				
			||||||
 | 
					export function deleteEquipmentPlcParam(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备数采详情
 | 
				
			||||||
 | 
					export function getEquipmentPlcParam(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备数采详情分页
 | 
				
			||||||
 | 
					export function getEquipmentPlcParamPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备数采详情 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentPlcParamExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-plc-param/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentQuantityLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建后端用 设备生产数量统计表(按一定时间段写入)
 | 
				
			||||||
 | 
					export function createEquipmentQuantityLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新后端用 设备生产数量统计表(按一定时间段写入)
 | 
				
			||||||
 | 
					export function updateEquipmentQuantityLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除后端用 设备生产数量统计表(按一定时间段写入)
 | 
				
			||||||
 | 
					export function deleteEquipmentQuantityLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备生产数量统计表(按一定时间段写入)
 | 
				
			||||||
 | 
					export function getEquipmentQuantityLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备生产数量统计表(按一定时间段写入)分页
 | 
				
			||||||
 | 
					export function getEquipmentQuantityLogPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出后端用 设备生产数量统计表(按一定时间段写入) Excel
 | 
				
			||||||
 | 
					export function exportEquipmentQuantityLogExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-log/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentQuantityRealtime.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建后端用 设备生产数量实时
 | 
				
			||||||
 | 
					export function createEquipmentQuantityRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新后端用 设备生产数量实时
 | 
				
			||||||
 | 
					export function updateEquipmentQuantityRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除后端用 设备生产数量实时
 | 
				
			||||||
 | 
					export function deleteEquipmentQuantityRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备生产数量实时
 | 
				
			||||||
 | 
					export function getEquipmentQuantityRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备生产数量实时分页
 | 
				
			||||||
 | 
					export function getEquipmentQuantityRealtimePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出后端用 设备生产数量实时 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentQuantityRealtimeExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-quantity-realtime/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentStatusLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建后端用 设备工作状态
 | 
				
			||||||
 | 
					export function createEquipmentStatusLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新后端用 设备工作状态
 | 
				
			||||||
 | 
					export function updateEquipmentStatusLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除后端用 设备工作状态
 | 
				
			||||||
 | 
					export function deleteEquipmentStatusLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备工作状态
 | 
				
			||||||
 | 
					export function getEquipmentStatusLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备工作状态分页
 | 
				
			||||||
 | 
					export function getEquipmentStatusLogPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出后端用 设备工作状态 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentStatusLogExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-log/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentStatusRealtime.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建后端用 设备状态实时
 | 
				
			||||||
 | 
					export function createEquipmentStatusRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新后端用 设备状态实时
 | 
				
			||||||
 | 
					export function updateEquipmentStatusRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除后端用 设备状态实时
 | 
				
			||||||
 | 
					export function deleteEquipmentStatusRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备状态实时
 | 
				
			||||||
 | 
					export function getEquipmentStatusRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得后端用 设备状态实时分页
 | 
				
			||||||
 | 
					export function getEquipmentStatusRealtimePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出后端用 设备状态实时 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentStatusRealtimeExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentType.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备类型
 | 
				
			||||||
 | 
					export function createEquipmentType(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备类型
 | 
				
			||||||
 | 
					export function updateEquipmentType(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备类型
 | 
				
			||||||
 | 
					export function deleteEquipmentType(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备类型
 | 
				
			||||||
 | 
					export function getEquipmentType(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备类型分页
 | 
				
			||||||
 | 
					export function getEquipmentTypePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备类型 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentTypeExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/base/equipmentTypeFile.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备类型文件关联
 | 
				
			||||||
 | 
					export function createEquipmentTypeFile(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备类型文件关联
 | 
				
			||||||
 | 
					export function updateEquipmentTypeFile(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备类型文件关联
 | 
				
			||||||
 | 
					export function deleteEquipmentTypeFile(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备类型文件关联
 | 
				
			||||||
 | 
					export function getEquipmentTypeFile(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备类型文件关联分页
 | 
				
			||||||
 | 
					export function getEquipmentTypeFilePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备类型文件关联 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentTypeFileExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-type-file/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/api/base/factory.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					// 获得工厂产线工段设备树形结构
 | 
				
			||||||
 | 
					export function getTree() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/factory/getTree',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -43,6 +43,14 @@ export function getGroupClassesPage(query) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取班组code
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/group-classes/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 导出班次基础信息 Excel
 | 
					// 导出班次基础信息 Excel
 | 
				
			||||||
export function exportGroupClassesExcel(query) {
 | 
					export function exportGroupClassesExcel(query) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,12 +43,18 @@ export function getGroupTeamPage(query) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 导出班组基础信息 Excel
 | 
					// 获取班组code
 | 
				
			||||||
export function exportGroupTeamExcel(query) {
 | 
					export function getCode() {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
    url: '/base/group-team/export-excel',
 | 
					    url: '/base/group-team/getCode',
 | 
				
			||||||
    method: 'get',
 | 
					    method: 'get'
 | 
				
			||||||
    params: query,
 | 
					  })
 | 
				
			||||||
    responseType: 'blob'
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得可用的排班列表
 | 
				
			||||||
 | 
					export function listEnabled() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/group-team/listEnabled',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,54 +1,28 @@
 | 
				
			|||||||
import request from '@/utils/request'
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 创建排班信息
 | 
					// 获取某月预排班-已有排班
 | 
				
			||||||
export function createGroupTeamScheduling(data) {
 | 
					export function getPreset(query) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
    url: '/base/group-team-scheduling/create',
 | 
					    url: '/base/group-team-scheduling/getPreset',
 | 
				
			||||||
    method: 'post',
 | 
					 | 
				
			||||||
    data: data
 | 
					 | 
				
			||||||
  })
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 更新排班信息
 | 
					 | 
				
			||||||
export function updateGroupTeamScheduling(data) {
 | 
					 | 
				
			||||||
  return request({
 | 
					 | 
				
			||||||
    url: '/base/group-team-scheduling/update',
 | 
					 | 
				
			||||||
    method: 'put',
 | 
					 | 
				
			||||||
    data: data
 | 
					 | 
				
			||||||
  })
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 删除排班信息
 | 
					 | 
				
			||||||
export function deleteGroupTeamScheduling(id) {
 | 
					 | 
				
			||||||
  return request({
 | 
					 | 
				
			||||||
    url: '/base/group-team-scheduling/delete?id=' + id,
 | 
					 | 
				
			||||||
    method: 'delete'
 | 
					 | 
				
			||||||
  })
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 获得排班信息
 | 
					 | 
				
			||||||
export function getGroupTeamScheduling(id) {
 | 
					 | 
				
			||||||
  return request({
 | 
					 | 
				
			||||||
    url: '/base/group-team-scheduling/get?id=' + id,
 | 
					 | 
				
			||||||
    method: 'get'
 | 
					 | 
				
			||||||
  })
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 获得排班信息分页
 | 
					 | 
				
			||||||
export function getGroupTeamSchedulingPage(query) {
 | 
					 | 
				
			||||||
  return request({
 | 
					 | 
				
			||||||
    url: '/base/group-team-scheduling/page',
 | 
					 | 
				
			||||||
    method: 'get',
 | 
					    method: 'get',
 | 
				
			||||||
    params: query
 | 
					    params: query
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 导出排班信息 Excel
 | 
					// 批量创建-更新排班信息
 | 
				
			||||||
export function exportGroupTeamSchedulingExcel(query) {
 | 
					export function createOrUpdateList(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
    url: '/base/group-team-scheduling/export-excel',
 | 
					    url: '/base/group-team-scheduling/createOrUpdateList',
 | 
				
			||||||
    method: 'get',
 | 
					    method: 'post',
 | 
				
			||||||
    params: query,
 | 
					    data: data
 | 
				
			||||||
    responseType: 'blob'
 | 
					 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 自动排班,填充上月已有的排班
 | 
				
			||||||
 | 
					export function autoSet(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/group-team-scheduling/autoSet',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/api/base/productionLine.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					// 获得所有工厂产线列表
 | 
				
			||||||
 | 
					export function getLineAll() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/production-line/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/api/base/workshopSection.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					// 获得所有产线工段列表
 | 
				
			||||||
 | 
					export function getWorkShopAll() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/workshop-section/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										24
									
								
								src/api/core/analysis/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: zhp
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 14:07:04
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-13 09:53:45
 | 
				
			||||||
 | 
					 * @LastEditors: zhp
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function getYieldAnalysisPageData(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/production-analysis/getOutput',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function getCT(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/analysis/production-analysis/getCT',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -33,7 +33,13 @@ export function getFactory(id) {
 | 
				
			|||||||
    method: 'get'
 | 
					    method: 'get'
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 获得工厂code
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/factory/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 获得工厂分页
 | 
					// 获得工厂分页
 | 
				
			||||||
export function getFactoryPage(query) {
 | 
					export function getFactoryPage(query) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,14 @@ export function createLineBindProduct(data) {
 | 
				
			|||||||
    data: data
 | 
					    data: data
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 切换产品
 | 
				
			||||||
 | 
					export function switchLineBindProduct(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/line-bind-product/switch',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 更新产线目前生产产品表 主要为更新
 | 
					// 更新产线目前生产产品表 主要为更新
 | 
				
			||||||
export function updateLineBindProduct(data) {
 | 
					export function updateLineBindProduct(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Do not edit
 | 
				
			||||||
 | 
					 * @Date: 2023-08-28 15:30:53
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-10-13 17:08:33
 | 
				
			||||||
 | 
					 * @LastEditors: DY
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
import request from '@/utils/request'
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 创建产线目前生产产品表 主要为更新
 | 
					// 创建产线目前生产产品表 主要为更新
 | 
				
			||||||
@@ -35,11 +42,11 @@ export function getLineBindProductLog(id) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 获得产线目前生产产品表 主要为更新分页
 | 
					// 获得产线目前生产产品表 主要为更新分页
 | 
				
			||||||
export function getLineBindProductLogPage(query) {
 | 
					export function getLineBindProductLogPage(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
    url: '/base/line-bind-product-log/page',
 | 
					    url: '/base/line-bind-product-log/page',
 | 
				
			||||||
    method: 'get',
 | 
					    method: 'post',
 | 
				
			||||||
    params: query
 | 
					    data: data
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,13 @@ export function createProduct(data) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得产品code
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/product/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 更新产品
 | 
					// 更新产品
 | 
				
			||||||
export function updateProduct(data) {
 | 
					export function updateProduct(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: zwq
 | 
				
			||||||
 | 
					 * @Date: 2023-07-26 09:56:38
 | 
				
			||||||
 | 
					 * @LastEditors: zwq
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-08-04 13:59:23
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
import request from '@/utils/request'
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 创建工厂产线
 | 
					// 创建工厂产线
 | 
				
			||||||
@@ -8,7 +15,20 @@ export function createProductionLine(data) {
 | 
				
			|||||||
    data: data
 | 
					    data: data
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 获得产线code
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/production-line/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 获得产线status
 | 
				
			||||||
 | 
					export function getStatus(ids) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/equipment-status-realtime/lineStatus?ids=' + ids,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 更新工厂产线
 | 
					// 更新工厂产线
 | 
				
			||||||
export function updateProductionLine(data) {
 | 
					export function updateProductionLine(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: zhp
 | 
				
			||||||
 | 
					 * @Date: 2023-08-28 14:29:51
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-08-31 14:33:46
 | 
				
			||||||
 | 
					 * @LastEditors: zhp
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
import request from '@/utils/request'
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 创建产线工段
 | 
					// 创建产线工段
 | 
				
			||||||
@@ -9,6 +16,13 @@ export function createWorkshopSection(data) {
 | 
				
			|||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得工段code
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/workshop-section/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// 更新产线工段
 | 
					// 更新产线工段
 | 
				
			||||||
export function updateWorkshopSection(data) {
 | 
					export function updateWorkshopSection(data) {
 | 
				
			||||||
  return request({
 | 
					  return request({
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								src/api/core/monitoring/auto.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Do not edit
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 09:44:53
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-13 16:11:41
 | 
				
			||||||
 | 
					 * @LastEditors: DY
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得工厂分页
 | 
				
			||||||
 | 
					export function getPdlAutoReport(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/production-monitor/getPdlAutoReport',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得所有工厂产线列表
 | 
				
			||||||
 | 
					export function getPdList() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/production-line/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								src/api/core/monitoring/data.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Do not edit
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 09:44:53
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-14 10:25:46
 | 
				
			||||||
 | 
					 * @LastEditors: DY
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得产线统计数据查询
 | 
				
			||||||
 | 
					export function getPdlDataSearch(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/production-monitor/getPdlDataSearch',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得所有工厂产线列表
 | 
				
			||||||
 | 
					export function getPdList() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/production-line/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								src/api/core/monitoring/data24.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Do not edit
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 09:44:53
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-15 14:12:26
 | 
				
			||||||
 | 
					 * @LastEditors: DY
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得近24小时产线生产数据
 | 
				
			||||||
 | 
					export function getPdlDataOneDay(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/production-monitor/getPdlDataOneDay',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								src/api/core/monitoring/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: zhp
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 14:07:04
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-13 09:46:44
 | 
				
			||||||
 | 
					 * @LastEditors: zhp
 | 
				
			||||||
 | 
					 * @Description:
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function getSectionDataSearch(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/production-monitor/getSectionDataSearch',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										33
									
								
								src/api/core/monitoring/sectionStatistics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * @Author: Do not edit
 | 
				
			||||||
 | 
					 * @Date: 2023-09-12 09:44:53
 | 
				
			||||||
 | 
					 * @LastEditTime: 2023-09-14 14:01:12
 | 
				
			||||||
 | 
					 * @LastEditors: DY
 | 
				
			||||||
 | 
					 * @Description: 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得工段自动统计数据查询
 | 
				
			||||||
 | 
					export function getSectionAutoReport(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/production-monitor/getSectionAutoReport',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得所有工厂产线列表
 | 
				
			||||||
 | 
					export function getPdList() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/production-line/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得所有产线工段列表
 | 
				
			||||||
 | 
					export function getWorkshopSectionList() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/base/workshop-section/listAll',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										63
									
								
								src/api/monitoring/energyLimit.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源监控配置
 | 
				
			||||||
 | 
					export function createEnergyLimit(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源监控配置
 | 
				
			||||||
 | 
					export function updateEnergyLimit(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源监控配置
 | 
				
			||||||
 | 
					export function deleteEnergyLimit(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源监控配置
 | 
				
			||||||
 | 
					export function getEnergyLimit(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源监控配置分页
 | 
				
			||||||
 | 
					export function getEnergyLimitPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源监控配置 Excel
 | 
				
			||||||
 | 
					export function exportEnergyLimitExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取详细参数列表
 | 
				
			||||||
 | 
					export function getEnergyParamList(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-limit/listParam',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/monitoring/energyOverlimitLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源超限记录
 | 
				
			||||||
 | 
					export function createEnergyOverlimitLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源超限记录
 | 
				
			||||||
 | 
					export function updateEnergyOverlimitLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源超限记录
 | 
				
			||||||
 | 
					export function deleteEnergyOverlimitLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源超限记录
 | 
				
			||||||
 | 
					export function getEnergyOverlimitLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源超限记录分页
 | 
				
			||||||
 | 
					export function getEnergyOverlimitLogPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源超限记录 Excel
 | 
				
			||||||
 | 
					export function exportEnergyOverlimitLogExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-overlimit-log/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								src/api/monitoring/energyReport.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能耗统计查询分页
 | 
				
			||||||
 | 
					export function energyReportPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-report/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能耗统计报表分页
 | 
				
			||||||
 | 
					export function energyReportPageAuto(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-report/pageAuto',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能耗统计查询
 | 
				
			||||||
 | 
					export function energyReportPageExport(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-report/export',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能耗统计报表
 | 
				
			||||||
 | 
					export function energyReportPageExportAuto(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-report/exportAuto',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										62
									
								
								src/api/monitoring/energyStatistics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源统计主
 | 
				
			||||||
 | 
					export function createEnergyStatistics(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源统计主
 | 
				
			||||||
 | 
					export function updateEnergyStatistics(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源统计主
 | 
				
			||||||
 | 
					export function deleteEnergyStatistics(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源统计主
 | 
				
			||||||
 | 
					export function getEnergyStatistics(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源统计主分页
 | 
				
			||||||
 | 
					export function getEnergyStatisticsPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源统计主 Excel
 | 
				
			||||||
 | 
					export function exportEnergyStatisticsExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获取编码
 | 
				
			||||||
 | 
					export function getCode() {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics/getCode',
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										72
									
								
								src/api/monitoring/energyStatisticsDet.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建能源统计详细表
 | 
				
			||||||
 | 
					export function createEnergyStatisticsDet(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新能源统计详细表
 | 
				
			||||||
 | 
					export function updateEnergyStatisticsDet(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除能源统计详细表
 | 
				
			||||||
 | 
					export function deleteEnergyStatisticsDet(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源统计详细表
 | 
				
			||||||
 | 
					export function getEnergyStatisticsDet(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得能源统计详细表分页
 | 
				
			||||||
 | 
					export function getEnergyStatisticsDetPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/page',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出能源统计详细表 Excel
 | 
				
			||||||
 | 
					export function exportEnergyStatisticsDetExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得 新增参数关联 分页
 | 
				
			||||||
 | 
					export function addParamPage(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/addParamPage',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除(批量)
 | 
				
			||||||
 | 
					export function deleteMany(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/energy-statistics-det/deleteMany',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/monitoring/equipmentAlarmLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备报警日志
 | 
				
			||||||
 | 
					export function createEquipmentAlarmLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备报警日志
 | 
				
			||||||
 | 
					export function updateEquipmentAlarmLog(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备报警日志
 | 
				
			||||||
 | 
					export function deleteEquipmentAlarmLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备报警日志
 | 
				
			||||||
 | 
					export function getEquipmentAlarmLog(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备报警日志分页
 | 
				
			||||||
 | 
					export function getEquipmentAlarmLogPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备报警日志 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentAlarmLogExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-log/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/monitoring/equipmentAlarmRealtime.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建设备报警实时信息
 | 
				
			||||||
 | 
					export function createEquipmentAlarmRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新设备报警实时信息
 | 
				
			||||||
 | 
					export function updateEquipmentAlarmRealtime(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除设备报警实时信息
 | 
				
			||||||
 | 
					export function deleteEquipmentAlarmRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备报警实时信息
 | 
				
			||||||
 | 
					export function getEquipmentAlarmRealtime(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得设备报警实时信息分页
 | 
				
			||||||
 | 
					export function getEquipmentAlarmRealtimePage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出设备报警实时信息 Excel
 | 
				
			||||||
 | 
					export function exportEquipmentAlarmRealtimeExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/equipment-alarm-realtime/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								src/api/monitoring/qualityInspectionRecord.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					import request from '@/utils/request'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 创建质量检查信息记录表
 | 
				
			||||||
 | 
					export function createQualityInspectionRecord(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/create',
 | 
				
			||||||
 | 
					    method: 'post',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 更新质量检查信息记录表
 | 
				
			||||||
 | 
					export function updateQualityInspectionRecord(data) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/update',
 | 
				
			||||||
 | 
					    method: 'put',
 | 
				
			||||||
 | 
					    data: data
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 删除质量检查信息记录表
 | 
				
			||||||
 | 
					export function deleteQualityInspectionRecord(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/delete?id=' + id,
 | 
				
			||||||
 | 
					    method: 'delete'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得质量检查信息记录表
 | 
				
			||||||
 | 
					export function getQualityInspectionRecord(id) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/get?id=' + id,
 | 
				
			||||||
 | 
					    method: 'get'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 获得质量检查信息记录表分页
 | 
				
			||||||
 | 
					export function getQualityInspectionRecordPage(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/page',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 导出质量检查信息记录表 Excel
 | 
				
			||||||
 | 
					export function exportQualityInspectionRecordExcel(query) {
 | 
				
			||||||
 | 
					  return request({
 | 
				
			||||||
 | 
					    url: '/monitoring/quality-inspection-record/export-excel',
 | 
				
			||||||
 | 
					    method: 'get',
 | 
				
			||||||
 | 
					    params: query,
 | 
				
			||||||
 | 
					    responseType: 'blob'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								src/assets/icons/svg/Confirm.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>选择</title>
 | 
				
			||||||
 | 
					    <g id="设备管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="设备监控-设备加工数量" transform="translate(-496.000000, -187.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="选择" transform="translate(496.000000, 187.000000)">
 | 
				
			||||||
 | 
					                <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
 | 
				
			||||||
 | 
					                <path d="M13.8735116,4.65950813 C13.6725171,4.47101195 13.3555167,4.48001613 13.1670206,4.6815213 L6.49899208,11.7809972 L2.85649778,8.19199033 C2.65950812,7.99798414 2.34299153,8 2.14898534,8.19698966 C1.95497916,8.3934955 1.95747883,8.71049591 2.15449536,8.90399141 L6.16199434,12.8519823 C6.16349952,12.8534874 6.1654885,12.8539712 6.16699367,12.8554764 C6.16849884,12.8569816 6.16898266,12.8589706 6.17048783,12.8604757 C6.20198897,12.8904717 6.23999461,12.9074856 6.27649508,12.9274829 C6.29450341,12.9379922 6.3099852,12.953474 6.32898802,12.960973 C6.38798547,12.9839807 6.45047706,12.9959683 6.51248486,12.9959683 C6.57798681,12.9959683 6.64348875,12.9829593 6.70447519,12.9569682 C6.72498319,12.9484747 6.74097566,12.930977 6.75997848,12.919957 C6.79747344,12.8979438 6.83647358,12.8794517 6.86848541,12.8469561 C6.86999058,12.8454509 6.87047439,12.8429512 6.87197956,12.841446 C6.87297405,12.8399409 6.87498991,12.8394571 6.8764682,12.8379519 L13.8949604,5.36594544 C14.0849886,5.16548852 14.0745061,4.8489988 13.8735116,4.65950813 Z" id="路径" fill="#0B58FF"></path>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										14
									
								
								src/assets/icons/svg/Qian.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>菜单</title>
 | 
				
			||||||
 | 
					    <g id="设备管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="设备监控-设备加工数量" transform="translate(-284.000000, -164.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="编组-7" transform="translate(284.000000, 162.000000)">
 | 
				
			||||||
 | 
					                <g id="菜单" transform="translate(0.000000, 2.000000)">
 | 
				
			||||||
 | 
					                    <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
 | 
				
			||||||
 | 
					                    <path d="M3.00057813,4.49926562 L13.0025156,4.49926562 C13.2786563,4.49926562 13.5025156,4.27540625 13.5025156,3.99926563 C13.5025156,3.723125 13.2786563,3.49926563 13.0025156,3.49926563 L3.00057813,3.49926563 C2.7244375,3.49926563 2.50057813,3.723125 2.50057813,3.99926563 C2.50057813,4.27540625 2.7244375,4.49926562 3.00057813,4.49926562 Z M3.0004375,8.48703125 L12.9786875,8.48703125 C13.2548281,8.48703125 13.4786875,8.26317187 13.4786875,7.98703125 C13.4786875,7.71089062 13.2548281,7.48703125 12.9786875,7.48703125 L3.0004375,7.48703125 C2.72429687,7.48703125 2.5004375,7.71089062 2.5004375,7.98703125 C2.5004375,8.26317187 2.72429687,8.48703125 3.0004375,8.48703125 Z M13.0025156,11.4969063 L3.00057813,11.4969063 C2.7244375,11.4969063 2.50057813,11.7207656 2.50057813,11.9969063 C2.50057813,12.2730469 2.7244375,12.4969063 3.00057813,12.4969063 L13.0025156,12.4969063 C13.2786563,12.4969063 13.5025156,12.2730469 13.5025156,11.9969063 C13.5025156,11.7207656 13.2786563,11.4969063 13.0025156,11.4969063 L13.0025156,11.4969063 Z" id="形状" fill="#373738"></path>
 | 
				
			||||||
 | 
					                </g>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.8 KiB  | 
							
								
								
									
										15
									
								
								src/assets/icons/svg/changelogo.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>状态切换备份 3</title>
 | 
				
			||||||
 | 
					    <g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="icon和插图" transform="translate(-877.000000, -246.000000)">
 | 
				
			||||||
 | 
					            <g id="状态切换备份-3" transform="translate(885.000000, 254.000000) rotate(-270.000000) translate(-885.000000, -254.000000) translate(877.000000, 246.000000)">
 | 
				
			||||||
 | 
					                <rect id="矩形" stroke="#979797" fill="#D8D8D8" opacity="0" x="0.5" y="0.5" width="15" height="15"></rect>
 | 
				
			||||||
 | 
					                <g id="错误" transform="translate(0.000000, 0.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					                    <rect id="矩形" fill="#000000" opacity="0" x="0" y="6.4293957e-15" width="16" height="16"></rect>
 | 
				
			||||||
 | 
					                    <path d="M8,1 C11.85,1 15,4.15 15,8 C15,11.85 11.85,15 8,15 C4.15,15 1,11.85 1,8 C1,4.15 4.15,1 8,1 Z M8,2.19926499 C4.80249503,2.19926499 2.18635461,4.80959575 2.18635461,8 C2.18635461,11.1904043 4.80249503,13.800735 8,13.800735 C11.197505,13.800735 13.8136454,11.1904043 13.8136454,8 C13.8136454,4.80959575 11.197505,2.19926499 8,2.19926499 Z M9.18342887,4.39602962 C9.42080763,4.39602962 9.61773566,4.56921978 9.65474747,4.7961346 L9.66099805,4.87359881 L9.66052938,9.97276858 L10.1621026,9.47231604 C10.3071657,9.32725295 10.5223305,9.29501672 10.6985498,9.37560733 L10.7713701,9.41705393 L10.837514,9.47231606 C11.0033004,9.63810246 11.0217211,9.89545015 10.8927761,10.0815835 L10.837514,10.1477274 L9.52115984,11.4640816 C9.38457467,11.600698 9.17913638,11.6415719 9.00066062,11.5676398 C8.84450229,11.5029526 8.73591407,11.3615296 8.71120699,11.1977853 L8.70585968,11.1264012 L8.70585968,4.87359881 C8.70585968,4.60984463 8.91967469,4.39602962 9.18342887,4.39602962 Z M6.99933939,4.43236016 C7.15549771,4.49704738 7.26408594,4.63847045 7.28879302,4.80221473 L7.29414032,4.87359881 L7.29414032,11.1264012 C7.29414032,11.2530604 7.24382515,11.374532 7.15426356,11.4640936 C7.06470196,11.5536552 6.94323037,11.6039704 6.81657114,11.6039704 C6.68991191,11.6039704 6.56844032,11.5536552 6.47887872,11.4640936 C6.40722945,11.3924443 6.36069788,11.3003726 6.34495123,11.2015604 L6.33900196,11.1264012 L6.33858601,6.02634681 L5.83789738,6.52768395 C5.69283427,6.67274705 5.47766955,6.70498329 5.30145018,6.62439268 L5.22862992,6.58294608 L5.162486,6.52768394 C4.9966996,6.36189754 4.97827889,6.10454984 5.10722387,5.91841648 L5.162486,5.85227257 L6.47884017,4.53591839 C6.61542534,4.39930202 6.82086362,4.35842813 6.99933939,4.43236016 Z" id="形状结合" fill="#0B58FF"></path>
 | 
				
			||||||
 | 
					                </g>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 2.7 KiB  | 
							
								
								
									
										13
									
								
								src/assets/icons/svg/downArrow.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>收起箭头小备份 3</title>
 | 
				
			||||||
 | 
					    <g id="能源管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="能源监控-同比分析" transform="translate(-848.000000, -392.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="收起箭头小备份-3" transform="translate(855.000000, 399.000000) scale(1, -1) translate(-855.000000, -399.000000) translate(848.000000, 392.000000)">
 | 
				
			||||||
 | 
					                <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="14" height="14"></rect>
 | 
				
			||||||
 | 
					                <path d="M6.60391666,1.57197282 L7.01633334,1.15897282 L12.70325,6.8441395 C12.9278333,7.06872283 12.93075,7.4408895 12.70325,7.6683895 C12.5941655,7.77825546 12.4457769,7.84009206 12.2909546,7.84020155 C12.1361323,7.84031104 11.9876564,7.77868438 11.8784167,7.66897282 L7.0175,2.8103895 L2.16066666,7.66955616 C2.05160439,7.77930978 1.90326864,7.84102718 1.74854166,7.84102718 C1.59381468,7.84102718 1.44547894,7.77930978 1.33641666,7.66955616 C1.10964988,7.4415567 1.1091291,7.07336285 1.33525,6.84472282 L6.58116666,1.59647282 L6.6045,1.57255616 L6.60391666,1.57197282 Z" id="路径" fill="#FFBD02"></path>
 | 
				
			||||||
 | 
					                <path d="M6.60391666,6.57197282 L7.01633334,6.15897282 L12.70325,11.8441395 C12.9278333,12.0687228 12.93075,12.4408895 12.70325,12.6683895 C12.5941655,12.7782555 12.4457769,12.8400921 12.2909546,12.8402015 C12.1361323,12.840311 11.9876564,12.7786844 11.8784167,12.6689728 L7.0175,7.8103895 L2.16066666,12.6695562 C2.05160439,12.7793098 1.90326864,12.8410272 1.74854166,12.8410272 C1.59381468,12.8410272 1.44547894,12.7793098 1.33641666,12.6695562 C1.10964988,12.4415567 1.1091291,12.0733628 1.33525,11.8447228 L6.58116666,6.59647282 L6.6045,6.57255616 L6.60391666,6.57197282 Z" id="路径备份-2" fill="#FFBD02"></path>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										12
									
								
								src/assets/icons/svg/downward.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>下拉展开</title>
 | 
				
			||||||
 | 
					    <g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="编组-43" transform="translate(-1870.000000, -119.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="下拉展开" transform="translate(1870.000000, 119.000000)">
 | 
				
			||||||
 | 
					                <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="18" height="18"></rect>
 | 
				
			||||||
 | 
					                <path d="M9.79014922,13.2165873 L16.1721224,6.15356667 C16.6092925,5.77338351 16.6092925,5.16518371 16.1721224,4.78500055 C15.964758,4.60350795 15.6800768,4.50112918 15.3827707,4.50112918 C15.0854647,4.50112918 14.8007835,4.60350795 14.5934191,4.78500055 L9.00013482,11.162609 L3.40552499,4.78387137 C3.19816065,4.60237877 2.91347942,4.5 2.61617336,4.5 C2.3188673,4.5 2.03418606,4.60237877 1.82682172,4.78387137 C1.39105943,5.16454327 1.39105943,5.77176559 1.82682172,6.15243749 L8.20879489,13.214329 C8.31400161,13.3066969 8.440317,13.3797143 8.57994259,13.4288732 C8.99637706,13.5753327 9.475517,13.4912854 9.79014922,13.2165873 Z" id="路径" fill="#0B58FF"></path>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										14
									
								
								src/assets/icons/svg/icon-upload.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>上传</title>
 | 
				
			||||||
 | 
					    <g id="组件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.65">
 | 
				
			||||||
 | 
					        <g id="上传_Resources/Button" transform="translate(-12.000000, -9.000000)">
 | 
				
			||||||
 | 
					            <g id="上传" transform="translate(12.000000, 9.000000)">
 | 
				
			||||||
 | 
					                <g id="upload" transform="translate(0.875000, 0.875000)" fill="currentColor" fill-rule="nonzero">
 | 
				
			||||||
 | 
					                    <path d="M5.80371094,0.138085937 C5.8953125,0.046484375 6.01699219,0 6.13867188,0 C6.26035156,0 6.38066406,0.046484375 6.47363281,0.138085937 L8.60371094,2.26953125 C8.78828125,2.45410156 8.78828125,2.75351562 8.60371094,2.93808594 C8.51484375,3.02695312 8.39589844,3.07617188 8.27011719,3.07617188 C8.14433594,3.07617188 8.02539062,3.02695312 7.93652344,2.93808594 L6.61171875,1.61328125 L6.61171875,9.51289062 C6.61171875,9.77402344 6.39980469,9.9859375 6.13867188,9.9859375 C5.87753906,9.9859375 5.665625,9.77402344 5.665625,9.51289062 L5.665625,1.61328125 L4.34082031,2.93808594 C4.15625,3.12265625 3.85683594,3.12265625 3.67363281,2.93808594 C3.4890625,2.75351562 3.4890625,2.45410156 3.67226563,2.26953125 L5.80371094,0.138085937 Z M11.7769531,7.88046875 C11.5158203,7.88046875 11.3039063,8.09238281 11.3039063,8.35351563 L11.3039063,11.025 C11.3039063,11.1794922 11.178125,11.3066406 11.0222656,11.3066406 L1.22636719,11.3066406 C1.071875,11.3066406 0.944726562,11.1808594 0.944726562,11.025 L0.944726562,8.35214844 C0.944726562,8.09101563 0.7328125,7.87910156 0.471679688,7.87910156 C0.210546875,7.87910156 0,8.09238281 0,8.35214844 L0,11.3996094 C0,11.8685547 0.381445313,12.2486328 0.849023437,12.2486328 L11.4009766,12.2486328 C11.8699219,12.2486328 12.25,11.8671875 12.25,11.3996094 L12.25,8.35214844 C12.25,8.09238281 12.0380859,7.88046875 11.7769531,7.88046875 Z" id="Shape"></path>
 | 
				
			||||||
 | 
					                </g>
 | 
				
			||||||
 | 
					                <rect id="Rectangle-49" x="0" y="0" width="14" height="14"></rect>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
							
								
								
									
										10
									
								
								src/assets/icons/svg/toggle.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>切换</title>
 | 
				
			||||||
 | 
					    <g id="1班组管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="切换" fill="#FFFFFF" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <rect id="矩形" opacity="0" x="0" y="0" width="16" height="16"></rect>
 | 
				
			||||||
 | 
					            <path d="M14.5,9.15 C14.969442,9.15 15.35,9.53055796 15.35,10 C15.35,10.4333311 15.0257376,10.7909267 14.6066222,10.8433773 L14.5,10.85 L3.523,10.8493636 L5.10448737,12.4305126 C5.26177017,12.5877954 5.34716031,12.7990496 5.34764236,13.015701 L5.34074746,13.1242515 L5.31933966,13.2323523 C5.24258033,13.518822 5.01882201,13.7425803 4.73235229,13.8193397 C4.48169128,13.8865041 4.21633806,13.832194 4.01342676,13.6770775 L3.93051263,13.6044874 L1.04232939,10.7055042 C0.831903536,10.5688042 0.689345737,10.3541899 0.656994192,10.1075365 L0.65,10 L0.65778959,9.88152374 C0.670925502,9.77175364 0.705946489,9.66606949 0.76033092,9.57061601 L0.821076439,9.47880032 L0.894170559,9.39517056 C1.02591288,9.26342824 1.19742791,9.1808136 1.37731459,9.15882561 L1.5,9.15 L14.5,9.15 Z M11.9865732,2.32292254 L12.0694874,2.39551263 L14.9508862,5.29019827 C15.1653597,5.42263107 15.3074642,5.64305498 15.3419246,5.89182346 L15.35,6 L15.3417548,6.1198336 C15.3282251,6.22918814 15.2930578,6.33441548 15.2387207,6.42946868 L15.1780851,6.52090655 L15.1052179,6.60421789 C14.9738843,6.73555151 14.8030912,6.81820523 14.622959,6.840766 L14.5,6.85 L1.5,6.85 C1.03055796,6.85 0.65,6.46944204 0.65,6 C0.65,5.56666889 0.974262406,5.20907332 1.39337781,5.15662271 L1.5,5.15 L12.475,5.14936355 L10.8955126,3.56948738 C10.7382298,3.41220459 10.6528397,3.20095039 10.6523576,2.98429905 L10.6592525,2.8757485 L10.6806603,2.76764771 C10.7478247,2.5169867 10.9275353,2.31433911 11.1633258,2.21617103 L11.2676477,2.18066033 C11.5183087,2.11349592 11.7836619,2.167806 11.9865732,2.32292254 Z" id="形状结合"></path>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										13
									
								
								src/assets/icons/svg/upArrow.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>收起箭头小备份 11</title>
 | 
				
			||||||
 | 
					    <g id="能源管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="能源监控-同比分析" transform="translate(-848.000000, -269.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="收起箭头小备份-11" transform="translate(848.000000, 269.000000)">
 | 
				
			||||||
 | 
					                <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="14" height="14"></rect>
 | 
				
			||||||
 | 
					                <path d="M6.60391666,1.57197282 L7.01633334,1.15897282 L12.70325,6.8441395 C12.9278333,7.06872283 12.93075,7.4408895 12.70325,7.6683895 C12.5941655,7.77825546 12.4457769,7.84009206 12.2909546,7.84020155 C12.1361323,7.84031104 11.9876564,7.77868438 11.8784167,7.66897282 L7.0175,2.8103895 L2.16066666,7.66955616 C2.05160439,7.77930978 1.90326864,7.84102718 1.74854166,7.84102718 C1.59381468,7.84102718 1.44547894,7.77930978 1.33641666,7.66955616 C1.10964988,7.4415567 1.1091291,7.07336285 1.33525,6.84472282 L6.58116666,1.59647282 L6.6045,1.57255616 L6.60391666,1.57197282 Z" id="路径" fill="#37D97F"></path>
 | 
				
			||||||
 | 
					                <path d="M6.60391666,6.57197282 L7.01633334,6.15897282 L12.70325,11.8441395 C12.9278333,12.0687228 12.93075,12.4408895 12.70325,12.6683895 C12.5941655,12.7782555 12.4457769,12.8400921 12.2909546,12.8402015 C12.1361323,12.840311 11.9876564,12.7786844 11.8784167,12.6689728 L7.0175,7.8103895 L2.16066666,12.6695562 C2.05160439,12.7793098 1.90326864,12.8410272 1.74854166,12.8410272 C1.59381468,12.8410272 1.44547894,12.7793098 1.33641666,12.6695562 C1.10964988,12.4415567 1.1091291,12.0733628 1.33525,11.8447228 L6.58116666,6.59647282 L6.6045,6.57255616 L6.60391666,6.57197282 Z" id="路径备份-2" fill="#37D97F"></path>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
							
								
								
									
										14
									
								
								src/assets/icons/svg/upward.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 | 
				
			||||||
 | 
					    <title>收起</title>
 | 
				
			||||||
 | 
					    <g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
 | 
				
			||||||
 | 
					        <g id="编组-43" transform="translate(-1870.000000, -485.000000)" fill-rule="nonzero">
 | 
				
			||||||
 | 
					            <g id="编组-18备份" transform="translate(1.000000, 366.000000)">
 | 
				
			||||||
 | 
					                <g id="收起" transform="translate(1878.000000, 128.000000) scale(1, -1) translate(-1878.000000, -128.000000) translate(1869.000000, 119.000000)">
 | 
				
			||||||
 | 
					                    <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="18" height="18"></rect>
 | 
				
			||||||
 | 
					                    <path d="M9.79014922,13.2165873 L16.1721224,6.15356667 C16.6092925,5.77338351 16.6092925,5.16518371 16.1721224,4.78500055 C15.964758,4.60350795 15.6800768,4.50112918 15.3827707,4.50112918 C15.0854647,4.50112918 14.8007835,4.60350795 14.5934191,4.78500055 L9.00013482,11.162609 L3.40552499,4.78387137 C3.19816065,4.60237877 2.91347942,4.5 2.61617336,4.5 C2.3188673,4.5 2.03418606,4.60237877 1.82682172,4.78387137 C1.39105943,5.16454327 1.39105943,5.77176559 1.82682172,6.15243749 L8.20879489,13.214329 C8.31400161,13.3066969 8.440317,13.3797143 8.57994259,13.4288732 C8.99637706,13.5753327 9.475517,13.4912854 9.79014922,13.2165873 Z" id="路径" fill="#0B58FF"></path>
 | 
				
			||||||
 | 
					                </g>
 | 
				
			||||||
 | 
					            </g>
 | 
				
			||||||
 | 
					        </g>
 | 
				
			||||||
 | 
					    </g>
 | 
				
			||||||
 | 
					</svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/DataBoard.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 10 MiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/Qian.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 612 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/default-file-icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/factory-icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 710 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/login-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 137 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/no-data-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 205 KiB  | 
@@ -1 +1 @@
 | 
				
			|||||||
<svg t="1627279997305" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11904" width="40" height="40"><path d="M938.7008 669.525333L938.7008 249.412267c0-90.555733-73.5232-164.078933-164.1472-164.078933L249.378133 85.333333c-90.555733 0-164.078933 73.48906699-164.078933 164.078933l0 525.2096c0 90.555733 73.454933 164.078933 164.07893301 164.078933l525.20959999 0c80.725333 0 147.8656-58.368 161.553067-135.099733-43.52-18.8416-232.106667-100.283733-330.376533-147.182933-74.786133 90.589867-153.088 144.930133-271.121067 144.930133s-196.81279999-72.704-187.357867-161.655467c6.2464-58.402133 46.2848-153.9072 220.296533-137.5232 91.682133 8.6016 133.666133 25.736533 208.418133 50.414933 19.3536-35.4304 35.4304-74.513067 47.616-116.0192L292.0448 436.565333l0-32.8704 164.0448 0 0-58.9824L256 344.712533l1e-8-36.181333 200.12373299 0L456.123733 223.3344c0 0 1.809067-13.312 16.520533-13.31200001l82.056533 1e-8 0 98.474667 213.333333 0 0 36.181333-213.333333 1e-8 0 58.98239999 174.045867 0c-16.00853301 65.1264-40.277333 124.962133-70.690133 177.220267C708.608 599.176533 938.7008 669.525333 938.7008 669.525333L938.7008 669.525333 938.7008 669.525333 938.7008 669.525333zM321.57013299 744.994133c-124.7232 0-144.452267-78.7456-137.83039999-111.65013299 6.5536-32.733867 42.666667-75.502933 112.0256-75.50293301 79.6672 0 151.04 20.445867 236.714667 62.088533C472.302933 698.333867 398.370133 744.994133 321.57013299 744.994133L321.57013299 744.994133 321.57013299 744.994133zM321.57013299 744.994133" fill="#1296db" p-id="11905"></path></svg>
 | 
					<svg t="1627279997305" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11904" width="40" height="40"><path d="M938.7008 669.525333L938.7008 249.412267c0-90.555733-73.5232-164.078933-164.1472-164.078933L249.378133 85.333333c-90.555733 0-164.078933 73.48906699-164.078933 164.078933l0 525.2096c0 90.555733 73.454933 164.078933 164.07893301 164.078933l525.20959999 0c80.725333 0 147.8656-58.368 161.553067-135.099733-43.52-18.8416-232.106667-100.283733-330.376533-147.182933-74.786133 90.589867-153.088 144.930133-271.121067 144.930133s-196.81279999-72.704-187.357867-161.655467c6.2464-58.402133 46.2848-153.9072 220.296533-137.5232 91.682133 8.6016 133.666133 25.736533 208.418133 50.414933 19.3536-35.4304 35.4304-74.513067 47.616-116.0192L292.0448 436.565333l0-32.8704 164.0448 0 0-58.9824L256 344.712533l1e-8-36.181333 200.12373299 0L456.123733 223.3344c0 0 1.809067-13.312 16.520533-13.31200001l82.056533 1e-8 0 98.474667 213.333333 0 0 36.181333-213.333333 1e-8 0 58.98239999 174.045867 0c-16.00853301 65.1264-40.277333 124.962133-70.690133 177.220267C708.608 599.176533 938.7008 669.525333 938.7008 669.525333L938.7008 669.525333 938.7008 669.525333 938.7008 669.525333zM321.57013299 744.994133c-124.7232 0-144.452267-78.7456-137.83039999-111.65013299 6.5536-32.733867 42.666667-75.502933 112.0256-75.50293301 79.6672 0 151.04 20.445867 236.714667 62.088533C472.302933 698.333867 398.370133 744.994133 321.57013299 744.994133L321.57013299 744.994133 321.57013299 744.994133zM321.57013299 744.994133" fill="#1296db" p-id="11905"></path></svg>
 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/tree-icon-1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/tree-icon-2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/tuple.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 944 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/logo/cnbm.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.9 KiB  | 
@@ -6,186 +6,217 @@
 | 
				
			|||||||
@import './btn.scss';
 | 
					@import './btn.scss';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
body {
 | 
					body {
 | 
				
			||||||
  height: 100%;
 | 
						height: 100%;
 | 
				
			||||||
  -moz-osx-font-smoothing: grayscale;
 | 
						-moz-osx-font-smoothing: grayscale;
 | 
				
			||||||
  -webkit-font-smoothing: antialiased;
 | 
						-webkit-font-smoothing: antialiased;
 | 
				
			||||||
  text-rendering: optimizeLegibility;
 | 
						text-rendering: optimizeLegibility;
 | 
				
			||||||
  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
 | 
						font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
 | 
				
			||||||
 | 
							Microsoft YaHei, Arial, sans-serif;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
label {
 | 
					// label {
 | 
				
			||||||
  font-weight: 700;
 | 
					//   font-weight: 700;
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
					.searchBarBox .el-form-item--medium .el-form-item__label {
 | 
				
			||||||
 | 
					  line-height: 40px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.searchBarBox .el-form-item--medium .el-form-item__content {
 | 
				
			||||||
 | 
					  line-height: 40px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.searchBarBox .el-range-editor--small.el-input__inner {
 | 
				
			||||||
 | 
					  height: 34px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
html {
 | 
					html {
 | 
				
			||||||
  height: 100%;
 | 
						height: 100%;
 | 
				
			||||||
  box-sizing: border-box;
 | 
						box-sizing: border-box;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#app {
 | 
					#app {
 | 
				
			||||||
  height: 100%;
 | 
						height: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*,
 | 
					*,
 | 
				
			||||||
*:before,
 | 
					*:before,
 | 
				
			||||||
*:after {
 | 
					*:after {
 | 
				
			||||||
  box-sizing: inherit;
 | 
						box-sizing: inherit;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.no-padding {
 | 
					.no-padding {
 | 
				
			||||||
  padding: 0px !important;
 | 
						padding: 0px !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.padding-content {
 | 
					.padding-content {
 | 
				
			||||||
  padding: 4px 0;
 | 
						padding: 4px 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
a:focus,
 | 
					a:focus,
 | 
				
			||||||
a:active {
 | 
					a:active {
 | 
				
			||||||
  outline: none;
 | 
						outline: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
a,
 | 
					a,
 | 
				
			||||||
a:focus,
 | 
					a:focus,
 | 
				
			||||||
a:hover {
 | 
					a:hover {
 | 
				
			||||||
  cursor: pointer;
 | 
						cursor: pointer;
 | 
				
			||||||
  color: inherit;
 | 
						color: inherit;
 | 
				
			||||||
  text-decoration: none;
 | 
						text-decoration: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
div:focus {
 | 
					div:focus {
 | 
				
			||||||
  outline: none;
 | 
						outline: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.fr {
 | 
					.fr {
 | 
				
			||||||
  float: right;
 | 
						float: right;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.fl {
 | 
					.fl {
 | 
				
			||||||
  float: left;
 | 
						float: left;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pr-5 {
 | 
					.pr-5 {
 | 
				
			||||||
  padding-right: 5px;
 | 
						padding-right: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pl-5 {
 | 
					.pl-5 {
 | 
				
			||||||
  padding-left: 5px;
 | 
						padding-left: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.block {
 | 
					.block {
 | 
				
			||||||
  display: block;
 | 
						display: block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pointer {
 | 
					.pointer {
 | 
				
			||||||
  cursor: pointer;
 | 
						cursor: pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.inlineBlock {
 | 
					.inlineBlock {
 | 
				
			||||||
  display: block;
 | 
						display: block;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.clearfix {
 | 
					.clearfix {
 | 
				
			||||||
  &:after {
 | 
						&:after {
 | 
				
			||||||
    visibility: hidden;
 | 
							visibility: hidden;
 | 
				
			||||||
    display: block;
 | 
							display: block;
 | 
				
			||||||
    font-size: 0;
 | 
							font-size: 0;
 | 
				
			||||||
    content: " ";
 | 
							content: ' ';
 | 
				
			||||||
    clear: both;
 | 
							clear: both;
 | 
				
			||||||
    height: 0;
 | 
							height: 0;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
aside {
 | 
					aside {
 | 
				
			||||||
  background: #eef1f6;
 | 
						background: #eef1f6;
 | 
				
			||||||
  padding: 8px 24px;
 | 
						padding: 8px 24px;
 | 
				
			||||||
  margin-bottom: 20px;
 | 
						margin-bottom: 20px;
 | 
				
			||||||
  border-radius: 2px;
 | 
						border-radius: 2px;
 | 
				
			||||||
  display: block;
 | 
						display: block;
 | 
				
			||||||
  line-height: 32px;
 | 
						line-height: 32px;
 | 
				
			||||||
  font-size: 16px;
 | 
						font-size: 16px;
 | 
				
			||||||
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
 | 
						font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
 | 
				
			||||||
  color: #2c3e50;
 | 
							Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
 | 
				
			||||||
  -webkit-font-smoothing: antialiased;
 | 
						color: #2c3e50;
 | 
				
			||||||
  -moz-osx-font-smoothing: grayscale;
 | 
						-webkit-font-smoothing: antialiased;
 | 
				
			||||||
 | 
						-moz-osx-font-smoothing: grayscale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  a {
 | 
						a {
 | 
				
			||||||
    color: #337ab7;
 | 
							color: #337ab7;
 | 
				
			||||||
    cursor: pointer;
 | 
							cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    &:hover {
 | 
							&:hover {
 | 
				
			||||||
      color: rgb(32, 160, 255);
 | 
								color: rgb(32, 160, 255);
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//main-container全局样式
 | 
					//main-container全局样式
 | 
				
			||||||
.app-container {
 | 
					.app-container {
 | 
				
			||||||
  padding: 20px;
 | 
						padding: 16px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.components-container {
 | 
					.components-container {
 | 
				
			||||||
  margin: 30px 50px;
 | 
						margin: 30px 50px;
 | 
				
			||||||
  position: relative;
 | 
						position: relative;
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.pagination-container {
 | 
					 | 
				
			||||||
  margin-top: 30px;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-center {
 | 
					.text-center {
 | 
				
			||||||
  text-align: center
 | 
						text-align: center;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.sub-navbar {
 | 
					.sub-navbar {
 | 
				
			||||||
  height: 50px;
 | 
						height: 50px;
 | 
				
			||||||
  line-height: 50px;
 | 
						line-height: 50px;
 | 
				
			||||||
  position: relative;
 | 
						position: relative;
 | 
				
			||||||
  width: 100%;
 | 
						width: 100%;
 | 
				
			||||||
  text-align: right;
 | 
						text-align: right;
 | 
				
			||||||
  padding-right: 20px;
 | 
						padding-right: 20px;
 | 
				
			||||||
  transition: 600ms ease position;
 | 
						transition: 600ms ease position;
 | 
				
			||||||
  background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
 | 
						background: linear-gradient(
 | 
				
			||||||
 | 
							90deg,
 | 
				
			||||||
 | 
							rgba(32, 182, 249, 1) 0%,
 | 
				
			||||||
 | 
							rgba(32, 182, 249, 1) 0%,
 | 
				
			||||||
 | 
							rgba(33, 120, 241, 1) 100%,
 | 
				
			||||||
 | 
							rgba(33, 120, 241, 1) 100%
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .subtitle {
 | 
						.subtitle {
 | 
				
			||||||
    font-size: 20px;
 | 
							font-size: 20px;
 | 
				
			||||||
    color: #fff;
 | 
							color: #fff;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &.draft {
 | 
						&.draft {
 | 
				
			||||||
    background: #d0d0d0;
 | 
							background: #d0d0d0;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &.deleted {
 | 
						&.deleted {
 | 
				
			||||||
    background: #d0d0d0;
 | 
							background: #d0d0d0;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.link-type,
 | 
					.link-type,
 | 
				
			||||||
.link-type:focus {
 | 
					.link-type:focus {
 | 
				
			||||||
  color: #337ab7;
 | 
						color: #337ab7;
 | 
				
			||||||
  cursor: pointer;
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &:hover {
 | 
						&:hover {
 | 
				
			||||||
    color: rgb(32, 160, 255);
 | 
							color: rgb(32, 160, 255);
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.filter-container {
 | 
					.filter-container {
 | 
				
			||||||
  padding-bottom: 10px;
 | 
						padding-bottom: 10px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .filter-item {
 | 
						.filter-item {
 | 
				
			||||||
    display: inline-block;
 | 
							display: inline-block;
 | 
				
			||||||
    vertical-align: middle;
 | 
							vertical-align: middle;
 | 
				
			||||||
    margin-bottom: 10px;
 | 
							margin-bottom: 10px;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//refine vue-multiselect plugin
 | 
					//refine vue-multiselect plugin
 | 
				
			||||||
.multiselect {
 | 
					.multiselect {
 | 
				
			||||||
  line-height: 16px;
 | 
						line-height: 16px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.multiselect--active {
 | 
					.multiselect--active {
 | 
				
			||||||
  z-index: 1000 !important;
 | 
						z-index: 1000 !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.no-data-bg {
 | 
				
			||||||
 | 
						height: 240px;
 | 
				
			||||||
 | 
						background: url(../images/no-data-bg.png) 50% 100% / contain
 | 
				
			||||||
 | 
							no-repeat;
 | 
				
			||||||
 | 
						position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						&::after {
 | 
				
			||||||
 | 
							content: '暂无数据';
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							bottom: 12px;
 | 
				
			||||||
 | 
							left: 50%;
 | 
				
			||||||
 | 
							transform: translateX(-50%);
 | 
				
			||||||
 | 
							color: #ccc;
 | 
				
			||||||
 | 
							font-size: 18px;
 | 
				
			||||||
 | 
							letter-spacing: 1px;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,13 @@
 | 
				
			|||||||
/* ===== PC DESIGN ===== */
 | 
					/* ===== PC DESIGN ===== */
 | 
				
			||||||
$W: 1000;
 | 
					$W: 1080;
 | 
				
			||||||
$H: 1920;
 | 
					$H: 1920;
 | 
				
			||||||
$picW: 438;
 | 
					// $picW: 438;
 | 
				
			||||||
$picH: 560;
 | 
					// $picH: 560;
 | 
				
			||||||
$formW: 320;
 | 
					$picW: 1080;
 | 
				
			||||||
 | 
					$picH: 1118;
 | 
				
			||||||
 | 
					$formW: 420;
 | 
				
			||||||
$tabW: $formW / 2;
 | 
					$tabW: $formW / 2;
 | 
				
			||||||
 | 
					// $rowH: 56;
 | 
				
			||||||
$rowH: 56;
 | 
					$rowH: 56;
 | 
				
			||||||
$buttonH: 50;
 | 
					$buttonH: 50;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -15,6 +18,7 @@ $containerBgImage: '../assets/images/bg.png';
 | 
				
			|||||||
$logoWidth: 417px;
 | 
					$logoWidth: 417px;
 | 
				
			||||||
$logoHeight: 64px;
 | 
					$logoHeight: 64px;
 | 
				
			||||||
$logoImage: '../assets/logo/login-logo.png';
 | 
					$logoImage: '../assets/logo/login-logo.png';
 | 
				
			||||||
 | 
					$cnbmLogo: '../assets/logo/cnbm.png';
 | 
				
			||||||
// container-content
 | 
					// container-content
 | 
				
			||||||
$contentWidth: round($W / $H * 100) * 1vw;
 | 
					$contentWidth: round($W / $H * 100) * 1vw;
 | 
				
			||||||
$contentHeight: round($picH / $W * 100) / 100 * $contentWidth;
 | 
					$contentHeight: round($picH / $W * 100) / 100 * $contentWidth;
 | 
				
			||||||
@@ -22,7 +26,8 @@ $contentBgColor: #ffffff;
 | 
				
			|||||||
// container-content-pic
 | 
					// container-content-pic
 | 
				
			||||||
$picWidth: round($picW / $H * 100) * 1vw;
 | 
					$picWidth: round($picW / $H * 100) * 1vw;
 | 
				
			||||||
$picHeight: inherit;
 | 
					$picHeight: inherit;
 | 
				
			||||||
$picImage: '../assets/images/pic.png';
 | 
					// $picImage: '../assets/images/pic.png';
 | 
				
			||||||
 | 
					$picImage: '../assets/images/login-bg.png';
 | 
				
			||||||
// container-content-field
 | 
					// container-content-field
 | 
				
			||||||
$fieldWidth: $contentWidth - $picWidth;
 | 
					$fieldWidth: $contentWidth - $picWidth;
 | 
				
			||||||
$fieldHeight: inherit;
 | 
					$fieldHeight: inherit;
 | 
				
			||||||
@@ -34,231 +39,310 @@ $buttonHeight: $buttonH * 1px;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// - - - - - 页面基础设置
 | 
					// - - - - - 页面基础设置
 | 
				
			||||||
.container {
 | 
					.container {
 | 
				
			||||||
  .login-code {
 | 
						.login-code {
 | 
				
			||||||
    width: 33%;
 | 
							width: 33%;
 | 
				
			||||||
    height: 38px;
 | 
							height: 38px;
 | 
				
			||||||
    float: right;
 | 
							float: right;
 | 
				
			||||||
    img {
 | 
							img {
 | 
				
			||||||
      cursor: pointer;
 | 
								cursor: pointer;
 | 
				
			||||||
      width:100%;max-width:100px; height:auto;
 | 
								width: 100%;
 | 
				
			||||||
      vertical-align: middle;
 | 
								max-width: 100px;
 | 
				
			||||||
    }
 | 
								height: auto;
 | 
				
			||||||
  }
 | 
								vertical-align: middle;
 | 
				
			||||||
  // 元素
 | 
							}
 | 
				
			||||||
  width: inherit;
 | 
						}
 | 
				
			||||||
  height: inherit;
 | 
						// 元素
 | 
				
			||||||
  min-width: 1080px;
 | 
						width: inherit;
 | 
				
			||||||
  min-height: 620px;
 | 
						height: inherit;
 | 
				
			||||||
  background-color: $containerBgColor;
 | 
						min-width: 1080px;
 | 
				
			||||||
  background-image: url($containerBgImage);
 | 
						min-height: 620px;
 | 
				
			||||||
  background-size: cover;
 | 
						background-color: $containerBgColor;
 | 
				
			||||||
  // 定位
 | 
						// background-image: url($containerBgImage);
 | 
				
			||||||
  position: relative;
 | 
						background-size: cover;
 | 
				
			||||||
  display: flex;
 | 
						// 定位
 | 
				
			||||||
  justify-content: center;
 | 
						position: relative;
 | 
				
			||||||
  align-items: center;
 | 
						display: flex;
 | 
				
			||||||
  // 文字
 | 
						justify-content: center;
 | 
				
			||||||
  font-size: 14px;
 | 
						align-items: center;
 | 
				
			||||||
  font-family: Microsoft YaHei;
 | 
						// 文字
 | 
				
			||||||
  font-weight: 400;
 | 
						font-size: 14px;
 | 
				
			||||||
  .logo {
 | 
						font-family: Microsoft YaHei;
 | 
				
			||||||
    // 元素
 | 
						font-weight: 400;
 | 
				
			||||||
    width: $logoWidth;
 | 
						.logo {
 | 
				
			||||||
    height: $logoHeight;
 | 
							// 元素
 | 
				
			||||||
    // background-image: url($logoImage);
 | 
							width: $logoWidth;
 | 
				
			||||||
    // background-size: contain;
 | 
							height: $logoHeight;
 | 
				
			||||||
    // 定位
 | 
							// background-image: url($logoImage);
 | 
				
			||||||
    position: absolute;
 | 
							// background-size: contain;
 | 
				
			||||||
    top: 50px;
 | 
							// 定位
 | 
				
			||||||
    left: 50%;
 | 
							position: absolute;
 | 
				
			||||||
    margin-left: -$logoWidth/2;
 | 
							top: 50px;
 | 
				
			||||||
  }
 | 
							left: 50%;
 | 
				
			||||||
  .content {
 | 
							margin-left: -$logoWidth/2;
 | 
				
			||||||
    // 元素
 | 
						}
 | 
				
			||||||
    width: $contentWidth;
 | 
						.content {
 | 
				
			||||||
    height: $contentHeight;
 | 
							// 元素
 | 
				
			||||||
    background-color: #ffffff;
 | 
							// width: $contentWidth;
 | 
				
			||||||
    box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07);
 | 
							// height: $contentHeight;
 | 
				
			||||||
    border-radius: 20px;
 | 
							width: 100%;
 | 
				
			||||||
    // 定位
 | 
							height: 100%;
 | 
				
			||||||
    position: relative;
 | 
							background-color: #ffffff;
 | 
				
			||||||
    .pic {
 | 
							// box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07);
 | 
				
			||||||
      // 元素
 | 
							// border-radius: 20px;
 | 
				
			||||||
      width: $picWidth;
 | 
							// 定位
 | 
				
			||||||
      height: $picHeight;
 | 
							position: relative;
 | 
				
			||||||
      background-image: url($picImage);
 | 
							display: flex;
 | 
				
			||||||
      background-repeat: no-repeat;
 | 
					
 | 
				
			||||||
      background-size: cover;
 | 
							.pic {
 | 
				
			||||||
      border-radius: 20px 0 0 20px;
 | 
								// 元素
 | 
				
			||||||
      // 定位
 | 
								width: $picWidth;
 | 
				
			||||||
      position: absolute;
 | 
								height: $picHeight;
 | 
				
			||||||
      top: 0;
 | 
								background-image: url($picImage);
 | 
				
			||||||
      left: 0;
 | 
								background-repeat: no-repeat;
 | 
				
			||||||
    }
 | 
								background-size: 100% 100%;
 | 
				
			||||||
    .field {
 | 
								background-position: 0 0;
 | 
				
			||||||
      width: $fieldWidth;
 | 
								position: relative;
 | 
				
			||||||
      height: $fieldHeight;
 | 
					
 | 
				
			||||||
      // 定位
 | 
								&::after {
 | 
				
			||||||
      position: absolute;
 | 
					        content: '';
 | 
				
			||||||
      top: 0;
 | 
									position: absolute;
 | 
				
			||||||
      left: $picWidth;
 | 
									top: 0;
 | 
				
			||||||
      display:flex;
 | 
									left: 0;
 | 
				
			||||||
      justify-content: center;
 | 
									width: 100%;
 | 
				
			||||||
      align-items: center;
 | 
									height: 100%;
 | 
				
			||||||
      .pc-title{ width: 100%; clear: both;}
 | 
					        // background: #f003;
 | 
				
			||||||
      .mobile-title,
 | 
					        display: inline-block;
 | 
				
			||||||
      .mobile-switch {
 | 
								}
 | 
				
			||||||
        display: none;
 | 
							}
 | 
				
			||||||
      }
 | 
							.field {
 | 
				
			||||||
      .form {
 | 
								// background: #ccc3;
 | 
				
			||||||
        box-sizing: border-box;
 | 
								position: relative;
 | 
				
			||||||
        width: $formWidth;
 | 
								padding-top: 196px;
 | 
				
			||||||
        // - - - tab
 | 
								flex: 1;
 | 
				
			||||||
        :deep(.el-tabs__content) {
 | 
								display: flex;
 | 
				
			||||||
          padding: 20px 0 0;
 | 
								flex-direction: column;
 | 
				
			||||||
        }
 | 
								// justify-content: center;
 | 
				
			||||||
        :deep(.el-tabs__item) {
 | 
								align-items: center;
 | 
				
			||||||
          // 元素
 | 
								.pc-title {
 | 
				
			||||||
          width: $tabWidth;
 | 
									width: 100%;
 | 
				
			||||||
          height: $rowHeight;
 | 
									text-align: center;
 | 
				
			||||||
          padding: 0;
 | 
									clear: both;
 | 
				
			||||||
          // 文字
 | 
									position: relative;
 | 
				
			||||||
          line-height: $rowHeight;
 | 
									top: -36px;
 | 
				
			||||||
          color: #666666;
 | 
					
 | 
				
			||||||
        }
 | 
									// h3.title {
 | 
				
			||||||
        :deep(.el-tabs__item.is-active) {
 | 
									// 	position: relative;
 | 
				
			||||||
          font-weight: bold;
 | 
					
 | 
				
			||||||
          color: #2F53EB;
 | 
									// 	&::before {
 | 
				
			||||||
        }
 | 
									// 		content: '';
 | 
				
			||||||
        :deep(.el-tabs__active-bar) {
 | 
									// 		background: url($cnbmLogo) 100% / 100% no-repeat;
 | 
				
			||||||
          height: 3px;
 | 
									// 		height: 48px;
 | 
				
			||||||
          border-radius: 2px;
 | 
									// 		width: 48px;
 | 
				
			||||||
        }
 | 
									// 		position: absolute;
 | 
				
			||||||
        // - - - input
 | 
									// 		left: 0px;
 | 
				
			||||||
        :deep(.el-input__inner) {
 | 
									// 		top: 4px;
 | 
				
			||||||
          // 元素
 | 
									// 		display: inline-block;
 | 
				
			||||||
          width: 100%;
 | 
									// 	}
 | 
				
			||||||
          height: $rowHeight;
 | 
									// }
 | 
				
			||||||
          background: #f5f5f5;
 | 
								}
 | 
				
			||||||
          border: 0;
 | 
								.mobile-title,
 | 
				
			||||||
          border-radius: 28px;
 | 
								.mobile-switch {
 | 
				
			||||||
          // 文字
 | 
									display: none;
 | 
				
			||||||
          text-align: center;
 | 
								}
 | 
				
			||||||
          line-height: 19px;
 | 
								.form {
 | 
				
			||||||
          color: #262626;
 | 
									margin-top: 32px;
 | 
				
			||||||
        }
 | 
									box-sizing: border-box;
 | 
				
			||||||
        .code:deep(.el-input__inner) {
 | 
									// width: $formWidth;
 | 
				
			||||||
          padding: 0 24px;
 | 
									width: 100%;
 | 
				
			||||||
          // 文字
 | 
									// - - - tab
 | 
				
			||||||
          text-align: left;
 | 
									:deep(.el-tabs__nav) {
 | 
				
			||||||
        }
 | 
										// background: #f0f3;
 | 
				
			||||||
        :deep(.el-input__inner::-webkit-input-placeholder) { /* WebKit browsers */
 | 
									}
 | 
				
			||||||
          font-weight: 400;
 | 
									:deep(.el-tabs__content) {
 | 
				
			||||||
          color: #8C8C8C;
 | 
										padding: 20px 0 0;
 | 
				
			||||||
        }
 | 
									}
 | 
				
			||||||
        :deep(.el-input__inner:-moz-placeholder) { /* Mozilla Firefox 4 to 18 */
 | 
									:deep(.el-tabs__item) {
 | 
				
			||||||
          font-weight: 400;
 | 
										user-select: none;
 | 
				
			||||||
          color: #8C8C8C;
 | 
										// 元素
 | 
				
			||||||
        }
 | 
										width: $tabWidth;
 | 
				
			||||||
        :deep(.el-input__inner::-moz-placeholder) { /* Mozilla Firefox 19+ */
 | 
										height: $rowHeight;
 | 
				
			||||||
          font-weight: 400;
 | 
										padding: 0;
 | 
				
			||||||
          color: #8C8C8C;
 | 
										// 文字
 | 
				
			||||||
          opacity:1;
 | 
										line-height: $rowHeight;
 | 
				
			||||||
        }
 | 
										color: #666666;
 | 
				
			||||||
        :deep(.el-input__inner:-ms-input-placeholder) { /* Internet Explorer 10+ */
 | 
										font-size: 18px;
 | 
				
			||||||
          font-weight: 400;
 | 
										font-weight: 400;
 | 
				
			||||||
          color: #8C8C8C !important;
 | 
										text-align: center;
 | 
				
			||||||
        }
 | 
									}
 | 
				
			||||||
        :deep(.el-form-item) {
 | 
									:deep(.el-tabs__item.is-active) {
 | 
				
			||||||
          position: relative;
 | 
										font-weight: 500;
 | 
				
			||||||
          .button-code {
 | 
										color: #2f53eb;
 | 
				
			||||||
            // 元素
 | 
									}
 | 
				
			||||||
            height: $rowHeight;
 | 
									:deep(.el-tabs__active-bar) {
 | 
				
			||||||
            box-sizing: border-box;
 | 
										height: 3px;
 | 
				
			||||||
            // 定位
 | 
										border-radius: 2px;
 | 
				
			||||||
            position: absolute;
 | 
									}
 | 
				
			||||||
            top: 0;
 | 
									// - - - input
 | 
				
			||||||
            right: 20px;
 | 
									:deep(.el-input__inner) {
 | 
				
			||||||
            z-index: 1;
 | 
										// 元素
 | 
				
			||||||
            // 文字
 | 
										width: 100%;
 | 
				
			||||||
            line-height: 20px;
 | 
										height: $rowHeight;
 | 
				
			||||||
            font-size: 14px;
 | 
										background: #f5f5f5;
 | 
				
			||||||
            font-family: PingFang SC;
 | 
										border: 0;
 | 
				
			||||||
            font-weight: 400;
 | 
										border-radius: 28px;
 | 
				
			||||||
            color: #2F53EB;
 | 
										// 文字
 | 
				
			||||||
            span {
 | 
										text-align: center;
 | 
				
			||||||
              padding-left: 15px;
 | 
										line-height: 19px;
 | 
				
			||||||
              border-left: 2px solid #D9D9D9;
 | 
										color: #262626;
 | 
				
			||||||
            }
 | 
									}
 | 
				
			||||||
          }
 | 
									.code:deep(.el-input__inner) {
 | 
				
			||||||
        }
 | 
										padding: 0 24px;
 | 
				
			||||||
        :deep(.el-form-item__error) {
 | 
										// 文字
 | 
				
			||||||
          padding-left: 24px;
 | 
										text-align: left;
 | 
				
			||||||
        }
 | 
									}
 | 
				
			||||||
        .button {
 | 
									:deep(.el-input__inner::-webkit-input-placeholder) {
 | 
				
			||||||
          width: 100%;
 | 
										/* WebKit browsers */
 | 
				
			||||||
          height: $buttonHeight;
 | 
										font-weight: 400;
 | 
				
			||||||
          background: rgba(24, 144, 255, 0.2);
 | 
										color: #8c8c8c;
 | 
				
			||||||
          border: 0;
 | 
									}
 | 
				
			||||||
          border-radius: 24px;
 | 
									:deep(.el-input__inner:-moz-placeholder) {
 | 
				
			||||||
          margin-bottom: 20px;
 | 
										/* Mozilla Firefox 4 to 18 */
 | 
				
			||||||
          // 文字
 | 
										font-weight: 400;
 | 
				
			||||||
          line-height: 26px;
 | 
										color: #8c8c8c;
 | 
				
			||||||
          font-size: 20px;
 | 
									}
 | 
				
			||||||
          color: #FFFFFF;
 | 
									:deep(.el-input__inner::-moz-placeholder) {
 | 
				
			||||||
        }
 | 
										/* Mozilla Firefox 19+ */
 | 
				
			||||||
        .button-active {
 | 
										font-weight: 400;
 | 
				
			||||||
          background: #2F53EB;
 | 
										color: #8c8c8c;
 | 
				
			||||||
          box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2);
 | 
										opacity: 1;
 | 
				
			||||||
        }
 | 
									}
 | 
				
			||||||
      }
 | 
									:deep(.el-input__inner:-ms-input-placeholder) {
 | 
				
			||||||
    }
 | 
										/* Internet Explorer 10+ */
 | 
				
			||||||
  }
 | 
										font-weight: 400;
 | 
				
			||||||
  .footer {
 | 
										color: #8c8c8c !important;
 | 
				
			||||||
    // 元素
 | 
									}
 | 
				
			||||||
    height: 16px;
 | 
									:deep(.el-form-item) {
 | 
				
			||||||
    line-height: 16px;
 | 
										position: relative;
 | 
				
			||||||
    font-size: 12px;
 | 
										.button-code {
 | 
				
			||||||
    color: #8c8c8c;
 | 
											// 元素
 | 
				
			||||||
    // 定位
 | 
											height: $rowHeight;
 | 
				
			||||||
    position: absolute;
 | 
											box-sizing: border-box;
 | 
				
			||||||
    bottom: 30px;
 | 
											// 定位
 | 
				
			||||||
    a,
 | 
											position: absolute;
 | 
				
			||||||
    a:hover,
 | 
											top: 0;
 | 
				
			||||||
    a:active {
 | 
											right: 20px;
 | 
				
			||||||
      color: inherit;
 | 
											z-index: 1;
 | 
				
			||||||
      text-decoration: none;
 | 
											// 文字
 | 
				
			||||||
    }
 | 
											line-height: 20px;
 | 
				
			||||||
  }
 | 
											font-size: 14px;
 | 
				
			||||||
 | 
											font-family: PingFang SC;
 | 
				
			||||||
 | 
											font-weight: 400;
 | 
				
			||||||
 | 
											color: #2f53eb;
 | 
				
			||||||
 | 
											span {
 | 
				
			||||||
 | 
												padding-left: 15px;
 | 
				
			||||||
 | 
												border-left: 2px solid #d9d9d9;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									:deep(.el-form-item__error) {
 | 
				
			||||||
 | 
										padding-left: 24px;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									.button {
 | 
				
			||||||
 | 
										width: 100%;
 | 
				
			||||||
 | 
										height: $buttonHeight;
 | 
				
			||||||
 | 
										background: rgba(24, 144, 255, 0.2);
 | 
				
			||||||
 | 
										border: 0;
 | 
				
			||||||
 | 
										border-radius: 24px;
 | 
				
			||||||
 | 
										margin-bottom: 20px;
 | 
				
			||||||
 | 
										// 文字
 | 
				
			||||||
 | 
										line-height: 26px;
 | 
				
			||||||
 | 
										font-size: 20px;
 | 
				
			||||||
 | 
										color: #ffffff;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									.button-active {
 | 
				
			||||||
 | 
										background: #2f53eb;
 | 
				
			||||||
 | 
										box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.login-form {
 | 
				
			||||||
 | 
							* {
 | 
				
			||||||
 | 
								user-select: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							// - - - input
 | 
				
			||||||
 | 
							:deep(.el-input__inner) {
 | 
				
			||||||
 | 
								// 元素
 | 
				
			||||||
 | 
								width: 420px;
 | 
				
			||||||
 | 
								height: 66px;
 | 
				
			||||||
 | 
								color: #262626;
 | 
				
			||||||
 | 
								font-size: 18px;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							:deep(.el-checkbox__label) {
 | 
				
			||||||
 | 
								font-size: 18px;
 | 
				
			||||||
 | 
								line-height: 14px;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.footer {
 | 
				
			||||||
 | 
							user-select: none;
 | 
				
			||||||
 | 
							// 元素
 | 
				
			||||||
 | 
							height: 16px;
 | 
				
			||||||
 | 
							line-height: 16px;
 | 
				
			||||||
 | 
							font-size: 12px;
 | 
				
			||||||
 | 
							color: #8c8c8c;
 | 
				
			||||||
 | 
							// 定位
 | 
				
			||||||
 | 
							position: absolute;
 | 
				
			||||||
 | 
							bottom: 30px;
 | 
				
			||||||
 | 
							a,
 | 
				
			||||||
 | 
							a:hover,
 | 
				
			||||||
 | 
							a:active {
 | 
				
			||||||
 | 
								color: inherit;
 | 
				
			||||||
 | 
								text-decoration: none;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// - - - - - PC 最小尺寸设置
 | 
					// - - - - - PC 最小尺寸设置
 | 
				
			||||||
@media screen and (min-width: 599px) and (max-width: 1366px) {
 | 
					@media screen and (min-width: 599px) and (max-width: 1366px) {
 | 
				
			||||||
  .container {
 | 
						.container {
 | 
				
			||||||
    .content {
 | 
							min-width: 599px;
 | 
				
			||||||
      width: 710px;
 | 
							.content {
 | 
				
			||||||
      height: 397px;
 | 
								// width: 710px;
 | 
				
			||||||
      .pic {
 | 
								// height: 397px;
 | 
				
			||||||
        width: 314px;
 | 
								width: 100%;
 | 
				
			||||||
      }
 | 
								height: 100%;
 | 
				
			||||||
      .field {
 | 
								.pic {
 | 
				
			||||||
        width: calc(710px - 314px);
 | 
									// width: 314px;
 | 
				
			||||||
        left: 314px;
 | 
									display: none;
 | 
				
			||||||
        .form {
 | 
								}
 | 
				
			||||||
          width: 320px;
 | 
								.field {
 | 
				
			||||||
          :deep(.el-input__inner) {
 | 
									// width: calc(710px - 314px);
 | 
				
			||||||
            width: 320px;
 | 
									// left: 314px;
 | 
				
			||||||
            height: 56px;
 | 
									// justify-content: center;
 | 
				
			||||||
          }
 | 
									width: 100%;
 | 
				
			||||||
          .button {
 | 
					 | 
				
			||||||
            height: 50px;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.pc-title {
 | 
				
			||||||
 | 
										h3 {
 | 
				
			||||||
 | 
											font-size: 2.4rem !important;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.form {
 | 
				
			||||||
 | 
										// width: 320px;
 | 
				
			||||||
 | 
										:deep(.el-input__inner) {
 | 
				
			||||||
 | 
											width: 320px;
 | 
				
			||||||
 | 
											height: 56px;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										.button {
 | 
				
			||||||
 | 
											height: 50px;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ===== MOBILE DESIGN ===== */
 | 
					/* ===== MOBILE DESIGN ===== */
 | 
				
			||||||
$mobileW: 375;
 | 
					$mobileW: 375;
 | 
				
			||||||
@@ -273,115 +357,142 @@ $mobileButtonH: 48;
 | 
				
			|||||||
$mobileContainerBgImage: '../assets/images/bg-mobile.png';
 | 
					$mobileContainerBgImage: '../assets/images/bg-mobile.png';
 | 
				
			||||||
// container-content
 | 
					// container-content
 | 
				
			||||||
$mobileContentWidth: round($mobileContentW / $mobileW * 100) * 1vw;
 | 
					$mobileContentWidth: round($mobileContentW / $mobileW * 100) * 1vw;
 | 
				
			||||||
$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * $mobileContentWidth;
 | 
					$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 *
 | 
				
			||||||
 | 
						$mobileContentWidth;
 | 
				
			||||||
// container-content-field-form
 | 
					// container-content-field-form
 | 
				
			||||||
$mobileFormWidth: round($mobileFormW / $mobileW *100) * 1vw;
 | 
					$mobileFormWidth: round($mobileFormW / $mobileW * 100) * 1vw;
 | 
				
			||||||
$mobileRowHeight: $mobileRowH * 1px;
 | 
					$mobileRowHeight: $mobileRowH * 1px;
 | 
				
			||||||
$mobileButtonHeight: $mobileButtonH * 1px;
 | 
					$mobileButtonHeight: $mobileButtonH * 1px;
 | 
				
			||||||
$iconBgImage: '../assets/images/icon.png';
 | 
					$iconBgImage: '../assets/images/icon.png';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// - - - - - 移动端设置
 | 
					// - - - - - 移动端设置
 | 
				
			||||||
@media screen and (max-width: 599px) {
 | 
					@media screen and (max-width: 599px) {
 | 
				
			||||||
  .container {
 | 
						.container {
 | 
				
			||||||
    // 元素
 | 
							// 元素
 | 
				
			||||||
    background-image: url($mobileContainerBgImage);
 | 
							background-image: url($mobileContainerBgImage);
 | 
				
			||||||
    min-width: 280px;
 | 
							min-width: 280px;
 | 
				
			||||||
    min-height: 568px;
 | 
							min-height: 568px;
 | 
				
			||||||
    // 文字
 | 
							// 文字
 | 
				
			||||||
    font-size: 17px;
 | 
							font-size: 14px;
 | 
				
			||||||
    font-family: PingFang SC;
 | 
							font-family: PingFang SC;
 | 
				
			||||||
    font-weight: bold;
 | 
							font-weight: bold;
 | 
				
			||||||
    .logo {
 | 
							.logo {
 | 
				
			||||||
      display: none;
 | 
								display: none;
 | 
				
			||||||
    }
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .content {
 | 
							.pc-title {
 | 
				
			||||||
      // 元素
 | 
								display: none;
 | 
				
			||||||
      width: $mobileContentWidth;
 | 
							}
 | 
				
			||||||
      height: $mobileContentHeight;
 | 
					
 | 
				
			||||||
      min-width: 250px;
 | 
							.content {
 | 
				
			||||||
      min-height: 340px;
 | 
								// 元素
 | 
				
			||||||
      // 定位
 | 
								width: $mobileContentWidth;
 | 
				
			||||||
      display: flex;
 | 
								height: $mobileContentHeight;
 | 
				
			||||||
      justify-content: center;
 | 
								min-width: 250px;
 | 
				
			||||||
      align-items: center;
 | 
								min-height: 340px;
 | 
				
			||||||
      .pic {
 | 
								// 定位
 | 
				
			||||||
        display: none;
 | 
								display: flex;
 | 
				
			||||||
      }
 | 
								justify-content: center;
 | 
				
			||||||
      .field {
 | 
								align-items: center;
 | 
				
			||||||
        // 元素
 | 
								.pic {
 | 
				
			||||||
        width: inherit;
 | 
									display: none;
 | 
				
			||||||
        min-height: inherit;
 | 
								}
 | 
				
			||||||
        // 定位
 | 
								.field {
 | 
				
			||||||
        left: 0;
 | 
					        padding: 0;
 | 
				
			||||||
        display: flex;
 | 
									// 元素
 | 
				
			||||||
        flex-direction: column;
 | 
									width: inherit;
 | 
				
			||||||
        .mobile-title {
 | 
									min-height: inherit;
 | 
				
			||||||
          // 元素
 | 
									// 定位
 | 
				
			||||||
          margin: 0 0 20px;
 | 
									left: 0;
 | 
				
			||||||
          display: block;
 | 
									display: flex;
 | 
				
			||||||
        }
 | 
									flex-direction: column;
 | 
				
			||||||
        .form {
 | 
					
 | 
				
			||||||
          width: $mobileFormWidth;
 | 
									.mobile-title {
 | 
				
			||||||
          // - - - tab
 | 
										// 元素
 | 
				
			||||||
          :deep(.el-tabs__header) {
 | 
										margin: 0;
 | 
				
			||||||
            display: none;
 | 
										display: block;
 | 
				
			||||||
          }
 | 
									}
 | 
				
			||||||
          :deep(.el-tabs__content) {
 | 
					
 | 
				
			||||||
            padding: 0;
 | 
									.form {
 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          // - - - input
 | 
					 | 
				
			||||||
          :deep(.el-input__inner) {
 | 
					 | 
				
			||||||
            height: $mobileRowHeight;
 | 
					 | 
				
			||||||
            line-height: 24px;
 | 
					 | 
				
			||||||
            // 文字
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            color: #262626;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          :deep(.el-form-item) {
 | 
					 | 
				
			||||||
            .button-code {
 | 
					 | 
				
			||||||
              // 元素
 | 
					 | 
				
			||||||
              height: $mobileRowHeight;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          .button {
 | 
					 | 
				
			||||||
            height: $mobileButtonHeight;
 | 
					 | 
				
			||||||
            line-height: 24px;
 | 
					 | 
				
			||||||
            color: #FFFFFF;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .mobile-switch {
 | 
					 | 
				
			||||||
          display: block;
 | 
					 | 
				
			||||||
          line-height: 20px;
 | 
					 | 
				
			||||||
          font-size: 14px;
 | 
					 | 
				
			||||||
          font-weight: 400;
 | 
					 | 
				
			||||||
          color: #595959;
 | 
					 | 
				
			||||||
          margin: 0;
 | 
					          margin: 0;
 | 
				
			||||||
          .icon {
 | 
										width: $mobileFormWidth;
 | 
				
			||||||
            width: 14px;
 | 
										// - - - tab
 | 
				
			||||||
            height: 14px;
 | 
										:deep(.el-tabs__header) {
 | 
				
			||||||
            display: inline-block;
 | 
											display: none;
 | 
				
			||||||
            background-image: url($iconBgImage);
 | 
										}
 | 
				
			||||||
            background-size: cover;
 | 
										:deep(.el-tabs__content) {
 | 
				
			||||||
          }
 | 
											padding: 0;
 | 
				
			||||||
        }
 | 
										}
 | 
				
			||||||
        .mobile-switch:hover {
 | 
										// - - - input
 | 
				
			||||||
          cursor: pointer;
 | 
										:deep(.el-input__inner) {
 | 
				
			||||||
        }
 | 
											height: $mobileRowHeight;
 | 
				
			||||||
      }
 | 
											line-height: 24px;
 | 
				
			||||||
    }
 | 
											// 文字
 | 
				
			||||||
    .footer {
 | 
											text-align: center;
 | 
				
			||||||
      // 元素
 | 
											color: #262626;
 | 
				
			||||||
      font-size: 12px;
 | 
										}
 | 
				
			||||||
      font-family: PingFang SC;
 | 
										:deep(.el-form-item) {
 | 
				
			||||||
      font-weight: 400;
 | 
											.button-code {
 | 
				
			||||||
      line-height: 17px;
 | 
												// 元素
 | 
				
			||||||
      color: #333333;
 | 
												height: $mobileRowHeight;
 | 
				
			||||||
      opacity: 0.6;
 | 
											}
 | 
				
			||||||
      // 定位
 | 
										}
 | 
				
			||||||
      position: absolute;
 | 
										.button {
 | 
				
			||||||
      bottom: 20px;
 | 
											height: $mobileButtonHeight;
 | 
				
			||||||
    }
 | 
											line-height: 24px;
 | 
				
			||||||
  }
 | 
											color: #ffffff;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									.login-form {
 | 
				
			||||||
 | 
										:deep(.el-input__inner) {
 | 
				
			||||||
 | 
											height: $mobileRowHeight;
 | 
				
			||||||
 | 
											line-height: 24px;
 | 
				
			||||||
 | 
											// 文字
 | 
				
			||||||
 | 
											text-align: center;
 | 
				
			||||||
 | 
											color: #262626;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          :deep(#button-form-item) {
 | 
				
			||||||
 | 
					            margin: 0 !important;
 | 
				
			||||||
 | 
											button {
 | 
				
			||||||
 | 
												// 元素
 | 
				
			||||||
 | 
												height: $mobileRowHeight;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									.mobile-switch {
 | 
				
			||||||
 | 
										display: block;
 | 
				
			||||||
 | 
										line-height: 20px;
 | 
				
			||||||
 | 
										font-size: 14px;
 | 
				
			||||||
 | 
										font-weight: 400;
 | 
				
			||||||
 | 
										color: #595959;
 | 
				
			||||||
 | 
										margin: 0;
 | 
				
			||||||
 | 
										.icon {
 | 
				
			||||||
 | 
											width: 14px;
 | 
				
			||||||
 | 
											height: 14px;
 | 
				
			||||||
 | 
											display: inline-block;
 | 
				
			||||||
 | 
											background-image: url($iconBgImage);
 | 
				
			||||||
 | 
											background-size: cover;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									.mobile-switch:hover {
 | 
				
			||||||
 | 
										cursor: pointer;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							.footer {
 | 
				
			||||||
 | 
								// 元素
 | 
				
			||||||
 | 
								font-size: 12px;
 | 
				
			||||||
 | 
								font-family: PingFang SC;
 | 
				
			||||||
 | 
								font-weight: 400;
 | 
				
			||||||
 | 
								line-height: 17px;
 | 
				
			||||||
 | 
								color: #333333;
 | 
				
			||||||
 | 
								opacity: 0.6;
 | 
				
			||||||
 | 
								// 定位
 | 
				
			||||||
 | 
								// position: absolute;
 | 
				
			||||||
 | 
								bottom: -32px;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,286 +5,301 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/** 基础通用 **/
 | 
					/** 基础通用 **/
 | 
				
			||||||
.pt5 {
 | 
					.pt5 {
 | 
				
			||||||
  padding-top: 5px;
 | 
						padding-top: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.pr5 {
 | 
					.pr5 {
 | 
				
			||||||
  padding-right: 5px;
 | 
						padding-right: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.pb5 {
 | 
					.pb5 {
 | 
				
			||||||
  padding-bottom: 5px;
 | 
						padding-bottom: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mt5 {
 | 
					.mt5 {
 | 
				
			||||||
  margin-top: 5px;
 | 
						margin-top: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mr5 {
 | 
					.mr5 {
 | 
				
			||||||
  margin-right: 5px;
 | 
						margin-right: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mb5 {
 | 
					.mb5 {
 | 
				
			||||||
  margin-bottom: 5px;
 | 
						margin-bottom: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mb8 {
 | 
					.mb8 {
 | 
				
			||||||
  margin-bottom: 8px;
 | 
						margin-bottom: 8px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.ml5 {
 | 
					.ml5 {
 | 
				
			||||||
  margin-left: 5px;
 | 
						margin-left: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mt10 {
 | 
					.mt10 {
 | 
				
			||||||
  margin-top: 10px;
 | 
						margin-top: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mr10 {
 | 
					.mr10 {
 | 
				
			||||||
  margin-right: 10px;
 | 
						margin-right: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mb10 {
 | 
					.mb10 {
 | 
				
			||||||
  margin-bottom: 10px;
 | 
						margin-bottom: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.ml10 {
 | 
					.ml10 {
 | 
				
			||||||
  margin-left: 10px;
 | 
						margin-left: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mt20 {
 | 
					.mt20 {
 | 
				
			||||||
  margin-top: 20px;
 | 
						margin-top: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mr20 {
 | 
					.mr20 {
 | 
				
			||||||
  margin-right: 20px;
 | 
						margin-right: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.mb20 {
 | 
					.mb20 {
 | 
				
			||||||
  margin-bottom: 20px;
 | 
						margin-bottom: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.ml20 {
 | 
					.ml20 {
 | 
				
			||||||
  margin-left: 20px;
 | 
						margin-left: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
 | 
					.h1,
 | 
				
			||||||
  font-family: inherit;
 | 
					.h2,
 | 
				
			||||||
  font-weight: 500;
 | 
					.h3,
 | 
				
			||||||
  line-height: 1.1;
 | 
					.h4,
 | 
				
			||||||
  color: inherit;
 | 
					.h5,
 | 
				
			||||||
 | 
					.h6,
 | 
				
			||||||
 | 
					h1,
 | 
				
			||||||
 | 
					h2,
 | 
				
			||||||
 | 
					h3,
 | 
				
			||||||
 | 
					h4,
 | 
				
			||||||
 | 
					h5,
 | 
				
			||||||
 | 
					h6 {
 | 
				
			||||||
 | 
						font-family: inherit;
 | 
				
			||||||
 | 
						font-weight: 500;
 | 
				
			||||||
 | 
						line-height: 1.1;
 | 
				
			||||||
 | 
						color: inherit;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-message-box__status + .el-message-box__message{
 | 
					.el-message-box__status + .el-message-box__message {
 | 
				
			||||||
  word-break: break-word;
 | 
						word-break: break-word;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-dialog:not(.is-fullscreen) {
 | 
					.el-dialog:not(.is-fullscreen) {
 | 
				
			||||||
  margin-top: 6vh !important;
 | 
						// margin-top: 6vh !important;
 | 
				
			||||||
 | 
						margin-top: 12vh !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
 | 
					.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
 | 
				
			||||||
  overflow: auto;
 | 
						overflow: auto;
 | 
				
			||||||
  overflow-x: hidden;
 | 
						overflow-x: hidden;
 | 
				
			||||||
  max-height: 70vh;
 | 
						max-height: 70vh;
 | 
				
			||||||
  padding: 10px 20px 0;
 | 
						padding: 10px 20px 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-dialog{
 | 
					.el-dialog {
 | 
				
			||||||
  display: flex;
 | 
						display: flex;
 | 
				
			||||||
  flex-direction: column;
 | 
						flex-direction: column;
 | 
				
			||||||
  max-width: calc(100% - 30px);
 | 
						max-width: calc(100% - 30px);
 | 
				
			||||||
  max-height: calc(100% - 70px);
 | 
						max-height: calc(100% - 70px);
 | 
				
			||||||
  .el-dialog__body {
 | 
						.el-dialog__body {
 | 
				
			||||||
    overflow: auto;
 | 
							overflow: auto;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-table {
 | 
					.el-table {
 | 
				
			||||||
  .el-table__header-wrapper, .el-table__fixed-header-wrapper {
 | 
						.el-table__header-wrapper,
 | 
				
			||||||
    th {
 | 
						.el-table__fixed-header-wrapper {
 | 
				
			||||||
      word-break: break-word;
 | 
							th {
 | 
				
			||||||
      background-color: #f8f8f9;
 | 
								word-break: break-word;
 | 
				
			||||||
      color: #515a6e;
 | 
								background-color: #f8f8f9;
 | 
				
			||||||
      height: 40px;
 | 
								color: #515a6e;
 | 
				
			||||||
      font-size: 13px;
 | 
								height: 40px;
 | 
				
			||||||
    }
 | 
								font-size: 13px;
 | 
				
			||||||
  }
 | 
							}
 | 
				
			||||||
  .el-table__body-wrapper {
 | 
						}
 | 
				
			||||||
    .el-button [class*="el-icon-"] + span {
 | 
						.el-table__body-wrapper {
 | 
				
			||||||
      margin-left: 1px;
 | 
							.el-button [class*='el-icon-'] + span {
 | 
				
			||||||
    }
 | 
								margin-left: 1px;
 | 
				
			||||||
  }
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 表单布局 **/
 | 
					/** 表单布局 **/
 | 
				
			||||||
.form-header {
 | 
					.form-header {
 | 
				
			||||||
  font-size:15px;
 | 
						font-size: 15px;
 | 
				
			||||||
  color:#6379bb;
 | 
						color: #6379bb;
 | 
				
			||||||
  border-bottom:1px solid #ddd;
 | 
						border-bottom: 1px solid #ddd;
 | 
				
			||||||
  margin:8px 10px 25px 10px;
 | 
						margin: 8px 10px 25px 10px;
 | 
				
			||||||
  padding-bottom:5px
 | 
						padding-bottom: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 表格布局 **/
 | 
					/** 表格布局 **/
 | 
				
			||||||
.pagination-container {
 | 
					// .pagination-container {
 | 
				
			||||||
  position: relative;
 | 
					//   position: relative;
 | 
				
			||||||
  height: 25px;
 | 
					//   height: 25px;
 | 
				
			||||||
  margin-bottom: 10px;
 | 
					//   margin-bottom: 10px;
 | 
				
			||||||
  margin-top: 15px;
 | 
					//   margin-top: 15px;
 | 
				
			||||||
  padding: 10px 20px !important;
 | 
					//   padding: 10px 20px !important;
 | 
				
			||||||
}
 | 
					// }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* tree border */
 | 
					/* tree border */
 | 
				
			||||||
.tree-border {
 | 
					.tree-border {
 | 
				
			||||||
  margin-top: 5px;
 | 
						margin-top: 5px;
 | 
				
			||||||
  border: 1px solid #e5e6e7;
 | 
						border: 1px solid #e5e6e7;
 | 
				
			||||||
  background: #FFFFFF none;
 | 
						background: #ffffff none;
 | 
				
			||||||
  border-radius:4px;
 | 
						border-radius: 4px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pagination-container .el-pagination {
 | 
					.pagination-container .el-pagination {
 | 
				
			||||||
  right: 0;
 | 
						right: 0;
 | 
				
			||||||
  position: absolute;
 | 
						position: absolute;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@media ( max-width : 768px) {
 | 
					@media (max-width: 768px) {
 | 
				
			||||||
  .pagination-container .el-pagination > .el-pagination__jump {
 | 
						.pagination-container .el-pagination > .el-pagination__jump {
 | 
				
			||||||
    display: none !important;
 | 
							display: none !important;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
  .pagination-container .el-pagination > .el-pagination__sizes {
 | 
						.pagination-container .el-pagination > .el-pagination__sizes {
 | 
				
			||||||
    display: none !important;
 | 
							display: none !important;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-table .fixed-width .el-button--mini {
 | 
					.el-table .fixed-width .el-button--mini {
 | 
				
			||||||
  padding-left: 0;
 | 
						padding-left: 0;
 | 
				
			||||||
  padding-right: 0;
 | 
						padding-right: 0;
 | 
				
			||||||
  width: inherit;
 | 
						width: inherit;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 表格更多操作下拉样式 */
 | 
					/** 表格更多操作下拉样式 */
 | 
				
			||||||
.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
 | 
					.el-table .el-dropdown-link,
 | 
				
			||||||
  cursor: pointer;
 | 
					.el-table .el-dropdown-selfdefine {
 | 
				
			||||||
  margin-left: 5px;
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
						margin-left: 5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-table .el-dropdown, .el-icon-arrow-down {
 | 
					.el-table .el-dropdown,
 | 
				
			||||||
  font-size: 12px;
 | 
					.el-icon-arrow-down {
 | 
				
			||||||
 | 
						font-size: 12px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-tree-node__content > .el-checkbox {
 | 
					.el-tree-node__content > .el-checkbox {
 | 
				
			||||||
  margin-right: 8px;
 | 
						margin-right: 8px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.list-group-striped > .list-group-item {
 | 
					.list-group-striped > .list-group-item {
 | 
				
			||||||
  border-left: 0;
 | 
						border-left: 0;
 | 
				
			||||||
  border-right: 0;
 | 
						border-right: 0;
 | 
				
			||||||
  border-radius: 0;
 | 
						border-radius: 0;
 | 
				
			||||||
  padding-left: 0;
 | 
						padding-left: 0;
 | 
				
			||||||
  padding-right: 0;
 | 
						padding-right: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &:not(:last-child) {
 | 
						&:not(:last-child) {
 | 
				
			||||||
    border-bottom: 1px solid #e7eaec;
 | 
							border-bottom: 1px solid #e7eaec;
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.list-group {
 | 
					.list-group {
 | 
				
			||||||
  padding-left: 0px;
 | 
						padding-left: 0px;
 | 
				
			||||||
  list-style: none;
 | 
						list-style: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.list-group-item {
 | 
					.list-group-item {
 | 
				
			||||||
  // border-bottom: 1px solid #e7eaec;
 | 
						// border-bottom: 1px solid #e7eaec;
 | 
				
			||||||
  // border-top: 1px solid #e7eaec;
 | 
						// border-top: 1px solid #e7eaec;
 | 
				
			||||||
  margin-bottom: -1px;
 | 
						margin-bottom: -1px;
 | 
				
			||||||
  padding: 11px 0px;
 | 
						padding: 11px 0px;
 | 
				
			||||||
  font-size: 13px;
 | 
						font-size: 13px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.pull-right {
 | 
					.pull-right {
 | 
				
			||||||
  float: right !important;
 | 
						float: right !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-card__header {
 | 
					.el-card__header {
 | 
				
			||||||
  padding: 14px 15px 7px;
 | 
						padding: 14px 15px 7px;
 | 
				
			||||||
  min-height: 40px;
 | 
						min-height: 40px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-card__body {
 | 
					.el-card__body {
 | 
				
			||||||
  padding: 15px 20px 20px 20px;
 | 
						padding: 15px 20px 20px 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.card-box {
 | 
					.card-box {
 | 
				
			||||||
  padding-right: 15px;
 | 
						padding-right: 15px;
 | 
				
			||||||
  padding-left: 15px;
 | 
						padding-left: 15px;
 | 
				
			||||||
  margin-bottom: 10px;
 | 
						margin-bottom: 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* button color */
 | 
					/* button color */
 | 
				
			||||||
.el-button--cyan.is-active,
 | 
					.el-button--cyan.is-active,
 | 
				
			||||||
.el-button--cyan:active {
 | 
					.el-button--cyan:active {
 | 
				
			||||||
  background: #20B2AA;
 | 
						background: #20b2aa;
 | 
				
			||||||
  border-color: #20B2AA;
 | 
						border-color: #20b2aa;
 | 
				
			||||||
  color: #FFFFFF;
 | 
						color: #ffffff;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-button--cyan:focus,
 | 
					.el-button--cyan:focus,
 | 
				
			||||||
.el-button--cyan:hover {
 | 
					.el-button--cyan:hover {
 | 
				
			||||||
  background: #48D1CC;
 | 
						background: #48d1cc;
 | 
				
			||||||
  border-color: #48D1CC;
 | 
						border-color: #48d1cc;
 | 
				
			||||||
  color: #FFFFFF;
 | 
						color: #ffffff;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.el-button--cyan {
 | 
					.el-button--cyan {
 | 
				
			||||||
  background-color: #20B2AA;
 | 
						background-color: #20b2aa;
 | 
				
			||||||
  border-color: #20B2AA;
 | 
						border-color: #20b2aa;
 | 
				
			||||||
  color: #FFFFFF;
 | 
						color: #ffffff;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* text color */
 | 
					/* text color */
 | 
				
			||||||
.text-navy {
 | 
					.text-navy {
 | 
				
			||||||
  color: #1ab394;
 | 
						color: #1ab394;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-primary {
 | 
					.text-primary {
 | 
				
			||||||
  color: inherit;
 | 
						color: inherit;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-success {
 | 
					.text-success {
 | 
				
			||||||
  color: #1c84c6;
 | 
						color: #1c84c6;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-info {
 | 
					.text-info {
 | 
				
			||||||
  color: #23c6c8;
 | 
						color: #23c6c8;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-warning {
 | 
					.text-warning {
 | 
				
			||||||
  color: #f8ac59;
 | 
						color: #f8ac59;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-danger {
 | 
					.text-danger {
 | 
				
			||||||
  color: #ed5565;
 | 
						color: #ed5565;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.text-muted {
 | 
					.text-muted {
 | 
				
			||||||
  color: #888888;
 | 
						color: #888888;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* image */
 | 
					/* image */
 | 
				
			||||||
.img-circle {
 | 
					.img-circle {
 | 
				
			||||||
  border-radius: 50%;
 | 
						border-radius: 50%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.img-lg {
 | 
					.img-lg {
 | 
				
			||||||
  width: 120px;
 | 
						width: 120px;
 | 
				
			||||||
  height: 120px;
 | 
						height: 120px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.avatar-upload-preview {
 | 
					.avatar-upload-preview {
 | 
				
			||||||
  position: absolute;
 | 
						position: absolute;
 | 
				
			||||||
  top: 50%;
 | 
						top: 50%;
 | 
				
			||||||
  transform: translate(50%, -50%);
 | 
						transform: translate(50%, -50%);
 | 
				
			||||||
  width: 200px;
 | 
						width: 200px;
 | 
				
			||||||
  height: 200px;
 | 
						height: 200px;
 | 
				
			||||||
  border-radius: 50%;
 | 
						border-radius: 50%;
 | 
				
			||||||
  box-shadow: 0 0 4px #ccc;
 | 
						box-shadow: 0 0 4px #ccc;
 | 
				
			||||||
  overflow: hidden;
 | 
						overflow: hidden;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* 拖拽列样式 */
 | 
					/* 拖拽列样式 */
 | 
				
			||||||
.sortable-ghost{
 | 
					.sortable-ghost {
 | 
				
			||||||
  opacity: .8;
 | 
						opacity: 0.8;
 | 
				
			||||||
  color: #fff!important;
 | 
						color: #fff !important;
 | 
				
			||||||
  background: #42b983!important;
 | 
						background: #42b983 !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.top-right-btn {
 | 
					.top-right-btn {
 | 
				
			||||||
  position: relative;
 | 
						position: relative;
 | 
				
			||||||
  float: right;
 | 
						float: right;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,6 +105,10 @@
 | 
				
			|||||||
        background-color: $base-sub-menu-hover !important;
 | 
					        background-color: $base-sub-menu-hover !important;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    & .theme-dark .el-submenu .el-menu-item.is-active {
 | 
				
			||||||
 | 
					      background-color: #0b50ff !important;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .hideSidebar {
 | 
					  .hideSidebar {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,20 +9,20 @@ $yellow:#FEC171;
 | 
				
			|||||||
$panGreen: #30B08F;
 | 
					$panGreen: #30B08F;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 默认菜单主题风格
 | 
					// 默认菜单主题风格
 | 
				
			||||||
$base-menu-color:#bfcbd9;
 | 
					// $base-menu-color:#bfcbd9;
 | 
				
			||||||
$base-menu-color-active:#f4f4f5;
 | 
					// $base-menu-color-active:#f4f4f5;
 | 
				
			||||||
$base-menu-background:#304156;
 | 
					// $base-menu-background:#304156;
 | 
				
			||||||
$base-logo-title-color: #ffffff;
 | 
					// $base-logo-title-color: #ffffff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$base-menu-light-color:rgba(0,0,0,.70);
 | 
					// $base-menu-light-color:rgba(0,0,0,.70);
 | 
				
			||||||
$base-menu-light-background:#ffffff;
 | 
					// $base-menu-light-background:#ffffff;
 | 
				
			||||||
$base-logo-light-title-color: #001529;
 | 
					// $base-logo-light-title-color: #001529;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$base-sub-menu-background:#1f2d3d;
 | 
					// $base-sub-menu-background:#1f2d3d;
 | 
				
			||||||
$base-sub-menu-hover:#001528;
 | 
					// $base-sub-menu-hover:#001528;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 自定义暗色菜单风格
 | 
					// 自定义暗色菜单风格
 | 
				
			||||||
/**
 | 
					/*
 | 
				
			||||||
$base-menu-color:hsla(0,0%,100%,.65);
 | 
					$base-menu-color:hsla(0,0%,100%,.65);
 | 
				
			||||||
$base-menu-color-active:#fff;
 | 
					$base-menu-color-active:#fff;
 | 
				
			||||||
$base-menu-background:#001529;
 | 
					$base-menu-background:#001529;
 | 
				
			||||||
@@ -35,8 +35,20 @@ $base-logo-light-title-color: #001529;
 | 
				
			|||||||
$base-sub-menu-background:#000c17;
 | 
					$base-sub-menu-background:#000c17;
 | 
				
			||||||
$base-sub-menu-hover:#001528;
 | 
					$base-sub-menu-hover:#001528;
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					$base-menu-color: #fff;
 | 
				
			||||||
 | 
					$base-menu-color-active:#fff;
 | 
				
			||||||
 | 
					$base-menu-background:#001529;
 | 
				
			||||||
 | 
					$base-logo-title-color: #ffffff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$base-sidebar-width: 280px;
 | 
					$base-menu-light-color:rgba(0,0,0,.70);
 | 
				
			||||||
 | 
					$base-menu-light-background:#ffffff;
 | 
				
			||||||
 | 
					$base-logo-light-title-color: #001529;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$base-sub-menu-background:#0B253F;
 | 
				
			||||||
 | 
					$base-sub-menu-hover:#0b50ff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$base-sidebar-width: 248px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// the :export directive is the magic sauce for webpack
 | 
					// the :export directive is the magic sauce for webpack
 | 
				
			||||||
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
 | 
					// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,8 +68,12 @@ export default {
 | 
				
			|||||||
  margin-left: 8px;
 | 
					  margin-left: 8px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .no-redirect {
 | 
					  .no-redirect {
 | 
				
			||||||
    color: #97a8be;
 | 
					    color: rgba(0, 0, 0, 0.65);
 | 
				
			||||||
    cursor: text;
 | 
					    cursor: text;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.app-breadcrumb .el-breadcrumb__inner a, .el-breadcrumb__inner.is-link {
 | 
				
			||||||
 | 
					  color: rgba(0, 0, 0, 0.45);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										441
									
								
								src/components/DialogForm/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,441 @@
 | 
				
			|||||||
 | 
					<!-- 
 | 
				
			||||||
 | 
					    filename: dialogForm.vue
 | 
				
			||||||
 | 
					    author: liubin
 | 
				
			||||||
 | 
					    date: 2023-08-15 10:32:36
 | 
				
			||||||
 | 
					    description: 弹窗的表单组件
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<el-form
 | 
				
			||||||
 | 
							ref="form"
 | 
				
			||||||
 | 
							:model="form"
 | 
				
			||||||
 | 
							:label-width="`${labelWidth}px`"
 | 
				
			||||||
 | 
							:size="size"
 | 
				
			||||||
 | 
							:label-position="labelPosition"
 | 
				
			||||||
 | 
							v-loading="formLoading">
 | 
				
			||||||
 | 
							<el-row :gutter="20" v-for="(row, rindex) in rows" :key="rindex">
 | 
				
			||||||
 | 
								<el-col v-for="col in row" :key="col.label" :span="24 / row.length">
 | 
				
			||||||
 | 
									<el-form-item :label="col.label" :prop="col.prop" :rules="col.rules">
 | 
				
			||||||
 | 
										<el-input
 | 
				
			||||||
 | 
											v-if="col.input"
 | 
				
			||||||
 | 
											v-model="form[col.prop]"
 | 
				
			||||||
 | 
											@change="$emit('update', form)"
 | 
				
			||||||
 | 
											:placeholder="`请输入${col.label}`"
 | 
				
			||||||
 | 
											v-bind="col.bind" />
 | 
				
			||||||
 | 
										<el-input
 | 
				
			||||||
 | 
											v-if="col.textarea"
 | 
				
			||||||
 | 
											type="textarea"
 | 
				
			||||||
 | 
											v-model="form[col.prop]"
 | 
				
			||||||
 | 
											@change="$emit('update', form)"
 | 
				
			||||||
 | 
											:placeholder="`请输入${col.label}`"
 | 
				
			||||||
 | 
											v-bind="col.bind" />
 | 
				
			||||||
 | 
										<el-select
 | 
				
			||||||
 | 
											v-if="col.select"
 | 
				
			||||||
 | 
											v-model="form[col.prop]"
 | 
				
			||||||
 | 
											:placeholder="`请选择${col.label}`"
 | 
				
			||||||
 | 
											@change="$emit('update', form)"
 | 
				
			||||||
 | 
											v-bind="col.bind">
 | 
				
			||||||
 | 
											<el-option
 | 
				
			||||||
 | 
												v-for="opt in optionListOf[col.prop]"
 | 
				
			||||||
 | 
												:key="opt.value"
 | 
				
			||||||
 | 
												:label="opt.label"
 | 
				
			||||||
 | 
												:value="opt.value" />
 | 
				
			||||||
 | 
										</el-select>
 | 
				
			||||||
 | 
										<el-date-picker
 | 
				
			||||||
 | 
											v-if="col.datetime"
 | 
				
			||||||
 | 
											v-model="form[col.prop]"
 | 
				
			||||||
 | 
											type="datetime"
 | 
				
			||||||
 | 
											:placeholder="`请选择${col.label}`"
 | 
				
			||||||
 | 
											value-format="timestamp"
 | 
				
			||||||
 | 
											v-bind="col.bind"></el-date-picker>
 | 
				
			||||||
 | 
										<el-switch
 | 
				
			||||||
 | 
											v-if="col.switch"
 | 
				
			||||||
 | 
											v-model="form[col.prop]"
 | 
				
			||||||
 | 
											active-color="#0b58ff"
 | 
				
			||||||
 | 
											inactive-color="#e1e1e1"
 | 
				
			||||||
 | 
											v-bind="col.bind"></el-switch>
 | 
				
			||||||
 | 
										<component
 | 
				
			||||||
 | 
											v-if="col.subcomponent"
 | 
				
			||||||
 | 
											:key="col.key"
 | 
				
			||||||
 | 
											:is="col.subcomponent"
 | 
				
			||||||
 | 
											:inlineStyle="col.style"></component>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										<div
 | 
				
			||||||
 | 
											class="upload-area"
 | 
				
			||||||
 | 
											:class="uploadOpen ? '' : 'height-48'"
 | 
				
			||||||
 | 
											ref="uploadArea"
 | 
				
			||||||
 | 
											v-if="col.upload">
 | 
				
			||||||
 | 
											<span class="close-icon" :class="uploadOpen ? 'open' : ''">
 | 
				
			||||||
 | 
												<el-button
 | 
				
			||||||
 | 
													type="text"
 | 
				
			||||||
 | 
													icon="el-icon-arrow-right"
 | 
				
			||||||
 | 
													@click="handleFilesOpen" />
 | 
				
			||||||
 | 
											</span>
 | 
				
			||||||
 | 
											<!-- :file-list="uploadedFileList" -->
 | 
				
			||||||
 | 
											<el-upload
 | 
				
			||||||
 | 
												class="upload-in-dialog"
 | 
				
			||||||
 | 
												v-if="col.upload"
 | 
				
			||||||
 | 
												:action="uploadUrl"
 | 
				
			||||||
 | 
												:headers="uploadHeaders"
 | 
				
			||||||
 | 
												:show-file-list="false"
 | 
				
			||||||
 | 
												icon="el-icon-upload2"
 | 
				
			||||||
 | 
												:before-upload="beforeUpload"
 | 
				
			||||||
 | 
												:on-success="handleUploadSuccess"
 | 
				
			||||||
 | 
												v-bind="col.bind">
 | 
				
			||||||
 | 
												<el-button size="mini" :disabled="col.bind?.disabled || false">
 | 
				
			||||||
 | 
													<svg-icon
 | 
				
			||||||
 | 
														icon-class="icon-upload"
 | 
				
			||||||
 | 
														style="color: inherit"></svg-icon>
 | 
				
			||||||
 | 
													上传文件
 | 
				
			||||||
 | 
												</el-button>
 | 
				
			||||||
 | 
												<div class="el-upload__tip" slot="tip" v-if="col.uploadTips">
 | 
				
			||||||
 | 
													{{ col.uploadTips || '只能上传jpg/png文件, 大小不超过2MB' }}
 | 
				
			||||||
 | 
												</div>
 | 
				
			||||||
 | 
											</el-upload>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											<uploadedFile
 | 
				
			||||||
 | 
												class="file"
 | 
				
			||||||
 | 
												v-for="file in form[col.prop] || []"
 | 
				
			||||||
 | 
												:file="file"
 | 
				
			||||||
 | 
												:key="file.fileUrl"
 | 
				
			||||||
 | 
												@delete="handleDeleteFile(file)" />
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</el-form-item>
 | 
				
			||||||
 | 
								</el-col>
 | 
				
			||||||
 | 
							</el-row>
 | 
				
			||||||
 | 
						</el-form>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import { getAccessToken } from '@/utils/auth';
 | 
				
			||||||
 | 
					import tupleImg from '@/assets/images/tuple.png';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 找到最长的label
 | 
				
			||||||
 | 
					 * @param {*} options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function findMaxLabelWidth(rows) {
 | 
				
			||||||
 | 
						let max = 0;
 | 
				
			||||||
 | 
						rows.forEach((row) => {
 | 
				
			||||||
 | 
							row.forEach((opt) => {
 | 
				
			||||||
 | 
								// debugger;
 | 
				
			||||||
 | 
								if (!opt.label) return 0;
 | 
				
			||||||
 | 
								if (opt.label.length > max) {
 | 
				
			||||||
 | 
									max = opt.label.length;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
						return max;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uploadedFile = {
 | 
				
			||||||
 | 
						name: 'UploadedFile',
 | 
				
			||||||
 | 
						props: ['file'],
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							handleDelete() {
 | 
				
			||||||
 | 
								this.$emit('delete', this.file);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						mounted() {},
 | 
				
			||||||
 | 
						render: function (h) {
 | 
				
			||||||
 | 
							return (
 | 
				
			||||||
 | 
								<div
 | 
				
			||||||
 | 
									title={this.file.fileName}
 | 
				
			||||||
 | 
									style={{
 | 
				
			||||||
 | 
										background: `url(${tupleImg}) no-repeat`,
 | 
				
			||||||
 | 
										backgroundSize: '14px',
 | 
				
			||||||
 | 
										backgroundPosition: '0 55%',
 | 
				
			||||||
 | 
										paddingLeft: '20px',
 | 
				
			||||||
 | 
										paddingRight: '24px',
 | 
				
			||||||
 | 
										textOverflow: 'ellipsis',
 | 
				
			||||||
 | 
										whiteSpace: 'nowrap',
 | 
				
			||||||
 | 
										overflow: 'hidden',
 | 
				
			||||||
 | 
										cursor: 'pointer',
 | 
				
			||||||
 | 
										display: 'inline-block',
 | 
				
			||||||
 | 
									}}>
 | 
				
			||||||
 | 
									{this.file.fileName}
 | 
				
			||||||
 | 
									<el-button
 | 
				
			||||||
 | 
										type="text"
 | 
				
			||||||
 | 
										icon="el-icon-close"
 | 
				
			||||||
 | 
										style="float: right; position: relative; top: 2px; left: 8px; z-index: 100"
 | 
				
			||||||
 | 
										class="dialog__upload_component__close"
 | 
				
			||||||
 | 
										onClick={this.handleDelete}
 | 
				
			||||||
 | 
									/>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'DialogForm',
 | 
				
			||||||
 | 
						model: {
 | 
				
			||||||
 | 
							prop: 'dataForm',
 | 
				
			||||||
 | 
							event: 'update',
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						emits: ['update'],
 | 
				
			||||||
 | 
						components: { uploadedFile },
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							rows: {
 | 
				
			||||||
 | 
								type: Array,
 | 
				
			||||||
 | 
								default: () => [],
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							dataForm: {
 | 
				
			||||||
 | 
								type: Object,
 | 
				
			||||||
 | 
								default: () => ({}),
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							disabled: {
 | 
				
			||||||
 | 
								type: Boolean,
 | 
				
			||||||
 | 
								default: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							hasFile: {
 | 
				
			||||||
 | 
								type: Boolean,
 | 
				
			||||||
 | 
								default: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							labelPosition: {
 | 
				
			||||||
 | 
								type: String,
 | 
				
			||||||
 | 
								default: 'right',
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							size: {
 | 
				
			||||||
 | 
								type: String,
 | 
				
			||||||
 | 
								default: '',
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								uploadOpen: false,
 | 
				
			||||||
 | 
								form: {},
 | 
				
			||||||
 | 
								formLoading: true,
 | 
				
			||||||
 | 
								optionListOf: {},
 | 
				
			||||||
 | 
								uploadedFileList: [],
 | 
				
			||||||
 | 
								dataLoaded: false,
 | 
				
			||||||
 | 
								uploadHeaders: { Authorization: 'Bearer ' + getAccessToken() },
 | 
				
			||||||
 | 
								uploadUrl: process.env.VUE_APP_BASE_API + '/admin-api/infra/file/upload', // 上传有关的headers,url都是固定的
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						computed: {
 | 
				
			||||||
 | 
							labelWidth() {
 | 
				
			||||||
 | 
								let max = findMaxLabelWidth(this.rows);
 | 
				
			||||||
 | 
								// 每个汉字占20px
 | 
				
			||||||
 | 
								return max * 20;
 | 
				
			||||||
 | 
								// return max * 20 + 'px';
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						watch: {
 | 
				
			||||||
 | 
							rows: {
 | 
				
			||||||
 | 
								handler() {
 | 
				
			||||||
 | 
									this.$nextTick(() => {
 | 
				
			||||||
 | 
										this.handleOptions('watch');
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								deep: true,
 | 
				
			||||||
 | 
								immediate: false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							dataForm: {
 | 
				
			||||||
 | 
								handler(val) {
 | 
				
			||||||
 | 
									this.form = JSON.parse(JSON.stringify(val));
 | 
				
			||||||
 | 
									if (this.hasFile) {
 | 
				
			||||||
 | 
										this.form.files = this.form.files ?? [];
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								deep: true,
 | 
				
			||||||
 | 
								immediate: true,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						mounted() {
 | 
				
			||||||
 | 
							// 处理 options
 | 
				
			||||||
 | 
							this.handleOptions();
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							/** 模拟透传 ref  */
 | 
				
			||||||
 | 
							validate(cb) {
 | 
				
			||||||
 | 
								return this.$refs.form.validate(cb);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							resetFields(args) {
 | 
				
			||||||
 | 
								return this.$refs.form.resetFields(args);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							// getCode
 | 
				
			||||||
 | 
							async getCode(url) {
 | 
				
			||||||
 | 
								const response = await this.$axios(url);
 | 
				
			||||||
 | 
								return response.data;
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							async handleOptions(trigger = 'monuted') {
 | 
				
			||||||
 | 
								console.log('[dialogForm:handleOptions]');
 | 
				
			||||||
 | 
								const promiseList = [];
 | 
				
			||||||
 | 
								this.rows.forEach((cols) => {
 | 
				
			||||||
 | 
									cols.forEach((opt) => {
 | 
				
			||||||
 | 
										if (opt.value && !this.form[opt.prop]) {
 | 
				
			||||||
 | 
											// 默认值
 | 
				
			||||||
 | 
											this.form[opt.prop] = opt.value;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										if (opt.options) {
 | 
				
			||||||
 | 
											this.$set(this.optionListOf, opt.prop, opt.options);
 | 
				
			||||||
 | 
										} else if (opt.url) {
 | 
				
			||||||
 | 
											// 如果有 depends,则暂时先不获取,注册一个watcher
 | 
				
			||||||
 | 
											if (opt.depends) {
 | 
				
			||||||
 | 
												console.log('[handleOptions] setting watch');
 | 
				
			||||||
 | 
												this.$watch(
 | 
				
			||||||
 | 
													() => this.form[opt.depends],
 | 
				
			||||||
 | 
													(id) => {
 | 
				
			||||||
 | 
														console.log('<', opt.depends, '>', 'changed', id);
 | 
				
			||||||
 | 
														if (id == null) return;
 | 
				
			||||||
 | 
														// 清空原有选项
 | 
				
			||||||
 | 
														this.form[opt.prop] = null;
 | 
				
			||||||
 | 
														// 获取新的选项
 | 
				
			||||||
 | 
														this.$axios({
 | 
				
			||||||
 | 
															url: `${opt.url}?id=${id}`,
 | 
				
			||||||
 | 
														}).then((res) => {
 | 
				
			||||||
 | 
															this.$set(
 | 
				
			||||||
 | 
																this.optionListOf,
 | 
				
			||||||
 | 
																opt.prop,
 | 
				
			||||||
 | 
																res.data.map((item) => ({
 | 
				
			||||||
 | 
																	label: item[opt.labelKey ?? 'name'],
 | 
				
			||||||
 | 
																	value: item[opt.valueKey ?? 'id'],
 | 
				
			||||||
 | 
																}))
 | 
				
			||||||
 | 
															);
 | 
				
			||||||
 | 
														});
 | 
				
			||||||
 | 
													},
 | 
				
			||||||
 | 
													{
 | 
				
			||||||
 | 
														immediate: true,
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												);
 | 
				
			||||||
 | 
												return;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											// 如果是下拉框,或者新增模式下的输入框,才去请求
 | 
				
			||||||
 | 
											if (opt.select || (opt.input && !this.form?.id)) {
 | 
				
			||||||
 | 
												promiseList.push(async () => {
 | 
				
			||||||
 | 
													const response = await this.$axios(opt.url, {
 | 
				
			||||||
 | 
														method: opt.method ?? 'get',
 | 
				
			||||||
 | 
													});
 | 
				
			||||||
 | 
													console.log('[dialogForm:handleOptions:response]', response);
 | 
				
			||||||
 | 
													if (opt.select) {
 | 
				
			||||||
 | 
														// 处理下拉框选项
 | 
				
			||||||
 | 
														const list =
 | 
				
			||||||
 | 
															'list' in response.data
 | 
				
			||||||
 | 
																? response.data.list
 | 
				
			||||||
 | 
																: response.data;
 | 
				
			||||||
 | 
														this.$set(
 | 
				
			||||||
 | 
															this.optionListOf,
 | 
				
			||||||
 | 
															opt.prop,
 | 
				
			||||||
 | 
															list.map((item) => ({
 | 
				
			||||||
 | 
																label: item[opt.labelKey ?? 'name'],
 | 
				
			||||||
 | 
																value: item[opt.valueKey ?? 'id'],
 | 
				
			||||||
 | 
															}))
 | 
				
			||||||
 | 
														);
 | 
				
			||||||
 | 
													} else if (opt.input) {
 | 
				
			||||||
 | 
														console.log('setting code: ', response.data);
 | 
				
			||||||
 | 
														// 处理输入框数据
 | 
				
			||||||
 | 
														this.form[opt.prop] = response.data;
 | 
				
			||||||
 | 
													}
 | 
				
			||||||
 | 
												});
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								console.log('[dialogForm:handleOptions] done!');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// 如果是 watch 触发的,不需要执行进一步的请求
 | 
				
			||||||
 | 
								if (trigger == 'watch') {
 | 
				
			||||||
 | 
									this.formLoading = false;
 | 
				
			||||||
 | 
									return;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								try {
 | 
				
			||||||
 | 
									await Promise.all(promiseList.map((fn) => fn()));
 | 
				
			||||||
 | 
									this.formLoading = false;
 | 
				
			||||||
 | 
									this.dataLoaded = true;
 | 
				
			||||||
 | 
									// console.log("[dialogForm:handleOptions:optionListOf]", this.optionListOf)
 | 
				
			||||||
 | 
								} catch (error) {
 | 
				
			||||||
 | 
									console.log('[dialogForm:handleOptions:error]', error);
 | 
				
			||||||
 | 
									this.formLoading = false;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if (!promiseList.length) this.formLoading = false;
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							// 上传成功的特殊处理
 | 
				
			||||||
 | 
							beforeUpload() {},
 | 
				
			||||||
 | 
							// 上传前的验证规则可通过 bind 属性传入
 | 
				
			||||||
 | 
							handleUploadSuccess(response, file, fileList) {
 | 
				
			||||||
 | 
								this.form.files.push({
 | 
				
			||||||
 | 
									fileName: file.name,
 | 
				
			||||||
 | 
									fileUrl: response.data,
 | 
				
			||||||
 | 
									fileType: 2,
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								this.$modal.msgSuccess('上传成功');
 | 
				
			||||||
 | 
								this.$emit('update', this.form);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							getFileName(fileUrl) {
 | 
				
			||||||
 | 
								return fileUrl.split('/').pop();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							handleFilesOpen() {
 | 
				
			||||||
 | 
								this.uploadOpen = !this.uploadOpen;
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							handleDeleteFile(file) {
 | 
				
			||||||
 | 
								this.form.files = this.form.files.filter(
 | 
				
			||||||
 | 
									(item) => item.fileUrl != file.fileUrl
 | 
				
			||||||
 | 
								);
 | 
				
			||||||
 | 
								this.$emit('update', this.form);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					.el-date-editor,
 | 
				
			||||||
 | 
					.el-select {
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.upload-area {
 | 
				
			||||||
 | 
						// background: #ccc;
 | 
				
			||||||
 | 
						// display: grid;
 | 
				
			||||||
 | 
						// grid-auto-rows: 34px;
 | 
				
			||||||
 | 
						// grid-template-columns: repeat(6, minmax(32px, max-content));
 | 
				
			||||||
 | 
						// gap: 8px;
 | 
				
			||||||
 | 
						// align-items: center;
 | 
				
			||||||
 | 
						position: relative;
 | 
				
			||||||
 | 
						overflow: hidden;
 | 
				
			||||||
 | 
						transition: height 0.3s ease-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.upload-in-dialog {
 | 
				
			||||||
 | 
						// display: inline-block;
 | 
				
			||||||
 | 
						margin-right: 24px;
 | 
				
			||||||
 | 
						// background: #ccc;
 | 
				
			||||||
 | 
						position: relative;
 | 
				
			||||||
 | 
						// top: -13px;
 | 
				
			||||||
 | 
						float: left;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.close-icon {
 | 
				
			||||||
 | 
						// background: #ccc;
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						top: 0;
 | 
				
			||||||
 | 
						right: 12px;
 | 
				
			||||||
 | 
						z-index: 100;
 | 
				
			||||||
 | 
						transition: transform 0.3s ease-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.close-icon.open {
 | 
				
			||||||
 | 
						transform: rotateZ(90deg);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style>
 | 
				
			||||||
 | 
					.dialog__upload_component__close {
 | 
				
			||||||
 | 
						color: #ccc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.dialog__upload_component__close:hover {
 | 
				
			||||||
 | 
						/* color: #777; */
 | 
				
			||||||
 | 
						color: red;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.height-48 {
 | 
				
			||||||
 | 
						height: 35px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										89
									
								
								src/components/SequenceGraph/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					<!-- 
 | 
				
			||||||
 | 
					    filename: index.vue
 | 
				
			||||||
 | 
					    author: liubin
 | 
				
			||||||
 | 
					    date: 2023-08-29 14:39:40
 | 
				
			||||||
 | 
					    description: 状态时序图 
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div class="sequence-graph">
 | 
				
			||||||
 | 
							<SequenceGraphItem v-for="eq in Object.keys(list)" :key="eq" />
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import SequenceGraphItem from './sequenceGraphItem.vue';
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'SequenceGraph',
 | 
				
			||||||
 | 
						components: { SequenceGraphItem },
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							colors: {
 | 
				
			||||||
 | 
								type: Array,
 | 
				
			||||||
 | 
								default: () => ['', '', '', '', '', ''], // 默认颜色
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								list: {
 | 
				
			||||||
 | 
									打孔机: {
 | 
				
			||||||
 | 
										equipmentId: 1,
 | 
				
			||||||
 | 
										equipmentName: 'EQ1',
 | 
				
			||||||
 | 
										status: '',
 | 
				
			||||||
 | 
										startTime: '',
 | 
				
			||||||
 | 
										duration: '',
 | 
				
			||||||
 | 
										startPos: '',
 | 
				
			||||||
 | 
										relativeDuring: '',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									磨边机: {
 | 
				
			||||||
 | 
										equipmentId: 12,
 | 
				
			||||||
 | 
										equipmentName: 'EQ2',
 | 
				
			||||||
 | 
										status: '',
 | 
				
			||||||
 | 
										startTime: '',
 | 
				
			||||||
 | 
										duration: '',
 | 
				
			||||||
 | 
										startPos: '',
 | 
				
			||||||
 | 
										relativeDuring: '',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									清洗机: {
 | 
				
			||||||
 | 
										equipmentId: 13,
 | 
				
			||||||
 | 
										equipmentName: 'EQ3',
 | 
				
			||||||
 | 
										status: '',
 | 
				
			||||||
 | 
										startTime: '',
 | 
				
			||||||
 | 
										duration: '',
 | 
				
			||||||
 | 
										startPos: '',
 | 
				
			||||||
 | 
										relativeDuring: '',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									窑炉: {
 | 
				
			||||||
 | 
										equipmentId: 14,
 | 
				
			||||||
 | 
										equipmentName: 'EQ4',
 | 
				
			||||||
 | 
										status: '',
 | 
				
			||||||
 | 
										startTime: '',
 | 
				
			||||||
 | 
										duration: '',
 | 
				
			||||||
 | 
										startPos: '',
 | 
				
			||||||
 | 
										relativeDuring: '',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									AGV: {
 | 
				
			||||||
 | 
										equipmentId: 15,
 | 
				
			||||||
 | 
										equipmentName: 'EQ5',
 | 
				
			||||||
 | 
										status: '',
 | 
				
			||||||
 | 
										startTime: '',
 | 
				
			||||||
 | 
										duration: '',
 | 
				
			||||||
 | 
										startPos: '',
 | 
				
			||||||
 | 
										relativeDuring: '',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						computed: {},
 | 
				
			||||||
 | 
						methods: {},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					.sequence-graph {
 | 
				
			||||||
 | 
						padding: 24px;
 | 
				
			||||||
 | 
						background: #fff;
 | 
				
			||||||
 | 
						border-radius: 6px;
 | 
				
			||||||
 | 
						margin: 12px;
 | 
				
			||||||
 | 
						box-shadow: 0 0 32px 8px rgba($color: #000000, $alpha: 0.2);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										51
									
								
								src/components/SequenceGraph/sequenceGraphItem.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					<!-- 
 | 
				
			||||||
 | 
					    filename: sequenceGraphItem.vue
 | 
				
			||||||
 | 
					    author: liubin
 | 
				
			||||||
 | 
					    date: 2023-08-29 14:40:51
 | 
				
			||||||
 | 
					    description: 时序图最小单元
 | 
				
			||||||
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div class="sequence-graph-item" :style="styles">
 | 
				
			||||||
 | 
					        <span v-if="time != null">{{ time }}</span>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'SequenceGraphItem',
 | 
				
			||||||
 | 
						components: {},
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							color: {
 | 
				
			||||||
 | 
								type: String,
 | 
				
			||||||
 | 
								default: 'black',
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					        time: {
 | 
				
			||||||
 | 
					            type: String,
 | 
				
			||||||
 | 
					            default: null
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					    computed: {
 | 
				
			||||||
 | 
					        styles() {
 | 
				
			||||||
 | 
					            return {
 | 
				
			||||||
 | 
					                color: this.color
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						computed: {},
 | 
				
			||||||
 | 
						methods: {},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					.sequence-graph-item {
 | 
				
			||||||
 | 
					    background: #fff;
 | 
				
			||||||
 | 
					    padding: 12px;
 | 
				
			||||||
 | 
					    width: 40px;
 | 
				
			||||||
 | 
					    height: 32px;
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -28,11 +28,14 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.app-main {
 | 
					.app-main {
 | 
				
			||||||
  /* 50= navbar  50  */
 | 
					  /* 48= navbar  48  */
 | 
				
			||||||
  min-height: calc(100vh - 56px);
 | 
					  min-height: calc(100vh - 56px);
 | 
				
			||||||
  width: 100%;
 | 
					  min-width: calc(100vh - 280px);
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  overflow: hidden;
 | 
					  overflow: visible;
 | 
				
			||||||
 | 
					  margin: 8px 14px 0px 16px;
 | 
				
			||||||
 | 
					  border-radius: 8px;
 | 
				
			||||||
 | 
					  background-color: #fff;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.fixed-header + .app-main {
 | 
					.fixed-header + .app-main {
 | 
				
			||||||
@@ -41,8 +44,10 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.hasTagsView {
 | 
					.hasTagsView {
 | 
				
			||||||
  .app-main {
 | 
					  .app-main {
 | 
				
			||||||
    /* 84 = navbar + tags-view = 56 + 34 */
 | 
					    /* 84 = navbar + tags-view = 50 + 34 */
 | 
				
			||||||
    min-height: calc(100vh - 128px);
 | 
					    min-height: calc(100vh - 120px - 8px);
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .fixed-header + .app-main {
 | 
					  .fixed-header + .app-main {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,16 +7,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <div class="right-menu">
 | 
					    <div class="right-menu">
 | 
				
			||||||
      <template v-if="device!=='mobile'">
 | 
					      <template v-if="device!=='mobile'">
 | 
				
			||||||
        <search id="header-search" class="right-menu-item" />
 | 
					        <!-- <search id="header-search" class="right-menu-item" /> -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- 站内信 -->
 | 
					        <!-- 站内信 -->
 | 
				
			||||||
        <!-- <notify-message class="right-menu-item hover-effect" /> -->
 | 
					        <!-- <notify-message class="right-menu-item hover-effect" /> -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <screenfull id="screenfull" class="right-menu-item hover-effect" />
 | 
					        <!-- <screenfull id="screenfull" class="right-menu-item hover-effect" /> -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <el-tooltip content="布局大小" effect="dark" placement="bottom">
 | 
					        <!-- <el-tooltip content="布局大小" effect="dark" placement="bottom">
 | 
				
			||||||
          <size-select id="size-select" class="right-menu-item hover-effect" />
 | 
					          <size-select id="size-select" class="right-menu-item hover-effect" />
 | 
				
			||||||
        </el-tooltip>
 | 
					        </el-tooltip> -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      </template>
 | 
					      </template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,9 +30,9 @@
 | 
				
			|||||||
          <router-link to="/user/profile">
 | 
					          <router-link to="/user/profile">
 | 
				
			||||||
            <el-dropdown-item>个人中心</el-dropdown-item>
 | 
					            <el-dropdown-item>个人中心</el-dropdown-item>
 | 
				
			||||||
          </router-link>
 | 
					          </router-link>
 | 
				
			||||||
          <el-dropdown-item @click.native="setting = true">
 | 
					          <!-- <el-dropdown-item @click.native="setting = true">
 | 
				
			||||||
            <span>布局设置</span>
 | 
					            <span>布局设置</span>
 | 
				
			||||||
          </el-dropdown-item>
 | 
					          </el-dropdown-item> -->
 | 
				
			||||||
          <el-dropdown-item divided @click.native="logout">
 | 
					          <el-dropdown-item divided @click.native="logout">
 | 
				
			||||||
            <span>退出登录</span>
 | 
					            <span>退出登录</span>
 | 
				
			||||||
          </el-dropdown-item>
 | 
					          </el-dropdown-item>
 | 
				
			||||||
@@ -94,7 +94,7 @@ export default {
 | 
				
			|||||||
    async logout() {
 | 
					    async logout() {
 | 
				
			||||||
      this.$modal.confirm('确定注销并退出系统吗?', '提示').then(() => {
 | 
					      this.$modal.confirm('确定注销并退出系统吗?', '提示').then(() => {
 | 
				
			||||||
        this.$store.dispatch('LogOut').then(() => {
 | 
					        this.$store.dispatch('LogOut').then(() => {
 | 
				
			||||||
          location.href = getPath('/index');
 | 
					          location.href = getPath('/');
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
      }).catch(() => {});
 | 
					      }).catch(() => {});
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -104,7 +104,7 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.navbar {
 | 
					.navbar {
 | 
				
			||||||
  height: 56px;
 | 
					  height: 48px; // 56
 | 
				
			||||||
  overflow: hidden;
 | 
					  overflow: hidden;
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  background: #fff;
 | 
					  background: #fff;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@
 | 
				
			|||||||
						: variables.menuLightColor
 | 
											: variables.menuLightColor
 | 
				
			||||||
				"
 | 
									"
 | 
				
			||||||
				:unique-opened="true"
 | 
									:unique-opened="true"
 | 
				
			||||||
				:active-text-color="settings.theme"
 | 
									active-text-color="#fff"
 | 
				
			||||||
				:collapse-transition="false"
 | 
									:collapse-transition="false"
 | 
				
			||||||
				mode="vertical">
 | 
									mode="vertical">
 | 
				
			||||||
				<!-- 根据 sidebarRouters 路由,生成菜单 -->
 | 
									<!-- 根据 sidebarRouters 路由,生成菜单 -->
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,8 +78,8 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
.scroll-container {
 | 
					.scroll-container {
 | 
				
			||||||
  background: #f9f9f9;
 | 
					  // background: #f9f9f9;
 | 
				
			||||||
  box-shadow: inset 0 0 8px 1px #e8e8e8;
 | 
					  // box-shadow: inset 0 0 8px 1px #e8e8e8;
 | 
				
			||||||
  white-space: nowrap;
 | 
					  white-space: nowrap;
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
  overflow: hidden;
 | 
					  overflow: hidden;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -259,7 +259,7 @@ export default {
 | 
				
			|||||||
	height: 42px;
 | 
						height: 42px;
 | 
				
			||||||
	width: 100%;
 | 
						width: 100%;
 | 
				
			||||||
	background: #fff;
 | 
						background: #fff;
 | 
				
			||||||
	border-bottom: 1px solid #d8dce5;
 | 
						// border-bottom: 1px solid #d8dce5;
 | 
				
			||||||
	border-top: 1px solid #d8dce5;
 | 
						border-top: 1px solid #d8dce5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
 | 
						// box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
 | 
				
			||||||
@@ -270,17 +270,16 @@ export default {
 | 
				
			|||||||
			cursor: pointer;
 | 
								cursor: pointer;
 | 
				
			||||||
			height: 28px;
 | 
								height: 28px;
 | 
				
			||||||
			line-height: 28px;
 | 
								line-height: 28px;
 | 
				
			||||||
			border: 1px solid #d8dce5;
 | 
								color: rgba(0, 0, 0, 0.45);
 | 
				
			||||||
			color: #495060;
 | 
								background: #F4F4F4FF;
 | 
				
			||||||
			background: #fff;
 | 
					 | 
				
			||||||
			padding: 0 8px 0 12px;
 | 
								padding: 0 8px 0 12px;
 | 
				
			||||||
			font-size: 14px;
 | 
								font-size: 14px;
 | 
				
			||||||
			letter-spacing: 1px;
 | 
								letter-spacing: 1px;
 | 
				
			||||||
			margin-left: 4px;
 | 
								margin-left: 8px;
 | 
				
			||||||
			border-radius: 0;
 | 
								border-radius: 4px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			&:first-of-type {
 | 
								&:first-of-type {
 | 
				
			||||||
				margin-left: 15px;
 | 
									margin-left: 32px;
 | 
				
			||||||
				padding-right: 12px;
 | 
									padding-right: 12px;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
        <tags-view v-if="needTagsView" />
 | 
					        <tags-view v-if="needTagsView" />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <app-main />
 | 
					      <app-main />
 | 
				
			||||||
      <div class="main-footer" style="color: #777; border-top: 1px solid #eee; user-select: none; font-size: 14px; letter-spacing: 1px; height: 30px; display: grid; place-content: center;">© 中建材智能自动化院 2023</div>
 | 
					      <div class="main-footer" style="color: #C7C7C7; user-select: none; font-size: 14px; letter-spacing: 1px; height: 30px; display: grid; place-content: center;">© 中建材智能自动化研究院有限公司</div>
 | 
				
			||||||
      <right-panel>
 | 
					      <right-panel>
 | 
				
			||||||
        <settings />
 | 
					        <settings />
 | 
				
			||||||
      </right-panel>
 | 
					      </right-panel>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								src/main.js
									
									
									
									
									
								
							
							
						
						@@ -49,6 +49,16 @@ Vue.prototype.DICT_TYPE = DICT_TYPE;
 | 
				
			|||||||
Vue.prototype.handleTree = handleTree;
 | 
					Vue.prototype.handleTree = handleTree;
 | 
				
			||||||
Vue.prototype.addBeginAndEndTime = addBeginAndEndTime;
 | 
					Vue.prototype.addBeginAndEndTime = addBeginAndEndTime;
 | 
				
			||||||
Vue.prototype.divide = divide;
 | 
					Vue.prototype.divide = divide;
 | 
				
			||||||
 | 
					Vue.prototype.tableHeight = function(n) {
 | 
				
			||||||
 | 
						return window.innerHeight - n
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					Vue.prototype.searchBarWidth = function(name, num) {
 | 
				
			||||||
 | 
						if (document.getElementById(name) && document.getElementById(name).offsetWidth < num) {
 | 
				
			||||||
 | 
							return true
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							return false
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 全局组件挂载
 | 
					// 全局组件挂载
 | 
				
			||||||
Vue.component('DictTag', DictTag);
 | 
					Vue.component('DictTag', DictTag);
 | 
				
			||||||
@@ -82,7 +92,7 @@ import Tinymce from '@/components/tinymce/index.vue';
 | 
				
			|||||||
Vue.component('tinymce', Tinymce);
 | 
					Vue.component('tinymce', Tinymce);
 | 
				
			||||||
import '@/assets/icons';
 | 
					import '@/assets/icons';
 | 
				
			||||||
import request from '@/utils/request'; // 实现 form generator 使用自己定义的 axios request 对象
 | 
					import request from '@/utils/request'; // 实现 form generator 使用自己定义的 axios request 对象
 | 
				
			||||||
console.log(request);
 | 
					// console.log(request);
 | 
				
			||||||
Vue.prototype.$axios = request;
 | 
					Vue.prototype.$axios = request;
 | 
				
			||||||
import '@/styles/index.scss';
 | 
					import '@/styles/index.scss';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										113
									
								
								src/mixins/lb/basicPageMixin.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,113 @@
 | 
				
			|||||||
 | 
					import DialogForm from '@/components/DialogForm/index.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						components: { DialogForm },
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								// 遮罩层
 | 
				
			||||||
 | 
								loading: true,
 | 
				
			||||||
 | 
								// 导出遮罩层
 | 
				
			||||||
 | 
								exportLoading: false,
 | 
				
			||||||
 | 
								// 显示搜索条件
 | 
				
			||||||
 | 
								showSearch: true,
 | 
				
			||||||
 | 
								// 总条数
 | 
				
			||||||
 | 
								total: 0,
 | 
				
			||||||
 | 
								// 质量检测信息基础列表
 | 
				
			||||||
 | 
								list: [],
 | 
				
			||||||
 | 
								// 弹出层标题
 | 
				
			||||||
 | 
								title: '',
 | 
				
			||||||
 | 
								// 是否显示弹出层
 | 
				
			||||||
 | 
								open: false,
 | 
				
			||||||
 | 
								// 列表数据
 | 
				
			||||||
 | 
								tableData: [],
 | 
				
			||||||
 | 
								// 弹窗的表单
 | 
				
			||||||
 | 
								// form: {}, // 占位
 | 
				
			||||||
 | 
								// 搜索框需要的 keys
 | 
				
			||||||
 | 
								// searchBarKeys: [], // 占位
 | 
				
			||||||
 | 
								// tableProps: [], // 占位
 | 
				
			||||||
 | 
								// tableBtn: [], // 占位
 | 
				
			||||||
 | 
								// searchBarFormConfig: [], // 占位
 | 
				
			||||||
 | 
								// // 弹窗表单配置
 | 
				
			||||||
 | 
								// dialogFormConfig: [], // 占位
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							// 过滤后端传回的详情数据
 | 
				
			||||||
 | 
							filterData(data, keys) {
 | 
				
			||||||
 | 
								const obj = {};
 | 
				
			||||||
 | 
								keys.forEach((key) => {
 | 
				
			||||||
 | 
									if (/time/i.test(key)) {
 | 
				
			||||||
 | 
										obj[key] = new Date(data[key]);
 | 
				
			||||||
 | 
									} else {
 | 
				
			||||||
 | 
										obj[key] = data[key];
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
								return obj;
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							// 处理表格按钮
 | 
				
			||||||
 | 
							handleTableBtnClick({ data, type }) {
 | 
				
			||||||
 | 
								switch (type) {
 | 
				
			||||||
 | 
									case 'edit':
 | 
				
			||||||
 | 
										this.handleUpdate(data);
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									case 'delete':
 | 
				
			||||||
 | 
										this.handleDelete(data);
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									case 'detail':
 | 
				
			||||||
 | 
										this.handleDetail(data);
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							// 处理搜索栏按钮
 | 
				
			||||||
 | 
							handleSearchBarBtnClick(btn) {
 | 
				
			||||||
 | 
								// const keys = ['name', 'createTime']; // timeVal // 已被 searchBarKeys 替代
 | 
				
			||||||
 | 
								switch (btn.btnName) {
 | 
				
			||||||
 | 
									case 'search':
 | 
				
			||||||
 | 
										this.searchBarKeys.forEach((key) => {
 | 
				
			||||||
 | 
											if (key == 'timeVal') {
 | 
				
			||||||
 | 
												this.queryParams['startTime'] = btn.timeVal[0];
 | 
				
			||||||
 | 
												this.queryParams['endTime'] = btn.timeVal[1];
 | 
				
			||||||
 | 
												return;
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											this.queryParams[key] = btn[key] || null;
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
										this.handleQuery();
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									case 'add':
 | 
				
			||||||
 | 
										this.handleAdd();
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									case 'export':
 | 
				
			||||||
 | 
										this.handleExport();
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									case 'reset':
 | 
				
			||||||
 | 
										this.$refs['search-bar'].resetForm();
 | 
				
			||||||
 | 
										this.resetQuery();
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							handleEmitFun(val) {
 | 
				
			||||||
 | 
								console.log('emit unf', val);
 | 
				
			||||||
 | 
								switch (val.action) {
 | 
				
			||||||
 | 
									// 查看详情
 | 
				
			||||||
 | 
									case 'show-detail':
 | 
				
			||||||
 | 
										this.viewDetail(val.value); // 交由每个组件自己实现
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 搜索按钮操作 */
 | 
				
			||||||
 | 
							handleQuery() {
 | 
				
			||||||
 | 
								this.queryParams.pageNo = 1;
 | 
				
			||||||
 | 
								this.getList();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 重置按钮操作 */
 | 
				
			||||||
 | 
							resetQuery() {
 | 
				
			||||||
 | 
								this.resetForm('queryForm');
 | 
				
			||||||
 | 
								this.handleQuery();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							/** 取消按钮 */
 | 
				
			||||||
 | 
							cancel() {
 | 
				
			||||||
 | 
								this.open = false;
 | 
				
			||||||
 | 
								this.reset();
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -65,16 +65,22 @@ export const constantRoutes = [
 | 
				
			|||||||
    hidden: true
 | 
					    hidden: true
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    path: '',
 | 
					    path: '/print-design',
 | 
				
			||||||
 | 
					    component: (resolve) => require(['@/views/print/design'], resolve),
 | 
				
			||||||
 | 
					    hidden: true
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    path: '/',
 | 
				
			||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
    redirect: 'index',
 | 
					    redirect: 'core/base/factory',
 | 
				
			||||||
    children: [{
 | 
					    // children: [{
 | 
				
			||||||
        path: 'index',
 | 
					    //   path: 'index',
 | 
				
			||||||
        component: (resolve) => require(['@/views/index'], resolve),
 | 
					    //   redirect: 'core/base/factory',
 | 
				
			||||||
        name: '首页',
 | 
					    //   component: (resolve) => require(['@/views/index'], resolve),
 | 
				
			||||||
        meta: {title: '首页', icon: 'dashboard', affix: true}
 | 
					    //   name: '首页',
 | 
				
			||||||
      }
 | 
					    //   meta: { title: '首页', icon: 'dashboard', affix: true }
 | 
				
			||||||
    ]
 | 
					    // }
 | 
				
			||||||
 | 
					    // ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    path: '/user',
 | 
					    path: '/user',
 | 
				
			||||||
@@ -82,15 +88,15 @@ export const constantRoutes = [
 | 
				
			|||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    redirect: 'noredirect',
 | 
					    redirect: 'noredirect',
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'profile',
 | 
					      path: 'profile',
 | 
				
			||||||
        component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
 | 
					      component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
 | 
				
			||||||
        name: 'Profile',
 | 
					      name: 'Profile',
 | 
				
			||||||
        meta: {title: '个人中心', icon: 'user'}
 | 
					      meta: { title: '个人中心', icon: 'user' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'notify-message',
 | 
					      path: 'notify-message',
 | 
				
			||||||
        component: (resolve) => require(['@/views/system/notify/my/index'], resolve),
 | 
					      component: (resolve) => require(['@/views/system/notify/my/index'], resolve),
 | 
				
			||||||
        name: 'MyNotifyMessage',
 | 
					      name: 'MyNotifyMessage',
 | 
				
			||||||
        meta: { title: '我的站内信', icon: 'message' },
 | 
					      meta: { title: '我的站内信', icon: 'message' },
 | 
				
			||||||
    }]
 | 
					    }]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -98,11 +104,11 @@ export const constantRoutes = [
 | 
				
			|||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'type/data/:dictId(\\d+)',
 | 
					      path: 'type/data/:dictId(\\d+)',
 | 
				
			||||||
        component: (resolve) => require(['@/views/system/dict/data'], resolve),
 | 
					      component: (resolve) => require(['@/views/system/dict/data'], resolve),
 | 
				
			||||||
        name: 'SystemDictData',
 | 
					      name: 'SystemDictData',
 | 
				
			||||||
        meta: {title: '字典数据', icon: '', activeMenu: '/system/dict'}
 | 
					      meta: { title: '字典数据', icon: '', activeMenu: '/system/dict' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -110,22 +116,22 @@ export const constantRoutes = [
 | 
				
			|||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'log',
 | 
					      path: 'log',
 | 
				
			||||||
        component: (resolve) => require(['@/views/infra/job/log'], resolve),
 | 
					      component: (resolve) => require(['@/views/infra/job/log'], resolve),
 | 
				
			||||||
        name: 'InfraJobLog',
 | 
					      name: 'InfraJobLog',
 | 
				
			||||||
        meta: {title: '调度日志', activeMenu: '/infra/job'}
 | 
					      meta: { title: '调度日志', activeMenu: '/infra/job' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    path: '/codegen',
 | 
					    path: '/codegen',
 | 
				
			||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'edit/:tableId(\\d+)',
 | 
					      path: 'edit/:tableId(\\d+)',
 | 
				
			||||||
        component: (resolve) => require(['@/views/infra/codegen/editTable'], resolve),
 | 
					      component: (resolve) => require(['@/views/infra/codegen/editTable'], resolve),
 | 
				
			||||||
        name: 'InfraCodegenEditTable',
 | 
					      name: 'InfraCodegenEditTable',
 | 
				
			||||||
        meta: {title: '修改生成配置', activeMenu: '/infra/codegen'}
 | 
					      meta: { title: '修改生成配置', activeMenu: '/infra/codegen' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -134,16 +140,16 @@ export const constantRoutes = [
 | 
				
			|||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    redirect: 'noredirect',
 | 
					    redirect: 'noredirect',
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'oa/leave/create',
 | 
					      path: 'oa/leave/create',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/oa/leave/create'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/oa/leave/create'], resolve),
 | 
				
			||||||
        name: 'BpmOALeaveCreate',
 | 
					      name: 'BpmOALeaveCreate',
 | 
				
			||||||
        meta: {title: '发起 OA 请假', icon: 'form', activeMenu: '/bpm/oa/leave'}
 | 
					      meta: { title: '发起 OA 请假', icon: 'form', activeMenu: '/bpm/oa/leave' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'oa/leave/detail',
 | 
					      path: 'oa/leave/detail',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/oa/leave/detail'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/oa/leave/detail'], resolve),
 | 
				
			||||||
        name: 'BpmOALeaveDetail',
 | 
					      name: 'BpmOALeaveDetail',
 | 
				
			||||||
        meta: {title: '查看 OA 请假', icon: 'view', activeMenu: '/bpm/oa/leave'}
 | 
					      meta: { title: '查看 OA 请假', icon: 'view', activeMenu: '/bpm/oa/leave' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -151,31 +157,31 @@ export const constantRoutes = [
 | 
				
			|||||||
    component: Layout,
 | 
					    component: Layout,
 | 
				
			||||||
    hidden: true,
 | 
					    hidden: true,
 | 
				
			||||||
    children: [{
 | 
					    children: [{
 | 
				
			||||||
        path: 'manager/form/edit',
 | 
					      path: 'manager/form/edit',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/form/formEditor'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/form/formEditor'], resolve),
 | 
				
			||||||
        name: 'BpmFormEditor',
 | 
					      name: 'BpmFormEditor',
 | 
				
			||||||
        meta: {title: '流程表单-编辑', activeMenu: '/bpm/manager/form'}
 | 
					      meta: { title: '流程表单-编辑', activeMenu: '/bpm/manager/form' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'manager/definition',
 | 
					      path: 'manager/definition',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/definition/index'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/definition/index'], resolve),
 | 
				
			||||||
        name: 'BpmProcessDefinition',
 | 
					      name: 'BpmProcessDefinition',
 | 
				
			||||||
        meta: {title: '流程定义', activeMenu: '/bpm/manager/model'}
 | 
					      meta: { title: '流程定义', activeMenu: '/bpm/manager/model' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'manager/model/design',
 | 
					      path: 'manager/model/design',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/model/modelEditor'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/model/modelEditor'], resolve),
 | 
				
			||||||
        name: 'BpmModelEditor',
 | 
					      name: 'BpmModelEditor',
 | 
				
			||||||
        meta: {title: '设计流程', activeMenu: '/bpm/manager/model'}
 | 
					      meta: { title: '设计流程', activeMenu: '/bpm/manager/model' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'process-instance/create',
 | 
					      path: 'process-instance/create',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/processInstance/create'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/processInstance/create'], resolve),
 | 
				
			||||||
        name: 'BpmProcessInstanceCreate',
 | 
					      name: 'BpmProcessInstanceCreate',
 | 
				
			||||||
        meta: {title: '发起流程', activeMenu: '/bpm/task/my'}
 | 
					      meta: { title: '发起流程', activeMenu: '/bpm/task/my' }
 | 
				
			||||||
      }, {
 | 
					    }, {
 | 
				
			||||||
        path: 'process-instance/detail',
 | 
					      path: 'process-instance/detail',
 | 
				
			||||||
        component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
 | 
					      component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
 | 
				
			||||||
        name: 'BpmProcessInstanceDetail',
 | 
					      name: 'BpmProcessInstanceDetail',
 | 
				
			||||||
        meta: {title: '流程详情', activeMenu: '/bpm/task/my'}
 | 
					      meta: { title: '流程详情', activeMenu: '/bpm/task/my' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -186,7 +192,7 @@ export const constantRoutes = [
 | 
				
			|||||||
      path: 'value/:propertyId(\\d+)',
 | 
					      path: 'value/:propertyId(\\d+)',
 | 
				
			||||||
      component: (resolve) => require(['@/views/mall/product/property/value'], resolve),
 | 
					      component: (resolve) => require(['@/views/mall/product/property/value'], resolve),
 | 
				
			||||||
      name: 'ProductPropertyValue',
 | 
					      name: 'ProductPropertyValue',
 | 
				
			||||||
      meta: {title: '商品属性值', icon: '', activeMenu: '/product/property'}
 | 
					      meta: { title: '商品属性值', icon: '', activeMenu: '/product/property' }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@@ -198,14 +204,14 @@ export const constantRoutes = [
 | 
				
			|||||||
      path: 'edit/:spuId(\\d+)',
 | 
					      path: 'edit/:spuId(\\d+)',
 | 
				
			||||||
      component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
 | 
					      component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
 | 
				
			||||||
      name: 'ProductSpuUpdate',
 | 
					      name: 'ProductSpuUpdate',
 | 
				
			||||||
      meta: {title: '修改商品', activeMenu: '/product/spu'}
 | 
					      meta: { title: '修改商品', activeMenu: '/product/spu' }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
      {
 | 
					    {
 | 
				
			||||||
        path: 'add',
 | 
					      path: 'add',
 | 
				
			||||||
        component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
 | 
					      component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
 | 
				
			||||||
        name: 'ProductSpuCreate',
 | 
					      name: 'ProductSpuCreate',
 | 
				
			||||||
        meta: {title: '添加商品', activeMenu: '/product/spu'}
 | 
					      meta: { title: '添加商品', activeMenu: '/product/spu' }
 | 
				
			||||||
      }
 | 
					    }
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@@ -247,7 +253,7 @@ Router.prototype.push = function push(location) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export default new Router({
 | 
					export default new Router({
 | 
				
			||||||
  base: process.env.VUE_APP_APP_NAME ? process.env.VUE_APP_APP_NAME : "/",
 | 
					  base: process.env.VUE_APP_APP_NAME ? process.env.VUE_APP_APP_NAME : "/",
 | 
				
			||||||
  mode: 'history', // 去掉url中的#
 | 
					  mode: 'hash', // 去掉url中的#
 | 
				
			||||||
  scrollBehavior: () => ({y: 0}),
 | 
					  scrollBehavior: () => ({ y: 0 }),
 | 
				
			||||||
  routes: constantRoutes
 | 
					  routes: constantRoutes
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@ $editorTabsborderColor: #121315;
 | 
				
			|||||||
body, html{
 | 
					body, html{
 | 
				
			||||||
  margin: 0;
 | 
					  margin: 0;
 | 
				
			||||||
  padding: 0;
 | 
					  padding: 0;
 | 
				
			||||||
  background: #fff;
 | 
					  background: #F2F4F9;
 | 
				
			||||||
  -moz-osx-font-smoothing: grayscale;
 | 
					  -moz-osx-font-smoothing: grayscale;
 | 
				
			||||||
  -webkit-font-smoothing: antialiased;
 | 
					  -webkit-font-smoothing: antialiased;
 | 
				
			||||||
  text-rendering: optimizeLegibility;
 | 
					  text-rendering: optimizeLegibility;
 | 
				
			||||||
@@ -138,4 +138,61 @@ input, textarea{
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
.el-upload__tip{
 | 
					.el-upload__tip{
 | 
				
			||||||
  line-height: 1.2;
 | 
					  line-height: 1.2;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 滚动条
 | 
				
			||||||
 | 
					::-webkit-scrollbar {
 | 
				
			||||||
 | 
					  width: 8px;
 | 
				
			||||||
 | 
					  height: 8px;
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-scrollbar-track-piece {
 | 
				
			||||||
 | 
					  background-color:rgba(144,147,153,0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-scrollbar-corner {
 | 
				
			||||||
 | 
					  background-color:rgba(144,147,153,0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-scrollbar-track {
 | 
				
			||||||
 | 
					  width: 6px;
 | 
				
			||||||
 | 
					  background: rgba(144,147,153,0);
 | 
				
			||||||
 | 
					  -webkit-border-radius: 2em;
 | 
				
			||||||
 | 
					  -moz-border-radius: 2em;
 | 
				
			||||||
 | 
					  border-radius: 2em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-scrollbar-thumb {
 | 
				
			||||||
 | 
					  background-color: rgba(144,147,153,.5);
 | 
				
			||||||
 | 
					  background-clip: padding-box;
 | 
				
			||||||
 | 
					  min-height: 28px;
 | 
				
			||||||
 | 
					  -webkit-border-radius: 2em;
 | 
				
			||||||
 | 
					  -moz-border-radius: 2em;
 | 
				
			||||||
 | 
					  border-radius: 2em;
 | 
				
			||||||
 | 
					  transition: background-color .3s;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					::-webkit-scrollbar-thumb:hover {
 | 
				
			||||||
 | 
					  background-color: rgba(144,147,153,.3);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 抽屉head区域---start
 | 
				
			||||||
 | 
					.el-drawer__header {
 | 
				
			||||||
 | 
					  padding-bottom: 20px;
 | 
				
			||||||
 | 
					  margin-bottom: 23px;
 | 
				
			||||||
 | 
					  font-size: 20px;
 | 
				
			||||||
 | 
					  font-weight: 500;
 | 
				
			||||||
 | 
					  color: rgba(0,0,0,0.85);
 | 
				
			||||||
 | 
					  border-bottom: 1px solid rgba(233, 233, 233, 1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.el-drawer__header > :first-child::before {
 | 
				
			||||||
 | 
					  content: '';
 | 
				
			||||||
 | 
					  display: inline-block;
 | 
				
			||||||
 | 
					  width: 4px;
 | 
				
			||||||
 | 
					  height: 24px;
 | 
				
			||||||
 | 
					  background-color: #0b58ff;
 | 
				
			||||||
 | 
					  margin-right: 8px;
 | 
				
			||||||
 | 
					  vertical-align: middle;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 抽屉head区域---end
 | 
				
			||||||
							
								
								
									
										64
									
								
								src/utils/chartMixins/resize.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					import { debounce } from '@/utils/debounce'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      $_sidebarElm: null,
 | 
				
			||||||
 | 
					      $_resizeHandler: null
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() {
 | 
				
			||||||
 | 
					    this.$_resizeHandler = debounce(() => {
 | 
				
			||||||
 | 
					      if (this.chart) {
 | 
				
			||||||
 | 
					        this.chart.resize()
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }, 100)
 | 
				
			||||||
 | 
					    this.$_initResizeEvent()
 | 
				
			||||||
 | 
					    this.$_initSidebarResizeEvent()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  beforeDestroy() {
 | 
				
			||||||
 | 
					    this.$_destroyResizeEvent()
 | 
				
			||||||
 | 
					    this.$_destroySidebarResizeEvent()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  // to fixed bug when cached by keep-alive
 | 
				
			||||||
 | 
					  // https://github.com/PanJiaChen/vue-element-admin/issues/2116
 | 
				
			||||||
 | 
					  activated() {
 | 
				
			||||||
 | 
					    this.$_initResizeEvent()
 | 
				
			||||||
 | 
					    this.$_initSidebarResizeEvent()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  deactivated() {
 | 
				
			||||||
 | 
					    this.$_destroyResizeEvent()
 | 
				
			||||||
 | 
					    this.$_destroySidebarResizeEvent()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    // use $_ for mixins properties
 | 
				
			||||||
 | 
					    // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
 | 
				
			||||||
 | 
					    $_initResizeEvent() {
 | 
				
			||||||
 | 
					      window.addEventListener('resize', this.$_resizeHandler)
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    $_destroyResizeEvent() {
 | 
				
			||||||
 | 
					      window.removeEventListener('resize', this.$_resizeHandler)
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    $_sidebarResizeHandler(e) {
 | 
				
			||||||
 | 
					      if (e.propertyName === 'width') {
 | 
				
			||||||
 | 
					        this.$_resizeHandler()
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    $_initSidebarResizeEvent() {
 | 
				
			||||||
 | 
					      this.$_sidebarElm =
 | 
				
			||||||
 | 
					        document.getElementsByClassName('sidebar-container')[0]
 | 
				
			||||||
 | 
					      this.$_sidebarElm &&
 | 
				
			||||||
 | 
					        this.$_sidebarElm.addEventListener(
 | 
				
			||||||
 | 
					          'transitionend',
 | 
				
			||||||
 | 
					          this.$_sidebarResizeHandler
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    $_destroySidebarResizeEvent() {
 | 
				
			||||||
 | 
					      this.$_sidebarElm &&
 | 
				
			||||||
 | 
					        this.$_sidebarElm.removeEventListener(
 | 
				
			||||||
 | 
					          'transitionend',
 | 
				
			||||||
 | 
					          this.$_sidebarResizeHandler
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								src/utils/debounce.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @param {Function} func
 | 
				
			||||||
 | 
					 * @param {number} wait
 | 
				
			||||||
 | 
					 * @param {boolean} immediate
 | 
				
			||||||
 | 
					 * @return {*}
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function debounce(func, wait, immediate) {
 | 
				
			||||||
 | 
					  let timeout, args, context, timestamp, result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const later = function () {
 | 
				
			||||||
 | 
					    // 据上一次触发时间间隔
 | 
				
			||||||
 | 
					    const last = +new Date() - timestamp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
 | 
				
			||||||
 | 
					    if (last < wait && last > 0) {
 | 
				
			||||||
 | 
					      timeout = setTimeout(later, wait - last)
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      timeout = null
 | 
				
			||||||
 | 
					      // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用
 | 
				
			||||||
 | 
					      if (!immediate) {
 | 
				
			||||||
 | 
					        result = func.apply(context, args)
 | 
				
			||||||
 | 
					        if (!timeout) context = args = null
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return function (...args) {
 | 
				
			||||||
 | 
					    context = this
 | 
				
			||||||
 | 
					    timestamp = +new Date()
 | 
				
			||||||
 | 
					    const callNow = immediate && !timeout
 | 
				
			||||||
 | 
					    // 如果延时不存在,重新设定延时
 | 
				
			||||||
 | 
					    if (!timeout) timeout = setTimeout(later, wait)
 | 
				
			||||||
 | 
					    if (callNow) {
 | 
				
			||||||
 | 
					      result = func.apply(context, args)
 | 
				
			||||||
 | 
					      context = args = null
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return result
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||