{% extends "data_edit.html" %} {% load i18n %} {% block headajaxjs %} {% endblock %} {% block form %} {% if request.user|HasPerm:"iclock.add_device" or request.user|HasPerm:"iclock.change_device" %} {% autoescape off %}

{% trans '第一步:选择设备类型' %}

{{ form.device_type|field_as_td_h }}

{% trans '第二步:添加设备信息' %}

{{ form.device_brand|field_as_td_h }}{{ form.alias|field_as_td_h }}{{ form.sn|field_as_td_h }}{{ form.comm_type|field_as_td_h }}{{ form.ipaddress|field_as_td_h }}{{ form.ip_port|field_as_td_h }}{{ form.com_port|field_as_td_h }}{{ form.com_address|field_as_td_h }}{{ form.baudrate|field_as_td_h }}{{ form.tz_adj|field_as_td_h }}{{ form.trans_interval|field_as_td_h }}{{ form.log_stamp|field_as_td_h }}{{ form.oplog_stamp|field_as_td_h }}{{ form.photo_stamp|field_as_td_h }}{{ form.update_db|field_as_td_h }}{{ form.trans_times|field_as_td_h }}{{ form.city|field_as_td_h }}{{ form.realtime|field_as_td_h }}{{ form.max_comm_size|field_as_td_h }}{{ form.max_comm_count|field_as_td_h }}{{ form.delay|field_as_td_h }}{{ form.video_login|field_as_td_h_asterisk }}{{ form.comm_pwd|field_as_td_h }}{{ form.acpanel_type|field_as_td_h }}{{ form.four_to_two|field_as_td_h }} {% block ele_extboard_html %} {{ form.ele_extboard_count|field_as_td_h }} {{ form.relay_per_board|field_as_td_h }} {% endblock %} {{ form.sync_time|field_as_td_h }}{{ form.area|field_as_td_h }}{{ form.tz_adj|field_as_td_h }}{{ form.video_channel_count|field_as_td_h }}
{% trans "旧密码"%}:  {% trans "验证" %}   
{% trans "新密码"%}:
{%trans "确认密码"%}:  
{% trans "新增时删除设备中数据" %}:
{% if form.non_field_errors %} {{ form.non_field_errors }} {% endif %} {% endautoescape %} {% endif %} {% endblock %} {% block addjs %} {% if request.user|HasPerm:"iclock.add_device" or request.user|HasPerm:"iclock.change_device" %} $("#id_comm_pwd").keypress(function(evt){ if(this.value.length == 15) { if(evt.preventDefault) { evt.preventDefault(); } evt.returnValue=false; } }); $("#id_comm_pwd").bind("onkeypress",function(){alert(this.value);}); var dev_types = {{ "mysite"|get_device_types }}.toString(); var sel_dev_types = dev_types.split(",");//获取到得设备类型,如[2],[1,2] $("#video_channel_count").hide(); $(".tbl_data_edit").css({width:"98%"}); //ip地址输入框 var ipv4 = new IpV4Box("ipv4" , "ip_input"); ipv4.setValue($("#id_ipaddress").val()); $("#device_brand").hide(); $("#id_acpanel_type option:first").remove(); function after_init() { if($("#id_edit_form").find("#id_alias").val() == "")//新增时开始隐藏放弃、确定等按钮 { if(sel_dev_types.length > 1)//多个子系统时临时隐藏最下面的OK和取消 { $(".editformbtn").hide(); } } device_id = 0;//--全局变量 device_id = $($("#id_datalist").get(0).current_row).attr("data");//Model中的id } //保存并继续 function after_save_continue() { if(sel_dev_types.length > 1) { $(".editformbtn").hide(); $("#div_id_second").hide(); $("#div_id_shownext").show(); $("#div_id_first").show(); } } function before_submit() { if((!$("#id_comm_pwd").attr("readonly")) && $("#id_edit_form").find("#id_alias").val() != "") { if(state1) { if(check_old_comm_pwd) { if(b_check_comm_pass) { $("#id_comm_pwd").val($("#new_comm_pwd").val()); } else if((!b_check_comm_pass) && $("#new_comm_pwd").val()=="" && $("#confirm_comm_pwd").val()=="" && $("#e_msg2").find("font[color='red']").length==0) { $("#id_comm_pwd").val(""); }else { return false; } } else { return false; } } } $("#id_ipaddress").attr("value",ipv4.getValue()); //验证--虽然非星号,但是tcp/ip,串口必填其一 var comm_type_val = $("#tr_comm_type input[name='comm_type']:checked").val(); var alias = $("#id_alias").val(); var device_sn = $("#id_sn").val(); var comm_pwd = $("#id_comm_pwd").val() var ip_address = $("#id_ipaddress").val(); var ip_port = $("#id_ip_port").val(); var com_address = $("#id_com_address").val(); var com_port = $("#id_com_port").val(); var baudrate = $("#id_baudrate option:selected").text(); var alias = $("#id_alias").val(); var four_to_two = $("#id_four_to_two").attr("checked"); var acpanel_type = $("#id_acpanel_type").val(); var area = $("input[name='area']").val(); var vid_login_name = $("#id_video_login").val(); if(alias === "" || alias.replace(/^\s\s*/, '' ).replace(/\s\s*$/, '' ) === "") { alert(gettext("设备名称不能为空")); return false; } //考勤机必须输入序列号 if((att_checked || comm_type_val=='3') && device_sn == "" && !videoserver_checked) { alert(gettext("设备序列号不能为空")); $("#id_sn").focus(); return false; } if( comm_type_val == '1'|| comm_type_val == '3' ) { var reg = /^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/; if(ip_address == "" ||(ip_address != "" && !reg.test(ip_address)))// !reg.exec(reg) )?????? { alert(gettext("请输入一个有效的IPv4地址"));//Enter a valid IPv4 address. $("#id_ipaddress").focus(); return false; } else if(ip_port == "" || !/^[0-9]*$/.test(ip_port)) { alert(gettext("请输入一个有效的IP端口号")); $("#id_ip_port").focus(); return false; } $("#id_com_address").val(""); $("#id_com_port").val(""); $("#id_baudrate").val(""); } else if(comm_type_val == '2') { if(com_address == "") { alert(gettext("请输入一个RS485地址")); $("#id_com_address").focus(); return false; } var reg_addr = /^[0-9]+$/; if(!reg_addr.test(com_address) || com_address > 255 || com_address <1) { alert(gettext("485地址必须为1到255之间的数字")); $("#id_com_address").focus(); return false; } if(com_port == "") { alert(gettext("请选择串口号")); $("#id_com_port").focus(); return false; } if(baudrate == "") { alert(gettext("请选择波特率")); $("#id_baudrate").focus(); return false; } $("#id_ipaddress").val(""); $("#id_ip_port").val(""); } if(area == "") { alert(gettext("请选择设备所属区域")); return false; } $("#id_device_brand").attr("disabled", false); $("#id_sn").attr("disabled",false); if (acc_checked || videoserver_checked || ele_checked)//门禁 或 视频服务器 或者电梯 { if($("#id_acpanel_type").attr("disabled") == true)//门禁(视频)编辑时的处理,且不执行下面的判断 { $("input[id^='id_comm_type_']").each(function(){ $(this).attr("disabled",false); }); $("#id_acpanel_type").attr("disabled",false); //$("#id_sn").attr("disabled", false); $("#id_ipaddress").attr("readonly", false); ipv4.setEnable("false"); $("#id_ip_port").attr("readonly", false); $("#id_com_address").attr("readonly", false); $("#id_baudrate").attr("disabled", false); if(videoserver_checked) { if(vid_login_name == "") { alert(gettext("用户名不能为空")); return false; } //视频不需要再执行下面的脚本,直接返回 } else { $("#id_comm_pwd").attr("readonly", false); } if(ele_checked) { //如果是编辑,保证能提交表单-darcy20120813 $("#id_ele_extboard_count").attr("disabled", false); $("#id_relay_per_board").attr("disabled", false); } return true; //编辑时直接返回 } //非编辑状态将继续执行 } if(att_checked) { return true;//考勤不需要再执行下面的脚本,直接返回 } if(ele_checked) { var extboard_count = $("#id_ele_extboard_count").val(); //alert(extboard_count) $("#id_relay_per_board").attr("disabled", false) if(extboard_count!="" && extboard_count>0) { var relay_per_board = $("#id_relay_per_board").val(); //alert(relay_per_board) if(relay_per_board == "") { alert(gettext("请选择每个扩展板的继电器数量!")); return false; } } } if(videoserver_checked) { var device_brand = $("#id_device_brand").val(); var checkVideoParam = false; $.ajax({ type: "GET", url: "/{{ request.surl }}video/GetData/?func=connect_video&brand="+device_brand+"&ip="+ip_address+"&port="+ip_port+"&name="+vid_login_name+"&pwd="+comm_pwd, dataType: "json", async: false, success: function(data) { if(data.result > 0) { $("#id_video_channel_count").val(data.result); checkVideoParam = true; } } }); if(!checkVideoParam) { alert(gettext("用户注册失败,请检查设备配置")); } return checkVideoParam; } //加是否是添加控制器,以及是否是新增编辑 //当前设备连接不上,是否需要继续添加?当前门数量与连接的设备不符合,是否需要继续添加? var door_count = $("#id_acpanel_type").val(); var flag = true; function getdata(connect_args) { var stamp = new Date().getTime(); $.ajax({ type: "GET", url: "/{{ request.surl }}iaccess/GetData/?func=connect_dev"+connect_args+"&stamp="+stamp, dataType: "json", async: false, success: function(args) { $("#id_page_load").hide(); if(args['result'] == '485repeat') { alert(gettext("串口:COM")+com_port+gettext(" 的RS485地址:")+com_address+gettext(" 已被占用!")); flag = false; } else if(args['result'] == '485bardrate_error') { alert(gettext("串口:COM")+com_port+gettext(" 已添加过波特率不为:")+baudrate+gettext(" 的设备!同一个串口下不允许存在多个波特率不同的设备。请重新选择波特率!")); flag = false; } else if(args['result'] == '485busy') { alert(gettext("后台通讯忙,请稍后重试!")); flag = false; } else if(args['result'] > 0) { if(args.data == "") { //alert(args.options)//用来调试时打开用-darcy20120530 if(confirm(gettext("提示:设备连接成功,但获取设备扩展参数失败")+"("+args.reason+")"+gettext(",继续添加?"))) { $("#id_connect_result").attr("checked", false); flag = true; } else { flag = false; } } else { var acp_opts = new Array(); //alert(args.data.MachineType+"---"+door_count) //alert(args.data.MachineType) //args.data.MachineType = 11;//临时 if(ele_checked)//if(args.data.MachineType == 11)//梯控主板的machinetype等于11-darcy20120418 { flag = true; $("#id_connect_result").attr("checked", true); for(opt in args.data) { acp_opts.push(opt + "=" + args.data[opt]); } $("#tr_acpanel_type").show(); $("#id_acpanel_type").val(10);//后台给的参数值为10(为了兼容)-darcy20120223 $("#tr_acpanel_type").show(); $("#id_acpanel_options").val(acp_opts); } else if(door_count != args.data.LockCount && args.data.MachineType != '11' && args.data.MachineType != '12') { if(confirm(gettext("提示:设备连接成功,但控制器类型与实际不符,将修改为")+args.data.LockCount+gettext("门控制器,继续添加?"))) { flag = true; $("#id_connect_result").attr("checked", true); for(opt in args.data) { acp_opts.push(opt + "=" + args.data[opt]); } $("#id_acpanel_type").val(args.data.LockCount); $("#id_acpanel_options").val(acp_opts); } else { flag = false; } } else if(args.data.MachineType == 12)//一体机的machinetype等于12-darcy20120223 { if(confirm(gettext("提示:设备连接成功,但控制器类型与实际不符,将修改为")+gettext("一体机,继续添加?"))) { flag = true; $("#id_connect_result").attr("checked", true); for(opt in args.data) { acp_opts.push(opt + "=" + args.data[opt]); } $("#id_acpanel_type").val(5);//虽然一体机也是单门控制器,但是后台给的参数值为5(为了兼容),lockcount等于1暂只代表单门控制器-darcy20120223 $("#tr_acpanel_type").show(); $("#id_acpanel_options").val(acp_opts); } else { flag = false; } } else { //此处可以不加这个提示 if(confirm(gettext("提示:设备连接成功,确定后将添加设备!"))) { flag = true; $("#id_connect_result").attr("checked",true); for(opt in args.data) { acp_opts.push(opt + "=" + args.data[opt]); } //$("#id_acpanel_type").val(args.data.LockCount); $("#id_acpanel_options").val(acp_opts); } else { flag = false; } } } } else { if(args['reason'] == "") { if(confirm(gettext("提示:设备连接失败(错误码:")+args['result']+gettext("),确定添加该设备?"))) { $("#id_connect_result").attr("checked",false); flag = true; } else { flag = false; } } else { if(confirm(gettext("提示:设备连接失败(原因:")+args['reason']+gettext("),确定添加该设备?"))) { $("#id_connect_result").attr("checked",false); flag = true; } else { flag = false; } } } }, error:function(XMLHttpRequest, textStatus, errorThrown) { $("#id_page_load").hide(); alert(gettext("服务器处理数据失败,请重试!错误码:")+"-615"); flag = false; } }); //end of ajax }//end of function getdata $("#id_page_load").show(); var sync_all_data = $("#id_whether_sync_all").attr("checked"); var sync_tips = ""; if(sync_all_data) { sync_tips = gettext("您选择了[新增时删除设备中数据],系统将自动删除设备中的数据(事件记录除外),确定要继续?"); } else { sync_tips = gettext("您没有选择[新增时删除设备中数据],该功能仅用于系统功能演示和测试。请及时手动同步数据到设备,以确保系统中和设备中权限一致,确定要继续?"); } if(!confirm(sync_tips)) { flag = false; $("#id_page_load").hide(); } else { if(comm_type_val == '1') { var connect_args = "&comm_type="+comm_type_val+"&ip="+ip_address+"&ip_port="+ip_port+"&comm_pwd="+comm_pwd+"&acpanel_type="+acpanel_type+"&four_to_two="+four_to_two; getdata(connect_args); } else if(comm_type_val == '2') { var connect_args = "&comm_type="+comm_type_val+"&com_address="+com_address+"&com_port="+com_port+"&baudrate="+baudrate+"&comm_pwd="+comm_pwd+"&acpanel_type="+acpanel_type+"&four_to_two="+four_to_two; getdata(connect_args); } } return flag; } $("#tr_comm_pwd").hide(); $("#m_comm_pwd").hide(); $("#tr_old_comm_pwd").hide(); $("#tr_new_comm_pwd").hide(); $("#tr_conf_comm_pwd").hide(); var state1 = false; //选择门禁控制器和电梯控制器---huangjs20120416 function select_acc_ele(dev_type) { //不显示序列号 $("#id_sn").hide(); $($("#id_sn").parent().parent().find("th")[1]).hide() $(".div_id_att").css("display","None"); $(".div_id_vid").hide();//必须在$(".div_id_acc").show();后 $(".div_id_acc").show(); $("#tr_four_to_two").hide();//4_to_2默认不显示 $("#tr_comm_type td ul li:gt(1)").remove(); if(dev_type == 2) { $("#tr_tzadj").hide(); } //初始通讯方式 var type = $("#tr_comm_type input[name='comm_type']:checked").val(); if(type == '2') { $(".id_http_tcp").hide(); $(".id_com").show(); } else if(type == '1' || type == undefined) { $("#id_comm_type_0").attr("checked","checked"); $(".id_http_tcp").show(); $(".id_com").hide(); } //切换通讯方式 $("#tr_comm_type input[name='comm_type']").click(function(){ if(this.value == '2') { $(".id_http_tcp").hide(); $(".id_com").show(); } if(this.value == '1') { //IP地址输入框 $(".id_http_tcp").show(); $(".id_com").hide(); } }); if(dev_type == 1)//选择门禁控制器 { //切换控制器类型 $("#id_acpanel_type").change(function(){ if($(this).val() == 4) { $("#tr_four_to_two").show(); } else { $("#tr_four_to_two").hide(); $("#tr_four_to_two input").attr("checked",false) } }); } else//选择电梯控制器 { $("#tr_acpanel_type").hide(); $("#id_relay_per_board").attr("disabled", true) $(".div_id_ele").removeClass(); } } $(function(){ //下一步 $("#id_device_next").click(function(){ $("#id_info").hide();//保存并继续时适用 $("#div_id_first").hide(); var title_http_tcpip = "";//考勤机现只支持http,控制器支持tcp/ip不支持http,网络摄像机http att_checked = false;//global acc_checked = false;//global vid_checked = false;//global cam_checked = false;//global ele_checked = false;//global videoserver_checked = false;//global var title = "" $("input[name='device_type']").each(function(){ if($(this).attr("checked"))//设备类型选择 { title = $(this).parent().text(); if($(this).val() == 1) { att_checked = true; } else if($(this).val() == 2) { acc_checked = true; } else if($(this).val() == 5) { ele_checked = true; } else if($(this).val() == 4) { videoserver_checked = true; } } }); //通讯方式必填. $("#alias_sn, #dev_sn, .id_com, .id_http_tcp").find("th label").each(function(){ $(this).attr('class','required'); }); //ip地址输入框-tcp/ip-http if(att_checked)//考勤机--新增和编辑时均适应 { $("#device_brand").hide(); $(".div_id_att").show(); $(".div_id_acc").css("display","None"); $(".div_id_vid").hide(); //通讯方式默认只有http,扩展时只需参考控制器即可 //选中http(隐藏)--模型中comm_type字段默认类型为http,即已选中该radiobutton //$("#tr_comm_type td ul li:lt(2)").remove(); //$("#id_comm_type_2").attr("checked","checked"); $("#tr_comm_type").hide(); $("#tr_sync_all").hide(); $(".id_com").hide(); } else if(acc_checked)//门禁控制器--新增和编辑时均适应 { select_acc_ele(1); } else if(ele_checked)//电梯控制器--新增和编辑时均适应 { select_acc_ele(2); } else if(videoserver_checked) { $("#device_brand").show(); $("#id_sn").hide(); $($("#id_sn").parent().parent().find("th")[1]).hide() $(".div_id_att").css("display","None"); $(".div_id_acc").css("display","None"); $(".div_id_vid").show(); $("#tr_comm_type").hide(); $(".id_com").hide(); if($("#id_edit_form").find("#id_alias").val() == "")//新增 { if ($("#id_device_brand").val() >= 200 && $("#id_device_brand").val() <= 299) //200至299康视频设备 { $("#id_ip_port").val('8000'); } else if ($("#id_device_brand").val() >= 100 && $("#id_device_brand").val() <= 199) //100至199中控视频设备 { $("#id_ip_port").val('80'); } else if ($("#id_device_brand").val() >= 300 && $("#id_device_brand").val() <= 399) //300至399大华视频设备 { $("#id_ip_port").val('37777'); } $("#id_device_brand").change(function(){ if ($(this).val() >= 200 && $(this).val() <= 299) //200至299海康视频设备 { $("#id_ip_port").val('8000'); } else if ($(this).val() >= 100 && $(this).val() <= 199) //100至199中控视频设备 { $("#id_ip_port").val('80'); } else if ($("#id_device_brand").val() >= 300 && $("#id_device_brand").val() <= 399) //300至399大华视频设备 { $("#id_ip_port").val('37777'); } }); } $("#tr_sync_all").hide(); } $("#div_id_second").css("display","block"); $("#div_id_second h2").text($("#div_id_second h2").text().split("(")[0]+"( "+ title +" )"); $("#id_communition #http_tcpip fieldset legend").text(title_http_tcpip); $("#div_id_shownext").css("display","None"); $(".editformbtn").css("display","block"); $("#div_id_first").addClass("displayN");//只读 }); //放弃 $("#id_device_cancel").click(function(){ $("#Cancel").click(); }); $("#div_id_second").css("display","None"); $(".div_id_att").css("display","None"); $(".div_id_acc").css("display","None"); $(".div_id_vid").css("display","None"); if($("#id_edit_form").find("#id_alias").val() != "")//编辑 { $("#id_device_next").click(); $("#id_sn").attr("disabled",true); $("#div_id_second h2").text(gettext('编辑设备信息(')+$("#div_id_second h2").text().split("(")[1]); if(acc_checked || videoserver_checked || ele_checked)//门禁 或 视频服务器 或 梯控 { $("input[id^='id_comm_type_']").each(function(){ $(this).attr("disabled",true); //$(this).attr("onclick","return false;"); }); $("#id_device_brand").attr("disabled", true); $("#id_acpanel_type").attr("disabled", true); $("#id_ipaddress").attr("readonly", true); ipv4.setEnable("true"); $("#id_ip_port").attr("readonly", true); $("#id_com_address").attr("readonly", true); $("#id_baudrate").attr("disabled", true); if(!videoserver_checked)//门禁 { $("#id_comm_pwd").attr("readonly", true); $("#tr_sync_all").hide(); } if(ele_checked) { $("#id_ele_extboard_count").attr("disabled", true); $("#id_relay_per_board").attr("disabled", true); } } } if(sel_dev_types.length == 1) //单考勤单门禁 无须选择 { $("input[name=device_type][value="+sel_dev_types+"]").click(); //选中对应的设备类型 $("#id_device_next").click(); //模仿 点击下一步 $(".sel_dev_type").hide(); //隐藏掉 选择项本身 $(".div_box1").css("background-image", "none"); } if((!$("#id_comm_pwd").attr("readonly")) && $("#id_edit_form").find("#id_alias").val() != "") { if($("#id_comm_pwd").val()==""){ $("#tr_comm_pwd").show(); }else{ $("#tr_comm_pwd").hide(); //$("#m_comm_pwd").show(); } $("#modify_comm_pwd").click(function(){ modify_comm_pwd(); }); $("#pbox1").click(function(){ modify_comm_pwd(); }); } }); function modify_comm_pwd(){ if(state1 == false) { $("#tr_old_comm_pwd").show(); $("#tr_new_comm_pwd").show(); $("#tr_conf_comm_pwd").show(); $("#pbox1").attr("checked","checked"); state1 = true; } else { $("#tr_old_comm_pwd").hide(); $("#tr_new_comm_pwd").hide(); $("#tr_conf_comm_pwd").hide(); $("#pbox1").attr("checked",""); $("#new_comm_pwd").attr("disabled","disabled"); $("#confirm_comm_pwd").attr("disabled","disabled"); $("#old_comm_pwd").attr("value",""); $("#new_comm_pwd").attr("value",""); $("#confirm_comm_pwd").attr("value",""); $("#r_msg").html(""); $("#e_msg2").html(""); state1 = false; } } var check_old_comm_pwd = false; function check_comm_pwd(){ var old_comm_pwd=$("#old_comm_pwd").val(); var device=$("input[name='pk']").val(); $.post( "/iaccess/check_pwd/", {"old_pwd":old_comm_pwd,"device":device,"field":"comm_pwd"}, function(xml){ if(xml == 'ok') { $("#r_msg").html("{% trans '正确' %}"); check_old_comm_pwd = true; $("#new_comm_pwd").attr("disabled",""); $("#confirm_comm_pwd").attr("disabled",""); }else { $("#r_msg").html("{% trans '错误' %}"); check_old_comm_pwd = false; $("#new_comm_pwd").attr("disabled","disabled"); $("#confirm_comm_pwd").attr("disabled","disabled"); } } ); } var b_check_comm_pass=false; function check_comm_pass(){ var v1 = $("#new_comm_pwd").val(); var v2 = $("#confirm_comm_pwd").val(); if(v1==v2){ var html="{% trans '正确' %}"; $("#e_msg2").html(html); b_check_comm_pass = true; }else{ var html="{%trans '密码必须一致'%}" $("#e_msg2").html(html); $("#new_comm_pwd").attr("value",""); b_check_comm_pass = false; } } {% else %} alert(gettext("对不起,您没有访问该页面的权限,不能浏览更多信息!")); window.location.href = "/{{ request.surl }}accounts/login/"; {% endif %} {% endblock %}