whx 5 months ago
parent
commit
6087a67886

+ 77 - 125
virgo.wzfrontend/console/src/components/work/common/model.vue

@@ -406,26 +406,51 @@
 				powerdistributionState: {
 					"name": "persp",
 					"position": {
-						"x": 5534.535803870811,
-						"y": 90876.53553995928,
-						"z": -3314.823840911769
+						"x": 2632.2859361604883,
+						"y": 111223.79774583911,
+						"z": -7881.380106302236
 					},
 					"target": {
-						"x": 38892.46701167584,
-						"y": 156962.5294575589,
-						"z": -52151.804819285775
+						"x": -77.33010542628317,
+						"y": 199776.22030910433,
+						"z": -11917.134894432931
 					},
 					"up": {
-						"x": 0.24814330707818513,
-						"y": 0.49159674163953404,
-						"z": 0.8347200385528641
+						"x": -0.0013919067086316582,
+						"y": 0.045484949100334654,
+						"z": 0.9989640544088934
 					},
-					"near": 5.777222038555453,
-					"far": 40980.73258230227,
-					"zoom": 23.947915797812488,
+					"near": 5.777222038556004,
+					"far": 17006.60929286916,
+					"zoom": 215.89621661586904,
 					"version": 1,
 					"fov": 45,
-					"aspect": 2.0854271356783918,
+					"aspect": 2.759493670886076,
+					"coordinateSystem": "world"
+				},
+				elevatorState: {
+					"name": "persp",
+					"position": {
+						"x": 6572.0875033955235,
+						"y": 95699.82781558658,
+						"z": -7105.60800578779
+					},
+					"target": {
+						"x": -8483.19355863921,
+						"y": 10707.06775943514,
+						"z": -27470.53196359404
+					},
+					"up": {
+						"x": -0.04005162448132288,
+						"y": -0.22611035388830691,
+						"z": 0.9732779537423581
+					},
+					"near": 5.777222038554977,
+					"far": 27618.853234549413,
+					"zoom": 124.51749491660715,
+					"version": 1,
+					"fov": 45,
+					"aspect": 2.049382716049383,
 					"coordinateSystem": "world"
 				},
 				indoorState: {
@@ -503,31 +528,6 @@
 					"aspect": 1.119842829076621,
 					"coordinateSystem": "world"
 				},
-				liftPosition: [{
-					"x": 41357.04645174326,
-					"y": 20517.92965761399,
-					"z": 2521.946938110247
-				}, {
-					"x": 38650.448942289164,
-					"y": 21167.72420755811,
-					"z": 2537.343862507356
-				}, {
-					"x": 36078.44798126248,
-					"y": 21785.20338155814,
-					"z": 2397.8923693159045
-				}, {
-					"x": 34727.814122374904,
-					"y": 16500.92440760654,
-					"z": 2550.0049591064453
-				}, {
-					"x": 37402.664463801375,
-					"y": 15787.959087318342,
-					"z": 2550.0049591064453
-				}, {
-					"x": 40100.01511579268,
-					"y": 15112.013140613166,
-					"z": 2504.101514927484
-				}],
 				coldState: {
 					"name": "persp",
 					"position": {
@@ -1034,91 +1034,49 @@
 					}, data => {})
 				} else if (this.type === 'powerdistribution') {
 					this.bimViewer.setCameraState(this.powerdistributionState);
-					this.bimViewer.addDrawable({
-						position: {
-							"x": 7621.26346650055,
-							"y": 97886.27164849853,
-							"z": -6705.819606781007
-						},
-						html: `<div class="tips-5" style="width:170px;transform: scale(0.7);transform-origin: 0% 0%;">
-									<div class="title"><i class="iconfont huifont-shuzhuangcaidanxiala"></i>电配箱</div>
-									<div class="content">
-										<div class="tips-6">
-											<div class="item">
-												<div class="label">A项电流</div>
-												<div class="value">10A</div>
-											</div>
-											<div class="item">
-												<div class="label">B项电流</div>
-												<div class="value">12A</div>
-											</div>
-											<div class="item">
-												<div class="label">A项电压</div>
-												<div class="value">24V</div>
-											</div>
-											<div class="item">
-												<div class="label">B项电压</div>
-												<div class="value">24V</div>
-											</div>
-										</div>
-									</div>
-								</div>`,
-					}, data => {})
+					this.bimViewer.hideComponentsById(['1664928', '1664929']);
+					for (let i = 0; i < list.length; i++) {
+						this.bimViewer.addDrawable({
+							position: list[i].column2,
+							html: list[i].html,
+						}, data => {})
+					}
 				} else if (this.type === 'elevator') {
-					this.bimViewer.setCameraState(this.powerdistributionState);
-					this.bimViewer.addDrawable({
-						position: {
-							"x": 7621.26346650055,
-							"y": 97886.27164849853,
-							"z": -6705.819606781007
-						},
-						html: `<div class="tips-5" style="width:170px;transform: scale(0.7);transform-origin: 0% 0%;">
-									<div class="title"><i class="iconfont huifont-shuzhuangcaidanxiala"></i>电表1</div>
-									<div class="content">
-										<div class="tips-6">
-											<div class="item">
-												<div class="label">Ua电压</div>
-												<div class="value">236V</div>
-											</div>
-											<div class="item">
-												<div class="label">Ub电压</div>
-												<div class="value">236V</div>
-											</div>
-											<div class="item">
-												<div class="label">Uc电压</div>
-												<div class="value">236V</div>
-											</div>
-											<div class="item">
-												<div class="label">Ia电流</div>
-												<div class="value">20A</div>
-											</div>
-											<div class="item">
-												<div class="label">Ib电流</div>
-												<div class="value">20A</div>
-											</div>
-											<div class="item">
-												<div class="label">Ic电流</div>
-												<div class="value">20A</div>
-											</div>
-										</div>
-									</div>
-								</div>`,
-					}, data => {})
+					this.bimViewer.setCameraState(this.elevatorState);
+					this.bimViewer.hideComponentsById(['1664928', '1714956']);
+					this.bimViewer.clearDrawable();
+					for (let i = 0; i < list.length; i++) {
+						this.bimViewer.addDrawable({
+							position: list[i].column2,
+							html: list[i].html,
+						}, data => {})
+					}
 				} else if (this.type === 'indoor') {
 					this.bimViewer.setCameraState(this.indoorState);
+					this.bimViewer.hideComponentsById(['2818831']);
 					this.bimViewer.setLight();
+					this.bimViewer.clearLight();
+					let ids = [];
+					for (let i = 0; i < list.length; i++) {
+						ids = ids.concat(list[i].column2)
+					}
+					if (ids.length > 0) this.indoor(ids);
 				} else if (this.type === 'outdoor') {
 					this.bimViewer.setCameraState(this.outdoorState);
-					this.bimViewer.overrideComponentsColorByObjectData();
+					this.bimViewer.overrideAllComponentsColor();
+					this.bimViewer.clearGlowEffect();
+					for (let i = 0; i < list.length; i++) {
+						this.outdoor(list[i].column2);
+					}
 				} else if (this.type === 'lift') {
 					this.bimViewer.setCameraState(this.liftState);
-					for (var i = 0; i < this.liftPosition.length; i++) {
+					for (var i = 0; i < list.length; i++) {
 						this.bimViewer.addDrawable({
-							position: this.liftPosition[i],
+							position: list[i].column2,
 							offsetY: -45,
 							html: `<div class="tips-12" style="transform: scale(0.7);transform-origin: 0% 0%;">
 										<i class="iconfont huifont-dianti1"></i>
-										<div class="name">${i+1}F</div>
+										<div class="name">${list[i].name}</div>
 									</div>`,
 						}, data => {})
 					}
@@ -1320,6 +1278,9 @@
 						renderSuccess: () => {
 							this.modeRender = true;
 							this.setData(this.list);
+						},
+						click: (data) => {
+							console.log(data);
 						}
 					})
 				}
