发布v2.6.8版本
This commit is contained in:
@@ -23,6 +23,8 @@ td,button{ font-size:var(--font-size)}
|
||||
a,.cursor{cursor:pointer;}
|
||||
p{text-indent:24pt; margin:12px 0px;line-height:25px}
|
||||
input,textarea,select,button{resize: none;outline:none;font-size:var(--font-size);}
|
||||
input[type=button], input[type=submit], input[type=file], button {-webkit-appearance: none;}
|
||||
|
||||
.zhu{ color:#1389D3;color:var(--main-color)}
|
||||
.hui{ color:#888888}
|
||||
.red{ color:#ff0000}
|
||||
@@ -59,7 +61,8 @@ ul,li,a{ list-style-type:none}
|
||||
.h1{ font-size:24px;font-weight:bold;}
|
||||
.h2{ font-size:20px;font-weight:bold;}
|
||||
|
||||
.input,.inputs,.textarea{height:34px;line-height:25px;background-color:white;padding:5px;width:94%;border:var(--border);border-radius:5px}
|
||||
.input,.inputs,.textarea{height:30px;line-height:25px;background-color:white;padding:5px;width:94%;border:var(--border);border-radius:5px;}
|
||||
select.inputs{height:40px}
|
||||
|
||||
.inputb{height:34px;line-height:20px;background-color:white;padding:5px;border:var(--border);border-radius:5px}
|
||||
.inputb:focus,.inputs:focus,.textarea:focus{border:0.5px var(--main-color) solid;}
|
||||
@@ -88,9 +91,9 @@ a.btn{padding:5px 8px}
|
||||
.tdinput{padding:8px 5px}
|
||||
.inborder{border:var(--border);}
|
||||
|
||||
a.webbtn:link,a.webbtn:visited,.webbtn{color:#ffffff;opacity:1; background-color:var(--main-color); padding:8px 10px; border:none; cursor:pointer;font-size:var(--font-size)}
|
||||
a.webbtn:link,a.webbtn:visited,.webbtn{color:#ffffff;opacity:1; background-color:var(--main-color); padding:8px 10px; border:none; cursor:pointer;font-size:var(--font-size);border-radius:5px}
|
||||
.webbtn:disabled{background-color:#aaaaaa; color:#eeeeee}
|
||||
.webbtn:hover{box-shadow:0px 0px 5px rgba(0,0,0,0.3);opacity:0.8}
|
||||
.webbtn:hover,.webbtn:active{box-shadow:0px 0px 5px rgba(0,0,0,0.3);opacity:0.8}
|
||||
.radius5{border-radius:5px;}
|
||||
|
||||
.upload_items{border:var(--border);height:60px;overflow:hidden;float:left;margin-top:5px;margin-bottom:5px;margin-right:10px;cursor:pointer;position:relative}
|
||||
@@ -99,4 +102,51 @@ a.webbtn:link,a.webbtn:visited,.webbtn{color:#ffffff;opacity:1; background-color
|
||||
.upload_items_items{padding:5px;text-align:center}
|
||||
.upload_items_meng{ background:rgba(0,0,0,0.5);position:absolute;left:0px;top:0px;height:60px;overflow:hidden;line-height:60px;text-align:center;width:100%;color:white}
|
||||
|
||||
.list-itemv:active{color:var(--main-color);cursor:pointer}
|
||||
.list-itemv:active{color:var(--main-color);cursor:pointer}
|
||||
|
||||
|
||||
.btn-group{display: flex;align-items: stretch;}
|
||||
.btn-group .btn{float:left}
|
||||
.btn-group>.active{box-shadow: inset 0 3px 5px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b), .125);}
|
||||
|
||||
.btn-group :first-child:not(:last-child){
|
||||
border-top-right-radius:0px;
|
||||
border-bottom-right-radius:0px;
|
||||
}
|
||||
.btn-group :last-child:not(:first-child){
|
||||
border-top-left-radius:0px;
|
||||
border-bottom-left-radius:0px;
|
||||
}
|
||||
.btn-group :not(:last-child):not(:first-child){
|
||||
border-radius:0px;
|
||||
}
|
||||
.btn-group :not(:first-child){
|
||||
border-left-width:0px;
|
||||
}
|
||||
|
||||
.rock-loading {
|
||||
display: inline-block;
|
||||
height:16px;
|
||||
width:16px;
|
||||
vertical-align: middle;
|
||||
-webkit-mask: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='80px' height='80px' viewBox='0 0 80 80' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Ctitle%3Eloading%3C/title%3E%3Cdefs%3E%3ClinearGradient x1='94.0869141%25' y1='0%25' x2='94.0869141%25' y2='90.559082%25' id='linearGradient-1'%3E%3Cstop stop-color='%23606060' stop-opacity='0' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3ClinearGradient x1='100%25' y1='8.67370605%25' x2='100%25' y2='90.6286621%25' id='linearGradient-2'%3E%3Cstop stop-color='%23606060' offset='0%25'%3E%3C/stop%3E%3Cstop stop-color='%23606060' stop-opacity='0.3' offset='100%25'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cg stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' opacity='0.9'%3E%3Cg%3E%3Cpath d='M40,0 C62.09139,0 80,17.90861 80,40 C80,62.09139 62.09139,80 40,80 L40,73 C58.2253967,73 73,58.2253967 73,40 C73,21.7746033 58.2253967,7 40,7 L40,0 Z' fill='url(%23linearGradient-1)'%3E%3C/path%3E%3Cpath d='M40,0 L40,7 C21.7746033,7 7,21.7746033 7,40 C7,58.2253967 21.7746033,73 40,73 L40,80 C17.90861,80 0,62.09139 0,40 C0,17.90861 17.90861,0 40,0 Z' fill='url(%23linearGradient-2)'%3E%3C/path%3E%3Ccircle id='Oval' fill='%23606060' cx='40.5' cy='3.5' r='3.5'%3E%3C/circle%3E%3C/g%3E%3CanimateTransform attributeName='transform' begin='0s' dur='1s' type='rotate' values='0 40 40;360 40 40' repeatCount='indefinite'/%3E%3C/g%3E%3C/svg%3E%0A") 0 0 no-repeat;
|
||||
mask-size: cover;
|
||||
-webkit-mask-size: cover;
|
||||
mask-size: cover;
|
||||
background-color: currentColor;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar{
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
border-radius: 5px;
|
||||
}
|
||||
@@ -27,7 +27,8 @@ table{border-spacing:0;border-collapse: collapse;}
|
||||
button,.cursor,a{cursor:pointer}
|
||||
a:link,a:visited{color:var(--main-color);TEXT-DECORATION:none;font-size:var(--font-size)}
|
||||
a:hover{TEXT-DECORATION:underline;color:red;}
|
||||
input,button,textarea,select{resize:none;outline:none;font-size:var(--font-size)}
|
||||
input,button,textarea,select,div{resize:none;outline:none;font-size:var(--font-size);}
|
||||
input[type=button], input[type=submit], input[type=file], button {-webkit-appearance: none;}
|
||||
|
||||
::placeholder{color:#999999;}
|
||||
.wrap{word-wrap:break-word;word-break:break-all;white-space:normal;}
|
||||
@@ -237,4 +238,7 @@ textarea.form-control{overflow:auto;padding-top:5px;padding-bottom:5px}
|
||||
.select-list .div01{padding:8px 10px;border-bottom:var(--border)}
|
||||
.select-list .div01:hover{background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1);}
|
||||
.select-list .div02{padding:8px 10px;border-bottom:var(--border);background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1)}
|
||||
.list-itemv:hover{color:var(--main-color);cursor:pointer;background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1)}
|
||||
.list-itemv:hover{color:var(--main-color);cursor:pointer;background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1)}
|
||||
|
||||
.editortools div{width:26px;height:26px;overflow:hidden;margin-left:8px;line-height:26px;border-radius:5px;cursor:pointer;}
|
||||
.editortools div:hover{background-color:rgba(0,0,0,0.1);}
|
||||
@@ -183,4 +183,19 @@ a:link,a:visited{TEXT-DECORATION:none;color:var(--main-color)}
|
||||
-webkit-mask-size: cover;
|
||||
mask-size: cover;
|
||||
background-color: currentColor;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar{
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: transparent;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
border-radius: 5px;
|
||||
}
|
||||
@@ -4,7 +4,7 @@ class inputAction extends Action
|
||||
public $mid = 0;
|
||||
public $flow;
|
||||
public $rs = array();
|
||||
public $gongsiarr,$actclss,$fieldarrall,$inputobj,$subfielsa,$checkobj,$mdb;
|
||||
public $gongsiarr,$actclss,$fieldarrall,$inputobj,$subfielsa,$checkobj,$mdb,$mallfields;
|
||||
|
||||
public function initAction()
|
||||
{
|
||||
@@ -70,8 +70,8 @@ class inputAction extends Action
|
||||
if(!$fieldsarr)$this->backmsg('没有录入元素');
|
||||
|
||||
$db = m($table);$subna = '提交';$addbo = false;$where = "`id`='$id'"; $oldrs = false;
|
||||
$this->mdb = $db;
|
||||
|
||||
$this->mdb = $db;
|
||||
$filelx = (int)arrvalue($this->moders,'filelx','0');
|
||||
if($id==0){
|
||||
$where = '';
|
||||
$addbo = true;
|
||||
@@ -140,6 +140,7 @@ class inputAction extends Action
|
||||
|
||||
//默认字段保存
|
||||
$allfields = $this->db->getallfields('[Q]'.$table.'');
|
||||
$this->mallfields = $allfields;
|
||||
if(in_array('optdt', $allfields))$uaarr['optdt'] = $this->now;
|
||||
if(in_array('optid', $allfields))$uaarr['optid'] = $this->adminid;
|
||||
if(in_array('optname', $allfields))$uaarr['optname'] = $this->adminname;
|
||||
@@ -185,6 +186,8 @@ class inputAction extends Action
|
||||
if(isset($uaarr[$rs['fields']]))$ss = $this->flow->savedatastr($uaarr[$rs['fields']], $rs, $uaarr);
|
||||
if($ss!='')$this->backmsg($ss);
|
||||
}
|
||||
$fileid = $this->post('fileid');
|
||||
if($filelx==1 && isempt($fileid))$this->backmsg('必须添加“相关文件”');
|
||||
|
||||
//判断保存前的
|
||||
$ss = '';
|
||||
@@ -243,7 +246,8 @@ class inputAction extends Action
|
||||
|
||||
if($id==0)$id = $this->db->insert_id();
|
||||
$fobj = m('file');
|
||||
$fobj->addfile($this->post('fileid'), $table, $id, $modenum);
|
||||
|
||||
$fobj->addfile($fileid, $table, $id, $modenum);
|
||||
if($this->otherfileid!=''){
|
||||
$ofid1 = substr($this->otherfileid,1);
|
||||
$fobj->addxuan($ofid1,$this->post('sxuanfileid'),''.$modenum.'|'.$id.'');
|
||||
@@ -366,8 +370,16 @@ class inputAction extends Action
|
||||
$len = count($data);
|
||||
$idss = '0';
|
||||
$whes = '';
|
||||
|
||||
$allfields = $this->db->getallfields('[Q]'.$tables.'');
|
||||
$allfields = array();
|
||||
$ischuli = false;
|
||||
|
||||
$allfielda = $this->db->gettablefields('[Q]'.$tables.'');
|
||||
foreach($allfielda as $k1=>$rs1){
|
||||
$allfields[] = $rs1['name'];
|
||||
if($rs1['name']=='mid' && contain($rs1['types'],'int(11)'))$ischuli = true;
|
||||
}
|
||||
|
||||
//$allfields = $this->db->getallfields('[Q]'.$tables.'');
|
||||
$oarray = array();
|
||||
if(in_array('optdt', $allfields))$oarray['optdt'] = $this->now;
|
||||
if(in_array('optid', $allfields))$oarray['optid'] = $this->adminid;
|
||||
@@ -382,6 +394,12 @@ class inputAction extends Action
|
||||
|
||||
if(in_array('comid', $allfields))$oarray['comid'] = $this->companyid;
|
||||
|
||||
if(!$ischuli){
|
||||
$usql = 'alter table `[Q]'.$tables.'` MODIFY `mid` int(11) DEFAULT 0 COMMENT \'对应主表'.$this->flow->mtable.'.id\';';
|
||||
$this->db->query($usql, false);
|
||||
}
|
||||
|
||||
|
||||
if($data)foreach($data as $k=>$uaarr){
|
||||
$sid = $uaarr['id'];
|
||||
$where = "`id`='$sid'";
|
||||
@@ -571,6 +589,8 @@ class inputAction extends Action
|
||||
|
||||
if($content=='')exit('未设置录入页面,请到[流程模块→表单元素管理]下设置');
|
||||
|
||||
$filelx = (int)arrvalue($moders,'filelx','0');
|
||||
|
||||
$content = $this->flow->flowinputtpl($content, $this->ismobile);
|
||||
|
||||
$this->actclss = $this;
|
||||
@@ -593,13 +613,14 @@ class inputAction extends Action
|
||||
$this->inputobj->flow = $this->flow;
|
||||
$this->inputobj->mid = $this->mid;
|
||||
$this->inputobj->initUser($this->adminid);
|
||||
$redfont = '<font color=red>*</font>';
|
||||
|
||||
$chufarr= array();
|
||||
$chufarr = array();
|
||||
if(method_exists($this->flow, 'flowxiangfields'))$chufarr = $this->flow->flowxiangfields($chufarr);
|
||||
$this->fieldarrall['base_sericnum'] = array('name'=>arrvalue($chufarr,'base_sericnum','单号'));
|
||||
$this->fieldarrall['base_name'] = array('name'=>arrvalue($chufarr,'base_name','申请人'));
|
||||
$this->fieldarrall['base_deptname'] = array('name'=>arrvalue($chufarr,'base_deptname','申请人部门'));
|
||||
$this->fieldarrall['file_content'] = array('name'=>arrvalue($chufarr,'file_content','相关文件'));
|
||||
$this->fieldarrall['file_content'] = array('name'=>arrvalue($chufarr,'file_content',''.(($filelx==1)? $redfont:'').'相关文件'));
|
||||
|
||||
preg_match_all('/\{(.*?)\}/', $content, $list);
|
||||
foreach($list[1] as $k=>$nrs){
|
||||
@@ -608,7 +629,7 @@ class inputAction extends Action
|
||||
}
|
||||
$this->subfielsa = array();
|
||||
$content = $this->pisubduolie($content, $modeid, $nameaas);//多列子表匹配的是[]
|
||||
$content = str_replace('*','<font color=red>*</font>', $content);
|
||||
$content = str_replace('*',$redfont, $content);
|
||||
|
||||
//替换字段名^^
|
||||
preg_match_all('/\^(.*?)\^/', $content, $list);
|
||||
@@ -674,6 +695,7 @@ class inputAction extends Action
|
||||
$this->smartydata['zbnamearr'] = $nameaas;
|
||||
$this->smartydata['zbshu'] = $zbshu;//子表数
|
||||
$this->smartydata['isupfile'] = $isupfile;//是否有上传
|
||||
$this->smartydata['isupfiles'] = $this->fieldarrall['file_content']['name'];
|
||||
$this->assign('inputobj', c('input'));
|
||||
|
||||
|
||||
@@ -762,11 +784,12 @@ class inputAction extends Action
|
||||
$rows = array();
|
||||
$act = $this->get('act');
|
||||
$modenum= $this->get('sysmodenum');
|
||||
$actstr = $this->get('actstr');
|
||||
$actstr = $this->jm->base64decode($this->get('actstr'));
|
||||
$acta = explode(',', $actstr);
|
||||
$where = arrvalue($acta, 2);
|
||||
if(isempt($act)){
|
||||
if($actstr){
|
||||
$actstr1 = $this->jm->base64decode($actstr);
|
||||
$rows = c('input')->sqlstore($actstr1);
|
||||
$rows = c('input')->sqlstore($actstr);
|
||||
}
|
||||
return $rows;
|
||||
}
|
||||
@@ -776,23 +799,23 @@ class inputAction extends Action
|
||||
$objs = m($acta[0]);
|
||||
$tacs = $acta[1];
|
||||
if(method_exists($objs, $tacs)){
|
||||
$rows = $objs->$tacs();
|
||||
$rows = $objs->$tacs($where);
|
||||
}
|
||||
}
|
||||
|
||||
if(!$rows && !isempt($act) && method_exists($this, $act)){
|
||||
$rows = $this->$act();
|
||||
$rows = $this->$act($where);
|
||||
}
|
||||
//从Model上读取
|
||||
if(!$rows && !isempt($modenum)){
|
||||
$this->flow = m('flow')->initflow($modenum);
|
||||
if(method_exists($this->flow, $act)){
|
||||
$rows = $this->flow->$act();
|
||||
$rows = $this->flow->$act($where);
|
||||
}
|
||||
}
|
||||
//从数据选项读取
|
||||
if(!$rows && $actstr){
|
||||
$acta = explode(',', $this->jm->base64decode($actstr));
|
||||
$acta = explode(',', $actstr);
|
||||
if(count($acta)<=3){
|
||||
$sarr = m('option')->getmnum($acta[0]);
|
||||
if($sarr){
|
||||
|
||||
@@ -146,7 +146,7 @@ var inputtwo={
|
||||
this.initupssa[sna]=$.rockupload({
|
||||
'inputfile':'filed_'+sna+'_inp',
|
||||
'initremove':false,'uptype':uptp,'formming':sna,
|
||||
'urlparams':{'sysmodenum':modenum,'sysmid':mid},
|
||||
'urlparams':{'sysmodenum':modenum,'sysmid':mid,'sysuptype':tsye},
|
||||
'oparams':{sname:sna,snape:tsye},
|
||||
'onsuccess':function(f,gstr){
|
||||
var sna= f.sname,tsye=f.snape,d=js.decode(gstr);
|
||||
@@ -313,9 +313,24 @@ var inputtwo={
|
||||
},
|
||||
|
||||
//2020-09-02新增地图上选择位置
|
||||
selectlocation:function(sna,snall,iszb){
|
||||
js.msg('wait','定位中...');
|
||||
this.selectmapdata={sna:sna,snall:snall};
|
||||
js.importjs('js/dingwei.js?'+js.getrand()+'', function(){
|
||||
js.dw.dwsuccess = function(ret){
|
||||
this.clearchao();
|
||||
c.selectmapdata.lat=ret.latitude;
|
||||
c.selectmapdata.lng=ret.longitude;
|
||||
c.selectmapdata.zoom=12;
|
||||
c.geocoder(ret.latitude,ret.longitude,ret.accuracy);
|
||||
}
|
||||
js.dw.init();
|
||||
js.dw.start();
|
||||
});
|
||||
},
|
||||
selectmap:function(sna,snall,fna,iszb){
|
||||
var hei = winHb()-150;
|
||||
var url = 'https://map.qq.com/api/js?v=2.exp&key=55QBZ-JGYLO-BALWX-SZE4H-5SV5K-JCFV7&callback=c.showmap';
|
||||
var url = 'https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&callback=c.showmap';
|
||||
js.tanbody('selectmap','选择['+fna+']',winWb()-((ismobile==1)?5:80),hei,{
|
||||
html:'<div style="padding:5px"><input onkeyup="if(event.keyCode==13)c.selectmapsou(this)" type="text" placeholder="请输入格式(地址 城市)如:鼓浪屿 厦门" class="inputs"></div><div id="selectmap" style="height:'+(hei-20)+'px;overflow:hidden"></div>',
|
||||
btn:[{text:'确定'}]
|
||||
@@ -378,18 +393,18 @@ var inputtwo={
|
||||
this.selectmapdata.lat=x;
|
||||
this.selectmapdata.lng=y;
|
||||
this.selectmapdata.zoom=zoom;
|
||||
js.msg('wait','确定搜索地址...');
|
||||
this.geocoder(x,y);
|
||||
},
|
||||
//搜索位置
|
||||
geocoder:function(lat,lng, jid){
|
||||
js.msg('wait','确定搜索地址...');
|
||||
js.ajax('api.php?m=kaoqin&a=gcoder',{lat:lat,lng:lng},function(ret){
|
||||
js.msg();
|
||||
if(ret.status==0){
|
||||
var result = ret.result;
|
||||
var address= result.formatted_addresses.recommend;
|
||||
var d1 = c.selectmapdata;
|
||||
d1.address = address;
|
||||
d1.address = result.address;
|
||||
if(!result.address_component)result.address_component={province:'',city:'未知',district:'',street_number:'',street:''}
|
||||
var info = result.address_component;
|
||||
d1.addressinfo = {
|
||||
province:info.province,
|
||||
@@ -398,7 +413,6 @@ var inputtwo={
|
||||
streetNumber:info.street_number,
|
||||
street:info.street
|
||||
};
|
||||
js.msg();
|
||||
var sna = d1.sna;
|
||||
if(form(sna))form(sna).value=d1.address+'|'+d1.lat+','+d1.lng+'';
|
||||
var sna1 = d1.snall;
|
||||
@@ -450,68 +464,22 @@ var inputtwo={
|
||||
if(lx==1)obj.imports();
|
||||
if(lx==2)obj.clear();
|
||||
},
|
||||
//自动完成2022-10-30添加
|
||||
autocompletearr:{},
|
||||
|
||||
|
||||
//自动完成2024-11-20添加
|
||||
autocomplete:function(o1,s1,id1,zb){
|
||||
clearTimeout(this.autoctime);
|
||||
this.autocompletea=[o1,s1,id1,zb];
|
||||
if(this.nowinpvle == o1.value && get('completelist'))return;
|
||||
if(this.autocompletearr[id1]){
|
||||
this.autoctime = setTimeout(function(){c.autocompleteshow(o1,c.autocompletearr[id1]);},10);
|
||||
return;
|
||||
}
|
||||
var a1 = s1.split(',');
|
||||
var a1 = s1.split(',');
|
||||
var gcan = {'act':a1[0],'actstr':jm.base64encode(s1),'acttyle':'act','sysmodenum':modenum,'sysmid':mid};
|
||||
js.ajax(geturlact('getselectdata', gcan),{key:jm.base64encode(o1.value)}, function(ret){
|
||||
c.autocompletearr[id1] = ret;
|
||||
c.autocompleteshow(o1,ret);
|
||||
},'get,json')
|
||||
},
|
||||
autocompleteshow:function(o1,da){
|
||||
if(!da || da.length==0)return;
|
||||
var o2 = $(o1),lefta=o2.offset(),i,len=da.length,ds=[],zl=10,j=0;
|
||||
$('#completelist').remove();
|
||||
var str= '<div id="completelist" style="position:absolute;z-index:9;left:'+lefta.left+'px;top:'+(lefta.top+29)+'px;background:white;border:1px var(--main-color) solid;border-radius:5px;box-shadow: 0px 0px 5px rgb(0,0,0,0.3)"></div>';
|
||||
var val= strreplace(o1.value);
|
||||
if(val){
|
||||
for(i=0;i<len;i++)if(da[i].name.indexOf(val)>-1 || (da[i].subname && da[i].subname.indexOf(val)>-1)){
|
||||
ds.push(da[i]);j++;if(j>=zl*3)break;
|
||||
}
|
||||
}else{
|
||||
ds=da;
|
||||
}
|
||||
this.autodata = ds;
|
||||
this.nowinpvle= o1.value;
|
||||
$('body').append(str);
|
||||
this.autocompleteshows(zl,1)
|
||||
js.addbody('completelist', 'remove','completelist');
|
||||
},
|
||||
autocompleteshows:function(zl,p){
|
||||
var ds = this.autodata;
|
||||
var str='',i,len=ds.length,j=0;
|
||||
for(i=(p-1)*zl;i<len;i++){
|
||||
str+='<div class="list-itemv" onclick="c.autocompleteclick('+i+')" value="'+i+'" style="padding:5px 10px">'+ds[i].name+'';
|
||||
if(ds[i].subname)str+=' <span style="font-size:12px">('+ds[i].subname+')</span>';
|
||||
str+='</div>';
|
||||
j++;
|
||||
if(j>=zl)break;
|
||||
}
|
||||
if(len>zl){
|
||||
str+='<div style="padding:5px 10px;background:rgba(0,0,0,0.1)">总记录'+len+'条';
|
||||
if(p>1)str+=' <a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p-1)+')"><上页</a>';
|
||||
if(j==zl)str+=' <a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p+1)+')">下页></a>';
|
||||
str+='</div>';
|
||||
}
|
||||
setTimeout(function(){$('#completelist').html(str)},10);
|
||||
},
|
||||
autocompleteclick:function(i){
|
||||
var d = this.autodata[i],o1=this.autocompletea[0];
|
||||
o1.value=d.name;
|
||||
var a1 = this.autocompletea[1].split(',');
|
||||
if(a1[1]){
|
||||
if(form(a1[1]))form(a1[1]).value = d.value;
|
||||
}
|
||||
this.onselectdataall(o1.name,d);
|
||||
$('#completelist').remove();
|
||||
var url = geturlact('getselectdata', gcan);
|
||||
js.chajian('rockselect', {
|
||||
viewobj:o1,num:o1.name,limit:10,url:url,zb:zb,strsss:s1,
|
||||
onitemclick:function(sna,val, d){
|
||||
var fid= this.nameobj.name;
|
||||
var a1 = this.strsss.split(',');
|
||||
if(a1[1])if(form(a1[1]))form(a1[1]).value = val
|
||||
c.onselectdataall(fid,d);
|
||||
},
|
||||
nameobj:o1
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ c.onselectmap=function(sna,res){
|
||||
var info = res.addressinfo;
|
||||
if(form('sheng'))form('sheng').value = info.province;
|
||||
if(form('shi'))form('shi').value = info.city;
|
||||
var dz = info.town;
|
||||
dz+=(info.streetNumber)?info.streetNumber:info.street;
|
||||
form(sna).value=dz;
|
||||
if(!res.address){
|
||||
var dz = info.town;
|
||||
dz+=(info.streetNumber)?info.streetNumber:info.street;
|
||||
form(sna).value=dz;
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,7 @@ class mode_flowelementClassAction extends inputAction{
|
||||
|
||||
return array(
|
||||
'rows' => $rows,
|
||||
'modearr' => m('mode')->getmodearr(),
|
||||
//'modearr' => m('mode')->getmodearr(),
|
||||
'mkrs' => $mkrs,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ class mode_flowmenuClassAction extends inputAction{
|
||||
public $alldata = array();
|
||||
protected function storeafter($table, $rows)
|
||||
{
|
||||
$this->db->update('[Q]menu', '`status`=1' , '`id` in(1,2) and `status`=0');//总有一些人把系统菜单给停用了
|
||||
$pid = (int)$this->post('pid','0');
|
||||
if($pid>0){
|
||||
$this->showgetmenu($rows,0,1,1);
|
||||
|
||||
@@ -6,6 +6,9 @@ class mode_flowsetClassAction extends inputAction{
|
||||
|
||||
public $pobj;
|
||||
protected function savebefore($table, $arr, $id, $addbo){
|
||||
if(!in_array('filelx', $this->mallfields)){
|
||||
$this->db->addFields('[Q]'.$table.'','filelx','tinyint(1)','0','录入页相应文件0选上传,1必须上传');
|
||||
}
|
||||
include_once('webmain/main/flow/flowAction.php');
|
||||
$this->pobj = new flowClassAction();
|
||||
return $this->pobj->flowsetsavebefore($table, $arr);
|
||||
|
||||
@@ -14,5 +14,10 @@ class mode_goodsClassAction extends inputAction{
|
||||
}
|
||||
|
||||
|
||||
public function reloadstockAjax()
|
||||
{
|
||||
m('goods')->setstock();
|
||||
return 'ok';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,23 +27,27 @@ $maincolors= $colarr['colors'];
|
||||
.ys1{padding:5px 5px;color:#666666}
|
||||
.ys2{padding:5px 5px;}
|
||||
|
||||
.inputs,.textarea{flex:1;width:95%;margin:3px 0px}
|
||||
.inputs,.textarea{flex:1;width:95%;margin:3px 0px;width:-webkit-fill-available}
|
||||
.cionsss{padding:4px; background-color:#dddddd}
|
||||
.datesss{background:url(mode/icons/date.png) no-repeat right;cursor:pointer}
|
||||
|
||||
.status{position: absolute;right:5px;top:10px;display:none;width:80px;height:80px;overflow:hidden; border:3px red solid;border-radius:50%;font-size:20px;text-align:center;line-height:80px;color:red;transform:rotate(-45deg);-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);filter:progid:DXImagetransform.Microsoft.Matrix(M11=0.707,M12=-0.707,M21=0.707,M22=0.707,SizingMethod='auto expand');}
|
||||
|
||||
.tablesub td{height:25px;text-align:center;border:var(--border);}
|
||||
.tablesub .inputs,.tablesub .textarea{border:none;background:none;border-radius:0;margin:0;width:100%;padding:0;}
|
||||
.tablesub .inputs[readonly]{background-color:rgba(0,0,0,0.1);}
|
||||
.tablesub{width:-webkit-fill-available}
|
||||
.tablesub td{height:30px;text-align:center;border:var(--border)}
|
||||
.tablesub .inputs,.tablesub .textarea{border:none;background:none;border-radius:0;margin:0;width:95%;}
|
||||
.tablesub .inputs[readonly]{background-color:rgba(0,0,0,0.05);}
|
||||
|
||||
.course{padding:8px; background-color:rgba(<?=$maincolors?>,0.2);border:1px rgba(<?=$maincolors?>,0.3) solid;margin-right:10px;text-align:center;border-radius:5px}
|
||||
.coursejt{height:8px;overflow:hidden;width:30px;background-color:rgba(<?=$maincolors?>,0.2)}
|
||||
.coursejts{width:0px; height:0px; overflow:hidden;border-width:8px;border-style:solid;border-color:transparent transparent transparent rgba(<?=$maincolors?>,0.2);}
|
||||
.tishi{color:#888888;font-size:12px;padding:3px}
|
||||
.ke-icon-crop{background-image: url(mode/icons/crop.png);width: 16px;height: 16px;}
|
||||
.xuhao{text-align:center;}
|
||||
.xuhao[readonly]{background:none}
|
||||
.tablesub .xuhao{text-align:center;width:100%;padding:0;min-width:35px}
|
||||
.tablesub .xuhao[readonly]{background:none}
|
||||
.tablesub tr:first-child{background:var(--main-vgcolor)}
|
||||
.zbtitle{}
|
||||
.addys{}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -93,8 +97,8 @@ $maincolors= $colarr['colors'];
|
||||
$firstrs['isbt'] = 1;
|
||||
}
|
||||
$stsp.= ''.$firstrs['name'].':</td>';
|
||||
$stsp.= '<td width="100%"><input class="inputs" style="width:99%" id="sysnextchange" value="'.$firstrs['sysnextopt'].'" placeholder="'.$placeholder.'" readonly type="text" name="sysnextopt"><input name="sysnextoptid" value="'.$firstrs['sysnextoptid'].'" id="sysnextchange_id" type="hidden"><input name="sysnextcustidid" value="'.$firstrs['id'].'" type="hidden"></td>';
|
||||
$stsp.= '<td nowrap><a href="javascript:;" onclick="js.changeclear(\'sysnextchange\')" class="webbtn">×</a><a href="javascript:;" id="btnchange_recename" onclick="js.changeuser(\'sysnextchange\',\'changeusercheck\',\'选择'.$firstrs['name'].'\',{changerange:\''.$firstrs['checktypeid'].'\'})" class="webbtn">选择</a></td>';
|
||||
$stsp.= '<td width="100%"><div class="btn-group"><input class="inputs" style="width:99%" id="sysnextchange" value="'.$firstrs['sysnextopt'].'" placeholder="'.$placeholder.'" readonly type="text" name="sysnextopt"><input name="sysnextoptid" value="'.$firstrs['sysnextoptid'].'" id="sysnextchange_id" type="hidden"><input name="sysnextcustidid" value="'.$firstrs['id'].'" type="hidden">';
|
||||
$stsp.= '<button type="button" onclick="js.changeclear(\'sysnextchange\')" class="webbtn">×</button><button type="button" id="btnchange_recename" onclick="js.changeuser(\'sysnextchange\',\'changeusercheck\',\'选择'.$firstrs['name'].'\',{changerange:\''.$firstrs['checktypeid'].'\'})" class="webbtn">选择</button></div></td>';
|
||||
$stsp.= '</tr></table></div>';
|
||||
echo $stsp;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="yes" />
|
||||
<title><?=$da['title']?></title>
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
<link rel="stylesheet" type="text/css" href="<?=$da['p']?>/css/cssm.css">
|
||||
<link rel="stylesheet" type="text/css" href="<?=$da['p']?>/css/cssm.css?<?=$nowtime?>">
|
||||
<link rel="stylesheet" type="text/css" href="mode/plugin/css/jquery-rockdatepicker.css"/>
|
||||
<script type="text/javascript" src="js/jquery.js"></script>
|
||||
<script type="text/javascript" src="js/js.js?<?=$nowtime?>"></script>
|
||||
@@ -62,13 +62,13 @@ function initApp(){
|
||||
<?php
|
||||
$maincolora= c('image')->colorTorgb($maincolor);
|
||||
$maincolors= ''.$maincolora[0].','.$maincolora[1].','.$maincolora[2].'';
|
||||
echo 'body{--main-color:'.$maincolor.';}';
|
||||
echo 'body{--main-color:'.$maincolor.';--font-size:16px;}';
|
||||
?>
|
||||
.datesss{background:url(mode/icons/date.png) no-repeat right;cursor:pointer}
|
||||
input,textarea,select,*,td, button{font-size:16px}
|
||||
.lurim{text-align:right;padding-left:5px}
|
||||
.tablesub td{height:25px;text-align:left;border:0px #888888 solid;}
|
||||
.tablesub .inputs{width:100%}
|
||||
.tablesub .inputs{width:-webkit-fill-available}
|
||||
|
||||
.status{position: absolute;right:15px;top:2px;display:none;width:70px;height:70px;overflow:hidden; border:2px red solid;border-radius:50%;font-size:16px;text-align:center;line-height:70px;color:red;transform:rotate(-45deg);-o-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg)}
|
||||
|
||||
@@ -78,15 +78,17 @@ input,textarea,select,*,td, button{font-size:16px}
|
||||
.btn:hover{opacity:1;color:#ffffff}
|
||||
.lumtr{background-color:white}
|
||||
.tablelum{}
|
||||
.inputs{border-bottom:0.5px #cccccc solid;border-top:0px;border-left:0px;border-right:0px}
|
||||
.inputs:focus{border:none;box-shadow:none;border-bottom:0.5px <?=$maincolor?> solid;}
|
||||
.inputs1{border-bottom:0.5px #cccccc solid;border-top:0px;border-left:0px;border-right:0px}
|
||||
.inputs1:focus{border:none;box-shadow:none;border-bottom:0.5px <?=$maincolor?> solid;}
|
||||
|
||||
|
||||
.divzb0{display:inline-block;width:100%;margin:5px 0px}
|
||||
.divzb1{float:left;width:25%;overflow:auto;text-align:right;line-height:20px;margin-top:8px}
|
||||
.divzb2{float:left;width:73%}
|
||||
.xuhao{border:none;font-size:12px;text-align:left;color:#888888}
|
||||
.xuhao{border:none;font-size:12px;text-align:left;color:#888888;padding:0;margin:0;margin-left:2px;padding-top:2px}
|
||||
.xuhao:focus{border:none;}
|
||||
.xuantitle{text-align:left;font-size:12px;padding-left:8px;line-height:30px;margin-top:10px;color:#888888;}
|
||||
.divinput .btn-group{width:98%}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -116,7 +118,7 @@ if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px
|
||||
if($da['isupfile']==1){
|
||||
?>
|
||||
<tr class="lumtr">
|
||||
<td class="lurim" nowrap>相关文件</td>
|
||||
<td class="lurim" nowrap><?=$da['isupfiles']?></td>
|
||||
<td><div class="divinput">
|
||||
<input name="fileid" id="fileidview-inputEl" type="hidden">
|
||||
<div id="view_fileidview" style="height:auto;min-height:60px" class="inputs"></div>
|
||||
@@ -156,8 +158,8 @@ if($showheader==1)echo '<div id="header_title" style="padding-top:'.$cenghei.'px
|
||||
$firstrs['isbt'] = 1;
|
||||
}
|
||||
$stsp.= ''.$firstrs['name'].':</td>';
|
||||
$stsp.= '<td><div class="divinput"><table width="98%" cellpadding="0" border="0"><tr><td width="100%"><input class="inputs" style="width:99%" id="sysnextchange" value="'.$firstrs['sysnextopt'].'" placeholder="'.$placeholder.'" readonly type="text" name="sysnextopt"><input name="sysnextoptid" value="'.$firstrs['sysnextoptid'].'" id="sysnextchange_id" type="hidden"><input name="sysnextcustidid" value="'.$firstrs['id'].'" type="hidden"></td>';
|
||||
$stsp.= '<td nowrap><a href="javascript:;" onclick="js.changeclear(\'sysnextchange\')" class="webbtn">×</a><a href="javascript:;" id="btnchange_recename" onclick="js.changeuser(\'sysnextchange\',\'changeusercheck\',\'\',{changerange:\''.$firstrs['checktypeid'].'\'})" class="webbtn">选择</a></td></tr></table></div></td>';
|
||||
$stsp.= '<td><div class="divinput"><table width="98%" cellpadding="0" border="0"><tr><td width="100%"><div class="btn-group"><input class="inputs" style="flex:1" id="sysnextchange" value="'.$firstrs['sysnextopt'].'" placeholder="'.$placeholder.'" readonly type="text" name="sysnextopt"><input name="sysnextoptid" value="'.$firstrs['sysnextoptid'].'" id="sysnextchange_id" type="hidden"><input name="sysnextcustidid" value="'.$firstrs['id'].'" type="hidden">';
|
||||
$stsp.= '<button type="button" onclick="js.changeclear(\'sysnextchange\')" class="webbtn">×</button><button type="button" id="btnchange_recename" onclick="js.changeuser(\'sysnextchange\',\'changeusercheck\',\'\',{changerange:\''.$firstrs['checktypeid'].'\'})" class="webbtn">选择</button></div></td></tr></table></div></td>';
|
||||
$stsp.= '</tr>';
|
||||
echo $stsp;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">*申请日期</td><td class="ys2" width="35%">{applydt}{type}</td><td align="right" class="ys1" width="15%">*供应商</td><td class="ys2" width="35%">{custname}{custid}</td></tr><tr><td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>采购物品</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*物品</td><td>*采购数量</td><td>单位</td><td>单价</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[temp_aid0,0][aid0,0]</td><td>[count0,0]</td><td>[unit0,0]</td><td>[price0,0]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr><tr><td height="34" align="right" class="ys1">优惠价格</td><td class="ys2">{discount}</td><td class="ys1" align="right">*采购金额</td><td class="ys2">{money}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">*申请日期</td><td class="ys2" width="35%">{applydt}{type}</td><td align="right" class="ys1" width="15%">*供应商</td><td class="ys2" width="35%">{custname}{custid}</td></tr><tr><td class="ys2 zbtitle" colspan="4"><strong>采购物品</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*物品</td><td>*采购数量</td><td>单位</td><td>单价</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[temp_aid0,0][aid0,0]</td><td>[count0,0]</td><td>[unit0,0]</td><td>[price0,0]</td><td>{删,0}</td></tr></tbody></table><div class="addys">{新增,0}</div></td></tr><tr><td height="34" align="right" class="ys1">优惠价格</td><td class="ys2">{discount}</td><td class="ys1" align="right">*采购金额</td><td class="ys2">{money}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
@@ -1 +1 @@
|
||||
<div><strong>此模块是用来开发人员提供帮助的模块,如联动菜单等各个帮助,页面交互js地址:webmain/flow/input/inputjs/mode_demo.js</strong> </div><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">申请日期</td><td class="ys2" width="35%">{applydt}</td><td align="right" class="ys1" width="15%">*测试字段</td><td class="ys2" width="35%">{testfirs}</td></tr><tr><td height="34" align="right" class="ys1">封面图片</td><td class="ys2">{fengmian}</td><td class="ys1" align="right">*编号</td><td class="ys2">{num}</td></tr><tr><td height="34" align="right" class="ys1">选择人员</td><td class="ys2">{xuanren}</td><td class="ys1" align="right">多选字段2<br /></td><td class="ys2">{duoxuanla}</td></tr><tr><td height="34" align="right" class="ys1">省</td><td class="ys2">{sheng}</td><td class="ys1" align="right">市</td><td class="ys2">{shi}</td></tr><tr><td height="34" align="right" class="ys1">客户</td><td class="ys2">{custname}{custid}</td><td class="ys1" align="right">县(区)</td><td class="ys2">{xian}</td></tr><tr><td class="ys1" align="right">弹出下拉单选</td><td class="ys2">{tanxuan}{tanxuanid}</td><td height="34" align="right" class="ys1">弹框下拉多选</td><td class="ys2">{tanxuancheck}</td></tr><tr><td height="34" align="right" class="ys1">*^qianming^</td><td colspan="3" class="ys2">{qianming}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">文件上传1</td><td colspan="3" class="ys2">{upfile1}</td></tr><tr><td height="34" align="right" class="ys1">文件上传2</td><td colspan="3" class="ys2">{upfile2}</td></tr><tr><td height="34" align="right" class="ys1">html编辑器</td><td colspan="3" class="ys2">{htmlcont}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td colspan="4" class="ys1"><strong>多行子表1</strong> </td></tr><tr><td colspan="4" class="ys0"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>名称</td><td>相关图片</td><td>相应文件</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[sheng0,0]</td><td>[shi0,0]</td><td>[xian0,0]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr><tr><td colspan="4" class="ys1"><strong>多行子表2</strong> </td></tr><tr><td colspan="4" class="ys0"><table class="tablesub ke-zeroborder" id="tablesub1" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>简单名称</td><td>文件上传1</td><td>说明</td><td width="5%">操作</td></tr><tr><td>[xuhao1,0]</td><td>[tanxuan1,0]</td><td>[upfile11,0]</td><td>[explain1,0]</td><td>{删,1}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,1}</div></td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
<div><strong>此模块是用来开发人员提供帮助的模块,如联动菜单等各个帮助,页面交互js地址:webmain/flow/input/inputjs/mode_demo.js</strong> </div><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">申请日期</td><td class="ys2" width="35%">{applydt}</td><td align="right" class="ys1" width="15%">*测试字段</td><td class="ys2" width="35%">{testfirs}</td></tr><tr><td height="34" align="right" class="ys1">封面图片</td><td class="ys2">{fengmian}</td><td class="ys1" align="right">*编号</td><td class="ys2">{num}</td></tr><tr><td height="34" align="right" class="ys1">选择人员</td><td class="ys2">{xuanren}</td><td class="ys1" align="right">多选字段2<br /></td><td class="ys2">{duoxuanla}</td></tr><tr><td height="34" align="right" class="ys1">省</td><td class="ys2">{sheng}</td><td class="ys1" align="right">市</td><td class="ys2">{shi}</td></tr><tr><td height="34" align="right" class="ys1">客户</td><td class="ys2">{custname}{custid}</td><td class="ys1" align="right">县(区)</td><td class="ys2">{xian}</td></tr><tr><td class="ys1" align="right">弹出下拉单选</td><td class="ys2">{tanxuan}{tanxuanid}</td><td height="34" align="right" class="ys1">弹框下拉多选</td><td class="ys2">{tanxuancheck}</td></tr><tr><td height="34" align="right" class="ys1">*^qianming^</td><td colspan="3" class="ys2">{qianming}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">文件上传1</td><td colspan="3" class="ys2">{upfile1}</td></tr><tr><td height="34" align="right" class="ys1">文件上传2</td><td colspan="3" class="ys2">{upfile2}</td></tr><tr><td height="34" align="right" class="ys1">html编辑器</td><td colspan="3" class="ys2">{htmlcont}</td></tr><tr><td height="34" align="right" class="ys1">^ztstate^</td><td colspan="3" class="ys2">{ztstate}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td colspan="4" class="ys1"><strong>多行子表1</strong> </td></tr><tr><td colspan="4" class="ys0"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>名称</td><td>相关图片</td><td>相应文件</td><td>状态</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[sheng0,0]</td><td>[shi0,0]</td><td>[xian0,0]</td><td>[ztstate0,0]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr><tr><td colspan="4" class="ys1"><strong>多行子表2</strong> </td></tr><tr><td colspan="4" class="ys0"><table class="tablesub ke-zeroborder" id="tablesub1" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>简单名称</td><td>文件上传1</td><td>说明</td><td width="5%">操作</td></tr><tr><td>[xuhao1,0]</td><td>[tanxuan1,0]</td><td>[upfile11,0]</td><td>[explain1,0]</td><td>{删,1}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,1}</div></td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
@@ -1 +1 @@
|
||||
<br /><div><b>基本信息</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">*^type^</td><td width="35%" class="ys2">{type}</td><td height="34" width="15%" align="right" class="ys1">*^name^</td><td width="35%" class="ys2">{name}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^num^</td><td width="35%" class="ys2">{num}</td><td height="34" width="15%" align="right" class="ys1">*^table^</td><td width="35%" class="ys2">{table}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^where^</td><td width="35%" class="ys2">{where}</td><td height="34" width="15%" align="right" class="ys1">^tables^</td><td width="35%" class="ys2">{tables}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^sort^</td><td width="35%" class="ys2">{sort}</td><td height="34" width="15%" align="right" class="ys1">^names^</td><td width="35%" class="ys2">{names}</td></tr><tr><td height="34" align="right" class="ys1">*^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^status^</td><td width="35%" class="ys2">{status}</td><td height="34" align="right" class="ys1">^isscl^</td><td class="ys2">{isscl}</td></tr></tbody></table><br /><div><b>流程</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">*^isflow^</td><td width="35%" class="ys2">{isflow}</td><td height="34" width="15%" align="right" class="ys1">^sericnum^</td><td width="35%" class="ys2">{sericnum}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^isflowlx^</td><td width="35%" class="ys2">{isflowlx}</td><td height="34" width="15%" align="right" class="ys1">^isys^</td><td width="35%" class="ys2">{isys}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^isbxs^</td><td width="35%" class="ys2">{isbxs}</td><td height="34" width="15%" align="right" class="ys1">*^iscs^</td><td width="35%" class="ys2">{iscs}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^zfeitime^</td><td width="35%" class="ys2">{zfeitime}</td><td height="34" align="right" class="ys1"></td><td class="ys2"></td></tr></tbody></table><br /><div><b>摘要设置</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" align="right" class="ys1">^summary^</td><td colspan="3" class="ys2">{summary}</td></tr><tr><td height="34" align="right" class="ys1">^summarx^</td><td colspan="3" class="ys2">{summarx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^sortdir^</td><td width="35%" class="ys2">{sortdir}</td><td height="34" align="right" class="ys1"></td><td class="ys2"></td></tr></tbody></table><br /><div><b>提醒设置</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^pctx^</td><td width="35%" class="ys2">{pctx}</td><td height="34" width="15%" align="right" class="ys1">^emtx^</td><td width="35%" class="ys2">{emtx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^mctx^</td><td width="35%" class="ys2">{mctx}</td><td height="34" width="15%" align="right" class="ys1">^wxtx^</td><td width="35%" class="ys2">{wxtx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ddtx^</td><td width="35%" class="ys2">{ddtx}</td><td height="34" width="15%" align="right" class="ys1">^istxset^</td><td width="35%" class="ys2">{istxset}</td></tr></tbody></table><br /><div><b>详情显示</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^isgbjl^</td><td width="35%" class="ys2">{isgbjl}</td><td height="34" width="15%" align="right" class="ys1">^isgbcy^</td><td width="35%" class="ys2">{isgbcy}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ispl^</td><td width="35%" class="ys2">{ispl}</td><td height="34" align="right" class="ys1"></td><td class="ys2"></td></tr></tbody></table><br /><div><b>其他</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^islu^</td><td width="35%" class="ys2">{islu}</td><td height="34" width="15%" align="right" class="ys1">^isup^</td><td width="35%" class="ys2">{isup}</td></tr><tr><td height="34" align="right" class="ys1">^statusstr^</td><td colspan="3" class="ys2">{statusstr}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ishz^</td><td width="35%" class="ys2">{ishz}</td><td height="34" width="15%" align="right" class="ys1">^lbztxs^</td><td width="35%" class="ys2">{lbztxs}</td></tr></tbody></table>
|
||||
<br /><div><b>基本信息</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">*^type^</td><td width="35%" class="ys2">{type}</td><td height="34" width="15%" align="right" class="ys1">*^name^</td><td width="35%" class="ys2">{name}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^num^</td><td width="35%" class="ys2">{num}</td><td height="34" width="15%" align="right" class="ys1">*^table^</td><td width="35%" class="ys2">{table}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^where^</td><td width="35%" class="ys2">{where}</td><td height="34" width="15%" align="right" class="ys1">^tables^</td><td width="35%" class="ys2">{tables}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^sort^</td><td width="35%" class="ys2">{sort}</td><td height="34" width="15%" align="right" class="ys1">^names^</td><td width="35%" class="ys2">{names}</td></tr><tr><td height="34" align="right" class="ys1">*^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^status^</td><td width="35%" class="ys2">{status}</td><td height="34" width="15%" align="right" class="ys1">^isscl^</td><td width="35%" class="ys2">{isscl}</td></tr></tbody></table><br /><div><b>流程</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">*^isflow^</td><td width="35%" class="ys2">{isflow}</td><td height="34" width="15%" align="right" class="ys1">^sericnum^</td><td width="35%" class="ys2">{sericnum}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^isflowlx^</td><td width="35%" class="ys2">{isflowlx}</td><td height="34" width="15%" align="right" class="ys1">^isys^</td><td width="35%" class="ys2">{isys}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^isbxs^</td><td width="35%" class="ys2">{isbxs}</td><td height="34" width="15%" align="right" class="ys1">*^iscs^</td><td width="35%" class="ys2">{iscs}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^zfeitime^</td><td width="35%" class="ys2">{zfeitime}</td><td height="34" width="15%" align="right" class="ys1">^filelx^</td><td width="35%" class="ys2">{filelx}</td></tr></tbody></table><br /><div><b>摘要设置</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" align="right" class="ys1">^summary^</td><td colspan="3" class="ys2">{summary}</td></tr><tr><td height="34" align="right" class="ys1">^summarx^</td><td colspan="3" class="ys2">{summarx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^sortdir^</td><td width="35%" class="ys2">{sortdir}</td><td height="34" align="right" class="ys1"></td><td class="ys2"></td></tr></tbody></table><br /><div><b>提醒设置</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^pctx^</td><td width="35%" class="ys2">{pctx}</td><td height="34" width="15%" align="right" class="ys1">^emtx^</td><td width="35%" class="ys2">{emtx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^mctx^</td><td width="35%" class="ys2">{mctx}</td><td height="34" width="15%" align="right" class="ys1">^wxtx^</td><td width="35%" class="ys2">{wxtx}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ddtx^</td><td width="35%" class="ys2">{ddtx}</td><td height="34" width="15%" align="right" class="ys1">^istxset^</td><td width="35%" class="ys2">{istxset}</td></tr></tbody></table><br /><div><b>详情显示</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^isgbjl^</td><td width="35%" class="ys2">{isgbjl}</td><td height="34" width="15%" align="right" class="ys1">^isgbcy^</td><td width="35%" class="ys2">{isgbcy}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ispl^</td><td width="35%" class="ys2">{ispl}</td><td height="34" align="right" class="ys1"></td><td class="ys2"></td></tr></tbody></table><br /><div><b>其他</b></div><table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">^islu^</td><td width="35%" class="ys2">{islu}</td><td height="34" width="15%" align="right" class="ys1">^isup^</td><td width="35%" class="ys2">{isup}</td></tr><tr><td height="34" align="right" class="ys1">^statusstr^</td><td colspan="3" class="ys2">{statusstr}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">^ishz^</td><td width="35%" class="ys2">{ishz}</td><td height="34" width="15%" align="right" class="ys1">^lbztxs^</td><td width="35%" class="ys2">{lbztxs}</td></tr></tbody></table>
|
||||
@@ -1 +1 @@
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" align="right" class="ys1">*^title^</td><td class="ys2" colspan="3">{title}</td></tr><tr><td height="34" align="right" class="ys1">^fengmian^</td><td class="ys2" colspan="3">{fengmian}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^typename^</td><td width="35%" class="ys2">{typename}</td><td align="right" width="15%" class="ys1">^issms^</td><td width="35%" class="ys2">{issms} <label>{appxs}</label></td></tr><tr><td height="34" align="right" class="ys1">^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*^content^</td><td colspan="3" class="ys2">{content}</td></tr><tr><td height="34" align="right" class="ys1">^file_content^</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">^url^</td><td colspan="3" class="ys2">{url}</td></tr><tr><td height="34" align="right" class="ys1">*^zuozhe^</td><td class="ys2">{zuozhe}</td><td align="right" class="ys1">*^indate^</td><td class="ys2">{indate}</td></tr><tr><td height="34" align="right" class="ys1">^zstart^</td><td class="ys2">{zstart}</td><td align="right" class="ys1">^zsend^</td><td class="ys2">{zsend}</td></tr><tr><td height="34" align="right" class="ys1">^mintou^</td><td class="ys2">{mintou}</td><td align="right" class="ys1">^maxtou^</td><td class="ys2">{maxtou}</td></tr><tr><td height="34" align="right" class="ys1">^startdt^</td><td class="ys2">{startdt}</td><td align="right" class="ys1">^enddt^</td><td class="ys2">{enddt}</td></tr><tr id="subtitletou"><td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>投票选项</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*投票选项</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[touitems0,0]</td><td>{删,0}</td></tr><tr><td>[xuhao0,1]</td><td>[touitems0,1]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr></tbody></table>
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" align="right" class="ys1">*^title^</td><td class="ys2" colspan="3">{title}</td></tr><tr><td height="34" align="right" class="ys1">^fengmian^</td><td class="ys2" colspan="3">{fengmian}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^typename^</td><td width="35%" class="ys2">{typename}</td><td align="right" width="15%" class="ys1">^issms^</td><td width="35%" class="ys2">{issms}{appxs}</td></tr><tr><td height="34" align="right" class="ys1">^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*^content^</td><td colspan="3" class="ys2">{content}</td></tr><tr><td height="34" align="right" class="ys1">^file_content^</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">^url^</td><td colspan="3" class="ys2">{url}</td></tr><tr><td height="34" align="right" class="ys1">*^zuozhe^</td><td class="ys2">{zuozhe}</td><td align="right" class="ys1">*^indate^</td><td class="ys2">{indate}</td></tr><tr><td height="34" align="right" class="ys1">^zstart^</td><td class="ys2">{zstart}</td><td align="right" class="ys1">^zsend^</td><td class="ys2">{zsend}</td></tr><tr><td height="34" align="right" class="ys1">^mintou^</td><td class="ys2">{mintou}</td><td align="right" class="ys1">^maxtou^</td><td class="ys2">{maxtou}</td></tr><tr><td height="34" align="right" class="ys1">^startdt^</td><td class="ys2">{startdt}</td><td align="right" class="ys1">^enddt^</td><td class="ys2">{enddt}</td></tr><tr id="subtitletou"><td class="ys2" colspan="4"><strong>投票选项</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*投票选项</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[touitems0,0]</td><td>{删,0}</td></tr><tr><td>[xuhao0,1]</td><td>[touitems0,1]</td><td>{删,0}</td></tr></tbody></table><div class="addys">{新增,0}</div></td></tr></tbody></table>
|
||||
@@ -7,27 +7,17 @@ for(var i=0;i<editarr.length;i++)c.setcolumns(editarr[i],{type:'checkbox'});
|
||||
bootparams.fanye = false;
|
||||
|
||||
c.initpage=function(){
|
||||
$('#tdleft_{rand}').after('<td ><select style="width:180px;" class="form-control" id="modeid_{rand}" ></select></td>');
|
||||
$('#modeid_{rand}').change(function(){
|
||||
c.changemodeid(this);
|
||||
$('#tdleft_{rand}').after('<td ><input class="input" click="xuanmode" placeholder="-选择模块-" style="width:180px;background:url(images/xiangyou1.png) no-repeat right" id="modes_{rand}" readonly></td>');
|
||||
}
|
||||
|
||||
c.xuanmode = function(o1){
|
||||
js.selectmode(o1, get('modes_{rand}'), function(sna,val,d){
|
||||
c.changemodes(val);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
c.onloadbefore=function(d){
|
||||
if(d.modearr){
|
||||
var s = '<option value="0">-选择模块-</option>',len=d.modearr.length,i,csd,types='';
|
||||
for(i=0;i<len;i++){
|
||||
csd = d.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;
|
||||
}
|
||||
s+='</optgroup>';
|
||||
$('#modeid_{rand}').html(s);
|
||||
}
|
||||
if(d.mkrs)mknum = d.mkrs.num;
|
||||
}
|
||||
c.changemodeid=function(o1){
|
||||
@@ -36,6 +26,10 @@ c.changemodeid=function(o1){
|
||||
mkid = val;
|
||||
a.setparams({mkid:mkid},true);
|
||||
}
|
||||
c.changemodes=function(val){
|
||||
mkid = val;
|
||||
a.setparams({mkid:mkid},true);
|
||||
}
|
||||
c.xuanmoxbo = function(){
|
||||
if(mkid=='0'){
|
||||
js.msgerror('请先选择模块');
|
||||
|
||||
@@ -71,24 +71,46 @@ c.allcreate=function(){
|
||||
},'get',false,'生成中...');
|
||||
}
|
||||
|
||||
c.opentixing=function(fid, val){
|
||||
js.ajax(js.getajaxurl('opentixing','flow','main'),{fields:fid,value:val},function(s){
|
||||
js.msg('success', s);
|
||||
a.reload();
|
||||
},'get',false,'处理中...');
|
||||
}
|
||||
|
||||
$('#btndownbtn_{rand}').rockmenu({
|
||||
width:170,top:35,donghua:false,
|
||||
width:190,top:35,donghua:false,
|
||||
data:[{
|
||||
name:'主表管理',lx:0
|
||||
},{
|
||||
name:'清空此模块数据',lx:2
|
||||
},{
|
||||
name:'同步到单位数据',lx:3
|
||||
},{
|
||||
name:'同步菜单到单位数据',lx:4
|
||||
},{
|
||||
name:'☑全部模块开启PC提醒',lx:5,'fields':'pctx','value':1
|
||||
},{
|
||||
name:'☐全部模块关闭PC提醒',lx:5,'fields':'pctx','value':0
|
||||
},{
|
||||
name:'☑全部模块开启APP提醒',lx:5,'fields':'mctx','value':1
|
||||
},{
|
||||
name:'☐全部模块关闭APP提醒',lx:5,'fields':'mctx','value':0
|
||||
},{
|
||||
name:'☑全部模块开启微信提醒',lx:5,'fields':'wxtx','value':1
|
||||
},{
|
||||
name:'☐全部模块关闭微信提醒',lx:5,'fields':'wxtx','value':0
|
||||
},{
|
||||
name:'☑全部模块开启钉钉提醒',lx:5,'fields':'ddtx','value':1
|
||||
},{
|
||||
name:'☐全部模块关闭钉钉提醒',lx:5,'fields':'ddtx','value':0
|
||||
}],
|
||||
itemsclick:function(d, i){
|
||||
var id = a.changedata.id;
|
||||
if(!id)return;
|
||||
if(d.lx==0)c.biaoge();
|
||||
if(d.lx==2)c.clearalldata(id);
|
||||
//if(d.lx==2)js.alert('已弃用,防止删除数据不可逆的操作');
|
||||
if(d.lx==3)c.tongbudanwu();
|
||||
if(d.lx==4)c.tongbumenu();
|
||||
if(d.lx==5)c.opentixing(d.fields,d.value);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
104
webmain/flow/page/rock_page_goods.php
Normal file
104
webmain/flow/page/rock_page_goods.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* 模块:goods.物品
|
||||
* 说明:自定义区域内可写你想要的代码
|
||||
* 来源:流程模块→表单元素管理→[模块.物品]→生成列表页
|
||||
*/
|
||||
defined('HOST') or die ('not access');
|
||||
?>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
{params}
|
||||
var modenum = 'goods',modename='物品',isflow=0,modeid='9',atype = params.atype,pnum=params.pnum,modenames='',listname='Z29vZHM:';
|
||||
if(!atype)atype='';if(!pnum)pnum='';
|
||||
var fieldsarr = [],fieldsselarr= [],chufarr= {"stock":"\u603b\u5e93\u5b58","stock_1":"\u9ed8\u8ba4\u4ed3\u5e93","stock_3":"\u6cc9\u5dde\u4ed3\u5e93","stock_2":"\u4ed3\u5e932"};
|
||||
|
||||
<?php
|
||||
include_once('webmain/flow/page/rock_page.php');
|
||||
?>
|
||||
|
||||
//[自定义区域start]
|
||||
|
||||
if(pnum=='all'){
|
||||
bootparams.checked=true;
|
||||
bootparams.autoLoad=false;
|
||||
bootparams.celleditor=true;
|
||||
|
||||
var shtm = '<table width="100%"><tr valign="top"><td><div style="border:var(--border);width:220px"><div id="optionview_{rand}" style="height:400px;overflow:auto;"></div></div></td><td width="8" nowrap><div style="width:8px;overflow:hidden"></div></td><td width="95%"><div id="viewgoods_{rand}"></div></td></tr></table>';
|
||||
$('#viewgoods_{rand}').after(shtm).remove();
|
||||
c.stable = 'goods';
|
||||
c.optionview = 'optionview_{rand}';
|
||||
c.optionnum = 'goodstype';
|
||||
c.title = '物品分类';
|
||||
c.rand = '{rand}';
|
||||
|
||||
var c = new optionclass(c);
|
||||
|
||||
$('#'+c.optionview+'').css('height',''+(viewheight-130)+'px');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('刷新库存','kuncus')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('所有物品','allshow')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('入库','rukuchu,0')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('出库','rukuchu,1')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('打印二维码','prinwem,1')+' ');
|
||||
$('#tdright_{rand}').prepend('<span id="megss{rand}"></span> ');
|
||||
setTimeout(function(){c.mobj=a},5);//延迟设置,不然不能双击分类搜索
|
||||
|
||||
c.rukuchu=function(o1, lx){
|
||||
var s='物品入库';
|
||||
if(lx==1)s='物品出库';
|
||||
addtabs({num:'rukuchugood'+lx+'',url:'main,goods,churuku,type='+lx+'',icons:'plus',name:s});
|
||||
}
|
||||
|
||||
c.prinwem=function(){
|
||||
var sid = a.getchecked();
|
||||
if(sid==''){
|
||||
js.msg('msg','没有选中记录');
|
||||
return;
|
||||
}
|
||||
var url = '?a=printewm&m=goods&d=main&sid='+sid+'';
|
||||
window.open(url);
|
||||
}
|
||||
}
|
||||
|
||||
c.kuncus=function(){
|
||||
js.ajax(publicmodeurl('goods','reloadstock'),{},function(){
|
||||
a.reload();
|
||||
},'get','','刷新中...,刷新完成');
|
||||
}
|
||||
|
||||
//[自定义区域end]
|
||||
c.initpagebefore();
|
||||
js.initbtn(c);
|
||||
var a = $('#view'+modenum+'_{rand}').bootstable(bootparams);
|
||||
c.init();
|
||||
|
||||
});
|
||||
</script>
|
||||
<!--SCRIPTend-->
|
||||
<!--HTMLstart-->
|
||||
<div>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td style="padding-right:10px;" id="tdleft_{rand}" nowrap><button id="addbtn_{rand}" class="btn btn-primary" click="clickwin,0" disabled type="button"><i class="icon-plus"></i> <?=lang('新增')?></button></td>
|
||||
|
||||
<td><select class="form-control" style="width:110px;border-top-right-radius:0;border-bottom-right-radius:0;padding:0 2px" id="fields_{rand}"></select></td>
|
||||
<td><select class="form-control" style="width:60px;border-radius:0px;border-left:0;padding:0 2px" id="like_{rand}"><option value="0"><?=lang('包含')?></option><option value="1"><?=lang('等于')?></option><option value="2"><?=lang('大于')?><?=lang('等于')?></option><option value="3"><?=lang('小于')?><?=lang('等于')?></option><option value="4"><?=lang('不包含')?></option></select></td>
|
||||
<td><select class="form-control" style="width:130px;border-radius:0;border-left:0;display:none;padding:0 5px" id="selkey_{rand}"><option value="">-<?=lang('请选择')?>-</option></select><input class="form-control" style="width:130px;border-radius:0;border-left:0;padding:0 5px" id="keygj_{rand}" placeholder="<?=lang('关键字')?>"><input class="form-control" style="width:130px;border-radius:0;border-left:0;padding:0 5px;display:none;" id="key_{rand}" placeholder="<?=lang('关键字')?>">
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div style="white-space:nowrap">
|
||||
<button style="border-right:0;border-radius:0;border-left:0" class="btn btn-default" click="searchbtn" type="button"><?=lang('搜索')?></button><button class="btn btn-default" id="downbtn_{rand}" type="button" style="padding-left:8px;padding-right:8px;border-top-left-radius:0;border-bottom-left-radius:0"><i class="icon-angle-down"></i></button>
|
||||
</div>
|
||||
</td>
|
||||
<td width="90%" style="padding-left:10px"><div id="changatype{rand}" class="btn-group"></div></td>
|
||||
|
||||
<td align="right" id="tdright_{rand}" nowrap>
|
||||
<span style="display:none" id="daoruspan_{rand}"><button class="btn btn-default" click="daoru,1" type="button"><?=lang('导入')?></button> </span><button class="btn btn-default" style="display:none" id="daobtn_{rand}" disabled click="daochu" type="button"><?=lang('导出')?> <i class="icon-angle-down"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="blank10"></div>
|
||||
<div id="viewgoods_{rand}"></div>
|
||||
<!--HTMLend-->
|
||||
@@ -319,6 +319,11 @@ class indexClassAction extends Action{
|
||||
echo $this->get('abc');
|
||||
}
|
||||
|
||||
public function testAction()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function getxings($str)
|
||||
{
|
||||
if(!isempt($str))$str = substr($str,0,5).'*****'.substr($str,-5);
|
||||
|
||||
@@ -745,4 +745,30 @@ function pirnttablelist(d,na){
|
||||
d.printrnd = rnd;
|
||||
}
|
||||
window.open('?d=public&m=print&table='+rnd+'&modename='+jm.base64encode(na)+'');
|
||||
}
|
||||
|
||||
//选择模块
|
||||
js.selectmode = function(obj, naobj, fun){
|
||||
this.chajian('rockselect', {
|
||||
viewobj:obj,
|
||||
num:'getmodearr',limit:20,
|
||||
url:js.getajaxurl('getmodearr','flow','main'),
|
||||
onitemclick:function(sna,val,d){fun(sna,val,d)},
|
||||
ondatachuli:function(da){
|
||||
var len=da.length,i,csd,types='',ds=[],dt=[];
|
||||
for(i=0;i<len;i++){
|
||||
csd = da[i];
|
||||
if(types!=csd.type){
|
||||
ds.push({name:csd.type,style:'font-weight:bold',disabled:true});
|
||||
dt.push({name:csd.type,value:csd.type,type:csd.type});
|
||||
}
|
||||
types = csd.type;
|
||||
csd.padding='24';
|
||||
ds.push(csd);
|
||||
}
|
||||
this.setSelectData(dt,'所有分类', 'type');
|
||||
return ds;
|
||||
},
|
||||
nameobj:naobj
|
||||
});
|
||||
}
|
||||
@@ -153,9 +153,10 @@ function showmenula(a){
|
||||
s+='</div>';
|
||||
if(o.stotal>0){
|
||||
child = o.children;
|
||||
s+='<div downmenu="'+i+'_0" style="display:none;background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.05)">'
|
||||
for(j=0; j<child.length; j++){
|
||||
o = child[j];
|
||||
s+='<div downmenu="'+i+'_'+j+'" class="hover" style="'+css1+';padding-left:30px;background:rgba(0,0,0,0.05);background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.05);display:none" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+',-1)"><i class="icon-'+o.icons+'"></i> '+o.name+'';
|
||||
s+='<div class="hover" style="'+css1+';padding-left:30px;" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+',-1)"><i class="icon-'+o.icons+'"></i> '+o.name+'';
|
||||
if(o.bh){
|
||||
hongbadge[o.bh]=a[i].num;
|
||||
s+=' <span class="badge" badge="'+o.bh+'" style="float:none;display:none;background:red;color:white"></span>';
|
||||
@@ -164,12 +165,15 @@ function showmenula(a){
|
||||
s+='</div>';
|
||||
if(o.stotal>0){
|
||||
hhild = o.children;
|
||||
s+='<div downmenu="'+i+'_'+j+'_0" style="display:none;background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.02)">'
|
||||
for(k=0; k<hhild.length; k++){
|
||||
o = hhild[k];
|
||||
s+='<div downmenu="'+i+'_'+j+'_'+k+'" class="hover" style="'+css1+';padding-left:60px;background:rgba(0,0,0,0.02);background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.02);display:none" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+','+k+')"><i class="icon-'+o.icons+'"></i> '+o.name+'</div>';
|
||||
s+='<div class="hover" style="'+css1+';padding-left:60px;" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+','+k+')"><i class="icon-'+o.icons+'"></i> '+o.name+'</div>';
|
||||
}
|
||||
s+='</div>';
|
||||
}
|
||||
}
|
||||
s+='</div>';
|
||||
}
|
||||
}
|
||||
if(s=='')s='<div style="padding:30px;color:#cccccc" align="center">暂无</div>';
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<script type="text/javascript" src="js/js.js?<?=$nowtime?>"></script>
|
||||
<script type="text/javascript" src="js/worker.js"></script>
|
||||
<script type="text/javascript" src="js/base64-min.js"></script>
|
||||
<script type="text/javascript" src="<?=$da['p']?>/<?=$da['d']?><?=$da['m']?>/<?=$da['m']?>public.js"></script>
|
||||
<script type="text/javascript" src="<?=$da['p']?>/<?=$da['d']?><?=$da['m']?>/<?=$da['m']?>public.js?<?=$nowtime?>"></script>
|
||||
<script type="text/javascript" src="<?=$da['p']?>/<?=$da['d']?><?=$da['m']?>/<?=$da['m']?>script.js?<?=$nowtime?>"></script>
|
||||
<script type="text/javascript" src="web/res/mode/menu/jquery-rockmenu.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -99,6 +99,7 @@ function loginsubmit(){
|
||||
js.ajax(url,data,function(a){
|
||||
abcpass = '';
|
||||
if(a.success){
|
||||
js.setoption('admintoken', a.token);
|
||||
get('imglogo').src=a.face;
|
||||
js.setoption('loginface', a.face);
|
||||
var burl = js.request('backurl');
|
||||
|
||||
@@ -720,7 +720,7 @@ class mode_'.$modenum.'ClassAction extends inputAction{
|
||||
$tablesn = explode(',', $mrs['names']);
|
||||
foreach($tablesa as $k=>$tab){
|
||||
$str = m('input')->getsubtable($modeid, $k+1, 1);
|
||||
$s.='<tr ><td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>'.arrvalue($tablesn, $k).'</strong></td></tr>';
|
||||
$s.='<tr ><td class="ys2 zbtitle" colspan="4"><strong>'.arrvalue($tablesn, $k).'</strong></td></tr>';
|
||||
$s.='<tr><td class="ys0" colspan="4">'.$str.'</td></tr>';
|
||||
}
|
||||
}
|
||||
@@ -808,7 +808,7 @@ class mode_'.$modenum.'ClassAction extends inputAction{
|
||||
$narr['modename'] = $this->moders['name'];
|
||||
$narr['table'] = $this->moders['table'];
|
||||
$narr['optdt'] = arrvalue($rs,'optdt');
|
||||
$nors = $flow->flowrsreplace($rs, 2);
|
||||
$nors = $flow->rsreplace($rs, 2, null, 1);
|
||||
$narr['summary'] = $this->rock->reparr($this->moders['summary'], $nors);
|
||||
$otehsr = '';
|
||||
if($flow->isflow>0){
|
||||
@@ -911,7 +911,7 @@ class mode_'.$modenum.'ClassAction extends inputAction{
|
||||
$fiesss = substr($fields,0,5);
|
||||
if($fiesss == 'base_' || $fiesss == 'temp_')return;
|
||||
if(!isempt($tables) && $cans['islu']==1){
|
||||
$_fieldsa = $this->db->gettablefields('[Q]'.$tables.'');$allfields = array();
|
||||
$_fieldsa = $this->db->gettablefields('[Q]'.$tables.'');$allfields = array();$this->rock->debugs($_fieldsa,'fields');
|
||||
foreach($_fieldsa as $k2=>$rs2)$allfields[$rs2['name']] = $rs2;
|
||||
$this->createfields($allfields, $tables, $fields, $type, $lens, $dev, $name);
|
||||
if(substr($type,0,6)=='change' && !isempt($data)){
|
||||
@@ -1087,7 +1087,7 @@ class mode_'.$modenum.'ClassAction extends inputAction{
|
||||
m('log')->addlog('模块','清空模块['.$name.']的数据');
|
||||
}
|
||||
|
||||
$this->db->query("alter table `[Q]$table` AUTO_INCREMENT=1");
|
||||
//$this->db->query("alter table `[Q]$table` AUTO_INCREMENT=1");
|
||||
return 'ok';
|
||||
}
|
||||
|
||||
@@ -1645,4 +1645,13 @@ return array(
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
public function opentixingAjax()
|
||||
{
|
||||
$fields = $this->get('fields');
|
||||
if(c('check')->onlynumber($fields))return '错误';
|
||||
$value = (int)$this->get('value');
|
||||
m('flow_set')->update("`$fields`='$value'", 'id>0');
|
||||
return '处理成功';
|
||||
}
|
||||
}
|
||||
@@ -138,11 +138,11 @@ $(document).ready(function(){
|
||||
|
||||
<tr id="changefields{rand}" style="display:none">
|
||||
<td align="right" nowrap >变化字段(可多选):<br><font color="#888888">来自[表单元素管理]</font><font color=white>:</font></td>
|
||||
<td class="tdinput"><select multiple name="changefields" size="8" class="form-control"></select></td>
|
||||
<td class="tdinput"><select multiple style="height:100px;overflow:auto" name="changefields" size="8" class="form-control"></select></td>
|
||||
</tr>
|
||||
<tr id="changecourse{rand}" style="display:none">
|
||||
<td align="right" nowrap >处理的步骤(可多选):<br><font color="#888888">来自[流程审核步骤]</font><font color=white>:</font></td>
|
||||
<td class="tdinput"><select multiple name="changecourse" size="5" class="form-control"></select></td>
|
||||
<td class="tdinput"><select multiple style="height:100px;overflow:auto" name="changecourse" size="5" class="form-control"></select></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
@@ -46,6 +46,10 @@ $(document).ready(function(){
|
||||
modeid=v;
|
||||
a.setparams({modeid:v},true);
|
||||
},
|
||||
changemodes:function(v){
|
||||
modeid=v;
|
||||
a.setparams({modeid:v},true);
|
||||
},
|
||||
del:function(){
|
||||
a.del({
|
||||
url:js.getajaxurl('delmodeshuju','{mode}','{dir}'),
|
||||
@@ -59,24 +63,13 @@ $(document).ready(function(){
|
||||
openviewlog:function(id){
|
||||
var d = a.getData(id);
|
||||
addtabs({name:'['+d.id+'.'+d.modename+']操作记录','num':''+d.modenum+''+d.id+'',url:'main,flow,viewlog,modenum='+d.table+',mid='+d.id+''});
|
||||
},
|
||||
xuanmode:function(o1){
|
||||
js.selectmode(o1, get('modes_{rand}'), function(sna,val,d){
|
||||
c.changemodes(val);
|
||||
});
|
||||
}
|
||||
};
|
||||
$('#mode_{rand}').change(c.changemode);
|
||||
$.get(js.getajaxurl('getmodearr','{mode}','{dir}'),function(str){
|
||||
var d=js.decode(str);
|
||||
|
||||
var s = '<option value="0">-选择模块-</option>',len=d.data.length,i,csd,types='';
|
||||
for(i=0;i<len;i++){
|
||||
csd = d.data[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);
|
||||
});
|
||||
js.initbtn(c);
|
||||
openlogs{rand}=function(id){
|
||||
c.openviewlog(id);
|
||||
@@ -88,7 +81,10 @@ $(document).ready(function(){
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<select style="width:180px" id="mode_{rand}" class="form-control" ><option value="0">-选择模块-</option></select>
|
||||
<div class="btn-group" style="width:260px;" click="xuanmode">
|
||||
<input class="input" placeholder="-选择模块-" style="flex:1" id="modes_{rand}" readonly>
|
||||
<button class="webbtn webbtn-default">v</button>
|
||||
</div>
|
||||
</td>
|
||||
<td align="left" style="padding:0px 10px;">
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><?=$da['title']?>-<?=TITLE?></title>
|
||||
<link rel="stylesheet" href="webmain/css/css.css" />
|
||||
<link rel="stylesheet" href="webmain/css/rock.css?<?=time()?>" />
|
||||
<link rel="stylesheet" href="mode/kindeditor/themes/default/default.css" />
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
<script type="text/javascript" src="js/jquery.js"></script>
|
||||
@@ -139,6 +139,9 @@ select{font-size:12px}
|
||||
#page_left div{text-align:left;padding:5px 10px;cursor:pointer}
|
||||
#page_left div:hover{ background-color:#f1f1f1;color:#225DE8}
|
||||
</style>
|
||||
<?php
|
||||
echo c('color')->getApptheme(false);
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div align="center">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><?=$da['title']?>-<?=TITLE?></title>
|
||||
<link rel="stylesheet" href="webmain/css/css.css" />
|
||||
<link rel="stylesheet" href="webmain/css/rock.css?<?=time()?>" />
|
||||
<link rel="stylesheet" href="mode/kindeditor/themes/default/default.css" />
|
||||
<link rel="shortcut icon" href="favicon.ico" />
|
||||
<script type="text/javascript" src="js/jquery.js"></script>
|
||||
@@ -115,6 +115,9 @@ select{font-size:12px}
|
||||
#page_left div{text-align:left;padding:5px 10px;cursor:pointer}
|
||||
#page_left div:hover{ background-color:#f1f1f1;color:#225DE8}
|
||||
</style>
|
||||
<?php
|
||||
echo c('color')->getApptheme(false);
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div align="center">
|
||||
|
||||
@@ -283,7 +283,7 @@ class fworkClassAction extends Action
|
||||
if($enddt=='')$enddt = $dtobj->adddate($startdt,'d',7);
|
||||
$jg = $dtobj->datediff('d',$startdt, $enddt);
|
||||
if($jg>30)$jg = 30;
|
||||
$flow = m('flow:meet');
|
||||
$flow = m('flow')->initflow('meet');
|
||||
$data = m('meet')->getall("`status`=1 and `type`=0 and `startdt`<='$enddt 23:59:59' and `enddt`>='$startdt' order by `startdt` asc",'hyname,title,startdt,enddt,state,joinname,optname,id');
|
||||
$datss = array();
|
||||
foreach($data as $k=>$rs){
|
||||
@@ -297,8 +297,21 @@ class fworkClassAction extends Action
|
||||
$columns = $rows;
|
||||
$barr = array();
|
||||
$dt = $startdt;
|
||||
$gdrows = $flow->getall('`type`=1 and `status`=1');
|
||||
for($i=0; $i<=$jg; $i++){
|
||||
if($i>0)$dt = $dtobj->adddate($dt,'d',1);
|
||||
|
||||
//固定会议
|
||||
if($gdrows && $dt > $this->rock->date){
|
||||
$srows = $flow->createmeet($gdrows, $dt, true);
|
||||
if($srows)foreach($srows as $k1=>$rs){
|
||||
$key = substr($rs['startdt'],0,10).$rs['hyname'];
|
||||
if(!isset($datss[$key]))$datss[$key] = array();
|
||||
$str = '['.substr($rs['startdt'],11,5).'→'.substr($rs['enddt'],11,5).']'.$rs['title'].'('.$rs['joinname'].') <font color=blue>固定会议</font>';
|
||||
$datss[$key][] = $str;
|
||||
}
|
||||
}
|
||||
|
||||
$w = $dtobj->cnweek($dt);
|
||||
$status = 1;
|
||||
if($w=='六'||$w=='日')$status = 0;
|
||||
|
||||
@@ -80,7 +80,7 @@ $(document).ready(function(){
|
||||
|
||||
js.initbtn(c);
|
||||
|
||||
$('#optionview_{rand}').css('height',''+(viewheight-25)+'px');
|
||||
$('#optionview_{rand}').css('height',''+(viewheight-45)+'px');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -22,15 +22,15 @@ class kaoqinClassAction extends Action
|
||||
$dt1 = $this->post('dt1');
|
||||
$dt2 = $this->post('dt2');
|
||||
$msg = '获取成功';
|
||||
$daka = $this->option->getval('qywxplat_daka');
|
||||
$daka = $this->option->getval('wxqyplat_daka');
|
||||
if($daka=='1'){
|
||||
$barr = c('rockqywx')->getcheckindata($uids, $dt1, $dt2, 1);
|
||||
$barr = c('rockwxqy')->getcheckindata($uids, $dt1, $dt2, 1);
|
||||
if(!$barr['success']){
|
||||
$msg = $barr['msg'];
|
||||
}else{
|
||||
$data = $barr['data'];
|
||||
$msg .= ',从代建中应用获取打卡(共'.$data['zongts'].'条,新增'.$data['okload'].'条)';
|
||||
if($data['maxpage']>1)$msg.=',并发送异步请求1条';
|
||||
//$msg .= ',从代建中应用获取打卡(共'.$data['zongts'].'条,新增'.$data['okload'].'条)';
|
||||
//if($data['maxpage']>1)$msg.=',并发送异步请求1条';
|
||||
}
|
||||
}else{
|
||||
if($reimbo->installwx(1)){
|
||||
|
||||
@@ -33,22 +33,6 @@ $(document).ready(function(){
|
||||
},
|
||||
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){
|
||||
@@ -76,14 +60,17 @@ $(document).ready(function(){
|
||||
guanflowviewlist = a;
|
||||
addtabs({num:'flowview'+id+'',url:'main,view,edit,id='+id+',mid='+mid+'',icons:icon,name:name});
|
||||
},
|
||||
changemode:function(){
|
||||
var v=this.value;
|
||||
changemodes:function(v){
|
||||
mid=v;
|
||||
a.search('and modeid='+v+'');
|
||||
},
|
||||
xuanmode:function(o1){
|
||||
js.selectmode(o1, get('modes_{rand}'), function(sna,val,d){
|
||||
c.changemodes(val);
|
||||
});
|
||||
}
|
||||
};
|
||||
js.initbtn(c);
|
||||
$('#mode_{rand}').change(c.changemode);
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -94,7 +81,10 @@ $(document).ready(function(){
|
||||
<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>
|
||||
<div class="btn-group" style="width:260px;" click="xuanmode">
|
||||
<input class="input" placeholder="-选择模块-" style="flex:1" id="modes_{rand}" readonly>
|
||||
<button class="webbtn webbtn-default">v</button>
|
||||
</div>
|
||||
</td>
|
||||
<td width="90%">
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class viewClassAction extends Action
|
||||
}
|
||||
return array(
|
||||
'rows'=>$rows,
|
||||
'modearr' => m('mode')->getmodearr(),
|
||||
//'modearr' => m('mode')->getmodearr(),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,37 @@ $(document).ready(function(){
|
||||
js.ajax(js.getajaxurl('tongbudw','{mode}','{dir}'),false, function(ret){
|
||||
js.msgok(ret);
|
||||
},'get');
|
||||
},
|
||||
onlinev:function(){
|
||||
var url = get('push_{rand}').value;
|
||||
if(!url){js.msgerror('没配置服务端');return;}
|
||||
js.loading('加载中...');
|
||||
js.ajax(js.getajaxurl('getonline','{mode}','{dir}'),false, function(ret){
|
||||
if(ret.success){
|
||||
js.unloading();
|
||||
c.onlinevs(ret.data);
|
||||
}else{
|
||||
js.msgerror(ret.msg);
|
||||
js.tanclose('online');
|
||||
}
|
||||
},'get,json');
|
||||
},
|
||||
onlinevs:function(da){
|
||||
var s = '',i,j,d;
|
||||
for(i=0;i<da.rows.length;i++){
|
||||
d = da.rows[i];
|
||||
s+='<div style="margin:5px;float:left;padding:5px" class="hover" align="center">';
|
||||
s+=' <div><img width="30" style="border-radius:50%" height="30" src="'+d.face+'"></div>';
|
||||
s+=' <div>'+d.name+'';
|
||||
if(d.pconline)s+='<span class="zhu"><i class="icon-laptop"></i></span>';
|
||||
if(d.apponline)s+='<span class="zhu"><i class="icon-mobile-phone"></i></span>';
|
||||
s+=' </div>';
|
||||
s+='</div>';
|
||||
}
|
||||
js.tanbody('online','服务端在线人员', 450, 300, {
|
||||
html:'<div style="height:350px;overflow:auto;display:inline-block">'+s+'</div>'
|
||||
});
|
||||
$('#msgview_online').html(da.msg);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -115,7 +146,8 @@ $(document).ready(function(){
|
||||
<td align="right"></td>
|
||||
<td class="tdinput">
|
||||
<button click="kuanshu1" class="btn btn-info" type="button">快速设置(推荐)</button>
|
||||
<button click="kuanshu2" class="btn btn-default" type="button">自定义设置</button>
|
||||
<button click="kuanshu2" class="btn btn-default" type="button">自定义设置</button>
|
||||
<button click="onlinev" class="btn btn-default" type="button">在线人员</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -147,7 +179,7 @@ $(document).ready(function(){
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td class="tdinput"><font color="#888888">不知道地址?请先安装并运行服务端,</font><a href="<?=URLY?>view_server.html" target="_blank">[去下载安装,看帮助]</a></td>
|
||||
<td class="tdinput"><font color="#888888">不知道地址?请先安装并运行服务端,配置wss请看帮助,</font><a href="<?=URLY?>view_server.html" target="_blank">[去下载安装,看帮助]</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
@@ -27,6 +27,7 @@ class xinhuClassAction extends Action
|
||||
foreach($rows as $k=>$rs){
|
||||
$base = ''.DB_BASE.'_company_'.$rs['num'].'';
|
||||
$this->sevessee($base, 'reimhostsystem');
|
||||
$this->sevessee($base, 'reimpushurlsystem');
|
||||
$this->sevessee($base, 'reimrecidsystem', $rs['num']);
|
||||
$this->sevessee($base, 'reimchehuisystem');
|
||||
$this->sevessee($base, 'reimservertype');
|
||||
@@ -38,7 +39,14 @@ class xinhuClassAction extends Action
|
||||
{
|
||||
$val = $this->option->getval($key);
|
||||
if($key=='reimrecidsystem')$val.='_'.$bh.'';
|
||||
$sql = "update ".$base.".`[Q]option` set `value`='$val',`optdt`='{$this->now}' where `num`='$key'";
|
||||
$table = "".$base.".`[Q]option`";
|
||||
$where = "`num`='$key'";
|
||||
$ors = $this->db->getone($table, $where);
|
||||
if($ors){
|
||||
$sql = "update $table set `value`='$val',`optdt`='{$this->now}' where $where";
|
||||
}else{
|
||||
$sql = "insert into $table set `value`='$val',`optdt`='{$this->now}',`num`='$key'";
|
||||
}
|
||||
$this->db->query($sql, false);
|
||||
}
|
||||
|
||||
@@ -141,4 +149,37 @@ class xinhuClassAction extends Action
|
||||
));
|
||||
return $barr;
|
||||
}
|
||||
|
||||
public function getonlineAjax()
|
||||
{
|
||||
|
||||
$barr = m('reim')->pushserver('getonline');
|
||||
if(!$barr['success'])return $barr;
|
||||
$data = $barr['data'];
|
||||
if(!$data)return returnerror('无人员在线');
|
||||
$ondats = json_decode($data, true);
|
||||
$pc = $ondats['pc'];
|
||||
$app = $ondats['app'];
|
||||
$uar1= explode(',', $pc);
|
||||
$uar2= explode(',', $app);
|
||||
$str = $pc;
|
||||
$on1 = count($uar1);
|
||||
$on2 = count($uar2);
|
||||
if($app){
|
||||
if($str)$str.=',';
|
||||
$str.=$app;
|
||||
}
|
||||
if(!$str)return returnerror('无人员在线');
|
||||
if(!$app)$on2 = 0;
|
||||
if(!$pc)$on1 = 0;
|
||||
$rows = m('admin')->getall('id in('.$str.') and `status`=1','id,name,face','sort asc');
|
||||
foreach($rows as $k=>$rs){
|
||||
$rows[$k]['pconline'] = in_array($rs['id'], $uar1);
|
||||
$rows[$k]['apponline'] = in_array($rs['id'], $uar2);
|
||||
}
|
||||
return returnsuccess(array(
|
||||
'rows' => $rows,
|
||||
'msg' => 'PC在线'.$on1.'人,APP在线'.$on2.'人',
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,6 @@ $(document).ready(function(){
|
||||
}
|
||||
},{
|
||||
text:'分类',dataIndex:'types',editor:true,sortable:true
|
||||
},{
|
||||
text:'图标颜色',dataIndex:'iconcolor',editor:true
|
||||
},{
|
||||
text:'编号',dataIndex:'num'
|
||||
},{
|
||||
|
||||
@@ -112,10 +112,12 @@ class adminClassModel extends Model
|
||||
$tj[] = $this->rock->dbinstr($fids, 'all');
|
||||
$tj[] = $this->rock->dbinstr($fids, 'u'.$uid);
|
||||
if($us){
|
||||
$dep = explode(',', $us['deptpath']);
|
||||
foreach($dep as $deps){
|
||||
$_deps = str_replace(array('[',']'), array('',''), $deps);
|
||||
$tj[] = $this->rock->dbinstr($fids, 'd'.$_deps);
|
||||
if(!isempt($us['deptpath'])){
|
||||
$dep = explode(',', $us['deptpath']);
|
||||
foreach($dep as $deps){
|
||||
$_deps = str_replace(array('[',']'), array('',''), $deps);
|
||||
$tj[] = $this->rock->dbinstr($fids, 'd'.$_deps);
|
||||
}
|
||||
}
|
||||
//所在组Id
|
||||
$gids = m('sjoin')->getgroupid($uid);
|
||||
|
||||
@@ -91,18 +91,21 @@ class beifenClassModel extends Model
|
||||
foreach($fields as $k=>$frs){
|
||||
$fname = $frs['name'];
|
||||
if($fname=='id')continue;
|
||||
$nstr = $this->getfielstr($frs);
|
||||
$nstr = $this->getfielstr($frs);
|
||||
$frs['explain'] = '';
|
||||
$nstr1 = $this->getfielstr($frs);
|
||||
if(!isset($nowfiel[$fname])){
|
||||
$str.=',add '.$nstr.'';
|
||||
}else{
|
||||
$ofrs = $nowfiel[$fname]; //系统上字段类型
|
||||
$ostr = $this->getfielstr($ofrs);
|
||||
//$ostr = $this->getfielstr($ofrs);
|
||||
$ofrs['explain'] = '';
|
||||
$ostr1 = $this->getfielstr($ofrs);
|
||||
$lxarr= array('text','mediumtext','bigint');
|
||||
|
||||
//如果自己字段长度大于官网就不更新
|
||||
if($frs['type']==$ofrs['type'] && !isempt($ofrs['lens']) && $ofrs['lens']>$frs['lens']){
|
||||
|
||||
}else if($nstr != $ostr && !in_array($ofrs['type'], $lxarr) ){
|
||||
}else if($nstr1 != $ostr1 && !in_array($ofrs['type'], $lxarr) ){
|
||||
$str.=',MODIFY '.$nstr.'';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ class crmClassModel extends Model
|
||||
}
|
||||
|
||||
//读取所有客户
|
||||
public function custdata()
|
||||
public function custdata($whe='')
|
||||
{
|
||||
$limit = (int)$this->rock->get('limit', '10');
|
||||
$page = (int)$this->rock->get('page', '1');
|
||||
@@ -41,6 +41,10 @@ class crmClassModel extends Model
|
||||
$key= $this->rock->jm->base64decode($key);
|
||||
$where.= " and (`name` like '%$key%' or `unitname` like '%$key%')";
|
||||
}
|
||||
if($whe){
|
||||
$whe = str_replace('{uid}', $this->adminid, $whe);
|
||||
$where .= " AND $whe";
|
||||
}
|
||||
$rows = $this->getrows("`status`=1 ".$where."",'SQL_CALC_FOUND_ROWS id as value,name,id,unitname as subname','`optdt` desc',''.(($page-1)*$limit).','.$limit.'');
|
||||
$totalCount = $this->db->found_rows();
|
||||
return array(
|
||||
|
||||
@@ -120,12 +120,11 @@ class fileClassModel extends Model
|
||||
if(!file_exists($thumbpath))$thumbpath='';
|
||||
}
|
||||
|
||||
if(isempt($thumbpath))$thumbpath = arrvalue($rs, 'thumbplat');
|
||||
if(!isempt($thumbpath)){
|
||||
$thumbpath = str_replace('{FILEURL}', getconfig('rockfile_url'), $thumbpath);
|
||||
$thumbpath = $this->rock->gethttppath($thumbpath);
|
||||
$thumbplat = arrvalue($rs, 'thumbplat');
|
||||
if(!isempt($thumbplat)){
|
||||
$thumbpath = str_replace('{FILEURL}', getconfig('rockfile_url'), $thumbplat);
|
||||
}
|
||||
return $thumbpath;
|
||||
return $this->rock->gethttppath($thumbpath);
|
||||
}
|
||||
|
||||
|
||||
@@ -339,7 +338,10 @@ class fileClassModel extends Model
|
||||
header('location:'.$filepath.'');
|
||||
return;
|
||||
}
|
||||
|
||||
if($this->rock->get('openfrom')=='iosapp'){
|
||||
header('location:'.$filepath.'');
|
||||
return;
|
||||
}
|
||||
if($filesize > 10*1024*1024 && 1==1 && $fileext!='pdf'){
|
||||
header('location:'.$filepath.'');
|
||||
}else{
|
||||
|
||||
@@ -37,7 +37,7 @@ class flow_carmreseClassModel extends flowModel
|
||||
$db = m('carmrese');
|
||||
//读取车辆最后公里数
|
||||
foreach($rows as $k=>$rs){
|
||||
$onrs = $db->getone("`status`=1 and `carid`=".$rs['value']." and ifnull(`kmend`,'')<>''", '`kmend`,`kmstart`','`kmend` desc');
|
||||
$onrs = $db->getone("`status`=1 and `carid`=".$rs['value']." and ifnull(`kmend`,0)<>0", '`kmend`,`kmstart`','`kmend` desc');
|
||||
$km = '';
|
||||
if($onrs){
|
||||
$km = $onrs['kmend'];
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3,8 +3,14 @@
|
||||
class flow_goodsClassModel extends flowModel
|
||||
{
|
||||
|
||||
public $base;
|
||||
public function initModel()
|
||||
{
|
||||
$this->base = m('goods');
|
||||
}
|
||||
|
||||
protected function flowchangedata(){
|
||||
$this->rs['typeid'] = m('goods')->gettypename($this->rs['typeid']);
|
||||
$this->rs['typeid'] = $this->base->gettypename($this->rs['typeid']);
|
||||
}
|
||||
|
||||
//导入数据的测试显示
|
||||
@@ -40,6 +46,10 @@ class flow_goodsClassModel extends flowModel
|
||||
//
|
||||
public function flowrsreplace($rs, $lx=0)
|
||||
{
|
||||
|
||||
if(isset($rs['typeid']) && is_numeric($rs['typeid']))
|
||||
$rs['typeid'] = $this->base->gettypename($rs['typeid']);
|
||||
|
||||
//详情页下显示对应仓库库存
|
||||
if($lx==1){
|
||||
$drows = $this->db->getall("SELECT `depotid`,sum(count)count FROM `[Q]goodss` where aid=".$rs['id']." and `status`=1 GROUP BY `depotid`");
|
||||
@@ -84,4 +94,18 @@ class flow_goodsClassModel extends flowModel
|
||||
m('goodss')->delete('`aid`='.$this->id.'');
|
||||
m('goods')->setstock();
|
||||
}
|
||||
|
||||
protected function flowbillwhere($uid, $lx)
|
||||
{
|
||||
$where = '';
|
||||
$typeid = $this->rock->post('typeid','0');
|
||||
if($typeid!='0'){
|
||||
$alltpeid = m('option')->getalldownid($typeid);
|
||||
$where .= ' and `typeid` in('.$alltpeid.')';
|
||||
}
|
||||
return array(
|
||||
'where' => $where,
|
||||
'order' => 'optdt desc',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -51,15 +51,17 @@ class flow_meetClassModel extends flowModel
|
||||
$nzt = $zt;
|
||||
$time = time();
|
||||
|
||||
$stime = strtotime($rs['startdt']);
|
||||
$etime = strtotime($rs['enddt']);
|
||||
if($zt < 2){
|
||||
if($etime<$time){
|
||||
$nzt = 2;
|
||||
}else if($stime>$time){
|
||||
$nzt = 0;
|
||||
}else{
|
||||
$nzt = 1;
|
||||
if(!isempt($rs['startdt']) && !isempt($rs['enddt'])){
|
||||
$stime = strtotime($rs['startdt']);
|
||||
$etime = strtotime($rs['enddt']);
|
||||
if($zt < 2){
|
||||
if($etime<$time){
|
||||
$nzt = 2;
|
||||
}else if($stime>$time){
|
||||
$nzt = 0;
|
||||
}else{
|
||||
$nzt = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,9 +233,13 @@ class flow_meetClassModel extends flowModel
|
||||
//每天运行计划任务将固定会议生成普通会议通知对应人
|
||||
public function createmeet($id=0, $nowdt='', $gbrr=false)
|
||||
{
|
||||
$owhe = '';
|
||||
if($id>0)$owhe='`id`='.$id.' and ';
|
||||
$narr = $this->getall(''.$owhe.'`type`=1 and `status`=1');
|
||||
if(is_array($id)){
|
||||
$narr = $id;
|
||||
}else{
|
||||
$owhe = '';
|
||||
if($id>0)$owhe='`id`='.$id.' and ';
|
||||
$narr = $this->getall(''.$owhe.'`type`=1 and `status`=1');
|
||||
}
|
||||
$dtobj = c('date');
|
||||
$jlarr = array();
|
||||
foreach($narr as $k=>$rs){
|
||||
|
||||
@@ -87,7 +87,7 @@ class flow_subscribeinfoClassModel extends flowModel
|
||||
$newid = $this->insert(array(
|
||||
'mid' => $id,
|
||||
'receid' => $receid,
|
||||
'recename' => $recename,
|
||||
'recename' => $this->rock->xssrepstr($recename),
|
||||
'title' => $title,
|
||||
'cont' => $cont,
|
||||
'optdt' => $this->rock->now,
|
||||
|
||||
@@ -154,7 +154,7 @@ class flowbillClassModel extends Model
|
||||
$modename = $mors['name'];
|
||||
$rers = $this->db->getone('[Q]'.$rs['table'].'', $rs['mid']);
|
||||
if($rers){
|
||||
$tihsrs = $flow->flowrsreplace($rers, 2);
|
||||
$tihsrs = $flow->rsreplace($rers, 2, null, 1);
|
||||
$summary = $this->rock->reparr($mors['summary'], $tihsrs);
|
||||
$summarx = $this->rock->reparr($mors['summarx'], $tihsrs);
|
||||
|
||||
@@ -316,7 +316,7 @@ class flowbillClassModel extends Model
|
||||
$rers = $this->db->getone('[Q]'.$rs['table'].'', $rs['mid']);
|
||||
$summary = $this->rock->reparr($summary, $rers);
|
||||
if($rers){
|
||||
$tihsrs = $flow->flowrsreplace($rers, 2);
|
||||
$tihsrs = $flow->rsreplace($rers, 2, null, 1);
|
||||
$summary = $this->rock->reparr($mors['summary'], $tihsrs);
|
||||
|
||||
$nowsets = $rs['nowcheckname']; //当前审核人
|
||||
|
||||
@@ -66,7 +66,7 @@ class inputClassModel extends Model
|
||||
$strm.= ' {删,'.$xu.'}';
|
||||
$strm.= '</td></tr></table>';
|
||||
|
||||
if($ism==0)$str.='<div style="background-color:#F1F1F1;">{新增,'.$xu.'}</div>';
|
||||
if($ism==0)$str.='<div class="addys">{新增,'.$xu.'}</div>';
|
||||
if($ism==1){
|
||||
$str.='<div>{新增,'.$xu.'}</div>';
|
||||
$strm.='<div style="margin:8px">{新增,'.$xu.'}</div>';
|
||||
|
||||
@@ -468,6 +468,8 @@ class kqjcmdClassModel extends Model
|
||||
//保存指纹
|
||||
public function savefingerprint($snid, $uid, $finge)
|
||||
{
|
||||
$snid = (int)$snid;
|
||||
$uid = (int)$uid;
|
||||
$where = "`snid`='$snid' and `uid`='$uid'";
|
||||
$arr['fingerprint1'] = str_replace("\n",'', arrvalue($finge, 0));
|
||||
$arr['fingerprint2'] = str_replace("\n",'', arrvalue($finge, 1));
|
||||
@@ -483,6 +485,8 @@ class kqjcmdClassModel extends Model
|
||||
//保存设备头像
|
||||
private function saveheadpic($snid, $uid, $headpic, $face='')
|
||||
{
|
||||
$snid = (int)$snid;
|
||||
$uid = (int)$uid;
|
||||
$where = "`snid`='$snid' and `uid`='$uid'";
|
||||
if(isempt($face)){
|
||||
if(isempt($headpic))return;
|
||||
|
||||
@@ -48,8 +48,8 @@ class logClassModel extends Model
|
||||
}else{
|
||||
$arr['stotal'] = (int)$onrs['stotal']+1;
|
||||
}
|
||||
$arr['ip'] = $this->rock->ip;
|
||||
$arr['web'] = $this->rock->web;
|
||||
//$arr['ip'] = $this->rock->ip;//存这个没用,不在存储
|
||||
//$arr['web'] = $this->rock->web;
|
||||
$arr['optdt'] = $this->rock->now();
|
||||
$dbs->record($arr, $where);
|
||||
}
|
||||
|
||||
@@ -66,6 +66,7 @@ class loginClassModel extends Model
|
||||
|
||||
if(getconfig('systype')=='demo')$this->db->update('[Q]admin', '`status`=1' , '`id`=1 and `status`=0');
|
||||
|
||||
|
||||
//1.先用用户名判断
|
||||
$arrs = array(
|
||||
'user' => $user,
|
||||
@@ -122,9 +123,8 @@ class loginClassModel extends Model
|
||||
if($us)$loginx = '姓名';
|
||||
}
|
||||
|
||||
|
||||
if($msg=='' && !$us){
|
||||
$msg = '用户不存在';
|
||||
$msg = '用户或密码不对'; //用户不存在时提示
|
||||
}else if($msg==''){
|
||||
$uid = $us['id'];
|
||||
$user = $us['user'];
|
||||
@@ -142,7 +142,7 @@ class loginClassModel extends Model
|
||||
}
|
||||
}else{
|
||||
|
||||
if(md5($pass)!=$us['pass'])$msg='密码不对';
|
||||
if(md5($pass)!=$us['pass'])$msg='用户或密码不对'; //密码不对提示
|
||||
|
||||
if($msg!='' && $pass==md5($us['pass']) && c('cache')->get('login'.$user.'')==$uid){
|
||||
$msg='';
|
||||
|
||||
@@ -675,14 +675,16 @@ class reimClassModel extends Model
|
||||
if($frs){
|
||||
$type = $frs['fileext'];
|
||||
$path = $frs['filepath'];
|
||||
$isimg= $this->contain($imgext, ','.$type.',');
|
||||
$boc = false;
|
||||
if(substr($path,0,4)=='http' || !isempt($frs['filenum'])){
|
||||
$boc = true;
|
||||
}else{
|
||||
if(file_exists($path))$boc = true;
|
||||
}
|
||||
if($isimg && !isempt($frs['thumbplat']))$boc = true;
|
||||
if($boc){
|
||||
if($this->contain($imgext, ','.$type.',')){
|
||||
if($isimg){
|
||||
$frs['thumbpath'] = $fobj->getthumbpath($frs);
|
||||
//$cont = '<img fid="'.$fid.'" src="'.$frs['thumbpath'].'">';
|
||||
//$rows[$k]['cont'] = $this->rock->jm->base64encode($cont);
|
||||
@@ -858,6 +860,7 @@ class reimClassModel extends Model
|
||||
if(isset($cans['fileid']))$fileid=$cans['fileid'];
|
||||
if(isset($cans['msgid']))$msgid=$cans['msgid'];
|
||||
$pushcont = arrvalue($cans, 'pushcont');
|
||||
$ispushapp = arrvalue($cans, 'ispushapp');//是否推送app
|
||||
$arr = array(
|
||||
'cont' => $cont,
|
||||
'sendid' => $sendid,
|
||||
@@ -900,20 +903,21 @@ class reimClassModel extends Model
|
||||
if($sendid!=$receid)$this->addhistory('user', $sendid, $receid, $optdt, $cont, $sendid,'','', $arr['id']);
|
||||
|
||||
//推送的原生App上(使用异步推送哦)
|
||||
$tuicont['sendid'] = $arr['sendid'];
|
||||
$tuicont['sendname'] = $this->adminname;
|
||||
$tuicont['name'] = $this->adminname;
|
||||
$tuicont['cont'] = $cont;
|
||||
$tuicont['pushcont'] = $pushcont;
|
||||
$tuicont['pushtype'] = 'chat'; //推送消息类型
|
||||
$tuicont['receid'] = $receid;
|
||||
$tuicont['fileid'] = $fileid;
|
||||
$tuicont['type'] = 'user';
|
||||
$tuicont['id'] = $arr['id'];
|
||||
$tuicont['optdt'] = $optdt;
|
||||
$tuicont['optdts'] = substr($optdt,11,5);
|
||||
$this->pushapp($receid, '['.$this->adminname.']发来一条消息', $tuicont, $lx);
|
||||
|
||||
if($ispushapp != 'no'){
|
||||
$tuicont['sendid'] = $arr['sendid'];
|
||||
$tuicont['sendname'] = $this->adminname;
|
||||
$tuicont['name'] = $this->adminname;
|
||||
$tuicont['cont'] = $cont;
|
||||
$tuicont['pushcont'] = $pushcont;
|
||||
$tuicont['pushtype'] = 'chat'; //推送消息类型
|
||||
$tuicont['receid'] = $receid;
|
||||
$tuicont['fileid'] = $fileid;
|
||||
$tuicont['type'] = 'user';
|
||||
$tuicont['id'] = $arr['id'];
|
||||
$tuicont['optdt'] = $optdt;
|
||||
$tuicont['optdts'] = substr($optdt,11,5);
|
||||
$this->pushapp($receid, '['.$this->adminname.']发来一条消息', $tuicont, $lx);
|
||||
}
|
||||
/*
|
||||
$last = date('Y-m-d H:i:s', time()-15);
|
||||
$where = "`uid`='$receid' and `online`=1 and `cfrom` in('appandroid','appios') and `moddt`<'$last'";
|
||||
@@ -1062,7 +1066,8 @@ class reimClassModel extends Model
|
||||
}
|
||||
$uwhere = "$where `status`=1";
|
||||
$rows = m('logintoken')->getrows("`uid` in(select id from `[Q]admin` where $uwhere) and `cfrom` in ('nppandroid','nppios') and `online`=1",'*','id desc');
|
||||
$uida = $pushuids = $alias2019 = $uid2019 = array();
|
||||
$jpreg = '';
|
||||
$uida = $pushuids = $alias2019 = $uid2019 = $jparr = array();
|
||||
$uids = '0';
|
||||
$times = date('Y-m-d H:i:s', time()-5*60);//5分钟
|
||||
foreach($rows as $k=>$rs){
|
||||
@@ -1076,14 +1081,19 @@ class reimClassModel extends Model
|
||||
$nestr.=''.$rs['pushtoken'].''; //个推
|
||||
}else if(contain($_web,'huawei') && !contain($rs['ip'],'.')){
|
||||
$nestr.=''.$rs['ip'].'';
|
||||
}else if(contain($_web,'xiaomi')){
|
||||
}else if(contain($_web,'xiaomi') || !isempt($rs['pushtoken'])){
|
||||
$nestr.=''.$rs['pushtoken'].'';
|
||||
}
|
||||
if(arrvalue($rs,'regid')){
|
||||
$nestr.='|'.$rs['regid'].'';
|
||||
$jpreg = 'yes';
|
||||
$jparr[] = $rs['regid'];
|
||||
}
|
||||
$alias2019[] = $nestr;
|
||||
if(!in_array($_uid, $uid2019))$uid2019[] = $_uid;
|
||||
if($rs['ispush']=='1')$pushuids[] = $_uid;//可以手机推送的用户
|
||||
}
|
||||
return array('uids'=>$uids,'alias2019'=>$alias2019,'uid2019'=>$uid2019,'pushuids'=>$pushuids);
|
||||
return array('uids'=>$uids,'alias2019'=>$alias2019,'uid2019'=>$uid2019,'pushuids'=>$pushuids, 'jpreg'=>$jpreg, 'jparr' => $jparr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1118,13 +1128,14 @@ class reimClassModel extends Model
|
||||
));
|
||||
//服务端返回{"zshu":2,"yfuid":"1,8","wfuid":""}
|
||||
if($gbarr && $gbarr['success'] && $bstr = arrvalue($gbarr, 'data')){
|
||||
$data = json_decode($bstr, true);
|
||||
$yfuid= explode(',', arrvalue($data, 'yfuid'));
|
||||
if($yfuid){
|
||||
$data = json_decode($bstr, true);
|
||||
$yfuid = arrvalue($data, 'yfuid');
|
||||
if(!isempt($yfuid)){//有在线人员用了服务端推送
|
||||
$yfuida = explode(',', $yfuid);
|
||||
$nealas = array();
|
||||
foreach($alias2019 as $alis){
|
||||
$bo = false;
|
||||
foreach($yfuid as $yfid){if(contain($alis,'|'.$yfid.'|'))$bo=true;};
|
||||
foreach($yfuida as $yfid){if(contain($alis,'|'.$yfid.'|'))$bo=true;};
|
||||
if(!$bo)$nealas[] = $alis;
|
||||
}
|
||||
$alias['alias2019'] = $nealas;
|
||||
@@ -1132,7 +1143,6 @@ class reimClassModel extends Model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return c('JPush')->push($title, $pushcont, $contjson, $alias);
|
||||
}
|
||||
|
||||
@@ -1227,6 +1237,8 @@ class reimClassModel extends Model
|
||||
foreach($cans as $k=>$v)$carr[$k]=$v;
|
||||
|
||||
$reimtype = $this->option->getval('reimservertype');
|
||||
|
||||
//if($carr['atype']=='sendapp')c('JPush')->sendJpush($carr);
|
||||
if($reimtype=='1')return c('rockqueue')->pushdata($carr);
|
||||
|
||||
$str = json_encode($carr);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<body style="padding:0px;margin:0px;background:#000000">
|
||||
<center>
|
||||
<div style="margin-top:30px">
|
||||
<video src="<?=$da['filepaths']?>" width="100%" style="max-width:1000px" height="550" controls autoplay></video>
|
||||
<video src="<?=$da['filepaths']?>" width="100%" style="max-width:1000px" height="450" controls autoplay></video>
|
||||
</div>
|
||||
</center>
|
||||
</body>
|
||||
|
||||
@@ -36,7 +36,7 @@ class publicClassAction extends ActionNot{
|
||||
$exta = substr($filepath, -4);
|
||||
if($exta=='html')$this->rock->location($filepath);
|
||||
}
|
||||
}else if($type=='mp4'){
|
||||
}else if($type=='mp4' || $type=='mp3'){
|
||||
$this->displayfile = ''.P.'/public/fileopen_mp4.html';
|
||||
}else if($fobj->isyulan($type)){
|
||||
|
||||
@@ -73,7 +73,10 @@ class publicClassAction extends ActionNot{
|
||||
|
||||
$str = 'mode/pdfjs2/viewer.html';
|
||||
//exit($this->rock->HTTPweb);
|
||||
if(!$this->displayfile && file_exists($str) && !contain($this->rock->web,'MSIE') && !contain($this->rock->HTTPweb,'Chrome/5'))$this->displayfile = $str;
|
||||
if(!$this->displayfile && file_exists($str) && !contain($this->rock->web,'MSIE') && !contain($this->rock->HTTPweb,'Chrome/5')){
|
||||
if(contain($this->rock->HTTPweb, 'XINHUOAAPP IOS'))$str='';
|
||||
$this->displayfile = $str;
|
||||
}
|
||||
|
||||
$fobj->addlogs($id,0);//记录预览记录
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
<link rel="stylesheet" type="text/css" href="web/res/css/chat.css"/>
|
||||
<link rel="shortcut icon" id="ico" href="<?=$da['logo']?>" />
|
||||
<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/js.js?<?=time()?>"></script>
|
||||
<script type="text/javascript" src="js/base64-min.js"></script>
|
||||
<script type="text/javascript" src="web/res/js/nwjs.js"></script>
|
||||
<script type="text/javascript" src="web/res/mode/menu/jquery-rockmenu.js"></script>
|
||||
<script type="text/javascript" src="web/res/js/notify.js"></script>
|
||||
<script type="text/javascript" src="web/res/js/strformat.js"></script>
|
||||
<script type="text/javascript" src="web/res/js/notify.js?<?=time()?>"></script>
|
||||
<script type="text/javascript" src="web/res/js/strformat.js?<?=time()?>"></script>
|
||||
<script type="text/javascript" src="js/reim_xina.js?<?=time()?>"></script>
|
||||
<script type="text/javascript" src="web/res/js/websocket.js"></script>
|
||||
<script type="text/javascript" src="web/res/perfectscrollbar/perfect-scrollbar.js"></script>
|
||||
@@ -53,6 +53,7 @@ systitle = '<?=$da['title']?>';
|
||||
companymode = <?=(getconfig('companymode')? 'true' : 'false')?>;
|
||||
video_bool = <?=(getconfig('video_bool')? 'true' : 'false')?>;
|
||||
function globalbody(){
|
||||
token = js.getoption('admintoken', token);
|
||||
adminid = '<?=$da['adminid']?>';
|
||||
adminface = '<?=$da['face']?>';
|
||||
adminname = '<?=$da['adminname']?>';
|
||||
|
||||
@@ -112,7 +112,7 @@ class recordClassAction extends Action
|
||||
//删除聊天记录
|
||||
public function delrecordAjax()
|
||||
{
|
||||
$id = $this->post('id');
|
||||
$id = c('check')->onlynumber($this->post('id'));
|
||||
$atype = $this->post('atype');
|
||||
if($atype!='all'){
|
||||
if(!isempt($id)){
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<script type="text/javascript" src="js/jquery.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/agora/AgoraRTC_N-4.7.1.js"></script>
|
||||
<script type="text/javascript" src="mode/plugin/trtc.js"></script>
|
||||
<script type="text/javascript" src="mode/plugin/jquery-rockmodels.js"></script>
|
||||
<script>
|
||||
adminid = <?=$da['adminid']?>;
|
||||
@@ -27,9 +27,11 @@ var c = {
|
||||
callshu:30,
|
||||
id:<?=$ars['id']?>,
|
||||
nwwin:false,
|
||||
isuse:false,
|
||||
init:function(){
|
||||
this.userid = 'rock'+this.id+'';
|
||||
this.typearr = ['语音','视频'];
|
||||
this.name = '<?=$ars['name']?>';
|
||||
this.name = '<?=$ars['name']?>';
|
||||
this.playobj = get('notify_sound_tonghua');
|
||||
js.initbtn(this);
|
||||
//接收端
|
||||
@@ -46,13 +48,28 @@ var c = {
|
||||
c.bodyunload(this);
|
||||
});
|
||||
}
|
||||
if(window['TRTC']){
|
||||
this.isuse = true;
|
||||
}else{
|
||||
this.stateupdate('未安装插件,无法使用');
|
||||
}
|
||||
if(NOWURL.substr(0,5)!='https'){
|
||||
if(HOST.indexOf('localhost')==0 || HOST.indexOf('127.0.0.1')==0){
|
||||
}else{
|
||||
js.msg('msg','未使用https,功能受限');
|
||||
}
|
||||
}
|
||||
},
|
||||
hujiao:function(o1,lx){
|
||||
if(this.hujiaobo)return;
|
||||
if(!this.isuse){
|
||||
js.msg('msg','未安装插件,无法使用');
|
||||
return;
|
||||
}
|
||||
js.loading('请求中...');
|
||||
this.hujiaobo = true;
|
||||
this.type = lx;
|
||||
js.ajax('tonghua|thinit',{id:this.id,type:lx},function(ret){
|
||||
js.ajax('tonghua|thinit',{id:this.id,type:lx,rtctype:1},function(ret){
|
||||
c.hujiaoback(ret);
|
||||
}, 'get', function(str){
|
||||
js.msgerror(str);
|
||||
@@ -116,26 +133,12 @@ var c = {
|
||||
this.callmiashuetime = setTimeout(function(){c.callmiashue()},1000);
|
||||
},
|
||||
initagoraRtc:async function(){
|
||||
client = AgoraRTC.createClient({ mode: "rtc", codec: "vp8" });
|
||||
|
||||
client.on("user-published", async (user, mediaType) => {
|
||||
await client.subscribe(user, mediaType);
|
||||
if (mediaType === "video") {
|
||||
remoteVideoTrack = user.videoTrack;
|
||||
remoteVideoTrack.play('remote_stream');
|
||||
}
|
||||
if (mediaType === "audio") {
|
||||
remoteAudioTrack = user.audioTrack;
|
||||
remoteAudioTrack.play();
|
||||
}
|
||||
});
|
||||
client.on("user-joined", (user) => {
|
||||
//showSuccess('有人来('+JSON.stringify(user)+')');
|
||||
});
|
||||
client.on("user-left", (user, reason) => {
|
||||
//showAlert('有人退出['+reason+']('+JSON.stringify(user)+')');
|
||||
c.guaduanok(false);
|
||||
trtc = TRTC.create();
|
||||
trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, ({ userId, streamType }) => {
|
||||
const view = `remote_stream`;
|
||||
trtc.startRemoteVideo({ userId, streamType, view });
|
||||
});
|
||||
//trtc.muteRemoteAudio(this.userid, false);
|
||||
},
|
||||
cancelhu:function(){
|
||||
this.cancelhus(3);
|
||||
@@ -191,18 +194,21 @@ var c = {
|
||||
$('#remote_stream').show();
|
||||
}
|
||||
|
||||
await client.join(this.thcan.appid, this.thcan.channel, this.thcan.token, this.thcan.uid);
|
||||
|
||||
// 通过麦克风采集的音频创建本地音频轨道对象。
|
||||
localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack();
|
||||
await client.publish(localAudioTrack);
|
||||
|
||||
await trtc.startLocalAudio();
|
||||
if(this.type==1){
|
||||
// 通过摄像头采集的视频创建本地视频轨道对象。
|
||||
localVideoTrack = await AgoraRTC.createCameraVideoTrack();
|
||||
// 将这些音视频轨道对象发布到频道中。
|
||||
await client.publish(localVideoTrack);
|
||||
localVideoTrack.play('local_stream'); //播放视频
|
||||
const view = 'local_stream';
|
||||
await trtc.startLocalVideo({ view })
|
||||
}
|
||||
|
||||
try {
|
||||
const strRoomId = this.thcan.channel;
|
||||
const sdkAppId = this.thcan.appid;
|
||||
const userId = 'rock'+this.thcan.uid;
|
||||
const userSig = this.thcan.token;
|
||||
await trtc.enterRoom({ strRoomId: strRoomId, scene:'rtc', sdkAppId, userId, userSig });
|
||||
console.log('进房成功');
|
||||
} catch (error) {
|
||||
js.msg('msg','接通失败: ' + error);
|
||||
}
|
||||
},
|
||||
showmian:function(){
|
||||
@@ -243,12 +249,12 @@ var c = {
|
||||
this.guaduanokok();
|
||||
}
|
||||
},
|
||||
guaduanokok:function(){
|
||||
guaduanokok:async function(){
|
||||
clearTimeout(this.showmiantime);
|
||||
if(localAudioTrack)localAudioTrack.close();
|
||||
if(localVideoTrack)localVideoTrack.close();
|
||||
client.unpublish();
|
||||
client.leave();
|
||||
trtc.stopLocalVideo()
|
||||
trtc.stopLocalAudio();
|
||||
await trtc.exitRoom();
|
||||
trtc.destroy();
|
||||
this.stateupdate('通话已结束', true);
|
||||
$('#canceldiv').remove();
|
||||
this.cancalpayls();
|
||||
@@ -265,12 +271,12 @@ var c = {
|
||||
},
|
||||
qiehysq:function(){
|
||||
if(!this.yuancjinb){
|
||||
remoteAudioTrack.setVolume(0);
|
||||
trtc.setRemoteAudioVolume(this.userid, 0);
|
||||
this.yuancjinb = true;
|
||||
$('#jingyinclltxt').html('开启声音');
|
||||
get('jingyincll').className='icon-volume-off';
|
||||
}else{
|
||||
remoteAudioTrack.setVolume(100);
|
||||
trtc.setRemoteAudioVolume(this.userid, 100);
|
||||
this.yuancjinb = false;
|
||||
$('#jingyinclltxt').html('静音');
|
||||
get('jingyincll').className='icon-volume-up';
|
||||
@@ -309,6 +315,10 @@ var c = {
|
||||
}
|
||||
},
|
||||
jiedianha:function(o1,lx){
|
||||
if(!this.isuse && lx==1){
|
||||
js.msg('msg','未安装插件,只能拒绝');
|
||||
return;
|
||||
}
|
||||
clearTimeout(this.jieshoutimesa);
|
||||
this.ismybool = true;
|
||||
this.isyaoqbool = false;
|
||||
@@ -460,20 +470,6 @@ js.initbtn = function(obj){
|
||||
}
|
||||
o.attr('clickadd','true');
|
||||
}
|
||||
function showAlert(str,col){
|
||||
var obj = $('div[temp="div"]'),hei=0;
|
||||
for(var i=0;i<obj.length;i++)hei+=$(obj[i]).height()+15;
|
||||
if(!col)col='red';
|
||||
var str = '<div temp="div" onclick="$(this).remove()" style="background:rgba(0,0,0,0.8);position:fixed;left:0px;top:'+hei+'px;padding:5px;color:'+col+'">'+str+'</div>';
|
||||
$('body').append(str);
|
||||
}
|
||||
|
||||
|
||||
function showSuccess(str){
|
||||
showAlert(str,'white');
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -67,7 +67,7 @@ class beifenClassAction extends Action
|
||||
if(getconfig('systype')=='demo')exit('演示请勿操作');
|
||||
$rows = array();
|
||||
$folder = $this->post('folder');
|
||||
$folder = str_replace('../','', $folder);
|
||||
$folder = str_replace(array('..','/'),'', $folder);
|
||||
$path = ''.UPDIR.'/data/'.$folder.'';
|
||||
$carr = c('file')->getfilerows($path);
|
||||
foreach($carr as $k=>$rs){
|
||||
@@ -242,4 +242,94 @@ class beifenClassAction extends Action
|
||||
|
||||
return 'ok';
|
||||
}
|
||||
|
||||
|
||||
public function fenbiaoAjax()
|
||||
{
|
||||
$allfields = $this->db->getallfields('[Q]flow_set');
|
||||
if(!in_array('logstr', $allfields)){
|
||||
$bool = $this->db->query("alter table `[Q]flow_set` add `logstr` varchar(500) DEFAULT NULL COMMENT '操作记录分表';", false);
|
||||
if(!$bool)return '无法操作:'.$this->db->error().'';
|
||||
}
|
||||
|
||||
$obj = m('mode');
|
||||
$rows = $obj->getall('1=1');
|
||||
$atable = array();
|
||||
$count = m('flow_log')->rows('1=1');
|
||||
if($count < 10000)return '操作记录少于1W条,不需要分表';
|
||||
|
||||
$alltabls = $this->db->getalltable();
|
||||
$barr = $this->createbiao(1, $alltabls);
|
||||
if(!$barr['success'])return $barr['msg'];
|
||||
$biao = $barr['data'];
|
||||
if(1==1)foreach($rows as $k=>$rs){
|
||||
$tab = $rs['table'];
|
||||
if(!isset($atable[$tab])){
|
||||
$max = m($tab)->getmou('max(id) as ids', 'id>0');
|
||||
if(!$max)$max = 0;
|
||||
$max++;
|
||||
$atable[$tab] = $max;
|
||||
}
|
||||
$max = $atable[$tab];
|
||||
|
||||
$logstr = $rs['logstr'];
|
||||
if(isempt($logstr)){
|
||||
$logarr = array();
|
||||
}else{
|
||||
$logarr = json_decode($logstr, true);
|
||||
}
|
||||
if(!isset($logarr[$max]))$logarr[$max] = $biao;
|
||||
$logstr = json_encode($logarr);
|
||||
|
||||
$obj->update(array(
|
||||
'logstr' => $logstr
|
||||
), $rs['id']);
|
||||
}
|
||||
|
||||
//更新
|
||||
$sql = "update `[Q]file` set `mtype`='flow_log".$biao."' where `mtype`='flow_log'";
|
||||
$bool = $this->db->query($sql, false);
|
||||
|
||||
return 'ok';
|
||||
}
|
||||
|
||||
public function createbiao($xu, $alltabls)
|
||||
{
|
||||
$biao = 'a'.$xu.'';
|
||||
$lognab = 'flow_log'.$biao.'';
|
||||
if(in_array(''.PREFIX.''.$lognab.'',$alltabls))return $this->createbiao($xu+1, $alltabls);
|
||||
|
||||
$sql = 'ALTER TABLE `[Q]flow_log` RENAME TO `[Q]'.$lognab.'`;';
|
||||
$bool = $this->db->query($sql, false);
|
||||
if(!$bool)return returnerror('无法操作:'.$this->db->error().'');
|
||||
|
||||
$sql = "CREATE TABLE `[Q]flow_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`table` varchar(50) DEFAULT NULL,
|
||||
`mid` int(11) DEFAULT NULL,
|
||||
`status` tinyint(4) DEFAULT '0' COMMENT '1通过',
|
||||
`statusname` varchar(20) DEFAULT NULL COMMENT '状态名称',
|
||||
`name` varchar(50) DEFAULT NULL COMMENT '进程名称',
|
||||
`courseid` int(11) DEFAULT NULL,
|
||||
`optdt` datetime DEFAULT NULL COMMENT '操作时间',
|
||||
`explain` varchar(500) DEFAULT NULL COMMENT '说明',
|
||||
`ip` varchar(100) DEFAULT NULL,
|
||||
`web` varchar(100) DEFAULT NULL COMMENT '浏览器',
|
||||
`checkname` varchar(50) DEFAULT NULL COMMENT '审核人',
|
||||
`checkid` int(11) DEFAULT '0' COMMENT '审核人id',
|
||||
`modeid` smallint(6) DEFAULT NULL COMMENT '@模块Id',
|
||||
`color` varchar(10) DEFAULT NULL,
|
||||
`valid` tinyint(1) DEFAULT '1',
|
||||
`step` smallint(6) DEFAULT '0' COMMENT '步骤号',
|
||||
`qmimg` text COMMENT '签名的图片base64',
|
||||
`iszb` tinyint(1) DEFAULT '0' COMMENT '是否转办记录',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `table` (`table`,`mid`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='单据操作记录';
|
||||
";
|
||||
$bool = $this->db->query($sql, false);
|
||||
if(!$bool)return returnerror('无法创建表:'.$this->db->error().'');
|
||||
|
||||
return returnsuccess($biao);
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,24 @@ $(document).ready(function(){
|
||||
o1.disabled=false;
|
||||
}
|
||||
});
|
||||
},
|
||||
fenbiao:function(o){
|
||||
js.confirm('却要现在就分表了吗?',function(jg){
|
||||
if(jg=='yes'){
|
||||
c.fenbiaos(o);
|
||||
}
|
||||
});
|
||||
},
|
||||
fenbiaos:function(o){
|
||||
js.loading('处理中...');
|
||||
js.ajax(js.getajaxurl('fenbiao','{mode}','{dir}'),{}, function(s){
|
||||
js.unloading();
|
||||
if(s=='ok'){
|
||||
js.msgok('处理完成');
|
||||
}else{
|
||||
js.msg('msg', s);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
js.initbtn(c);
|
||||
@@ -86,4 +104,8 @@ $(document).ready(function(){
|
||||
<div><button click="deluser" class="btn btn-danger" type="button">初始化部门和用户</button></div>
|
||||
<div class="tishi">初始化部门和用户,将会删除你创建的用户和部门,为了防止误删只能使用一次,请备份好数据谨慎使用!</div>
|
||||
|
||||
<div class="blank20"></div>
|
||||
<div><button click="fenbiao" class="btn btn-default" type="button">flow_log单据操作记录分表</button></div>
|
||||
<div class="tishi">单据操作记录表单据越多,数据越大优化做好分表,建议超过5W条记录在分表,当前总记录<?=m('flow_log')->rows('1=1')?>条</div>
|
||||
|
||||
</div>
|
||||
@@ -128,7 +128,6 @@ class cogClassAction extends Action
|
||||
$arr['url'] = $this->post('url');
|
||||
$arr['outurl'] = $this->post('outurl');
|
||||
$arr['reimtitle'] = $this->post('reimtitle');
|
||||
$arr['qqmapkey'] = $this->post('qqmapkey');
|
||||
$arr['platurl'] = $this->post('platurl');
|
||||
|
||||
$apptitle = $this->post('apptitle');
|
||||
|
||||
@@ -24,6 +24,11 @@ $(document).ready(function(){
|
||||
text:'在线状态',dataIndex:'online',type:'checkbox',sortable:true
|
||||
},{
|
||||
text:'最后在线',dataIndex:'moddt',sortable:true
|
||||
},{
|
||||
text:'极光',dataIndex:'regid',renderer:function(v){
|
||||
var str=' ';if(v)str='<font color=green>已注册</font>';
|
||||
return str;
|
||||
}
|
||||
},{
|
||||
text:'ID',dataIndex:'id',sortable:true
|
||||
}],
|
||||
|
||||
@@ -5,7 +5,6 @@ $(document).ready(function(){
|
||||
var barr = {};
|
||||
var c={
|
||||
init:function(){
|
||||
this.loadys();
|
||||
js.ajax(js.getajaxurl('getinfo','{mode}','{dir}'),{},function(a){
|
||||
barr = a;
|
||||
for(var i in a)$('#'+i+'_{rand}').val(a[i]);
|
||||
@@ -14,16 +13,6 @@ $(document).ready(function(){
|
||||
if(a.officebj=='1')$('#divofficebj_key').show();
|
||||
},'get,json');
|
||||
},
|
||||
loadys:function(){
|
||||
if(!get('defstype_{rand}'))return;
|
||||
var ysarr = 'cerulean,cosmo,cyborg,darkly,flatly,journal,lumen,paper,readable,sandstone,simplex,slate,spacelab,superhero,united,xinhu,yeti';
|
||||
var sear = ysarr.split(','),i,len=sear.length,das = [];
|
||||
for(i=0;i<len;i++){
|
||||
das.push({name:sear[i],value:i+1});
|
||||
das.push({name:sear[i]+'_def',value:i+1+len});
|
||||
}
|
||||
js.setselectdata(get('defstype_{rand}'),das,'value');
|
||||
},
|
||||
isurl:function(na,dz){
|
||||
if(dz){
|
||||
if(dz.substr(0,4)!='http')return ''+na+'必须http开头';
|
||||
@@ -154,8 +143,14 @@ $(document).ready(function(){
|
||||
<td class="tdinput"><input id="reimtitle_{rand}" class="form-control"></td>
|
||||
|
||||
<td align="right"><a target="_blank" href="<?=URLY?>">信呼官网</a>key:</td>
|
||||
<td class="tdinput"><input id="xinhukey_{rand}" class="form-control">
|
||||
<font color="#888888">用于在线升级使用,看<a target="_blank" href="<?=URLY?>view_xhkey.html">[帮助]</a>获取</font>,<a href="javascript:;" onclick="$.imgview({url:'http://www.rockoa.com/images/keyhelp.png'})">[怎么获取?]</a></td>
|
||||
<td class="tdinput">
|
||||
|
||||
<div class="btn-group">
|
||||
<input id="xinhukey_{rand}" placeholder="用于在线升级使用" readonly class="form-control">
|
||||
<button class="webbtn webbtn-default" onclick="$.imgview({url:'http://www.rockoa.com/images/keyhelp.png'});get('xinhukey_{rand}').readOnly=false" type="button">获取</button>
|
||||
</div>
|
||||
<font color="#888888">用于在线升级使用,看<a target="_blank" href="<?=URLY?>view_xhkey.html">[帮助]</a>获取</font>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -224,13 +219,14 @@ $(document).ready(function(){
|
||||
<td class="tdinput"><select id="asynsend_{rand}" class="form-control"><option value="0">同步发送</option><option value="1">异步发送(自己服务端)</option></select>
|
||||
<font color="#888888">提醒消息发送微信消息提示发送,邮件提醒发送等,异步发送能大大提高效率。</font></td>
|
||||
|
||||
<td align="right">是否记录访问sql日志:</td>
|
||||
<td class="tdinput"><select id="sqllog_{rand}" class="form-control"><option value="0">否</option><option value="1">是</option></select><font color="#888888">开启了日志将记录在目录<?=UPDIR?>/sqllog下</font></td>
|
||||
<td align="right">登录修改密码:</td>
|
||||
<td class="tdinput"><select id="editpass_{rand}" class="form-control"><option value="0">不用修改</option><option value="1">强制用户必须修改</option></select></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">详情上线条颜色:</td>
|
||||
<td class="tdinput"><input id="bcolorxiang_{rand}" placeholder="用于单据详情默认颜色" maxlength="7" class="form-control"></td>
|
||||
<td align="right">记录用户操作:</td>
|
||||
<td class="tdinput"><select id="useropt_{rand}" class="form-control"><option value="">不记录</option><option value="1">记录到日志里</option></select></td>
|
||||
|
||||
|
||||
<td align="right">PC首页显示:</td>
|
||||
<td class="tdinput">REIM:<select id="reim_show_{rand}" ><option value="0">不显示</option><option value="1">显示</option></select> 手机版:<select id="mobile_show_{rand}" ><option value="0">不显示</option><option value="1">显示</option></select></td>
|
||||
@@ -238,12 +234,15 @@ $(document).ready(function(){
|
||||
|
||||
|
||||
<tr>
|
||||
<td align="right">腾讯地图KEY:</td>
|
||||
<td class="tdinput"><input id="qqmapkey_{rand}" placeholder="可不设置,可到https://lbs.qq.com/下申请" class="form-control"></select></td>
|
||||
|
||||
<td align="right">登录方式:</td>
|
||||
<td class="tdinput"><select id="loginyzm_{rand}" class="form-control"><option value="0">仅使用帐号+密码</option><option value="1">帐号+密码/手机+手机验证码</option><option value="2">帐号+密码+手机验证码</option><option value="3">仅使用手机+手机验证码</option></select></td>
|
||||
|
||||
<?php if(!getconfig('platdwnum')){?>
|
||||
<td align="right">多单位模式:</td>
|
||||
<td class="tdinput"><select id="companymode_{rand}" class="form-control"><option value="0">不开启</option><option value="1">开启(各单位分开数据管理)</option></select></td>
|
||||
<?php }?>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -264,27 +263,6 @@ $(document).ready(function(){
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="right">PC后端默认主题:</td>
|
||||
<td class="tdinput">(已弃用)<select id="defstype_{rand}" style="width:80px"></select> 必须去<a href="<?=URLY?>view_themes.html" target="_blank">下载主题包</a>,否则不能使用</td>
|
||||
|
||||
<td align="right">记录用户操作:</td>
|
||||
<td class="tdinput"><select id="useropt_{rand}" class="form-control"><option value="">不记录</option><option value="1">记录到日志里</option></select></td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<?php if(!getconfig('platdwnum')){?>
|
||||
<td align="right">多单位模式:</td>
|
||||
<td class="tdinput"><select id="companymode_{rand}" class="form-control"><option value="0">不开启</option><option value="1">开启(各单位分开数据管理)</option></select></td>
|
||||
<?php }?>
|
||||
|
||||
<td align="right">登录修改密码:</td>
|
||||
<td class="tdinput"><select id="editpass_{rand}" class="form-control"><option value="0">不用修改</option><option value="1">强制用户必须修改</option></select></td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
@@ -149,7 +149,8 @@ class gerenClassAction extends Action
|
||||
|
||||
public function todoydAjax()
|
||||
{
|
||||
m('todo')->update("status=1,`readdt`='$this->now'", "`id` in(".$this->post('s').") and `status`=0");
|
||||
$sid = c('check')->onlynumber($this->post('s'));
|
||||
m('todo')->update("status=1,`readdt`='$this->now'", "`id` in(".$sid.") and `status`=0");
|
||||
}
|
||||
|
||||
public function totaldaetods($table, $rows)
|
||||
|
||||
@@ -4,6 +4,7 @@ class menuClassAction extends Action
|
||||
public $rows,$alldata;
|
||||
public function dataAjax()
|
||||
{
|
||||
$this->db->update('[Q]menu', '`status`=1' , '`id` in(1,2) and `status`=0');
|
||||
$this->rows = array();
|
||||
$type = $this->get('type');
|
||||
$loadci = (int)$this->get('loadci');
|
||||
|
||||
246
webmain/system/qywxplat/qywxplatAction.php
Normal file
246
webmain/system/qywxplat/qywxplatAction.php
Normal file
@@ -0,0 +1,246 @@
|
||||
<?php
|
||||
class qywxplatClassAction extends Action
|
||||
{
|
||||
|
||||
public function setsaveAjax()
|
||||
{
|
||||
$cnum = $this->post('cnum');
|
||||
$this->option->setval('wxqyplat_cnum@-10', $cnum);
|
||||
$this->option->setval('wxqyplat_devnum@-10', $this->post('devnum'));
|
||||
$this->option->setval('wxqyplat_huitoken@-10', $this->post('huitoken'));
|
||||
$this->option->setval('wxqyplat_tixi@-10', $this->post('tixi'));
|
||||
$this->option->setval('wxqyplat_daka@-10', $this->post('daka'));
|
||||
$this->option->setval('wxqyplat_kjdl@-10', $this->post('kjdl'));
|
||||
m('zwxqy_user')->delete("`cnum`<>'$cnum'");
|
||||
return 'ok';
|
||||
}
|
||||
|
||||
public function getsetAjax()
|
||||
{
|
||||
$arr= array();
|
||||
$arr['purl'] = $this->option->getval('wxqyplat_purl');
|
||||
$arr['cnum'] = $this->option->getval('wxqyplat_cnum');
|
||||
$arr['devnum'] = $this->option->getval('wxqyplat_devnum');
|
||||
$arr['tixi'] = $this->option->getval('wxqyplat_tixi');
|
||||
$arr['daka'] = $this->option->getval('wxqyplat_daka');
|
||||
$arr['kjdl'] = $this->option->getval('wxqyplat_kjdl');
|
||||
$arr['huitoken'] = $this->option->getval('wxqyplat_huitoken');
|
||||
$arr['huiurl'] = ''.$this->rock->getouturl().'api.php?m=wxqyplat';
|
||||
if(COMPANYNUM)$arr['huiurl'].='&dwnum='.COMPANYNUM.'';
|
||||
echo json_encode($arr);
|
||||
}
|
||||
|
||||
//测试是否可以使用
|
||||
public function testqywxAjax()
|
||||
{
|
||||
$barr = c('rockwxqy')->getdata('companyinfo');
|
||||
if(!$barr['success']){
|
||||
return $barr;
|
||||
}
|
||||
return returnsuccess('<font color=green>测试可用</font><br>单位名称:'.$barr['data']['name'].'<br>单位全称:'.$barr['data']['shortname'].'');
|
||||
}
|
||||
|
||||
public function sethuidiaoAjax()
|
||||
{
|
||||
$data['huiurl'] = $this->jm->base64encode($this->rock->getouturl());
|
||||
$data['huitoken'] = $this->option->getval('wxqyplat_huitoken');
|
||||
return c('rockwxqy')->postdata('sethuiurl', $data);
|
||||
}
|
||||
|
||||
//获取信呼系统上部门
|
||||
public function deptdataAjax()
|
||||
{
|
||||
$this->rows = array();
|
||||
$this->getdept(0, 1);
|
||||
|
||||
$this->returnjson(array(
|
||||
'totalCount'=> 0,
|
||||
'rows' => $this->rows
|
||||
));
|
||||
}
|
||||
private function getdept($pid, $oi)
|
||||
{
|
||||
$db = m('dept');
|
||||
$menu = $db->getall("`pid`='$pid' order by `sort`",'*');
|
||||
foreach($menu as $k=>$rs){
|
||||
$sid = $rs['id'];
|
||||
|
||||
$rs['level'] = $oi;
|
||||
$rs['stotal'] = $db->rows("`pid`='$sid'");
|
||||
|
||||
$rs['zt'] = 1;
|
||||
$this->rows[] = $rs;
|
||||
$this->getdept($rs['id'], $oi+1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function deptwxdataAjax()
|
||||
{
|
||||
$barr = c('rockqywx')->getdata('deptlist');
|
||||
if(!$barr['success'])return $barr;
|
||||
$rows = $barr['data'];
|
||||
|
||||
$this->returnjson(array(
|
||||
'totalCount'=> 0,
|
||||
'rows' => $rows
|
||||
));
|
||||
}
|
||||
public function deptreloadAjax()
|
||||
{
|
||||
return c('rockqywx')->getdata('deptreload');
|
||||
}
|
||||
|
||||
public function anaytodeptAjax()
|
||||
{
|
||||
$barr = c('rockqywx')->getdata('deptlist');
|
||||
if(!$barr['success'])return $barr;
|
||||
$rows = $barr['data'];
|
||||
|
||||
|
||||
return returnsuccess();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//微信上用户操作
|
||||
public function beforeusershow($table)
|
||||
{
|
||||
$fields = 'id,`name`,`user`,deptname,`mobile`,deptallname,status,ranking,deptid,sex,sort,face';
|
||||
$fields.=',deptids,deptnames';
|
||||
$s = '';
|
||||
$key = $this->post('key');
|
||||
if($key!=''){
|
||||
$s = " and (`name` like '%$key%' or `user` like '%$key%' or `ranking` like '%$key%' or `deptallname` like '%$key%' ";
|
||||
$s.=" or `deptnames` like '%$key%'";
|
||||
$s.= ')';
|
||||
}
|
||||
|
||||
return array(
|
||||
'fields'=> $fields,
|
||||
'where' => $s
|
||||
);
|
||||
}
|
||||
public function afterusershow($table, $rows)
|
||||
{
|
||||
$tab = 'zwxqy_user';
|
||||
$farr = $this->db->gettablefields('[Q]'.$tab.'');
|
||||
if(!$farr){
|
||||
$sql = "CREATE TABLE `[Q]".$tab."` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`userid` varchar(50) DEFAULT '',
|
||||
`state` tinyint(1) DEFAULT '0' COMMENT '状态',
|
||||
`agentid` int(11) DEFAULT '0' COMMENT '对应应用id',
|
||||
`mobile` varchar(50) DEFAULT NULL COMMENT '关联手机号',
|
||||
`uid` int(11) DEFAULT '0' COMMENT '对应OA用户id',
|
||||
`cnum` varchar(30) DEFAULT NULL COMMENT '关联单位编号',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `mobile` (`mobile`),
|
||||
KEY `uid` (`uid`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='关联信呼企业微信平台用户';";
|
||||
$this->db->query($sql);
|
||||
}
|
||||
$db = m($tab);
|
||||
foreach($rows as $k=>$rs){
|
||||
$zt = '0';
|
||||
$toid = '0';
|
||||
$ors = $db->getone("`mobile`='{$rs['mobile']}'");
|
||||
if($ors){
|
||||
$zt = $ors['state'];
|
||||
$toid = $ors['id'];
|
||||
}
|
||||
$rows[$k]['zt'] = $zt;
|
||||
$rows[$k]['toid'] = $toid;
|
||||
$rows[$k]['mobile'] = substr($rs['mobile'],0,3).'****'.substr($rs['mobile'],-4);
|
||||
}
|
||||
|
||||
return array('rows'=>$rows);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function reloaduserAjax()
|
||||
{
|
||||
return c('rockwxqy')->getdata('userlist');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function agentdataAjax()
|
||||
{
|
||||
$barr = c('rockwxqy')->getdata('agentlist');
|
||||
$rows = array();
|
||||
if($barr['success'])$rows = $barr['data'];
|
||||
|
||||
$this->returnjson(array(
|
||||
'totalCount'=> 0,
|
||||
'rows' => $rows,
|
||||
'msg' => $barr['msg']
|
||||
));
|
||||
}
|
||||
|
||||
public function agentgetAjax()
|
||||
{
|
||||
return c('rockqywx')->getdata('agentget', array(
|
||||
'agentid' => $this->get('id')
|
||||
));
|
||||
}
|
||||
|
||||
public function sendmsgAjax()
|
||||
{
|
||||
$name = $this->post('name');
|
||||
$msg = $this->post('msg');
|
||||
return m('qywxplat:agent')->sendxiao($this->adminid, $name, $msg);
|
||||
}
|
||||
|
||||
public function senduserAjax()
|
||||
{
|
||||
$id = (int)$this->post('id');
|
||||
$msg = $this->post('msg');
|
||||
$url = $this->rock->getouturl().'?d=we';
|
||||
$urs = m('admin')->getone($id);
|
||||
return c('rockwxqy')->sendmess($id, '测试发给:'.$urs['name'].'', $msg, $url,'', true);
|
||||
}
|
||||
|
||||
public function restateAjax()
|
||||
{
|
||||
$id = (int)$this->get('id');
|
||||
$urs = m('admin')->getone($id);
|
||||
$mobile = $urs['mobile'];
|
||||
if(!$mobile)return returnerror('未设置手机号');
|
||||
$uid = $urs['id'];
|
||||
$dbs = m('zwxqy_user');
|
||||
$barr = c('rockwxqy')->getdata('userstate', array(
|
||||
'mobile' => $mobile,
|
||||
'user' => $urs['user'],
|
||||
));
|
||||
if(!$barr['success']){
|
||||
$dbs->delete('uid='.$uid.'');
|
||||
return $barr;
|
||||
}
|
||||
$data = $barr['data'];
|
||||
$userid = $data['userid'];
|
||||
$agentid = $data['agentid'];
|
||||
$cnum = $data['cnum'];
|
||||
|
||||
$uarr['uid'] = $uid;
|
||||
$uarr['mobile'] = $mobile;
|
||||
$uarr['userid'] = $userid;
|
||||
$uarr['agentid'] = $agentid;
|
||||
$uarr['cnum'] = $cnum;
|
||||
$uarr['state'] = $data['state'];
|
||||
$ors = $dbs->getone("`uid`='$uid'");
|
||||
if($ors){
|
||||
$dbs->update($uarr, $ors['id']);
|
||||
}else{
|
||||
$dbs->insert($uarr);
|
||||
}
|
||||
return returnsuccess($data);
|
||||
}
|
||||
|
||||
public function uqingkongAjax()
|
||||
{
|
||||
m('zwxqy_user')->delete('1=1');
|
||||
return returnsuccess();
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ $(document).ready(function(){
|
||||
|
||||
var a = $('#view_{rand}').bootstable({
|
||||
tablename:'table',fanye:true,modedir:'{mode}:{dir}',storebeforeaction:'tablebefore',celleditor:true,
|
||||
cellurl:js.getajaxurl('tablesm','{mode}','{dir}'),
|
||||
cellurl:js.getajaxurl('tablesm','{mode}','{dir}'),storeafteraction:'tableafter',
|
||||
columns:[{
|
||||
text:'表名',dataIndex:'id',sortable:true
|
||||
},{
|
||||
@@ -19,12 +19,19 @@ $(document).ready(function(){
|
||||
text:'字符集',dataIndex:'TABLE_COLLATION'
|
||||
},{
|
||||
text:'更新时间',dataIndex:'gxsj',sortable:true
|
||||
},{
|
||||
text:'操作',dataIndex:'gengxin',renderer:function(v,d){
|
||||
return '<input type="button" onclick="up{rand}.dbupdatess(\''+d.id+'\',-1)" id="table{rand}_'+d.id+'" class="btn btn-default btn-xs" value="更新" />';
|
||||
}
|
||||
}],
|
||||
itemclick:function(){
|
||||
btn(false);
|
||||
},
|
||||
beforeload:function(){
|
||||
btn(true);
|
||||
},
|
||||
loadbefore:function(d){
|
||||
$('#dbupurl_{rand}').val(d.dbupurl);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -45,9 +52,48 @@ $(document).ready(function(){
|
||||
a.setparams({
|
||||
key:get('key_{rand}').value
|
||||
},true);
|
||||
},
|
||||
dbupdate:function(){
|
||||
//js.msg('success', '暂无功能');return;
|
||||
this.data = a.getData();
|
||||
this.dbupdates(0);
|
||||
},
|
||||
dbupdates:function(i){
|
||||
var d = this.data[i]
|
||||
if(!d){
|
||||
js.msg('success', '更新完成');
|
||||
return;
|
||||
}
|
||||
js.msg('wait', '更新中('+this.data.length+'/'+(i+1)+')'+d.id+'...');
|
||||
this.dbupdatess(d.id, i);
|
||||
},
|
||||
dbupdatess:function(tab, i){
|
||||
var o = get('table{rand}_'+tab+'');
|
||||
if(o){
|
||||
o.disabled = true
|
||||
o.value='更新中..';
|
||||
}
|
||||
js.ajax(js.getajaxurl('dbupdate','{mode}','{dir}'), {tab:tab}, function(ret){
|
||||
if(ret.success){
|
||||
o.value=ret.data;
|
||||
if(i>-1)c.dbupdates(i+1)
|
||||
}else{
|
||||
o.value='失败';
|
||||
js.msg('msg', ret.msg);
|
||||
}
|
||||
},'get,json');
|
||||
},
|
||||
savedbupurl:function(o){
|
||||
var dz = o.value;
|
||||
js.ajax(js.getajaxurl('savedbupurl','{mode}','{dir}'), {dz:jm.base64encode(dz)});
|
||||
}
|
||||
};
|
||||
js.initbtn(c);
|
||||
$('#dbupurl_{rand}').blur(function(){
|
||||
c.savedbupurl(this)
|
||||
})
|
||||
|
||||
up{rand} = c
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -63,14 +109,16 @@ $(document).ready(function(){
|
||||
<button class="btn btn-default" click="search" type="button">搜索</button>
|
||||
</td>
|
||||
|
||||
<td width="80%" style="padding-left:10px">
|
||||
<td width="80%" style="padding-right:10px">
|
||||
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
<td align="right" nowrap>
|
||||
<button class="btn btn-info" id="edit_{rand}" click="clickwin,1" disabled type="button"><i class="icon-edit"></i> 编辑 </button>
|
||||
<input class="form-control" style="width:180px" id="dbupurl_{rand}" placeholder="默认更新地址">
|
||||
<button class="btn btn-info" click="dbupdate" type="button">一键更新</button>
|
||||
<button class="btn btn-info" id="edit_{rand}" click="clickwin,1" disabled type="button"><i class="icon-edit"></i> 表结构 </button>
|
||||
<button class="btn btn-default" id="kanbtn_{rand}" click="kanjili" disabled type="button">查看记录</button>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -79,4 +127,4 @@ $(document).ready(function(){
|
||||
</div>
|
||||
<div class="blank10"></div>
|
||||
<div id="view_{rand}"></div>
|
||||
<div class="tishi">数据库表格管理请谨慎操作!</div>
|
||||
<div class="tishi">数据库表格管理请谨慎操作,一键更新,只是更新表结果。</div>
|
||||
|
||||
@@ -20,6 +20,13 @@ class tableClassAction extends Action
|
||||
);
|
||||
}
|
||||
|
||||
public function tableafter($table, $rows)
|
||||
{
|
||||
return array(
|
||||
'dbupurl' => m('option')->getval('dbupurl')
|
||||
);
|
||||
}
|
||||
|
||||
//保存表备注
|
||||
public function tablesmAjax()
|
||||
{
|
||||
@@ -123,8 +130,43 @@ class tableClassAction extends Action
|
||||
);
|
||||
}
|
||||
}
|
||||
foreach($rows as $k=>$rs){
|
||||
foreach($rs as $k1=>$v1){
|
||||
if($v1===null){
|
||||
$rows[$k][$k1]='NULL';
|
||||
$rows[$k][''.$k1.'_color']='#aaaaaa';
|
||||
}
|
||||
}
|
||||
}
|
||||
return array(
|
||||
'fieldsarr' => $fieldsar
|
||||
'fieldsarr' => $fieldsar,
|
||||
'rows' => $rows,
|
||||
);
|
||||
}
|
||||
|
||||
public function savedbupurlAjax()
|
||||
{
|
||||
$dz = $this->get('dz');
|
||||
$dz = $this->jm->base64decode($dz);
|
||||
m('option')->setval('dbupurl', $dz);
|
||||
return 'ok';
|
||||
}
|
||||
|
||||
public function dbupdateAjax()
|
||||
{
|
||||
$url = m('option')->getval('dbupurl');
|
||||
if(!$url)return returnerror('未设置更新地址');
|
||||
if(substr($url,0,4)!='http')return returnerror('更新地址有问题');
|
||||
$tab = $this->get('tab');
|
||||
$tab = str_replace(PREFIX,'', $tab);
|
||||
$url .= 'api.php?m=login&a=dbinfo&tab='.$tab.'&xinhukey='.getconfig('xinhukey').'';
|
||||
$result = c('curl')->getcurl($url);
|
||||
if(substr($result, 0, 1)!='{')return returnsuccess($result);
|
||||
$msg = m('beifen')->updatefabric($result);
|
||||
if($msg=='ok'){
|
||||
return returnsuccess('已更新');
|
||||
}else{
|
||||
return returnsuccess($msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -77,7 +77,7 @@ class wordClassAction extends Action
|
||||
|
||||
public function sharefileAjax()
|
||||
{
|
||||
$fileid = $this->post('fid','0');
|
||||
$fileid = c('check')->onlynumber($this->post('fid','0'));
|
||||
$arr['shateid'] = $this->post('sid');
|
||||
$arr['shate'] = $this->post('sna');
|
||||
m('word')->update($arr, "optid='$this->adminid' and fileid in($fileid)");
|
||||
|
||||
@@ -32,7 +32,8 @@ class apiAction extends ActionNot
|
||||
$time = time();
|
||||
$this->cfrom= $this->request('cfrom');
|
||||
$this->token= $this->request('token', $this->admintoken);
|
||||
$this->adminid = (int)$this->request('adminid', $this->adminid);
|
||||
$nadminid = $this->adminid;
|
||||
$this->adminid = (int)$this->request('adminid', $nadminid);
|
||||
$this->adminname = '';
|
||||
$boss = (M == 'login|api');
|
||||
if(!$boss){
|
||||
@@ -46,11 +47,11 @@ class apiAction extends ActionNot
|
||||
if(!$this->userrs && !$boss){
|
||||
$this->showreturn('', '用户已经不存在了,请重新登录', 199);
|
||||
}
|
||||
|
||||
$this->adminname = arrvalue($this->userrs, 'name');
|
||||
$this->rock->adminid = $this->adminid;
|
||||
$this->rock->adminname = $this->adminname;
|
||||
$this->admintoken = $this->token;
|
||||
if(!$boss && $nadminid != $this->adminid)m('login')->setsession($this->adminid, $this->adminname, $this->token, $this->userrs['user']);
|
||||
}
|
||||
|
||||
public function getvals($nae, $dev='')
|
||||
|
||||
@@ -168,8 +168,8 @@ class asynrunClassAction extends apiAction
|
||||
//订阅的
|
||||
public function subscribeAction()
|
||||
{
|
||||
$id = $this->get('id');
|
||||
$uid = $this->get('uid');
|
||||
$id = (int)$this->get('id');
|
||||
$uid = (int)$this->get('uid');
|
||||
$receid = $this->get('receid');
|
||||
$recename = $this->jm->base64decode($this->get('recename'));
|
||||
$flow = m('flow')->initflow('subscribeinfo');
|
||||
|
||||
@@ -139,6 +139,23 @@ class indexClassAction extends apiAction
|
||||
return returnsuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册了极光推送
|
||||
*/
|
||||
public function updateJPushAction()
|
||||
{
|
||||
$allfields = $this->db->getallfields('[Q]logintoken');
|
||||
if(!in_array('regid', $allfields)){
|
||||
$this->db->addFields('[Q]logintoken','regid','varchar(100)',null,'注册客户端id');
|
||||
}
|
||||
$regid = $this->get('regid');
|
||||
$uarr['regid'] = $regid;
|
||||
$uarr['moddt'] = $this->now;
|
||||
if(!isempt($regid))$uarr['ispush'] = 1;
|
||||
m('login')->update($uarr, "`token`='$this->admintoken'");
|
||||
return returnsuccess();
|
||||
}
|
||||
|
||||
public function addlogAction()
|
||||
{
|
||||
$tit = $this->post('title');
|
||||
|
||||
@@ -26,7 +26,8 @@ class indexreimClassAction extends apiAction
|
||||
$modearr[]=array('type'=>$rs['type'],'num'=>$rs['num'],'name'=>$rs['name']);
|
||||
}
|
||||
}
|
||||
|
||||
$arr['loadtime'] = time();
|
||||
if($historyarr)$arr['loadtime'] = strtotime($historyarr[0]['optdt']);
|
||||
$arr['deptjson'] = json_encode($deptarr);
|
||||
$arr['userjson'] = json_encode($userarr);
|
||||
$arr['groupjson'] = json_encode($grouparr);
|
||||
|
||||
@@ -294,4 +294,53 @@ class loginClassAction extends apiAction
|
||||
'fid' => $fid,
|
||||
));
|
||||
}
|
||||
|
||||
//保存设置
|
||||
public function setwxqyAction()
|
||||
{
|
||||
$callback= $this->get('callback');
|
||||
$num = $this->get('num');
|
||||
$agentid = (int)$this->get('agentid');
|
||||
$shouji = $this->jm->base64decode($this->get('shouji'));
|
||||
$userid = $this->jm->base64decode($this->get('userid'));
|
||||
$urs = m('admin')->getone("`mobile`='$shouji' AND `status`=1");
|
||||
$barr = returnerror('错误');
|
||||
if(!$urs){
|
||||
$barr = returnerror('手机号“'.$shouji.'”在设置OA地址里不存在');
|
||||
}else{
|
||||
$barr = returnsuccess(array());
|
||||
}
|
||||
if($barr['success']){
|
||||
if($urs['type']==1)$this->option->setval('wxqyplat_cnum@-10', $num);
|
||||
$obj = m('zwxqy_user');
|
||||
$uarr['uid'] = $urs['id'];
|
||||
$uarr['mobile'] = $shouji;
|
||||
$uarr['userid'] = $userid;
|
||||
$uarr['agentid'] = $agentid;
|
||||
$uarr['cnum'] = $num;
|
||||
$uarr['state'] = 1;
|
||||
$ors = $obj->getone("`userid`='$userid'");
|
||||
if($ors){
|
||||
$obj->update($uarr, $ors['id']);
|
||||
}else{
|
||||
$obj->insert($uarr);
|
||||
}
|
||||
$data['user'] = $urs['user'];
|
||||
$barr['data'] = $data;
|
||||
}
|
||||
return ''.$callback.'('.json_encode($barr).')';
|
||||
}
|
||||
|
||||
//读取表结构
|
||||
public function dbinfoAction()
|
||||
{
|
||||
$tab = $this->get('tab');
|
||||
if(!$tab)return 'error';
|
||||
$table= ''.PREFIX.''.$tab.'';
|
||||
$rows = $this->db->gettablefields($table);
|
||||
if(!$rows)return '无表';
|
||||
|
||||
$barr[$table]['fields'] = $rows;
|
||||
return $barr;
|
||||
}
|
||||
}
|
||||
101
webmain/task/api/qywxplatAction.php
Normal file
101
webmain/task/api/qywxplatAction.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
/**
|
||||
* 信呼企业微信回调
|
||||
*/
|
||||
class qywxplatClassAction extends apiAction
|
||||
{
|
||||
|
||||
public function initAction()
|
||||
{
|
||||
$this->display= false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证的使用回调
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
$huitoken = $this->get('huitoken');
|
||||
if(!$huitoken)return 'huitoken isempty';
|
||||
$mytoekn = $this->option->getval('qywxplat_huitoken');
|
||||
if(md5($mytoekn) != $huitoken)return 'huitoken error';
|
||||
|
||||
$postdata = $this->getpostdata();
|
||||
$calltype = '';
|
||||
$userid = '';
|
||||
if($postdata){
|
||||
$data = json_decode($postdata, true);
|
||||
$calltype = arrvalue($data, 'calltype');
|
||||
//m('log')->addlog('信呼回调', $postdata);
|
||||
$userid = arrvalue($data, 'userid');
|
||||
//$this->rock->debugs($postdata,'qywxcall_'.$calltype.'');
|
||||
}
|
||||
$where = "`user`='$userid'";
|
||||
|
||||
//激活关注
|
||||
if($calltype=='subscribe'){
|
||||
m('zqywx_user')->update('`state`=1', $where);
|
||||
}
|
||||
|
||||
//取消激活
|
||||
if($calltype=='unsubscribe'){
|
||||
m('zqywx_user')->update('`state`=4', $where);
|
||||
}
|
||||
|
||||
//删除用户
|
||||
if($calltype=='delete_user'){
|
||||
m('zqywx_user')->delete($where);
|
||||
}
|
||||
|
||||
//创建和更新用户
|
||||
if($calltype=='create_user' || $calltype=='update_user'){
|
||||
c('rockqueue')->push('qywx,qywxplatuserget', array(
|
||||
'userid' => $userid,
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
return 'success';
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调处理的
|
||||
*/
|
||||
public function backAction()
|
||||
{
|
||||
$huitoken = $this->get('huitoken');
|
||||
if(!$huitoken)return 'huitoken isempty';
|
||||
$mytoekn = $this->option->getval('wxqyplat_huitoken');
|
||||
if(md5($mytoekn) != $huitoken)return 'huitoken error';
|
||||
|
||||
$postdata = $this->getpostdata();
|
||||
$calltype = '';
|
||||
$userid = '';
|
||||
if($postdata){
|
||||
$data = json_decode($postdata, true);
|
||||
$calltype = arrvalue($data, 'calltype');
|
||||
$userid = arrvalue($data, 'userid');
|
||||
}
|
||||
|
||||
$where = "`userid`='$userid'";
|
||||
$obj = m('zwxqy_user');
|
||||
|
||||
//激活关注
|
||||
if($calltype=='subscribe'){
|
||||
$obj->update('`state`=1', $where);
|
||||
}
|
||||
|
||||
//取消激活
|
||||
if($calltype=='unsubscribe'){
|
||||
$obj->update('`state`=4', $where);
|
||||
}
|
||||
|
||||
//取消授权
|
||||
if($calltype=='authcancel'){
|
||||
$obj->delete('1=1');
|
||||
}
|
||||
|
||||
return 'success';
|
||||
}
|
||||
}
|
||||
@@ -9,14 +9,33 @@ class tonghuaClassAction extends apiAction
|
||||
if(!getconfig('video_bool'))return returnerror('系统未开启音视频');
|
||||
$id = (int)$this->get('id');
|
||||
$type = (int)$this->get('type');
|
||||
$rtctype = 1; //0,1腾讯
|
||||
if($id==$this->adminid)return returnerror('不能和自己通话');
|
||||
$nowtime = strtotime($this->now);
|
||||
|
||||
$allfields = $this->db->getallfields('[Q]im_tonghua');
|
||||
if(!in_array('toid', $allfields)){
|
||||
$this->db->addFields('[Q]im_tonghua','toid','int(11)','0','对于人id可能是组');
|
||||
}
|
||||
|
||||
|
||||
//判断是不是在通话中
|
||||
$thrs = m('im_tonghua')->getone('(`faid`='.$id.' or `toid`='.$id.') and (`state` in(0,4) or (`state`=1 and enddt is null))', '*', 'id desc');
|
||||
if($thrs){
|
||||
$time = time() - strtotime($thrs['adddt']);
|
||||
$state = (int)$thrs['state'];
|
||||
$stime = 60;
|
||||
if($state == 1)$stime = 30* 60;
|
||||
if($time < $stime)return returnerror('对方忙线');//60秒内
|
||||
}
|
||||
|
||||
//判断用户有没有在线
|
||||
$gbarr = m('reim')->pushserver('getonline', array(
|
||||
'onlineid' => $id
|
||||
));
|
||||
if(!$gbarr)return returnerror('没有服务端');
|
||||
|
||||
|
||||
if(!$gbarr['success'])return $gbarr;
|
||||
$ondats = json_decode(arrvalue($gbarr,'data'), true);
|
||||
$online = false;
|
||||
@@ -26,11 +45,21 @@ class tonghuaClassAction extends apiAction
|
||||
}
|
||||
|
||||
if(!$online){
|
||||
$to = m('login')->rows('`uid`='.$id.' and `online`=1 and `ispush`=1');
|
||||
if($to==0)return returnerror('对方不在线,无法通话');
|
||||
$trows = m('login')->getall('`uid`='.$id.' and `online`=1 and `ispush`=1');
|
||||
if(!$trows)return returnerror('对方不在线,无法通话');
|
||||
|
||||
$appfw = $this->option->getval('reimappwxsystem');
|
||||
if($appfw != '1')return returnerror('服务端没开启APP可用');
|
||||
|
||||
$isbo = true;
|
||||
foreach($trows as $k=>$rs){
|
||||
$web = $rs['web'];
|
||||
if(!contain($web, 'iphone'))$isbo = false;
|
||||
}
|
||||
//if($isbo)return returnerror('对方使用iphone,暂不支持通话');
|
||||
}
|
||||
|
||||
$barr = c('xinhuapi')->getdata('tonghua','thinit', array('faid'=>$this->adminid,'nowtime'=>$nowtime,'toid'=>$id,'type'=>$type));
|
||||
$barr = c('xinhuapi')->getdata('tonghua','thinit', array('faid'=>$this->adminid,'rtctype'=>$rtctype,'nowtime'=>$nowtime,'toid'=>$id,'type'=>$type));
|
||||
if(!$barr['success'])return $barr;
|
||||
$data = $barr['data'];
|
||||
$key = $data['channel'];
|
||||
@@ -42,7 +71,9 @@ class tonghuaClassAction extends apiAction
|
||||
'faid' => $this->adminid,
|
||||
'channel' =>$data['channel'],
|
||||
'type' =>$data['type'],
|
||||
'plat' =>$rtctype,
|
||||
'joinids' =>$id,
|
||||
'toid' =>$id,
|
||||
'adddt' =>$this->now,
|
||||
));
|
||||
|
||||
@@ -67,7 +98,7 @@ class tonghuaClassAction extends apiAction
|
||||
}
|
||||
|
||||
/**
|
||||
* 接电话了(1同意,2拒绝,3取消,4接受者已打开页面,5呼叫超过30秒无人接听)
|
||||
* 接电话了(0呼叫中,1同意,2拒绝,3取消,4接受者已打开页面,5呼叫超过30秒无人接听)
|
||||
*/
|
||||
public function jieAction()
|
||||
{
|
||||
@@ -76,18 +107,22 @@ class tonghuaClassAction extends apiAction
|
||||
$dbs = m('im_tonghua');
|
||||
$onrs = $dbs->getone("`channel`='$channel'");
|
||||
$satype = '';
|
||||
if(!$onrs)$satype = '通话不存在';
|
||||
if($onrs && ($onrs['state']=='3' || $onrs['state']=='5'))$satype = '对方已取消';
|
||||
if(!$satype){
|
||||
$nowtime = strtotime($this->now);
|
||||
$upstsr = '`state`='.$state.'';
|
||||
if($state==1)$upstsr.=",`jiedt`='$this->now'";
|
||||
$dbs->update($upstsr,"`channel`='$channel'");
|
||||
$barr = c('rockqueue')->push('tonghua,jie', array('key'=>$channel,'nowtime'=>$nowtime,'uid'=>$this->adminid,'state'=>$state));
|
||||
if(!$barr['success'])return $barr;
|
||||
}
|
||||
if(!$onrs)return returnerror('通话不存在');
|
||||
$zt = $onrs['state'];
|
||||
if($zt == '3' || $zt=='5')return returnerror('对方已取消');
|
||||
|
||||
if($zt=='1')return returnerror('已在另端接通');
|
||||
if($zt=='2')return returnerror('已在另端拒绝');
|
||||
|
||||
$nowtime = strtotime($this->now);
|
||||
$upstsr = '`state`='.$state.'';
|
||||
if($state==1)$upstsr.=",`jiedt`='$this->now'";
|
||||
$dbs->update($upstsr,"`channel`='$channel'");
|
||||
$barr = c('rockqueue')->push('tonghua,jie', array('key'=>$channel,'nowtime'=>$nowtime,'uid'=>$this->adminid,'state'=>$state));
|
||||
if(!$barr['success'])return $barr;
|
||||
|
||||
return returnsuccess(array(
|
||||
'satype' => $satype
|
||||
'satype' => ''
|
||||
));
|
||||
}
|
||||
|
||||
@@ -143,10 +178,10 @@ class tonghuaClassAction extends apiAction
|
||||
{
|
||||
$channel = $this->get('channel');
|
||||
$onrs = m('im_tonghua')->getone("`channel`='$channel'");
|
||||
$tayar = array('','tongyi','jujue','cancel','wait','cancel');
|
||||
|
||||
$tayar = array('call','tongyi','jujue','cancel','wait','cancel','end');
|
||||
return returnsuccess(array(
|
||||
'state' => arrvalue($tayar, $onrs['state'])
|
||||
'state' => arrvalue($tayar, $onrs['state']),
|
||||
'th_channel'=> $channel
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -515,7 +515,7 @@ class uploadClassAction extends apiAction
|
||||
$this->rock->createtxt($filepath, file_get_contents($lujing));
|
||||
|
||||
$uarr = array(
|
||||
'filename' => $fname,
|
||||
'filename' => $this->rock->xssrepstr($fname),
|
||||
'fileext' => $fileext,
|
||||
'filepath' => $filepath,
|
||||
'filesize' => filesize($filepath),
|
||||
@@ -556,7 +556,7 @@ class uploadClassAction extends apiAction
|
||||
$where.=" and `fileext` in('".$uptp."')";
|
||||
}
|
||||
$db = m('file');
|
||||
$rows = $db->getall($where,'id,filename,filesizecn,fileext,thumbpath,filepath,filepathout','`id` desc limit 10');
|
||||
$rows = $db->getall($where,'id,filename,filesizecn,fileext,thumbpath,thumbplat,filepath,filepathout','`id` desc limit 10');
|
||||
foreach($rows as $k=>$rs){
|
||||
$rows[$k]['value'] = $rs['id'];
|
||||
$rows[$k]['name'] = $rs['filename'];
|
||||
@@ -570,6 +570,7 @@ class uploadClassAction extends apiAction
|
||||
unset($rows[$k]['filepathout']);
|
||||
if(!isempt($rs['thumbpath'])){
|
||||
$rows[$k]['iconsimg'] = $rs['thumbpath'];
|
||||
if(!isempt($rs['thumbplat']))$rows[$k]['iconsimg'] = $rs['thumbplat'];
|
||||
}else{
|
||||
$flx = $rs['fileext'];
|
||||
if(!contain($db->fileall,','.$flx.','))$flx='wz';
|
||||
|
||||
@@ -44,7 +44,7 @@ class weixinClassAction extends apiAction{
|
||||
$arr['location_y'] = $this->post('location_y');
|
||||
$arr['scale'] = (int)$this->post('scale');
|
||||
$arr['precision'] = (int)$this->post('precision');
|
||||
$arr['label'] = $this->getvals('label');
|
||||
$arr['label'] = $this->rock->iconvsql($this->getvals('label'));
|
||||
$arr['explain'] = $this->rock->xssrepstr($this->getvals('sm'));
|
||||
$arr['optdt'] = $now;
|
||||
$arr['uid'] = $uid;
|
||||
|
||||
@@ -33,7 +33,7 @@ class wordClassAction extends apiAction
|
||||
|
||||
$cqid = $this->post('cqid');
|
||||
$typeid = (int)$this->post('typeid','0');
|
||||
$name = $this->post('name');
|
||||
$name = $this->rock->xssrepstr($this->post('name'));
|
||||
|
||||
$arr = m('word')->createfolder($name, $cqid, $typeid);
|
||||
$this->showreturn($arr);
|
||||
@@ -43,7 +43,7 @@ class wordClassAction extends apiAction
|
||||
public function renameAction()
|
||||
{
|
||||
$id = (int)$this->post('id');
|
||||
$name = $this->getvals('name');
|
||||
$name = $this->rock->xssrepstr($this->getvals('name'));
|
||||
$type = $this->post('type');
|
||||
m('word')->update("`name`='$name'", $id);
|
||||
$this->showreturn('');
|
||||
|
||||
@@ -21,7 +21,7 @@ class openapiAction extends ActionNot
|
||||
$this->display= false;
|
||||
$openkey = $this->post('openkey');
|
||||
$this->openkey = getconfig('openkey');
|
||||
if($this->keycheck && HOST != '127.0.0.1' && !contain(HOST,'192.168') && $this->openkey != ''){
|
||||
if($this->keycheck && $this->openkey != ''){
|
||||
if($openkey != md5($this->openkey))$this->showreturn('', 'openkey not access', 201);
|
||||
}
|
||||
$this->getpostdata();
|
||||
|
||||
@@ -15,7 +15,7 @@ class openbaseClassAction extends openapiAction
|
||||
$arr = $this->getpostarr();
|
||||
if(!$arr)return returnerror('not data');
|
||||
|
||||
$modenum = $arr['basemodenum'];
|
||||
$modenum = $this->rock->xssrepstr($arr['basemodenum']);
|
||||
$adminid = $this->rock->xssrepstr($arr['baseoptid']); //提交的用户
|
||||
if(isempt($modenum))return returnerror('modenum is empty');
|
||||
$uid = $this->getuserid($adminid);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* 群英考勤机
|
||||
* 请求地址如:http://127.0.0.1/api.php?m=opendkq&openkey=key
|
||||
* 请求地址如:http://127.0.0.1/api.php?m=openkqj&openkey=key
|
||||
*/
|
||||
class openkqjClassAction extends openapiAction
|
||||
{
|
||||
@@ -31,8 +31,10 @@ class openkqjClassAction extends openapiAction
|
||||
$data = array();
|
||||
$num = $this->get('sn'); //设备号
|
||||
if(!$num)return 'notdata';
|
||||
if(c('check')->onlynoen($num))return 'error:sn0';
|
||||
$dbs = m('kqjsn');
|
||||
$snid = (int)$dbs->getmou('id',"`num`='$num'");
|
||||
if($snid==0)return 'error:sn1'; //20250307新增没有设备就不执行了
|
||||
if($snid==0)$snid = $dbs->insert(array(
|
||||
'num' => $num,
|
||||
'optdt' => $this->rock->now,
|
||||
|
||||
@@ -17,8 +17,10 @@ class openssoClassAction extends openapiAction
|
||||
$lurl = urldecode($this->get('backurl')); //登录成功跳转地址urlencode
|
||||
if(isempt($ssotoken))return '没有参数ssotoken';
|
||||
|
||||
$checkurls = $this->get('checkurl');
|
||||
$checkurl = getconfig('sso_checkurl'); //验证地址
|
||||
$ssokey = getconfig('sso_key'); //验证key
|
||||
if($checkurls)$checkurl = c('rockwxqy')->geturlstr($checkurls,'','main');
|
||||
|
||||
if(isempt($checkurl))return '没有配置验证地址';
|
||||
$jg = contain($checkurl,'?')?'&':'?';
|
||||
|
||||
@@ -56,18 +56,24 @@ class beifenClassAction extends runtAction
|
||||
|
||||
/**
|
||||
* 备份数据库
|
||||
* php task.php beifen,create
|
||||
* php task.php beifen,create -table=menu
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
if(PHP_SAPI != 'cli') return 'plase cli run';
|
||||
$alltabls = $this->db->getalltable();
|
||||
if(PHP_SAPI != 'cli') return 'plase cli run:php task.php beifen,create';
|
||||
$table = $this->getparams('table');
|
||||
ob_end_clean();
|
||||
$path = ''.ROOT_PATH.'/'.DB_BASE.'_'.date('YmdHis').'.sql';
|
||||
$path = ''.ROOT_PATH.'/'.DB_BASE.''.$table.'_'.date('YmdHis').'.sql';
|
||||
$file = fopen($path, 'ab+');
|
||||
|
||||
$nobeifne = array(''.PREFIX.'log',''.PREFIX.'logintoken',''.PREFIX.'kqanay',''.PREFIX.'email_cont',''.PREFIX.'dailyfx',''.PREFIX.'reads',''.PREFIX.'todo',''.PREFIX.'city'); //不备份的表;
|
||||
|
||||
if($table){
|
||||
$alltabls[] = ''.PREFIX.''.$table.'';
|
||||
}else{
|
||||
$alltabls = $this->db->getalltable();
|
||||
}
|
||||
|
||||
foreach($alltabls as $tabs){
|
||||
$sqla = $this->db->getall('show create table `'.$tabs.'`');
|
||||
$createsql = $sqla[0]['Create Table'];
|
||||
|
||||
@@ -82,7 +82,9 @@ class sysClassAction extends runtAction
|
||||
if(in_array(''.PREFIX.'dailyfx', $alltabls))
|
||||
m('dailyfx')->delete("`month`<'$month3'"); //日志分析
|
||||
|
||||
//更多清理自己添加
|
||||
|
||||
m('todo')->delete("`optdt`<'$date2 23:59:59'"); //6个月通知提醒
|
||||
m('flow_todos')->delete("`adddt`<'$date2 23:59:59'"); //6个月单据提醒
|
||||
|
||||
return 'success';
|
||||
}
|
||||
|
||||
@@ -6,13 +6,14 @@
|
||||
class tonghuaClassAction extends runtAction
|
||||
{
|
||||
|
||||
public function sendcpush($arr)
|
||||
public function sendcpush($arr, $isnei=false)
|
||||
{
|
||||
$arr['msgtype'] = 'calltonghua';
|
||||
$arr['type'] = 'calltonghua';
|
||||
$reimobj = m('reim');
|
||||
$reimobj->pushserver('sendapp', $arr);
|
||||
$reimobj->pushserver('send', $arr);
|
||||
if($isnei)c('JPush')->sendJpush($arr);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -37,7 +38,19 @@ class tonghuaClassAction extends runtAction
|
||||
$this->rock->adminid = $uid;
|
||||
$this->rock->adminname = $urs['name'];
|
||||
|
||||
//每3秒呼叫一次
|
||||
if($cishu==1){
|
||||
$typea= array('语音','视频');
|
||||
$cont = $this->jm->base64encode('['.$typea[$data['type']].'通话]');
|
||||
$pushcont = $this->jm->base64encode('邀请与您'.$typea[$data['type']].'通话...');
|
||||
m('reim')->sendinfor('user', $uid, $data['toid'], array(
|
||||
'optdt' => $thrs['adddt'],
|
||||
'cont' => $cont,
|
||||
'pushcont' => $pushcont,
|
||||
'msgid' => $channel
|
||||
));
|
||||
}
|
||||
|
||||
//每2秒呼叫一次
|
||||
$this->sendcpush(array(
|
||||
'adminid' => $uid,
|
||||
'adminname' => $urs['name'],
|
||||
@@ -50,17 +63,6 @@ class tonghuaClassAction extends runtAction
|
||||
'receid' => $data['toid']
|
||||
));
|
||||
|
||||
if($cishu==1){
|
||||
$typea= array('语音','视频');
|
||||
$cont = $this->jm->base64encode('['.$typea[$data['type']].'通话]');
|
||||
$pushcont = $this->jm->base64encode('邀请与您'.$typea[$data['type']].'通话...');
|
||||
m('reim')->sendinfor('user', $uid, $data['toid'], array(
|
||||
'optdt' => $thrs['adddt'],
|
||||
'cont' => $cont,
|
||||
'pushcont' => $pushcont,
|
||||
'msgid' => $channel,
|
||||
));
|
||||
}
|
||||
c('rockqueue')->push('tonghua,call', array('key' => $key,'cishu'=>$cishu+1),time()+2);
|
||||
|
||||
return 'success';
|
||||
@@ -78,9 +80,10 @@ class tonghuaClassAction extends runtAction
|
||||
|
||||
$this->sendcpush(array(
|
||||
'adminid' => $data['uid'],
|
||||
'calltype' => 'cancel',
|
||||
'calltype' => 'cancel',
|
||||
'th_channel'=> $channel,
|
||||
'receid' => $data['toid']
|
||||
));
|
||||
), true);
|
||||
|
||||
return 'success';
|
||||
}
|
||||
@@ -103,6 +106,7 @@ class tonghuaClassAction extends runtAction
|
||||
$this->sendcpush(array(
|
||||
'adminid' => $data['toid'],
|
||||
'calltype' => $tayar[$state],
|
||||
'th_channel'=> $channel,
|
||||
'receid' => $data['uid'].','.$data['toid']
|
||||
));
|
||||
|
||||
@@ -122,7 +126,8 @@ class tonghuaClassAction extends runtAction
|
||||
$channel = $this->getparams('channel');
|
||||
$this->sendcpush(array(
|
||||
'adminid' => $uid,
|
||||
'calltype' => 'jiesu',
|
||||
'calltype' => 'jiesu',
|
||||
'th_channel'=> $channel,
|
||||
'receid' => $toid
|
||||
));
|
||||
return c('xinhuapi')->getdata('tonghua','jiesu', array('uid'=>$uid,'nowtime'=>$nowtime,'channel'=>$channel));
|
||||
|
||||
@@ -50,9 +50,7 @@ function loginsubmit(){
|
||||
});
|
||||
}
|
||||
function initbody(){
|
||||
js.wx.msgok('密码修改成功',function(){
|
||||
js.msg('msg','呵呵');
|
||||
},1);
|
||||
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
|
||||
@@ -31,8 +31,8 @@ class loginClassAction extends ActionNot{
|
||||
if(!isempt($qycrid))$iskj=2;
|
||||
if($iskj==0 && $this->option->getval('wxgzh_tplmess')=='1')$iskj=4;
|
||||
}
|
||||
$kjdl = $this->option->getval('qywxplat_kjdl');
|
||||
if($this->getsession('olaizhi') || $kjdl=='1')$iskj = 5;
|
||||
$kjdl = $this->option->getval('wxqyplat_kjdl');
|
||||
if($kjdl=='1')$iskj = 5;
|
||||
}
|
||||
return $iskj;
|
||||
}
|
||||
@@ -49,7 +49,7 @@ class loginClassAction extends ActionNot{
|
||||
}else if($iskj==4){
|
||||
m('wxgzh:oauth')->oauthto('we','login');
|
||||
}else if($iskj==5){
|
||||
c('rockqywx')->authlogin($this->getsession('olaizhi'));
|
||||
c('rockwxqy')->authlogin();
|
||||
}else{
|
||||
return 'wuxiaoopen';
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mode/weui/weui.min.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="web/res/fontawesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="webmain/css/rui.css">
|
||||
<link rel="stylesheet" type="text/css" href="webmain/css/rui.css?1">
|
||||
<link rel="shortcut icon" href="<?=$arr['face']?>" />
|
||||
<script type="text/javascript" src="js/jquery.js"></script>
|
||||
<script type="text/javascript" src="js/js.js"></script>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="webmain/css/rui.css">
|
||||
<script type="text/javascript" src="js/jquery.js"></script>
|
||||
<script type="text/javascript" src="js/js.js"></script>
|
||||
<script type="text/javascript" src="js/jswx.js"></script>
|
||||
<script type="text/javascript" src="js/jswx.js?<?=time()?>"></script>
|
||||
<script type="text/javascript" src="js/base64-min.js"></script>
|
||||
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=<?=$da['qqmapkey']?>&libraries=geometry"></script>
|
||||
<script type="text/javascript" src="js/dingwei.js?<?=time()?>"></script>
|
||||
|
||||
@@ -282,7 +282,7 @@ class Action extends mainAction
|
||||
$rs['statustext'] = $this->flow->getstatus($rs,'','',1);
|
||||
if($rs['status']==5)$rs['ishui'] = 1;
|
||||
}
|
||||
$rows[$k] = $this->flow->flowrsreplace($rs,2);
|
||||
$rows[$k] = $this->flow->rsreplace($rs,2, $this);
|
||||
}
|
||||
$bacarr['rows'] = $this->flow->daochusubtable($rows);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user