雨中磐石 2 лет назад
Родитель
Сommit
983cd0d3ea

+ 2 - 2
config/version.php

@@ -1,3 +1,3 @@
 <?php
 <?php
-//版本2.5.8的版本
-return '2.5.8';
+//版本2.5.9额
+return '2.5.9';

+ 116 - 49
include/chajian/JPushChajian.php

@@ -10,16 +10,13 @@ class JPushChajian extends Chajian{
 	//-------------最新原生app推送app是1.2.3版本 和 最新app+---------------
 	//-------------最新原生app推送app是1.2.3版本 和 最新app+---------------
 	public function push($title, $desc, $cont, $palias)
 	public function push($title, $desc, $cont, $palias)
 	{
 	{
-		
-		$alias		= $palias['alias'];
-		$xmalias	= $palias['xmalias']; //小米的
-		$newalias	= $palias['newalias']; //最新使用的
-		$oldalias	= $palias['oldalias']; //一般自己编译
+
 		$uids		= $palias['uids'];
 		$uids		= $palias['uids'];
 		$alias2019	= $palias['alias2019'];
 		$alias2019	= $palias['alias2019'];
 		$pushuids	= $palias['pushuids']; //可以推送的用户ID
 		$pushuids	= $palias['pushuids']; //可以推送的用户ID
 		$xmpush		= c('xmpush');
 		$xmpush		= c('xmpush');
 		$hwpush		= c('hwpush');
 		$hwpush		= c('hwpush');
+		$getui		= c('getui');
 		
 		
 		//可推送判断
 		//可推送判断
 		$ketualia	= array();
 		$ketualia	= array();
@@ -40,59 +37,129 @@ class JPushChajian extends Chajian{
 			'desc'  => $desc,
 			'desc'  => $desc,
 			'systype'=> getconfig('systype')
 			'systype'=> getconfig('systype')
 		);
 		);
-		$isuguanw 	= false;
 		
 		
-
-		//没有设置推送(走的信呼官网渠道)
-		if(!$xmpush->sendbool() && !$hwpush->sendbool()){
-			if($xmalias || $newalias || $oldalias || $alias2019){
-				if($xmalias)$xharr['xmalias'] 		= join(',', $xmalias);
-				if($newalias)$xharr['newalias'] 	= join(',', $newalias);
-				if($oldalias)$xharr['oldalias'] 	= join(',', $oldalias);
-				if($alias2019)$xharr['alias2019']	= join(',', $alias2019);
-				$isuguanw = true;
-			}
-		}else{
-			$desc = $this->rock->jm->base64decode($desc);
-			$xmarr = array();//小米的人员
-			$othar = array();//其他人用
-			$iosar = array(); //IOS
-			$hwarr = array(); //华为
-			$iospas= array();
-			if($alias2019)foreach($alias2019 as $ali1){
-				$ali1aa = explode('|', $ali1);
-				$regid  = $ali1aa[0];
-				$sjlxx  = $ali1aa[1];
-				if(contain($sjlxx,'xiaomi')){
-					$xmarr[] = $regid;
-				}else if(contain($sjlxx,'huawei')){
-					if(isset($ali1aa[3]) && $ali1aa[3])$hwarr[] = $ali1aa[3];
-				}else if(contain($sjlxx,'iphone')){	
-					$iosar[] = $regid;
-					$iospas[]= $ali1;
+		if(!$alias2019)return;
+		
+		$getuiand = $getuiios = $mybyarr = $xmarr = $hwarr = $iosar = $puarr = array();
+		foreach($alias2019 as $k=>$ali1){
+			$ali1aa = explode('|', $ali1);
+			$regid  = $ali1aa[0];
+			$_web   = $ali1aa[1];
+			if(contain($_web,'custpile')){
+				$mybyarr[] =  $k; //3
+			}else if(contain($_web,'getui')){
+				if(contain($_web,'iphone')){
+					$getuiios[] =  $k; //3
 				}else{
 				}else{
-					$othar[] = $regid;
+					$getuiand[] =  $k; //3
 				}
 				}
+			}else if(contain($_web,'mi')){
+				$xmarr[] 	=  $k; //0
+			}else if(contain($_web,'huawei')){
+				$hwarr[] 	=  $k; //3
+			}else if(contain($_web,'iphone')){	
+				$iosar[] 	=  $k; //0
+			}else{
+				$puarr[]	= $ali1;
 			}
 			}
-			$msg = $msg1 = $msg2 = '';
-			if($oldalias)$msg = $xmpush->androidsend($oldalias, $title, $desc, $cont);
-			if($xmarr)$msg = $xmpush->androidsend($xmarr, $title, $desc);
-			if($iosar){
-				if(!$xmpush->jpushiosbool()){
-					$xharr['alias2019']	= join(',', $iospas);
-					$isuguanw = true;	
-				}else{
-					$msg1= $xmpush->jpushiossend($iosar, $title, $desc);
-				}
+		}
+		
+		$mymsg = '';
+		$desc = $this->rock->jm->base64decode($desc);
+		if($xmarr){
+			if($xmpush->sendbool()){
+				$vstr = $this->getVal($alias2019, $xmarr, 0);
+				$msg  = $xmpush->androidsend($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$vsta = $this->getVala($alias2019, $xmarr);
+				foreach($vsta as $v)$puarr[] = $v;
+			}
+		}
+		
+		if($hwarr){
+			if($hwpush->sendbool()){
+				$vstr = $this->getVal($alias2019, $hwarr, 3);
+				$msg  = $hwpush->androidsend($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$vsta = $this->getVala($alias2019, $hwarr);
+				foreach($vsta as $v)$puarr[] = $v;
 			}
 			}
-			if($hwarr)$msg2= $hwpush->androidsend($hwarr, $title, $desc);
-			$msg5 = $msg.$msg1.$msg2;
-			if($msg5)$this->rock->debugs($msg5,'mypush');
 		}
 		}
 		
 		
-		if($isuguanw){
+		if($iosar){
+			if($xmpush->jpushiosbool()){
+				$vstr = $this->getVal($alias2019, $iosar, 0);
+				$msg  = $xmpush->jpushiossend($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$vsta = $this->getVala($alias2019, $iosar);
+				foreach($vsta as $v)$puarr[] = $v;
+			}
+		}
+		
+		if($getuiand){
+			if($getui->isandroid()){
+				$vstr = $this->getVal($alias2019, $getuiand, 3);
+				$msg  = $getui->push($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$vsta = $this->getVala($alias2019, $getuiand);
+				foreach($vsta as $v)$puarr[] = $v;
+			}
+		}
+		
+		if($getuiios){
+			if($getui->isios()){
+				$vstr = $this->getVal($alias2019, $getuiios, 3);
+				$msg  = $getui->push($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$vsta = $this->getVala($alias2019, $getuiios);
+				foreach($vsta as $v)$puarr[] = $v;
+			}
+		}
+		
+		if($mybyarr){
+			if($getui->sendbool()){
+				$vstr = $this->getVal($alias2019, $mybyarr, 3);
+				$msg  = $getui->push($vstr, $title, $desc);
+				if($msg)$mymsg.=chr(10).$msg;
+			}else{
+				$msg  = '自己编译未配置推送';
+				$mymsg.=chr(10).$msg;
+			}
+		}
+		
+		if($mymsg)$this->rock->debugs($mymsg, 'mypush');
+	
+		
+		//需要官网隧道
+		if($puarr){
+			$xharr['alias2019']	= join(',', $puarr);
 			$runurl = c('xinhu')->geturlstr('jpushplat', $xharr);
 			$runurl = c('xinhu')->geturlstr('jpushplat', $xharr);
 			c('curl')->getcurl($runurl);
 			c('curl')->getcurl($runurl);
 		}
 		}
 	}
 	}
+	
+	
+	private function getVal($alias2019, $new, $oi)
+	{
+		$stv = array();
+		foreach($new as $j){
+			$stra = explode('|', $alias2019[$j]);
+			if(isset($stra[$oi]))$stv[]= $stra[$oi];
+		}
+		return $stv;
+	}
+
+	private function getVala($alias2019, $new)
+	{
+		$stv = array();
+		foreach($new as $j){
+			$stv[] = $alias2019[$j];
+		}
+		return $stv;
+	}
 }
 }

+ 4 - 0
include/chajian/curlChajian.php

@@ -75,6 +75,8 @@ class curlChajian extends Chajian{
 		curl_setopt($ch, CURLOPT_URL, $url);
 		curl_setopt($ch, CURLOPT_URL, $url);
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 		curl_setopt($ch, CURLOPT_HEADER, 0);
 		curl_setopt($ch, CURLOPT_HEADER, 0);
+		if($this->rock->HTTPweb)curl_setopt($ch, CURLOPT_USERAGENT, $this->rock->HTTPweb);
+		if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
 		if($ishttps==1){
 		if($ishttps==1){
 			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 		}
 		}
@@ -105,12 +107,14 @@ class curlChajian extends Chajian{
 		curl_setopt($ch, CURLOPT_URL, $url);
 		curl_setopt($ch, CURLOPT_URL, $url);
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
 		curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header
 		curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header
+		if($this->rock->HTTPweb)curl_setopt($ch, CURLOPT_USERAGENT, $this->rock->HTTPweb);
 		curl_setopt($ch, CURLOPT_POST, 1);
 		curl_setopt($ch, CURLOPT_POST, 1);
 		@curl_setopt($ch, CURLOPT_POSTFIELDS, $cont);
 		@curl_setopt($ch, CURLOPT_POSTFIELDS, $cont);
 		if($ishttps==1){
 		if($ishttps==1){
 			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 			//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  false);
 			//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  false);
 		}
 		}
+		if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
 		//设置head
 		//设置head
 		if($headarr){
 		if($headarr){
 			$heads = array();
 			$heads = array();

+ 141 - 0
include/chajian/getuiChajian.php

@@ -0,0 +1,141 @@
+<?php 
+/**
+*	个推2023-07-06
+*/
+class getuiChajian extends Chajian{
+	
+	private $appid 	 		= '';
+	private $appkey 		= '';
+	private $mastersecret 	= '';
+	private $apptype 		= '0'; //0所有平台,1仅安卓,2仅苹果
+	
+
+    private $pushurl 	= 'https://restapi.getui.com/v2/{appid}';
+
+	protected function initChajian()
+	{
+		$this->appid 		= getconfig('getui_appid');
+		$this->appkey 		= getconfig('getui_appkey');
+		$this->mastersecret = getconfig('getui_mastersecret');
+		$this->apptype 		= getconfig('getui_apptype','0');
+	}
+	
+	/**
+	*	获取token
+	*/
+	public function gettoken(){
+		$url 	= str_replace('{appid}',$this->appid, $this->pushurl).'/auth';
+		$token 	= c('cache')->get('getui'.$this->appid.'');
+		if(isempt($token)){
+			$timestamp 	=   ''.time().'000';
+			$sign		= hash("sha256", $this->appkey.$timestamp.$this->mastersecret);
+			$result 	= c('curl')->postcurl($url, json_encode(array( 
+				"sign" 		=> $sign,
+				"timestamp" => $timestamp,
+				"appkey" 	=> $this->appkey, 
+			)),0, array(
+				'content-type' => 'application/json;charset=utf-8'
+			));
+			if($result){
+				$barr 	= json_decode($result, true);
+				if($barr['code']==0){
+					$token 			= $barr['data']['token'];
+					$expire_time 	= $barr['data']['expire_time'];
+					c('cache')->set('getui'.$this->appid.'',$token, $expire_time * 0.001 - time());
+				}else{
+					echo $result;
+				}
+			}
+		}
+		return $token;
+    }
+	
+	/**
+	*	判断是否可以发送
+	*/
+	public function sendbool()
+	{
+		if(!$this->appid || !$this->appkey || !$this->mastersecret)return false;
+		return true;
+	}
+	
+	/**
+	*	是否安卓的
+	*/
+	public function isandroid()
+	{
+		if(!$this->sendbool())return false;
+		if($this->apptype=='2')return false;
+		return true;
+	}
+	
+	/**
+	*	是否安卓的
+	*/
+	public function isios()
+	{
+		if(!$this->sendbool())return false;
+		if($this->apptype=='1')return false;
+		return true;
+	}
+	
+	/**
+	*	推送
+	*/
+	public function push($cid, $title, $cont)
+	{
+		if(!$this->sendbool())return 'params empty';
+		$url 	= str_replace('{appid}',$this->appid, $this->pushurl).'/push/single/batch/cid';
+		$token  = $this->gettoken();
+		if(is_string($cid))$cid  = explode(',', $cid);
+		
+		$msg_list = array();
+		
+		foreach($cid as $_cid){
+			$parr = array();
+			$parr['request_id']  = 'a'.time().rand(1000,9999).'';
+			//$parr['settings'] 	 = array('ttl' => '-1');
+			$parr['audience']['cid'] = array($_cid);
+			$parr['push_message']['notification'] = array(
+				'title' => $title,
+				'body' => $cont,
+				'click_type' => 'startapp',
+			);
+			//离线厂商推送的
+			$parr['push_channel']['ios'] = array(
+				'type' 	  => 'notify',
+				'payload' => 'notify',
+				'aps' 	  => array(
+					'alert' => array(
+						'title' => $title,
+						'body' => $cont,
+					),
+					'sound'=>'default',
+				),
+				'auto_badge' => '1'
+			);
+			
+			$parr['push_channel']['android'] = array(
+				'ups' => array(
+					'notification' => array(
+						'title' => $title,
+						'body' => $cont,
+						'click_type' => 'startapp',
+						'notify_id' => rand(100,99999),
+					)
+				)
+			);
+			$msg_list[] = $parr;
+		}
+		$toboay  	= array(
+			'is_async' => false,
+			'msg_list' => $msg_list
+		);
+		$result 	= c('curl')->postcurl($url, json_encode($toboay),0, array(
+			'content-type' => 'application/json;charset=utf-8',
+			'token' => $token,
+		));
+		return $result;
+	}
+	
+}

+ 6 - 0
include/chajian/xmpushChajian.php

@@ -37,6 +37,12 @@ class xmpushChajian extends Chajian{
 		if($this->android_secret=='')return false;
 		if($this->android_secret=='')return false;
 		return true;
 		return true;
 	}
 	}
+	
+	public function setsecret($secret, $package)
+	{
+		$this->android_secret 	= $secret;
+		$this->android_package 	= $package;
+	}
 
 
 	/**
 	/**
 	*	安卓推送通知
 	*	安卓推送通知

+ 3 - 1
js/dingwei.js

@@ -72,7 +72,7 @@ js.dw = {
 			this.wait('原生app定位中...');
 			this.wait('原生app定位中...');
 			return;
 			return;
 		}
 		}
-		if(api.startLocation){
+		if(window['api'] && api.startLocation){
 			js.msg();
 			js.msg();
 			if(api.systemType=='ios'){
 			if(api.systemType=='ios'){
 				this.wait(''+api.systemType+'APP定位中...');
 				this.wait(''+api.systemType+'APP定位中...');
@@ -103,7 +103,9 @@ js.dw = {
 								dtes.latitude = ret.location.latitude;
 								dtes.latitude = ret.location.latitude;
 							}
 							}
 							js.dw.baiduLocationSuc(dtes,err);
 							js.dw.baiduLocationSuc(dtes,err);
+							js.dw.bmLocation.stopLocation();
 						});
 						});
+						
 					}
 					}
 				}
 				}
 				return;
 				return;

+ 7 - 2
js/js.js

@@ -1178,8 +1178,13 @@ js.appwin=function(na,dz){
 	if(dz.substr(0,4)!='http')dz=NOWURL+dz;
 	if(dz.substr(0,4)!='http')dz=NOWURL+dz;
 	var jg  = (dz.indexOf('?')==-1)?'?':'&';
 	var jg  = (dz.indexOf('?')==-1)?'?':'&';
 	if(!na)na='&nbsp;';
 	if(!na)na='&nbsp;';
-	var bstr=jm.base64encode('{"name":"'+na+'","url":"openurl","dizhi":"'+dz+''+jg+'hideheader=true"}');
-	var url = ''+ourl+'?bstr='+bstr+'';
+	var dizhi 	= ''+dz+''+jg+'hideheader=true';
+	if(apicloud && api.openWindcloud){
+		api.openWindcloud({name:na,url:dz})
+		return true;
+	}
+	var bstr	=jm.base64encode('{"name":"'+na+'","url":"openurl","dizhi":"'+dizhi+'"}');
+	var url 	= ''+ourl+'?bstr='+bstr+'';
 	return this.apiopenWin(url);	
 	return this.apiopenWin(url);	
 }
 }
 js.sendevent=function(typ,na,d){
 js.sendevent=function(typ,na,d){

+ 62 - 4
js/jswx.js

@@ -179,11 +179,13 @@ js.showmenu=function(d){
 	if(!a)return;
 	if(!a)return;
 	var h1=$(window).height(),h2=document.body.scrollHeight,s1;
 	var h1=$(window).height(),h2=document.body.scrollHeight,s1;
 	if(h2>h1)h1=h2;
 	if(h2>h1)h1=h2;
-	var col='';
-	var s='<div onclick="$(this).remove();" align="center" id="menulistshow" style="background:rgba(0,0,0,0.6);height:'+h1+'px;width:100%;position:absolute;left:0px;top:0px;z-index:198" >';
-	s+='<div id="menulistshow_s" style="width:'+d.width+'px;margin-top:'+d.top+';position:fixed;-webkit-overflow-scrolling:touch" class="menulist r-border-r r-border-l">';
+	var col='',oix;
+	var s='<div align="center" id="menulistshow" style="background:rgba(0,0,0,0.6);height:'+h1+'px;width:100%;position:absolute;left:0px;top:0px;z-index:198;" >';
+	s+='<div id="menulistshow_s" style="width:'+d.width+'px;margin-top:'+d.top+';position:fixed;-webkit-overflow-scrolling:touch;" class="menulist">';
 	for(var i=0;i<a.length;i++){
 	for(var i=0;i<a.length;i++){
-		s+='<div oi="'+i+'" style="text-align:'+d.align+';color:'+a[i].color+'" class="r-border-t">';
+		oix = '0';
+		if(i>0)oix='0.5';
+		s+='<div oi="'+i+'" style="text-align:'+d.align+';color:'+a[i].color+';border-top:'+oix+'px solid #dddddd">';
 		s1=d.renderer(a[i]);
 		s1=d.renderer(a[i]);
 		if(s1){s+=s1}else{s+=''+a[i].name+'';}
 		if(s1){s+=s1}else{s+=''+a[i].name+'';}
 		s+='</div>';
 		s+='</div>';
@@ -307,4 +309,60 @@ js.jssdkwxgzh = function(qxlist,afe){
 			js.jssdkstate = 2;
 			js.jssdkstate = 2;
 		});
 		});
 	});
 	});
+}
+
+//长按处理
+function touchclass(cans){
+	var me = this;
+	this.onlongclick = function(){}
+	this.onclick	 = function(){}
+	this.onlongmenu	 = function(){}
+	this.initbool 	 = false;
+	this.islongbool	 = false;
+	
+	for(var i in cans)this[i]=cans[i];
+	this.touchstart=function(o1,evt){
+		touchnowobj 	= this;
+		this.islongbool = false;
+		if(!this.initbool){
+			o1.addEventListener('click', function(){
+				me._onclick(this, event);
+			}, false);
+		}
+		this.obj = o1;
+		this.initbool	= true;
+		clearTimeout(this.touchtime);
+		this.touchtime  = setTimeout('touchnowobj=false',1000);
+		return true;
+	}
+	this._onclick=function(o1, evt){
+		if(!this.islongbool)this.onclick(o1, evt);
+	}
+	this.touchstring=function(){
+		var rnd = 'a'+js.getrand();
+		touchnowoba[rnd] = this;
+		var str = ' ontouchstart="return touchnowoba.'+rnd+'.touchstart(this,event)"';
+		return str;
+	}
+	this.reglongmenu=function(){
+		touchnowobj		= false;
+		touchnowoba		= {};
+		document.addEventListener('touchstart', function(){
+			clearTimeout(me.longtapv);
+			me.longtapv = setTimeout(function(){me.longmenu();},300);
+		}, false);
+		document.addEventListener('touchmove', function(){
+			clearTimeout(me.longtapv);
+		}, false);
+		document.addEventListener('touchend', function(){
+			clearTimeout(me.longtapv);
+		}, false);
+	}
+	this.longmenu	 = function(){
+		setTimeout('touchnowobj=false',200);
+		if(!touchnowobj)return;
+		touchnowobj.islongbool = true;
+		touchnowobj.onlongclick();
+		this.onlongmenu();
+	}
 }
 }

+ 26 - 5
js/reim_xina.js

@@ -27,6 +27,8 @@ var reim={
 		nwjs.serverdata=function(d){
 		nwjs.serverdata=function(d){
 			return reim.serverdata(d);
 			return reim.serverdata(d);
 		}
 		}
+		//var sw = js.getoption('setchatlistw');
+		//if(sw)$('#centlist').css('width',''+sw+'px');
 		
 		
 		$(window).resize(this.resize);
 		$(window).resize(this.resize);
 		$(window).focus(function(){windowfocus=true;im.windowfocus()});
 		$(window).focus(function(){windowfocus=true;im.windowfocus()});
@@ -625,7 +627,8 @@ var reim={
 		if(isempt(did) || (lx && lx=='user'))return s;
 		if(isempt(did) || (lx && lx=='user'))return s;
 		if(did=='1')s=' <span class="reimlabel">全员</span>';
 		if(did=='1')s=' <span class="reimlabel">全员</span>';
 		if(did=='-1')s=' <span class="reimlabel2">外部</span>';
 		if(did=='-1')s=' <span class="reimlabel2">外部</span>';
-		if(did=='-2')s=' <span class="reimlabel3">咨询</span>';
+		//if(did=='-2')s=' <span class="reimlabel3">咨询</span>';
+		if(did=='-2')s=' <span style="font-size:10px;color:#aaaaaa"><i class="icon-headphones"></i></span>';
 		if(did>1)s=' <span class="reimlabel1">部门</span>';
 		if(did>1)s=' <span class="reimlabel1">部门</span>';
 		return s;
 		return s;
 	},
 	},
@@ -643,17 +646,22 @@ var reim={
 		var cls = lex ? ' active' : '';
 		var cls = lex ? ' active' : '';
 		var na  = d.name;
 		var na  = d.name;
 		if(d.title)na = d.title;
 		if(d.title)na = d.title;
+		var tit = ''+na+'';
 		if(d.type=='group'){
 		if(d.type=='group'){
 			var d2 = grouparr[d.receid];
 			var d2 = grouparr[d.receid];
 			if(d2)d.deptid = d2.deptid;
 			if(d2)d.deptid = d2.deptid;
 		}
 		}
 		if(!nas)nas='';
 		if(!nas)nas='';
 		if(!qz)qz='chat';
 		if(!qz)qz='chat';
+		if(d.subname){
+			nas+='<span style="color:'+maincolor+';font-size:10px">@'+d.subname+'</span>';
+			tit+='@'+d.subname+'';
+		}
 		var s1 = this.grouptype(d.deptid,d.type);
 		var s1 = this.grouptype(d.deptid,d.type);
 		s	= '<div class="lists'+cls+'" rtype="hist" oncontextmenu="reim.historyright(this,event,\''+num+'\')" tsaid="'+d.receid+'" tsaype="'+d.type+'"  temp="hist" id="history_'+num+'" onclick="reim.openchat(\''+ty+'\',\''+d.receid+'\',\''+d.name+'\',\''+d.face+'\')">';
 		s	= '<div class="lists'+cls+'" rtype="hist" oncontextmenu="reim.historyright(this,event,\''+num+'\')" tsaid="'+d.receid+'" tsaype="'+d.type+'"  temp="hist" id="history_'+num+'" onclick="reim.openchat(\''+ty+'\',\''+d.receid+'\',\''+d.name+'\',\''+d.face+'\')">';
 		s+='<table cellpadding="0" border="0" width="100%"><tr>';
 		s+='<table cellpadding="0" border="0" width="100%"><tr>';
 		s+='<td style="padding-right:8px"><div style="height:30px;overflow:hidden"><img src="'+d.face+'"></div></td>';
 		s+='<td style="padding-right:8px"><div style="height:30px;overflow:hidden"><img src="'+d.face+'"></div></td>';
-		s+='<td align="left" width="100%"><div title="'+na+'" id="lname_'+num+'" class="name">'+na+''+nas+''+s1+'</div><div class="huicont">'+jm.base64decode(d.cont)+'</div></td>';
+		s+='<td align="left" width="100%"><div title="'+tit+'" id="lname_'+num+'" class="name">'+na+''+nas+''+s1+'</div><div class="huicont">'+jm.base64decode(d.cont)+'</div></td>';
 		s+='<td align="right" nowrap><span id="'+qz+'_stotal_'+num+'" class="badge red">'+st+'</span><br><span style="color:#aaaaaa;font-size:10px">'+ops+'</span></td>';
 		s+='<td align="right" nowrap><span id="'+qz+'_stotal_'+num+'" class="badge red">'+st+'</span><br><span style="color:#aaaaaa;font-size:10px">'+ops+'</span></td>';
 		s+='</tr></table>';
 		s+='</tr></table>';
 		s+='</div>';
 		s+='</div>';
@@ -912,7 +920,7 @@ var reim={
 			msg = nr;
 			msg = nr;
 		}
 		}
 		if(lx == 'zixun'){
 		if(lx == 'zixun'){
-			title = '咨询消息';
+			title = d.title;
 			msg = nr;
 			msg = nr;
 		}
 		}
 		var cans = {
 		var cans = {
@@ -1204,6 +1212,10 @@ var reim={
 		notifyobj.sound = src;
 		notifyobj.sound = src;
 		notifyobj.playsound();
 		notifyobj.playsound();
 	},
 	},
+	setchatlistw:function(kg){
+		$('#centlist').css('width',''+kg+'px');
+		js.setoption('setchatlistw', ''+kg+'');
+	},
 	cogshow:function(){
 	cogshow:function(){
 		var chs= (this.getsound())?'checked':'';
 		var chs= (this.getsound())?'checked':'';
 		var ch1= (this.getzhuom())?'checked':'';
 		var ch1= (this.getzhuom())?'checked':'';
@@ -1220,6 +1232,8 @@ var reim={
 			ch1='checked';chs='';
 			ch1='checked';chs='';
 		}			
 		}			
 		s+='	<div style="padding:10px 0px;border-top:1px #eeeeee solid">发送快捷键:<label><input onclick="reim.setsendkkj(0)" '+chs+' type="radio" name="sendkuijie">Enter</label>&nbsp; <label><input onclick="reim.setsendkkj(1)" '+ch1+' type="radio" name="sendkuijie">Ctrl+Enter</label></div>';
 		s+='	<div style="padding:10px 0px;border-top:1px #eeeeee solid">发送快捷键:<label><input onclick="reim.setsendkkj(0)" '+chs+' type="radio" name="sendkuijie">Enter</label>&nbsp; <label><input onclick="reim.setsendkkj(1)" '+ch1+' type="radio" name="sendkuijie">Ctrl+Enter</label></div>';
+		
+		//s+='	<div style="padding:10px 0px;border-top:1px #eeeeee solid">列表列宽:<label><input onclick="reim.setchatlistw(220)" checked type="radio" name="chatlistw">正常</label>&nbsp; <label><input onclick="reim.setchatlistw(230)" type="radio" name="chatlistw">宽点</label>&nbsp; <label><input onclick="reim.setchatlistw(250)" type="radio" name="chatlistw">大宽</label></div>';
 
 
 		if(nwjsgui){
 		if(nwjsgui){
 			var ips = nwjs.getipmac();
 			var ips = nwjs.getipmac();
@@ -1280,7 +1294,7 @@ function chatcreate(cans){
 		this.soulx	  = '';
 		this.soulx	  = '';
 		this.soukey	  = '';
 		this.soukey	  = '';
 		this.objstr	  = 'reim.chatobj[\''+this.num+'\']';
 		this.objstr	  = 'reim.chatobj[\''+this.num+'\']';
-		var nstr	  = js.getoption('receinfo_'+this.num+'');  
+		var nstr	  = js.getoption('receinfo_'+this.num+'');
 		if(nstr)this.setreceinfor(js.decode(nstr));
 		if(nstr)this.setreceinfor(js.decode(nstr));
 		this.sendbtn.click(function(){
 		this.sendbtn.click(function(){
 			me.sendcont();
 			me.sendcont();
@@ -1331,6 +1345,7 @@ function chatcreate(cans){
 		s+='<td height="50" width="100%">';
 		s+='<td height="50" width="100%">';
 		s+='	<div temp="usname_'+this.num+'"><b style="font-size:16px;">'+this.name+'</b>';
 		s+='	<div temp="usname_'+this.num+'"><b style="font-size:16px;">'+this.name+'</b>';
 		if((this.type=='group' || this.type=='gout') && this.usershu)s+='('+this.usershu+')';
 		if((this.type=='group' || this.type=='gout') && this.usershu)s+='('+this.usershu+')';
+		if(od.subname)s+='<span style="color:'+maincolor+';font-size:10px">@'+od.subname+'</span>';
 		s+=reim.grouptype(od.deptid,this.type);
 		s+=reim.grouptype(od.deptid,this.type);
 		if(od.ranking)s+=' <span style="font-size:12px;color:#aaaaaa">('+od.ranking+')</span>';
 		if(od.ranking)s+=' <span style="font-size:12px;color:#aaaaaa">('+od.ranking+')</span>';
 		if(this.type=='user')s+=reim.getonlinestr(this.gid);
 		if(this.type=='user')s+=reim.getonlinestr(this.gid);
@@ -1346,6 +1361,7 @@ function chatcreate(cans){
 		}
 		}
 		if(this.type=='zixun'){
 		if(this.type=='zixun'){
 			s+='<td title="转给其他客服" id="sharebtn_'+this.num+'" class="chattitbtn" nowrap><div style="width:30px"><i class="icon-share-alt"></i></div></td>';
 			s+='<td title="转给其他客服" id="sharebtn_'+this.num+'" class="chattitbtn" nowrap><div style="width:30px"><i class="icon-share-alt"></i></div></td>';
+			s+='<td title="加更多客服" id="addkfbtn_'+this.num+'" class="chattitbtn" nowrap><div style="width:30px"><i class="icon-plus"></i></div></td>';
 			s+='<td title="咨询人员信息" id="zixunbtn_'+this.num+'" class="chattitbtn" nowrap><div style="width:30px"><i class="icon-user"></i></div></td>';
 			s+='<td title="咨询人员信息" id="zixunbtn_'+this.num+'" class="chattitbtn" nowrap><div style="width:30px"><i class="icon-user"></i></div></td>';
 		}
 		}
 		s+='</tr></table>';
 		s+='</tr></table>';
@@ -1363,7 +1379,10 @@ function chatcreate(cans){
 			reim.kefu.showuser(me.gid);
 			reim.kefu.showuser(me.gid);
 		});
 		});
 		$('#sharebtn_'+this.num+'').click(function(){
 		$('#sharebtn_'+this.num+'').click(function(){
-			reim.kefu.shareuser(me.gid);
+			reim.kefu.shareuser(me.gid,0);
+		});
+		$('#addkfbtn_'+this.num+'').click(function(){
+			reim.kefu.shareuser(me.gid,1);
 		});
 		});
 	};
 	};
 	this.getapiurl=function(m1,a1){
 	this.getapiurl=function(m1,a1){
@@ -1496,6 +1515,7 @@ function chatcreate(cans){
 			s+='</div>';
 			s+='</div>';
 			if(!isbf)this.addcont(s);
 			if(!isbf)this.addcont(s);
 		}
 		}
+		if(ret.showmsg)this.addmsg(ret.showmsg);
 		if(seseid>0)this.showobj.scrollTop(seseid);
 		if(seseid>0)this.showobj.scrollTop(seseid);
 	};
 	};
 	this.isscrollbottom=function(){
 	this.isscrollbottom=function(){
@@ -1739,6 +1759,7 @@ function chatcreate(cans){
 		reim.showhistorys({
 		reim.showhistorys({
 			'cont' : s1+d.cont,
 			'cont' : s1+d.cont,
 			'name' : this.receinfo.name,
 			'name' : this.receinfo.name,
+			'subname' : this.receinfo.subname,
 			'face' : this.receinfo.face,
 			'face' : this.receinfo.face,
 			'optdt' : d.optdt,
 			'optdt' : d.optdt,
 			'type'	: this.type,
 			'type'	: this.type,

+ 21 - 1
web/res/js/jquery-changeuser.js

@@ -456,6 +456,7 @@
 		var me		= this;
 		var me		= this;
 		this.rand	= rand;
 		this.rand	= rand;
 		this.ismobile = false;
 		this.ismobile = false;
+		this.page 	  = 1;
 		this.selvalue = '';
 		this.selvalue = '';
 		
 		
 		this._init	= function(){
 		this._init	= function(){
@@ -544,21 +545,32 @@
 		};
 		};
 		this.showdata=function(a,inb){
 		this.showdata=function(a,inb){
 			if(!a)a=[];
 			if(!a)a=[];
+			var ret= a;
 			this.showselectdata(a.selectdata);
 			this.showselectdata(a.selectdata);
 			var len = 0;
 			var len = 0;
 			if(a.totalCount)len=a.totalCount;
 			if(a.totalCount)len=a.totalCount;
 			if(a.rows)a = a.rows;
 			if(a.rows)a = a.rows;
 			if(len==0)len=a.length;
 			if(len==0)len=a.length;
-			var s='',s1='';
+			var s='',s1='',npid='nextpage_'+this.rand+'';
 			if(len==0){
 			if(len==0){
 				s='<div align="center" style="margin-top:30px;color:#cccccc;font-size:16px">无记录</div>';
 				s='<div align="center" style="margin-top:30px;color:#cccccc;font-size:16px">无记录</div>';
 			}else{
 			}else{
 				s = this.showhtml(a);
 				s = this.showhtml(a);
 				s1='共'+len+'条';
 				s1='共'+len+'条';
+				if(ret.page && ret.limit){
+					var max = Math.ceil(len/ret.limit);
+					s1+=' ';
+					if(ret.page>1)s1+='<a id="'+npid+'1" class="zhu" href="javascript:;">上页</a>';
+					s1+='('+ret.page+'/'+max+')';
+					if(max>ret.page)s1+='<a id="'+npid+'" class="zhu" href="javascript:;">下页</a>';
+					this.searchajax = true;
+				}
 			}
 			}
 			this._getobj('count').html(s1);
 			this._getobj('count').html(s1);
 			var o = $('#selectlist_'+rand+'');
 			var o = $('#selectlist_'+rand+'');
 			o.html(s);
 			o.html(s);
+			$('#'+npid+'').click(function(){me.nextpage(1);});
+			$('#'+npid+'1').click(function(){me.nextpage(-1);});
 			if(!inb && len==0)this.loaddata();
 			if(!inb && len==0)this.loaddata();
 		};
 		};
 		this.seldatsse=[];
 		this.seldatsse=[];
@@ -612,12 +624,19 @@
 			if(s)$('#selectlist_'+rand+'').append(s);
 			if(s)$('#selectlist_'+rand+'').append(s);
 		};
 		};
 		this.reload=function(){
 		this.reload=function(){
+			this.page = 1;
+			this.loaddata(this.selvalue);
+		};
+		this.nextpage=function(p){
+			this.page = this.page+p;
 			this.loaddata(this.selvalue);
 			this.loaddata(this.selvalue);
 		};
 		};
 		this.loaddata=function(svel){
 		this.loaddata=function(svel){
 			var url = this.url;
 			var url = this.url;
 			if(svel)url+='&selvalue='+svel+'';
 			if(svel)url+='&selvalue='+svel+'';
 			if(url=='')return;
 			if(url=='')return;
+			url+='&page='+this.page+'';
+			url+='&limit='+this.maxshow+'';
 			$('#selectlist_'+rand+'').html('<div align="center" style="margin-top:30px"><img src="images/mloading.gif"></div>');
 			$('#selectlist_'+rand+'').html('<div align="center" style="margin-top:30px"><img src="images/mloading.gif"></div>');
 			$.ajax({
 			$.ajax({
 				type:'get',dataType:'json',url:url,
 				type:'get',dataType:'json',url:url,
@@ -644,6 +663,7 @@
 		this._searchkey = function(bo){
 		this._searchkey = function(bo){
 			var key = $('#changekey_'+this.rand+'').val(),a=[],d=[],d1,len,i,oi=0,s;
 			var key = $('#changekey_'+this.rand+'').val(),a=[],d=[],d1,len,i,oi=0,s;
 			if(this.searchajax){
 			if(this.searchajax){
+				this.page = 1;
 				this.loaddata(''+this.selvalue+'&key='+jm.base64encode(key)+'');
 				this.loaddata(''+this.selvalue+'&key='+jm.base64encode(key)+'');
 				return;
 				return;
 			}
 			}

+ 3 - 1
webmain/css/rui.css

@@ -163,6 +163,8 @@ a:link,a:visited{TEXT-DECORATION:none;color:var(--main-color)}
 
 
 
 
 
 
-.menulist{background-color:white}
+.menulist{background-color:white;user-select:none;border-radius:10px}
 .menulist div{padding:12px 0px;font-size:16px;text-align:center}
 .menulist div{padding:12px 0px;font-size:16px;text-align:center}
+.menulist div:first-child{border-radius:10px 10px 0px 0px}
+.menulist div:last-child{border-radius:0px 0px 10px 10px}
 .menulist div:active{ background-color:#f1f1f1}
 .menulist div:active{ background-color:#f1f1f1}

+ 1 - 1
webmain/flow/input/inputjs/input.js

@@ -204,7 +204,7 @@ var c={
 					return false;
 					return false;
 				}
 				}
 				if(isempt(val)){
 				if(isempt(val)){
-					if(form(fid))form(fid).focus();
+					if(form(fid) && flx!='hidden')form(fid).focus();
 					this.showtx(''+nas+'不能为空');
 					this.showtx(''+nas+'不能为空');
 					return false;
 					return false;
 				}
 				}

+ 13 - 2
webmain/flow/input/mode_demoAction.php

@@ -46,12 +46,23 @@ class mode_demoClassAction extends inputAction{
 	//弹出下拉选择单选
 	//弹出下拉选择单选
 	public function tanxuan()
 	public function tanxuan()
 	{
 	{
-		for($i=1;$i<=1520;$i++)
+		$limit = (int)$this->get('limit', '10');
+		$page  = (int)$this->get('page', '1');
+		$totalCount = 1520;
+		$start = ($page-1)*$limit;
+		for($i=$start;$i<$start + $limit && $i<=$totalCount;$i++){
 			$rows[] = array(
 			$rows[] = array(
 				'name' => '第'.$i.'个数据',
 				'name' => '第'.$i.'个数据',
 				'value'=> ''.$i.''
 				'value'=> ''.$i.''
 			);
 			);
-		return $rows;
+		}
+		
+		return array(
+			'rows' => $rows,
+			'totalCount'=> $totalCount,
+			'limit' => $limit,
+			'page'  => $page,
+		);
 	}
 	}
 	
 	
 	//弹出下拉选择多选
 	//弹出下拉选择多选

+ 1 - 0
webmain/flow/page/rock_page_userinfo.php

@@ -31,6 +31,7 @@ if(atype=='all'){
 		});
 		});
 	}
 	}
 	c.bianjila=function(){
 	c.bianjila=function(){
+		if(ISDEMO){js.msg('msg','演示不要操作');return;}
 		var h = $.bootsform({
 		var h = $.bootsform({
 			title:'人员状态编辑',height:400,width:400,
 			title:'人员状态编辑',height:400,width:400,
 			tablename:bootparams.tablename,isedit:1,
 			tablename:bootparams.tablename,isedit:1,

+ 31 - 4
webmain/model/crmModel.php

@@ -9,19 +9,46 @@ class crmClassModel extends Model
 	//读取我的客户和共享给我的
 	//读取我的客户和共享给我的
 	public function getmycust($uid=0, $id=0)
 	public function getmycust($uid=0, $id=0)
 	{
 	{
+		$limit  = (int)$this->rock->get('limit', '10');
+		$page   = (int)$this->rock->get('page', '1');
+		$key    = $this->rock->get('key');
+		$where  = '';
+		if($key){
+			$key= $this->rock->jm->base64decode($key);
+			$where.= " and (`name` like '%$key%' or `unitname` like '%$key%')";
+		}
 		if(isempt($id))$id = 0;
 		if(isempt($id))$id = 0;
 		if($uid==0)$uid=$this->adminid;
 		if($uid==0)$uid=$this->adminid;
 		$s		= $this->rock->dbinstr('shateid', $uid);
 		$s		= $this->rock->dbinstr('shateid', $uid);
-		$rows 	= $this->getrows("`status`=1 and ((`uid`='$uid') or (`id`=$id) or (".$s."))",'id as value,name,id,unitname as subname','`optdt` desc');
-		return $rows;
+		$rows 	= $this->getrows("`status`=1 and ((`uid`='$uid') or (`id`=$id) or (".$s.")) $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(
+			'rows' 	=> $rows,
+			'totalCount' => $totalCount,
+			'limit' => $limit,
+			'page' 	=> $page,
+		);
 	}
 	}
 	
 	
 	//读取所有客户
 	//读取所有客户
 	public function custdata()
 	public function custdata()
 	{
 	{
+		$limit  = (int)$this->rock->get('limit', '10');
+		$page   = (int)$this->rock->get('page', '1');
+		$key    = $this->rock->get('key');
 		$where  = m('admin')->getcompanywhere(3);
 		$where  = m('admin')->getcompanywhere(3);
-		$rows 	= $this->getrows("`status`=1 ".$where."",'id as value,name,id,unitname as subname','`optdt` desc');
-		return $rows;
+		if($key){
+			$key= $this->rock->jm->base64decode($key);
+			$where.= " and (`name` like '%$key%' or `unitname` like '%$key%')";
+		}
+		$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(
+			'rows' 	=> $rows,
+			'totalCount' => $totalCount,
+			'limit' => $limit,
+			'page' 	=> $page,
+		);
 	}
 	}
 	
 	
 	
 	

+ 1 - 1
webmain/model/fileModel.php

@@ -108,7 +108,7 @@ class fileClassModel extends Model
 		if($this->isimg($ext))return true;
 		if($this->isimg($ext))return true;
 		if($this->isoffice($ext))return true;
 		if($this->isoffice($ext))return true;
 		if($this->isyulan($ext))return true;
 		if($this->isyulan($ext))return true;
-		return contain(',mp3,ogg,mp4,', ','.$ext.',');
+		return contain(',mp3,ogg,mp4,amr,', ','.$ext.',');
 	}
 	}
 	
 	
 	//获取缩略图的路径
 	//获取缩略图的路径

+ 20 - 4
webmain/model/goodsModel.php

@@ -95,6 +95,10 @@ class goodsClassModel extends Model
 	public function getgoodsdata($lx=0)
 	public function getgoodsdata($lx=0)
 	{
 	{
 		$typeid	= $this->rock->get('selvalue');
 		$typeid	= $this->rock->get('selvalue');
+		$limit  = (int)$this->rock->get('limit', '10');
+		$page   = (int)$this->rock->get('page', '1');
+		$key    = $this->rock->get('key');
+		
 		$where 	= '1=1';
 		$where 	= '1=1';
 		if(!isempt($typeid)){
 		if(!isempt($typeid)){
 			$alltpeid = m('option')->getalldownid($typeid);
 			$alltpeid = m('option')->getalldownid($typeid);
@@ -113,9 +117,17 @@ class goodsClassModel extends Model
 			}
 			}
 			$where.= ' and a.`id` in('.$aids.')';
 			$where.= ' and a.`id` in('.$aids.')';
 		}
 		}
+		
 		$where .= m('admin')->getcompanywhere(1,'a.');
 		$where .= m('admin')->getcompanywhere(1,'a.');
-		$rowss  = $this->db->getall('select a.`id`,a.`name`,a.`xinghao`,a.`guige`,a.`stock`,a.`price`,a.`unit`,b.`name` as `typename` from `[Q]goods` a left join `[Q]option` b on a.`typeid`=b.`id` where '.$where.'');
-		$rows	= array();
+		if($key){
+			$key= $this->rock->jm->base64decode($key);
+			$where.= " and (a.`name` like '%$key%' or a.`num` like '%$key%' or a.`xinghao` like '%$key%' or a.`guige` like '%$key%')";
+		}
+		
+		$rowss  	= $this->db->getall('select SQL_CALC_FOUND_ROWS  a.`id`,a.`name`,a.`xinghao`,a.`num`,a.`guige`,a.`stock`,a.`price`,a.`unit`,b.`name` as `typename` from `[Q]goods` a left join `[Q]option` b on a.`typeid`=b.`id` where '.$where.' limit '.(($page-1)*$limit).','.$limit.'');
+		$totalCount = $this->db->found_rows();
+		
+		$rows		= array();
 		foreach($rowss as $k=>$rs){
 		foreach($rowss as $k=>$rs){
 			$name 	= $rs['name'];
 			$name 	= $rs['name'];
 			if(!isempt($rs['xinghao']))$name.='('.$rs['xinghao'].')';
 			if(!isempt($rs['xinghao']))$name.='('.$rs['xinghao'].')';
@@ -126,10 +138,11 @@ class goodsClassModel extends Model
 			$baar	= array(
 			$baar	= array(
 				'name' 	=> $name,
 				'name' 	=> $name,
 				'value' => $rs['id'],
 				'value' => $rs['id'],
+				'num'   => $rs['num'],
 				'price' => $rs['price'],
 				'price' => $rs['price'],
 				'unit' => $rs['unit'],
 				'unit' => $rs['unit'],
 				'stock' => $stock,
 				'stock' => $stock,
-				'subname' => $rs['typename'],
+				'subname' => $rs['num'].' '.$rs['typename'],
 			);
 			);
 			if(($lx==1 || $lx==3) && $stock<='0'){
 			if(($lx==1 || $lx==3) && $stock<='0'){
 				$baar['disabled']= true;//领用没有库存了
 				$baar['disabled']= true;//领用没有库存了
@@ -141,7 +154,10 @@ class goodsClassModel extends Model
 		$selectdata = $this->getgoodstype(1);
 		$selectdata = $this->getgoodstype(1);
 		return array(
 		return array(
 			'rows' => $rows,
 			'rows' => $rows,
-			'selectdata'=>$selectdata
+			'selectdata'=>$selectdata,
+			'totalCount'=>$totalCount,
+			'page'	=> $page,
+			'limit'	=> $limit,
 		);
 		);
 	}
 	}
 	
 	

+ 1 - 1
webmain/model/loginModel.php

@@ -26,7 +26,7 @@ class loginClassModel extends Model
 		$yanzm = $this->rock->request('yanzm');//验证码
 		$yanzm = $this->rock->request('yanzm');//验证码
 		$ltype = (int)$this->rock->request('ltype',0);//登录类型,1是手机+验证码
 		$ltype = (int)$this->rock->request('ltype',0);//登录类型,1是手机+验证码
 		if(!isempt($yanzm) && strlen($yanzm)!=6)return '验证码必须是6位数字';
 		if(!isempt($yanzm) && strlen($yanzm)!=6)return '验证码必须是6位数字';
-		$cfroar= explode(',', 'pc,reim,weixin,appandroid,mweb,webapp,nppandroid,nppios');
+		$cfroar= explode(',', 'pc,reim,weixin,appandroid,mweb,webapp,nppandroid,nppios,nppiosnew');
 		if(!in_array($cfrom, $cfroar))return 'not found cfrom['.$cfrom.']';
 		if(!in_array($cfrom, $cfroar))return 'not found cfrom['.$cfrom.']';
 		if($user=='')return '用户名不能为空';
 		if($user=='')return '用户名不能为空';
 		if($pass==''&&strlen($token)<8 && $ltype==0)return '密码不能为空';
 		if($pass==''&&strlen($token)<8 && $ltype==0)return '密码不能为空';

+ 13 - 18
webmain/model/reimModel.php

@@ -1061,34 +1061,29 @@ class reimClassModel extends Model
 			}
 			}
 		}
 		}
 		$uwhere = "$where `status`=1";
 		$uwhere = "$where `status`=1";
-		$rows 	= m('logintoken')->getrows("`uid` in(select id from `[Q]admin` where $uwhere) and `cfrom` in ('appandroid','nppandroid','nppios') and `online`=1",'*','id desc');
-		$alias 	= $uida = $xmalias = $oldalias = $pushuids = $newalias = $alias2019 = $uid2019  =array();
+		$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();
 		$uids	= '0';
 		$uids	= '0';
 		$times  = date('Y-m-d H:i:s', time()-5*60);//5分钟
 		$times  = date('Y-m-d H:i:s', time()-5*60);//5分钟
 		foreach($rows as $k=>$rs){
 		foreach($rows as $k=>$rs){
 			$_uid 	 = $rs['uid'];
 			$_uid 	 = $rs['uid'];
 			$_web 	 = $rs['web'];
 			$_web 	 = $rs['web'];
-			//if(in_array($_uid, $uida))continue;
 			$uida[]  = $_uid;
 			$uida[]  = $_uid;
 			$uids	.= ','.$_uid.'';
 			$uids	.= ','.$_uid.'';
-			if($_web=='xiaomi'){
-				$xmalias[] = $rs['token'];
-			}else if(in_array($rs['cfrom'], array('nppandroid','nppios'))){//2019-11-25最新新app
-				$nestr = ''.$rs['token'].'|'.$rs['web'].'|'.$_uid.'|';
-				if(contain($rs['web'],'huawei') && !contain($rs['ip'],'.'))$nestr.=''.$rs['ip'].'';
-				if(contain($rs['web'],'xiaomi'))$nestr.=''.$rs['pushtoken'].'';
-				$alias2019[] = $nestr;
-				$uid2019[]   = $_uid;
-			}else if(substr($_web,0,4)=='app_'){
-				$newalias[] = $rs['token'];	
-			}else if(substr($_web,0,4)=='apk_'){
-				$oldalias[] = $rs['token'];	
-			}else{
-				$alias[] 	= $rs['token'];
+			
+			$nestr  = ''.$rs['token'].'|'.$_web.'|'.$_uid.'|';
+			if(contain($_web,'getui')){
+				$nestr.=''.$rs['pushtoken'].''; //个推
+			}else if(contain($_web,'huawei') && !contain($rs['ip'],'.')){
+				$nestr.=''.$rs['ip'].'';
+			}else if(contain($_web,'xiaomi')){
+				$nestr.=''.$rs['pushtoken'].'';
 			}
 			}
+			$alias2019[] = $nestr;
+			if(!in_array($_uid, $uid2019))$uid2019[] = $_uid;
 			if($rs['ispush']=='1')$pushuids[] = $_uid;//可以手机推送的用户
 			if($rs['ispush']=='1')$pushuids[] = $_uid;//可以手机推送的用户
 		}
 		}
-		return array('alias' => $alias, 'uids'=>$uids, 'xmalias'=>$xmalias, 'oldalias'=>$oldalias, 'newalias'=>$newalias,'alias2019'=>$alias2019,'uid2019'=>$uid2019,'pushuids'=>$pushuids);
+		return array('uids'=>$uids,'alias2019'=>$alias2019,'uid2019'=>$uid2019,'pushuids'=>$pushuids);
 	}
 	}
 	
 	
 	/**
 	/**

+ 9 - 0
webmain/public/tpl_public_fileedit.html

@@ -25,6 +25,15 @@ function initbody(){
 				var da = ret.data;
 				var da = ret.data;
 				$('#msgview').html('跳转中...');
 				$('#msgview').html('跳转中...');
 				sessionStorage.setItem(kei,'trueabc');
 				sessionStorage.setItem(kei,'trueabc');
+				if(apicloud && api.x5Ver && api.x5Ver>0){
+					api.rockFun('openWinnei',{
+						url:da.url,
+						progress:'true',
+						animtype:'show'
+					});
+					api.closeWin({animtype:'hide'});
+					return;
+				}
 				js.location(da.url);
 				js.location(da.url);
 			}else{
 			}else{
 				$('#msgview').html('<font color=red>'+ret.msg+'</font>');
 				$('#msgview').html('<font color=red>'+ret.msg+'</font>');

+ 21 - 0
webmain/public/tpl_public_fileviewer.html

@@ -30,6 +30,27 @@
 	<script>
 	<script>
 	DEFAULT_URL = jm.base64decode('<?=$da['filepath']?>');
 	DEFAULT_URL = jm.base64decode('<?=$da['filepath']?>');
 	
 	
+	
+	var openbool = false;
+	var url = location.href
+	var lse = url.lastIndexOf('/');
+	NOWURL  = url.substr(0, lse+1);
+	apiready=function(){
+		if(openbool || !api.rockFun)return;
+		var x5ver = api.x5Ver;
+		if(x5ver && x5ver>0){
+			var pdfurl = NOWURL+DEFAULT_URL;
+			api.rockFun('openPdf', {
+				fileurl:pdfurl,
+				filename:'<?=$da['filename']?>',
+				animtype:'show',
+				opentyle:'x5'
+			});
+			api.closeWin({animtype:'hide'});
+		}
+		openbool = true;
+	}
+	
 	/*
 	/*
 	const hammertime = new Hammer(document);
 	const hammertime = new Hammer(document);
 	hammertime.get('pinch').set({ enable: true });
 	hammertime.get('pinch').set({ enable: true });

+ 1 - 1
webmain/reim/index/tpl_index_xina.html

@@ -122,7 +122,7 @@ function winfocus(){
 			<?php if(getconfig('rockkefu_url')){?>
 			<?php if(getconfig('rockkefu_url')){?>
 			<div id="centshow3" style="display:none">
 			<div id="centshow3" style="display:none">
 				<div id="kefulistwait"></div>
 				<div id="kefulistwait"></div>
-				<div id="kefulist_tems" style="padding-top:150px;text-align:center;color:#dddddd">
+				<div id="kefulist_tems_wu" style="padding-top:150px;text-align:center;color:#dddddd;display:none">
 				<span style="font-size:40px"><i class="icon-headphones"></i></span><br>暂无咨询消息
 				<span style="font-size:40px"><i class="icon-headphones"></i></span><br>暂无咨询消息
 				</div>
 				</div>
 			</div>
 			</div>

+ 2 - 0
webmain/task/api/indexAction.php

@@ -123,12 +123,14 @@ class indexClassAction extends apiAction
 		$hwtoken 	= $this->get('hwtoken');
 		$hwtoken 	= $this->get('hwtoken');
 		$pushtoken 	= $this->get('pushtoken');
 		$pushtoken 	= $this->get('pushtoken');
 		$appver 	= $this->get('appversion');
 		$appver 	= $this->get('appversion');
+		$web 		= $this->get('web');
 		$ispush  	= (int)$this->get('ispush','0');
 		$ispush  	= (int)$this->get('ispush','0');
 		if($appver)$pushtoken.='_'.$appver.'';
 		if($appver)$pushtoken.='_'.$appver.'';
 		$uarr['ispush'] 	= $ispush;
 		$uarr['ispush'] 	= $ispush;
 		$uarr['pushtoken'] 	= $pushtoken;
 		$uarr['pushtoken'] 	= $pushtoken;
 		$uarr['moddt'] 		= $this->now;
 		$uarr['moddt'] 		= $this->now;
 		if(!isempt($hwtoken))$uarr['ip'] = $hwtoken;
 		if(!isempt($hwtoken))$uarr['ip'] = $hwtoken;
+		if(!isempt($web))$uarr['web'] 	 = $web;
 		m('login')->update($uarr, "`token`='$this->admintoken'");
 		m('login')->update($uarr, "`token`='$this->admintoken'");
 		if($ispush==1)m('reim')->sendpush($this->adminid, 'all', array(
 		if($ispush==1)m('reim')->sendpush($this->adminid, 'all', array(
 			'type' => 'onoffline',
 			'type' => 'onoffline',

+ 3 - 1
webmain/we/flow/flowAction.php

@@ -22,7 +22,9 @@ class flowClassAction extends ActionNot{
 			}
 			}
 			$otyle = $rs['type'];
 			$otyle = $rs['type'];
 			$oi++;
 			$oi++;
-			$modearr[$rs['type']][]=array('modenum'=>$rs['num'],'url'=>'?a=lum&m=input&d=flow&num='.$rs['num'].'&show=we','name'=>$rs['name'],'title'=>''.$oi.'.'.$rs['name']);
+			if(!isset($modearr[$otyle]))$modearr[$otyle] = array();
+			$len = count($modearr[$otyle])+1;
+			$modearr[$otyle][]=array('modenum'=>$rs['num'],'url'=>'?a=lum&m=input&d=flow&num='.$rs['num'].'&show=we','name'=>$rs['name'],'title'=>''.$len.'.'.$rs['name']);
 		}
 		}
 		$this->assign('modearr', $modearr);
 		$this->assign('modearr', $modearr);
 	}
 	}

+ 6 - 1
webmain/we/flow/tpl_flow_apply.html

@@ -9,6 +9,7 @@
 <link rel="stylesheet" type="text/css" href="webmain/css/rui.css">
 <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/jquery.js"></script>
 <script type="text/javascript" src="js/js.js"></script>
 <script type="text/javascript" src="js/js.js"></script>
+<script type="text/javascript" src="js/base64-min.js"></script>
 <style>
 <style>
 
 
 </style>
 </style>
@@ -23,6 +24,10 @@ function xuantype(o1){
 function initApp(){
 function initApp(){
 	js.setapptitle();
 	js.setapptitle();
 }
 }
+function totuurl(url){
+	var bo = js.appwin('.',url);
+	if(!bo)js.location(url);
+}
 </script>
 </script>
 </head>
 </head>
 <body>
 <body>
@@ -58,7 +63,7 @@ $count1++;
 	foreach($rows as $k=>$rs){
 	foreach($rows as $k=>$rs){
 	$count++;
 	$count++;
 	?>
 	?>
-	<a class="weui_cell" href="<?=$rs['url']?>">
+	<a class="weui_cell" href="javascript:;" onclick="totuurl('<?=$rs['url']?>')">
 		<div class="weui_cell_bd weui_cell_primary">
 		<div class="weui_cell_bd weui_cell_primary">
 			<p><?=$rs['title']?></p>
 			<p><?=$rs['title']?></p>
 		</div>
 		</div>

+ 1 - 1
webmain/we/index/tpl_index.html

@@ -52,7 +52,7 @@ echo 'body{--main-color:'.$maincolor.';}';
 xhauthkey = '<?=$xhauthkey?>';
 xhauthkey = '<?=$xhauthkey?>';
 maincolor = '<?=$maincolor?>';
 maincolor = '<?=$maincolor?>';
 </script>
 </script>
-<body scroll="no" style="overflow:hidden">
+<body scroll="no" style="overflow:hidden;user-select:none">
 <?php if($showheader==1){?>
 <?php if($showheader==1){?>
 <div>
 <div>
 	<div class="r-header">
 	<div class="r-header">

+ 2 - 2
webmain/we/index/tpl_index.mini.js

@@ -2,7 +2,7 @@ var ROabc={index:0,splittime:5,ctabci:0,rock:function(){for(var _i in werock)thi
 this.lda();},lda:function(){this.resiezess();$(window).resize(RO.resiezess);var agentjson=js.getoption('agentjson');var hisjson=js.getoption('historyjson');if(agentjson==''||hisjson==''){this.reload();}else{this.reload();var str=js.getoption('silderarr');if(str)this.showsilder(js.decode(str));RO.showagent(js.decode(agentjson));RO.showhistory(js.decode(hisjson));}
 this.lda();},lda:function(){this.resiezess();$(window).resize(RO.resiezess);var agentjson=js.getoption('agentjson');var hisjson=js.getoption('historyjson');if(agentjson==''||hisjson==''){this.reload();}else{this.reload();var str=js.getoption('silderarr');if(str)this.showsilder(js.decode(str));RO.showagent(js.decode(agentjson));RO.showhistory(js.decode(hisjson));}
 this.initsearch();$('#nowc_div').html(js.getoption('nowcompany'));},reload:function(lx){if(this.index==2){this.reus(lx);}else{this.ress(lx);}},ress:function(lx){this.homeress(lx);},reus:function(lx){js.ajax('dept','data',false,function(ret){RO.reuss(ret);},lx,false,function(){RO.showerror();});},ressw:function(ret){this.loadtime=ret.loadtime;js.setoption('agentjson',ret.agentjson);js.setoption('historyjson',ret.historyjson);var yyda=js.decode(ret.agentjson);this.showcompanyinfo(ret.companyinfo);this.showagent(yyda);this.showhistory(js.decode(ret.historyjson));js.setoption('myhomenum',ret.myhomenum);if(ret.silderarr){var str='';if(ret.silderarr.length>0)str=JSON.stringify(ret.silderarr);js.setoption('silderarr',str);this.showsilder(ret.silderarr);}
 this.initsearch();$('#nowc_div').html(js.getoption('nowcompany'));},reload:function(lx){if(this.index==2){this.reus(lx);}else{this.ress(lx);}},ress:function(lx){this.homeress(lx);},reus:function(lx){js.ajax('dept','data',false,function(ret){RO.reuss(ret);},lx,false,function(){RO.showerror();});},ressw:function(ret){this.loadtime=ret.loadtime;js.setoption('agentjson',ret.agentjson);js.setoption('historyjson',ret.historyjson);var yyda=js.decode(ret.agentjson);this.showcompanyinfo(ret.companyinfo);this.showagent(yyda);this.showhistory(js.decode(ret.historyjson));js.setoption('myhomenum',ret.myhomenum);if(ret.silderarr){var str='';if(ret.silderarr.length>0)str=JSON.stringify(ret.silderarr);js.setoption('silderarr',str);this.showsilder(ret.silderarr);}
 this.shagent(yyda);this.reloadok();if(ret.editpass==0){js.wx.alert(RO.bd6('6K!35YWI5L!u5pS55a!G56CB5ZCO5Zyo5L2.55So'),function(){RO.xgmm();});}else{this.timeajaxs();}},shagent:function(d){var stotal=0;var myhomenum=js.getoption('myhomenum');$('#hylidiv').hide();$('#hyli').html('');if(!myhomenum)return;myhomenum=','+myhomenum+',';var bo=false;for(var i=0;i<d.length;i++){stotal+=parseFloat(d[i].stotal);if(myhomenum.indexOf(','+d[i].num+',')>-1){this.showagents(d[i],'hyli','histotal_home_');bo=true;}}
 this.shagent(yyda);this.reloadok();if(ret.editpass==0){js.wx.alert(RO.bd6('6K!35YWI5L!u5pS55a!G56CB5ZCO5Zyo5L2.55So'),function(){RO.xgmm();});}else{this.timeajaxs();}},shagent:function(d){var stotal=0;var myhomenum=js.getoption('myhomenum');$('#hylidiv').hide();$('#hyli').html('');if(!myhomenum)return;myhomenum=','+myhomenum+',';var bo=false;for(var i=0;i<d.length;i++){stotal+=parseFloat(d[i].stotal);if(myhomenum.indexOf(','+d[i].num+',')>-1){this.showagents(d[i],'hyli','histotal_home_');bo=true;}}
-if(bo)$('#hylidiv').show();this.changestotl(false,0);},showmyinfo:function(){js.ajaxbool=false;js.ajax('indexreim','showmyinfo',false,function(ret){RO.sufo(ret);},'none');},sufo:function(ret){js.setoption('deptallname',ret.deptallname);js.setoption('ranking',ret.ranking);adminface=ret.face;js.setoption('adminface',adminface);js.setoption('admintoken',ret.admintoken);adminame=ret.name;js.setoption('adminame',adminame);js.setoption('adminid',ret.id);adminid=ret.id;var sj=ret.mobile;get('myface').src=adminface;$('#myname').html(adminame);$('#my_mz').html(adminame);$('#my_bm').html(ret.deptallname);$('#my_yh').html(ret.user);$('#my_sj').html(''+sj.substr(0,3)+'****'+sj.substr(-4)+'');$('#my_zw').html(ret.ranking);this.showcompanyinfo(ret.companyinfo);if(get('bdwx')){if(ret.bdwx){$('#bdwx').html(''+this.bd6('5bey57uR5a6a')+'(<img src="'+ret.bdwx.headimgurl+'" whdth="16" height="16" align="absmiddle">'+ret.bdwx.nickname+')');}else{$('#bdwx').html(this.bd6('5pyq57uR5a6aLOeCueWHu!e7keWumg::'));}}}};var grouparr=[],userarr=[],agentarr={},RO={};function initbody(){for(var i in ROabc)js.main[i]=ROabc[i];js.main.zhuinit();RO=js.main;js.main.rock();}
+if(bo)$('#hylidiv').show();this.changestotl(false,0);},showmyinfo:function(){js.ajaxbool=false;js.ajax('indexreim','showmyinfo',false,function(ret){RO.sufo(ret);},'none');},sufo:function(ret){js.setoption('deptallname',ret.deptallname);js.setoption('ranking',ret.ranking);adminface=ret.face;js.setoption('adminface',adminface);js.setoption('admintoken',ret.admintoken);adminame=ret.name;js.setoption('adminame',adminame);js.setoption('adminid',ret.id);adminid=ret.id;var sj=ret.mobile;get('myface').src=adminface;$('#myname').html(adminame);$('#my_mz').html(adminame);$('#my_bm').html(ret.deptallname);$('#my_yh').html(ret.user);$('#my_sj').html(''+sj.substr(0,3)+'****'+sj.substr(-4)+'');$('#my_zw').html(ret.ranking);this.showcompanyinfo(ret.companyinfo);if(get('bdwx')){if(ret.bdwx){$('#bdwx').html(''+this.bd6('5bey57uR5a6a')+'(<img src="'+ret.bdwx.headimgurl+'" whdth="16" height="16" align="absmiddle">'+ret.bdwx.nickname+')');}else{$('#bdwx').html(this.bd6('5pyq57uR5a6aLOeCueWHu!e7keWumg::'));}}}};var grouparr=[],userarr=[],agentarr={},RO={};function initbody(){new touchclass({}).reglongmenu();for(var i in ROabc)js.main[i]=ROabc[i];js.main.zhuinit();RO=js.main;js.main.rock();}
 var werock={ctab:function(lx){if(!get('tabnav'+lx+''))return;lx=parseFloat(lx);if(lx<0)lx=3;if(lx>3)lx=0;$("[index='m']").hide();var sid='m_index'+lx+'';$('#'+sid+'').show();$('.weui_tabbar a').removeClass('weui_bar_item_on');$('#tabnav'+lx+'').addClass('weui_bar_item_on');var tass=[document.title,this.bd6('5bqU55So'),this.bd6('6IGU57O75Lq6'),adminame];$('.r-header-text').html(tass[lx]);var tabs=['chat','ying','user','my'];if(get('rtb'+this.index+''))get('rtb'+this.index+'').src='images/nav_'+tabs[this.index]+'0.png';if(get('rtb'+lx+''))get('rtb'+lx+'').src='images/nav_'+tabs[lx]+'1.png';this.index=lx;try{sessionStorage.setItem('nowtabs',lx);}catch(e){}
 var werock={ctab:function(lx){if(!get('tabnav'+lx+''))return;lx=parseFloat(lx);if(lx<0)lx=3;if(lx>3)lx=0;$("[index='m']").hide();var sid='m_index'+lx+'';$('#'+sid+'').show();$('.weui_tabbar a').removeClass('weui_bar_item_on');$('#tabnav'+lx+'').addClass('weui_bar_item_on');var tass=[document.title,this.bd6('5bqU55So'),this.bd6('6IGU57O75Lq6'),adminame];$('.r-header-text').html(tass[lx]);var tabs=['chat','ying','user','my'];if(get('rtb'+this.index+''))get('rtb'+this.index+'').src='images/nav_'+tabs[this.index]+'0.png';if(get('rtb'+lx+''))get('rtb'+lx+'').src='images/nav_'+tabs[lx]+'1.png';this.index=lx;try{sessionStorage.setItem('nowtabs',lx);}catch(e){}
 this.touchobj.hidescrolls();if(lx==2){this.showuserlist();}
 this.touchobj.hidescrolls();if(lx==2){this.showuserlist();}
 if(lx==3){this.showmyinfo();}else{setTimeout('RO.showmyinfo()',200);}
 if(lx==3){this.showmyinfo();}else{setTimeout('RO.showmyinfo()',200);}
@@ -18,7 +18,7 @@ var a=deptarr,i,len=a.length,d,dn;$('#deptlist').html('');$('#list').html('')
 for(i=0;i<len;i++){d=a[i];if(d.id==id)dn=d;if(d.pid==id){d.face='images/wjj.png';this.showdeptlsit(d,level+1);}}
 for(i=0;i<len;i++){d=a[i];if(d.id==id)dn=d;if(d.pid==id){d.face='images/wjj.png';this.showdeptlsit(d,level+1);}}
 if(level>0)$('#userdao').append('<span class="jiantou">></span>');$('#userdao').append('<span onclick="RO.showuserlists('+id+',0, this)">'+dn.name+'</span>');len=userarr.length;var noi=0;for(i=0;i<len;i++){d=userarr[i];if(d.deptid==id||d.deptidss.indexOf(','+id+',')>-1){this.showlist(d,false);noi++;}}
 if(level>0)$('#userdao').append('<span class="jiantou">></span>');$('#userdao').append('<span onclick="RO.showuserlists('+id+',0, this)">'+dn.name+'</span>');len=userarr.length;var noi=0;for(i=0;i<len;i++){d=userarr[i];if(d.deptid==id||d.deptidss.indexOf(','+id+',')>-1){this.showlist(d,false);noi++;}}
 if(noi==0&&$('#deptlist').html()==''){$('#list').append('<div style="font-size:14px;text-align:center;padding:30px 10px;color:#cccccc">'+dn.name+' '+this.bd6('5LiL5peg6IGU57O75Lq6')+'</div>');}},showdeptlsit:function(a,level){var s='';s+='<a class="weui_media_box weui_media_appmsg" onclick="RO.showuserlists('+a.id+','+level+')">';s+='  <div class="weui_cell_hd"><img src="'+a.face+'" style="width:34px;margin-right:5px;display:block"></div>';s+='  <div class="weui_cell_bd weui_cell_primary"><p>'+a.name+'';if(a.ntotal>0)s+=' <span style="font-size:12px;color:#888888">('+a.ntotal+')</span>';s+=' </p></div>';s+='</a>';$('#deptlist').append(s);},showlist:function(a,cbo){var s='<a temp="user_'+a.id+'" onclick="RO.opu('+a.id+')" class="weui_media_box weui_media_appmsg">';s+=' <div class="weui_media_hd">';s+='  <img class="weui_media_appmsg_thumb" src="'+a.face+'">';s+=' </div>';s+=' <div class="weui_media_bd">';s+='  <h4 class="weui_media_title">'+a.name+'</h4>';s+='  <p class="weui_media_desc">'+a.deptname+'('+a.ranking+')</p>';s+=' </div>';s+='</a>';if(!cbo){$('#list').append(s);}else{$('#sslst').append(s);}},showgroupall:function(){var i,len2=grouparr.length;$('#glist').html('');$('#glists').html('('+len2+')');for(i=0;i<len2;i++)this.showgroup(grouparr[i],true);},showgroup:function(a,cbo){var s='';s+='<a class="weui_cell"  onclick="RO.openguser(\'group\','+a.id+')">';s+='  <div class="weui_cell_hd"><img src="'+a.face+'" alt="" style="width:34px;margin-right:5px;display:block"></div>';s+='  <div class="weui_cell_bd weui_cell_primary"><p>'+a.name+'</p></div>';s+='</a>';$('#glist').append(s);},shdata:{},showhistory:function(a){var i,len=a.length;$('#historylist').html('');$('#hwu_tems').show();for(i=0;i<len;i++){this.showhistorys(a[i]);}
 if(noi==0&&$('#deptlist').html()==''){$('#list').append('<div style="font-size:14px;text-align:center;padding:30px 10px;color:#cccccc">'+dn.name+' '+this.bd6('5LiL5peg6IGU57O75Lq6')+'</div>');}},showdeptlsit:function(a,level){var s='';s+='<a class="weui_media_box weui_media_appmsg" onclick="RO.showuserlists('+a.id+','+level+')">';s+='  <div class="weui_cell_hd"><img src="'+a.face+'" style="width:34px;margin-right:5px;display:block"></div>';s+='  <div class="weui_cell_bd weui_cell_primary"><p>'+a.name+'';if(a.ntotal>0)s+=' <span style="font-size:12px;color:#888888">('+a.ntotal+')</span>';s+=' </p></div>';s+='</a>';$('#deptlist').append(s);},showlist:function(a,cbo){var s='<a temp="user_'+a.id+'" onclick="RO.opu('+a.id+')" class="weui_media_box weui_media_appmsg">';s+=' <div class="weui_media_hd">';s+='  <img class="weui_media_appmsg_thumb" src="'+a.face+'">';s+=' </div>';s+=' <div class="weui_media_bd">';s+='  <h4 class="weui_media_title">'+a.name+'</h4>';s+='  <p class="weui_media_desc">'+a.deptname+'('+a.ranking+')</p>';s+=' </div>';s+='</a>';if(!cbo){$('#list').append(s);}else{$('#sslst').append(s);}},showgroupall:function(){var i,len2=grouparr.length;$('#glist').html('');$('#glists').html('('+len2+')');for(i=0;i<len2;i++)this.showgroup(grouparr[i],true);},showgroup:function(a,cbo){var s='';s+='<a class="weui_cell"  onclick="RO.openguser(\'group\','+a.id+')">';s+='  <div class="weui_cell_hd"><img src="'+a.face+'" alt="" style="width:34px;margin-right:5px;display:block"></div>';s+='  <div class="weui_cell_bd weui_cell_primary"><p>'+a.name+'</p></div>';s+='</a>';$('#glist').append(s);},shdata:{},showhistory:function(a){var i,len=a.length;$('#historylist').html('');$('#hwu_tems').show();for(i=0;i<len;i++){this.showhistorys(a[i]);}
-this.changestotl(false,0);if(i>0)$('#hwu_tems').hide();},showhistorys:function(d,pad){var s,ty,o=$('#historylist'),d1,st,attr;var num=''+d.type+'_'+d.receid+'';$('#index_'+num+'').remove();this.shdata[num]=d;st=d.stotal;if(st=='0')st='';var ops=d.optdt.substr(11,5);if(d.optdt.indexOf(date)!=0)ops=d.optdt.substr(5,5);ty=d.type;s='<a id="index_'+num+'" onclick="RO.clickitems(\''+ty+'\','+d.receid+', this)" class="weui_media_box weui_media_appmsg">';s+=' <div class="weui_media_hd">';s+='  <img class="weui_media_appmsg_thumb" src="'+d.face+'">';s+=' </div>';s+=' <div class="weui_media_bd">';s+='  <span id="histotal_'+num+'" class="badge">'+st+'</span>';s+='  <font >'+ops+'</font>';s+='  <h4 class="weui_media_title">'+d.name+'</h4>';s+='  <p class="weui_media_desc">'+this.bd6(d.cont)+'</p>';s+=' </div>';s+='</a>';if(!pad){o.append(s);}else{o.prepend(s);}},clickitems:function(ty,id,o){var o1=$(o),num=''+ty+'_'+id+'',d=this.shdata[num];var da=[{name:this.bd6('5omT5byA'),lx:0}];if(d&&d.stotal>0)da.push({name:this.bd6('5qCH6K!G5bey6K!7'),lx:2});da.push({name:this.bd6('5Yig6Zmk5q2k6K6w5b2V'),lx:1});js.showmenu({data:da,onclick:function(a){var lx=a.lx;if(lx==0){RO.openguser(ty,id);}
+this.changestotl(false,0);if(i>0)$('#hwu_tems').hide();},showhistorys:function(d,pad){var s,ty,o=$('#historylist'),d1,st,attr;var num=''+d.type+'_'+d.receid+'';$('#index_'+num+'').remove();this.shdata[num]=d;st=d.stotal;if(st=='0')st='';var ops=d.optdt.substr(11,5);if(d.optdt.indexOf(date)!=0)ops=d.optdt.substr(5,5);ty=d.type;var bstr=new touchclass({type:ty,receid:d.receid,onlongclick:function(){RO.clickitems(this.type,this.receid,this.obj)},onclick:function(){RO.openguser(this.type,this.receid);}}).touchstring();s='<a id="index_'+num+'" '+bstr+' class="weui_media_box weui_media_appmsg">';s+=' <div class="weui_media_hd">';s+='  <img class="weui_media_appmsg_thumb" src="'+d.face+'">';s+=' </div>';s+=' <div class="weui_media_bd">';s+='  <span id="histotal_'+num+'" class="badge">'+st+'</span>';s+='  <font >'+ops+'</font>';s+='  <h4 class="weui_media_title">'+d.name+'</h4>';s+='  <p class="weui_media_desc">'+this.bd6(d.cont)+'</p>';s+=' </div>';s+='</a>';if(!pad){o.append(s);}else{o.prepend(s);}},clickitems:function(ty,id,o){var o1=$(o),num=''+ty+'_'+id+'',d=this.shdata[num];var da=[{name:this.bd6('5omT5byA'),lx:0}];if(d&&d.stotal>0)da.push({name:this.bd6('5qCH6K!G5bey6K!7'),lx:2});da.push({name:this.bd6('5Yig6Zmk5q2k6K6w5b2V'),lx:1});js.showmenu({data:da,onclick:function(a){var lx=a.lx;if(lx==0){RO.openguser(ty,id);}
 if(lx==1){o1.remove();var tst=$('#historylist').text();if(tst=='')$('#hwu_tems').show();js.ajax('reim','delhistory',{type:ty,gid:id},false,'none');}
 if(lx==1){o1.remove();var tst=$('#historylist').text();if(tst=='')$('#hwu_tems').show();js.ajax('reim','delhistory',{type:ty,gid:id},false,'none');}
 if(lx==2){RO.biaoyidu(ty,id,true);}}});},opu:function(id){js.location('?a=userinfo&d=we&uid='+id+'');},biaoyidu:function(ty,id,lbo){if(lbo){var num=''+ty+'_'+id+'';$('#histotal_'+num+'').html('');this.changestotl(false,0);var d=this.shdata[num];if(d)d.stotal='0';}
 if(lx==2){RO.biaoyidu(ty,id,true);}}});},opu:function(id){js.location('?a=userinfo&d=we&uid='+id+'');},biaoyidu:function(ty,id,lbo){if(lbo){var num=''+ty+'_'+id+'';$('#histotal_'+num+'').html('');this.changestotl(false,0);var d=this.shdata[num];if(d)d.stotal='0';}
 js.ajax('reim','yiduall',{type:ty,gid:id},false,'none');},openguser:function(ty,id){var num=''+ty+'_'+id+'';$('#histotal_'+num+'').html('');this.changestotl(false,0);if(ty=='agent'){var d=this.shdata[num];var url='';if(d&&d.stotal>0&&!isempt(d.xgurl)){d.stotal='0';var xga=d.xgurl.split('|');if(xga[1]>0)url='task.php?a=x&num='+xga[0]+'&mid='+xga[1]+'';}
 js.ajax('reim','yiduall',{type:ty,gid:id},false,'none');},openguser:function(ty,id){var num=''+ty+'_'+id+'';$('#histotal_'+num+'').html('');this.changestotl(false,0);if(ty=='agent'){var d=this.shdata[num];var url='';if(d&&d.stotal>0&&!isempt(d.xgurl)){d.stotal='0';var xga=d.xgurl.split('|');if(xga[1]>0)url='task.php?a=x&num='+xga[0]+'&mid='+xga[1]+'';}

+ 14 - 8
webmain/we/ying/tpl_ying.html

@@ -11,7 +11,7 @@
 <link rel="shortcut icon" href="<?=$arr['face']?>" />
 <link rel="shortcut icon" href="<?=$arr['face']?>" />
 <script type="text/javascript" src="js/jquery.js"></script>
 <script type="text/javascript" src="js/jquery.js"></script>
 <script type="text/javascript" src="js/js.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 type="text/javascript" src="js/base64-min.js"></script>
 <script type="text/javascript" src="js/jsmain.js"></script>
 <script type="text/javascript" src="js/jsmain.js"></script>
 <script type="text/javascript" src="webmain/we/ying/ying.js?<?=time()?>"></script>
 <script type="text/javascript" src="webmain/we/ying/ying.js?<?=time()?>"></script>
@@ -30,15 +30,15 @@ body,html{background-color:#f1f1f1;overflow:hidden}
 .weui_navbar_item_disabled{color:#aaaaaa}
 .weui_navbar_item_disabled{color:#aaaaaa}
 
 
 .contline{padding-top:10px;color:#999999;font-size:14px;text-align:center;}
 .contline{padding-top:10px;color:#999999;font-size:14px;text-align:center;}
-.contlist{margin:15px;padding:8px 10px;position:relative; background:white}
-.contlist:active,.active{ background-color:#f1f1f1}
+.contlist{margin:15px;padding:8px 10px;position:relative; background:white;border-radius:5px;border:0.5px #dddddd solid}
+.contlist:active,.active{ background-color:#f5f5f5}
 .contlist .title{font-size:16px}
 .contlist .title{font-size:16px}
 .contlist .dt{font-size:12px;color:#aaaaaa;}
 .contlist .dt{font-size:12px;color:#aaaaaa;}
-.contlist .xq{color:<?=$maincolor?>;font-size:14px;padding-top:7px}
+.contlist .xq{color:<?=$maincolor?>;font-size:14px;padding-top:7px;border-top:0.5px #dddddd solid}
 .contlist .xq span{float:right}
 .contlist .xq span{float:right}
 .contlist .cont{font-size:14px;padding:10px 0px}
 .contlist .cont{font-size:14px;padding:10px 0px}
 .contlist .imgs{height:130px;overflow:hidden;margin:5px 0px}
 .contlist .imgs{height:130px;overflow:hidden;margin:5px 0px}
-.contlist .zt{font-size:10px;position:absolute;top:2px;right:1px;padding:1px 3px;background-color:red;color:white}
+.contlist .zt{font-size:10px;position:absolute;top:2px;right:2px;border-radius:3px;padding:1px 3px;background-color:red;color:white}
 .contlist .face{font-size:14px;padding:5px 0px;overflow:hidden;}
 .contlist .face{font-size:14px;padding:5px 0px;overflow:hidden;}
 .contlist .face img{border-radius:15px;height:24px;width:24px;margin-right:5px}
 .contlist .face img{border-radius:15px;height:24px;width:24px;margin-right:5px}
 .contlist .opt{font-size:10px;position:absolute;bottom:1px;right:1px;padding:1px 3px;color:#aaaaaa}
 .contlist .opt{font-size:10px;position:absolute;bottom:1px;right:1px;padding:1px 3px;color:#aaaaaa}
@@ -56,16 +56,22 @@ var agentlx=0,xhauthkey = '<?=$xhauthkey?>',maincolor='<?=$maincolor?>';
 function yingyonginit(){
 function yingyonginit(){
 	yy.loadshow();
 	yy.loadshow();
 }
 }
+var xcy = {
+	resiezess:function(){
+		yy.resizehei();
+	}
+}
 function initbody(){
 function initbody(){
 	adminid = '<?=$da['adminid']?>';
 	adminid = '<?=$da['adminid']?>';
 	admintoken = '<?=$xhrock->admintoken?>';
 	admintoken = '<?=$xhrock->admintoken?>';
 	yy.init();
 	yy.init();
 	yingyonginit();
 	yingyonginit();
+	new touchclass({}).reglongmenu();
 }
 }
 function initApp(){
 function initApp(){
 	js.setapptitle(json.name);
 	js.setapptitle(json.name);
 	js.location=function(dz){
 	js.location=function(dz){
-		if(js.appwin('',dz))return;
+		if(js.appwin('.',dz))return;
 		location.href = dz;
 		location.href = dz;
 	}
 	}
 	var nowlist = 'yingyong_mode_'+json.num+'';
 	var nowlist = 'yingyong_mode_'+json.num+'';
@@ -87,7 +93,7 @@ function callPhone(o1){
 	if(appobj1('callPhone', o1)){
 	if(appobj1('callPhone', o1)){
 		return false;
 		return false;
 	}else if(apicloud){
 	}else if(apicloud){
-		api.call({type:'tel_prompt',number:o1});
+		api.rockFun('callPhone', {phone:o1});
 		return false;
 		return false;
 	}else{
 	}else{
 		return true;
 		return true;
@@ -112,7 +118,7 @@ yy.onshowdata=function(da){
 </head>
 </head>
 
 
 
 
-<body>
+<body style="user-select:none">
 <?php if($showheader==1){?>
 <?php if($showheader==1){?>
 <div>
 <div>
 	<div class="r-header" style="padding-top:<?=$cenghei?>px" >
 	<div class="r-header" style="padding-top:<?=$cenghei?>px" >

+ 19 - 7
webmain/we/ying/ying.js

@@ -400,25 +400,37 @@ var myScroll=false,yy={
 				s='<div class="contline">'+d.title+'</div>';
 				s='<div class="contline">'+d.title+'</div>';
 			}else{
 			}else{
 				if(!d.statuscolor)d.statuscolor='';
 				if(!d.statuscolor)d.statuscolor='';
+				
+				var bstr = new touchclass({
+					xuhao:oi,
+					onlongclick:function(){
+						yy.showmenu(this.xuhao);
+					},
+					onclick:function(){
+						yy.xiang(this.xuhao);
+					}
+				}).touchstring();
 				st='';
 				st='';
 				if(d.ishui==1)st='color:#aaaaaa;';
 				if(d.ishui==1)st='color:#aaaaaa;';
-				s='<div style="'+st+'" class="r-border contlist">';
+				s='<div style="'+st+'" class="contlist">';
+				s+='<div '+bstr+'>';
 				if(d.title){
 				if(d.title){
 					if(d.face){
 					if(d.face){
-						s+='<div onclick="yy.showmenu('+oi+')" class="face"><img src="'+d.face+'" align="absmiddle">'+d.title+'</div>';
+						s+='<div class="face"><img src="'+d.face+'" align="absmiddle">'+d.title+'</div>';
 					}else{
 					}else{
-						s+='<div onclick="yy.showmenu('+oi+')" class="tit">'+d.title+'</div>';
+						s+='<div class="tit">'+d.title+'</div>';
 					}
 					}
 				}
 				}
 				if(d.optdt)s+='<div class="dt">'+d.optdt+'</div>';
 				if(d.optdt)s+='<div class="dt">'+d.optdt+'</div>';
-				if(d.picurl)s+='<div onclick="yy.showmenu('+oi+')" class="imgs"><img src="'+d.picurl+'" width="100%"></div>';
-				if(d.cont)s+='<div  onclick="yy.showmenu('+oi+')" class="cont">'+d.cont.replace(/\n/g,'<br>')+'</div>';
+				if(d.picurl)s+='<div class="imgs"><img src="'+d.picurl+'" width="100%"></div>';
+				if(d.cont)s+='<div  class="cont">'+d.cont.replace(/\n/g,'<br>')+'</div>';
+				s+='</div>';
 				if(d.id && d.modenum && !d.noshowopt){
 				if(d.id && d.modenum && !d.noshowopt){
-					s+='<div class="xq r-border-t"><font onclick="yy.showmenu('+oi+')">操作<i class="icon-angle-down"></i></font><span onclick="yy.xiang('+oi+')">详情&gt;&gt;</span>';
+					s+='<div class="xq"><font onclick="yy.showmenu('+oi+')">操作<i class="icon-angle-down"></i></font><span onclick="yy.xiang('+oi+')">详情&gt;&gt;</span>';
 					s+='</div>';
 					s+='</div>';
 				}
 				}
 				if(d.xiangurl){
 				if(d.xiangurl){
-					s+='<div class="xq r-border-t" onclick="yy.xiang('+oi+')"><font>详情&gt;&gt;</font></div>';
+					s+='<div class="xq" onclick="yy.xiang('+oi+')"><font>详情&gt;&gt;</font></div>';
 				}
 				}
 				if(d.statustext)s+='<div style="background-color:'+d.statuscolor+';opacity:0.7" class="zt">'+d.statustext+'</div>';
 				if(d.statustext)s+='<div style="background-color:'+d.statuscolor+';opacity:0.7" class="zt">'+d.statustext+'</div>';
 				s+='</div>';
 				s+='</div>';

粤ICP备19079148号