信呼OA版本v2.3.8
This commit is contained in:
113
webmain/main/view/rock_view.php
Normal file
113
webmain/main/view/rock_view.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php if(!defined('HOST'))die('not access');?>
|
||||
<script >
|
||||
$(document).ready(function(){
|
||||
var bools=false,mid=0;
|
||||
var a = $('#view_{rand}').bootstable({
|
||||
tablename:'flow_extent',celleditor:true,fanye:true,sort:'id',dir:'desc',
|
||||
url:publicstore('{mode}','{dir}'),storeafteraction:'afterstroesss',
|
||||
columns:[{
|
||||
text:'针对对象',dataIndex:'recename'
|
||||
},{
|
||||
text:'模块',dataIndex:'modename',sortable:true
|
||||
},{
|
||||
text:'类型',dataIndex:'type',sortable:true,renderer:function(oi){
|
||||
var as=['可查看','可添加','可编辑','可删除','可导入','可导出','禁看字段','流程监控'];
|
||||
return ''+as[oi]+'';
|
||||
}
|
||||
},{
|
||||
text:'条件',dataIndex:'whereid'
|
||||
},{
|
||||
text:'并条件',dataIndex:'wherestr',align:'left',renderer:function(v){
|
||||
return jm.base64decode(v);
|
||||
}
|
||||
},{
|
||||
text:'说明',dataIndex:'explain',editor:true
|
||||
},{
|
||||
text:'状态',dataIndex:'status',type:'checkbox',editor:true,sortable:true
|
||||
},{
|
||||
text:'ID',dataIndex:'id'
|
||||
}],
|
||||
itemclick:function(d){
|
||||
mid=d.modeid;
|
||||
btn(false, d);
|
||||
},
|
||||
beforeload:function(){
|
||||
btn(true);
|
||||
},
|
||||
load:function(a){
|
||||
if(!bools){
|
||||
var s = '<option value="0">-选择模块-</option>',len=a.modearr.length,i,csd,types='';
|
||||
for(i=0;i<len;i++){
|
||||
csd = a.modearr[i];
|
||||
if(types!=csd.type){
|
||||
if(types!='')s+='</optgroup>';
|
||||
s+='<optgroup label="'+csd.type+'">';
|
||||
}
|
||||
s+='<option value="'+csd.id+'">'+csd.name+'</option>';
|
||||
types = csd.type;
|
||||
}
|
||||
$('#mode_{rand}').html(s);
|
||||
}
|
||||
bools=true;
|
||||
}
|
||||
});
|
||||
function btn(bo, d){
|
||||
get('edit_{rand}').disabled = bo;
|
||||
get('del_{rand}').disabled = bo;
|
||||
}
|
||||
var c = {
|
||||
del:function(){
|
||||
a.del();
|
||||
},
|
||||
reload:function(){
|
||||
a.reload();
|
||||
},
|
||||
clickwin:function(o1,lx){
|
||||
if(mid==0){
|
||||
js.msg('msg','请先选择模块');
|
||||
return;
|
||||
}
|
||||
var icon='plus',name='新增流程模块权限',id=0;
|
||||
if(lx==1){
|
||||
id = a.changeid;
|
||||
icon='edit';
|
||||
name='编辑流程模块权限';
|
||||
};
|
||||
guanflowviewlist = a;
|
||||
addtabs({num:'flowview'+id+'',url:'main,view,edit,id='+id+',mid='+mid+'',icons:icon,name:name});
|
||||
},
|
||||
changemode:function(){
|
||||
var v=this.value;
|
||||
mid=v;
|
||||
a.search('and modeid='+v+'');
|
||||
}
|
||||
};
|
||||
js.initbtn(c);
|
||||
$('#mode_{rand}').change(c.changemode);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<button class="btn btn-warning" click="clickwin,0" type="button"><i class="icon-plus"></i> 新增</button>
|
||||
</td>
|
||||
<td style="padding-left:10px">
|
||||
<select style="width:230px" id="mode_{rand}" class="form-control" ><option value="0">-选择模块-</option></select>
|
||||
</td>
|
||||
<td width="90%">
|
||||
|
||||
</td>
|
||||
<td nowrap>
|
||||
|
||||
<button class="btn btn-info" id="edit_{rand}" click="clickwin,1" disabled type="button"><i class="icon-edit"></i> 编辑 </button>
|
||||
<button class="btn btn-danger" click="del" disabled id="del_{rand}" type="button"><i class="icon-trash"></i> 删除</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="blank10"></div>
|
||||
<div id="view_{rand}"></div>
|
||||
<div class="tishi">提示:多条将是或者的关系<div>
|
||||
171
webmain/main/view/rock_view_edit.php
Normal file
171
webmain/main/view/rock_view_edit.php
Normal file
@@ -0,0 +1,171 @@
|
||||
<?php if(!defined('HOST'))die('not access');?>
|
||||
<script >
|
||||
$(document).ready(function(){
|
||||
{params};
|
||||
var id = params.id,mid=params.mid,fieldsarr=[];
|
||||
if(!id)id = 0;
|
||||
var h = $.bootsform({
|
||||
window:false,rand:'{rand}',tablename:'flow_extent',
|
||||
url:publicsave('{mode}','{dir}'),
|
||||
submitfields:'recename,receid,modeid,type,whereid,wherestr,explain,status,fieldstr',
|
||||
requiredfields:'recename,type,modeid',beforesaveaction:'flowview_savebefore',
|
||||
success:function(){
|
||||
closenowtabs();
|
||||
try{guanflowviewlist.reload();}catch(e){}
|
||||
|
||||
},
|
||||
load:function(a){
|
||||
js.setselectdata(h.form.whereid,a.wherelist,'id');
|
||||
fieldsarr = a.fieldsarr;
|
||||
c.showfields(a.data.fieldstr);
|
||||
if(a.data.type=='6')$('#jinfiile{rand}').show();
|
||||
},
|
||||
loadafter:function(a){
|
||||
if(a.data){
|
||||
h.form.wherestr.value=jm.base64decode(a.data.wherestr);
|
||||
}
|
||||
},
|
||||
submitcheck:function(d){
|
||||
if(d.type!='1' && d.type!='4' && d.type!='5' && d.wherestr=='' && d.whereid=='0')return '必须设置输入相应条件';
|
||||
var fieldstr = '';
|
||||
if(d.type=='6'){
|
||||
fieldstr=js.getchecked('fieldstr{rand}');
|
||||
if(fieldstr=='')return '请选择禁看字段';
|
||||
}
|
||||
return {wherestr:jm.base64encode(d.wherestr),fieldstr:fieldstr}
|
||||
}
|
||||
});
|
||||
h.forminit();
|
||||
h.load(js.getajaxurl('loaddata','{mode}','{dir}',{id:id,mid:mid}));
|
||||
h.setValue('modeid',mid);
|
||||
$(h.form.type).change(function(){
|
||||
var val = this.value;
|
||||
if(val=='6'){
|
||||
$('#jinfiile{rand}').show();
|
||||
}else{
|
||||
$('#jinfiile{rand}').hide();
|
||||
}
|
||||
});
|
||||
var c = {
|
||||
showfields:function(st1){
|
||||
var i,len=fieldsarr.length,d1,str='',sel;
|
||||
st1 = ','+st1+',';
|
||||
for(i=0;i<len;i++){
|
||||
d1 = fieldsarr[i];
|
||||
sel= '';
|
||||
if(st1.indexOf(','+d1.fields+',')>=0)sel='checked';
|
||||
str+='<label><input type="checkbox" '+sel+' name="fieldstr{rand}" value="'+d1.fields+'">'+d1.name+'</label> ';
|
||||
}
|
||||
$('#viewjinkan{rand}').html(str);
|
||||
},
|
||||
getdist:function(o1, lx){
|
||||
var cans = {
|
||||
nameobj:h.form.recename,
|
||||
idobj:h.form.receid,
|
||||
type:'deptusercheck',
|
||||
title:'选择针对人员'
|
||||
};
|
||||
js.getuser(cans);
|
||||
},
|
||||
allqt:function(){
|
||||
h.form.recename.value='全体人员';
|
||||
h.form.receid.value='all';
|
||||
h.form.recename.focus();
|
||||
},
|
||||
hanrenss:function(o,lx){
|
||||
if(lx==0)h.form.wherestr.value='{receid}';
|
||||
if(lx==1)h.form.wherestr.value='{allsuper}';
|
||||
if(lx==2)h.form.wherestr.value='{super}';
|
||||
if(lx==4)h.form.wherestr.value='{dept}';
|
||||
if(lx==3)h.form.wherestr.value='all';
|
||||
if(lx==5)h.form.wherestr.value='{company}';
|
||||
if(lx==6)h.form.wherestr.value='{deptall}';
|
||||
}
|
||||
,
|
||||
reloadhweil:function(){
|
||||
h.form.whereid.length = 1;
|
||||
h.load(js.getajaxurl('loaddata','{mode}','{dir}',{id:id,mid:mid}));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
js.initbtn(c);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<div align="center">
|
||||
<div style="padding:10px;width:700px">
|
||||
|
||||
|
||||
<form name="form_{rand}">
|
||||
|
||||
<input name="id" value="0" type="hidden" />
|
||||
<input name="modeid" value="0" type="hidden" />
|
||||
|
||||
<table cellspacing="0" border="0" width="100%" align="center" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td align="right" ><font color=red>*</font> 针对对象:</td>
|
||||
<td class="tdinput" colspan="3">
|
||||
<div class="input-group" style="width:100%">
|
||||
<input readonly class="form-control" name="recename" >
|
||||
<input type="hidden" name="receid" >
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" click="allqt" type="button">全体人员</button>
|
||||
<button class="btn btn-default" click="getdist,1" type="button"><i class="icon-search"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right" width="15%" ><font color=red>*</font> 类型:</td>
|
||||
<td class="tdinput" width="35%" ><select name="type" class="form-control"><option value="0">查看(只针对详情页)</option><option value="1">添加</option><option value="2">编辑</option><option value="3">删除</option><option value="4">导入</option><option value="5">导出</option><option value="6">禁看字段(条件满足时针对对象就不能查看相应的字段)</option><option value="7">流程监控(条件满足时针对对象就可监控流程)</option></select></td>
|
||||
<td align="right" width="15%"></td>
|
||||
<td class="tdinput" width="35%" ></td>
|
||||
</tr>
|
||||
<tr id="jinfiile{rand}" style="display:none">
|
||||
<td align="right" >选择禁看字段:</td>
|
||||
<td class="tdinput" colspan="3" id="viewjinkan{rand}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" >选择条件:</td>
|
||||
<td class="tdinput"><select class="form-control" name="whereid"><option value="0">无条件</option></select></td>
|
||||
<td colspan="2"><a click="reloadhweil" href="javascript:;">[刷新]</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" ></td>
|
||||
<td colspan="3" style="padding-bottom:10px"><font color=#888888>在【流程模块条件】上添加</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right" >相应条件:</td>
|
||||
<td class="tdinput" colspan="3"><textarea placeholder="不会设置不要瞎写就写1=1" name="wherestr" style="height:60px" class="form-control"></textarea><br>如:<a click="hanrenss,0" href="javascript:;">[receid中包含我]</a>,<a click="hanrenss,1" href="javascript:;">[所有下属人员]</a>,<a click="hanrenss,2" href="javascript:;">[直属下属人员]</a>,<a click="hanrenss,4" href="javascript:;">[同级本部门]</a>,<a click="hanrenss,6" href="javascript:;">[同级本部门(含子部门)]</a>,<a click="hanrenss,5" href="javascript:;">[所在单位]</a>,<a click="hanrenss,3" href="javascript:;">[所有数据]</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right" >条件说明:</td>
|
||||
<td class="tdinput" colspan="3"><textarea name="explain" style="height:60px" class="form-control"></textarea></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right" ></td>
|
||||
<td class="tdinput" colspan="3">
|
||||
<label><input name="status" value="1" checked type="checkbox"> 启用?</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td align="right"></td>
|
||||
<td style="padding:15px 0px" colspan="3" align="left"><button disabled class="btn btn-success" id="save_{rand}" type="button"><i class="icon-save"></i> 保存</button> <span id="msgview_{rand}"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
42
webmain/main/view/tpl_view_autograph.html
Normal file
42
webmain/main/view/tpl_view_autograph.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>签名</title>
|
||||
<link rel="stylesheet" href="webmain/css/css.css" />
|
||||
<script type="text/javascript" src="web/res/js/jquery.1.9.1.min.js"></script>
|
||||
<script type="text/javascript" src="js/js.js"></script>
|
||||
<script type="text/javascript" src="js/base64-min.js"></script>
|
||||
<script type="text/javascript" src="mode/plugin/jquery-signature.js"></script>
|
||||
|
||||
<script>
|
||||
var qianmingbo = false;
|
||||
function initbody(){
|
||||
ismobile = js.request('ism');
|
||||
var hei = winHb()-22,
|
||||
wei = winWb()-22;
|
||||
$('#qianmingdiv').attr('data-height',hei);
|
||||
$('#qianmingdiv').attr('data-width',wei);
|
||||
$('#qianmingdiv').jqSignature().on('jq.signature.changed', function() {
|
||||
qianmingbo = true;
|
||||
});
|
||||
if(ismobile==1)get('qianmingdiv').addEventListener('touchmove',function(e){
|
||||
e.preventDefault();
|
||||
},false);
|
||||
}
|
||||
//返回签名内容
|
||||
autographok=function(){
|
||||
if(!qianmingbo)return '';
|
||||
return $('#qianmingdiv').jqSignature('getDataURL');
|
||||
}
|
||||
//重写
|
||||
autographre=function(){
|
||||
$('#qianmingdiv').jqSignature('clearCanvas');
|
||||
qianmingbo = false;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="background:white">
|
||||
<div data-width="280" data-height="120" data-border="1px dashed #cccccc" data-line-color="#000000" data-auto-fit="true" id="qianmingdiv" style="margin:10px;height:120px;cursor:default"></div>
|
||||
</body>
|
||||
</html>
|
||||
36
webmain/main/view/viewAction.php
Normal file
36
webmain/main/view/viewAction.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
class viewClassAction extends Action
|
||||
{
|
||||
public function loaddataAjax()
|
||||
{
|
||||
$id = (int)$this->get('id');
|
||||
$setid = (int)$this->get('mid');
|
||||
$arr['data'] = m('flow_extent')->getone($id);
|
||||
$arr['wherelist'] = m('flow_where')->getall('setid='.$setid.'','id,name','sort');
|
||||
$arr['fieldsarr'] = m('flow_element')->getrows('mid='.$setid.' and `iszb`=0','name,fields','`sort`');
|
||||
echo json_encode($arr);
|
||||
}
|
||||
|
||||
public function afterstroesss($table,$rows)
|
||||
{
|
||||
foreach($rows as $k=>$rs){
|
||||
$rows[$k]['modename'] = $this->db->getmou('[Q]flow_set','name',$rs['modeid']);
|
||||
$rows[$k]['whereid'] = $this->db->getmou('[Q]flow_where','name',$rs['whereid']);
|
||||
}
|
||||
return array(
|
||||
'rows'=>$rows,
|
||||
'modearr' => m('mode')->getmodearr(),
|
||||
);
|
||||
}
|
||||
|
||||
public function flowview_savebefore($table, $das)
|
||||
{
|
||||
$str = m('where')->checkwhere($das['modeid'], $das['wherestr']);
|
||||
if($str)return $str;
|
||||
}
|
||||
|
||||
public function autographAction()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user