@@ -1333,21 +1294,12 @@
 					a
 				}
 			},
-			outdoor(isOpen, ids) {
-				if (isOpen) {
-					this.bimViewer.setGlowEffectById(ids);
-				} else {
-					this.bimViewer.removeGlowEffectById(ids);
-				}
+			outdoor(ids) {
+				this.bimViewer.setGlowEffectById(ids);
 			},
-			indoor(isOpen, ids) {
-				if (isOpen) {
-					this.bimViewer.setLightShow(ids);
-					this.bimViewer.setExposureShift(0.1);
-				} else {
-					this.bimViewer.clearLight();
-					this.bimViewer.setExposureShift(-0.1);
-				}
+			indoor(ids, intensity) {
+				this.bimViewer.setLightShow(ids, intensity);
+				this.bimViewer.setExposureShift(0.1);
 			}
 		},
 	}

+ 3 - 1
virgo.wzfrontend/console/src/components/work/common/testAlarm.vue

@@ -82,8 +82,10 @@
 		},
 		methods: {
 			init(option) {
+				//type 1.周界报警设备 2.周界报警 3.电子巡查设备 4.消防设备 5.消防设备报警 6.消防通道 7.易燃易爆品设备 8.易燃易爆品报警9.化学用品设备 10.化学用品报警11.废气污染物设备 12.废气污染物报警 13.环境设备
+				//type 14.供配电 15.电梯机房 16.电梯
 				let postData = {
-					type: this.type, //1-周界报警设备 2-周界报警 3.电子巡查设备 4.消防设备 5.消防设备报警 6.消防通道 7.易燃易爆品设备 8.易燃易爆品报警9.化学用品设备 10.化学用品报警11.废气污染物设备 12.废气污染物报警 13.环境设备
+					type: this.type,
 					projectId: this.$store.getters.project.id
 				}
 				if (option) postData = Object.assign(postData, option);

+ 39 - 3
virgo.wzfrontend/console/src/httpApi/test.js

@@ -260,7 +260,7 @@ export function getAirList(data) {
 		method: 'post',
 		data: data
 	})
-}
+}
 /* 
  * 获取设备层级
  * 
@@ -306,7 +306,7 @@ export function deleteFireDeviceModel(id) {
 		url: `/api/test/fireFightingLevel//${id}`,
 		method: 'delete'
 	})
-}
+}
 /* 
  * 获取消防记录列表
  * 
@@ -318,4 +318,40 @@ export function getFireList(data) {
 		method: 'post',
 		data: data
 	})
-}
+}
+/* 
+ * 获取能源设备列表
+ * 
+ * 
+ */
+export function getEnergyDeviceList(data) {
+	return request({
+		url: `/api/test/powerDistributionMachine/get`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑能源设备
+ * 
+ * 
+ */
+export function updateEnergyDevice(data) {
+	return request({
+		url: `/api/test/powerDistributionMachine/update`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 批量更新能源设备状体
+ * 
+ * 
+ */
+export function updateEnergyDeviceState(state, data) {
+	return request({
+		url: `/api/test/powerDistributionMachine/updateState/${state}`,
+		method: 'post',
+		data: data
+	})
+}

+ 46 - 1
virgo.wzfrontend/console/src/uitls/controls.js

@@ -13,7 +13,8 @@ class bimView {
 				fileId: '',
 				objectId: ''
 			},
-			extObjMng, roomEditorToolbar, bimIntegrateId, roamAngle, wallEffect;
+			extObjMng, roomEditorToolbar, bimIntegrateId, roamAngle, wallEffect, lightMng, directionalLight,
+			bloomEffectConfig, bloomEffect;
 		dom = arg.dom
 		viewToken = arg.viewToken;
 		renderSuccess = arg.renderSuccess;
@@ -545,6 +546,10 @@ class bimView {
 				this.setGlowEffectById(data);
 			})
 		}
+		this.removeGlowEffectById = (ids) => {
+			model3D.removeGlowEffectById(ids);
+			viewer3D.render();
+		}
 		this.clearGlowEffect = () => {
 			model3D.clearGlowEffect();
 			viewer3D.render();
@@ -631,6 +636,46 @@ class bimView {
 			// 构造电子围墙扫描效果对象
 			wallEffect = new Glodon.Bimface.Plugins.Animation.WallEffect(wallEffectConfig);
 		}
+		this.setLight = () => {
+			if (!lightMng) lightMng = viewer3D.getLightManager();
+			// 获取默认用于控制投影的方向光
+			if (!directionalLight) directionalLight = lightMng.getAllDirectionalLights()[0];
+			// 开启阴影
+			directionalLight.enableShadow(true);
+			// 设置曝光补偿量
+			viewer3D.setExposureShift(-0.1);
+		}
+		this.setExposureShift = (num) => {
+			viewer3D.setExposureShift(num);
+		}
+		this.setLightShow = (ids) => {
+			if (!bloomEffectConfig) {
+				// 构造辉光效果的配置项
+				bloomEffectConfig = new Glodon.Bimface.Plugins.Effect.BloomEffectConfig();
+				// 设置构件ID数组、强度、扩散程度、viewer参数
+				bloomEffectConfig.ids = [{
+					"modelId": model3D.modelId,
+					"objectIds": ids
+				}];
+				bloomEffectConfig.intensity = 0.5;
+				bloomEffectConfig.spread = 4;
+				bloomEffectConfig.viewer = viewer3D;
+				// 构造辉光效果
+				bloomEffect = new Glodon.Bimface.Plugins.Effect.BloomEffect(bloomEffectConfig);
+			} else {
+				bloomEffect.setIds([{
+					"modelId": model3D.modelId,
+					"objectIds": ids
+				}])
+				bloomEffect.update();
+			}
+			viewer3D.render();
+		}
+		this.clearLight = () => {
+			if (!bloomEffect) return;
+			bloomEffect.clear();
+			viewer3D.render();
+		}
 		this.setView = (type) => {
 			viewer3D.setView(Glodon.Bimface.Viewer.ViewOption[type])
 			viewer3D.render();

+ 94 - 145
virgo.wzfrontend/console/src/views/work/energy/electrical/elevator.vue

@@ -1,13 +1,13 @@
 <template>
 	<div class="yui-tree-box">
-		<select-space></select-space>
+		<project-item-tree @treeclick="treeclick" iconfontClass="el-icon-place"></project-item-tree>
 		<div class="hui-tree-content">
 			<div class="elevator box-background">
 				<div class="elevator-box">
 					<div class="elevator-center">
-						<test-alarm></test-alarm>
+						<test-alarm ref="testAlarm" :type="15"></test-alarm>
 						<div class="bim-box">
-							<model type="elevator" fileId="10000815010702"></model>
+							<model ref="model" type="elevator" fileId="10000815010702"></model>
 						</div>
 					</div>
 					<div class="elevator-right hui-flex">
@@ -19,143 +19,34 @@
 								<div ref="chart1" class="chart"></div>
 							</div>
 						</div>
-						<div class="elevator-list hui-flex-box">
+						<div class="elevator-list hui-flex-box hui-no-tips" v-if="list.length === 0">
+							<empty width="100" description="暂无设备"></empty>
+						</div>
+						<div class="elevator-list hui-flex-box" v-else>
 							<div class="elevator-item-box">
-								<div class="elevator-item">
-									<div class="elevator-title color-font">
-										<i class="iconfont huifont-shuzhuangcaidanxiala"></i>
-										<span class="elevator-space hui-ellipsis">1F</span>
-										<span class="elevator-title-name hui-ellipsis">
-											1F默认房间
-										</span>
-									</div>
+								<div class="elevator-item" v-for="(node,key,index) in testList" :key="index">
+									<div class="elevator-title color-font">{{key}}</div>
 									<div class="elevator-content">
-										<div class="content-item">
+										<div class="content-item" v-for="(item,index) in node" :key="index">
 											<div class="item-title color-font">
-												<div class="hui-tag hui-tag-primary">在线</div>
-												<span class="name">电表1</span>
-												<div class="nuit">
-													本月电量 <span class="number alibaba color-cyan">132153.1</span>kwh
-												</div>
-											</div>
-											<div class="item-box">
-												<div class="item-number">
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															236
-														</div>
-														<div class="label">
-															Ua电压(V)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															236
-														</div>
-														<div class="label">
-															la电压(A)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															236
-														</div>
-														<div class="label">
-															三相有功功率(KW)
-														</div>
+												<div>
+													<div class="hui-tag hui-tag-info" v-if="!item.state">离线</div>
+													<div class="hui-tag hui-tag-warning" v-if="item.state === 1">故障
 													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															52321.0
-														</div>
-														<div class="label">
-															三相无功功率(KVar)
-														</div>
+													<div class="hui-tag hui-tag-success" v-if="item.state === 2">正常
 													</div>
 												</div>
-												<div class="item-number">
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															233
-														</div>
-														<div class="label">
-															Ub电压(V)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															255
-														</div>
-														<div class="label">
-															la电流(B)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															0
-														</div>
-														<div class="label">
-															PVUR(%)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															0
-														</div>
-														<div class="label">
-															漏电电流(mA)
-														</div>
-													</div>
-												</div>
-												<div class="item-number">
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															233.2
-														</div>
-														<div class="label">
-															Uc电压(V)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															234.4
-														</div>
-														<div class="label">
-															la电流(C)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															234.6
-														</div>
-														<div class="label">
-															PVR(%)
-														</div>
-													</div>
-													<div class="number-item">
-														<div class="number alibaba color-green">
-															55
-														</div>
-														<div class="label">
-															频率(Hz)
-														</div>
-													</div>
-												</div>
-											</div>
-										</div>
-										<div class="content-item">
-											<div class="item-title color-font">
-												<div class="hui-tag hui-tag-info">离线</div>
-												<span class="name">电报2</span>
+												<span class="name">{{item.name}}</span>
 												<div class="nuit">
-													本月电量 <span class="number alibaba color-cyan">132153.1</span>kwh
+													本月电量 <span
+														class="number alibaba color-cyan">{{item.column1}}</span>kwh
 												</div>
 											</div>
 											<div class="item-box">
 												<div class="item-number">
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															236
+															{{item.data.uaV}}
 														</div>
 														<div class="label">
 															Ua电压(V)
@@ -163,15 +54,15 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															236
+															{{item.data.laA}}
 														</div>
 														<div class="label">
-															la电(A)
+															la电(A)
 														</div>
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															236
+															{{item.data.usefulPower}}
 														</div>
 														<div class="label">
 															三相有功功率(KW)
@@ -179,7 +70,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															52321.0
+															{{item.data.UselessPower}}
 														</div>
 														<div class="label">
 															三相无功功率(KVar)
@@ -189,7 +80,7 @@
 												<div class="item-number">
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															233
+															{{item.data.ubV}}
 														</div>
 														<div class="label">
 															Ub电压(V)
@@ -197,7 +88,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															255
+															{{item.data.lbA}}
 														</div>
 														<div class="label">
 															la电流(B)
@@ -205,7 +96,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															0
+															{{item.data.pvur}}
 														</div>
 														<div class="label">
 															PVUR(%)
@@ -213,7 +104,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															0
+															{{item.data.leakA}}
 														</div>
 														<div class="label">
 															漏电电流(mA)
@@ -223,7 +114,7 @@
 												<div class="item-number">
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															233.2
+															{{item.data.ucV}}
 														</div>
 														<div class="label">
 															Uc电压(V)
@@ -231,7 +122,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															234.4
+															{{item.data.lcA}}
 														</div>
 														<div class="label">
 															la电流(C)
@@ -239,7 +130,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															234.6
+															{{item.data.pvr}}
 														</div>
 														<div class="label">
 															PVR(%)
@@ -247,7 +138,7 @@
 													</div>
 													<div class="number-item">
 														<div class="number alibaba color-green">
-															55
+															{{item.data.hz}}
 														</div>
 														<div class="label">
 															频率(Hz)
@@ -268,27 +159,85 @@
 </template>
 
 <script>
-	import selectSpace from '@/components/work/common/selectSpace'
+	import projectItemTree from '@/components/common/projectItemTree'
 	import testAlarm from '@/components/work/common/testAlarm'
 	import model from '@/components/work/common/model'
+
+	import {
+		getEnergyDeviceList
+	} from '@/httpApi/test'
 	export default {
 		data() {
 			return {
-
+				list: [],
+				testList: {}
 			}
 		},
 		created() {
 			this.$nextTick(() => {
-				this.chart(this.$refs.chart1, [1, 3, 2, 6, 1])
+				this.init();
 			})
 		},
 		components: {
 			testAlarm,
-			selectSpace,
+			projectItemTree,
 			model
 		},
 		methods: {
-			chart(elem, data) {
+			init(option) {
+				let postData = {
+					projectId: this.$store.getters.project.id,
+					type: 2
+				}
+				if (option) postData = Object.assign(postData, option);
+				getEnergyDeviceList(postData).then(res => {
+					this.list = res.data.map(node => {
+						if (node['data']) node['data'] = JSON.parse(node.data);
+						if (node['column2']) node['column2'] = JSON.parse(node.column2);
+						node.html = `<div class="tips-5" style="width:170px;transform: scale(0.6);transform-origin: 0% 0%;">
+									<div class="title"><i class="iconfont huifont-shuzhuangcaidanxiala"></i>${node.name}</div>
+									<div class="content">
+										<div class="tips-6">
+											<div class="item">
+												<div class="label">Ua电压(V)</div>
+												<div class="value">${node.data.ubV}</div>
+											</div>
+											<div class="item">
+												<div class="label">Ub电压(V)</div>
+												<div class="value">${node.data.ubV}</div>
+											</div>
+											<div class="item">
+												<div class="label">Uc电压(V)</div>
+												<div class="value">${node.data.ucV}</div>
+											</div>
+										</div>
+									</div>
+								</div>`
+						return node
+					})
+					let obj = {},
+						data = [],
+						x = [];
+					for (let i = 0; i < this.list.length; i++) {
+						let roomName = this.list[i].projectItemTargetRoomName;
+						if (!obj[roomName]) obj[roomName] = [];
+						obj[roomName].push(this.list[i]);
+						data.push(this.list[i].column1);
+						x.push(this.list[i].name);
+					}
+					this.testList = obj;
+					this.chart(this.$refs.chart1, data, x);
+					if (this.$refs.model) this.$refs.model.setData(this.list);
+				})
+			},
+			treeclick(item) {
+				let obj = item.id ? {
+					projectItemTargetId: item.id
+				} : {}
+				if (this.$refs.testAlarm) this.$refs.testAlarm.init(obj);
+				this.init(obj);
+			},
+			chart(elem, data, x) {
 				let chart = echarts.init(elem);
 				let option = {
 					tooltip: {
@@ -317,7 +266,7 @@
 					color: ['#1978E5'],
 					xAxis: {
 						type: 'category',
-						data: ['安装', '保养', '维修', '巡检', '拆除'],
+						data: x,
 						axisLabel: {
 							margin: 4,
 							color: '#D0DEEE',

+ 101 - 187
virgo.wzfrontend/console/src/views/work/energy/electrical/lift.vue

@@ -1,7 +1,6 @@
 <template>
 	<div class="yui-tree-box">
-		<select-space></select-space>
-		<div class="hui-tree-content">
+		<div class="hui-tree-content" style="padding: 0;">
 			<div class="box-background lift">
 				<div class="lift-lists">
 					<div class="hui-chart-title">电梯告警信息</div>
@@ -9,7 +8,7 @@
 						<div class="device-alarm-test">
 							<div class="alarm-img"></div>
 							<div class="test-number">
-								<span class="number alibaba">3</span>
+								<span class="number alibaba">{{testCount}}</span>
 								<span class="unit">台</span>
 							</div>
 							<div class="test-btn">
@@ -27,36 +26,19 @@
 											<span class="tr-50">状态</span>
 										</div>
 									</div>
-									<div class="alarm-table hui-flex-box">
-										<div class="alarm-tr">
-											<span class="tr-100 hui-ellipsis">设备1</span>
-											<span class="tr-flex hui-ellipsis">报警信息发的啥响声</span>
-											<span class="tr-130">2024-01-12 12:14:10</span>
-											<span class="tr-50 color-red">报警中</span>
-										</div>
-										<div class="alarm-tr">
-											<span class="tr-100 hui-ellipsis">设备2</span>
-											<span class="tr-flex hui-ellipsis">报警信息发的啥响声</span>
-											<span class="tr-130">2024-01-12 12:14:10</span>
-											<span class="tr-50 color-primary">修复中</span>
-										</div>
-										<div class="alarm-tr">
-											<span class="tr-100 hui-ellipsis">设备3</span>
-											<span class="tr-flex hui-ellipsis">报警信息发的啥响声</span>
-											<span class="tr-130">2024-01-12 12:14:10</span>
-											<span class="tr-50 color-green">已修复</span>
-										</div>
-										<div class="alarm-tr">
-											<span class="tr-100 hui-ellipsis">设备4</span>
-											<span class="tr-flex hui-ellipsis">报警信息发的啥响声</span>
-											<span class="tr-130">2024-01-12 12:14:10</span>
-											<span class="tr-50 color-red">报警中</span>
-										</div>
-										<div class="alarm-tr">
-											<span class="tr-100 hui-ellipsis">设备5</span>
-											<span class="tr-flex hui-ellipsis">报警信息发的啥响声</span>
-											<span class="tr-130">2024-01-12 12:14:10</span>
-											<span class="tr-50 color-red">报警中</span>
+									<div class="hui-flex-box hui-no-tips" v-if="list.length === 0">
+										<empty width="100" description="暂无报警记录"></empty>
+									</div>
+									<div class="alarm-table hui-flex-box" v-else>
+										<div class="alarm-tr" v-for="(item,index) in list" :key="index">
+											<span class="tr-100 hui-ellipsis">{{item.deviceName}}</span>
+											<span class="tr-flex hui-ellipsis">{{item.info}}</span>
+											<span class="tr-130">{{item.date}}</span>
+											<span class="tr-50 tr-center">
+												<span class="color-red" v-if="!item.state">报警中</span>
+												<span class="color-blue" v-else-if="item.state === 1">处理中</span>
+												<span class="color-green" v-else-if="item.state === 2">已处理</span>
+											</span>
 										</div>
 									</div>
 								</div>
@@ -76,152 +58,22 @@
 							</div>
 						</div>
 					</div>
-					<div class="lift-box">
+					<div class="lift-box hui-no-tips" v-if="liftList.length === 0">
+						<empty width="100" description="暂无电梯"></empty>
+					</div>
+					<div class="lift-box" v-else>
 						<div class="lift-prev">
 							<div class="icon"></div>
 						</div>
 						<div class="lift-list">
 							<div class="lift-view">
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯1
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage">
-											-2F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯2
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 20%;">
-											2F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯3
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 30%;">
-											-3F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯4
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="top: 0;bottom: auto;">
-											10F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯5
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 70%;">
-											7F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯6
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="top: 0;bottom: auto;">
-											10F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯7
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="top: 0;bottom: auto;">
-											10F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯8
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 20%;">
-											2F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯9
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 50%;">
-											5F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯10
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 50%;">
-											5F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯11
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 0;">
-											-2F
-											<div class="bage error"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯8
-									</div>
-									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 20%;">
-											2F
-											<div class="bage"></div>
-										</div>
-									</div>
-								</div>
-								<div class="lift-item">
-									<div class="lift-title">
-										客梯9
-									</div>
+								<div class="lift-item" v-for="(item,index) in liftList">
+									<div class="lift-title">{{item.name}}</div>
 									<div class="lift-content">
-										<div class="lift-bage" style="bottom: 50%;">
-											5F
-											<div class="bage"></div>
+										<div class="lift-bage" :style="'bottom:'+returnHeight(item.data)+'%'">
+											<span>{{item.data.nowLevel}}F</span>
+											<div class="bage" v-if="!item.state"></div>
+											<div class="bage error" v-else></div>
 										</div>
 									</div>
 								</div>
@@ -242,7 +94,7 @@
 								</div>
 								<div class="test-label">
 									<div class="test-name">平均流量</div>
-									<div class="test-value alibaba">256</div>
+									<div class="test-value alibaba">{{personCount.averageNum}}</div>
 								</div>
 							</div>
 							<div class="test-item">
@@ -251,7 +103,7 @@
 								</div>
 								<div class="test-label">
 									<div class="test-name">进场人次</div>
-									<div class="test-value alibaba">2580</div>
+									<div class="test-value alibaba">{{personCount.inNum}}</div>
 								</div>
 							</div>
 							<div class="test-item">
@@ -260,13 +112,13 @@
 								</div>
 								<div class="test-label">
 									<div class="test-name">出场人次</div>
-									<div class="test-value alibaba">1236</div>
+									<div class="test-value alibaba">{{personCount.outNum}}</div>
 								</div>
 							</div>
 						</div>
 					</div>
 					<div class="bim-box">
-						<model type="lift" fileId="10000786668492"></model>
+						<model ref="model" type="lift" fileId="10000786668492"></model>
 					</div>
 				</div>
 			</div>
@@ -276,17 +128,80 @@
 
 <script>
 	import model from '@/components/work/common/model'
-	import selectSpace from '@/components/work/common/selectSpace'
+	import {
+		getDeviceCountList,
+		getDeviceAlarmList,
+		getEnergyDeviceList
+	} from '@/httpApi/test'
 	export default {
 		data() {
-			return {}
+			return {
+				list: [],
+				testCount: 0,
+				personCount: {
+					averageNum: 0,
+					inNum: 0,
+					outNum: 0,
+				},
+				liftList: []
+			}
+		},
+		created() {
+			this.init();
 		},
-		created() {},
 		components: {
-			model,
-			selectSpace
+			model
 		},
-		methods: {}
+		methods: {
+			init() {
+				let postData = {
+					type: 16,
+					projectId: this.$store.getters.project.id
+				}
+				getDeviceCountList(postData).then(res => {
+					if (res.state) {
+						this.testCount = res.data[0] ? res.data[0].offline : 0;
+					}
+				})
+				getDeviceAlarmList(postData).then(res => {
+					if (res.state) {
+						this.list = res.data;
+					}
+				})
+				getEnergyDeviceList({
+					projectId: this.$store.getters.project.id,
+					type: 3
+				}).then(res => {
+					let inNum = 0,
+						outNum = 0;
+					this.liftList = res.data.map(node => {
+						if (node['data']) node['data'] = JSON.parse(node.data);
+						if (node['column2']) node['column2'] = JSON.parse(node.column2);
+						inNum += parseInt(node.column1);
+						outNum += parseInt(node.column3);
+						return node;
+					})
+					if (this.liftList.length == 0) {
+						this.personCount = {
+							averageNum: 0,
+							inNum: 0,
+							outNum: 0,
+						}
+					} else {
+						this.personCount = {
+							averageNum: Math.floor(inNum / this.liftList.length),
+							inNum: inNum,
+							outNum: outNum,
+						}
+					}
+					if (this.$refs.model) this.$refs.model.setData(this.liftList);
+				})
+			},
+			returnHeight(data) {
+				let all = data.max - data.min;
+				return ((data.nowLevel - data.min) / all).toFixed(4) * 90
+			}
+		}
 	}
 </script>
 
@@ -405,7 +320,7 @@
 				}
 
 				.hui-test-alarm {
-					height: auto;
+					height: 100%;
 				}
 			}
 
@@ -520,8 +435,7 @@
 			}
 
 			.lift-item {
-				width: 42px;
-				min-width: 42px;
+				width: 60px;
 				display: flex;
 				flex-direction: column;
 				align-items: center;
@@ -531,7 +445,7 @@
 			}
 
 			.lift-content {
-				width: 22px;
+				width: 26px;
 				flex: 1;
 				height: 0;
 				background: rgba(39, 54, 83, 0.3);

+ 65 - 19
virgo.wzfrontend/console/src/views/work/energy/electrical/lighting/indoor.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="yui-tree-box">
-		<select-space></select-space>
+		<project-item-tree @treeclick="treeclick" iconfontClass="el-icon-place"></project-item-tree>
 		<div class="hui-tree-content">
 			<div class="indoor box-background">
 				<div class="indoor-box">
@@ -16,37 +16,44 @@
 									照明控制
 								</div>
 							</div>
-							<div class="operation">
+							<div class="operation hui-no-tips" v-if="list.length === 0">
+								<empty width="100" description="暂无灯光"></empty>
+							</div>
+							<div class="operation" v-else>
 								<div class="hui-operation">
 									<div class="operation-item">
 										<div class="operation-label">
 											<span class="label">开灯数</span>
-											<span class="number alibaba">0</span>
+											<span class="number alibaba">{{openList.length}}</span>
 										</div>
 										<div class="operation-test">
-											<div class="test-number" style="width:0%;background: #F9B115;"></div>
+											<div class="test-number"
+												:style="'width:'+returnProgress(openList.length,list.length)+'%;background: #F9B115;'">
+											</div>
 										</div>
 									</div>
 									<div class="operation-item">
 										<div class="operation-label">
 											<span class="label">关闭数</span>
-											<span class="number alibaba">1</span>
+											<span class="number alibaba">{{list.length-openList.length}}</span>
 										</div>
 										<div class="operation-test">
-											<div class="test-number" style="width:100%;background: #BDC7DB;"></div>
+											<div class="test-number"
+												:style="'width:'+returnProgress(list.length-openList.length,list.length)+'%;background: #BDC7DB;'">
+											</div>
 										</div>
 									</div>
 								</div>
 								<div class="light-list">
-									<div class="light-item">
+									<div class="light-item" v-for="(item,index) in list" :key="index">
 										<div class="item-box">
 											<div class="light-top">
 												<i class="iconfont huifont-zhaoming"></i>
-												<el-switch v-model="value" @change="changeDoor"></el-switch>
-											</div>
-											<div class="label hui-ellipsis">
-												照明1
+												<el-switch v-model="item.state" :active-value="1" :inactive-value="2"
+													@change="value=>changeDoor(value,item)">
+												</el-switch>
 											</div>
+											<div class="label hui-ellipsis">{{item.name}}</div>
 										</div>
 									</div>
 								</div>
@@ -60,23 +67,62 @@
 </template>
 
 <script>
-	import testAlarm from '@/components/work/common/testAlarm'
-	import selectSpace from '@/components/work/common/selectSpace'
+	import projectItemTree from '@/components/common/projectItemTree'
 	import model from '@/components/work/common/model'
+	import {
+		getEnergyDeviceList,
+		updateEnergyDevice
+	} from '@/httpApi/test'
 	export default {
 		data() {
 			return {
-				value: false
+				list: [],
+				openList: []
 			}
 		},
+		created() {
+			this.init();
+		},
 		methods: {
-			changeDoor() {
-				this.$refs.model.indoor(this.value, ['2828342']);
-			}
+			init(option) {
+				let postData = {
+					type: 4,
+					projectId: this.$store.getters.project.id
+				}
+				if (option) postData = Object.assign(postData, option);
+				getEnergyDeviceList(postData).then(res => {
+					this.list = res.data.map(node => {
+						if (node['column2']) node['column2'] = node.column2.split(',');
+						return node;
+					})
+					this.openList = this.list.filter(node => node.state === 1);
+					if (this.$refs.model) this.$refs.model.setData(this.openList);
+				})
+			},
+			returnProgress(num, all) {
+				if (all === 0) return 0;
+				return (num / all).toFixed(4) * 100
+			},
+			changeDoor(value, item) {
+				updateEnergyDevice({
+					id: item.id,
+					state: value
+				}).then(res => {
+					if (res.state) {
+						this.$message.success('操作成功');
+						this.init();
+					}
+				})
+			},
+			treeclick(item) {
+				let obj = item.id ? {
+					projectItemTargetId: item.id
+				} : {}
+				this.init(obj);
+			},
 		},
 		components: {
-			testAlarm,
-			selectSpace,
+			projectItemTree,
 			model
 		}
 	}

+ 136 - 62
virgo.wzfrontend/console/src/views/work/energy/electrical/lighting/outdoor.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="yui-tree-box">
-		<select-space></select-space>
+		<project-item-tree @treeclick="treeclick" iconfontClass="el-icon-place"></project-item-tree>
 		<div class="hui-tree-content">
 			<div class="outdoor box-background">
 				<div class="outdoor-box">
@@ -31,27 +31,23 @@
 									照明控制
 								</div>
 							</div>
-							<div class="outdoor-operation-list">
-								<div class="light-box">
-									<span class="light-label">
-										独立控制
-									</span>
-									<div class="light-operation" v-if="checkList.length > 0">
-										<el-button size="mini" type="primary" @click="open(true)">打开</el-button>
-										<el-button size="mini" @click="open(false)">关闭</el-button>
-									</div>
-								</div>
-								<el-checkbox-group class="outdoor-operation-box" v-model="checkList">
-									<div class="outdoor-operation-item" v-for="(item,index) in itemList" :key="item.id">
-										<div class="outdoor-operation-box">
-											<el-checkbox :label="item.id">
-												{{item.name}}
-											</el-checkbox>
-											<span class="label color-primary" v-if="item.isOpen">打开</span>
-											<span class="label" v-else>关闭</span>
+							<div class="outdoor-right hui-no-tips" v-if="list.length === 0">
+								<empty width="100" description="暂无灯光"></empty>
+							</div>
+							<div class="operation" v-else>
+								<div class="light-list">
+									<div class="light-item" v-for="(item,index) in list" :key="index">
+										<div class="item-box">
+											<div class="light-top">
+												<i class="iconfont huifont-zhaoming"></i>
+												<el-switch v-model="item.state" :active-value="1" :inactive-value="2"
+													@change="value=>changeDoor(value,item)">
+												</el-switch>
+											</div>
+											<div class="label hui-ellipsis">{{item.name}}</div>
 										</div>
 									</div>
-								</el-checkbox-group>
+								</div>
 							</div>
 						</div>
 					</div>
@@ -62,61 +58,72 @@
 </template>
 
 <script>
-	import testAlarm from '@/components/work/common/testAlarm'
-	import selectSpace from '@/components/work/common/selectSpace'
+	import projectItemTree from '@/components/common/projectItemTree'
 	import model from '@/components/work/common/model'
+	import {
+		getEnergyDeviceList,
+		updateEnergyDevice,
+		updateEnergyDeviceState
+	} from '@/httpApi/test'
 	export default {
 		data() {
 			return {
+				list: [],
 				allChecked: false,
-				checkList: [],
-				itemList: [{
-					id: 1,
-					name: '1F',
-					isOpen: false,
-					elementId: '834601'
-				}, {
-					id: 2,
-					name: '2F',
-					isOpen: false,
-					elementId: '856814'
-				}, {
-					id: 3,
-					name: '3F',
-					isOpen: false,
-					elementId: '883538'
-				}, {
-					id: 4,
-					name: '外墙',
-					isOpen: false,
-					elementId: '912369'
-				}]
+				postData: {}
 			}
 		},
+		created() {
+			this.init();
+		},
 		methods: {
-			name() {
-
+			init(option) {
+				let postData = {
+					type: 5,
+					projectId: this.$store.getters.project.id
+				}
+				if (option) {
+					postData = Object.assign(postData, option);
+					this.postData = postData;
+				}
+				getEnergyDeviceList(postData).then(res => {
+					this.list = res.data.map(node => {
+						if (node['column2']) node['column2'] = node.column2.split(',');
+						return node;
+					})
+					let openList = this.list.filter(node => node.state === 1);
+					this.allChecked = openList.length === this.list.length;
+					if (this.$refs.model) this.$refs.model.setData(openList);
+				})
 			},
 			changeAllChecked(val) {
-				this.$refs.model.outdoor(val, this.itemList.map(node => node.elementId));
-				for (var i = 0; i < this.itemList.length; i++) {
-					this.itemList[i].isOpen = val;
-				}
+				updateEnergyDeviceState(val ? 1 : 2, this.list.map(node => node.id)).then(res => {
+					if (res.state) {
+						this.$message.success('操作成功');
+						this.init(this.postData);
+					}
+				})
+			},
+			changeDoor(value, item) {
+				updateEnergyDevice({
+					id: item.id,
+					state: value
+				}).then(res => {
+					if (res.state) {
+						this.$message.success('操作成功');
+						this.init(this.postData);
+					}
+				})
+			},
+			treeclick(item) {
+				let obj = item.id ? {
+					projectItemTargetId: item.id
+				} : {}
+				this.init(obj);
 			},
-			open(isOpen) {
-				let data = this.itemList.filter(node => this.checkList.filter(res => res === node.id).length > 0);
-				this.$refs.model.outdoor(isOpen, data.map(node => node.elementId));
-				for (var i = 0; i < data.length; i++) {
-					data[i].isOpen = isOpen;
-				}
-				this.allChecked = this.itemList.filter(res => !res.isOpen) == 0;
-				this.checkList = [];
-				this.$message.success('操作成功');
-			}
 		},
 		components: {
-			testAlarm,
-			selectSpace,
+			projectItemTree,
 			model
 		}
 	}
@@ -129,6 +136,66 @@
 		padding: 20px;
 		overflow: auto;
 
+		.light-list {
+			display: flex;
+			flex-wrap: wrap;
+
+			.light-line {
+				width: 10px;
+			}
+
+			.light-top {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				i {
+					font-size: 28px;
+				}
+			}
+
+			.light-item {
+				flex: 1;
+				min-width: 33.33333%;
+				margin-top: 12px;
+				padding-right: 10px;
+			}
+
+			.item-box {
+				height: 100px;
+				padding: 14px 10px 16px 10px;
+				background: #1E2430;
+				border-radius: 8px;
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+			}
+
+			.el-switch {
+				.el-switch__core {
+					width: 24px !important;
+					height: 12px;
+					line-height: 12px;
+					background: rgba(255, 255, 255, 0.2);
+					border: none;
+				}
+			}
+
+			.el-switch.is-checked .el-switch__core {
+				background: $--color-primary;
+			}
+
+			.el-switch .el-switch__core::after {
+				width: 10px;
+				height: 10px;
+				top: 1px;
+			}
+
+			.el-switch.is-checked .el-switch__core::after {
+				margin-left: -10px;
+			}
+		}
+
 		.outdoor-box {
 			width: 100%;
 			height: 100%;
@@ -172,6 +239,13 @@
 			flex-direction: column;
 		}
 
+		.operation {
+			flex: 1;
+			height: 0;
+			overflow-y: auto;
+			padding: 0px 10px 0px 20px;
+		}
+
 		.outdoor-operation-title {
 			padding: 20px 20px 0px 20px;
 		}

+ 73 - 250
virgo.wzfrontend/console/src/views/work/energy/electrical/powerdistribution.vue

@@ -1,256 +1,36 @@
 <template>
 	<div class="yui-tree-box">
-		<select-space></select-space>
-		<div class="hui-tree-content">
+		<div class="hui-tree-content" style="padding: 0;">
 			<div class="powerdistribution box-background">
 				<div class="powerdistribution-box">
 					<div class="powerdistribution-center">
-						<test-alarm></test-alarm>
+						<test-alarm :type="14"></test-alarm>
 						<div class="bim-box">
-							<model type="powerdistribution" fileId="10000815010702"></model>
+							<model ref="model" type="powerdistribution" fileId="10000815010702"></model>
 						</div>
 					</div>
 					<div class="powerdistribution-right">
-						<div class="device-item-box">
-							<div class="device-item">
+						<div class="device-item-box hui-no-tips" v-if="list.length === 0">
+							<empty width="100" description="暂无设备"></empty>
+						</div>
+						<div class="device-item-box" v-else>
+							<div class="device-item" v-for="(item,index) in list" :key="item.id">
 								<div class="item-title color-font">
-									<div class="hui-tag hui-tag-success">正常</div>
-									<span class="name">3号变压器</span>
-									<div class="nuit">
-										本月电量 <span class="number alibaba color-cyan">132153.1</span>kwh
-									</div>
-								</div>
-								<div class="item-box">
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
-											</div>
-											<div class="label">
-												Ua电压(V)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
-											</div>
-											<div class="label">
-												la电压(A)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
-											</div>
-											<div class="label">
-												三相有功功率(KW)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												52321.0
-											</div>
-											<div class="label">
-												三相无功功率(KVar)
-											</div>
-										</div>
+									<div>
+										<div class="hui-tag hui-tag-info" v-if="!item.state">离线</div>
+										<div class="hui-tag hui-tag-warning" v-if="item.state === 1">故障</div>
+										<div class="hui-tag hui-tag-success" v-if="item.state === 2">正常</div>
 									</div>
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												233
-											</div>
-											<div class="label">
-												Ub电压(V)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												255
-											</div>
-											<div class="label">
-												la电流(B)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												0
-											</div>
-											<div class="label">
-												PVUR(%)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												0
-											</div>
-											<div class="label">
-												漏电电流(mA)
-											</div>
-										</div>
-									</div>
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												233.2
-											</div>
-											<div class="label">
-												Uc电压(V)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												234.4
-											</div>
-											<div class="label">
-												la电流(C)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												234.6
-											</div>
-											<div class="label">
-												PVR(%)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												55
-											</div>
-											<div class="label">
-												频率(Hz)
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="device-item">
-								<div class="item-title color-font">
-									<div class="hui-tag hui-tag-error">故障</div>
-									<span class="name">3号变压器</span>
+									<span class="name">{{item.name}}</span>
 									<div class="nuit">
-										本月电量 <span class="number alibaba color-cyan">132153.1</span>kwh
+										本月电量 <span class="number alibaba color-cyan">{{item.column1}}</span>kwh
 									</div>
 								</div>
 								<div class="item-box">
 									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-red">
-												236
-											</div>
-											<div class="label">
-												Ua电压(V)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
-											</div>
-											<div class="label">
-												la电压(A)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
-											</div>
-											<div class="label">
-												三相有功功率(KW)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												52321.0
-											</div>
-											<div class="label">
-												三相无功功率(KVar)
-											</div>
-										</div>
-									</div>
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												233
-											</div>
-											<div class="label">
-												Ub电压(V)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												255
-											</div>
-											<div class="label">
-												la电流(B)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												0
-											</div>
-											<div class="label">
-												PVUR(%)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												0
-											</div>
-											<div class="label">
-												漏电电流(mA)
-											</div>
-										</div>
-									</div>
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												233.2
-											</div>
-											<div class="label">
-												Uc电压(V)
-											</div>
-										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												234.4
-											</div>
-											<div class="label">
-												la电流(C)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												234.6
-											</div>
-											<div class="label">
-												PVR(%)
-											</div>
-										</div>
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												55
-											</div>
-											<div class="label">
-												频率(Hz)
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="device-item">
-								<div class="item-title color-font">
-									<div class="hui-tag hui-tag-info">离线</div>
-									<span class="name">3号变压器</span>
-									<div class="nuit">
-										本月电量 <span class="number alibaba color-cyan">132153.1</span>kwh
-									</div>
-								</div>
-								<div class="item-box">
-									<div class="item-number">
-										<div class="number-item">
-											<div class="number alibaba color-green">
-												236
+												{{item.data.uaV}}
 											</div>
 											<div class="label">
 												Ua电压(V)
@@ -258,15 +38,15 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												236
+												{{item.data.laA}}
 											</div>
 											<div class="label">
-												la电(A)
+												la电(A)
 											</div>
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												236
+												{{item.data.usefulPower}}
 											</div>
 											<div class="label">
 												三相有功功率(KW)
@@ -274,7 +54,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												52321.0
+												{{item.data.UselessPower}}
 											</div>
 											<div class="label">
 												三相无功功率(KVar)
@@ -284,7 +64,7 @@
 									<div class="item-number">
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												233
+												{{item.data.ubV}}
 											</div>
 											<div class="label">
 												Ub电压(V)
@@ -292,7 +72,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												255
+												{{item.data.lbA}}
 											</div>
 											<div class="label">
 												la电流(B)
@@ -300,7 +80,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												0
+												{{item.data.pvur}}
 											</div>
 											<div class="label">
 												PVUR(%)
@@ -308,7 +88,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												0
+												{{item.data.leakA}}
 											</div>
 											<div class="label">
 												漏电电流(mA)
@@ -318,7 +98,7 @@
 									<div class="item-number">
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												233.2
+												{{item.data.ucV}}
 											</div>
 											<div class="label">
 												Uc电压(V)
@@ -326,7 +106,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												234.4
+												{{item.data.lcA}}
 											</div>
 											<div class="label">
 												la电流(C)
@@ -334,7 +114,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												234.6
+												{{item.data.pvr}}
 											</div>
 											<div class="label">
 												PVR(%)
@@ -342,7 +122,7 @@
 										</div>
 										<div class="number-item">
 											<div class="number alibaba color-green">
-												55
+												{{item.data.hz}}
 											</div>
 											<div class="label">
 												频率(Hz)
@@ -361,14 +141,57 @@
 
 <script>
 	import testAlarm from '@/components/work/common/testAlarm'
-	import selectSpace from '@/components/work/common/selectSpace'
 	import model from '@/components/work/common/model'
+	import {
+		getEnergyDeviceList
+	} from '@/httpApi/test'
 	export default {
 		components: {
 			testAlarm,
-			selectSpace,
 			model
-		}
+		},
+		data() {
+			return {
+				list: []
+			}
+		},
+		created() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getEnergyDeviceList({
+					projectId: this.$store.getters.project.id,
+					type: 1
+				}).then(res => {
+					this.list = res.data.map(node => {
+						if (node['data']) node['data'] = JSON.parse(node.data);
+						if (node['column2']) node['column2'] = JSON.parse(node.column2);
+						node.html = `<div class="tips-5" style="width:170px;transform: scale(0.6);transform-origin: 0% 0%;">
+									<div class="title"><i class="iconfont huifont-shuzhuangcaidanxiala"></i>${node.name}</div>
+									<div class="content">
+										<div class="tips-6">
+											<div class="item">
+												<div class="label">Ua电压(V)</div>
+												<div class="value">${node.data.ubV}</div>
+											</div>
+											<div class="item">
+												<div class="label">Ub电压(V)</div>
+												<div class="value">${node.data.ubV}</div>
+											</div>
+											<div class="item">
+												<div class="label">Uc电压(V)</div>
+												<div class="value">${node.data.ucV}</div>
+											</div>
+										</div>
+									</div>
+								</div>`
+						return node
+					})
+					if (this.$refs.model) this.$refs.model.setData(this.list);
+				})
+			}
+		},
 	}
 </script>