Compare commits
	
		
			219 Commits
		
	
	
		
			949675b3a2
			...
			projects/m
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ab56bc354a | |||
| 1c7c10205e | |||
|  | 74003e9d89 | ||
|  | cb72e2b68a | ||
| 025b061ec2 | |||
|  | f2912eaee1 | ||
|  | 8025d00709 | ||
| 60edd8f2c4 | |||
| c0214c9eb7 | |||
| da85e5211a | |||
| 23afb0db0d | |||
| d0adf3a63e | |||
|  | b81c95f796 | ||
| e7f21456a3 | |||
|  | 1537b1be58 | ||
|  | b2304941a4 | ||
| 14b2a49053 | |||
|  | 6adac714f0 | ||
|  | 0349f3cde0 | ||
|  | 4cafa78908 | ||
| 61ef172534 | |||
|  | 19d913a49e | ||
|  | 70c3fd44d6 | ||
| 78d6f0bb23 | |||
|  | cf51eff0b7 | ||
|  | 539dddf217 | ||
|  | 317d01934b | ||
|  | cdfe5c9c1b | ||
| c1ea5157a5 | |||
| 41ceefc20e | |||
| 54425859b5 | |||
| a2a4f8dccd | |||
|  | fd3b054108 | ||
|  | dacae0cbd8 | ||
|  | be83c8196e | ||
|  | ef3f5d3fe7 | ||
|  | ec550f22ec | ||
|  | 60633ac581 | ||
|  | 9351b82d11 | ||
| 5e4227ba25 | |||
| 82f63dc4ff | |||
| 9a29185410 | |||
| 43e824f958 | |||
|  | de831b339f | ||
|  | f0105c377c | ||
| 3ba5574669 | |||
|  | 082988d6d7 | ||
|  | 7acb861919 | ||
| c41153a946 | |||
| 6d658d9212 | |||
| bf4bab2f3c | |||
| 20f0efa413 | |||
|  | c48f81b1d9 | ||
|  | 7233720c2e | ||
| 6a491ff498 | |||
|  | be607e4bf3 | ||
|  | 87ef42e277 | ||
| aa65a7e97e | |||
|  | b8d26c87d8 | ||
| b89f510e61 | |||
|  | 0e60f426bc | ||
|  | 21f4879394 | ||
| 067cd4765e | |||
| 3c4fe6daaa | |||
|  | e24f9c1079 | ||
|  | 61567ce86a | ||
| 2ee66714ca | |||
| ab5867c4fd | |||
| 9a53391999 | |||
| ec0c09a674 | |||
|  | 90e9b179eb | ||
|  | 8e2b332c7b | ||
| f37a12d2e1 | |||
| cb19872012 | |||
|  | 8ba79185d4 | ||
|  | 104cda5a41 | ||
|  | 151c5708c4 | ||
| 837735b7e8 | |||
|  | e00a08385f | ||
|  | a8c3d2c585 | ||
| eb097e77bd | |||
|  | 30eecb8bd1 | ||
|  | f4a6229170 | ||
| ab593bff20 | |||
| 4b01dd3ec3 | |||
| ed3ea7dde8 | |||
| 1d9e272f99 | |||
|  | 43c9153777 | ||
|  | c6d504583b | ||
|  | 22f3c87f02 | ||
|  | 1f54c9179d | ||
| f7247f5161 | |||
|  | c8856f34b5 | ||
|  | 42c42abc08 | ||
| 0fffed9b0e | |||
|  | d251daa3f5 | ||
|  | ed5120ca97 | ||
|  | becf34d089 | ||
| f0d64de77b | |||
| 56819176b3 | |||
| d302179f6f | |||
| 8c117fae8e | |||
|  | b6cf7b2ddc | ||
|  | 2f98b42bd2 | ||
| fb8ae9226a | |||
| 3d3763c4ef | |||
| ea675b9dea | |||
| bda065e4be | |||
|  | 5ea4c219ed | ||
|  | 16186667da | ||
|  | c7cd6e7b1e | ||
|  | 29c3a9fb72 | ||
|  | 1e1313d090 | ||
| d0eb1d84c8 | |||
|  | 445d8f4818 | ||
|  | 46ce982cfc | ||
| 391e06a382 | |||
| 72e1b4e8f9 | |||
| b41ba04cb4 | |||
|  | 4482ce0433 | ||
|  | ecf6745c8a | ||
| c9128ce946 | |||
| ba08175de8 | |||
|  | 22f8322baf | ||
|  | 6f8abc9758 | ||
| 59d53b60c7 | |||
| d448280782 | |||
| 0337b54202 | |||
|  | 9dec81e0b2 | ||
|  | 64de2c50b6 | ||
|  | bd0f9e24fd | ||
|  | f3043ee11f | ||
| 5584a47575 | |||
| b0078cb099 | |||
| e5acd497b5 | |||
| 6b452dce36 | |||
| aacf87f6d3 | |||
|  | bfa17e422d | ||
|  | e25f872589 | ||
| 83b834d2fc | |||
| 1b2c16fcdb | |||
| 475ec35ec5 | |||
| 1328da9616 | |||
| 92b9ec7da7 | |||
| c1af47db81 | |||
| 15afbcd612 | |||
|  | dabbc6b63a | ||
|  | cfab3353d3 | ||
|  | 2298fc56b6 | ||
| bb77d0f8c6 | |||
|  | e8938a62eb | ||
|  | 2a599d96b3 | ||
|  | 6050eb4df5 | ||
| 02c3b3db0d | |||
| 3308fcbef9 | |||
| cb7135bad5 | |||
| 4a56f92961 | |||
|  | 8f11c2f47c | ||
|  | b41dc9593c | ||
| 862fe20760 | |||
| 1ed409a98e | |||
| 68e738cf12 | |||
|  | 4866198a98 | ||
|  | 49df8a72bd | ||
|  | 087af452de | ||
|  | 63a753d7d6 | ||
| b1cdf083dd | |||
| 673ddcb996 | |||
| a9e60dbe82 | |||
|  | 92d197a513 | ||
|  | e7f440a142 | ||
| 5d3622bf62 | |||
| 5ccb9297e1 | |||
| ce528f18b6 | |||
|  | 024060182e | ||
|  | 4f111a95d6 | ||
| 8fc6b73179 | |||
| 7f504e5cdd | |||
| 7c5d8bde0b | |||
|  | 0b1761e83c | ||
|  | cafa156d72 | ||
| ed46ed7d09 | |||
|  | f89c6dfe14 | ||
|  | a3b2eae33f | ||
| e70ff40554 | |||
| d3d93acd0f | |||
| 93236f9828 | |||
|  | fef8824844 | ||
| a4fceeb981 | |||
| 84468cc883 | |||
| ea04d55fc1 | |||
| ef1078360a | |||
| 60f6c3a8fe | |||
| a4b340ac5d | |||
|  | 2592551e66 | ||
|  | 1fde96e677 | ||
| 0b16e1fe0d | |||
| abcec3bcdc | |||
| bdd14eec70 | |||
| 44e7e219a4 | |||
|  | ec51beb8ea | ||
|  | 433618e71d | ||
| 812b72f10d | |||
|  | 05f10ab51d | ||
|  | e7828fd277 | ||
| 58457487d1 | |||
|  | 6c54c223c5 | ||
|  | b2cc509f8e | ||
| b6236e89b1 | |||
| cbc7cbc574 | |||
| b5b952e1cc | |||
| 33ed9f15fa | |||
| c85c6e4323 | |||
| 30d22b34e1 | |||
| 3d3fa2ccee | |||
| f960ece594 | |||
| f52815abe6 | |||
|  | ac4cea0c7e | ||
|  | 93fea84c79 | 
| @@ -1,3 +1,3 @@ | |||||||
| .dockerignore | .dockerignore | ||||||
| dist | #dist | ||||||
| node_modules | node_modules | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | --- | ||||||
|  | kind: pipeline | ||||||
|  | type: docker | ||||||
|  | name: default | ||||||
|  |  | ||||||
|  | steps: | ||||||
|  | - name: build | ||||||
|  |   image: node:16-alpine | ||||||
|  |   pull: if_not_exists | ||||||
|  |   environment: | ||||||
|  |     NODE_ENV: "" | ||||||
|  |   commands: | ||||||
|  |   #- yarn install --frozen-lockfile | ||||||
|  |   - yarn install  | ||||||
|  |   - env ${NODE_ENV} yarn build:prod  | ||||||
|  |  | ||||||
|  | - name: publish | ||||||
|  |   image: docker:dind | ||||||
|  |   pull: if_not_exists | ||||||
|  |   volumes: | ||||||
|  |   - name: dockersock | ||||||
|  |     path: /var/run/docker.sock | ||||||
|  |   - name: dockerconfig | ||||||
|  |     path: /root/.docker | ||||||
|  |   commands: | ||||||
|  |   - docker build -t hub.kszny.picaiba.com/kszny/xcac-ui ./ | ||||||
|  |   - docker push hub.kszny.picaiba.com/kszny/xcac-ui | ||||||
|  |   depends_on: | ||||||
|  |   - build | ||||||
|  |  | ||||||
|  | - name: deploy | ||||||
|  |   image: appleboy/drone-ssh | ||||||
|  |   pull: if-not-exists | ||||||
|  |   settings: | ||||||
|  |     host: | ||||||
|  |       - 172.24.145.74 | ||||||
|  |     username: root | ||||||
|  |     password: Root@123 | ||||||
|  |     port: 22 | ||||||
|  |     command_timeout: 2m | ||||||
|  |     script: | ||||||
|  |     - docker pull hub.kszny.picaiba.com/kszny/xcac-ui | ||||||
|  |     - docker run --rm -v /data/www/xcac:/tmp hub.kszny.picaiba.com/kszny/xcac-ui sh -c "rm -rf /tmp/* && mv -f /html /tmp" | ||||||
|  |   depends_on: | ||||||
|  |   - publish | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  | - name: dockersock | ||||||
|  |   host: | ||||||
|  |     path: /var/run/docker.sock | ||||||
|  | - name: dockerconfig | ||||||
|  |   host: | ||||||
|  |     path: /root/.docker | ||||||
|  |  | ||||||
|  | trigger: | ||||||
|  |   branch: | ||||||
|  |   - projects/mesxc-test | ||||||
|  |   event: | ||||||
|  |   - push | ||||||
							
								
								
									
										31
									
								
								.env.dev
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								.env.dev
									
									
									
									
									
								
							| @@ -1,8 +1,8 @@ | |||||||
| ### | ### | ||||||
|  # @Author: Do not edit |  # @Author: zhp | ||||||
|  # @Date: 2023-08-29 09:40:39 |  # @Date: 2024-04-12 14:30:48 | ||||||
|  # @LastEditTime: 2024-04-03 11:22:19 |  # @LastEditTime: 2024-04-25 10:07:02 | ||||||
|  # @LastEditors: DY |  # @LastEditors: zhp | ||||||
|  # @Description: |  # @Description: | ||||||
| ### | ### | ||||||
| # 开发环境配置 | # 开发环境配置 | ||||||
| @@ -12,24 +12,19 @@ ENV = 'development' | |||||||
| VUE_APP_TITLE = MES系统 | VUE_APP_TITLE = MES系统 | ||||||
|  |  | ||||||
| # 芋道管理系统/开发环境 | # 芋道管理系统/开发环境 | ||||||
| # 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.1.104:48082' | ||||||
| # VUE_APP_BASE_API = 'http://10.70.2.2:8080' | # VUE_APP_BASE_API = 'http://10.70.2.2:8080' | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.20:48080' | # 积木报表指向地址 | ||||||
| # VUE_APP_BASE_API = 'http://192.168.2.173:48080' | VUE_APP_JIMU_API = 'http://192.168.1.101:48082' | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.49:48082' |  | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.8:48082' | # socket地址(现场) | ||||||
| # VUE_APP_BASE_API = 'http://192.168.4.173:9001' |  | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.104:48082' |  | ||||||
| VUE_APP_BASE_API = 'http://192.168.0.33:48082' |  | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.62:48082' |  | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.78:48082' |  | ||||||
| # VUE_APP_BASE_API = 'http://192.168.1.47:48082' |  | ||||||
| # socket地址 |  | ||||||
| VUE_APP_Socket_API = 'ws://10.70.2.2:8080' | VUE_APP_Socket_API = 'ws://10.70.2.2:8080' | ||||||
|  | # socket地址(公司线上) | ||||||
|  | # VUE_APP_Socket_API = 'ws://192.168.0.33:48082' | ||||||
|  | # socket dcs地址(只有现场) | ||||||
| VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081' | VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081' | ||||||
|  |  | ||||||
| # 积木报表指向地址 |  | ||||||
| VUE_APP_JIMU_API = 'http://10.70.2.22:8080' |  | ||||||
|  |  | ||||||
| # 路由懒加载 | # 路由懒加载 | ||||||
| VUE_CLI_BABEL_TRANSPILE_MODULES = true | VUE_CLI_BABEL_TRANSPILE_MODULES = true | ||||||
|   | |||||||
| @@ -1,11 +1,4 @@ | |||||||
| ### | # 生产环境配置(许昌现场) | ||||||
|  # @Author: zhp |  | ||||||
|  # @Date: 2023-11-07 19:11:40 |  | ||||||
|  # @LastEditTime: 2023-11-16 16:40:59 |  | ||||||
|  # @LastEditors: zhp |  | ||||||
|  # @Description: |  | ||||||
| ### |  | ||||||
| # 生产环境配置 |  | ||||||
| ENV = 'production' | ENV = 'production' | ||||||
|  |  | ||||||
| # 页面标题 | # 页面标题 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| # 生产环境配置 | # 公司线上环境(33服务器) | ||||||
| ENV = 'production' | ENV = 'production' | ||||||
|  |  | ||||||
| # 页面标题 | # 页面标题 | ||||||
| @@ -7,15 +7,12 @@ VUE_APP_TITLE = MES系统 | |||||||
| # 芋道管理系统/生产环境 | # 芋道管理系统/生产环境 | ||||||
| VUE_APP_BASE_API = '/prod-api' | VUE_APP_BASE_API = '/prod-api' | ||||||
|  |  | ||||||
| # dcs地址 |  | ||||||
| VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081' |  | ||||||
| # socket地址 |  | ||||||
| VUE_APP_Socket_API = 'ws://10.70.2.2:8080' |  | ||||||
|  |  | ||||||
| # 积木报表指向地址 | # 积木报表指向地址 | ||||||
| VUE_APP_JIMU_API = 'http://192.168.0.33:48082' | VUE_APP_JIMU_API = 'http://192.168.0.33:48082' | ||||||
| # socket地址 | # socket地址 | ||||||
| VUE_APP_Socket_API = 'ws://192.168.0.33:48082' | VUE_APP_Socket_API = 'ws://192.168.0.33:48082' | ||||||
|  | # dcs地址(只有现场的) | ||||||
|  | VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081' | ||||||
|  |  | ||||||
|  |  | ||||||
| # 根据服务器或域名修改 | # 根据服务器或域名修改 | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,21 +1,3 @@ | |||||||
| FROM node:16-alpine as build-stage | FROM busybox  | ||||||
|  | LABEL maintainer thomas.hairong@gmail.com | ||||||
| WORKDIR /admim | COPY dist /html/ | ||||||
|  |  | ||||||
| COPY .npmrc package.json yarn.lock ./ |  | ||||||
| RUN --mount=type=cache,id=yarn-store,target=/root/.yarn-store \ |  | ||||||
|     yarn install --frozen-lockfile |  | ||||||
|  |  | ||||||
| COPY . . |  | ||||||
| ARG NODE_ENV="" |  | ||||||
| RUN env ${NODE_ENV} yarn build:prod |  | ||||||
|  |  | ||||||
| ## -- stage: dist => nginx -- |  | ||||||
| FROM nginx:alpine |  | ||||||
|  |  | ||||||
| ENV TZ=Asia/Shanghai |  | ||||||
|  |  | ||||||
| COPY ./nginx.conf /etc/nginx/conf.d/default.conf |  | ||||||
| COPY --from=build-stage /admim/dist /usr/share/nginx/html |  | ||||||
|  |  | ||||||
| EXPOSE 80 |  | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ | |||||||
|     "benz-amr-recorder": "^1.1.5", |     "benz-amr-recorder": "^1.1.5", | ||||||
|     "bpmn-js-token-simulation": "0.10.0", |     "bpmn-js-token-simulation": "0.10.0", | ||||||
|     "clipboard": "2.0.8", |     "clipboard": "2.0.8", | ||||||
|     "code-brick-zj": "^1.0.5", |     "code-brick-zj": "^1.1.0", | ||||||
|     "core-js": "^3.26.0", |     "core-js": "^3.26.0", | ||||||
|     "crypto-js": "^4.0.0", |     "crypto-js": "^4.0.0", | ||||||
|     "diagram-js": "^12.3.0", |     "diagram-js": "^12.3.0", | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| /* | /* | ||||||
|  * @Author: Do not edit |  * @Author: Do not edit | ||||||
|  * @Date: 2023-10-21 11:50:46 |  * @Date: 2023-10-21 11:50:46 | ||||||
|  * @LastEditTime: 2023-10-30 14:37:28 |  * @LastEditTime: 2024-04-19 17:13:24 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @Description:  |  * @Description:  | ||||||
|  */ |  */ | ||||||
| @@ -66,3 +66,12 @@ export function getCoreDepartmentList(query) { | |||||||
|     params: query |     params: query | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // 设备获得所有列表 | ||||||
|  | export function getDepartmentList(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/system/dept/list-all-simple', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| /* | /* | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-11-06 15:38:12 |  * @Date: 2023-11-06 15:38:12 | ||||||
|  * @LastEditTime: 2023-12-15 15:29:16 |  * @LastEditTime: 2024-04-11 14:57:02 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
|  */ |  */ | ||||||
| @@ -94,7 +94,7 @@ export function getWorkerList(query) { | |||||||
|  |  | ||||||
| export function getMaterialCheckList(query) { | export function getMaterialCheckList(query) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/base/core-hot-material-check/listByMaterial', |     url: 'base/quality-hot-material-det/filterList', | ||||||
|     method: 'get', |     method: 'get', | ||||||
|     params: query |     params: query | ||||||
|   }) |   }) | ||||||
| @@ -102,7 +102,7 @@ export function getMaterialCheckList(query) { | |||||||
|  |  | ||||||
| export function createQualityHotMaterialDet(query){ | export function createQualityHotMaterialDet(query){ | ||||||
|    return request({ |    return request({ | ||||||
|     url: '/base/quality-hot-material-det/create', |     url: 'base/quality-hot-material-det/createBatch', | ||||||
|     method: 'post', |     method: 'post', | ||||||
|     data: query |     data: query | ||||||
|   }) |   }) | ||||||
| @@ -110,7 +110,7 @@ export function createQualityHotMaterialDet(query){ | |||||||
|  |  | ||||||
| export function updateQualityHotMaterialDet(query){ | export function updateQualityHotMaterialDet(query){ | ||||||
|    return request({ |    return request({ | ||||||
|     url: '/base/quality-hot-material-det/listbyfilter', |     url: 'base/quality-hot-material-det/updateBatch', | ||||||
|     method: 'put', |     method: 'put', | ||||||
|     data: query |     data: query | ||||||
|   }) |   }) | ||||||
| @@ -118,7 +118,7 @@ export function updateQualityHotMaterialDet(query){ | |||||||
|  |  | ||||||
| export function getQualityHotMaterialDetList(query){ | export function getQualityHotMaterialDetList(query){ | ||||||
|    return request({ |    return request({ | ||||||
|     url: '/base/quality-hot-material-det/listbyfilter', |     url: '/base/quality-hot-material-det/filterList', | ||||||
|     method: 'get', |     method: 'get', | ||||||
|     params: query |     params: query | ||||||
|   }) |   }) | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| /* | /* | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-11-07 15:02:37 |  * @Date: 2023-11-07 15:02:37 | ||||||
|  * @LastEditTime: 2023-11-07 18:32:07 |  * @LastEditTime: 2024-04-09 15:14:42 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
|  */ |  */ | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| /* | /* | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-11-07 14:10:18 |  * @Date: 2023-11-07 14:10:18 | ||||||
|  * @LastEditTime: 2023-11-16 17:49:52 |  * @LastEditTime: 2024-04-11 16:16:05 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
|  */ |  */ | ||||||
| @@ -18,14 +18,14 @@ export function getStatisticalDataPage(query) { | |||||||
|  |  | ||||||
| export function getWorkOrderList(query) { | export function getWorkOrderList(query) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/base/core-work-order/listbyfilter', |     url: 'base/core-work-order/listbyfilter', | ||||||
|     method: 'get', |     method: 'get', | ||||||
|     params: query, |     params: query, | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
| export function getProductList(query) { | export function getProductList(query) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/base/core-product/listAll', |     url: 'base/core-product/listAll', | ||||||
|     method: 'get', |     method: 'get', | ||||||
|     params: query, |     params: query, | ||||||
|   }) |   }) | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| /* | /* | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-10-31 10:55:20 |  * @Date: 2023-10-31 10:55:20 | ||||||
|  * @LastEditTime: 2023-12-06 14:09:14 |  * @LastEditTime: 2024-04-25 15:28:44 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: DY | ||||||
|  * @Description: |  * @Description: | ||||||
|  */ |  */ | ||||||
| import request from '@/utils/request' | import request from '@/utils/request' | ||||||
| @@ -34,11 +34,11 @@ export function exportEnergyPlcExcel(query) { | |||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
| export function getOriginalGlassRetrace(query) { | export function getOriginalGlassRetrace(data) { | ||||||
|    return request({ |    return request({ | ||||||
|     url: '/base/original-glass-statistics/originalGlassRetrace', |     url: '/base/original-glass-statistics/originalGlassRetrace', | ||||||
|     method: 'get', |     method: 'post', | ||||||
|     params: query, |     data | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								src/api/report/customizedReports.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/api/report/customizedReports.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | import request from '@/utils/request' | ||||||
|  | // 原片工段数据 | ||||||
|  | export function originalSection(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/originalSection', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 原片产线数据 | ||||||
|  | export function getOriginalLine(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/getOriginalLine', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 深加工产线数据 | ||||||
|  | export function getProcessingLine(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/getProcessingLine', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 深加工工段数据 | ||||||
|  | export function processing(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/processing', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // isra数据记录 | ||||||
|  | export function israData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/isra', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| /* | /* | ||||||
|  * @Author: Do not edit |  * @Author: Do not edit | ||||||
|  * @Date: 2023-12-08 10:26:48 |  * @Date: 2023-12-08 10:26:48 | ||||||
|  * @LastEditTime: 2023-12-13 17:16:00 |  * @LastEditTime: 2024-04-24 16:31:37 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @Description:  |  * @Description:  | ||||||
|  */ |  */ | ||||||
| @@ -59,3 +59,39 @@ export function exportGlasscExcel(query) { | |||||||
|     responseType: 'blob' |     responseType: 'blob' | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // 生产月报查询--冷端生产线 | ||||||
|  | export function productionMonthY(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/productionMonthY', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 生产月报查询--深加工生产线 | ||||||
|  | export function productionMonthD(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/productionMonthD', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 生产年报查询--冷端生产线 | ||||||
|  | export function productionYearY(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/productionYearY', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 生产年报查询--冷端生产线 | ||||||
|  | export function productionYearD(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/extend/customized-reports/productionYearD', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										96
									
								
								src/api/report/qcReport.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								src/api/report/qcReport.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | |||||||
|  | /* | ||||||
|  |  * @Author: zhp | ||||||
|  |  * @Date: 2024-04-18 09:27:54 | ||||||
|  |  * @LastEditTime: 2024-04-23 15:16:12 | ||||||
|  |  * @LastEditors: zhp | ||||||
|  |  * @Description: | ||||||
|  |  */ | ||||||
|  | import request from '@/utils/request' | ||||||
|  |  | ||||||
|  | // 更新质量检测类型基础 | ||||||
|  | export function getOriginalData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/original', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | export function getIngredientData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/materialCost', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getCuttingtData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/cutting', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getAutoDailyData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'base/report-auto-daily/listAll', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getQualityRecordReport(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'base/quality-inspection-record/qualityRecordReport', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getProductChildData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'base/report-auto-ydaily-det/list', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function updateAutoDailyData(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'base/report-auto-daily/update', | ||||||
|  |     method: 'put', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getCWSectionList(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'base/core-production-line/listAll', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getCuttingReportDataList(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/cuttingReport', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getProcessingLineDataList(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/getProcessingLine', | ||||||
|  |     method: 'get', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function getOriginalLineDataList(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: 'extend/customized-reports/getOriginalLine', | ||||||
|  |     method: 'get', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
							
								
								
									
										138
									
								
								src/components/ButtonNav/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								src/components/ButtonNav/index.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,138 @@ | |||||||
|  | <!--  | ||||||
|  |     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%; | ||||||
|  | 	// padding: 12px 0; | ||||||
|  | 	display: flex; | ||||||
|  | 	gap: 12px; | ||||||
|  |  | ||||||
|  | 	* { | ||||||
|  | 		user-select: none; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	button { | ||||||
|  | 		cursor: pointer; | ||||||
|  | 		appearance: none; | ||||||
|  | 		outline: none; | ||||||
|  | 		border: none; | ||||||
|  | 		background: #fff; | ||||||
|  | 		border-radius: 8px; | ||||||
|  | 		padding: 20px; | ||||||
|  | 		color: #888; | ||||||
|  | 		letter-spacing: 2px; | ||||||
|  | 		flex: 1; | ||||||
|  | 		box-sizing: padding-box; | ||||||
|  | 		position: relative; | ||||||
|  |  | ||||||
|  | 		&::after { | ||||||
|  | 			content: attr(data-text); | ||||||
|  | 			position: absolute; | ||||||
|  | 			top: 10px; | ||||||
|  | 			left: 50%; | ||||||
|  | 			font-size: 18px; | ||||||
|  | 			font-weight: 500; | ||||||
|  | 			transform: translate(-50%); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		&.active { | ||||||
|  | 			color: #111; | ||||||
|  | 			border-bottom: 4px solid #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> | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2024-01-29 16:50:26 |  * @Date: 2024-01-29 16:50:26 | ||||||
|  * @LastEditTime: 2024-04-03 17:10:15 |  * @LastEditTime: 2024-04-25 09:03:50 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| @@ -34,7 +34,7 @@ | |||||||
|         </el-col> |         </el-col> | ||||||
|  |  | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8"> | ||||||
|           <base-container :no-content-padding="true" :title="'产量及良率统计'" :size="'small'" |           <base-container :show-time="true" :no-content-padding="true" :title="'产量及良率统计'" :size="'small'" | ||||||
|             :title-icon="'energyMonitoring'"> |             :title-icon="'energyMonitoring'"> | ||||||
|             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> |             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> | ||||||
|               <top-radio-group /> |               <top-radio-group /> | ||||||
| @@ -53,7 +53,8 @@ | |||||||
|         </el-col> |         </el-col> | ||||||
|  |  | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8"> | ||||||
|           <base-container :no-content-padding="true" :title="'ISRA 缺陷数据'" :size="'small'" :title-icon="'scrap'"> |           <base-container :show-time="true" :no-content-padding="true" :title="'ISRA 缺陷数据'" :size="'small'" | ||||||
|  |             :title-icon="'scrap'"> | ||||||
|             <!-- <base-table1 :page="1" :limit="999" :show-index="false" :table-config="ISRATableProps" |             <!-- <base-table1 :page="1" :limit="999" :show-index="false" :table-config="ISRATableProps" | ||||||
|               :table-data="ISRAList" /> --> |               :table-data="ISRAList" /> --> | ||||||
|             <ISRAChart ref="ISRAChart" /> |             <ISRAChart ref="ISRAChart" /> | ||||||
| @@ -64,8 +65,8 @@ | |||||||
|  |  | ||||||
|       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="10" type="flex" class="flex-1"> |       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="10" type="flex" class="flex-1"> | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12"> | ||||||
|           <base-container :no-content-padding="true" :height="256" :title="'废片 缺陷数据'" :size="'eqStatus'" |           <base-container :show-time="true" :no-content-padding="true" :height="256" :title="'废片 缺陷数据'" | ||||||
|             :title-icon="'scrap'"> |             :size="'eqStatus'" :title-icon="'scrap'"> | ||||||
|             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> |             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> | ||||||
|               <top-radio-group /> |               <top-radio-group /> | ||||||
|             </div> --> |             </div> --> | ||||||
| @@ -98,7 +99,8 @@ | |||||||
|           </base-container> |           </base-container> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="14"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="14"> | ||||||
|           <base-container :height="318 + 338 + 16" :size="'eqStatus'" :title="'设备状态监控'" :title-icon="'eqMonitoring'"> |           <base-container :show-time="false" :height="318 + 338 + 16" :size="'eqStatus'" :title="'设备状态监控'" | ||||||
|  |             :title-icon="'eqMonitoring'"> | ||||||
|             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> |             <!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;"> | ||||||
|               <top-radio-group /> |               <top-radio-group /> | ||||||
|             </div> --> |             </div> --> | ||||||
| @@ -418,7 +420,7 @@ export default { | |||||||
|         //   yield:ele.yield |         //   yield:ele.yield | ||||||
|         // }) |         // }) | ||||||
|         sumAreaList.push(ele.sumArea) |         sumAreaList.push(ele.sumArea) | ||||||
|         yieldList.push((ele.yield * 100).toFixed(3)) |         yieldList.push((ele.yield * 100).toFixed(0)) | ||||||
|       }) |       }) | ||||||
|       this.$nextTick(() => { |       this.$nextTick(() => { | ||||||
|         this.$refs.productChart.initChart(nameList, yieldList, sumAreaList) |         this.$refs.productChart.initChart(nameList, yieldList, sumAreaList) | ||||||
| @@ -625,8 +627,8 @@ export default { | |||||||
|             `<span style="color:rgba(255,255,255,0.5)">${this.getSize(item.size) || ''}</span>`, |             `<span style="color:rgba(255,255,255,0.5)">${this.getSize(item.size) || ''}</span>`, | ||||||
|             `<span style="color:rgba(255,255,255,0.5)">${this.NumFormat(item.productArea) + '㎡' || ''}</span>`, |             `<span style="color:rgba(255,255,255,0.5)">${this.NumFormat(item.productArea) + '㎡' || ''}</span>`, | ||||||
|             `<span style="color:rgba(255,255,255,0.5)">${this.NumFormat(item.wasteArea) + '㎡' || ''}</span>`, |             `<span style="color:rgba(255,255,255,0.5)">${this.NumFormat(item.wasteArea) + '㎡' || ''}</span>`, | ||||||
|             `<div style = "${(item.product * 100).toFixed(2) > 91 ? 'display:block;color:#00FFF7' : 'display:none;'}">${(item.product * 100).toFixed(2) + '%' || ''}</div> |             `<div style = "${(item.product * 100).toFixed(0) >= 91 ? 'display:block;color:#00FFF7' : 'display:none;'}">${(item.product * 100).toFixed(0) + '%' || ''}</div> | ||||||
|            <div style = "${(item.product * 100).toFixed(2) < 91 ? 'display:block; color:rgba(255, 209, 96, 1)' : 'display:none;'}">${(item.product * 100).toFixed(2) + '%' || ''}</div>` |            <div style = "${(item.product * 100).toFixed(0) <= 91 ? 'display:block; color:rgba(255, 209, 96, 1)' : 'display:none;'}">${(item.product * 100).toFixed(2) + '%' || ''}</div>` | ||||||
|           ]) |           ]) | ||||||
|           this.cutConfig.data = cutArr |           this.cutConfig.data = cutArr | ||||||
|           // this.$nextTick(() => { |           // this.$nextTick(() => { | ||||||
| @@ -635,6 +637,7 @@ export default { | |||||||
|           // this.cutConfig.data = cutArr |           // this.cutConfig.data = cutArr | ||||||
|           // this.$refs['cutScrollBoard'].updateRows(cutArr) |           // this.$refs['cutScrollBoard'].updateRows(cutArr) | ||||||
|         } else if (this.cutWsData.type === 'cutting' && this.cutWsData.name === 'chart' && this.cutWsData.dateType === 'day') { |         } else if (this.cutWsData.type === 'cutting' && this.cutWsData.name === 'chart' && this.cutWsData.dateType === 'day') { | ||||||
|  |           if (this.cutWsData.coldDetData.length !== 0) { | ||||||
|             let nameList = [] |             let nameList = [] | ||||||
|             let nameWasteList = [] |             let nameWasteList = [] | ||||||
|             let topNameList = [] |             let topNameList = [] | ||||||
| @@ -651,7 +654,7 @@ export default { | |||||||
|               wasteList.push(ele.wastArea) |               wasteList.push(ele.wastArea) | ||||||
|               nameWasteList.push('缺陷面积:' + this.NumFormat(ele.wastArea) + '㎡') |               nameWasteList.push('缺陷面积:' + this.NumFormat(ele.wastArea) + '㎡') | ||||||
|               sumAreaList.push(ele.sumArea) |               sumAreaList.push(ele.sumArea) | ||||||
|             yieldList.push(parseFloat((ele.yield * 100).toFixed(0))) |               yieldList.push(parseFloat((ele.yield * 100).toFixed(2))) | ||||||
|             }) |             }) | ||||||
|             this.$nextTick(() => { |             this.$nextTick(() => { | ||||||
|               this.$refs.firstPileChart.initChart(nameList, [topNameList[0]], [nameWasteList[0]], [productList[0]], [wasteList[0]]) |               this.$refs.firstPileChart.initChart(nameList, [topNameList[0]], [nameWasteList[0]], [productList[0]], [wasteList[0]]) | ||||||
| @@ -662,6 +665,7 @@ export default { | |||||||
|               this.$refs.productChart.initChart(nameList, yieldList, sumAreaList) |               this.$refs.productChart.initChart(nameList, yieldList, sumAreaList) | ||||||
|             }) |             }) | ||||||
|           } |           } | ||||||
|  |         } | ||||||
|       }; |       }; | ||||||
|       // if (typeof (WebSocket) === 'undefined') { |       // if (typeof (WebSocket) === 'undefined') { | ||||||
|       //   alert('您的浏览器不支持WebSocket') |       //   alert('您的浏览器不支持WebSocket') | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2024-01-29 13:45:56 |  * @Date: 2024-01-29 13:45:56 | ||||||
|  * @LastEditTime: 2024-03-13 08:58:01 |  * @LastEditTime: 2024-04-24 15:48:32 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| @@ -13,6 +13,7 @@ | |||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|  | import { position } from '@antv/x6-common/lib/dom/position'; | ||||||
| import * as echarts from 'echarts'; | import * as echarts from 'echarts'; | ||||||
| // import resize from './../mixins/resize' | // import resize from './../mixins/resize' | ||||||
| // import NotMsg from './../components/NotMsg' | // import NotMsg from './../components/NotMsg' | ||||||
| @@ -26,7 +27,7 @@ export default { | |||||||
| 		return { | 		return { | ||||||
| 			chart: null, | 			chart: null, | ||||||
| 			// notMsg:true, | 			// notMsg:true, | ||||||
| 			colors:['#2760ff', '#518eec', '#0ee8e4', '#ddb523'], |       colors: ['#2760ff', '#518eec', '#49FBD6', '#ddb523'], | ||||||
| 			chartData: [] | 			chartData: [] | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| @@ -46,7 +47,48 @@ export default { | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|   }, |   }, | ||||||
|  |   mounted() { | ||||||
|  |     this.chartData = [ | ||||||
|  |       { | ||||||
|  |         name: '0904褶皱/严重', | ||||||
|  |         num: 1112, | ||||||
|  |         yield: 0.97, | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: '0904褶皱/严重', | ||||||
|  |         num: 1112, | ||||||
|  |         yield: 0.97, | ||||||
|  |       }, | ||||||
|  |        { | ||||||
|  |          name: '0904褶皱/严重', | ||||||
|  |         num: 1112, | ||||||
|  |         yield: 0.97, | ||||||
|  |       }, | ||||||
|  |        { | ||||||
|  |          name: '0904褶皱/严重', | ||||||
|  |         num: 1112, | ||||||
|  |         yield: 0.97, | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|  |     this.updateChart() | ||||||
|  |   }, | ||||||
|   methods: { |   methods: { | ||||||
|  |     getEqualNewlineString(params, length) { | ||||||
|  |       let text = '' | ||||||
|  |       let count = Math.ceil(params.length / length) // 向上取整数 | ||||||
|  |       // 一行展示length个 | ||||||
|  |       if (count > 1) { | ||||||
|  |         for (let z = 1; z <= count; z++) { | ||||||
|  |           text += params.substr((z - 1) * length, length) | ||||||
|  |           if (z < count) { | ||||||
|  |             text += '\n' | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } else { | ||||||
|  |         text += params.substr(0, length) | ||||||
|  |       } | ||||||
|  |       return text | ||||||
|  |     }, | ||||||
| 		updateChart() { | 		updateChart() { | ||||||
| 			console.log('update') | 			console.log('update') | ||||||
| 			let num = 0 | 			let num = 0 | ||||||
| @@ -71,7 +113,7 @@ export default { | |||||||
| 				color:this.colors, | 				color:this.colors, | ||||||
| 				title:{ | 				title:{ | ||||||
| 					text: num, | 					text: num, | ||||||
| 					subtext: '总数', | 					subtext: '总数/个', | ||||||
| 					top: '32%', | 					top: '32%', | ||||||
| 					left: '49%', | 					left: '49%', | ||||||
| 					textAlign: 'center', | 					textAlign: 'center', | ||||||
| @@ -84,44 +126,76 @@ export default { | |||||||
| 						color: '#fff00', | 						color: '#fff00', | ||||||
| 					}, | 					}, | ||||||
|         }, |         }, | ||||||
| 				legend: { |         grid: { | ||||||
| 					bottom: '10%', |           left: '1%', | ||||||
| 					left: 'center', |           right: '1%', | ||||||
| 					itemWidth: 12, |           bottom: '0', | ||||||
| 					itemHeight:12, |           containLabel: true | ||||||
|           icon: 'rect', |  | ||||||
| 					textStyle: { |  | ||||||
| 						color: '#fff' |  | ||||||
| 					}, |  | ||||||
| 					data:this.chartData && this.chartData.length > 0 && this.chartData.map((item,index)=>({ |  | ||||||
| 						name:item.name, |  | ||||||
| 						itemStyle:{ |  | ||||||
| 							color: this.colors[index%4] |  | ||||||
| 						} |  | ||||||
| 					})) |  | ||||||
|         }, |         }, | ||||||
|  | 				// legend: { | ||||||
|  | 				// 	bottom: '10%', | ||||||
|  | 				// 	left: 'center', | ||||||
|  | 				// 	itemWidth: 12, | ||||||
|  | 				// 	itemHeight:12, | ||||||
|  |         //   icon: 'roundRect', | ||||||
|  | 				// 	textStyle: { | ||||||
|  | 				// 		color: '#fff' | ||||||
|  | 				// 	}, | ||||||
|  | 				// 	data:this.chartData && this.chartData.length > 0 && this.chartData.map((item,index)=>({ | ||||||
|  | 				// 		name:item.name, | ||||||
|  | 				// 		itemStyle:{ | ||||||
|  | 				// 			color: this.colors[index%4] | ||||||
|  | 				// 		} | ||||||
|  | 				// 	})) | ||||||
|  | 				// }, | ||||||
| 				series:[{ | 				series:[{ | ||||||
| 						name: 'ISRA缺陷检测', | 						name: 'ISRA缺陷检测', | ||||||
|             type: 'pie', |             type: 'pie', | ||||||
|  |             // position:outerHeight, | ||||||
| 						center: ['50%', '40%'], | 						center: ['50%', '40%'], | ||||||
| 						radius: ['45%', '70%'], | 						radius: ['45%', '70%'], | ||||||
| 						avoidLabelOverlap: true, | 						avoidLabelOverlap: true, | ||||||
|           label: { |           label: { | ||||||
| 							show: false |             show: true, | ||||||
|  |             normal: { | ||||||
|  |               alignTo: 'labelLine', | ||||||
|  |               margin: 10, | ||||||
|  |               edgeDistance: 10, | ||||||
|  |               lineHeight: 16, | ||||||
|  |               // 各分区的提示内容 | ||||||
|  |               // params: 即下面传入的data数组,通过自定义函数,展示你想要的内容和格式 | ||||||
|  |               formatter: function (params) { | ||||||
|  |                 console.log(params); | ||||||
|  |                 return ; | ||||||
|  |               }, | ||||||
|  |               formatter: (params) => { | ||||||
|  |                 //调用自定义显示格式 | ||||||
|  |                 return this.getEqualNewlineString(params.value + " | " + params.percent.toFixed(0) + "%"); | ||||||
|  |               }, | ||||||
|  |               textStyle: {            // 提示文字的样式 | ||||||
|  |                 // color: '#595959', | ||||||
|  |                 fontSize: 16 | ||||||
|  |               } | ||||||
|  |             } | ||||||
| 						}, | 						}, | ||||||
| 						labelLine: { | 						labelLine: { | ||||||
|               show: true, |               show: true, | ||||||
|  |               length: 25, | ||||||
|  |               length2: 10, | ||||||
| 						}, | 						}, | ||||||
| 						data: this.chartData && this.chartData.length > 0 && this.chartData.map((item, index) => ({ | 						data: this.chartData && this.chartData.length > 0 && this.chartData.map((item, index) => ({ | ||||||
| 						name:item.name, | 						name:item.name, | ||||||
|             value: item.num, |             value: item.num, | ||||||
|  |             label: { | ||||||
|  |               color: this.colors[index % 4] | ||||||
|  |             }, | ||||||
| 						itemStyle:{ | 						itemStyle:{ | ||||||
| 							color:{ | 							color:{ | ||||||
| 								type: 'linear', | 								type: 'linear', | ||||||
| 								x: 1, | 								x: 0, | ||||||
| 								y: 1, | 								y: 0, | ||||||
| 								x2: 0, | 								x2: 0, | ||||||
| 								y2: 0, | 								y2: 1, | ||||||
| 								global: false, | 								global: false, | ||||||
| 								colorStops:[ | 								colorStops:[ | ||||||
| 									{offset: 0,color: this.colors[index%4]}, | 									{offset: 0,color: this.colors[index%4]}, | ||||||
| @@ -145,15 +219,19 @@ export default { | |||||||
| .isra-chart { | .isra-chart { | ||||||
| 	width: 100%; | 	width: 100%; | ||||||
| 	height: 100%; | 	height: 100%; | ||||||
|  |   position: absolute; | ||||||
|  |   top: 7%; | ||||||
| } | } | ||||||
| </style> |  | ||||||
| <style> |  | ||||||
|     .isra-chart-tooltip { |     .isra-chart-tooltip { | ||||||
|       background: #0a2b4f77 !important; |       background: #0a2b4f77 !important; | ||||||
|       border: none !important; |       border: none !important; | ||||||
|       backdrop-filter: blur(12px); |       backdrop-filter: blur(12px); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     .isra-chart-tooltip * { |     .isra-chart-tooltip * { | ||||||
|       color: #fff !important; |       color: #fff !important; | ||||||
|     } |     } | ||||||
| </style> | </style> | ||||||
|  | <style> | ||||||
|  |  | ||||||
|  | </style> | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: gtz |  * @Author: gtz | ||||||
|  * @Date: 2022-01-19 15:58:17 |  * @Date: 2022-01-19 15:58:17 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @LastEditTime: 2024-03-29 14:47:29 |  * @LastEditTime: 2024-04-22 09:41:21 | ||||||
|  * @Description: file content |  * @Description: file content | ||||||
|  * @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseContainer\index.vue |  * @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseContainer\index.vue | ||||||
| --> | --> | ||||||
| @@ -30,7 +30,7 @@ | |||||||
|         <!-- <span v-if="showTime" style="font-size: 20px;color:#52FFF8;margin-left: 10px;margin-top: 2px;"> |         <!-- <span v-if="showTime" style="font-size: 20px;color:#52FFF8;margin-left: 10px;margin-top: 2px;"> | ||||||
|           {{ time2 +'-'+ time }} |           {{ time2 +'-'+ time }} | ||||||
|         </span> --> |         </span> --> | ||||||
|         <span  style="font-size: 20px;color:#52FFF8;margin-left: 10px;margin-top: 2px;"> |         <span v-if="showTime"  style="font-size: 20px;color:#52FFF8;margin-left: 10px;margin-top: 2px;"> | ||||||
|           {{ startTime + '-' + endTime }} |           {{ startTime + '-' + endTime }} | ||||||
|         </span> |         </span> | ||||||
|       </div> |       </div> | ||||||
| @@ -56,6 +56,10 @@ export default { | |||||||
|       type: Boolean, |       type: Boolean, | ||||||
|       default: true |       default: true | ||||||
|     }, |     }, | ||||||
|  |     showTime: { | ||||||
|  |       type: Boolean, | ||||||
|  |       default: true | ||||||
|  |     }, | ||||||
|     noPadding: { |     noPadding: { | ||||||
|       type: Boolean, |       type: Boolean, | ||||||
|       default: false |       default: false | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-09-21 09:06:28 |  * @Date: 2023-09-21 09:06:28 | ||||||
|  * @LastEditTime: 2024-04-03 16:28:40 |  * @LastEditTime: 2024-04-23 15:34:56 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| @@ -83,6 +83,9 @@ export default { | |||||||
|     this.chart = null |     this.chart = null | ||||||
|   }, |   }, | ||||||
|   methods: { |   methods: { | ||||||
|  |     // getNumLength(num) { | ||||||
|  |     //   return num.toString().length; | ||||||
|  |     // }, | ||||||
|     initChart(nameList, passRateList, outputNumList) { |     initChart(nameList, passRateList, outputNumList) { | ||||||
|       console.log(nameList, passRateList) |       console.log(nameList, passRateList) | ||||||
|      let  series= [ |      let  series= [ | ||||||
| @@ -97,7 +100,7 @@ export default { | |||||||
|                { offset: 0.3, color: '#1295FF' } |                { offset: 0.3, color: '#1295FF' } | ||||||
|              ]), |              ]), | ||||||
|              label: { |              label: { | ||||||
|                show: true,		//开启显示 |                show: false,		//开启显示 | ||||||
|                position: 'top',	//在上方显示 |                position: 'top',	//在上方显示 | ||||||
|                textStyle: {	    //数值样式 |                textStyle: {	    //数值样式 | ||||||
|                  color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 |                  color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 | ||||||
| @@ -156,6 +159,8 @@ export default { | |||||||
|       this.chart.setOption({ |       this.chart.setOption({ | ||||||
|         // color: colors, |         // color: colors, | ||||||
|         tooltip: { |         tooltip: { | ||||||
|  |           trigger: 'item', | ||||||
|  |           className: "isra-chart-tooltip", | ||||||
|           trigger: 'axis', |           trigger: 'axis', | ||||||
|           axisPointer: { |           axisPointer: { | ||||||
|             type: 'cross' |             type: 'cross' | ||||||
| @@ -216,15 +221,17 @@ export default { | |||||||
|         // }, |         // }, | ||||||
|         yAxis: [ |         yAxis: [ | ||||||
|           { |           { | ||||||
|             min: function() { // 取最小值向下取整为最小刻度 |             min: function () { // 取最小值向下取整为最小刻度 | ||||||
|               return 0 |               return 0 | ||||||
|             }, |             }, | ||||||
|             max: function(value) { // 取最大值向上取整为最大刻度 |             max: function (value) { // 取最大值向上取整为最大刻度 | ||||||
|               return Math.ceil(value.max) |  | ||||||
|             }, |             }, | ||||||
|             scale: true, |             scale: true, | ||||||
|             type: 'value', |             type: 'value', | ||||||
|             name: '良品率/%', |             name: '良品率/%', | ||||||
|  |             max: 100,//最大值 | ||||||
|  |             min: 0,//最小值 | ||||||
|  |             interval: 20,//间隔 | ||||||
|             nameTextStyle: {// y轴上方单位的颜色 |             nameTextStyle: {// y轴上方单位的颜色 | ||||||
|               color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 |               color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 | ||||||
|               align: "left", |               align: "left", | ||||||
| @@ -261,12 +268,17 @@ export default { | |||||||
|             // }, |             // }, | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             min: function() { // 取最小值向下取整为最小刻度 |             min: function () { // 取最小值向下取整为最小刻度 | ||||||
|               return 0 |               return 0 | ||||||
|             }, |             }, | ||||||
|             max: function(value) { // 取最大值向上取整为最大刻度 |             max: function (value) { // 取最大值向上取整为最大刻度 | ||||||
|               return Math.ceil(value.max) |  | ||||||
|  |               // console.log(value.max.toString().length) | ||||||
|  |               // String(value.max)[0] | ||||||
|  |               // for | ||||||
|  |               // return String(value.max)[0] + | ||||||
|             }, |             }, | ||||||
|  |             minInterval: 5,//间隔 | ||||||
|             scale: true, |             scale: true, | ||||||
|             type: 'value', |             type: 'value', | ||||||
|             name: '产量/㎡', // y轴上方的单位 |             name: '产量/㎡', // y轴上方的单位 | ||||||
| @@ -315,8 +327,16 @@ export default { | |||||||
| } | } | ||||||
| </script> | </script> | ||||||
| <style> | <style> | ||||||
|  |  | ||||||
| .coldProductChart{ | .coldProductChart{ | ||||||
|   top: -10px; |   top: -10px; | ||||||
| } | } | ||||||
|  | .isra-chart-tooltip { | ||||||
|  |   background: #0a2b4f77 !important; | ||||||
|  |   border: none !important; | ||||||
|  |   backdrop-filter: blur(12px); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  .isra-chart-tooltip * { | ||||||
|  |   color: #fff !important; | ||||||
|  |   } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-09-21 09:06:28 |  * @Date: 2023-09-21 09:06:28 | ||||||
|  * @LastEditTime: 2024-04-03 17:09:12 |  * @LastEditTime: 2024-04-23 15:36:35 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| @@ -162,6 +162,8 @@ export default { | |||||||
|         this.chart.setOption({ |         this.chart.setOption({ | ||||||
|           // color: colors, |           // color: colors, | ||||||
|           tooltip: { |           tooltip: { | ||||||
|  |             trigger: 'item', | ||||||
|  |             className: "isra-chart-tooltip", | ||||||
|             trigger: 'axis', |             trigger: 'axis', | ||||||
|             axisPointer: { |             axisPointer: { | ||||||
|               type: 'cross' |               type: 'cross' | ||||||
| @@ -215,15 +217,17 @@ export default { | |||||||
|           // }, |           // }, | ||||||
|           yAxis: [ |           yAxis: [ | ||||||
|             { |             { | ||||||
|               // min: function() { // 取最小值向下取整为最小刻度 |               min: function () { // 取最小值向下取整为最小刻度 | ||||||
|               //   return 0 |                 return 0 | ||||||
|               // }, |               }, | ||||||
|               // max: function(value) { // 取最大值向上取整为最大刻度 |               max: function (value) { // 取最大值向上取整为最大刻度 | ||||||
|               //   return Math.ceil(value.max) |               }, | ||||||
|               // }, |  | ||||||
|               scale: true, |               scale: true, | ||||||
|               type: 'value', |               type: 'value', | ||||||
|               name: '良品率/%', |               name: '良品率/%', | ||||||
|  |               max: 100,//最大值 | ||||||
|  |               min: 0,//最小值 | ||||||
|  |               interval: 20,//间隔 | ||||||
|               nameTextStyle: {// y轴上方单位的颜色 |               nameTextStyle: {// y轴上方单位的颜色 | ||||||
|                 color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 |                 color: 'rgba(255,255,255,0.5)', // 坐标值得具体的颜色 | ||||||
|                 align: "left", |                 align: "left", | ||||||
| @@ -260,12 +264,17 @@ export default { | |||||||
|               // }, |               // }, | ||||||
|             }, |             }, | ||||||
|             { |             { | ||||||
|               // min: function() { // 取最小值向下取整为最小刻度 |               min: function () { // 取最小值向下取整为最小刻度 | ||||||
|               //   return 0 |                 return 0 | ||||||
|               // }, |               }, | ||||||
|               // max: function(value) { // 取最大值向上取整为最大刻度 |               max: function (value) { // 取最大值向上取整为最大刻度 | ||||||
|               //   return Math.ceil(value.max) |  | ||||||
|               // }, |                 // console.log(value.max.toString().length) | ||||||
|  |                 // String(value.max)[0] | ||||||
|  |                 // for | ||||||
|  |                 // return String(value.max)[0] + | ||||||
|  |               }, | ||||||
|  |               minInterval: 5,//间隔 | ||||||
|               scale: true, |               scale: true, | ||||||
|               type: 'value', |               type: 'value', | ||||||
|               name: '产量/片', // y轴上方的单位 |               name: '产量/片', // y轴上方的单位 | ||||||
| @@ -324,4 +333,13 @@ export default { | |||||||
|   width: 100%; |   width: 100%; | ||||||
|   top: -30px; |   top: -30px; | ||||||
| } | } | ||||||
|  |     .isra-chart-tooltip { | ||||||
|  |       background: #0a2b4f77 !important; | ||||||
|  |       border: none !important; | ||||||
|  |       backdrop-filter: blur(12px); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .isra-chart-tooltip * { | ||||||
|  |       color: #fff !important; | ||||||
|  |     } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -128,6 +128,8 @@ export default { | |||||||
|         this.chart.setOption({ |         this.chart.setOption({ | ||||||
|           tooltip: { |           tooltip: { | ||||||
|             trigger: 'axis', |             trigger: 'axis', | ||||||
|  |             trigger: 'item', | ||||||
|  |             className: "isra-chart-tooltip", | ||||||
|             axisPointer: { |             axisPointer: { | ||||||
|               // 坐标轴指示器,坐标轴触发有效 |               // 坐标轴指示器,坐标轴触发有效 | ||||||
|               type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' |               type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' | ||||||
| @@ -226,4 +228,13 @@ export default { | |||||||
|   width: 100%; |   width: 100%; | ||||||
|   top: -30px; |   top: -30px; | ||||||
| } | } | ||||||
|  | .isra-chart-tooltip { | ||||||
|  |   background: #0a2b4f77 !important; | ||||||
|  |   border: none !important; | ||||||
|  |   backdrop-filter: blur(12px); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .isra-chart-tooltip * { | ||||||
|  |   color: #fff !important; | ||||||
|  | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: zhp |  * @Author: zhp | ||||||
|  * @Date: 2023-12-27 13:54:52 |  * @Date: 2023-12-27 13:54:52 | ||||||
|  * @LastEditTime: 2024-04-03 18:12:18 |  * @LastEditTime: 2024-04-19 15:43:08 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| @@ -101,6 +101,9 @@ export default { | |||||||
|       });; |       });; | ||||||
|     }, |     }, | ||||||
|     initChart(nameList, topNameList, nameWasteList, passRateList, wasteList) { |     initChart(nameList, topNameList, nameWasteList, passRateList, wasteList) { | ||||||
|  |       if (topNameList.length === 0 && nameWasteList.length === 0 && passRateList === 0 && wasteList === 0) { | ||||||
|  |         return | ||||||
|  |       } else { | ||||||
|         let rawData = [] |         let rawData = [] | ||||||
|         let colors = ['#0fdedb', '#2359ec'] |         let colors = ['#0fdedb', '#2359ec'] | ||||||
|         rawData.push(passRateList, wasteList) |         rawData.push(passRateList, wasteList) | ||||||
| @@ -136,7 +139,7 @@ export default { | |||||||
|             //   show: true, |             //   show: true, | ||||||
|             //   formatter: (params) => Math.round(params.value * 1000) / 10 + '%' |             //   formatter: (params) => Math.round(params.value * 1000) / 10 + '%' | ||||||
|             // }, |             // }, | ||||||
|           color:colors[sid], |             color: colors[sid], | ||||||
|             data: rawData.length != 0 ? rawData[sid].map((d, did) => |             data: rawData.length != 0 ? rawData[sid].map((d, did) => | ||||||
|               totalData[did] <= 0 ? 0 : (d / totalData[did]).toFixed(4) |               totalData[did] <= 0 ? 0 : (d / totalData[did]).toFixed(4) | ||||||
|             ) : [] |             ) : [] | ||||||
| @@ -167,7 +170,7 @@ export default { | |||||||
|               let singleData = series.filter(function (item) { |               let singleData = series.filter(function (item) { | ||||||
|                 return item.name == name |                 return item.name == name | ||||||
|               }) |               }) | ||||||
|             return name + parseFloat((singleData[0].data * 100).toFixed(0)) + '%' |               return name + parseFloat((singleData[0].data * 100).toFixed(2)) + '%' | ||||||
|             }, |             }, | ||||||
|             itemWidth: 12, |             itemWidth: 12, | ||||||
|             itemHeight: 12, |             itemHeight: 12, | ||||||
| @@ -176,11 +179,11 @@ export default { | |||||||
|             icon: 'roundRect', |             icon: 'roundRect', | ||||||
|             textStyle: { |             textStyle: { | ||||||
|               color: 'rgba(255,255,255,.9)', |               color: 'rgba(255,255,255,.9)', | ||||||
|             fontSize:12, |               fontSize: 12, | ||||||
|             } |             } | ||||||
|           }, |           }, | ||||||
|           grid: { |           grid: { | ||||||
|           top:'0', |             top: '0', | ||||||
|             left: '3%', |             left: '3%', | ||||||
|             right: '4%', |             right: '4%', | ||||||
|             // bottom: '3%', |             // bottom: '3%', | ||||||
| @@ -250,13 +253,15 @@ export default { | |||||||
|             // max: 120, |             // max: 120, | ||||||
|             show: false, |             show: false, | ||||||
|           }, |           }, | ||||||
|         series:series |           series: series | ||||||
|         }) |         }) | ||||||
|         this.$nextTick(() => { |         this.$nextTick(() => { | ||||||
|           setTimeout(() => { |           setTimeout(() => { | ||||||
|             this.resize() |             this.resize() | ||||||
|         },1000); |           }, 1000); | ||||||
|         }) |         }) | ||||||
|  |       } | ||||||
|  |  | ||||||
|       // this.chart.resize({ |       // this.chart.resize({ | ||||||
|       //   width: 'auto', |       //   width: 'auto', | ||||||
|       //   height: 90 |       //   height: 90 | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: zwq |  * @Author: zwq | ||||||
|  * @Date: 2021-07-19 15:18:30 |  * @Date: 2021-07-19 15:18:30 | ||||||
|  * @LastEditors: zhp |  * @LastEditors: zhp | ||||||
|  * @LastEditTime: 2024-04-03 17:14:03 |  * @LastEditTime: 2024-04-26 09:57:41 | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
| @@ -25,25 +25,46 @@ | |||||||
|     <el-row class="container-main flex-col" type="flex"> |     <el-row class="container-main flex-col" type="flex"> | ||||||
|       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1" style="height: 50%"> |       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1" style="height: 50%"> | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> | ||||||
|           <base-container :title="'设备报警'" :size="'small'" :height="318" :title-icon="'eqAlarm'"> |           <base-container :show-time="true" :title="'设备报警'" :size="'small'" :height="318" :title-icon="'eqAlarm'"> | ||||||
|             <dv-scroll-board class="eqTable" :config="eqConfig" style="width: 100%; height: 350px" |             <dv-scroll-board class="eqTable" :config="eqConfig" style="width: 100%; height: 350px" | ||||||
|               ref="eqScrollBoard" /> |               ref="eqScrollBoard" /> | ||||||
|           </base-container> |           </base-container> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> | ||||||
|           <base-container :title="'各工序缺陷汇总'" :size="'small'" :title-icon="'scrap'"> |           <base-container :show-time="true" :title="'各工序缺陷汇总'" :size="'small'" :title-icon="'scrap'"> | ||||||
|             <dv-scroll-board :config="processConfig" style="width: 100%; height: 350px" ref="processScrollBoard" /> |             <dv-scroll-board :config="processConfig" style="width: 100%; height: 350px" ref="processScrollBoard" /> | ||||||
|           </base-container> |           </base-container> | ||||||
|         </el-col> |         </el-col> | ||||||
|  |  | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%"> | ||||||
|           <base-container :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'"> |           <base-container :show-time="false" :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'"> | ||||||
|             <div class="order" style="width: 100%; overflow: hidden scroll; height: 350px"> |             <div class="order" style="width: 100%; overflow: hidden scroll; height: 350px"> | ||||||
|               <el-row v-for="op in orderList" :key="op.id" style="margin-bottom: .5em"> |               <el-row v-for="op in orderList" :key="op.id" style="margin-bottom: .5em;overflow: hidden;"> | ||||||
|                 <!-- <el-col :span="12"> --> |                 <!-- <el-col :span="12"> --> | ||||||
|  |                 <!-- <div style="height: 34px;"> --> | ||||||
|                 <p class="now-secondary-title" style="font-size: 14px;opacity: calc(.6);">{{ op.name }}</p> |                 <span style="display: inline-block;width: 400px"> | ||||||
|                 <el-progress style="width: 620px;" text-color="rgba(255, 255, 255, .6)" :stroke-width="10" |                   <span v-if="op.name" class="now-secondary-title" style="font-size: 14px;opacity: calc(.6);">{{ op.name | ||||||
|  |                   }}</span> | ||||||
|  |                   <el-divider v-if="op.specifications" class="split" direction="vertical"></el-divider> | ||||||
|  |                   <!-- <span v-if="op.size" class="split"></span> --> | ||||||
|  |                   <span v-if="op.specifications" class="orderSize" style="font-size: 14px;opacity: calc(.6);">{{ | ||||||
|  |                   op.specifications }}</span> | ||||||
|  |                   <el-divider class="split" v-if="op.planQuantity" direction="vertical"></el-divider> | ||||||
|  |                   <span v-if="op.planQuantity" class="orderPlan" style="font-size: 14px;opacity: calc(.6);">{{ | ||||||
|  |                   op.planQuantity }}</span> | ||||||
|  |                   <span v-if="op.planQuantity" class="orderFinishTwo" | ||||||
|  |                     style="font-size: 14px;opacity: calc(.6);">片</span> | ||||||
|  |                 </span> | ||||||
|  |                 <!-- <span style="overflow: hidden;"> --> | ||||||
|  |                 <span class="orderFinish" style="font-size: 14px;margin-left: 40px;">{{ | ||||||
|  |                 op.actualQuantity | ||||||
|  |                 }}</span> | ||||||
|  |                 <span v-if="op.actualQuantity" class="orderFinishTwo" style="font-size: 14px">片</span> | ||||||
|  |                 <el-divider class="split" style="background-color: rgba(0, 255, 247, 1)" v-if="op.actualQuantity" | ||||||
|  |                   direction="vertical"></el-divider> | ||||||
|  |                 <!-- </span> --> | ||||||
|  |                 <!-- </div> --> | ||||||
|  |                 <el-progress style="width: 620px;" text-color="rgba(0, 255, 247, 1)" :stroke-width="10" | ||||||
|                   define-back-color="rgba(32, 57, 96, 1)" :percentage="op.progressRate" class="custom-progress-bar" /> |                   define-back-color="rgba(32, 57, 96, 1)" :percentage="op.progressRate" class="custom-progress-bar" /> | ||||||
|               </el-row> |               </el-row> | ||||||
|             </div> |             </div> | ||||||
| @@ -54,8 +75,8 @@ | |||||||
|  |  | ||||||
|       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12" type="flex" class="flex-1"> |       <el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12" type="flex" class="flex-1"> | ||||||
|         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12"> |         <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12"> | ||||||
|           <base-container :show-yes-time="true" :no-content-padding="true" :height="256" :size="'eqStatus'" |           <base-container :show-time="true" :show-yes-time="true" :no-content-padding="true" :height="256" | ||||||
|             :title="'能源监控'" :title-icon="'energyMonitoring'"> |             :size="'eqStatus'" :title="'能源监控'" :title-icon="'energyMonitoring'"> | ||||||
|             <el-row :gutter="9"> |             <el-row :gutter="9"> | ||||||
|               <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24"> |               <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24"> | ||||||
|                 <linear-bar-chart ref="EnergyMonitoringChart" :name-list="EnergyMonitoringNameList" |                 <linear-bar-chart ref="EnergyMonitoringChart" :name-list="EnergyMonitoringNameList" | ||||||
| @@ -96,79 +117,79 @@ const qualityYearList = [ | |||||||
| 		name: '翻转机', | 		name: '翻转机', | ||||||
| 		code: 'EQ20240110112358000235', | 		code: 'EQ20240110112358000235', | ||||||
| 		status: '运行', | 		status: '运行', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '烘干炉', | 		name: '烘干炉', | ||||||
| 		code: 'EQ20240110112537000241', | 		code: 'EQ20240110112537000241', | ||||||
| 		status: '运行', | 		status: '停机', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '清洗机', | 		name: '清洗机', | ||||||
| 		code: '	EQ20240110112310000232', | 		code: '	EQ20240110112310000232', | ||||||
| 		status: '运行', |     status: '故障', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '钢化清洗机', | 		name: '钢化清洗机', | ||||||
| 		code: 'EQ20240110111700000208', | 		code: 'EQ20240110111700000208', | ||||||
| 		status: '运行', |     status: '故障', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '固化机', | 		name: '固化机', | ||||||
| 		code: 'EQ20240110111700000201', | 		code: 'EQ20240110111700000201', | ||||||
| 		status: '运行', |     status: '停机', | ||||||
| 		error: '否', |     error: false, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '磨边清洗机', | 		name: '磨边清洗机', | ||||||
| 		code: '	EQ20240110111700000208', | 		code: '	EQ20240110111700000208', | ||||||
| 		status: '运行', |     status: '停机', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '预热机', | 		name: '预热机', | ||||||
| 		code: 'EQ20240110111700000205', | 		code: 'EQ20240110111700000205', | ||||||
| 		status: '故障', |     status: '运行', | ||||||
| 		error: '是', |     error: false, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '下片机', | 		name: '下片机', | ||||||
|     code: 'EQ20240115151435000279', |     code: 'EQ20240115151435000279', | ||||||
| 		status: '运行', |     status: '故障', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '冷却机', | 		name: '冷却机', | ||||||
| 		code: 'EQ20240110111700000203', | 		code: 'EQ20240110111700000203', | ||||||
|     status: '运行', |     status: '运行', | ||||||
| 		error: '否', |     error: false, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: 'A储片机106', | 		name: 'A储片机106', | ||||||
| 		code: 'EQ20240110111700000202', | 		code: 'EQ20240110111700000202', | ||||||
| 		status: '运行', |     status: '停机', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '二次清洗机', | 		name: '二次清洗机', | ||||||
| 		code: 'EQ20240110111700000209', | 		code: 'EQ20240110111700000209', | ||||||
| 		status: '运行', |     status: '停机', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '二次磨边机', | 		name: '二次磨边机', | ||||||
| 		code: '	EQ20240110110927000181', | 		code: '	EQ20240110110927000181', | ||||||
| 		status: '故障', |     status: '停机', | ||||||
| 		error: '是', |     error: false, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		name: '测试设备', | 		name: '测试设备', | ||||||
| 		code: 'EQ20240110111700000201', | 		code: 'EQ20240110111700000201', | ||||||
|     status: '运行', |     status: '运行', | ||||||
| 		error: '否', |     error: true, | ||||||
| 	}, | 	}, | ||||||
| ]; | ]; | ||||||
| const qualityMonthList = [ | const qualityMonthList = [ | ||||||
| @@ -217,37 +238,37 @@ const qualityMonthList = [ | |||||||
| ]; | ]; | ||||||
| const orderProcessList = [ | const orderProcessList = [ | ||||||
| 	{ | 	{ | ||||||
| 		id: '1', | 		id: 1, | ||||||
| 		outRate: '.8', | 		outRate: '.8', | ||||||
| 		name: '凯盛0322', | 		name: '凯盛0322', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '2', | 		id: 2, | ||||||
| 		outRate: '.4', | 		outRate: '.4', | ||||||
| 		name: '光伏玻璃4.0', | 		name: '光伏玻璃4.0', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '3', | 		id: 3, | ||||||
| 		outRate: '.5', | 		outRate: '.5', | ||||||
| 		name: '光伏玻璃3.0', | 		name: '光伏玻璃3.0', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '4', | 		id: 4, | ||||||
| 		outRate: '.3', | 		outRate: '.3', | ||||||
| 		name: '光伏玻璃2.0', | 		name: '光伏玻璃2.0', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '5', | 		id: 5, | ||||||
| 		outRate: '.5', | 		outRate: '.5', | ||||||
| 		name: '光伏玻璃1.0', | 		name: '光伏玻璃1.0', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '6', | 		id: 6, | ||||||
| 		outRate: '.8', | 		outRate: '.8', | ||||||
| 		name: '光伏玻璃', | 		name: '光伏玻璃', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		id: '7', | 		id: 7, | ||||||
| 		outRate: '.8', | 		outRate: '.8', | ||||||
| 		name: '统计订单', | 		name: '统计订单', | ||||||
| 	}, | 	}, | ||||||
| @@ -278,11 +299,11 @@ export default { | |||||||
| 			// equipmentList:[], | 			// equipmentList:[], | ||||||
| 			EnergyMonitoringList: [], | 			EnergyMonitoringList: [], | ||||||
| 			eqConfig: { | 			eqConfig: { | ||||||
| 				header: ['序号', '设备名称', '设备编码', '设备状态', '是否故障'], |         header: ['序号', '产线名', '设备名称', '设备状态'], | ||||||
| 				headerBGC: 'rgba(32, 55, 96, 0.8)', | 				headerBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | ||||||
| 				columnWidth: [70, 100, 200, 90, 90], | 				columnWidth: [70, 150, 200, 120], | ||||||
| 				align: ['center'], | 				align: ['center'], | ||||||
| 				data: [], | 				data: [], | ||||||
| 				// index:true, | 				// index:true, | ||||||
| @@ -363,43 +384,67 @@ export default { | |||||||
| 		let detData = [ | 		let detData = [ | ||||||
| 			{ | 			{ | ||||||
| 				id: '1', | 				id: '1', | ||||||
| 				name: '测试工单', |         name: '镀釉光伏玻璃GW', | ||||||
|         progressRate: 0.933333, |         progressRate: 0.933333, | ||||||
|  |         specifications: '1100*5554*22', | ||||||
|  |         plan: 111111111111, | ||||||
|  |         actualQuantity:1000000111111, | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				id: '2', | 				id: '2', | ||||||
| 				name: '测试工单2', | 				name: '测试工单2', | ||||||
|         progressRate: 0.932323, |         progressRate: 0.932323, | ||||||
|  |         size: '1100*5554*22', | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				id: '3', | 				id: '3', | ||||||
| 				name: '测试工单3', | 				name: '测试工单3', | ||||||
|         progressRate: 0.23232, |         progressRate: 0.23232, | ||||||
|  |         size: '1100*5554*22', | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
| 			}, | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				id: '4', | 				id: '4', | ||||||
| 				name: '测试工单4', | 				name: '测试工单4', | ||||||
|         progressRate: 0.32323, |         progressRate: 0.32323, | ||||||
|  |         size: '1100*5554*22', | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         id: '4', |         id: '5', | ||||||
|         name: '测试工单4', |         name: '测试工单4', | ||||||
|         progressRate: 0.32323, |         progressRate: 0.32323, | ||||||
|  |         size: '1100*5554*22', | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         id: '4', |         id: '6', | ||||||
|         name: '测试工单4', |         name: '测试工单4', | ||||||
|  |         size: '1100*5554*22', | ||||||
|         progressRate: 0.32323, |         progressRate: 0.32323, | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         id: '4', |         id: '7', | ||||||
|         name: '测试工单4', |         name: '测试工单4', | ||||||
|  |         size: '1100*5554*22', | ||||||
|         progressRate: 0.32323, |         progressRate: 0.32323, | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         id: '4', |         id: '8', | ||||||
|         name: '测试工单4', |         name: '测试工单4', | ||||||
|         progressRate: 0.32323, |         progressRate: 0.32323, | ||||||
|  |         size: '1100*5554*22', | ||||||
|  |         plan: 11111, | ||||||
|  |         actualQuantity: 111, | ||||||
|       }, |       }, | ||||||
| 			// { | 			// { | ||||||
| 			//   id: '5', | 			//   id: '5', | ||||||
| @@ -415,8 +460,11 @@ export default { | |||||||
| 			if (ele.progressRate && ele.progressRate != 1) { | 			if (ele.progressRate && ele.progressRate != 1) { | ||||||
| 				return { | 				return { | ||||||
|           id: ele.id, |           id: ele.id, | ||||||
| 					name: ele.name, |           name: this.getStr(String(ele.name), 8), | ||||||
|           progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), |           progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), | ||||||
|  |           specifications: ele.specifications ? '规格' + ele.specifications : '', | ||||||
|  |           planQuantity: ele.plan ? '计划' + this.getStr(String(ele.plan), 6) : '', | ||||||
|  |           actualQuantity: ele.actualQuantity ? this.getStr(String(ele.actualQuantity), 6) : '', | ||||||
| 				}; | 				}; | ||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
| @@ -436,12 +484,10 @@ export default { | |||||||
| 			`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''} | 			`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''} | ||||||
|             </span>`, |             </span>`, | ||||||
| 			// formatDate(item.planStartTime) || '', | 			// formatDate(item.planStartTime) || '', | ||||||
| 			` |       `<span style="color:rgba(255,255,255,0.5)">${item.lineName || ''}</span>`,` | ||||||
|           <span style="color:rgba(255,255,255,0.5)" >${item.name || ''} |           <span style="color:rgba(255,255,255,0.5)" >${item.name || ''} | ||||||
|             </span>`, |             </span>`, | ||||||
| 			`<span style="color:rgba(255,255,255,0.5)">${item.code || ''}</span>`, |       `<span style="color:rgba(255,255,255,0.5)"><div style="${item.status == '运行' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0' : item.status == '停机' ? 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%;background-color: #FFBD02;float:left;margin:13px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%;  background-color: red;float:left;margin:13px 10px 0 0'}"></div>  ${item.status || ''}</span>`, | ||||||
| 			`<span style="color:rgba(255,255,255,0.5)">${item.status || ''}</span>`, |  | ||||||
| 			`<span style="color:rgba(255,255,255,0.5)">${item.error || ''}</span>`, |  | ||||||
| 		]); | 		]); | ||||||
|     this.eqConfig.data = eqArr; |     this.eqConfig.data = eqArr; | ||||||
|     let data = [ |     let data = [ | ||||||
| @@ -520,6 +566,15 @@ export default { | |||||||
| 	//   removeEventListener('resize', resizeFun) | 	//   removeEventListener('resize', resizeFun) | ||||||
| 	// }, | 	// }, | ||||||
|   methods: { |   methods: { | ||||||
|  |     getStr(str,num) { | ||||||
|  |           //你要处理的字符串 | ||||||
|  |       if (str.length > num) {      //如果字符长度超过10,后面的字符就变成...可自行调整长度和代替字符 | ||||||
|  |         str = str.substr(0, num) + "..."   //截取从第一个字符开始,往后取10个字符,剩余的用...代替 | ||||||
|  |         return str | ||||||
|  |       } else { | ||||||
|  |         return str | ||||||
|  |       } | ||||||
|  |     }, | ||||||
| 		getData() { | 		getData() { | ||||||
| 			let processArr = qualityMonthList.map((item, index) => [ | 			let processArr = qualityMonthList.map((item, index) => [ | ||||||
| 				// console.log(item) | 				// console.log(item) | ||||||
| @@ -689,8 +744,11 @@ export default { | |||||||
| 						if (ele.progressRate && ele.progressRate != 1) { | 						if (ele.progressRate && ele.progressRate != 1) { | ||||||
| 							return { | 							return { | ||||||
|                 id: ele.id, |                 id: ele.id, | ||||||
| 								name: ele.name, |                 name: this.getStr(String(ele.name), 8), | ||||||
|                 progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), |                 progressRate: parseFloat((ele.progressRate * 100).toFixed(0)), | ||||||
|  |                 specifications: ele.specifications ? '规格' + ele.specifications : '', | ||||||
|  |                 planQuantity: ele.planQuantity ? '计划' + this.getStr(String(ele.planQuantity),6) : '', | ||||||
|  |                 actualQuantity: ele.actualQuantity ? this.getStr(String(ele.actualQuantity), 6) : '', | ||||||
| 							}; | 							}; | ||||||
| 						} | 						} | ||||||
| 					}); | 					}); | ||||||
| @@ -699,17 +757,13 @@ export default { | |||||||
| 					let eqArr = this.SJGWsData.detData.map((item, index) => [ | 					let eqArr = this.SJGWsData.detData.map((item, index) => [ | ||||||
| 						`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''} | 						`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''} | ||||||
|             </span>`, |             </span>`, | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)">${item.lineName || '' | ||||||
|  |             }</span>`, | ||||||
| 						`<span style="color:rgba(255,255,255,0.5)" >${item.name || ''} | 						`<span style="color:rgba(255,255,255,0.5)" >${item.name || ''} | ||||||
|             </span>`, |             </span>`, | ||||||
| 						`<span style="color:rgba(255,255,255,0.5)">${ |  | ||||||
| 							item.code || '' |             `<span style="color:rgba(255,255,255,0.5)"><div style="${item.status == '运行' ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0' : item.status == '停机' ? 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%;background-color: #FFBD02;float:left;margin:13px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%;  background-color: red;float:left;margin:13px 10px 0 0'}"></div>  ${item.status || ''}</span>`, | ||||||
| 						}</span>`, |             // `<span style="color:rgba(255,255,255,0.5)"><div style="${item.error == false ? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:10px 10px 0 0 ' : 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%;  background-color: red;float:left;margin:10px 10px 0 0 '}"></div>  ${item.error == true ?'是' :'否'  || ''}</span>`, | ||||||
| 						`<span style="color:rgba(255,255,255,0.5)"><span style="color:rgba(255,255,255,0.5)"></span>  ${ |  | ||||||
| 							item.status || '' |  | ||||||
| 						}</span>`, |  | ||||||
| 						`<span style="color:rgba(255,255,255,0.5)">${ |  | ||||||
| 							item.error || '' |  | ||||||
| 						}</span>`, |  | ||||||
| 					]); | 					]); | ||||||
|           this.eqConfig.data = eqArr; |           this.eqConfig.data = eqArr; | ||||||
|           // this.$nextTick(() => { |           // this.$nextTick(() => { | ||||||
| @@ -751,7 +805,23 @@ export default { | |||||||
|               outputNumList |               outputNumList | ||||||
|             ); |             ); | ||||||
|           }) |           }) | ||||||
| 				} else if (this.SJGInitWebSocket === 'inspection') { |         } else if (this.SJGWsData.type === 'inspection') { | ||||||
|  |           let processArr = this.SJGWsData.detData.map((item, index) => [ | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''} | ||||||
|  |             </span>`, | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''} | ||||||
|  |             </span>`, | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)">${item.sectionName || '' | ||||||
|  |             }</span>`, | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)">${item.count || '' | ||||||
|  |             }</span>`, | ||||||
|  |             `<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || '' | ||||||
|  |             }</span>`, | ||||||
|  |           ]); | ||||||
|  |           this.processConfig.data = processArr; | ||||||
|  |           // this.$nextTick(() => { | ||||||
|  |           this.$refs['processScrollBoard'].updateRows(processArr); | ||||||
|  |           // }) | ||||||
| 				} | 				} | ||||||
| 			}; | 			}; | ||||||
| 		}, | 		}, | ||||||
| @@ -802,6 +872,18 @@ export default { | |||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
|  | .split{ | ||||||
|  |   width: 1px; | ||||||
|  |   // display: inline-block; | ||||||
|  |   height: 14px; | ||||||
|  |   // margin-top: 2px; | ||||||
|  |   // line-height: 0; | ||||||
|  |   margin-left: 8px; | ||||||
|  |   opacity:calc(.6); | ||||||
|  |   margin-right: 8px; | ||||||
|  |   background-color: #C8CDD7; | ||||||
|  |   // border: 1px solid #C8CDD7; | ||||||
|  | } | ||||||
| .myLegend { | .myLegend { | ||||||
|   position: absolute; |   position: absolute; | ||||||
|   top: -28px; |   top: -28px; | ||||||
| @@ -902,12 +984,50 @@ export default { | |||||||
| } | } | ||||||
|  |  | ||||||
| .now-secondary-title { | .now-secondary-title { | ||||||
|  |   display: inline-block; | ||||||
|  |   width: 110px; | ||||||
| 	margin: 0; | 	margin: 0; | ||||||
| 	font-size: 1em; | 	font-size: 14px; | ||||||
| 	line-height: 2em; | 	line-height: 2em; | ||||||
| 	color: #fff; | 	color: #fff; | ||||||
| } | } | ||||||
|  | .orderSize { | ||||||
|  |   display: inline-block; | ||||||
|  |   width: 120px; | ||||||
|  |   margin: 0; | ||||||
|  |   font-size: 14px; | ||||||
|  |   line-height: 2em; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .orderFinish { | ||||||
|  |   display: inline-block; | ||||||
|  |   width: 60px; | ||||||
|  |   margin: 0; | ||||||
|  |   font-size: 14px; | ||||||
|  |   text-align: right; | ||||||
|  |   color: rgba(0, 255, 247, 1); | ||||||
|  | } | ||||||
|  | .orderFinishTwo{ | ||||||
|  |   display: inline-block; | ||||||
|  |   width: 15px; | ||||||
|  |   margin: 0; | ||||||
|  |   font-size: 14px; | ||||||
|  |   line-height: 2em; | ||||||
|  |   // text-overflow: ellipsis; | ||||||
|  |   // white-space: nowrap; | ||||||
|  |   // overflow: hidden; | ||||||
|  |   text-align: right; | ||||||
|  |   color: rgba(0, 255, 247, 1); | ||||||
|  | } | ||||||
|  | .orderPlan { | ||||||
|  |   display: inline-block; | ||||||
|  |   // width: 80px; | ||||||
|  |   margin: 0; | ||||||
|  |   font-size: 14px; | ||||||
|  |   // line-height: 2em; | ||||||
|  |   color: #fff; | ||||||
|  |   text-align: left; | ||||||
|  | } | ||||||
| .now-team-content { | .now-team-content { | ||||||
| 	font-size: 3em; | 	font-size: 3em; | ||||||
| 	line-height: 1em; | 	line-height: 1em; | ||||||
|   | |||||||
| @@ -138,7 +138,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-customer:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-customer:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-customer:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -110,7 +110,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-department:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-department:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-department:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -156,11 +156,11 @@ export default { | |||||||
| 					prop: 'createTime', | 					prop: 'createTime', | ||||||
| 					label: '添加时间', | 					label: '添加时间', | ||||||
| 					fixed: true, | 					fixed: true, | ||||||
| 					width: 180, | 					minWidth: 180, | ||||||
| 					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | 					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | ||||||
| 				}, | 				}, | ||||||
| 				{ prop: 'name', label: '设备名称', width: 180, showOverflowtooltip: true }, | 				{ prop: 'name', label: '设备名称', minWidth: 180, showOverflowtooltip: true }, | ||||||
| 				{ width: 250, prop: 'code', label: '设备编码' }, | 				{ minWidth: 250, prop: 'code', label: '设备编码' }, | ||||||
| 				{ prop: 'equipmentTypeName', label: '设备类型' }, | 				{ prop: 'equipmentTypeName', label: '设备类型' }, | ||||||
| 				{ prop: 'enName', label: '英文名称' }, | 				{ prop: 'enName', label: '英文名称' }, | ||||||
| 				{ prop: 'abbr', label: '缩写' }, | 				{ prop: 'abbr', label: '缩写' }, | ||||||
| @@ -211,7 +211,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: (this.$auth.hasPermi('base:core-equipment:export') || this.$auth.hasPermi('base:core-equipment:create')) ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-equipment:export') | 					type: this.$auth.hasPermi('base:core-equipment:export') | ||||||
|   | |||||||
| @@ -126,7 +126,8 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-equipment-bind-section:create') | ||||||
|  | 						? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-equipment-bind-section:create') | 					type: this.$auth.hasPermi('base:core-equipment-bind-section:create') | ||||||
|   | |||||||
| @@ -90,7 +90,7 @@ export default { | |||||||
| 					prop: 'createTime', | 					prop: 'createTime', | ||||||
| 					label: '添加时间', | 					label: '添加时间', | ||||||
| 					fixed: true, | 					fixed: true, | ||||||
| 					width: 180, | 					minWidth: 180, | ||||||
| 					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | 					filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), | ||||||
| 				}, | 				}, | ||||||
| 				{ prop: 'name', label: '类型名称' }, | 				{ prop: 'name', label: '类型名称' }, | ||||||
| @@ -111,7 +111,8 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-equipment-type:create') | ||||||
|  | 						? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-equipment-type:create') | 					type: this.$auth.hasPermi('base:core-equipment-type:create') | ||||||
|   | |||||||
| @@ -137,7 +137,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-hot-material-check:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-hot-material-check:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-hot-material-check:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -110,7 +110,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-major:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-major:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-major:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
| 			<method-btn | 			<method-btn | ||||||
| 				v-if="tableBtn.length" | 				v-if="tableBtn.length" | ||||||
| 				slot="handleBtn" | 				slot="handleBtn" | ||||||
| 				:width="120" | 				:Width="120" | ||||||
| 				label="操作" | 				label="操作" | ||||||
| 				:method-list="tableBtn" | 				:method-list="tableBtn" | ||||||
| 				@clickBtn="handleClick" /> | 				@clickBtn="handleClick" /> | ||||||
| @@ -48,45 +48,45 @@ const tableProps = [ | |||||||
| 		prop: 'createTime', | 		prop: 'createTime', | ||||||
| 		label: '添加时间', | 		label: '添加时间', | ||||||
| 		filter: parseTime, | 		filter: parseTime, | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'name', | 		prop: 'name', | ||||||
| 		label: '产品名称', | 		label: '产品名称', | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'code', | 		prop: 'code', | ||||||
| 		label: '产品编码', | 		label: '产品编码', | ||||||
| 		width: 190, | 		minWidth: 190, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'productType', | 		prop: 'productType', | ||||||
| 		label: '产品类型', | 		label: '产品类型', | ||||||
| 		filter: publicFormatter('product_type'), | 		filter: publicFormatter('product_type'), | ||||||
| 		width: 180, | 		minWidth: 180, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'specifications', | 		prop: 'specifications', | ||||||
| 		label: '规格', | 		label: '规格', | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'unit', | 		prop: 'unit', | ||||||
| 		label: '单位', | 		label: '单位', | ||||||
| 		filter: publicFormatter('unit_dict'), | 		filter: publicFormatter('unit_dict'), | ||||||
| 		width: 90, | 		minWidth: 90, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'remark', | 		prop: 'remark', | ||||||
| 		label: '备注', | 		label: '备注', | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| ]; | ]; | ||||||
| @@ -141,7 +141,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-product:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-product:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-product:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
| 			<method-btn | 			<method-btn | ||||||
| 				v-if="tableBtn.length" | 				v-if="tableBtn.length" | ||||||
| 				slot="handleBtn" | 				slot="handleBtn" | ||||||
| 				:width="120" | 				:minWidth="120" | ||||||
| 				label="操作" | 				label="操作" | ||||||
| 				:method-list="tableBtn" | 				:method-list="tableBtn" | ||||||
| 				@clickBtn="handleClick" /> | 				@clickBtn="handleClick" /> | ||||||
| @@ -30,7 +30,7 @@ | |||||||
| 			@cancel="handleCancel" | 			@cancel="handleCancel" | ||||||
| 			@confirm="handleConfirm" | 			@confirm="handleConfirm" | ||||||
| 			:before-close="handleCancel" | 			:before-close="handleCancel" | ||||||
| 			width="50%"> | 			minWidth="50%"> | ||||||
| 			<add-or-update | 			<add-or-update | ||||||
| 				ref="addOrUpdate" | 				ref="addOrUpdate" | ||||||
| 				@refreshDataList="successSubmit"></add-or-update> | 				@refreshDataList="successSubmit"></add-or-update> | ||||||
| @@ -56,39 +56,39 @@ const tableProps = [ | |||||||
| 		prop: 'createTime', | 		prop: 'createTime', | ||||||
| 		label: '添加时间', | 		label: '添加时间', | ||||||
| 		filter: parseTime, | 		filter: parseTime, | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'factoryName', | 		prop: 'factoryName', | ||||||
| 		label: '工厂', | 		label: '工厂', | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'roomNameDict', | 		prop: 'roomNameDict', | ||||||
| 		label: '车间名称', | 		label: '车间名称', | ||||||
| 		filter: publicFormatter('workshop'), | 		filter: publicFormatter('workshop'), | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'name', | 		prop: 'name', | ||||||
| 		label: '产线名称', | 		label: '产线名称', | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'code', | 		prop: 'code', | ||||||
| 		label: '产线编码', | 		label: '产线编码', | ||||||
| 		width: 150, | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'enabled', | 		prop: 'enabled', | ||||||
| 		label: '当前状态', | 		label: '当前状态', | ||||||
| 		filter: codeFilter('lineStatus'), | 		filter: codeFilter('lineStatus'), | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	// { | 	// { | ||||||
| @@ -98,13 +98,13 @@ const tableProps = [ | |||||||
| 	{ | 	{ | ||||||
| 		prop: 'description', | 		prop: 'description', | ||||||
| 		label: '描述', | 		label: '描述', | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'remark', | 		prop: 'remark', | ||||||
| 		label: '备注', | 		label: '备注', | ||||||
| 		width: 120, | 		minWidth: 120, | ||||||
| 		showOverflowtooltip: true | 		showOverflowtooltip: true | ||||||
| 	} | 	} | ||||||
| ]; | ]; | ||||||
| @@ -147,7 +147,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-production-line:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-production-line:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-production-line:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-supplier:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-supplier:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-supplier:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: zwq |  * @Author: zwq | ||||||
|  * @Date: 2021-11-18 14:16:25 |  * @Date: 2021-11-18 14:16:25 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @LastEditTime: 2024-03-22 08:53:20 |  * @LastEditTime: 2024-04-08 10:21:46 | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
| @@ -214,7 +214,9 @@ export default { | |||||||
| 								actualQuantity: this.dataForm.actualQuantity | 								actualQuantity: this.dataForm.actualQuantity | ||||||
| 							}).then(response => { | 							}).then(response => { | ||||||
| 								this.$modal.msgSuccess("操作成功!工单状态稍后将会更新!"); | 								this.$modal.msgSuccess("操作成功!工单状态稍后将会更新!"); | ||||||
|  | 								if (tempList.length > 0) { | ||||||
| 									this.saveData(tempList) | 									this.saveData(tempList) | ||||||
|  | 								} | ||||||
| 								this.visible = false; | 								this.visible = false; | ||||||
| 								this.$emit("refreshDataList"); | 								this.$emit("refreshDataList"); | ||||||
| 							}); | 							}); | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: zwq |  * @Author: zwq | ||||||
|  * @Date: 2021-11-18 14:16:25 |  * @Date: 2021-11-18 14:16:25 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @LastEditTime: 2024-03-21 16:52:46 |  * @LastEditTime: 2024-04-10 16:16:31 | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
| @@ -182,7 +182,8 @@ | |||||||
| 					:table-props="tableProps" | 					:table-props="tableProps" | ||||||
| 					:page="listQuery.pageNo" | 					:page="listQuery.pageNo" | ||||||
| 					:limit="listQuery.pageSize" | 					:limit="listQuery.pageSize" | ||||||
| 					:table-data="orderList"> | 					:table-data="orderList" | ||||||
|  | 					:max-height="tableH"> | ||||||
| 					<method-btn | 					<method-btn | ||||||
| 						v-if="!isdetail" | 						v-if="!isdetail" | ||||||
| 						slot="handleBtn" | 						slot="handleBtn" | ||||||
| @@ -200,6 +201,7 @@ | |||||||
| 					@pagination="getList" /> --> | 					@pagination="getList" /> --> | ||||||
| 			</div> | 			</div> | ||||||
|  |  | ||||||
|  | 			<div v-if="$auth.hasPermiAnd(['base:material-product-bom-det:query', 'extend:process-flow:query'])"> | ||||||
| 				<div class="card" style="padding-bottom: 16px;"> | 				<div class="card" style="padding-bottom: 16px;"> | ||||||
| 					<div class="boxTitle"> | 					<div class="boxTitle"> | ||||||
| 						<span class="blueTitle"></span> | 						<span class="blueTitle"></span> | ||||||
| @@ -209,7 +211,8 @@ | |||||||
| 						:table-props="tableProps1" | 						:table-props="tableProps1" | ||||||
| 						:page="listQuery1.pageNo" | 						:page="listQuery1.pageNo" | ||||||
| 						:limit="listQuery1.pageSize" | 						:limit="listQuery1.pageSize" | ||||||
| 					:table-data="materialList" /> | 						:table-data="materialList" | ||||||
|  | 						:max-height="tableH" /> | ||||||
| 					<!-- <pagination | 					<!-- <pagination | ||||||
| 						v-show="listQuery1.total > 0" | 						v-show="listQuery1.total > 0" | ||||||
| 						:total="listQuery1.total" | 						:total="listQuery1.total" | ||||||
| @@ -218,6 +221,7 @@ | |||||||
| 						:page-sizes="[5, 10, 15]" | 						:page-sizes="[5, 10, 15]" | ||||||
| 						@pagination="getList" /> --> | 						@pagination="getList" /> --> | ||||||
| 				</div> | 				</div> | ||||||
|  | 			</div> | ||||||
|  |  | ||||||
| 			<!-- <div class="drawer-body__footer"> | 			<!-- <div class="drawer-body__footer"> | ||||||
| 				<el-button type="primary" @click="goback()">关闭</el-button> | 				<el-button type="primary" @click="goback()">关闭</el-button> | ||||||
| @@ -235,6 +239,7 @@ import SmallTitle from './SmallTitle'; | |||||||
| import { publicFormatter } from "@/utils/dict"; | import { publicFormatter } from "@/utils/dict"; | ||||||
| import { parseTime } from '@/utils/ruoyi' | import { parseTime } from '@/utils/ruoyi' | ||||||
| import topTabVue from '../../order/base/orderManage/components/topTab.vue'; | import topTabVue from '../../order/base/orderManage/components/topTab.vue'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableBtn = [ | const tableBtn = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -292,9 +297,11 @@ const tableProps1 = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	components: { SmallTitle, topTabVue }, | 	components: { SmallTitle, topTabVue }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
|  | 			heightNum: 380, | ||||||
| 			tableBtn, | 			tableBtn, | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			tableProps1, | 			tableProps1, | ||||||
| @@ -455,8 +462,8 @@ export default { | |||||||
| 				// this.listQuery.total = response.data.total; | 				// this.listQuery.total = response.data.total; | ||||||
| 			}); | 			}); | ||||||
| 			// 获取预使用原料列表 | 			// 获取预使用原料列表 | ||||||
| 			console.log() | 			console.log('111我看看', this.dataForm.materialMethod) | ||||||
| 			if (this.dataForm.id) { | 			if (this.dataForm.id && this.$auth.hasPermiAnd(['base:material-product-bom-det:query', 'extend:process-flow:query'])) { | ||||||
| 				if (this.dataForm.materialMethod === 1) { | 				if (this.dataForm.materialMethod === 1) { | ||||||
| 					// 产品 | 					// 产品 | ||||||
| 					getlistByProductId({ | 					getlistByProductId({ | ||||||
|   | |||||||
| @@ -9,7 +9,8 @@ | |||||||
| 			:table-props="tableProps" | 			:table-props="tableProps" | ||||||
| 			:page="listQuery.pageNo" | 			:page="listQuery.pageNo" | ||||||
| 			:limit="listQuery.pageSize" | 			:limit="listQuery.pageSize" | ||||||
| 			:table-data="tableData"> | 			:table-data="tableData" | ||||||
|  | 			:max-height="tableH"> | ||||||
| 			<method-btn | 			<method-btn | ||||||
| 				v-if="tableBtn.length" | 				v-if="tableBtn.length" | ||||||
| 				slot="handleBtn" | 				slot="handleBtn" | ||||||
| @@ -62,7 +63,7 @@ import { | |||||||
| 	getCoreWOList | 	getCoreWOList | ||||||
| } from '@/api/base/coreWorkOrder'; | } from '@/api/base/coreWorkOrder'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -132,7 +133,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage, tableHeightMixin], | ||||||
| 	components: { | 	components: { | ||||||
| 		AddWorkOrder, | 		AddWorkOrder, | ||||||
| 		AddOrUpdate, | 		AddOrUpdate, | ||||||
| @@ -156,7 +157,8 @@ export default { | |||||||
| 				// 			showTip: '预使用原料信息' | 				// 			showTip: '预使用原料信息' | ||||||
| 				// 	  } | 				// 	  } | ||||||
| 				// 	: undefined, | 				// 	: undefined, | ||||||
| 					{ | 					this.$auth.hasPermi(`base:core-work-order:update`) | ||||||
|  | 					? { | ||||||
| 							type: 'active', | 							type: 'active', | ||||||
| 							btnName: '激活', | 							btnName: '激活', | ||||||
| 							showParam: { | 							showParam: { | ||||||
| @@ -174,8 +176,10 @@ export default { | |||||||
| 									} | 									} | ||||||
| 								] | 								] | ||||||
| 							} | 							} | ||||||
| 					}, | 						} | ||||||
| 					{ | 					: undefined, | ||||||
|  | 					this.$auth.hasPermi(`base:core-work-order:update`) | ||||||
|  | 					? { | ||||||
| 							type: 'pause', | 							type: 'pause', | ||||||
| 							btnName: '暂停', | 							btnName: '暂停', | ||||||
| 							showParam: { | 							showParam: { | ||||||
| @@ -188,8 +192,10 @@ export default { | |||||||
| 									} | 									} | ||||||
| 								] | 								] | ||||||
| 							} | 							} | ||||||
| 					}, | 						} | ||||||
| 					{ | 					: undefined, | ||||||
|  | 					this.$auth.hasPermi(`base:core-work-order:update`) | ||||||
|  | 					? { | ||||||
| 							type: 'nullify', | 							type: 'nullify', | ||||||
| 							btnName: '作废', | 							btnName: '作废', | ||||||
| 							showParam: { | 							showParam: { | ||||||
| @@ -202,8 +208,10 @@ export default { | |||||||
| 									} | 									} | ||||||
| 								] | 								] | ||||||
| 							} | 							} | ||||||
| 					}, | 						} | ||||||
| 					{ | 					: undefined, | ||||||
|  | 					this.$auth.hasPermi(`base:core-work-order:update`) | ||||||
|  | 					? { | ||||||
| 							type: 'finish', | 							type: 'finish', | ||||||
| 							btnName: '完成', | 							btnName: '完成', | ||||||
| 							showParam: { | 							showParam: { | ||||||
| @@ -221,8 +229,10 @@ export default { | |||||||
| 									} | 									} | ||||||
| 								] | 								] | ||||||
| 							} | 							} | ||||||
| 					}, | 						} | ||||||
| 					{ | 					: undefined, | ||||||
|  | 					this.$auth.hasPermi(`base:core-work-order:update`) | ||||||
|  | 					? { | ||||||
| 							type: 'stop', | 							type: 'stop', | ||||||
| 							btnName: '终止', | 							btnName: '终止', | ||||||
| 							showParam: { | 							showParam: { | ||||||
| @@ -240,8 +250,12 @@ export default { | |||||||
| 									} | 									} | ||||||
| 								] | 								] | ||||||
| 							} | 							} | ||||||
| 					}, | 						} | ||||||
| 					this.$auth.hasPermi(`base:core-work-order:detail`) | 					: undefined, | ||||||
|  | 					this.$auth.hasPermiAnd([ | ||||||
|  | 						'base:core-work-order:query', | ||||||
|  | 						'base:order:query' | ||||||
|  | 					]) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'detail', | 							type: 'detail', | ||||||
| 							btnName: '查看详情', | 							btnName: '查看详情', | ||||||
|   | |||||||
| @@ -163,7 +163,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-worker:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-worker:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-worker:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -52,8 +52,7 @@ const tableProps = [ | |||||||
| 	{ | 	{ | ||||||
| 		prop: 'createTime', | 		prop: 'createTime', | ||||||
| 		label: '添加时间', | 		label: '添加时间', | ||||||
| 		filter: parseTime, | 		filter: parseTime | ||||||
|  |  | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'code', | 		prop: 'code', | ||||||
| @@ -116,7 +115,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-workshop-section:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-workshop-section:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-workshop-section:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -1,6 +1,11 @@ | |||||||
| <template> | <template> | ||||||
|   <el-drawer :visible.sync="drawer" :append-to-body="true" size="80%" > | 	<el-drawer | ||||||
|     <small-title slot="title" :no-padding="true"> | 		:visible.sync="drawer" | ||||||
|  | 		:append-to-body="true" | ||||||
|  | 		size="80%"> | ||||||
|  | 		<small-title | ||||||
|  | 			slot="title" | ||||||
|  | 			:no-padding="true"> | ||||||
| 			<!-- <template v-for="demo in demoList"> --> | 			<!-- <template v-for="demo in demoList"> --> | ||||||
| 			<!-- <el-button :key="demo.name" :type="demo.name === curDemo ? 'primary' : ' '" @click="curDemo = demo.name"> --> | 			<!-- <el-button :key="demo.name" :type="demo.name === curDemo ? 'primary' : ' '" @click="curDemo = demo.name"> --> | ||||||
| 			<!-- {{ $t('module.packingManage.printModelDesign') }} --> | 			<!-- {{ $t('module.packingManage.printModelDesign') }} --> | ||||||
| @@ -10,7 +15,7 @@ | |||||||
| 		</small-title> | 		</small-title> | ||||||
| 		<el-card> | 		<el-card> | ||||||
| 			<el-row style="margin-bottom: 10px"> | 			<el-row style="margin-bottom: 10px"> | ||||||
|         <el-col :span="4"> | 				<!-- <el-col :span="4"> --> | ||||||
| 				<!-- 模板选择 --> | 				<!-- 模板选择 --> | ||||||
|  |  | ||||||
| 				<!-- <el-select | 				<!-- <el-select | ||||||
| @@ -25,26 +30,65 @@ | |||||||
|             {{ opt.name }} |             {{ opt.name }} | ||||||
|           </el-option> |           </el-option> | ||||||
|         </el-select> --> |         </el-select> --> | ||||||
|         </el-col> | 				<!-- </el-col> --> | ||||||
|         <el-col :span="20"> | 				<el-col :span="24"> | ||||||
| 					<!-- 纸张设置 --> | 					<!-- 纸张设置 --> | ||||||
|           <el-button-group style="margin:0 10px"> | 					<el-button-group style="margin: 0 10px"> | ||||||
|             <el-button v-for="(value,type) in paperTypes" :key="type" :type="curPaperType === type ? 'primary' : ' '" | 						<el-button | ||||||
|               @click="setPaper(type,value)"> | 							v-for="(value, type) in paperTypes" | ||||||
|  | 							:key="type" | ||||||
|  | 							:type="curPaperType === type ? 'primary' : ' '" | ||||||
|  | 							@click="setPaper(type, value)"> | ||||||
| 							{{ type }} | 							{{ type }} | ||||||
| 						</el-button> | 						</el-button> | ||||||
| 					</el-button-group> | 					</el-button-group> | ||||||
|           <el-input-number style="margin:0 10px" :value="scaleValue " :precision="2" :step="0.1" :min="scaleMin" | 					<el-input-number | ||||||
|             :max="scaleMax" @change="changeScale" /> | 						style="margin: 0 10px; width: 140px" | ||||||
|           <el-popover v-model="paperPopVisible" placement="bottom" width="300" title="设置纸张宽高(mm)"> | 						:value="scaleValue" | ||||||
|             <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px"> | 						:precision="2" | ||||||
|               <el-input v-model="paperWidth" type="number" style=" width: 100px; text-align: center" place="宽(mm)" />~ | 						:step="0.1" | ||||||
|               <el-input v-model="paperHeight" type="number" style=" width: 100px; text-align: center" place="高(mm)" /> | 						: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> | ||||||
| 						<div> | 						<div> | ||||||
|               <el-button type="primary" style="width: 100%" size="mini" @click="otherPaper">确定</el-button> | 							<el-button | ||||||
|  | 								type="primary" | ||||||
|  | 								style="width: 100%" | ||||||
|  | 								size="mini" | ||||||
|  | 								@click="otherPaper"> | ||||||
|  | 								确定 | ||||||
|  | 							</el-button> | ||||||
| 						</div> | 						</div> | ||||||
|             <el-button slot="reference" type="primary" style="margin:0 10px">自定义宽高</el-button> | 						<el-button | ||||||
|  | 							slot="reference" | ||||||
|  | 							type="primary" | ||||||
|  | 							style="margin: 0 10px"> | ||||||
|  | 							自定义宽高 | ||||||
|  | 						</el-button> | ||||||
| 					</el-popover> | 					</el-popover> | ||||||
|  |  | ||||||
| 					<!--          <a-button-group>--> | 					<!--          <a-button-group>--> | ||||||
| @@ -72,38 +116,57 @@ | |||||||
|  |  | ||||||
| 					<!-- 预览/打印 --> | 					<!-- 预览/打印 --> | ||||||
| 					<el-button-group> | 					<el-button-group> | ||||||
|             <el-button type="primary" icon="redo" @click="rotatePaper()">旋转</el-button> | 						<el-button | ||||||
|             <el-button type="primary" icon="el-icon-view" @click="preView"> | 							type="primary" | ||||||
|  | 							icon="redo" | ||||||
|  | 							@click="rotatePaper()"> | ||||||
|  | 							旋转 | ||||||
|  | 						</el-button> | ||||||
|  | 						<el-button | ||||||
|  | 							type="primary" | ||||||
|  | 							icon="el-icon-view" | ||||||
|  | 							@click="preView"> | ||||||
| 							预览 | 							预览 | ||||||
| 						</el-button> | 						</el-button> | ||||||
| 						<!-- <el-button type="primary" icon="el-icon-printer" @click="print"> | 						<!-- <el-button type="primary" icon="el-icon-printer" @click="print"> | ||||||
|             直接打印 |             直接打印 | ||||||
|           </el-button> --> |           </el-button> --> | ||||||
|             <el-button type="primary" icon="el-icon-s-management" @click="save"> | 						<el-button | ||||||
|  | 							type="primary" | ||||||
|  | 							icon="el-icon-s-management" | ||||||
|  | 							@click="save"> | ||||||
| 							保存 | 							保存 | ||||||
| 						</el-button> | 						</el-button> | ||||||
|             <el-button type="danger" icon="el-icon-delete" @click="clearPaper"> | 						<el-button | ||||||
|  | 							type="danger" | ||||||
|  | 							icon="el-icon-delete" | ||||||
|  | 							@click="clearPaper"> | ||||||
| 							清空 | 							清空 | ||||||
| 						</el-button> | 						</el-button> | ||||||
| 					</el-button-group> | 					</el-button-group> | ||||||
| 					<!-- 保存/清空 --> | 					<!-- 保存/清空 --> | ||||||
|  |  | ||||||
| 				</el-col> | 				</el-col> | ||||||
| 			</el-row> | 			</el-row> | ||||||
| 			<el-row :gutter="24"> | 			<el-row :gutter="24"> | ||||||
| 				<el-col :span="4"> | 				<el-col :span="4"> | ||||||
| 					<el-card style="height: 100vh"> | 					<el-card style="height: 100vh"> | ||||||
| 						<el-row> | 						<el-row> | ||||||
|               <el-col :span="24" class="rect-printElement-types hiprintEpContainer" /> | 							<el-col | ||||||
|  | 								:span="24" | ||||||
|  | 								class="rect-printElement-types hiprintEpContainer" /> | ||||||
| 						</el-row> | 						</el-row> | ||||||
| 					</el-card> | 					</el-card> | ||||||
| 				</el-col> | 				</el-col> | ||||||
| 				<el-col :span="16"> | 				<el-col :span="16"> | ||||||
| 					<el-card class="card-design"> | 					<el-card class="card-design"> | ||||||
|             <div id="hiprint-printTemplate" class="hiprint-printTemplate" /> | 						<div | ||||||
|  | 							id="hiprint-printTemplate" | ||||||
|  | 							class="hiprint-printTemplate" /> | ||||||
| 					</el-card> | 					</el-card> | ||||||
| 				</el-col> | 				</el-col> | ||||||
|         <el-col :span="4" class="params_setting_container"> | 				<el-col | ||||||
|  | 					:span="4" | ||||||
|  | 					class="params_setting_container"> | ||||||
| 					<el-card> | 					<el-card> | ||||||
| 						<el-row class="hinnn-layout-sider"> | 						<el-row class="hinnn-layout-sider"> | ||||||
| 							<div id="PrintElementOptionSetting" /> | 							<div id="PrintElementOptionSetting" /> | ||||||
| @@ -118,15 +181,14 @@ | |||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|  | import printPreview from './preview'; | ||||||
| import printPreview from './preview' | import { MessageBox } from 'element-ui'; | ||||||
| import { MessageBox } from 'element-ui' | import { hiprint } from 'vue-plugin-hiprint'; | ||||||
| import { hiprint } from 'vue-plugin-hiprint' | import providers from './providers'; | ||||||
| import providers from './providers' |  | ||||||
| // import printData from './print-data' | // import printData from './print-data' | ||||||
| import $ from 'jquery' | import $ from 'jquery'; | ||||||
| import SmallTitle from './SmallTitle.vue' | import SmallTitle from './SmallTitle.vue'; | ||||||
| let hiprintTemplate = null | let hiprintTemplate = null; | ||||||
| export default { | export default { | ||||||
| 	name: 'PrintCustom', | 	name: 'PrintCustom', | ||||||
| 	components: { printPreview, SmallTitle }, | 	components: { printPreview, SmallTitle }, | ||||||
| @@ -149,34 +211,38 @@ export default { | |||||||
| 				// width: 220, | 				// width: 220, | ||||||
| 				// height: 80 | 				// height: 80 | ||||||
| 			}, | 			}, | ||||||
|       printData:{}, | 			printData: {}, | ||||||
| 			drawer: false, | 			drawer: false, | ||||||
| 			// 纸张类型 | 			// 纸张类型 | ||||||
| 			paperTypes: { | 			paperTypes: { | ||||||
|         'A3': { | 				A3: { | ||||||
| 					width: 420, | 					width: 420, | ||||||
|           height: 296.6 | 					height: 296.6, | ||||||
| 				}, | 				}, | ||||||
|         'A4': { | 				A4: { | ||||||
| 					width: 210, | 					width: 210, | ||||||
|           height: 297 | 					height: 297, | ||||||
| 				}, | 				}, | ||||||
|         'A5': { | 				A5: { | ||||||
| 					width: 210, | 					width: 210, | ||||||
|           height: 147.6 | 					height: 147.6, | ||||||
| 				}, | 				}, | ||||||
|         'B3': { | 				A6: { | ||||||
|  | 					width: 95, | ||||||
|  | 					height: 125, | ||||||
|  | 				}, | ||||||
|  | 				B3: { | ||||||
| 					width: 500, | 					width: 500, | ||||||
|           height: 352.6 | 					height: 352.6, | ||||||
| 				}, | 				}, | ||||||
|         'B4': { | 				B4: { | ||||||
| 					width: 250, | 					width: 250, | ||||||
|           height: 352.6 | 					height: 352.6, | ||||||
| 				}, | 				}, | ||||||
|         'B5': { | 				B5: { | ||||||
| 					width: 250, | 					width: 250, | ||||||
|           height: 175.6 | 					height: 175.6, | ||||||
|         } | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			scaleValue: 1, | 			scaleValue: 1, | ||||||
| 			scaleMax: 5, | 			scaleMax: 5, | ||||||
| @@ -184,59 +250,59 @@ export default { | |||||||
| 			// 自定义纸张 | 			// 自定义纸张 | ||||||
| 			paperPopVisible: false, | 			paperPopVisible: false, | ||||||
| 			paperWidth: '210', | 			paperWidth: '210', | ||||||
|       paperHeight: '297' | 			paperHeight: '297', | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		curPaperType() { | 		curPaperType() { | ||||||
|       let type = 'other' | 			let type = 'other'; | ||||||
|       const types = this.paperTypes | 			const types = this.paperTypes; | ||||||
| 			for (const key in types) { | 			for (const key in types) { | ||||||
|         const item = types[key] | 				const item = types[key]; | ||||||
|         const { width, height } = this.curPaper | 				const { width, height } = this.curPaper; | ||||||
| 				if (item.width === width && item.height === height) { | 				if (item.width === width && item.height === height) { | ||||||
|           type = key | 					type = key; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|       return type | 			return type; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
| 		// $('.hiprintEpContainer').empty() | 		// $('.hiprintEpContainer').empty() | ||||||
| 	}, | 	}, | ||||||
|   destroyed () { | 	destroyed() { | ||||||
|     $('.hiprintEpContainer').empty() | 		$('.hiprintEpContainer').empty(); | ||||||
|     console.log(11111) | 		console.log(11111); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		// handleClose() { | 		// handleClose() { | ||||||
| 		//   $('.hiprintEpContainer').empty() | 		//   $('.hiprintEpContainer').empty() | ||||||
| 		// }, | 		// }, | ||||||
| 		closed() { | 		closed() { | ||||||
|       $('.hiprintEpContainer').empty() | 			$('.hiprintEpContainer').empty(); | ||||||
|       $('.hiprint-printTemplate').empty() | 			$('.hiprint-printTemplate').empty(); | ||||||
| 		}, | 		}, | ||||||
| 		init(data) { | 		init(data) { | ||||||
|       this.drawer = true | 			this.drawer = true; | ||||||
|       this.modelData = data | 			this.modelData = data; | ||||||
| 			this.modeList = providers.map((e) => { | 			this.modeList = providers.map((e) => { | ||||||
|         return { type: e.type, name: e.name, value: e.value } | 				return { type: e.type, name: e.name, value: e.value }; | ||||||
|       }) | 			}); | ||||||
|       this.changeMode() | 			this.changeMode(); | ||||||
| 		}, | 		}, | ||||||
| 		changeMode() { | 		changeMode() { | ||||||
| 			// hiprintTemplate.clear() | 			// hiprintTemplate.clear() | ||||||
| 			// console.log(this.modelData) | 			// console.log(this.modelData) | ||||||
| 			this.$nextTick(() => { | 			this.$nextTick(() => { | ||||||
|         const { mode } = this | 				const { mode } = this; | ||||||
|         const provider = providers[mode] | 				const provider = providers[mode]; | ||||||
| 				hiprint.init({ | 				hiprint.init({ | ||||||
|           providers: [provider.f] | 					providers: [provider.f], | ||||||
|         }) | 				}); | ||||||
|  |  | ||||||
| 				// $('#hiprint-printTemplate').empty() | 				// $('#hiprint-printTemplate').empty() | ||||||
| 				// console.log(JSON.parse(this.modelData)) | 				// console.log(JSON.parse(this.modelData)) | ||||||
|         hiprint.setConfig() | 				hiprint.setConfig(); | ||||||
| 				// 替换配置 | 				// 替换配置 | ||||||
| 				hiprint.setConfig({ | 				hiprint.setConfig({ | ||||||
| 					movingDistance: 2.5, | 					movingDistance: 2.5, | ||||||
| @@ -244,15 +310,15 @@ export default { | |||||||
| 						supportOptions: [ | 						supportOptions: [ | ||||||
| 							{ | 							{ | ||||||
| 								name: 'styler', | 								name: 'styler', | ||||||
|                 hidden: true | 								hidden: true, | ||||||
| 							}, | 							}, | ||||||
| 							{ | 							{ | ||||||
| 								name: 'formatter', | 								name: 'formatter', | ||||||
|                 hidden: true | 								hidden: true, | ||||||
|               } | 							}, | ||||||
|             ] | 						], | ||||||
|           } | 					}, | ||||||
|         }) | 				}); | ||||||
|  |  | ||||||
| 				// console.log(this.modelData) | 				// console.log(this.modelData) | ||||||
| 				// console.log($('#hiprint-printTemplate').empty()) | 				// console.log($('#hiprint-printTemplate').empty()) | ||||||
| @@ -267,35 +333,38 @@ export default { | |||||||
| 				//   paginationContainer: '.hiprint-printPagination' | 				//   paginationContainer: '.hiprint-printPagination' | ||||||
| 				// }) | 				// }) | ||||||
| 				// } else { | 				// } else { | ||||||
|           $('.hiprintEpContainer').empty() | 				$('.hiprintEpContainer').empty(); | ||||||
| 				console.log(this.modelData || {}); | 				console.log(this.modelData || {}); | ||||||
|           hiprint.PrintElementTypeManager.build('.hiprintEpContainer', provider.value) | 				hiprint.PrintElementTypeManager.build( | ||||||
|           $('.hiprint-printTemplate').empty() | 					'.hiprintEpContainer', | ||||||
|  | 					provider.value | ||||||
|  | 				); | ||||||
|  | 				$('.hiprint-printTemplate').empty(); | ||||||
| 				// const templates = this.$ls.get('KEY_TEMPLATES', {}) | 				// const templates = this.$ls.get('KEY_TEMPLATES', {}) | ||||||
|           const template = provider.value | 				const template = provider.value; | ||||||
| 				// console.log(template) | 				// console.log(template) | ||||||
| 				if (this.modelData) { | 				if (this.modelData) { | ||||||
| 					hiprintTemplate = new hiprint.PrintTemplate({ | 					hiprintTemplate = new hiprint.PrintTemplate({ | ||||||
| 						template: JSON.parse(this.modelData), | 						template: JSON.parse(this.modelData), | ||||||
| 						settingContainer: '#PrintElementOptionSetting', | 						settingContainer: '#PrintElementOptionSetting', | ||||||
|             paginationContainer: '.hiprint-printPagination' | 						paginationContainer: '.hiprint-printPagination', | ||||||
|           }) | 					}); | ||||||
| 				} else { | 				} else { | ||||||
| 					hiprintTemplate = new hiprint.PrintTemplate({ | 					hiprintTemplate = new hiprint.PrintTemplate({ | ||||||
|             template:{}, | 						template: {}, | ||||||
| 						settingContainer: '#PrintElementOptionSetting', | 						settingContainer: '#PrintElementOptionSetting', | ||||||
|             paginationContainer: '.hiprint-printPagination' | 						paginationContainer: '.hiprint-printPagination', | ||||||
|           }) | 					}); | ||||||
| 				} | 				} | ||||||
| 				// } | 				// } | ||||||
|         hiprintTemplate.design('#hiprint-printTemplate') | 				hiprintTemplate.design('#hiprint-printTemplate'); | ||||||
| 				// console.log(hiprintTemplate) | 				// console.log(hiprintTemplate) | ||||||
| 				console.log(hiprintTemplate); | 				console.log(hiprintTemplate); | ||||||
| 				// hiprintTemplate.design('#hiprint-printTemplate', { grid: true }) | 				// hiprintTemplate.design('#hiprint-printTemplate', { grid: true }) | ||||||
| 				// 获取当前放大比例, 当zoom时传true 才会有 | 				// 获取当前放大比例, 当zoom时传true 才会有 | ||||||
|         this.scaleValue = hiprintTemplate.editingPanel.scale || 1 | 				this.scaleValue = hiprintTemplate.editingPanel.scale || 1; | ||||||
| 				// this.scaleValue = hiprintTemplate.editingPanel.scale || 1 | 				// this.scaleValue = hiprintTemplate.editingPanel.scale || 1 | ||||||
|       }) | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		/** | 		/** | ||||||
| 		 * 设置纸张大小 | 		 * 设置纸张大小 | ||||||
| @@ -305,102 +374,115 @@ export default { | |||||||
| 		setPaper(type, value) { | 		setPaper(type, value) { | ||||||
| 			try { | 			try { | ||||||
| 				if (Object.keys(this.paperTypes).includes(type)) { | 				if (Object.keys(this.paperTypes).includes(type)) { | ||||||
|           this.curPaper = { type: type, width: value.width, height: value.height } | 					this.curPaper = { | ||||||
|           hiprintTemplate.setPaper(value.width, value.height) | 						type: type, | ||||||
|  | 						width: value.width, | ||||||
|  | 						height: value.height, | ||||||
|  | 					}; | ||||||
|  | 					hiprintTemplate.setPaper(value.width, value.height); | ||||||
| 				} else { | 				} else { | ||||||
|           this.curPaper = { type: 'other', width: value.width, height: value.height } | 					this.curPaper = { | ||||||
|           hiprintTemplate.setPaper(value.width, value.height) | 						type: 'other', | ||||||
|  | 						width: value.width, | ||||||
|  | 						height: value.height, | ||||||
|  | 					}; | ||||||
|  | 					hiprintTemplate.setPaper(value.width, value.height); | ||||||
| 				} | 				} | ||||||
| 			} catch (error) { | 			} catch (error) { | ||||||
|         this.$message.error(`操作失败: ${error}`) | 				this.$message.error(`操作失败: ${error}`); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		changeScale(currentValue, oldValue) { | 		changeScale(currentValue, oldValue) { | ||||||
|       let big = false | 			let big = false; | ||||||
|       currentValue <= oldValue ? big = false : big = true | 			currentValue <= oldValue ? (big = false) : (big = true); | ||||||
|       let scaleValue = this.scaleValue | 			let scaleValue = this.scaleValue; | ||||||
| 			if (big) { | 			if (big) { | ||||||
|         scaleValue += 0.1 | 				scaleValue += 0.1; | ||||||
|         if (scaleValue > this.scaleMax) scaleValue = 5 | 				if (scaleValue > this.scaleMax) scaleValue = 5; | ||||||
| 			} else { | 			} else { | ||||||
|         scaleValue -= 0.1 | 				scaleValue -= 0.1; | ||||||
|         if (scaleValue < this.scaleMin) scaleValue = 0.5 | 				if (scaleValue < this.scaleMin) scaleValue = 0.5; | ||||||
| 			} | 			} | ||||||
| 			if (hiprintTemplate) { | 			if (hiprintTemplate) { | ||||||
| 				// scaleValue: 放大缩小值, false: 不保存(不传也一样), 如果传 true, 打印时也会放大 | 				// scaleValue: 放大缩小值, false: 不保存(不传也一样), 如果传 true, 打印时也会放大 | ||||||
|         hiprintTemplate.zoom(scaleValue) | 				hiprintTemplate.zoom(scaleValue); | ||||||
|         this.scaleValue = scaleValue | 				this.scaleValue = scaleValue; | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		clearPaper() { | 		clearPaper() { | ||||||
| 			MessageBox.confirm('是否确认清空模板信息?', '警告', { | 			MessageBox.confirm('是否确认清空模板信息?', '警告', { | ||||||
| 				confirmButtonText: '确定', | 				confirmButtonText: '确定', | ||||||
| 				cancelButtonText: '取消', | 				cancelButtonText: '取消', | ||||||
|         type: 'warning' | 				type: 'warning', | ||||||
|       }).then(() => { |  | ||||||
|         try { |  | ||||||
|           hiprintTemplate.clear() |  | ||||||
|         } catch (error) { |  | ||||||
|           this.$message.error(`操作失败: ${error}`) |  | ||||||
|         } |  | ||||||
|       }).catch((err) => { |  | ||||||
|         console.log(err) |  | ||||||
| 			}) | 			}) | ||||||
|  | 				.then(() => { | ||||||
|  | 					try { | ||||||
|  | 						hiprintTemplate.clear(); | ||||||
|  | 					} catch (error) { | ||||||
|  | 						this.$message.error(`操作失败: ${error}`); | ||||||
|  | 					} | ||||||
|  | 				}) | ||||||
|  | 				.catch((err) => { | ||||||
|  | 					console.log(err); | ||||||
|  | 				}); | ||||||
| 		}, | 		}, | ||||||
| 		otherPaper() { | 		otherPaper() { | ||||||
|       const value = {} | 			const value = {}; | ||||||
|       value.width = this.paperWidth | 			value.width = this.paperWidth; | ||||||
|       value.height = this.paperHeight | 			value.height = this.paperHeight; | ||||||
|       this.paperPopVisible = false | 			this.paperPopVisible = false; | ||||||
|       this.setPaper('other', value) | 			this.setPaper('other', value); | ||||||
| 		}, | 		}, | ||||||
| 		rotatePaper() { | 		rotatePaper() { | ||||||
| 			if (hiprintTemplate) { | 			if (hiprintTemplate) { | ||||||
|         hiprintTemplate.rotatePaper() | 				hiprintTemplate.rotatePaper(); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		preView() { | 		preView() { | ||||||
|       const { width } = this.curPaper | 			const { width } = this.curPaper; | ||||||
|       this.$refs.preView.show(hiprintTemplate, this.printData, width) | 			this.$refs.preView.show(hiprintTemplate, this.printData, width); | ||||||
| 		}, | 		}, | ||||||
| 		print() { | 		print() { | ||||||
| 			// if (window.hiwebSocket.opened) { | 			// if (window.hiwebSocket.opened) { | ||||||
|       const printerList = hiprintTemplate.getPrinterList() | 			const printerList = hiprintTemplate.getPrinterList(); | ||||||
|       console.log(printerList) | 			console.log(printerList); | ||||||
|       hiprintTemplate.print2(this.printData, { printer: '', title: '预览打印' }) | 			hiprintTemplate.print2(this.printData, { | ||||||
|  | 				printer: '', | ||||||
|  | 				title: '预览打印', | ||||||
|  | 			}); | ||||||
| 			// return | 			// return | ||||||
| 			// } | 			// } | ||||||
| 			// this.$message.error('客户端未连接,无法直接打印') | 			// this.$message.error('客户端未连接,无法直接打印') | ||||||
| 		}, | 		}, | ||||||
| 		save() { | 		save() { | ||||||
| 			// console.log(hiprintTemplate.getJson()) | 			// console.log(hiprintTemplate.getJson()) | ||||||
|       const { mode } = this | 			const { mode } = this; | ||||||
|       const provider = providers[mode] | 			const provider = providers[mode]; | ||||||
| 			// console.log(hiprintTemplate.getJson()) | 			// console.log(hiprintTemplate.getJson()) | ||||||
| 			this.setTemplate({ | 			this.setTemplate({ | ||||||
| 				name: provider.value, | 				name: provider.value, | ||||||
|         json: hiprintTemplate.getJson() | 				json: hiprintTemplate.getJson(), | ||||||
|       }) | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		setTemplate(payload) { | 		setTemplate(payload) { | ||||||
| 			// const templates = this.$ls.get('KEY_TEMPLATES', {}) | 			// const templates = this.$ls.get('KEY_TEMPLATES', {}) | ||||||
| 			// console.log(payload.json) | 			// console.log(payload.json) | ||||||
| 			// templates[payload.name] = payload.json | 			// templates[payload.name] = payload.json | ||||||
| 			// this.$ls.set('KEY_TEMPLATES', templates) | 			// this.$ls.set('KEY_TEMPLATES', templates) | ||||||
|       this.$message.info('保存成功') | 			this.$message.info('保存成功'); | ||||||
| 			// console.log(JSON.stringify(payload.json)) | 			// console.log(JSON.stringify(payload.json)) | ||||||
|       this.drawer = false | 			this.drawer = false; | ||||||
|       this.$emit('saveData', payload.json) | 			this.$emit('saveData', payload.json); | ||||||
|       $('.hiprintEpContainer').empty() | 			$('.hiprintEpContainer').empty(); | ||||||
| 			// this.$parent.$parent.getModelData(payload.json) | 			// this.$parent.$parent.getModelData(payload.json) | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
| // build 拖拽 | // build 拖拽 | ||||||
| ::v-deep .hiprint-printElement-type >li>ul>li>a { | ::v-deep .hiprint-printElement-type > li > ul > li > a { | ||||||
| 	padding: 4px 4px; | 	padding: 4px 4px; | ||||||
| 	color: #1296db; | 	color: #1296db; | ||||||
| 	line-height: 1; | 	line-height: 1; | ||||||
| @@ -413,5 +495,4 @@ export default { | |||||||
| 	overflow-x: auto; | 	overflow-x: auto; | ||||||
| 	overflow-y: auto; | 	overflow-y: auto; | ||||||
| } | } | ||||||
|  |  | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: zwq |  * @Author: zwq | ||||||
|  * @Date: 2021-11-18 14:16:25 |  * @Date: 2021-11-18 14:16:25 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @LastEditTime: 2024-03-21 15:21:32 |  * @LastEditTime: 2024-04-11 16:22:19 | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
| @@ -122,14 +122,14 @@ | |||||||
| 				</el-form> | 				</el-form> | ||||||
| 			</div> | 			</div> | ||||||
|  |  | ||||||
| 			<div class="attr-list" v-if="idAttrShow"> | 			<div class="attr-list" v-if="idAttrShow && this.$auth.hasPermi('base:material-attr:query')"> | ||||||
| 				<small-title | 				<small-title | ||||||
| 					style="margin: 16px 0; padding-left: 8px" | 					style="margin: 16px 0; padding-left: 8px" | ||||||
| 					:no-padding="true"> | 					:no-padding="true"> | ||||||
| 					物料属性 | 					物料属性 | ||||||
| 				</small-title> | 				</small-title> | ||||||
|  |  | ||||||
| 				<div v-if="!isdetail" class="action_btn"> | 				<div v-if="!isdetail && this.$auth.hasPermi('base:material-attr:create')" class="action_btn"> | ||||||
|           <template> |           <template> | ||||||
|             <span style="display: inline-block;"> |             <span style="display: inline-block;"> | ||||||
|               <el-button type="text" @click="addNew()" icon="el-icon-plus">新增</el-button> |               <el-button type="text" @click="addNew()" icon="el-icon-plus">新增</el-button> | ||||||
| @@ -182,16 +182,23 @@ import { parseTime } from '../../core/mixins/code-filter'; | |||||||
| import attrAdd from './attr-add'; | import attrAdd from './attr-add'; | ||||||
| import { getDictDatas } from "@/utils/dict"; | import { getDictDatas } from "@/utils/dict"; | ||||||
|  |  | ||||||
| const tableBtn = [ | // const tableBtn = [ | ||||||
| 	{ | // 		this.$auth.hasPermiAnd([ | ||||||
| 		type: 'edit', | // 			'base:material-attr:create', | ||||||
| 		btnName: '编辑', | // 			'base:material-attr:update' | ||||||
| 	}, | // 		]) ? | ||||||
| 	{ | // 		{ | ||||||
| 		type: 'delete', | // 			type: 'edit', | ||||||
| 		btnName: '删除', | // 			btnName: '编辑', | ||||||
| 	}, | // 		} | ||||||
| ]; | // 		: undefined, | ||||||
|  | // 	this.$auth.hasPermi('base:material-attr:delete') ?  | ||||||
|  | // 		{ | ||||||
|  | // 			type: 'delete', | ||||||
|  | // 			btnName: '删除', | ||||||
|  | // 		} | ||||||
|  | // 	: undefined, | ||||||
|  | // ]; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'createTime', | 		prop: 'createTime', | ||||||
| @@ -213,7 +220,23 @@ export default { | |||||||
| 	components: { SmallTitle, attrAdd }, | 	components: { SmallTitle, attrAdd }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			tableBtn, | 			tableBtn: [ | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:material-attr:create', | ||||||
|  | 					'base:material-attr:update' | ||||||
|  | 				]) ? | ||||||
|  | 				{ | ||||||
|  | 					type: 'edit', | ||||||
|  | 					btnName: '编辑', | ||||||
|  | 				} | ||||||
|  | 				: undefined, | ||||||
|  | 			this.$auth.hasPermi('base:material-attr:delete') ?  | ||||||
|  | 				{ | ||||||
|  | 					type: 'delete', | ||||||
|  | 					btnName: '删除', | ||||||
|  | 				} | ||||||
|  | 			: undefined, | ||||||
|  | 			], | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			addOrUpdateVisible: false, | 			addOrUpdateVisible: false, | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
|   | |||||||
| @@ -134,7 +134,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:material:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:material:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:material:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|  * @Author: zwq |  * @Author: zwq | ||||||
|  * @Date: 2021-11-18 14:16:25 |  * @Date: 2021-11-18 14:16:25 | ||||||
|  * @LastEditors: DY |  * @LastEditors: DY | ||||||
|  * @LastEditTime: 2024-03-21 14:39:52 |  * @LastEditTime: 2024-04-11 16:44:41 | ||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
| @@ -56,14 +56,14 @@ | |||||||
| 					</el-row> | 					</el-row> | ||||||
| 				</el-form> | 				</el-form> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="attr-list" v-if="idAttrShow"> | 			<div class="attr-list" v-if="idAttrShow && $auth.hasPermiAnd(['base:material-product-bom:query', 'base:material-product-bom-det:query'])"> | ||||||
| 				<small-title | 				<small-title | ||||||
| 					style="margin: 16px 0; padding-left: 8px" | 					style="margin: 16px 0; padding-left: 8px" | ||||||
| 					:no-padding="true"> | 					:no-padding="true"> | ||||||
| 					BOM明细 | 					BOM明细 | ||||||
| 				</small-title> | 				</small-title> | ||||||
|  |  | ||||||
| 				<div v-if="!isdetail" class="action_btn"> | 				<div v-if="!isdetail && $auth.hasPermi('base:material-product-bom:create')" class="action_btn"> | ||||||
|           <template> |           <template> | ||||||
|             <span style="display: inline-block;"> |             <span style="display: inline-block;"> | ||||||
|               <el-button type="text" @click="addNew()" icon="el-icon-plus">添加</el-button> |               <el-button type="text" @click="addNew()" icon="el-icon-plus">添加</el-button> | ||||||
| @@ -116,16 +116,16 @@ import { parseTime } from '../../core/mixins/code-filter'; | |||||||
| import attrAdd from './attr-add'; | import attrAdd from './attr-add'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
|  |  | ||||||
| const tableBtn = [ | // const tableBtn = [ | ||||||
| 	{ | // 	{ | ||||||
| 		type: 'edit', | // 		type: 'edit', | ||||||
| 		btnName: '编辑', | // 		btnName: '编辑', | ||||||
| 	}, | // 	}, | ||||||
| 	{ | // 	{ | ||||||
| 		type: 'delete', | // 		type: 'delete', | ||||||
| 		btnName: '删除', | // 		btnName: '删除', | ||||||
| 	}, | // 	}, | ||||||
| ]; | // ]; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'createTime', | 		prop: 'createTime', | ||||||
| @@ -160,7 +160,24 @@ export default { | |||||||
| 	components: { SmallTitle, attrAdd }, | 	components: { SmallTitle, attrAdd }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			tableBtn, | 			tableBtn: [ | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:material-product-bom:update', | ||||||
|  | 					'base:material-product-bom-det:create', | ||||||
|  | 					'base:material-product-bom-det:update' | ||||||
|  | 				]) ? | ||||||
|  | 				{ | ||||||
|  | 					type: 'edit', | ||||||
|  | 					btnName: '编辑', | ||||||
|  | 				} | ||||||
|  | 				: undefined, | ||||||
|  | 				this.$auth.hasPermi('base:material-product-bom:delete') ?  | ||||||
|  | 					{ | ||||||
|  | 						type: 'delete', | ||||||
|  | 						btnName: '删除', | ||||||
|  | 					} | ||||||
|  | 				: undefined, | ||||||
|  | 			], | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			addOrUpdateVisible: false, | 			addOrUpdateVisible: false, | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
|   | |||||||
| @@ -110,7 +110,7 @@ export default { | |||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:material:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:material:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:material:create') ? 'button' : '', | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								src/views/base/packagingPrintLog/components/InputArea.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/views/base/packagingPrintLog/components/InputArea.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | <template> | ||||||
|  | 	<div class="tableInner"> | ||||||
|  | 		<el-input | ||||||
|  | 			v-if="list.isEdit" | ||||||
|  | 			type="number" | ||||||
|  | 			v-model="list[itemProp]" | ||||||
|  | 			@blur="changeInput" /> | ||||||
|  | 		<span v-else>{{ list[itemProp] }}</span> | ||||||
|  | 	</div> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | export default { | ||||||
|  | 	name: 'InputArea', | ||||||
|  | 	props: { | ||||||
|  | 		injectData: { | ||||||
|  | 			type: Object, | ||||||
|  | 			default: () => ({}), | ||||||
|  | 		}, | ||||||
|  | 		itemProp: { | ||||||
|  | 			type: String, | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			list: {}, | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	mounted() { | ||||||
|  | 		this.initData(); | ||||||
|  | 	}, | ||||||
|  | 	watch: { | ||||||
|  | 		injectData() { | ||||||
|  | 			this.initData(); | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | 	methods: { | ||||||
|  | 		initData() { | ||||||
|  | 			this.list = this.injectData; | ||||||
|  | 		}, | ||||||
|  | 		changeInput() { | ||||||
|  | 			this.$emit('emitData', this.list); | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
							
								
								
									
										227
									
								
								src/views/base/packagingPrintLog/components/OtherMsg.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								src/views/base/packagingPrintLog/components/OtherMsg.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,227 @@ | |||||||
|  | <template> | ||||||
|  | 	<div class="other-msg-box"> | ||||||
|  | 		<el-radio-group | ||||||
|  | 			v-model="chooseMsg" | ||||||
|  | 			@change="changeChoose"> | ||||||
|  | 			<el-radio :label="1"> | ||||||
|  | 				<div style="display: inline-block"> | ||||||
|  | 					<el-form | ||||||
|  | 						:inline="true" | ||||||
|  | 						:model="printMsg1" | ||||||
|  | 						class="demo-form-inline"> | ||||||
|  | 						<el-form-item label="客户"> | ||||||
|  | 							<el-select | ||||||
|  | 								size="small" | ||||||
|  | 								v-model="printMsg1.customerId" | ||||||
|  | 								filterable | ||||||
|  | 								placeholder="客户"> | ||||||
|  | 								<el-option | ||||||
|  | 									v-for="item in customerList" | ||||||
|  | 									:key="item.id" | ||||||
|  | 									:label="item.name" | ||||||
|  | 									:value="item.id"></el-option> | ||||||
|  | 							</el-select> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="封箱人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg1.sealWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="封箱人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="打包人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg1.packWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="打包人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="流程卡号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg1.processCard" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="流程卡号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="托盘规格"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg1.pallet" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="托盘规格"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="备注"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg1.remark" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="备注"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 					</el-form> | ||||||
|  | 				</div> | ||||||
|  | 			</el-radio> | ||||||
|  | 			<el-radio :label="2"> | ||||||
|  | 				<div style="display: inline-block"> | ||||||
|  | 					<el-form | ||||||
|  | 						:inline="true" | ||||||
|  | 						:model="printMsg2" | ||||||
|  | 						class="demo-form-inline"> | ||||||
|  | 						<el-form-item label="客户"> | ||||||
|  | 							<el-select | ||||||
|  | 								size="small" | ||||||
|  | 								v-model="printMsg2.customerId" | ||||||
|  | 								filterable | ||||||
|  | 								placeholder="客户"> | ||||||
|  | 								<el-option | ||||||
|  | 									v-for="item in customerList" | ||||||
|  | 									:key="item.id" | ||||||
|  | 									:label="item.name" | ||||||
|  | 									:value="item.id"></el-option> | ||||||
|  | 							</el-select> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="封箱人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg2.sealWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="封箱人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="打包人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg2.packWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="打包人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="流程卡号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg2.processCard" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="流程卡号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="托盘规格"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg2.pallet" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="托盘规格"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="备注"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg2.remark" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="备注"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 					</el-form> | ||||||
|  | 				</div> | ||||||
|  | 			</el-radio> | ||||||
|  | 			<el-radio :label="3"> | ||||||
|  | 				<div style="display: inline-block"> | ||||||
|  | 					<el-form | ||||||
|  | 						:inline="true" | ||||||
|  | 						:model="printMsg3" | ||||||
|  | 						class="demo-form-inline"> | ||||||
|  | 						<el-form-item label="客户"> | ||||||
|  | 							<el-select | ||||||
|  | 								size="small" | ||||||
|  | 								v-model="printMsg3.customerId" | ||||||
|  | 								filterable | ||||||
|  | 								placeholder="客户"> | ||||||
|  | 								<el-option | ||||||
|  | 									v-for="item in customerList" | ||||||
|  | 									:key="item.id" | ||||||
|  | 									:label="item.name" | ||||||
|  | 									:value="item.id"></el-option> | ||||||
|  | 							</el-select> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="封箱人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg3.sealWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="封箱人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="打包人员工号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg3.packWorker" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="打包人员工号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="流程卡号"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg3.processCard" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="流程卡号"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="托盘规格"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg3.pallet" | ||||||
|  | 								size="small" | ||||||
|  | 								style="width: 120px" | ||||||
|  | 								placeholder="托盘规格"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 						<el-form-item label="备注"> | ||||||
|  | 							<el-input | ||||||
|  | 								v-model="printMsg3.remark" | ||||||
|  | 								size="small" | ||||||
|  | 								placeholder="备注"></el-input> | ||||||
|  | 						</el-form-item> | ||||||
|  | 					</el-form> | ||||||
|  | 				</div> | ||||||
|  | 			</el-radio> | ||||||
|  | 		</el-radio-group> | ||||||
|  | 	</div> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | import { getCustomerList } from '@/api/base/packingInfo'; | ||||||
|  | export default { | ||||||
|  | 	name: 'OtherMsg', | ||||||
|  | 	props: { | ||||||
|  | 		printMsg1: { | ||||||
|  | 			type: Object, | ||||||
|  | 			default: () => ({}), | ||||||
|  | 		}, | ||||||
|  | 		printMsg2: { | ||||||
|  | 			type: Object, | ||||||
|  | 			default: () => ({}), | ||||||
|  | 		}, | ||||||
|  | 		printMsg3: { | ||||||
|  | 			type: Object, | ||||||
|  | 			default: () => ({}), | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			chooseMsg: 1, | ||||||
|  | 			customerList: [], | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	mounted() { | ||||||
|  | 		this.getCList(); | ||||||
|  | 	}, | ||||||
|  | 	methods: { | ||||||
|  | 		getCList() { | ||||||
|  | 			getCustomerList().then((res) => { | ||||||
|  | 				console.log(res); | ||||||
|  | 				console.log('customer'); | ||||||
|  | 				this.customerList = res.data; | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		changeChoose(val) { | ||||||
|  | 			console.log(val); | ||||||
|  | 			this.$emit('changeChoose', val); | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .other-msg-box { | ||||||
|  | 	.el-radio { | ||||||
|  | 		display: block; | ||||||
|  | 		line-height: 36px; | ||||||
|  | 		.demo-form-inline { | ||||||
|  | 			width: 100%; | ||||||
|  | 			white-space: normal; | ||||||
|  | 		} | ||||||
|  | 		.el-form-item { | ||||||
|  | 			margin-bottom: 0px; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										182
									
								
								src/views/base/packagingPrintLog/components/Printed.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								src/views/base/packagingPrintLog/components/Printed.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,182 @@ | |||||||
|  | <template> | ||||||
|  | 	<div class="show-box"> | ||||||
|  | 		<!-- 搜索工作栏 --> | ||||||
|  | 		<search-bar | ||||||
|  | 			:formConfigs="formConfig" | ||||||
|  | 			ref="searchBarForm" | ||||||
|  | 			@headBtnClick="buttonClick2" /> | ||||||
|  | 		<!-- 列表 --> | ||||||
|  | 		<base-table | ||||||
|  | 			:page="queryParams2.pageNo" | ||||||
|  | 			:limit="queryParams2.pageSize" | ||||||
|  | 			:table-props="tableProps" | ||||||
|  | 			:table-data="list2"> | ||||||
|  | 			<method-btn | ||||||
|  | 				v-if="tableBtn2.length" | ||||||
|  | 				slot="handleBtn" | ||||||
|  | 				:width="240" | ||||||
|  | 				label="操作" | ||||||
|  | 				:method-list="tableBtn2" | ||||||
|  | 				@clickBtn="handleClick2" /> | ||||||
|  | 		</base-table> | ||||||
|  | 		<pagination | ||||||
|  | 			:page.sync="queryParams2.pageNo" | ||||||
|  | 			:limit.sync="queryParams2.pageSize" | ||||||
|  | 			:total="total2" | ||||||
|  | 			@pagination="getList2" /> | ||||||
|  | 	</div> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | import { parseTime } from '@/utils/ruoyi'; | ||||||
|  | import { getPackingPage } from '@/api/base/packingInfo'; | ||||||
|  | import { getCorePLList } from '@/api/base/coreProductionLine'; | ||||||
|  | const tableProps = [ | ||||||
|  | 	{ | ||||||
|  | 		prop: 'packagingCode', | ||||||
|  | 		label: '成品周转编号', | ||||||
|  | 		minWidth: 180, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'lineId', | ||||||
|  | 		label: '产线', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'specifications', | ||||||
|  | 		label: '规格', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'check', | ||||||
|  | 		label: '判定', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'workStation', | ||||||
|  | 		label: '工位号', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'num', | ||||||
|  | 		label: '片数', | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'remark', | ||||||
|  | 		label: '备注1', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'printStatus', | ||||||
|  | 		label: '打印状态', | ||||||
|  | 		filter: (val) => (val == 1 ? '未打印' : '已打印'), | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'createTime', | ||||||
|  | 		label: '时间', | ||||||
|  | 		filter: parseTime, | ||||||
|  | 		minWidth: 160, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'groupClass', | ||||||
|  | 		label: '班次', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | ]; | ||||||
|  | export default { | ||||||
|  | 	name: 'Printed', | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			formConfig: [ | ||||||
|  | 				{ | ||||||
|  | 					type: 'select', | ||||||
|  | 					label: '产线', | ||||||
|  | 					selectOptions: [], | ||||||
|  | 					param: 'lineId', | ||||||
|  | 					filterable: true, | ||||||
|  | 				}, | ||||||
|  | 				{ | ||||||
|  | 					type: 'datePicker', | ||||||
|  | 					label: '时间段', | ||||||
|  | 					dateType: 'daterange', | ||||||
|  | 					format: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  | 					valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  | 					rangeSeparator: '-', | ||||||
|  | 					startPlaceholder: '开始时间', | ||||||
|  | 					endPlaceholder: '结束时间', | ||||||
|  | 					param: 'timeVal', | ||||||
|  | 					defaultSelect: [], | ||||||
|  | 					width: 350, | ||||||
|  | 				}, | ||||||
|  | 				{ | ||||||
|  | 					type: 'button', | ||||||
|  | 					btnName: '查询', | ||||||
|  | 					name: 'search', | ||||||
|  | 					color: 'primary', | ||||||
|  | 				}, | ||||||
|  | 			], | ||||||
|  | 			// 查询参数 | ||||||
|  | 			queryParams2: { | ||||||
|  | 				pageNo: 1, | ||||||
|  | 				pageSize: 20, | ||||||
|  | 				printStatus: '2', | ||||||
|  | 				lineId: '', | ||||||
|  | 				createTime: [], | ||||||
|  | 			}, | ||||||
|  | 			total2: 0, | ||||||
|  | 			tableProps, | ||||||
|  | 			list2: [], | ||||||
|  | 			tableBtn2: [ | ||||||
|  | 				this.$auth.hasPermi('base:order-group:update') | ||||||
|  | 					? { | ||||||
|  | 							type: 'reprint', | ||||||
|  | 							btnName: '重打', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermi('base:order-group:query') | ||||||
|  | 					? { | ||||||
|  | 							type: 'detail', | ||||||
|  | 							btnName: '详情', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:order-group:update', | ||||||
|  | 					'base:core-product:query', | ||||||
|  | 					'base:core-customer:query', | ||||||
|  | 				]) | ||||||
|  | 					? { | ||||||
|  | 							type: 'edit', | ||||||
|  | 							btnName: '编辑', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 			].filter((v) => v), | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	mounted() { | ||||||
|  | 		this.getLineList(); | ||||||
|  | 	}, | ||||||
|  | 	methods: { | ||||||
|  | 		getLineList() { | ||||||
|  | 			getCorePLList().then((res) => { | ||||||
|  | 				console.log(res); | ||||||
|  | 				this.formConfig[0].selectOptions = res.data; | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		getList2() { | ||||||
|  | 			getPackingPage({ ...this.queryParams2 }).then((res) => { | ||||||
|  | 				console.log(res); | ||||||
|  | 				this.list2 = res.data.records || []; | ||||||
|  | 				this.total2 = res.data.total; | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		buttonClick2(val) { | ||||||
|  | 			console.log(val); | ||||||
|  | 			this.queryParams2.lineId = val.lineId; | ||||||
|  | 			this.queryParams2.createTime = val.timeVal; | ||||||
|  | 			this.getList2(); | ||||||
|  | 		}, | ||||||
|  | 		handleClick2() {}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
							
								
								
									
										409
									
								
								src/views/base/packagingPrintLog/components/UnPrint.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										409
									
								
								src/views/base/packagingPrintLog/components/UnPrint.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,409 @@ | |||||||
|  | <template> | ||||||
|  | 	<div class="show-box"> | ||||||
|  | 		<!-- 单选 --> | ||||||
|  | 		<other-msg | ||||||
|  | 			:printMsg1="printMsg1" | ||||||
|  | 			:printMsg2="printMsg2" | ||||||
|  | 			:printMsg3="printMsg3" | ||||||
|  | 			@changeChoose="changeChoose" /> | ||||||
|  | 		<!-- 搜索工作栏 --> | ||||||
|  | 		<search-bar | ||||||
|  | 			:formConfigs="formConfig" | ||||||
|  | 			ref="searchBarForm" | ||||||
|  | 			@headBtnClick="buttonClick" /> | ||||||
|  | 		<!-- 列表 --> | ||||||
|  | 		<base-table | ||||||
|  | 			:page="queryParams.pageNo" | ||||||
|  | 			:limit="queryParams.pageSize" | ||||||
|  | 			:table-props="tableProps" | ||||||
|  | 			:table-data="list" | ||||||
|  | 			@emitFun="inputChange"> | ||||||
|  | 			<method-btn | ||||||
|  | 				v-if="tableBtn.length" | ||||||
|  | 				slot="handleBtn" | ||||||
|  | 				:width="260" | ||||||
|  | 				label="操作" | ||||||
|  | 				:method-list="tableBtn" | ||||||
|  | 				@clickBtn="handleClick" /> | ||||||
|  | 		</base-table> | ||||||
|  | 		<pagination | ||||||
|  | 			:page.sync="queryParams.pageNo" | ||||||
|  | 			:limit.sync="queryParams.pageSize" | ||||||
|  | 			:total="total" | ||||||
|  | 			@pagination="getList" /> | ||||||
|  | 		<!-- 预览 --> | ||||||
|  | 		<print-preview ref="preView" /> | ||||||
|  | 	</div> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | import { parseTime } from '@/utils/ruoyi'; | ||||||
|  | import inputArea from './InputArea.vue'; | ||||||
|  | const tableProps = [ | ||||||
|  | 	{ | ||||||
|  | 		prop: 'packagingCode', | ||||||
|  | 		label: '成品周转编号', | ||||||
|  | 		minWidth: 160, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'lineName', | ||||||
|  | 		label: '产线', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'specifications', | ||||||
|  | 		label: '规格', | ||||||
|  | 		minWidth: 140, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'checkGoodName', | ||||||
|  | 		label: '判定', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'workStation', | ||||||
|  | 		label: '工位号', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'num', | ||||||
|  | 		label: '片数', | ||||||
|  | 		subcomponent: inputArea, | ||||||
|  | 		minWidth: 120, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'remark', | ||||||
|  | 		label: '备注1', | ||||||
|  | 		minWidth: 120, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'printStatusName', | ||||||
|  | 		label: '打印状态', | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'createTime', | ||||||
|  | 		label: '时间', | ||||||
|  | 		filter: parseTime, | ||||||
|  | 		minWidth: 160, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		prop: 'groupClass', | ||||||
|  | 		label: '班次', | ||||||
|  | 		showOverflowtooltip: true, | ||||||
|  | 	}, | ||||||
|  | ]; | ||||||
|  | import OtherMsg from './OtherMsg'; | ||||||
|  | import { getPackingPage, updatePacking } from '@/api/base/packingInfo'; | ||||||
|  | import { getCorePLList } from '@/api/base/coreProductionLine'; | ||||||
|  | import printPreview from './preview'; | ||||||
|  | import printTemplate from '../print-template'; | ||||||
|  | export default { | ||||||
|  | 	name: 'UnPrint', | ||||||
|  | 	components: { OtherMsg, printPreview }, | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			printMsg1: { | ||||||
|  | 				customerId: '', | ||||||
|  | 				customerName: '', | ||||||
|  | 				sealWorker: '', | ||||||
|  | 				packWorker: '', | ||||||
|  | 				processCard: '', | ||||||
|  | 				pallet: '', | ||||||
|  | 				remarkT: '', | ||||||
|  | 			}, | ||||||
|  | 			printMsg2: { | ||||||
|  | 				customerId: '', | ||||||
|  | 				customerName: '', | ||||||
|  | 				sealWorker: '', | ||||||
|  | 				packWorker: '', | ||||||
|  | 				processCard: '', | ||||||
|  | 				pallet: '', | ||||||
|  | 				remarkT: '', | ||||||
|  | 			}, | ||||||
|  | 			printMsg3: { | ||||||
|  | 				customerId: '', | ||||||
|  | 				customerName: '', | ||||||
|  | 				sealWorker: '', | ||||||
|  | 				packWorker: '', | ||||||
|  | 				processCard: '', | ||||||
|  | 				pallet: '', | ||||||
|  | 				remarkT: '', | ||||||
|  | 			}, | ||||||
|  | 			chooseMsg: 1, //单选 | ||||||
|  | 			formConfig: [ | ||||||
|  | 				{ | ||||||
|  | 					type: 'select', | ||||||
|  | 					label: '产线', | ||||||
|  | 					selectOptions: [], | ||||||
|  | 					param: 'lineId', | ||||||
|  | 					filterable: true, | ||||||
|  | 				}, | ||||||
|  | 				{ | ||||||
|  | 					type: 'datePicker', | ||||||
|  | 					label: '时间段', | ||||||
|  | 					dateType: 'daterange', | ||||||
|  | 					format: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  | 					valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  | 					rangeSeparator: '-', | ||||||
|  | 					startPlaceholder: '开始时间', | ||||||
|  | 					endPlaceholder: '结束时间', | ||||||
|  | 					param: 'timeVal', | ||||||
|  | 					defaultSelect: [], | ||||||
|  | 					width: 350, | ||||||
|  | 				}, | ||||||
|  | 				{ | ||||||
|  | 					type: 'button', | ||||||
|  | 					btnName: '查询', | ||||||
|  | 					name: 'search', | ||||||
|  | 					color: 'primary', | ||||||
|  | 				}, | ||||||
|  | 			], | ||||||
|  | 			lineList: [], | ||||||
|  | 			printStatusList: [ | ||||||
|  | 				{ id: 1, name: '未打印' }, | ||||||
|  | 				{ id: 2, name: '已打印' }, | ||||||
|  | 				{ id: 3, name: '已重打' }, | ||||||
|  | 			], | ||||||
|  | 			checkGoodList: [ | ||||||
|  | 				{ id: 0, name: '否' }, | ||||||
|  | 				{ id: 1, name: '是' }, | ||||||
|  | 			], | ||||||
|  | 			// 查询参数 | ||||||
|  | 			queryParams: { | ||||||
|  | 				pageNo: 1, | ||||||
|  | 				pageSize: 20, | ||||||
|  | 				printStatus: '1', | ||||||
|  | 				lineId: '', | ||||||
|  | 				createTime: [], | ||||||
|  | 			}, | ||||||
|  | 			total: 0, | ||||||
|  | 			tableProps, | ||||||
|  | 			list: [], | ||||||
|  | 			tableBtn: [ | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:order:query', | ||||||
|  | 					'base:order-con-group-order:create', | ||||||
|  | 				]) | ||||||
|  | 					? { | ||||||
|  | 							type: 'view', | ||||||
|  | 							btnName: '预览', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermi('base:order-group:update') | ||||||
|  | 					? { | ||||||
|  | 							type: 'print', | ||||||
|  | 							btnName: '打印', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermi('base:order-group:update') | ||||||
|  | 					? { | ||||||
|  | 							type: 'printed', | ||||||
|  | 							btnName: '已打印', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:order-group:update', | ||||||
|  | 					'base:core-product:query', | ||||||
|  | 					'base:core-customer:query', | ||||||
|  | 				]) | ||||||
|  | 					? { | ||||||
|  | 							type: 'edit', | ||||||
|  | 							btnName: '编辑', | ||||||
|  | 							showParam: { | ||||||
|  | 								type: '&', | ||||||
|  | 								data: [ | ||||||
|  | 									{ | ||||||
|  | 										type: 'unequal', | ||||||
|  | 										name: 'isEdit', | ||||||
|  | 										value: true, | ||||||
|  | 									}, | ||||||
|  | 								], | ||||||
|  | 							}, | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:order-group:update', | ||||||
|  | 					'base:core-product:query', | ||||||
|  | 					'base:core-customer:query', | ||||||
|  | 				]) | ||||||
|  | 					? { | ||||||
|  | 							type: 'save', | ||||||
|  | 							btnName: '保存', | ||||||
|  | 							showParam: { | ||||||
|  | 								type: '&', | ||||||
|  | 								data: [ | ||||||
|  | 									{ | ||||||
|  | 										type: 'equal', | ||||||
|  | 										name: 'isEdit', | ||||||
|  | 										value: true, | ||||||
|  | 									}, | ||||||
|  | 								], | ||||||
|  | 							}, | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 				this.$auth.hasPermi('base:order-group:query') | ||||||
|  | 					? { | ||||||
|  | 							type: 'delete', | ||||||
|  | 							btnName: '删除', | ||||||
|  | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 			].filter((v) => v), | ||||||
|  | 			printData: {}, | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	mounted() { | ||||||
|  | 		this.getLineList(); | ||||||
|  | 		this.getTopTitle(); | ||||||
|  | 		console.log(JSON.stringify(printTemplate)); | ||||||
|  | 		console.log('================printTemplate'); | ||||||
|  | 	}, | ||||||
|  | 	methods: { | ||||||
|  | 		getLineList() { | ||||||
|  | 			getCorePLList().then((res) => { | ||||||
|  | 				this.formConfig[0].selectOptions = res.data || []; | ||||||
|  | 				this.lineList = res.data || []; | ||||||
|  | 				this.getList(); | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		getList() { | ||||||
|  | 			getPackingPage({ ...this.queryParams }).then((res) => { | ||||||
|  | 				let arr = res.data.records || []; | ||||||
|  | 				arr.map((item) => { | ||||||
|  | 					this.lineList.map((subItem) => { | ||||||
|  | 						if (item.lineId === subItem.id) { | ||||||
|  | 							item.lineName = subItem.name; | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  | 					this.printStatusList.map((subItem2) => { | ||||||
|  | 						if (item.printStatus === subItem2.id) { | ||||||
|  | 							item.printStatusName = subItem2.name; | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  | 					this.checkGoodList.map((subItem3) => { | ||||||
|  | 						if (item.checkGood === subItem3.id) { | ||||||
|  | 							item.checkGoodName = subItem3.name; | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  | 				}); | ||||||
|  | 				this.list = arr; | ||||||
|  | 				this.total = res.data.total; | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		// 单选 | ||||||
|  | 		changeChoose(val) { | ||||||
|  | 			this.chooseMsg = val; | ||||||
|  | 		}, | ||||||
|  | 		buttonClick(val) { | ||||||
|  | 			this.queryParams.lineId = val.lineId; | ||||||
|  | 			this.queryParams.createTime = val.timeVal; | ||||||
|  | 			this.getList(); | ||||||
|  | 		}, | ||||||
|  | 		handleClick(val) { | ||||||
|  | 			console.log(val); | ||||||
|  | 			switch (val.type) { | ||||||
|  | 				case 'edit': | ||||||
|  | 					this.editNum(val.data); | ||||||
|  | 					break; | ||||||
|  | 				case 'save': | ||||||
|  | 					this.saveNum(val.data); | ||||||
|  | 					break; | ||||||
|  | 				case 'view': | ||||||
|  | 					// 保存选中的内容 | ||||||
|  | 					this.saveTopTitle(); | ||||||
|  | 					this.preView(val.data); | ||||||
|  | 					break; | ||||||
|  | 				case 'print': | ||||||
|  | 					// 保存选中的内容 | ||||||
|  | 					this.saveTopTitle(); | ||||||
|  | 					this.printTemp(); | ||||||
|  | 					break; | ||||||
|  | 				default: | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		// 编辑 | ||||||
|  | 		editNum(val) { | ||||||
|  | 			let obj = this.list[val._pageIndex - 1]; | ||||||
|  | 			obj.isEdit = true; | ||||||
|  | 			this.$set(this.list, val._pageIndex - 1, obj); | ||||||
|  | 		}, | ||||||
|  | 		// 保存 | ||||||
|  | 		saveNum(val) { | ||||||
|  | 			// 调用修改接口 | ||||||
|  | 			updatePacking({ id: val.id, num: val.num }).then(() => { | ||||||
|  | 				this.getList(); | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		// 输入框改变num | ||||||
|  | 		inputChange(val) { | ||||||
|  | 			this.list[val._pageIndex - 1][val.prop] = val[val.prop]; | ||||||
|  | 		}, | ||||||
|  | 		// 预览 | ||||||
|  | 		preView(data) { | ||||||
|  | 			let topMsg = | ||||||
|  | 				this.chooseMsg === 1 | ||||||
|  | 					? this.printMsg1 | ||||||
|  | 					: this.chooseMsg === 2 | ||||||
|  | 					? this.printMsg2 | ||||||
|  | 					: this.printMsg3; | ||||||
|  | 			let printData = { ...data, ...topMsg }; | ||||||
|  | 			var hiprintTemplate = new hiprint.PrintTemplate({ | ||||||
|  | 				template: printTemplate, | ||||||
|  | 			}); | ||||||
|  | 			this.$refs.preView.show(hiprintTemplate, printData); | ||||||
|  | 		}, | ||||||
|  | 		// 打印 | ||||||
|  | 		printTemp() { | ||||||
|  | 			console.log('11'); | ||||||
|  | 			var printData = {}; | ||||||
|  | 			let hiprintTemplate = this.$print( | ||||||
|  | 				undefined, | ||||||
|  | 				printTemplate, | ||||||
|  | 				printData, | ||||||
|  | 				{}, | ||||||
|  | 				{ | ||||||
|  | 					styleHandler: () => { | ||||||
|  | 						let css = | ||||||
|  | 							'<link href="http://hiprint.io/Content/hiprint/css/print-lock.css" media="print" rel="stylesheet">'; | ||||||
|  | 						return css; | ||||||
|  | 					}, | ||||||
|  | 				} | ||||||
|  | 			); | ||||||
|  | 			console.log(hiprintTemplate); | ||||||
|  | 		}, | ||||||
|  | 		// 保存选中的内容 | ||||||
|  | 		saveTopTitle() { | ||||||
|  | 			switch (this.chooseMsg) { | ||||||
|  | 				case 1: | ||||||
|  | 					localStorage.setItem('printMsg1', JSON.stringify(this.printMsg1)); | ||||||
|  | 					break; | ||||||
|  | 				case 2: | ||||||
|  | 					localStorage.setItem('printMsg2', JSON.stringify(this.printMsg2)); | ||||||
|  | 					break; | ||||||
|  | 				case 3: | ||||||
|  | 					localStorage.setItem('printMsg3', JSON.stringify(this.printMsg3)); | ||||||
|  | 					break; | ||||||
|  | 				default: | ||||||
|  | 					throw new Error(`${this.chooseMsg}的值不正确,请检查!`); | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		// 获取打印内容top | ||||||
|  | 		getTopTitle() { | ||||||
|  | 			let pm1 = localStorage.getItem('printMsg1'); | ||||||
|  | 			let pm2 = localStorage.getItem('printMsg2'); | ||||||
|  | 			let pm3 = localStorage.getItem('printMsg3'); | ||||||
|  | 			if (pm1) { | ||||||
|  | 				this.printMsg1 = JSON.parse(pm1); | ||||||
|  | 			} | ||||||
|  | 			if (pm2) { | ||||||
|  | 				this.printMsg2 = JSON.parse(pm2); | ||||||
|  | 			} | ||||||
|  | 			if (pm3) { | ||||||
|  | 				this.printMsg3 = JSON.parse(pm3); | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
							
								
								
									
										69
									
								
								src/views/base/packagingPrintLog/components/UnPrintEdit.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								src/views/base/packagingPrintLog/components/UnPrintEdit.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | |||||||
|  | <template> | ||||||
|  | 	<el-form | ||||||
|  | 		ref="unPrintEdit" | ||||||
|  | 		:rules="rules" | ||||||
|  | 		label-width="130px" | ||||||
|  | 		:model="form"> | ||||||
|  | 		<el-row :gutter="20"> | ||||||
|  | 			<el-col :span="24"> | ||||||
|  | 				<el-form-item | ||||||
|  | 					label="成品周转编号" | ||||||
|  | 					prop="packagingCode"> | ||||||
|  | 					<el-input | ||||||
|  | 						readonly | ||||||
|  | 						v-model="form.packagingCode"></el-input> | ||||||
|  | 				</el-form-item> | ||||||
|  | 			</el-col> | ||||||
|  | 			<el-col :span="24"> | ||||||
|  | 				<el-form-item | ||||||
|  | 					label="片数" | ||||||
|  | 					prop="num"> | ||||||
|  | 					<el-input-number | ||||||
|  | 						v-model="form.num" | ||||||
|  | 						:min="0" | ||||||
|  | 						:max="999999" | ||||||
|  | 						style="width: 100%" | ||||||
|  | 						label="片数"></el-input-number> | ||||||
|  | 				</el-form-item> | ||||||
|  | 			</el-col> | ||||||
|  | 		</el-row> | ||||||
|  | 	</el-form> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | import { getPacking } from '@/api/base/packingInfo'; | ||||||
|  | export default { | ||||||
|  | 	name: 'UnPrintEdit', | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			form: { | ||||||
|  | 				id: '', | ||||||
|  | 				packagingCode: '', | ||||||
|  | 				num: null, | ||||||
|  | 			}, | ||||||
|  | 			rules: { | ||||||
|  | 				num: [{ required: true, message: '片数不能为空', trigger: 'blur' }], | ||||||
|  | 			}, | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	methods: { | ||||||
|  | 		init(id) { | ||||||
|  | 			console.log('init'); | ||||||
|  | 			this.form.id = id; | ||||||
|  | 			getPacking(id).then((res) => { | ||||||
|  | 				console.log(res); | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		submitForm() { | ||||||
|  | 			this.$refs['unPrintEdit'].validate((valid) => { | ||||||
|  | 				if (valid) { | ||||||
|  | 					console.log('保存'); | ||||||
|  | 					this.$emit('successSubmit'); | ||||||
|  | 				} | ||||||
|  | 			}); | ||||||
|  | 		}, | ||||||
|  | 		formClear() { | ||||||
|  | 			this.$refs.unPrintEdit.resetFields(); | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
							
								
								
									
										100
									
								
								src/views/base/packagingPrintLog/components/preview.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								src/views/base/packagingPrintLog/components/preview.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,100 @@ | |||||||
|  | <template> | ||||||
|  | 	<base-dialog | ||||||
|  | 		dialogTitle="预览" | ||||||
|  | 		:dialogVisible="visible" | ||||||
|  | 		width="50%" | ||||||
|  | 		@cancel="hideModal" | ||||||
|  | 		:before-close="hideModal"> | ||||||
|  | 		<!-- <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> | ||||||
|  | 		</div> --> | ||||||
|  | 		<div id="preview_content" /> | ||||||
|  | 		<template slot="footer"> | ||||||
|  | 			<el-button | ||||||
|  | 				key="close" | ||||||
|  | 				@click="hideModal"> | ||||||
|  | 				关闭 | ||||||
|  | 			</el-button> | ||||||
|  | 		</template> | ||||||
|  | 	</base-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,344 +1,47 @@ | |||||||
| <!-- |  | ||||||
|  * @Author: zwq |  | ||||||
|  * @Date: 2023-08-01 14:55:51 |  | ||||||
|  * @LastEditors: zhp |  | ||||||
|  * @LastEditTime: 2024-02-28 10:38:34 |  | ||||||
|  * @Description: |  | ||||||
| --> |  | ||||||
| <template> | <template> | ||||||
|   <div class="app-container"> | 	<div class="packagingPrintLog-box"> | ||||||
|     <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | 		<div style="width: 100%"> | ||||||
|     <base-table :max-height="tableH" :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" | 			<ButtonNav | ||||||
|       :table-data="tableData"> | 				:menus="['未打印', '已打印']" | ||||||
|       <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn" | 				:button-mode="true" | ||||||
|         @clickBtn="handleClick" /> | 				@change="currentMenu"></ButtonNav> | ||||||
|     </base-table> | 		</div> | ||||||
|     <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total" | 		<!-- 未打印 --> | ||||||
|       @pagination="getDataList" /> | 		<UnPrint v-if="activeMenu == '未打印'" /> | ||||||
|     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" /> | 		<!-- 已打印 --> | ||||||
|  | 		<Printed v-else /> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import AddOrUpdate from './add-or-updata'; | import ButtonNav from '@/components/ButtonNav'; | ||||||
| // import unitDict from './unitDict'; | import UnPrint from './components/UnPrint'; | ||||||
| import basicPage from '../mixins/basic-page'; | import Printed from './components/Printed'; | ||||||
| import { parseTime } from '../mixins/code-filter'; |  | ||||||
| import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; |  | ||||||
| import { |  | ||||||
|   getPackingModel, |  | ||||||
| } from '@/api/base/printModel.js' |  | ||||||
| import { |  | ||||||
| 	deletePacking, |  | ||||||
|   getPackingPage, |  | ||||||
|   getWorkOrderList, |  | ||||||
| 	exportPackingExcel, |  | ||||||
| } from '@/api/base/packingInfo'; |  | ||||||
|  |  | ||||||
| const tableProps = [ |  | ||||||
| 	{ |  | ||||||
|     prop: 'packagingCode', |  | ||||||
|     label: '包装流水号' |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     prop: 'packagingBarCode', |  | ||||||
|     label: '包装条码' |  | ||||||
|   }, |  | ||||||
| 	{ |  | ||||||
|     prop: 'workOrderName', |  | ||||||
| 		label: '所属工单' |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
|     prop: 'customerName', |  | ||||||
| 		label: '客户' |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
|     prop: 'content', |  | ||||||
| 		label: '内容', |  | ||||||
| 		// subcomponent: unitDict, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     prop: 'modelName', |  | ||||||
|     label: '标签模板', |  | ||||||
|     // subcomponent: unitDict, |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     prop: 'printStatus', |  | ||||||
|     label: '打印状态', |  | ||||||
|     filter: (val) => val == 1 ? '未打印' : '已打印', |  | ||||||
|   }, |  | ||||||
| 	{ |  | ||||||
|     prop: 'createTime', |  | ||||||
| 		label: '生成日期', |  | ||||||
| 		filter: parseTime |  | ||||||
| 	}, |  | ||||||
| ]; |  | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   mixins: [basicPage, tableHeightMixin], | 	name: 'packagingPrintLog', | ||||||
|  | 	components: { ButtonNav, UnPrint, Printed }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			activeMenu: '未打印', | ||||||
|         getDataListURL: getPackingPage, |  | ||||||
| 				deleteURL: deletePacking, |  | ||||||
| 				exportURL: exportPackingExcel, |  | ||||||
| 			}, |  | ||||||
| 			tableProps, |  | ||||||
|       tableBtn: [ |  | ||||||
|         { |  | ||||||
|           type: 'print', |  | ||||||
|           btnName: '打印', |  | ||||||
|         }, |  | ||||||
|         this.$auth.hasPermi(`base:packaging-print-log:update`) |  | ||||||
| 					? { |  | ||||||
| 							type: 'edit', |  | ||||||
| 							btnName: '编辑', |  | ||||||
| 					  } |  | ||||||
|           : undefined, |  | ||||||
|         this.$auth.hasPermi(`base:packaging-print-log:delete`) |  | ||||||
| 					? { |  | ||||||
| 							type: 'delete', |  | ||||||
| 							btnName: '删除', |  | ||||||
| 					  } |  | ||||||
|           : undefined, |  | ||||||
| 			].filter((v) => v), |  | ||||||
| 			tableData: [], |  | ||||||
|       formConfig: [ |  | ||||||
|         { |  | ||||||
|           type: 'select', |  | ||||||
|           label: '工单', |  | ||||||
|           selectOptions: [], |  | ||||||
|           labelField: 'name', |  | ||||||
|           valueField: 'id', |  | ||||||
|           param: 'workOrderId', |  | ||||||
|           filterable: true, |  | ||||||
|         }, |  | ||||||
|         { |  | ||||||
|           // parent: 'dateFilterType', |  | ||||||
|           // 时间段选择 |  | ||||||
|           type: 'datePicker', |  | ||||||
|           // label: '时间段', |  | ||||||
|           dateType: 'daterange', |  | ||||||
|           format: 'yyyy-MM-dd HH:mm:ss', |  | ||||||
|           valueFormat: 'yyyy-MM-dd HH:mm:ss', |  | ||||||
|           defaultTime: ['00:00:00', '00:00:00'], |  | ||||||
|           rangeSeparator: '-', |  | ||||||
|           startPlaceholder: '开始时间', |  | ||||||
|           endPlaceholder: '结束时间', |  | ||||||
|           param: 'createTime', |  | ||||||
|         }, |  | ||||||
| 				{ |  | ||||||
| 					type: 'button', |  | ||||||
| 					btnName: '搜索', |  | ||||||
| 					name: 'search', |  | ||||||
| 					color: 'primary', |  | ||||||
| 				}, |  | ||||||
| 				// { |  | ||||||
| 				// 	type: 'separate', |  | ||||||
| 				// }, |  | ||||||
| 				// { |  | ||||||
| 				// 	type: 'button', |  | ||||||
| 				// 	btnName: '重置', |  | ||||||
| 				// 	name: 'reset', |  | ||||||
| 				// }, |  | ||||||
| 				{ |  | ||||||
| 					type: 'separate', |  | ||||||
| 				}, |  | ||||||
| 				{ |  | ||||||
|           type: this.$auth.hasPermi('base:packaging-print-log:create') ? 'button' : '', |  | ||||||
| 					btnName: '新增', |  | ||||||
| 					name: 'add', |  | ||||||
| 					color: 'success', |  | ||||||
| 					plain: true, |  | ||||||
| 				}, |  | ||||||
| 				// { |  | ||||||
| 				// 	type: 'separate', |  | ||||||
| 				// 	type: this.$auth.hasPermi('base:product:create') ? 'separate' : '', |  | ||||||
| 				// }, |  | ||||||
| 				// { |  | ||||||
| 				// 	type: this.$auth.hasPermi('base:product:export') ? 'button' : '', |  | ||||||
| 				// 	btnName: '导出', |  | ||||||
| 				// 	name: 'export', |  | ||||||
| 				// 	color: 'warning', |  | ||||||
| 				// }, |  | ||||||
| 			], |  | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	components: { |  | ||||||
| 		AddOrUpdate, |  | ||||||
| 	}, |  | ||||||
|   created() { |  | ||||||
|     this.getDict() |  | ||||||
|   }, |  | ||||||
| 	methods: { | 	methods: { | ||||||
|     getDataList() { | 		currentMenu(val) { | ||||||
|       this.dataListLoading = true; |  | ||||||
|       this.urlOptions.getDataListURL(this.listQuery).then(response => { |  | ||||||
|         this.tableData = response.data.records; |  | ||||||
|         this.listQuery.total = response.data.total; |  | ||||||
|         this.dataListLoading = false; |  | ||||||
|       }); |  | ||||||
|     }, |  | ||||||
|     getDict() { |  | ||||||
|       // 获取产品的属性列表 |  | ||||||
|       // getCustomerList().then((response) => { |  | ||||||
|       //   console.log(response); |  | ||||||
|       //   this.customerList = response.data |  | ||||||
|       //   // this.listQuery.total = response.data.total; |  | ||||||
|       // }) |  | ||||||
|       // getModelList().then((response) => { |  | ||||||
|       //   console.log(response); |  | ||||||
|       //   this.modelList = response.data |  | ||||||
|       //   // this.listQuery.total = response.data.total; |  | ||||||
|       // }) |  | ||||||
|       getWorkOrderList().then((response) => { |  | ||||||
|         // console.log(response); |  | ||||||
|         this.formConfig[0].selectOptions = response.data.map((item) => { |  | ||||||
|           return { |  | ||||||
|             name: item.name, |  | ||||||
|             id: item.id |  | ||||||
|           } |  | ||||||
|         }) |  | ||||||
|         console.log(this.formConfig[0].selectOptions); |  | ||||||
|         // this.listQuery.total = response.data.total; |  | ||||||
|       }) |  | ||||||
|     }, |  | ||||||
|     deleteHandle(id, name, index, packagingCode) { |  | ||||||
|       this.$confirm(`是否确认删除${'[' + packagingCode + ']'}数据项?`, "提示", { |  | ||||||
|         confirmButtonText: "确定", |  | ||||||
|         cancelButtonText: "取消", |  | ||||||
|         type: "warning", |  | ||||||
|       }) |  | ||||||
|         .then(() => { |  | ||||||
|           this.urlOptions.deleteURL(id).then(({ data }) => { |  | ||||||
|             this.$message({ |  | ||||||
|               message: "操作成功", |  | ||||||
|               type: "success", |  | ||||||
|               duration: 1500, |  | ||||||
|               onClose: () => { |  | ||||||
|                 this.getDataList(); |  | ||||||
|               }, |  | ||||||
|             }); |  | ||||||
|           }); |  | ||||||
|         }) |  | ||||||
|         .catch(() => { }); |  | ||||||
|     }, |  | ||||||
|     handlePrint(id) { |  | ||||||
|       if (id) { |  | ||||||
|         getPackingModel(id).then(res => { |  | ||||||
|           var obj = { |  | ||||||
|             code: '11111222', |  | ||||||
|             test: '11111', |  | ||||||
|             test2: '3333333', |  | ||||||
|             test1: '222222', |  | ||||||
|           } |  | ||||||
|           console.log(res); |  | ||||||
|           // getPackingListInfo({ |  | ||||||
|           //   size: 20, |  | ||||||
|           //   current: 1, |  | ||||||
|           //   boxNo: printModel.boxNo |  | ||||||
|           // }).then(result => { |  | ||||||
|           //   this.substrateList = result.data.records |  | ||||||
|           //   var obj = { |  | ||||||
|           //     // time: this.getNewDate(), |  | ||||||
|           //     boxNo: this.currentData.boxNo, |  | ||||||
|           //     orderNum: this.currentData.orderNum, |  | ||||||
|           //     powerLevel: this.currentData.powerLevel, |  | ||||||
|           //     sapMaterial: this.currentData.sapMaterial, |  | ||||||
|           //     img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAHVklEQVR4nO2dT2wUVRzHv2/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', |  | ||||||
|           //     // lineBody: this.currentData.lineBody == 1 ? 'F ' : 'S', |  | ||||||
|           //     createTime: moment(this.currentData.createTime).format('YYYY-MM-DD HH:mm:ss') |  | ||||||
|           //     // modul1: '20210320000012', |  | ||||||
|           //     // modul2: '20210320000012', |  | ||||||
|           //     // modul3: '20210320000012' |  | ||||||
|           //   } |  | ||||||
|           //   for (var i = 0; i < this.substrateList.length; i++) { |  | ||||||
|           //     var model = 'model' + Number(i + 1) |  | ||||||
|           //     var pmpp = 'PMPP' + Number(i + 1) |  | ||||||
|           //     var m = 'm' + Number(i + 1) |  | ||||||
|  |  | ||||||
|           //     console.log(model) |  | ||||||
|           //     // console.log(this.list[i].woSubstrateId) |  | ||||||
|           //     // console.log(this.list[i].woSubstrateId) |  | ||||||
|           //     obj['' + model + ''] = this.substrateList[i].woSubstrateId |  | ||||||
|           //     obj['' + pmpp + ''] = this.substrateList[i].pmpp |  | ||||||
|           //     obj['' + m + ''] = i + 1 |  | ||||||
|           //   } |  | ||||||
|           //   console.log(obj) |  | ||||||
|           // this.printPreview('预览', res.data) |  | ||||||
|           const hiprintTemplate = this.$print(undefined, JSON.parse(res.data.content), obj, {}, { |  | ||||||
|             // styleHandler: () => { |  | ||||||
|             //   const css = '<link href="http://hiprint.io/Content/hiprint/css/print-lock.css" media="print" rel="stylesheet">' |  | ||||||
|             //   return css |  | ||||||
|             // } |  | ||||||
|           }) |  | ||||||
|  |  | ||||||
|           hiprintTemplate.on('printSuccess', function () { |  | ||||||
|             console.log(1111); |  | ||||||
|             // that.$notification.success({ |  | ||||||
|             //   // key: key, |  | ||||||
|             //   placement: 'topRight', |  | ||||||
|             //   message: key + ' 打印成功', |  | ||||||
|             //   description: 'Api单独直接打印回调', |  | ||||||
|             // }); |  | ||||||
|           }); |  | ||||||
|           console.log(hiprintTemplate) |  | ||||||
|         }) |  | ||||||
|       } else { |  | ||||||
|         this.$message({ |  | ||||||
|           message: '请选择打印标签模板', |  | ||||||
|           type: 'warning' |  | ||||||
|         }); |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     closeCallback(vue) { |  | ||||||
|       console.log('关闭了打印工具') |  | ||||||
|     }, |  | ||||||
| 		buttonClick(val) { |  | ||||||
| 			switch (val.btnName) { |  | ||||||
| 				case 'search': |  | ||||||
| 					this.listQuery.pageNo = 1; |  | ||||||
| 					this.listQuery.pageSize = 20; |  | ||||||
|           this.listQuery.workOrderId = val.workOrderId; |  | ||||||
|           if (val.createTime && val.createTime.length != 0) { |  | ||||||
|             this.listQuery.createTime = val.createTime |  | ||||||
|             // this.listQuery.createTime[1] = val.timeVal[1] |  | ||||||
|           } else { |  | ||||||
|             this.listQuery.createTime = undefined |  | ||||||
|             // this.listQuery.endTime = undefined |  | ||||||
|           } |  | ||||||
|           this.getDataList(); |  | ||||||
|           console.log(this.tableData) |  | ||||||
| 					break; |  | ||||||
| 				case 'reset': |  | ||||||
| 					this.$refs.searchBarForm.resetForm(); |  | ||||||
| 					this.listQuery = { |  | ||||||
| 						pageSize: 20, |  | ||||||
| 						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); | 			console.log(val); | ||||||
| 			} | 			this.activeMenu = val; | ||||||
| 		}, |  | ||||||
|     otherMethods(val) { |  | ||||||
|       this.handlePrint(val.data.modelId) |  | ||||||
| 			// this.addOrUpdateVisible = true; |  | ||||||
| 			// this.addOrEditTitle = '详情'; |  | ||||||
| 			// this.$nextTick(() => { |  | ||||||
| 			// 	this.$refs.addOrUpdate.init(val.data.id, true); |  | ||||||
| 			// }); |  | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .packagingPrintLog-box { | ||||||
|  | 	min-height: calc(100vh - 120px - 8px); | ||||||
|  | 	background-color: #f2f4f9; | ||||||
|  | 	.show-box { | ||||||
|  | 		min-height: calc(100vh - 128px - 52px); | ||||||
|  | 		margin-top: 8px; | ||||||
|  | 		padding: 16px; | ||||||
|  | 		border-radius: 8px; | ||||||
|  | 		background-color: #fff; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | </style> | ||||||
|   | |||||||
							
								
								
									
										889
									
								
								src/views/base/packagingPrintLog/print-template.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										889
									
								
								src/views/base/packagingPrintLog/print-template.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,889 @@ | |||||||
|  | export default { | ||||||
|  |   "panels":[ | ||||||
|  |   { | ||||||
|  |   "index":0, | ||||||
|  |   "name":1, | ||||||
|  |   "height":125, | ||||||
|  |   "width":95, | ||||||
|  |   "paperHeader":0, | ||||||
|  |   "paperFooter":354.33070866141736, | ||||||
|  |   "printElements":[ | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":5, | ||||||
|  |   "height":30, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":262.2421875, | ||||||
|  |   "bottom":34.9921875, | ||||||
|  |   "vCenter":133.9921875, | ||||||
|  |   "hCenter":19.9921875, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "borderColor":"green", | ||||||
|  |   "backgroundColor":"green" | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"矩形", | ||||||
|  |   "type":"rect" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":35, | ||||||
|  |   "top":15, | ||||||
|  |   "height":20, | ||||||
|  |   "width":195, | ||||||
|  |   "title":"厂内镀膜/钢化片周转标签", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":16.5, | ||||||
|  |   "color":"#ffffff", | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":232.9921875, | ||||||
|  |   "bottom":35.24609375, | ||||||
|  |   "vCenter":135.4921875, | ||||||
|  |   "hCenter":25.24609375 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":50, | ||||||
|  |   "top":35, | ||||||
|  |   "height":52.5, | ||||||
|  |   "width":9 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"竖线", | ||||||
|  |   "type":"vline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":35, | ||||||
|  |   "height":309, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":261.4921875, | ||||||
|  |   "bottom":343.9921875, | ||||||
|  |   "vCenter":133.2421875, | ||||||
|  |   "hCenter":189.4921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"矩形", | ||||||
|  |   "type":"rect" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":42.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"线别", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":45.99609375, | ||||||
|  |   "bottom":60.4921875, | ||||||
|  |   "vCenter":27.99609375, | ||||||
|  |   "hCenter":51.4921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":55, | ||||||
|  |   "top":42.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":200, | ||||||
|  |   "title":"判定", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":93.4921875, | ||||||
|  |   "bottom":59.25, | ||||||
|  |   "vCenter":75.4921875, | ||||||
|  |   "hCenter":50.25, | ||||||
|  |   "field":"checkGoodName" | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":62.5, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":259.9921875, | ||||||
|  |   "bottom":72.4921875, | ||||||
|  |   "vCenter":132.4921875, | ||||||
|  |   "hCenter":67.9921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":55, | ||||||
|  |   "top":70, | ||||||
|  |   "height":18, | ||||||
|  |   "width":199.5, | ||||||
|  |   "title":"备注", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":91.2421875, | ||||||
|  |   "bottom":86.25, | ||||||
|  |   "vCenter":73.2421875, | ||||||
|  |   "hCenter":77.25, | ||||||
|  |   "field":"remarkT" | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":190, | ||||||
|  |   "top":87.5, | ||||||
|  |   "height":169.5, | ||||||
|  |   "width":9, | ||||||
|  |   "right":199.74609375, | ||||||
|  |   "bottom":255.75, | ||||||
|  |   "vCenter":195.24609375, | ||||||
|  |   "hCenter":171 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"竖线", | ||||||
|  |   "type":"vline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":87.5, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":260.7421875, | ||||||
|  |   "bottom":96.75, | ||||||
|  |   "vCenter":132.4921875, | ||||||
|  |   "hCenter":92.25 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":77.5, | ||||||
|  |   "top":90, | ||||||
|  |   "height":15, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"规格", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":113.49609375, | ||||||
|  |   "bottom":105.4921875, | ||||||
|  |   "vCenter":95.49609375, | ||||||
|  |   "hCenter":97.9921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":207.5, | ||||||
|  |   "top":100, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"用户", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":242.7421875, | ||||||
|  |   "bottom":116.25, | ||||||
|  |   "vCenter":224.7421875, | ||||||
|  |   "hCenter":107.25 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":25, | ||||||
|  |   "top":102.5, | ||||||
|  |   "height":15, | ||||||
|  |   "width":156, | ||||||
|  |   "title":"长*宽*厚度(单位:mm)", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":179.25, | ||||||
|  |   "bottom":117.4921875, | ||||||
|  |   "vCenter":101.25, | ||||||
|  |   "hCenter":109.9921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":117.5, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":263.7421875, | ||||||
|  |   "bottom":125.7421875, | ||||||
|  |   "vCenter":135.4921875, | ||||||
|  |   "hCenter":121.2421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":130, | ||||||
|  |   "top":145, | ||||||
|  |   "height":55.5, | ||||||
|  |   "width":9, | ||||||
|  |   "right":138.99609375, | ||||||
|  |   "bottom":199.5, | ||||||
|  |   "vCenter":134.49609375, | ||||||
|  |   "hCenter":171.75 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"竖线", | ||||||
|  |   "type":"vline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":145, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":260.25, | ||||||
|  |   "bottom":154.2421875, | ||||||
|  |   "vCenter":132, | ||||||
|  |   "hCenter":149.7421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":45, | ||||||
|  |   "top":155, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"编号", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":82.2421875, | ||||||
|  |   "bottom":171.75, | ||||||
|  |   "vCenter":64.2421875, | ||||||
|  |   "hCenter":162.75 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":135, | ||||||
|  |   "top":155, | ||||||
|  |   "height":18, | ||||||
|  |   "width":49.5, | ||||||
|  |   "title":"工位号", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":186, | ||||||
|  |   "bottom":172.9921875, | ||||||
|  |   "vCenter":161.25, | ||||||
|  |   "hCenter":163.9921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":197.5, | ||||||
|  |   "top":155, | ||||||
|  |   "height":18, | ||||||
|  |   "width":60, | ||||||
|  |   "title":"流程卡号", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":256.74609375, | ||||||
|  |   "bottom":143.7421875, | ||||||
|  |   "vCenter":226.74609375, | ||||||
|  |   "hCenter":134.7421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":175, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":259.2421875, | ||||||
|  |   "bottom":183.75, | ||||||
|  |   "vCenter":130.9921875, | ||||||
|  |   "hCenter":179.25 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":50, | ||||||
|  |   "top":200, | ||||||
|  |   "height":58.5, | ||||||
|  |   "width":9, | ||||||
|  |   "right":58.9921875, | ||||||
|  |   "bottom":259.5, | ||||||
|  |   "vCenter":54.4921875, | ||||||
|  |   "hCenter":230.25 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"竖线", | ||||||
|  |   "type":"vline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":110, | ||||||
|  |   "top":200, | ||||||
|  |   "height":58.5, | ||||||
|  |   "width":9, | ||||||
|  |   "right":117.75, | ||||||
|  |   "bottom":256.9921875, | ||||||
|  |   "vCenter":113.25, | ||||||
|  |   "hCenter":227.7421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"竖线", | ||||||
|  |   "type":"vline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":200, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":262.9921875, | ||||||
|  |   "bottom":210.24609375, | ||||||
|  |   "vCenter":134.7421875, | ||||||
|  |   "hCenter":205.74609375 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":210, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"日期", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":45.99609375, | ||||||
|  |   "bottom":228, | ||||||
|  |   "vCenter":27.99609375, | ||||||
|  |   "hCenter":219 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":67.5, | ||||||
|  |   "top":210, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"班次", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":103.5, | ||||||
|  |   "bottom":228, | ||||||
|  |   "vCenter":85.5, | ||||||
|  |   "hCenter":219 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":207.5, | ||||||
|  |   "top":210, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "title":"片数", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":243.4921875, | ||||||
|  |   "bottom":228, | ||||||
|  |   "vCenter":225.4921875, | ||||||
|  |   "hCenter":219 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":230, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":261.4921875, | ||||||
|  |   "bottom":239.25, | ||||||
|  |   "vCenter":133.2421875, | ||||||
|  |   "hCenter":234.75 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":257.5, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":261.4921875, | ||||||
|  |   "bottom":266.49609375, | ||||||
|  |   "vCenter":133.2421875, | ||||||
|  |   "hCenter":261.99609375 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":262.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":243, | ||||||
|  |   "title":"封箱人员工号", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":46.9921875, | ||||||
|  |   "bottom":279.24609375, | ||||||
|  |   "vCenter":28.9921875, | ||||||
|  |   "hCenter":270.24609375, | ||||||
|  |   "field":"sealWorker" | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":280, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":262.2421875, | ||||||
|  |   "bottom":289.2421875, | ||||||
|  |   "vCenter":133.9921875, | ||||||
|  |   "hCenter":284.7421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":285, | ||||||
|  |   "height":18, | ||||||
|  |   "width":244.5, | ||||||
|  |   "title":"打包人员工号", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":96.4921875, | ||||||
|  |   "bottom":301.74609375, | ||||||
|  |   "vCenter":52.9921875, | ||||||
|  |   "hCenter":292.74609375, | ||||||
|  |   "field":"packWorker" | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":300, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":264.4921875, | ||||||
|  |   "bottom":308.49609375, | ||||||
|  |   "vCenter":136.2421875, | ||||||
|  |   "hCenter":303.99609375 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":305, | ||||||
|  |   "height":18, | ||||||
|  |   "width":247.5, | ||||||
|  |   "title":"备注1:单层镀/双层镀/丝印打孔/打孔钢片", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":96.99609375, | ||||||
|  |   "bottom":322.9921875, | ||||||
|  |   "vCenter":53.49609375, | ||||||
|  |   "hCenter":313.9921875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":5, | ||||||
|  |   "top":322.5, | ||||||
|  |   "height":9, | ||||||
|  |   "width":256.5, | ||||||
|  |   "right":262.2421875, | ||||||
|  |   "bottom":332.7421875, | ||||||
|  |   "vCenter":133.9921875, | ||||||
|  |   "hCenter":328.2421875 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"横线", | ||||||
|  |   "type":"hline" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":327.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":244.5, | ||||||
|  |   "title":"备注2:", | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":97.9921875, | ||||||
|  |   "bottom":343.74609375, | ||||||
|  |   "vCenter":54.4921875, | ||||||
|  |   "hCenter":334.74609375 | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":20, | ||||||
|  |   "top":122.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":157.5, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":54.99609375, | ||||||
|  |   "bottom":142.5, | ||||||
|  |   "vCenter":36.99609375, | ||||||
|  |   "hCenter":133.5, | ||||||
|  |   "field":"specifications", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":195, | ||||||
|  |   "top":122.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":58.5, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":250.9921875, | ||||||
|  |   "bottom":140.49609375, | ||||||
|  |   "vCenter":223.2421875, | ||||||
|  |   "hCenter":131.49609375, | ||||||
|  |   "field":"customerName", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":12.5, | ||||||
|  |   "top":177.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":112.5, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":48.24609375, | ||||||
|  |   "bottom":195, | ||||||
|  |   "vCenter":30.24609375, | ||||||
|  |   "hCenter":186, | ||||||
|  |   "field":"packagingCode", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":135, | ||||||
|  |   "top":177.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":49.5, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":186.24609375, | ||||||
|  |   "bottom":196.5, | ||||||
|  |   "vCenter":161.49609375, | ||||||
|  |   "hCenter":187.5, | ||||||
|  |   "field":"workStation", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":195, | ||||||
|  |   "top":177.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":60, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":254.7421875, | ||||||
|  |   "bottom":194.25, | ||||||
|  |   "vCenter":224.7421875, | ||||||
|  |   "hCenter":185.25, | ||||||
|  |   "field":"processCard", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":10, | ||||||
|  |   "top":235, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":46.9921875, | ||||||
|  |   "bottom":252.24609375, | ||||||
|  |   "vCenter":28.9921875, | ||||||
|  |   "hCenter":243.24609375, | ||||||
|  |   "field":"date", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":60, | ||||||
|  |   "top":235, | ||||||
|  |   "height":18, | ||||||
|  |   "width":48, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":97.2421875, | ||||||
|  |   "bottom":253.9921875, | ||||||
|  |   "vCenter":79.2421875, | ||||||
|  |   "hCenter":244.9921875, | ||||||
|  |   "field":"groupClass", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":120, | ||||||
|  |   "top":235, | ||||||
|  |   "height":18, | ||||||
|  |   "width":64.5, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":167.49609375, | ||||||
|  |   "bottom":253.9921875, | ||||||
|  |   "vCenter":143.49609375, | ||||||
|  |   "hCenter":244.9921875, | ||||||
|  |   "field":"time", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":202.5, | ||||||
|  |   "top":235, | ||||||
|  |   "height":18, | ||||||
|  |   "width":48, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":250.74609375, | ||||||
|  |   "bottom":253.2421875, | ||||||
|  |   "vCenter":226.74609375, | ||||||
|  |   "hCenter":244.2421875, | ||||||
|  |   "field":"num", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |   "options":{ | ||||||
|  |   "left":7.5, | ||||||
|  |   "top":62.5, | ||||||
|  |   "height":18, | ||||||
|  |   "width":36, | ||||||
|  |   "coordinateSync":false, | ||||||
|  |   "widthHeightSync":false, | ||||||
|  |   "fontSize":12, | ||||||
|  |   "qrCodeLevel":0, | ||||||
|  |   "right":44.7421875, | ||||||
|  |   "bottom":81.24609375, | ||||||
|  |   "vCenter":26.7421875, | ||||||
|  |   "hCenter":72.24609375, | ||||||
|  |   "field":"lineName", | ||||||
|  |   "hideTitle":true | ||||||
|  |   }, | ||||||
|  |   "printElementType":{ | ||||||
|  |   "title":"文本", | ||||||
|  |   "type":"text" | ||||||
|  |   } | ||||||
|  |   } | ||||||
|  |   ], | ||||||
|  |   "paperNumberLeft":372.5, | ||||||
|  |   "paperNumberTop":337.5, | ||||||
|  |   "paperNumberContinue":true, | ||||||
|  |   "watermarkOptions":{ | ||||||
|  |   } | ||||||
|  |   } | ||||||
|  |   ] | ||||||
|  |   } | ||||||
							
								
								
									
										344
									
								
								src/views/base/packagingPrintLog1/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										344
									
								
								src/views/base/packagingPrintLog1/index.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,344 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Author: zwq | ||||||
|  |  * @Date: 2023-08-01 14:55:51 | ||||||
|  |  * @LastEditors: zhp | ||||||
|  |  * @LastEditTime: 2024-04-10 16:34:40 | ||||||
|  |  * @Description: | ||||||
|  | --> | ||||||
|  | <template> | ||||||
|  |   <div class="app-container"> | ||||||
|  |     <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | ||||||
|  |     <base-table :max-height="tableH" :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" /> | ||||||
|  |     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" /> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import AddOrUpdate from './add-or-updata'; | ||||||
|  | // import unitDict from './unitDict'; | ||||||
|  | import basicPage from '../mixins/basic-page'; | ||||||
|  | import { parseTime } from '../mixins/code-filter'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  | import { | ||||||
|  |   getPackingModel, | ||||||
|  | } from '@/api/base/printModel.js' | ||||||
|  | import { | ||||||
|  | 	deletePacking, | ||||||
|  |   getPackingPage, | ||||||
|  |   getWorkOrderList, | ||||||
|  | 	exportPackingExcel, | ||||||
|  | } from '@/api/base/packingInfo'; | ||||||
|  |  | ||||||
|  | const tableProps = [ | ||||||
|  | 	{ | ||||||
|  |     prop: 'packagingCode', | ||||||
|  |     label: '包装流水号' | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     prop: 'packagingBarCode', | ||||||
|  |     label: '包装条码' | ||||||
|  |   }, | ||||||
|  | 	{ | ||||||
|  |     prop: 'workOrderName', | ||||||
|  | 		label: '所属工单' | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  |     prop: 'customerName', | ||||||
|  | 		label: '客户' | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  |     prop: 'content', | ||||||
|  | 		label: '内容', | ||||||
|  | 		// subcomponent: unitDict, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     prop: 'modelName', | ||||||
|  |     label: '标签模板', | ||||||
|  |     // subcomponent: unitDict, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     prop: 'printStatus', | ||||||
|  |     label: '打印状态', | ||||||
|  |     filter: (val) => val == 1 ? '未打印' : '已打印', | ||||||
|  |   }, | ||||||
|  | 	{ | ||||||
|  |     prop: 'createTime', | ||||||
|  | 		label: '生成日期', | ||||||
|  | 		filter: parseTime | ||||||
|  | 	}, | ||||||
|  | ]; | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   mixins: [basicPage, tableHeightMixin], | ||||||
|  | 	data() { | ||||||
|  | 		return { | ||||||
|  | 			urlOptions: { | ||||||
|  |         getDataListURL: getPackingPage, | ||||||
|  | 				deleteURL: deletePacking, | ||||||
|  | 				exportURL: exportPackingExcel, | ||||||
|  | 			}, | ||||||
|  | 			tableProps, | ||||||
|  |       tableBtn: [ | ||||||
|  |         { | ||||||
|  |           type: 'print', | ||||||
|  |           btnName: '打印', | ||||||
|  |         }, | ||||||
|  |         this.$auth.hasPermi(`base:packaging-print-log:update`) | ||||||
|  | 					? { | ||||||
|  | 							type: 'edit', | ||||||
|  | 							btnName: '编辑', | ||||||
|  | 					  } | ||||||
|  |           : undefined, | ||||||
|  |         this.$auth.hasPermi(`base:packaging-print-log:delete`) | ||||||
|  | 					? { | ||||||
|  | 							type: 'delete', | ||||||
|  | 							btnName: '删除', | ||||||
|  | 					  } | ||||||
|  |           : undefined, | ||||||
|  | 			].filter((v) => v), | ||||||
|  | 			tableData: [], | ||||||
|  |       formConfig: [ | ||||||
|  |         { | ||||||
|  |           type: 'select', | ||||||
|  |           label: '工单', | ||||||
|  |           selectOptions: [], | ||||||
|  |           labelField: 'name', | ||||||
|  |           valueField: 'id', | ||||||
|  |           param: 'workOrderId', | ||||||
|  |           filterable: true, | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           // parent: 'dateFilterType', | ||||||
|  |           // 时间段选择 | ||||||
|  |           type: 'datePicker', | ||||||
|  |           // label: '时间段', | ||||||
|  |           dateType: 'daterange', | ||||||
|  |           format: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  |           valueFormat: 'yyyy-MM-dd HH:mm:ss', | ||||||
|  |           defaultTime: ['00:00:00', '00:00:00'], | ||||||
|  |           rangeSeparator: '-', | ||||||
|  |           startPlaceholder: '开始时间', | ||||||
|  |           endPlaceholder: '结束时间', | ||||||
|  |           param: 'createTime', | ||||||
|  |         }, | ||||||
|  | 				{ | ||||||
|  |           type: this.$auth.hasPermi('base:packaging-print-log:query') ? 'button' : '', | ||||||
|  | 					btnName: '搜索', | ||||||
|  | 					name: 'search', | ||||||
|  | 					color: 'primary', | ||||||
|  | 				}, | ||||||
|  | 				// { | ||||||
|  | 				// 	type: 'separate', | ||||||
|  | 				// }, | ||||||
|  | 				// { | ||||||
|  | 				// 	type: 'button', | ||||||
|  | 				// 	btnName: '重置', | ||||||
|  | 				// 	name: 'reset', | ||||||
|  | 				// }, | ||||||
|  |         { | ||||||
|  |           type: this.$auth.hasPermi('base:packaging-print-log:create') ? 'separate' : '', | ||||||
|  | 				}, | ||||||
|  | 				{ | ||||||
|  |           type: this.$auth.hasPermi('base:packaging-print-log:create') ? 'button' : '', | ||||||
|  | 					btnName: '新增', | ||||||
|  | 					name: 'add', | ||||||
|  | 					color: 'success', | ||||||
|  | 					plain: true, | ||||||
|  | 				}, | ||||||
|  | 				// { | ||||||
|  | 				// 	type: 'separate', | ||||||
|  | 				// 	type: this.$auth.hasPermi('base:product:create') ? 'separate' : '', | ||||||
|  | 				// }, | ||||||
|  | 				// { | ||||||
|  | 				// 	type: this.$auth.hasPermi('base:product:export') ? 'button' : '', | ||||||
|  | 				// 	btnName: '导出', | ||||||
|  | 				// 	name: 'export', | ||||||
|  | 				// 	color: 'warning', | ||||||
|  | 				// }, | ||||||
|  | 			], | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
|  | 	components: { | ||||||
|  | 		AddOrUpdate, | ||||||
|  | 	}, | ||||||
|  |   created() { | ||||||
|  |     this.getDict() | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     getDataList() { | ||||||
|  |       this.dataListLoading = true; | ||||||
|  |       this.urlOptions.getDataListURL(this.listQuery).then(response => { | ||||||
|  |         this.tableData = response.data.records; | ||||||
|  |         this.listQuery.total = response.data.total; | ||||||
|  |         this.dataListLoading = false; | ||||||
|  |       }); | ||||||
|  |     }, | ||||||
|  |     getDict() { | ||||||
|  |       // 获取产品的属性列表 | ||||||
|  |       // getCustomerList().then((response) => { | ||||||
|  |       //   console.log(response); | ||||||
|  |       //   this.customerList = response.data | ||||||
|  |       //   // this.listQuery.total = response.data.total; | ||||||
|  |       // }) | ||||||
|  |       // getModelList().then((response) => { | ||||||
|  |       //   console.log(response); | ||||||
|  |       //   this.modelList = response.data | ||||||
|  |       //   // this.listQuery.total = response.data.total; | ||||||
|  |       // }) | ||||||
|  |       getWorkOrderList().then((response) => { | ||||||
|  |         // console.log(response); | ||||||
|  |         this.formConfig[0].selectOptions = response.data.map((item) => { | ||||||
|  |           return { | ||||||
|  |             name: item.name, | ||||||
|  |             id: item.id | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |         console.log(this.formConfig[0].selectOptions); | ||||||
|  |         // this.listQuery.total = response.data.total; | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     deleteHandle(id, name, index, packagingCode) { | ||||||
|  |       this.$confirm(`是否确认删除${'[' + packagingCode + ']'}数据项?`, "提示", { | ||||||
|  |         confirmButtonText: "确定", | ||||||
|  |         cancelButtonText: "取消", | ||||||
|  |         type: "warning", | ||||||
|  |       }) | ||||||
|  |         .then(() => { | ||||||
|  |           this.urlOptions.deleteURL(id).then(({ data }) => { | ||||||
|  |             this.$message({ | ||||||
|  |               message: "操作成功", | ||||||
|  |               type: "success", | ||||||
|  |               duration: 1500, | ||||||
|  |               onClose: () => { | ||||||
|  |                 this.getDataList(); | ||||||
|  |               }, | ||||||
|  |             }); | ||||||
|  |           }); | ||||||
|  |         }) | ||||||
|  |         .catch(() => { }); | ||||||
|  |     }, | ||||||
|  |     handlePrint(id) { | ||||||
|  |       if (id) { | ||||||
|  |         getPackingModel(id).then(res => { | ||||||
|  |           var obj = { | ||||||
|  |             code: '11111222', | ||||||
|  |             test: '11111', | ||||||
|  |             test2: '3333333', | ||||||
|  |             test1: '222222', | ||||||
|  |           } | ||||||
|  |           console.log(res); | ||||||
|  |           // getPackingListInfo({ | ||||||
|  |           //   size: 20, | ||||||
|  |           //   current: 1, | ||||||
|  |           //   boxNo: printModel.boxNo | ||||||
|  |           // }).then(result => { | ||||||
|  |           //   this.substrateList = result.data.records | ||||||
|  |           //   var obj = { | ||||||
|  |           //     // time: this.getNewDate(), | ||||||
|  |           //     boxNo: this.currentData.boxNo, | ||||||
|  |           //     orderNum: this.currentData.orderNum, | ||||||
|  |           //     powerLevel: this.currentData.powerLevel, | ||||||
|  |           //     sapMaterial: this.currentData.sapMaterial, | ||||||
|  |           //     img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAHVklEQVR4nO2dT2wUVRzHv2/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', | ||||||
|  |           //     // lineBody: this.currentData.lineBody == 1 ? 'F ' : 'S', | ||||||
|  |           //     createTime: moment(this.currentData.createTime).format('YYYY-MM-DD HH:mm:ss') | ||||||
|  |           //     // modul1: '20210320000012', | ||||||
|  |           //     // modul2: '20210320000012', | ||||||
|  |           //     // modul3: '20210320000012' | ||||||
|  |           //   } | ||||||
|  |           //   for (var i = 0; i < this.substrateList.length; i++) { | ||||||
|  |           //     var model = 'model' + Number(i + 1) | ||||||
|  |           //     var pmpp = 'PMPP' + Number(i + 1) | ||||||
|  |           //     var m = 'm' + Number(i + 1) | ||||||
|  |  | ||||||
|  |           //     console.log(model) | ||||||
|  |           //     // console.log(this.list[i].woSubstrateId) | ||||||
|  |           //     // console.log(this.list[i].woSubstrateId) | ||||||
|  |           //     obj['' + model + ''] = this.substrateList[i].woSubstrateId | ||||||
|  |           //     obj['' + pmpp + ''] = this.substrateList[i].pmpp | ||||||
|  |           //     obj['' + m + ''] = i + 1 | ||||||
|  |           //   } | ||||||
|  |           //   console.log(obj) | ||||||
|  |           // this.printPreview('预览', res.data) | ||||||
|  |           const hiprintTemplate = this.$print(undefined, JSON.parse(res.data.content), obj, {}, { | ||||||
|  |             // styleHandler: () => { | ||||||
|  |             //   const css = '<link href="http://hiprint.io/Content/hiprint/css/print-lock.css" media="print" rel="stylesheet">' | ||||||
|  |             //   return css | ||||||
|  |             // } | ||||||
|  |           }) | ||||||
|  |  | ||||||
|  |           hiprintTemplate.on('printSuccess', function () { | ||||||
|  |             console.log(1111); | ||||||
|  |             // that.$notification.success({ | ||||||
|  |             //   // key: key, | ||||||
|  |             //   placement: 'topRight', | ||||||
|  |             //   message: key + ' 打印成功', | ||||||
|  |             //   description: 'Api单独直接打印回调', | ||||||
|  |             // }); | ||||||
|  |           }); | ||||||
|  |           console.log(hiprintTemplate) | ||||||
|  |         }) | ||||||
|  |       } else { | ||||||
|  |         this.$message({ | ||||||
|  |           message: '请选择打印标签模板', | ||||||
|  |           type: 'warning' | ||||||
|  |         }); | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     closeCallback(vue) { | ||||||
|  |       console.log('关闭了打印工具') | ||||||
|  |     }, | ||||||
|  | 		buttonClick(val) { | ||||||
|  | 			switch (val.btnName) { | ||||||
|  | 				case 'search': | ||||||
|  | 					this.listQuery.pageNo = 1; | ||||||
|  | 					this.listQuery.pageSize = 20; | ||||||
|  |           this.listQuery.workOrderId = val.workOrderId; | ||||||
|  |           if (val.createTime && val.createTime.length != 0) { | ||||||
|  |             this.listQuery.createTime = val.createTime | ||||||
|  |             // this.listQuery.createTime[1] = val.timeVal[1] | ||||||
|  |           } else { | ||||||
|  |             this.listQuery.createTime = undefined | ||||||
|  |             // this.listQuery.endTime = undefined | ||||||
|  |           } | ||||||
|  |           this.getDataList(); | ||||||
|  |           console.log(this.tableData) | ||||||
|  | 					break; | ||||||
|  | 				case 'reset': | ||||||
|  | 					this.$refs.searchBarForm.resetForm(); | ||||||
|  | 					this.listQuery = { | ||||||
|  | 						pageSize: 20, | ||||||
|  | 						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); | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  |     otherMethods(val) { | ||||||
|  |       this.handlePrint(val.data.modelId) | ||||||
|  | 			// this.addOrUpdateVisible = true; | ||||||
|  | 			// this.addOrEditTitle = '详情'; | ||||||
|  | 			// this.$nextTick(() => { | ||||||
|  | 			// 	this.$refs.addOrUpdate.init(val.data.id, true); | ||||||
|  | 			// }); | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
| @@ -6,138 +6,130 @@ | |||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
|   <el-dialog class="baseDialog" :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="30%" show-close="true"> | 	<el-dialog | ||||||
|     <small-title slot="title" :no-padding="true"> | 		class="baseDialog" | ||||||
|  | 		:visible.sync="visible" | ||||||
|  | 		:show-close="true" | ||||||
|  | 		:wrapper-closable="false" | ||||||
|  | 		width="50%"> | ||||||
|  | 		<small-title | ||||||
|  | 			slot="title" | ||||||
|  | 			:no-padding="true"> | ||||||
| 			{{ !dataForm.id ? '新增' : '编辑' }} | 			{{ !dataForm.id ? '新增' : '编辑' }} | ||||||
| 		</small-title> | 		</small-title> | ||||||
|  |  | ||||||
| 		<div class="content"> | 		<div class="content"> | ||||||
| 			<div class="visual-part"> | 			<div class="visual-part"> | ||||||
|         <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px" | 				<el-form | ||||||
|  | 					ref="dataForm" | ||||||
|  | 					:model="dataForm" | ||||||
|  | 					:rules="dataRule" | ||||||
|  | 					label-width="100px" | ||||||
| 					@keyup.enter.native="dataFormSubmit"> | 					@keyup.enter.native="dataFormSubmit"> | ||||||
| 					<el-row :gutter="20"> | 					<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="typeId"> |  | ||||||
|                 <el-select v-model="dataForm.typeId" style="width: 100%;" placeholder="请选择标签类型" clearable> |  | ||||||
|                   <el-option v-for="dict in typeList" :key="dict.id" :label="dict.name" :value="dict.id" /> |  | ||||||
|                 </el-select> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-col> |  | ||||||
|           </el-row> |  | ||||||
|           <el-row :gutter="20"> |  | ||||||
|             <el-col :span="12"> |  | ||||||
|               <el-form-item label="打印方式" prop="printModel"> |  | ||||||
|                 <el-select v-model="dataForm.printModel" style="width: 100%;" placeholder="请选择打印方式" clearable> |  | ||||||
|                   <el-option v-for="dict in printModelList" :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="remark"> |  | ||||||
|                 <el-input v-model="dataForm.remark" clearable placeholder="请输入标签备注" /> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-col> |  | ||||||
|           </el-row> |  | ||||||
|           <el-row :gutter="20"> |  | ||||||
|             <el-col :span="12"> |  | ||||||
|               <el-form-item label="模板设计" prop="content"> |  | ||||||
|                 <el-button  icon="el-icon-edit" @click="btnClickDesign()">模板设计</el-button> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-col> |  | ||||||
|             <!-- <el-col :span="12"> |  | ||||||
|               <el-form-item label="单位平方数" prop="area"> |  | ||||||
|                 <el-input v-model="dataForm.area" placeholder="请输入单位平方数" /> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-col> --> |  | ||||||
|           </el-row> |  | ||||||
|           <!-- <el-row :gutter="20"> |  | ||||||
| 						<el-col :span="24"> | 						<el-col :span="24"> | ||||||
|               <el-form-item label="完成单位产品用时" prop="processTime"> | 							<el-form-item | ||||||
|                 <el-input v-model="dataForm.processTime" placeholder="请输入完成单位产品用时" /> | 								label="模板名称" | ||||||
|  | 								prop="name"> | ||||||
|  | 								<el-input | ||||||
|  | 									v-model="dataForm.name" | ||||||
|  | 									clearable | ||||||
|  | 									placeholder="请输入模板名称" /> | ||||||
| 							</el-form-item> | 							</el-form-item> | ||||||
| 						</el-col> | 						</el-col> | ||||||
|           </el-row> --> | 						<el-col :span="24"> | ||||||
|         </el-form> | 							<el-form-item | ||||||
|  | 								label="标签类型" | ||||||
|         <!-- <small-title | 								prop="typeId"> | ||||||
| 					style="margin: 16px 0; padding-left: 8px" | 								<el-select | ||||||
| 					:no-padding="true"> | 									v-model="dataForm.typeId" | ||||||
| 					产品属性列表 | 									style="width: 100%" | ||||||
| 				</small-title> | 									placeholder="请选择标签类型" | ||||||
|  | 									clearable> | ||||||
| 				<div class="attr-list"> | 									<el-option | ||||||
| 					<base-table | 										v-for="dict in typeList" | ||||||
| 						:table-props="tableProps" | 										:key="dict.id" | ||||||
| 						:page="listQuery.pageNo" | 										:label="dict.name" | ||||||
| 						:limit="listQuery.pageSize" | 										:value="dict.id" /> | ||||||
| 						:add-button-show="isdetail ? null : '添加属性'" | 								</el-select> | ||||||
| 						@emitButtonClick="addNew()" | 							</el-form-item> | ||||||
| 						:table-data="productAttributeList"> | 						</el-col> | ||||||
| 						<method-btn | 					</el-row> | ||||||
| 							v-if="!isdetail" | 					<el-row :gutter="20"> | ||||||
| 							slot="handleBtn" | 						<el-col :span="24"> | ||||||
| 							:width="120" | 							<el-form-item | ||||||
| 							label="操作" | 								label="打印方式" | ||||||
| 							:method-list="tableBtn" | 								prop="printModel"> | ||||||
| 							@clickBtn="handleClick" /> | 								<el-select | ||||||
| 					</base-table> | 									v-model="dataForm.printModel" | ||||||
| 					<pagination | 									style="width: 100%" | ||||||
| 						v-show="listQuery.total > 0" | 									placeholder="请选择打印方式" | ||||||
| 						:total="listQuery.total" | 									clearable> | ||||||
| 						:page.sync="listQuery.pageNo" | 									<el-option | ||||||
| 						:limit.sync="listQuery.pageSize" | 										v-for="dict in printModelList" | ||||||
| 						:page-sizes="[5, 10, 15]" | 										:key="dict.id" | ||||||
| 						@pagination="getList" /> | 										:label="dict.name" | ||||||
| 				</div> --> | 										:value="dict.id" /> | ||||||
|       </div> | 								</el-select> | ||||||
|     </div> | 							</el-form-item> | ||||||
|  | 						</el-col> | ||||||
|     <!-- <div style="position: absolute; bottom: 24px; right: 24px"> | 						<el-col :span="24"> | ||||||
| 			<el-button style="margin-right: 10px" @click="goback()">返回</el-button> | 							<el-form-item | ||||||
| 			<el-button v-if="isdetail" type="primary" @click="goEdit()"> | 								label="标签备注" | ||||||
| 				编辑 | 								prop="remark"> | ||||||
| 			</el-button> | 								<el-input | ||||||
| 			<span v-if="!isdetail"> | 									v-model="dataForm.remark" | ||||||
| 				<el-button type="primary" @click="dataFormSubmit()">保存</el-button> | 									clearable | ||||||
|  | 									placeholder="请输入标签备注" /> | ||||||
|  | 							</el-form-item> | ||||||
|  | 						</el-col> | ||||||
|  | 					</el-row> | ||||||
|  | 					<el-row :gutter="20"> | ||||||
|  | 						<el-col :span="24"> | ||||||
|  | 							<el-form-item | ||||||
|  | 								label="模板设计" | ||||||
|  | 								prop="content"> | ||||||
| 								<el-button | 								<el-button | ||||||
| 					v-if="dataForm.id && !isdetail" | 									icon="el-icon-edit" | ||||||
| 					type="primary" | 									@click="btnClickDesign()"> | ||||||
| 					@click="addNew()"> | 									模板设计 | ||||||
| 					添加属性 |  | ||||||
| 								</el-button> | 								</el-button> | ||||||
| 			</span> | 							</el-form-item> | ||||||
| 		</div> --> | 						</el-col> | ||||||
|  | 					</el-row> | ||||||
|  | 				</el-form> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
| 		<template slot="footer"> | 		<template slot="footer"> | ||||||
|       <el-button style="" @click="goback()">取消</el-button> | 			<el-button | ||||||
|       <!-- <el-button v-if="isdetail" type="primary" @click="goEdit()"> | 				style="" | ||||||
| 				编辑 | 				@click="goback()"> | ||||||
| 			</el-button> --> | 				取消 | ||||||
|       <el-button type="primary" @click="dataFormSubmit()">确定</el-button> | 			</el-button> | ||||||
|  | 			<el-button | ||||||
|  | 				type="primary" | ||||||
|  | 				@click="dataFormSubmit()"> | ||||||
|  | 				确定 | ||||||
|  | 			</el-button> | ||||||
| 		</template> | 		</template> | ||||||
|     <print-model-design v-if="modelShow" ref="printModelDesign" @saveData="getModelData" /> | 		<print-model-design | ||||||
|  | 			v-if="modelShow" | ||||||
|  | 			ref="printModelDesign" | ||||||
|  | 			@saveData="getModelData" /> | ||||||
| 	</el-dialog> | 	</el-dialog> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|  |  | ||||||
| import { | import { | ||||||
| 	createPackingModel, | 	createPackingModel, | ||||||
| 	updatePackingModel, | 	updatePackingModel, | ||||||
| 	getPackingModel, | 	getPackingModel, | ||||||
|   // getWorkOrderList, | 	getTypeList, | ||||||
|   // getCode, |  | ||||||
|   // getCustomerList, |  | ||||||
|   getTypeList |  | ||||||
| } from '@/api/base/printModel.js'; | } from '@/api/base/printModel.js'; | ||||||
| // import productAttrAdd from './attr-add'; | // import productAttrAdd from './attr-add'; | ||||||
| import { parseTime } from '../mixins/code-filter'; | import { parseTime } from '../mixins/code-filter'; | ||||||
| import SmallTitle from './SmallTitle'; | import SmallTitle from './SmallTitle'; | ||||||
| import printModelDesign from '../custom/index' | import printModelDesign from '../custom/index'; | ||||||
|  |  | ||||||
| const tableBtn = [ | const tableBtn = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -173,8 +165,8 @@ export default { | |||||||
| 			addOrUpdateVisible: false, | 			addOrUpdateVisible: false, | ||||||
| 			tableBtn, | 			tableBtn, | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       modelShow:false, | 			modelShow: false, | ||||||
|       typeList:[], | 			typeList: [], | ||||||
| 			dataForm: { | 			dataForm: { | ||||||
| 				id: null, | 				id: null, | ||||||
| 				// name: '', // 产品名称 | 				// name: '', // 产品名称 | ||||||
| @@ -188,11 +180,11 @@ export default { | |||||||
| 			printModelList: [ | 			printModelList: [ | ||||||
| 				{ | 				{ | ||||||
| 					id: 1, | 					id: 1, | ||||||
|           name:'自动' | 					name: '自动', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					id: 2, | 					id: 2, | ||||||
|           name: '手动' | 					name: '手动', | ||||||
| 				}, | 				}, | ||||||
| 			], | 			], | ||||||
| 			listQuery: { | 			listQuery: { | ||||||
| @@ -254,17 +246,17 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		getModelData(data) { | 		getModelData(data) { | ||||||
|       console.log(data) | 			console.log(data); | ||||||
|       this.content = JSON.stringify(data) | 			this.content = JSON.stringify(data); | ||||||
|       this.dataForm.content = JSON.stringify(data) | 			this.dataForm.content = JSON.stringify(data); | ||||||
| 		}, | 		}, | ||||||
| 		btnClickDesign() { | 		btnClickDesign() { | ||||||
|       console.log(11111) | 			console.log(11111); | ||||||
|       this.modelShow = true | 			this.modelShow = true; | ||||||
| 			this.$nextTick(() => { | 			this.$nextTick(() => { | ||||||
|         this.$refs.printModelDesign.init(this.dataForm.content) | 				this.$refs.printModelDesign.init(this.dataForm.content); | ||||||
|         console.log(this.dataForm.content) | 				console.log(this.dataForm.content); | ||||||
|       }) | 			}); | ||||||
| 			// this.$router.push({ | 			// this.$router.push({ | ||||||
| 			//   path: '/printModelDesign' | 			//   path: '/printModelDesign' | ||||||
| 			// }) | 			// }) | ||||||
| @@ -274,7 +266,7 @@ export default { | |||||||
| 		// 	this.listQuery.total = 0; | 		// 	this.listQuery.total = 0; | ||||||
| 		// }, | 		// }, | ||||||
| 		init(id) { | 		init(id) { | ||||||
|       this.getDict() | 			this.getDict(); | ||||||
| 			// this.initData(); | 			// this.initData(); | ||||||
| 			// this.isdetail = isdetail || false; | 			// this.isdetail = isdetail || false; | ||||||
| 			this.dataForm.id = id || null; | 			this.dataForm.id = id || null; | ||||||
| @@ -306,9 +298,9 @@ export default { | |||||||
| 			// }) | 			// }) | ||||||
| 			getTypeList().then((response) => { | 			getTypeList().then((response) => { | ||||||
| 				console.log(response); | 				console.log(response); | ||||||
|         this.typeList = response.data | 				this.typeList = response.data; | ||||||
| 				// this.listQuery.total = response.data.total; | 				// this.listQuery.total = response.data.total; | ||||||
|       }) | 			}); | ||||||
| 			// getWorkOrderList().then((response) => { | 			// getWorkOrderList().then((response) => { | ||||||
| 			//   // console.log(response); | 			//   // console.log(response); | ||||||
| 			//   this.workOrderList = response.data | 			//   this.workOrderList = response.data | ||||||
| @@ -439,8 +431,6 @@ export default { | |||||||
| } | } | ||||||
| </style> --> | </style> --> | ||||||
| <style> | <style> | ||||||
|  |  | ||||||
|  |  | ||||||
| .baseDialog .el-dialog__header { | .baseDialog .el-dialog__header { | ||||||
| 	font-size: 16px; | 	font-size: 16px; | ||||||
| 	color: rgba(0, 0, 0, 0.85); | 	color: rgba(0, 0, 0, 0.85); | ||||||
| @@ -448,12 +438,12 @@ export default { | |||||||
| 	padding: 13px 24px; | 	padding: 13px 24px; | ||||||
| 	border-bottom: 1px solid #e9e9e9; | 	border-bottom: 1px solid #e9e9e9; | ||||||
| } | } | ||||||
| .baseDialog .el-dialog__header .titleStyle::before{ | .baseDialog .el-dialog__header .titleStyle::before { | ||||||
| 	content: ''; | 	content: ''; | ||||||
| 	display: inline-block; | 	display: inline-block; | ||||||
| 	width: 4px; | 	width: 4px; | ||||||
| 	height: 16px; | 	height: 16px; | ||||||
|   background-color: #0B58FF; | 	background-color: #0b58ff; | ||||||
| 	border-radius: 1px; | 	border-radius: 1px; | ||||||
| 	margin-right: 8px; | 	margin-right: 8px; | ||||||
| 	position: relative; | 	position: relative; | ||||||
| @@ -464,10 +454,8 @@ export default { | |||||||
| 	padding-right: 24px; | 	padding-right: 24px; | ||||||
| } | } | ||||||
| .baseDialog .btnTextStyle { | .baseDialog .btnTextStyle { | ||||||
|   letter-spacing:6px; | 	letter-spacing: 6px; | ||||||
| 	padding: 9px 10px 9px 16px; | 	padding: 9px 10px 9px 16px; | ||||||
| 	font-size: 14px; | 	font-size: 14px; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -6,106 +6,72 @@ | |||||||
|  * @Description: |  * @Description: | ||||||
| --> | --> | ||||||
| <template> | <template> | ||||||
|   <el-dialog class="baseDialog" :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="40%" show-close="true"> | 	<el-dialog | ||||||
|     <small-title slot="title" :no-padding="true"> | 		class="baseDialog" | ||||||
|  | 		:visible.sync="visible" | ||||||
|  | 		:show-close="true" | ||||||
|  | 		:wrapper-closable="false" | ||||||
|  | 		width="50%"> | ||||||
|  | 		<small-title | ||||||
|  | 			slot="title" | ||||||
|  | 			:no-padding="true"> | ||||||
| 			{{ !dataForm.id ? '新增' : '编辑' }} | 			{{ !dataForm.id ? '新增' : '编辑' }} | ||||||
| 		</small-title> | 		</small-title> | ||||||
|  |  | ||||||
| 		<div class="content"> | 		<div class="content"> | ||||||
| 			<div class="visual-part"> | 			<div class="visual-part"> | ||||||
|         <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="auto" | 				<el-form | ||||||
|  | 					ref="dataForm" | ||||||
|  | 					:model="dataForm" | ||||||
|  | 					:rules="dataRule" | ||||||
|  | 					label-width="auto" | ||||||
| 					@keyup.enter.native="dataFormSubmit"> | 					@keyup.enter.native="dataFormSubmit"> | ||||||
| 					<el-row :gutter="20"> | 					<el-row :gutter="20"> | ||||||
|             <el-col :span="12"> | 						<el-col :span="24"> | ||||||
|               <el-form-item label="名称" prop="name"> | 							<el-form-item | ||||||
|                 <el-input v-model="dataForm.name" clearable placeholder="名称" /> | 								label="名称" | ||||||
|  | 								prop="name"> | ||||||
|  | 								<el-input | ||||||
|  | 									v-model="dataForm.name" | ||||||
|  | 									clearable | ||||||
|  | 									placeholder="名称" /> | ||||||
| 							</el-form-item> | 							</el-form-item> | ||||||
| 						</el-col> | 						</el-col> | ||||||
|             <el-col :span="12"> | 						<el-col :span="24"> | ||||||
|               <el-form-item label="类型描述" prop="description"> | 							<el-form-item | ||||||
|                 <el-input v-model="dataForm.description" clearable placeholder="类型描述" /> | 								label="类型描述" | ||||||
|  | 								prop="description"> | ||||||
|  | 								<el-input | ||||||
|  | 									v-model="dataForm.description" | ||||||
|  | 									clearable | ||||||
|  | 									placeholder="类型描述" /> | ||||||
| 							</el-form-item> | 							</el-form-item> | ||||||
| 						</el-col> | 						</el-col> | ||||||
| 					</el-row> | 					</el-row> | ||||||
|           <!-- <el-row :gutter="20"> |  | ||||||
|             <el-col :span="24"> |  | ||||||
|               <el-form-item label="完成单位产品用时" prop="processTime"> |  | ||||||
|                 <el-input v-model="dataForm.processTime" placeholder="请输入完成单位产品用时" /> |  | ||||||
|               </el-form-item> |  | ||||||
|             </el-col> |  | ||||||
|           </el-row> --> |  | ||||||
| 				</el-form> | 				</el-form> | ||||||
|  |  | ||||||
|         <!-- <small-title |  | ||||||
| 					style="margin: 16px 0; padding-left: 8px" |  | ||||||
| 					:no-padding="true"> |  | ||||||
| 					产品属性列表 |  | ||||||
| 				</small-title> |  | ||||||
|  |  | ||||||
| 				<div class="attr-list"> |  | ||||||
| 					<base-table |  | ||||||
| 						:table-props="tableProps" |  | ||||||
| 						:page="listQuery.pageNo" |  | ||||||
| 						:limit="listQuery.pageSize" |  | ||||||
| 						:add-button-show="isdetail ? null : '添加属性'" |  | ||||||
| 						@emitButtonClick="addNew()" |  | ||||||
| 						:table-data="productAttributeList"> |  | ||||||
| 						<method-btn |  | ||||||
| 							v-if="!isdetail" |  | ||||||
| 							slot="handleBtn" |  | ||||||
| 							:width="120" |  | ||||||
| 							label="操作" |  | ||||||
| 							:method-list="tableBtn" |  | ||||||
| 							@clickBtn="handleClick" /> |  | ||||||
| 					</base-table> |  | ||||||
| 					<pagination |  | ||||||
| 						v-show="listQuery.total > 0" |  | ||||||
| 						:total="listQuery.total" |  | ||||||
| 						:page.sync="listQuery.pageNo" |  | ||||||
| 						:limit.sync="listQuery.pageSize" |  | ||||||
| 						:page-sizes="[5, 10, 15]" |  | ||||||
| 						@pagination="getList" /> |  | ||||||
| 				</div> --> |  | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
|  |  | ||||||
|     <!-- <div style="position: absolute; bottom: 24px; right: 24px"> |  | ||||||
| 			<el-button style="margin-right: 10px" @click="goback()">返回</el-button> |  | ||||||
| 			<el-button v-if="isdetail" type="primary" @click="goEdit()"> |  | ||||||
| 				编辑 |  | ||||||
| 			</el-button> |  | ||||||
| 			<span v-if="!isdetail"> |  | ||||||
| 				<el-button type="primary" @click="dataFormSubmit()">保存</el-button> |  | ||||||
| 				<el-button |  | ||||||
| 					v-if="dataForm.id && !isdetail" |  | ||||||
| 					type="primary" |  | ||||||
| 					@click="addNew()"> |  | ||||||
| 					添加属性 |  | ||||||
| 				</el-button> |  | ||||||
| 			</span> |  | ||||||
| 		</div> --> |  | ||||||
| 		<template slot="footer"> | 		<template slot="footer"> | ||||||
|       <el-button style="" @click="goback()">取消</el-button> | 			<el-button | ||||||
|       <!-- <el-button v-if="isdetail" type="primary" @click="goEdit()"> | 				style="" | ||||||
| 				编辑 | 				@click="goback()"> | ||||||
| 			</el-button> --> | 				取消 | ||||||
|       <el-button type="primary" @click="dataFormSubmit()">确定</el-button> | 			</el-button> | ||||||
|  | 			<el-button | ||||||
|  | 				type="primary" | ||||||
|  | 				@click="dataFormSubmit()"> | ||||||
|  | 				确定 | ||||||
|  | 			</el-button> | ||||||
| 		</template> | 		</template> | ||||||
| 	</el-dialog> | 	</el-dialog> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|  |  | ||||||
| import { | import { | ||||||
| 	createPackingType, | 	createPackingType, | ||||||
| 	updatePackingType, | 	updatePackingType, | ||||||
| 	getPackingType, | 	getPackingType, | ||||||
|   // getWorkOrderList, |  | ||||||
|   // getCode, |  | ||||||
|   // getCustomerList, |  | ||||||
|   // getModelList |  | ||||||
| } from '@/api/base/modelType.js'; | } from '@/api/base/modelType.js'; | ||||||
| // import productAttrAdd from './attr-add'; |  | ||||||
| import { parseTime } from '../mixins/code-filter'; | import { parseTime } from '../mixins/code-filter'; | ||||||
| import SmallTitle from './SmallTitle'; | import SmallTitle from './SmallTitle'; | ||||||
|  |  | ||||||
| @@ -144,18 +110,13 @@ export default { | |||||||
| 			tableBtn, | 			tableBtn, | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			customerList: [], | 			customerList: [], | ||||||
|       modelList:[], | 			modelList: [], | ||||||
|       workOrderList:[], | 			workOrderList: [], | ||||||
| 			productAttributeList: [], | 			productAttributeList: [], | ||||||
| 			dataForm: { | 			dataForm: { | ||||||
| 				id: null, | 				id: null, | ||||||
| 				// name: '', // 产品名称 |  | ||||||
| 				name: '', // 产品编码 | 				name: '', // 产品编码 | ||||||
| 				// area: 0, // 单位平方数(float only) |  | ||||||
| 				description: null, // 产品类型id | 				description: null, // 产品类型id | ||||||
|         // workOrderId: null, // 单位产品用时 (s) |  | ||||||
|         // customerId: '', // 规格 |  | ||||||
|         // content: '', // 单位id |  | ||||||
| 			}, | 			}, | ||||||
| 			listQuery: { | 			listQuery: { | ||||||
| 				pageSize: 10, | 				pageSize: 10, | ||||||
| @@ -171,18 +132,10 @@ export default { | |||||||
| 					}, | 					}, | ||||||
| 				], | 				], | ||||||
| 			}, | 			}, | ||||||
| 			// isdetail: false, |  | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		// initData() { |  | ||||||
| 		// 	this.productAttributeList.splice(0); |  | ||||||
| 		// 	this.listQuery.total = 0; |  | ||||||
| 		// }, |  | ||||||
| 		init(id) { | 		init(id) { | ||||||
|       // this.getDict() |  | ||||||
| 			// this.initData(); |  | ||||||
| 			// this.isdetail = isdetail || false; |  | ||||||
| 			this.dataForm.id = id || null; | 			this.dataForm.id = id || null; | ||||||
| 			this.visible = true; | 			this.visible = true; | ||||||
|  |  | ||||||
| @@ -194,66 +147,10 @@ export default { | |||||||
| 					getPackingType(id).then((response) => { | 					getPackingType(id).then((response) => { | ||||||
| 						this.dataForm = response.data; | 						this.dataForm = response.data; | ||||||
| 					}); | 					}); | ||||||
| 					// 获取产品的属性列表 |  | ||||||
| 					// this.getList(); |  | ||||||
| 				} else { |  | ||||||
| 					// getCode().then((res) => { |  | ||||||
|           //   this.dataForm.packagingCode = res.data; |  | ||||||
| 					// }); |  | ||||||
| 				} | 				} | ||||||
| 			}); | 			}); | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
| 		// getDict() { |  | ||||||
|     //   // 获取产品的属性列表 |  | ||||||
|     //   getCustomerList().then((response) => { |  | ||||||
|     //     console.log(response); |  | ||||||
|     //     this.customerList = response.data |  | ||||||
|     //     // this.listQuery.total = response.data.total; |  | ||||||
|     //   }) |  | ||||||
|     //   getModelList().then((response) => { |  | ||||||
|     //     console.log(response); |  | ||||||
|     //     this.modelList = response.data |  | ||||||
|     //     // this.listQuery.total = response.data.total; |  | ||||||
|     //   }) |  | ||||||
|     //   getWorkOrderList().then((response) => { |  | ||||||
|     //     // console.log(response); |  | ||||||
|     //     this.workOrderList = response.data |  | ||||||
| 		// 		// this.listQuery.total = response.data.total; |  | ||||||
| 		// 	}) |  | ||||||
| 		// }, |  | ||||||
| 		// handleClick(raw) { |  | ||||||
| 		// 	if (raw.type === 'delete') { |  | ||||||
| 		// 		this.$confirm( |  | ||||||
| 		// 			`确定对${ |  | ||||||
| 		// 				raw.data.name |  | ||||||
| 		// 					? '[名称=' + raw.data.name + ']' |  | ||||||
| 		// 					: '[序号=' + raw.data._pageIndex + ']' |  | ||||||
| 		// 			}进行删除操作?`, |  | ||||||
| 		// 			'提示', |  | ||||||
| 		// 			{ |  | ||||||
| 		// 				confirmButtonText: '确定', |  | ||||||
| 		// 				cancelButtonText: '取消', |  | ||||||
| 		// 				type: 'warning', |  | ||||||
| 		// 			} |  | ||||||
| 		// 		) |  | ||||||
| 		// 			.then(() => { |  | ||||||
| 		// 				deleteProductAttr(raw.data.id).then(({ data }) => { |  | ||||||
| 		// 					this.$message({ |  | ||||||
| 		// 						message: '操作成功', |  | ||||||
| 		// 						type: 'success', |  | ||||||
| 		// 						duration: 1500, |  | ||||||
| 		// 						onClose: () => { |  | ||||||
| 		// 							this.getList(); |  | ||||||
| 		// 						}, |  | ||||||
| 		// 					}); |  | ||||||
| 		// 				}); |  | ||||||
| 		// 			}) |  | ||||||
| 		// 			.catch(() => {}); |  | ||||||
| 		// 	} else { |  | ||||||
| 		// 		this.addNew(raw.data.id); |  | ||||||
| 		// 	} |  | ||||||
| 		// }, |  | ||||||
| 		// 表单提交 | 		// 表单提交 | ||||||
| 		dataFormSubmit() { | 		dataFormSubmit() { | ||||||
| 			this.$refs['dataForm'].validate((valid) => { | 			this.$refs['dataForm'].validate((valid) => { | ||||||
| @@ -294,60 +191,7 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <!-- <style scoped> |  | ||||||
| .drawer >>> .el-drawer { |  | ||||||
| 	border-radius: 8px 0 0 8px; |  | ||||||
| 	display: flex; |  | ||||||
| 	flex-direction: column; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer >>> .el-form-item__label { |  | ||||||
| 	padding: 0; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer >>> .el-drawer__header { |  | ||||||
| 	margin: 0; |  | ||||||
| 	padding: 32px 32px 24px; |  | ||||||
| 	border-bottom: 1px solid #dcdfe6; |  | ||||||
| } |  | ||||||
| .drawer >>> .el-drawer__body { |  | ||||||
| 	flex: 1; |  | ||||||
| 	height: 1px; |  | ||||||
| 	display: flex; |  | ||||||
| 	flex-direction: column; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer >>> .content { |  | ||||||
| 	padding: 30px 24px; |  | ||||||
| 	flex: 1; |  | ||||||
| 	display: flex; |  | ||||||
| 	flex-direction: column; |  | ||||||
| 	/* height: 100%; */ |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer >>> .visual-part { |  | ||||||
| 	flex: 1 auto; |  | ||||||
| 	max-height: 76vh; |  | ||||||
| 	overflow: hidden; |  | ||||||
| 	overflow-y: scroll; |  | ||||||
| 	padding-right: 10px; /* 调整滚动条样式 */ |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer >>> .el-form, |  | ||||||
| .drawer >>> .attr-list { |  | ||||||
| 	padding: 0 16px; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .drawer-body__footer { |  | ||||||
| 	display: flex; |  | ||||||
| 	justify-content: flex-end; |  | ||||||
| 	padding: 18px; |  | ||||||
| } |  | ||||||
| </style> --> |  | ||||||
| <style> | <style> | ||||||
|  |  | ||||||
|  |  | ||||||
| .baseDialog .el-dialog__header { | .baseDialog .el-dialog__header { | ||||||
| 	font-size: 16px; | 	font-size: 16px; | ||||||
| 	color: rgba(0, 0, 0, 0.85); | 	color: rgba(0, 0, 0, 0.85); | ||||||
| @@ -355,12 +199,12 @@ export default { | |||||||
| 	padding: 13px 24px; | 	padding: 13px 24px; | ||||||
| 	border-bottom: 1px solid #e9e9e9; | 	border-bottom: 1px solid #e9e9e9; | ||||||
| } | } | ||||||
| .baseDialog .el-dialog__header .titleStyle::before{ | .baseDialog .el-dialog__header .titleStyle::before { | ||||||
| 	content: ''; | 	content: ''; | ||||||
| 	display: inline-block; | 	display: inline-block; | ||||||
| 	width: 4px; | 	width: 4px; | ||||||
| 	height: 16px; | 	height: 16px; | ||||||
|   background-color: #0B58FF; | 	background-color: #0b58ff; | ||||||
| 	border-radius: 1px; | 	border-radius: 1px; | ||||||
| 	margin-right: 8px; | 	margin-right: 8px; | ||||||
| 	position: relative; | 	position: relative; | ||||||
| @@ -371,11 +215,8 @@ export default { | |||||||
| 	padding-right: 24px; | 	padding-right: 24px; | ||||||
| } | } | ||||||
| .baseDialog .btnTextStyle { | .baseDialog .btnTextStyle { | ||||||
|   letter-spacing:6px; | 	letter-spacing: 6px; | ||||||
| 	padding: 9px 10px 9px 16px; | 	padding: 9px 10px 9px 16px; | ||||||
| 	font-size: 14px; | 	font-size: 14px; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -2,19 +2,30 @@ | |||||||
| 	<div class="choicepart-container"> | 	<div class="choicepart-container"> | ||||||
| 		<navbar /> | 		<navbar /> | ||||||
| 		<div class="choicepart-wrapper"> | 		<div class="choicepart-wrapper"> | ||||||
|       <div class="choicepart-box" id="choicepartBox" :style="'transform:scale('+scale+');width:1710px;height:538px;'" v-show="showItem"> | 			<div | ||||||
|  | 				class="choicepart-box" | ||||||
|  | 				id="choicepartBox" | ||||||
|  | 				:style="'transform:scale(' + scale + ')'" | ||||||
|  | 				style="width: 1710px; height: 538px" | ||||||
|  | 				v-show="showItem"> | ||||||
| 				<div class="choicepart-line1"> | 				<div class="choicepart-line1"> | ||||||
| 					<div | 					<div | ||||||
| 						v-for="(item, index) in menuArr1" | 						v-for="(item, index) in menuArr1" | ||||||
| 						:key="index" | 						:key="index" | ||||||
| 						class="choicepart-item" | 						class="choicepart-item" | ||||||
| 						@click="handelClick(item, item.choicepart)" | 						@click="handelClick(item, item.choicepart)" | ||||||
|           :style="{opacity: item.visible?1:0.4, pointerEvents:item.visible?'auto':'none'}" | 						:style="{ | ||||||
|         > | 							opacity: item.visible ? 1 : 0.4, | ||||||
|  | 							pointerEvents: item.visible ? 'auto' : 'none', | ||||||
|  | 						}"> | ||||||
| 						<div> | 						<div> | ||||||
|             <img :src="require(`../../assets/images/choicepart/${item.name}.png`)" alt=""> | 							<img | ||||||
|  | 								:src=" | ||||||
|  | 									require(`../../assets/images/choicepart/${item.name}.png`) | ||||||
|  | 								" | ||||||
|  | 								alt="" /> | ||||||
| 						</div> | 						</div> | ||||||
|           <div class="choicepart-item-title">{{item.meta.title}}</div> | 						<div class="choicepart-item-title">{{ item.meta.title }}</div> | ||||||
| 					</div> | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="choicepart-line2"> | 				<div class="choicepart-line2"> | ||||||
| @@ -23,12 +34,18 @@ | |||||||
| 						:key="index" | 						:key="index" | ||||||
| 						class="choicepart-item" | 						class="choicepart-item" | ||||||
| 						@click="handelClick(item, item.choicepart)" | 						@click="handelClick(item, item.choicepart)" | ||||||
|           :style="{opacity: item.visible?1:0.4, pointerEvents:item.visible?'auto':'none'}" | 						:style="{ | ||||||
|         > | 							opacity: item.visible ? 1 : 0.4, | ||||||
|  | 							pointerEvents: item.visible ? 'auto' : 'none', | ||||||
|  | 						}"> | ||||||
| 						<div> | 						<div> | ||||||
|             <img :src="require(`../../assets/images/choicepart/${item.name}.png`)" alt=""> | 							<img | ||||||
|  | 								:src=" | ||||||
|  | 									require(`../../assets/images/choicepart/${item.name}.png`) | ||||||
|  | 								" | ||||||
|  | 								alt="" /> | ||||||
| 						</div> | 						</div> | ||||||
|           <div class="choicepart-item-title">{{item.meta.title}}</div> | 						<div class="choicepart-item-title">{{ item.meta.title }}</div> | ||||||
| 					</div> | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| @@ -37,14 +54,13 @@ | |||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import Navbar from './components/Navbar' | import Navbar from './components/Navbar'; | ||||||
| import { debounce } from '@/utils/debounce' | import { debounce } from '@/utils/debounce'; | ||||||
| export default { | export default { | ||||||
| 	components: { Navbar }, | 	components: { Navbar }, | ||||||
| 	name: 'choicePart', | 	name: 'choicePart', | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
|       boxReset: '', |  | ||||||
| 			scale: 1, | 			scale: 1, | ||||||
| 			menuArr1: [ | 			menuArr1: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -52,65 +68,65 @@ export default { | |||||||
| 					title: '基础核心', | 					title: '基础核心', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Order', | 					name: 'Order', | ||||||
| 					title: '订单管理', | 					title: '订单管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Equipment', | 					name: 'Equipment', | ||||||
| 					title: '设备管理', | 					title: '设备管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Group', | 					name: 'Group', | ||||||
| 					title: '班组管理', | 					title: '班组管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Quality', | 					name: 'Quality', | ||||||
| 					title: '质量管理', | 					title: '质量管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Warehouse', | 					name: 'Warehouse', | ||||||
| 					title: '仓库管理', | 					title: '仓库管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Energy', | 					name: 'Energy', | ||||||
| 					title: '能源管理', | 					title: '能源管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Packaging', | 					name: 'Packaging', | ||||||
| 					title: '包装管理', | 					title: '包装管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
|         } | 				}, | ||||||
| 			], | 			], | ||||||
| 			menuArr2: [ | 			menuArr2: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -118,16 +134,16 @@ export default { | |||||||
| 					title: '物料管理', | 					title: '物料管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Extend', | 					name: 'Extend', | ||||||
| 					title: '工艺管理', | 					title: '工艺管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				// { | 				// { | ||||||
| 				//   name: 'Delivery', | 				//   name: 'Delivery', | ||||||
| @@ -142,91 +158,94 @@ export default { | |||||||
| 					title: '报表管理', | 					title: '报表管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Cost', | 					name: 'Cost', | ||||||
| 					title: '成本管理', | 					title: '成本管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'SafetyEnvironmental', | 					name: 'SafetyEnvironmental', | ||||||
| 					title: '安环管理', | 					title: '安环管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'Databoard', | 					name: 'Databoard', | ||||||
| 					title: '数据驾驶舱', | 					title: '数据驾驶舱', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: 'System', | 					name: 'System', | ||||||
| 					title: '系统管理', | 					title: '系统管理', | ||||||
| 					visible: false, | 					visible: false, | ||||||
| 					meta: { | 					meta: { | ||||||
|             title: '' | 						title: '', | ||||||
|           } | 					}, | ||||||
|         } | 				}, | ||||||
| 			], | 			], | ||||||
|       showItem: false | 			showItem: false, | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	// computed:{ | 	// computed:{ | ||||||
| 	//   ...mapGetters(['sidebarRouters']) | 	//   ...mapGetters(['sidebarRouters']) | ||||||
| 	// }, | 	// }, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|     this.getMsg() | 		this.getMsg(); | ||||||
|     this.boxReset = debounce(() => { | 		this.boxReset(); | ||||||
|       this.resetSize() | 		window.addEventListener('resize', this.boxReset); | ||||||
|     }, 300) | 	}, | ||||||
|     this.boxReset() | 	destroyed() { | ||||||
|     window.addEventListener('resize', () => { | 		window.removeEventListener('resize', this.boxReset); | ||||||
|       this.boxReset() |  | ||||||
|     }) |  | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|  | 		boxReset() { | ||||||
|  | 			debounce(() => { | ||||||
|  | 				this.resetSize(); | ||||||
|  | 			}, 300)(); | ||||||
|  | 		}, | ||||||
| 		getMsg() { | 		getMsg() { | ||||||
|       let menuList = this.$store.state.permission.sidebarRouters | 			let menuList = this.$store.state.permission.sidebarRouters; | ||||||
|       console.log(menuList) | 			console.log(menuList); | ||||||
| 			if (menuList.length > 0) { | 			if (menuList.length > 0) { | ||||||
|         for (let i = 0; i < menuList.length; i ++) { | 				for (let i = 0; i < menuList.length; i++) { | ||||||
| 					for (let k = 0; k < 8; k++) { | 					for (let k = 0; k < 8; k++) { | ||||||
| 						if (menuList[i].name === this.menuArr1[k].name) { | 						if (menuList[i].name === this.menuArr1[k].name) { | ||||||
|               this.menuArr1[k].visible = true | 							this.menuArr1[k].visible = true; | ||||||
|               this.menuArr1[k].id = menuList[i].id | 							this.menuArr1[k].id = menuList[i].id; | ||||||
|               this.menuArr1[k].choicepart = i | 							this.menuArr1[k].choicepart = i; | ||||||
|               this.menuArr1[k].children = menuList[i].children | 							this.menuArr1[k].children = menuList[i].children; | ||||||
|               this.menuArr1[k].meta = menuList[i].meta | 							this.menuArr1[k].meta = menuList[i].meta; | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 					for (let j = 0; j < 7; j++) { | 					for (let j = 0; j < 7; j++) { | ||||||
| 						if (menuList[i].name === this.menuArr2[j].name) { | 						if (menuList[i].name === this.menuArr2[j].name) { | ||||||
|               this.menuArr2[j].visible = true | 							this.menuArr2[j].visible = true; | ||||||
|               this.menuArr2[j].id = menuList[i].id | 							this.menuArr2[j].id = menuList[i].id; | ||||||
|               this.menuArr2[j].choicepart = i | 							this.menuArr2[j].choicepart = i; | ||||||
|               this.menuArr2[j].children = menuList[i].children | 							this.menuArr2[j].children = menuList[i].children; | ||||||
|               this.menuArr2[j].meta = menuList[i].meta | 							this.menuArr2[j].meta = menuList[i].meta; | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|       console.log(this.menuArr1) | 			console.log(this.menuArr1); | ||||||
|       console.log(this.menuArr2) | 			console.log(this.menuArr2); | ||||||
| 		}, | 		}, | ||||||
| 		handelClick(item, index) { | 		handelClick(item, index) { | ||||||
| 			// this.$router.push({name: 'SystemUser'}) | 			// this.$router.push({name: 'SystemUser'}) | ||||||
|       this.$store.dispatch('app/setChoicepart', index) | 			this.$store.dispatch('app/setChoicepart', index); | ||||||
|       this.toRouter(item) | 			this.toRouter(item); | ||||||
| 			// if (item.meta.unuse) { | 			// if (item.meta.unuse) { | ||||||
| 			//   this.$message.warning(this.$t('暂无数据')) | 			//   this.$message.warning(this.$t('暂无数据')) | ||||||
| 			// } else { | 			// } else { | ||||||
| @@ -234,36 +253,36 @@ export default { | |||||||
| 			// } | 			// } | ||||||
| 		}, | 		}, | ||||||
| 		toRouter(item) { | 		toRouter(item) { | ||||||
|       console.log(item) | 			console.log(item); | ||||||
| 			if (item.children) { | 			if (item.children) { | ||||||
|         this.toRouter(item.children[0]) | 				this.toRouter(item.children[0]); | ||||||
| 			} else { | 			} else { | ||||||
|         this.$router.push({ name: item.name }) | 				this.$router.push({ name: item.name }); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		resetSize() { | 		resetSize() { | ||||||
|       let _this = this | 			let _this = this; | ||||||
|       _this.showItem = false | 			_this.showItem = false; | ||||||
|       _this.loading = true | 			_this.loading = true; | ||||||
|       let choicepartBox = document.querySelector('#choicepartBox') | 			let choicepartBox = document.querySelector('#choicepartBox'); | ||||||
|       let rw = parseFloat(window.innerWidth) | 			let rw = parseFloat(window.innerWidth); | ||||||
|       let rh = parseFloat(window.innerHeight) | 			let rh = parseFloat(window.innerHeight); | ||||||
|       let bw = parseFloat(choicepartBox.style.width) | 			let bw = parseFloat(choicepartBox.style.width); | ||||||
|       let bh = parseFloat(choicepartBox.style.height) | 			let bh = parseFloat(choicepartBox.style.height); | ||||||
|       let wx = 0.82/(bw / rw) | 			let wx = 0.82 / (bw / rw); | ||||||
|       let hx = 0.56/(bh / rh) | 			let hx = 0.56 / (bh / rh); | ||||||
|       _this.scale = wx > hx ? hx : wx | 			_this.scale = wx > hx ? hx : wx; | ||||||
|       setTimeout(_this.showItemFun, 700) | 			setTimeout(_this.showItemFun, 700); | ||||||
| 		}, | 		}, | ||||||
| 		showItemFun() { | 		showItemFun() { | ||||||
|       this.loading = false | 			this.loading = false; | ||||||
|       this.showItem = true | 			this.showItem = true; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	beforeDestroy() { | 	beforeDestroy() { | ||||||
|     this.showItem = false | 		this.showItem = false; | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss' scoped> | <style lang='scss' scoped> | ||||||
| .choicepart-container { | .choicepart-container { | ||||||
| @@ -296,7 +315,8 @@ export default { | |||||||
| 		.choicepart-item { | 		.choicepart-item { | ||||||
| 			width: 184px; | 			width: 184px; | ||||||
| 			height: 224px; | 			height: 224px; | ||||||
|       background: url('../../assets/images/choicepart/choice-item-back.png') no-repeat; | 			background: url('../../assets/images/choicepart/choice-item-back.png') | ||||||
|  | 				no-repeat; | ||||||
| 			background-size: 100% 100%; | 			background-size: 100% 100%; | ||||||
| 			border-radius: 5px; | 			border-radius: 5px; | ||||||
| 			overflow: hidden; | 			overflow: hidden; | ||||||
| @@ -334,7 +354,7 @@ export default { | |||||||
| 	.choicepart-footer { | 	.choicepart-footer { | ||||||
| 		position: absolute; | 		position: absolute; | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
|     color: #C7C7C7; | 		color: #c7c7c7; | ||||||
| 		user-select: none; | 		user-select: none; | ||||||
| 		font-size: 12px; | 		font-size: 12px; | ||||||
| 		letter-spacing: 1px; | 		letter-spacing: 1px; | ||||||
|   | |||||||
| @@ -125,7 +125,7 @@ export default { | |||||||
| 				// 	name: 'reset', | 				// 	name: 'reset', | ||||||
| 				// }, | 				// }, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:core-factory:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:core-factory:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:core-factory:create') ? 'button' : '', | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import { | |||||||
| import { getEnergyTypeListAll } from '@/api/base/energyType'; | import { getEnergyTypeListAll } from '@/api/base/energyType'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -61,7 +62,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage,tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
| @@ -70,7 +71,6 @@ export default { | |||||||
| 			}, | 			}, | ||||||
| 			tableData: [], | 			tableData: [], | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			drawerVisible: false, | 			drawerVisible: false, | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -92,13 +92,15 @@ export default { | |||||||
| 					param: 'searchTime', | 					param: 'searchTime', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('extend:cost-energy-search:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('cost:energyCost:export') | 					type: this.$auth.hasPermi('extend:cost-energy-search:export') | ||||||
| 						? 'button' | 						? 'button' | ||||||
| 						: '', | 						: '', | ||||||
| 					btnName: '导出', | 					btnName: '导出', | ||||||
| @@ -111,9 +113,6 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	components: {}, | 	components: {}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		getEnergyTypeListAll().then((response) => { | 		getEnergyTypeListAll().then((response) => { | ||||||
| 			this.formConfig[0].selectOptions = response.data; | 			this.formConfig[0].selectOptions = response.data; | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import { | |||||||
| import { getEnergyTypeListAll } from '@/api/base/energyType'; | import { getEnergyTypeListAll } from '@/api/base/energyType'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -71,7 +72,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage,tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
| @@ -80,7 +81,6 @@ export default { | |||||||
| 			}, | 			}, | ||||||
| 			tableData: [], | 			tableData: [], | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			drawerVisible: false, | 			drawerVisible: false, | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -116,13 +116,15 @@ export default { | |||||||
| 					defaultSelect: [], | 					defaultSelect: [], | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('extend:cost-enery-auto-report:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('cost:energyCostHis:export') | 					type: this.$auth.hasPermi('extend:cost-enery-auto-report:export') | ||||||
| 						? 'button' | 						? 'button' | ||||||
| 						: '', | 						: '', | ||||||
| 					btnName: '导出', | 					btnName: '导出', | ||||||
| @@ -135,9 +137,6 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	components: {}, | 	components: {}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		const end = new Date(); | 		const end = new Date(); | ||||||
| 		const start = new Date(); | 		const start = new Date(); | ||||||
| 		start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); | 		start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); | ||||||
|   | |||||||
| @@ -53,6 +53,7 @@ import { | |||||||
| } from '@/api/cost/costMaterialSet'; | } from '@/api/cost/costMaterialSet'; | ||||||
| import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -91,7 +92,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage,tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
| @@ -99,15 +100,14 @@ export default { | |||||||
| 				deleteURL: deleteCostMaterialSet, | 				deleteURL: deleteCostMaterialSet, | ||||||
| 			}, | 			}, | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi(`cost:rawMaterialConfig:update`) | 				this.$auth.hasPermi(`extend:cost-material-set:update`) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'edit', | 							type: 'edit', | ||||||
| 							btnName: '编辑', | 							btnName: '编辑', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi(`cost:rawMaterialConfig:delete`) | 				this.$auth.hasPermi(`extend:cost-material-set:delete`) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'delete', | 							type: 'delete', | ||||||
| 							btnName: '删除', | 							btnName: '删除', | ||||||
| @@ -124,16 +124,22 @@ export default { | |||||||
| 					filterable: true, | 					filterable: true, | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('extend:cost-material-set:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: | ||||||
|  | 						this.$auth.hasPermi('extend:cost-material-set:create') && | ||||||
|  | 						this.$auth.hasPermi('extend:cost-material-set:query') | ||||||
|  | 							? 'separate' | ||||||
|  | 							: '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('cost:rawMaterialConfig:create') | 					type: this.$auth.hasPermi('extend:cost-material-set:create') | ||||||
| 						? 'button' | 						? 'button' | ||||||
| 						: '', | 						: '', | ||||||
| 					btnName: '新增', | 					btnName: '新增', | ||||||
| @@ -148,9 +154,6 @@ export default { | |||||||
| 		AddOrUpdate, | 		AddOrUpdate, | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		getHotMaterialList().then((response) => { | 		getHotMaterialList().then((response) => { | ||||||
| 			this.formConfig[0].selectOptions = response.data; | 			this.formConfig[0].selectOptions = response.data; | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import { | |||||||
| import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -66,7 +67,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage,tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
| @@ -75,7 +76,6 @@ export default { | |||||||
| 			}, | 			}, | ||||||
| 			tableData: [], | 			tableData: [], | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			drawerVisible: false, | 			drawerVisible: false, | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -97,13 +97,15 @@ export default { | |||||||
| 					param: 'searchTime', | 					param: 'searchTime', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('extend:cost-material-search:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('cost:rawMaterialCost:export') | 					type: this.$auth.hasPermi('extend:cost-material-search:export') | ||||||
| 						? 'button' | 						? 'button' | ||||||
| 						: '', | 						: '', | ||||||
| 					btnName: '导出', | 					btnName: '导出', | ||||||
| @@ -116,9 +118,6 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	components: {}, | 	components: {}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		getHotMaterialList().then((response) => { | 		getHotMaterialList().then((response) => { | ||||||
| 			this.formConfig[0].selectOptions = response.data; | 			this.formConfig[0].selectOptions = response.data; | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import { | |||||||
| import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | import { getHotMaterialList } from '@/api/base/coreHotMaterial'; | ||||||
| import { publicFormatter } from '@/utils/dict'; | import { publicFormatter } from '@/utils/dict'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
|  |  | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| @@ -70,7 +71,7 @@ const tableProps = [ | |||||||
| ]; | ]; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	mixins: [basicPage], | 	mixins: [basicPage,tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			urlOptions: { | 			urlOptions: { | ||||||
| @@ -79,7 +80,6 @@ export default { | |||||||
| 			}, | 			}, | ||||||
| 			tableData: [], | 			tableData: [], | ||||||
| 			tableProps, | 			tableProps, | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			drawerVisible: false, | 			drawerVisible: false, | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| 				{ | 				{ | ||||||
| @@ -115,13 +115,15 @@ export default { | |||||||
| 					defaultSelect: [], | 					defaultSelect: [], | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('extend:cost-material-auto-report:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('cost:rawMaterialCostHis:export') | 					type: this.$auth.hasPermi('extend:cost-material-auto-report:export') | ||||||
| 						? 'button' | 						? 'button' | ||||||
| 						: '', | 						: '', | ||||||
| 					btnName: '导出', | 					btnName: '导出', | ||||||
| @@ -134,9 +136,6 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	components: {}, | 	components: {}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		const end = new Date(); | 		const end = new Date(); | ||||||
| 		const start = new Date(); | 		const start = new Date(); | ||||||
| 		start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); | 		start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); | ||||||
|   | |||||||
| @@ -1,22 +1,26 @@ | |||||||
| <template> | <template> | ||||||
| 	<div> | 	<div> | ||||||
| 		<NotMsg v-show="notMsg"/> | 		<NotMsg v-show="notMsg" /> | ||||||
| 		<div id='gasChart' class="gas-chart" style="width:600px;height:200px;" v-show='!notMsg'></div> | 		<div | ||||||
|  | 			id="gasChart" | ||||||
|  | 			class="gas-chart" | ||||||
|  | 			style="width: 600px; height: 200px" | ||||||
|  | 			v-show="!notMsg"></div> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import * as echarts from 'echarts'; | import * as echarts from 'echarts'; | ||||||
| import resize from './../mixins/resize' | import resize from './../mixins/resize'; | ||||||
| import NotMsg from './../components/NotMsg' | import NotMsg from './../components/NotMsg'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'GasChart', | 	name: 'GasChart', | ||||||
| 	mixins: [resize], | 	mixins: [resize], | ||||||
| 	components:{ NotMsg }, | 	components: { NotMsg }, | ||||||
| 	props: { | 	props: { | ||||||
| 		chartType: '', // 能源类型 | 		chartType: '', // 能源类型 | ||||||
| 		chartTime: '' | 		chartTime: '', | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		const colors = [ | 		const colors = [ | ||||||
| @@ -31,150 +35,161 @@ export default { | |||||||
| 		]; | 		]; | ||||||
| 		return { | 		return { | ||||||
| 			chart: null, | 			chart: null, | ||||||
| 			notMsg:false | 			notMsg: false, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		gasChartMsg() { | 		gasChartMsg() { | ||||||
| 			return this.$store.state.websocket.sumGasInfo | 			return this.$store.state.websocket.sumGasInfo; | ||||||
| 		}, | 		}, | ||||||
| 		energyWeekTrend() { | 		energyWeekTrend() { | ||||||
| 			return this.$store.state.websocket.energyWeekTrend | 			return this.$store.state.websocket.energyWeekTrend; | ||||||
| 		}, | 		}, | ||||||
| 		energyMonthTrend() { | 		energyMonthTrend() { | ||||||
| 			return this.$store.state.websocket.energyMonthTrend | 			return this.$store.state.websocket.energyMonthTrend; | ||||||
| 		}, | 		}, | ||||||
| 		energyYearTrend() { | 		energyYearTrend() { | ||||||
| 			return this.$store.state.websocket.energyYearTrend | 			return this.$store.state.websocket.energyYearTrend; | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	watch: { | 	watch: { | ||||||
| 		energyWeekTrend: {// 监听周电能,更新图 | 		energyWeekTrend: { | ||||||
|  | 			// 监听周电能,更新图 | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				if (this.chartTime === '周' && this.chartType === '电耗能') { | 				if (this.chartTime === '周' && this.chartType === '电耗能') { | ||||||
| 					this.updateChart() | 					this.updateChart(); | ||||||
| 					this.$emit('emitFun') | 					this.$emit('emitFun'); | ||||||
| 				} |  | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 		energyMonthTrend: {// 监听月电能,更新图 | 		}, | ||||||
|  | 		energyMonthTrend: { | ||||||
|  | 			// 监听月电能,更新图 | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				if (this.chartTime === '月' && this.chartType === '电耗能') { | 				if (this.chartTime === '月' && this.chartType === '电耗能') { | ||||||
| 					this.updateChart() | 					this.updateChart(); | ||||||
| 					this.$emit('emitFun') | 					this.$emit('emitFun'); | ||||||
| 				} |  | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 		energyYearTrend: {// 监听年电能,更新图 | 		}, | ||||||
|  | 		energyYearTrend: { | ||||||
|  | 			// 监听年电能,更新图 | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				if (this.chartTime === '年' && this.chartType === '电耗能') { | 				if (this.chartTime === '年' && this.chartType === '电耗能') { | ||||||
| 					this.updateChart() | 					this.updateChart(); | ||||||
| 					this.$emit('emitFun') | 					this.$emit('emitFun'); | ||||||
| 				} |  | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 		gasChartMsg: {// 监听天然气,更新图 | 		}, | ||||||
|  | 		gasChartMsg: { | ||||||
|  | 			// 监听天然气,更新图 | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				if (this.chartType === '天然气I' || this.chartType === '天然气II') { | 				if (this.chartType === '天然气I' || this.chartType === '天然气II') { | ||||||
| 					this.updateChart() | 					this.updateChart(); | ||||||
| 					this.$emit('emitFun') | 					this.$emit('emitFun'); | ||||||
| 				} |  | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
| 		chartTime: {// 监听时间变化,更新图 |  | ||||||
| 			handler(newVal, oldVal) { |  | ||||||
| 				this.updateChart() |  | ||||||
| 			} |  | ||||||
| 		}, | 		}, | ||||||
| 		chartType: {// 监听能源类型变化,更新图 | 		chartTime: { | ||||||
|  | 			// 监听时间变化,更新图 | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				this.updateChart() | 				this.updateChart(); | ||||||
| 			} | 			}, | ||||||
| 		} | 		}, | ||||||
|  | 		chartType: { | ||||||
|  | 			// 监听能源类型变化,更新图 | ||||||
|  | 			handler(newVal, oldVal) { | ||||||
|  | 				this.updateChart(); | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		this.$el.addEventListener('resize', () => { | 		this.$el.addEventListener('resize', () => { | ||||||
| 			console.log('resziing.....'); | 			console.log('resziing.....'); | ||||||
| 		}); | 		}); | ||||||
| 		this.updateChart() | 		this.updateChart(); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		updateChart() { | 		updateChart() { | ||||||
| 			let gasName  = '' | 			let gasName = ''; | ||||||
| 			const colors = ['#FFCB59']; | 			const colors = ['#FFCB59']; | ||||||
| 			let temp = [] | 			let temp = []; | ||||||
| 			let seriesData = [] | 			let seriesData = []; | ||||||
| 			let xData = [] | 			let xData = []; | ||||||
| 			let yData = [] | 			let yData = []; | ||||||
| 			switch (this.chartType) { | 			switch (this.chartType) { | ||||||
| 				case '电耗能':{ | 				case '电耗能': { | ||||||
| 					gasName = '电耗能' | 					gasName = '电耗能'; | ||||||
| 					if (this.chartTime === '周') { | 					if (this.chartTime === '周') { | ||||||
| 						temp = this.energyWeekTrend || [] | 						temp = this.energyWeekTrend || []; | ||||||
| 					}else if(this.chartTime === '月') { | 					} else if (this.chartTime === '月') { | ||||||
| 						temp = this.energyMonthTrend || [] | 						temp = this.energyMonthTrend || []; | ||||||
| 					}else{ | 					} else { | ||||||
| 						temp = this.energyYearTrend || [] | 						temp = this.energyYearTrend || []; | ||||||
| 					} | 					} | ||||||
| 					temp && temp.map(i => { | 					temp && | ||||||
| 						xData.push(i.time) | 						temp.map((i) => { | ||||||
| 						yData.push(i.qty) | 							xData.push(i.time); | ||||||
| 					}) | 							yData.push(i.qty); | ||||||
|  | 						}); | ||||||
| 					break; | 					break; | ||||||
| 				} | 				} | ||||||
| 				case '天然气I':{ | 				case '天然气I': { | ||||||
| 					if (this.chartTime === '周') { | 					if (this.chartTime === '周') { | ||||||
| 						yData = this.gasChartMsg.hisSumGas1For7Day || [] | 						yData = this.gasChartMsg.hisSumGas1For7Day || []; | ||||||
| 					}else if(this.chartTime === '月') { | 					} else if (this.chartTime === '月') { | ||||||
| 						yData = this.gasChartMsg.sumGas1ForMonth || [] | 						yData = this.gasChartMsg.sumGas1ForMonth || []; | ||||||
| 					}else{ | 					} else { | ||||||
| 						yData = this.gasChartMsg.sumGas1ForYear || [] | 						yData = this.gasChartMsg.sumGas1ForYear || []; | ||||||
| 					} | 					} | ||||||
| 					gasName = '天然气I' | 					gasName = '天然气I'; | ||||||
| 					xData = this.getXdata() | 					xData = this.getXdata(); | ||||||
| 					break; | 					break; | ||||||
| 				} | 				} | ||||||
| 				default: | 				default: | ||||||
| 				gasName = '天然气II' | 					gasName = '天然气II'; | ||||||
| 					if (this.chartTime === '周') { | 					if (this.chartTime === '周') { | ||||||
| 						yData = this.gasChartMsg.hisSumGas2For7Day || [] | 						yData = this.gasChartMsg.hisSumGas2For7Day || []; | ||||||
| 					}else if(this.chartTime === '月') { | 					} else if (this.chartTime === '月') { | ||||||
| 						yData = this.gasChartMsg.sumGas2ForMonth || [] | 						yData = this.gasChartMsg.sumGas2ForMonth || []; | ||||||
| 					}else{ | 					} else { | ||||||
| 						yData = this.gasChartMsg.sumGas2ForYear || [] | 						yData = this.gasChartMsg.sumGas2ForYear || []; | ||||||
| 					} | 					} | ||||||
| 				xData = this.getXdata() | 					xData = this.getXdata(); | ||||||
| 			} | 			} | ||||||
| 			if (yData.length === 0) { | 			if (yData.length === 0) { | ||||||
|          this.notMsg = true | 				this.notMsg = true; | ||||||
|          return | 				return; | ||||||
| 			} else { | 			} else { | ||||||
|         this.notMsg = false | 				this.notMsg = false; | ||||||
| 			} | 			} | ||||||
| 			if (yData.length == 0) { | 			if (yData.length == 0) { | ||||||
| 				seriesData = [] | 				seriesData = []; | ||||||
| 			}else { | 			} else { | ||||||
| 				seriesData = [{ | 				yData = yData.map((item) => { | ||||||
|  | 					return (item = Number(item.toFixed(2))); | ||||||
|  | 				}); | ||||||
|  | 				seriesData = [ | ||||||
|  | 					{ | ||||||
| 						name: gasName, | 						name: gasName, | ||||||
| 						data: yData, | 						data: yData, | ||||||
| 					type: "line", | 						type: 'line', | ||||||
| 						areaStyle: { | 						areaStyle: { | ||||||
| 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | ||||||
| 							{ offset: 0, color: '#FFCB59' + "40" }, | 								{ offset: 0, color: '#FFCB59' + '40' }, | ||||||
| 							{ offset: 0.5, color: '#FFCB59' + "20" }, | 								{ offset: 0.5, color: '#FFCB59' + '20' }, | ||||||
| 							{ offset: 1, color: '#FFCB59' + "00" }, | 								{ offset: 1, color: '#FFCB59' + '00' }, | ||||||
| 							]), | 							]), | ||||||
| 						}, | 						}, | ||||||
| 						lineStyle: { | 						lineStyle: { | ||||||
| 							width: 1 | 							width: 1, | ||||||
| 						}, | 						}, | ||||||
| 						symbol: 'circle', | 						symbol: 'circle', | ||||||
| 						symbolSize: 5, | 						symbolSize: 5, | ||||||
| 						emphasis: { | 						emphasis: { | ||||||
| 							focus: 'series' | 							focus: 'series', | ||||||
| 					} | 						}, | ||||||
| 				}] | 					}, | ||||||
| 					 | 				]; | ||||||
| 			} | 			} | ||||||
| 			// 绘图 | 			// 绘图 | ||||||
| 			if ( | 			if ( | ||||||
| @@ -182,7 +197,7 @@ export default { | |||||||
| 				this.chart !== '' && | 				this.chart !== '' && | ||||||
| 				this.chart !== undefined | 				this.chart !== undefined | ||||||
| 			) { | 			) { | ||||||
|         this.chart.dispose() // 页面多次刷新会出现警告,Dom已经初始化了一个实例,这是销毁实例 | 				this.chart.dispose(); // 页面多次刷新会出现警告,Dom已经初始化了一个实例,这是销毁实例 | ||||||
| 			} | 			} | ||||||
| 			this.chart = echarts.init(document.getElementById('gasChart')); | 			this.chart = echarts.init(document.getElementById('gasChart')); | ||||||
| 			var option = { | 			var option = { | ||||||
| @@ -204,7 +219,7 @@ export default { | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				yAxis: { | 				yAxis: { | ||||||
| 					name: this.chartType === '电耗能'?'单位kwh':'单位Nm³', | 					name: this.chartType === '电耗能' ? '单位kwh' : '单位Nm³', | ||||||
| 					nameTextStyle: { | 					nameTextStyle: { | ||||||
| 						color: '#fff', | 						color: '#fff', | ||||||
| 						fontSize: 10, | 						fontSize: 10, | ||||||
| @@ -230,10 +245,10 @@ export default { | |||||||
| 				series: seriesData, | 				series: seriesData, | ||||||
| 				tooltip: { | 				tooltip: { | ||||||
| 					trigger: 'axis', | 					trigger: 'axis', | ||||||
| 					className: "gas-tooltip" | 					className: 'gas-tooltip', | ||||||
| 				}, | 				}, | ||||||
| 			} | 			}; | ||||||
| 			option && this.chart.setOption(option) | 			option && this.chart.setOption(option); | ||||||
| 		}, | 		}, | ||||||
| 		getXdata() { | 		getXdata() { | ||||||
| 			const today = new Date(); | 			const today = new Date(); | ||||||
| @@ -245,9 +260,13 @@ export default { | |||||||
| 					.fill(1) | 					.fill(1) | ||||||
| 					.map((_, index) => { | 					.map((_, index) => { | ||||||
| 						const today = new Date(); | 						const today = new Date(); | ||||||
| 							const dtimestamp = today - (index+1) * 24 * 60 * 60 * 1000; | 						const dtimestamp = today - (index + 1) * 24 * 60 * 60 * 1000; | ||||||
| 							return `${new Date(dtimestamp).getMonth()+1}.${new Date(dtimestamp).getDate()}`;}).reverse() | 						return `${new Date(dtimestamp).getMonth() + 1}.${new Date( | ||||||
| 			}else if (this.chartTime == "月") { | 							dtimestamp | ||||||
|  | 						).getDate()}`; | ||||||
|  | 					}) | ||||||
|  | 					.reverse(); | ||||||
|  | 			} else if (this.chartTime == '月') { | ||||||
| 				if (currentMonth in [1, 3, 5, 7, 8, 10, 12]) { | 				if (currentMonth in [1, 3, 5, 7, 8, 10, 12]) { | ||||||
| 					days = 31; | 					days = 31; | ||||||
| 				} else if (currentMonth == 2) { | 				} else if (currentMonth == 2) { | ||||||
| @@ -256,17 +275,21 @@ export default { | |||||||
| 				return Array(days) | 				return Array(days) | ||||||
| 					.fill(1) | 					.fill(1) | ||||||
| 					.map((_, index) => { | 					.map((_, index) => { | ||||||
| 							return `${currentMonth}.${days - index}`;}).reverse() | 						return `${currentMonth}.${days - index}`; | ||||||
|  | 					}) | ||||||
|  | 					.reverse(); | ||||||
| 			} else { | 			} else { | ||||||
| 				return Array(12) | 				return Array(12) | ||||||
| 					.fill(1) | 					.fill(1) | ||||||
| 					.map((_, index) => { | 					.map((_, index) => { | ||||||
| 							return `${12 - index}`;}).reverse() | 						return `${12 - index}`; | ||||||
|  | 					}) | ||||||
|  | 					.reverse(); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		isLeapYear(year) { | 		isLeapYear(year) { | ||||||
| 			return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); | 			return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| @@ -278,12 +301,12 @@ export default { | |||||||
| } | } | ||||||
| </style> | </style> | ||||||
| <style> | <style> | ||||||
|   .gas-tooltip { | .gas-tooltip { | ||||||
| 	background: #0a2b4f77 !important; | 	background: #0a2b4f77 !important; | ||||||
| 	border: none !important; | 	border: none !important; | ||||||
| 	backdrop-filter: blur(12px); | 	backdrop-filter: blur(12px); | ||||||
|   } | } | ||||||
|   .gas-tooltip * { | .gas-tooltip * { | ||||||
| 	color: #fff !important; | 	color: #fff !important; | ||||||
|   } | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -1,70 +1,91 @@ | |||||||
| <template> | <template> | ||||||
| 	<div> | 	<div> | ||||||
| 		<NotMsg v-show="notMsg"/> | 		<NotMsg v-show="notMsg" /> | ||||||
| 		<div id="israChart" class="isra-chart" style="width:600px;height:390px;" v-show='!notMsg'></div> | 		<div | ||||||
|  | 			id="israChart" | ||||||
|  | 			class="isra-chart" | ||||||
|  | 			style="width: 600px; height: 390px" | ||||||
|  | 			v-show="!notMsg"></div> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import * as echarts from 'echarts'; | import * as echarts from 'echarts'; | ||||||
| import resize from './../mixins/resize' | import resize from './../mixins/resize'; | ||||||
| import NotMsg from './../components/NotMsg' | import NotMsg from './../components/NotMsg'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'ISRAChart', | 	name: 'ISRAChart', | ||||||
| 	mixins: [resize], | 	mixins: [resize], | ||||||
| 	components:{ NotMsg }, | 	components: { NotMsg }, | ||||||
| 	props: {}, | 	props: {}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			chart: null, | 			chart: null, | ||||||
| 			notMsg:true, | 			notMsg: true, | ||||||
| 			colors:['#2760ff', '#518eec', '#0ee8e4', '#ddb523'], | 			colors: ['#2760ff', '#518eec', '#0ee8e4', '#ddb523'], | ||||||
| 			chartData: [] | 			chartData: [], | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	activated() { | 	activated() {}, | ||||||
| 	}, |  | ||||||
| 	computed: { | 	computed: { | ||||||
| 		israChartMsg() { | 		israChartMsg() { | ||||||
| 			return this.$store.state.websocket.israKiln | 			return this.$store.state.websocket.israKiln; | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	watch: { | 	watch: { | ||||||
| 		israChartMsg: { | 		israChartMsg: { | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				this.chartData = newVal || [] | 				this.chartData = newVal || []; | ||||||
| 				this.updateChart() | 				this.updateChart(); | ||||||
| 				this.$emit('emitFun') | 				this.$emit('emitFun'); | ||||||
| 			} | 			}, | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|  | 		getEqualNewlineString(params, length) { | ||||||
|  | 			let text = ''; | ||||||
|  | 			let count = Math.ceil(params.length / length); // 向上取整数 | ||||||
|  | 			// 一行展示length个 | ||||||
|  | 			if (count > 1) { | ||||||
|  | 				for (let z = 1; z <= count; z++) { | ||||||
|  | 					text += params.substr((z - 1) * length, length); | ||||||
|  | 					if (z < count) { | ||||||
|  | 						text += '\n'; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} else { | ||||||
|  | 				text += params.substr(0, length); | ||||||
|  | 			} | ||||||
|  | 			return text; | ||||||
|  | 		}, | ||||||
| 		updateChart() { | 		updateChart() { | ||||||
| 			console.log('update') | 			console.log('update'); | ||||||
| 			let num = 0 | 			let num = 0; | ||||||
| 			this.chartData && this.chartData.length > 0 && this.chartData.map(i => { | 			this.chartData && | ||||||
| 				num+=i.num | 				this.chartData.length > 0 && | ||||||
| 			}) | 				this.chartData.map((i) => { | ||||||
|  | 					num += i.num; | ||||||
|  | 				}); | ||||||
| 			if ( | 			if ( | ||||||
| 				this.chart !== null && | 				this.chart !== null && | ||||||
| 				this.chart !== '' && | 				this.chart !== '' && | ||||||
| 				this.chart !== undefined | 				this.chart !== undefined | ||||||
| 			) { | 			) { | ||||||
|         this.chart.dispose() | 				this.chart.dispose(); | ||||||
| 			} | 			} | ||||||
| 			if (this.chartData && this.chartData.length > 0) { | 			if (this.chartData && this.chartData.length > 0) { | ||||||
|          this.notMsg = false | 				this.notMsg = false; | ||||||
| 			} else { | 			} else { | ||||||
|         this.notMsg = true | 				this.notMsg = true; | ||||||
| 				return | 				return; | ||||||
| 			} | 			} | ||||||
| 			this.chart = echarts.init(document.getElementById('israChart')); | 			this.chart = echarts.init(document.getElementById('israChart')); | ||||||
| 			var option = { | 			var option = { | ||||||
| 				color:this.colors, | 				color: this.colors, | ||||||
| 				title:{ | 				title: { | ||||||
| 					text: num, | 					text: num, | ||||||
| 					subtext: '总数', | 					subtext: '总数/个', | ||||||
| 					top: '32%', | 					top: '32%', | ||||||
| 					left: '49%', | 					left: '49%', | ||||||
| 					textAlign: 'center', | 					textAlign: 'center', | ||||||
| @@ -81,55 +102,92 @@ export default { | |||||||
| 					bottom: '2%', | 					bottom: '2%', | ||||||
| 					left: 'center', | 					left: 'center', | ||||||
| 					itemWidth: 18, | 					itemWidth: 18, | ||||||
| 					itemHeight:18, | 					itemHeight: 18, | ||||||
| 					icon: 'circle', | 					icon: 'circle', | ||||||
| 					textStyle: { | 					textStyle: { | ||||||
| 						color: '#fff' | 						color: '#fff', | ||||||
| 					}, | 					}, | ||||||
| 					data:this.chartData && this.chartData.length > 0 && this.chartData.map((item,index)=>({ | 					data: | ||||||
| 						name:item.name, | 						this.chartData && | ||||||
| 						itemStyle:{ | 						this.chartData.length > 0 && | ||||||
| 							color: this.colors[index%4] | 						this.chartData.map((item, index) => ({ | ||||||
| 						} | 							name: item.name, | ||||||
| 					})) | 							itemStyle: { | ||||||
|  | 								color: this.colors[index % 4], | ||||||
| 							}, | 							}, | ||||||
| 				series:[{ | 						})), | ||||||
|  | 				}, | ||||||
|  | 				series: [ | ||||||
|  | 					{ | ||||||
| 						name: 'ISRA缺陷检测', | 						name: 'ISRA缺陷检测', | ||||||
| 						type: 'pie', | 						type: 'pie', | ||||||
| 						center: ['50%', '40%'], | 						center: ['50%', '40%'], | ||||||
| 						radius: ['45%', '70%'], | 						radius: ['45%', '70%'], | ||||||
| 						avoidLabelOverlap: true, | 						avoidLabelOverlap: true, | ||||||
|  | 						// label: { | ||||||
|  | 						// 	show: true, | ||||||
|  | 						// }, | ||||||
|  | 						// labelLine: { | ||||||
|  | 						// 	show: true, | ||||||
|  | 						// }, | ||||||
| 						label: { | 						label: { | ||||||
| 							show: false | 							show: true, | ||||||
|  | 							normal: { | ||||||
|  | 								alignTo: 'labelLine', | ||||||
|  | 								margin: 10, | ||||||
|  | 								edgeDistance: 10, | ||||||
|  | 								lineHeight: 16, | ||||||
|  | 								formatter: (params) => { | ||||||
|  | 									//调用自定义显示格式 | ||||||
|  | 									return this.getEqualNewlineString( | ||||||
|  | 										params.value + ' | ' + params.percent.toFixed(0) + '%' | ||||||
|  | 									); | ||||||
|  | 								}, | ||||||
|  | 								textStyle: { | ||||||
|  | 									// 提示文字的样式 | ||||||
|  | 									// color: '#595959', | ||||||
|  | 									fontSize: 16, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
| 						}, | 						}, | ||||||
| 						labelLine: { | 						labelLine: { | ||||||
| 							show: true, | 							show: true, | ||||||
|  | 							length: 25, | ||||||
|  | 							length2: 10, | ||||||
| 						}, | 						}, | ||||||
| 						data: this.chartData && this.chartData.length > 0 && this.chartData.map((item, index) => ({ | 						data: | ||||||
| 						name:item.name, | 							this.chartData && | ||||||
|  | 							this.chartData.length > 0 && | ||||||
|  | 							this.chartData.map((item, index) => ({ | ||||||
|  | 								name: item.name, | ||||||
| 								value: item.num, | 								value: item.num, | ||||||
| 						itemStyle:{ | 								label: { | ||||||
| 							color:{ | 									color: this.colors[index % 4], | ||||||
|  | 								}, | ||||||
|  | 								itemStyle: { | ||||||
|  | 									color: { | ||||||
| 										type: 'linear', | 										type: 'linear', | ||||||
| 										x: 1, | 										x: 1, | ||||||
| 										y: 1, | 										y: 1, | ||||||
| 										x2: 0, | 										x2: 0, | ||||||
| 										y2: 0, | 										y2: 0, | ||||||
| 										global: false, | 										global: false, | ||||||
| 								colorStops:[ | 										colorStops: [ | ||||||
| 									{offset: 0,color: this.colors[index%4]}, | 											{ offset: 0, color: this.colors[index % 4] }, | ||||||
| 									{offset: 1,color: this.colors[index%4]+'33'} | 											{ offset: 1, color: this.colors[index % 4] + '33' }, | ||||||
| 								] | 										], | ||||||
| 							} | 									}, | ||||||
| 						} | 								}, | ||||||
| 					}))}], | 							})), | ||||||
|  | 					}, | ||||||
|  | 				], | ||||||
| 				tooltip: { | 				tooltip: { | ||||||
| 					trigger: 'item', | 					trigger: 'item', | ||||||
| 						className: "isra-chart-tooltip" | 					className: 'isra-chart-tooltip', | ||||||
| 				}, | 				}, | ||||||
| 			} | 			}; | ||||||
| 			this.chart.setOption(option); | 			this.chart.setOption(option); | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| @@ -141,12 +199,12 @@ export default { | |||||||
| } | } | ||||||
| </style> | </style> | ||||||
| <style> | <style> | ||||||
|   .isra-chart-tooltip { | .isra-chart-tooltip { | ||||||
| 	background: #0a2b4f77 !important; | 	background: #0a2b4f77 !important; | ||||||
| 	border: none !important; | 	border: none !important; | ||||||
| 	backdrop-filter: blur(12px); | 	backdrop-filter: blur(12px); | ||||||
|   } | } | ||||||
|   .isra-chart-tooltip * { | .isra-chart-tooltip * { | ||||||
| 	color: #fff !important; | 	color: #fff !important; | ||||||
|   } | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -1,114 +1,141 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="height: 370px;"> | 	<div style="height: 370px"> | ||||||
|     <NotMsg v-show="notMsg"/> | 		<NotMsg v-show="notMsg" /> | ||||||
|     <div id="numRateChart" class="num-rate-chart" style="width:900px;height:420px;" v-show='!notMsg'></div> | 		<div | ||||||
|  | 			id="numRateChart" | ||||||
|  | 			class="num-rate-chart" | ||||||
|  | 			style="width: 900px; height: 420px" | ||||||
|  | 			v-show="!notMsg"></div> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import * as echarts from 'echarts'; | import * as echarts from 'echarts'; | ||||||
| import resize from './../mixins/resize' | import resize from './../mixins/resize'; | ||||||
| import NotMsg from './../components/NotMsg' | import NotMsg from './../components/NotMsg'; | ||||||
| export default { | export default { | ||||||
| 	name: 'NumRateChart', | 	name: 'NumRateChart', | ||||||
| 	mixins: [resize], | 	mixins: [resize], | ||||||
|   components:{ NotMsg }, | 	components: { NotMsg }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			chart: null, | 			chart: null, | ||||||
|       notMsg:true | 			notMsg: true, | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		productline() { | 		productline() { | ||||||
|       return this.$store.state.websocket.productline | 			return this.$store.state.websocket.productline; | ||||||
|     } |  | ||||||
| 		}, | 		}, | ||||||
|   watch:{ | 	}, | ||||||
|  | 	watch: { | ||||||
| 		productline: { | 		productline: { | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				if (newVal === oldVal) { | 				if (newVal === oldVal) { | ||||||
|           return false | 					return false; | ||||||
|         } |  | ||||||
|         this.updateChart() |  | ||||||
|         this.$emit('emitFun') |  | ||||||
| 			} |  | ||||||
| 				} | 				} | ||||||
|  | 				this.updateChart(); | ||||||
|  | 				this.$emit('emitFun'); | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		this.$el.addEventListener('resize', () => { | 		this.$el.addEventListener('resize', () => { | ||||||
| 			console.log('resziing.....'); | 			console.log('resziing.....'); | ||||||
| 		}); | 		}); | ||||||
|     this.updateChart() | 		this.updateChart(); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		updateChart() { | 		updateChart() { | ||||||
| 			if (this.productline && this.productline.length > 0) { | 			if (this.productline && this.productline.length > 0) { | ||||||
|         this.notMsg = false | 				this.notMsg = false; | ||||||
| 			} else { | 			} else { | ||||||
|         this.notMsg = true | 				this.notMsg = true; | ||||||
|         return | 				return; | ||||||
| 			} | 			} | ||||||
|       let xData = [] | 			let xData = []; | ||||||
|       let outputNum = [] | 			let outputNum = []; | ||||||
|       let passRate = [] | 			let passRate = []; | ||||||
|       this.productline && this.productline.length > 0 && this.productline.map(item => { | 			for (let i = 0; i < this.productline.length - 1; i++) { | ||||||
|         if ((item.lineName).includes('D')) { | 				// 二次循环,注意:再减去外层的循环次数,向后依次两两相互比较转换; | ||||||
|           xData.push(item.lineName) | 				for (let j = 0; j < this.productline.length - i - 1; j++) { | ||||||
|           outputNum.push(item.outputNum) | 					// 当前一个值大于后一个值 | ||||||
|           passRate.push(item.passRate?item.passRate*100:null) | 					if ( | ||||||
|  | 						this.productline[j].lineName.substr( | ||||||
|  | 							this.productline[j].lineName.length - 1, | ||||||
|  | 							1 | ||||||
|  | 						) > | ||||||
|  | 						this.productline[j + 1].lineName.substr( | ||||||
|  | 							this.productline[j + 1].lineName.length - 1, | ||||||
|  | 							1 | ||||||
|  | 						) | ||||||
|  | 					) { | ||||||
|  | 						// 定义变量,以赋值的形式前后交换,直到换到最小的在前面,左右再无比较,则循环结束形成排序结果 | ||||||
|  | 						let temp = this.productline[j]; | ||||||
|  | 						this.productline[j] = this.productline[j + 1]; | ||||||
|  | 						this.productline[j + 1] = temp; | ||||||
| 					} | 					} | ||||||
|       }) | 				} | ||||||
|  | 			} | ||||||
|  | 			this.productline && | ||||||
|  | 				this.productline.length > 0 && | ||||||
|  | 				this.productline.map((item) => { | ||||||
|  | 					if (item.lineName.includes('D')) { | ||||||
|  | 						xData.push(item.lineName); | ||||||
|  | 						outputNum.push(item.outputNum); | ||||||
|  | 						passRate.push(item.passRate); | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
| 			if ( | 			if ( | ||||||
| 				this.chart !== null && | 				this.chart !== null && | ||||||
| 				this.chart !== '' && | 				this.chart !== '' && | ||||||
| 				this.chart !== undefined | 				this.chart !== undefined | ||||||
| 			) { | 			) { | ||||||
|         this.chart.dispose() | 				this.chart.dispose(); | ||||||
| 			} | 			} | ||||||
| 			this.chart = echarts.init(document.getElementById('numRateChart')); | 			this.chart = echarts.init(document.getElementById('numRateChart')); | ||||||
| 			var option = { | 			var option = { | ||||||
| 				grid: { top: 82, right: 60, bottom: 20, left: 90 }, | 				grid: { top: 82, right: 60, bottom: 20, left: 90 }, | ||||||
| 				tooltip: { | 				tooltip: { | ||||||
|           trigger: "axis", | 					trigger: 'axis', | ||||||
| 					axisPointer: { | 					axisPointer: { | ||||||
|             type: "shadow", | 						type: 'shadow', | ||||||
| 					}, | 					}, | ||||||
|           className: "num-rate-chart-tooltip" | 					className: 'num-rate-chart-tooltip', | ||||||
| 				}, | 				}, | ||||||
| 				legend: { | 				legend: { | ||||||
|           itemWidth:10, | 					itemWidth: 10, | ||||||
|           itemHeight:10, | 					itemHeight: 10, | ||||||
| 					top: '2.5%', | 					top: '2.5%', | ||||||
| 					right: '20px', | 					right: '20px', | ||||||
| 					icon: 'rect', | 					icon: 'rect', | ||||||
| 					data: [ | 					data: [ | ||||||
|             {name:'产线产量',itemStyle:{color:'#364BFE'}}, | 						{ name: '产线产量', itemStyle: { color: '#364BFE' } }, | ||||||
|             {name:'良品率',itemStyle:{color:'#FFCB59'}} | 						{ name: '良品率', itemStyle: { color: '#FFCB59' } }, | ||||||
| 					], | 					], | ||||||
| 					textStyle: { | 					textStyle: { | ||||||
|             color: "#DFF1FE", | 						color: '#DFF1FE', | ||||||
| 						fontSize: 12, | 						fontSize: 12, | ||||||
|           } | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				xAxis: [ | 				xAxis: [ | ||||||
| 					{ | 					{ | ||||||
| 						type: 'category', | 						type: 'category', | ||||||
| 						data: xData, | 						data: xData, | ||||||
| 						axisLabel: { | 						axisLabel: { | ||||||
|               color: "#fff", | 							color: '#fff', | ||||||
| 							fontSize: 12, | 							fontSize: 12, | ||||||
| 						}, | 						}, | ||||||
| 						axisPointer: { | 						axisPointer: { | ||||||
|               type: 'shadow' | 							type: 'shadow', | ||||||
| 						}, | 						}, | ||||||
| 						axisTick: { show: false }, | 						axisTick: { show: false }, | ||||||
| 						axisLine: { | 						axisLine: { | ||||||
| 							lineStyle: { | 							lineStyle: { | ||||||
| 								width: 1, | 								width: 1, | ||||||
|                 color: "#213259", | 								color: '#213259', | ||||||
|  | 							}, | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
|           } |  | ||||||
| 				], | 				], | ||||||
| 				yAxis: [ | 				yAxis: [ | ||||||
| 					{ | 					{ | ||||||
| @@ -120,21 +147,20 @@ export default { | |||||||
| 							align: 'right', | 							align: 'right', | ||||||
| 						}, | 						}, | ||||||
| 						axisLabel: { | 						axisLabel: { | ||||||
|               color: "#fff", | 							color: '#fff', | ||||||
| 							fontSize: 12, | 							fontSize: 12, | ||||||
|               formatter: '{value}' |  | ||||||
| 						}, | 						}, | ||||||
| 						axisLine: { | 						axisLine: { | ||||||
| 							show: true, | 							show: true, | ||||||
| 							lineStyle: { | 							lineStyle: { | ||||||
|                 color: "#213259", | 								color: '#213259', | ||||||
| 							}, | 							}, | ||||||
| 						}, | 						}, | ||||||
| 						splitLine: { | 						splitLine: { | ||||||
| 							lineStyle: { | 							lineStyle: { | ||||||
|                 color: "#213259a0", | 								color: '#213259a0', | ||||||
|  | 							}, | ||||||
| 						}, | 						}, | ||||||
|             } |  | ||||||
| 					}, | 					}, | ||||||
| 					{ | 					{ | ||||||
| 						type: 'value', | 						type: 'value', | ||||||
| @@ -145,24 +171,22 @@ export default { | |||||||
| 							align: 'LEFT', | 							align: 'LEFT', | ||||||
| 						}, | 						}, | ||||||
| 						axisLabel: { | 						axisLabel: { | ||||||
|               color: "#fff", | 							color: '#fff', | ||||||
| 							fontSize: 12, | 							fontSize: 12, | ||||||
|               formatter: () =>{ | 							formatter: '{value}%', | ||||||
|                 return value ? '{value} %': '-' |  | ||||||
|               } |  | ||||||
| 						}, | 						}, | ||||||
| 						axisLine: { | 						axisLine: { | ||||||
| 							show: true, | 							show: true, | ||||||
| 							lineStyle: { | 							lineStyle: { | ||||||
|               color: "#213259", | 								color: '#213259', | ||||||
| 							}, | 							}, | ||||||
| 						}, | 						}, | ||||||
| 						splitLine: { | 						splitLine: { | ||||||
| 							lineStyle: { | 							lineStyle: { | ||||||
|               color: "#213259a0", | 								color: '#213259a0', | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
| 					}, | 					}, | ||||||
|           } |  | ||||||
|           } |  | ||||||
| 				], | 				], | ||||||
| 				series: [ | 				series: [ | ||||||
| 					{ | 					{ | ||||||
| @@ -171,16 +195,16 @@ export default { | |||||||
| 						tooltip: { | 						tooltip: { | ||||||
| 							valueFormatter: function (value) { | 							valueFormatter: function (value) { | ||||||
| 								return value; | 								return value; | ||||||
|               } | 							}, | ||||||
| 						}, | 						}, | ||||||
| 						barWidth: 20, | 						barWidth: 20, | ||||||
| 						itemStyle: { | 						itemStyle: { | ||||||
| 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | ||||||
| 								{ offset: 0, color: '#5CB7FF' }, | 								{ offset: 0, color: '#5CB7FF' }, | ||||||
|                 { offset: 1, color: '#364BFE' } | 								{ offset: 1, color: '#364BFE' }, | ||||||
|               ]) | 							]), | ||||||
| 						}, | 						}, | ||||||
|             data: outputNum | 						data: outputNum, | ||||||
| 					}, | 					}, | ||||||
| 					{ | 					{ | ||||||
| 						name: '良品率', | 						name: '良品率', | ||||||
| @@ -188,32 +212,32 @@ export default { | |||||||
| 						yAxisIndex: 1, | 						yAxisIndex: 1, | ||||||
| 						tooltip: { | 						tooltip: { | ||||||
| 							valueFormatter: function (value) { | 							valueFormatter: function (value) { | ||||||
|                 return value?value + '%':'-'; | 								return value ? value + '%' : '-'; | ||||||
|               } | 							}, | ||||||
| 						}, | 						}, | ||||||
| 						itemStyle: { | 						itemStyle: { | ||||||
|               color: '#FFD160' | 							color: '#FFD160', | ||||||
| 						}, | 						}, | ||||||
| 						areaStyle: { | 						areaStyle: { | ||||||
| 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | 							color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | ||||||
|                 { offset: 0, color: '#FFCB59' + "40" }, | 								{ offset: 0, color: '#FFCB59' + '40' }, | ||||||
|                 { offset: 0.5, color: '#FFCB59' + "20" }, | 								{ offset: 0.5, color: '#FFCB59' + '20' }, | ||||||
|                 { offset: 1, color: '#FFCB59' + "00" }, | 								{ offset: 1, color: '#FFCB59' + '00' }, | ||||||
| 							]), | 							]), | ||||||
| 						}, | 						}, | ||||||
| 						lineStyle: { | 						lineStyle: { | ||||||
|                 width: 1 | 							width: 1, | ||||||
| 						}, | 						}, | ||||||
| 						symbol: 'circle', | 						symbol: 'circle', | ||||||
| 						symbolSize: 5, | 						symbolSize: 5, | ||||||
|             data: passRate | 						data: passRate, | ||||||
|           } | 					}, | ||||||
|         ] | 				], | ||||||
| 			}; | 			}; | ||||||
|       option && this.chart.setOption(option) | 			option && this.chart.setOption(option); | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .num-rate-chart { | .num-rate-chart { | ||||||
| @@ -223,12 +247,12 @@ export default { | |||||||
| } | } | ||||||
| </style> | </style> | ||||||
| <style> | <style> | ||||||
|   .num-rate-chart-tooltip { | .num-rate-chart-tooltip { | ||||||
| 	background: #0a2b4f77 !important; | 	background: #0a2b4f77 !important; | ||||||
| 	border: none !important; | 	border: none !important; | ||||||
| 	backdrop-filter: blur(12px); | 	backdrop-filter: blur(12px); | ||||||
|   } | } | ||||||
|   .num-rate-chart-tooltip * { | .num-rate-chart-tooltip * { | ||||||
| 	color: #fff !important; | 	color: #fff !important; | ||||||
|   } | } | ||||||
| </style> | </style> | ||||||
| @@ -1,9 +1,17 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 1;"> | 	<div style="flex: 1"> | ||||||
|     <Container name="各工序缺陷汇总" size="middle" style=""> | 		<Container | ||||||
|       <TimePrompt class="timeShow" :timestr="timestr" /> | 			name="各工序缺陷汇总" | ||||||
|       <div style="padding: 5px 10px;"> | 			size="middle" | ||||||
|         <dv-scroll-board :config="config" style="width:575px;height:380px" ref='defectScrollBoard'/> | 			style=""> | ||||||
|  | 			<TimePrompt | ||||||
|  | 				class="timeShow" | ||||||
|  | 				:timestr="timestr" /> | ||||||
|  | 			<div style="padding: 5px 10px"> | ||||||
|  | 				<dv-scroll-board | ||||||
|  | 					:config="config" | ||||||
|  | 					style="width: 575px; height: 380px" | ||||||
|  | 					ref="defectScrollBoard" /> | ||||||
| 			</div> | 			</div> | ||||||
| 		</Container> | 		</Container> | ||||||
| 	</div> | 	</div> | ||||||
| @@ -11,51 +19,60 @@ | |||||||
| <script> | <script> | ||||||
| import Container from '../components/Container.vue'; | import Container from '../components/Container.vue'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'DefectSum', | 	name: 'DefectSum', | ||||||
| 	components: { Container, TimePrompt }, | 	components: { Container, TimePrompt }, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		defectSum() { | 		defectSum() { | ||||||
|       return this.$store.state.websocket.defectSum | 			return this.$store.state.websocket.defectSum; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			timestr: '', | 			timestr: '', | ||||||
| 			config: { | 			config: { | ||||||
|         header: ['序号', '产线', '工序','损耗片数','缺陷类型'], | 				header: ['序号', '产线', '工序', '损耗片数', '缺陷类型'], | ||||||
| 				headerBGC: 'rgba(32, 55, 96, 0.8)', | 				headerBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | ||||||
| 				columnWidth: [60], | 				columnWidth: [60], | ||||||
| 				align: ['center'], | 				align: ['center'], | ||||||
|         data: [], | 				data: [ | ||||||
|         // data: [[1, 'Y61', '破损','10','气泡']], | 					//假数据 | ||||||
|         rowNum: 10 | 					[1, 'D61', '成型', '3片', '细长泡'], | ||||||
|       } | 					[2, 'D62', '组合落板', '4片', '细长泡'], | ||||||
|     } | 					[3, 'D61', '磨边', '6片', '开口泡'], | ||||||
|  | 					[4, 'D63', '清洗', '5片', '结石'], | ||||||
|  | 					[5, 'D64', '打孔', '2片', '结石'], | ||||||
|  | 					[6, 'D63', '成型', '7片', '开口泡'], | ||||||
|  | 					[7, 'D61', '上片', '8片', '结石'], | ||||||
|  | 				], | ||||||
|  | 				// data: [], | ||||||
|  | 				rowNum: 10, | ||||||
|  | 			}, | ||||||
|  | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|     this.timestr = switchShowTime('日') | 		this.timestr = switchShowTime('日'); | ||||||
| 	}, | 	}, | ||||||
|   watch:{ | 	watch: { | ||||||
| 		defectSum: { | 		defectSum: { | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				let outArr = this.defectSum.map((item, index) => [ | 				let outArr = this.defectSum.map((item, index) => [ | ||||||
|           index+1, | 					index + 1, | ||||||
| 					item.productionLineName, | 					item.productionLineName, | ||||||
| 					item.sectionName, | 					item.sectionName, | ||||||
| 					item.count, | 					item.count, | ||||||
|           item.inspectionTypeName | 					item.inspectionTypeName, | ||||||
| 				]); | 				]); | ||||||
|         this.config.data = outArr | 				this.config.data = outArr; | ||||||
|         this.$refs['defectScrollBoard'].updateRows(outArr) | 				this.$refs['defectScrollBoard'].updateRows(outArr); | ||||||
|         this.timestr = switchShowTime('日') | 				this.timestr = switchShowTime('日'); | ||||||
| 			} | 			}, | ||||||
| 		} | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss' scoped> | <style lang='scss' scoped> | ||||||
| .timeShow { | .timeShow { | ||||||
|   | |||||||
| @@ -1,9 +1,17 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 1;"> | 	<div style="flex: 1"> | ||||||
|     <Container name="设备报警" size="middle" style=""> | 		<Container | ||||||
|       <TimePrompt class="timeShow" :timestr="timestr" /> | 			name="设备报警" | ||||||
|       <div style="padding: 5px 10px;"> | 			size="middle" | ||||||
|         <dv-scroll-board :config="config" style="width:575px;height:380px" ref='eqScrollBoard'/> | 			style=""> | ||||||
|  | 			<TimePrompt | ||||||
|  | 				class="timeShow" | ||||||
|  | 				:timestr="timestr" /> | ||||||
|  | 			<div style="padding: 5px 10px"> | ||||||
|  | 				<dv-scroll-board | ||||||
|  | 					:config="config" | ||||||
|  | 					style="width: 575px; height: 380px" | ||||||
|  | 					ref="eqScrollBoard" /> | ||||||
| 			</div> | 			</div> | ||||||
| 		</Container> | 		</Container> | ||||||
| 	</div> | 	</div> | ||||||
| @@ -11,24 +19,24 @@ | |||||||
| <script> | <script> | ||||||
| import Container from '../components/Container.vue'; | import Container from '../components/Container.vue'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'EqAlarm', | 	name: 'EqAlarm', | ||||||
| 	components: { Container, TimePrompt }, | 	components: { Container, TimePrompt }, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		sjgEquipment() { | 		sjgEquipment() { | ||||||
|       return this.$store.state.websocket.sjgEquipment | 			return this.$store.state.websocket.sjgEquipment; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			timestr: '', | 			timestr: '', | ||||||
| 			config: { | 			config: { | ||||||
|         header: ['序号', '设备名称', '设备编码','设备状态','是否故障'], | 				header: ['序号', '产线名', '设备名称', '设备状态'], | ||||||
| 				headerBGC: 'rgba(32, 55, 96, 0.8)', | 				headerBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | ||||||
|         columnWidth: [60, 150, 190], | 				columnWidth: [60, 120, 280], | ||||||
| 				align: ['center'], | 				align: ['center'], | ||||||
| 				data: [], | 				data: [], | ||||||
| 				// data: [ | 				// data: [ | ||||||
| @@ -43,32 +51,42 @@ export default { | |||||||
| 				//   [9, '四大线四区1小线清洗机', 'EQ20240110112700000247', '正常', '否'], | 				//   [9, '四大线四区1小线清洗机', 'EQ20240110112700000247', '正常', '否'], | ||||||
| 				//   [10, '4大线四区自动连线柜', 'EQ20240110112646000246', '正常', '否'] | 				//   [10, '4大线四区自动连线柜', 'EQ20240110112646000246', '正常', '否'] | ||||||
| 				// ], | 				// ], | ||||||
|         rowNum: 10 | 				rowNum: 10, | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 			}, | 			}, | ||||||
|   mounted(){ | 		}; | ||||||
|     this.timestr = switchShowTime('日') |  | ||||||
| 	}, | 	}, | ||||||
|   watch:{ | 	mounted() { | ||||||
|  | 		this.timestr = switchShowTime('日'); | ||||||
|  | 	}, | ||||||
|  | 	watch: { | ||||||
| 		sjgEquipment: { | 		sjgEquipment: { | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				let outArr = this.sjgEquipment.map((item, index) => [ | 				let outArr = this.sjgEquipment.map((item, index) => [ | ||||||
|           index+1, | 					index + 1, | ||||||
|  | 					`<span title=${item.lineName || ''}>${item.lineName || ''}</span>`, | ||||||
| 					`<span title=${item.name || ''}>${item.name || ''}</span>`, | 					`<span title=${item.name || ''}>${item.name || ''}</span>`, | ||||||
|           `<span title=${item.code || ''}>${item.code || ''}</span>`, | 					`<span><div style="${ | ||||||
|           item.status, | 						item.status == '运行' | ||||||
|           item.error? '是': '否' | 							? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0 ' | ||||||
|  | 							: item.status == '故障' | ||||||
|  | 							? 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%;  background-color: red;float:left;margin:13px 10px 0 0 ' | ||||||
|  | 							: 'box-shadow: 0px 0px 2px 1px #FFBD02;width:6px;height:6px;border-radius: 50%;  background-color: #FFBD02;float:left;margin:13px 10px 0 0 ' | ||||||
|  | 					}"></div>  ${item.status || ''}</span>`, | ||||||
|  | 					// `<span"><div style="${ | ||||||
|  | 					// 	item.error == false | ||||||
|  | 					// 		? 'box-shadow: 0px 0px 2px 1px #2760FF;width:6px;height:6px;border-radius: 50%;background-color: #2760FF;float:left;margin:13px 10px 0 0 ' | ||||||
|  | 					// 		: 'box-shadow: 0px 0px 2px 1px red;width:6px;height:6px;border-radius: 50%;  background-color: red;float:left;margin:13px 10px 0 0 ' | ||||||
|  | 					// }"></div>  ${item.error == true ? '是' : '否' || ''}</span>`, | ||||||
| 				]); | 				]); | ||||||
|         this.config.data = outArr | 				this.config.data = outArr; | ||||||
|         this.$refs['eqScrollBoard'].updateRows(outArr) | 				this.$refs['eqScrollBoard'].updateRows(outArr); | ||||||
|         this.timestr = switchShowTime('日') | 				this.timestr = switchShowTime('日'); | ||||||
| 			} | 			}, | ||||||
| 		} | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss' scoped> | <style lang="scss" scoped> | ||||||
| .timeShow { | .timeShow { | ||||||
| 	position: absolute; | 	position: absolute; | ||||||
| 	top: 20px; | 	top: 20px; | ||||||
|   | |||||||
| @@ -1,64 +1,85 @@ | |||||||
| <template> | <template> | ||||||
|   <Container name="工单监控" size="middle" style=""> | 	<Container | ||||||
|     <TimePrompt class="timeShow" :timestr="timestr" /> | 		name="工单监控" | ||||||
|     <div style="padding: 5px 10px;" class="WOMonitoring"> | 		size="middle" | ||||||
|       <dv-scroll-board :config="config" style="width:900px;height:380px" ref='worderScrollBoard'/> | 		style=""> | ||||||
|  | 		<TimePrompt | ||||||
|  | 			class="timeShow" | ||||||
|  | 			:timestr="timestr" /> | ||||||
|  | 		<div | ||||||
|  | 			style="padding: 5px 10px" | ||||||
|  | 			class="WOMonitoring"> | ||||||
|  | 			<dv-scroll-board | ||||||
|  | 				:config="config" | ||||||
|  | 				style="width: 900px; height: 380px" | ||||||
|  | 				ref="worderScrollBoard" /> | ||||||
| 		</div> | 		</div> | ||||||
| 	</Container> | 	</Container> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import Container from '../components/Container.vue'; | import Container from '../components/Container.vue'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
| import { formatDate } from '@/utils' | import { formatDate } from '@/utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'WorkOrderMonitoring', | 	name: 'WorkOrderMonitoring', | ||||||
| 	components: { Container, TimePrompt }, | 	components: { Container, TimePrompt }, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		order() { | 		order() { | ||||||
|       return this.$store.state.websocket.workOrder | 			return this.$store.state.websocket.workOrder; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			timestr: '', | 			timestr: '', | ||||||
| 			config: { | 			config: { | ||||||
|         header: ['序号', '工单名称', '规格','产线','工单状态', '计划完成时间','计划产量','实际产量'], | 				header: [ | ||||||
|  | 					'序号', | ||||||
|  | 					'工单名称', | ||||||
|  | 					'规格', | ||||||
|  | 					'产线', | ||||||
|  | 					'工单状态', | ||||||
|  | 					'计划完成时间', | ||||||
|  | 					'计划产量', | ||||||
|  | 					'实际产量', | ||||||
|  | 					'完成进度', | ||||||
|  | 				], | ||||||
| 				headerBGC: 'rgba(32, 55, 96, 0.8)', | 				headerBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | ||||||
| 				columnWidth: [60, 120, 120, 60, 100, 150], | 				columnWidth: [60, 120, 120, 60, 100, 150], | ||||||
| 				align: ['center'], | 				align: ['center'], | ||||||
| 				data: [], | 				data: [], | ||||||
|         rowNum:10 | 				rowNum: 10, | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 			}, | 			}, | ||||||
|   mounted(){ | 		}; | ||||||
|     this.timestr = switchShowTime('日') |  | ||||||
| 	}, | 	}, | ||||||
|   watch:{ | 	mounted() { | ||||||
|  | 		this.timestr = switchShowTime('日'); | ||||||
|  | 	}, | ||||||
|  | 	watch: { | ||||||
| 		order: { | 		order: { | ||||||
| 			handler(newVal, oldVal) { | 			handler(newVal, oldVal) { | ||||||
| 				let outArr = this.order.map((item, index) => [ | 				let outArr = this.order.map((item, index) => [ | ||||||
|           index+1, | 					index + 1, | ||||||
| 					`<span title=${item.name || ''}>${item.name || ''}</span>`, | 					`<span title=${item.name || ''}>${item.name || ''}</span>`, | ||||||
| 					item.specifications, | 					item.specifications, | ||||||
| 					item.lines, | 					item.lines, | ||||||
| 					this.getDictDatas(this.DICT_TYPE.ORDER_STATUS)[item.status]?.label, | 					this.getDictDatas(this.DICT_TYPE.ORDER_STATUS)[item.status]?.label, | ||||||
| 					formatDate(item.planFinishTime), | 					formatDate(item.planFinishTime), | ||||||
| 					item.planQuantity, | 					item.planQuantity, | ||||||
|           item.planAssignQuantity | 					item.actualQuantity, | ||||||
|  | 					(item.progressRate * 100).toFixed(0) + '%', | ||||||
| 				]); | 				]); | ||||||
|         this.config.data = outArr | 				this.config.data = outArr; | ||||||
|         this.$refs['worderScrollBoard'].updateRows(outArr) | 				this.$refs['worderScrollBoard'].updateRows(outArr); | ||||||
|         this.timestr = switchShowTime('日') | 				this.timestr = switchShowTime('日'); | ||||||
| 			} | 			}, | ||||||
| 		} | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss' scoped> | <style lang="scss" scoped> | ||||||
| .timeShow { | .timeShow { | ||||||
| 	position: absolute; | 	position: absolute; | ||||||
| 	top: 20px; | 	top: 20px; | ||||||
|   | |||||||
| @@ -1,8 +1,11 @@ | |||||||
| <template> | <template> | ||||||
| 	<div id='deepProcessingContainerB' ref='deepProcessingContainerB' style="width: 100%;height: 100%;"> |  | ||||||
| 	<div | 	<div | ||||||
| 			id='deepProcessingContainer' | 		id="deepProcessingContainerB" | ||||||
| 			ref='deepProcessingContainer' | 		ref="deepProcessingContainerB" | ||||||
|  | 		style="width: 100%; height: 100%"> | ||||||
|  | 		<div | ||||||
|  | 			id="deepProcessingContainer" | ||||||
|  | 			ref="deepProcessingContainer" | ||||||
| 			class="deepProcessingBoard" | 			class="deepProcessingBoard" | ||||||
| 			style=" | 			style=" | ||||||
| 				position: absolute; | 				position: absolute; | ||||||
| @@ -16,15 +19,14 @@ | |||||||
| 				flex-direction: column; | 				flex-direction: column; | ||||||
| 				gap: 24px; | 				gap: 24px; | ||||||
| 			" | 			" | ||||||
| 			:style="{transform:'scale('+scaleNum+')'}"> | 			:style="{ transform: 'scale(' + scaleNum + ')' }"> | ||||||
| 			<KHeader :isFullScreen='isFullScreen' @screenfullChange='screenfullChange' topTitle='深加工生产运行驾驶舱'/> | 			<KHeader | ||||||
|  | 				:isFullScreen="isFullScreen" | ||||||
|  | 				@screenfullChange="screenfullChange" | ||||||
|  | 				topTitle="深加工生产运行驾驶舱" /> | ||||||
| 			<div | 			<div | ||||||
| 				class="main-body" | 				class="main-body" | ||||||
| 				style=" | 				style="display: grid; gap: 16px; grid-template-rows: 462px 462px"> | ||||||
| 					display: grid; |  | ||||||
| 					gap: 16px; |  | ||||||
| 					grid-template-rows: 462px 462px; |  | ||||||
| 				"> |  | ||||||
| 				<TopThree /> | 				<TopThree /> | ||||||
| 				<BottomTwo /> | 				<BottomTwo /> | ||||||
| 			</div> | 			</div> | ||||||
| @@ -47,16 +49,16 @@ | |||||||
| import KHeader from '../components/Header'; | import KHeader from '../components/Header'; | ||||||
| import TopThree from './TopThree'; | import TopThree from './TopThree'; | ||||||
| import BottomTwo from './BottomTwo'; | import BottomTwo from './BottomTwo'; | ||||||
| import screenfull from 'screenfull' | import screenfull from 'screenfull'; | ||||||
| import { debounce } from '@/utils/debounce' | import { debounce } from '@/utils/debounce'; | ||||||
| import { getDcsMsg, getMesMsg } from './../utils/wsInterface' | import { getDcsMsg, getMesMsg } from './../utils/wsInterface'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'deepProcessingBoard', | 	name: 'deepProcessingBoard', | ||||||
| 	components: { | 	components: { | ||||||
| 		KHeader, | 		KHeader, | ||||||
| 		TopThree, | 		TopThree, | ||||||
| 		BottomTwo | 		BottomTwo, | ||||||
| 	}, | 	}, | ||||||
| 	// provide() { | 	// provide() { | ||||||
| 	// 	return { | 	// 	return { | ||||||
| @@ -66,43 +68,52 @@ export default { | |||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isFullScreen: false, | 			isFullScreen: false, | ||||||
| 			scaleNum: 0.8 | 			scaleNum: 0.8, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
| 		this.init() | 		this.init(); | ||||||
| 	}, | 	}, | ||||||
| 	destroy() { | 	destroy() { | ||||||
| 		this.destroy() | 		this.destroy(); | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		this.boxReset = debounce(() => { | 		this.boxReset = debounce(() => { | ||||||
|       this.resetSize() | 			this.resetSize(); | ||||||
|     }, 300) | 		}, 300); | ||||||
|     this.boxReset() | 		this.boxReset(); | ||||||
| 		window.addEventListener('resize', () => { | 		window.addEventListener('resize', () => { | ||||||
|       this.boxReset() | 			this.boxReset(); | ||||||
|     }) | 		}); | ||||||
| 		// closeWebsocket() | 		// closeWebsocket() | ||||||
| 		// getDcsMsg() | 		// getDcsMsg() | ||||||
| 		// getMesMsg() | 		// getMesMsg() | ||||||
| 		console.log('mounted...........') | 	}, | ||||||
|  | 	mounted() { | ||||||
|  | 		this.boxReset(); | ||||||
|  | 		window.addEventListener('resize', this.boxReset); | ||||||
| 	}, | 	}, | ||||||
| 	destroyed() { | 	destroyed() { | ||||||
| 		console.log('destroyed...........') | 		window.removeEventListener('resize', this.boxReset); | ||||||
|  | 		this.destroy(); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|  | 		boxReset() { | ||||||
|  | 			debounce(() => { | ||||||
|  | 				this.resetSize(); | ||||||
|  | 			}, 300)(); | ||||||
|  | 		}, | ||||||
| 		change() { | 		change() { | ||||||
|       this.isFullScreen = screenfull.isFullscreen | 			this.isFullScreen = screenfull.isFullscreen; | ||||||
| 		}, | 		}, | ||||||
| 		init() { | 		init() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.on('change', this.change) | 				screenfull.on('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		destroy() { | 		destroy() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.off('change', this.change) | 				screenfull.off('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		// 全屏 | 		// 全屏 | ||||||
| @@ -110,39 +121,37 @@ export default { | |||||||
| 			if (!screenfull.isEnabled) { | 			if (!screenfull.isEnabled) { | ||||||
| 				this.$message({ | 				this.$message({ | ||||||
| 					message: 'you browser can not work', | 					message: 'you browser can not work', | ||||||
|           type: 'warning' | 					type: 'warning', | ||||||
|         }) | 				}); | ||||||
|         return false | 				return false; | ||||||
| 			} | 			} | ||||||
|       screenfull.toggle(this.$refs.deepProcessingContainerB) | 			screenfull.toggle(this.$refs.deepProcessingContainerB); | ||||||
| 		}, | 		}, | ||||||
| 		resetSize() { | 		resetSize() { | ||||||
|       let deepProcessingContainer = document.getElementById('deepProcessingContainer') | 			let deepProcessingContainer = document.getElementById( | ||||||
|       let rw = parseFloat(window.innerWidth) | 				'deepProcessingContainer' | ||||||
|       let rh = parseFloat(window.innerHeight) | 			); | ||||||
|       let bw = parseFloat(deepProcessingContainer.style.width) | 			let rw = parseFloat(window.innerWidth); | ||||||
|       let bh = parseFloat(deepProcessingContainer.style.height) | 			let rh = parseFloat(window.innerHeight); | ||||||
| 			let wx = 0 | 			let bw = parseFloat(deepProcessingContainer.style.width); | ||||||
| 			let hx = 0 | 			let bh = parseFloat(deepProcessingContainer.style.height); | ||||||
|  | 			let wx = 0; | ||||||
|  | 			let hx = 0; | ||||||
| 			if (screenfull.isFullscreen) { | 			if (screenfull.isFullscreen) { | ||||||
| 				console.log('全屏') | 				wx = rw / bw; | ||||||
| 				wx = rw / bw | 				hx = rh / bh; | ||||||
| 				hx = rh / bh | 			} else { | ||||||
| 				console.log(this.scaleNum) |  | ||||||
| 			}else{ |  | ||||||
| 				console.log('非全屏') |  | ||||||
| 				console.log(this.$store.state.app.sidebar.opened) |  | ||||||
| 				if (this.$store.state.app.sidebar.opened) { | 				if (this.$store.state.app.sidebar.opened) { | ||||||
| 					wx = (rw-280) / bw | 					wx = (rw - 280) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				}else{ | 				} else { | ||||||
| 					wx = (rw-85) / bw | 					wx = (rw - 85) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			this.scaleNum = wx |  | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 			this.scaleNum = wx; | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,22 +1,24 @@ | |||||||
| <!--  |  | ||||||
|     filename: MaterialCost.vue |  | ||||||
|     author: liubin |  | ||||||
|     date: 2023-12-06 09:09:27 |  | ||||||
|     description:  |  | ||||||
| --> |  | ||||||
|  |  | ||||||
| <template> | <template> | ||||||
| 	<Container name="能耗" size="middle" style=""> | 	<Container | ||||||
| 		<TimePrompt class="timeShow" :timestr="timestr" /> | 		name="能耗" | ||||||
|  | 		size="middle" | ||||||
|  | 		style=""> | ||||||
| 		<EnergeTop /> | 		<EnergeTop /> | ||||||
| 		<SplitLine :horizontal="true" /> | 		<SplitLine :horizontal="true" /> | ||||||
| 		<div class="" style="flex: 2; padding: 8px"> | 		<div | ||||||
|  | 			class="" | ||||||
|  | 			style="flex: 2; padding: 8px"> | ||||||
| 			<div | 			<div | ||||||
| 				class="header-line" | 				class="header-line" | ||||||
| 				style="margin: 8px 0 16px; display: flex; align-items: center"> | 				style="margin: 8px 0 16px; display: flex; align-items: center"> | ||||||
| 				<h2 class="" style="margin: 0; color: #0ee8fe; margin-right: 12px"> | 				<h2 | ||||||
|  | 					class="" | ||||||
|  | 					style="margin: 0; color: #0ee8fe; margin-right: 12px"> | ||||||
| 					能耗趋势图 | 					能耗趋势图 | ||||||
| 				</h2> | 				</h2> | ||||||
|  | 				<TimePrompt | ||||||
|  | 					class="timeShow" | ||||||
|  | 					:timestr="timestr" /> | ||||||
| 				<!-- <Switcher /> --> | 				<!-- <Switcher /> --> | ||||||
| 				<div> | 				<div> | ||||||
| 					<!-- <span class="lgd lgd-total">总量</span> --> | 					<!-- <span class="lgd lgd-total">总量</span> --> | ||||||
| @@ -32,11 +34,21 @@ | |||||||
| 					justify-content: space-between; | 					justify-content: space-between; | ||||||
| 				"> | 				"> | ||||||
| 				<SelectorBtnGroup | 				<SelectorBtnGroup | ||||||
| 					:options="['电耗能', '天然气I', '天然气II']" @emitFun='toggleType' :active='chartType'/> | 					:options="['电耗能', '天然气I', '天然气II']" | ||||||
| 				<SelectorBtnGroup :options="['周', '月', '年']" @emitFun='toggleDate' :active='chartTime'/> | 					@emitFun="toggleType" | ||||||
|  | 					:active="chartType" /> | ||||||
|  | 				<SelectorBtnGroup | ||||||
|  | 					:options="['周', '月', '年']" | ||||||
|  | 					@emitFun="toggleDate" | ||||||
|  | 					:active="chartTime" /> | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="chart" style="height: 200px; margin-top: 8px;"> | 			<div | ||||||
| 				<GasChart :chartType='chartType' :chartTime='chartTime' @emitFun='dateUpdate'/> | 				class="chart" | ||||||
|  | 				style="height: 200px; margin-top: 8px"> | ||||||
|  | 				<GasChart | ||||||
|  | 					:chartType="chartType" | ||||||
|  | 					:chartTime="chartTime" | ||||||
|  | 					@emitFun="dateUpdate" /> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 	</Container> | 	</Container> | ||||||
| @@ -51,7 +63,7 @@ import EnergeTop from './EnergeTop'; | |||||||
| import GasChart from '../components/GasChart.vue'; | import GasChart from '../components/GasChart.vue'; | ||||||
| import SelectorBtnGroup from '../components/SelectorBtnGroup'; | import SelectorBtnGroup from '../components/SelectorBtnGroup'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'EnergeCost', | 	name: 'EnergeCost', | ||||||
| 	components: { | 	components: { | ||||||
| @@ -61,48 +73,43 @@ export default { | |||||||
| 		EnergeTop, | 		EnergeTop, | ||||||
| 		GasChart, | 		GasChart, | ||||||
| 		SelectorBtnGroup, | 		SelectorBtnGroup, | ||||||
| 		TimePrompt | 		TimePrompt, | ||||||
| 	}, | 	}, | ||||||
| 	props: {}, | 	props: {}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			chartType:'电耗能', | 			chartType: '电耗能', | ||||||
| 			chartTime:'周', | 			chartTime: '周', | ||||||
| 			timestr: '' | 			timestr: '', | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|     this.timestr = switchShowTime(this.chartTime) | 		this.timestr = switchShowTime(this.chartTime); | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		gasInfoMsg() { | 		gasInfoMsg() { | ||||||
| 			return this.$store.state.websocket.gasInfo | 			return this.$store.state.websocket.gasInfo; | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		// 切换能源 | 		// 切换能源 | ||||||
| 		toggleType(val) { | 		toggleType(val) { | ||||||
| 			this.chartType = val | 			this.chartType = val; | ||||||
| 		}, | 		}, | ||||||
| 		// 切换时间 | 		// 切换时间 | ||||||
| 		toggleDate(val) { | 		toggleDate(val) { | ||||||
| 			this.chartTime = val | 			this.chartTime = val; | ||||||
| 			this.timestr = switchShowTime(val) | 			this.timestr = switchShowTime(val); | ||||||
| 		}, | 		}, | ||||||
| 		// 数据更新 | 		// 数据更新 | ||||||
| 		dateUpdate() { | 		dateUpdate() { | ||||||
|       this.timestr = switchShowTime(this.chartTime) | 			this.timestr = switchShowTime(this.chartTime); | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .timeShow { |  | ||||||
|   position: absolute; |  | ||||||
|   top: 20px; |  | ||||||
|   left: 120px; |  | ||||||
| } |  | ||||||
| .lgd { | .lgd { | ||||||
| 	color: #fff; | 	color: #fff; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,11 @@ | |||||||
| <template> | <template> | ||||||
| 	<div class="gas-handle" style="flex: 2"> | 	<div | ||||||
| 		<Container name="烟气处理" size="large" style=""> | 		class="gas-handle" | ||||||
| 			<TimePrompt class="timeShow" :timestr="timestr" /> | 		style="flex: 2"> | ||||||
|  | 		<Container | ||||||
|  | 			name="烟气处理" | ||||||
|  | 			size="large" | ||||||
|  | 			style=""> | ||||||
| 			<div | 			<div | ||||||
| 				class="" | 				class="" | ||||||
| 				style=" | 				style=" | ||||||
| @@ -24,7 +28,13 @@ | |||||||
| 						"> | 						"> | ||||||
| 						氧气含量 | 						氧气含量 | ||||||
| 					</span> | 					</span> | ||||||
| 					<span style="font-size: 20px; line-height: 1.24; flex: 1">{{exhaustGasInfo?.O2_float ? (Number(exhaustGasInfo.O2_float)).toFixed(2) : ''}}%</span> | 					<span style="font-size: 20px; line-height: 1.24; flex: 1"> | ||||||
|  | 						{{ | ||||||
|  | 							exhaustGasInfo?.O2_float | ||||||
|  | 								? Number(exhaustGasInfo.O2_float).toFixed(2) | ||||||
|  | 								: '' | ||||||
|  | 						}}% | ||||||
|  | 					</span> | ||||||
| 				</ShadowRect> | 				</ShadowRect> | ||||||
| 				<ShadowRect> | 				<ShadowRect> | ||||||
| 					<div | 					<div | ||||||
| @@ -33,13 +43,19 @@ | |||||||
| 							line-height: 1.24; | 							line-height: 1.24; | ||||||
| 							flex: 1; | 							flex: 1; | ||||||
| 							text-align: right; | 							text-align: right; | ||||||
| 							padding:5px 8px 5px 0; | 							padding: 5px 8px 5px 0; | ||||||
| 							letter-spacing: 3px; | 							letter-spacing: 3px; | ||||||
| 						"> | 						"> | ||||||
| 						<p style="margin: 0; line-height: inherit">氮氧化物</p> | 						<p style="margin: 0; line-height: inherit">氮氧化物</p> | ||||||
| 						<p style="margin: 0; line-height: inherit">排放浓度</p> | 						<p style="margin: 0; line-height: inherit">排放浓度</p> | ||||||
| 					</div> | 					</div> | ||||||
| 					<span style="font-size: 20px; line-height: 1.24; flex: 1.2">{{exhaustGasInfo?.NOX_float ? (Number(exhaustGasInfo.NOX_float)).toFixed(2) : ''}}mg/m³</span> | 					<span style="font-size: 20px; line-height: 1.24; flex: 1.2"> | ||||||
|  | 						{{ | ||||||
|  | 							exhaustGasInfo?.NOX_float | ||||||
|  | 								? Number(exhaustGasInfo.NOX_float).toFixed(2) | ||||||
|  | 								: '' | ||||||
|  | 						}}mg/m³ | ||||||
|  | 					</span> | ||||||
| 				</ShadowRect> | 				</ShadowRect> | ||||||
|  |  | ||||||
| 				<ShadowRect> | 				<ShadowRect> | ||||||
| @@ -49,16 +65,22 @@ | |||||||
| 							line-height: 1.24; | 							line-height: 1.24; | ||||||
| 							flex: 1; | 							flex: 1; | ||||||
| 							text-align: right; | 							text-align: right; | ||||||
| 							padding:5px 8px 5px 0; | 							padding: 5px 8px 5px 0; | ||||||
| 							letter-spacing: 3px; | 							letter-spacing: 3px; | ||||||
| 						"> | 						"> | ||||||
| 						<p style="margin: 0; line-height: inherit">二氧化硫</p> | 						<p style="margin: 0; line-height: inherit">二氧化硫</p> | ||||||
| 						<p style="margin: 0; line-height: inherit">排放浓度</p> | 						<p style="margin: 0; line-height: inherit">排放浓度</p> | ||||||
| 					</div> | 					</div> | ||||||
| 					<span style="font-size: 20px; line-height: 1.24; flex: 1">{{exhaustGasInfo?.SO2_float ? (Number(exhaustGasInfo.SO2_float)).toFixed(2) : ''}}mg/m³</span> | 					<span style="font-size: 20px; line-height: 1.24; flex: 1"> | ||||||
|  | 						{{ | ||||||
|  | 							exhaustGasInfo?.SO2_float | ||||||
|  | 								? Number(exhaustGasInfo.SO2_float).toFixed(2) | ||||||
|  | 								: '' | ||||||
|  | 						}}mg/m³ | ||||||
|  | 					</span> | ||||||
| 				</ShadowRect> | 				</ShadowRect> | ||||||
|  |  | ||||||
| 				<ShadowRect> | 				<!-- <ShadowRect> | ||||||
| 					<span | 					<span | ||||||
| 						style=" | 						style=" | ||||||
| 							font-size: 20px; | 							font-size: 20px; | ||||||
| @@ -70,17 +92,30 @@ | |||||||
| 						"> | 						"> | ||||||
| 						颗粒物浓度 | 						颗粒物浓度 | ||||||
| 					</span> | 					</span> | ||||||
| 					<span style="font-size: 20px; line-height: 1.24; flex: 1.2">{{exhaustGasInfo?.dust_float ? (Number(exhaustGasInfo.dust_float)).toFixed(2) : ''}}mg/m³</span> | 					<span style="font-size: 20px; line-height: 1.24; flex: 1.2"> | ||||||
| 				</ShadowRect> | 						{{ | ||||||
|  | 							exhaustGasInfo?.dust_float | ||||||
|  | 								? Number(exhaustGasInfo.dust_float).toFixed(2) | ||||||
|  | 								: '' | ||||||
|  | 						}}mg/m³ | ||||||
|  | 					</span> | ||||||
|  | 				</ShadowRect> --> | ||||||
| 			</div> | 			</div> | ||||||
| 			<KilnLine :horizontal="true" /> | 			<KilnLine :horizontal="true" /> | ||||||
| 			<div class="" style="flex: 2; padding: 8px"> | 			<div | ||||||
|  | 				class="" | ||||||
|  | 				style="flex: 2; padding: 8px"> | ||||||
| 				<div | 				<div | ||||||
| 					class="header-line" | 					class="header-line" | ||||||
| 					style="margin-bottom: 10px; display: flex; align-items: center"> | 					style="margin-bottom: 10px; display: flex; align-items: center"> | ||||||
| 					<h2 class="" style="margin: 5px 0; color: #0ee8fe; margin-right: 12px"> | 					<h2 | ||||||
|  | 						class="" | ||||||
|  | 						style="margin: 5px 0; color: #0ee8fe; margin-right: 12px"> | ||||||
| 						烟气趋势图 | 						烟气趋势图 | ||||||
| 					</h2> | 					</h2> | ||||||
|  | 					<TimePrompt | ||||||
|  | 						class="timeShow" | ||||||
|  | 						:timestr="timestr" /> | ||||||
| 					<!-- <Switcher /> --> | 					<!-- <Switcher /> --> | ||||||
| 					<div> | 					<div> | ||||||
| 						<!-- <span class="lgd lgd-total">总量</span> --> | 						<!-- <span class="lgd lgd-total">总量</span> --> | ||||||
| @@ -95,12 +130,23 @@ | |||||||
| 						align-items: center; | 						align-items: center; | ||||||
| 						justify-content: space-between; | 						justify-content: space-between; | ||||||
| 					"> | 					"> | ||||||
|  | 					<!-- :options="['氧气含量', '二氧化硫', '氮氧化物', '颗粒物']" --> | ||||||
| 					<SelectorBtnGroup | 					<SelectorBtnGroup | ||||||
| 						:options="['氧气含量', '二氧化硫', '氮氧化物', '颗粒物']" @emitFun='toggleType' :active='chartType'/> | 						:options="['氧气含量', '二氧化硫', '氮氧化物']" | ||||||
| 					<SelectorBtnGroup :options="['日', '周', '月', '年']" @emitFun='toggleDate' :active='chartTime' /> | 						@emitFun="toggleType" | ||||||
|  | 						:active="chartType" /> | ||||||
|  | 					<SelectorBtnGroup | ||||||
|  | 						:options="['日', '周', '月', '年']" | ||||||
|  | 						@emitFun="toggleDate" | ||||||
|  | 						:active="chartTime" /> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="chart" style="height: 250px;margin-top: 10px;"> | 				<div | ||||||
| 					<FlueGasChart :chartType='chartType' :chartTime='chartTime' @emitFun='dateUpdate'/> | 					class="chart" | ||||||
|  | 					style="height: 250px; margin-top: 10px"> | ||||||
|  | 					<FlueGasChart | ||||||
|  | 						:chartType="chartType" | ||||||
|  | 						:chartTime="chartTime" | ||||||
|  | 						@emitFun="dateUpdate" /> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 		</Container> | 		</Container> | ||||||
| @@ -115,7 +161,7 @@ import KilnLine from '../components/line'; | |||||||
| import SelectorBtnGroup from '../components/SelectorBtnGroup'; | import SelectorBtnGroup from '../components/SelectorBtnGroup'; | ||||||
| import FlueGasChart from '../components/FlueGasChart'; | import FlueGasChart from '../components/FlueGasChart'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'GasHandle', | 	name: 'GasHandle', | ||||||
| @@ -125,49 +171,44 @@ export default { | |||||||
| 		KilnLine, | 		KilnLine, | ||||||
| 		SelectorBtnGroup, | 		SelectorBtnGroup, | ||||||
| 		FlueGasChart, | 		FlueGasChart, | ||||||
| 		TimePrompt | 		TimePrompt, | ||||||
| 	}, | 	}, | ||||||
| 	props: {}, | 	props: {}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			chartType:'氧气含量', | 			chartType: '氧气含量', | ||||||
| 			chartTime:'日', | 			chartTime: '日', | ||||||
| 			timestr: '' | 			timestr: '', | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		exhaustGasInfo() { | 		exhaustGasInfo() { | ||||||
| 			return this.$store.state.websocket.exhaustGasInfo | 			return this.$store.state.websocket.exhaustGasInfo; | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|     this.timestr = switchShowTime(this.chartTime) | 		this.timestr = switchShowTime(this.chartTime); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		// 烟气 | 		// 烟气 | ||||||
| 		toggleType(val) { | 		toggleType(val) { | ||||||
| 			console.log('烟气' + val) | 			console.log('烟气' + val); | ||||||
| 			this.chartType = val | 			this.chartType = val; | ||||||
| 		}, | 		}, | ||||||
| 		// 切换时间 | 		// 切换时间 | ||||||
| 		toggleDate(val) { | 		toggleDate(val) { | ||||||
| 			this.chartTime = val | 			this.chartTime = val; | ||||||
| 			this.timestr = switchShowTime(val) | 			this.timestr = switchShowTime(val); | ||||||
| 		}, | 		}, | ||||||
| 		// 数据更新 | 		// 数据更新 | ||||||
| 		dateUpdate() { | 		dateUpdate() { | ||||||
|       this.timestr = switchShowTime(this.chartTime) | 			this.timestr = switchShowTime(this.chartTime); | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .timeShow { |  | ||||||
|   position: absolute; |  | ||||||
|   top: 20px; |  | ||||||
|   left: 170px; |  | ||||||
| } |  | ||||||
| .gas-handle { | .gas-handle { | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,95 +1,89 @@ | |||||||
| <!--  |  | ||||||
|     filename: MaterialCost.vue |  | ||||||
|     author: liubin |  | ||||||
|     date: 2023-12-06 09:09:27 |  | ||||||
|     description:  |  | ||||||
| --> |  | ||||||
|  |  | ||||||
| <template> | <template> | ||||||
| 	<Container name="原料用量统计" size="middle" style=""> | 	<Container | ||||||
| 		<div style="flex: 1; display: flex; gap: 8px;flex-direction: column;"> | 		name="原料用量统计" | ||||||
|  | 		size="middle" | ||||||
|  | 		style=""> | ||||||
|  | 		<TimePrompt | ||||||
|  | 			class="timeShow" | ||||||
|  | 			:timestr="timestr" /> | ||||||
|  | 		<div style="flex: 1; display: flex; gap: 8px; flex-direction: column"> | ||||||
| 			<div | 			<div | ||||||
| 				class="absolute" | 				class="absolute" | ||||||
| 				style=" | 				style=" | ||||||
| 					flex:3; | 					flex: 2; | ||||||
| 					padding: 12px 12px 0 12px; | 					padding: 12px 12px 0 12px; | ||||||
| 					display: grid; | 					display: grid; | ||||||
| 					grid-template-columns: repeat(3, 1fr); | 					grid-template-columns: repeat(3, 1fr); | ||||||
| 					grid-auto-rows: repeat(4, 1fr); | 					grid-auto-rows: repeat(3, 1fr); | ||||||
| 					gap: 8px; | 					gap: 8px; | ||||||
| 				"> | 				"> | ||||||
| 				<ShadowRect v-for="(item, index) in materialMsg1" :key="index" :rounded="false"> | 				<ShadowRect | ||||||
|  | 					v-for="(item, index) in materialMsg" | ||||||
|  | 					:key="index" | ||||||
|  | 					:rounded="false"> | ||||||
| 					<div | 					<div | ||||||
| 						class="material" | 						class="material" | ||||||
| 						style=" | 						style=" | ||||||
| 							flex: 1; | 							flex: 1; | ||||||
| 							padding-bottom: 3px; | 							padding-bottom: 18px; | ||||||
|  | 							padding-top: 18px; | ||||||
| 							display: flex; | 							display: flex; | ||||||
| 							flex-direction: column; | 							flex-direction: column; | ||||||
| 							gap: 4px; | 							gap: 4px; | ||||||
| 							align-items: center; | 							align-items: center; | ||||||
| 							justify-content: center; | 							justify-content: center; | ||||||
| 						"> | 						"> | ||||||
| 						<span style="color: #0ee8e4; font-weight: 500; font-size: 32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"> | 						<span | ||||||
| 							{{item.materialUsed}} |  | ||||||
| 						</span> |  | ||||||
| 						<span style="color: #fff; font-size: 16px; letter-spacing: 1px"> |  | ||||||
| 							- {{item.materialName}}/kg- |  | ||||||
| 						</span> |  | ||||||
| 					</div> |  | ||||||
| 				</ShadowRect> |  | ||||||
| 			</div> |  | ||||||
| 			<div style="flex:1; |  | ||||||
| 					padding: 0 12px 12px 12px; |  | ||||||
| 					display: grid; |  | ||||||
| 					grid-template-columns: repeat(4, 1fr); |  | ||||||
| 					gap: 8px;"> |  | ||||||
| 				<ShadowRect v-for="(item, index) in materialMsg2" :key="index" :rounded="false"> |  | ||||||
| 					<div |  | ||||||
| 						class="material" |  | ||||||
| 							style=" | 							style=" | ||||||
| 							flex: 1; | 								color: #0ee8e4; | ||||||
| 							padding-bottom: 3px; | 								font-weight: 500; | ||||||
| 							display: flex; | 								font-size: 32px; | ||||||
| 							flex-direction: column; | 								white-space: nowrap; | ||||||
| 							gap: 4px; | 								overflow: hidden; | ||||||
| 							align-items: center; | 								text-overflow: ellipsis; | ||||||
| 							justify-content: center; |  | ||||||
| 							"> | 							"> | ||||||
| 						<span style="color: #0ee8e4; font-weight: 500; font-size: 32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"> | 							{{ item.materialUsed }} | ||||||
| 							{{item.materialUsed}} |  | ||||||
| 						</span> | 						</span> | ||||||
| 						<span style="color: #fff; font-size: 16px; letter-spacing: 1px"> | 						<span style="color: #fff; font-size: 16px; letter-spacing: 1px"> | ||||||
| 							- {{item.materialName}}/kg- | 							- {{ item.materialName }}/kg- | ||||||
| 						</span> | 						</span> | ||||||
| 					</div> | 					</div> | ||||||
| 				</ShadowRect> | 				</ShadowRect> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 		 |  | ||||||
| 	</Container> | 	</Container> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import Container from '../components/Container'; | import Container from '../components/Container'; | ||||||
| import ShadowRect from '../components/ShadowRect.vue'; | import ShadowRect from '../components/ShadowRect.vue'; | ||||||
|  | import TimePrompt from '../components/TimePrompt'; | ||||||
|  | import { switchShowTime } from '../utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'MaterialCost', | 	name: 'MaterialCost', | ||||||
| 	components: { Container, ShadowRect }, | 	components: { Container, ShadowRect, TimePrompt }, | ||||||
| 	props: {}, | 	props: {}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return {}; | 		return { | ||||||
|  | 			timestr: '', | ||||||
|  | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		materialMsg1() { | 		materialMsg() { | ||||||
| 			return this.$store.state.websocket.material.slice(0,9) | 			return this.$store.state.websocket.material; | ||||||
| 		}, | 		}, | ||||||
| 		materialMsg2() { | 	}, | ||||||
| 			return this.$store.state.websocket.material.slice(9) | 	mounted() { | ||||||
| 		} | 		this.timestr = switchShowTime('日'); | ||||||
| 	}, | 	}, | ||||||
| 	methods: {}, | 	methods: {}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style scoped lang="scss"></style> | <style lang="scss" scoped> | ||||||
|  | .timeShow { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 20px; | ||||||
|  | 	left: 210px; | ||||||
|  | } | ||||||
|  | </style> | ||||||
|   | |||||||
| @@ -1,8 +1,11 @@ | |||||||
| <template> | <template> | ||||||
| 	<div id='kilnContainerB' ref='kilnContainerB' style="width: 100%;height: 100%;"> |  | ||||||
| 	<div | 	<div | ||||||
| 			id='kilnContainer' | 		id="kilnContainerB" | ||||||
| 			ref='kilnContainer' | 		ref="kilnContainerB" | ||||||
|  | 		style="width: 100%; height: 100%"> | ||||||
|  | 		<div | ||||||
|  | 			id="kilnContainer" | ||||||
|  | 			ref="kilnContainer" | ||||||
| 			class="KilnDataBoard" | 			class="KilnDataBoard" | ||||||
| 			style=" | 			style=" | ||||||
| 				position: absolute; | 				position: absolute; | ||||||
| @@ -16,15 +19,22 @@ | |||||||
| 				flex-direction: column; | 				flex-direction: column; | ||||||
| 				gap: 24px; | 				gap: 24px; | ||||||
| 			" | 			" | ||||||
| 			:style="{transform:'scale('+scaleNum+')'}"> | 			:style="{ transform: 'scale(' + scaleNum + ')' }"> | ||||||
| 			<KHeader :isFullScreen='isFullScreen' @screenfullChange='screenfullChange' topTitle='窑炉生产运行驾驶舱'/> | 			<KHeader | ||||||
|  | 				:isFullScreen="isFullScreen" | ||||||
|  | 				@screenfullChange="screenfullChange" | ||||||
|  | 				topTitle="窑炉生产运行驾驶舱" /> | ||||||
| 			<div | 			<div | ||||||
| 				class="main-body" | 				class="main-body" | ||||||
| 				style="flex: 1; display: flex; gap: 20px; padding: 0px 16px"> | 				style="flex: 1; display: flex; gap: 20px; padding: 0px 16px"> | ||||||
| 				<div class="left-side" style="flex: 2"> | 				<div | ||||||
|  | 					class="left-side" | ||||||
|  | 					style="flex: 2"> | ||||||
| 					<LeftFour /> | 					<LeftFour /> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="right-side" style="flex: 1"> | 				<div | ||||||
|  | 					class="right-side" | ||||||
|  | 					style="flex: 1"> | ||||||
| 					<RightTwo /> | 					<RightTwo /> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| @@ -36,8 +46,8 @@ | |||||||
| import KHeader from '../components/Header'; | import KHeader from '../components/Header'; | ||||||
| import LeftFour from './LeftFour'; | import LeftFour from './LeftFour'; | ||||||
| import RightTwo from './RightTwo.vue'; | import RightTwo from './RightTwo.vue'; | ||||||
| import screenfull from 'screenfull' | import screenfull from 'screenfull'; | ||||||
| import { debounce } from '@/utils/debounce' | import { debounce } from '@/utils/debounce'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'Kiln', | 	name: 'Kiln', | ||||||
| @@ -46,10 +56,10 @@ export default { | |||||||
| 		LeftFour, | 		LeftFour, | ||||||
| 		RightTwo, | 		RightTwo, | ||||||
| 	}, | 	}, | ||||||
| 	computed:{ | 	computed: { | ||||||
| 		sidebarStatus() { | 		sidebarStatus() { | ||||||
| 			return this.$store.state.app.sidebar.opened; | 			return this.$store.state.app.sidebar.opened; | ||||||
| 		} | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	// provide() { | 	// provide() { | ||||||
| 	// 	return { | 	// 	return { | ||||||
| @@ -59,43 +69,44 @@ export default { | |||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isFullScreen: false, | 			isFullScreen: false, | ||||||
| 			scaleNum: 0.8 | 			scaleNum: 0.8, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	watch: { | 	watch: { | ||||||
| 		sidebarStatus() { | 		sidebarStatus() { | ||||||
| 			this.boxReset() | 			this.boxReset(); | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
| 		this.init() | 		this.init(); | ||||||
| 	}, |  | ||||||
| 	destroy() { |  | ||||||
| 		this.destroy() |  | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		this.boxReset = debounce(() => { | 		this.boxReset(); | ||||||
|       this.resetSize() | 		window.addEventListener('resize', this.boxReset); | ||||||
|     }, 300) | 	}, | ||||||
|     this.boxReset() | 	destroyed() { | ||||||
|     window.addEventListener('resize', () => { | 		window.removeEventListener('resize', this.boxReset); | ||||||
|       this.boxReset() | 		this.destroy(); | ||||||
|     }) |  | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|  | 		boxReset() { | ||||||
|  | 			debounce(() => { | ||||||
|  | 				this.resetSize(); | ||||||
|  | 			}, 300)(); | ||||||
|  | 		}, | ||||||
| 		change() { | 		change() { | ||||||
|       this.isFullScreen = screenfull.isFullscreen | 			this.isFullScreen = screenfull.isFullscreen; | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
| 		init() { | 		init() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.on('change', this.change) | 				screenfull.on('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
| 		destroy() { | 		destroy() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.off('change', this.change) | 				screenfull.off('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		// 全屏 | 		// 全屏 | ||||||
| @@ -103,40 +114,35 @@ export default { | |||||||
| 			if (!screenfull.isEnabled) { | 			if (!screenfull.isEnabled) { | ||||||
| 				this.$message({ | 				this.$message({ | ||||||
| 					message: 'you browser can not work', | 					message: 'you browser can not work', | ||||||
|           type: 'warning' | 					type: 'warning', | ||||||
|         }) | 				}); | ||||||
|         return false | 				return false; | ||||||
| 			} | 			} | ||||||
|       screenfull.toggle(this.$refs.kilnContainerB) | 			screenfull.toggle(this.$refs.kilnContainerB); | ||||||
| 		}, | 		}, | ||||||
| 		resetSize() { | 		resetSize() { | ||||||
|       let kilnContainerBox = document.getElementById('kilnContainer') | 			let kilnContainerBox = document.getElementById('kilnContainer'); | ||||||
| 			console.log(kilnContainerBox) | 			let rw = parseFloat(window.innerWidth); | ||||||
|       let rw = parseFloat(window.innerWidth) | 			let rh = parseFloat(window.innerHeight); | ||||||
|       let rh = parseFloat(window.innerHeight) | 			let bw = parseFloat(kilnContainerBox.style.width); | ||||||
|       let bw = parseFloat(kilnContainerBox.style.width) | 			let bh = parseFloat(kilnContainerBox.style.height); | ||||||
|       let bh = parseFloat(kilnContainerBox.style.height) | 			let wx = 0; | ||||||
| 			let wx = 0 | 			let hx = 0; | ||||||
| 			let hx = 0 |  | ||||||
| 			if (screenfull.isFullscreen) { | 			if (screenfull.isFullscreen) { | ||||||
| 				console.log('全屏') | 				wx = rw / bw; | ||||||
| 				wx = rw / bw | 				hx = rh / bh; | ||||||
| 				hx = rh / bh | 			} else { | ||||||
| 				console.log(this.scaleNum) |  | ||||||
| 			}else{ |  | ||||||
| 				console.log('非全屏') |  | ||||||
| 				console.log(this.$store.state.app.sidebar.opened) |  | ||||||
| 				if (this.$store.state.app.sidebar.opened) { | 				if (this.$store.state.app.sidebar.opened) { | ||||||
| 					wx = (rw-280) / bw | 					wx = (rw - 280) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				}else{ | 				} else { | ||||||
| 					wx = (rw-85) / bw | 					wx = (rw - 85) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			this.scaleNum = wx |  | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 			this.scaleNum = wx; | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,6 +29,8 @@ export const switchShowTime = (type) => { | |||||||
|       } |       } | ||||||
|       if (lastMonth === 12) { |       if (lastMonth === 12) { | ||||||
|         startYear = currentYear - 1 |         startYear = currentYear - 1 | ||||||
|  |       }else{ | ||||||
|  |         startYear = currentYear | ||||||
|       } |       } | ||||||
|       startTime = startYear+'.'+lastMonth+'.'+day |       startTime = startYear+'.'+lastMonth+'.'+day | ||||||
|       endTime = currentYear+'.'+(nowTime.getMonth()+1)+'.28' |       endTime = currentYear+'.'+(nowTime.getMonth()+1)+'.28' | ||||||
|   | |||||||
| @@ -1,67 +1,91 @@ | |||||||
| <template> | <template> | ||||||
|   <div style="flex: 1;" class="orderContainer"> | 	<div | ||||||
|     <Container name="订单完成情况" size="small" style=""> | 		style="flex: 1" | ||||||
|       <TimePrompt class="timeShow" :timestr="timestr" /> | 		class="orderContainer"> | ||||||
|       <div style="padding: 5px 10px;"> | 		<Container | ||||||
|         <dv-scroll-board :config="config" style="width:575px;height:230px" ref='orderScrollBoard'/> | 			name="订单完成情况" | ||||||
|  | 			size="small" | ||||||
|  | 			style=""> | ||||||
|  | 			<TimePrompt | ||||||
|  | 				class="timeShow" | ||||||
|  | 				:timestr="timestr" /> | ||||||
|  | 			<div style="padding: 5px 10px"> | ||||||
|  | 				<dv-scroll-board | ||||||
|  | 					:config="config" | ||||||
|  | 					style="width: 575px; height: 230px" | ||||||
|  | 					ref="orderScrollBoard" /> | ||||||
| 			</div> | 			</div> | ||||||
| 		</Container> | 		</Container> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import Container from '../components/Container' | import Container from '../components/Container'; | ||||||
| import TimePrompt from '../components/TimePrompt'; | import TimePrompt from '../components/TimePrompt'; | ||||||
| import { formatDate } from '@/utils' | import { formatDate } from '@/utils'; | ||||||
| import { switchShowTime } from '../utils' | import { switchShowTime } from '../utils'; | ||||||
| export default { | export default { | ||||||
| 	name: 'OrderStatus', | 	name: 'OrderStatus', | ||||||
| 	components: { Container, TimePrompt }, | 	components: { Container, TimePrompt }, | ||||||
| 	computed: { | 	computed: { | ||||||
| 		order() { | 		order() { | ||||||
|       return this.$store.state.websocket.order | 			return this.$store.state.websocket.order; | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			timestr: '', | 			timestr: '', | ||||||
| 			config: { | 			config: { | ||||||
|         header: ['上线时间', '客户名称', '规格','完成度'], | 				header: ['上线时间', '客户名称', '规格', '完成度'], | ||||||
| 				headerBGC: 'rgba(32, 55, 96, 0.8)', | 				headerBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | 				oddRowBGC: 'rgba(32, 55, 96, 0.8)', | ||||||
| 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | 				evenRowBGC: 'rgba(14, 32, 62, 0.8)', | ||||||
| 				columnWidth: [155, 160, 150], | 				columnWidth: [155, 160, 150], | ||||||
| 				data: [], | 				data: [], | ||||||
|         rowNum: 6 | 				rowNum: 6, | ||||||
|       } | 			}, | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|     this.timestr = switchShowTime('日') | 		this.timestr = switchShowTime('日'); | ||||||
| 	}, | 	}, | ||||||
|   watch:{ | 	watch: { | ||||||
|     order:{ | 		order: { | ||||||
| 			handler() { | 			handler() { | ||||||
| 				let outArr = this.order.map((item) => [ | 				let outArr = this.order.map((item) => [ | ||||||
| 					formatDate(item.planStartTime) || '', | 					formatDate(item.planStartTime) || '', | ||||||
|           `<span title=${item.customerName || ''}>${item.customerName || ''}</span>`, | 					`<span title=${item.customerName || ''}>${ | ||||||
|           `<span title=${item.specifications || ''}>${item.specifications || ''}</span>`, | 						item.customerName || '' | ||||||
|           `<span style="display:inline-block;width:60px;">${item.completeRate?(item.completeRate*100).toFixed(2)+'%':'0%'}</span> | 					}</span>`, | ||||||
|  | 					`<span title=${item.specifications || ''}>${ | ||||||
|  | 						item.specifications || '' | ||||||
|  | 					}</span>`, | ||||||
|  | 					`<span style="display:inline-block;width:60px;">${ | ||||||
|  | 						item.completeRate | ||||||
|  | 							? (item.completeRate * 100).toFixed(2) + '%' | ||||||
|  | 							: '0%' | ||||||
|  | 					}</span> | ||||||
|           <div style="display:inline-block;height:20px;margin-top:-5px;vertical-align:middle;"> |           <div style="display:inline-block;height:20px;margin-top:-5px;vertical-align:middle;"> | ||||||
|             <svg xmlns="http://www.w3.org/200/svg" height="20" width="20"> |             <svg xmlns="http://www.w3.org/200/svg" height="20" width="20"> | ||||||
|               <circle cx="10" cy="10" r="6" fill="none" stroke="#283851" stroke-width="4" stroke-linecap="round"/> |               <circle cx="10" cy="10" r="6" fill="none" stroke="#283851" stroke-width="4" stroke-linecap="round"/> | ||||||
|               <circle style="transform-origin: center;transform: rotate(-90deg);" id="J_progress_bar" cx="10" cy="10" r="6" fill="none" stroke="#47FF27" stroke-width="4" stroke-dasharray="${item.completeRate?item.completeRate.toFixed(2)*37.68+','+((1-item.completeRate.toFixed(2))*37.68):(0+','+37.68)}"/> |               <circle style="transform-origin: center;transform: rotate(-90deg);" id="J_progress_bar" cx="10" cy="10" r="6" fill="none" stroke="#47FF27" stroke-width="4" stroke-dasharray="${ | ||||||
|  | 								item.completeRate | ||||||
|  | 									? item.completeRate.toFixed(2) * 37.68 + | ||||||
|  | 									  ',' + | ||||||
|  | 									  (1 - item.completeRate.toFixed(2)) * 37.68 | ||||||
|  | 									: 0 + ',' + 37.68 | ||||||
|  | 							}"/> | ||||||
|             </svg> |             </svg> | ||||||
|           </div>` |           </div>`, | ||||||
| 				]); | 				]); | ||||||
|       this.config.data = outArr | 				this.config.data = outArr; | ||||||
|       this.$refs['orderScrollBoard'].updateRows(outArr) | 				this.$refs['orderScrollBoard'].updateRows(outArr); | ||||||
|       this.timestr = switchShowTime('日') | 				this.timestr = switchShowTime('日'); | ||||||
|       } | 			}, | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss' scoped> | <style lang="scss" scoped> | ||||||
| .timeShow { | .timeShow { | ||||||
| 	position: absolute; | 	position: absolute; | ||||||
| 	top: 20px; | 	top: 20px; | ||||||
|   | |||||||
| @@ -1,8 +1,11 @@ | |||||||
| <template> | <template> | ||||||
| 	<div id='wholePlantContainerB' ref='wholePlantContainerB' style="width: 100%;height: 100%;"> |  | ||||||
| 	<div | 	<div | ||||||
| 			id='wholePlantContainer' | 		id="wholePlantContainerB" | ||||||
| 			ref='wholePlantContainer' | 		ref="wholePlantContainerB" | ||||||
|  | 		style="width: 100%; height: 100%"> | ||||||
|  | 		<div | ||||||
|  | 			id="wholePlantContainer" | ||||||
|  | 			ref="wholePlantContainer" | ||||||
| 			class="wholePlantBoard" | 			class="wholePlantBoard" | ||||||
| 			style=" | 			style=" | ||||||
| 				position: absolute; | 				position: absolute; | ||||||
| @@ -16,18 +19,27 @@ | |||||||
| 				flex-direction: column; | 				flex-direction: column; | ||||||
| 				gap: 24px; | 				gap: 24px; | ||||||
| 			" | 			" | ||||||
| 			:style="{transform:'scale('+scaleNum+')'}"> | 			:style="{ transform: 'scale(' + scaleNum + ')' }"> | ||||||
| 			<KHeader :isFullScreen='isFullScreen' @screenfullChange='screenfullChange' topTitle='全厂总览驾驶舱'/> | 			<KHeader | ||||||
|  | 				:isFullScreen="isFullScreen" | ||||||
|  | 				@screenfullChange="screenfullChange" | ||||||
|  | 				topTitle="全厂总览驾驶舱" /> | ||||||
| 			<div | 			<div | ||||||
| 				class="main-body" | 				class="main-body" | ||||||
| 				style="flex: 1; display: flex; gap: 20px; padding: 0px 16px"> | 				style="flex: 1; display: flex; gap: 20px; padding: 0px 16px"> | ||||||
| 				<div class="left-side" style="flex: 1"> | 				<div | ||||||
|  | 					class="left-side" | ||||||
|  | 					style="flex: 1"> | ||||||
| 					<LeftTwo /> | 					<LeftTwo /> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="middle-side" style="flex: 1"> | 				<div | ||||||
|  | 					class="middle-side" | ||||||
|  | 					style="flex: 1"> | ||||||
| 					<MiddleTwo /> | 					<MiddleTwo /> | ||||||
| 				</div> | 				</div> | ||||||
| 				<div class="right-side" style="flex: 1"> | 				<div | ||||||
|  | 					class="right-side" | ||||||
|  | 					style="flex: 1"> | ||||||
| 					<RightTwo /> | 					<RightTwo /> | ||||||
| 				</div> | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| @@ -40,8 +52,8 @@ import KHeader from '../components/Header'; | |||||||
| import LeftTwo from './LeftTwo'; | import LeftTwo from './LeftTwo'; | ||||||
| import MiddleTwo from './MiddleTwo'; | import MiddleTwo from './MiddleTwo'; | ||||||
| import RightTwo from './RightTwo'; | import RightTwo from './RightTwo'; | ||||||
| import screenfull from 'screenfull' | import screenfull from 'screenfull'; | ||||||
| import { debounce } from '@/utils/debounce' | import { debounce } from '@/utils/debounce'; | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| 	name: 'wholePlantBoard', | 	name: 'wholePlantBoard', | ||||||
| @@ -49,7 +61,7 @@ export default { | |||||||
| 		KHeader, | 		KHeader, | ||||||
| 		LeftTwo, | 		LeftTwo, | ||||||
| 		MiddleTwo, | 		MiddleTwo, | ||||||
| 		RightTwo | 		RightTwo, | ||||||
| 	}, | 	}, | ||||||
| 	// provide() { | 	// provide() { | ||||||
| 	// 	return { | 	// 	return { | ||||||
| @@ -59,40 +71,39 @@ export default { | |||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isFullScreen: false, | 			isFullScreen: false, | ||||||
| 			scaleNum: 0.8 | 			scaleNum: 0.8, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
| 		this.init() | 		this.init(); | ||||||
| 	}, | 	}, | ||||||
| 	destroy() { | 	destroy() { | ||||||
| 		this.destroy() | 		this.destroy(); | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		this.boxReset = debounce(() => { | 		this.boxReset(); | ||||||
|       this.resetSize() | 		window.addEventListener('resize', this.boxReset); | ||||||
|     }, 300) |  | ||||||
|     this.boxReset() |  | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.boxReset() |  | ||||||
|     }) |  | ||||||
| 		console.log('mounted...........') |  | ||||||
| 	}, | 	}, | ||||||
| 	destroyed() { | 	destroyed() { | ||||||
| 		console.log('destroyed...........') | 		window.removeEventListener('resize', this.boxReset); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|  | 		boxReset() { | ||||||
|  | 			debounce(() => { | ||||||
|  | 				this.resetSize(); | ||||||
|  | 			}, 300)(); | ||||||
|  | 		}, | ||||||
| 		change() { | 		change() { | ||||||
|       this.isFullScreen = screenfull.isFullscreen | 			this.isFullScreen = screenfull.isFullscreen; | ||||||
| 		}, | 		}, | ||||||
| 		init() { | 		init() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.on('change', this.change) | 				screenfull.on('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		destroy() { | 		destroy() { | ||||||
| 			if (screenfull.isEnabled) { | 			if (screenfull.isEnabled) { | ||||||
|         screenfull.off('change', this.change) | 				screenfull.off('change', this.change); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		// 全屏 | 		// 全屏 | ||||||
| @@ -100,39 +111,37 @@ export default { | |||||||
| 			if (!screenfull.isEnabled) { | 			if (!screenfull.isEnabled) { | ||||||
| 				this.$message({ | 				this.$message({ | ||||||
| 					message: 'you browser can not work', | 					message: 'you browser can not work', | ||||||
|           type: 'warning' | 					type: 'warning', | ||||||
|         }) | 				}); | ||||||
|         return false | 				return false; | ||||||
| 			} | 			} | ||||||
|       screenfull.toggle(this.$refs.wholePlantContainerB) | 			screenfull.toggle(this.$refs.wholePlantContainerB); | ||||||
| 		}, | 		}, | ||||||
| 		resetSize() { | 		resetSize() { | ||||||
|       let wholePlantContainerBox = document.getElementById('wholePlantContainer') | 			let wholePlantContainerBox = document.getElementById( | ||||||
|       let rw = parseFloat(window.innerWidth) | 				'wholePlantContainer' | ||||||
|       let rh = parseFloat(window.innerHeight) | 			); | ||||||
|       let bw = parseFloat(wholePlantContainerBox.style.width) | 			let rw = parseFloat(window.innerWidth); | ||||||
|       let bh = parseFloat(wholePlantContainerBox.style.height) | 			let rh = parseFloat(window.innerHeight); | ||||||
| 			let wx = 0 | 			let bw = parseFloat(wholePlantContainerBox.style.width); | ||||||
| 			let hx = 0 | 			let bh = parseFloat(wholePlantContainerBox.style.height); | ||||||
|  | 			let wx = 0; | ||||||
|  | 			let hx = 0; | ||||||
| 			if (screenfull.isFullscreen) { | 			if (screenfull.isFullscreen) { | ||||||
| 				console.log('全屏') | 				wx = rw / bw; | ||||||
| 				wx = rw / bw | 				hx = rh / bh; | ||||||
| 				hx = rh / bh | 			} else { | ||||||
| 				console.log(this.scaleNum) |  | ||||||
| 			}else{ |  | ||||||
| 				console.log('非全屏') |  | ||||||
| 				console.log(this.$store.state.app.sidebar.opened) |  | ||||||
| 				if (this.$store.state.app.sidebar.opened) { | 				if (this.$store.state.app.sidebar.opened) { | ||||||
| 					wx = (rw-280) / bw | 					wx = (rw - 280) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				}else{ | 				} else { | ||||||
| 					wx = (rw-85) / bw | 					wx = (rw - 85) / bw; | ||||||
| 					hx = (rh-116) / bh | 					hx = (rh - 116) / bh; | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 			this.scaleNum = wx |  | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 			this.scaleNum = wx; | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,31 +4,27 @@ | |||||||
| 		<search-bar | 		<search-bar | ||||||
| 			:formConfigs="formConfig" | 			:formConfigs="formConfig" | ||||||
| 			ref="searchBarForm" | 			ref="searchBarForm" | ||||||
|       @headBtnClick="buttonClick" | 			@headBtnClick="buttonClick" /> | ||||||
|     /> |  | ||||||
| 		<!-- 列表 --> | 		<!-- 列表 --> | ||||||
| 		<base-table | 		<base-table | ||||||
| 			:page="queryParams.pageNo" | 			:page="queryParams.pageNo" | ||||||
| 			:limit="queryParams.pageSize" | 			:limit="queryParams.pageSize" | ||||||
| 			:table-props="tableProps" | 			:table-props="tableProps" | ||||||
| 			:table-data="list" | 			:table-data="list" | ||||||
|       :max-height="tableH" | 			:max-height="tableH"> | ||||||
|     > |  | ||||||
| 			<method-btn | 			<method-btn | ||||||
| 				v-if="tableBtn.length" | 				v-if="tableBtn.length" | ||||||
| 				slot="handleBtn" | 				slot="handleBtn" | ||||||
| 				:width="160" | 				:width="160" | ||||||
| 				label="操作" | 				label="操作" | ||||||
| 				:method-list="tableBtn" | 				:method-list="tableBtn" | ||||||
|         @clickBtn="handleClick" | 				@clickBtn="handleClick" /> | ||||||
|       /> |  | ||||||
| 		</base-table> | 		</base-table> | ||||||
| 		<pagination | 		<pagination | ||||||
| 			:page.sync="queryParams.pageNo" | 			:page.sync="queryParams.pageNo" | ||||||
| 			:limit.sync="queryParams.pageSize" | 			:limit.sync="queryParams.pageSize" | ||||||
| 			:total="total" | 			:total="total" | ||||||
|       @pagination="getList" | 			@pagination="getList" /> | ||||||
|     /> |  | ||||||
| 		<!-- 新增 --> | 		<!-- 新增 --> | ||||||
| 		<base-dialog | 		<base-dialog | ||||||
| 			:dialogTitle="addOrEditTitle" | 			:dialogTitle="addOrEditTitle" | ||||||
| @@ -36,9 +32,10 @@ | |||||||
| 			@cancel="handleCancel" | 			@cancel="handleCancel" | ||||||
| 			@confirm="handleConfirm" | 			@confirm="handleConfirm" | ||||||
| 			:before-close="handleCancel" | 			:before-close="handleCancel" | ||||||
| 			width="50%" | 			width="50%"> | ||||||
|     > | 			<add-or-update | ||||||
| 			<add-or-update ref="addOrUpdate" @successSubmit="successSubmit" /> | 				ref="addOrUpdate" | ||||||
|  | 				@successSubmit="successSubmit" /> | ||||||
| 		</base-dialog> | 		</base-dialog> | ||||||
| 		<!-- 装车 --> | 		<!-- 装车 --> | ||||||
| 		<base-dialog | 		<base-dialog | ||||||
| @@ -47,73 +44,78 @@ | |||||||
| 			@cancel="handleCancel2" | 			@cancel="handleCancel2" | ||||||
| 			@confirm="handleConfirm2" | 			@confirm="handleConfirm2" | ||||||
| 			:before-close="handleCancel2" | 			:before-close="handleCancel2" | ||||||
| 			width="50%" | 			width="50%"> | ||||||
|     > | 			<loaded-page | ||||||
| 			<loaded-page ref="loadedPage" @successSubmit="successSubmit2" /> | 				ref="loadedPage" | ||||||
|  | 				@successSubmit="successSubmit2" /> | ||||||
| 		</base-dialog> | 		</base-dialog> | ||||||
| 		<!-- 发货详情 --> | 		<!-- 发货详情 --> | ||||||
|     <delivery-log-detail ref='deliveryLogDetail' v-if='showDetail' /> | 		<delivery-log-detail | ||||||
|  | 			ref="deliveryLogDetail" | ||||||
|  | 			v-if="showDetail" /> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import { parseTime } from '@/utils/ruoyi' | import { parseTime } from '@/utils/ruoyi'; | ||||||
| import { deliveryLogPage, deliveryLogDelete } from '@/api/base/delivery' | import { deliveryLogPage, deliveryLogDelete } from '@/api/base/delivery'; | ||||||
| import AddOrUpdate from './components/addOrUpdate' | import AddOrUpdate from './components/addOrUpdate'; | ||||||
| import LoadedPage from './components/loadedPage' | import LoadedPage from './components/loadedPage'; | ||||||
| import DeliveryLogDetail from './components/deliveryLogDetail.vue' | import DeliveryLogDetail from './components/deliveryLogDetail.vue'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'orderName', | 		prop: 'orderName', | ||||||
| 		label: '订单名', | 		label: '订单名', | ||||||
| 		minWidth: 100, | 		minWidth: 100, | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'name', | 		prop: 'name', | ||||||
| 		label: '发货单名称', | 		label: '发货单名称', | ||||||
| 		minWidth: 100, | 		minWidth: 100, | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'deliveryTime', | 		prop: 'deliveryTime', | ||||||
| 		label: '发货时间', | 		label: '发货时间', | ||||||
| 		filter: parseTime, | 		filter: parseTime, | ||||||
|     minWidth: 160 | 		minWidth: 160, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'code', | 		prop: 'code', | ||||||
| 		label: '发货单号', | 		label: '发货单号', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'deliverPerName', | 		prop: 'deliverPerName', | ||||||
| 		label: '发货负责人', | 		label: '发货负责人', | ||||||
|     minWidth: 100 | 		minWidth: 100, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'principal', | 		prop: 'principal', | ||||||
| 		label: '运输负责人', | 		label: '运输负责人', | ||||||
|     minWidth: 100 | 		minWidth: 100, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'principalCall', | 		prop: 'principalCall', | ||||||
| 		label: '运输联系方式', | 		label: '运输联系方式', | ||||||
| 		minWidth: 110, | 		minWidth: 110, | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'principalCost', | 		prop: 'principalCost', | ||||||
| 		label: '运输费用', | 		label: '运输费用', | ||||||
|     align: 'right' | 		align: 'right', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'remark', | 		prop: 'remark', | ||||||
| 		label: '备注', | 		label: '备注', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
|   } | 	}, | ||||||
| ] | ]; | ||||||
| export default { | export default { | ||||||
|   name: "DeliveryLog", | 	name: 'DeliveryLog', | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| @@ -121,34 +123,38 @@ export default { | |||||||
| 					type: 'input', | 					type: 'input', | ||||||
| 					label: '订单名', | 					label: '订单名', | ||||||
| 					param: 'orderName', | 					param: 'orderName', | ||||||
|           defaultSelect: '' | 					defaultSelect: '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'input', | 					type: 'input', | ||||||
| 					label: '发货单名称', | 					label: '发货单名称', | ||||||
|           param: 'name' | 					param: 'name', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'input', | 					type: 'input', | ||||||
| 					label: '发货单号', | 					label: '发货单号', | ||||||
|           param: 'code' | 					param: 'code', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: 'button', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
|           color: 'primary' | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
|           type: this.$auth.hasPermi('extend:delivery-log:create') ? 'separate' : '', | 					type: this.$auth.hasPermi('extend:delivery-log:create') | ||||||
|  | 						? 'separate' | ||||||
|  | 						: '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
|           type: this.$auth.hasPermi('extend:delivery-log:create') ? 'button' : '', | 					type: this.$auth.hasPermi('extend:delivery-log:create') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '新增', | 					btnName: '新增', | ||||||
| 					name: 'add', | 					name: 'add', | ||||||
| 					color: 'success', | 					color: 'success', | ||||||
|           plain: true | 					plain: true, | ||||||
|         } | 				}, | ||||||
| 			], | 			], | ||||||
| 			// 查询参数 | 			// 查询参数 | ||||||
| 			queryParams: { | 			queryParams: { | ||||||
| @@ -156,158 +162,163 @@ export default { | |||||||
| 				pageSize: 20, | 				pageSize: 20, | ||||||
| 				orderName: '', | 				orderName: '', | ||||||
| 				code: '', | 				code: '', | ||||||
|         name: '' | 				name: '', | ||||||
| 			}, | 			}, | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			list: [], | 			list: [], | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			total: 0, | 			total: 0, | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi('extend:delivery-log:loaded') | 				this.$auth.hasPermi('extend:delivery-log:loaded') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'loaded', | 							type: 'loaded', | ||||||
|               btnName: '装车' | 							btnName: '装车', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi('extend:delivery-log:detail') | 				this.$auth.hasPermi('extend:delivery-log:detail') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'detail', | 							type: 'detail', | ||||||
|               btnName: '详情' | 							btnName: '详情', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi('extend:delivery-log:update') | 				this.$auth.hasPermi('extend:delivery-log:update') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'edit', | 							type: 'edit', | ||||||
|               btnName: '编辑' | 							btnName: '编辑', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi('extend:delivery-log:delete') | 				this.$auth.hasPermi('extend:delivery-log:delete') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'delete', | 							type: 'delete', | ||||||
|               btnName: '删除' | 							btnName: '删除', | ||||||
| 					  } | 					  } | ||||||
|           : undefined | 					: undefined, | ||||||
| 			].filter((v) => v), | 			].filter((v) => v), | ||||||
| 			addOrEditTitle: '', | 			addOrEditTitle: '', | ||||||
| 			centervisible: false, | 			centervisible: false, | ||||||
| 			centervisible2: false, | 			centervisible2: false, | ||||||
|       showDetail: false | 			showDetail: false, | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		if (location.href.indexOf('?') > 0) { | 		if (location.href.indexOf('?') > 0) { | ||||||
|       let arr = location.href.split('?')[1] | 			let arr = location.href.split('?')[1]; | ||||||
|       this.formConfig[0].defaultSelect = decodeURI(arr.split('=')[1]) | 			this.formConfig[0].defaultSelect = decodeURI(arr.split('=')[1]); | ||||||
| 		} else { | 		} else { | ||||||
|       this.formConfig[0].defaultSelect = '' | 			this.formConfig[0].defaultSelect = ''; | ||||||
| 		} | 		} | ||||||
|     this.queryParams.orderName = this.formConfig[0].defaultSelect | 		this.queryParams.orderName = this.formConfig[0].defaultSelect; | ||||||
| 		this.getList(); | 		this.getList(); | ||||||
| 	}, | 	}, | ||||||
| 	components: { AddOrUpdate, LoadedPage, DeliveryLogDetail }, | 	components: { AddOrUpdate, LoadedPage, DeliveryLogDetail }, | ||||||
| 	watch: { | 	watch: { | ||||||
|     $route: 'initData' | 		$route: 'initData', | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		initData(to) { | 		initData(to) { | ||||||
| 			if (to.name === 'DeliveryLog') { | 			if (to.name === 'DeliveryLog') { | ||||||
| 				if (location.href.indexOf('?') > 0) { | 				if (location.href.indexOf('?') > 0) { | ||||||
|           let arr = location.href.split('?')[1] | 					let arr = location.href.split('?')[1]; | ||||||
|           this.formConfig[0].defaultSelect = decodeURI(arr.split('=')[1]) | 					this.formConfig[0].defaultSelect = decodeURI(arr.split('=')[1]); | ||||||
| 				} else { | 				} else { | ||||||
|           this.formConfig[0].defaultSelect = '' | 					this.formConfig[0].defaultSelect = ''; | ||||||
| 				} | 				} | ||||||
|         this.queryParams.orderName = this.formConfig[0].defaultSelect | 				this.queryParams.orderName = this.formConfig[0].defaultSelect; | ||||||
|         this.getList() | 				this.getList(); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		getList() { | 		getList() { | ||||||
|       deliveryLogPage({...this.queryParams}).then(res => { | 			deliveryLogPage({ ...this.queryParams }).then((res) => { | ||||||
|         let arr = res.data.list || [] | 				let arr = res.data.list || []; | ||||||
|         arr && arr.map(item => { | 				arr && | ||||||
|           item.principalCost = item.principalCost.toFixed(2) | 					arr.map((item) => { | ||||||
|         }) | 						item.principalCost = item.principalCost.toFixed(2); | ||||||
|         this.list = arr | 					}); | ||||||
|         this.total = res.data.total || 0 | 				this.list = arr; | ||||||
|       }) | 				this.total = res.data.total || 0; | ||||||
|  | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		buttonClick(val) { | 		buttonClick(val) { | ||||||
| 			if (val.btnName === 'search') { | 			if (val.btnName === 'search') { | ||||||
|         this.queryParams.name = val.name | 				this.queryParams.name = val.name; | ||||||
|         this.queryParams.orderName = val.orderName | 				this.queryParams.orderName = val.orderName; | ||||||
|         this.queryParams.code = val.code | 				this.queryParams.code = val.code; | ||||||
|         this.getList() | 				this.getList(); | ||||||
| 			} else { | 			} else { | ||||||
|         this.addOrEditTitle = '新增' | 				this.addOrEditTitle = '新增'; | ||||||
|         this.centervisible = true | 				this.centervisible = true; | ||||||
| 				this.$nextTick(() => { | 				this.$nextTick(() => { | ||||||
|           this.$refs.addOrUpdate.init() | 					this.$refs.addOrUpdate.init(); | ||||||
|         }) | 				}); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		handleClick(val) { | 		handleClick(val) { | ||||||
|       console.log(val) | 			console.log(val); | ||||||
| 			switch (val.type) { | 			switch (val.type) { | ||||||
| 				case 'edit': | 				case 'edit': | ||||||
|           this.addOrEditTitle = '编辑' | 					this.addOrEditTitle = '编辑'; | ||||||
|           this.centervisible = true | 					this.centervisible = true; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.addOrUpdate.init(val.data.id) | 						this.$refs.addOrUpdate.init(val.data.id); | ||||||
|           }) | 					}); | ||||||
|           break | 					break; | ||||||
| 				case 'delete': | 				case 'delete': | ||||||
|           this.handleDelete(val.data) | 					this.handleDelete(val.data); | ||||||
|           break | 					break; | ||||||
| 				case 'loaded': | 				case 'loaded': | ||||||
|           this.centervisible2 = true | 					this.centervisible2 = true; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.loadedPage.init(val.data.id, val.data.code, val.data.orderId) | 						this.$refs.loadedPage.init( | ||||||
|           }) | 							val.data.id, | ||||||
|           break | 							val.data.code, | ||||||
|  | 							val.data.orderId | ||||||
|  | 						); | ||||||
|  | 					}); | ||||||
|  | 					break; | ||||||
| 				default: | 				default: | ||||||
|           this.showDetail = true | 					this.showDetail = true; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.deliveryLogDetail.init(val.data) | 						this.$refs.deliveryLogDetail.init(val.data); | ||||||
|           }) | 					}); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		// 新增 | 		// 新增 | ||||||
| 		handleCancel() { | 		handleCancel() { | ||||||
|       this.$refs.addOrUpdate.formClear() | 			this.$refs.addOrUpdate.formClear(); | ||||||
|       this.centervisible = false | 			this.centervisible = false; | ||||||
|       this.addOrEditTitle = '' | 			this.addOrEditTitle = ''; | ||||||
| 		}, | 		}, | ||||||
| 		handleConfirm() { | 		handleConfirm() { | ||||||
|       this.$refs.addOrUpdate.submitForm() | 			this.$refs.addOrUpdate.submitForm(); | ||||||
| 		}, | 		}, | ||||||
| 		successSubmit() { | 		successSubmit() { | ||||||
|       this.handleCancel() | 			this.handleCancel(); | ||||||
|       this.getList() | 			this.getList(); | ||||||
| 		}, | 		}, | ||||||
| 		// 删除 | 		// 删除 | ||||||
| 		handleDelete(val) { | 		handleDelete(val) { | ||||||
|       this.$modal.confirm('是否确认删除发货单名为"' + val.name + '"的数据项?').then(function() { | 			this.$modal | ||||||
|           return deliveryLogDelete({ id: val.id }) | 				.confirm('是否确认删除发货单名为"' + val.name + '"的数据项?') | ||||||
|         }).then(() => { | 				.then(function () { | ||||||
|  | 					return deliveryLogDelete({ id: val.id }); | ||||||
|  | 				}) | ||||||
|  | 				.then(() => { | ||||||
| 					this.getList(); | 					this.getList(); | ||||||
|           this.$modal.msgSuccess("操作成功"); | 					this.$modal.msgSuccess('操作成功'); | ||||||
|         }).catch(() => {}); | 				}) | ||||||
|  | 				.catch(() => {}); | ||||||
| 		}, | 		}, | ||||||
| 		// 装车 | 		// 装车 | ||||||
| 		handleCancel2() { | 		handleCancel2() { | ||||||
|       this.$refs.loadedPage.formClear() | 			this.$refs.loadedPage.formClear(); | ||||||
|       this.centervisible2 = false | 			this.centervisible2 = false; | ||||||
| 		}, | 		}, | ||||||
| 		handleConfirm2() { | 		handleConfirm2() { | ||||||
|       this.$refs.loadedPage.submitForm() | 			this.$refs.loadedPage.submitForm(); | ||||||
| 		}, | 		}, | ||||||
| 		successSubmit2() { | 		successSubmit2() { | ||||||
|       this.handleCancel2() | 			this.handleCancel2(); | ||||||
|       this.getList() | 			this.getList(); | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| @@ -4,127 +4,121 @@ | |||||||
| 		<search-bar | 		<search-bar | ||||||
| 			:formConfigs="formConfig" | 			:formConfigs="formConfig" | ||||||
| 			ref="searchBarForm" | 			ref="searchBarForm" | ||||||
|       @headBtnClick="buttonClick" | 			@headBtnClick="buttonClick" /> | ||||||
|     /> |  | ||||||
| 		<!-- 列表 --> | 		<!-- 列表 --> | ||||||
| 		<base-table | 		<base-table | ||||||
| 			:page="queryParams.pageNo" | 			:page="queryParams.pageNo" | ||||||
| 			:limit="queryParams.pageSize" | 			:limit="queryParams.pageSize" | ||||||
| 			:table-props="tableProps" | 			:table-props="tableProps" | ||||||
| 			:table-data="list" | 			:table-data="list" | ||||||
|       :max-height="tableH" | 			:max-height="tableH"> | ||||||
|     > |  | ||||||
| 			<method-btn | 			<method-btn | ||||||
| 				v-if="tableBtn.length" | 				v-if="tableBtn.length" | ||||||
| 				slot="handleBtn" | 				slot="handleBtn" | ||||||
| 				:width="80" | 				:width="80" | ||||||
| 				label="操作" | 				label="操作" | ||||||
| 				:method-list="tableBtn" | 				:method-list="tableBtn" | ||||||
|         @clickBtn="handleClick" | 				@clickBtn="handleClick" /> | ||||||
|       /> |  | ||||||
| 		</base-table> | 		</base-table> | ||||||
| 		<pagination | 		<pagination | ||||||
| 			:page.sync="queryParams.pageNo" | 			:page.sync="queryParams.pageNo" | ||||||
| 			:limit.sync="queryParams.pageSize" | 			:limit.sync="queryParams.pageSize" | ||||||
| 			:total="total" | 			:total="total" | ||||||
|       @pagination="getList" | 			@pagination="getList" /> | ||||||
|     /> |  | ||||||
| 		<!-- 详情抽屉 --> | 		<!-- 详情抽屉 --> | ||||||
|     <delivery-log-det-detail ref='deliveryLogDetail'/> | 		<delivery-log-det-detail ref="deliveryLogDetail" /> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import { deliveryProgressPage } from '@/api/base/delivery' | import { deliveryProgressPage } from '@/api/base/delivery'; | ||||||
| import DeliveryLogDetDetail from './components/deliveryLogDetDetail.vue' | import DeliveryLogDetDetail from './components/deliveryLogDetDetail.vue'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'orderName', | 		prop: 'orderName', | ||||||
| 		label: '订单名', | 		label: '订单名', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'customerName', | 		prop: 'customerName', | ||||||
| 		label: '客户名称', | 		label: '客户名称', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'unit', | 		prop: 'unit', | ||||||
|     label: '单位' | 		label: '单位', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'orderNum', | 		prop: 'orderNum', | ||||||
|     label: '订单数量' | 		label: '订单数量', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'num', | 		prop: 'num', | ||||||
|     label: '发货数量' | 		label: '发货数量', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'rate', | 		prop: 'rate', | ||||||
|     label: '累计发货比例(%)' | 		label: '累计发货比例(%)', | ||||||
|   } | 	}, | ||||||
| ] | ]; | ||||||
| export default { | export default { | ||||||
|   name: "DeliveryLogDet", | 	name: 'DeliveryLogDet', | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| 				{ | 				{ | ||||||
| 					type: 'input', | 					type: 'input', | ||||||
| 					label: '订单名', | 					label: '订单名', | ||||||
|           param: 'orderName' | 					param: 'orderName', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: 'button', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
|           color: 'primary' | 					color: 'primary', | ||||||
|         } | 				}, | ||||||
| 			], | 			], | ||||||
| 			// 查询参数 | 			// 查询参数 | ||||||
| 			queryParams: { | 			queryParams: { | ||||||
| 				pageNo: 1, | 				pageNo: 1, | ||||||
| 				pageSize: 20, | 				pageSize: 20, | ||||||
|         orderName: '' | 				orderName: '', | ||||||
| 			}, | 			}, | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			list: [], | 			list: [], | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			total: 0, | 			total: 0, | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi('extend:delivery-log-det:detail') | 				this.$auth.hasPermi('extend:delivery-log-det:detail') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'detail', | 							type: 'detail', | ||||||
|               btnName: '详情' | 							btnName: '详情', | ||||||
|             } |  | ||||||
|           : undefined |  | ||||||
|       ].filter((v) => v) |  | ||||||
| 					  } | 					  } | ||||||
|  | 					: undefined, | ||||||
|  | 			].filter((v) => v), | ||||||
|  | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	components: { DeliveryLogDetDetail }, | 	components: { DeliveryLogDetDetail }, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		this.getList(); | 		this.getList(); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		getList() { | 		getList() { | ||||||
|       deliveryProgressPage({...this.queryParams}).then(res => { | 			deliveryProgressPage({ ...this.queryParams }).then((res) => { | ||||||
|         this.list = res.data.list || [] | 				this.list = res.data.list || []; | ||||||
|         this.total = res.data.total || 0 | 				this.total = res.data.total || 0; | ||||||
|       }) | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		buttonClick(val) { | 		buttonClick(val) { | ||||||
|       this.queryParams.orderName = val.orderName | 			this.queryParams.orderName = val.orderName; | ||||||
|       this.getList() | 			this.getList(); | ||||||
| 		}, | 		}, | ||||||
| 		handleClick(val) { | 		handleClick(val) { | ||||||
|       console.log(val) | 			console.log(val); | ||||||
| 			this.$nextTick(() => { | 			this.$nextTick(() => { | ||||||
|         this.$refs.deliveryLogDetail.init(val.data) | 				this.$refs.deliveryLogDetail.init(val.data); | ||||||
|       }) | 			}); | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| @@ -76,10 +76,6 @@ export default { | |||||||
| 					name: this.chartData[i].objName + this.chartData[i].objCode, | 					name: this.chartData[i].objName + this.chartData[i].objCode, | ||||||
| 					type: 'bar', | 					type: 'bar', | ||||||
| 					barMaxWidth: 20, | 					barMaxWidth: 20, | ||||||
| 					label: { |  | ||||||
| 						show: true, |  | ||||||
| 						position: 'top', |  | ||||||
| 					}, |  | ||||||
| 					data: [], | 					data: [], | ||||||
| 				}; | 				}; | ||||||
| 				legendData.push(this.chartData[i].objName + this.chartData[i].objCode); | 				legendData.push(this.chartData[i].objName + this.chartData[i].objCode); | ||||||
|   | |||||||
| @@ -1,8 +1,7 @@ | |||||||
| <template> | <template> | ||||||
| 	<div | 	<div | ||||||
| 		class="searchBarBox divHeight" | 		class="searchBarBox divHeight" | ||||||
| 		ref="searchBarRef" | 		ref="searchBarRef"> | ||||||
| 		:style="{ paddingRight: isFold ? '55px' : '0px' }"> |  | ||||||
| 		<el-form | 		<el-form | ||||||
| 			:inline="true" | 			:inline="true" | ||||||
| 			class="demo-form-inline"> | 			class="demo-form-inline"> | ||||||
| @@ -187,8 +186,11 @@ | |||||||
| 					@click="resetBtn"> | 					@click="resetBtn"> | ||||||
| 					重置 | 					重置 | ||||||
| 				</el-button> | 				</el-button> | ||||||
| 				<span class="separateStyle"></span> | 				<span | ||||||
|  | 					class="separateStyle" | ||||||
|  | 					v-hasPermi="['analysis:contrast-analysis:export']"></span> | ||||||
| 				<el-button | 				<el-button | ||||||
|  | 					v-hasPermi="['analysis:contrast-analysis:export']" | ||||||
| 					type="primary" | 					type="primary" | ||||||
| 					size="small" | 					size="small" | ||||||
| 					plain | 					plain | ||||||
| @@ -197,13 +199,6 @@ | |||||||
| 				</el-button> | 				</el-button> | ||||||
| 			</el-form-item> | 			</el-form-item> | ||||||
| 		</el-form> | 		</el-form> | ||||||
| 		<span |  | ||||||
| 			v-if="isFold" |  | ||||||
| 			class="foldClass" |  | ||||||
| 			@click="switchMode"> |  | ||||||
| 			{{ isExpand ? '收起' : '展开' }} |  | ||||||
| 			<svg-icon :icon-class="isExpand ? 'upward' : 'downward'" /> |  | ||||||
| 		</span> |  | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| @@ -214,16 +209,8 @@ import { getFactoryList } from '@/api/core/base/factory'; | |||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
| export default { | export default { | ||||||
| 	name: 'searchArea', | 	name: 'searchArea', | ||||||
| 	props: { |  | ||||||
| 		isFold: { |  | ||||||
| 			// 多行模式(默认否) |  | ||||||
| 			type: Boolean, |  | ||||||
| 			default: false, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isExpand: false, // 展开收起 |  | ||||||
| 			// 查询参数 | 			// 查询参数 | ||||||
| 			queryParams: { | 			queryParams: { | ||||||
| 				energyTypeId: null, | 				energyTypeId: null, | ||||||
| @@ -522,16 +509,6 @@ export default { | |||||||
| 			let value = new Date(newData).getTime(); | 			let value = new Date(newData).getTime(); | ||||||
| 			return value; | 			return value; | ||||||
| 		}, | 		}, | ||||||
| 		switchMode() { |  | ||||||
| 			// 展开和收起切换 |  | ||||||
| 			this.isExpand = !this.isExpand; |  | ||||||
| 			const element = this.$refs.searchBarRef; |  | ||||||
| 			if (this.isExpand) { |  | ||||||
| 				element.classList.remove('divHeight'); |  | ||||||
| 			} else { |  | ||||||
| 				element.classList.add('divHeight'); |  | ||||||
| 			} |  | ||||||
| 		}, |  | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| @@ -570,21 +547,6 @@ export default { | |||||||
| 		margin-bottom: 4px; | 		margin-bottom: 4px; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| .searchBarBox .foldClass { |  | ||||||
| 	position: absolute; |  | ||||||
| 	top: 14px; |  | ||||||
| 	right: 0; |  | ||||||
| 	cursor: pointer; |  | ||||||
| 	font-size: 12px; |  | ||||||
| 	color: #0b58ff; |  | ||||||
| } |  | ||||||
| .searchBarBox .foldClass .iconfont { |  | ||||||
| 	font-size: 14px; |  | ||||||
| } |  | ||||||
| .divHeight { |  | ||||||
| 	height: 45px; |  | ||||||
| 	overflow: hidden; |  | ||||||
| } |  | ||||||
| .separateStyle { | .separateStyle { | ||||||
| 	display: inline-block; | 	display: inline-block; | ||||||
| 	width: 1px; | 	width: 1px; | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ | |||||||
| 		id="contrastAnalysisBox"> | 		id="contrastAnalysisBox"> | ||||||
| 		<!-- 搜索工作栏 --> | 		<!-- 搜索工作栏 --> | ||||||
| 		<search-area | 		<search-area | ||||||
| 			:isFold="isFold" |  | ||||||
| 			@submit="getList" | 			@submit="getList" | ||||||
| 			@export="exportExl" /> | 			@export="exportExl" /> | ||||||
| 		<div v-show="chartData.length"> | 		<div v-show="chartData.length"> | ||||||
| @@ -38,7 +37,6 @@ export default { | |||||||
| 	mixins: [tableHeightMixin], | 	mixins: [tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isFold: false, |  | ||||||
| 			chartData: [], | 			chartData: [], | ||||||
| 			timeDim: '', | 			timeDim: '', | ||||||
| 			tableProps: [], | 			tableProps: [], | ||||||
| @@ -46,13 +44,6 @@ export default { | |||||||
| 			tableH: this.tableHeight(250) / 2, | 			tableH: this.tableHeight(250) / 2, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { |  | ||||||
| 		window.addEventListener('resize', () => { |  | ||||||
| 			this.isFold = this.searchBarWidth('contrastAnalysisBox', 1437); |  | ||||||
| 			// console.log(document.getElementById("contrastAnalysisBox").offsetWidth) |  | ||||||
| 		}); |  | ||||||
| 		this.isFold = this.searchBarWidth('contrastAnalysisBox', 1437); |  | ||||||
| 	}, |  | ||||||
| 	methods: { | 	methods: { | ||||||
| 		_setTableHeight() { | 		_setTableHeight() { | ||||||
| 			this.tableH = this.tableHeight(250) / 2; | 			this.tableH = this.tableHeight(250) / 2; | ||||||
|   | |||||||
| @@ -2,40 +2,39 @@ | |||||||
| 	<div | 	<div | ||||||
| 		id="analysischartLine" | 		id="analysischartLine" | ||||||
| 		style="width: 100%" | 		style="width: 100%" | ||||||
|     :style="{ height: chartHeight + 'px' }" | 		:style="{ height: chartHeight + 'px' }"></div> | ||||||
|   ></div> |  | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import * as echarts from 'echarts' | import * as echarts from 'echarts'; | ||||||
| import resize from '@/utils/chartMixins/resize' | import resize from '@/utils/chartMixins/resize'; | ||||||
| export default { | export default { | ||||||
|   name: "LineChart", | 	name: 'LineChart', | ||||||
| 	mixins: [resize], | 	mixins: [resize], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			chartDom: '', | 			chartDom: '', | ||||||
| 			chart: '', | 			chart: '', | ||||||
|       chartHeight: this.tableHeight(370) | 			chartHeight: this.tableHeight(370), | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	props: { | 	props: { | ||||||
| 		chartData: { | 		chartData: { | ||||||
| 			type: Array, | 			type: Array, | ||||||
| 			required: true, | 			required: true, | ||||||
| 			default: () => { | 			default: () => { | ||||||
|         return [] | 				return []; | ||||||
|       } | 			}, | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	watch: { | 	watch: { | ||||||
| 		chartData: function () { | 		chartData: function () { | ||||||
|       this.getChart() | 			this.getChart(); | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
| 		window.addEventListener('resize', () => { | 		window.addEventListener('resize', () => { | ||||||
|       this.chartHeight = this.tableHeight(370) | 			this.chartHeight = this.tableHeight(370); | ||||||
|     }) | 		}); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| 		getChart() { | 		getChart() { | ||||||
| @@ -44,95 +43,89 @@ export default { | |||||||
| 				this.chart !== '' && | 				this.chart !== '' && | ||||||
| 				this.chart !== undefined | 				this.chart !== undefined | ||||||
| 			) { | 			) { | ||||||
|         this.chart.dispose() // 页面多次刷新会出现警告,Dom已经初始化了一个实例,这是销毁实例 | 				this.chart.dispose(); // 页面多次刷新会出现警告,Dom已经初始化了一个实例,这是销毁实例 | ||||||
| 			} | 			} | ||||||
|       this.chartDom = document.getElementById('analysischartLine') | 			this.chartDom = document.getElementById('analysischartLine'); | ||||||
|       this.chart = echarts.init(this.chartDom) | 			this.chart = echarts.init(this.chartDom); | ||||||
| 			if (this.chartData.length === 0) { | 			if (this.chartData.length === 0) { | ||||||
|         return false | 				return false; | ||||||
| 			} | 			} | ||||||
|       let arr = this.chartData[0].type // [水,电,煤] | 			let arr = this.chartData[0].type; // [水,电,煤] | ||||||
|       let keys = Object.keys(this.chartData[0]) | 			let keys = Object.keys(this.chartData[0]); | ||||||
| 			let yData = [ | 			let yData = [ | ||||||
| 				{ | 				{ | ||||||
| 					name: '本期', | 					name: '本期', | ||||||
| 					type: 'bar', | 					type: 'bar', | ||||||
| 					data: [], | 					data: [], | ||||||
| 					barWidth: 20, | 					barWidth: 20, | ||||||
|           label: { |  | ||||||
|             show: true, |  | ||||||
|             position: 'top' |  | ||||||
|           } |  | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					name: '上期', | 					name: '上期', | ||||||
| 					type: 'bar', | 					type: 'bar', | ||||||
| 					data: [], | 					data: [], | ||||||
| 					barWidth: 20, | 					barWidth: 20, | ||||||
|           label: { | 				}, | ||||||
|             show: true, | 			]; | ||||||
|             position: 'top' |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       ] |  | ||||||
| 			for (let j = 0; j < arr.length; j++) { | 			for (let j = 0; j < arr.length; j++) { | ||||||
| 				for (let k = 0; k < keys.length; k++) { | 				for (let k = 0; k < keys.length; k++) { | ||||||
|           if (keys[k].indexOf(arr[j]+'_上期') > -1) { | 					if (keys[k].indexOf(arr[j] + '_上期') > -1) { | ||||||
|             yData[1].data.push(this.chartData[0][keys[k]]) | 						yData[1].data.push(this.chartData[0][keys[k]]); | ||||||
| 					} | 					} | ||||||
|           if (keys[k].indexOf(arr[j]+'_能源消耗') > -1) { | 					if (keys[k].indexOf(arr[j] + '_能源消耗') > -1) { | ||||||
|             yData[0].data.push(this.chartData[0][keys[k]]) | 						yData[0].data.push(this.chartData[0][keys[k]]); | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			var option = { | 			var option = { | ||||||
|         color:['#288AFF','#8EF0AB'], | 				color: ['#288AFF', '#8EF0AB'], | ||||||
| 				tooltip: { | 				tooltip: { | ||||||
| 					trigger: 'axis', | 					trigger: 'axis', | ||||||
| 					axisPointer: { | 					axisPointer: { | ||||||
|             type: 'shadow' | 						type: 'shadow', | ||||||
| 					}, | 					}, | ||||||
|           formatter: function(params) { | 					formatter: function (params) { | ||||||
| 						return ( | 						return ( | ||||||
| 							params[0].axisValue + | 							params[0].axisValue + | ||||||
| 							`<br>` + | 							`<br>` + | ||||||
|               params.map((item) => { | 							params | ||||||
|                 let str = `<span style="display:inline-block;width:8px;height:8px;margin: 0 8px 0 -3px;border-radius:2px;background-color:${item.color};"></span>` | 								.map((item) => { | ||||||
|                 let seriesNameStr = `<span style="display:inline-block;">${item.seriesName}</span>` | 									let str = `<span style="display:inline-block;width:8px;height:8px;margin: 0 8px 0 -3px;border-radius:2px;background-color:${item.color};"></span>`; | ||||||
| 						let value = item.value ? item.value : '-' | 									let seriesNameStr = `<span style="display:inline-block;">${item.seriesName}</span>`; | ||||||
| 						let valueStr = `<span style="display:inline-block;margin-left:10px;color:rgba(0,0,0,0.45);">${value}</span>` | 									let value = item.value ? item.value : '-'; | ||||||
|  | 									let valueStr = `<span style="display:inline-block;margin-left:10px;color:rgba(0,0,0,0.45);">${value}</span>`; | ||||||
| 									return `<span style="display:flex; justify-content:space-between; margin-bottom: 2px"> | 									return `<span style="display:flex; justify-content:space-between; margin-bottom: 2px"> | ||||||
| 									<span>${str}${seriesNameStr}</span> | 									<span>${str}${seriesNameStr}</span> | ||||||
| 									<span>${valueStr}</span> | 									<span>${valueStr}</span> | ||||||
| 								</span>` | 								</span>`; | ||||||
|               }).join(``) | 								}) | ||||||
|             ) | 								.join(``) | ||||||
|           } | 						); | ||||||
|  | 					}, | ||||||
| 				}, | 				}, | ||||||
| 				legend: { | 				legend: { | ||||||
| 					right: '1%', | 					right: '1%', | ||||||
| 					icon: 'rect', | 					icon: 'rect', | ||||||
| 					itemHeight: 8, | 					itemHeight: 8, | ||||||
|           itemWidth: 8 | 					itemWidth: 8, | ||||||
| 				}, | 				}, | ||||||
| 				grid: { | 				grid: { | ||||||
| 					left: '1%', | 					left: '1%', | ||||||
| 					right: '1%', | 					right: '1%', | ||||||
| 					bottom: '3%', | 					bottom: '3%', | ||||||
|           containLabel: true | 					containLabel: true, | ||||||
| 				}, | 				}, | ||||||
| 				yAxis: { | 				yAxis: { | ||||||
| 					type: 'value', | 					type: 'value', | ||||||
|           boundaryGap: [0, 0.01] | 					boundaryGap: [0, 0.01], | ||||||
| 				}, | 				}, | ||||||
| 				xAxis: { | 				xAxis: { | ||||||
| 					type: 'category', | 					type: 'category', | ||||||
|           data: arr | 					data: arr, | ||||||
| 				}, | 				}, | ||||||
|         series: yData | 				series: yData, | ||||||
|       } | 			}; | ||||||
| 			option && this.chart.setOption(option); | 			option && this.chart.setOption(option); | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| @@ -80,10 +80,13 @@ | |||||||
| 			</el-button> | 			</el-button> | ||||||
| 		</el-form-item> | 		</el-form-item> | ||||||
| 		<el-form-item> | 		<el-form-item> | ||||||
| 			<span class="separateStyle"></span> | 			<span | ||||||
|  | 				class="separateStyle" | ||||||
|  | 				v-hasPermi="['analysis:qoq-analysis:export']"></span> | ||||||
| 		</el-form-item> | 		</el-form-item> | ||||||
| 		<el-form-item> | 		<el-form-item> | ||||||
| 			<el-button | 			<el-button | ||||||
|  | 				v-hasPermi="['analysis:qoq-analysis:export']" | ||||||
| 				type="primary" | 				type="primary" | ||||||
| 				size="small" | 				size="small" | ||||||
| 				@click="exportData" | 				@click="exportData" | ||||||
|   | |||||||
| @@ -68,9 +68,9 @@ export default { | |||||||
|  |  | ||||||
| 			var option = { | 			var option = { | ||||||
| 				color: ['#288AFF'], | 				color: ['#288AFF'], | ||||||
| 				// tooltip: { | 				tooltip: { | ||||||
| 				//   trigger: 'axis' | 					trigger: 'axis', | ||||||
| 				// }, | 				}, | ||||||
| 				grid: { | 				grid: { | ||||||
| 					left: '4%', | 					left: '4%', | ||||||
| 					right: '1%', | 					right: '1%', | ||||||
|   | |||||||
| @@ -1,8 +1,7 @@ | |||||||
| <template> | <template> | ||||||
| 	<div | 	<div | ||||||
| 		class="searchBarBox divHeight" | 		class="searchBarBox" | ||||||
| 		ref="searchBarRef" | 		ref="searchBarRef"> | ||||||
| 		:style="{ paddingRight: isFold ? '55px' : '0px' }"> |  | ||||||
| 		<el-form | 		<el-form | ||||||
| 			:inline="true" | 			:inline="true" | ||||||
| 			class="demo-form-inline"> | 			class="demo-form-inline"> | ||||||
| @@ -170,8 +169,11 @@ | |||||||
| 					@click="resetBtn"> | 					@click="resetBtn"> | ||||||
| 					重置 | 					重置 | ||||||
| 				</el-button> | 				</el-button> | ||||||
| 				<span class="separateStyle"></span> | 				<span | ||||||
|  | 					class="separateStyle" | ||||||
|  | 					v-hasPermi="['analysis:energy-analysis:query']"></span> | ||||||
| 				<el-button | 				<el-button | ||||||
|  | 					v-hasPermi="['analysis:energy-analysis:query']" | ||||||
| 					type="primary" | 					type="primary" | ||||||
| 					size="small" | 					size="small" | ||||||
| 					plain | 					plain | ||||||
| @@ -180,13 +182,6 @@ | |||||||
| 				</el-button> | 				</el-button> | ||||||
| 			</el-form-item> | 			</el-form-item> | ||||||
| 		</el-form> | 		</el-form> | ||||||
| 		<span |  | ||||||
| 			v-if="isFold" |  | ||||||
| 			class="foldClass" |  | ||||||
| 			@click="switchMode"> |  | ||||||
| 			{{ isExpand ? '收起' : '展开' }} |  | ||||||
| 			<svg-icon :icon-class="isExpand ? 'upward' : 'downward'" /> |  | ||||||
| 		</span> |  | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| @@ -195,16 +190,8 @@ import { getEnergyTypeListAll } from '@/api/base/energyType'; | |||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
| export default { | export default { | ||||||
| 	name: 'searchArea', | 	name: 'searchArea', | ||||||
| 	props: { |  | ||||||
| 		isFold: { |  | ||||||
| 			// 多行模式(默认否) |  | ||||||
| 			type: Boolean, |  | ||||||
| 			default: false, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isExpand: false, // 展开收起 |  | ||||||
| 			// 查询参数 | 			// 查询参数 | ||||||
| 			queryParams: { | 			queryParams: { | ||||||
| 				energyTypeId: null, | 				energyTypeId: null, | ||||||
| @@ -506,16 +493,6 @@ export default { | |||||||
| 			let value = new Date(newData).getTime(); | 			let value = new Date(newData).getTime(); | ||||||
| 			return value; | 			return value; | ||||||
| 		}, | 		}, | ||||||
| 		switchMode() { |  | ||||||
| 			// 展开和收起切换 |  | ||||||
| 			this.isExpand = !this.isExpand; |  | ||||||
| 			const element = this.$refs.searchBarRef; |  | ||||||
| 			if (this.isExpand) { |  | ||||||
| 				element.classList.remove('divHeight'); |  | ||||||
| 			} else { |  | ||||||
| 				element.classList.add('divHeight'); |  | ||||||
| 			} |  | ||||||
| 		}, |  | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| @@ -554,21 +531,6 @@ export default { | |||||||
| 		margin-bottom: 4px; | 		margin-bottom: 4px; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| .searchBarBox .foldClass { |  | ||||||
| 	position: absolute; |  | ||||||
| 	top: 14px; |  | ||||||
| 	right: 0; |  | ||||||
| 	cursor: pointer; |  | ||||||
| 	font-size: 12px; |  | ||||||
| 	color: #0b58ff; |  | ||||||
| } |  | ||||||
| .searchBarBox .foldClass .iconfont { |  | ||||||
| 	font-size: 14px; |  | ||||||
| } |  | ||||||
| .divHeight { |  | ||||||
| 	height: 45px; |  | ||||||
| 	overflow: hidden; |  | ||||||
| } |  | ||||||
| .separateStyle { | .separateStyle { | ||||||
| 	display: inline-block; | 	display: inline-block; | ||||||
| 	width: 1px; | 	width: 1px; | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ | |||||||
| 		id="trendAnalysisBox"> | 		id="trendAnalysisBox"> | ||||||
| 		<!-- 搜索工作栏 --> | 		<!-- 搜索工作栏 --> | ||||||
| 		<search-area | 		<search-area | ||||||
| 			:isFold="isFold" |  | ||||||
| 			@submit="getList" | 			@submit="getList" | ||||||
| 			@export="exportExl" /> | 			@export="exportExl" /> | ||||||
| 		<div v-show="chartData.length"> | 		<div v-show="chartData.length"> | ||||||
| @@ -33,20 +32,12 @@ export default { | |||||||
| 	components: { SearchArea, LineChart }, | 	components: { SearchArea, LineChart }, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			isFold: false, |  | ||||||
| 			chartData: [], | 			chartData: [], | ||||||
| 			timeDim: '', | 			timeDim: '', | ||||||
| 			tableProps: [], | 			tableProps: [], | ||||||
| 			list: [], | 			list: [], | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { |  | ||||||
| 		window.addEventListener('resize', () => { |  | ||||||
| 			this.tableH = this.tableHeight(260); |  | ||||||
| 			this.isFold = this.searchBarWidth('trendAnalysisBox', 1480); |  | ||||||
| 		}); |  | ||||||
| 		this.isFold = this.searchBarWidth('trendAnalysisBox', 1480); |  | ||||||
| 	}, |  | ||||||
| 	methods: { | 	methods: { | ||||||
| 		getList(params) { | 		getList(params) { | ||||||
| 			this.timeDim = params.timeDim; | 			this.timeDim = params.timeDim; | ||||||
| @@ -66,8 +57,14 @@ export default { | |||||||
| 			let listObj = { useNum: '消耗量' }; // 数据 | 			let listObj = { useNum: '消耗量' }; // 数据 | ||||||
| 			for (let i = 0; i < arr.length; i++) { | 			for (let i = 0; i < arr.length; i++) { | ||||||
| 				let obj = {}; | 				let obj = {}; | ||||||
| 				obj.prop = arr[i].time; | 				if (this.timeDim === '3') { | ||||||
|  | 					let fName = arr[i].time.slice(0, 4); | ||||||
|  | 					let lName = arr[i].time.slice(4, 6); | ||||||
|  | 					obj.label = fName + ' 第 ' + lName + ' 周'; | ||||||
|  | 				} else { | ||||||
| 					obj.label = arr[i].time; | 					obj.label = arr[i].time; | ||||||
|  | 				} | ||||||
|  | 				obj.prop = arr[i].time; | ||||||
| 				obj.minWidth = 100; | 				obj.minWidth = 100; | ||||||
| 				tempX.push(obj); | 				tempX.push(obj); | ||||||
| 				listObj[arr[i].time] = arr[i].useNum || null; | 				listObj[arr[i].time] = arr[i].useNum || null; | ||||||
| @@ -77,34 +74,17 @@ export default { | |||||||
| 		}, | 		}, | ||||||
| 		// 导出excel | 		// 导出excel | ||||||
| 		exportExl(params) { | 		exportExl(params) { | ||||||
| 			exportTrend({ ...params }).then((res) => { | 			exportTrend({ ...params }) | ||||||
| 				// let fileName = ''; | 				.then((response) => { | ||||||
| 				// const contentDisposition = res.headers['content-disposition']; | 					this.$download.excel(response, '走势分析.xls'); | ||||||
| 				// if (contentDisposition) { |  | ||||||
| 				// 	fileName = decodeURIComponent( |  | ||||||
| 				// 		contentDisposition.slice( |  | ||||||
| 				// 			contentDisposition.indexOf('filename=') + 9 |  | ||||||
| 				// 		) |  | ||||||
| 				// 	); |  | ||||||
| 				// } |  | ||||||
| 				const blob = new Blob([res.data]); |  | ||||||
| 				const reader = new FileReader(); |  | ||||||
| 				reader.readAsDataURL(blob); |  | ||||||
| 				reader.onload = (e) => { |  | ||||||
| 					const a = document.createElement('a'); |  | ||||||
| 					a.download = '走势分析'; |  | ||||||
| 					a.href = e.target.result; |  | ||||||
| 					document.body.appendChild(a); |  | ||||||
| 					a.click(); |  | ||||||
| 					document.body.removeChild(a); |  | ||||||
| 					this.$message.success('导出成功'); | 					this.$message.success('导出成功'); | ||||||
| 				}; | 				}) | ||||||
| 			}); | 				.catch(() => {}); | ||||||
| 		}, | 		}, | ||||||
| 	}, | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| <style lang='scss'> | <style lang="scss"> | ||||||
| .trendAnalysisBox { | .trendAnalysisBox { | ||||||
| 	.trend-out-table { | 	.trend-out-table { | ||||||
| 		margin-bottom: 15px; | 		margin-bottom: 15px; | ||||||
|   | |||||||
| @@ -69,10 +69,13 @@ | |||||||
| 			</el-button> | 			</el-button> | ||||||
| 		</el-form-item> | 		</el-form-item> | ||||||
| 		<el-form-item> | 		<el-form-item> | ||||||
| 			<span class="separateStyle"></span> | 			<span | ||||||
|  | 				class="separateStyle" | ||||||
|  | 				v-hasPermi="['analysis:yoy-analysis:export']"></span> | ||||||
| 		</el-form-item> | 		</el-form-item> | ||||||
| 		<el-form-item> | 		<el-form-item> | ||||||
| 			<el-button | 			<el-button | ||||||
|  | 				v-hasPermi="['analysis:yoy-analysis:export']" | ||||||
| 				type="primary" | 				type="primary" | ||||||
| 				size="small" | 				size="small" | ||||||
| 				@click="exportData" | 				@click="exportData" | ||||||
|   | |||||||
| @@ -1,63 +1,84 @@ | |||||||
| <template> | <template> | ||||||
| 	<div class="app-container"> | 	<div class="app-container"> | ||||||
|  |  | ||||||
| 		<!-- 搜索工作栏 --> | 		<!-- 搜索工作栏 --> | ||||||
|     <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | 		<search-bar | ||||||
|  | 			:formConfigs="formConfig" | ||||||
|  | 			ref="searchBarForm" | ||||||
|  | 			@headBtnClick="buttonClick" /> | ||||||
| 		<!-- 列表 --> | 		<!-- 列表 --> | ||||||
|     <base-table :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list" | 		<base-table | ||||||
|  | 			:page="queryParams.pageNo" | ||||||
|  | 			:limit="queryParams.pageSize" | ||||||
|  | 			:table-props="tableProps" | ||||||
|  | 			:table-data="list" | ||||||
| 			:max-height="tableH"> | 			:max-height="tableH"> | ||||||
|       <method-btn v-if="tableBtn.length" slot="handleBtn" :width="80" label="操作" :method-list="tableBtn" | 			<method-btn | ||||||
|  | 				v-if="tableBtn.length" | ||||||
|  | 				slot="handleBtn" | ||||||
|  | 				:width="80" | ||||||
|  | 				label="操作" | ||||||
|  | 				:method-list="tableBtn" | ||||||
| 				@clickBtn="handleClick" /> | 				@clickBtn="handleClick" /> | ||||||
| 		</base-table> | 		</base-table> | ||||||
|     <pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total" | 		<pagination | ||||||
|  | 			:page.sync="queryParams.pageNo" | ||||||
|  | 			:limit.sync="queryParams.pageSize" | ||||||
|  | 			:total="total" | ||||||
| 			@pagination="getList" /> | 			@pagination="getList" /> | ||||||
| 		<!-- 新增 --> | 		<!-- 新增 --> | ||||||
|     <base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="centervisible" @cancel="handleCancel" | 		<base-dialog | ||||||
|       @confirm="handleConfirm" :before-close="handleCancel"> | 			:dialogTitle="addOrEditTitle" | ||||||
|       <energy-plc-add ref="energyPlc" @successSubmit="successSubmit" /> | 			:dialogVisible="centervisible" | ||||||
|  | 			@cancel="handleCancel" | ||||||
|  | 			@confirm="handleConfirm" | ||||||
|  | 			:before-close="handleCancel"> | ||||||
|  | 			<energy-plc-add | ||||||
|  | 				ref="energyPlc" | ||||||
|  | 				@successSubmit="successSubmit" /> | ||||||
| 		</base-dialog> | 		</base-dialog> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import { getEnergyPlcPage, deleteEnergyPlc } from "@/api/base/energyPlc"; | import { getEnergyPlcPage, deleteEnergyPlc } from '@/api/base/energyPlc'; | ||||||
| // import { publicFormatter } from '@/utils/dict' | import EnergyPlcAdd from './components/energyPlcAdd.vue'; | ||||||
| import EnergyPlcAdd from './components/energyPlcAdd.vue' | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'plcTableName', | 		prop: 'plcTableName', | ||||||
| 		label: '关联表名', | 		label: '关联表名', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'code', | 		prop: 'code', | ||||||
| 		label: '关联表编码', | 		label: '关联表编码', | ||||||
| 		minWidth: 150, | 		minWidth: 150, | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'name', | 		prop: 'name', | ||||||
| 		label: '标识名', | 		label: '标识名', | ||||||
| 		minWidth: 150, | 		minWidth: 150, | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'enName', | 		prop: 'enName', | ||||||
|     label: '英文标识名' | 		label: '英文标识名', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'collection', | 		prop: 'collection', | ||||||
|     label: '是否采集' | 		label: '是否采集', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'description', | 		prop: 'description', | ||||||
| 		label: '描述', | 		label: '描述', | ||||||
|     showOverflowtooltip: true | 		showOverflowtooltip: true, | ||||||
|   } | 	}, | ||||||
| ] | ]; | ||||||
| export default { | export default { | ||||||
|   name: "EnergyPlc", | 	name: 'EnergyPlc', | ||||||
| 	components: { EnergyPlcAdd }, | 	components: { EnergyPlcAdd }, | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| @@ -65,65 +86,61 @@ export default { | |||||||
| 					type: 'input', | 					type: 'input', | ||||||
| 					label: '标识名', | 					label: '标识名', | ||||||
| 					placeholder: '标识名', | 					placeholder: '标识名', | ||||||
|           param: 'name' | 					param: 'name', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
|           type: 'button', | 					type: this.$auth.hasPermi('base:energy-plc:query') ? 'button' : '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
|           color: 'primary' | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
|           type: 'separate' | 					type: this.$auth.hasPermi('base:energy-plc:create') ? 'separate' : '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:energy-plc:create') ? 'button' : '', | 					type: this.$auth.hasPermi('base:energy-plc:create') ? 'button' : '', | ||||||
| 					btnName: '新增', | 					btnName: '新增', | ||||||
| 					name: 'add', | 					name: 'add', | ||||||
| 					color: 'success', | 					color: 'success', | ||||||
|           plain: true | 					plain: true, | ||||||
|         } | 				}, | ||||||
| 			], | 			], | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi('base:energy-plc:update') | 				this.$auth.hasPermi('base:energy-plc:update') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'edit', | 							type: 'edit', | ||||||
|             btnName: '编辑' | 							btnName: '编辑', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi('base:energy-plc:delete') | 				this.$auth.hasPermi('base:energy-plc:delete') | ||||||
| 					? { | 					? { | ||||||
| 							type: 'delete', | 							type: 'delete', | ||||||
|             btnName: '删除' | 							btnName: '删除', | ||||||
| 					  } | 					  } | ||||||
|           : undefined | 					: undefined, | ||||||
| 			].filter((v) => v), | 			].filter((v) => v), | ||||||
|       tableH: this.tableHeight(260), |  | ||||||
| 			collectionList: [ | 			collectionList: [ | ||||||
| 				{ value: 0, label: '否' }, | 				{ value: 0, label: '否' }, | ||||||
|         { value: 1, label: '是' } | 				{ value: 1, label: '是' }, | ||||||
| 			], | 			], | ||||||
| 			// 总条数 | 			// 总条数 | ||||||
| 			total: 0, | 			total: 0, | ||||||
| 			// 班次基础信息列表 | 			// 班次基础信息列表 | ||||||
| 			list: [], | 			list: [], | ||||||
| 			// 弹出层标题 | 			// 弹出层标题 | ||||||
|       addOrEditTitle: "", | 			addOrEditTitle: '', | ||||||
| 			// 是否显示弹出层 | 			// 是否显示弹出层 | ||||||
| 			centervisible: false, | 			centervisible: false, | ||||||
| 			// 查询参数 | 			// 查询参数 | ||||||
| 			queryParams: { | 			queryParams: { | ||||||
| 				pageNo: 1, | 				pageNo: 1, | ||||||
| 				pageSize: 20, | 				pageSize: 20, | ||||||
|         name: null | 				name: null, | ||||||
|       } | 			}, | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
|     window.addEventListener('resize', () => { |  | ||||||
|       this.tableH = this.tableHeight(260) |  | ||||||
|     }) |  | ||||||
| 		this.getList(); | 		this.getList(); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
| @@ -131,67 +148,72 @@ export default { | |||||||
| 			switch (val.btnName) { | 			switch (val.btnName) { | ||||||
| 				case 'search': | 				case 'search': | ||||||
| 					this.queryParams.pageNo = 1; | 					this.queryParams.pageNo = 1; | ||||||
|           this.queryParams.name = val.name | 					this.queryParams.name = val.name; | ||||||
|           this.getList() | 					this.getList(); | ||||||
|           break | 					break; | ||||||
| 				default: | 				default: | ||||||
|           this.addOrEditTitle = '新增' | 					this.addOrEditTitle = '新增'; | ||||||
|           this.centervisible = true | 					this.centervisible = true; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.energyPlc.init() | 						this.$refs.energyPlc.init(); | ||||||
|           }) | 					}); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		/** 查询列表 */ | 		/** 查询列表 */ | ||||||
| 		getList() { | 		getList() { | ||||||
|       getEnergyPlcPage(this.queryParams).then(response => { | 			getEnergyPlcPage(this.queryParams).then((response) => { | ||||||
| 				let arr = response.data.list || []; | 				let arr = response.data.list || []; | ||||||
|         arr && arr.map(item => { | 				arr && | ||||||
|           this.collectionList.map(i => { | 					arr.map((item) => { | ||||||
|  | 						this.collectionList.map((i) => { | ||||||
| 							if (item.collection === i.value) { | 							if (item.collection === i.value) { | ||||||
|               item.collection = i.label | 								item.collection = i.label; | ||||||
| 							} | 							} | ||||||
|           }) | 						}); | ||||||
|         }) | 					}); | ||||||
|         this.list = arr | 				this.list = arr; | ||||||
| 				this.total = response.data.total; | 				this.total = response.data.total; | ||||||
| 			}); | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		handleClick(val) { | 		handleClick(val) { | ||||||
| 			switch (val.type) { | 			switch (val.type) { | ||||||
| 				case 'edit': | 				case 'edit': | ||||||
|           this.addOrEditTitle = '编辑' | 					this.addOrEditTitle = '编辑'; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.energyPlc.init(val.data.id) | 						this.$refs.energyPlc.init(val.data.id); | ||||||
|           }) | 					}); | ||||||
|           this.centervisible = true | 					this.centervisible = true; | ||||||
|           break | 					break; | ||||||
| 				default: | 				default: | ||||||
|           this.handleDelete(val.data) | 					this.handleDelete(val.data); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		handleCancel() { | 		handleCancel() { | ||||||
|       this.$refs.energyPlc.formClear() | 			this.$refs.energyPlc.formClear(); | ||||||
|       this.centervisible = false | 			this.centervisible = false; | ||||||
|       this.addOrEditTitle = '' | 			this.addOrEditTitle = ''; | ||||||
| 		}, | 		}, | ||||||
| 		handleConfirm() { | 		handleConfirm() { | ||||||
|       this.$refs.energyPlc.submitForm() | 			this.$refs.energyPlc.submitForm(); | ||||||
| 		}, | 		}, | ||||||
| 		successSubmit() { | 		successSubmit() { | ||||||
|       this.handleCancel() | 			this.handleCancel(); | ||||||
|       this.getList() | 			this.getList(); | ||||||
| 		}, | 		}, | ||||||
| 		/** 删除按钮操作 */ | 		/** 删除按钮操作 */ | ||||||
| 		handleDelete(row) { | 		handleDelete(row) { | ||||||
|       this.$modal.confirm('是否确认删除关联表名为"' + row.name + '"的数据项?').then(function () { | 			this.$modal | ||||||
|  | 				.confirm('是否确认删除关联表名为"' + row.name + '"的数据项?') | ||||||
|  | 				.then(function () { | ||||||
| 					return deleteEnergyPlc(row.id); | 					return deleteEnergyPlc(row.id); | ||||||
|       }).then(() => { | 				}) | ||||||
|  | 				.then(() => { | ||||||
| 					this.queryParams.pageNo = 1; | 					this.queryParams.pageNo = 1; | ||||||
| 					this.getList(); | 					this.getList(); | ||||||
|         this.$modal.msgSuccess("删除成功"); | 					this.$modal.msgSuccess('删除成功'); | ||||||
|       }).catch(() => { }); | 				}) | ||||||
|     } | 				.catch(() => {}); | ||||||
|   } | 		}, | ||||||
|  | 	}, | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|   | |||||||
| @@ -116,7 +116,7 @@ export default { | |||||||
| 		}, | 		}, | ||||||
| 		selectObj(val) { | 		selectObj(val) { | ||||||
| 			this.form.bindObjectId = val[val.length - 1]; | 			this.form.bindObjectId = val[val.length - 1]; | ||||||
| 			this.form.bindObjectType = val.length - 1; | 			this.form.bindObjectType = val.length; | ||||||
| 		}, | 		}, | ||||||
| 		submitForm() { | 		submitForm() { | ||||||
| 			this.$refs['form'].validate((valid) => { | 			this.$refs['form'].validate((valid) => { | ||||||
|   | |||||||
| @@ -1,16 +1,37 @@ | |||||||
| <template> | <template> | ||||||
| 	<div> | 	<div> | ||||||
|     <el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD' :show-close='false'> | 		<el-drawer | ||||||
|  | 			:title="drawerTitle" | ||||||
|  | 			:visible.sync="visible" | ||||||
|  | 			size="70%" | ||||||
|  | 			@close="closeD" | ||||||
|  | 			:show-close="false"> | ||||||
| 			<div class="box"> | 			<div class="box"> | ||||||
| 				<el-form :inline="true"> | 				<el-form :inline="true"> | ||||||
| 					<el-form-item label="关联表名"> | 					<el-form-item label="关联表名"> | ||||||
|             <el-input v-model="plcTableName" size='small' readonly></el-input> | 						<el-input | ||||||
|  | 							v-model="plcTableName" | ||||||
|  | 							size="small" | ||||||
|  | 							readonly | ||||||
|  | 							style="width: 250px"></el-input> | ||||||
| 					</el-form-item> | 					</el-form-item> | ||||||
| 					<el-form-item label="对象"> | 					<el-form-item label="对象"> | ||||||
|             <el-input v-model="objName" size='small' readonly></el-input> | 						<el-input | ||||||
|  | 							v-model="objName" | ||||||
|  | 							size="small" | ||||||
|  | 							readonly | ||||||
|  | 							style="width: 250px"></el-input> | ||||||
| 					</el-form-item> | 					</el-form-item> | ||||||
|           <el-form-item v-if="showBtn"> | 					<el-form-item | ||||||
|             <el-button type="success" size='small' plain @click="addNew">新增</el-button> | 						v-if="showBtn" | ||||||
|  | 						v-hasPermi="['base:energy-plc-param:create']"> | ||||||
|  | 						<el-button | ||||||
|  | 							type="success" | ||||||
|  | 							size="small" | ||||||
|  | 							plain | ||||||
|  | 							@click="addNew"> | ||||||
|  | 							新增 | ||||||
|  | 						</el-button> | ||||||
| 					</el-form-item> | 					</el-form-item> | ||||||
| 				</el-form> | 				</el-form> | ||||||
| 				<base-table | 				<base-table | ||||||
| @@ -18,23 +39,20 @@ | |||||||
| 					:limit="queryParams.pageSize" | 					:limit="queryParams.pageSize" | ||||||
| 					:table-props="tableProps" | 					:table-props="tableProps" | ||||||
| 					:table-data="tableData" | 					:table-data="tableData" | ||||||
|           :max-height="tableH" | 					:max-height="tableH"> | ||||||
|         > |  | ||||||
| 					<method-btn | 					<method-btn | ||||||
| 						v-if="tableBtn.length" | 						v-if="tableBtn.length" | ||||||
| 						slot="handleBtn" | 						slot="handleBtn" | ||||||
| 						:width="100" | 						:width="100" | ||||||
| 						label="操作" | 						label="操作" | ||||||
| 						:method-list="tableBtn" | 						:method-list="tableBtn" | ||||||
|             @clickBtn="handleClick" | 						@clickBtn="handleClick" /> | ||||||
|           /> |  | ||||||
| 				</base-table> | 				</base-table> | ||||||
| 				<pagination | 				<pagination | ||||||
| 					:page.sync="queryParams.pageNo" | 					:page.sync="queryParams.pageNo" | ||||||
| 					:limit.sync="queryParams.pageSize" | 					:limit.sync="queryParams.pageSize" | ||||||
| 					:total="total" | 					:total="total" | ||||||
|           @pagination="getList" | 					@pagination="getList" /> | ||||||
|         /> |  | ||||||
| 			</div> | 			</div> | ||||||
| 		</el-drawer> | 		</el-drawer> | ||||||
| 		<!-- 新增 --> | 		<!-- 新增 --> | ||||||
| @@ -43,43 +61,48 @@ | |||||||
| 			:dialogVisible="centervisible" | 			:dialogVisible="centervisible" | ||||||
| 			@cancel="handleCancel" | 			@cancel="handleCancel" | ||||||
| 			@confirm="handleConfirm" | 			@confirm="handleConfirm" | ||||||
|       :before-close="handleCancel" | 			:before-close="handleCancel"> | ||||||
|     > | 			<energy-plc-param-add | ||||||
|       <energy-plc-param-add ref="energyPlcParam" @successSubmit="successSubmit" /> | 				ref="energyPlcParam" | ||||||
|  | 				@successSubmit="successSubmit" /> | ||||||
| 		</base-dialog> | 		</base-dialog> | ||||||
| 	</div> | 	</div> | ||||||
| </template> | </template> | ||||||
| <script> | <script> | ||||||
| import { getEnergyPlcParamPage, deleteEnergyPlcParam } from '@/api/base/energyPlcParam' | import { | ||||||
| import EnergyPlcParamAdd from './energyPlcParamAdd' | 	getEnergyPlcParamPage, | ||||||
| import { publicFormatter } from '@/utils/dict' | 	deleteEnergyPlcParam, | ||||||
|  | } from '@/api/base/energyPlcParam'; | ||||||
|  | import EnergyPlcParamAdd from './energyPlcParamAdd'; | ||||||
|  | import { publicFormatter } from '@/utils/dict'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'typeId', | 		prop: 'typeId', | ||||||
|     label: '能源类型' | 		label: '能源类型', | ||||||
|  | 		filter: publicFormatter('energy_type'), | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'plcParamName', | 		prop: 'plcParamName', | ||||||
|     label: '参数列名' | 		label: '参数列名', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'name', | 		prop: 'name', | ||||||
|     label: '参数名称' | 		label: '参数名称', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'unit', | 		prop: 'unit', | ||||||
| 		label: '单位', | 		label: '单位', | ||||||
|     filter: publicFormatter('energy_unit') | 		filter: publicFormatter('unit_dict'), | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'collection', | 		prop: 'collection', | ||||||
|     label: '是否采集' | 		label: '是否采集', | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'description', | 		prop: 'description', | ||||||
|     label: '描述' | 		label: '描述', | ||||||
|   } | 	}, | ||||||
| ] | ]; | ||||||
| export default { | export default { | ||||||
| 	name: 'EnergyPlcParam', | 	name: 'EnergyPlcParam', | ||||||
| 	props: { | 	props: { | ||||||
| @@ -87,9 +110,9 @@ export default { | |||||||
| 			type: Array, | 			type: Array, | ||||||
| 			required: true, | 			required: true, | ||||||
| 			default: () => { | 			default: () => { | ||||||
|         return [] | 				return []; | ||||||
|       } | 			}, | ||||||
|     } | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| @@ -103,121 +126,136 @@ export default { | |||||||
| 			queryParams: { | 			queryParams: { | ||||||
| 				pageNo: 1, | 				pageNo: 1, | ||||||
| 				pageSize: 30, | 				pageSize: 30, | ||||||
|         connectId: null | 				connectId: null, | ||||||
| 			}, | 			}, | ||||||
| 			plcTableName: '', | 			plcTableName: '', | ||||||
| 			objName: '', | 			objName: '', | ||||||
| 			// 弹出层标题 | 			// 弹出层标题 | ||||||
|       addOrEditTitle: "", | 			addOrEditTitle: '', | ||||||
| 			// 是否显示弹出层 | 			// 是否显示弹出层 | ||||||
| 			centervisible: false, | 			centervisible: false, | ||||||
| 			collectionList: [ | 			collectionList: [ | ||||||
|         {value: 0,label: '否'}, | 				{ value: 0, label: '否' }, | ||||||
|         {value: 1,label: '是'} | 				{ value: 1, label: '是' }, | ||||||
| 			], | 			], | ||||||
|       showBtn: true | 			showBtn: true, | ||||||
|     } | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	components: { EnergyPlcParamAdd }, | 	components: { EnergyPlcParamAdd }, | ||||||
| 	created() { | 	created() { | ||||||
| 		window.addEventListener('resize', () => { | 		window.addEventListener('resize', () => { | ||||||
|       this.tableH = this.tableHeight(115) | 			this.tableH = this.tableHeight(115); | ||||||
|     }) | 		}); | ||||||
| 	}, | 	}, | ||||||
| 	methods: { | 	methods: { | ||||||
|     init(data,title) { | 		init(data, title) { | ||||||
|       this.visible = true | 			this.visible = true; | ||||||
|       this.queryParams.connectId = data.id | 			this.queryParams.connectId = data.id; | ||||||
|       this.plcTableName = data.plcTableName | 			this.plcTableName = data.plcTableName; | ||||||
|       this.objName = data.objName | 			this.objName = data.objName; | ||||||
|       this.getList() | 			this.getList(); | ||||||
| 			if (title === 'detail') { | 			if (title === 'detail') { | ||||||
|         this.drawerTitle = '查看参数' | 				this.drawerTitle = '查看参数'; | ||||||
|         this.showBtn = false | 				this.showBtn = false; | ||||||
|         this.tableBtn = [] | 				this.tableBtn = []; | ||||||
| 			} else { | 			} else { | ||||||
|         this.drawerTitle = '参数绑定' | 				this.drawerTitle = '参数绑定'; | ||||||
|         this.showBtn = true | 				this.showBtn = true; | ||||||
| 				this.tableBtn = [ | 				this.tableBtn = [ | ||||||
|           { | 					this.$auth.hasPermi('base:energy-plc-param:update') | ||||||
|  | 						? { | ||||||
| 								type: 'edit', | 								type: 'edit', | ||||||
|             btnName: '编辑' | 								btnName: '编辑', | ||||||
|           }, |  | ||||||
|           { |  | ||||||
|             type: 'delete', |  | ||||||
|             btnName: '删除' |  | ||||||
| 						  } | 						  } | ||||||
|         ] | 						: undefined, | ||||||
|  | 					this.$auth.hasPermi('base:energy-plc-param:delete') | ||||||
|  | 						? { | ||||||
|  | 								type: 'delete', | ||||||
|  | 								btnName: '删除', | ||||||
|  | 						  } | ||||||
|  | 						: undefined, | ||||||
|  | 				].filter((v) => v); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		getList() { | 		getList() { | ||||||
|       getEnergyPlcParamPage({...this.queryParams}).then((res) => { | 			getEnergyPlcParamPage({ ...this.queryParams }).then((res) => { | ||||||
|         let arr = res.data.list || [] | 				let arr = res.data.list || []; | ||||||
|         arr&&arr.map(item => { | 				arr && | ||||||
|           this.collectionList.map(i => { | 					arr.map((item) => { | ||||||
|  | 						this.collectionList.map((i) => { | ||||||
| 							if (item.collection === i.value) { | 							if (item.collection === i.value) { | ||||||
|               item.collection = i.label | 								item.collection = i.label; | ||||||
| 							} | 							} | ||||||
|           }) | 						}); | ||||||
|           this.energyTypeList.map(j => { | 						this.energyTypeList.map((j) => { | ||||||
| 							if (item.typeId === j.id) { | 							if (item.typeId === j.id) { | ||||||
|               item.typeId = j.name | 								item.typeId = j.name; | ||||||
| 							} | 							} | ||||||
|           }) | 						}); | ||||||
|         }) | 					}); | ||||||
|         this.tableData = arr | 				this.tableData = arr; | ||||||
| 				this.total = res.data.total; | 				this.total = res.data.total; | ||||||
|       }) | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		// 新增 | 		// 新增 | ||||||
| 		addNew() { | 		addNew() { | ||||||
|       this.addOrEditTitle = '新增' | 			this.addOrEditTitle = '新增'; | ||||||
|       this.centervisible = true | 			this.centervisible = true; | ||||||
| 			this.$nextTick(() => { | 			this.$nextTick(() => { | ||||||
|         this.$refs.energyPlcParam.init({'connectId': this.queryParams.connectId, id: ''}) | 				this.$refs.energyPlcParam.init({ | ||||||
|       }) | 					connectId: this.queryParams.connectId, | ||||||
|  | 					id: '', | ||||||
|  | 				}); | ||||||
|  | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		handleCancel() { | 		handleCancel() { | ||||||
|       this.$refs.energyPlcParam.formClear() | 			this.$refs.energyPlcParam.formClear(); | ||||||
|       this.centervisible = false | 			this.centervisible = false; | ||||||
|       this.addOrEditTitle = '' | 			this.addOrEditTitle = ''; | ||||||
| 		}, | 		}, | ||||||
| 		handleConfirm() { | 		handleConfirm() { | ||||||
|       this.$refs.energyPlcParam.submitForm() | 			this.$refs.energyPlcParam.submitForm(); | ||||||
| 		}, | 		}, | ||||||
| 		successSubmit() { | 		successSubmit() { | ||||||
|       this.handleCancel() | 			this.handleCancel(); | ||||||
|       this.getList() | 			this.getList(); | ||||||
| 		}, | 		}, | ||||||
| 		handleClick(val) { | 		handleClick(val) { | ||||||
|       console.log(val) | 			console.log(val); | ||||||
| 			switch (val.type) { | 			switch (val.type) { | ||||||
| 				case 'edit': | 				case 'edit': | ||||||
|           this.addOrEditTitle = '编辑' | 					this.addOrEditTitle = '编辑'; | ||||||
|           this.centervisible = true | 					this.centervisible = true; | ||||||
| 					this.$nextTick(() => { | 					this.$nextTick(() => { | ||||||
|             this.$refs.energyPlcParam.init({'connectId': this.queryParams.connectId, id: val.data.id}) | 						this.$refs.energyPlcParam.init({ | ||||||
|           }) | 							connectId: this.queryParams.connectId, | ||||||
|           break | 							id: val.data.id, | ||||||
|  | 						}); | ||||||
|  | 					}); | ||||||
|  | 					break; | ||||||
| 				default: | 				default: | ||||||
|           this.handleDelete(val.data) | 					this.handleDelete(val.data); | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		/** 删除按钮操作 */ | 		/** 删除按钮操作 */ | ||||||
| 		handleDelete(row) { | 		handleDelete(row) { | ||||||
|       this.$modal.confirm('是否确认删除参数列名为"' + row.plcParamName + '"的数据项?').then(function() { | 			this.$modal | ||||||
|  | 				.confirm('是否确认删除参数列名为"' + row.plcParamName + '"的数据项?') | ||||||
|  | 				.then(function () { | ||||||
| 					return deleteEnergyPlcParam(row.id); | 					return deleteEnergyPlcParam(row.id); | ||||||
|         }).then(() => { | 				}) | ||||||
|  | 				.then(() => { | ||||||
| 					this.queryParams.pageNo = 1; | 					this.queryParams.pageNo = 1; | ||||||
| 					this.getList(); | 					this.getList(); | ||||||
|           this.$modal.msgSuccess("删除成功"); | 					this.$modal.msgSuccess('删除成功'); | ||||||
|         }).catch(() => {}); | 				}) | ||||||
|  | 				.catch(() => {}); | ||||||
| 		}, | 		}, | ||||||
| 		closeD() { | 		closeD() { | ||||||
|       this.$emit('closeDrawer') | 			this.$emit('closeDrawer'); | ||||||
|     } | 		}, | ||||||
|   } | 	}, | ||||||
| } | }; | ||||||
| </script> | </script> | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
| .box { | .box { | ||||||
|   | |||||||
| @@ -57,14 +57,18 @@ import { getTree } from '@/api/analysis/energyAnalysis'; | |||||||
| import { getEnergyTypeListAll } from '@/api/base/energyType'; | import { getEnergyTypeListAll } from '@/api/base/energyType'; | ||||||
| import EnergyPlcConnectAdd from './components/energyPlcConnectAdd'; | import EnergyPlcConnectAdd from './components/energyPlcConnectAdd'; | ||||||
| import EnergyPlcParam from './components/energyPlcParam'; | import EnergyPlcParam from './components/energyPlcParam'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'objName', | 		prop: 'objName', | ||||||
| 		label: '对象', | 		label: '对象', | ||||||
|  | 		minWidth: 130, | ||||||
|  | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'objCode', | 		prop: 'objCode', | ||||||
| 		label: '对象编码', | 		label: '对象编码', | ||||||
|  | 		minWidth: 150, | ||||||
| 		showOverflowtooltip: true, | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| @@ -86,11 +90,13 @@ const tableProps = [ | |||||||
| 	{ | 	{ | ||||||
| 		prop: 'varNum', | 		prop: 'varNum', | ||||||
| 		label: '绑定参数数量', | 		label: '绑定参数数量', | ||||||
|  | 		width: 110, | ||||||
| 	}, | 	}, | ||||||
| ]; | ]; | ||||||
| export default { | export default { | ||||||
| 	name: 'EnergyPlcConnect', | 	name: 'EnergyPlcConnect', | ||||||
| 	components: { EnergyPlcConnectAdd, EnergyPlcParam }, | 	components: { EnergyPlcConnectAdd, EnergyPlcParam }, | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			formConfig: [ | 			formConfig: [ | ||||||
| @@ -101,13 +107,17 @@ export default { | |||||||
| 					param: 'cnName', | 					param: 'cnName', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('base:energy-plc-connect:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermi('base:energy-plc-connect:create') | ||||||
|  | 						? 'separate' | ||||||
|  | 						: '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:energy-plc-connect:create') | 					type: this.$auth.hasPermi('base:energy-plc-connect:create') | ||||||
| @@ -121,17 +131,25 @@ export default { | |||||||
| 			], | 			], | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi('base:energy-plc-connect:bind') | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:energy-plc-param:query', | ||||||
|  | 					'base:energy-type:query', | ||||||
|  | 				]) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'connect', | 							type: 'connect', | ||||||
| 							btnName: '绑定', | 							btnName: '绑定', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				{ | 				this.$auth.hasPermi('base:energy-plc-param:query') | ||||||
|  | 					? { | ||||||
| 							type: 'detail', | 							type: 'detail', | ||||||
| 							btnName: '详情', | 							btnName: '详情', | ||||||
| 				}, | 					  } | ||||||
| 				this.$auth.hasPermi('base:energy-plc-connect:update') | 					: undefined, | ||||||
|  | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:energy-plc-connect:update', | ||||||
|  | 					'base:energy-plc-connect:query', | ||||||
|  | 				]) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'edit', | 							type: 'edit', | ||||||
| 							btnName: '编辑', | 							btnName: '编辑', | ||||||
| @@ -144,7 +162,6 @@ export default { | |||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 			].filter((v) => v), | 			].filter((v) => v), | ||||||
| 			tableH: this.tableHeight(260), |  | ||||||
| 			// 总条数 | 			// 总条数 | ||||||
| 			total: 0, | 			total: 0, | ||||||
| 			// 班次基础信息列表 | 			// 班次基础信息列表 | ||||||
| @@ -165,9 +182,6 @@ export default { | |||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	created() { | 	created() { | ||||||
| 		window.addEventListener('resize', () => { |  | ||||||
| 			this.tableH = this.tableHeight(260); |  | ||||||
| 		}); |  | ||||||
| 		this.getList(); | 		this.getList(); | ||||||
| 	}, | 	}, | ||||||
| 	mounted() { | 	mounted() { | ||||||
|   | |||||||
| @@ -45,6 +45,7 @@ | |||||||
| 			</el-table-column> | 			</el-table-column> | ||||||
| 		</el-table> | 		</el-table> | ||||||
| 		<el-button | 		<el-button | ||||||
|  | 			v-show="!isEdit" | ||||||
| 			class="addButton" | 			class="addButton" | ||||||
| 			icon="el-icon-plus" | 			icon="el-icon-plus" | ||||||
| 			@click="emitButtonClick"> | 			@click="emitButtonClick"> | ||||||
| @@ -70,6 +71,13 @@ export default { | |||||||
| 				return []; | 				return []; | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | 		isEdit: { | ||||||
|  | 			type: Boolean, | ||||||
|  | 			required: true, | ||||||
|  | 			default: () => { | ||||||
|  | 				return false; | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return {}; | 		return {}; | ||||||
|   | |||||||
| @@ -1,38 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <div class="tableInner"> |  | ||||||
|     <!-- <el-input v-model="list[itemProp]" @blur="changeInput" /> --> |  | ||||||
|     <el-input-number v-model="list[itemProp]" @change="changeInput" :min="0" :max="999999999" style='width: 100%;' :controls='false' :precision='2'></el-input-number> |  | ||||||
|   </div> |  | ||||||
| </template> |  | ||||||
| <script> |  | ||||||
| export default { |  | ||||||
|   name: 'InputArea', |  | ||||||
|   props: { |  | ||||||
|     injectData: { |  | ||||||
|       type: Object, |  | ||||||
|       default: () => ({}) |  | ||||||
|     }, |  | ||||||
|     itemProp: { |  | ||||||
|       type: String |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   data() { |  | ||||||
|     return { |  | ||||||
|       list: this.injectData |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   methods: { |  | ||||||
|     changeInput() { |  | ||||||
|       console.log(this.list) |  | ||||||
|       this.$emit('emitData', this.list) |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| </script> |  | ||||||
| <style scoped> |  | ||||||
| .tableInner .el-input__inner { |  | ||||||
|   border: none; |  | ||||||
|   padding: 0; |  | ||||||
|   height: 33px; |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <div class="tableInner"> |  | ||||||
|     <el-select v-model="list[itemProp]" placeholder="请选择" style="width: 100%;" @change="changeSelect"> |  | ||||||
|       <el-option |  | ||||||
|         v-for="item in getDictDatas(DICT_TYPE.TABLE_NAME)" |  | ||||||
|         :key="item.value" |  | ||||||
|         :label="item.label" |  | ||||||
|         :value="item.value"> |  | ||||||
|       </el-option> |  | ||||||
|     </el-select> |  | ||||||
|   </div> |  | ||||||
| </template> |  | ||||||
| <script> |  | ||||||
| export default { |  | ||||||
|   name: 'SelectArea', |  | ||||||
|   props: { |  | ||||||
|     injectData: { |  | ||||||
|       type: Object, |  | ||||||
|       default: () => ({}) |  | ||||||
|     }, |  | ||||||
|     itemProp: { |  | ||||||
|       type: String |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   data() { |  | ||||||
|     return { |  | ||||||
|       list: this.injectData |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   methods: { |  | ||||||
|     changeSelect() { |  | ||||||
|       console.log(this.list) |  | ||||||
|       this.$emit('emitData', this.list) |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| </script> |  | ||||||
| <style scoped> |  | ||||||
| .tableInner .el-input__inner { |  | ||||||
|   border: none; |  | ||||||
|   padding: 0; |  | ||||||
|   height: 33px; |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
| @@ -40,18 +40,11 @@ | |||||||
| 		<el-row :gutter="20"> | 		<el-row :gutter="20"> | ||||||
| 			<el-col :span="24"> | 			<el-col :span="24"> | ||||||
| 				<add-table | 				<add-table | ||||||
| 					:table-props="tableProps" |  | ||||||
| 					:table-data="tableData" | 					:table-data="tableData" | ||||||
| 					:table-name-list="tableNameList" | 					:table-name-list="tableNameList" | ||||||
|  | 					:isEdit="isEdit" | ||||||
| 					@emitFun="inputChange" | 					@emitFun="inputChange" | ||||||
| 					@emitButtonClick="emitButtonClick" /> | 					@emitButtonClick="emitButtonClick" /> | ||||||
| 				<!-- <base-table |  | ||||||
| 					border |  | ||||||
| 					:table-props="tableProps" |  | ||||||
| 					:table-data="tableData" |  | ||||||
| 					:add-button-show="addButtonShow" |  | ||||||
| 					@emitFun="inputChange" |  | ||||||
| 					@emitButtonClick="emitButtonClick" /> --> |  | ||||||
| 			</el-col> | 			</el-col> | ||||||
| 		</el-row> | 		</el-row> | ||||||
| 	</el-form> | 	</el-form> | ||||||
| @@ -64,21 +57,7 @@ import { | |||||||
| } from '@/api/base/energyQuantityManual'; | } from '@/api/base/energyQuantityManual'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
| import AddTable from './AddTable'; | import AddTable from './AddTable'; | ||||||
| import InputArea from './InputArea'; |  | ||||||
| import SelectArea from './SelectArea'; |  | ||||||
| import { energyTableGet } from '@/api/base/energyQuantityManual'; | import { energyTableGet } from '@/api/base/energyQuantityManual'; | ||||||
| const tableProps = [ |  | ||||||
| 	{ |  | ||||||
| 		prop: 'tableName', |  | ||||||
| 		label: '表名*', |  | ||||||
| 		subcomponent: SelectArea, |  | ||||||
| 	}, |  | ||||||
| 	{ |  | ||||||
| 		prop: 'readingQuantity', |  | ||||||
| 		label: '抄表数*', |  | ||||||
| 		subcomponent: InputArea, |  | ||||||
| 	}, |  | ||||||
| ]; |  | ||||||
| export default { | export default { | ||||||
| 	name: 'EnergyQuantityManualAdd', | 	name: 'EnergyQuantityManualAdd', | ||||||
| 	props: { | 	props: { | ||||||
| @@ -92,7 +71,6 @@ export default { | |||||||
| 	}, | 	}, | ||||||
| 	data() { | 	data() { | ||||||
| 		return { | 		return { | ||||||
| 			tableProps, |  | ||||||
| 			tableData: [], | 			tableData: [], | ||||||
| 			tableNameList: [], //表名list | 			tableNameList: [], //表名list | ||||||
| 			addButtonShow: '新增', | 			addButtonShow: '新增', | ||||||
| @@ -122,6 +100,7 @@ export default { | |||||||
| 			} else if (params.type === 'meterReading') { | 			} else if (params.type === 'meterReading') { | ||||||
| 				this.isEdit = false; | 				this.isEdit = false; | ||||||
| 				this.form.energyTypeId = params.energyTypeId; | 				this.form.energyTypeId = params.energyTypeId; | ||||||
|  | 				this.selEnergyType(this.form.energyTypeId); | ||||||
| 				let obj = {}; | 				let obj = {}; | ||||||
| 				obj.tableName = params.tableName + ''; | 				obj.tableName = params.tableName + ''; | ||||||
| 				obj.readingQuantity = 0; | 				obj.readingQuantity = 0; | ||||||
| @@ -133,6 +112,7 @@ export default { | |||||||
| 				energyQuantityManualGet({ id: this.form.id }).then((res) => { | 				energyQuantityManualGet({ id: this.form.id }).then((res) => { | ||||||
| 					if (res.code === 0) { | 					if (res.code === 0) { | ||||||
| 						this.form.energyTypeId = res.data.energyTypeId; | 						this.form.energyTypeId = res.data.energyTypeId; | ||||||
|  | 						this.selEnergyType(this.form.energyTypeId); | ||||||
| 						this.form.recordTime = res.data.recordTime | 						this.form.recordTime = res.data.recordTime | ||||||
| 							? res.data.recordTime | 							? res.data.recordTime | ||||||
| 							: null; | 							: null; | ||||||
| @@ -164,6 +144,11 @@ export default { | |||||||
| 			this.tableNameList = []; | 			this.tableNameList = []; | ||||||
| 			energyTableGet({ energyTypeId: id }).then((res) => { | 			energyTableGet({ energyTypeId: id }).then((res) => { | ||||||
| 				this.tableNameList = res.data.tableObjs || []; | 				this.tableNameList = res.data.tableObjs || []; | ||||||
|  | 				if (this.tableNameList.length === 0) { | ||||||
|  | 					this.$modal.msgWarning( | ||||||
|  | 						'当前能源类型暂无配置表名,请先到《表名配置》页面配置' | ||||||
|  | 					); | ||||||
|  | 				} | ||||||
| 			}); | 			}); | ||||||
| 		}, | 		}, | ||||||
| 		submitForm() { | 		submitForm() { | ||||||
|   | |||||||
| @@ -52,12 +52,12 @@ import { publicFormatter } from '@/utils/dict'; | |||||||
| import { parseTimeTable } from '@/utils/ruoyi'; | import { parseTimeTable } from '@/utils/ruoyi'; | ||||||
| import EnergyQuantityManualAdd from './components/energyQuantityManualAdd'; | import EnergyQuantityManualAdd from './components/energyQuantityManualAdd'; | ||||||
| import moment from 'moment'; | import moment from 'moment'; | ||||||
|  | import tableHeightMixin from '@/mixins/lb/tableHeightMixin'; | ||||||
| const tableProps = [ | const tableProps = [ | ||||||
| 	{ | 	{ | ||||||
| 		prop: 'energyType', | 		prop: 'energyTypeLabel', | ||||||
| 		label: '能源类型', | 		label: '能源类型', | ||||||
| 		minWidth: 110, | 		minWidth: 110, | ||||||
| 		filter: publicFormatter('energy_type'), |  | ||||||
| 		showOverflowtooltip: true, | 		showOverflowtooltip: true, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| @@ -114,13 +114,20 @@ export default { | |||||||
| 					defaultSelect: [], | 					defaultSelect: [], | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'button', | 					type: this.$auth.hasPermi('base:energy-quantity-manual:query') | ||||||
|  | 						? 'button' | ||||||
|  | 						: '', | ||||||
| 					btnName: '查询', | 					btnName: '查询', | ||||||
| 					name: 'search', | 					name: 'search', | ||||||
| 					color: 'primary', | 					color: 'primary', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: 'separate', | 					type: this.$auth.hasPermiOr([ | ||||||
|  | 						'base:energy-quantity-manual:export', | ||||||
|  | 						'base:energy-quantity-manual:create', | ||||||
|  | 					]) | ||||||
|  | 						? 'separate' | ||||||
|  | 						: '', | ||||||
| 				}, | 				}, | ||||||
| 				{ | 				{ | ||||||
| 					type: this.$auth.hasPermi('base:energy-quantity-manual:export') | 					type: this.$auth.hasPermi('base:energy-quantity-manual:export') | ||||||
| @@ -142,19 +149,24 @@ export default { | |||||||
| 				}, | 				}, | ||||||
| 			], | 			], | ||||||
| 			tableProps, | 			tableProps, | ||||||
| 			tableH: this.tableHeight(260), |  | ||||||
| 			// 总条数 | 			// 总条数 | ||||||
| 			total: 0, | 			total: 0, | ||||||
| 			// 班次基础信息列表 | 			// 班次基础信息列表 | ||||||
| 			list: [], | 			list: [], | ||||||
| 			tableBtn: [ | 			tableBtn: [ | ||||||
| 				this.$auth.hasPermi('base:energy-quantity-manual:create') | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:energy-quantity-manual:query', | ||||||
|  | 					'base:energy-quantity-manual:create', | ||||||
|  | 				]) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'meterReading', | 							type: 'meterReading', | ||||||
| 							btnName: '抄表', | 							btnName: '抄表', | ||||||
| 					  } | 					  } | ||||||
| 					: undefined, | 					: undefined, | ||||||
| 				this.$auth.hasPermi('base:energy-quantity-manual:update') | 				this.$auth.hasPermiAnd([ | ||||||
|  | 					'base:energy-quantity-manual:update', | ||||||
|  | 					'base:energy-quantity-manual:query', | ||||||
|  | 				]) | ||||||
| 					? { | 					? { | ||||||
| 							type: 'edit', | 							type: 'edit', | ||||||
| 							btnName: '编辑', | 							btnName: '编辑', | ||||||
| @@ -181,10 +193,8 @@ export default { | |||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
| 	components: { EnergyQuantityManualAdd }, | 	components: { EnergyQuantityManualAdd }, | ||||||
|  | 	mixins: [tableHeightMixin], | ||||||
| 	created() { | 	created() { | ||||||
| 		window.addEventListener('resize', () => { |  | ||||||
| 			this.tableH = this.tableHeight(260); |  | ||||||
| 		}); |  | ||||||
| 		let end = moment(moment().format('YYYY-MM-DD 23:59:59')).valueOf(); | 		let end = moment(moment().format('YYYY-MM-DD 23:59:59')).valueOf(); | ||||||
| 		let start = moment( | 		let start = moment( | ||||||
| 			moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00') | 			moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00') | ||||||
| @@ -244,6 +254,11 @@ export default { | |||||||
| 								? item.amount.toFixed(2) | 								? item.amount.toFixed(2) | ||||||
| 								: '' | 								: '' | ||||||
| 							: ''; | 							: ''; | ||||||
|  | 						this.getDictDatas('energy_type').map((subItem) => { | ||||||
|  | 							if (item.energyType === subItem.value) { | ||||||
|  | 								item.energyTypeLabel = subItem.label; | ||||||
|  | 							} | ||||||
|  | 						}); | ||||||
| 					}); | 					}); | ||||||
| 				this.list = arr; | 				this.list = arr; | ||||||
| 				this.total = response.data.total; | 				this.total = response.data.total; | ||||||
| @@ -305,7 +320,7 @@ export default { | |||||||
| 		handleDelete(row) { | 		handleDelete(row) { | ||||||
| 			console.log(row.id); | 			console.log(row.id); | ||||||
| 			this.$modal | 			this.$modal | ||||||
| 				.confirm('是否确认删除能源类型为"' + row.energyType + '"的数据项?') | 				.confirm('是否确认删除能源类型为"' + row.energyTypeLabel + '"的数据项?') | ||||||
| 				.then(function () { | 				.then(function () { | ||||||
| 					return energyQuantityManualDelete({ id: row.id }); | 					return energyQuantityManualDelete({ id: row.id }); | ||||||
| 				}) | 				}) | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user