rabin 7 years ago
parent
commit
c3989b57c0
3 changed files with 136 additions and 1 deletions
  1. 58 0
      front/page/device.py
  2. 77 0
      front/templates/pc/device/screens.html
  3. 1 1
      service/device.py

+ 58 - 0
front/page/device.py

@@ -147,6 +147,64 @@ class screen_set_path(Load):
 		state = self.service('common').update('farm', id, update)
 		self.out('yes', {'id':state})
 
+#特殊的大屏幕
+class screens_path(Load):
+	@Web.setting
+	def get(self):
+		farm = self.input('ids', '2,3,4')
+		self.data['farm'] = farm
+		farm = farm.split(',')
+		device = self.input('device')
+		farmInfo = self.service('common').one('farm', id=farm[0])
+		# 获取摄像头图片
+		#self.data['camera'] = Device.get(self, search={'hardware_type':6,'farm_id--ins':farm})
+		self.data['camera'] = []
+		# 获取当前数据
+		deviceList = Device.get(self, search={'hardware_type--ins':(2,4,5),'farm_id--ins':farm})
+		self.data['device'] = {}
+		for v in farm:
+			self.data['device'][v] = []
+		deviceInfo = {}
+		devices = []
+		if deviceList:
+			for key, value in enumerate(deviceList):
+				if value['type_id'] > 0:
+					type_info = self.service('common').one('device_type', id=value['type_id'])
+					value['unit'] = type_info['unit']
+					value['typeName'] = type_info['name']
+					self.data['device'][str(value['farm_id'])].append(value)
+					devices.append(value['id'])
+					if not device and not deviceInfo:
+						deviceInfo = value
+		self.data['deviceList'] = {}
+		for v in farm:
+			farmData = self.service('common').one('farm', id=int(v))
+			if farmData:
+				self.data['deviceList'][v] = ({'name':farmData['name'] + '实时检测', 'device':self.data['device'][v]},)
+
+		Device.statBase(self, deviceInfo)
+		log_search = {}
+		if device:
+			log_search['device_id'] = device
+		else:
+			log_search['device_id--ins'] = devices
+		log_search['type_id'] = 2
+		log_search['farm_id--ins'] = farm
+		# 获取设备日志
+		self.data['logs'] = self.service('common').list('msg', search=log_search, limit='0,1')
+		if self.data['logs']:
+			for key, value in enumerate(self.data['logs']):
+				type_info = self.service('common').one('msg_type', id=value['type_id'])
+				self.data['logs'][key]['type'] = type_info['name']
+				self.data['logs'][key]['cdates'] = Demeter.date(value['cdate'])
+		self.data['info'] = farmInfo
+		if not self.data['info']['welcome']:
+			self.data['info']['welcome'] = self.data['info']['name']
+
+		self.data['noset'] = True
+		self.data['stat'] = True
+		self.view("device/screens.html")
+
 #获取设备数据和设备控制
 class data_path(Load):
 	@Web.auth

+ 77 - 0
front/templates/pc/device/screens.html

@@ -0,0 +1,77 @@
+{%set loadUrl = '/device/screens?ajax=1&ids=' + data['farm'] %}
+{% if data['ajax'] == False %}
+<!DOCTYPE html>
+<html>
+    <head>
+        {%include '../inc/header.html'%}
+        <link href="{{static_url('pc/css/pmjk.css')}}" rel="stylesheet">
+    </head>
+    <body>
+        <div class="wrapper clearfix">
+            <div class="right-cont">
+	    		<div class="top">
+	    			<h1>{{data['info']['welcome']}}</h1>
+	    		</div>
+	    		<div class="main">
+	                <div class="left w-half">
+	                    <div class="pannel" name="chart" id="chart">
+	                        <h2>今日(<span class="name">{{data['deviceInfo']['name']}}</span>)数据趋势</h2>
+	                        <div class="box" id="main" style="width: 100%;height:300px;">
+    						</div>
+	                    </div>
+                        <div id="loadMain_0">
+                            {% end %}
+    	                    {% if data['camera'] %}
+    	                    <div class="pannel">
+    	                        <h2>图像切换</h2>
+    	                        <div class="box">
+    	                            <div class="cam-list">
+    	                                <div class="cam"><img src="{{data['camera'][0]['value']}}" width="100%"></div>
+    	                            </div>
+    	                            <div class="cam-tabs">
+    		                            {% for v in data['camera'] %}
+    		                            <a href="javascript:;" class="cur" data-source="{{v['value']}}">{{v['name']}}</a>
+    		                            {% end %}
+    	                            </div>
+    	                        </div>
+    	                    </div>
+    	                    {% end %}
+    	                    {% if data['logs'] %}
+    	                    <div class="pannel">
+    	                        <ul class="logs">
+    	                            {% for v in data['logs'] %}
+    					            <li><h3>{{v['type']}}</h3><p>{{v['content']}}</p><p class="time">{{v['cdates']}}</p></li>
+    					            {% end %}
+    	                        </ul>
+    	                    </div>
+    	                    {% end %}
+                            {% if data['ajax'] == False %}
+                            {% else %}
+                            ||
+                            {% end %}
+                            {% if data['ajax'] == False %}
+                        </div>
+	                </div>
+	                <div class="right w-half" id="loadMain_1">
+	                	{% end %}
+	                	{% for k in data['deviceList'] %}
+	                	{%set data['list']=data['deviceList'][k] %}
+	                	{%include 'inc/data.html'%}
+	                	{% end %}
+	                	{% if data['ajax'] == False %}
+	                </div>
+	    		</div>
+	    	</div>
+        </div>
+    </div>
+{%include '../inc/footer.html'%}
+{%include '../inc/script.html'%}
+{%include 'chart/simple.html'%}
+{% else %}
+{%include 'chart/ajax.html'%}
+{% end %}
+{% if data['ajax'] == False %}
+{%include 'inc/load.html'%}
+</body>
+</html>
+{% end %}

+ 1 - 1
service/device.py

@@ -33,7 +33,7 @@ class Device(object):
 				insert['hardware_id'] = hardware_id
 				insert['gateway_id'] = gateway_id
 				insert['hardware_type'] = 4
-				insert['value'] = '2'
+				insert['value'] = '0'
 				insert['type_id'] = 8
 				insert['status'] = False
 				Demeter.service('common').update('device_info', None, insert)