{% extends "data_opform.html" %}
{% load i18n %}
{% block form %}
{% autoescape off %}
{{ form.pin_width }}
|
|
|
|
|
{% endautoescape %}
{% endblock %}
{% block addjs %}
$(function(){$(".tbl_data_edit").children().children().children("td").css({padding:"0px"});})
var emps=[]; //后台取出的人员列表
var cards=[]; //批量发卡卡号存储变量
var card_emp = []; //存储分配后的卡号和员工号
var curi=0; //当前处理行号
var cure=0; //记录未分配的人员数组下标
var cur_emp = 0;//未分配人员数量
var empid=[] //记录员工id号,用于后台处理
var pin_width=$("#id_pin_width").val();
var $div=$("form#id_edit_form");
$div.find("#id_genemps").click(function(){
$("#tbl_datalist tbody").remove()
get_emps();
});
$div.find("#id_clearcard").click(function(){
funclear();
});
$("#id_changeemps").click(function(){
$div.find("#id_startpin").val("");
$div.find("#id_startpin").removeAttr("readonly");
$div.find("#id_endpin").val("");
$div.find("#id_endpin").removeAttr("readonly");
$("#id_tbl_old tbody").remove()
$div.find("#id_startpin").focus();
});
$('form#id_edit_form').find('#id_cardno').keydown(function(event){
if(event.keyCode==13)
{
var cardno=$div.find("#id_cardno").val();
issue(cardno);
}
});
$div.find("#id_cardno").attr("readonly",true);
$div.find("#div_id_issuecardnumber").html("");
$("#div_id_remainnumber").html("");
$("#get_card_way").change(function(){
if(this.value == 1)
{
$("#get_card").attr("class","");
$("#device_tr").attr("class","displayN");
$("#id_card").focus();
}else if(this.value == 2)
{
$("#device_tr").attr("class","");
$("#get_card").attr("class","displayN");
}
});
var door_tree_bl=false;
function show_devices(){
if(!door_tree_bl)
{
if($("#id_door").html()==null){
$.ajax({
url:"/{{request.surls}}iaccess/GetData/?func=get_doors_tree",
dataType: "html",
success:function(data_html){
//$("#id_show_devices").after(data);
document.getElementById("id_show_devices").innerHTML = data_html;
$("#id_door").find("ul").each(function(){
$(this).attr("style","display:none");
})
//remove_single_perm_node($("#id_door .filetree"));
$("#id_door .filetree").treeview();
check_root("id_door");
check_selected("id_door");
$("#id_door").find("p").click(function(){
get_child(this);
});
$("#id_door").css({padding:"0px",height:"auto"});
$("#id_show_devices").css({width:$("#id_door").width()});
$("#id_door").find("ul").each(function(){
$(this).attr("style","");
})
$($("#id_door").find("ul")[0]).before('');
$($("#id_door").find("ul")[0]).attr("style","height: 220px; overflow: auto;")
}
});
}
$("#id_door").attr("class","");
door_tree_bl=true;
}
}
//确定
function confirm_tree(tag){
$(tag).parent().parent().attr("class","displayN");
door_tree_bl = false;
}
//撤销选择
function door_tree_display(tag){
$("#id_door").attr("class","displayN");
door_tree_bl = false;
$("#id_door").find("p").each(function(){
$(this).attr("class","t");
});
$("#id_door_name").val("");
}
var id_doors = [];
//递归调用 获得最后一级标签的text
function get_child(tag){
if($(tag).attr("class")=="t s" && $(tag).find("input").length!=0){//为最后一级标签时
if($("#id_door_name").val().indexOf($(tag).text())<0){
$("#id_door_name").val($.trim($("#id_door_name").val())+" "+$(tag).text());//当选择该项时,将其添加到文本框中
var id_s = $(tag).find("input")[0].id.split("_")[1];
id_doors.push(id_s);
}
}else if($(tag).attr("class")=="t u" && $(tag).find("input").length!=0)
{
$("#id_door_name").val($("#id_door_name").val().replace($(tag).text(),""));//当取消选择时,在文本框中去掉当前选项
var id_d = $(tag).find("input")[0].id.split("_")[1];
var index = get_index(id_d,id_doors,false);
id_doors.splice(index,1);
}else if($(tag).find("input").length==0)//为父标签时
{
$($(tag).next()).find("p").each(function(){
get_child(this);
});
}
}
//开始从后台获取刷的卡号
var read_card_bl = false;
var stop_post;
var log_id;
var time_now;
$("#read_card").click(function(){
if(cur_emp == 0 && !read_card_bl)
{
return;
}
if($("#id_door_name").val()!="")
{
if(!read_card_bl)
{
$(this).html("{% trans '停止读取' %}");
$("#id_reading").attr("class","");
read_card_bl = true;
//每隔2s发送一次请求,获取新刷的卡号
stop_post = setInterval("get_card_number()",2000);
}else
{
$(this).html("{% trans '开始读取' %}");
$("#id_reading").attr("class","displayN");
read_card_bl = false;
clearInterval(stop_post);
}
}else{
alert(gettext("请选择刷卡位置!"));
}
});
function get_card_number(){
var doors = id_doors.join("_");
$.ajax({
url:"/{{request.surl}}iaccess/get_card_number/?doors="+doors+"&log_id="+log_id+"&time_now="+time_now,
dataType:"json",
type:"POST",
success:function(data){
if(data.length>=2)
{
for(var j=0;j"+curemp[1]+" | "+ curemp[2]+" | "+curemp[3]+" | "+ cards[curi]+" | "
$div.find("#tr_first").after(html);
$div.find("#id_cardno").val("");
curi+=1;
cure+=1;
cur_emp = cur_emp-1;
if (cure>=emps.length)
{
$("#id_startpin").focus()
$div.find("#id_startpin").attr("readonly",false);
$div.find("#id_endpin").attr("readonly",false);
$div.find("#id_cardno").attr("readonly",true);
$div.find("#div_id_issuecardnumber").html("");
$div.find("#div_id_remainnumber").html("");
$("#id_tr_old").parent().next().find("tr:first").remove()
return ;
}
fillcuremp();
$("#id_tr_old").parent().next().find("tr:first").remove()
}
else
{
alert("{% trans '卡号不正确' %}");
}
}
function fillcuremp()
{
var $div=$("form#id_edit_form");
$div.find("#div_id_issuecardnumber").html("");
$div.find("#div_id_remainnumber").html("");
}
function get_index(num,array,is_emp)
{
for(var i=0;i100)
{
alert(gettext('每次发卡数量不能超过100'));
return [];
}
var v=[]
for(var i=start; i<=end;i++)
{
v.push(i);
}
return v;
}
//获得未分配人员
function get_emps()
{
cur_emp = 0;
$("#div_id_remainnumber").html("");
var $div=$("form#id_edit_form");
var startpin=$div.find("#id_startpin").val();
var endpin=$div.find("#id_endpin").val();
if(startpin.length>pin_width)
{
alert(gettext("起始编号长度不能超过")+pin_width+gettext("位"));
return;
}
if(endpin.length>pin_width)
{
alert(gettext("结束编号长度不能超过")+pin_width+gettext("位"));
return;
}
startpin=fillPIN(startpin)
endpin=fillPIN(endpin)
if(startpin=='')
{
alert('{% trans "起始编号不能为空" %}');
return;
}
if(endpin=='')
{
alert('{% trans "结束编号不能为空" %}');
return;
}
pin=[]
if(startpin.length!=endpin.length)
{
alert(gettext('起始人员编号与结束人员编号的长度位数不同!'));
return
}
pin.push(startpin);
pin.push(endpin);
/*
ret=get_range(startpin,endpin);
if( ret.length==0)
{
return;
}
*/
$.ajax({
url:"/{{request.surl}}personnel/getmodeldata/personnel/Employee/?fields=id,PIN,EName,DeptID__name&stamp=1",
data:"PIN__range=('" +pin[0].toString()+"','"+pin[1].toString()+"')&Card__exact=",
//data:"PIN__in="+ret.toString()+"&Card__exact=",
dataType:"json",
type:"POST",
success:function(data){
emps=data;
cure=0;
if (emps.length>0)
{
//fillcuremp(emps[curi]);
var tbl=$div.find("#tbl_datalist")
for(var i=0;i"+curemp[1]+" | "+curemp[2]+" | "+curemp[3]+" | ");
cur_emp = cur_emp+1;
}
}
if(cur_emp == 0)
{
alert("{% trans '该人员编号段内不存在人员' %}");
return;
}
$div.find("#id_startpin").attr("readonly",true);
$div.find("#id_endpin").attr("readonly",true);
$div.find("#id_cardno").attr("readonly",false);
$div.find("#id_cardno").focus();
$div.find("#div_id_issuecardnumber").html("");
$div.find("#div_id_remainnumber").html("");
}
else
{
alert("{% trans '该人员编号段内不存在人员' %}");
}
}
});
}
function selectAll(tag){
if(tag.checked==true)
{
$("#tbl_datalist").find("input").each(function(){
this.checked=true;
});
}else
{
$("#tbl_datalist").find("input").each(function(){
this.checked="";
});
}
}
function fillPIN(pin)
{
var t=""
for(var i=0;i