{% extends "data_grid.html" %} {% load i18n static iclock_tags common %} {% block main_body %}
{% endblock %} {% block actionAfterTableRender %} layui.use(['table', 'tablePlug', 'layer', 'flow'], function(){ var table = layui.table, tablePlug = layui.tablePlug, layer=layui.layer, flow=layui.flow; tablePlug.smartReload.enable(true); function refreshFilter() { var nodes = zTree.getCheckedNodes(true); var deptID = []; nodes.forEach(function (item) { deptID.push(item.id); }); function recursive(item) { deptID.push(item.id) if(item.children){ item.children.forEach(function (Childitem){ recursive(Childitem) }); } } if (deptID.length === 0) { var all_nodes = zTree.getNodes(true) all_nodes.forEach(function (item) { recursive(item) }); } var old_where = get_layui_table_config('{{ model_name }}').where var new_where = $.extend({}, old_where, { _p1_employee__department_id__id__in: '[' + deptID.join(',') + ']' }) table.reload('id_grid_{{ model_name }}', { where: new_where }); } function refreshFilterByArea() { var nodes = zTree_area.getCheckedNodes(true); var deptID = []; nodes.forEach(function (item) { deptID.push(item.id); }); if (deptID.length === 0) { var all_nodes = zTree_area.getNodes(true); all_nodes.forEach(function (item) { deptID.push(item.id); }); } var old_where = get_layui_table_config('{{ model_name }}').where var new_where = $.extend({}, old_where, { _p1_employee__area__id__in: '[' + deptID.join(',') + ']' }) table.reload('id_grid_{{ model_name }}', { where: new_where }); } function onClick(event, treeId, treeNode) { if(treeId == "{{ model_name }}-tree") { zTree.checkNode(treeNode, !treeNode.checked, false, false); refreshFilter(); }else{ zTree_area.checkNode(treeNode, !treeNode.checked, false, false); refreshFilterByArea(); } } function onCheck(event, treeId, treeNode) { if(treeId == "{{ model_name }}-tree") { refreshFilter('d'); }else{ refreshFilterByArea('d'); } } function department_tree() { var setting = { view: { dblClickExpand: false, showIcon: false, showLine: true }, data: { simpleData: { enable: true } }, check: { enable: true, chkboxType: {"Y": "", "N": ""}, chkStyle: 'checkbox', radioType: "all" }, callback: { onClick: onClick , onCheck: onCheck } }; $.ajax({ url: "{% url 'biotime:personnel_department_tree_nodes' %}", type: "GET", dataType: "json", success: function (nodes) { zTree = $.fn.zTree.init($("#{{ model_name }}-tree"), setting, nodes); } }); $.ajax({ url: "{% url 'biotime:personnel_area_tree_nodes' %}", type: "GET", dataType: "json", success: function (nodes) { zTree_area = $.fn.zTree.init($("#{{ model_name }}-tree-area"), setting, nodes); } }); } department_tree(); $("#{{ model_name }}-dept-tree-control span").click(function () { var name = $(this).attr('name'); if ($(this).hasClass('selected')) { $(this).removeClass('selected'); if (name === 'all') { if (zTree.setting.check.chkStyle === 'checkbox') { zTree.checkAllNodes(false); refreshFilter(); } } else if (name === 'mul') { var nodes = zTree.getCheckedNodes(true); zTree.checkAllNodes(false); if (nodes.length > 0) { zTree.checkNode(nodes[0], true, false, true); } zTree.setting.check.chkStyle = 'radio'; } else if (name === "sub") { zTree.setting.check.chkboxType = {"Y": "", "N": ""}; } } else { $(this).addClass('selected'); if (name === 'all') { if (zTree.setting.check.chkStyle === 'checkbox') { zTree.checkAllNodes(true); refreshFilter(); } } else if (name === 'mul') { zTree.setting.check.chkStyle = 'checkbox'; } else if (name === "sub") { zTree.setting.check.chkboxType = {"Y": "s", "N": "s"}; } } zTree.refresh(); }); $("#{{ model_name }}-area-tree-control span").click(function () { var name = $(this).attr('name'); if ($(this).hasClass('selected')) { $(this).removeClass('selected'); if (name === 'all') { if (zTree_area.setting.check.chkStyle === 'checkbox') { zTree_area.checkAllNodes(false); refreshFilterByArea(); } } else if (name === 'mul') { var nodes = zTree_area.getCheckedNodes(true); zTree_area.checkAllNodes(false); if (nodes.length > 0) { zTree_area.checkNode(nodes[0], true, false, true); } zTree_area.setting.check.chkStyle = 'radio'; } else if (name === "sub") { zTree_area.setting.check.chkboxType = {"Y": "", "N": ""}; } } else { $(this).addClass('selected'); if (name === 'all') { if (zTree_area.setting.check.chkStyle === 'checkbox') { zTree_area.checkAllNodes(true); refreshFilterByArea(); } } else if (name === 'mul') { zTree_area.setting.check.chkStyle = 'checkbox'; } else if (name === "sub") { zTree_area.setting.check.chkboxType = {"Y": "s", "N": "s"}; } } zTree_area.refresh(); }); setTimeout(function () { var height = $(".layui-table-view").height(); $("#{{ model_name }}-tree").height(height - 100); $("#{{ model_name }}-tree-area").height(height - 100); }, 300); }); {% endblock %}