Compare commits
	
		
			49 Commits
		
	
	
		
			5695c3db90
			...
			projects/z
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b7d65b47c8 | |||
| cc65c44cb8 | |||
| 3e13028f9f | |||
| b28816f515 | |||
| 9c1f36d460 | |||
| 67e3b08c82 | |||
| afb62375da | |||
| e93e7d530d | |||
| 86eca859aa | |||
| 1e9bfee1e7 | |||
| b4985d4018 | |||
| ea47028178 | |||
| eaf00466db | |||
| 1434eaa3ac | |||
| bc2b51d0e3 | |||
| e58c60e6f7 | |||
| 445cd9630d | |||
| e314e84b43 | |||
| 491b88f220 | |||
| d5744b4f3d | |||
| c138755a54 | |||
| d764eae48d | |||
| baffb1f6f8 | |||
| 8ecc5db385 | |||
| 77259329d9 | |||
| 8ad8e3a5b4 | |||
| 6ca512392c | |||
| a73502cda7 | |||
| e32530e459 | |||
| 64e1c1869d | |||
| 93ac1c4742 | |||
| a650f0ad9d | |||
| e237737830 | |||
| 09cce6c613 | |||
| 07dd135daa | |||
| 0757d2d47c | |||
| 4fbe72d314 | |||
| 10219fd841 | |||
| 74a2a3b8e5 | |||
| c3b4223e5b | |||
| 070e01c2c4 | |||
| 2665b6a0b0 | |||
| a71fb90e6a | |||
| ac85c83cf9 | |||
| c2e987aee4 | |||
| 0e4ed597cd | |||
| 3e7914ac91 | |||
| 9c19a6197a | |||
| 074b35b6a6 | 
							
								
								
									
										19
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						| @@ -1,25 +1,24 @@ | ||||
| ### | ||||
|  # @Author: Do not edit | ||||
|  # @Date: 2023-08-29 09:40:39 | ||||
|  # @LastEditTime: 2023-11-03 11:16:12 | ||||
|  # @LastEditors: DY | ||||
|  # @LastEditTime: 2025-03-05 16:46:35 | ||||
|  # @LastEditors: zwq | ||||
|  # @Description: | ||||
| ### | ||||
| # 开发环境配置 | ||||
| ENV = 'development' | ||||
|  | ||||
| # 页面标题 | ||||
| VUE_APP_TITLE = MES系统 | ||||
| VUE_APP_TITLE = 成本管理系统 | ||||
|  | ||||
| # 芋道管理系统/开发环境 | ||||
| # VUE_APP_BASE_API = 'http://100.64.0.26:48082' | ||||
| # VUE_APP_BASE_API = 'http://192.168.0.33:48082' | ||||
| VUE_APP_BASE_API = 'http://192.168.4.173:48080' | ||||
| # 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.1.56:48080' | ||||
| # VUE_APP_BASE_API = 'http://192.168.1.188:48080' | ||||
| # VUE_APP_BASE_API = 'http://192.168.2.159:48080' | ||||
| # VUE_APP_BASE_API = 'http://line-sczg.kszny.picaiba.com' | ||||
| VUE_APP_BASE_API = 'http://100.64.0.45:48080' | ||||
| # VUE_APP_BASE_API = 'http://172.16.33.10:48080' | ||||
|  | ||||
| # ws地址 | ||||
| VUE_APP_WS_API = 'ws://100.64.0.45:48080' | ||||
|  | ||||
| # 路由懒加载 | ||||
| VUE_CLI_BABEL_TRANSPILE_MODULES = true | ||||
|   | ||||
							
								
								
									
										18
									
								
								.env.prod
									
									
									
									
									
								
							
							
						
						| @@ -1,15 +1,27 @@ | ||||
