wpfw_ewei_shopv2/template/web_v3/perm/perms.html
2023-02-14 19:57:32 +08:00

186 lines
10 KiB
HTML

<div class="form-group">
<label class="col-lg control-label">可用权限</label>
<div class="col-sm-9 col-xs-12">
<div id="accordion" class="panel-group">
<div class='panel panel-default' >{php $i=0}
{loop $perms['parent'] $key $value}
<div class='panel-heading' style="background:#f8f8f8;display:{if !in_array($key,$operator_prems) && $_W['role'] == 'operator'}none{elseif !in_array($key,$accounts_perms) && !empty($permset)}none{/if}" >
<a class="btn btn-link btn-sm pull-right" data-toggle="collapse" data-parent="#accordion" href="#collapse{$key}"><i class='fa fa-angle-down'></i> 展开</a>
<label class='checkbox-inline'>
<input type='checkbox' id="perm_{$key}" value='{$key}' class='perm-all perms' data-group='{$key}'
{if in_array($key,$role_perms) || in_array($key,$user_perms) } checked{/if}
{if in_array($key,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> {$value['text']}
</label>
</div>
<div id="collapse{$key}" class="panel-collapse {if $i==0}in{else}collapse{/if}">
<div class='panel-body perm-group'>
{if count($perms['parent'][$key]) >1}
<span>
{loop $perms['parent'][$key] $ke $val}
{if $ke != 'text'}
<label class='checkbox-inline'>
<input type='checkbox' value='{$key}.{$ke}' class='perm-item perms'
data-group='{$key}' data-parent='text'
{if in_array($key.".".$ke,$role_perms) || in_array($key.".".$ke,$user_perms)} checked{/if}
{if in_array($key.".".$ke,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> {php echo str_replace("-log", "", $val)}
</label>
{else}
<label class='checkbox-inline'>
<input type='checkbox' value='{$key}' class='perm-all-item perms'
data-group='{$key}' data-parent='text'
{if in_array($key,$role_perms) || in_array($key,$user_perms)} checked{/if}
{if in_array($key,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> <b>{php echo str_replace("-log", "", $val)}</b>
</label>
{/if}
{/loop}
</span>
<br>
{/if}
{loop $perms['son'][$key] $ke $val}
{if count($val) >1}
<span>
{loop $val $k $v}
{if $k != 'text'}
<label class='checkbox-inline' style="display: {if !in_array($key.".".$ke.".".$k,$operator_prems) && $_W['role'] == 'operator'}none;{/if}">
<input type='checkbox' value='{$key}.{$ke}.{$k}' class='perm-item perms'
data-group='{$key}' data-parent='{$ke}' data-son="{$k}"
{if in_array($key.".".$ke.".".$k,$role_perms) || in_array($key.".".$ke.".".$k,$user_perms)} checked{/if}
{if in_array($key.".".$ke.".".$k,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> {php echo str_replace("-log", "", $v)}
</label>
{else}
<label class='checkbox-inline' style="display: {if !in_array($key.".".$ke,$operator_prems) && $_W['role'] == 'operator'}none;{/if}">
<input type='checkbox' value='{$key}.{$ke}' class='perm-all-item perms'
data-group='{$key}' data-parent='{$ke}' data-son="{$k}"
{if in_array($key.".".$ke,$role_perms) || in_array($key.".".$ke,$user_perms)} checked{/if}
{if in_array($key.".".$ke,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> <b>{php echo str_replace("-log", "", $v)}</b>
</label>
{/if}
{/loop}
</span>
<br>
{/if}
{/loop}
{loop $perms['grandson'][$key] $ke $val}
{loop $val $k $v}
{if count($v) >1}
<span>
{loop $v $kk $vv}
{if $kk != 'text'}
<label class='checkbox-inline'>
<input type='checkbox' value='{$key}.{$ke}.{$k}.{$kk}' class='perm-item perms'
data-group='{$key}' data-parent='{$ke}' data-son="{$k}" data-grandson="{$kk}"
{if in_array($key.".".$ke.".".$k.".".$kk,$role_perms) || in_array($key.".".$ke.".".$k.".".$kk,$user_perms)} checked{/if}
{if in_array($key.".".$ke.".".$k.".".$kk,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> {php echo str_replace("-log", "", $vv)}
</label>
{else}
<label class='checkbox-inline'>
<input type='checkbox' value='{$key}.{$ke}.{$k}' class='perm-all-item perms'
data-group='{$key}' data-parent='{$ke}' data-son="{$k}" data-grandson="{$kk}"
{if in_array($key.".".$ke.".".$k,$role_perms) || in_array($key.".".$ke.".".$k,$user_perms)} checked{/if}
{if in_array($key.".".$ke.".".$k,$role_perms) && $_W['action']=='perm.user'} disabled{/if}
/> <b>{php echo str_replace("-log", "", $vv)}</b>
</label>
{/if}
{/loop}
</span>
<br>
{/if}
{/loop}
{/loop}
</div>
</div>
{php $i++}
{/loop}
</div>
</div>
</div>
<input type="hidden" name="permsarray" value="">
</div>
<script language="javascript">
$(function () {
$('.perm-all').click(function () {
var checked = $(this).get(0).checked;
var group = $(this).data('group');
$(".perm-item[data-group='" + group + "'],.perm-all-item[data-group='" + group + "']").each(function () {
$(this).get(0).checked = checked;
})
})
$('.perm-all-item').click(function () {
var checked = $(this).get(0).checked;
var group = $(this).data('group');
var parent = $(this).data('parent');
var son = $(this).data('son');
var grandson = $(this).data('grandson');
$(this).parents("span").find(".perm-item").each(function () {
$(this).get(0).checked = checked;
});
group_check(this);
});
$('.perm-item').click(function () {
var group = $(this).data('group');
var parent = $(this).data('parent');
var son = $(this).data('son');
var grandson = $(this).data('grandson');
var check = false;
$(this).closest('span').find(".perm-item").each(function () {
if ($(this).get(0).checked) {
check = true;
return false;
}
});
var allitem = $(this).parents("span").find(".perm-all-item");
if (allitem.length == 1) {
allitem.get(0).checked = check;
}
group_check(this);
});
$(".panel-body").find("span").each(function (index, item) {
if ($(this).find("label").length != 1) {
$($(this).find("label").get(0)).wrap("<div class='col-sm-2' style='white-space:nowrap;'></div>");
$($(this).find("label").not($(this).find("label").get(0))).wrapAll("<div class='col-sm-10'></div>");
}
else {
$($(this).find("label").get(0)).wrap("<div class='col-sm-12'></div>");
}
});
$("form").submit(function () {
$(this).attr('stop',1);
var perms = [];
$(".perms:checked").each(function (index,e) {
perms[index]=$(this).val();
});
perms = perms.join(',')
$("input[name=permsarray]").val(perms);
$(this).attr('stop',0);
return true;
});
});
function group_check(obj) {
var check = false;
$(obj).parents('.perm-group').find(":checkbox").each(function (index, item) {
if (item.checked) {
check = true;
}
});
var group = $(obj).eq(0).data('group');
$(".perm-all[data-group=" + group + "]").get(0).checked = check;
}
</script>