Files
erp-site/application/views/settings/authority-setting-data.php
2026-04-19 01:39:41 +08:00

307 lines
9.9 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php $this->load->view('header');?>
<script type="text/javascript">
var DOMAIN = document.domain;
var WDURL = "";
var SCHEME= "<?php echo sys_skin()?>";
try{
document.domain = '<?php echo base_url()?>';
}catch(e){
}
//ctrl+F5 增加版本号来清空iframe的缓存的
$(document).keydown(function(event) {
/* Act on the event */
if(event.keyCode === 116 && event.ctrlKey){
var defaultPage = Public.getDefaultPage();
var href = defaultPage.location.href.split('?')[0] + '?';
var params = Public.urlParam();
params['version'] = Date.parse((new Date()));
for(i in params){
if(i && typeof i != 'function'){
href += i + '=' + params[i] + '&';
}
}
defaultPage.location.href = href;
event.preventDefault();
}
});
</script>
<style type="text/css">
#start{margin:0 20px 0 10px; }
#start:hover{color:#fff;}
#userName{font-weight:100;margin:0 20px 0 0;}
#matchCon{width:160px;}
</style>
</head>
<body>
<div class="wrapper">
<div class="mod-toolbar-top cf">
<div class="fl">
<p class="f14">
<lable>授权对象:</lable><span id="userName"></span>
<lable>数据类别:</lable><span id="type"></span><a class="ui-label ui-label-success dn" id="start"></a>
<span id='searchField'>
<input type="text" id="matchCon" class="ui-input matchCon ui-input-ph" value="按类别,编号名称搜索">
<a class="ui-btn mrb" id="search">查询</a>
</span>
</p>
</div>
<div class="fr"><a class="ui-btn ui-btn-sp mrb" id="save">确定</a><a class="ui-btn" href="authority">返回</a></div>
</div>
<div class="grid-wrap">
<table id="grid">
</table>
<div id="page"></div>
</div>
</div>
<script>
$(function(){
var thisPage = {},
$typeCombo,
$type = $('#type'),
$start = $('#start'),
$grid = $("#grid"),
$matchCon = $('#matchCon'),
$search = $('#search'),
$searchField = $('#searchField'),
urlParam = Public.urlParam(),
userName = urlParam.userName,
height = Public.setGrid().h,
typeList = [],
rightData = [],
changeList = {},
queryConditions = {
userName: userName
},
startSwitch = true;//模块点击开关
$('#userName').text(userName);
Public.ajaxPost('../dataright/dt?action=dt&userName='+userName, {}, function(data){
if(data.status === 200) {
if(data.data&&data.data.items.length){
typeList = data.data.items;
//thisPage.init(data);
thisPage.init(typeList);
thisPage.eventHandle();
thisPage.gridInit();
$start.hide();
$searchField.hide();
}
} else {
//parent.Public.tips({type: 1, content : data.msg});
}
});
thisPage = {
init : function(data){
$typeCombo = $type.combo({
data: data,
text: 'FNAME',
value: 'FRIGHTID',
width: 160,
defaultSelected: 0,
addOptions: {text:'(请选择数据模块)', value: -1},
cache: false,
editable: false,
listWrapCls:'ui-droplist-wrap f14',
callback: {
onChange: function(){
$grid.jqGrid('clearGridData');
var _index = this.getSelectedIndex()-1;
var _selectRow = typeList[_index];
if(_selectRow){
$start.show();
if(_selectRow.FRIGHT != 0){
$start.removeClass('ui-label-default').html('已启用').attr('title','点击关闭该类别权限');
$searchField.show();
$search.trigger('click');
}else{
$start.addClass('ui-label-default').html('未启用').attr('title','点击开启该类别权限');
$searchField.hide();
}
}else{
$start.hide();
$searchField.hide();
}
}
}
}).getCombo();
},
eventHandle : function(){
$start.click(function(){
if(!startSwitch)
return;
startSwitch = false;//关闭开关,防止用户连续点击
var _index = $typeCombo.getSelectedIndex()-1;
if($start.hasClass('ui-label-default')){
typeList[_index].FRIGHT = 1;
}else{
typeList[_index].FRIGHT = 0;
}
var rightids = [];
for(var i = 0,len = typeList.length; i<len;i++){
if(typeList[i].FRIGHT > 0 ){
rightids.push(typeList[i].FRIGHTID);
}
}
Public.ajaxPost('../dataright/ar?action=ar&userName=' + userName ,{rightid:'{"rightids":['+ rightids.join(',') + ']}'}, function(data){
if(data.status === 200) {
if($start.hasClass('ui-label-default')){
$search.trigger('click');
$start.removeClass('ui-label-default').html('已启用').attr('title','点击关闭该类别权限');
$searchField.show();
}else{
$grid.jqGrid('clearGridData');
$start.addClass('ui-label-default').html('未启用').attr('title','点击开启该类别权限');
$searchField.hide();
}
} else {
typeList[_index].FRIGHT = typeList[_index].FRIGHT ? 0 : 1;
parent.Public.tips({type: 1, content : data.msg});
}
startSwitch = true;//重新开启开关
});
});
$('#save').click(function(e){
var type = $typeCombo.getValue();
var strRights = [];
//var ids = $("#grid").jqGrid('getDataIDs');
for(var item in changeList){
strRights.push('{"FITEMID":'+changeList[item].FITEMID+',"FRIGHT":'+changeList[item].FRIGHT+'}');
}
if(!strRights.length){
parent.Public.tips({type:2,content : '没有改变!'});
return;
}
/*for(var i = 0, len = ids.length; i < len; i++){
var id = ids[i], itemData;
var row = $("#grid").jqGrid('getRowData',id);
var _right;
if($('#'+id).hasClass('ui-state-highlight')) {
_right = 1;
} else {
_right = 0;
};
strRights.push('{FITEMID:'+row.FITEMID+',FRIGHT:'+_right+'}');
}*/
Public.ajaxPost('../dataright/update?action=update&type='+ type +'&userName=' + userName , {rights:'['+ strRights.join() + ']'}, function(data){
if(data.status === 200) {
parent.Public.tips({content : '保存成功!'});
changeList = {};//清空临时权限改变列表
} else {
parent.Public.tips({type: 1, content : data.msg});
}
});
});
$matchCon.placeholder();
//查询
$search.on('click', function(e){
e.preventDefault();
changeList = {};//清空临时权限改变列表,可以提醒用户是否保存变化
queryConditions.skey = $matchCon.val() === '按类别,编号名称搜索' ? '' : $.trim($matchCon.val());
queryConditions.type = $typeCombo.getValue();
$grid.jqGrid('setGridParam',{page: 1, url:'../dataright/query?action=query', datatype: "json", postData: queryConditions}).trigger("reloadGrid");
});
$(window).resize(function(){
Public.resizeGrid();
});
},
gridInit:function(){
queryConditions.type = $typeCombo.getValue();
$grid.jqGrid({
url: '../dataright/query?action=query',
postData: queryConditions,
datatype: "json",
autowidth: true,//如果为ture时则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变为了使表格宽度能够自动调整则需要实现函数setGridWidth
height: Public.setGrid().h,
altRows: true, //设置隔行显示
colModel:[
{name:'FITEMID', label:'ID',width:200,hidden:true},
{name:'FNAME', label:'名称',width:200},
{name:'FITEMNO', label:'编号', width:200},
{name:'FRIGHT',lable:'权限',hidden:true}
],
multiselect : true,// 多选
cmTemplate: {sortable: false, title: false},
page: 1,
pager: "#page",
rowNum: 100,
rowList: [100, 200, 500],
//scroll: 1,
gridview: true,
//loadonce: true,
viewrecords: true,
shrinkToFit: false,
forceFit: false,
localReader: {
root: "data.rows",
records: "data.records",
total: "data.total",
repeatitems : false,
id: 'FITEMID'
},
jsonReader: {
root: "data.rows",
records: "data.records",
total: "data.total",
repeatitems : false,
id: 'FITEMID'
},
loadComplete:function(){
},
onSelectRow:function(rowid,status){
var rowData = $("#grid").jqGrid('getRowData', rowid);
rowData.FRIGHT = status ? '1' : '0';
$("#grid").jqGrid('setRowData', rowid, rowData);
if(changeList[rowid]){
delete changeList[rowid];
}else{
changeList[rowid] = {FITEMID:rowid, FRIGHT:status ? "1" : "0"};
}
},
gridComplete : function() {
var _data = $grid.getRowData();
for ( var i = 0, len = _data.length; i < len; i++) {
if (_data[i].FRIGHT === "1") {
$grid.jqGrid('setSelection' , _data[i].FITEMID ,false);
}
}
for(var item in changeList){
$grid.jqGrid('setSelection' , changeList[item].FITEMID ,false);
var rowData = $("#grid").jqGrid('getRowData', changeList[item].FITEMID);
if(rowData){
rowData.FRIGHT = changeList[item].FRIGHT;
$("#grid").jqGrid('setRowData', changeList[item].FITEMID, rowData);
}
}
},
onSelectAll:function(aRowids,status){
var currentList = {};
var _data = $grid.getRowData();
for ( var i = 0, len = _data.length; i < len; i++) {
currentList[_data[i].FITEMID] = {FITEMID:_data[i].FITEMID, FRIGHT:_data[i].FRIGHT};
}
var val = status ? '1' : '0';
for ( var i = 0, len = _data.length; i < len; i++) {
var id = _data[i].FITEMID;
var rowData = $("#grid").jqGrid('getRowData', id);
rowData.FRIGHT = val;
$("#grid").jqGrid('setRowData', id, rowData);
if(currentList[id].FRIGHT != val){
if(changeList[id]){
delete changeList[id];
}else{
changeList[id] = {FITEMID:id, FRIGHT:val};
}
}
}
}
});
}
};
});
</script>
</body>
</html>