| ### | ||||
|  # @Author: zwq | ||||
|  # @Date: 2024-03-27 15:49:55 | ||||
|  # @LastEditors: zwq | ||||
|  # @LastEditTime: 2025-03-05 16:30:45 | ||||
|  # @Description: | ||||
| ### | ||||
| # 生产环境配置 | ||||
| ENV = 'production' | ||||
|  | ||||
| # 页面标题 | ||||
| VUE_APP_TITLE = 产线监控系统 | ||||
| VUE_APP_TITLE = 成本管理系统 | ||||
|  | ||||
| # 芋道管理系统/生产环境 | ||||
| VUE_APP_BASE_API = '/prod-api' | ||||
| # VUE_APP_BASE_API = '/prod-api' | ||||
| VUE_APP_BASE_API = '' | ||||
|  | ||||
| # 根据服务器或域名修改 | ||||
| # PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/' | ||||
| PUBLIC_PATH = 'http://192.168.0.33:8888/' | ||||
| # PUBLIC_PATH = 'http://192.168.0.33:8888/' | ||||
| PUBLIC_PATH = '' | ||||
|  | ||||
| # ws地址 | ||||
| VUE_APP_WS_API = 'ws://10.1.17.10:48080' | ||||
|  | ||||
| # 二级部署路径 | ||||
| VUE_APP_APP_NAME ='yudao-admin' | ||||
|   | ||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -21,3 +21,5 @@ selenium-debug.log | ||||
|  | ||||
| package-lock.json | ||||
| echarts.js | ||||
| sync_line_sczg_prod.bat | ||||
| sync_line_sczg_aliyun.bat | ||||
| @@ -6,9 +6,9 @@ | ||||
|   "license": "MIT", | ||||
|   "scripts": { | ||||
|     "local": "vue-cli-service serve --mode local", | ||||
|     "dev": "vue-cli-service serve --mode dev", | ||||
|     "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --mode dev", | ||||
|     "front": "vue-cli-service serve --mode front", | ||||
|     "build:prod": "vue-cli-service build --mode prod", | ||||
|     "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode prod", | ||||
|     "build:stage": "vue-cli-service build --mode stage", | ||||
|     "build:dev": "vue-cli-service build --mode dev", | ||||
|     "build:static": "vue-cli-service build --mode static", | ||||
| @@ -41,7 +41,6 @@ | ||||
|     "url": "https://github.com/YunaiV/ruoyi-vue-pro" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@antv/x6": "^2.15.3", | ||||
|     "@babel/parser": "7.18.4", | ||||
|     "@riophae/vue-treeselect": "0.4.0", | ||||
|     "axios": "0.27.2", | ||||
| @@ -71,7 +70,6 @@ | ||||
|     "screenfull": "5.0.2", | ||||
|     "sortablejs": "1.10.2", | ||||
|     "throttle-debounce": "2.1.0", | ||||
|     "uuid": "^9.0.1", | ||||
|     "video.js": "^8.5.2", | ||||
|     "vue": "2.7.14", | ||||
|     "vue-count-to": "1.0.13", | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								public/static/videos/login.webm
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-11-02 20:25:36 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建客户 | ||||
| export function createCustomer(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新客户 | ||||
| export function updateCustomer(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除客户 | ||||
| export function deleteCustomer(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得客户 | ||||
| export function getCustomer(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得客户code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/getCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得客户分页 | ||||
| export function getCustomerPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function getCustomerList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-30 14:37:28 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建部门 | ||||
| export function createCoreDepartment(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新部门 | ||||
| export function updateCoreDepartment(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除部门 | ||||
| export function deleteCoreDepartment(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得部门 | ||||
| export function getCoreDepartment(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得部门code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/core-department/getCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得部门分页 | ||||
| export function getCoreDepartmentPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function getCoreDepartmentList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-department/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-31 15:11:25 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建专业 | ||||
| export function createCoreMajor(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新专业 | ||||
| export function updateCoreMajor(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除专业 | ||||
| export function deleteCoreMajor(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得专业 | ||||
| export function getCoreMajor(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得专业code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/core-major/getCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得专业分页 | ||||
| export function getCoreMajorPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function getCoreMajorList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-major/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-11-03 10:39:44 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建供应商 | ||||
| export function createCoreSupplier(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新供应商 | ||||
| export function updateCoreSupplier(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除供应商 | ||||
| export function deleteCoreSupplier(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得供应商 | ||||
| export function getCoreSupplier(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得供应商code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/getCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得供应商分页 | ||||
| export function getCoreSupplierPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function getCoreSupplierList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,103 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-11-02 19:49:52 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建员工 | ||||
| export function createCoreWorker(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新员工 | ||||
| export function updateCoreWorker(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除员工 | ||||
| export function deleteCoreWorker(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得员工 | ||||
| export function getCoreWorker(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得员工code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/getCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得员工分页 | ||||
| export function getCoreWorkerPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function getCoreWorkerList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建员工--专业 | ||||
| export function createWoBindMa(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker-bind-major/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新员工--专业 | ||||
| export function updateWoBindMa(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker-bind-major/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除员工--专业 | ||||
| export function deleteWoBindMa(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker-bind-major/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得员工--专业分页 | ||||
| export function getWoBindMaPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker-bind-major/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,8 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 获得所有客户列表 | ||||
| export function getCustomerList() { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -1,73 +0,0 @@ | ||||
| // 成品发货 | ||||
| import request from '@/utils/request' | ||||
| // 获得成品发货清单分页 | ||||
| export function deliveryLogPage(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log/page', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取发货进度分页 | ||||
| export function deliveryProgressPage(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-progress/page', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取发货进度分页 | ||||
| export function deliveryLogDetPage(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log-det/page', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建成品发货清单 | ||||
| export function deliveryLogCreate(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新成品发货清单 | ||||
| export function deliveryLogUpdate(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得成品发货清单 | ||||
| export function getDeliveryLog(query) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除成品发货清单 | ||||
| export function deliveryLogDelete(query) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log/delete', | ||||
|     method: 'delete', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 装车 | ||||
| export function deliveryLogDetCreate(data) { | ||||
|   return request({ | ||||
|     url: '/extend/delivery-log-det/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										86
									
								
								src/api/base/energyQuantityManual.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,86 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-11 15:00:03 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-12 10:25:30 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得分页数据 | ||||
| export function energyQuantityManualPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建 | ||||
| export function energyQuantityManualCreate(data) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新 | ||||
| export function energyQuantityManualUpdate(data) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //获得能源抄表(手动) | ||||
| export function energyQuantityManualGet(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //删除 | ||||
| export function energyQuantityManualDelete(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/delete', | ||||
|     method: 'delete', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //导出 | ||||
| export function energyQuantityManualExport(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-manual/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 获得能源表名配置分页 | ||||
| export function energyTablePage() { | ||||
|   return request({ | ||||
|     url: '/base/energy-type-meter-bind/list', | ||||
|     method: 'get', | ||||
|   }) | ||||
| } | ||||
| // 获得能源表名配置 | ||||
| export function energyTableGet(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-type-meter-bind/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 更新能源表名配置 | ||||
| export function energyTableUpdate(data) { | ||||
|   return request({ | ||||
|     url: '/base/energy-type-meter-bind/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| @@ -3,7 +3,7 @@ import request from '@/utils/request' | ||||
| // 创建设备 | ||||
| export function createEquipment(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/create', | ||||
|     url: '/base/equipment/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| @@ -12,7 +12,7 @@ export function createEquipment(data) { | ||||
| // 更新设备 | ||||
| export function updateEquipment(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/update', | ||||
|     url: '/base/equipment/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| @@ -21,7 +21,7 @@ export function updateEquipment(data) { | ||||
| // 删除设备 | ||||
| export function deleteEquipment(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/delete?id=' + id, | ||||
|     url: '/base/equipment/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @@ -29,7 +29,7 @@ export function deleteEquipment(id) { | ||||
| // 获得设备 | ||||
| export function getEquipment(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/get?id=' + id, | ||||
|     url: '/base/equipment/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -37,7 +37,7 @@ export function getEquipment(id) { | ||||
| // 获得设备分页 | ||||
| export function getEquipmentPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/page', | ||||
|     url: '/base/equipment/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| @@ -46,7 +46,7 @@ export function getEquipmentPage(query) { | ||||
| // 导出设备 Excel | ||||
| export function exportEquipmentExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/export-excel', | ||||
|     url: '/base/equipment/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
| @@ -55,7 +55,7 @@ export function exportEquipmentExcel(query) { | ||||
| // 获得所有设备列表 | ||||
| export function getEquipmentAll() { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/listAll', | ||||
|     url: '/base/equipment/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|   | ||||
							
								
								
									
										53
									
								
								src/api/base/equipmentConfig.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2024-02-21 13:43:02 | ||||
|  * @LastEditTime: 2024-04-30 10:07:59 | ||||
|  * @LastEditors: zwq | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得关联表名 | ||||
| export function getplcAllList(query) { | ||||
|   return request({ | ||||
|     url: '/base/equipment-plc/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得设备 | ||||
| export function getEquipmentList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 根据产线获得工段 | ||||
| export function listByParentId(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-workshop-section/listByParentId', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产线工段设备树形结构 | ||||
| export function getTree(query) { | ||||
|   return request({ | ||||
|     url: '/base/factory/getTree', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得设备分组列表 | ||||
| export function getgroupAllList(query) { | ||||
|   return request({ | ||||
|     url: '/base/equipment-group/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -3,7 +3,7 @@ import request from '@/utils/request' | ||||
| // 创建设备类型 | ||||
| export function createEquipmentType(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/create', | ||||
|     url: '/base/equipment-type/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| @@ -12,7 +12,7 @@ export function createEquipmentType(data) { | ||||
| // 更新设备类型 | ||||
| export function updateEquipmentType(data) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/update', | ||||
|     url: '/base/equipment-type/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| @@ -21,7 +21,7 @@ export function updateEquipmentType(data) { | ||||
| // 删除设备类型 | ||||
| export function deleteEquipmentType(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/delete?id=' + id, | ||||
|     url: '/base/equipment-type/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @@ -29,7 +29,7 @@ export function deleteEquipmentType(id) { | ||||
| // 获得设备类型 | ||||
| export function getEquipmentType(id) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/get?id=' + id, | ||||
|     url: '/base/equipment-type/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -37,7 +37,7 @@ export function getEquipmentType(id) { | ||||
| // 获得设备类型分页 | ||||
| export function getEquipmentTypePage(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/page', | ||||
|     url: '/base/equipment-type/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| @@ -46,7 +46,7 @@ export function getEquipmentTypePage(query) { | ||||
| // 导出设备类型 Excel | ||||
| export function exportEquipmentTypeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment-type/export-excel', | ||||
|     url: '/base/equipment-type/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   | ||||
| @@ -2,7 +2,7 @@ import request from '@/utils/request' | ||||
| // 获得工厂产线工段设备树形结构 | ||||
| export function getTree() { | ||||
|   return request({ | ||||
|     url: '/base/core-factory/getTree', | ||||
|     url: '/base/factory/getTree', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -58,49 +58,3 @@ export function listEnabled() { | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得班组组员信息分页 | ||||
| export function groupTeamPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得班组组员信息 | ||||
| export function groupTeamDet(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
|  | ||||
| // 创建班组组员信息 | ||||
| export function teamDetCreate(data) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新班组组员信息 | ||||
| export function teamDetUpdate(data) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除班组组员信息 | ||||
| export function teamDetDelete(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/delete', | ||||
|     method: 'delete', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-24 11:22:28 | ||||
|  * @LastEditors: DY | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-09 16:42:19 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-10 14:33:52 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建物料 | ||||
| // 创建原料 | ||||
| export function createMaterial(data) { | ||||
|   return request({ | ||||
|     url: '/base/material/create', | ||||
| @@ -16,7 +16,7 @@ export function createMaterial(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新物料 | ||||
| // 更新原料 | ||||
| export function updateMaterial(data) { | ||||
|   return request({ | ||||
|     url: '/base/material/update', | ||||
| @@ -25,7 +25,14 @@ export function updateMaterial(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除物料 | ||||
| // 获取code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/material/autoCode', | ||||
|     method: 'POST' | ||||
|   }) | ||||
| } | ||||
| // 删除原料 | ||||
| export function deleteMaterial(id) { | ||||
|   return request({ | ||||
|     url: '/base/material/delete?id=' + id, | ||||
| @@ -33,7 +40,7 @@ export function deleteMaterial(id) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料 | ||||
| // 获得原料 | ||||
| export function getMaterial(id) { | ||||
|   return request({ | ||||
|     url: '/base/material/get?id=' + id, | ||||
| @@ -41,15 +48,7 @@ export function getMaterial(id) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/material/getMaterialCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料分页 | ||||
| // 获得原料分页 | ||||
| export function getMaterialPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/material/page', | ||||
| @@ -57,65 +56,20 @@ export function getMaterialPage(query) { | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料列表 | ||||
| export function getMaterialList(query) { | ||||
| // 获得原料列表 | ||||
| export function getMaterialList() { | ||||
|   return request({ | ||||
|     url: '/base/material/listbyfilter', | ||||
|     url: '/base/material/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得供应商所有列表 | ||||
| export function getSupplierList(query) { | ||||
| // 导出原料 Excel | ||||
| export function exportMaterialExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-supplier/listAll', | ||||
|     url: '/base/material/export-excel', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料属性列表 | ||||
| export function getMaterialAttrList(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-attr/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建物料属性 | ||||
| export function createMaterialAttr(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-attr/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新物料属性 | ||||
| export function updateMaterialAttr(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-attr/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除物料属性 | ||||
| export function deleteMaterialAttr(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-attr/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料属性 | ||||
| export function getMaterialAttr(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-attr/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-24 17:09:59 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建物料批次 | ||||
| export function createMaterialDate(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新物料批次 | ||||
| export function updateMaterialDate(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除物料批次 | ||||
| export function deleteMaterialDate(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料批次 | ||||
| export function getMaterialDate(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/getDetail?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料批次code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/material-date/getMaterialDateCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料批次分页 | ||||
| export function getMaterDatePage(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料批次列表 | ||||
| export function getMaterDateList(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-date/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/api/base/materialPricing.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,68 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-09 16:42:19 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-10 14:31:46 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建原料 | ||||
| export function createMaterialPricing(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新原料 | ||||
| export function updateMaterialPricing(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/autoCode', | ||||
|     method: 'POST' | ||||
|   }) | ||||
| } | ||||
| // 删除原料 | ||||
| export function deleteMaterialPricing(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原料 | ||||
| export function getMaterialPricing(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原料分页 | ||||
| export function getMaterialPricingPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原料 Excel | ||||
| export function exportMaterialPricingExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-pricing/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| @@ -1,112 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-26 20:06:29 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建产品Bom | ||||
| export function createMaterialPB(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新产品Bom | ||||
| export function updateMaterialPB(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除产品Bom | ||||
| export function deleteMaterialPB(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品Bom | ||||
| export function getMaterialPB(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品Bomcode | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/getMaterialProductBomCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品Bom分页 | ||||
| export function getMaterialPBPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品Bom列表 | ||||
| export function getMaterialPBList(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品列表 | ||||
| export function getProList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-product/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得产品Bom详细分页 | ||||
| export function getProBomList(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom-det/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建产品Bom详细 | ||||
| export function createMaterialPBDet(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom-det/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新产品Bom详细 | ||||
| export function updateMaterialPBDet(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom-det/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除产品Bom详细 | ||||
| export function deleteMaterialPBDet(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom-det/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @@ -1,69 +0,0 @@ | ||||
| /* | ||||
|  * @Author: Do not edit | ||||
|  * @Date: 2023-10-21 11:50:46 | ||||
|  * @LastEditTime: 2023-10-26 09:32:21 | ||||
|  * @LastEditors: DY | ||||
|  * @Description:  | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建物料使用记录 | ||||
| export function createMaterialLog(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-use-log/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新物料使用记录 | ||||
| export function updateMaterialLog(data) { | ||||
|   return request({ | ||||
|     url: '/base/material-use-log/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料使用记录 | ||||
| export function getMaterialLog(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-use-log/getDetail?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得物料使用记录分页 | ||||
| export function getMaterialLogPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-use-log/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有设备列表 | ||||
| export function getEqListAll(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-equipment/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有员工列表 | ||||
| export function getworkerAll(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除物料使用记录 | ||||
| export function deleteMaterialLog(id) { | ||||
|   return request({ | ||||
|     url: '/base/material-use-log/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| /* | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-10-18 09:33:57 | ||||
|  * @LastEditTime: 2023-10-18 16:02:09 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建包装 | ||||
| export function createPackingType(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/getPackagingSerialCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| // 更新包装 | ||||
| export function updatePackingType(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除包装 | ||||
| export function deletePackingType(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装 | ||||
| export function getPackingType(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装分页 | ||||
| export function getPackingTypePage(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出包装 Excel | ||||
| export function exportPackingExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| @@ -1,140 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 条件获得订单列表 | ||||
| export function orderList(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 条件获得工单列表 | ||||
| export function workOrderList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-work-order/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得订单分页 | ||||
| export function getOrderPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取订单code | ||||
| export function getOrderCode() { | ||||
|   return request({ | ||||
|     url: '/base/order/getOrderCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取工单code | ||||
| export function getWorkOrderCode() { | ||||
|   return request({ | ||||
|     url: '/base/order/getWorkOrderCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得订单 | ||||
| export function getOrderById(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得工艺流程列表 | ||||
| export function getProcessFlowList() { | ||||
|   return request({ | ||||
|     url: '/extend/process-flow/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 创建订单 | ||||
| export function orderCreate(data) { | ||||
|   return request({ | ||||
|     url: '/base/order/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新订单 | ||||
| export function orderUpdate(data) { | ||||
|   return request({ | ||||
|     url: '/base/order/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除订单 | ||||
| export function orderDelete(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/delete', | ||||
|     method: 'delete', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 下发订单,绑定的穿工单id,新建不传 | ||||
| export function orderIssue(data) { | ||||
|   return request({ | ||||
|     url: '/base/order/issue', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得工单 | ||||
| export function getWorkOrderById(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-work-order/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 订单监控 | ||||
| export function orderMonitor(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/orderMonitor', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有客户列表 | ||||
| export function customerList() { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得订单详情 | ||||
| export function orderDetail(query) { | ||||
|   return request({ | ||||
|     url: '/base/order/getDetail', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 产品bom消耗信息 | ||||
| export function bomUseNum(query) { | ||||
|   return request({ | ||||
|     url: '/base/material-product-bom/bomUseNum', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,92 +0,0 @@ | ||||
| /* | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-10-18 09:33:57 | ||||
|  * @LastEditTime: 2023-10-18 16:18:12 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建包装 | ||||
| export function createPacking(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装code | ||||
| export function getCode() { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/getPackagingSerialCode', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| // 更新包装 | ||||
| export function updatePacking(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除包装 | ||||
| export function deletePacking(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装 | ||||
| export function getPacking(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装分页 | ||||
| export function getPackingPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出包装 Excel | ||||
| export function exportPackingExcel(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-log/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| export function getWorkOrderList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-work-order/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|   }) | ||||
| } | ||||
|  | ||||
| export function getCustomerList(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-customer/listAll', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|   }) | ||||
| } | ||||
|  | ||||
| export function getModelList(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|   }) | ||||
| } | ||||
| @@ -1,92 +0,0 @@ | ||||
| /* | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-10-18 09:33:57 | ||||
|  * @LastEditTime: 2023-10-19 15:28:00 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建包装 | ||||
| export function createPackingModel(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装code | ||||
| // export function getCode() { | ||||
| //   return request({ | ||||
| //     url: '/base/packaging-print-log/getPackagingSerialCode', | ||||
| //     method: 'get' | ||||
| //   }) | ||||
| // } | ||||
| // 更新包装 | ||||
| export function updatePackingModel(data) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除包装 | ||||
| export function deletePackingModel(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装 | ||||
| export function getPackingModel(id) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得包装分页 | ||||
| export function getPackingModelPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-model/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出包装 Excel | ||||
| // export function exportPackingExcel(query) { | ||||
| //   return request({ | ||||
| //     url: '/base/packaging-print-log/export-excel', | ||||
| //     method: 'get', | ||||
| //     params: query, | ||||
| //     responseType: 'blob' | ||||
| //   }) | ||||
| // } | ||||
|  | ||||
| // export function getWorkOrderList(query) { | ||||
| //   return request({ | ||||
| //     url: '/base/core-work-order/listbyfilter', | ||||
| //     method: 'get', | ||||
| //     params: query, | ||||
| //   }) | ||||
| // } | ||||
|  | ||||
| // export function getCustomerList(query) { | ||||
| //   return request({ | ||||
| //     url: '/base/core-customer/listAll', | ||||
| //     method: 'get', | ||||
| //     params: query, | ||||
| //   }) | ||||
| // } | ||||
|  | ||||
| export function getTypeList(query) { | ||||
|   return request({ | ||||
|     url: '/base/packaging-print-type/listbyfilter', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|   }) | ||||
| } | ||||
| @@ -1,8 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 获得产品列表 | ||||
| export function getProductAll() { | ||||
|   return request({ | ||||
|     url: '/base/core-product/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -1,8 +1,23 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-03-27 15:49:55 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-10 14:36:19 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
| // 获得所有工厂产线列表 | ||||
| export function getLineAll() { | ||||
|   return request({ | ||||
|     url: '/base/core-production-line/listAll', | ||||
|     url: '/base/production-line/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| // 获得产线分页 | ||||
| export function getLinePage(query) { | ||||
|   return request({ | ||||
|     url: '/base/production-line/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 获得工单列表 | ||||
| export function workOrderList() { | ||||
|   return request({ | ||||
|     url: '/base/core-work-order/listbyfilter', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @@ -1,26 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 获得所有员工列表 | ||||
| export function getWorkerList() { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得员工 | ||||
| export function getWorker(query) { | ||||
|   return request({ | ||||
|     url: '/base/core-worker/get', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得该班组其他可选组员列表(除去现有组员) | ||||
| export function otherWorkerList(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-det/otherWorkerList', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -2,7 +2,7 @@ import request from '@/utils/request' | ||||
| // 获得所有产线工段列表 | ||||
| export function getWorkShopAll() { | ||||
|   return request({ | ||||
|     url: '/base/core-workshop-section/listAll', | ||||
|     url: '/base/workshop-section/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										72
									
								
								src/api/cost/allCost.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,72 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2025-02-17 15:47:58 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得总成本统计-按日期分页 | ||||
| export function getCostSumPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-sum/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 更新总成本统计-按日期 | ||||
| export function updateCostSum(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-sum/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原片成本统计成本查询分页 | ||||
| export function getRawCostStatisticsRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-sum/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出总成本统计-按日期 Excel | ||||
| export function exportCostSumExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-sum/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片成本统计-历史成本 Excel | ||||
| export function exportRawCostStatisticsHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-sum/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得成本首页 -获取首页数据 | ||||
| export function getData(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-homepage/getData', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得成本首页 -详细首页数据 | ||||
| export function getDetailData(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-homepage/getDetailData', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										55
									
								
								src/api/cost/costDeepRatioHis.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,55 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-06 15:00:09 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新深加工良品率 | ||||
| export function updateDeepRatioHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-ratio-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得深加工产线良品率 | ||||
| export function getDeepPDRatioHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-ratio-his/page-pd', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 获得深加工工段良品率 | ||||
| export function getDeepWSRatioHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-ratio-his/page-ws', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工工段良品率 Excel | ||||
| export function exportDeepWSRatioHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-ratio-his/export-excel-ws', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
|  | ||||
| // 导出深加工产线良品率 Excel | ||||
| export function exportDeepPDRatioHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-ratio-his/export-excel-pd', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
							
								
								
									
										53
									
								
								src/api/cost/costEnergy.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-19 16:11:19 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新原片能源历史 | ||||
| export function updateEnergyHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-energy-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原片能源历史分页 | ||||
| export function getEnergyHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-energy-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片能源-成本查询分页 | ||||
| export function getEnergyRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-energy-realtime/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 导出能源成本成本查询 Excel | ||||
| export function exportEnergyRealtimeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-energy-realtime/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出能源成本历史 Excel | ||||
| export function exportEnergyHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-energy-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										54
									
								
								src/api/cost/costEnergyDeep.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-06 15:19:24 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新深加工能源历史 | ||||
| export function updateEnergyHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-energy-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得深加工能源历史分页 | ||||
| export function getEnergyHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-energy-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工能源-成本查询分页 | ||||
| export function getEnergyRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-energy-realtime/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工能源成本成本查询 Excel | ||||
| export function exportEnergyRealtimeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-energy-realtime/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工能源成本历史 Excel | ||||
| export function exportEnergyHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-energy-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										54
									
								
								src/api/cost/costMaterial.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-05 13:55:30 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新原料成本-历史 | ||||
| export function updateMaterialHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-material-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原料成本-历史分页 | ||||
| export function getMaterialHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-material-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原料成本-成本查询分页 | ||||
| export function getMaterialRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-material-realtime/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原料成本成本查询 Excel | ||||
| export function exportMaterialRealtimeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-material-realtime/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原料成本历史 Excel | ||||
| export function exportMaterialHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-material-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										56
									
								
								src/api/cost/costOriginRatioHis.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,56 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-22 10:53:55 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新原片良品率 | ||||
| export function updatecostOriginRatioHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-ratio-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原片产线良品率 | ||||
| export function getcostOriginRatioHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-ratio-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片工段良品率 | ||||
| export function getcostOriginWSRatioHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-ratio-his/page-ws', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片良品率 Excel | ||||
| export function exportcostOriginRatioHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-ratio-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
|  | ||||
| // 导出原片良品率 工段Excel | ||||
| export function exportcostOriginWSRatioHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-ratio-his/export-excel-ws', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
							
								
								
									
										53
									
								
								src/api/cost/costOthercostHis.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-19 14:24:17 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新原片其他成本-历史 | ||||
| export function updateRawOthercostHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原片其他成本-历史分页 | ||||
| export function getRawOthercostHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片其他成本-成本查询分页 | ||||
| export function getRawOthercostSunPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/page-sum', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 导出原片其他成本-成本查询 Excel | ||||
| export function exportRawOthercostSunExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片其他成本-历史 Excel | ||||
| export function exportRawOthercostHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										53
									
								
								src/api/cost/costOthercostHisDeep.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-06 15:13:20 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
| // 更新深加工其他成本-历史 | ||||
| export function updateRawOthercostHis(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得深加工其他成本-历史分页 | ||||
| export function getRawOthercostHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工其他成本-成本查询分页 | ||||
| export function getRawOthercostSunPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/page-sum', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 导出深加工其他成本-成本查询 Excel | ||||
| export function exportRawOthercostSunExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工其他成本-历史 Excel | ||||
| export function exportRawOthercostHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/api/cost/costOthercostLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,68 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-15 17:01:20 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-06 14:12:09 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建原片其他成本-记录 | ||||
| export function createRawOthercostLog(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新原片其他成本-记录 | ||||
| export function updateRawOthercostLog(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除原片其他成本-记录 | ||||
| export function deleteRawOthercostLog(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片其他成本-记录 | ||||
| export function getRawOthercostLog(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片其他成本-记录分页 | ||||
| export function getRawOthercostLogPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片其他成本-记录 Excel | ||||
| export function exportRawOthercostLogExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/export-log-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 获得所有原片其他成本-记录列表 | ||||
| export function getRawOthercostLogAll() { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-log/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/api/cost/costOthercostLogDeep.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,68 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-15 17:01:20 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-22 14:59:35 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建深加工其他成本-记录 | ||||
| export function createRawOthercostLog(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新深加工其他成本-记录 | ||||
| export function updateRawOthercostLog(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除深加工其他成本-记录 | ||||
| export function deleteRawOthercostLog(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工其他成本-记录 | ||||
| export function getRawOthercostLog(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工其他成本-记录分页 | ||||
| export function getRawOthercostLogPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工其他成本-记录 Excel | ||||
| export function exportRawOthercostLogExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/export-log-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 获得所有深加工其他成本-记录列表 | ||||
| export function getRawOthercostLogAll() { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-log/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										53
									
								
								src/api/cost/deepCostStatistics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,53 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-02 14:43:30 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得深加工成本分页 | ||||
| export function getDeepCostStatisticsPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-cost-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 更新深加工成本-历史 | ||||
| export function updateDeepCostStatistics(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-cost-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得深加工成本统计成本查询分页 | ||||
| export function getDeepCostStatisticsRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-cost-realtime/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工成本统计成本查询 Excel | ||||
| export function exportDeepStatisticsRealtimeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-cost-realtime/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 导出深加工成本统计-历史成本 Excel | ||||
| export function exportDeepCostStatisticsHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-cost-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/api/cost/deepOthercostRule.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,68 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-15 17:01:20 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-22 14:55:00 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建深加工其他成本-配置 | ||||
| export function createRawOthercostRule(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新深加工其他成本-配置 | ||||
| export function updateRawOthercostRule(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除深加工其他成本-配置 | ||||
| export function deleteRawOthercostRule(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工其他成本-配置 | ||||
| export function getRawOthercostRule(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得深加工其他成本-配置分页 | ||||
| export function getRawOthercostRulePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出深加工其他成本-配置 Excel | ||||
| export function exportRawOthercostRuleExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 获得所有深加工其他成本-配置列表 | ||||
| export function getRawOthercostRuleAll() { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-deep-othercost-rule/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										54
									
								
								src/api/cost/rawCostStatistics.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-18 16:53:17 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-06 14:35:13 | ||||
|  * @Description: | ||||
|  */ | ||||
|  | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得原片成本分页 | ||||
| export function getRawCostStatisticsPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origincost-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 更新原片成本-历史 | ||||
| export function updateRawCostStatistics(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origincost-his/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 获得原片成本统计成本查询分页 | ||||
| export function getRawCostStatisticsRealtimePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-cost-realtime/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片成本统计成本查询 Excel | ||||
| export function exportRawStatisticsRealtimeExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origin-cost-realtime/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片成本统计-历史成本 Excel | ||||
| export function exportRawCostStatisticsHisExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-origincost-his/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										68
									
								
								src/api/cost/rawOthercostRule.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,68 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-04-15 17:01:20 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-18 15:39:12 | ||||
|  * @Description: | ||||
|  */ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 创建原片其他成本-配置 | ||||
| export function createRawOthercostRule(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/create', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 更新原片其他成本-配置 | ||||
| export function updateRawOthercostRule(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/update', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除原片其他成本-配置 | ||||
| export function deleteRawOthercostRule(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/delete?id=' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片其他成本-配置 | ||||
| export function getRawOthercostRule(id) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/get?id=' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得原片其他成本-配置分页 | ||||
| export function getRawOthercostRulePage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出原片其他成本-配置 Excel | ||||
| export function exportRawOthercostRuleExcel(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/export-excel', | ||||
|     method: 'get', | ||||
|     params: query, | ||||
|     responseType: 'blob' | ||||
|   }) | ||||
| } | ||||
| // 获得所有原片其他成本-配置列表 | ||||
| export function getRawOthercostRuleAll() { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-othercost-rule/listAll', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										19
									
								
								src/api/environmental/environmentalLog.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,19 @@ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得环保数据历史分页 | ||||
| export function getCostEnviHisPage(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/cost-envi-his/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得余热发电page | ||||
| export function yurepage(query) { | ||||
|   return request({ | ||||
|     url: '/base/energy-quantity-day/yurepage', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -43,6 +43,14 @@ export function getEnergyOverlimitLogPage(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得手动抄表记录分页 | ||||
| export function getEnergyManualLogPage(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/energy-overlimit-log/pageManual', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| // 导出能源超限记录 Excel | ||||
| export function exportEnergyOverlimitLogExcel(query) { | ||||
|   return request({ | ||||
|   | ||||
| @@ -1,27 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 执行班组追溯 根据工单 | ||||
| export function getByWorkOrder(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/schedulingmonitoring/getByWorkOrder', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 执行班组追溯详情 根据工单班组 | ||||
| export function getByTeam(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/schedulingmonitoring/getByTeam', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取某次排班的生产情况详情 | ||||
| export function getByScheduling(query) { | ||||
|   return request({ | ||||
|     url: '/monitoring/schedulingmonitoring/getByScheduling', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| @@ -1,19 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
| // 获取工单信息 | ||||
| export function getWorkOrderMsg(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/energy-work-order/getWorkOrderMsg', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获取工单能源消耗数据 | ||||
| export function getOrderEnergyData(data) { | ||||
|   return request({ | ||||
|     url: '/monitoring/energy-work-order/getData', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| @@ -1,28 +0,0 @@ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 获得排班信息分页 建议size 150 | ||||
| export function groupTeamSchedulingPage(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-team-scheduling/page', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得不同产线每小时报废数据,用于班组检测 班组生产情况详情(动态结构) | ||||
| export function getSchedulingMonitoringRecord(query) { | ||||
|   return request({ | ||||
|     url: '/base/quality-inspection-record/getSchedulingMonitoringRecord', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 获得所有列表 | ||||
| export function groupClassesListAll(query) { | ||||
|   return request({ | ||||
|     url: '/base/group-classes/listAll', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										4
									
								
								src/assets/font/font.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,4 @@ | ||||
| @font-face { | ||||
|   font-family: '站酷庆科黄油体'; | ||||
|   src: url('./站酷庆科黄油体.ttf') format('truetype');; | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/font/站酷庆科黄油体.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										22
									
								
								src/assets/icons/svg/cost.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>切片</title> | ||||
|     <defs> | ||||
|         <linearGradient x1="91.384997%" y1="100%" x2="25.4330364%" y2="7.84095011e-14%" id="linearGradient-1"> | ||||
|             <stop stop-color="#4BFFC8" offset="0%"></stop> | ||||
|             <stop stop-color="#45F2EC" offset="100%"></stop> | ||||
|         </linearGradient> | ||||
|         <linearGradient x1="91.384997%" y1="100%" x2="25.4330364%" y2="7.84095011e-14%" id="linearGradient-2"> | ||||
|             <stop stop-color="#FFFFFF" offset="0%"></stop> | ||||
|             <stop stop-color="#FFFFFF" offset="100%"></stop> | ||||
|         </linearGradient> | ||||
|     </defs> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="成本看板" transform="translate(-64.000000, -290.000000)" fill-rule="nonzero"> | ||||
|             <g id="成本" transform="translate(64.000000, 290.000000)"> | ||||
|                 <rect id="矩形" fill="#FFFFFF" opacity="0" x="0" y="0" width="32" height="32"></rect> | ||||
|                 <path d="M24.8336138,7.21888656 C25.307557,7.21888656 25.7025096,7.62700427 25.6893445,8.08778234 L25.6893445,25.768495 C25.6893445,26.5452352 25.2417316,26.6505559 24.859944,26.6505559 L7.17923134,26.6505559 C6.6921231,26.6505559 6.31033556,26.2556033 6.31033556,25.7816601 L6.31033556,8.10094743 C6.31033556,7.61383919 6.70528819,7.23205165 7.17923134,7.23205165 L10.3915127,7.23205165 L10.3915127,9.00933847 C10.3915127,9.41745619 10.733805,9.75974847 11.1419227,9.75974847 L20.8709225,9.75974847 C21.2790402,9.75974847 21.6213325,9.43062128 21.6213325,9.00933847 L21.6213325,7.21888656 Z M21.3580307,13.7224398 C21.0289035,13.3933127 20.5154651,13.3933127 20.1863379,13.7224398 L14.5385153,19.3702624 L11.7738469,16.6319242 C11.4447197,16.302797 10.9312813,16.302797 10.6021541,16.6319242 C10.2730269,16.9610514 10.2730269,17.4744898 10.6021541,17.803617 L13.9460864,21.1475493 C14.2752136,21.4766764 14.788652,21.4766764 15.1177792,21.1475493 L21.3711958,14.9072977 C21.5423419,14.7361516 21.6213325,14.5386753 21.6213325,14.3148688 C21.6213325,14.0910623 21.5291768,13.893586 21.3580307,13.7224398 Z M19.896706,5.34944412 C20.1863379,5.34944412 20.4364746,5.59958078 20.4364746,5.88921271 L20.4364746,8.10094743 C20.4364746,8.39057936 20.1863379,8.64071602 19.896706,8.64071602 L12.1161392,8.64071602 L12.1161392,8.6670462 C11.8265073,8.6670462 11.5763706,8.41690953 11.5763706,8.1272776 L11.5763706,5.88921271 C11.5763706,5.59958078 11.8265073,5.34944412 12.1161392,5.34944412 L19.896706,5.34944412 Z" id="形状结合" fill="url(#linearGradient-2)"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 2.7 KiB | 
							
								
								
									
										12
									
								
								src/assets/icons/svg/costchart.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="32px" height="32px" viewBox="0 0 32 32" 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="成本看板" transform="translate(-64.000000, -633.000000)" fill="#FFFFFF" fill-rule="nonzero"> | ||||
|             <g id="近期成本" transform="translate(64.000000, 633.000000)"> | ||||
|                 <rect id="矩形" opacity="0" x="0" y="0" width="32" height="32"></rect> | ||||
|                 <path d="M26,23 L18.2,27.8 C17.6,28.2 17,27.8 17,27 L17,15.8 C17,15.6 17.2,15.2 17.4,15 L25.2,10.2 C25.8,9.8 26.4,10.2 26.4,11 L26.4,22.4 C26.4,22.6 26.2,23 26,23 Z M6,23 L13.8,27.8 C14.4,28.2 15,27.8 15,27 L15,15.8 C15,15.6 14.8,15.2 14.6,15 L6.8,10.2 C6.4,10 5.6,10.4 5.6,11 L5.6,22.4 C5.6,22.6 5.8,23 6,23 Z M15.8,4 L6.8,7.4 C6.4,7.6 6.4,8.2 6.8,8.4 L15.8,14 C16,14 16.2,14 16.2,14 L25.4,8.4 C25.8,8.2 25.8,7.6 25.4,7.4 L16.2,4 C16,4 16,4 15.8,4 Z" id="形状"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 1.1 KiB | 
							
								
								
									
										22
									
								
								src/assets/icons/svg/energy.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="24.3417579px" height="24.000009px" viewBox="0 0 24.3417579 24.000009" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>统计</title> | ||||
|     <defs> | ||||
|         <linearGradient x1="99.4683184%" y1="100%" x2="20.6346149%" y2="7.84095011e-14%" id="linearGradient-1"> | ||||
|             <stop stop-color="#4BFFC8" offset="0%"></stop> | ||||
|             <stop stop-color="#45F2EC" offset="100%"></stop> | ||||
|         </linearGradient> | ||||
|         <linearGradient x1="99.4683184%" y1="100%" x2="20.6346149%" y2="7.84095011e-14%" id="linearGradient-2"> | ||||
|             <stop stop-color="#FFFFFF" offset="0%"></stop> | ||||
|             <stop stop-color="#FFFFFF" offset="100%"></stop> | ||||
|         </linearGradient> | ||||
|     </defs> | ||||
|     <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="成本看板" transform="translate(-1327.000000, -636.000000)" fill-rule="nonzero"> | ||||
|             <g id="统计" transform="translate(1327.000000, 636.000000)"> | ||||
|                 <rect id="矩形" fill="#FFFFFF" opacity="0" x="0" y="1.29865498e-07" width="23.9999981" height="23.9999981"></rect> | ||||
|                 <path d="M21.0417425,10.2952681 L19.5753585,10.2952681 L19.5753585,5.90037875 C19.5730113,5.34644149 19.1232931,4.89862885 18.5693508,4.89863383 L13.1812421,4.89863383 L13.1812421,3.15517144 C13.1837389,2.30739523 12.8439612,1.49449588 12.2388994,0.900668572 C11.6338375,0.306841265 10.8147135,-0.0176430365 9.96713292,0.000740689882 C8.21105284,0.081169063 6.8366707,1.54239403 6.8638551,3.30010475 L6.8638551,4.89863383 L1.47574634,4.89863383 C0.921804107,4.89862885 0.472085895,5.34644149 0.46970252,5.90037875 L0.46970252,9.28073494 C0.467465023,9.54901885 0.572450222,9.80709649 0.76136025,9.99760745 C0.950270278,10.1881184 1.2074528,10.2952777 1.47574634,10.2952681 L2.03842858,10.2952681 C3.79455985,10.2680012 5.25513623,11.6398863 5.33779264,13.3942831 C5.35388802,14.2418862 5.02721285,15.0601101 4.4317847,15.6635629 C3.83635654,16.2670156 3.02257894,16.6046145 2.1748364,16.5998668 L1.47574634,16.5998668 C0.92014366,16.5998668 0.46970252,17.0502718 0.46970252,17.6058745 L0.46970252,22.9939832 C0.46970252,23.5495859 0.92014366,24 1.47574634,24 L5.85784745,24 C6.1250049,24.0011302 6.38154936,23.8955063 6.57045992,23.7065957 C6.75937048,23.5176851 6.86499438,23.2611407 6.8638551,22.9939832 L6.8638551,22.4952422 C6.8366707,20.7375314 8.21105284,19.2763065 9.96713292,19.1958781 C10.8147135,19.1774944 11.6338375,19.5019787 12.2388994,20.095806 C12.8439612,20.6896333 13.1837389,21.5025326 13.1812421,22.3503088 L13.1812421,22.9939832 C13.1801084,23.2604003 13.2851484,23.5162945 13.473135,23.7050811 C13.6611216,23.8938677 13.9165675,24 14.182987,24 L18.5693508,24 C19.1249535,24 19.5753585,23.5495859 19.5753585,22.9939832 L19.5753585,16.5998668 L21.1824131,16.5998668 C22.0301722,16.6034883 22.8435102,16.2647998 23.4381378,15.6605426 C24.0327653,15.0562855 24.3583453,14.237612 24.3411066,13.3900204 C24.2562262,11.637307 22.7962968,10.2679159 21.0417425,10.2952681 Z" id="路径" fill="url(#linearGradient-2)"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.1 KiB | 
							
								
								
									
										12
									
								
								src/assets/icons/svg/fullScreenView.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="32px" height="32px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>编组 54</title> | ||||
|     <g id="驾驶舱" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="运营总览_生产线监控驾驶舱" transform="translate(-1866.000000, -36.000000)"> | ||||
|             <g id="编组-54" transform="translate(1866.000000, 36.000000)"> | ||||
|                 <rect id="矩形" stroke="#69b4ff" fill="#D8D8D8" opacity="0" x="0.5" y="0.5" width="32" height="32"></rect> | ||||
|                 <path d="M18.4001211,1 L18.574731,1.00571398 C18.8641421,1.02474925 19.1451559,1.09128771 19.4122178,1.20447947 C19.7221027,1.33395436 19.9991094,1.52058631 20.2392616,1.76073844 C20.4776764,1.99915325 20.6652172,2.27804627 20.7953442,2.58736464 C20.9313506,2.90825642 21,3.24882158 21,3.59987893 L21,3.59987893 L21,18.4001211 L20.994286,18.574731 C20.9752507,18.8641421 20.9087123,19.1451559 20.7955205,19.4122178 C20.6660456,19.7221027 20.4794137,19.9991094 20.2392616,20.2392616 C20.0008468,20.4776764 19.7219537,20.6652172 19.4126354,20.7953442 C19.0917436,20.9313506 18.7511784,21 18.4001211,21 L18.4001211,21 L3.59987893,21 L3.42526905,20.994286 C3.13585794,20.9752507 2.85484405,20.9087123 2.58778224,20.7955205 C2.2778973,20.6660456 2.00089057,20.4794137 1.76073844,20.2392616 C1.52232363,20.0008468 1.33478285,19.7219537 1.20465581,19.4126354 C1.06864936,19.0917436 1,18.7511784 1,18.4001211 L1,18.4001211 L1,3.59987893 L1.00571398,3.42526905 C1.02474925,3.13585794 1.09128771,2.85484405 1.20447947,2.58778224 C1.33395436,2.2778973 1.52058631,2.00089057 1.76073844,1.76073844 C1.99915325,1.52232363 2.27804627,1.33478285 2.58736464,1.20465581 C2.90825642,1.06864936 3.24882158,1 3.59987893,1 L3.59987893,1 L18.4001211,1 Z M18.4001211,2.29539952 L3.59987893,2.29539952 L3.49797651,2.2993263 C2.82542992,2.35136056 2.29539952,2.9140495 2.29539952,3.59987893 L2.29539952,3.59987893 L2.29539952,18.4001211 L2.2993263,18.5020235 C2.35136056,19.1745701 2.9140495,19.7046005 3.59987893,19.7046005 L3.59987893,19.7046005 L18.4001211,19.7046005 L18.5020235,19.7006737 C19.1745701,19.6486394 19.7046005,19.0859505 19.7046005,18.4001211 L19.7046005,18.4001211 L19.7046005,3.59987893 L19.7006737,3.49797651 C19.6486394,2.82542992 19.0859505,2.29539952 18.4001211,2.29539952 L18.4001211,2.29539952 Z M4.56580299,11.8731508 L4.63987359,11.8789244 C4.95620444,11.9219442 5.20096852,12.1943435 5.20096852,12.5208838 L5.20096852,12.5208838 L5.20096852,15.8606113 L8.39814764,12.6634321 L8.45892035,12.6098356 C8.71226443,12.4133149 9.08161636,12.4311804 9.3138681,12.6634321 C9.56547415,12.9150382 9.56547415,13.3275466 9.3138681,13.5791526 L9.3138681,13.5791526 L6.09149511,16.7990315 L9.4155569,16.7990315 L9.49368756,16.8035151 C9.82695229,16.8420028 10.0864105,17.123441 10.081435,17.4601165 C10.0742517,17.8119637 9.78624591,18.094431 9.43371671,18.094431 L9.43371671,18.094431 L4.5691586,18.094431 L4.49163938,18.0899766 C4.16113157,18.051728 3.90556901,17.7718105 3.90556901,17.4308414 L3.90556901,17.4308414 L3.90556901,12.5367736 L3.91007171,12.4587841 C3.94871707,12.1260764 4.23118526,11.8665247 4.56580299,11.8731508 L4.56580299,11.8731508 Z M17.4353814,3.90556901 L17.512257,3.91000958 C17.8400885,3.94813523 18.094431,4.22707005 18.094431,4.56461864 L18.094431,4.56461864 L18.094431,9.46095642 L18.0899283,9.53894589 C18.0512829,9.87165361 17.7688147,10.1312053 17.434197,10.1245792 C17.0828999,10.1173731 16.7990315,9.82850504 16.7990315,9.47684625 L16.7990315,9.47684625 L16.7990315,6.13938874 L13.6018524,9.33656786 L13.5410796,9.39016441 C13.2877356,9.58668512 12.9183836,9.5688196 12.6861319,9.33656786 C12.4345258,9.08496181 12.4345258,8.67245345 12.6861319,8.4208474 L12.6861319,8.4208474 L15.9060108,5.20096852 L12.5821731,5.20096852 L12.5040246,5.19648608 C12.170734,5.1580095 11.9119308,4.876675 11.9185506,4.54071802 C11.9257483,4.18803625 12.2137541,3.90556901 12.5662833,3.90556901 L12.5662833,3.90556901 L17.4353814,3.90556901 Z" id="形状结合" fill="#69b4ff" fill-rule="nonzero" opacity="0.79078311"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 4.1 KiB | 
							
								
								
									
										12
									
								
								src/assets/icons/svg/line.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="24px" height="24px" viewBox="0 0 24 24" 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="深加工看板" transform="translate(-68.000000, -297.000000)" fill="#FFFFFF" fill-rule="nonzero"> | ||||
|             <g id="产量" transform="translate(68.000000, 297.000000)"> | ||||
|                 <rect id="矩形" opacity="0" x="0" y="0" width="24" height="24"></rect> | ||||
|                 <path d="M22.2162957,1 L1.78372985,1 C1.35093374,1 1,1.33440606 1,1.75168741 L1,7 L23,7 L23,1.75168741 C23,1.33486987 22.6491174,1 22.2162957,1 Z M4.00067655,5 C3.44751496,5 3,4.5525025 3,3.99928444 C3,3.44752352 3.44751496,3 4.00067655,3 C4.55245902,3 5,3.44752352 5,3.99928444 C5,4.5525025 4.55245902,5 4.00067655,5 L4.00067655,5 Z M1,22.2486389 C1,22.6651285 1.35099088,23 1.78385746,23 L22.2161681,23 C22.6499302,23 23,22.6651041 23,22.2486389 L23,17 L1,17 L1,22.2486389 Z M4.00067655,19 C4.55245902,19 5,19.4475091 5,19.9997788 C5,20.5524648 4.55245902,21 4.00067655,21 C3.44751496,21 3,20.5524648 3,19.9997788 C3,19.4475091 3.44751496,19 4.00067655,19 Z M1,15 L23,15 L23,9 L1,9 L1,15 Z M4.00067655,11 C4.55245902,11 5,11.4479977 5,12.0002082 C5,12.552939 4.55245902,13 4.00067655,13 C3.44751496,13 3,12.552939 3,12.0002082 C3,11.4479977 3.44751496,11 4.00067655,11 L4.00067655,11 Z" id="形状"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 1.5 KiB | 
| @@ -1,15 +0,0 @@ | ||||
| <?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"> | ||||
|     <!-- Generator: Sketch 60 (88103) - https://sketch.com --> | ||||
|     <desc>Created with Sketch.</desc> | ||||
|     <g id="11_系统管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="11-1用户管理" transform="translate(-1822.000000, -159.000000)" fill="#FF5454" fill-rule="nonzero"> | ||||
|             <g id="编组-10" transform="translate(1821.000000, 158.000000)"> | ||||
|                 <g id="删除"> | ||||
|                     <rect id="矩形" opacity="0" x="0" y="0" width="16" height="16"></rect> | ||||
|                     <path d="M9.39137788,11.7149165 C9.13431614,11.7149165 8.92716929,11.5077697 8.92716929,11.2507079 L8.92716929,6.14191781 C8.92716929,5.88485607 9.13431613,5.67770922 9.39137788,5.67770922 C9.64843963,5.67770922 9.85558647,5.88485606 9.85558647,6.14191781 L9.85558647,11.2482122 C9.85558647,11.5052739 9.64843961,11.7149165 9.39137788,11.7149165 Z M6.60612639,11.7149165 C6.34906466,11.7149165 6.1419178,11.5077697 6.1419178,11.2507079 L6.1419178,6.14191781 C6.1419178,5.88485607 6.34906466,5.67770922 6.60612641,5.67770922 C6.86318814,5.67770922 7.07033499,5.88485606 7.07033499,6.14191781 L7.07033499,11.2482122 C7.07033499,11.5052739 6.86318814,11.7149165 6.60612639,11.7149165 Z M14.0359594,3.82087491 L11.7149165,3.82087491 L11.7149165,2.89245775 C11.7149165,2.12376827 11.0959718,1.499832 10.3322738,1.499832 L5.67770923,1.499832 C4.90901976,1.499832 4.28508349,2.12376827 4.28508349,2.89245775 L4.28508349,3.82087491 L1.96404059,3.82087491 C1.70697885,3.82087491 1.499832,4.02802174 1.499832,4.28508349 C1.499832,4.54214524 1.70697884,4.74929208 1.96404059,4.74929208 L14.0359594,4.74929208 C14.2930211,4.74929208 14.500168,4.54214524 14.500168,4.28508349 C14.500168,4.02802174 14.2930212,3.82087491 14.0359594,3.82087491 Z M5.21350066,2.89245775 C5.21350066,2.63789175 5.42314324,2.42824916 5.67770925,2.42824916 L10.3322738,2.42824916 C10.5868398,2.42824916 10.7864994,2.63290025 10.7864994,2.89245775 L10.7864994,3.82087491 L5.21350066,3.82087491 L5.21350066,2.89245775 L5.21350066,2.89245775 Z M11.2507079,14.500168 L4.75178782,14.500168 C3.98309834,14.500168 3.35916207,13.8762317 3.35916207,13.1075423 L3.35916207,6.13692631 C3.35916207,5.87986457 3.56630891,5.67271772 3.82337066,5.67271772 C4.08043241,5.67271772 4.28757925,5.87986456 4.28757925,6.13692631 L4.28757925,13.1075423 C4.28757925,13.364604 4.49722183,13.5717508 4.75178783,13.5717508 L11.2532037,13.5717508 C11.5102654,13.5717508 11.7174123,13.364604 11.7174123,13.1075423 L11.7174123,6.15439653 C11.7174123,5.89733479 11.9245591,5.69018794 12.1816209,5.69018794 C12.4386826,5.69018794 12.6458294,5.89733478 12.6458294,6.15439653 L12.6458294,13.1075423 C12.6433337,13.873736 12.0193974,14.500168 11.2507079,14.500168 Z" id="形状"></path> | ||||
|                 </g> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 2.9 KiB | 
							
								
								
									
										10
									
								
								src/assets/icons/svg/unFullScreenView.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||||
|     <title>编组 54备份</title> | ||||
|     <g id="驾驶舱" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> | ||||
|         <g id="编组-54备份"> | ||||
|             <rect id="矩形" stroke="#979797" fill="#D8D8D8" opacity="0" x="0.5" y="0.5" width="21" height="21"></rect> | ||||
|             <path d="M18.4001211,1 L18.574731,1.00571398 C18.8641421,1.02474925 19.1451559,1.09128771 19.4122178,1.20447947 C19.7221027,1.33395436 19.9991094,1.52058631 20.2392616,1.76073844 C20.4776764,1.99915325 20.6652172,2.27804627 20.7953442,2.58736464 C20.9313506,2.90825642 21,3.24882158 21,3.59987893 L21,3.59987893 L21,18.4001211 L20.994286,18.574731 C20.9752507,18.8641421 20.9087123,19.1451559 20.7955205,19.4122178 C20.6660456,19.7221027 20.4794137,19.9991094 20.2392616,20.2392616 C20.0008468,20.4776764 19.7219537,20.6652172 19.4126354,20.7953442 C19.0917436,20.9313506 18.7511784,21 18.4001211,21 L18.4001211,21 L3.59987893,21 L3.42526905,20.994286 C3.13585794,20.9752507 2.85484405,20.9087123 2.58778224,20.7955205 C2.2778973,20.6660456 2.00089057,20.4794137 1.76073844,20.2392616 C1.52232363,20.0008468 1.33478285,19.7219537 1.20465581,19.4126354 C1.06864936,19.0917436 1,18.7511784 1,18.4001211 L1,18.4001211 L1,3.59987893 L1.00571398,3.42526905 C1.02474925,3.13585794 1.09128771,2.85484405 1.20447947,2.58778224 C1.33395436,2.2778973 1.52058631,2.00089057 1.76073844,1.76073844 C1.99915325,1.52232363 2.27804627,1.33478285 2.58736464,1.20465581 C2.90825642,1.06864936 3.24882158,1 3.59987893,1 L3.59987893,1 L18.4001211,1 Z M18.4001211,2.29539952 L3.59987893,2.29539952 L3.49797651,2.2993263 C2.82542992,2.35136056 2.29539952,2.9140495 2.29539952,3.59987893 L2.29539952,3.59987893 L2.29539952,18.4001211 L2.2993263,18.5020235 C2.35136056,19.1745701 2.9140495,19.7046005 3.59987893,19.7046005 L3.59987893,19.7046005 L18.4001211,19.7046005 L18.5020235,19.7006737 C19.1745701,19.6486394 19.7046005,19.0859505 19.7046005,18.4001211 L19.7046005,18.4001211 L19.7046005,3.59987893 L19.7006737,3.49797651 C19.6486394,2.82542992 19.0859505,2.29539952 18.4001211,2.29539952 L18.4001211,2.29539952 Z M9.43538136,11.905569 L9.512257,11.9100096 C9.84008849,11.9481352 10.094431,12.2270701 10.094431,12.5646186 L10.094431,12.5646186 L10.094431,17.4609564 L10.0899283,17.5389459 C10.0512829,17.8716536 9.76881474,18.1312053 9.43419701,18.1245792 C9.08289988,18.1173731 8.79903148,17.828505 8.79903148,17.4768462 L8.79903148,17.4768462 L8.79903148,14.1393887 L5.60185236,17.3365679 L5.54107965,17.3901644 C5.28773557,17.5866851 4.91838364,17.5688196 4.6861319,17.3365679 C4.43452585,17.0849618 4.43452585,16.6724534 4.6861319,16.4208474 L4.6861319,16.4208474 L7.90601077,13.2009685 L4.58217312,13.2009685 L4.50402457,13.1964861 C4.17073404,13.1580095 3.9119308,12.876675 3.91855064,12.540718 C3.92574827,12.1880363 4.21375409,11.905569 4.56628329,11.905569 L4.56628329,11.905569 L9.43538136,11.905569 Z M12.565803,3.8731508 L12.6398736,3.87892442 C12.9562044,3.92194416 13.2009685,4.19434347 13.2009685,4.52088378 L13.2009685,4.52088378 L13.2009685,7.86061126 L16.3981476,4.66343214 L16.4589204,4.60983559 C16.7122644,4.41331488 17.0816164,4.4311804 17.3138681,4.66343214 C17.5654742,4.91503819 17.5654742,5.32754655 17.3138681,5.5791526 L17.3138681,5.5791526 L14.0914951,8.79903148 L17.4155569,8.79903148 L17.4936876,8.80351509 C17.8269523,8.84200281 18.0864105,9.12344101 18.081435,9.46011654 C18.0742517,9.81196375 17.7862459,10.094431 17.4337167,10.094431 L17.4337167,10.094431 L12.5691586,10.094431 L12.4916394,10.0899766 C12.1611316,10.051728 11.905569,9.77181051 11.905569,9.4308414 L11.905569,9.4308414 L11.905569,4.53677361 L11.9100717,4.45878413 C11.9487171,4.12607641 12.2311853,3.86652471 12.565803,3.8731508 L12.565803,3.8731508 Z" id="形状结合" fill="#69b4ff" fill-rule="nonzero" opacity="0.79078311"></path> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 3.9 KiB | 
							
								
								
									
										13
									
								
								src/assets/icons/svg/yanqi.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,13 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <svg width="24px" height="23.9254658px" viewBox="0 0 24 23.9254658" 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="成本看板" transform="translate(-1319.000000, -293.962733)" fill-rule="nonzero"> | ||||
|             <g id="烟气" transform="translate(1319.000000, 293.962733)"> | ||||
|                 <rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="24" height="23.9254658"></rect> | ||||
|                 <path d="M10.6744092,10.2458592 C10.6744092,10.2458592 3.76099563,15.5072464 6.34479666,19.9378882 C5.78613697,19.5917443 3.83082809,18.2071687 3.2721684,17.4456522 C1.73585426,15.5072464 1.80568673,14.1918996 2.36434642,12.8765528 C3.6213307,9.89971532 7.39228357,6.9921066 8.50960292,5.1229296 C10.3950794,2.07686335 8.85876522,-7.08336081e-14 8.85876522,-7.08336081e-14 C8.85876522,-7.08336081e-14 12.769383,1.73071946 12.9788804,4.98447204 C13.2582102,8.16899586 10.6744092,10.2458592 10.6744092,10.2458592 Z" id="路径" fill="#FFFFFF"></path> | ||||
|                 <path d="M9.55552302,-6.3573715e-14 L9.48496561,-6.3573715e-14 L9.41440819,-6.3573715e-14 L9.34385077,-6.3573715e-14 L9.27329335,-6.3573715e-14 C9.27329335,-6.3573715e-14 9.20273594,-6.3573715e-14 9.20273596,0.0693204763 L9.13217854,0.0693204763 L9.06162113,0.138640927 L8.99106371,0.207961403 L8.99106371,0.485243308 C8.99106371,0.485243308 8.99106371,0.554563785 9.06162113,0.554563785 L9.06162113,0.623884235 C10.1199823,2.35689604 9.69663786,4.36718972 7.79158769,6.65476534 C7.43880063,7.07068817 6.94489873,7.55593148 6.38043941,8.17981571 C4.96929114,9.35826373 3.6992577,10.6753527 2.99368358,11.7844803 C2.0764372,13.1015692 1.79420756,14.6266197 2.14699459,16.0130291 C2.57033907,17.8153614 4.05204476,19.4790527 6.52155425,20.8654621 C6.59211167,20.9347826 6.66266909,20.9347826 6.73322648,20.9347826 C6.80378389,20.9347826 6.87434131,20.9347826 6.94489873,20.8654621 C7.01545615,20.7961417 7.08601356,20.7961417 7.08601354,20.7268212 L7.08601354,20.6575007 L7.08601354,20.5881803 L7.08601354,20.5188598 L7.08601354,20.4495393 C7.08601354,20.3802188 7.08601354,20.3802188 7.01545615,20.3802188 L7.01545615,20.3108984 C5.60430787,18.3006047 7.01545615,16.0130291 7.9327025,14.9039015 L8.00325992,14.8345811 C8.92050629,13.656133 9.83775267,12.7549669 10.6138842,11.9231212 C11.1783435,11.3685574 11.6722454,10.8833141 12.0955899,10.3287504 C13.647853,8.45709759 14.2123123,6.72408579 13.9300827,5.06039446 C13.5772956,3.18874173 12.0955899,1.4557299 9.55552302,-6.3573715e-14 Z M9.48470738,9.26748999 C8.64336853,10.0744997 6.3074421,10.0757542 5.3258801,11.2862689 C3.92364867,12.9675392 5.42114982,16.3973307 5.7015961,17.9440994 C4.29936467,16.9353372 3.38791424,15.8593242 3.10746797,14.6488095 C2.82702169,13.5727965 3.10746797,12.3622819 3.8085837,11.2862689 L3.87869525,11.219018 C4.5096994,10.2102558 5.84181925,8.93249038 6.89349283,7.9237282 C7.52449698,7.31847086 8.01527795,6.84771519 8.3658358,6.44421029 C10.3289598,4.22493344 10.6094061,2.34191068 10.3289598,0.99689441 C11.5208565,1.87115499 12.6426417,3.01441881 12.9230879,4.49393671 C13.2035342,5.77170217 12.7127532,7.18396925 11.5208565,8.66348714 L9.48470738,9.26748999 Z M21.9281191,9.58246693 C21.6004931,7.86679721 20.3555139,6.28838107 18.1931817,4.98447205 L18.1276565,4.98447205 L18.0621313,4.98447205 L17.9966061,4.98447205 L17.9310808,4.98447205 C17.8655556,4.98447205 17.8655556,4.98447205 17.8655556,5.05309884 L17.8000304,5.05309884 L17.7345052,5.12172564 L17.66898,5.19035243 L17.66898,5.46485958 C17.66898,5.46485958 17.66898,5.53348637 17.7345052,5.53348637 L17.7345052,5.60211316 C18.6518582,7.11190253 18.2587069,8.89619902 16.6861017,10.9550027 C16.4240008,11.2981367 15.9653243,11.7785242 15.5066478,12.3275385 C14.5237695,13.3569403 13.4098408,14.5922225 12.8201138,15.6216244 C12.0993364,16.7882798 11.8372356,18.1608156 12.0993364,19.4647245 C12.4924877,21.1117675 13.7374669,22.5529301 15.8342739,23.856839 C15.8997991,23.9254658 15.9653243,23.9254658 16.0308495,23.9254658 C16.0963747,23.9254658 16.1619,23.9254658 16.2274252,23.856839 C16.2929504,23.7882123 16.3584756,23.7882123 16.3584756,23.7195855 L16.3584756,23.6509587 L16.3584756,23.5823319 L16.3584756,23.5137051 L16.3584756,23.4450783 C16.3584756,23.4450783 16.3584756,23.3764515 16.2929504,23.3764515 L16.2929504,23.3078247 C15.1790217,21.5235282 16.2929504,19.5333513 17.079253,18.5039495 L17.1447782,18.4353227 C17.9310808,17.3372941 18.6518582,16.5137726 19.3726356,15.8275047 C19.8313122,15.3471172 20.2899887,14.8667297 20.6176148,14.454969 C21.7315435,12.6020456 22.19022,11.0922563 21.9281191,9.58246693 L21.9281191,9.58246693 Z M20.5837087,13.7271478 C20.225071,14.1241412 19.7947058,14.5211345 19.2926131,14.9842934 C18.5036102,15.7121146 17.6428797,16.5061012 16.7104218,17.6309157 C15.4193261,19.086558 14.9172334,20.6083659 15.2041435,21.931677 C13.9130479,21.0715248 13.2958761,20.3327069 13.0806935,19.3402236 C12.8655109,18.3477402 13.0806935,17.3552568 13.7262413,16.3627735 L13.7979689,16.2966079 C14.3717892,15.4364556 15.4193261,13.99181 16.4235116,13.0654922 C16.9973319,12.5361677 17.4994247,12.0730088 17.7863348,11.742181 C19.5077957,9.75721431 19.8664333,8.16924091 19.6512507,6.97826087 C20.7271638,7.77224757 21.7313493,8.76473095 21.9465319,9.95571099 C22.1617145,11.2128566 21.7313493,12.4700022 20.5837087,13.7271478 Z" id="形状" fill="#FFFFFF"></path> | ||||
|             </g> | ||||
|         </g> | ||||
|     </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 5.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/images/login-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 137 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/cold-data-board-msg1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 16 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/cold-data-board-msg2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 14 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/home-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.2 MiB | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/img/home-progress-bg.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 936 B | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/logo/cnbm.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.9 KiB | 
| @@ -1,10 +1,13 @@ | ||||
| /* ===== PC DESIGN ===== */ | ||||
| $W: 1000; | ||||
| $W: 1080; | ||||
| $H: 1920; | ||||
| $picW: 438; | ||||
| $picH: 560; | ||||
| $formW: 320; | ||||
| // $picW: 438; | ||||
| // $picH: 560; | ||||
| $picW: 1080; | ||||
| $picH: 1118; | ||||
| $formW: 420; | ||||
| $tabW: $formW / 2; | ||||
| // $rowH: 56; | ||||
| $rowH: 56; | ||||
| $buttonH: 50; | ||||
|  | ||||
| @@ -15,6 +18,7 @@ $containerBgImage: '../assets/images/bg.png'; | ||||
| $logoWidth: 417px; | ||||
| $logoHeight: 64px; | ||||
| $logoImage: '../assets/logo/login-logo.png'; | ||||
| $cnbmLogo: '../assets/logo/cnbm.png'; | ||||
| // container-content | ||||
| $contentWidth: round($W / $H * 100) * 1vw; | ||||
| $contentHeight: round($picH / $W * 100) / 100 * $contentWidth; | ||||
| @@ -22,7 +26,8 @@ $contentBgColor: #ffffff; | ||||
| // container-content-pic | ||||
| $picWidth: round($picW / $H * 100) * 1vw; | ||||
| $picHeight: inherit; | ||||
| $picImage: '../assets/images/pic.png'; | ||||
| // $picImage: '../assets/images/pic.png'; | ||||
| $picImage: '../assets/images/login-bg.png'; | ||||
| // container-content-field | ||||
| $fieldWidth: $contentWidth - $picWidth; | ||||
| $fieldHeight: inherit; | ||||
| @@ -34,231 +39,310 @@ $buttonHeight: $buttonH * 1px; | ||||
|  | ||||
| // - - - - - 页面基础设置 | ||||
| .container { | ||||
|   .login-code { | ||||
|     width: 33%; | ||||
|     height: 38px; | ||||
|     float: right; | ||||
|     img { | ||||
|       cursor: pointer; | ||||
|       width:100%;max-width:100px; height:auto; | ||||
|       vertical-align: middle; | ||||
|     } | ||||
|   } | ||||
|   // 元素 | ||||
|   width: inherit; | ||||
|   height: inherit; | ||||
|   min-width: 1080px; | ||||
|   min-height: 620px; | ||||
|   background-color: $containerBgColor; | ||||
|   background-image: url($containerBgImage); | ||||
|   background-size: cover; | ||||
|   // 定位 | ||||
|   position: relative; | ||||
|   display: flex; | ||||
|   justify-content: center; | ||||
|   align-items: center; | ||||
|   // 文字 | ||||
|   font-size: 14px; | ||||
|   font-family: Microsoft YaHei; | ||||
|   font-weight: 400; | ||||
|   .logo { | ||||
|     // 元素 | ||||
|     width: $logoWidth; | ||||
|     height: $logoHeight; | ||||
|     // background-image: url($logoImage); | ||||
|     // background-size: contain; | ||||
|     // 定位 | ||||
|     position: absolute; | ||||
|     top: 50px; | ||||
|     left: 50%; | ||||
|     margin-left: -$logoWidth/2; | ||||
|   } | ||||
|   .content { | ||||
|     // 元素 | ||||
|     width: $contentWidth; | ||||
|     height: $contentHeight; | ||||
|     background-color: #ffffff; | ||||
|     box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07); | ||||
|     border-radius: 20px; | ||||
|     // 定位 | ||||
|     position: relative; | ||||
|     .pic { | ||||
|       // 元素 | ||||
|       width: $picWidth; | ||||
|       height: $picHeight; | ||||
|       background-image: url($picImage); | ||||
|       background-repeat: no-repeat; | ||||
|       background-size: cover; | ||||
|       border-radius: 20px 0 0 20px; | ||||
|       // 定位 | ||||
|       position: absolute; | ||||
|       top: 0; | ||||
|       left: 0; | ||||
|     } | ||||
|     .field { | ||||
|       width: $fieldWidth; | ||||
|       height: $fieldHeight; | ||||
|       // 定位 | ||||
|       position: absolute; | ||||
|       top: 0; | ||||
|       left: $picWidth; | ||||
|       display:flex; | ||||
|       justify-content: center; | ||||
|       align-items: center; | ||||
|       .pc-title{ width: 100%; clear: both;} | ||||
|       .mobile-title, | ||||
|       .mobile-switch { | ||||
|         display: none; | ||||
|       } | ||||
|       .form { | ||||
|         box-sizing: border-box; | ||||
|         width: $formWidth; | ||||
|         // - - - tab | ||||
|         :deep(.el-tabs__content) { | ||||
|           padding: 20px 0 0; | ||||
|         } | ||||
|         :deep(.el-tabs__item) { | ||||
|           // 元素 | ||||
|           width: $tabWidth; | ||||
|           height: $rowHeight; | ||||
|           padding: 0; | ||||
|           // 文字 | ||||
|           line-height: $rowHeight; | ||||
|           color: #666666; | ||||
|         } | ||||
|         :deep(.el-tabs__item.is-active) { | ||||
|           font-weight: bold; | ||||
|           color: #2F53EB; | ||||
|         } | ||||
|         :deep(.el-tabs__active-bar) { | ||||
|           height: 3px; | ||||
|           border-radius: 2px; | ||||
|         } | ||||
|         // - - - input | ||||
|         :deep(.el-input__inner) { | ||||
|           // 元素 | ||||
|           width: 100%; | ||||
|           height: $rowHeight; | ||||
|           background: #f5f5f5; | ||||
|           border: 0; | ||||
|           border-radius: 28px; | ||||
|           // 文字 | ||||
|           text-align: center; | ||||
|           line-height: 19px; | ||||
|           color: #262626; | ||||
|         } | ||||
|         .code:deep(.el-input__inner) { | ||||
|           padding: 0 24px; | ||||
|           // 文字 | ||||
|           text-align: left; | ||||
|         } | ||||
|         :deep(.el-input__inner::-webkit-input-placeholder) { /* WebKit browsers */ | ||||
|           font-weight: 400; | ||||
|           color: #8C8C8C; | ||||
|         } | ||||
|         :deep(.el-input__inner:-moz-placeholder) { /* Mozilla Firefox 4 to 18 */ | ||||
|           font-weight: 400; | ||||
|           color: #8C8C8C; | ||||
|         } | ||||
|         :deep(.el-input__inner::-moz-placeholder) { /* Mozilla Firefox 19+ */ | ||||
|           font-weight: 400; | ||||
|           color: #8C8C8C; | ||||
|           opacity:1; | ||||
|         } | ||||
|         :deep(.el-input__inner:-ms-input-placeholder) { /* Internet Explorer 10+ */ | ||||
|           font-weight: 400; | ||||
|           color: #8C8C8C !important; | ||||
|         } | ||||
|         :deep(.el-form-item) { | ||||
|           position: relative; | ||||
|           .button-code { | ||||
|             // 元素 | ||||
|             height: $rowHeight; | ||||
|             box-sizing: border-box; | ||||
|             // 定位 | ||||
|             position: absolute; | ||||
|             top: 0; | ||||
|             right: 20px; | ||||
|             z-index: 1; | ||||
|             // 文字 | ||||
|             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); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .footer { | ||||
|     // 元素 | ||||
|     height: 16px; | ||||
|     line-height: 16px; | ||||
|     font-size: 12px; | ||||
|     color: #8c8c8c; | ||||
|     // 定位 | ||||
|     position: absolute; | ||||
|     bottom: 30px; | ||||
|     a, | ||||
|     a:hover, | ||||
|     a:active { | ||||
|       color: inherit; | ||||
|       text-decoration: none; | ||||
|     } | ||||
|   } | ||||
| 	.login-code { | ||||
| 		width: 33%; | ||||
| 		height: 38px; | ||||
| 		float: right; | ||||
| 		img { | ||||
| 			cursor: pointer; | ||||
| 			width: 100%; | ||||
| 			max-width: 100px; | ||||
| 			height: auto; | ||||
| 			vertical-align: middle; | ||||
| 		} | ||||
| 	} | ||||
| 	// 元素 | ||||
| 	width: inherit; | ||||
| 	height: inherit; | ||||
| 	min-width: 1080px; | ||||
| 	min-height: 620px; | ||||
| 	background-color: $containerBgColor; | ||||
| 	// background-image: url($containerBgImage); | ||||
| 	background-size: cover; | ||||
| 	// 定位 | ||||
| 	position: relative; | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	align-items: center; | ||||
| 	// 文字 | ||||
| 	font-size: 14px; | ||||
| 	font-family: Microsoft YaHei; | ||||
| 	font-weight: 400; | ||||
| 	.logo { | ||||
| 		// 元素 | ||||
| 		width: $logoWidth; | ||||
| 		height: $logoHeight; | ||||
| 		// background-image: url($logoImage); | ||||
| 		// background-size: contain; | ||||
| 		// 定位 | ||||
| 		position: absolute; | ||||
| 		top: 50px; | ||||
| 		left: 50%; | ||||
| 		margin-left: -$logoWidth/2; | ||||
| 	} | ||||
| 	.content { | ||||
| 		// 元素 | ||||
| 		// width: $contentWidth; | ||||
| 		// height: $contentHeight; | ||||
| 		width: 100%; | ||||
| 		height: 100%; | ||||
| 		background-color: #ffffff; | ||||
| 		// box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07); | ||||
| 		// border-radius: 20px; | ||||
| 		// 定位 | ||||
| 		position: relative; | ||||
| 		display: flex; | ||||
|  | ||||
| 		.pic { | ||||
| 			// 元素 | ||||
| 			width: $picWidth; | ||||
| 			height: $picHeight; | ||||
| 			background-image: url($picImage); | ||||
| 			background-repeat: no-repeat; | ||||
| 			background-size: 100% 100%; | ||||
| 			background-position: 0 0; | ||||
| 			position: relative; | ||||
|  | ||||
| 			&::after { | ||||
|         content: ''; | ||||
| 				position: absolute; | ||||
| 				top: 0; | ||||
| 				left: 0; | ||||
| 				width: 100%; | ||||
| 				height: 100%; | ||||
|         // background: #f003; | ||||
|         display: inline-block; | ||||
| 			} | ||||
| 		} | ||||
| 		.field { | ||||
| 			// background: #ccc3; | ||||
| 			position: relative; | ||||
| 			padding-top: 196px; | ||||
| 			flex: 1; | ||||
| 			display: flex; | ||||
| 			flex-direction: column; | ||||
| 			// justify-content: center; | ||||
| 			align-items: center; | ||||
| 			.pc-title { | ||||
| 				width: 100%; | ||||
| 				text-align: center; | ||||
| 				clear: both; | ||||
| 				position: relative; | ||||
| 				top: -36px; | ||||
|  | ||||
| 				// h3.title { | ||||
| 				// 	position: relative; | ||||
|  | ||||
| 				// 	&::before { | ||||
| 				// 		content: ''; | ||||
| 				// 		background: url($cnbmLogo) 100% / 100% no-repeat; | ||||
| 				// 		height: 48px; | ||||
| 				// 		width: 48px; | ||||
| 				// 		position: absolute; | ||||
| 				// 		left: 0px; | ||||
| 				// 		top: 4px; | ||||
| 				// 		display: inline-block; | ||||
| 				// 	} | ||||
| 				// } | ||||
| 			} | ||||
| 			.mobile-title, | ||||
| 			.mobile-switch { | ||||
| 				display: none; | ||||
| 			} | ||||
| 			.form { | ||||
| 				margin-top: 32px; | ||||
| 				box-sizing: border-box; | ||||
| 				// width: $formWidth; | ||||
| 				width: 100%; | ||||
| 				// - - - tab | ||||
| 				:deep(.el-tabs__nav) { | ||||
| 					// background: #f0f3; | ||||
| 				} | ||||
| 				:deep(.el-tabs__content) { | ||||
| 					padding: 20px 0 0; | ||||
| 				} | ||||
| 				:deep(.el-tabs__item) { | ||||
| 					user-select: none; | ||||
| 					// 元素 | ||||
| 					width: $tabWidth; | ||||
| 					height: $rowHeight; | ||||
| 					padding: 0; | ||||
| 					// 文字 | ||||
| 					line-height: $rowHeight; | ||||
| 					color: #666666; | ||||
| 					font-size: 18px; | ||||
| 					font-weight: 400; | ||||
| 					text-align: center; | ||||
| 				} | ||||
| 				:deep(.el-tabs__item.is-active) { | ||||
| 					font-weight: 500; | ||||
| 					color: #2f53eb; | ||||
| 				} | ||||
| 				:deep(.el-tabs__active-bar) { | ||||
| 					height: 3px; | ||||
| 					border-radius: 2px; | ||||
| 				} | ||||
| 				// - - - input | ||||
| 				:deep(.el-input__inner) { | ||||
| 					// 元素 | ||||
| 					width: 100%; | ||||
| 					height: $rowHeight; | ||||
| 					background: #f5f5f5; | ||||
| 					border: 0; | ||||
| 					border-radius: 28px; | ||||
| 					// 文字 | ||||
| 					text-align: center; | ||||
| 					line-height: 19px; | ||||
| 					color: #262626; | ||||
| 				} | ||||
| 				.code:deep(.el-input__inner) { | ||||
| 					padding: 0 24px; | ||||
| 					// 文字 | ||||
| 					text-align: left; | ||||
| 				} | ||||
| 				:deep(.el-input__inner::-webkit-input-placeholder) { | ||||
| 					/* WebKit browsers */ | ||||
| 					font-weight: 400; | ||||
| 					color: #8c8c8c; | ||||
| 				} | ||||
| 				:deep(.el-input__inner:-moz-placeholder) { | ||||
| 					/* Mozilla Firefox 4 to 18 */ | ||||
| 					font-weight: 400; | ||||
| 					color: #8c8c8c; | ||||
| 				} | ||||
| 				:deep(.el-input__inner::-moz-placeholder) { | ||||
| 					/* Mozilla Firefox 19+ */ | ||||
| 					font-weight: 400; | ||||
| 					color: #8c8c8c; | ||||
| 					opacity: 1; | ||||
| 				} | ||||
| 				:deep(.el-input__inner:-ms-input-placeholder) { | ||||
| 					/* Internet Explorer 10+ */ | ||||
| 					font-weight: 400; | ||||
| 					color: #8c8c8c !important; | ||||
| 				} | ||||
| 				:deep(.el-form-item) { | ||||
| 					position: relative; | ||||
| 					.button-code { | ||||
| 						// 元素 | ||||
| 						height: $rowHeight; | ||||
| 						box-sizing: border-box; | ||||
| 						// 定位 | ||||
| 						position: absolute; | ||||
| 						top: 0; | ||||
| 						right: 20px; | ||||
| 						z-index: 1; | ||||
| 						// 文字 | ||||
| 						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 最小尺寸设置 | ||||
| @media screen and (min-width: 599px) and (max-width: 1366px) { | ||||
|   .container { | ||||
|     .content { | ||||
|       width: 710px; | ||||
|       height: 397px; | ||||
|       .pic { | ||||
|         width: 314px; | ||||
|       } | ||||
|       .field { | ||||
|         width: calc(710px - 314px); | ||||
|         left: 314px; | ||||
|         .form { | ||||
|           width: 320px; | ||||
|           :deep(.el-input__inner) { | ||||
|             width: 320px; | ||||
|             height: 56px; | ||||
|           } | ||||
|           .button { | ||||
|             height: 50px; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 	.container { | ||||
| 		min-width: 599px; | ||||
| 		.content { | ||||
| 			// width: 710px; | ||||
| 			// height: 397px; | ||||
| 			width: 100%; | ||||
| 			height: 100%; | ||||
| 			.pic { | ||||
| 				// width: 314px; | ||||
| 				display: none; | ||||
| 			} | ||||
| 			.field { | ||||
| 				// width: calc(710px - 314px); | ||||
| 				// left: 314px; | ||||
| 				// justify-content: center; | ||||
| 				width: 100%; | ||||
|  | ||||
| 				.pc-title { | ||||
| 					h3 { | ||||
| 						font-size: 2.4rem !important; | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				.form { | ||||
| 					// width: 320px; | ||||
| 					:deep(.el-input__inner) { | ||||
| 						width: 320px; | ||||
| 						height: 56px; | ||||
| 					} | ||||
| 					.button { | ||||
| 						height: 50px; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /* ===== MOBILE DESIGN ===== */ | ||||
| $mobileW: 375; | ||||
| @@ -273,115 +357,142 @@ $mobileButtonH: 48; | ||||
| $mobileContainerBgImage: '../assets/images/bg-mobile.png'; | ||||
| // container-content | ||||
| $mobileContentWidth: round($mobileContentW / $mobileW * 100) * 1vw; | ||||
| $mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * $mobileContentWidth; | ||||
| $mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * | ||||
| 	$mobileContentWidth; | ||||
| // container-content-field-form | ||||
| $mobileFormWidth: round($mobileFormW / $mobileW *100) * 1vw; | ||||
| $mobileFormWidth: round($mobileFormW / $mobileW * 100) * 1vw; | ||||
| $mobileRowHeight: $mobileRowH * 1px; | ||||
| $mobileButtonHeight: $mobileButtonH * 1px; | ||||
| $iconBgImage: '../assets/images/icon.png'; | ||||
|  | ||||
| // - - - - - 移动端设置 | ||||
| @media screen and (max-width: 599px) { | ||||
|   .container { | ||||
|     // 元素 | ||||
|     background-image: url($mobileContainerBgImage); | ||||
|     min-width: 280px; | ||||
|     min-height: 568px; | ||||
|     // 文字 | ||||
|     font-size: 17px; | ||||
|     font-family: PingFang SC; | ||||
|     font-weight: bold; | ||||
|     .logo { | ||||
|       display: none; | ||||
|     } | ||||
| 	.container { | ||||
| 		// 元素 | ||||
| 		background-image: url($mobileContainerBgImage); | ||||
| 		min-width: 280px; | ||||
| 		min-height: 568px; | ||||
| 		// 文字 | ||||
| 		font-size: 14px; | ||||
| 		font-family: PingFang SC; | ||||
| 		font-weight: bold; | ||||
| 		.logo { | ||||
| 			display: none; | ||||
| 		} | ||||
|  | ||||
|     .content { | ||||
|       // 元素 | ||||
|       width: $mobileContentWidth; | ||||
|       height: $mobileContentHeight; | ||||
|       min-width: 250px; | ||||
|       min-height: 340px; | ||||
|       // 定位 | ||||
|       display: flex; | ||||
|       justify-content: center; | ||||
|       align-items: center; | ||||
|       .pic { | ||||
|         display: none; | ||||
|       } | ||||
|       .field { | ||||
|         // 元素 | ||||
|         width: inherit; | ||||
|         min-height: inherit; | ||||
|         // 定位 | ||||
|         left: 0; | ||||
|         display: flex; | ||||
|         flex-direction: column; | ||||
|         .mobile-title { | ||||
|           // 元素 | ||||
|           margin: 0 0 20px; | ||||
|           display: block; | ||||
|         } | ||||
|         .form { | ||||
|           width: $mobileFormWidth; | ||||
|           // - - - tab | ||||
|           :deep(.el-tabs__header) { | ||||
|             display: none; | ||||
|           } | ||||
|           :deep(.el-tabs__content) { | ||||
|             padding: 0; | ||||
|           } | ||||
|           // - - - 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; | ||||
| 		.pc-title { | ||||
| 			display: none; | ||||
| 		} | ||||
|  | ||||
| 		.content { | ||||
| 			// 元素 | ||||
| 			width: $mobileContentWidth; | ||||
| 			height: $mobileContentHeight; | ||||
| 			min-width: 250px; | ||||
| 			min-height: 340px; | ||||
| 			// 定位 | ||||
| 			display: flex; | ||||
| 			justify-content: center; | ||||
| 			align-items: center; | ||||
| 			.pic { | ||||
| 				display: none; | ||||
| 			} | ||||
| 			.field { | ||||
|         padding: 0; | ||||
| 				// 元素 | ||||
| 				width: inherit; | ||||
| 				min-height: inherit; | ||||
| 				// 定位 | ||||
| 				left: 0; | ||||
| 				display: flex; | ||||
| 				flex-direction: column; | ||||
|  | ||||
| 				.mobile-title { | ||||
| 					// 元素 | ||||
| 					margin: 0; | ||||
| 					display: block; | ||||
| 				} | ||||
|  | ||||
| 				.form { | ||||
|           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: 20px; | ||||
|     } | ||||
|   } | ||||
| 					width: $mobileFormWidth; | ||||
| 					// - - - tab | ||||
| 					:deep(.el-tabs__header) { | ||||
| 						display: none; | ||||
| 					} | ||||
| 					:deep(.el-tabs__content) { | ||||
| 						padding: 0; | ||||
| 					} | ||||
| 					// - - - 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; | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				.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; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
							
								
								
									
										132
									
								
								src/components/ButtonNav/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,132 @@ | ||||
| <!-- | ||||
|     filename: index.vue | ||||
|     author: liubin | ||||
|     date: 2024-04-02 09:49:36 | ||||
|     description: | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|   <!-- 按钮切换 --> | ||||
|   <div v-if="buttonMode" class="button-nav"> | ||||
|     <button | ||||
|       v-for="m in menus" | ||||
|       :key="m" | ||||
|       @click="currentMenu = m" | ||||
|       :data-text="m" | ||||
|       :class="[m === currentMenu ? 'active' : '']" | ||||
|     ></button> | ||||
|   </div> | ||||
|   <!-- 标签切换 --> | ||||
|   <div v-else class="custom-tabs" style="height: 100%; width: 100%"> | ||||
|     <el-tabs class="tag-nav" v-model="currentMenu" style="height: 100%"> | ||||
|       <el-tab-pane | ||||
|         v-for="(m, idx) in menus" | ||||
|         :key="m" | ||||
|         :label="idx == 0 ? `\u2002${m}\u2002` : `\u3000${m}\u3000`" | ||||
|         :name="m" | ||||
|       > | ||||
|         <slot :name="`tab${idx + 1}`"></slot> | ||||
|       </el-tab-pane> | ||||
|     </el-tabs> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: "ButtonNav", | ||||
|   props: { | ||||
|     menus: { | ||||
|       type: Array, | ||||
|       required: true, | ||||
|       default: () => [], | ||||
|       validator: (val) => { | ||||
|         return val.length > 0; | ||||
|       }, | ||||
|     }, | ||||
|     buttonMode: { | ||||
|       type: Boolean, | ||||
|       default: true, | ||||
|     }, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       currentMenu: "", | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.currentMenu = this.menus[0]; | ||||
|   }, | ||||
|   watch: { | ||||
|     currentMenu(val) { | ||||
|       this.$emit("change", val); | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .button-nav { | ||||
|   width: 100%; | ||||
|   display: flex; | ||||
|   gap: 12px; | ||||
|  | ||||
|   * { | ||||
|     user-select: none; | ||||
|   } | ||||
|  | ||||
|   button { | ||||
|     cursor: pointer; | ||||
|     appearance: none; | ||||
|     outline: none; | ||||
|     border: none; | ||||
|     background: #fff; | ||||
|     border-radius: 8px; | ||||
|     padding: 15px; | ||||
|     color: #888; | ||||
|     letter-spacing: 2px; | ||||
|     flex: 1; | ||||
|     box-sizing: padding-box; | ||||
|     position: relative; | ||||
|  | ||||
|     &::after { | ||||
|       content: attr(data-text); | ||||
|       position: absolute; | ||||
|       top: 5px; | ||||
|       left: 50%; | ||||
|       font-size: 16px; | ||||
|       font-weight: 500; | ||||
|       transform: translate(-50%); | ||||
|     } | ||||
|  | ||||
|     &.active { | ||||
|       color: #111; | ||||
|       //border-bottom: 2px solid #0b58ff; | ||||
|       box-shadow: 0px 2px 1px 1px #0b58ff; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|  | ||||
| <style scoped> | ||||
| .custom-tabs >>> .el-tabs__header { | ||||
|   margin-bottom: 8px; | ||||
|   display: inline-block; | ||||
|   /* transform: translateY(-12px); */ | ||||
| } | ||||
| .custom-tabs >>> .el-tabs__item { | ||||
|   padding-left: 0px !important; | ||||
|   padding-right: 0px !important; | ||||
|   line-height: 36px !important; | ||||
|   height: 36px; | ||||
| } | ||||
|  | ||||
| .custom-tabs >>> .el-tabs__content { | ||||
|   height: calc(100% - 42px); | ||||
| } | ||||
| .custom-tabs >>> .el-tab-pane { | ||||
|   box-sizing: border-box; | ||||
|   height: 100%; | ||||
|   padding: 20px; | ||||
|   border: 10px solid #f002; | ||||
| } | ||||
| </style> | ||||
| @@ -21,13 +21,11 @@ | ||||
| 						v-model="form[col.prop]" | ||||
| 						@change="$emit('update', form)" | ||||
| 						:placeholder="`请输入${col.label}`" | ||||
| 						:disabled="disabled" | ||||
| 						v-bind="col.bind" /> | ||||
| 					<el-input | ||||
| 						v-if="col.textarea" | ||||
| 						type="textarea" | ||||
| 						v-model="form[col.prop]" | ||||
| 						:disabled="disabled" | ||||
| 						@change="$emit('update', form)" | ||||
| 						:placeholder="`请输入${col.label}`" | ||||
| 						v-bind="col.bind" /> | ||||
| @@ -35,7 +33,6 @@ | ||||
| 						v-if="col.select" | ||||
| 						v-model="form[col.prop]" | ||||
| 						:placeholder="`请选择${col.label}`" | ||||
| 						:disabled="disabled" | ||||
| 						@change="$emit('update', form)" | ||||
| 						v-bind="col.bind"> | ||||
| 						<el-option | ||||
| @@ -48,23 +45,18 @@ | ||||
| 						v-if="col.datetime" | ||||
| 						v-model="form[col.prop]" | ||||
| 						type="datetime" | ||||
| 						:disabled="disabled" | ||||
| 						:placeholder="`请选择${col.label}`" | ||||
| 						value-format="timestamp" | ||||
| 						@change="$emit('update', form)" | ||||
| 						v-bind="col.bind"></el-date-picker> | ||||
| 					<el-switch | ||||
| 						v-if="col.switch" | ||||
| 						v-model="form[col.prop]" | ||||
| 						:disabled="disabled" | ||||
| 						active-color="#0b58ff" | ||||
| 						inactive-color="#e1e1e1" | ||||
| 						@change="$emit('update', form)" | ||||
| 						v-bind="col.bind"></el-switch> | ||||
| 					<component | ||||
| 						v-if="col.subcomponent" | ||||
| 						:key="col.key" | ||||
| 						:disabled="disabled" | ||||
| 						:is="col.subcomponent" | ||||
| 						:inlineStyle="col.style"></component> | ||||
|  | ||||
| @@ -87,7 +79,6 @@ | ||||
| 							:headers="uploadHeaders" | ||||
| 							:show-file-list="false" | ||||
| 							icon="el-icon-upload2" | ||||
| 							:disabled="disabled" | ||||
| 							:before-upload="beforeUpload" | ||||
| 							:on-success="handleUploadSuccess" | ||||
| 							v-bind="col.bind"> | ||||
| @@ -107,7 +98,7 @@ | ||||
| 							v-for="file in form[col.prop] || []" | ||||
| 							:file="file" | ||||
| 							:key="file.fileUrl" | ||||
| 							@delete="!disabled && handleDeleteFile(file)" /> | ||||
| 							@delete="handleDeleteFile(file)" /> | ||||
| 					</div> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| @@ -118,7 +109,6 @@ | ||||
| <script> | ||||
| import { getAccessToken } from '@/utils/auth'; | ||||
| import tupleImg from '@/assets/images/tuple.png'; | ||||
| import cache from '@/utils/cache'; | ||||
|  | ||||
| /** | ||||
|  * 找到最长的label | ||||
| @@ -200,7 +190,7 @@ export default { | ||||
| 			type: Boolean, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		hasFiles: { | ||||
| 		hasFile: { | ||||
| 			type: Boolean, | ||||
| 			default: false, | ||||
| 		}, | ||||
| @@ -246,7 +236,7 @@ export default { | ||||
| 		dataForm: { | ||||
| 			handler(val) { | ||||
| 				this.form = JSON.parse(JSON.stringify(val)); | ||||
| 				if (this.hasFiles) { | ||||
| 				if (this.hasFile) { | ||||
| 					this.form.files = this.form.files ?? []; | ||||
| 				} | ||||
| 			}, | ||||
| @@ -286,6 +276,7 @@ export default { | ||||
| 					} else if (opt.url) { | ||||
| 						// 如果有 depends,则暂时先不获取,注册一个watcher | ||||
| 						if (opt.depends) { | ||||
| 							console.log('[handleOptions] setting watch'); | ||||
| 							this.$watch( | ||||
| 								() => this.form[opt.depends], | ||||
| 								(id) => { | ||||
| @@ -308,7 +299,7 @@ export default { | ||||
| 									}); | ||||
| 								}, | ||||
| 								{ | ||||
| 									immediate: false, | ||||
| 									immediate: true, | ||||
| 								} | ||||
| 							); | ||||
| 							return; | ||||
| @@ -326,11 +317,6 @@ export default { | ||||
| 										'list' in response.data | ||||
| 											? response.data.list | ||||
| 											: response.data; | ||||
|  | ||||
| 									if (opt.cache) { | ||||
| 										cache.store(opt.cache, list); | ||||
| 									} | ||||
|  | ||||
| 									this.$set( | ||||
| 										this.optionListOf, | ||||
| 										opt.prop, | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 
 | ||||
| /* | ||||
|  * @Date: 2020-12-29 16:49:28 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-09-12 11:13:34 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-09-11 13:40:48 | ||||
|  * @FilePath: \basic-admin\src\filters\basicData\index.js | ||||
|  * @Description: | ||||
|  */ | ||||
| @@ -13,11 +13,25 @@ const table = { | ||||
|     2: '停止', | ||||
|     3: '未知', | ||||
|   }, | ||||
|   deactivate: { | ||||
|     1: '启用', | ||||
|     0: '停用', | ||||
|   }, | ||||
|   wareType: { | ||||
|     1: '缓存', | ||||
|     2: '活动', | ||||
|     3: '其它', | ||||
|   }, | ||||
|   reportType: { | ||||
|     1: '日', | ||||
|     2: '周', | ||||
|     3: '月' | ||||
|   } | ||||
|     2: '日', | ||||
|     3: '周', | ||||
|     4: '月', | ||||
|     5: '年', | ||||
|   }, | ||||
|   manual: { | ||||
|     1: '手动', | ||||
|     0: '自动', | ||||
|   }, | ||||
| } | ||||
| 
 | ||||
| // 日期格式化
 | ||||
| @@ -33,7 +47,7 @@ export function parseTime(time, pattern) { | ||||
|     if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { | ||||
|       time = parseInt(time) | ||||
|     } else if (typeof time === 'string') { | ||||
|       time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),''); | ||||
|       time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm), ''); | ||||
|     } | ||||
|     if ((typeof time === 'number') && (time.toString().length === 10)) { | ||||
|       time = time * 1000 | ||||
| @@ -47,14 +61,25 @@ export function parseTime(time, pattern) { | ||||
|     h: date.getHours(), | ||||
|     i: date.getMinutes(), | ||||
|     s: date.getSeconds(), | ||||
|     a: date.getDay() | ||||
|     a: date.getDay(), | ||||
|     w: '', | ||||
|   } | ||||
|   const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { | ||||
|   const time_str = format.replace(/{([ymdhisaw])+}/g, (result, key) => { | ||||
|     let value = formatObj[key] | ||||
|     // Note: getDay() returns 0 on Sunday
 | ||||
|     if (key === 'a') { | ||||
|       return ['日', '一', '二', '三', '四', '五', '六'][value] | ||||
|     } | ||||
|     if (key === 'w') { | ||||
|       const current = new Date(time); | ||||
|       current.setHours(0, 0, 0); | ||||
|       current.setDate(current.getDate() + 4 - (current.getDay() || 7)); | ||||
|       const firstThursday = new Date(current.getFullYear(), 0, 4); | ||||
|       firstThursday.setDate(firstThursday.getDate() + 4 - (firstThursday.getDay() || 7)); | ||||
|       const time1 = current.getTime() - firstThursday.getTime(); | ||||
|       const weeks = Math.ceil(time1 / (7 * 24 * 3600 * 1000)); | ||||
|       return (weeks + 1) | ||||
|     } | ||||
|     if (result.length > 0 && value < 10) { | ||||
|       value = '0' + value | ||||
|     } | ||||
| @@ -67,7 +67,7 @@ export default { | ||||
| 	}, | ||||
| 	data() { | ||||
| 		return { | ||||
| 			title: '中建材智能化院', | ||||
| 			title: '中建材自贡新能源', | ||||
| 			logo: logoImg, | ||||
| 		}; | ||||
| 	}, | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import Element from 'element-ui'; | ||||
| import './assets/styles/element-variables.scss'; | ||||
| import '@/assets/styles/index.scss'; // global css | ||||
| import '@/assets/styles/ruoyi.scss'; // ruoyi css | ||||
| import '@/assets/font/font.css' | ||||
| import App from './App'; | ||||
| import store from './store'; | ||||
| import router from './router'; | ||||
| @@ -34,7 +35,6 @@ import { | ||||
| 	getDictDatas, | ||||
| 	getDictDatas2, | ||||
| } from '@/utils/dict'; | ||||
|  | ||||
| import './theme/index.css'; // 自定义主题包 - code-brick-zj | ||||
|  | ||||
| // 全局方法挂载 | ||||
| @@ -71,9 +71,7 @@ import DocAlert from '@/components/DocAlert'; | ||||
| // 头部标签插件 | ||||
| import VueMeta from 'vue-meta'; | ||||
| import CodeBrickZj from 'code-brick-zj'; | ||||
| import { hiPrintPlugin,disAutoConnect } from 'vue-plugin-hiprint' | ||||
| disAutoConnect(); | ||||
| Vue.use(hiPrintPlugin) | ||||
|  | ||||
| Vue.use(CodeBrickZj) | ||||
| Vue.use(directive); | ||||
| Vue.use(plugins); | ||||
|   | ||||
							
								
								
									
										122
									
								
								src/mixins/basic-add.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,122 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2022-08-24 11:19:43 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2024-04-10 15:46:19 | ||||
|  * @Description: | ||||
|  */ | ||||
| import { listData } from "@/api/system/dict/data"; //数据字典接口 | ||||
| export default { | ||||
|   data() { | ||||
|     /* eslint-disable */ | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         createURL: '', //新增接口 | ||||
|         updateURL: '', //编辑提交接口 | ||||
|         infoURL: '', //编辑时获取单条数据接口 | ||||
|         codeURL: '', //获取code接口(返回结果为dataForm.code字段) | ||||
|         optionArrUrl: [], //需要获取下拉框的方法数组 | ||||
|         optionArr: {}, //需要获取下拉框的方法数组的返回结果 | ||||
|         dictNameList: [], //数据字典name数组 | ||||
|         dictArr: {}, //需要获取数据字典的方法数组的返回结果 | ||||
|       }, | ||||
|       visible: false, | ||||
|       setData: false, // 是否需要【编辑时获取单条数据接口】返回的数据操作 | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|   }, | ||||
|   activated() { | ||||
|   }, | ||||
|   methods: { | ||||
|     init(id) { | ||||
|       this.dataForm.id = id || null; | ||||
|       this.visible = true; | ||||
|       if (this.urlOptions.optionArrUrl.length > 0) { | ||||
|         this.getArr() | ||||
|       } | ||||
|       if (this.urlOptions.dictNameList.length > 0) { | ||||
|         this.getDict() | ||||
|       } | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         if (this.dataForm.id) { | ||||
|           this.urlOptions.infoURL(id).then(response => { | ||||
|             this.dataForm = response.data; | ||||
|             if (this.setData) { | ||||
|               this.setDataForm() | ||||
|             } | ||||
|           }); | ||||
|         } else { | ||||
|           if (this.urlOptions.codeURL) { | ||||
|             this.getCode() | ||||
|           } | ||||
| 				} | ||||
|       }); | ||||
|     }, | ||||
|     /** 获取code */ | ||||
| 		getCode() { | ||||
| 			this.urlOptions.codeURL() | ||||
| 				.then(({ data: res }) => { | ||||
| 					this.dataForm.code = res; | ||||
| 				}) | ||||
| 				.catch(() => {}); | ||||
| 		}, | ||||
|     /** 获取下拉框数组 */ | ||||
|     getArr() { | ||||
|       const params = { | ||||
|         pageSize: 100, | ||||
|         pageNo: 1, | ||||
|       } | ||||
|       this.urlOptions.optionArrUrl.forEach((item, index) => { | ||||
|         item(params).then(({ data: res }) => { | ||||
|           this.$set(this.urlOptions.optionArr, `arr${index}`, res.list) | ||||
|         }) | ||||
|           .catch(() => { | ||||
|           }); | ||||
|       }); | ||||
|     }, | ||||
|     /** 查询字典数据列表 */ | ||||
|     getDict() { | ||||
|       this.urlOptions.dictNameList.forEach((item,index)=>{ | ||||
|         const queryParams = { | ||||
|           pageNo: 1, | ||||
|           pageSize: 99, | ||||
|           dictType: item, | ||||
|         } | ||||
|         listData(queryParams).then(response => { | ||||
|           this.$set(this.urlOptions.dictArr, `dict${index}`, response.data.list) | ||||
|         }); | ||||
|       }) | ||||
|     }, | ||||
|     // 表单提交 | ||||
|     dataFormSubmit() { | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|         // 修改的提交 | ||||
|         if (this.dataForm.id) { | ||||
|           this.urlOptions.updateURL(this.dataForm).then(response => { | ||||
|             this.$modal.msgSuccess("修改成功"); | ||||
|             this.visible = false; | ||||
|             this.$emit("refreshDataList"); | ||||
|           }); | ||||
|           return; | ||||
|         } | ||||
|         // 添加的提交 | ||||
|         this.urlOptions.createURL(this.dataForm).then(response => { | ||||
|           this.$modal.msgSuccess("新增成功"); | ||||
|           this.visible = false; | ||||
|           this.$emit("refreshDataList"); | ||||
|         }); | ||||
|       }); | ||||
|     }, | ||||
|     /** 清空form */ | ||||
|     formClear() { | ||||
|       if (this.$refs.dataForm!==undefined) { | ||||
|           this.$refs.dataForm.resetFields(); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* | ||||
|  * @Author: zwq | ||||
|  * @Date: 2022-08-24 11:19:43 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-09-21 16:02:07 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2025-02-21 13:18:46 | ||||
|  * @Description: | ||||
|  */ | ||||
| export default { | ||||
| @@ -10,21 +10,20 @@ export default { | ||||
|     /* eslint-disable */ | ||||
|     return { | ||||
|       urlOptions: { | ||||
|         getDataListURL: '', | ||||
|         deleteURL: '', | ||||
|         statusUrl: '', | ||||
|         exportURL: '' | ||||
|         getDataListURL: '', //获取table接口
 | ||||
|         deleteURL: '', //删除接口
 | ||||
|         exportURL: '' //导出接口
 | ||||
|       }, | ||||
|       tableData: [], | ||||
|       listQuery: { | ||||
|         pageSize: 10, | ||||
|       tableData: [], //table数据
 | ||||
|       listQuery: { //分页
 | ||||
|         pageSize: 20, | ||||
|         pageNo: 1, | ||||
|         total: 1, | ||||
|       }, | ||||
|       exportLoading: false, | ||||
|       dataListLoading: false, | ||||
|       addOrEditTitle: '', | ||||
|       addOrUpdateVisible: false, | ||||
|       exportLoading: false, //导出完成的加载状态是否开启
 | ||||
|       dataListLoading: false, //获取table的加载状态是否开启
 | ||||
|       addOrEditTitle: '', //dialog的title
 | ||||
|       addOrUpdateVisible: false, //dialog状态
 | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
| @@ -53,36 +52,14 @@ export default { | ||||
|       this.listQuery.pageNo = val; | ||||
|       this.getDataList(); | ||||
|     }, | ||||
|     // 新增 / 修改
 | ||||
|     // 新增
 | ||||
|     addOrUpdateHandle(id) { | ||||
|       this.addOrEditTitle = "新增"; | ||||
|       this.addOrUpdateVisible = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.addOrUpdate.init(id); | ||||
|       }); | ||||
|     }, | ||||
|     cancel(id) { | ||||
|       this.$refs["popover-" + id].showPopper = false; | ||||
|     }, | ||||
|     //改变状态
 | ||||
|     changeStatus(id) { | ||||
|       this.$http | ||||
|         .post(this.urlOptions.statusUrl, { id }) | ||||
|         .then(({ data: res }) => { | ||||
|           if (res.code !== 0) { | ||||
|             return this.$message.error(res.msg); | ||||
|           } | ||||
|           this.$refs["popover-" + id].showPopper = false; | ||||
|           this.$message({ | ||||
|             message: this.$t("prompt.success"), | ||||
|             type: "success", | ||||
|             duration: 500, | ||||
|             onClose: () => { | ||||
|               this.getDataList(); | ||||
|             }, | ||||
|           }); | ||||
|         }) | ||||
|         .catch(() => { }); | ||||
|     }, | ||||
|     //tableBtn点击
 | ||||
|     handleClick(val) { | ||||
|       if (val.type === "edit") { | ||||
| @@ -93,15 +70,13 @@ export default { | ||||
|         }); | ||||
|       } else if (val.type === "delete") { | ||||
|         this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex) | ||||
|       } else if (val.type === "change") { | ||||
|         this.changeStatus(val.data.id) | ||||
|       } else { | ||||
|         this.otherMethods(val) | ||||
|       } | ||||
|     }, | ||||
|     // 删除
 | ||||
|     deleteHandle(id, name, index) { | ||||
|       this.$confirm(`确定对${name ? '[名称=' + name + ']' : '[序号=' + index + ']'}进行删除操作?`, "提示", { | ||||
|       this.$confirm(`是否确认删除${name ? '名称为"' + name + '"' : '序号为"' + index + '"'}的数据项?`, "系统提示", { | ||||
|         confirmButtonText: "确定", | ||||
|         cancelButtonText: "取消", | ||||
|         type: "warning", | ||||
| @@ -120,32 +95,17 @@ export default { | ||||
|         }) | ||||
|         .catch(() => { }); | ||||
|     }, | ||||
|     //search-bar点击
 | ||||
|     buttonClick(val) { | ||||
|       switch (val.btnName) { | ||||
|         case "search": | ||||
|           this.listQuery.xm1 = val.xm1; | ||||
|           this.listQuery.xm2 = val.xm2; | ||||
|           this.listQuery.pageNo = 1; | ||||
|           this.getDataList(); | ||||
|           break; | ||||
|         case "add": | ||||
|           this.addOrEditTitle = '新增' | ||||
|           this.addOrUpdateVisible = true; | ||||
|           this.addOrUpdateHandle() | ||||
|           break; | ||||
|         default: | ||||
|           console.log(val) | ||||
|       } | ||||
|     }, | ||||
|     // dialog取消
 | ||||
|     handleCancel() { | ||||
|       this.$refs.addOrUpdate.formClear() | ||||
|       this.addOrUpdateVisible = false | ||||
|       this.addOrEditTitle = '' | ||||
|     }, | ||||
|     // dialog确定
 | ||||
|     handleConfirm() { | ||||
|       this.$refs.addOrUpdate.dataFormSubmit() | ||||
|     }, | ||||
|     // dialog的父组件方法this.$emit("refreshDataList");
 | ||||
|     successSubmit() { | ||||
|       this.handleCancel() | ||||
|       this.getDataList() | ||||
| @@ -160,7 +120,7 @@ export default { | ||||
|         this.exportLoading = true; | ||||
|         return this.urlOptions.exportURL(params); | ||||
|       }).then(response => { | ||||
|         this.$download.excel(response, '工厂.xls'); | ||||
|         this.$download.excel(response, '报表.xls'); | ||||
|         this.exportLoading = false; | ||||
|       }).catch(() => { }); | ||||
|     } | ||||
| @@ -28,59 +28,10 @@ export default { | ||||
| 			// tableBtn: [], // 占位 | ||||
| 			// searchBarFormConfig: [], // 占位 | ||||
| 			// // 弹窗表单配置 | ||||
| 			// dialogFormConfig: [], //  | ||||
| 			updateUrl: '', | ||||
| 			addUrl: '', | ||||
| 			pageUrl: '', | ||||
| 			infoUrl: '', | ||||
| 			basePath: '', | ||||
| 			form: {} | ||||
| 			// dialogFormConfig: [], // 占位 | ||||
| 		}; | ||||
| 	}, | ||||
| 	computed: { | ||||
| 		addPath() { | ||||
| 			return this.basePath + '/create' | ||||
| 		}, | ||||
| 		updatePath() { | ||||
| 			return this.basePath + '/update' | ||||
| 		}, | ||||
| 		deletePath() { | ||||
| 			return this.basePath + '/delete' | ||||
| 		}, | ||||
| 		infoPath() { | ||||
| 			return this.basePath + '/get' | ||||
| 		}, | ||||
| 		pagePath() { | ||||
| 			return this.basePath + '/page' | ||||
| 		} | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		// utils | ||||
| 		http(url, method, payload) { | ||||
| 			return this.$axios({ | ||||
| 				url, | ||||
| 				method, | ||||
| 				params: method === 'get' ? payload : null, | ||||
| 				data: method !== 'get' ? payload : null, | ||||
| 			}) | ||||
| 		}, | ||||
| 		put(payload) { | ||||
| 			return this.http(this.updateUrl == '' ? this.updatePath : this.updateUrl, 'put', payload); | ||||
| 		}, | ||||
| 		post(payload) { | ||||
| 			return this.http(this.addUrl == '' ? this.addPath : this.addUrl, 'post', payload); | ||||
| 		}, | ||||
| 		recv(payload) { | ||||
| 			return this.http(this.pageUrl == '' ? this.pagePath : this.pageUrl, 'get', payload); | ||||
| 		}, | ||||
| 		info(payload) { | ||||
| 			return this.http(this.infoUrl == '' ? this.infoPath : this.infoUrl, 'get', payload); | ||||
| 		}, | ||||
| 		del(payload) { | ||||
| 			return this.http(this.deleteUrl == '' ? this.deletePath : this.deleteUrl, 'delete', payload); | ||||
| 		}, | ||||
|  | ||||
|  | ||||
| 		// 过滤后端传回的详情数据 | ||||
| 		filterData(data, keys) { | ||||
| 			const obj = {}; | ||||
|   | ||||
							
								
								
									
										20
									
								
								src/mixins/lb/tableHeightMixin.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			tableH: this.tableHeight(260), | ||||
| 		}; | ||||
| 	}, | ||||
| 	created() { | ||||
| 		this.tableH = this?.heightNum ? this.tableHeight(this.heightNum) : this.tableHeight(260); | ||||
| 		window.addEventListener('resize', this._setTableHeight); | ||||
| 	}, | ||||
| 	destroyed() { | ||||
| 		window.removeEventListener('resize', this._setTableHeight); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		_setTableHeight() { | ||||
| 			this.tableH = this?.heightNum ? this.tableHeight(this.heightNum) : this.tableHeight(260); | ||||
| 			// this.tableH = this.tableHeight(260); | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| @@ -70,17 +70,24 @@ export const constantRoutes = [ | ||||
|     hidden: true | ||||
|   }, | ||||
|   { | ||||
|     path: '/', | ||||
|     path: "", | ||||
|     component: Layout, | ||||
|     // redirect: 'core/base/factory', | ||||
|     // children: [{ | ||||
|     //   path: 'index', | ||||
|     //   redirect: 'core/base/factory', | ||||
|     //   component: (resolve) => require(['@/views/index'], resolve), | ||||
|     //   name: '首页', | ||||
|     //   meta: { title: '首页', icon: 'dashboard', affix: true } | ||||
|     // } | ||||
|     // ] | ||||
|     redirect: "index", | ||||
|     children: [ | ||||
|       { | ||||
|         path: "index", | ||||
|         component: (resolve) => require(["@/views/cost/index"], resolve), | ||||
|         name: "首页", | ||||
|         meta: { title: "首页", icon: "dashboard", affix: true }, | ||||
|       }, | ||||
|       { | ||||
|         path: "indexDetail", | ||||
|         component: (resolve) => require(["@/views/cost/indexDetail"], resolve), | ||||
|         name: "首页详细", | ||||
|         meta: { title: "首页详细", icon: "dashboard"}, | ||||
|         hidden: true | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
|   { | ||||
|     path: '/user', | ||||
|   | ||||
| @@ -180,7 +180,6 @@ input, textarea{ | ||||
| // 抽屉head区域---start | ||||
| .el-drawer__header { | ||||
|   padding-bottom: 20px; | ||||
|   padding-left: 30px; | ||||
|   margin-bottom: 23px; | ||||
|   font-size: 20px; | ||||
|   font-weight: 500; | ||||
|   | ||||
| @@ -1,53 +0,0 @@ | ||||
| let timers = []; | ||||
|  | ||||
| export default { | ||||
|  | ||||
|     exists(key) { | ||||
|         const _ = localStorage.getItem('stored_keys'); | ||||
|         return _ ? _.split(',')?.indexOf(key) != -1 : false; | ||||
|     }, | ||||
|  | ||||
|     store(key, value, duration = null) { | ||||
|         if (!localStorage.getItem('stored_keys')) localStorage.setItem('stored_keys', key); | ||||
|         else localStorage.setItem('stored_keys', localStorage.getItem('stored_keys') + ',' + key); | ||||
|  | ||||
|         localStorage.setItem(key, JSON.stringify(value)); | ||||
|         console.log('store duration', duration) | ||||
|         if (duration) { | ||||
|             if (timers[key]) clearTimeout(timers[key]); | ||||
|             timers[key] = setTimeout(() => { | ||||
|                 console.log("clear cache", key) | ||||
|                 this.clear([key]); | ||||
|             }, duration * 1000); | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     /** | ||||
|      *  | ||||
|      * @param {*} key  | ||||
|      * @param {*} cb  | ||||
|      * @param {*} param2 force 强制更新,调用cb | ||||
|      * @returns  | ||||
|      */ | ||||
|     async getList(key, cb = null, { force = false, duration = null } = {}) { | ||||
|         if (this.exists(key) && !force) { | ||||
|             return JSON.parse(localStorage.getItem(key)) | ||||
|         } else { | ||||
|             const list = await cb(); | ||||
|             this.store(key, list, duration); | ||||
|             return list; | ||||
|         } | ||||
|     }, | ||||
|  | ||||
|     clear(keys) { | ||||
|         if (keys && keys.length) { | ||||
|             let stored_keys = localStorage.getItem('stored_keys').split(','); | ||||
|             keys.forEach((key) => { | ||||
|                 stored_keys = stored_keys.filter((item) => item != key); | ||||
|             }); | ||||
|             localStorage.setItem('stored_keys', stored_keys); | ||||
|             return; | ||||
|         } | ||||
|         localStorage.removeItem('stored_keys'); | ||||
|     }, | ||||
| } | ||||
| @@ -89,21 +89,13 @@ export const DICT_TYPE = { | ||||
|  | ||||
|   // ============== ENERGY - 能源模块 ============= | ||||
|   ENERGY_UNIT: 'energy_unit', | ||||
|    | ||||
|   // ============== ENERGY - 能源模块 ============= | ||||
|   EQU_ALARM_LEVEL: 'equ_alarm_level', | ||||
|   MONITOR_INDEX_TYPE: 'monitor_index_type', | ||||
|   OBJECT_TYPE: 'object_type', | ||||
|   STATISTIC_TYPE: 'statistic_type', | ||||
|   TIME_DIM: 'time_dim', | ||||
|  | ||||
|   // ============== ORDER - 订单模块 ============= | ||||
|   ORDER_STATUS: 'order_status', | ||||
|   ORDER_ORIGIN: 'order_Origin', | ||||
|   ORDER_PRIORITY: 'order_priority', | ||||
|   PACK_SPEC: 'pack_spec', | ||||
|    | ||||
|   // ============== EQUIPMENT - 设备模块 ============= | ||||
|   MAINTAIN_TYPE: 'maintain_type', | ||||
|   FAULT_LEVEL: 'fault-level', | ||||
|   TIME_DIM: 'time_dim' | ||||
| } | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -217,7 +217,7 @@ export function getTime(type) { | ||||
| export function debounce(func, wait, immediate) { | ||||
|   let timeout, args, context, timestamp, result | ||||
|  | ||||
|   const later = function () { | ||||
|   const later = function() { | ||||
|     // 据上一次触发时间间隔 | ||||
|     const last = +new Date() - timestamp | ||||
|  | ||||
| @@ -234,7 +234,7 @@ export function debounce(func, wait, immediate) { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   return function (...args) { | ||||
|   return function(...args) { | ||||
|     context = this | ||||
|     timestamp = +new Date() | ||||
|     const callNow = immediate && !timeout | ||||
| @@ -438,7 +438,3 @@ export function toCamelCase(str, upperCaseFirst) { | ||||
|  | ||||
|   return str; | ||||
| } | ||||
|  | ||||
| export function IdToName(targetId, source, prop = 'name') { | ||||
|   return source.find(item => item.id === targetId)?.[prop] | ||||
| } | ||||
| @@ -48,6 +48,50 @@ export function parseTime(time, pattern) { | ||||
|   return time_str | ||||
| } | ||||
|  | ||||
| // 日期格式化(仅适用表格) | ||||
| export function parseTimeTable(pattern) { | ||||
|   return function(time){ | ||||
|     if (arguments.length === 0 || !time) { | ||||
|       return null | ||||
|     } | ||||
|     const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' | ||||
|     let date | ||||
|     if (typeof time === 'object') { | ||||
|       date = time | ||||
|     } else { | ||||
|       if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { | ||||
|         time = parseInt(time) | ||||
|       } else if (typeof time === 'string') { | ||||
|         time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),''); | ||||
|       } | ||||
|       if ((typeof time === 'number') && (time.toString().length === 10)) { | ||||
|         time = time * 1000 | ||||
|       } | ||||
|       date = new Date(time) | ||||
|     } | ||||
|     const formatObj = { | ||||
|       y: date.getFullYear(), | ||||
|       m: date.getMonth() + 1, | ||||
|       d: date.getDate(), | ||||
|       h: date.getHours(), | ||||
|       i: date.getMinutes(), | ||||
|       s: date.getSeconds(), | ||||
|       a: date.getDay() | ||||
|     } | ||||
|     const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { | ||||
|       let value = formatObj[key] | ||||
|       // Note: getDay() returns 0 on Sunday | ||||
|       if (key === 'a') { | ||||
|         return ['日', '一', '二', '三', '四', '五', '六'][value] | ||||
|       } | ||||
|       if (result.length > 0 && value < 10) { | ||||
|         value = '0' + value | ||||
|       } | ||||
|       return value || 0 | ||||
|     }) | ||||
|     return time_str | ||||
|   } | ||||
| } | ||||
| // 表单重置 | ||||
| export function resetForm(refName) { | ||||
|   if (this.$refs[refName]) { | ||||
|   | ||||
							
								
								
									
										121
									
								
								src/views/Environmental/Envi-yure-log.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,121 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-11-13 14:01:16 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2025-02-21 14:32:08 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<div> | ||||
| 		<div class="app-container"> | ||||
| 			<!-- 搜索工作栏 --> | ||||
| 			<search-bar | ||||
| 				:formConfigs="formConfig" | ||||
| 				ref="searchBarForm" | ||||
| 				@headBtnClick="buttonClick" /> | ||||
| 			<!-- 列表 --> | ||||
| 			<base-table | ||||
| 				:page="listQuery.pageNo" | ||||
| 				:limit="listQuery.pageSize" | ||||
| 				:table-props="tableProps" | ||||
| 				:table-data="tableData" | ||||
| 				:max-height="tableH" /> | ||||
| 			<pagination | ||||
| 				:page.sync="listQuery.pageNo" | ||||
| 				:limit.sync="listQuery.pageSize" | ||||
| 				:total="listQuery.total" | ||||
| 				@pagination="getDataList" /> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from '@/mixins/basic-page'; | ||||
| import { yurepage } from '@/api/environmental/environmentalLog'; | ||||
| import { parseTime } from '@/filter/code-filter'; | ||||
| import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'recordTime', | ||||
| 		label: '记录时间', | ||||
| 		filter: parseTime, | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注', | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'usingQuantity', | ||||
| 		label: '发电量', | ||||
|     filter: (val) => (val != null ? Number(val).toFixed(3) : '-'), | ||||
| 	}, | ||||
| ]; | ||||
| export default { | ||||
| 	name: '', | ||||
| 	mixins: [basicPage, tableHeightMixin], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: yurepage, | ||||
| 			}, | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'datePicker', | ||||
| 					label: '时间', | ||||
| 					dateType: 'datetimerange', | ||||
| 					format: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					rangeSeparator: '-', | ||||
| 					startPlaceholder: '开始时间', | ||||
| 					endPlaceholder: '结束时间', | ||||
| 					width: 350, | ||||
| 					param: 'searchTime', | ||||
| 					clearable: false, | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 			], | ||||
| 			listQuery: { | ||||
| 				statisticType: 1, | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableData: [], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: {}, | ||||
| 	created() { | ||||
| 		const end = new Date(); | ||||
| 		const start = new Date(); | ||||
| 		this.listQuery.startTime = parseTime(start).substr(0, 10) + ' 00:00:00'; | ||||
| 		this.listQuery.endTime = parseTime(end).substr(0, 10) + ' 23:59:59'; | ||||
| 		this.$nextTick(() => { | ||||
| 			this.$refs.searchBarForm.formInline.searchTime = [ | ||||
| 				this.listQuery.startTime, | ||||
| 				this.listQuery.endTime, | ||||
| 			]; | ||||
| 		}); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 20; | ||||
| 					this.listQuery.statisticType = 1; | ||||
| 					this.listQuery.startTime = val.searchTime ? val.searchTime[0] : null; | ||||
| 					this.listQuery.endTime = val.searchTime ? val.searchTime[1] : null; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| <style lang="scss"></style> | ||||
							
								
								
									
										131
									
								
								src/views/Environmental/Environmental-log.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,131 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2024-11-13 14:01:16 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2025-02-21 14:31:00 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<div> | ||||
| 		<div class="app-container"> | ||||
| 			<!-- 搜索工作栏 --> | ||||
| 			<search-bar | ||||
| 				:formConfigs="formConfig" | ||||
| 				ref="searchBarForm" | ||||
| 				@headBtnClick="buttonClick" /> | ||||
| 			<!-- 列表 --> | ||||
| 			<base-table | ||||
| 				:page="listQuery.pageNo" | ||||
| 				:limit="listQuery.pageSize" | ||||
| 				:table-props="tableProps" | ||||
| 				:table-data="tableData" | ||||
| 				:max-height="tableH" /> | ||||
| 			<pagination | ||||
| 				:page.sync="listQuery.pageNo" | ||||
| 				:limit.sync="listQuery.pageSize" | ||||
| 				:total="listQuery.total" | ||||
| 				@pagination="getDataList" /> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicPage from '@/mixins/basic-page'; | ||||
| import { getCostEnviHisPage } from '@/api/environmental/environmentalLog'; | ||||
| import { parseTime } from '@/filter/code-filter'; | ||||
| import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'recTime', | ||||
| 		label: '记录时间', | ||||
| 		filter: parseTime, | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注', | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'envi1', | ||||
| 		label: '二氧化硫mg/Nm3', | ||||
| 		filter: (val) => (val != null ? Number(val).toFixed(2) : '-'), | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'envi2', | ||||
| 		label: '氮氧化物mg/Nm3', | ||||
| 		filter: (val) => (val != null ? Number(val).toFixed(2) : '-'), | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'envi3', | ||||
| 		label: '粉尘mg/Nm3', | ||||
| 		filter: (val) => (val != null ? Number(val).toFixed(2) : '-'), | ||||
| 	}, | ||||
| ]; | ||||
| export default { | ||||
| 	name: '', | ||||
| 	mixins: [basicPage, tableHeightMixin], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: getCostEnviHisPage, | ||||
| 			}, | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'datePicker', | ||||
| 					label: '时间', | ||||
| 					dateType: 'datetimerange', | ||||
| 					format: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||
| 					rangeSeparator: '-', | ||||
| 					startPlaceholder: '开始时间', | ||||
| 					endPlaceholder: '结束时间', | ||||
| 					width: 350, | ||||
| 					param: 'searchTime', | ||||
| 					clearable: false, | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 			], | ||||
| 			listQuery: { | ||||
| 				statisticType: 1, | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableData: [], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: {}, | ||||
| 	created() { | ||||
| 		const end = new Date(); | ||||
| 		const start = new Date(); | ||||
| 		this.listQuery.startTime = parseTime(start).substr(0, 10) + ' 00:00:00'; | ||||
| 		this.listQuery.endTime = parseTime(end).substr(0, 10) + ' 23:59:59'; | ||||
| 		this.$nextTick(() => { | ||||
| 			this.$refs.searchBarForm.formInline.searchTime = [ | ||||
| 				this.listQuery.startTime, | ||||
| 				this.listQuery.endTime, | ||||
| 			]; | ||||
| 		}); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 20; | ||||
| 					this.listQuery.statisticType = 1; | ||||
| 					this.listQuery.startTime = val.searchTime ? val.searchTime[0] : null; | ||||
| 					this.listQuery.endTime = val.searchTime ? val.searchTime[1] : null; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| <style lang="scss"></style> | ||||
| @@ -1,103 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-03 10:53:43 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-form | ||||
| 		:model="dataForm" | ||||
| 		:rules="dataRule" | ||||
| 		ref="dataForm" | ||||
| 		@keyup.enter.native="dataFormSubmit()" | ||||
| 		label-width="80px"> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="客户编号" prop="code"> | ||||
| 					<el-input v-model="dataForm.code" clearable placeholder="请输入客户编号" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="客户名称" prop="name"> | ||||
| 					<el-input v-model="dataForm.name" clearable placeholder="请输入客户名称" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="联系人" prop="contact"> | ||||
| 					<el-input v-model="dataForm.contact" clearable placeholder="请输入联系人" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="联系电话" prop="telephone"> | ||||
| 					<el-input | ||||
| 						v-model="dataForm.telephone" | ||||
| 						maxlength="11" | ||||
| 						placeholder="请输入联系电话" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-form-item label="地址" prop="address"> | ||||
| 			<el-input | ||||
| 				v-model="dataForm.address" | ||||
| 				placeholder="请输入地址" /> | ||||
| 		</el-form-item> | ||||
| 		<el-form-item label="备注" prop="remark"> | ||||
| 			<el-input | ||||
| 				v-model="dataForm.remark" | ||||
| 				placeholder="请输入备注" /> | ||||
| 		</el-form-item> | ||||
| 	</el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from '../../core/mixins/basic-add'; | ||||
| import { createCustomer, updateCustomer, getCustomer, getCode } from "@/api/base/coreCustomer"; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicAdd], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 			  isGetCode: true, | ||||
|         codeURL: getCode, | ||||
| 				createURL: createCustomer, | ||||
| 				updateURL: updateCustomer, | ||||
| 				infoURL: getCustomer | ||||
| 			}, | ||||
| 			dataForm: { | ||||
|         id: undefined, | ||||
|         code: undefined, | ||||
|         name: undefined, | ||||
|         telephone: undefined, | ||||
| 				contact: undefined, | ||||
| 				address: undefined, | ||||
|         remark: undefined | ||||
| 			}, | ||||
| 			dataRule: { | ||||
|         code: [{ required: true, message: "专业编码不能为空", trigger: "blur" }], | ||||
|         name: [{ required: true, message: "专业名称不能为空", trigger: "blur" }], | ||||
| 				contact: [{ required: true, message: "联系人不能为空", trigger: "blur" }], | ||||
| 				telephone: [ | ||||
| 					{ required: false, trigger: "blur", message: "手机号不能为空" }, | ||||
|           { | ||||
|             validator: function (rule, value, callback) { | ||||
|               if (value) { | ||||
| 								if (/^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/.test(value) === false) { | ||||
| 									callback(new Error("手机号格式错误")); | ||||
| 								} | ||||
| 							} else { | ||||
|                 callback(); | ||||
|               } | ||||
|             }, trigger: "blur" | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() {}, | ||||
| 	methods: {} | ||||
| }; | ||||
| </script> | ||||
| @@ -1,107 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-02 14:16:30 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-form | ||||
| 		:model="dataForm" | ||||
| 		:rules="dataRule" | ||||
| 		ref="dataForm" | ||||
| 		@keyup.enter.native="dataFormSubmit()" | ||||
| 		label-width="80px"> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="部门名称" prop="name"> | ||||
| 					<el-input v-model="dataForm.name" clearable placeholder="请输入部门名称" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="部门编码" prop="code"> | ||||
| 					<el-input v-model="dataForm.code" clearable placeholder="请输入部门编码" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="上级部门" prop="parentId"> | ||||
| 					<treeselect v-model="dataForm.parentId" :options="menuOptions" :normalizer="normalizer" :show-count="true" placeholder="选择上级部门"/> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="备注" prop="remark"> | ||||
| 					<el-input | ||||
| 						v-model="dataForm.remark" | ||||
| 						placeholder="请输入备注" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 	</el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from '../../core/mixins/basic-add'; | ||||
| import { createCoreDepartment, updateCoreDepartment, getCoreDepartment, getCode, getCoreDepartmentList } from "@/api/base/coreDepartment"; | ||||
| import Treeselect from "@riophae/vue-treeselect"; | ||||
| import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicAdd], | ||||
| 	components: { Treeselect }, | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 			  isGetCode: true, | ||||
|         codeURL: getCode, | ||||
| 				createURL: createCoreDepartment, | ||||
| 				updateURL: updateCoreDepartment, | ||||
| 				infoURL: getCoreDepartment, | ||||
| 			}, | ||||
| 			dataForm: { | ||||
|         id: undefined, | ||||
|         code: undefined, | ||||
|         name: undefined, | ||||
|         parentId: undefined, | ||||
|         remark: undefined, | ||||
| 			}, | ||||
| 			departmentlList: [], | ||||
| 			menuOptions: [], | ||||
| 			dataRule: { | ||||
|         code: [{ required: true, message: "部门编码不能为空", trigger: "blur" }], | ||||
|         name: [{ required: true, message: "部门名称不能为空", trigger: "blur" }], | ||||
|       } | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() { | ||||
| 		this.getDict() | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		async getDict() { | ||||
| 			// 部门列表 | ||||
| 			this.menuOptions = [] | ||||
| 			const res = await getCoreDepartmentList(); | ||||
| 			this.departmentlList = res.data.map(item => { | ||||
| 				item.parentId = item.parentId ? item.parentId : 0 | ||||
| 				return item | ||||
| 			}); | ||||
| 			const menu = { id: 0, name: '总部门', children: [] }; | ||||
| 			menu.children = this.handleTree(this.departmentlList, "id") | ||||
| 			this.menuOptions.push(menu) | ||||
| 			console.log('你好', this.menuOptions) | ||||
| 		}, | ||||
| 		/** 转换菜单数据结构 */ | ||||
|     normalizer(node) { | ||||
|       if (node.children && !node.children.length) { | ||||
|         delete node.children; | ||||
|       } | ||||
|       return { | ||||
|         id: node.id, | ||||
|         label: node.name, | ||||
|         children: node.children | ||||
|       }; | ||||
|     } | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,168 +0,0 @@ | ||||
| <template> | ||||
| 	<div class="app-container"> | ||||
| 		<search-bar | ||||
| 			:formConfigs="formConfig" | ||||
| 			ref="searchBarForm" | ||||
| 			@headBtnClick="buttonClick" /> | ||||
| 		<base-table | ||||
| 			v-loading="dataListLoading" | ||||
| 			:table-props="tableProps" | ||||
| 			:page="listQuery.pageNo" | ||||
| 			:limit="listQuery.pageSize" | ||||
| 			:table-data="tableData"> | ||||
| 			<method-btn | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				:width="120" | ||||
| 				label="操作" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleClick" /> | ||||
| 		</base-table> | ||||
| 		<pagination | ||||
| 			:limit.sync="listQuery.pageSize" | ||||
| 			:page.sync="listQuery.pageNo" | ||||
| 			:total="listQuery.total" | ||||
| 			@pagination="getDataList" /> | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="addOrEditTitle" | ||||
| 			:dialogVisible="addOrUpdateVisible" | ||||
| 			@cancel="handleCancel" | ||||
| 			@confirm="handleConfirm" | ||||
| 			:before-close="handleCancel" | ||||
| 			width="50%"> | ||||
| 			<add-or-update | ||||
| 				ref="addOrUpdate" | ||||
| 				@refreshDataList="successSubmit"></add-or-update> | ||||
| 		</base-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from './add-or-updata'; | ||||
| import basicPage from '../../core/mixins/basic-page'; | ||||
| import { parseTime } from '../../core/mixins/code-filter'; | ||||
| import { | ||||
| 	getCoreDepartmentPage, | ||||
| 	deleteCoreDepartment | ||||
| } from '@/api/base/coreDepartment'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'createTime', | ||||
| 		label: '添加时间', | ||||
| 		filter: parseTime | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'name', | ||||
| 		label: '部门名称' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'code', | ||||
| 		label: '部门编码' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'parentName', | ||||
| 		label: '上级部门' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注' | ||||
| 	}, | ||||
| ]; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicPage], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: getCoreDepartmentPage, | ||||
| 				deleteURL: deleteCoreDepartment | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi(`base:core-department:update`) | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '编辑', | ||||
| 					  } | ||||
| 					: undefined, | ||||
|           this.$auth.hasPermi(`base:core-department:delete`) | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| 							btnName: '删除', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 			].filter((v)=>v), | ||||
| 			tableData: [], | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'input', | ||||
| 					label: '部门名', | ||||
| 					placeholder: '部门名', | ||||
| 					param: 'name', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('base:core-department:create') ? 'button' : '', | ||||
| 					btnName: '新增', | ||||
| 					name: 'add', | ||||
| 					color: 'success', | ||||
| 					plain: true | ||||
| 				}, | ||||
| 			], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: { | ||||
| 		AddOrUpdate, | ||||
| 	}, | ||||
| 	created() {}, | ||||
| 	methods: { | ||||
| 		// 获取数据列表 | ||||
|     // getDataList() { | ||||
|     //   this.dataListLoading = true; | ||||
|     //   this.urlOptions.getDataListURL(this.listQuery).then(response => { | ||||
|     //     this.tableData = response.data.list; | ||||
|     //     this.listQuery.total = response.data.total; | ||||
|     //     this.dataListLoading = false; | ||||
|     //   }); | ||||
|     // }, | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 10; | ||||
| 					this.listQuery.name = val.name ? val.name : undefined; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'reset': | ||||
| 					this.$refs.searchBarForm.resetForm(); | ||||
| 					this.listQuery = { | ||||
| 						pageSize: 10, | ||||
| 						pageNo: 1, | ||||
| 						total: 1, | ||||
| 					}; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'add': | ||||
| 					this.addOrEditTitle = '新增'; | ||||
| 					this.addOrUpdateVisible = true; | ||||
| 					this.addOrUpdateHandle(); | ||||
| 					break; | ||||
| 				case 'export': | ||||
| 					this.handleExport(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,360 +0,0 @@ | ||||
| <template> | ||||
| 	<div class="app-container"> | ||||
| 		<!-- 搜索工作栏 --> | ||||
| 		<SearchBar | ||||
| 			:formConfigs="searchBarFormConfig" | ||||
| 			ref="search-bar" | ||||
| 			@headBtnClick="handleSearchBarBtnClick" /> | ||||
|  | ||||
| 		<!-- 列表 --> | ||||
| 		<base-table | ||||
| 			:table-props="tableProps" | ||||
| 			:page="queryParams.pageNo" | ||||
| 			:limit="queryParams.pageSize" | ||||
| 			:table-data="list" | ||||
| 			@emitFun="handleEmitFun"> | ||||
| 			<method-btn | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				label="操作" | ||||
| 				:width="120" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleTableBtnClick" /> | ||||
| 		</base-table> | ||||
|  | ||||
| 		<!-- 分页组件 --> | ||||
| 		<pagination | ||||
| 			v-show="total > 0" | ||||
| 			:total="total" | ||||
| 			:page.sync="queryParams.pageNo" | ||||
| 			:limit.sync="queryParams.pageSize" | ||||
| 			@pagination="getList" /> | ||||
|  | ||||
| 		<!-- 对话框(添加 / 修改) --> | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="title" | ||||
| 			:dialogVisible="open" | ||||
| 			@close="cancel" | ||||
| 			@cancel="cancel" | ||||
| 			@confirm="submitForm"> | ||||
| 			<DialogForm | ||||
| 				v-if="open" | ||||
| 				ref="form" | ||||
| 				v-model="form" | ||||
| 				:has-files="false" | ||||
| 				:rows="rows" /> | ||||
| 		</base-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import moment from 'moment'; | ||||
| import basicPageMixin from '@/mixins/lb/basicPageMixin'; | ||||
|  | ||||
| // import { getAccessToken } from '@/utils/auth'; | ||||
|  | ||||
| export default { | ||||
| 	name: 'EquipmentLineBind', | ||||
| 	components: {}, | ||||
| 	mixins: [basicPageMixin], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			basePath: '/base/core-equipment-bind-section', | ||||
| 			searchBarKeys: ['equipmentName', 'productionLineId'], | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi('base:core-equipment-bind-section:update') | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '修改', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 				this.$auth.hasPermi('base:core-equipment-bind-section:delete') | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| 							btnName: '删除', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 			].filter((v) => v), | ||||
| 			tableProps: [ | ||||
| 				{ | ||||
| 					prop: 'createTime', | ||||
| 					label: '添加时间', | ||||
| 					fixed: true, | ||||
| 					width: 180, | ||||
| 					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | ||||
| 				}, | ||||
| 				{ prop: 'productionLineName', label: '产线名称' }, | ||||
| 				{ prop: 'workshopSectionName', label: '工段名称' }, | ||||
| 				{ prop: 'equipmentName', label: '设备名称' }, | ||||
| 				{ prop: 'sort', label: '工段中排序' }, | ||||
| 				{ | ||||
| 					prop: 'lineDataType', | ||||
| 					label: '产线统计类型', | ||||
| 					filter: (val) => | ||||
| 						val != null ? ['无类型', '进片数量统计', '出片数量统计'][val] : '', | ||||
| 				}, | ||||
| 				{ | ||||
| 					prop: 'sectionDataType', | ||||
| 					label: '工段统计类型', | ||||
| 					filter: (val) => | ||||
| 						val != null ? ['无类型', '进片数量统计', '出片数量统计'][val] : '', | ||||
| 				}, | ||||
| 				// { prop: 'remark', label: '备注' }, | ||||
| 			], | ||||
| 			searchBarFormConfig: [ | ||||
| 				{ | ||||
| 					type: 'select', | ||||
| 					label: '产线', | ||||
| 					placeholder: '请选择产线', | ||||
| 					param: 'productionLineId', | ||||
| 					selectOptions: [], | ||||
| 					filterable: true, | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'input', | ||||
| 					label: '设备名', | ||||
| 					placeholder: '请输入设备名称', | ||||
| 					param: 'equipmentName', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('base:core-equipment-bind-section:create') | ||||
| 						? 'button' | ||||
| 						: '', | ||||
| 					btnName: '新增', | ||||
| 					name: 'add', | ||||
| 					plain: true, | ||||
| 					color: 'success', | ||||
| 				}, | ||||
| 				// { | ||||
| 				// 	type: this.$auth.hasPermi('base:quality-inspection-type:export') | ||||
| 				// 		? 'button' | ||||
| 				// 		: '', | ||||
| 				// 	btnName: '导出', | ||||
| 				// 	name: 'export', | ||||
| 				// 	color: 'warning', | ||||
| 				// }, | ||||
| 			], | ||||
| 			rows: [ | ||||
| 				[ | ||||
| 					{ | ||||
| 						select: true, | ||||
| 						label: '产线', | ||||
| 						prop: 'productionLineId', | ||||
| 						rules: [{ required: true, message: '不能为空', trigger: 'blur' }], | ||||
| 						url: '/base/core-production-line/listAll', | ||||
| 						bind: { clearable: true, filterable: true }, | ||||
| 						// watch: 'workshopSectionId' | ||||
| 					}, | ||||
| 					{ | ||||
| 						select: true, | ||||
| 						label: '工段', | ||||
| 						prop: 'workshopSectionId', | ||||
| 						depends: 'productionLineId', | ||||
| 						rules: [{ required: true, message: '不能为空', trigger: 'blur' }], | ||||
| 						bind: { clearable: true, filterable: true }, | ||||
| 						url: '/base/core-workshop-section/listByParentId', | ||||
| 					}, | ||||
| 				], | ||||
| 				[ | ||||
| 					{ | ||||
| 						select: true, | ||||
| 						label: '设备', | ||||
| 						prop: 'equipmentId', | ||||
| 						rules: [{ required: true, message: '不能为空', trigger: 'blur' }], | ||||
| 						bind: { clearable: true, filterable: true }, | ||||
| 						url: '/base/core-equipment/listAll', | ||||
| 					}, | ||||
| 					{ | ||||
| 						input: true, | ||||
| 						label: '工段排序', | ||||
| 						prop: 'sort', | ||||
| 					}, | ||||
| 				], | ||||
| 				[ | ||||
| 					{ | ||||
| 						select: true, | ||||
| 						options: [ | ||||
| 							{ label: '无类型', value: 0 }, | ||||
| 							{ label: '进片数量统计', value: 1 }, | ||||
| 							{ label: '出片数量统计', value: 2 }, | ||||
| 						], | ||||
| 						label: '产线统计类型', | ||||
| 						prop: 'lineDataType', | ||||
| 					}, | ||||
| 					{ | ||||
| 						select: true, | ||||
| 						options: [ | ||||
| 							{ label: '无类型', value: 0 }, | ||||
| 							{ label: '进片数量统计', value: 1 }, | ||||
| 							{ label: '出片数量统计', value: 2 }, | ||||
| 						], | ||||
| 						label: '工段统计类型', | ||||
| 						prop: 'sectionDataType', | ||||
| 					}, | ||||
| 				], | ||||
| 			], | ||||
| 			// 是否显示弹出层 | ||||
| 			open: false, | ||||
| 			// 查询参数 | ||||
| 			queryParams: { | ||||
| 				pageNo: 1, | ||||
| 				pageSize: 10, | ||||
| 				equipmentName: null, | ||||
| 				productionLineId: null, | ||||
| 			}, | ||||
| 			// 表单参数 | ||||
| 			form: {}, | ||||
| 		}; | ||||
| 	}, | ||||
| 	created() { | ||||
| 		this.initSearchOptions(); | ||||
| 		this.getList(); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		/** 初始化查询条件 */ | ||||
| 		async initSearchOptions() { | ||||
| 			this.http('/base/core-production-line/listAll', 'get').then( | ||||
| 				({ code, data }) => { | ||||
| 					if (code == 0) { | ||||
| 						this.searchBarFormConfig[0].selectOptions = data.map((item) => { | ||||
| 							return { | ||||
| 								name: item.name, | ||||
| 								id: item.id, | ||||
| 							}; | ||||
| 						}); | ||||
| 					} | ||||
| 				} | ||||
| 			); | ||||
| 		}, | ||||
| 		/** 查询列表 */ | ||||
| 		getList() { | ||||
| 			this.loading = true; | ||||
| 			// 执行查询 | ||||
| 			this.recv(this.queryParams).then(({ code, data }) => { | ||||
| 				// if (code == 0) { | ||||
| 				this.list = data.list; | ||||
| 				this.total = data.total; | ||||
| 				this.loading = false; | ||||
| 				// } | ||||
| 			}); | ||||
| 			// .catch(err => { | ||||
| 			// 	this.list = []; | ||||
| 			// 	this.total = 0; | ||||
| 			// 	this.loading = false; | ||||
| 			// }) | ||||
| 		}, | ||||
| 		/** 取消按钮 */ | ||||
| 		cancel() { | ||||
| 			this.open = false; | ||||
| 			this.reset(); | ||||
| 		}, | ||||
| 		/** 表单重置 */ | ||||
| 		reset() { | ||||
| 			this.form = { | ||||
| 				id: undefined, | ||||
| 				productionLineId: undefined, | ||||
| 				// 工段 | ||||
| 				workshopSectionId: undefined, | ||||
| 				// 设备 | ||||
| 				equipmentId: undefined, | ||||
| 				// 工段排序 | ||||
| 				sort: undefined, | ||||
| 				// 产线统计类型 | ||||
| 				lineDataType: undefined, | ||||
| 				// 工段统计类型 | ||||
| 				sectionDataType: undefined, | ||||
| 			}; | ||||
| 			this.resetForm('form'); | ||||
| 		}, | ||||
| 		/** 搜索按钮操作 */ | ||||
| 		handleQuery() { | ||||
| 			this.queryParams.pageNo = 1; | ||||
| 			this.getList(); | ||||
| 		}, | ||||
| 		/** 重置按钮操作 */ | ||||
| 		resetQuery() { | ||||
| 			this.resetForm('queryForm'); | ||||
| 			this.handleQuery(); | ||||
| 		}, | ||||
| 		/** 新增按钮操作 */ | ||||
| 		handleAdd() { | ||||
| 			this.reset(); | ||||
| 			this.open = true; | ||||
| 			this.title = '添加设备工段绑定'; | ||||
| 		}, | ||||
| 		/** 修改按钮操作 */ | ||||
| 		handleUpdate(row) { | ||||
| 			this.reset(); | ||||
| 			const id = row.id; | ||||
| 			this.info({ id }).then(({ code, data }) => { | ||||
| 				this.form = data; | ||||
| 				this.open = true; | ||||
| 				this.title = '修改设备工段绑定'; | ||||
| 			}); | ||||
| 		}, | ||||
| 		/** 提交按钮 */ | ||||
| 		submitForm() { | ||||
| 			this.$refs['form'].validate((valid) => { | ||||
| 				if (!valid) { | ||||
| 					return; | ||||
| 				} | ||||
| 				// 修改的提交 | ||||
| 				if (this.form.id != null) { | ||||
| 					this.put(this.form).then(({ code, data }) => { | ||||
| 						this.$modal.msgSuccess('修改成功'); | ||||
| 						this.open = false; | ||||
| 						this.getList(); | ||||
| 					}); | ||||
| 					return; | ||||
| 				} | ||||
| 				this.post(this.form).then(({ code, data }) => { | ||||
| 					this.$modal.msgSuccess('修改成功'); | ||||
| 					this.open = false; | ||||
| 					this.getList(); | ||||
| 				}); | ||||
| 			}); | ||||
| 		}, | ||||
| 		/** 删除按钮操作 */ | ||||
| 		handleDelete(row) { | ||||
| 			const id = row.id; | ||||
| 			this.$modal | ||||
| 				.confirm('是否确认删除绑定"' + row.name + '"?') | ||||
| 				.then(function () { | ||||
| 					return deleteEquipmentType(id); | ||||
| 				}) | ||||
| 				.then(() => { | ||||
| 					this.getList(); | ||||
| 					this.$modal.msgSuccess('删除成功'); | ||||
| 				}) | ||||
| 				.catch(() => {}); | ||||
| 		}, | ||||
| 		/** 导出按钮操作 */ | ||||
| 		handleExport() { | ||||
| 			// 处理查询参数 | ||||
| 			let params = { ...this.queryParams }; | ||||
| 			params.pageNo = undefined; | ||||
| 			params.pageSize = undefined; | ||||
| 			this.$modal | ||||
| 				.confirm('是否确认导出所有设备工段绑定?') | ||||
| 				.then(() => { | ||||
| 					this.exportLoading = true; | ||||
| 					// return exportEquipmentTypeExcel(params); | ||||
| 				}) | ||||
| 				.then((response) => { | ||||
| 					this.$download.excel(response, '设备工段绑定.xls'); | ||||
| 					this.exportLoading = false; | ||||
| 				}) | ||||
| 				.catch(() => {}); | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,77 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-02 14:24:12 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-form | ||||
| 		:model="dataForm" | ||||
| 		:rules="dataRule" | ||||
| 		ref="dataForm" | ||||
| 		@keyup.enter.native="dataFormSubmit()" | ||||
| 		label-width="80px"> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="专业编号" prop="code"> | ||||
| 					<el-input v-model="dataForm.code" clearable placeholder="请输入专业编号" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="专业名称" prop="name"> | ||||
| 					<el-input v-model="dataForm.name" clearable placeholder="请输入专业名称" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="缩写" prop="abbreviation"> | ||||
| 					<el-input v-model="dataForm.abbreviation" clearable placeholder="请输入缩写" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="备注" prop="remark"> | ||||
| 					<el-input | ||||
| 						v-model="dataForm.remark" | ||||
| 						placeholder="请输入备注" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 	</el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from '../../core/mixins/basic-add'; | ||||
| import { createCoreMajor, updateCoreMajor, getCoreMajor, getCode } from "@/api/base/coreMajor"; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicAdd], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 			  isGetCode: true, | ||||
|         codeURL: getCode, | ||||
| 				createURL: createCoreMajor, | ||||
| 				updateURL: updateCoreMajor, | ||||
| 				infoURL: getCoreMajor, | ||||
| 			}, | ||||
| 			dataForm: { | ||||
|         id: undefined, | ||||
|         code: undefined, | ||||
|         name: undefined, | ||||
|         abbreviation: undefined, | ||||
|         remark: undefined, | ||||
| 			}, | ||||
| 			departmentlList: [], | ||||
| 			menuOptions: [], | ||||
| 			dataRule: { | ||||
|         code: [{ required: true, message: "专业编码不能为空", trigger: "blur" }], | ||||
|         name: [{ required: true, message: "专业名称不能为空", trigger: "blur" }] | ||||
|       } | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() {}, | ||||
| 	methods: {} | ||||
| }; | ||||
| </script> | ||||
| @@ -1,168 +0,0 @@ | ||||
| <template> | ||||
| 	<div class="app-container"> | ||||
| 		<search-bar | ||||
| 			:formConfigs="formConfig" | ||||
| 			ref="searchBarForm" | ||||
| 			@headBtnClick="buttonClick" /> | ||||
| 		<base-table | ||||
| 			v-loading="dataListLoading" | ||||
| 			:table-props="tableProps" | ||||
| 			:page="listQuery.pageNo" | ||||
| 			:limit="listQuery.pageSize" | ||||
| 			:table-data="tableData"> | ||||
| 			<method-btn | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				:width="120" | ||||
| 				label="操作" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleClick" /> | ||||
| 		</base-table> | ||||
| 		<pagination | ||||
| 			:limit.sync="listQuery.pageSize" | ||||
| 			:page.sync="listQuery.pageNo" | ||||
| 			:total="listQuery.total" | ||||
| 			@pagination="getDataList" /> | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="addOrEditTitle" | ||||
| 			:dialogVisible="addOrUpdateVisible" | ||||
| 			@cancel="handleCancel" | ||||
| 			@confirm="handleConfirm" | ||||
| 			:before-close="handleCancel" | ||||
| 			width="50%"> | ||||
| 			<add-or-update | ||||
| 				ref="addOrUpdate" | ||||
| 				@refreshDataList="successSubmit"></add-or-update> | ||||
| 		</base-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from './add-or-updata'; | ||||
| import basicPage from '../../core/mixins/basic-page'; | ||||
| import { parseTime } from '../../core/mixins/code-filter'; | ||||
| import { | ||||
| 	getCoreMajorPage, | ||||
| 	deleteCoreMajor | ||||
| } from '@/api/base/coreMajor'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'createTime', | ||||
| 		label: '添加时间', | ||||
| 		filter: parseTime | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'code', | ||||
| 		label: '专业编码' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'name', | ||||
| 		label: '专业名称' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'abbreviation', | ||||
| 		label: '缩写' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注' | ||||
| 	}, | ||||
| ]; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicPage], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: getCoreMajorPage, | ||||
| 				deleteURL: deleteCoreMajor | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi(`base:core-major:update`) | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '编辑', | ||||
| 					  } | ||||
| 					: undefined, | ||||
|           this.$auth.hasPermi(`base:core-major:delete`) | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| 							btnName: '删除', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 			].filter((v)=>v), | ||||
| 			tableData: [], | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'input', | ||||
| 					label: '名称', | ||||
| 					placeholder: '专业', | ||||
| 					param: 'name', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('base:core-major:create') ? 'button' : '', | ||||
| 					btnName: '新增', | ||||
| 					name: 'add', | ||||
| 					color: 'success', | ||||
| 					plain: true | ||||
| 				}, | ||||
| 			], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: { | ||||
| 		AddOrUpdate, | ||||
| 	}, | ||||
| 	created() {}, | ||||
| 	methods: { | ||||
| 		// 获取数据列表 | ||||
|     // getDataList() { | ||||
|     //   this.dataListLoading = true; | ||||
|     //   this.urlOptions.getDataListURL(this.listQuery).then(response => { | ||||
|     //     this.tableData = response.data.list; | ||||
|     //     this.listQuery.total = response.data.total; | ||||
|     //     this.dataListLoading = false; | ||||
|     //   }); | ||||
|     // }, | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 10; | ||||
| 					this.listQuery.name = val.name ? val.name : undefined; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'reset': | ||||
| 					this.$refs.searchBarForm.resetForm(); | ||||
| 					this.listQuery = { | ||||
| 						pageSize: 10, | ||||
| 						pageNo: 1, | ||||
| 						total: 1, | ||||
| 					}; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'add': | ||||
| 					this.addOrEditTitle = '新增'; | ||||
| 					this.addOrUpdateVisible = true; | ||||
| 					this.addOrUpdateHandle(); | ||||
| 					break; | ||||
| 				case 'export': | ||||
| 					this.handleExport(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,103 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-03 11:00:47 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-form | ||||
| 		:model="dataForm" | ||||
| 		:rules="dataRule" | ||||
| 		ref="dataForm" | ||||
| 		@keyup.enter.native="dataFormSubmit()" | ||||
| 		label-width="100px"> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="供应商编号" prop="code"> | ||||
| 					<el-input v-model="dataForm.code" clearable placeholder="请输入供应商编号" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="供应商名称" prop="name"> | ||||
| 					<el-input v-model="dataForm.name" clearable placeholder="请输入供应商名称" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="联系人" prop="contact"> | ||||
| 					<el-input v-model="dataForm.contact" clearable placeholder="请输入联系人" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="联系电话" prop="telephone"> | ||||
| 					<el-input | ||||
| 						v-model="dataForm.telephone" | ||||
| 						maxlength="11" | ||||
| 						placeholder="请输入联系电话" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-form-item label="地址" prop="address"> | ||||
| 			<el-input | ||||
| 				v-model="dataForm.address" | ||||
| 				placeholder="请输入地址" /> | ||||
| 		</el-form-item> | ||||
| 		<el-form-item label="备注" prop="remark"> | ||||
| 			<el-input | ||||
| 				v-model="dataForm.remark" | ||||
| 				placeholder="请输入备注" /> | ||||
| 		</el-form-item> | ||||
| 	</el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from '../../core/mixins/basic-add'; | ||||
| import { createCoreSupplier, updateCoreSupplier, getCoreSupplier, getCode } from "@/api/base/coreSupplier"; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicAdd], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 			  isGetCode: true, | ||||
|         codeURL: getCode, | ||||
| 				createURL: createCoreSupplier, | ||||
| 				updateURL: updateCoreSupplier, | ||||
| 				infoURL: getCoreSupplier | ||||
| 			}, | ||||
| 			dataForm: { | ||||
|         id: undefined, | ||||
|         code: undefined, | ||||
|         name: undefined, | ||||
|         telephone: undefined, | ||||
| 				contact: undefined, | ||||
| 				address: undefined, | ||||
|         remark: undefined | ||||
| 			}, | ||||
| 			dataRule: { | ||||
|         code: [{ required: true, message: "专业编码不能为空", trigger: "blur" }], | ||||
|         name: [{ required: true, message: "专业名称不能为空", trigger: "blur" }], | ||||
| 				contact: [{ required: true, message: "联系人不能为空", trigger: "blur" }], | ||||
| 				telephone: [ | ||||
| 					{ required: false, trigger: "blur", message: "手机号不能为空" }, | ||||
|           { | ||||
|             validator: function (rule, value, callback) { | ||||
| 							if (value) { | ||||
| 								if (/^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/.test(value) === false) { | ||||
| 									callback(new Error("手机号格式错误")); | ||||
| 								} | ||||
| 							} else { | ||||
|                 callback(); | ||||
|               } | ||||
|             }, trigger: "blur" | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() {}, | ||||
| 	methods: {} | ||||
| }; | ||||
| </script> | ||||
| @@ -1,176 +0,0 @@ | ||||
| <template> | ||||
| 	<div class="app-container"> | ||||
| 		<search-bar | ||||
| 			:formConfigs="formConfig" | ||||
| 			ref="searchBarForm" | ||||
| 			@headBtnClick="buttonClick" /> | ||||
| 		<base-table | ||||
| 			v-loading="dataListLoading" | ||||
| 			:table-props="tableProps" | ||||
| 			:page="listQuery.pageNo" | ||||
| 			:limit="listQuery.pageSize" | ||||
| 			:table-data="tableData"> | ||||
| 			<method-btn | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				:width="120" | ||||
| 				label="操作" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleClick" /> | ||||
| 		</base-table> | ||||
| 		<pagination | ||||
| 			:limit.sync="listQuery.pageSize" | ||||
| 			:page.sync="listQuery.pageNo" | ||||
| 			:total="listQuery.total" | ||||
| 			@pagination="getDataList" /> | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="addOrEditTitle" | ||||
| 			:dialogVisible="addOrUpdateVisible" | ||||
| 			@cancel="handleCancel" | ||||
| 			@confirm="handleConfirm" | ||||
| 			:before-close="handleCancel" | ||||
| 			width="50%"> | ||||
| 			<add-or-update | ||||
| 				ref="addOrUpdate" | ||||
| 				@refreshDataList="successSubmit"></add-or-update> | ||||
| 		</base-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from './add-or-updata'; | ||||
| import basicPage from '../../core/mixins/basic-page'; | ||||
| import { parseTime } from '../../core/mixins/code-filter'; | ||||
| import { | ||||
| 	getCoreSupplierPage, | ||||
| 	deleteCoreSupplier | ||||
| } from '@/api/base/coreSupplier'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'createTime', | ||||
| 		label: '添加时间', | ||||
| 		filter: parseTime | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'code', | ||||
| 		label: '供应商编码' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'name', | ||||
| 		label: '供应商名称' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'contact', | ||||
| 		label: '联系人' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'telephone', | ||||
| 		label: '联系电话' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'address', | ||||
| 		label: '地址' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注' | ||||
| 	}, | ||||
| ]; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicPage], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: getCoreSupplierPage, | ||||
| 				deleteURL: deleteCoreSupplier | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi(`base:core-supplier:update`) | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '编辑', | ||||
| 					  } | ||||
| 					: undefined, | ||||
|           this.$auth.hasPermi(`base:core-supplier:delete`) | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| 							btnName: '删除', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 			].filter((v)=>v), | ||||
| 			tableData: [], | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'input', | ||||
| 					label: '关键字', | ||||
| 					placeholder: '供应商名称', | ||||
| 					param: 'name', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('base:core-supplier:create') ? 'button' : '', | ||||
| 					btnName: '新增', | ||||
| 					name: 'add', | ||||
| 					color: 'success', | ||||
| 					plain: true | ||||
| 				}, | ||||
| 			], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: { | ||||
| 		AddOrUpdate, | ||||
| 	}, | ||||
| 	created() {}, | ||||
| 	methods: { | ||||
| 		// 获取数据列表 | ||||
|     // getDataList() { | ||||
|     //   this.dataListLoading = true; | ||||
|     //   this.urlOptions.getDataListURL(this.listQuery).then(response => { | ||||
|     //     this.tableData = response.data.list; | ||||
|     //     this.listQuery.total = response.data.total; | ||||
|     //     this.dataListLoading = false; | ||||
|     //   }); | ||||
|     // }, | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 10; | ||||
| 					this.listQuery.name = val.name ? val.name : undefined; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'reset': | ||||
| 					this.$refs.searchBarForm.resetForm(); | ||||
| 					this.listQuery = { | ||||
| 						pageSize: 10, | ||||
| 						pageNo: 1, | ||||
| 						total: 1, | ||||
| 					}; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'add': | ||||
| 					this.addOrEditTitle = '新增'; | ||||
| 					this.addOrUpdateVisible = true; | ||||
| 					this.addOrUpdateHandle(); | ||||
| 					break; | ||||
| 				case 'export': | ||||
| 					this.handleExport(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,339 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2021-11-18 14:16:25 | ||||
|  * @LastEditors: DY | ||||
|  * @LastEditTime: 2023-11-03 11:01:24 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<el-form | ||||
| 		:model="dataForm" | ||||
| 		:rules="dataRule" | ||||
| 		ref="dataForm" | ||||
| 		@keyup.enter.native="dataFormSubmit()" | ||||
| 		label-width="80px"> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="员工姓名" prop="name"> | ||||
| 					<el-input v-model="dataForm.name" clearable placeholder="请输入员工姓名" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="员工照片" prop="fileUrl"> | ||||
| 					<imageUpload v-model="dataForm.fileUrl" :limit="1"/> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="员工号" prop="code"> | ||||
| 					<el-input v-model="dataForm.code" clearable placeholder="请输入员工号" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="性别" prop="sex"> | ||||
| 					<el-select | ||||
| 						v-model="dataForm.sex" | ||||
| 						filterable | ||||
| 						placeholder="请选择性别"> | ||||
| 						<el-option | ||||
| 							v-for="dict in sexList" | ||||
| 							:key="dict.id" | ||||
| 							:label="dict.name" | ||||
| 							:value="dict.id" /> | ||||
| 					</el-select> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="电话" prop="telephone"> | ||||
| 					<el-input v-model="dataForm.telephone" maxlength="11" clearable placeholder="请输入电话" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="部门" prop="departmentId"> | ||||
| 					<treeselect v-model="dataForm.departmentId" :options="menuOptions" :normalizer="normalizer" :show-count="true" placeholder="选择部门"/> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="职位" prop="position"> | ||||
| 					<el-input v-model="dataForm.position" clearable placeholder="请输入职位" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="专业" prop="majorIdList"> | ||||
| 					<el-select | ||||
| 						v-model="majorIdList" | ||||
| 						filterable | ||||
| 						multiple | ||||
| 						placeholder="请选择专业"> | ||||
| 						<el-option | ||||
| 							v-for="dict in majorList" | ||||
| 							:key="dict.id" | ||||
| 							:label="dict.name" | ||||
| 							:value="dict.id" /> | ||||
| 					</el-select> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="入职时间" prop="entryTime"> | ||||
| 					<el-date-picker | ||||
| 						v-model="dataForm.entryTime" | ||||
| 						type="date" | ||||
| 						format='yyyy-MM-dd' | ||||
|          		value-format='timestamp' | ||||
| 						placeholder="选择入职时间" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="状态" prop="status"> | ||||
| 					<el-radio-group v-model="dataForm.status" @input="setOut"> | ||||
| 						<el-radio :label="1">在职</el-radio> | ||||
| 						<el-radio :label="2">离职</el-radio> | ||||
| 					</el-radio-group> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="离职时间" prop="outTime"> | ||||
| 					<el-date-picker | ||||
| 						v-model="dataForm.outTime" | ||||
| 						type="date" | ||||
| 						:disabled="isOut" | ||||
| 						format='yyyy-MM-dd' | ||||
|          		value-format='timestamp' | ||||
| 						placeholder="选择离职时间" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-row :gutter="20"> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="教育程度" prop="education"> | ||||
| 					<el-select | ||||
| 						v-model="dataForm.education" | ||||
| 						filterable | ||||
| 						placeholder="请选择教育程度"> | ||||
| 						<el-option | ||||
| 							v-for="dict in educationList" | ||||
| 							:key="dict.id" | ||||
| 							:label="dict.name" | ||||
| 							:value="dict.id" /> | ||||
| 					</el-select> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 			<el-col :span="12"> | ||||
| 				<el-form-item label="劳务成本(元/班次)" prop="workCost"> | ||||
| 					<el-input type="number" v-model.number="dataForm.workCost" clearable placeholder="请输入劳务成本" /> | ||||
| 				</el-form-item> | ||||
| 			</el-col> | ||||
| 		</el-row> | ||||
| 		<el-form-item label="备注" prop="remark"> | ||||
| 			<el-input | ||||
| 				v-model="dataForm.remark" | ||||
| 				placeholder="请输入备注" /> | ||||
| 		</el-form-item> | ||||
| 	</el-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import basicAdd from '../../core/mixins/basic-add'; | ||||
| import { createCoreWorker, updateCoreWorker, getCoreWorker, getCode, createWoBindMa, getWoBindMaPage, deleteWoBindMa } from "@/api/base/coreWorker"; | ||||
| import { getCoreDepartmentList } from "@/api/base/coreDepartment"; | ||||
| import { getCoreMajorList } from "@/api/base/coreMajor"; | ||||
| import ImageUpload from '@/components/ImageUpload'; | ||||
| import Treeselect from "@riophae/vue-treeselect"; | ||||
| import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicAdd], | ||||
| 	components: { | ||||
|     ImageUpload, | ||||
| 		Treeselect | ||||
|   }, | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 			  isGetCode: true, | ||||
|         codeURL: getCode, | ||||
| 				createURL: createCoreWorker, | ||||
| 				updateURL: updateCoreWorker, | ||||
| 				infoURL: getCoreWorker, | ||||
| 			}, | ||||
| 			sexList: [ | ||||
| 				{ id: 0, name: '男' }, | ||||
| 				{ id: 1, name: '女' } | ||||
| 			], | ||||
| 			educationList: [ | ||||
| 				{ id: '1', name: '初中' }, | ||||
| 				{ id: '2', name: '高中' }, | ||||
| 				{ id: '3', name: '中专' }, | ||||
| 				{ id: '5', name: '大专' }, | ||||
| 				{ id: '6', name: '大学本科' }, | ||||
| 				{ id: '7', name: '研究生及以上' } | ||||
| 			], | ||||
| 			departmentList: [], | ||||
| 			majorList: [], | ||||
| 			isOut: true, | ||||
| 			dataForm: { | ||||
|         id: undefined, | ||||
|         code: undefined, | ||||
|         name: undefined, | ||||
| 				fileUrl: undefined, | ||||
| 				sex: 0, | ||||
| 				telephone: undefined, | ||||
| 				departmentId: undefined, | ||||
| 				position: undefined, | ||||
| 				entryTime: new Date().getTime(), | ||||
| 				status: 1, | ||||
| 				outTime: undefined, | ||||
| 				education: undefined, | ||||
| 				workCost: undefined, | ||||
|         remark: undefined, | ||||
| 			}, | ||||
| 			majorIdList: undefined, | ||||
| 			departmentlList: [], | ||||
| 			menuOptions: [], | ||||
| 			bindIds: [], | ||||
| 			workerId: '', | ||||
| 			dataRule: { | ||||
|         code: [{ required: true, message: "员工编码不能为空", trigger: "blur" }], | ||||
|         name: [{ required: true, message: "员工姓名不能为空", trigger: "blur" }], | ||||
| 				telephone: [ | ||||
| 					{ required: false, trigger: "blur", message: "手机号不能为空" }, | ||||
|           { | ||||
|             validator: function (rule, value, callback) { | ||||
|               if (value) { | ||||
| 								if (/^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/.test(value) === false) { | ||||
| 									callback(new Error("手机号格式错误")); | ||||
| 								} | ||||
| 							} else { | ||||
|                 callback(); | ||||
|               } | ||||
|             }, trigger: "blur" | ||||
|           } | ||||
|         ], | ||||
|       } | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() { | ||||
| 		this.getDict() | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		async getDict() { | ||||
| 			// 部门列表 | ||||
| 			this.menuOptions = [] | ||||
| 			const res = await getCoreDepartmentList(); | ||||
| 			this.departmentlList = res.data.map(item => { | ||||
| 				item.parentId = item.parentId ? item.parentId : 0 | ||||
| 				return item | ||||
| 			}); | ||||
| 			// const menu = { id: 0, name: '总部门', children: [] }; | ||||
| 			// menu.children = this.handleTree(this.departmentlList, "id") | ||||
| 			this.menuOptions = this.handleTree(this.departmentlList, "id") | ||||
| 			// 专业列表 | ||||
| 			const majorRes = await getCoreMajorList(); | ||||
| 			this.majorList = majorRes.data; | ||||
| 		}, | ||||
| 		setOut(val) { | ||||
| 			if (val === 1) { | ||||
| 				this.isOut = true | ||||
| 			} else { | ||||
| 				this.isOut = false | ||||
| 			} | ||||
| 		}, | ||||
| 		// 表单提交 | ||||
|     dataFormSubmit() { | ||||
| 			console.log('111', this.dataForm) | ||||
|       this.$refs["dataForm"].validate((valid) => { | ||||
|         if (!valid) { | ||||
|           return false; | ||||
|         } | ||||
|  | ||||
| 				// 把员工--专业关系全删 | ||||
| 				this.bindIds.forEach(id => { | ||||
| 					deleteWoBindMa(id).then(res => {}) | ||||
| 				}); | ||||
|  | ||||
|         // 修改的提交 | ||||
|         if (this.dataForm.id) { | ||||
|           this.urlOptions.updateURL(this.dataForm).then(response => { | ||||
|             this.$modal.msgSuccess("修改成功"); | ||||
|             this.visible = false; | ||||
|             this.$emit("refreshDataList"); | ||||
|           }); | ||||
| 					this.majorIdList.forEach(majorId => { | ||||
| 						createWoBindMa({ | ||||
| 							workerId: this.dataForm.id, | ||||
| 							majorId: majorId | ||||
| 						}).then(res => {}) | ||||
| 					}); | ||||
|           return; | ||||
|         } | ||||
|         // 添加的提交 | ||||
|         this.urlOptions.createURL(this.dataForm).then(response => { | ||||
| 					// response.data = id | ||||
| 					this.workerId = response.data | ||||
| 					this.majorIdList.forEach(majorId => { | ||||
| 						createWoBindMa({ | ||||
| 							workerId: this.workerId, | ||||
| 							majorId: majorId | ||||
| 						}).then(res => {}) | ||||
| 					}); | ||||
|           this.$modal.msgSuccess("新增成功"); | ||||
|           this.visible = false; | ||||
|           this.$emit("refreshDataList"); | ||||
|         }); | ||||
|       }); | ||||
|     }, | ||||
| 		init(id) { | ||||
|       this.dataForm.id = id || ""; | ||||
|       this.visible = true; | ||||
|       if (this.urlOptions.getOption) { | ||||
|         this.getArr() | ||||
|       } | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs["dataForm"].resetFields(); | ||||
|         if (this.dataForm.id) { | ||||
|           this.urlOptions.infoURL(id).then(response => { | ||||
|             this.dataForm = response.data; | ||||
|           }); | ||||
| 					// 获取员工--专业 | ||||
| 					getWoBindMaPage({ | ||||
| 						pageSize: 99, | ||||
| 						pageNo: 1, | ||||
| 						workerId: id | ||||
| 					}).then(res => { | ||||
| 						this.majorIdList = res.data.list.map(item => { | ||||
| 							return item.majorId | ||||
| 						}) | ||||
| 						this.bindIds = res.data.list.map(item => { | ||||
| 							return item.id | ||||
| 						}) | ||||
| 					}) | ||||
|         } else { | ||||
|           if (this.urlOptions.isGetCode) { | ||||
|             this.getCode() | ||||
|           } | ||||
| 				} | ||||
|       }); | ||||
|     }, | ||||
| 		/** 转换菜单数据结构 */ | ||||
|     normalizer(node) { | ||||
|       if (node.children && !node.children.length) { | ||||
|         delete node.children; | ||||
|       } | ||||
|       return { | ||||
|         id: node.id, | ||||
|         label: node.name, | ||||
|         children: node.children | ||||
|       }; | ||||
|     } | ||||
| 	} | ||||
| }; | ||||
| </script> | ||||
| @@ -1,204 +0,0 @@ | ||||
| <template> | ||||
| 	<div class="app-container"> | ||||
| 		<search-bar | ||||
| 			:formConfigs="formConfig" | ||||
| 			ref="searchBarForm" | ||||
| 			@headBtnClick="buttonClick" /> | ||||
| 		<base-table | ||||
| 			v-loading="dataListLoading" | ||||
| 			:table-props="tableProps" | ||||
| 			:page="listQuery.pageNo" | ||||
| 			:limit="listQuery.pageSize" | ||||
| 			:table-data="tableData"> | ||||
| 			<method-btn | ||||
| 				v-if="tableBtn.length" | ||||
| 				slot="handleBtn" | ||||
| 				:width="120" | ||||
| 				label="操作" | ||||
| 				:method-list="tableBtn" | ||||
| 				@clickBtn="handleClick" /> | ||||
| 		</base-table> | ||||
| 		<pagination | ||||
| 			:limit.sync="listQuery.pageSize" | ||||
| 			:page.sync="listQuery.pageNo" | ||||
| 			:total="listQuery.total" | ||||
| 			@pagination="getDataList" /> | ||||
| 		<base-dialog | ||||
| 			:dialogTitle="addOrEditTitle" | ||||
| 			:dialogVisible="addOrUpdateVisible" | ||||
| 			@cancel="handleCancel" | ||||
| 			@confirm="handleConfirm" | ||||
| 			:before-close="handleCancel" | ||||
| 			width="50%"> | ||||
| 			<add-or-update | ||||
| 				ref="addOrUpdate" | ||||
| 				@refreshDataList="successSubmit"></add-or-update> | ||||
| 		</base-dialog> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import AddOrUpdate from './add-or-updata'; | ||||
| import basicPage from '../../core/mixins/basic-page'; | ||||
| import { parseTime } from '../../core/mixins/code-filter'; | ||||
| import { | ||||
| 	getCoreWorkerPage, | ||||
| 	deleteCoreWorker | ||||
| } from '@/api/base/coreWorker'; | ||||
| import moment from 'moment'; | ||||
|  | ||||
| const tableProps = [ | ||||
| 	{ | ||||
| 		prop: 'createTime', | ||||
| 		label: '创建时间', | ||||
| 		filter: parseTime | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'name', | ||||
| 		label: '姓名' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'code', | ||||
| 		label: '员工号' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'sex', | ||||
| 		label: '性别', | ||||
| 		filter: (val) => ['男', '女'][val] | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'entryTime', | ||||
| 		label: '入职时间', | ||||
| 		filter: (val) => val ? moment(val).format('yyyy-MM-DD') : '', | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'telephone', | ||||
| 		label: '联系电话' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'status', | ||||
| 		label: '状态', | ||||
| 		filter: (val) => ['', '在职', '离职'][val] | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'departmentName', | ||||
| 		label: '部门' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'majorName', | ||||
| 		label: '专业' | ||||
| 	}, | ||||
| 	{ | ||||
| 		prop: 'remark', | ||||
| 		label: '备注' | ||||
| 	}, | ||||
| ]; | ||||
|  | ||||
| export default { | ||||
| 	mixins: [basicPage], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			urlOptions: { | ||||
| 				getDataListURL: getCoreWorkerPage, | ||||
| 				deleteURL: deleteCoreWorker | ||||
| 			}, | ||||
| 			tableProps, | ||||
| 			tableBtn: [ | ||||
| 				this.$auth.hasPermi(`base:core-worker:update`) | ||||
| 					? { | ||||
| 							type: 'edit', | ||||
| 							btnName: '编辑', | ||||
| 					  } | ||||
| 					: undefined, | ||||
|           this.$auth.hasPermi(`base:core-worker:delete`) | ||||
| 					? { | ||||
| 							type: 'delete', | ||||
| 							btnName: '删除', | ||||
| 					  } | ||||
| 					: undefined, | ||||
| 			].filter((v)=>v), | ||||
| 			tableData: [], | ||||
| 			formConfig: [ | ||||
| 				{ | ||||
| 					type: 'input', | ||||
| 					label: '员工姓名', | ||||
| 					placeholder: '员工姓名', | ||||
| 					param: 'name', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'select', | ||||
| 					label: '状态', | ||||
| 					placeholder: '请选择状态', | ||||
| 					param: 'status', | ||||
| 					selectOptions: [ | ||||
| 						{ id: 1, name: '在职' }, | ||||
| 						{ id: 2, name: '离职' } | ||||
| 					], | ||||
| 					filterable: true | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'button', | ||||
| 					btnName: '查询', | ||||
| 					name: 'search', | ||||
| 					color: 'primary', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: 'separate', | ||||
| 				}, | ||||
| 				{ | ||||
| 					type: this.$auth.hasPermi('base:core-worker:create') ? 'button' : '', | ||||
| 					btnName: '新增', | ||||
| 					name: 'add', | ||||
| 					color: 'success', | ||||
| 					plain: true | ||||
| 				}, | ||||
| 			], | ||||
| 		}; | ||||
| 	}, | ||||
| 	components: { | ||||
| 		AddOrUpdate, | ||||
| 	}, | ||||
| 	created() {}, | ||||
| 	methods: { | ||||
| 		// 获取数据列表 | ||||
|     // getDataList() { | ||||
|     //   this.dataListLoading = true; | ||||
|     //   this.urlOptions.getDataListURL(this.listQuery).then(response => { | ||||
|     //     this.tableData = response.data.list; | ||||
|     //     this.listQuery.total = response.data.total; | ||||
|     //     this.dataListLoading = false; | ||||
|     //   }); | ||||
|     // }, | ||||
| 		buttonClick(val) { | ||||
| 			switch (val.btnName) { | ||||
| 				case 'search': | ||||
| 					this.listQuery.pageNo = 1; | ||||
| 					this.listQuery.pageSize = 10; | ||||
| 					this.listQuery.name = val.name ? val.name : undefined; | ||||
| 					this.listQuery.status = val.status ? val.status : undefined; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'reset': | ||||
| 					this.$refs.searchBarForm.resetForm(); | ||||
| 					this.listQuery = { | ||||
| 						pageSize: 10, | ||||
| 						pageNo: 1, | ||||
| 						total: 1, | ||||
| 					}; | ||||
| 					this.getDataList(); | ||||
| 					break; | ||||
| 				case 'add': | ||||
| 					this.addOrEditTitle = '新增'; | ||||
| 					this.addOrUpdateVisible = true; | ||||
| 					this.addOrUpdateHandle(); | ||||
| 					break; | ||||
| 				case 'export': | ||||
| 					this.handleExport(); | ||||
| 					break; | ||||
| 				default: | ||||
| 					console.log(val); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @@ -1,65 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zwq | ||||
|  * @Date: 2023-08-01 15:27:31 | ||||
|  * @LastEditors: zwq | ||||
|  * @LastEditTime: 2023-08-01 16:25:54 | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
| 	<div :class="[className, { 'p-0': noPadding }]"> | ||||
| 		<slot /> | ||||
| 	</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
| 	props: { | ||||
| 		size: { | ||||
| 			// 取值范围:  xl lg md sm | ||||
| 			type: String, | ||||
| 			default: 'de', | ||||
| 			validator: function (val) { | ||||
| 				return ['xl', 'lg', 'de', 'md', 'sm'].indexOf(val) !== -1; | ||||
| 			}, | ||||
| 		}, | ||||
| 		noPadding: { | ||||
| 			type: Boolean, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 	}, | ||||
| 	computed: { | ||||
| 		className: function () { | ||||
| 			return `${this.size}-title`; | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| $pxls: (xl, 28px) (lg, 24px) (de, 20px) (md, 18px) (sm, 16px); | ||||
| $mgr: 8px; | ||||
| @each $size, $height in $pxls { | ||||
| 	.#{$size}-title { | ||||
| 		font-size: 18px; | ||||
| 		line-height: $height; | ||||
| 		color: #000; | ||||
| 		font-weight: 500; | ||||
| 		font-family: '微软雅黑', 'Microsoft YaHei', Arial, Helvetica, sans-serif; | ||||
|  | ||||
| 		&::before { | ||||
| 			content: ''; | ||||
| 			display: inline-block; | ||||
| 			vertical-align: top; | ||||
| 			width: 4px; | ||||
| 			height: $height + 2px; | ||||
| 			border-radius: 1px; | ||||
| 			margin-right: $mgr; | ||||
| 			background-color: #0b58ff; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| .p-0 { | ||||
| 	padding: 0; | ||||
| } | ||||
| </style> | ||||
| @@ -1,411 +0,0 @@ | ||||
| <template> | ||||
|   <el-drawer :visible.sync="drawer" :append-to-body="true" size="80%"> | ||||
|     <small-title slot="title" :no-padding="true"> | ||||
|       <!-- <template v-for="demo in demoList"> --> | ||||
|       <!-- <el-button :key="demo.name" :type="demo.name === curDemo ? 'primary' : ' '" @click="curDemo = demo.name"> --> | ||||
|       <!-- {{ $t('module.packingManage.printModelDesign') }} --> | ||||
|       模板设计 | ||||
|       <!-- </el-button> --> | ||||
|       <!-- </template> --> | ||||
|     </small-title> | ||||
|     <el-card> | ||||
|       <el-row style="margin-bottom: 10px"> | ||||
|         <el-col :span="4"> | ||||
|           <!-- 模板选择 --> | ||||
|  | ||||
|           <!-- <el-select | ||||
|           v-model="mode" | ||||
|           filterable | ||||
|           :default-value="0" | ||||
|           option-label-prop="label" | ||||
|           style="width: 100%;" | ||||
|           @change="changeMode" | ||||
|         > | ||||
|           <el-option v-for="(opt,idx) in modeList" :key="idx" :label="opt.name" :value="idx"> | ||||
|             {{ opt.name }} | ||||
|           </el-option> | ||||
|         </el-select> --> | ||||
|         </el-col> | ||||
|         <el-col :span="20"> | ||||
|           <!-- 纸张设置 --> | ||||
|           <el-button-group style="margin:0 10px"> | ||||
|             <el-button | ||||
|               v-for="(value,type) in paperTypes" | ||||
|               :key="type" | ||||
|               :type="curPaperType === type ? 'primary' : ' '" | ||||
|               @click="setPaper(type,value)" | ||||
|             > | ||||
|               {{ type }} | ||||
|             </el-button> | ||||
|           </el-button-group> | ||||
|           <el-input-number | ||||
|             style="margin:0 10px" | ||||
|             :value="scaleValue " | ||||
|             :precision="2" | ||||
|             :step="0.1" | ||||
|             :min="scaleMin" | ||||
|             :max="scaleMax" | ||||
|             @change="changeScale" | ||||
|           /> | ||||
|           <el-popover v-model="paperPopVisible" placement="bottom" width="300" title="设置纸张宽高(mm)"> | ||||
|             <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px"> | ||||
|               <el-input v-model="paperWidth" type="number" style=" width: 100px; text-align: center" place="宽(mm)" />~ | ||||
|               <el-input v-model="paperHeight" type="number" style=" width: 100px; text-align: center" place="高(mm)" /> | ||||
|             </div> | ||||
|             <div> | ||||
|               <el-button type="primary" style="width: 100%" size="mini" @click="otherPaper">确定</el-button> | ||||
|             </div> | ||||
|             <el-button slot="reference" type="primary" style="margin:0 10px">自定义宽高</el-button> | ||||
|           </el-popover> | ||||
|  | ||||
|           <!--          <a-button-group>--> | ||||
|           <!--            <template v-for="(value,type) in paperTypes">--> | ||||
|           <!--              <a-button :type="curPaperType === type ? 'primary' : 'info'" @click="setPaper(type,value)" :key="type">--> | ||||
|           <!--                {{ type }}--> | ||||
|           <!--              </a-button>--> | ||||
|           <!--            </template>--> | ||||
|           <!--            <a-popover v-model="paperPopVisible" title="设置纸张宽高(mm)" trigger="click">--> | ||||
|           <!--              <div slot="content">--> | ||||
|           <!--                <a-input-group compact style="margin: 10px 10px">--> | ||||
|           <!--                  <a-input type="number" v-model="paperWidth" style=" width: 100px; text-align: center"--> | ||||
|           <!--                           placeholder="宽(mm)"/>--> | ||||
|           <!--                  <a-input style=" width: 30px; border-left: 0; pointer-events: none; backgroundColor: #fff"--> | ||||
|           <!--                           placeholder="~" disabled--> | ||||
|           <!--                  />--> | ||||
|           <!--                  <a-input type="number" v-model="paperHeight" style="width: 100px; text-align: center; border-left: 0"--> | ||||
|           <!--                           placeholder="高(mm)"/>--> | ||||
|           <!--                </a-input-group>--> | ||||
|           <!--                <a-button type="primary" style="width: 100%" @click="otherPaper">确定</a-button>--> | ||||
|           <!--              </div>--> | ||||
|           <!--              <a-button :type="'other'==curPaperType?'primary':''">自定义纸张</a-button>--> | ||||
|           <!--            </a-popover>--> | ||||
|           <!--          </a-button-group>--> | ||||
|  | ||||
|           <!-- 预览/打印 --> | ||||
|           <el-button-group> | ||||
|             <el-button type="primary" icon="redo" @click="rotatePaper()">旋转</el-button> | ||||
|             <el-button type="primary" icon="el-icon-view" @click="preView"> | ||||
|               预览 | ||||
|             </el-button> | ||||
|             <!-- <el-button type="primary" icon="el-icon-printer" @click="print"> | ||||
|             直接打印 | ||||
|           </el-button> --> | ||||
|             <el-button type="primary" icon="el-icon-s-management" @click="save"> | ||||
|               保存 | ||||
|             </el-button> | ||||
|             <el-button type="danger" icon="el-icon-delete" @click="clearPaper"> | ||||
|               清空 | ||||
|             </el-button> | ||||
|           </el-button-group> | ||||
|           <!-- 保存/清空 --> | ||||
|  | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <el-row :gutter="24"> | ||||
|         <el-col :span="4"> | ||||
|           <el-card style="height: 100vh"> | ||||
|             <el-row> | ||||
|               <el-col :span="24" class="rect-printElement-types hiprintEpContainer" /> | ||||
|             </el-row> | ||||
|           </el-card> | ||||
|         </el-col> | ||||
|         <el-col :span="16"> | ||||
|           <el-card class="card-design"> | ||||
|             <div id="hiprint-printTemplate" class="hiprint-printTemplate" /> | ||||
|           </el-card> | ||||
|         </el-col> | ||||
|         <el-col :span="4" class="params_setting_container"> | ||||
|           <el-card> | ||||
|             <el-row class="hinnn-layout-sider"> | ||||
|               <div id="PrintElementOptionSetting" /> | ||||
|             </el-row> | ||||
|           </el-card> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|       <!-- 预览 --> | ||||
|       <print-preview ref="preView" /> | ||||
|     </el-card> | ||||
|   </el-drawer> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|  | ||||
| import printPreview from './preview' | ||||
| import { MessageBox } from 'element-ui' | ||||
| import { hiprint } from 'vue-plugin-hiprint' | ||||
| import providers from './providers' | ||||
| import printData from './print-data' | ||||
| import $ from 'jquery' | ||||
| import SmallTitle from './SmallTitle.vue' | ||||
| let hiprintTemplate = null | ||||
| export default { | ||||
|   name: 'PrintCustom', | ||||
|   components: { printPreview, SmallTitle }, | ||||
|   // props: { | ||||
|   //   modelData: { | ||||
|   //     type: String, | ||||
|   //     default: '' | ||||
|   //   } | ||||
|   // }, | ||||
|   data() { | ||||
|     return { | ||||
|       // paperPopVisible: false, | ||||
|       // 模板选择 | ||||
|       mode: 0, | ||||
|       template: null, | ||||
|       modeList: [], | ||||
|       // 当前纸张 | ||||
|       curPaper: { | ||||
|         // type: 'other', | ||||
|         // width: 220, | ||||
|         // height: 80 | ||||
|       }, | ||||
|       drawer: false, | ||||
|       // 纸张类型 | ||||
|       paperTypes: { | ||||
|         'A3': { | ||||
|           width: 420, | ||||
|           height: 296.6 | ||||
|         }, | ||||
|         'A4': { | ||||
|           width: 210, | ||||
|           height: 297 | ||||
|         }, | ||||
|         'A5': { | ||||
|           width: 210, | ||||
|           height: 147.6 | ||||
|         }, | ||||
|         'B3': { | ||||
|           width: 500, | ||||
|           height: 352.6 | ||||
|         }, | ||||
|         'B4': { | ||||
|           width: 250, | ||||
|           height: 352.6 | ||||
|         }, | ||||
|         'B5': { | ||||
|           width: 250, | ||||
|           height: 175.6 | ||||
|         } | ||||
|       }, | ||||
|       scaleValue: 1, | ||||
|       scaleMax: 5, | ||||
|       scaleMin: 0.5, | ||||
|       // 自定义纸张 | ||||
|       paperPopVisible: false, | ||||
|       paperWidth: '210', | ||||
|       paperHeight: '297' | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     curPaperType() { | ||||
|       let type = 'other' | ||||
|       const types = this.paperTypes | ||||
|       for (const key in types) { | ||||
|         const item = types[key] | ||||
|         const { width, height } = this.curPaper | ||||
|         if (item.width === width && item.height === height) { | ||||
|           type = key | ||||
|         } | ||||
|       } | ||||
|       return type | ||||
|     } | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.init() | ||||
|     // console.log('aaaaaa') | ||||
|     // this.otherPaper() | ||||
|   }, | ||||
|   destroyed () { | ||||
|     $('.hiprintEpContainer').empty() | ||||
|   }, | ||||
|   methods: { | ||||
|     // handleClose() { | ||||
|     //   $('.hiprintEpContainer').empty() | ||||
|     // }, | ||||
|     init(data) { | ||||
|       this.drawer = true | ||||
|       this.modelData = data | ||||
|       this.modeList = providers.map((e) => { | ||||
|         return { type: e.type, name: e.name, value: e.value } | ||||
|       }) | ||||
|       this.changeMode() | ||||
|     }, | ||||
|     changeMode() { | ||||
|       // hiprintTemplate.clear() | ||||
|       // console.log(this.modelData) | ||||
|       const { mode } = this | ||||
|       const provider = providers[mode] | ||||
|       hiprint.init({ | ||||
|         providers: [provider.f] | ||||
|       }) | ||||
|  | ||||
|       // $('#hiprint-printTemplate').empty() | ||||
|       // console.log(JSON.parse(this.modelData)) | ||||
|       hiprint.setConfig() | ||||
|       // 替换配置 | ||||
|       hiprint.setConfig({ | ||||
|         movingDistance: 2.5, | ||||
|         text: { | ||||
|           supportOptions: [ | ||||
|             { | ||||
|               name: 'styler', | ||||
|               hidden: true | ||||
|             }, | ||||
|             { | ||||
|               name: 'formatter', | ||||
|               hidden: true | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|       }) | ||||
|  | ||||
|       // console.log(this.modelData) | ||||
|       // console.log($('#hiprint-printTemplate').empty()) | ||||
|       if (this.modelData) { | ||||
|         $('.hiprintEpContainer').empty() | ||||
|         hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value) | ||||
|         $('.hiprint-printTemplate').empty() | ||||
|         hiprintTemplate = new hiprint.PrintTemplate({ | ||||
|           template: JSON.parse(this.modelData), | ||||
|           settingContainer: '#PrintElementOptionSetting', | ||||
|           paginationContainer: '.hiprint-printPagination' | ||||
|         }) | ||||
|       } else { | ||||
|         $('.hiprintEpContainer').empty() | ||||
|         hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value) | ||||
|         $('.hiprint-printTemplate').empty() | ||||
|         // const templates = this.$ls.get('KEY_TEMPLATES', {}) | ||||
|         const template = provider.value | ||||
|         console.log(template) | ||||
|         hiprintTemplate = new hiprint.PrintTemplate({ | ||||
|           template: template, | ||||
|           settingContainer: '#PrintElementOptionSetting', | ||||
|           paginationContainer: '.hiprint-printPagination' | ||||
|         }) | ||||
|       } | ||||
|       // hiprintTemplate.design('#hiprint-printTemplate') | ||||
|       // console.log(hiprintTemplate) | ||||
|       hiprintTemplate.design('#hiprint-printTemplate', { grid: true }) | ||||
|       // 获取当前放大比例, 当zoom时传true 才会有 | ||||
|       this.scaleValue = hiprintTemplate.editingPanel.scale || 1 | ||||
|       // this.scaleValue = hiprintTemplate.editingPanel.scale || 1 | ||||
|     }, | ||||
|     /** | ||||
|      * 设置纸张大小 | ||||
|      * @param type [A3, A4, A5, B3, B4, B5, other] | ||||
|      * @param value {width,height} mm | ||||
|      */ | ||||
|     setPaper(type, value) { | ||||
|       try { | ||||
|         if (Object.keys(this.paperTypes).includes(type)) { | ||||
|           this.curPaper = { type: type, width: value.width, height: value.height } | ||||
|           hiprintTemplate.setPaper(value.width, value.height) | ||||
|         } else { | ||||
|           this.curPaper = { type: 'other', width: value.width, height: value.height } | ||||
|           hiprintTemplate.setPaper(value.width, value.height) | ||||
|         } | ||||
|       } catch (error) { | ||||
|         this.$message.error(`操作失败: ${error}`) | ||||
|       } | ||||
|     }, | ||||
|     changeScale(currentValue, oldValue) { | ||||
|       let big = false | ||||
|       currentValue <= oldValue ? big = false : big = true | ||||
|       let scaleValue = this.scaleValue | ||||
|       if (big) { | ||||
|         scaleValue += 0.1 | ||||
|         if (scaleValue > this.scaleMax) scaleValue = 5 | ||||
|       } else { | ||||
|         scaleValue -= 0.1 | ||||
|         if (scaleValue < this.scaleMin) scaleValue = 0.5 | ||||
|       } | ||||
|       if (hiprintTemplate) { | ||||
|         // scaleValue: 放大缩小值, false: 不保存(不传也一样), 如果传 true, 打印时也会放大 | ||||
|         hiprintTemplate.zoom(scaleValue) | ||||
|         this.scaleValue = scaleValue | ||||
|       } | ||||
|     }, | ||||
|     clearPaper() { | ||||
|       MessageBox.confirm('是否确认清空模板信息?', '警告', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(() => { | ||||
|         try { | ||||
|           hiprintTemplate.clear() | ||||
|         } catch (error) { | ||||
|           this.$message.error(`操作失败: ${error}`) | ||||
|         } | ||||
|       }).catch((err) => { | ||||
|         console.log(err) | ||||
|       }) | ||||
|     }, | ||||
|     otherPaper() { | ||||
|       const value = {} | ||||
|       value.width = this.paperWidth | ||||
|       value.height = this.paperHeight | ||||
|       this.paperPopVisible = false | ||||
|       this.setPaper('other', value) | ||||
|     }, | ||||
|     rotatePaper() { | ||||
|       if (hiprintTemplate) { | ||||
|         hiprintTemplate.rotatePaper() | ||||
|       } | ||||
|     }, | ||||
|     preView() { | ||||
|       const { width } = this.curPaper | ||||
|       this.$refs.preView.show(hiprintTemplate, printData, width) | ||||
|     }, | ||||
|     print() { | ||||
|       // if (window.hiwebSocket.opened) { | ||||
|       const printerList = hiprintTemplate.getPrinterList() | ||||
|       console.log(printerList) | ||||
|       hiprintTemplate.print2(printData, { printer: '', title: '预览打印' }) | ||||
|       // return | ||||
|       // } | ||||
|       // this.$message.error('客户端未连接,无法直接打印') | ||||
|     }, | ||||
|     save() { | ||||
|       // console.log(hiprintTemplate.getJson()) | ||||
|       const { mode } = this | ||||
|       const provider = providers[mode] | ||||
|       // console.log(hiprintTemplate.getJson()) | ||||
|       this.setTemplate({ | ||||
|         name: provider.value, | ||||
|         json: hiprintTemplate.getJson() | ||||
|       }) | ||||
|     }, | ||||
|     setTemplate(payload) { | ||||
|       // const templates = this.$ls.get('KEY_TEMPLATES', {}) | ||||
|       // console.log(payload.json) | ||||
|       // templates[payload.name] = payload.json | ||||
|       // this.$ls.set('KEY_TEMPLATES', templates) | ||||
|       this.$message.info('保存成功') | ||||
|       // console.log(JSON.stringify(payload.json)) | ||||
|       this.drawer = false | ||||
|       this.$emit('saveData', payload.json) | ||||
|       $('.hiprintEpContainer').empty() | ||||
|       // this.$parent.$parent.getModelData(payload.json) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| // build 拖拽 | ||||
| ::v-deep .hiprint-printElement-type >li>ul>li>a { | ||||
|   padding: 4px 4px; | ||||
|   color: #1296db; | ||||
|   line-height: 1; | ||||
|   height: auto; | ||||
|   text-overflow: ellipsis; | ||||
| } | ||||
| // 设计容器 | ||||
| .card-design { | ||||
|   // overflow: hidden; | ||||
|   overflow-x: auto; | ||||
|   overflow-y: auto; | ||||
| } | ||||
|  | ||||
| </style> | ||||
| @@ -1,89 +0,0 @@ | ||||
| <!-- | ||||
|  * @Author: zhp | ||||
|  * @Date: 2023-09-27 14:23:54 | ||||
|  * @LastEditTime: 2023-10-19 11:20:36 | ||||
|  * @LastEditors: zhp | ||||
|  * @Description: | ||||
| --> | ||||
| <template> | ||||
|   <el-dialog :visible="visible" :mask-closable="false" width="50%" @close="hideModal" :append-to-body="true"> | ||||
|     <div id="preview_content" /> | ||||
|     <template slot="title"> | ||||
|       <div style="margin-right: 20px">打印预览</div> | ||||
|       <el-button :loading="waitShowPrinter" type="primary" icon="printer" @click.stop="print">打印</el-button> | ||||
|       <el-button type="primary" icon="printer" @click.stop="toPdf">pdf</el-button> | ||||
|     </template> | ||||
|     <template slot="footer"> | ||||
|       <el-button key="close" type="info" @click="hideModal"> | ||||
|         关闭 | ||||
|       </el-button> | ||||
|     </template> | ||||
|   </el-dialog> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: 'PrintPreview', | ||||
|   props: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       visible: false, | ||||
|       spinning: true, | ||||
|       waitShowPrinter: false, | ||||
|       // 纸张宽 mm | ||||
|       width: 0, | ||||
|       // 模板 | ||||
|       hiprintTemplate: {}, | ||||
|       // 数据 | ||||
|       printData: {} | ||||
|     } | ||||
|   }, | ||||
|   computed: {}, | ||||
|   watch: {}, | ||||
|   created() { | ||||
|   }, | ||||
|   mounted() { | ||||
|   }, | ||||
|   methods: { | ||||
|     hideModal() { | ||||
|       this.visible = false | ||||
|     }, | ||||
|     show(hiprintTemplate, printData, width = '210') { | ||||
|       this.visible = true | ||||
|       this.spinning = true | ||||
|       this.width = width | ||||
|       this.hiprintTemplate = hiprintTemplate | ||||
|       this.printData = printData | ||||
|       console.log(hiprintTemplate) | ||||
|       console.log(printData) | ||||
|       setTimeout(() => { | ||||
|         // eslint-disable-next-line no-undef | ||||
|         $('#preview_content').html(hiprintTemplate.getHtml(printData)) | ||||
|         this.spinning = false | ||||
|       }, 500) | ||||
|     }, | ||||
|     print() { | ||||
|       this.waitShowPrinter = true | ||||
|       this.hiprintTemplate.print(this.printData, {}, { | ||||
|         callback: () => { | ||||
|           console.log('callback') | ||||
|           this.waitShowPrinter = false | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     toPdf() { | ||||
|       this.hiprintTemplate.toPdf({}, '打印预览') | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| </script> | ||||
| <!-- <style lang="less" scoped> | ||||
| /deep/ .ant-modal-body { | ||||
|   padding: 0px; | ||||
| } | ||||
|  | ||||
| /deep/ .ant-modal-content { | ||||
|   margin-bottom: 24px; | ||||
| } | ||||
| </style> --> | ||||
| @@ -1,447 +0,0 @@ | ||||
| /* eslint-disable */ | ||||
| import {hiprint} from 'vue-plugin-hiprint' | ||||
|  | ||||
| /* eslint-disable */ | ||||
| // import {hiprint} from '../../index' | ||||
|  | ||||
| // 自定义设计元素1 | ||||
| export const aProvider = function (ops) { | ||||
|   var addElementTypes = function (context) { | ||||
|     context.removePrintElementTypes("aProviderModule"); | ||||
|     context.addPrintElementTypes( | ||||
|       "aProviderModule", | ||||
|       [ | ||||
|         new hiprint.PrintElementTypeGroup("平台", [ | ||||
|           { | ||||
|             tid: 'aProviderModule.header', title: '单据表头', data: '单据表头', type: 'text', | ||||
|             options: { | ||||
|               testData: '单据表头', | ||||
|               height: 17, | ||||
|               fontSize: 16.5, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.type', title: '单据类型', data: '单据类型', type: 'text', | ||||
|             options: { | ||||
|               testData: '单据类型', | ||||
|               height: 16, | ||||
|               fontSize: 15, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.order', title: '订单编号', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'orderId', | ||||
|               testData: 'XS888888888', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.date', title: '业务日期', data: '2020-01-01', type: 'text', | ||||
|             options: { | ||||
|               field: 'date', | ||||
|               testData: '2020-01-01', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.barcode', title: '条形码', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'barcode', | ||||
|               testData: 'XS888888888', | ||||
|               height: 32, | ||||
|               fontSize: 12, | ||||
|               lineHeight: 18, | ||||
|               textType: "barcode" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.qrcode', title: '二维码', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'qrcode', | ||||
|               testData: 'XS888888888', | ||||
|               height: 32, | ||||
|               fontSize: 12, | ||||
|               lineHeight: 18, | ||||
|               textType: "qrcode" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.platform', title: '平台名称', data: '平台名称', type: 'text', | ||||
|             options: { | ||||
|               testData: '平台名称', | ||||
|               height: 17, | ||||
|               fontSize: 16.5, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           {tid: 'aProviderModule.logo', title: 'Logo', data: '', type: 'image'}, | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("库管", [ | ||||
|           { | ||||
|             tid: 'aProviderModule.creater', title: '制单人', data: '李四', type: 'text', | ||||
|             options: { | ||||
|               field: 'creater', | ||||
|               testData: '李四', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.printDate', title: '打印时间', data: '2022-01-01 09:00', type: 'text', | ||||
|             options: { | ||||
|               field: 'printDate', | ||||
|               testData: '2022-01-01 09:00', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.signer', title: '库管签字', data: '', type: 'text', | ||||
|             options: { | ||||
|               title: '库管签字:', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("表格/其他", [ | ||||
|           { | ||||
|             tid: 'aProviderModule.table', title: '订单数据', | ||||
|             type: 'table', | ||||
|             options: { | ||||
|               field: 'table', | ||||
|               tableHeaderRepeat: 'first', | ||||
|               tableFooterRepeat: 'last', | ||||
|               fields: [ | ||||
|                 {text: '名称', field: 'NAME'}, | ||||
|                 {text: '数量', field: 'SL'}, | ||||
|                 {text: '规格', field: 'GG'}, | ||||
|                 {text: '条码', field: 'TM'}, | ||||
|                 {text: '单价', field: 'DJ'}, | ||||
|                 {text: '金额', field: 'JE'}, | ||||
|               ], | ||||
|             }, | ||||
|             editable: true, | ||||
|             columnDisplayEditable: true,//列显示是否能编辑 | ||||
|             columnDisplayIndexEditable: true,//列顺序显示是否能编辑 | ||||
|             columnTitleEditable: true,//列标题是否能编辑 | ||||
|             columnResizable: true, //列宽是否能调整 | ||||
|             columnAlignEditable: true,//列对齐是否调整 | ||||
|             isEnableEditField: true, //编辑字段 | ||||
|             isEnableContextMenu: true, //开启右键菜单 默认true | ||||
|             isEnableInsertRow: true, //插入行 | ||||
|             isEnableDeleteRow: true, //删除行 | ||||
|             isEnableInsertColumn: true, //插入列 | ||||
|             isEnableDeleteColumn: true, //删除列 | ||||
|             isEnableMergeCell: true, //合并单元格 | ||||
|             columns: [ | ||||
|               [ | ||||
|                 {title: '名称', align: 'center', field: 'NAME', width: 150}, | ||||
|                 {title: '数量', align: 'center', field: 'SL', width: 80}, | ||||
|                 {title: '规格', align: 'center', field: 'GG', width: 80, checked: false}, | ||||
|                 {title: '条码', align: 'center', field: 'TM', width: 100, checked: false}, | ||||
|                 {title: '单价', align: 'center', field: 'DJ', width: 100}, | ||||
|                 {title: '金额', align: 'center', field: 'JE', width: 100, checked: false}, | ||||
|               ], | ||||
|             ], | ||||
|             rowsColumnsMerge: function (data, col, index) { | ||||
|               // 返回一个数组,参数一为行(rowspan)合并数,参数二为列(colspan)合并数, 被合并的行或者列值设为0 | ||||
|               if (index == 0) { | ||||
|                 return [1, data.INDEX % 2 == 1 ? 2 : 1] | ||||
|               } else if (index > 0 && index < 2) { | ||||
|                 return [data.INDEX % 2 == 1 ? 0 : 1, 1] | ||||
|               } else { | ||||
|                 return [data.INDEX % 2 == 1 ? 2 : 0, 1] | ||||
|               } | ||||
|             }, | ||||
|             footerFormatter: function (options, rows, data, currentPageGridRowsData) { | ||||
|               if (data && data['totalCap']) { | ||||
|                 return `<td style="padding:0 10px" colspan="100">${'应收金额大写: ' + data['totalCap']}</td>` | ||||
|               } | ||||
|               return '<td style="padding:0 10px" colspan="100">应收金额大写: </td>' | ||||
|             }, | ||||
|           }, | ||||
|           {tid: 'aProviderModule.customText', title: '文本', customText: '自定义文本', custom: true, type: 'text'}, | ||||
|           { | ||||
|             tid: 'aProviderModule.longText', title: '长文本', type: 'longText', options: { | ||||
|               field: 'test.longText', | ||||
|               width: 200, | ||||
|               testData: '长文本分页/不分页测试' | ||||
|             }, | ||||
|           } | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("辅助", [ | ||||
|           { | ||||
|             tid: 'aProviderModule.hline', | ||||
|             title: '横线', | ||||
|             type: 'hline' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.vline', | ||||
|             title: '竖线', | ||||
|             type: 'vline' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.rect', | ||||
|             title: '矩形', | ||||
|             type: 'rect' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.oval', | ||||
|             title: '椭圆', | ||||
|             type: 'oval' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.barcode', | ||||
|             title: '条形码', | ||||
|             type: 'barcode', | ||||
|           }, | ||||
|           { | ||||
|             tid: 'aProviderModule.qrcode', | ||||
|             title: '二维码', | ||||
|             type: 'qrcode', | ||||
|           } | ||||
|         ]) | ||||
|       ] | ||||
|     ); | ||||
|   }; | ||||
|   return { | ||||
|     addElementTypes: addElementTypes | ||||
|   }; | ||||
| }; | ||||
|  | ||||
| // 自定义设计元素2 | ||||
| export const bProvider = function (ops) { | ||||
|   var addElementTypes = function (context) { | ||||
|     context.removePrintElementTypes("bProviderModule"); | ||||
|     context.addPrintElementTypes( | ||||
|       "bProviderModule", | ||||
|       [ | ||||
|         new hiprint.PrintElementTypeGroup("常规", [ | ||||
|           { | ||||
|             tid: 'bProviderModule.header', title: '单据表头', data: '单据表头', type: 'text', | ||||
|             options: { | ||||
|               testData: '单据表头', | ||||
|               height: 17, | ||||
|               fontSize: 16.5, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.type', title: '单据类型', data: '单据类型', type: 'text', | ||||
|             options: { | ||||
|               testData: '单据类型', | ||||
|               height: 16, | ||||
|               fontSize: 15, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.order', title: '订单编号', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'orderId', | ||||
|               testData: 'XS888888888', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.date', title: '业务日期', data: '2020-01-01', type: 'text', | ||||
|             options: { | ||||
|               field: 'date', | ||||
|               testData: '2020-01-01', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.barcode', title: '条形码', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'barcode', | ||||
|               testData: 'XS888888888', | ||||
|               height: 32, | ||||
|               fontSize: 12, | ||||
|               lineHeight: 18, | ||||
|               textType: "barcode" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.qrcode', title: '二维码', data: 'XS888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'qrcode', | ||||
|               testData: 'XS888888888', | ||||
|               height: 32, | ||||
|               fontSize: 12, | ||||
|               lineHeight: 18, | ||||
|               textType: "qrcode" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.platform', title: '平台名称', data: '平台名称', type: 'text', | ||||
|             options: { | ||||
|               testData: '平台名称', | ||||
|               height: 17, | ||||
|               fontSize: 16.5, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "center", | ||||
|               hideTitle: true | ||||
|             } | ||||
|           }, | ||||
|           {tid: 'bProviderModule.image',  title: 'Logo', data: 'data: image/png;base64iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAHVklEQVR4nO2dT2wUVRzHv2/2T5eSAlvFilwgQUH+eLACaUxEiJLAxdh44MDZi2ChUIrSFtoCgbbSP4GDdwgeEA8kRTAI0iIGBL1ITLxgLAlCsCKBYndnx7zd35pl2+7On/de387OJ9l00515/z7z/szMmzfs7869mD0yCjw2gZAB4VhAiln4/dUaRGdU18aOnzw9dn24ioGJj0soFsJr1z2yNm+qN2/fvRFL8XyMYqTmFfxZ+TwMc1xKDsL/f2Ms8xGeLwuIRpCKx99MHf/i4uPrw5GQ9jIAfsCMXfw2HkuOX03Wb1qLh4+uIGFJjzecPoS5iEhUTg1hDMaM2GuRk6cGMTQUCYmPQQq86CMAkkPDkQirGAzXf7Du34ejN9IHmETCRjQGPL6D+4NnYDEJDQmXbaY6on/dm2Vm/jHdZe0Almm6Ll+YNQbzasX7765BNHI1o0sOYRghwExg7MG9dDQSiqsdwHuZmlFKMjLwQ3QcFtjlSxHTenLO3Lp7vfU09AOS41Ka+HC6CjIDIaqmguvIPgBtIgOcDhjVlMTQtarKOScumR/teCdpxoeNZGJCapjFt7Rcywrb2MYtnQBatCpZTzCkYCF+5suKRXf+6EvOmv0GSzwrhB/QpmGkBYZSpqvIZAlp8ZeMLFwKUH3z2gqWyd/+3F/5b1yRQQMCN8gQspeaKt+SAItSCxCiPjIjhDEkjRAMxmCZSbgZkYke537qdxl57KM8C0OkkD0ADohMXIlwgPIuBFFC9uS3p2XGflFSRAgpdxlZeBl84jUQr0ImjDTKGWZZBwE0eCkCL0J20UgjgGCwEDHNPjB86PbiilshfGRxOBCRD0tLCSWTnzMLO9yE4EbIzjIdTdmGpc8/rB4qK0c4FcKbqe7pyWZJ0k1lZhsnQnZq3EzV00dHDjupKXaFNGtcM7YA+Io+WzRIz2R0UxkWxY6QJgCHlCbfPlzAsZytj2ks5RCVZUGKCdkOoEt+Wl3RkCcjyzGv5wIS6aIynZJCQni7d0TTjPFaMFDg9wGNa8qRQn3KVEI+1rjPmKpm5KNzTemmMp7AZEK2AehXmz7bbC1SM/IZoH10pJ/K+hnyhXBrvZpmoBHAURf7HaV9daQ3v6Zk7hhWVr4AYDOAzzRNeKPHAyW7r459Yj/deUynMcyqqpY9/fXW+RTwkiF/ms5pADcd7nMbwAkBcfMM3wOwwOF+rys46TxCt+T72d2NG0YSg2fnC58ANDkbAZyVH41QNgAYVBTXNiMxeLYG6qawvagmGqGoTHOfwcAe6T8TvWwYlTC7OsALgRDNCIRoRiBEMwIhmhEI0YxAiGYEQjRDtZCY9iUyEaVpVi3kvuL4RKA0zSqF8Ad5TimMTxSnKO1KUCWEZ6hDVaYk0KFKigohbSUuI0uHiieKZQtp89kM+U7ZUmQKafHp4wpSH/eWJaTT5zPkD8g62GQI8cXqDTZok/HEsWgh+3Of2y4D2kU/0idKyEOaJdgqKLxSotXlfLFJESXkicKZGTrys6g0iRIyD8AvAFYLCq+UWC1yACOyD+Hrf1wAUCcwTN2pozzXiEqn6E59JoBvANQKDldHaimvM0WmTcawlydw2Oc1pY7yKFQGJJ4YxqiTXyEp/OlkBeVNyn0SmZdO5gC47rOOfjXlaY6sCGRfXKwA8LVP+pRaykuFzEhUXH7nR9P3AFYqiEsWKykP0mpGFlU3qKI0IlmlKD6RrKK0R1VEpvIW7uwSHXnVUdqVoHqSwz+K4xOB0jQH87I0IxCiGYEQzQiEaEYgRDMCIZoRCNGMQIhmBEI0gwuJK0xScKZemHiY1mzqUxThYgBLHO7zQOAzGnMBPOdwn8WC4rbDNjaSWVajQaEUp9wBsB7ALY/hLAVwHsB89VmwRXrhuGwf0q/xIl/z6f6105qVyxIKQ1cZjdlV/HI79V6N1yjk/dxlAMtc7LuM9lXZVzqhIXdxtvxR1kCxZUynkbl0o2ihgyQspH3mapqn7flrSE427O3TuKbwGZI/AlhuY9vltO08Belyw6T99lTnIQN2VmGeJqppskGhpfoW0DbVmuahaarVVQudGPZo3tH/RCOnfJbSbzp34D1T/VjsTL3X6esWFMJngJwDsCgnykX0P+mzQ1yyq9jqqtnzkGI0a7wgPz9pfJm+/6ZxB77bzus+7L7pkwdkarr8OBdwJee7jjQVaqZysVtDsuwK3j3lmGYnb5hwerW3S+PRl440OX3dh5vL7z0iXzXqY/bYbaZycXs/5KDdV/iUKc1URo7xcoOqq0yfui1Gq5e3EoUava1qzS/aJQGs8xKIj2jx+gCoVyGcoUBKGs8yIEgIAiliZEDwJAehL3ovIYS+2F9UDckyRH/fFhmoxuwTvdaJaCGc7+gyi9+br1YZSzTJEAIaffHrZG/JCFwDpK16JEsI5yK9uMdvzVe7zAUxZQrhXKKBwxqZkSikQ8aiZbnIFgKS4oea0i5bBhQJgQ+kKJEBhUJAUkqxo+cduJqVrQH8B6xBgBhvJFNDAAAAAElFTkSuQmCC', type: 'image',   options: { | ||||
|             src: 'data: image/png;base64iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAHVklEQVR4nO2dT2wUVRzHv2/2T5eSAlvFilwgQUH+eLACaUxEiJLAxdh44MDZi2ChUIrSFtoCgbbSP4GDdwgeEA8kRTAI0iIGBL1ITLxgLAlCsCKBYndnx7zd35pl2+7On/de387OJ9l00515/z7z/szMmzfs7869mD0yCjw2gZAB4VhAiln4/dUaRGdU18aOnzw9dn24ioGJj0soFsJr1z2yNm+qN2/fvRFL8XyMYqTmFfxZ+TwMc1xKDsL/f2Ms8xGeLwuIRpCKx99MHf/i4uPrw5GQ9jIAfsCMXfw2HkuOX03Wb1qLh4+uIGFJjzecPoS5iEhUTg1hDMaM2GuRk6cGMTQUCYmPQQq86CMAkkPDkQirGAzXf7Du34ejN9IHmETCRjQGPL6D+4NnYDEJDQmXbaY6on/dm2Vm/jHdZe0Almm6Ll+YNQbzasX7765BNHI1o0sOYRghwExg7MG9dDQSiqsdwHuZmlFKMjLwQ3QcFtjlSxHTenLO3Lp7vfU09AOS41Ka+HC6CjIDIaqmguvIPgBtIgOcDhjVlMTQtarKOScumR/teCdpxoeNZGJCapjFt7Rcywrb2MYtnQBatCpZTzCkYCF+5suKRXf+6EvOmv0GSzwrhB/QpmGkBYZSpqvIZAlp8ZeMLFwKUH3z2gqWyd/+3F/5b1yRQQMCN8gQspeaKt+SAItSCxCiPjIjhDEkjRAMxmCZSbgZkYke537qdxl57KM8C0OkkD0ADohMXIlwgPIuBFFC9uS3p2XGflFSRAgpdxlZeBl84jUQr0ImjDTKGWZZBwE0eCkCL0J20UgjgGCwEDHNPjB86PbiilshfGRxOBCRD0tLCSWTnzMLO9yE4EbIzjIdTdmGpc8/rB4qK0c4FcKbqe7pyWZJ0k1lZhsnQnZq3EzV00dHDjupKXaFNGtcM7YA+Io+WzRIz2R0UxkWxY6QJgCHlCbfPlzAsZytj2ks5RCVZUGKCdkOoEt+Wl3RkCcjyzGv5wIS6aIynZJCQni7d0TTjPFaMFDg9wGNa8qRQn3KVEI+1rjPmKpm5KNzTemmMp7AZEK2AehXmz7bbC1SM/IZoH10pJ/K+hnyhXBrvZpmoBHAURf7HaV9daQ3v6Zk7hhWVr4AYDOAzzRNeKPHAyW7r459Yj/deUynMcyqqpY9/fXW+RTwkiF/ms5pADcd7nMbwAkBcfMM3wOwwOF+rys46TxCt+T72d2NG0YSg2fnC58ANDkbAZyVH41QNgAYVBTXNiMxeLYG6qawvagmGqGoTHOfwcAe6T8TvWwYlTC7OsALgRDNCIRoRiBEMwIhmhEI0YxAiGYEQjRDtZCY9iUyEaVpVi3kvuL4RKA0zSqF8Ad5TimMTxSnKO1KUCWEZ6hDVaYk0KFKigohbSUuI0uHiieKZQtp89kM+U7ZUmQKafHp4wpSH/eWJaTT5zPkD8g62GQI8cXqDTZok/HEsWgh+3Of2y4D2kU/0idKyEOaJdgqKLxSotXlfLFJESXkicKZGTrys6g0iRIyD8AvAFYLCq+UWC1yACOyD+Hrf1wAUCcwTN2pozzXiEqn6E59JoBvANQKDldHaimvM0WmTcawlydw2Oc1pY7yKFQGJJ4YxqiTXyEp/OlkBeVNyn0SmZdO5gC47rOOfjXlaY6sCGRfXKwA8LVP+pRaykuFzEhUXH7nR9P3AFYqiEsWKykP0mpGFlU3qKI0IlmlKD6RrKK0R1VEpvIW7uwSHXnVUdqVoHqSwz+K4xOB0jQH87I0IxCiGYEQzQiEaEYgRDMCIZoRCNGMQIhmBEI0gwuJK0xScKZemHiY1mzqUxThYgBLHO7zQOAzGnMBPOdwn8WC4rbDNjaSWVajQaEUp9wBsB7ALY/hLAVwHsB89VmwRXrhuGwf0q/xIl/z6f6105qVyxIKQ1cZjdlV/HI79V6N1yjk/dxlAMtc7LuM9lXZVzqhIXdxtvxR1kCxZUynkbl0o2ihgyQspH3mapqn7flrSE427O3TuKbwGZI/AlhuY9vltO08Belyw6T99lTnIQN2VmGeJqppskGhpfoW0DbVmuahaarVVQudGPZo3tH/RCOnfJbSbzp34D1T/VjsTL3X6esWFMJngJwDsCgnykX0P+mzQ1yyq9jqqtnzkGI0a7wgPz9pfJm+/6ZxB77bzus+7L7pkwdkarr8OBdwJee7jjQVaqZysVtDsuwK3j3lmGYnb5hwerW3S+PRl440OX3dh5vL7z0iXzXqY/bYbaZycXs/5KDdV/iUKc1URo7xcoOqq0yfui1Gq5e3EoUava1qzS/aJQGs8xKIj2jx+gCoVyGcoUBKGs8yIEgIAiliZEDwJAehL3ovIYS+2F9UDckyRH/fFhmoxuwTvdaJaCGc7+gyi9+br1YZSzTJEAIaffHrZG/JCFwDpK16JEsI5yK9uMdvzVe7zAUxZQrhXKKBwxqZkSikQ8aiZbnIFgKS4oea0i5bBhQJgQ+kKJEBhUJAUkqxo+cduJqVrQH8B6xBgBhvJFNDAAAAAElFTkSuQmCC', | ||||
|             fit: 'none' | ||||
|             }}, | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("客户", [ | ||||
|           { | ||||
|             tid: 'bProviderModule.khname', title: '客户名称', data: '高级客户', type: 'text', | ||||
|             options: { | ||||
|               field: 'name', | ||||
|               testData: '高级客户', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.tel', title: '客户电话', data: '18888888888', type: 'text', | ||||
|             options: { | ||||
|               field: 'tel', | ||||
|               testData: '18888888888', | ||||
|               height: 16, | ||||
|               fontSize: 6.75, | ||||
|               fontWeight: "700", | ||||
|               textAlign: "left", | ||||
|               textContentVerticalAlign: "middle" | ||||
|             } | ||||
|           }, | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("表格/其他", [ | ||||
|           { | ||||
|             tid: 'bProviderModule.table', title: '订单数据', | ||||
|             type: 'table', | ||||
|             options: { | ||||
|               field: 'table', | ||||
|               fields: [ | ||||
|                 {text: '名称', field: 'NAME'}, | ||||
|                 {text: '数量', field: 'SL'}, | ||||
|                 {text: '规格', field: 'GG'}, | ||||
|                 {text: '条码', field: 'TM'}, | ||||
|                 {text: '单价', field: 'DJ'}, | ||||
|                 {text: '金额', field: 'JE'}, | ||||
|                 {text: '备注', field: 'DETAIL'}, | ||||
|               ], | ||||
|             }, | ||||
|             editable: true, | ||||
|             columnDisplayEditable: true,//列显示是否能编辑 | ||||
|             columnDisplayIndexEditable: true,//列顺序显示是否能编辑 | ||||
|             columnTitleEditable: true,//列标题是否能编辑 | ||||
|             columnResizable: true, //列宽是否能调整 | ||||
|             columnAlignEditable: true,//列对齐是否调整 | ||||
|             columns: [ | ||||
|               [ | ||||
|                 {title: '名称', align: 'center', field: 'NAME', width: 100}, | ||||
|                 {title: '数量', align: 'center', field: 'SL', width: 100}, | ||||
|                 {title: '条码', align: 'center', field: 'TM', width: 100}, | ||||
|                 {title: '规格', align: 'center', field: 'GG', width: 100}, | ||||
|                 {title: '单价', align: 'center', field: 'DJ', width: 100}, | ||||
|                 {title: '金额', align: 'center', field: 'JE', width: 100}, | ||||
|                 {title: '备注', align: 'center', field: 'DETAIL', width: 100}, | ||||
|               ] | ||||
|             ], | ||||
|             footerFormatter: function (options, rows, data, currentPageGridRowsData) { | ||||
|               if (data && data['totalCap']) { | ||||
|                 return `<td style="padding:0 10px" colspan="100">${'应收金额大写: ' + data['totalCap']}</td>` | ||||
|               } | ||||
|               return '<td style="padding:0 10px" colspan="100">应收金额大写: </td>' | ||||
|             }, | ||||
|           }, | ||||
|           {tid: 'bProviderModule.customText', title: '文本', customText: '自定义文本', custom: true, type: 'text'}, | ||||
|           { | ||||
|             tid: 'bProviderModule.longText', title: '长文本', type: 'longText', options: { | ||||
|               field: 'test.longText', | ||||
|               width: 200, | ||||
|               testData: '长文本分页/不分页测试' | ||||
|             }, | ||||
|           } | ||||
|         ]), | ||||
|         new hiprint.PrintElementTypeGroup("辅助", [ | ||||
|           { | ||||
|             tid: 'bProviderModule.hline', | ||||
|             title: '横线', | ||||
|             type: 'hline' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.vline', | ||||
|             title: '竖线', | ||||
|             type: 'vline' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.rect', | ||||
|             title: '矩形', | ||||
|             type: 'rect' | ||||
|           }, | ||||
|           { | ||||
|             tid: 'bProviderModule.oval', | ||||
|             title: '椭圆', | ||||
|             type: 'oval' | ||||
|           } | ||||
|         ]) | ||||
|       ] | ||||
|     ); | ||||
|   }; | ||||
|   return { | ||||
|     addElementTypes: addElementTypes | ||||
|   }; | ||||
| }; | ||||
|  | ||||
| // type: 1供货商 2经销商 | ||||
| export default [{ | ||||
|   name: 'A设计', | ||||
|   value: 'aProviderModule', | ||||
|   type: 1, | ||||
|   f: aProvider() | ||||
| }, { | ||||
|   name: 'B设计', | ||||
|   value: 'bProviderModule', | ||||
|   type: 2, | ||||
|   f: bProvider() | ||||
| }] | ||||