rabin 8 éve
szülő
commit
972951f8fd

+ 17 - 3
front/page/device.py

@@ -37,10 +37,19 @@ class mul_path(Load):
 			if info:
 				update = {}
 				update['value'] = value
-				if value == '1':
-					update['oper'] = '批量启动中'
+				if info['device_type'] == 1:
+					if value == '1':
+						update['oper'] = '批量启动中'
+					else:
+						update['oper'] = '批量关闭中'
 				else:
-					update['oper'] = '批量关闭中'
+					if value == '1':
+						update['oper'] = '批量升起中'
+					elif value == '2':
+						update['oper'] = '批量下降中'
+					elif value == '5':
+						update['oper'] = '批量停止中'
+						
 				self.service('common').update('device_mul', id, update, cdate=False)
 				if info['devices']:
 					devices = tuple(eval(info['devices']))
@@ -302,6 +311,7 @@ class update_set_mul_path(Load):
 
 		self.data['gateway'] = self.service('common').list('device_gateway', search={'farm_id':self.data['setting']['farm']})
 		self.data['device'] = Device.getByGateway(self, search={'hardware_type' : 3,'farm_id':self.data['setting']['farm']})
+		self.data['type'] = ({'id':1, 'name':'开关'},{'id':2, 'name':'卷帘'})
 		self.view("device/alert/mul.html")
 
 	@Web.auth
@@ -309,10 +319,14 @@ class update_set_mul_path(Load):
 		id = self.input('id')
 		update = {}
 		update['name'] = self.input('update_name')
+		update['device_type'] = self.input('update_type')
 		update['devices'] = self.inputs('update_devices')
 		if not update['name']:
 			self.out(u'请输入名称')
 			return
+		if not update['device_type']:
+			self.out(u'请选择设备类型')
+			return
 		if not update['devices']:
 			self.out(u'请选择设备')
 			return

+ 2 - 2
front/templates/mobile/device/inc/data.html

@@ -33,7 +33,7 @@
     </li>
     {% elif value['hardware_type'] == 3 and value['unit'] == 'button' %}
     <li class="form-input buttons">
-        {%set layer = False %}
+        {%set layer = '' %}
         {% if value['exp'] != '-1' and  value['exp'] != '1' and value['exp'] != 'None' and value['exp'] %}
         {%set layer = value['exp'] %}
         {% end %}
@@ -51,7 +51,7 @@
     </li>
     {% elif value['hardware_type'] == 3 %}
     <li class="form-input">
-        {%set layer = False %}
+        {%set layer = '' %}
         {% if value['exp'] != '-1' and  value['exp'] != '1' and value['exp'] != 'None' and value['exp'] %}
         {%set layer = value['exp'] %}
         {% end %}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 21 - 0
front/templates/mobile/device/mul.html


+ 52 - 1
front/templates/pc/device/alert/mul.html

@@ -1,5 +1,56 @@
 <input type="hidden" name="id" id="id" value="{% if 'info' in data and data['info'] and 'id' in data['info'] and data['info']['id'] > 0 %}{{data['info']['id']}}{% end %}" />
 <div class="form">
     <label><span>控制名称:</span><input type="text" name="update_name" id="update_name" value="{% if 'info' in data and data['info'] and 'name' in data['info'] and data['info']['name'] %}{{data['info']['name']}}{% end %}" placeholder="批量控制名称"></label>
-    {%include 'select.html'%}
+    
+    <label><span>设备类型:</span>
+    <select id="update_type" name="update_type" onchange="selectDevice($(this))">
+    	{% for v in data['type'] %}
+        <option value="{{v['id']}}" {% if 'info' in data and data['info'] and 'device_type' in data['info'] and data['info']['device_type'] == v['id'] %}selected{% end %}>{{v['name']}}</option>
+        {% end %}
+    </select>
+    </label>
+
+
+    {% if Demeter.isset('span') == 0 %}<label><span>选择设备:</span></label>{% end %}
+	<div class="flex-cont">
+	    <div class="scroller">
+	        <ul>
+	            {% for v in data['gateway'] %}
+	            <li tab-id="{{v['id']}}" id="gateway_{{v['id']}}"><a href="javascript:;">{{v['name']}}</a></li>
+	            {% end %}
+	        </ul>
+	    </div>
+	    <div class="scroller tab-cont">
+	        {% for k,v in enumerate(data['gateway']) %}
+	        <ul tab-cont-id="{{v['id']}}" {% if k == 0 %}style="display: block;"{% else %}style="display: none;"{% end %}>
+	            {% if data['device'] and v['id'] in data['device'] %}
+	            {% for d in data['device'][v['id']] %}
+
+	            {%set type = Demeter.service('common').one('device_type', id=d['type_id'])%}
+	            <li {% if type['unit'] == 'button' %}class="device_type device_type_2"{% else %}class="device_type device_type_1"{% end %}><label><input type="checkbox" name="update_devices" ids="update_devices" value="{{d['id']}}" data-parent="{{v['id']}}" {% if 'devices' in data['info'] and d['id'] in data['info']['devices'] %}checked{% end %}><span>{{d['name']}}</span></label></li>
+	            {% end %}
+	            {% end %}
+	        </ul>
+	        {% end %}
+	    </div>
+	</div>
+
+	<script type="text/javascript">
+	    $('.scroller').on('click','[tab-id]',function(){
+	        var tabid = $(this).attr('tab-id');
+	        $('.tab-cont [tab-cont-id="'+tabid+'"]').show().siblings().hide();
+	    })
+	    function selectDevice(e) {
+	    	var v = e.val();
+	    	var id = '.device_type_' + v;
+	    	$(".device_type").hide();
+	    	$(id).show();
+	    }
+
+	    $(function()
+	    {
+	    	$("#update_type").change();
+	    });
+	</script>
+
 </div>

+ 3 - 0
front/templates/pc/device/data.html

@@ -8,6 +8,9 @@
         <link href="{{static_url('pc/lib/player/video-js.min.css')}}" rel="stylesheet">
         {% end %}
         <style>
+        .btn-switch {
+            cursor: pointer;
+        }
         .button dt {
             margin-top: -9px;
             padding-bottom: 9px;

+ 2 - 2
front/templates/pc/device/inc/data.html

@@ -39,7 +39,7 @@
             {% if 'noset' not in data %}
             <dd class="controller"></dd>
             {% end %}
-            {%set layer = False %}
+            {%set layer = '' %}
             {% if value['exp'] != '-1' and  value['exp'] != '1' and value['exp'] != 'None' and value['exp'] %}
             {%set layer = value['exp'] %}
             {% end %}
@@ -57,7 +57,7 @@
             {% if 'noset' not in data %}
             <dd class="controller"></dd>
             {% end %}
-            {%set layer = False %}
+            {%set layer = '' %}
             {% if value['exp'] != '-1' and  value['exp'] != '1' and value['exp'] != 'None' and value['exp'] %}
             {%set layer = value['exp'] %}
             {% end %}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 24 - 1
front/templates/pc/device/mul.html


+ 1 - 0
model/device_mul.py

@@ -16,5 +16,6 @@ class Device_mul(Model):
 	devices = Fields(type='text', comment='设备id,逗号隔开')
 	oper = Fields(type='varchar(500)', comment='操作状态')
 	value = Fields(type='varchar(10)', comment='开关状态')
+	device_type = Fields(type='int', comment='设备类型,1为开关2为卷帘')
 	state = Fields(type='boolean', default='True', comment='数据存在状态')
 	cdate = Fields(type='int', default='time', comment='创建时间')

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott