Compare commits

12 Commits

Author SHA1 Message Date
雨中磐石
60f759a90c 发布v2.7.1版本 2025-12-24 10:03:51 +08:00
雨中磐石
69f5376af9 发布v2.7.0版本 2025-07-18 14:42:09 +08:00
雨中磐石
5cec56526e 发布v2.7.0版本 2025-07-18 14:38:01 +08:00
雨中磐石
d0c604e040 发布v2.6.9版本 2025-05-27 14:51:24 +08:00
雨中磐石
16829278ae no commit message 2025-03-31 21:26:17 +08:00
雨中磐石
d41bd27082 发布v2.6.8版本 2025-03-31 20:54:32 +08:00
雨中磐石
0701e2a8b4 no commit message 2024-11-01 11:46:55 +08:00
雨中磐石
f0ffadf926 发布v2.6.7版本 2024-10-22 15:47:42 +08:00
雨中磐石
ac79e13876 发布v2.6.6版本 2024-10-22 15:45:25 +08:00
雨中磐石
502a817f7a no commit message 2024-10-18 17:18:09 +08:00
雨中磐石
5581737630 发布v2.6.6版本 2024-10-18 15:47:46 +08:00
雨中磐石
559c388ea0 no commit message 2024-10-18 15:27:40 +08:00
216 changed files with 5431 additions and 1776 deletions

View File

@@ -5,12 +5,12 @@
公司团队:信呼开发团队
官网网站http://www.rockoa.com/
源码仅供学习二次开发使用,禁止二次发布,禁止用于商业用途出售等(违者必究)
版权Copyright @2016-2024 信呼开发团队
版本整理时间2024-08-01 23:59:59
版本号V2.6.5
版权Copyright @2016-2025 信呼开发团队
版本整理时间2025-12-25 23:59:59
版本号V2.7.1
### V2.6.5更新说明
### V2.7.1更新说明
1、完善系统安全性。
2、更多升级日志详见http://www.rockoa.com/view_core.html

View File

@@ -1,3 +1,3 @@
<?php
//版本2.6.52024-08-01的版本
return '2.6.5';
//版本20251224的
return '2.7.1';

View File

@@ -59,6 +59,7 @@ abstract class mainAction{
$this->display = true;
$this->initMysql();
$this->initConstruct();
$this->getTheme();
$this->initProject();
$this->initAction();
}
@@ -124,6 +125,27 @@ abstract class mainAction{
|| $this->rock->iswebbro(2))$showheader = 0; //隐藏头部
if($this->get('showheader')=='true')$showheader = 1;
$this->assign('showheader', $showheader);
$nowtime = $this->getsession('nowtime');
if(!$nowtime || getconfig('systype')=='dev'){
$nowtime = time();
$this->rock->setsession('nowtime', $nowtime);
}
$this->assign('nowtime', $nowtime);
}
//主题颜色处理
public function getTheme()
{
$theme = $this->get('apptheme');
if($theme){
$this->rock->setsession('apptheme', $theme);
}else{
$theme = $this->getsession('apptheme');
}
if($theme)$theme = '#'.$theme.'';
if(!$theme || strlen($theme)!=7)$theme = getconfig('apptheme', '#1389D3'); //默认颜色
$this->assign('apptheme', $theme);
return substr($theme, 1);
}
public function setSmartyData()

View File

@@ -7,13 +7,20 @@
class JPushChajian extends Chajian{
//-------------最新原生app推送app是1.2.3版本 和 最新app+---------------
/**
* -------------最新原生app推送app是1.2.3版本 和 最新app+---------------
* title 没有base64的标题
* desc 已经base64了
* cont 原始的内容json
* palias 可推送信息
*/
public function push($title, $desc, $cont, $palias)
{
$uids = $palias['uids'];
$alias2019 = $palias['alias2019'];
$pushuids = $palias['pushuids']; //可以推送的用户ID
$pushuids = $palias['pushuids']; //可以推送的用户ID 就是ispush=1
$jparr = $palias['jparr']; //应用内消息
$xmpush = c('xmpush');
$hwpush = c('hwpush');
$getui = c('getui');
@@ -33,8 +40,8 @@ class JPushChajian extends Chajian{
$xharr = array(
'uids' => $uids,
'title' => $this->rock->jm->base64encode($title),
//'cont' => $this->rock->jm->base64encode($cont),
'desc' => $desc,
'jpreg' => arrvalue($palias, 'jpreg'),
'systype'=> getconfig('systype')
);
@@ -162,4 +169,27 @@ class JPushChajian extends Chajian{
}
return $stv;
}
/**
* 极光自定义消息发送20250105
*/
public function sendJpush($arr)
{
$receid = $arr['receid'];
if(isempt($receid))return;
$toregid= array();
//$this->rock->debugs($arr,'sendJpush');
$rows = m('logintoken')->getall('`uid` in('.$receid.') AND `online`=1 AND `ispush`=1');
foreach($rows as $k=>$rs){
$regid = arrvalue($rs,'regid');
if(!isempt($regid))$toregid[] = $regid;
}
if(!$toregid)return;
$runurl = c('xinhu')->geturlstr('jpushmess', array(
'msgcont' => $this->rock->jm->base64encode(json_encode($arr)),
'toregid' => join(',', $toregid)
));
$str = c('curl')->getcurl($runurl);
return 'ok';
}
}

View File

@@ -110,6 +110,18 @@ class checkChajian extends Chajian{
return preg_replace('/[a-zA-Z]/','', $str);
}
/**
* 仅支持0-9A-Za-z - |
* return boolean
*/
public function onlynoen($str)
{
$str1 = ''.$str.'';
$bobg = preg_replace("/[a-zA-Z0-9_]/",'', $str1);
$bobg = str_replace(array('-','|'),'', $bobg);
return $bobg;
}
/**
* 替换空格
*/
@@ -133,4 +145,36 @@ class checkChajian extends Chajian{
}
return implode('', $strArr);
}
/**
* 判断是不是内网地址
*/
public function isneiurl($str)
{
$strt = strtolower($str);
$strt = str_replace($strt, 'https:', 'http:');
$nearr= array('localhost','127.0.0','192.','10.','172.');
$bool = false;
foreach($nearr as $ip){
if(contain($str, 'http://'.$ip.'')){
$bool = true;
break;
}
}
return $bool;
}
/**
* 过滤sql的
*/
public function onlysql($str)
{
$str = $this->rock->iconvsql($str);
$str = str_replace('(','', $str);
$str = str_replace(')','', $str);
$str = str_replace(',','', $str);
return $str;
}
}

View File

@@ -37,4 +37,112 @@ class colorChajian extends Chajian{
$h = floor(($n / 16)) % 16;
return ''.$hexch[$h].''.$hexch[$l].'';
}
/**
* 获取颜色值
*/
public function colorTorgb($color)
{
if(!empty($color)&&(strlen($color)==7)){
$r=hexdec(substr($color,1,2));
$g=hexdec(substr($color,3,2));
$b=hexdec(substr($color,5));
}else{
$r=$g=$b='00';
}
return array($r, $g, $b);
}
/**
* 获取样式的
*/
public function getApptheme($nohui=true, $ism=false)
{
$arr = $this->getColor();
$color = $arr['color'];
$colors = $arr['colors'];
$colora = $arr['colora'];
$bodybgcolor = 'rgba('.$colors.',0.03)';
$hgcolor = 'rgba('.$colors.',0.15)';
$vgcolor = 'rgba('.$colors.',0.1)';
$str[] = '<style type="text/css">';
//暗黑模式的var(--rgb-r),var(--rgb-g),var(--rgb-b)
$ishei = false;
if(($color == '#333333' || $color=='#555555') && $nohui)$ishei = true;
$str[] = 'body{';
$str[] = 'background:'.$bodybgcolor.';';
$str[] = '--rgb-r:'.$colora[0].';';
$str[] = '--rgb-g:'.$colora[1].';';
$str[] = '--rgb-b:'.$colora[2].';';
$str[] = '--main-color:'.$color.';';
if($ism)$str[] = '--font-size:16px;';
$str[] = '--main-hgcolor:'.$hgcolor.';';
if(!$ishei){
$str[] = '--main-vgcolor:'.$vgcolor.';';
$str[] = '--border:0.5px rgba('.$colors.',0.1) solid;';
$str[] = '--main-border:rgba('.$colors.',0.1);';
}
$str[] = '}';
if($ishei){
$str[] = '.rock-table .rock-table-tr:nth-child(odd){background:rgba(0,0,0,0.03);}';
$str[] = '.rock-table .rock-table-tr:hover{background:rgba(0,0,0,0.1);}';
}
if($ishei){
$bgcol = 'rgba('.$colors.',0.9)';
$bgcolor = 'rgba('.$colors.',0.5)';
$str[] = 'body{background:'.$bgcol.';color:white;--main-bgcolor:'.$bgcolor.'}';
$str[] = 'a:link,a:visited,input{color:white;}';
$str[] = '.input,.textarea,.form-control,.inputs{background:'.$bgcol.';color:white}';
$str[] = '.input:focus,.inputs:focus,.textarea:focus,.form-control:focus{border:.5px rgba(255,255,255,0.1) solid}';
$str[] = '.zhu{color:white}';
$str[] = '.webbtn:disabled,.btn:disabled{background:var(--main-bgcolor);color:#888888}';
$str[] = '.webbtn-default,.webbtn-default:link,.webbtn-default:visited,.btn{background:var(--main-color);color:white;border:none;}';
}else{
$str[] = '.rockmenuli{background:rgba('.$colora[0].','.$colora[1].','.$colora[2].',0.05)}';
}
$str[] = '</style>';
$str[] = '<script type="text/javascript">';
$str[] = 'maincolor = "'.$color.'";';
if(!$ishei)$str[] = 'bootsSelectColor = "var(--main-hgcolor)";';
$str[] = '</script>';
$path = 'webmain/css/rockmy.css';
if(file_exists($path))$str[] = '<link rel="stylesheet" type="text/css" href="'.$path.'?'.time().'" />';
$str[] = '';
return join(PHP_EOL, $str);
}
/**
* 获取样式
*/
public function getColor()
{
$color = $this->getTheme();
$maincolora = $this->colorTorgb($color);
$colors = ''.$maincolora[0].','.$maincolora[1].','.$maincolora[2].'';
return array(
'color' => $color,
'colors' => $colors,
'colora' => $maincolora,
);
}
/**
* 获取对应颜色
*/
public function getTheme()
{
$color = getconfig('apptheme','#1389D3');
//$apptheme = $this->rock->get('apptheme');
//if(strlen($apptheme)==6)$this->rock->savecookie('apptheme', $apptheme);
//if(!$apptheme)$apptheme = $this->rock->cookie('apptheme');
//if(strlen($apptheme)==6)$color = '#'.$apptheme.'';
return $color;
}
}

View File

@@ -76,7 +76,7 @@ class curlChajian extends Chajian{
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
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($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
if($ishttps==1){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
@@ -114,7 +114,7 @@ class curlChajian extends Chajian{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
//if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
//设置head
if($headarr){
$heads = array();

View File

@@ -197,6 +197,7 @@ class dateChajian extends Chajian
public function cnweek($date)
{
if(isempt($date))return '';
$arr = array('日','一','二','三','四','五','六');
return $arr[date('w', strtotime($date))];
}

View File

@@ -117,7 +117,7 @@ class downChajian extends Chajian{
$msg = '';
$data = array();
if(is_array($upses)){
$noasyn = $this->rock->get('noasyn'); //=yes就不同步到文件平台
$noasyn = $this->rock->get('noasyn');$noasyn = ''; //=yes就不同步到文件平台
$noyaso = $this->rock->get('noyaso'); //=yes就不压缩
$fileext= substr($upses['fileext'],0,10);
$arrs = array(
@@ -162,14 +162,28 @@ class downChajian extends Chajian{
}
}
$shuiyin = $this->rock->get('shuiyin');
if($upses['picw']>$lw || $upses['pich']>$lh){
$imgaa = c('image', true);
$imgaa->createimg($thumbpath);
$thumbpath = $imgaa->thumbnail($lw, $lh, 1);
if(contain($thumbpath, 'reimchat'))$shuiyin = 'size';
if($shuiyin=='size'){
$imgaa->createimg($thumbpath);
$imgaa->addwater($arrs['filesizecn']);
}
}
if($upses['picw'] == 0 && $upses['pich']==0)$thumbpath = '';
$arrs['thumbpath'] = $thumbpath;
//有缩略图先上传到云里 && $this->rock->get('sysuptype')=='img'
if($thumbpath){
$tarr = $this->uploadBase($thumbpath);
if($tarr['success'] && isset($tarr['url']))$arrs['thumbplat'] = $tarr['url'];
}
$bo = $this->db->record('[Q]file',$arrs);
if(!$bo)$this->reutnmsg($this->db->error());
@@ -194,18 +208,38 @@ class downChajian extends Chajian{
c('rockqueue')->sendfile($id, $stime);
}
if(arrvalue($arrs, 'thumbplat')){
$data['filepath'] = $arrs['thumbplat'];
$data['thumbpath'] = $arrs['thumbplat'];
}
}else{
$data['msg'] = $upses;
}
return $data;
}
/**
* 简单上传要调用
*/
private function uploadBase($path)
{
if(getconfig('qcloudCos_autoup')){
return c('qcloudCos')->uploadFile($path);
}else{
if(getconfig('alioss_autoup')){
$obj = c('alioss');
if(method_exists($obj, 'uploadFile'))return $obj->uploadFile($path);
}
}
return returnerror();
}
//过滤特殊文件名
private function replacefile($str)
{
$s = strtolower($str);
$s2 = $s.'';
$lvlaraa = explode(',','user(),found_rows,(),select*from,select*,%20,<,>');
$lvlaraa = explode(',',' ,user(),found_rows,(),\',",select*from,select*,%20,<,>,\,');
$s = str_replace($lvlaraa, '', $s);
if($s!=$s2)$str = $s;
return $str;

View File

@@ -35,7 +35,7 @@ class htmlChajian extends Chajian{
public function createtable($fields, $arr, $title='',$lx='',$bcolor='')
{
if(isempt($bcolor))$bcolor = '#cccccc';
if(isempt($bcolor))$bcolor = 'var(--main-border)';
if($lx=='print'){
$bcolor = '#000000';
$title='';
@@ -44,12 +44,13 @@ class htmlChajian extends Chajian{
if($title != ''){
$s .= '<tr><td colspan="2" align="center" style="border:1px '.$bcolor.' solid;padding:10px;font-size:16px;background:#D2E9FF;">'.$title.'</td></tr>';
}
$pstr = '';
foreach($fields as $fid=>$na){
$val = '';
$sty = 'padding:8px;';
if(isset($arr[$fid]))$val = $arr[$fid];
if(isset($arr[$fid.'_style']))$sty .= $arr[$fid.'_style'];
$s .= '<tr><td align="right" nowrap style="border:1px '.$bcolor.' solid;padding:5px 8px;">'.$na.'</td><td style="border:1px '.$bcolor.' solid;'.$sty.'" align="left">'.$val.'</td></tr>';
$s .= '<tr><td align="right" nowrap style="border:1px '.$bcolor.' solid;'.$pstr.'padding:5px 8px;">'.$na.'</td><td style="border:1px '.$bcolor.' solid;'.$pstr.''.$sty.'" align="left">'.$val.'</td></tr>';
}
$s .='</table>';
@@ -84,7 +85,7 @@ class htmlChajian extends Chajian{
$head[] = explode(',', $te_str);
}
$txt = '';
$style = "padding:3px;border:1px ".$bor." solid";
$style = "padding:3px;border:1px ".$bor." solid;border:var(--border)";
if($lx=='print')$style = "border:.5pt #000000 solid";
$txt .= '<table width="100%" class="createrows" border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;" >';
$txt .= '<tr>';
@@ -95,7 +96,7 @@ class htmlChajian extends Chajian{
if($h==0)$stls.=';border-left:none';
if($h==$lens)$stls.=';border-right:none';
}
$txt.= '<td style="'.$stls.'" bgcolor="#eeeeee" align="'.$head[$h][2].'"><b>'.$head[$h][1].'</b></td>';
$txt.= '<td style="background:#eeeeee; background:var(--main-hgcolor);'.$stls.'" align="'.$head[$h][2].'"><b>'.$head[$h][1].'</b></td>';
}
$txt .= '</tr>';
foreach($rows as $k=>$rs){
@@ -125,27 +126,27 @@ class htmlChajian extends Chajian{
{
if($lx=='')$lx='xls';
$borst = '.5pt';
$sty = 'style="white-space:nowrap;border:'.$borst.' solid #000000;font-size:12px;"';
$sty = 'style="white-space:nowrap;border:'.$borst.' solid #000000;font-size:12px;{0}"';
$s = '<html><head><meta charset="utf-8"><title>'.$title.'</title></head><body>';
$s .= '<table border="0" style="border-collapse:collapse;">';
$hlen = 1;
$s1='<tr height="30"><td '.$sty.'>序号</td>';
$s1='<tr height="30"><td '.$this->getstyle($sty).'>序号</td>';
foreach($headArr as $na){
$hlen++;
$s1.='<td '.$sty.'>'.$na.'</td>';
$s1.='<td '.$this->getstyle($sty).'>'.$na.'</td>';
}
$s1.='</tr>';
$s.='<tr height="40"><td '.$sty.' colspan="'.$hlen.'">'.$title.'</td></tr>';
$s.='<tr height="40"><td '.$this->getstyle($sty).' colspan="'.$hlen.'">'.$title.'</td></tr>';
$s.=$s1;
foreach($rows as $k=>$rs){
$atr = '';
if(isset($rs['trbgcolor']))$atr=' bgcolor="'.$rs['trbgcolor'].'"';
$s.='<tr height="26"'.$atr.'>';
$s.='<td align="center" '.$sty.'>'.($k+1).'</td>';
$s.='<td align="center" '.$this->getstyle($sty).'>'.($k+1).'</td>';
foreach($headArr as $kf=>$na){
$val = '';
if(isset($rs[$kf]))$val=$rs[$kf];
$s.='<td '.$sty.'>'.$this->execelval($val).'</td>';
$s.='<td '.$this->getstyle($sty,'mso-number-format:\@').'>'.$val.'</td>';
}
$s.='</tr>';
}
@@ -165,14 +166,20 @@ class htmlChajian extends Chajian{
$bo = $this->rock->createtxt(iconv('utf-8','gb2312',$url), $s);
return $url;
}
//超过11位的数字就会变型处理
private function execelval($str)
{
return $str;
if($str!=''){
if(is_numeric($str) && strlen($str)>11)$str=''.$str.'&nbsp;';
}
return $str;
}
private function getstyle($sty, $vs='')
{
return str_replace('{0}',$vs,$sty);
}
@@ -211,15 +218,18 @@ class htmlChajian extends Chajian{
return $bo;
}
public function importdata($fields,$btfid='', $fid='')
private $importerrarr = array();
public function importerrda()
{
return $this->importerrarr;
}
/**
* 导入数据处理
*/
public function importdata($fields,$btfid='', $fid='', $lx=0)
{
$this->importerrarr = array();
if($fid=='')$fid='importcont';
$rows = array();
$val = $this->rock->post($fid);
@@ -227,7 +237,7 @@ class htmlChajian extends Chajian{
$arrs = explode("\n", $val);
$farr = explode(',', $fields);
$fars = explode(',', $btfid);
foreach($arrs as $valss){
foreach($arrs as $xu=>$valss){
$dars = explode(' ', $valss);
$barr = array();
foreach($farr as $k=>$fid){
@@ -236,8 +246,13 @@ class htmlChajian extends Chajian{
}
$bos = true;
foreach($fars as $fids){
if(isset($barr[$fids]) && isempt($barr[$fids]))$bos = false;
if(isset($barr[$fids]) && isempt($barr[$fids])){
$bos = false;
$this->importerrarr[$xu] = ''.$fids.'是必须的';
break;
}
}
if($lx==1)$barr['drxu'] = $xu;
if($bos)$rows[] = $barr;
}
return $rows;

View File

@@ -104,12 +104,12 @@ class imageChajian extends Chajian
添加文字水印
$str 添加文字
*/
public function addwater($str,$color='#000000',$size=20,$align='rb')
public function addwater($str,$color='#000000',$size=5,$align='lt')
{
if(!$this->bool)return;
$font = '../fonts/FZZHYJW.TTF'; //方正稚艺简体
$lw = strlen($str)*($size/2);
$lh = $size*0.5;
$font = 'arial.ttf';
$lw = strlen($str)*($size);
$lh = $size*1.5;
$color = $this->color($color,$this->img);
$x = 2;
$y = 2;
@@ -129,7 +129,8 @@ class imageChajian extends Chajian
$y = ($this->h - $lh) * 0.5;
break;
}
imagettftext($this->img, $size,0, $x, $y, $color, $font, $str);
//imagettftext($this->img, $size,0, $x, $y, $color, $font, $str);
imagestring($this->img, $size, $x, $y, $str, $color);
$sapath = str_replace('.'.$this->ext.'', '_water.'.$this->ext.'', $this->path);
$sapath = $this->path;
$this->saveas($sapath, $this->img);//另存为

View File

@@ -32,7 +32,7 @@
class imapChajian extends Chajian
{
private $supportbool = true;
private $supportbool = true,$marubox,$struck_tearr;
protected function initChajian()
{

View File

@@ -63,7 +63,7 @@ class inputChajian extends Chajian
$str = '<input class="inputs" style="border:none;background:none" name="base_sericnum" value="'.$this->flow->createnum().'" readonly>';
}
if($fid=='file_content'){
$str = '<input name="fileid" type="hidden" id="fileidview-inputEl"><div id="view_fileidview" style="width:98%;height:auto;min-height:60px;border:1px #cccccc solid; background:white;overflow:auto"></div><div id="fileupaddbtn"><a href="javascript:;" class="blue" onclick="c.upload()"><u>+添加文件</u></a></div>';
$str = '<input name="fileid" type="hidden" id="fileidview-inputEl"><div id="view_fileidview" style="height:auto;min-height:60px;border:1px #cccccc solid;border:var(--border); background:white;background:var(--main-bgcolor);border-radius:5px;;overflow:auto"></div><div id="fileupaddbtn"><a href="javascript:;" class="blue" onclick="c.upload()"><u>+添加文件</u></a></div>';
}
if($fid=='删'){
@@ -127,7 +127,7 @@ class inputChajian extends Chajian
$onblue = ' onblur="c.inputblur(this, '.$iszb.')"';
$iszhang= false;
if($type=='text' && !isempt($data)){
$attr.=' onkeyup="c.autocomplete(this,\''.$data.'\','.$a['id'].', '.$iszb.',event)" onclick="this.onkeyup()"';
$attr.=' onclick="c.autocomplete(this,\''.$data.'\','.$a['id'].', '.$iszb.',event)"';
}
$str = '<input class="inputs" type="text" value="'.$val.'" '.$attr.''.$onblue.''.$styles.''.$lenstr.' name="'.$fname.'">';
@@ -202,18 +202,17 @@ class inputChajian extends Chajian
));
}
if($type=='selectdatafalse' || $type=='selectdatatrue'){
$str = '<table width="98%" cellpadding="0" border="0"><tr><td width="100%"><input '.$attr.''.$onblue.''.$styles.' class="inputs" style="width:99%" value="'.$val.'" readonly type="text" name="'.$fname.'"></td>';
$str .= '<td nowrap>';
$str = '<div class="btn-group"><input '.$attr.''.$onblue.''.$styles.' class="inputs" style="flex:1" value="'.$val.'" readonly type="text" name="'.$fname.'">';
if($isbt=='0')$str .= '<button onclick="c.selectdataclear(\''.$fname.'\',\''.$data.'\','.$iszb.')" class="webbtn" type="button">x</button>';
$str .= '<button type="button" onclick="c.selectdata(\''.$data.'\','.substr($type,10).',\''.$fname.'\',\''.$fieldname.'\','.$iszb.')" class="webbtn">选</button></td></tr></table>';
$str .= '<button type="button" onclick="c.selectdata(\''.$data.'\','.substr($type,10).',\''.$fname.'\',\''.$fieldname.'\','.$iszb.')" class="webbtn">选</button></div>';
}
if($type=='ditumap'){
$zbnae = $data;
if($iszb>0)$zbnae = ''.($iszb-1).''.$leox.'';
$str = '<table width="99%" cellpadding="0" border="0"><tr><td width="100%"><input '.$attr.''.$onblue.''.$styles.''.$lenstr.' class="inputs" style="width:99%" value="'.$val.'" type="text" name="'.$fname.'"></td>';
$str .= '<td nowrap>';
$str = '<div class="btn-group"><input '.$attr.''.$onblue.''.$styles.''.$lenstr.' class="inputs" style="flex:1" value="'.$val.'" type="text" name="'.$fname.'">';
if($isbt=='0')$str .= '<button onclick="c.selectmapclear(\''.$fname.'\',\''.$zbnae.'\','.$iszb.')" class="webbtn" type="button">x</button>';
$str .= '<button type="button" onclick="c.selectmap(\''.$fname.'\',\''.$zbnae.'\',\''.$fieldname.'\','.$iszb.')" class="webbtn">选</button></td></tr></table>';
if(contain($this->rock->HTTPweb, 'XINHUOAAPP'))$str .= '<button onclick="c.selectlocation(\''.$fname.'\',\''.$zbnae.'\','.$iszb.')" class="webbtn" type="button">定位</button>';
$str .= '<button type="button" onclick="c.selectmap(\''.$fname.'\',\''.$zbnae.'\',\''.$fieldname.'\','.$iszb.')" class="webbtn">选</button></div>';
}
if($type=='htmlediter'){
$iszhang= false;
@@ -233,12 +232,12 @@ class inputChajian extends Chajian
}
if($type=='uploadfile'){
$str = '<input name="'.$fname.'" value="'.$val.'" type="hidden">';
$str.= '<div style="display:inline-block" id="fileview_'.$fname.'"><div onclick="c.uploadfilei(\''.$fname.'\',\''.$a['attr'].'\')" style="display:;border:dashed 1px #cccccc" id="'.$fname.'_divadd" class="upload_items"><img class="imgs" src="images/jia.png"></div></div>';
$str.= '<div style="display:inline-block" id="fileview_'.$fname.'"><div onclick="c.uploadfilei(\''.$fname.'\',\''.$a['attr'].'\')" style="display:;border:dashed 1px rgba(0,0,0,0.1)" id="'.$fname.'_divadd" class="upload_items"><img class="imgs" src="images/jia.png"></div></div>';
$str.= '<div style="display:none" tsye="file" tnam="'.$fname.'" tdata="'.$data.'" id="filed_'.$fname.'"><input type="file" style="width:120px" multiple="multiple" id="filed_'.$fname.'_inp"></div>';
}
if($type=='graph'){
$str = '<input name="'.$fname.'" value="'.$val.'" type="hidden">';
$str.= '<div id="graphview_'.$fname.'" >';
$str.= '<div id="graphview_'.$fname.'" class="btn-group">';
$str.= '<button type="button" onclick="c.autograph(\''.$fname.'\',0)" class="webbtn">手写</button><button type="button" onclick="c.autograph(\''.$fname.'\',1)" class="webbtn">引入</button><button onclick="c.autograph(\''.$fname.'\',2)" class="webbtn" type="button">x</button></div>';
}
if($type=='auto'){
@@ -289,8 +288,8 @@ class inputChajian extends Chajian
$_vals0 = $valea[0];
$_vals1 = arrvalue($valea,1, $oarr['valueid']);
$str = '<table width="99%" cellpadding="0" border="0"><tr><td width="100%"><input class="inputs" style="width:99%" '.$oarr['attr'].' placeholder="'.$oarr['placeholder'].'" id="change'.$fname.'" value="'.$_vals0.'" readonly type="text" name="'.$fname.'"><input name="'.$zbnae.'" value="'.$_vals1.'" id="change'.$fname.'_id" type="hidden"></td>';
$str .= '<td nowrap><button onclick="js.changeclear(\'change'.$fname.'\')" class="webbtn" type="button">x</button><button id="btnchange_'.$fname.'" onclick="js.changeuser(\'change'.$fname.'\',\''.$type.'\',\''.$oarr['title'].'\' ,{changerange:\''.$oarr['changerange'].'\'})" type="button" class="webbtn">选</button></td></tr></table>';
$str = '<div class="btn-group"><input class="inputs" style="flex:1" '.$oarr['attr'].' placeholder="'.$oarr['placeholder'].'" id="change'.$fname.'" value="'.$_vals0.'" readonly type="text" name="'.$fname.'"><input name="'.$zbnae.'" value="'.$_vals1.'" id="change'.$fname.'_id" type="hidden">';
$str .= '<button onclick="js.changeclear(\'change'.$fname.'\')" class="webbtn" type="button">x</button><button id="btnchange_'.$fname.'" onclick="js.changeuser(\'change'.$fname.'\',\''.$type.'\',\''.$oarr['title'].'\' ,{changerange:\''.$oarr['changerange'].'\'})" type="button" class="webbtn">选</button></div>';
return $str;
}
@@ -326,6 +325,11 @@ class inputChajian extends Chajian
}
}
//20250722从模块中读取做数据源
if(substr($datanum,0,5)=='rmod:'){
return $this->modestore($datanum);
}
//2021-02-26新增新的数据源,开头
if(substr($datanum,0,1)==','){
return $this->sqlstore($datanum);
@@ -386,6 +390,7 @@ class inputChajian extends Chajian
$barr[] = array(
'name' => $rs[1],
'value' => $rs[0],
'color' => $rs[2]
);
}
$fopt = $barr;
@@ -436,6 +441,29 @@ class inputChajian extends Chajian
return $rows;
}
/**
* 模块数据 20250722添加
*/
public function modestore($act)
{
$rows = array();
if(!$act)return $rows;
$acta = explode(',',substr($act,5));
$cana = explode('|',$acta[0]);
$flow = m('flow')->initflow($cana[0]);
$rowd = $flow->getflowrows($this->adminid, $cana[1], -1);
if($rowd)foreach($rowd as $k=>$rs){
$sname = '';
if(isset($cana[4]))$sname = $this->rock->reparr($cana[4], $rs);
$rows[] = array(
'value' => $rs[$cana[3]],
'name' => $this->rock->reparr($cana[2], $rs),
'subname' => $sname
);
}
return $rows;
}
/**
* 创建签名图片生成的
*/

View File

@@ -1,4 +1,5 @@
<?php
//腾讯地图的。
class mapqqChajian extends Chajian{
private $mapqq_key = '';
@@ -12,7 +13,7 @@ class mapqqChajian extends Chajian{
{
$key = getconfig('qqmapkey');
if(!$key){
$key = $this->rock->jm->base64decode('NTVRQlotSkdZTE8tQkFMV1gtU1pFNEgtNVNWNUstSkNGVjc:');
$key = $this->rock->jm->base64decode('T0I0QlotRDRXM1UtQjdWVk8tNFBKV1ctNlRLREotV1BCNzc:');
}else{
$this->mapqq_key = $key;
}

View File

@@ -48,6 +48,33 @@ class qcloudCosChajian extends Chajian{
return $ret;
}
//上传
public function uploadFile($path)
{
$ret = $this->upload(ROOT_PATH.'/'.$path,'', $path);
if(!$ret)return returnerror();
if(!isset($ret['url']))return returnerror();
$barr = returnsuccess();
$barr['url'] = $ret['url'];
return $barr;
}
/**
* 简单上传要调用
*/
public function uploadBase($path)
{
if(getconfig('qcloudCos_autoup')){
return $this->uploadFile($path);
}else{
if(getconfig('alioss_autoup')){
$obj = c('alioss');
if(method_exists($obj, 'uploadFile'))return $obj->uploadFile($path);
}
}
return returnerror();
}
/**
* 创建文件夹
*/

View File

@@ -5,21 +5,24 @@
class rockeditChajian extends Chajian{
public $officebj_url = '';
private $officebj_urls = '';
protected function initChajian()
{
//$urs = $this->rock->jm->base64decode('aHR0cHM6Ly9kb2NzLnR1emlvYS5jb20vb2ZmaWNlLw::');
$urs = $this->rock->jm->base64decode('aHR0cDovL29mZmljZS5yb2Nrb2EuY29tLw::');
$url = getconfig('officebj_url', $urs);
$this->agentkey = getconfig('officebj_key');
if(substr($url,-1)!='/')$url.='/';
$this->updatekel = $url;
$this->updatekey = $url.'api.php';
$this->officebj_url = $url;
$this->officebj_urls = $url.'api.php';
}
public function geturlstr($mod, $act, $can=array())
{
$url = $this->updatekey;
$url = $this->officebj_urls;
$url.= '?m='.$mod.'&a='.$act.'';
$url.= '&host='.$this->rock->jm->base64encode(HOST).'&ip='.$this->rock->ip.'&xinhukey='.getconfig('xinhukey').'';
$url.= '&adminid='.$this->adminid.'';
@@ -73,6 +76,7 @@ class rockeditChajian extends Chajian{
$filepath = $filepathout;
$recedata = $filepath;
}
if(substr($filepath,0,4)=='http' && !$recedata)$recedata = $filepath;
if(isempt($onlynum)){
$onlynum = md5(''.$this->rock->jm->getRandkey().date('YmdHis').'file'.$id.'');
@@ -93,7 +97,7 @@ class rockeditChajian extends Chajian{
$type = $data['type'];
$gokey = $data['gokey'];
$gourl = arrvalue($data,'gourl');
if(isempt($gourl))$gourl = $this->updatekel;
if(isempt($gourl))$gourl = $this->officebj_url;
$bsar = $data;
if($type=='0'){
if($recedata=='')$recedata = $this->rock->jm->base64encode(file_get_contents($filepath));
@@ -121,8 +125,33 @@ class rockeditChajian extends Chajian{
$callurl = $this->rock->getouturl().'api.php?m=upload&a=upfilevb&fileid='.$id.'&adminid='.$this->adminid.'&token='.$admintoken.'';
$url.='&callurl='.$this->rock->jm->base64encode($callurl).'';
}
$bsar['url'] = $url;
$bsar['url'] = 'index.php?m=public&a=goto&url='.urlencode($url).'';
}
return returnsuccess($bsar);
}
/**
* 获取推送配置
*/
public function getwsinfo($cans)
{
$barr = $this->getdata('file','wsinfo', $cans);
if(!$barr['success'])return '';
return $barr['data'];
}
/**
* 跳转地址获取
*/
public function gotourl($gourl,$gokey,$filenum, $otype, $token, $id)
{
if(!$gourl)$gourl = $this->officebj_url;
$url = $gourl.'api.php?m=file&a=goto&filenum='.$filenum.'&optid='.$this->adminid.'&gokey='.$gokey.'&otype='.$otype.'';
if($otype==0){
$callurl = $this->rock->getouturl().'api.php?m=upload&a=upfilevb&fileid='.$id.'&adminid='.$this->adminid.'&token='.$token.'';
$url.='&callurl='.$this->rock->jm->base64encode($callurl).'';
}
return 'index.php?m=public&a=goto&url='.urlencode($url).'';
}
}

View File

@@ -98,58 +98,33 @@ class rockfileChajian extends Chajian{
*/
public function uploadfile($fileid)
{
$frs = m('file')->getone($fileid);
$fobj = m('file');
$frs = $fobj->getone($fileid);
if(!$frs)return returnerror('1');
$path = ROOT_PATH.'/'.$frs['filepath'];
if(!file_exists($path))return returnerror('404');
$barr = $this->upload($path, array(
$url = $this->geturlstr('upload','upfile', array(
'optid' => $frs['optid'],
'noasyn' => 'no', //no和yes
'fileexs' => $frs['fileext'],
'optname' => $this->rock->jm->base64encode($frs['optname']),
'filename' => $this->rock->jm->base64encode($frs['filename']),
'optname' => $this->rock->jm->base64encode($frs['optname'])
));
if(!$barr['success'])return $barr;
$data = $barr['data'];
$result = c('curl')->postcurl($url, array('file' => new CURLFile($path, '', $frs['filename'])), 1);
if(!$result)return returnerror('errors');
if(substr($result,0,1)!='{')return returnerror($result);
$data = json_decode($result, true);
$filenum = arrvalue($data, 'filenum');
$thumbpath = arrvalue($data, 'thumbpath');
if($filenum){
$guar['filenum'] = $filenum;
if($thumbpath)$guar['thumbplat'] = $thumbpath;
m('file')->update($guar,$fileid);
$guar['filenum'] = $filenum;
if($fobj->isimg($frs['fileext']))$guar['thumbplat'] = $thumbpath;
$fobj->update($guar,$fileid);
unlink($path);
$path = ROOT_PATH.'/'.$frs['thumbpath'];
if($path && file_exists($path))unlink($path);
}
return $barr;
}
/**
* 上传文件(分割发送)
*/
public function upload($path,$upcs=array(), $fcs=0.5)
{
if(!file_exists($path))return returnerror('404');
$oi = 0;
$fp = fopen($path,'rb');
$filesize= filesize($path);
$fileext = c('upfile')->getext($path);
$size = $fcs*1024*1024;
$zong = ceil($filesize/$size);
if($zong<=0)$zong = 1;
$barr = false;
$biaoshi = rand(100000,999999);
while(!feof($fp)){
$cont = fread($fp, $size);
$conts= base64_encode($cont);
$upcan= array('ci'=>$oi,'biaoshi'=>$biaoshi,'zong'=>$zong,'filesize' => $filesize,'fileext'=>$fileext);
foreach($upcs as $k=>$v)$upcan[$k] = $v;
$barr = $this->postdata('upfile','index', $conts, $upcan);
if(!$barr['success'])break;
$oi++;
}
fclose ($fp);
if($barr)return $barr;
return returnerror('无效文件');
return returnsuccess();
}
}

View File

@@ -0,0 +1,62 @@
<?php
/**
* 客服
*/
class rockkefuChajian extends Chajian{
public $openkey,$updatekel,$updatekey;
protected function initChajian()
{
$url = getconfig('rockkefu_url');
$urlb = getconfig('rockkefu_localurl');
if($urlb)$url = $urlb;
$this->openkey = getconfig('rockkefu_key');
if(substr($url,-1)!='/')$url.='/';
$this->updatekel = $url;
$this->updatekey = $url.'api.php';
}
public function geturlstr($mod, $act, $can=array())
{
$url = $this->updatekey;
$url.= '?m='.$mod.'&a='.$act.'';
$url.= '&openkey='.md5($this->openkey).'';
foreach($can as $k=>$v)$url.='&'.$k.'='.$v.'';
return $url;
}
/**
* get获取数据
*/
public function getdata($mod, $act, $can=array())
{
$url = $this->geturlstr($mod, $act, $can);
$cont = c('curl')->getcurl($url);
if(!isempt($cont) && contain($cont, 'success')){
$data = json_decode($cont, true);
}else{
$data = returnerror('无法访问,'.$cont.'');
}
return $data;
}
/**
* post发送数据
*/
public function postdata($mod, $act, $can=array(), $cans=array())
{
$url = $this->geturlstr($mod, $act, $cans);
$cont = c('curl')->postcurl($url, $can);
if(!isempt($cont) && contain($cont, 'success')){
$data = json_decode($cont, true);
}else{
$data = returnerror('无法访问,'.$cont.'');
}
return $data;
}
}

View File

@@ -0,0 +1,131 @@
<?php
/**
* 信呼企业微信平台
* 2024-11-09
*/
class rockwxqyChajian extends Chajian
{
private $platurl = '',$cnum = '';
private $optionobj;
protected function initChajian()
{
$this->platurl = getconfig('rockwxqy_url');
if(!$this->platurl){
$this->platurl = $this->rock->jm->base64decode('aHR0cHM6Ly93eHF5LnJvY2tvYS5jb20v');
}
$this->optionobj = m('option');
$this->cnum = $this->optionobj->getval('wxqyplat_cnum');
}
public function isconfig()
{
if($this->cnum)return true;
return false;
}
public function geturlstr($act, $can=array(),$mact='')
{
$url = $this->platurl;
$mode= 'wxqyopen';
if($mact)$mode = $mact;
$url.= 'index.php?a='.$act.'&m='.$mode.'';
$url.= '&cnum='.$this->cnum.'&xinhukey='.getconfig('xinhukey').'';
if(is_array($can))foreach($can as $k=>$v)$url.='&'.$k.'='.$v.'';
return $url;
}
public function getdata($act, $can=array(), $data=array())
{
if(!$this->cnum)return returnerror('未设置单位编号');
$url = $this->geturlstr($act, $can);
if($data){
$cont = c('curl')->postcurl($url, $data);
}else{
$cont = c('curl')->getcurl($url);
}
$data = array('code'=>201,'success'=>false,'msg'=>'出错了返回:'.htmlspecialchars($cont).'');
if($cont!='' && substr($cont,0,1)=='{'){
$data = json_decode($cont, true);
}
return $data;
}
public function postdata($act, $data=array(), $can=array())
{
return $this->getdata($act, $can, $data);
}
/**
* 发消息
*/
public function sendmess($id, $title, $mess, $url='',$picurl='')
{
$where = '`uid` in('.$id.')';
if($id=='all')$where = '1=1';
$rows = m('zwxqy_user')->getall(''.$where.' AND `state`=1','userid,agentid,cnum');
if(!$rows)return returnerror('nouser');
$sdata = array(
'touser' => $rows,
'title' => $this->rock->jm->base64encode($title),
'mess' => $this->rock->jm->base64encode($mess),
'url' => $this->rock->jm->base64encode($url),
'picurl' => $this->rock->jm->base64encode($picurl),
);
return $this->postdata('sendmess', json_encode($sdata));
}
/**
* 快捷登录
*/
public function authlogin()
{
$backurl = $this->rock->get('backurl');
$rs = m('zwxqy_user')->getone('`state`=1');
if(!$rs){
$url = '?d=we&m=login&errmsg='.$this->rock->jm->base64encode('没有激活的用户').'';
}else{
$url = $this->platurl.'?m=main&yyid='.$rs['agentid'].'';
}
if($backurl)$url.='&backurl='.$backurl.'';
$this->rock->location($url);
}
/**
* 获取打卡记录(需要用异步)
*/
public function getcheckindata($uids='', $startdt='', $enddt='', $page=1)
{
$obj = m('weixinqy:daka');
if(!method_exists($obj, 'savecheckindata'))return returnerror('未安装企业微信插件');
$where = '`uid` in('.$uids.') AND ';
if($uids=='')$where = '';
$rows = m('zwxqy_user')->getall(''.$where.'`state`=1','userid,uid');
if(!$rows)return returnerror('没有激活的用户');
$userids = $uids = $uarrs = array();
foreach($rows as $k=>$rs){
$userids[] = $rs['userid'];
$uids[] = $rs['uid'];
$uarrs[$rs['userid']] = $rs['uid'];
}
$sdata = array(
'userids' => $userids,
'uids' => $uids,
'startdt' => $startdt,
'enddt' => $enddt,
);
$barr = $this->postdata('checkindata', json_encode($sdata));
if(!$barr['success'])return $barr;
$this->rock->debugs($barr['data'],'djcheckdata');
$data = $barr['data'];
if(isset($data['checkindata'])){
$obj->savecheckindata($data, $uarrs);
}
if(isset($data['hardwaredata'])){
$obj->hardwaredata($data['hardwaredata'], $uarrs);
}
return $barr;
}
}

View File

@@ -15,7 +15,7 @@ class upfileChajian extends Chajian{
private $jpgallext = '|jpg|png|gif|bmp|jpeg|'; //图片格式
//可上传文件类型也就是不保存为uptemp的文件
private $upallfile = '|doc|docx|xls|xlsx|ppt|pptx|pdf|swf|rar|zip|txt|gz|wav|mp3|avi|mp4|flv|wma|chm|apk|amr|log|json|cdr|psd|';
private $upallfile = '|doc|docx|xls|xlsx|ppt|pptx|pdf|swf|rar|zip|txt|gz|wav|mp3|avi|mp4|flv|wma|chm|apk|amr|log|json|cdr|psd|caf|wps|';
/**
初始化
@@ -77,6 +77,8 @@ class upfileChajian extends Chajian{
$bo = false;
$upallfile = $this->jpgallext.$this->upallfile;
if($this->contain($upallfile, '|'.$ext.'|'))$bo = true;
$stype = getconfig('savefiletype');//可直接保存的文件类型
if($stype && !$bo && $this->contain(','.$stype.',', ','.$ext.','))$bo = true;
return $bo;
}

File diff suppressed because one or more lines are too long

View File

@@ -72,8 +72,8 @@ abstract class mysql{
$this->tranend();
$this->close();
}
//记录访问sql日志
if(getconfig('sqllog')){
//记录访问sql日志(2024-10-13弃用)
if(getconfig('sqllog') && 1==2){
$sql = '';
$filstr = 'sqllog_'.date('Y.m.d.H.i.s').'_'.$this->rock->adminid.'_'.str_shuffle('abcdefghijklmn').'.log';
foreach($this->sqlarr as $sql1)$sql.="\n\n$sql1;";
@@ -95,7 +95,7 @@ abstract class mysql{
public function fetch_array($res, $type=0){return false;}
public function insert_id(){return 0;}
public function error(){return '';}
public function error(){return $this->errorlast;}
public function close(){}
@@ -127,13 +127,8 @@ abstract class mysql{
$this->sqlarr[] = $sql;
$this->nowsql = $sql;
$this->count = 0;
try {
$rsbool = $this->querysql($sql);
} catch (Exception $e) {
$rsbool = false;
$this->errormsg = $e->getMessage();
}
$rsbool = $this->querysql($sql);
$this->nowerror = false;
if(!$rsbool)$this->nowerror = true;
@@ -142,7 +137,7 @@ abstract class mysql{
//记录错误sql
if(!$rsbool && $ebo){
$txt = '[ERROR SQL]'.chr(10).''.$sql.''.chr(10).''.chr(10).'[Reason]'.chr(10).''.$this->error().''.chr(10).'';
$txt = '[ERROR SQL]'.chr(10).$sql.chr(10).chr(10).''.$this->getError().''.chr(10).'';
$efile = $this->rock->debug($txt,''.DB_DRIVE.'_sqlerr', true);
$errmsg = str_replace("'",'&#39;', $this->error());
if(!contain($sql, $stabs)){
@@ -154,6 +149,30 @@ abstract class mysql{
return $rsbool;
}
public $isError = false;
private $msgerror = '';
private $msgerrorall = '';
/**
* 设置错误信息
*/
public function setError($str, $sql){
if(!$str)return;
$this->isError = true;
$this->errorlast = $str;
$this->errormsg = $str;
$this->msgerror .= ''.$str.';';
$this->msgerrorall .= ''.$sql.chr(10).chr(10).$str.chr(10).chr(10).'';
}
/**
* 获取错误
*/
public function getError()
{
return $this->msgerrorall;
}
/**
* 返回最后错误信息
*/
@@ -260,12 +279,13 @@ abstract class mysql{
return $this->getall($sql);
}
public function getall($sql)
public function getall($sql, $call=null, $cans=array())
{
$res=$this->query($sql);
$arr=array();
if($res){
while($row=$this->fetch_array($res)){
if($call != null)$row = $call($row, $cans);
$arr[] = $row;
$this->count++;
}
@@ -593,15 +613,14 @@ abstract class mysql{
}
/**
返回表所有字段
* 返回表所有字段,如['id','name']
*/
public function getallfields($table)
{
$finfo = $this->gettablefields($table);
foreach ($finfo as $val) {
$arr[] = $val['name'];
}
return $arr;
$sql = 'SHOW FULL COLUMNS FROM `'.$table.'`';
return $this->getall($sql, function($row){
return $row['Field'];
});
}
public function getfields($table)
@@ -614,8 +633,26 @@ abstract class mysql{
public function gettablefields($table, $base='',$whe='')
{
if($base=='')$base = $this->db_base;
$sql = "select COLUMN_NAME as `name`,DATA_TYPE as `type`,COLUMN_COMMENT as `explain`,COLUMN_TYPE as `types`,`COLUMN_DEFAULT` as dev,`IS_NULLABLE` as isnull,`CHARACTER_MAXIMUM_LENGTH` as lens,`NUMERIC_PRECISION` as xslen1,`NUMERIC_SCALE` as xslen2 from information_schema.COLUMNS where `TABLE_NAME`='$table' and `TABLE_SCHEMA` ='$base' $whe order by `ORDINAL_POSITION`";
return $this->getall($sql);
$sql = "select COLUMN_NAME as `name`,DATA_TYPE as `type`,COLUMN_COMMENT as `explain`,COLUMN_TYPE as `types`,`COLUMN_DEFAULT` as dev,`IS_NULLABLE` as isnull,`CHARACTER_MAXIMUM_LENGTH` as lens,`NUMERIC_PRECISION` as xslen1,`NUMERIC_SCALE` as xslen2 from information_schema.COLUMNS where `TABLE_SCHEMA` ='$base' AND `TABLE_NAME`='$table' $whe order by `ORDINAL_POSITION`";
if($whe)return $this->getall($sql);
$sql = 'SHOW FULL COLUMNS FROM '.$base.'.`'.$table.'`;';
return $this->getall($sql, function($row){
$len = null;$dbtype = strtolower($row['Type']);
$arrs = explode('(',$dbtype);
$type = $arrs[0];
if(isset($arrs[1]))$len = (int)str_replace(')','', $arrs[1]);
return array(
'name' => $row['Field'],
'types' => $row['Type'],
'explain' => $row['Comment'],
'type' => $type,
'dev' => $row['Default'],
'isnull' => $row['Null'],
'lens' => $len,
'xslen1' => 0,
'xslen2' => 0,
);
});
}
/**
@@ -752,6 +789,36 @@ abstract class mysql{
if($pid!=$afid)if($this->rows($table,"`$afield`='$pid'")>0)$this->getpvala($table,$pfields,$jfield,$pid,$afield,$maxlen);
}
}
/**
* 添加字段
*/
public function addFields($table, $fields, $types, $dev=null, $name='')
{
$sql = "ALTER TABLE `$table` ADD `$fields` ".$types."";
if($dev===null){
$sql.=' DEFAULT NULL';
}else if(!isempt($dev)){
$sql.=" DEFAULT '$dev'";
}
if(!isempt($name))$sql.=" COMMENT '$name'";
return $this->query($sql);
}
/**
* 编辑字段
*/
public function editFields($table, $fields, $types, $dev=null, $name='')
{
$sql = "ALTER TABLE `$table` MODIFY `$fields` ".$types."";
if($dev===null){
$sql.=' DEFAULT NULL';
}else if(!isempt($dev)){
$sql.=" DEFAULT '$dev'";
}
if(!isempt($name))$sql.=" COMMENT '$name'";
return $this->query($sql);
}
}
class DB{

View File

@@ -19,7 +19,14 @@ class mysqliClass extends mysql{
protected function querysql($sql)
{
return $this->conn->query($sql);
$roboll = false;
try{
$roboll = $this->conn->query($sql);
} catch (mysqli_sql_exception $e) {
//echo "SQL 错误: " . $e->getMessage();
}
if(!$roboll)$this->setError($this->conn->error, $sql);
return $roboll;
}
public function fetch_array($result, $type = 0)
@@ -58,11 +65,7 @@ class mysqliClass extends mysql{
}
return $arr;
}
public function error()
{
return 'mysqliError:'.$this->conn->error;
}
public function close()
{

View File

@@ -11,6 +11,7 @@ class pdoClass extends mysql{
$this->conn = @new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_base.'', $this->db_user, $this->db_pass);
$this->conn->query("SET NAMES 'utf8'");
$this->selectdb($this->db_base);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$this->conn = null;
$this->errormsg = $e->getMessage();
@@ -23,7 +24,7 @@ class pdoClass extends mysql{
$bo = $this->conn->query($sql);
} catch (PDOException $e) {
$bo = false;
$this->errormsg = $e->getMessage();
$this->setError($e->getMessage(), $sql);
}
return $bo;
}
@@ -53,11 +54,7 @@ class pdoClass extends mysql{
}
}
public function error()
{
$str = $this->conn->errorInfo();
return 'pdoError('.$str[0].'):'.$str[2].''.$this->errormsg.'';
}
public function close()
{

View File

@@ -66,11 +66,11 @@ final class rockClass
{
$ip = '';
if(isset($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
}else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ip = $_SERVER['HTTP_CLIENT_IP']; //这个会被模拟
}else if(isset($_SERVER['REMOTE_ADDR'])){
$ip = $_SERVER['REMOTE_ADDR'];
}else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
$ip= htmlspecialchars($this->xssrepstr($ip));
if($ip){$ipar = explode('.', $ip);foreach($ipar as $ip1)if(!is_numeric($ip1))$ip='';}
@@ -84,6 +84,11 @@ final class rockClass
$this->adminid = (int)$this->session('adminid',0);
$this->adminname= $this->session('adminname');
$this->adminuser= $this->session('adminuser');
$apptheme = $this->get('apptheme');
if(strlen($apptheme)==6)$this->savecookie('apptheme', $apptheme);
if(!$apptheme)$apptheme = $this->cookie('apptheme');
if(strlen($apptheme)==6)$GLOBALS['config']['apptheme']='#'.$apptheme.'';
}
public function iconvsql($str,$lx=0)
@@ -251,7 +256,7 @@ final class rockClass
$valn = $valarr;
if(!is_array($valarr))$valn=explode(',',$valarr);
for($i=0;$i<count($arrn);$i++){
setcookie(QOM.$arrn[$i],$valn[$i], $time, $path,'');
@setcookie(QOM.$arrn[$i],$valn[$i], $time, $path,'');
}
}

View File

@@ -277,7 +277,7 @@ function lang($str,$lx='')
{
if(!$str)return $str;
$da = arrvalue($GLOBALS,'langdata');
if(!$da)return $str;
if(!$da || !isset($da['xuhao']))return $str;
$xuhao = $da['xuhao'];
$key = 'data'.$lx.'';
if(!isset($da[$key])){

View File

@@ -15,8 +15,9 @@ js.dw = {
//开始定位
init:function(isgzh){
var dws = navigator.userAgent;
if(dws.indexOf('REIMPLAT')>0)return;
var dws = navigator.userAgent;
this.ISAPP = dws.indexOf('XINHUOA')>0;
if(dws.indexOf('REIMPLAT')>0 || this.ISAPP)return;
if(openfrom=='nppandroid' || openfrom=='nppios')return;
if(isgzh==1){
js.jssdkwxgzh();
@@ -36,10 +37,9 @@ js.dw = {
start:function(){
if(this.dwbool)return;
this.successbo = false;
this.dwbool = true;
this.chaoshi();
this.ondwstart(js.jssdkstate);
if(js.jssdkstate != 1){
if(js.jssdkstate != 1 || this.ISAPP){
this.htmldingw(0);
}else{
this.wxdingw();
@@ -72,17 +72,19 @@ js.dw = {
var msg;
if(appobj1('startLocation','appbacklocation')){
this.wait('原生app定位中...');
this.dwbool = true;
return;
}
if(window['api'] && api.startLocation){
js.msg();
this.dwbool = true;
if(api.systemType=='ios'){
this.wait(''+api.systemType+'APP定位中...');
api.startLocation({},function(ret,err){
js.dw.appLocationSuc(ret,err);
});
return;
}else if(lx==0){
}else if(lx==0){ //这个是旧版的app里弃用了
this.wait(''+api.systemType+'百度地图定位中...');
if(!this.baiduLocation)this.baiduLocation = api.require('baiduLocation');
if(this.baiduLocation){
@@ -113,24 +115,46 @@ js.dw = {
return;
}
}
if(this.ISAPP)return;
if(!navigator.geolocation){
msg = '不支持浏览器定位';
js.msg('msg',msg);
this.clearchao();
js.dw.ondwerr(msg);
}else{
this.wait('浏览器定位中...');
//本地虚拟定位
if(HOST=='127.0.0.1'){this.showPosition({coords:{latitude:24.51036967,longitude:118.178837299,accuracy:100}});return;}
navigator.geolocation.getCurrentPosition(this.showPosition,this.showError,{
enableHighAccuracy: true,
timeout: 19000,
maximumAge: 3000
});
this.liulqdw();
}
},
liulqdw:function(){
this.wait('浏览器定位中...');
var dwrand = sessionStorage.getItem('dwrand');
if(dwrand){
sessionStorage.setItem('dwrand', '');
this.wait('跳转定位获取中...');
$.ajax({
url:'api.php?m=kaoqin&a=dwget&dwrand='+dwrand+'',
dataType:'json',
success:function(ret){
if(ret.success && ret.data){
js.dw.showPosition({coords:ret.data});
}else{
js.dw.showcuowu('跳转定位错误:'+ret.msg);
}
},
error:function(){
js.dw.showcuowu('跳转定位错误');
}
});
return;
}
if(HOST=='127.0.0.1'){this.showPosition({coords:{latitude:24.51036967,longitude:118.178837299,accuracy:100}});return;}//本地虚拟定位
navigator.geolocation.getCurrentPosition(this.showPosition,this.showError,{
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 3000
});
},
//微信定位
wxdingw:function(){
@@ -179,7 +203,17 @@ js.dw = {
var lat = parseFloat(res.latitude); // 纬度浮点数范围为90 ~ -90
var lng = parseFloat(res.longitude); // 经度浮点数范围为180 ~ -180。
var jid = parseFloat(res.accuracy); // 位置精度
this.geocoder(lat,lng, jid);
var address = res.address;
if(address){
js.msg('none');
res.addressinfo = address+'(精确'+js.float(jid,1)+'米)';
res.latitude = lat;
res.longitude = lng;
res.accuracy = jid;
this.ondwcall(res);
}else{
this.geocoder(lat,lng, jid);
}
},
showError:function (error){
@@ -200,19 +234,47 @@ js.dw = {
msg="未知错误。"
break;
}
clearTimeout(js.dw.timeerrbo)
if(NOWURL.substr(0,5)!='https')msg+='必须使用https访问';
js.dw.timeerrbo = setTimeout(function(){
if(!js.dw.successbo){
js.msg('msg', msg);
js.dw.ondwerr(msg);
js.dw.showErrorss(msg);
}else{
js.msg();
}
},1000);
},
showcuowu:function(msg){
js.msg('msg', msg);
js.dw.ondwerr(msg);
},
showErrorss:function(msg){
js.confirm('点确定继续去定位('+msg+')', function(jg){
if(jg=='yes'){
setTimeout('js.dw.gotodingw()',100);
}else{
js.dw.showcuowu(msg);
}
});
},
gotodingw:function(){
js.alert('跳转在定位中,可点确定读取定位内容。','', function(){
js.reload();
});
var dwrand = js.getrand();
$.ajax({
url:'api.php?m=kaoqin&a=dwurl&dwrand='+dwrand+'',
dataType:'json',
success:function(ret){
var da = ret.data;
sessionStorage.setItem('dwrand', da.dwrand);
js.location(da.url);
}
});
},
showPosition:function(position){
js.dw.successbo = true;
js.tanclose('confirm');
clearTimeout(js.dw.timeerrbo);
js.msg();
var res = position.coords;
@@ -343,6 +405,7 @@ appbacklocation=function(res){
js.dw.dwsuccess({
latitude:latitude,
longitude:longitude,
accuracy:accuracy
accuracy:accuracy,
address:res.address
});
}

View File

@@ -1,5 +1,5 @@
var MODE = '',ACTION = '',DIR='',PROJECT='',HOST='',PARAMS='',QOM='xinhu_',apiurl='',token='',device='',CFROM='pc',ISDEMO=false,NOWURL='',nwjsgui=false,apicloud=false,isapp=false,homestyle=0,maincolor='#1389D3';
var windows = null,ismobile=0;
var windows = null,ismobile=0,clientbool = false;;
function initbody(){}
function bodyunload(){}
function globalbody(){}
@@ -15,11 +15,14 @@ $(document).ready(function(){
device= js.cookie('deviceid');
if(device=='')device=js.now('time');
js.savecookie('deviceid', device, 365);
js.apptheme();
try{
var winobj = js.request('winobj');
if(nwjsgui)window.focus=function(){nw.Window.get().focus()}
if(winobj!='')opener.js.openarr[winobj]=window;
}catch(e){}
var llq = navigator.userAgent;
if(llq.indexOf('REIMCLIENT')>0)clientbool = true;
globalbody();
initbody();
$('body').click(function(e){
@@ -36,7 +39,7 @@ $(document).ready(function(){
var msg = '文件:'+e.filename+'\n行'+e.lineno+'\n错误<font color=red>'+e.message+'</font>';
js.alert(msg,'js错误');
});
if(navigator.userAgent.indexOf('XINHUOA')<0){
if(llq.indexOf('XINHUOA')<0){
if(typeof(api)=='undefined')api={};
}
setTimeout(function(){
@@ -104,6 +107,18 @@ function winWb(){
js.scrolla = function(){
var top = $(document).scrollTop();
js.scroll(top);
}
js.colorTorgb = function(col){
var r=0,g=0,b=0;
if(col.length==7){
r = parseInt(col.substr(1,2),16);
g = parseInt(col.substr(3,2),16);
b = parseInt(col.substr(5,2),16);
}
return [r,g,b];
}
js.apptheme = function(){
}
js.request=function(name,dev,url){
this.requestarr = {};
@@ -184,6 +199,7 @@ js.open=function(url,w,h,wina,can,wjcan){
if(!w)w=750;if(!h)h=500;
var l=(screen.width-w)*0.5,t=(screen.height-h)*0.5-50,rnd = parseInt(Math.random()*50);
if(rnd%2==0){l=l+rnd;t=t-rnd;}else{l=l-rnd;t=t+rnd;}
w = parseInt(w);h = parseInt(h);l = parseInt(l);t = parseInt(t);
if(!can)can={};
var s='resizable=yes,scrollbars=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no';
var a1={'left':''+l+'px','top':''+t+'px','width':''+w+'px','height':''+h+'px'};
@@ -191,14 +207,21 @@ js.open=function(url,w,h,wina,can,wjcan){
for(var o1 in a1)s+=','+o1+'='+a1[o1]+'';
var ja=(url.indexOf('?')>=0)?'&':'?';
if(wina)url+=''+ja+'winobj='+wina+'';
if(typeof(nw)=='undefined'){
if(clientbool){
if(url.substr(0,4)!='http')url=NOWURL+url;
rockclient.rockFun("openWin",{
url:url,
width:w,
height:h
});
}else if(typeof(nw)=='undefined'){
var opar=window.open(url,'',s);
}else{
var ocsn=js.apply({'frame':true,width:w,height:h,x:l,y:t,icon:'images/logo.png'},wjcan);
if(url.substr(0,4)!='http')url=NOWURL+url;
var opar=nw.Window.open(url, ocsn, function(wis){
if(wina)js.openarr[wina]=wis;
if(w>=1000)wis.maximize();
//if(w>=1000)wis.maximize();
});
}
if(wina)this.openarr[wina]=opar;
@@ -283,7 +306,7 @@ js.upload=function(call,can, glx){
if(glx=='url')return url;
var s='',tit=can.title;if(!tit)tit='上传文件';
js.tanbody('uploadwin',tit,500,300,{
html:'<div style="height:280px;overflow:hidden"><iframe src="" name="winiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
html:'<div style="height:280px;overflow:hidden;border-radius:0px 0px 5px 5px"><iframe src="" name="winiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
bbar:'none'
});
winiframe.location.href=url;
@@ -308,7 +331,7 @@ js.winiframe=function(tit, url){
}
var wi = winWb()-150;if(wi>mxw)wi=mxw;if(wi<700)wi=700;
js.tanbody('winiframe',tit,wi,410,{
html:'<div style="height:'+hm+'px;overflow:hidden"><iframe src="" name="openinputiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
html:'<div style="height:'+hm+'px;overflow:hidden;border-radius:0px 0px 5px 5px"><iframe src="" name="openinputiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
bbar:'none'
});
openinputiframe.location.href=url;
@@ -387,6 +410,7 @@ js.fileopt=function(id,lx){
var da = ret.data;
var ext= da.fileext;
var url= da.url;
if(da.type==2)js.importplugin('rockoffice',da.editwsinfo);
if(ismobile==1){
if(da.type==0 && !da.isview && appobj1('openfile', id))return; //不能预览就用app打开
if(da.type==0 && !da.isview && js.fileoptWin(id))return; //不能预览就用app打开
@@ -627,24 +651,24 @@ js.tanbody=function(act,title,w,h,can1){
var s = '',mid = ''+act+'_main',i,d;
var can = js.applyIf(can1,{html:'',btn:[],bodystyle:'',showfun:function(){}});
if(w>winWb())w=winWb()-50;
var s = '<div id="'+mid+'" style="position:fixed;background-color:#ffffff;left:'+l+'px;width:'+w+'px;top:'+t+'px;box-shadow:0px 0px 10px rgba(0,0,0,0.3);border-radius:5px">';
s+=' <div style="-moz-user-select:none;-webkit-user-select:none;user-select:none;border-bottom:1px #eeeeee solid">';
var s = '<div id="'+mid+'" style="position:fixed;background-color:#ffffff;left:'+l+'px;width:'+w+'px;top:'+t+'px;box-shadow:0px 0px 10px rgba(0,0,0,0.3);border-radius:6px"><div style="background:var(--main-bgcolor);border-radius:5px;">';
s+=' <div style="-moz-user-select:none;-webkit-user-select:none;user-select:none;border-bottom:var(--border)">';
s+=' <table border="0" width="100%" style="background:none" cellspacing="0" cellpadding="0"><tr>';
s+=' <td height="50" style="font-size:16px; font-weight:bold;color:'+maincolor+'; padding-left:10px" width="100%" onmousedown="js.move(\''+mid+'\')" id="'+act+'_title">'+title+'</td>';
s+=' <td><div id="'+act+'_spancancel1" style="padding:0px 8px;height:50px;line-height:45px;overflow:hidden;cursor:pointer;color:gray;" onclick="js.tanclose(\''+act+'\')">✖</div></td>';
s+=' <td height="50" style="font-size:16px; font-weight:bold;padding-left:10px" width="100%" onmousedown="js.move(\''+mid+'\')" id="'+act+'_title" class="zhu">'+title+'</td>';
s+=' <td><div id="'+act+'_spancancel1" style="padding:0px 8px;height:50px;line-height:45px;overflow:hidden;cursor:pointer;" onclick="js.tanclose(\''+act+'\')">✖</div></td>';
s+=' </tr></table>';
s+=' </div>';
s+=' <div id="'+act+'_body" style="'+can.bodystyle+'">'+can.html+'</div>';
s+=' <div id="'+act+'_bbar" style="overflow:hidden;padding:12px 10px;background:#f1f1f1;border-radius:0px 0px 5px 5px" align="right"><span id="msgview_'+act+'"></span>';
s+=' <div id="'+act+'_bbar" style="overflow:hidden;padding:12px 10px;background:rgba(0,0,0,0.05);border-radius:0px 0px 5px 5px" align="right"><span id="msgview_'+act+'"></span>';
for(i=0; i<can.btn.length; i++){
d = can.btn[i];
if(!d.bgcolor)d.bgcolor='';
s+='<button type="button" oi="'+i+'" style="border-radius:5px;padding:8px 15px;margin-left:10px;background:'+d.bgcolor+'" id="'+act+'_btn'+i+'" class="webbtn">'+d.text+'</button>';
}
s+=' <button type="button" id="'+act+'_spancancel" onclick="js.tanclose(\''+act+'\')" style="border-radius:5px;padding:8px 15px;background:gray;margin-left:10px" class="webbtn">取消</button>';
s+=' <button type="button" id="'+act+'_spancancel" onclick="js.tanclose(\''+act+'\')" style="border-radius:5px;padding:8px 15px;background:rgba(0,0,0,0.5);margin-left:10px" class="webbtn">取消</button>';
s+=' ';
s+=' </div>';
s+='</div>';
s+='</div></div>';
var str = '<div id="amain_'+act+'" tanbodynew="'+act+'" oncontextmenu="return false" style="position:absolute;height:'+H+'px;width:'+W+'px;background:rgba(0,0,0,0.3);z-index:'+this.tanbodyindex+';left:0px;top:0px">'+s+'</div>';
$('body').append(str);
if(can.closed=='none'){
@@ -653,7 +677,7 @@ js.tanbody=function(act,title,w,h,can1){
}
if(can.bbar=='none'){
$('#'+act+'_bbar').remove();
$('#'+mid+'').append('<div style="height:5px;overflow:hidden;border-radius:0px 0px 5px 5px"></div>');
//$('#'+mid+'').append('<div style="height:5px;overflow:hidden;border-radius:0px 0px 5px 5px"></div>');
}
this.resizetan(act);
can.showfun(act);
@@ -715,7 +739,7 @@ js.getmsg = function(txt,col){
var s = '';
if(!txt)txt='';
if(txt.indexOf('...')>0){
s='<img src="images/loading.gif" height="16" width="16" align="absmiddle"> ';
s=''+this.ling(16)+' ';
col = '#ff6600';
}
s+='<span style="color:'+col+'">'+txt+'</span>';
@@ -762,7 +786,7 @@ js.alertclose=function(){
}
js.tanstyle = 0;
js.confirm = function(txt,fun, tcls, tis, lx,ostr,bstr){
if(!lx)lx=0;
if(!lx)lx=0;js.alertclose();
var h = '<div style="padding:20px;line-height:30px" align="center">',w=320;
if(lx==1)w= 350;
if(w>winWb())w=winWb()-10;
@@ -807,7 +831,7 @@ js.msg = function(lx, txt,sj){
return;
}
if(lx == 'wait'){
txt = '<img src="images/loadings.gif" height="14" width="15" align="absmiddle"> '+txt;
txt = ''+this.ling(14)+' '+txt;
sj = 60;
}
if(lx=='msg')txt='<font color=red>'+txt+'</font>';var t=10;
@@ -972,7 +996,7 @@ js.changeuser=function(na, lx, tits,ocans){
if(typeof(bcar)=='object')for(i in bcar)can[i]=bcar[i];
js.tanbody('changeaction',tits,w,h,{
html:'<div id="showuserssvie" style="height:'+h+'px"><iframe src="" name="winiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
html:'<div id="showuserssvie" style="height:'+h+'px;border-radius:0px 0px 5px 5px"><iframe src="" name="winiframe" width="100%" height="100%" frameborder="0"></iframe></div>',
bbar:'none'
});
@@ -1043,12 +1067,12 @@ js.selectdate=function(o1,inp,lx){
$(o1).rockdatepicker({'view':lx,'initshow':true,'inputid':inp});
return false;
}
js.importjs=function(url,fun){
js.importjs=function(url,fun,dzc){
var sid = jm.base64encode(url);
if(!fun)fun=function(){};
if(get(sid)){fun();return;}
var scr = document.createElement('script');
scr.src = url;
var scr = document.createElement('script');if(!dzc)dzc='';
scr.src = url+dzc;
scr.id = sid;
if(isIE){
scr.onreadystatechange = function(){
@@ -1060,7 +1084,12 @@ js.importjs=function(url,fun){
document.getElementsByTagName('head')[0].appendChild(scr);
return false;
}
js.importplugin = function(na, cans){
var dz = 'mode/plugin/jquery-'+na+'.js';
this.importjs(dz, function(){
js['plugin_'+na+''](cans);
},'?'+this.getrand()+'');
}
js.importcss = function(url){
var sid = jm.base64encode(url);
if(get(sid))return;
@@ -1215,4 +1244,27 @@ js.sendevent=function(typ,na,d){
function lang(ky){
return ky;
}
js.ling = function(w){
var sve = 'style="height:'+w+'px;width:'+w+'px"';
if(!w)sve='';
return '<i '+sve+' class="rock-loading"></i>';
}
js.chajian = function(type, cans){
if(!$[type]){
js.importjs('mode/plugin/jquery-'+type+'.js?'+js.getrand()+'', function(){$[type](cans);});
}else{
$[type](cans);
}
}
function showDebug(strv,col){
var obj = $('div[temp="divt"]'),hei=50;
for(var i=0;i<obj.length;i++)hei+=$(obj[i]).height()+11;
if(!col)col='red';
if(typeof(strv)!='string')strv = JSON.stringify(strv);
var str = '<div temp="divt" onclick="$(\'div[temp=divt]\').remove()" style="background:rgba(0,0,0,0.8);font-size:12px;position:fixed;right:0px;top:'+hei+'px;padding:5px;z-index:99;word-wrap:break-word;word-break:break-all;white-space:normal;color:'+col+'">['+js.now('now')+']'+strv+'</div>';
$('body').append(str);
}

View File

@@ -1,50 +1,14 @@
QOM='xinhuwx_'
js.wx={};
js.wx.alert=function(msg,fun,tit, cof1){
$('#weui_dialog_alert_div').remove();
var s='';
if(!tit)tit='系统提示';
s+='<div id="weui_dialog_alert_div" class="weui_dialog_alert" >';
s+='<div class="weui_mask"></div>';
s+='<div class="weui_dialog">';
s+=' <div class="weui_dialog_hd"><strong class="weui_dialog_title">'+tit+'</strong></div>';
s+=' <div class="weui_dialog_bd">'+msg+'</div>';
s+=' <div class="weui_dialog_ft">';
s+=' <a href="javascript:;" id="confirm_btn" sattr="yes" class="weui_btn_dialog primary">确定</a>';
if(cof1==1)s+=' <a href="javascript:;" id="confirm_btn1" sattr="no" class="weui_btn_dialog default">取消</a>';
s+=' </div>';
s+='</div>';
s+='</div>';
$('body').append(s);
function backl(e){
var jg = $(this).attr('sattr');
if(typeof(fun)=='function')fun(jg,this);
$('#weui_dialog_alert_div').remove();
return false;
}
$('#confirm_btn1').click(backl);
$('#confirm_btn').click(backl);
js.alertclose();
js.alert(msg,tit, fun);
}
js.wx.confirm=function(msg,fun,tit){
this.alert(msg,fun,tit, 1);
js.confirm(msg,fun,tit);
}
js.wx.prompt=function(tit,msg,fun,nr){
if(!nr)nr='';
if(apicloud){
api.prompt({
buttons: ['确定', '取消'],
text:nr,title:tit,msg:msg
}, function(ret, err) {
var index = ret.buttonIndex;
if(index==1)fun(ret.text);
});
return;
}
function func(lx){
if(lx=='yes')fun(get('prompttxt').value);
}
var msg = '<div align="left">'+msg+'</div><div align="left"><input autocomplete="off" value="'+nr+'" class="r-input" id="prompttxt" type="text"></div>';
this.alert(msg,func,tit, 1);
js.prompt(tit,msg,function(jg,txt){if(jg=='yes')fun(txt)},nr);
}
js.apiurl = function(m,a,cans){
var url=''+apiurl+'api.php?m='+m+'&a='+a+'';
@@ -115,61 +79,17 @@ js.ajax = function(m,a,d,funs, mod,checs, erfs, glx){
}, 1000*30);
}
js.wx.load=function(txt){
this.unload();
if(txt=='none')return;
if(!txt)txt='加载中...';
var s='';
var t = winHb()-150;
s+='<div id="loadingToastsss" class="weui_loading_toast">'+
'<div class="weui_mask_transparent"></div>'+
'<div class="weui_toast" style="top:'+(t*0.5)+'px">'+
' <div class="weui_loading">'+
' <div class="weui_loading_leaf weui_loading_leaf_0"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_1"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_2"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_3"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_4"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_5"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_6"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_7"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_8"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_9"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_10"></div>'+
' <div class="weui_loading_leaf weui_loading_leaf_11"></div>'+
' </div>'+
' <p class="weui_toast_content">'+txt+'</p>'+
'</div>'+
'</div>';
$('body').append(s);
js.loading(txt);
}
js.wx.unload=function(){
$('#loadingToastsss').remove();
}
js.loading=function(txt){
this.wx.load(txt);
}
js.unloading=function(){
this.wx.unload();
js.unloading();
}
js.wx.msgok=function(txt,fun,ms){
$('#toastssss').remove();
clearTimeout(this.msgtime);
if(txt=='none')return;
if(!ms)ms=3;
var t = winHb()-150;
var s='<div id="toastssss">';
s+='<div class="weui_mask_transparent"></div>';
s+= '<div class="weui_toast" style="top:'+(t*0.5)+'px">';
s+= '<i class="weui_icon_toast"></i>';
s+= '<p class="weui_toast_content">'+txt+'</p>';
s+= '</div>';
s+='</div>';
$('body').append(s);
this.msgtime=setTimeout(function(){
$('#toastssss').remove();
if(typeof(fun)=='function')fun();
}, ms*1000);
if(js.msgok){
js.msgok(txt,fun, ms);
}else{
js.alert(txt,'', fun);
}
}
js.showmenu=function(d){
@@ -382,4 +302,10 @@ function touchclass(cans){
touchnowobj.onlongclick();
this.onlongmenu();
}
}
js.ling = function(w){
var sve = 'style="height:'+w+'px;width:'+w+'px"';
if(!w)sve='';
return '<i '+sve+' class="rock-loading"></i>';
}

View File

@@ -5,11 +5,12 @@
* homepage:www.rockoa.com
*/
var agentarr={},userarr={},grouparr={},cnum='',windowfocus=true,jietubool=false;
var agentarr={},userarr={},grouparr={},cnum='',windowfocus=true,jietubool=false,fileinfoa={};
var reim={
chatobj:{},
maindata:{},
nowtabs:'home',
initci:0,
timeloads:0,
ruloadtime:5*60, //5分钟
@@ -31,7 +32,7 @@ var reim={
//if(sw)$('#centlist').css('width',''+sw+'px');
$(window).resize(this.resize);
$(window).focus(function(){windowfocus=true;im.windowfocus()});
$(window).focus(function(){windowfocus=true;im.windowfocus();reim.lastload();});
$(window).blur(function(){windowfocus=false});
//数秒
setInterval('reim.timeload()', 1000);
@@ -56,7 +57,7 @@ var reim={
inputfile:'allfileinput',
initpdbool:false,
updir:'reimchat',
urlparams:{noasyn:'yes'}, //不需要同步到文件平台上
urlparams:{noasyn:'no',shuiyin:'size'}, //不需要同步到文件平台上
onchange:function(d){
im.sendfileshow(d);
},
@@ -208,7 +209,7 @@ var reim={
getapiurl:function(m,a,lx){
if(lx=='gout')return this.outgroup.geturl(a);
if(lx=='zixun' || lx=='wait')m='rockkefu';
var dzs = 'api.php?m='+m+'&a='+a+'&cfrom=reim';
var dzs = 'api.php?m='+m+'&a='+a+'&cfrom=reim&adminid='+adminid+'&token='+token+'';
if(companynum)dzs+='&dwnum='+companynum+'';
return dzs;
},
@@ -231,6 +232,24 @@ var reim={
}
},''+lx+',json', efun);
},
initloads:function(){
$('#mainreload').html(''+js.ling(12)+' 刷新中...');
this.initload(true);
},
lastload:function(){
if(!this.loadtime)this.loadtime = parseInt(js.now('time') * 0.001);
this.ajax(this.getapiurl('indexreim','loadhit'),{'time':this.loadtime}, function(ret){
var da = ret.data;
reim.lastloads(da);
});
},
lastloads:function(da){
this.loadtime = da.loadtime;
var i,ds=da.rows;
for(i=0;i<ds.length;i++){
this.showhistorys(ds[i], true);
}
},
//初始加载数据
initload:function(bo){
this.initbool = true;
@@ -238,11 +257,13 @@ var reim={
reim.initci++;
reim.showdata(ret.data);
if(bo)reim.reloaduser();
$('#mainreload').html('<i class="icon-refresh"></i> 刷新');
});
},
firstpid:0,
showdata:function(ret){
if(!ret.userjson)return;
this.loadtime = ret.loadtime;
this.lastloaddt = ret.loaddt;
this.maindata.darr = js.decode(ret.deptjson);
this.maindata.uarr = js.decode(ret.userjson);
@@ -334,7 +355,7 @@ var reim={
return;
}
this.searchright.setData(d);
this.searchright.showAt(off.left+1,off.top+25,$('#reim_headercenter').width()-2);
this.searchright.showAt(off.left+1,off.top+30);
},
websocketlink:function(a){
if(this.connectbool){
@@ -471,7 +492,10 @@ var reim={
this.otherlogins();
return;
}
if(d.optdt){
var time = parseInt(js.now('time', d.optdt) * 0.001);
this.loadtime = time;
}
if(lx=='user' || lx=='group'){
if(sendid!=adminid)this.receivechat(d);
}
@@ -566,7 +590,7 @@ var reim={
}
}
var len=ds.length,d,s='',s1,lx;
s='<div style="padding:5px;margin-top:5px;color:#aaaaaa;border-bottom:1px #e1e1e1 solid">会话('+len+')</div>';
s='<div style="padding:5px;margin-top:5px;color:#aaaaaa;border-bottom:var(--border)">会话('+len+')</div>';
for(i=0;i<len;i++){
d = ds[i];
lx= d.type1;
@@ -635,7 +659,7 @@ var reim={
showhistorydata:{},
showhistorys:function(d,pad, lex, glx){
var s,ty,o=$('#historylist'),d1,st,nas=d.names,qz=d.qian;
var num = ''+d.type+'_'+d.receid+'';
var num = ''+d.type+'_'+d.receid+'';if(num==this.nowtabs)lex=true;
this.showhistorydata[num]=d;
$('#history_'+num+'').remove();
st = d.stotal;if(st=='0')st='';
@@ -658,12 +682,18 @@ var reim={
tit+='@'+d.subname+'';
}
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+='<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 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+='</tr></table>';
s = '<div class="lists'+cls+'" rtype="hist" oncontextmenu="reim.historyright(this,event,\''+num+'\')" tsaid="'+d.receid+'" tsaype="'+d.type+'" style="display:flex;align-items:center;" temp="hist" id="history_'+num+'" onclick="reim.openchat(\''+ty+'\',\''+d.receid+'\',\''+d.name+'\',\''+d.face+'\')">';
s+='<div style="padding-right:8px"><div class="img"><img src="'+d.face+'"></div></div>';
s+='<div style="flex:1;overflow:hidden;">';
s+=' <div style="display:flex;align-items:center;">';
s+=' <div style="flex:1;" title="'+tit+'" id="lname_'+num+'" class="name">'+na+''+nas+''+s1+'</div>';
s+=' <span id="'+qz+'_stotal_'+num+'" class="badge red">'+st+'</span>';
s+=' </div>';
s+=' <div style="display:flex;align-items:center;">';
s+=' <div style="flex:1;padding-right:3px" class="huicont">'+strhtml(jm.base64decode(d.cont))+'</div>';
s+=' <div style="color:#aaaaaa;font-size:10px;white-space:nowrap">'+ops+'</div>';
s+=' </div>';
s+='</div>';
s+='</div>';
if(glx)return s;
if(!pad){o.append(s);}else{o.prepend(s)}
@@ -720,7 +750,7 @@ var reim={
if(d.tel==null)d.tel='';
var num = 'userinfo_'+d.id+'';
var s = '<div align="center"><div align="left" style="width:300px;margin-top:50px">';
s+=' <div style="padding-left:70px"><img id="myfacess" onclick="$(this).imgview()" src="'+d.face+'" height="100" width="100" style="border-radius:50%;border:1px #eeeeee solid"></div>';
s+=' <div style="padding-left:70px"><img id="myfacess" onclick="$(this).imgview()" src="'+d.face+'" height="100" width="100" style="border-radius:50%;border:var(--border)"></div>';
if(d.id==adminid)s+='<div style="padding-left:90px"><a href="javascript:;" id="fupbgonet" onclick="reim.upfaceobj.click()" style="font-size:12px">修改头像</a></div>';
s+=' <div style="line-height:30px;padding:10px;padding-left:20px;"><font color=#888888>姓名:</font>'+d.name+'<br><font color=#888888>部门:</font>'+d.deptallname+'<br><font color=#888888>职位:</font>'+d.ranking+'<br><font color=#888888>性别:</font>'+d.sex+'<br><font color=#888888>电话:</font>'+d.tel+'<br><font color=#888888>手机:</font>'+d.mobile+'<br><font color=#888888>邮箱:</font>'+d.email+'</div>';
@@ -779,10 +809,10 @@ var reim={
return;
}
var s = '<div>';
s+='<div id="viewtitle_'+num+'" style="height:50px;overflow:hidden;border-bottom:#dddddd solid 1px;">';
s+='<div id="viewtitle_'+num+'" style="height:50px;overflow:hidden;border-bottom:var(--border);">';
s+='</div>';
var hei = 206;
s+='<div resizeh="'+hei+'" id="viewcontent_'+num+'" style="height:'+(viewheight-hei)+'px;overflow:hidden;position:relative;"><div style="margin-top:50px" align="center"><img src="images/mloading.gif"></div></div>';
s+='<div resizeh="'+hei+'" id="viewcontent_'+num+'" style="height:'+(viewheight-hei)+'px;overflow:hidden;position:relative;"><div style="margin-top:50px;color:#cccccc" align="center">'+js.ling(30)+'</div></div>';
s+='<div class="toolsliao" style="background:none" id="toolsliao_'+num+'">';
s+=' <span title="表情" tools="emts" class="cursor"><i class="icon-heart"></i></span>';
@@ -987,7 +1017,7 @@ var reim={
for(ty in agedt){
a = agedt[ty];
len = a.length;
s+='<div style="color:#aaaaaa;padding-left:20px;margin-bottom:10px;padding:5px;border-bottom:'+sodd+'px solid #eeeeee">&nbsp;&nbsp;'+ty+'</div>';
s+='<div style="color:#aaaaaa;padding-left:20px;margin-bottom:10px;padding:5px;border-bottom-width:'+sodd+'px;border-bottom:var(--border)">&nbsp;&nbsp;'+ty+'</div>';
s+='<div class="agenhclsdiv">';
for(i=0;i<len;i++){
d1 = a[i];
@@ -1033,7 +1063,7 @@ var reim={
this.showbadge('chat');
this.biaoyd('agent',d.id);
var w = 1100,h=600,url = d.urlpc;
var w = screen.width-200,h=screen.height-150,url = d.urlpc;
if(isempt(url)){
url = d.urlm;
if(isempt(url)){
@@ -1089,7 +1119,7 @@ var reim={
reim.clickcogclick(d);
}
});
var d = [{'name':'消息记录',lx:'jl'},{'name':'刷新',lx:'sx'},{'name':'创建会话',lx:'create'},{'name':'修改密码',lx:'pass'}];
var d = [{'name':'消息记录',lx:'jl'},{'name':'刷新',lx:'sx'},{'name':'创建会话',lx:'create'},{'name':'修改密码',lx:'pass'},{'name':'切换主题',lx:'theme'}];
if(companymode)d.push({'name':'切换单位',lx:'qhqy'});
if(nwjsgui)d.push({'name':'下载管理器',lx:'down'});
d.push({'name':'设置',lx:'cog'});
@@ -1112,24 +1142,13 @@ var reim={
location.reload();
}
}
if(lx=='exit'){
this.exitlogin();
}
if(lx=='cog'){
this.cogshow();
}
if(lx=='jl'){
this.openrecord();
}
if(lx=='create'){
this.creategroup();
}
if(lx=='pass'){
this.editpass();
}
if(lx=='qhqy'){
this.changecom();
}
if(lx=='exit')this.exitlogin();
if(lx=='cog')this.cogshow();
if(lx=='jl')this.openrecord();
if(lx=='create')this.creategroup();
if(lx=='pass')this.editpass();
if(lx=='qhqy')this.changecom();
if(lx=='theme')this.changetheme();
if(lx=='down')js.open('?d=reim&m=record&a=download', 630,450,'downs');
},
//创建会话
@@ -1147,6 +1166,19 @@ var reim={
});
return false;
},
changetheme:function(){
var zys = ['#1389D3','#99cc66','#003366','#6666CC','#CC3333','#009966','#333333','#990066','#333300','#333366','#99CC99','#663366','#003399','#338899'];
var h = '<div style="padding:10px"><table height="20px" class="cursor"><tr>';
var nst = '';
for(var i=0;i<zys.length;i++){
nst = (zys[i]==maincolor) ? '✔':'&nbsp;';
h+='<td width="20px" style="color:white;font-size:12px" align="center" onclick="js.location(\'?d=reim&a=xina&apptheme='+zys[i].substr(1)+'\')" bgcolor="'+zys[i]+'">'+nst+'</td>';
}
h+='</tr></table></div>';
js.tanbody('color','切换主题',310,200,{
html:h
});
},
editpass:function(bt,cse){
if(!bt)bt='修改密码';
if(!cse)cse='';
@@ -1176,7 +1208,7 @@ var reim={
});
return;
}
if(nwjsgui){
if(nwjsgui || 1==1){
js.loading('退出中...');
js.ajax(this.getapiurl('login','loginexit'),{},function(ret){
js.setoption('autologin', '0');
@@ -1221,21 +1253,22 @@ var reim={
js.setoption('setchatlistw', ''+kg+'');
},
cogshow:function(){
//nw.Window.open('file:///F:/IIS/demo/webrtc_v5_latest/quick-demo-js/index.html');return;
var chs= (this.getsound())?'checked':'';
var ch1= (this.getzhuom())?'checked':'';
var num = 'userinfo_cogshow';
var s = '<div align="center"><div align="left" style="width:300px;margin-top:50px">';
var s = '<div align="center"><div align="left" style="width:300px;margin-top:40px;padding:15px;background:var(--main-bgcolor);border-radius:5px;border:var(--border)">';
s+=' <div style="line-height:30px"><b>设置</b></div>';
s+=' <div style="padding:10px 0px;border-top:1px #eeeeee solid"><label><input '+ch1+' onclick="reim.setzhuom(this)" type="checkbox">新信息桌面提醒</label></div>';
s+=' <div style="padding:10px 0px;border-top:1px #eeeeee solid"><label><input '+chs+' onclick="reim.setsound(this)" type="checkbox">新信息声音提示</label></div>';
s+=' <div style="padding:10px 0px;border-top:1px #eeeeee solid">提示声音:<select onchange="reim.changesound(this)" id="changesoundid"><option value="web/res/sound/email.mp3">email.mp3</option><option value="web/res/sound/dong.mp3">dong.mp3</option><option value="web/res/sound/todo.ogg">todo.ogg</option><option value="web/res/sound/niu.mp3">niu.mp3</option><option value="web/res/sound/don1.mp3">don1.mp3</option></select></div>';
s+=' <div style="padding:10px 0px;border-top:var(--border)"><label><input '+ch1+' onclick="reim.setzhuom(this)" type="checkbox">新信息桌面提醒</label></div>';
s+=' <div style="padding:10px 0px;border-top:var(--border)"><label><input '+chs+' onclick="reim.setsound(this)" type="checkbox">新信息声音提示</label></div>';
s+=' <div style="padding:10px 0px;border-top:var(--border)">提示声音:<select onchange="reim.changesound(this)" id="changesoundid"><option value="web/res/sound/email.mp3">email.mp3</option><option value="web/res/sound/dong.mp3">dong.mp3</option><option value="web/res/sound/todo.ogg">todo.ogg</option><option value="web/res/sound/niu.mp3">niu.mp3</option><option value="web/res/sound/don1.mp3">don1.mp3</option></select></div>';
chs = 'checked';
ch1 = '';
if(js.getoption('sendkuijie')=='1'){
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:var(--border)">发送快捷键:<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>';
@@ -1243,13 +1276,13 @@ var reim={
var ips = nwjs.getipmac();
var d = nw.process.versions;
var json = nw.App.manifest;
s+='<div style="padding:10px 0px;border-top:1px #eeeeee solid">开机启动:<button type="button" class="cursor" onclick="reim.kaijistart(0)">启动</button>&nbsp;<button type="button" class="cursor" onclick="reim.kaijistart(1)">删除</button>&nbsp;<button type="button" class="cursor" onclick="reim.kaijistart(2)">快捷方式</button></div>';
s+='<div style="padding:10px 0px;border-top:1px #eeeeee solid">我局域网IP'+ips.ip+'</div>';
s+='<div style="padding:10px 0px;border-top:1px #eeeeee solid">我的MAC地址'+ips.mac+'</div>';
s+='<div style="padding:10px 0px;border-top:1px #eeeeee solid">此客户端版本V'+json.version+'内核nwjs-'+d.nw+'</div>';
s+='<div style="padding:10px 0px;border-top:var(--border)">开机启动:<button type="button" class="cursor" onclick="reim.kaijistart(0)">启动</button>&nbsp;<button type="button" class="cursor" onclick="reim.kaijistart(1)">删除</button>&nbsp;<button type="button" class="cursor" onclick="reim.kaijistart(2)">快捷方式</button></div>';
s+='<div style="padding:10px 0px;border-top:var(--border)">我局域网IP'+ips.ip+'</div>';
s+='<div style="padding:10px 0px;border-top:var(--border)">我的MAC地址'+ips.mac+'</div>';
s+='<div style="padding:10px 0px;border-top:var(--border)">此客户端版本V'+json.version+'内核nwjs-'+d.nw+'</div>';
}
s+=' <div style="padding:10px 0px;border-top:1px #eeeeee solid">网络IP'+this.myip+'</div>';
s+=' <div style="padding:10px 0px;border-top:var(--border)">网络IP'+this.myip+'</div>';
s+=' <div style="padding-top:10px;"><input onclick="reim.closetabs(\''+num+'\')" type="button" value="关闭" class="btn btn-danger"></div>';
s+='</div></div>';
this.addtabs(num,s);
@@ -1429,7 +1462,7 @@ function chatcreate(cans){
var iref = (!iref)?false:true;
var minid= 0;
if(iref)minid=this.minid;
if(o1)$(o1).html('<img src="images/loadings.gif" height="14" width="15" align="absmiddle"> 加载中...');
if(o1)$(o1).html(''+js.ling(12)+' 加载中...');
this.boolload = true;
reim.ajax(this.getapiurl('reim','getrecord'),{type:this.type,gid:this.gid,minid:minid,loadci:this.loadci,laiyuan:'not',soulx:this.soulx,soukey:jm.base64encode(this.soukey)},function(ret){
js.unloading();
@@ -1454,6 +1487,7 @@ function chatcreate(cans){
this.showobj.perfectScrollbar();
if(this.sendinfo.uptypes)this.uptypes = this.sendinfo.uptypes;
if(this.sendinfo.uploadurl)this.upurl = this.sendinfo.uploadurl+'&laiyuan=web';
if(this.sendinfo.uploadinfo)fileinfoa[this.type] = this.sendinfo.uploadinfo;
this.showtitle();
}
this.loadci++;
@@ -1495,6 +1529,7 @@ function chatcreate(cans){
nfr1 = js.getoption('filesrc_'+frs.fileid+'');
if(nfr1)frs.thumbpath = nfr1;
}
if(frs)frs.type = this.type;
nr = this.contshozt(frs);
if(nr=='')nr= jm.base64decode(d.cont);
rnd = 'mess_'+sid+'';
@@ -1587,7 +1622,7 @@ function chatcreate(cans){
});
};
this.showhuilist=function(){
var s = '<div id="showuserlist" style="height:250px;overflow:hidden;position:relative"><div align="center" style="padding:10px;"><img src="images/mloading.gif" align="absmiddle">&nbsp;加载人员...</div></div>';
var s = '<div id="showuserlist" style="height:250px;overflow:hidden;position:relative"><div align="center" style="padding:10px;">'+js.ling()+'&nbsp;加载人员...</div></div>';
js.tanbody('syscogshow','会话上人员('+this.usershu+')',480,100,{html:s});
if(!this.userlistarr){
reim.ajax(this.getapiurl('reim','getgroupuser'),{type:this.type,gid:this.gid},function(ret){
@@ -1602,7 +1637,7 @@ function chatcreate(cans){
var sad = this.showtableda(a);
$('#showuserlist').html(sad[0]);
$('#showuserlist').perfectScrollbar();
$('#msgview_syscogshow').html('<span style="font-size:12px;color:#888888">右键人名可以@TA'+sad[1]+'人在线</span>');
$('#msgview_syscogshow').html('<span style="font-size:12px;">右键人名可以@TA'+sad[1]+'人在线</span>');
$('#showuserlist').find('div[xuh]').contextmenu(function(e){
me.atright(this,e);
return false;
@@ -1623,7 +1658,7 @@ function chatcreate(cans){
d1=reim.nowonlinearr;
if(d1 && d1.reim==1)zx++;
}
s+='<td width="20%"><div style="padding:5px" align="center"><div><img style="height:34px;width:34px;border-radius:50%" onclick="$.imgview({url:this.src})" src="'+a[i].face+'"></div><div xuh="'+i+'" style="color:#888888">'+a[i].name+''+s1+'</div></div></td>';
s+='<td width="20%"><div style="padding:5px" align="center"><div><img style="height:34px;width:34px;border-radius:50%" onclick="$.imgview({url:this.src})" src="'+a[i].face+'"></div><div xuh="'+i+'">'+a[i].name+''+s1+'</div></div></td>';
if(oi%5==0)s+='</tr><tr>';
}
if(len<5)for(i=0;i<5-len;i++)s+='<td width="20%"></td>';
@@ -1845,7 +1880,7 @@ function chatcreate(cans){
};
this.getemts=function(o){
if(!get('aemtsdiv')){
var s = '<div id="aemtsdiv" style="width:400px;height:200px;overflow:hidden;border:1px #cccccc solid;background:white;box-shadow:0px 0px 5px rgba(0,0,0,0.3);left:3px;top:5px;position:absolute;display:none;z-index:6">';
var s = '<div id="aemtsdiv" style="width:400px;height:200px;overflow:hidden;border:var(--border);background:var(--main-bgcolor);left:3px;top:5px;position:absolute;display:none;z-index:6;border-radius:5px" class="box">';
s+='<div style="padding:5px">';
s+=this.getemtsbq('qq',0, 104, 11, 24);
s+='</div>';
@@ -1902,8 +1937,8 @@ function chatcreate(cans){
return;
}
var tm= this.upfilearr,conss='';
if(this.type=='gout')a.fileid = a.filenum;
f = a;
if(this.type=='gout' || this.type=='zixun')a.fileid = a.filenum;
f = a;a.type = this.type;
strformat.upsuccess(a);
if(js.isimg(f.fileext)){
conss = '[图片 '+f.filesizecn+']';
@@ -2099,13 +2134,13 @@ function chatcreate(cans){
var str = '';
var d = ret.wdarr;
if(d.length>0){
str+='<div style="padding:5px 10px;border-bottom:1px solid #eeeeee;font-size:12px;color:gray">未读'+d.length+'人</div>';
str+='<div style="padding:5px 10px;border-bottom:var(--border);font-size:12px;color:gray">未读'+d.length+'人</div>';
var sad = this.showtableda(d);
str+=sad[0];
}
d = ret.ydarr;
if(d.length>0){
str+='<div style="padding:5px 10px;border-bottom:1px solid #eeeeee;font-size:12px;color:gray">已读'+d.length+'人</div>';
str+='<div style="padding:5px 10px;border-bottom:var(--border);font-size:12px;color:gray">已读'+d.length+'人</div>';
var sad = this.showtableda(d);
str+=sad[0];
}
@@ -2155,6 +2190,7 @@ function chatcreate(cans){
}
if(d1.filename){
if(d1.filenum)d1.fileid = d1.filenum;
d1.type = this.type;
s1=strformat.contshozt(d1);
}
s+='<div class="lists" onclick="'+this.objstr+'.clickstar('+i+',this,event)" style="border-bottom-width:1px">';
@@ -2162,7 +2198,7 @@ function chatcreate(cans){
s+='</div>';
}
s+='';
if(s2)s2='<div style="display:inline-block;border-bottom:1px #eeeeee solid;width:100%">'+s2+'</div>';
if(s2)s2='<div style="display:inline-block;border-bottom:var(--border);width:100%">'+s2+'</div>';
$('#showstarlist').html(s2+s);
$('#showstarlist').perfectScrollbar();
$('#msgview_sysshowstar').html('<a onclick="'+this.objstr+'.showstarshu(this)" href="javascript:;">刷新</a>');
@@ -2327,9 +2363,9 @@ strformat.openurl=function(dz){
}
}
strformat.clickfile=function(fid,lx){
strformat.clickfile=function(fid,lx, type){
if(isNaN(fid)){
reim.outgroup.fileopt(fid,lx);
reim.outgroup.fileopt(fid,lx,type);
}else{
js.fileopt(fid,lx);
}
@@ -2464,9 +2500,11 @@ reim.outgroup={
}
}
},
fileopt:function(id1,lx){
fileopt:function(id1,lx, type){
js.loading('加载中...');
reim.ajax(this.geturl('fileinfo'),{lx:lx,id:id1},function(ret){
var surl = this.geturl('fileinfo');
if(fileinfoa[type])surl = fileinfoa[type];
reim.ajax(surl,{lx:lx,id:id1},function(ret){
var da = ret.data,url = da.url;
js.unloading();
if(da.lx==1){

263
js/reim_xina_kefu.js Normal file
View File

@@ -0,0 +1,263 @@
/**
* 信呼在线客服使用
* caratename雨中磐石(rainrock)
* caratetime2021-11-01 21:40:00
* homepage:www.rockoa.com
*/
reim.kefu = {
arrobj:{},
loaddata:function(){
if(!get('centshow3'))return;
this.initreload();
},
initreload:function(){
reim.ajax(reim.getapiurl('reim','rockkefu'),{}, function(ret){
if(ret.data=='ok')reim.kefu.reload();
});
},
reload:function(o1){
$('#changetabs3').show();
if(o1)$(o1).html(''+js.ling(12)+' 刷新中...');
reim.ajax(reim.getapiurl('rockkefu','index'),{}, function(ret){
reim.kefu.showdata(ret.data);
});
},
showdata:function(da){
this.arrobj={};
if(!this.socketob && da.config)this.linkwebsocket(da.config,0);
this.showlishi(da.history,da.zixunarr);
this.showwait(da.waitarr);
},
linkwebsocket:function(conf,lx){
this.reimconf = conf;
clearTimeout(this.webtimes);
if(this.ws)this.ws.close();
if(!conf.wsurl)return;
this.ws = new WebSocket(jm.base64decode(conf.wsurl));
var me = this;
this.myid = conf.id;
this.ws.onopen = function(){
this.send('{"from":"'+conf.recid+'","adminid":"'+conf.id+'","atype":"connect","sendname":"'+conf.name+'"}');
me.socketob = true;
if(lx==1)me.linkwebsocket(conf,2);
};
this.ws.onerror = function(e){
me.socketob = false;
me.reloadWebSocket(false);
};
this.ws.onmessage = function (evt){
var ds = JSON.parse(evt.data);
me.onmessage(ds);
};
this.ws.onclose = function(e){
me.socketob = false;
me.reloadWebSocket(false);
};
},
reloadWebSocket:function(bo){
clearTimeout(this.webtimes);
if(!bo){
this.webtimes=setTimeout('reim.kefu.reloadWebSocket(true)', 5*1000);
}else{
if(!this.socketob)this.linkwebsocket(this.reimconf,1);
}
},
showonline:function(ty,id){
var bh = ''+ty+'_'+id+'';
var d1 = this.arrobj[bh];
var id1 = 'lname_'+bh+'';
if(d1 && get(id1) && d1.online==1)get(id1).style.fontWeight='bold';
},
showoffline:function(ty,id){
var bh = ''+ty+'_'+id+'';
var d1 = this.arrobj[bh];
var id1 = 'lname_'+bh+'';
if(d1 && get(id1))get(id1).style.fontWeight='';
if(d1)d1.online=0;
},
showlishi:function(da,das){
var ds = [],i,d1,id1,bh;
for(i=0;i<da.length;i++){
d1 = da[i];
d1.receid = d1.id;
if(d1.type=='zixun'){
this.arrobj[''+d1.type+'_'+d1.receid+''] = d1;
}
}
for(i=0;i<das.length;i++){
d1 = das[i];
d1.type = 'zixun';
d1.receid = d1.id;
bh = ''+d1.type+'_'+d1.receid+'';
if(!this.arrobj[bh])this.arrobj[bh] = d1;
}
for(d1 in this.arrobj)ds.push(this.arrobj[d1]);
js.setoption('kefulist', JSON.stringify(ds));
reim.showhistory(reim.maindata.harr);
for(i=0;i<ds.length;i++){
d1 = ds[i];
id1 = 'lname_'+d1.type+'_'+d1.id+'';
if(get(id1) && d1.online==1)get(id1).style.fontWeight='bold';
}
},
onmessage:function(d){
//console.log(d);
var lx=d.type;
if(lx=='chehui'){
$('#qipaocont_mess_'+d.messid+'').html(js.getmsg(jm.base64decode(d.mess),'green'));
this.reload();
}
if(lx=='zixun' || lx=='rewait'){
this.reload();
if(d.title){
var d1 = {
gid:d.sendid,
title:jm.base64decode(d.title),
gname:d.gname,
cont:d.mess,
type:'zixun',
face:d.face,
sound:'web/res/sound/todo.ogg'
};
reim.receivechat(d1);
}
}
if(lx=='zxoff'){
this.showoffline('zixun', d.zixunid);
}
if(lx=='kftokf'){
this.reload();
var d1 = {
gid:d.zxid,
title:jm.base64decode(d.title),
gname:d.gname,
cont:d.mess,
type:'zixun',
face:d.face,
sound:'web/res/sound/todo.ogg'
};
reim.receivechat(d1);
}
},
showwait:function(ds){
var i,s,d1;
$('#kefulistwait').html('');
for(i=0;i<ds.length;i++){
d1 = {
'name':ds[i].name,
'type':'wait',
'receid':ds[i].id,
'cont':ds[i].cont,
'face':ds[i].face,
'online':ds[i].online,
'subname':ds[i].subname,
'qian':'wait',
'stotal':ds[i].stotal
}
this.arrobj[''+d1.type+'_'+d1.receid+''] = d1;
s = reim.showhistorys(d1,false, false, true);
$('#kefulistwait').append(s);
if(d1.online==1)this.showonline(d1.type,d1.receid);
}
$('#kefulistwait').append('<div align="center" style="padding:10px;"><a onclick="reim.kefu.reload(this)" style="font-size:12px;color:#bbbbbb" href="javascript:;"><i class="icon-refresh"></i> 刷新咨询</a></div>');
reim.showbadge('wait');
},
openwait:function(d){
var str = ''+d.name+'';
if(d.subname)str+='<span style="color:'+maincolor+';font-size:10px">@'+d.subname+'</span>';
js.confirm('确定要解答“'+str+'”此用户问题吗?', function(jg){
if(jg=='yes')reim.kefu.openwaits(d);
});
},
openwaits:function(d){
$('#history_wait_'+d.receid+'').remove();
this.arrobj[''+d.type+'_'+d.receid+''] = false;
reim.showbadge('wait');
js.loading('加入中...');
reim.ajax(reim.getapiurl('rockkefu','addzixun'),{sid:d.receid}, function(ret){
reim.kefu.reload();
js.unloading();
reim.changetabs(0);
reim.showbadge('wait');
reim.openchat('zixun',d.receid,d.name,d.face);
});
},
showuser:function(sid){
this.nowsid = sid;
js.tanbody('zhuandivkefu','咨询人员信息',350,200,{
html:'<div id="zhuandivkefu" style="height:300px;overflow:hidden;position:relative"><div align="center" style="padding:50px"><img src="images/mloading.gif"></div></div>'
});
reim.ajax(reim.getapiurl('rockkefu','getzxinfo'),{sid:this.nowsid},function(ret){
reim.kefu.showzxinfo(ret.data);
});
},
showzxinfo:function(ret){
var str = '<table style="margin:10px">',k,v,s1;
this.prinfo = ret.prinfo;
this.prfies = ret.prfies;
for(k in ret.prfies){
v = ret.prinfo[k];
if(v==null)v='';
s1 = '<a onclick="reim.kefu.dbleditstr(\''+k+'\')" style="font-size:13px" class="hui">'+ret.prfies[k]+'</a>';
if(k=='web'||k=='ip'||k=='adddt'||k=='zxdt'||k=='agentna'||k=='kefu')s1=ret.prfies[k];
str+='<tr valign="top"><td nowrap class="cursor" style="color:gray;text-align:right;padding:4px 0px">'+s1+'</td><td style="padding:4px 0px" fields="'+k+'" class="wrap">'+v+'</td></tr>';
}
str+='</table>';
$('#zhuandivkefu').html(str);
$('#zhuandivkefu').perfectScrollbar();
js.resizetan('confirm');
},
shareuser:function(sid, slx){
changkfid = 0;
this.nowsid = sid;
var nae = '转给其他客服';
if(slx==1)nae = '加更多客服';
js.confirm('<div id="zhuandivkefu"><img src="images/mloading.gif"></div>',function(jg){
if(jg=='yes')reim.kefu.savezhuan(slx);
},'',nae);
this.zshouwku(false);
},
dbleditstr:function(fid){
var v = this.prinfo[fid],nam=this.prfies[fid];
if(v==null)v='';
js.prompt('请填写内容:','填写“'+nam+'”的值',function(jg,txt,act){
if(jg=='yes'){
reim.kefu.saveval(fid,txt,'zhuandivkefu');
return false;
}
},v);
},
saveval:function(fid,val,act){
js.setmsg('保存中...','','msgview_'+act+'');
reim.ajax(reim.getapiurl('rockkefu','savezixun'),{fid:fid,val:val,sid:this.nowsid},function(ret){
reim.kefu.prinfo[fid] = val;
$('#zhuandivkefu').find('td[fields="'+fid+'"]').html(val);
js.setmsg('','','msgview_'+act+'');
},'post');
},
zshouwku:function(d){
if(!d){
reim.ajax(reim.getapiurl('rockkefu','getkefu'),{sid:this.nowsid},function(ret){reim.kefu.zshouwku(ret.data);});
}else{
this.kefuarr = d;
var i,len=d.length,a1,str='';
for(i=0;i<len;i++){
str+='<label><input type="radio" name="qhkefu" onclick="changkfid=this.value" value="'+d[i].id+'"><img src="'+d[i].face+'" align="absmiddle" width="20" height="20" style="border-radius:50%">'+d[i].name+'';
if(d[i].ranking)str+='<font color=gray>('+d[i].ranking+')</font>';
str+='</label>&nbsp;&nbsp;';
}
$('#zhuandivkefu').html(str);
js.resizetan('confirm');
}
},
savezhuan:function(slx){
if(changkfid==0)return;
js.loading('处理中...');
reim.ajax(reim.getapiurl('rockkefu','savekefu'),{sid:this.nowsid,tid:changkfid,slx:slx},function(ret){
js.msgok(ret.data);
},'get',function(err){
js.msgerror(err.msg);
});
}
}

View File

@@ -152,7 +152,7 @@
s+='</table>';
s+='</form>';
s+='</div>';
s+='<div style="padding:8px 10px;background:#eeeeee;line-height:30px" align="right"><span id="msgview_'+rand+'"></span>&nbsp;';
s+='<div style="padding:8px 10px;background:rgba(0,0,0,0.05);line-height:30px" align="right"><span id="msgview_'+rand+'"></span>&nbsp;';
s+=' <button type="button" class="btn btn-'+can.saveCls+'" disabled id="save_'+rand+'"><i class="icon-save"></i>&nbsp;'+can.saveText+'</button>';
if(can.cancelbtn)s+='&nbsp; <button type="button" class="btn btn-default" id="cancel_'+rand+'"><i class="icon-remove"></i>&nbsp;取消</button>';
s+='</div>';

View File

@@ -77,12 +77,12 @@
this._create = function(){
var a = can.columns;
var s = '',i,len=a.length,val,s1,s2='',cols,s3='',s4='',s5='',le,st,ov,j,j1,na,attr,sty='',hs='',dis,dlen=this.data.length,mcol;
s+='<table id="tablemain_'+rand+'" class="table table-striped table-bordered table-hover" style="margin:0px">';
s+='<table id="tablemain_'+rand+'" class="rock-table table table-striped table-bordered table-hover" style="margin:0px">';
if(!can.hideHeaders){
mcol = window['maincolor'];
if(!mcol)mcol='#3399FF';
s+='<thead><tr><th width="40" thxu="-1"></th>';
if(can.checked)s+='<th width="40"><div align="center"><input id="seltablecheck_'+rand+'" type="checkbox"></div></th>';
s+='<thead><tr><th width="40" thxu="-1" class="rock-table-th"></th>';
if(can.checked)s+='<th width="40" class="rock-table-th"><div align="center"><input id="seltablecheck_'+rand+'" type="checkbox"></div></th>';
var nstr = js.getoption(this.tablekeymd5()),nda={};
if(nstr)nda = JSON.parse(nstr);
for(i=0;i<len;i++){
@@ -96,7 +96,7 @@
if(a[i].width)attr+=' width="'+a[i].width+'"';
if(a[i].tooltip)attr+=' title="'+a[i].tooltip+'"';
if(cols && cols>1)attr+=' colspan="'+cols+'"';
s+='<th nowrap '+attr+' thxu="'+i+'"><div style="'+hs+'" align="'+a[i].align+'" lfields="'+na+'">';
s+='<th nowrap '+attr+' thxu="'+i+'" class="rock-table-th"><div style="'+hs+'" align="'+a[i].align+'" lfields="'+na+'">';
if(can.celleditor&&a[i].editor)s+='<i class="icon-pencil"></i>&nbsp;';
s+=a[i].text;
if(a[i].sortable){
@@ -184,13 +184,15 @@
if(ov.trbgcolor)trsty+='background:'+ov.trbgcolor+';';
if(ov.trstyle)trsty+=''+ov.trstyle+';';
if(trsty)trsty='style="'+trsty+'"';
s='<tr clickbo="false" oi="'+j+'" dataid="'+ov.id+'" '+s3+' '+trsty+'>';
s='<tr class="rock-table-tr" clickbo="false" oi="'+j+'" dataid="'+ov.id+'" '+s3+' '+trsty+'>';
xu = ov.trxu;if(!xu)xu=j+1+can.pageSize*(this.page-1);
s+='<td '+s5+' align="right" width="40">'+xu+'</td>';
s+='<td '+s5+' align="right" width="40" class="rock-table-td">'+xu+'</td>';
if(can.checked){
dis = '';
if(ov.checkdisabled)dis='disabled';
s+='<td align="center" width="40"><input oi="'+j+'" name="tablecheck_'+rand+'" '+dis+' value="'+ov.id+'" type="checkbox"></td>';
s+='<td align="center" class="rock-table-td" width="40">';
if(ov.id)s+='<input oi="'+j+'" name="tablecheck_'+rand+'" '+dis+' value="'+ov.id+'" type="checkbox">';
s+='</td>';
}
for(i=0;i<len;i++){
na = a[i].dataIndex;
@@ -201,15 +203,19 @@
val = '';
this.data[j][na]=val;
}
if(a[i].type == 'checkbox'){
if(ov.colums_type=='hj' && i==0)val='合计';
if(a[i].type == 'checkbox' && ov.id){
s1 = '<img height="20" width="20" src="images/checkbox'+val+'.png">';
}else{
s1 = val;
if(ov[na+'_textcn'])s1 = ov[na+'_textcn'];
}
if(typeof(a[i].renderer)=='function'){
s3 = a[i].renderer(val, ov, j);
if(!isempt(s3))s1=s3;
}
s2 = '';
if(i == 0 && can.tree){
st = ov.stotal;
@@ -227,10 +233,15 @@
s3 = a[i].renderattr(val, ov, j);
if(!isempt(s3))attr+=' '+s3+'';
}
s+='<td align="'+a[i].align+'" '+attr+' style="'+sty+'" row="'+j+'" cell="'+i+'">'+s2+''+s1+'</td>';
if(ov[''+na+'_color'])sty+='color:'+ov[''+na+'_color']+';';
if(ov[''+na+'_style'])sty+=''+ov[''+na+'_style']+';';
if(ov[''+na+'_title'])attr+=' title="'+ov[''+na+'_title']+'"';
s+='<td class="rock-table-td" align="'+a[i].align+'" '+attr+' style="'+sty+'" row="'+j+'" cell="'+i+'">'+s2+''+s1+'</td>';
}
s+='</tr>';
if(s4)s+='<tr><td colspan="'+(len+1)+'">'+s4+'</td></tr>';
if(s4)s+='<tr class="rock-table-tr"><td class="rock-table-td" colspan="'+(len+1)+'">'+s4+'</td></tr>';
return s;
};
this._tredat={};
@@ -300,7 +311,7 @@
var off = obj.offset();
var a = can.columns,s='',i,len=a.length,w1,o2;
if(!get('headerla_'+rand+'')){
s = '<div style="position:fixed;left:'+(off.left)+'px;top:'+(off.top)+'px;width:100%;height:34px;overflow:hidden; background:rgba(255,255,255,0.5);border-bottom:1px #dddddd solid;z-index:2" id="headerla_'+rand+'"></div>';
s = '<div style="position:fixed;left:'+(off.left)+'px;top:'+(off.top)+'px;width:100%;overflow:hidden; background:rgba(255,255,255,0.5);border-bottom:0px #dddddd solid;z-index:2" id="headerla_'+rand+'"></div>';
obj.append(s);
}
var o1 = $('#headerla_'+rand+'');
@@ -308,14 +319,14 @@
o1.css({left:''+(off.left)+'px',top:''+(off.top)+'px',width:''+($('#tablemain_'+rand+'').width())+'px'});
if(o1.html()==''){
s = '';
s+='<table class="table table-striped table-bordered" style="margin:0px" width="100%">';
s+='<tr style="background:white"><th width="40"></th>';
if(can.checked)s+='<th width="40"></th>';
s+='<table class="rock-table table table-striped table-bordered" style="margin:0px" width="100%">';
s+='<tr><th width="40" class="rock-table-th"></th>';
if(can.checked)s+='<th width="40" class="rock-table-th"></th>';
for(i=0;i<len;i++){
o2 = obj.find("div[lfields='"+a[i].dataIndex+"']");
w1 = o2[0].clientWidth-1;
w1 = 'width:'+w1+'px';
s+='<th><div style="'+w1+'" align="'+a[i].align+'">'+o2.html()+'</div></th>';
s+='<th class="rock-table-th"><div style="'+w1+'" align="'+a[i].align+'">'+o2.html()+'</div></th>';
}
s+='</tr>';
s+='</table>';
@@ -335,12 +346,12 @@
w = o1.clientWidth,
h = o1.clientHeight,
at = '',
v = a[fields];
v = a[fields];if(!a.id)return;
$('#edittable_'+rand+'').remove();
if(b.editorbefore && !b.editorbefore(a))return;
if(!b.textmsg)b.textmsg='';
var s = '<div id="edittable_'+rand+'" style="position:absolute;z-index:2;left:'+(l.left)+'px;top:'+(l.top+h)+'px">';
s+='<div style="border:1px #cccccc solid;background:white;padding:10px;box-shadow:0px 0px 10px rgba(0,0,0,0.3); border-radius:10px">';
var s = '<div id="edittable_'+rand+'" style="position:absolute;z-index:2;left:'+(l.left)+'px;top:'+(l.top+h)+'px; background:white;border-radius:15px">';
s+='<div style="border:var(--border);background:var(--main-bgcolor);padding:10px;box-shadow:0px 0px 10px rgba(0,0,0,0.3);border-radius:10px">';
s+=' <div>&nbsp;<b>'+b.text+'</b>&nbsp;<span id="msgteita_'+rand+'">'+b.textmsg+'</span></div>';
s+=' <div class="blank10"></div>';
var wss = 200;
@@ -531,7 +542,7 @@
o1 = $(o2);
cell= parseFloat(o1.attr('cell'));
farr= can.columns[cell];
if(farr.editor)return;//单元格是编辑就退出
if(farr && farr.editor)return;//单元格是编辑就退出
}
can.itemdblclick(this.changedata, oi, e);
};
@@ -555,7 +566,7 @@
this.page = p;
var o1 = $('#tablebody_'+rand+'');
var h= o1.height()-2,w= o1.width()-2;
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:1px;line-height:'+h+'px;top:1px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle">&nbsp;加载中...</div>';
s='<div id="modeshow_'+rand+'" style="height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:1px;line-height:'+h+'px;top:1px;background:rgba(0,0,0,0.2);color:white" align="center">'+js.ling(20)+'&nbsp;加载中...</div>';
o1.append(s);
can.beforeload();
this.bool = true;
@@ -773,7 +784,7 @@
};
this._fanye = function(){
var s = '';
s='<div style="margin-top:10px" class="btn-toolbar" role="toolbar">'+
s='<div style="margin-top:10px;display:flex;align-items:center;">'+
'<div class="btn-group">'+
'<button id="shouye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="首页" class="btn btn-default">&laquo;</button>'+
'<button id="shang_'+rand+'" data-toggle="tooltip" data-placement="top" title="上一页" type="button" disabled class="btn btn-default">&lt;</button>'+
@@ -781,13 +792,13 @@
'<button id="next_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="下一页" disabled class="btn btn-default">&gt;</button>'+
'<button id="lastye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="尾页" disabled class="btn btn-default">&raquo;</button>'+
'</div> '+
'<div class="btn-group">'+
'<div style="margin-left:10px">'+
' <button id="refresh_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="刷新" class="btn btn-default"><i class="icon-refresh"></i></button>'+
'</div> '+
'<div class="btn-group" id="bottomtishi_'+rand+'"></div>'+
'<div class="btn-group" style="float:right; padding-top:3px">'+
'<div style="flex:1;margin:0px 10px" id="bottomtishi_'+rand+'"></div>'+
'<div style="">'+
'<span>共记录<span id="zjilu_'+rand+'">0</span>条</span> &nbsp;'+
'每页<input maxlength="3" onblur="js.number(this)" onfocus="js.focusval=this.value" id="pagesize_'+rand+'" type="number" value="'+can.pageSize+'" style="width:40px;text-align:center;height:24px;border:1px #dddddd solid;margin:0px 2px;font-size:12px">条&nbsp;'+
'每页<input maxlength="3" onblur="js.number(this)" onfocus="js.focusval=this.value" id="pagesize_'+rand+'" type="number" value="'+can.pageSize+'" style="width:40px;text-align:center;height:24px;border:var(--border);margin:0px 2px;font-size:12px;border-radius:5px;background:var(--main-bgcolor)">条&nbsp;'+
'</div>'+
'</div>';
@@ -926,7 +937,7 @@
5、setparams({key:''},true);//设置参数并搜索
6、geturlparams();获取当前Url地址参数,订阅时用到的
*/
if(typeof(bootsSelectColor)!='string')bootsSelectColor= '';
if(typeof(bootsSelectColor)!='string')bootsSelectColor= 'rgba(0,0,0,0.1)';
$.fn.bootstable = function(options){
var defaultVal = {
columns:[], //表头

View File

@@ -31,7 +31,7 @@
if(typeof(a.align)=='undefined')can.columns[i].align='center';
if(a.xtype=='treecolumn')can.columns[i].align='left';
}
s='<div style="position:relative;border:1px #dddddd solid;" class="bootstree" id="treebody_'+rand+'"></div>';
s='<div style="position:relative;border:var(--border);" class="bootstree" id="treebody_'+rand+'"></div>';
obj.html(s);
};
this._create = function(){
@@ -42,7 +42,7 @@
this.changedata = false;
if(!can.hideHeaders){
s+='<div>';
s+='<ul style="border-bottom:1px #dedede solid;border-top-width:0px;margin:0">';
s+='<ul style="border-bottom:var(--border);border-top-width:0px;margin:0">';
if(can.checked)s+='<li style="width:40px;text-align:center"><input id="seltablecheck_'+rand+'" type="checkbox"></li>';
for(i=0;i<len;i++){
hs = '';
@@ -189,7 +189,7 @@
var h= obj.height()-2,
w= obj.width()-2,
s = '';
s='<div id="modeshow_'+rand+'" style="filter:Alpha(opacity=20);opacity:0.2;height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:0px;line-height:'+h+'px;top:0px;background:#000000;color:white" align="center"><img src="images/mloading.gif" align="absmiddle"></div>';
s='<div id="modeshow_'+rand+'" style="height:'+h+'px;width:'+w+'px;overflow:hidden;z-index:3;position:absolute;left:0px;line-height:'+h+'px;top:0px;background:rgba(0,0,0,0.1);color:#555555" align="center">'+js.ling(30)+'</div>';
$('#treebody_'+rand+'').append(s);
this.bool = true;
var parm = can.params;
@@ -257,10 +257,10 @@
};
};
if(typeof(bootsSelectColor)!='string')bootsSelectColor= 'rgba(0,0,0,0.1)';
$.fn.bootstree = function(options){
var defaultVal = {
data:[],rand:'',columns:[],hideHeaders:false,selectColor:'#DFF0D8',method:'GET',
data:[],rand:'',columns:[],hideHeaders:false,selectColor:bootsSelectColor,method:'GET',
itemdblclick:function(){},checked:false,autoLoad:true,url:'',params:{},
itemclick:function(da, index, e){},load:function(){}
};

View File

@@ -416,17 +416,19 @@
/* container */
.ke-container {
display: block;
border: 1px solid #CCCCCC;
border: var(--border);
background-color: #FFF;
border-radius:5px;
overflow: hidden;
margin: 0;
padding: 0;
}
/* toolbar */
.ke-toolbar {
border-bottom: 1px solid #CCC;
border-bottom: var(--border);
background-color: #F0F0EE;
padding: 2px 5px;
background-color: var(--main-vgcolor);
padding: 5px 5px;
text-align: left;
overflow: hidden;
zoom: 1;
@@ -442,7 +444,7 @@
background-image: url(default.png);
}
.ke-toolbar .ke-outline {
border: 1px solid #F0F0EE;
border: 1px solid transparent;
margin: 1px;
padding: 1px 2px;
font-size: 0;
@@ -454,9 +456,11 @@
}
.ke-toolbar .ke-on {
border: 1px solid #5690D2;
border: 1px solid var(--main-color);
}
.ke-toolbar .ke-selected {
border: 1px solid #5690D2;
border: 1px solid var(--main-color);
background-color: #E9EFF6;
}
.ke-toolbar .ke-disabled {
@@ -505,7 +509,8 @@
.ke-statusbar {
position: relative;
background-color: #F0F0EE;
border-top: 1px solid #CCCCCC;
background-color: var(--main-vgcolor);
border-top: var(--border);
font-size: 0;
line-height: 0;
*height: 12px;
@@ -1147,3 +1152,8 @@
text-align: center;
}
.ke-icon-word {
background-position: 0px -720px;
width: 16px;
height: 16px;
}

View File

@@ -1,20 +1,19 @@
/*时间选择器插件样式*/
.rockdatepicker{z-index:9999;box-shadow:2px 2px 2px #cccccc;border:1px #cccccc solid; background-color:#ffffff; left:0px; top:0px; padding:0px}
.rockdatepicker{z-index:9999;box-shadow:2px 2px 2px rgba(0,0,0,0.1);background:white; left:0px; top:0px; padding:0px;border:0.5px rgba(0,0,0,0.2) solid}
.rockdatepicker td{cursor:pointer}
.rockdatepicker td.td00:hover,.rockdatepicker td.td01{background:#dedede}
.rockdatepicker_table td{border:1px #eeeeee solid;}
.rockdatepicker .a{cursor:pointer;border:none;padding:2px 5px;color:#555555}
.rockdatepicker td.td00:hover,.rockdatepicker td.td01{background:rgba(0,0,0,0.1)}
.rockdatepicker_table td{border:var(--border);}
.rockdatepicker .a{cursor:pointer;border:none;padding:2px 5px;}
.rockdatepicker .a:hover{color:red}
.rockdatepicker_span{padding:1px 3px;margin:0px 2px;}
.rockdatepicker_fudong{ position:absolute;padding:2px;border:1px #cccccc solid; background-color:#f8f8f8;z-index:2;box-shadow:2px 2px 2px #cccccc;overflow:auto}
.rockdatepicker_fudong{ position:absolute;padding:2px;border:var(--border); background-color:var(--main-bgcolor);z-index:2;box-shadow:2px 2px 2px rgba(0,0,0,0.1);overflow:auto}
.rockdatepicker_fudong div{padding:0px 5px;cursor:pointer;height:24px;overflow:hidden;line-height:24px}
.rockdatepicker_fudong div:hover{background:#cccccc}
.rockdatepicker_fudong .div01{background:#aaaaaa;color:white}
.rockdatepicker_fudong div:hover{background:rgba(0,0,0,0.1)}
.rockdatepicker_fudong .div01{background:rgba(0,0,0,0.2)}
.rockdatepicker .a02:link,.rockdatepicker .a02:visited{padding:2px 5px;color:#555555}
.rockdatepicker .a02:hover{color:#000000;background:#dddddd}
.rockdatepicker .a03:link,.rockdatepicker .a03:visited{padding:2px 5px;color:#000000;background:#dddddd}
.rockdatepicker .a02:link,.rockdatepicker .a02:visited{padding:2px 5px;color:inherit}
.rockdatepicker .a03:link,.rockdatepicker .a03:visited{padding:2px 5px;background:rgba(0,0,0,0.2);color:inherit}
.rockdatepicker .not:link,.rockdatepicker .not:visited,.rockdatepicker .not{color:#cccccc}
.rockdatepicker .not:hover{background:#ffffff}

View File

@@ -121,7 +121,7 @@
var s= '',oi=0,w=270,h=278;
if(can.view!='time'){
s+=' <div style="background:#eeeeee;height:30px;overflow:hidden">';
s+=' <div style="background:rgba(0,0,0,0.3);height:30px;overflow:hidden">';
s+=' <table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>';
s+=' <td style="padding:0px 4px" class="td00" tdaddclick="-y" title="上一年">〈<td>';
s+=' <td height="30" style="padding:0px 5px" nowrap><span class="rockdatepicker_span" id="rockdatepicker_year'+rand+'">2014</span>年<td>';
@@ -137,7 +137,7 @@
s+=' <div style="height:188px;overflow:hidden" id="rockdatepicker_table'+rand+'" >';
s+=' <table border="0" class="rockdatepicker_table" style="border-collapse:collapse" width="100%" cellspacing="0" cellpadding="0">';
s+=' <tr height="30" bgcolor="#dedede">';
s+=' <tr height="30" style="background:rgba(0,0,0,0.2)">';
for(var d=0; d<7; d++){
s+='<td align="center" width="14.28%">'+this.weekarr[d]+'</td>';
}
@@ -158,12 +158,12 @@
w = 220;h=200;
}
s+=' <div style="line-height:30px">&nbsp; <font color="#888888">选择:</font><span id="rockdatepicker_span'+rand+'"></span>';
s+=' <span><input min="0" max="23" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_h'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_i'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_s'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:1px #cccccc solid;background:none" value="00" maxlength="2"></span>';
s+=' <div style="line-height:30px">&nbsp; 选择:<span id="rockdatepicker_span'+rand+'"></span>';
s+=' <span><input min="0" max="23" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_h'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:var(--border);background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_i'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:var(--border);background:none" value="00" maxlength="2"></span>:';
s+=' <span><input min="0" max="59" onfocus="js.focusval=this.value" onblur="js.number(this)" id="rockdatepicker_input_s'+rand+'" style="width:24px;text-align:center;height:20px;line-height:16px;border:var(--border);background:none" value="00" maxlength="2"></span>';
s+= '</div>';
s+=' <div style="height:30px;overflow:hidden;text-align:right;background:#eeeeee;line-height:28px">';
s+=' <div style="height:30px;overflow:hidden;text-align:right;background:rgba(0,0,0,0.1);line-height:28px">';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_clear'+rand+'">清空</a>&nbsp; ';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_now'+rand+'">现在</a>&nbsp; ';
s+=' <a href="javascript:;" class="a" id="rockdatepicker_queding'+rand+'">确定</a>&nbsp; ';
@@ -172,7 +172,7 @@
var oac = this.createbasic(w,h);
oac.html(s);
oac.html('<div style="background:var(--main-bgcolor)">'+s+'</div>');
this.objtd = oac.find("td[temp='nr']");
oac.find("td[tdaddclick]").click(function(){
@@ -493,7 +493,7 @@
var ma = parseFloat(o1.attr('max'));
o.select();
$('#rockdatepicker_spanselfaei'+rand+'').remove();
var s='<div style="bottom:52px;position:absolute;right:1px;padding:2px;border:1px #cccccc solid;background-color:#ffffff;font-size:14px;text-align:left" id="rockdatepicker_spanselfaei'+rand+'">';
var s='<div style="bottom:52px;position:absolute;right:1px;padding:2px;background-color:var(--main-bgcolor);text-align:left;cursor:pointer;border:var(--border)" id="rockdatepicker_spanselfaei'+rand+'">';
this.inputhis=o;
for(var a=mi;a<=ma;a++){
var ai = this.sa(a);
@@ -519,20 +519,20 @@
var oac = this.createbasic(w,270);
var s = '';
s+='<table border="0" width="100%" id="rockdatepicker_table'+rand+'" cellspacing="0" cellpadding="0"><tr valign="top">';
s+=' <td width="'+w1+'"><div align="center" style="line-height:30px;background:#eeeeee"><a href="javascript:" id="rockdatepicker_yearshang'+rand+'" onclick="return false" class="a02">←</a>&nbsp; 年份&nbsp; <a href="javascript:" id="rockdatepicker_yearxia'+rand+'" onclick="return false" class="a02">→</a> </div><div id="rockdatepicker_yearlist'+rand+'" style="line-height:30px;height:180px;overflow:hidden" align="center"></div></td>';
s+=' <td width="'+w1+'"><div align="center" style="line-height:30px;background:rgba(0,0,0,0.3)"><a href="javascript:" id="rockdatepicker_yearshang'+rand+'" onclick="return false" class="a02">←</a>&nbsp; 年份&nbsp; <a href="javascript:" id="rockdatepicker_yearxia'+rand+'" onclick="return false" class="a02">→</a> </div><div id="rockdatepicker_yearlist'+rand+'" style="line-height:30px;height:180px;overflow:hidden" align="center"></div></td>';
if(lx == 1){
s+=' <td width="2" bgcolor="#cccccc"></td>';
s+=' <td width="109"><div align="center" style="line-height:30px;background:#eeeeee">月份</div><div id="rockdatepicker_monthlist'+rand+'" style="line-height:30px" align="center"></div></td>';
s+=' <td width="109"><div align="center" style="line-height:30px;background:rgba(0,0,0,0.3)">月份</div><div id="rockdatepicker_monthlist'+rand+'" style="line-height:30px" align="center"></div></td>';
}
s+='</tr></table>';
s+='<div style="line-height:30px">&nbsp; <font color="#888888">选择:</font><span id="rockdatepicker_span'+rand+'">'+this.now.Y+'-0'+this.now.d+'</span></div>';
s+='<div style="height:30px;overflow:hidden;text-align:right;background:#eeeeee;line-height:28px">';
s+='<div style="line-height:30px">&nbsp; 选择:<span id="rockdatepicker_span'+rand+'">'+this.now.Y+'-0'+this.now.d+'</span></div>';
s+='<div style="height:30px;overflow:hidden;text-align:right;background:rgba(0,0,0,0.2);line-height:28px">';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_clear'+rand+'">清空</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_now'+rand+'">现在</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_queding'+rand+'">确定</a>';
s+=' <a href="javascript:" onclick="return false" class="a" id="rockdatepicker_close'+rand+'">关闭</a>';
s+='</div>';
oac.html(s);
oac.html('<div style="background:var(--main-bgcolor)">'+s+'</div>');
$('#rockdatepicker_close'+rand+'').click(function(){
me.hidemenu();
});

View File

@@ -152,7 +152,7 @@
if(this.upheight>50){
this.reloadbo = true;
o1.animate({'height':'50px'},200,function(){
o1.html('<img src="images/loading.gif" align="absmiddle"> 刷新中...');
o1.html(''+js.ling(14)+' 刷新中...');
me.ondownsuccess ? me.ondownsuccess(e) : me.ondownok();
});
}else{

View File

@@ -15,10 +15,10 @@
js.msg('none');
if(!fun)fun=function(){};
if(lx=='none')return;
var s = '<div id="rockmodelmsg" onclick="$(this).remove()" align="center" style="position:fixed;left:45%;top:30%;z-index:9999;border-radius:10px; background:rgba(0,0,0,0.7);color:white;font-size:18px;min-width:80px"><div style="padding:30px;">';
var s = '<div id="rockmodelmsg" onclick="$(this).remove()" align="center" style="position:fixed;left:45%;top:30%;z-index:9999;border-radius:10px; background:rgba(0,0,0,0.5);color:white;min-width:80px"><div style="padding:30px;">';
if(lx=='wait'){
if(!txt)txt='处理中...';
s+='<div><img src="images/mloading.gif"></div>';
s+='<div><i style="height:35px;width:35px" class="rock-loading"></i></div>';
s+='<div style="padding-top:5px">'+txt+'</div>';
if(!sj)sj= 60;
}

77
mode/plugin/jquery-rockoffice.js vendored Normal file
View File

@@ -0,0 +1,77 @@
/**
* 在线编辑获取内容的20250606
*/
js.plugin_rockoffice = function(conf){
if(conf){
this.plugin_rockofficefileid= 0;
this.plugin_rockoffice_conf = conf;
this.plugin_rockofficeopen();
if(conf.erand)js.plugin_rockofficestartv();
}
}
js.plugin_rockofficeopen = function(){
clearInterval(js.plugin_rockofficetime);
if(js.plugin_rockofficebool)return;
var conf = this.plugin_rockoffice_conf;
if(!conf)return;
var ws = new WebSocket(jm.base64decode(conf.wsurl));
ws.onopen = function(){
this.send('{"from":"'+conf.recid+'","adminid":"'+conf.adminid+'","atype":"connect","sendname":"'+conf.adminname+'"}');
js.plugin_rockofficebool = true;
}
ws.onclose = function(e){
js.plugin_rockofficebool = false;
js.plugin_rockofficetime = setTimeout('js.plugin_rockofficeopen()',3000);
};
ws.onerror = function(e){
js.plugin_rockofficebool = false;
js.plugin_rockofficetime = setTimeout('js.plugin_rockofficeopen()',5000);
};
ws.onmessage = function(evt){
js.plugin_rockofficebool = true;
var ds = JSON.parse(evt.data);
js.plugin_rockofficemessage(ds);
};
js.plugin_rockofficews = ws;
}
js.plugin_rockofficemessage = function(d){
var xxtype = d.xxtype;
if(d.waitmsg)js.msg('wait',jm.base64decode(d.waitmsg));
if(d.msg)js.msg('success',jm.base64decode(d.msg));
if(d.xxtype=='glast'){
js.plugin_rockofficegetfile(d.fileid);
}
}
js.plugin_rockofficegetfile = function(fid){
if(this.plugin_rockofficefileid == fid)return;
this.plugin_rockofficefileid = fid;
$.get('api.php?m=upload&a=editfileb&fileid='+fid+'', function(s){
js.plugin_rockoffice_conf = '';
if(s)js.msg('success',s);
});
}
js.plugin_rockofficestart = function(){
var d = this.plugin_rockoffice_conf;
if(!d)return;
if(this.plugin_rockofficefileid == d.fileid)return;
$.get('api.php?m=upload&a=editfilec&fileid='+d.fileid+'&erand='+d.erand+'', function(s){
if(s=='start'){
js.msg('wait','获取编辑文件中...');
js.plugin_rockofficegetfile(d.fileid);
}
if(s=='wait'){
js.plugin_rockofficestartv();
}
});
}
js.plugin_rockofficestartv = function(){
clearTimeout(js.plugin_rockofficestarts);
js.plugin_rockofficestarts = setTimeout('js.plugin_rockofficestart()',10*1000);
}

199
mode/plugin/jquery-rockselect.js vendored Normal file
View File

@@ -0,0 +1,199 @@
/**
edittable 单击选择插件
caratenamechenxihu
caratetime214-04-06 21:40:00
email:qqqq2900@126.com
homepage:www.xh829.com
*/
(function ($) {
rockselectdata = {};
function rockselect(cans){
var me = this;
var defv = js.applyIf(cans,{
rand:js.getrand(),
limit:10,
maxheight:400,
num:''
});
for(var i in defv)this[i] = defv[i];
this.init = function(){
if(!this.num)this.num = this.rand;
if(!rockselectdata[this.num])rockselectdata[this.num] = {};
this.showView();
if(rockselectdata[this.num].alldata){
this.loaddatashow(rockselectdata[this.num].alldata);
}else{
this.loaddata();
}
rockselectdata[this.num] = this;
}
this.clickstr = function(act,val){
return 'rockselectdata.'+this.num+'.'+act+'('+val+')';
}
this.showView = function(){
this.hide();
var o2 = $(this.viewobj);
var lefta =o2.offset();
this.top = lefta.top+o2.height();
var s = '<div id="rockselectdiv" class="box" style="position:absolute;z-index:999;left:'+lefta.left+'px;top:'+this.top+'px;background:white;border:1px var(--main-color) solid;border-radius:5px;"><div style="background:var(--main-bgcolor);border-radius:5px">';
s+='<div style="display:flex;border-bottom:var(--border)"><select style="width:100px;border:none;background:none;display:none" id="rockselect_select"><option value="">-选择-</option></select><input type="input" style="background:none;border:none;border-radius:0;;flex:1" placeholder="输入关键词搜索" onkeydown="'+this.clickstr('keydown','this')+'" class="input"></div>';
s+='<div id="rockselectdivs" style="max-height:'+this.maxheight+'px;overflow:auto"><div style="padding:50px;" align="center">'+js.ling(30)+'</div></div>';
s+='</div></div>';
$('body').append(s);
}
this.loaddata = function(key){
if(!key)key='';if(!this.url)return;
$.ajax({
type:'get',data:{key:jm.base64encode(key)},
url:this.url,dataType:'json',
success:function(ret){
me.loaddatashow(ret);
},
error:function(){
$('#rockselectdivs').html('加载错误');
}
});
}
this.loaddatashow=function(ret){
this.alldata = ret;
var rows = ret;
if(ret.rows)rows = ret.rows;
if(ret.data)rows = ret.data;
if(this.ondatachuli)rows = this.ondatachuli(rows, ret);
this.yuandata = rows;
this.firstdata(rows);
}
this.pageload=function(zl,p){
$('#rockselectdivpage').remove();
var ds = this.autodata;
var str='',i,len=ds.length,j=0,sty,d,cls,str1='';
for(i=(p-1)*zl;i<len;i++){
d = ds[i];sty= '';cls='list-itemv';
if(d.style)sty+=''+d.style+';';
if(d.padding)sty+='padding-left:'+d.padding+'px;';
if(d.disabled)cls='';
str+='<div class="'+cls+'"';
if(!d.disabled)str+=' onclick="'+this.clickstr('itemclick',''+i+'')+'"';
str+= ' style="padding:7px 10px;'+sty+'">'+d.name+'';
if(d.subname)str+='&nbsp;<span style="font-size:12px">('+d.subname+')</span>';
str+='</div>';
j++;
if(j>=zl)break;
}
if(len>zl){
str1='<div id="rockselectdivpage" style="padding:8px 10px;background:rgba(0,0,0,0.1)">总记录'+len+'条('+Math.ceil(len/zl)+'/'+p+')';
if(p>1)str1+='&nbsp;<span class="zhu cursor" onclick="'+this.clickstr('pageload',''+zl+','+(p-1)+'')+'">&lt;上页</span>';
if(j==zl && ds[p*zl])str1+='&nbsp;<span class="zhu cursor" onclick="'+this.clickstr('pageload',''+zl+','+(p+1)+'')+'">下页&gt;</span>';
str1+='</div>';
}
if(!str)str='<div align="center" style="padding:30px">无记录</div>';
setTimeout(function(){
$('#rockselectdivs').html(str).after(str1);
if(p==1)me.setweizhi();
},10);
}
//点击
this.itemclick = function(i){
var d = this.autodata[i];
if(d.disabled)return;
var nav = d.name;
if(this.nameobj)this.nameobj.value = nav;
var val = d.value;
if(typeof(val)=='undefined')val = d.id;
if(typeof(val)=='undefined')val = d.name;
if(this.idobj)this.idobj.value = val;
if(this.onitemclick)this.onitemclick(nav,val,d);
this.hide();
}
this.keydown = function(o1){
if(!this.yuandata)return;
clearTimeout(this.autoctime);
this.autoctime = setTimeout(function(){me.sousouval(o1);},10);
}
this.sousouval = function(o1){
var ds=[],val= strreplace(o1.value);
var da = this.yuandata,len=da.length,j=0,zl=this.limit;
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.firstdata(ds);
this.nowinpvle= val;
}
this.firstdata = function(ds){
this.autodata = ds;
this.pageload(this.limit,1);
}
this.hide = function(){
$('#rockselectdiv').remove();
}
//设置位置
this.setweizhi = function(){
var obj = $('#rockselectdiv');
var hei = obj.height() + this.top;
var khe = winHb() + $(document).scrollTop();
var dhe = hei - khe,min=200;
if(dhe > 0){
var o2 = $('#rockselectdivs');
var nhei= o2.height()-dhe-5;
if(nhei < min){
var ntop = this.top - (min-nhei);
if(ntop < 0){
min = min + ntop - 5;
ntop = 5;
}
obj.css('top',''+ntop+'px');
nhei = min;
}
o2.css('height',''+nhei+'px');
}
}
this.setSelectData = function(dt,na, fid){
if(!dt || dt.length==0)return;
var o = get('rockselect_select');
o.length = 0;
$(o).show();
dt.unshift({value:'',name:na});
js.setselectdata(o, dt, 'value');
$(o).change(function(){
me.changeselect(this, fid);
});
}
this.changeselect = function(o, fid){
var val = o.value;
var da = this.yuandata,len=da.length,ds=[],i;
if(val){
for(i=0;i<len;i++)if(val==da[i][fid])ds.push(da[i]);
}else{
ds=da;
}
this.firstdata(ds);
}
}
js.addbody('rockselectdiv', 'remove','rockselectdiv');
$.rockselect = function(cans){
var funcls = new rockselect(cans);
setTimeout(function(){funcls.init()},5);
return funcls;
};
})(jQuery);

1
mode/plugin/trtc.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -29,12 +29,11 @@
margin-top:5px;
border-width:8px;
border-style:solid;
border-color:transparent #e5e5e5 transparent transparent;
border-color:transparent rgba(0,0,0,0.05) transparent transparent;
z-index:1;
}
.qipao .qipaocontleft{
background:#e5e5e5;
border:0px #e5e5e5 solid;
background:rgba(0,0,0,0.05);
}

View File

@@ -1,6 +1,18 @@
*{font-family:,Verdana, Geneva, sans-serif;list-style-type:none;padding:0px;margin:0px;word-wrap:break-word;word-break:break-all;}
body{color:#000000;margin:0px;border:0;font-size:14px;}
body{--main-color:#1389D3}
*{font-family:Verdana, Geneva, sans-serif;list-style-type:none;padding:0px;margin:0px;word-wrap:break-word;word-break:break-all;}
body{
--main-color:#1389D3;
--font-size:14px;
--border:0.5px rgba(0,0,0,0.1) solid;
--main-bgcolor:white;
--main-hgcolor:white;
--main-border:rgba(0,0,0,0.1);
--rgb-r:0;
--rgb-g:0;
--rgb-b:0;
}
body{color:#000000;margin:0px;border:0;font-size:var(--font-size);}
a,.cursor{cursor:pointer;}
p{text-indent:24pt; margin:5px 0px}
input,textarea,a,button{resize: none;outline:none}
@@ -31,7 +43,7 @@ a.a:hover{TEXT-DECORATION:underline;color:red;}
a.white:link,a.white:visited{color:white;TEXT-DECORATION:none;}
a.white:hover{TEXT-DECORATION:underline;color:white;}
.blank1{ height:1px; overflow:hidden; border-bottom:1px #dddddd solid}
.blank1{ height:1px; overflow:hidden; border-bottom:var(--border)}
.blank10{ height:10px; overflow:hidden}
.blank20{ height:20px; overflow:hidden;line-height:20px}
.blank5{ height:5px; overflow:hidden}
@@ -43,7 +55,7 @@ ul,li,a{ list-style-type:none}
.h2{ font-size:20px;font-weight:bold;}
.inputs{height:28px; line-height:24px; border:1px #cccccc solid;padding:0px 2px; overflow:hidden;}
.inputs{height:28px; line-height:24px; border:var(--border);padding:0px 2px; overflow:hidden;}
input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px; height:16px}
.icons{ height:16px; width:16px; padding-right:3px}
.icons:hover{box-shadow:0px 0px 5px rgba(0,0,0,0.3);}
@@ -51,7 +63,7 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.barinput{padding:0px 2px;width:150px;height:23px}
.icon{ height:16px; width:16px;margin-right:5px}
.input,.select,.textarea{height:30px; line-height:28px; border:1px #cccccc solid; padding:0px 5px;font-size:14px;}
.input,.select,.textarea{height:30px; line-height:28px; border:var(--border); padding:0px 5px;font-size:14px;}
.input:focus{box-shadow:0px 0px 5px rgba(0,0,0,0.3); border:1px #1389D3 solid; border:1px var(--main-color) solid;color:#000000}
.btn{height:30px;line-height:30px; background-color:#1389D3; background-color:var(--main-color);border:none;color:#f1f1f1;padding:0px 20px; cursor:pointer;opacity:0.9;border-radius:5px;}
@@ -61,7 +73,7 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.webbtn:link,.webbtn:visited,.webbtn{color:#f1f1f1; opacity:1;background-color:#1389D3;background-color:var(--main-color); padding:3px 8px; border:none; cursor:pointer}
.webbtn:hover{opacity:0.8;color:#ffffff;}
.box{box-shadow:0px 0px 5px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.3);}
.alert{ padding:3px 10px; border-radius:0px; text-align:center; }
@@ -69,7 +81,7 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.alert_success{ background-color:#e3f6d1;border:0px #78b146 solid;color:green}
.alert_wait{ background-color:#f8f8f8;border:0px #cccccc solid;color:#555555}
.title{height:40px;line-height:40px;overflow:hidden;font-size:14px;text-align:left;border-bottom:1px #cccccc solid;color:#55555;font-weight:bold; background-color:#545e6a}
.title{height:40px;line-height:40px;overflow:hidden;text-align:left;border-bottom:var(--border);color:#55555;font-weight:bold; background-color:#545e6a}
.title li{height:40px;line-height:40px;float:left; }
.title li.more{text-align:right;float:right;font-size:12px;font-weight:100}
@@ -103,8 +115,8 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.msousou::-moz-input-placeholder{color:#dddddd}
.msousou:focus{background-color:white;color:#333333;-webkit-animation:mymove 0.3s;-moz-animation:mymove 0.3s;width:170px;}
.lists{padding:8px; border-bottom:0px #f1f1f1 solid;cursor:pointer;}
.lists img{height:30px;width:30px;border-radius:5px}
.lists{padding:10px;cursor:pointer;}
.lists img,.lists .img{height:30px;width:30px;border-radius:5px;overflow:hidden}
.lists .close{position:absolute;right:3px;top:5px;display:none;color:#aaaaaa}
.lists .bqs{position:absolute;right:3px;top:5px;}
.lists.active{background-color:rgba(0,0,0,0.1)}
@@ -112,16 +124,16 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.lists:hover .close{display:block}
.lists:hover .bqs{display:none}
.lists .name{height:24px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:135px;}
.lists .name{height:24px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.huicont{color:#888888;font-size:12px;height:20px;line-height:20px; overflow:hidden;word-wrap:break-word;word-break:break-all;white-space:normal;}
.content{width:100%;height:100%;border:none;overflow:auto;padding:0px;font-size:14px;}
.content{width:100%;height:100%;border:none;overflow:auto;padding:0px;color:inherit}
.content:focus{border:0px #dddddd solid}
.chattitbtn{color:#aaaaaa;cursor:pointer}
.toolsliao{height:34px; background-color:#ecf5fc;overflow:hidden;border-top:#dddddd solid 1px;color:#aaaaaa;line-height:34px;font-size:16px;padding:0px 10px}
.toolsliao{height:34px;overflow:hidden;border-top:var(--border);color:#aaaaaa;line-height:34px;font-size:16px;padding:0px 10px}
.toolsliao span{margin-right:10px}
.toolsliao span:hover,.chattitbtn:hover{color:#1389D3;color:var(--main-color)}
@@ -157,4 +169,31 @@ input.checkbox,input.radio{ border:none;padding:0;margin-right:5px; width:16px;
.lefticons{position:relative;line-height:50px;height:50px;overflow:hidden;font-size:20px;color:#cccccc}
.lefticons span{position:absolute;right:1px;top:1px}
.showblanks{padding:10px;color:#aaaaaa;font-size:12px;text-align:center}
.showblanks{padding:10px;color:#aaaaaa;font-size:12px;text-align:center}
.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;
}

View File

@@ -9,7 +9,7 @@
(function ($) {
function _getstyles(){
var s='<style>.changeuserlist div.listsss{padding:10px; background:white;border-bottom:1px #eeeeee solid;cursor:default}.changeuserlist td{color:#333333}.changeuserlist div:active{ background:#f1f1f1}.changeuserbotton{height:30px;width:50px; background:#d9534f;color:white;font-size:14px;border:none;padding:0px;margin:0px;line-height:20px;cursor:default;opacity:1;outline:none;border-radius:5px}.changeuserbotton:active{color:white;border:none;opacity:0.8}.changeuserxuan span{background:white;border:1px #cccccc solid;padding:3px;border-radius:5px;font-size:12px;margin-left:5px;cursor:pointer}</style>';
var s='<style>.changeuserlist div.listsss{padding:10px; background:white;border-bottom:var(--border);cursor:default}.changeuserlist td{color:#333333}.changeuserlist div:active{ background:rgba(0,0,0,0.1)}.changeuserbotton{height:30px;width:50px; background:#d9534f;color:white;border:none;padding:0px;margin:0px;line-height:20px;cursor:default;opacity:1;outline:none;border-radius:5px}.changeuserbotton:active{color:white;border:none;opacity:0.8}.changeuserxuan span{background:white;border:var(--border);padding:3px;border-radius:5px;font-size:12px;margin-left:5px;cursor:pointer;color:black}</style>';
return s;
}
@@ -59,13 +59,13 @@
hei = $('#'+this.showview+'').height();
atts='';
}
var s='<div style="'+atts+'z-index:100;width:100%;height:100%;overflow:hidden;left:0px;top:0px; background:white" id="changeuser_'+rand+'">';
var s='<div style="'+atts+'z-index:100;width:100%;height:100%;overflow:hidden;left:0px;top:0px; background:white;border-radius:0px 0px 5px 5px" id="changeuser_'+rand+'">';
if(this.titlebool){
s+='<div style="height:50px;line-height:50px;text-align:center; background:white;border-bottom:1px #cccccc solid"><b>'+this.title+'</b></div>';
s+='<div style="height:50px;line-height:50px;text-align:center; background:white;border-bottom:var(--border)"><b>'+this.title+'</b></div>';
jhei+=50;
}
if(this.changetype.indexOf('user')>=0){
s+='<div style="height:50px;overflow:hidden;border-bottom:1px #cccccc solid"><table width="100%" style="background:none"><tr><td width="100%" height="50" style="background:none"><input id="changekey_'+this.rand+'" placeholder="部门/姓名/职位" style="height:30px;border:none;background:none;width:100%;margin:0px 10px;outline:none"></td><td><button style="background:none;border:none;color:#666666" class="changeuserbotton" id="changesoubtn_'+this.rand+'" type="button" >查找</button></td></tr></table></div>';
s+='<div style="height:50px;overflow:hidden;border-bottom:var(--border)"><table width="100%" style="background:none"><tr><td width="100%" height="50" style="background:none"><input id="changekey_'+this.rand+'" placeholder="部门/姓名/职位" style="height:30px;border:none;background:none;width:100%;margin:0px 10px;outline:none;color:black"></td><td><button style="background:none;border:none;color:#666666" class="changeuserbotton" id="changesoubtn_'+this.rand+'" type="button" >查找</button></td></tr></table></div>';
jhei+=50;
}
s+='<div style="-webkit-overflow-scrolling:touch;height:'+(hei-jhei)+'px;overflow:auto; background:#f1f1f1" class="changeuserlist">';
@@ -83,10 +83,10 @@
s3+='</select>';
}
if(type=='checkbox'){
s+='<div class="changeuserxuan" style="padding:5px;border-right:1px #cccccc solid;border-top:1px #cccccc solid;line-height:30px;position:absolute;bottom:49px;background:white;"><font style="cursor:pointer" id="yixuanbtn_'+rand+'"></font><font id="yixuan_'+rand+'"></font></div>';
s+='<div class="changeuserxuan" style="padding:5px;border-right:var(--border);border-top:var(--border);line-height:30px;position:absolute;bottom:49px;background:white;color:black;"><font style="cursor:pointer" id="yixuanbtn_'+rand+'"></font><font id="yixuan_'+rand+'"></font></div>';
}
var cold = window['maincolor'];if(!cold)cold='#1389D3';
s+='<div style="height:50px;line-height:50px;border-top:1px #cccccc solid" align="right"><table width="100%" style="background:none"><tr><td width="10" nowrap>&nbsp;</td><td width="80%">'+s3+'</td><td><button style="width:70px;border:none" type="button" id="changereload_'+rand+'" class="changeuserbotton" >刷新数据</button></td><td width="10" nowrap>&nbsp;</td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'" >取消</button></td><td width="10" nowrap>&nbsp;</td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap>&nbsp;</td></tr></table></div>';
s+='<div style="height:50px;line-height:50px;border-top:var(--border)" align="right"><table width="100%" style="background:none"><tr><td width="10" nowrap>&nbsp;</td><td width="80%">'+s3+'</td><td><button style="width:70px;border:none" type="button" id="changereload_'+rand+'" class="changeuserbotton" >刷新数据</button></td><td width="10" nowrap>&nbsp;</td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'" >取消</button></td><td width="10" nowrap>&nbsp;</td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap>&nbsp;</td></tr></table></div>';
s+=_getstyles();
s+='</div>';
if(atts==''){
@@ -379,7 +379,7 @@
this._loaddata=function(){
var o1 = $('#showdiv'+rand+'_0'),url;
o1.html('<div align="center" style="padding:30px"><img src="images/mloading.gif"></div>');
o1.html('<div align="center" style="padding:30px;color:#333333">'+js.ling(30)+'</div>');
var url = 'index.php?a=deptuserjson&m=dept&d=system&ajaxbool=true&changerange='+this.changerange+'&changerangeno='+this.changerangeno+'&gtype=change';
$.getJSON(url, function(ret){
if(ret.code==200){
@@ -469,11 +469,11 @@
if(this.ismobile)ws='90%';
var cold = window['maincolor'];if(!cold)cold='#1389D3';
var s='<div style="width:100%;height:100%;overflow:hidden;left:0px;top:0px; background:rgba(0,0,0,0.3);position:fixed;z-index:11" id="selectdata_'+rand+'">';
s+='<div tsid="main" id="mints_'+rand+'" style="position:absolute;top:30%; background:white;width:'+ws+';box-shadow:0px 0px 10px rgba(0,0,0,0.3);border-radius:5px">';
s+=' <div onmousedown="js.move(\'mints_'+rand+'\')" style="line-height:50px;color:'+cold+';font-size:16px;border-bottom:1px #eeeeee solid;font-weight:bold;"> &nbsp; &nbsp;'+this.title+'</div>';
s+=' <div style="height:40px;overflow:hidden;border-bottom:1px #cccccc solid;"><table width="100%" style="background:none"><tr><td><select id="selxuan_'+this.rand+'" style="width:120px;border:none;background:none;display:none"><option value="">选择所有</option></select></td><td width="100%" height="40"><input id="changekey_'+this.rand+'" placeholder="搜索关键词" style="height:30px;border:none;background:none;width:100%;margin:0px 10px;outline:none"></td><td><button style="background:none;color:#666666;" class="changeuserbotton" id="changesoubtn_'+this.rand+'" type="button" >查找</button></td></tr></table></div>';
s+='<div tsid="main" id="mints_'+rand+'" style="position:absolute;top:30%; background:white;width:'+ws+';box-shadow:0px 0px 10px rgba(0,0,0,0.3);border-radius:5px;color:black">';
s+=' <div onmousedown="js.move(\'mints_'+rand+'\')" style="line-height:50px;color:'+cold+';font-size:16px;border-bottom:var(--border);font-weight:bold;"> &nbsp; &nbsp;'+this.title+'</div>';
s+=' <div style="height:40px;overflow:hidden;border-bottom:var(--border);"><table width="100%" style="background:none"><tr><td><select id="selxuan_'+this.rand+'" style="width:120px;border:none;background:none;display:none"><option value="">选择所有</option></select></td><td width="100%" height="40"><input id="changekey_'+this.rand+'" placeholder="搜索关键词" style="height:30px;border:none;background:none;width:100%;margin:0px 10px;outline:none;color:black"></td><td><button style="background:none;color:#666666;" class="changeuserbotton" id="changesoubtn_'+this.rand+'" type="button" >查找</button></td></tr></table></div>';
s+=' <div style="-webkit-overflow-scrolling:touch;height:300px;overflow:auto; background:#f1f1f1" id="selectlist_'+rand+'" class="changeuserlist"></div>';
s+=' <div style="height:50px;line-height:50px;border-top:1px #cccccc solid;" align="right"><table width="100%" style="background:none"><tr><td width="10" nowrap>&nbsp;</td><td width="80%"><font color="#888888" tsid="count"></font></td><td><button type="button" id="changereload_'+rand+'" class="changeuserbotton">刷新</button></td><td width="10" nowrap>&nbsp;</td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'">取消</button></td><td width="10" nowrap>&nbsp;</td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap>&nbsp;</td></tr></table></div>';
s+=' <div style="height:50px;line-height:50px;border-top:var(--border);" align="right"><table width="100%" style="background:none"><tr><td width="10" nowrap>&nbsp;</td><td width="80%"><font color="#888888" tsid="count"></font></td><td><button type="button" id="changereload_'+rand+'" class="changeuserbotton">刷新</button></td><td width="10" nowrap>&nbsp;</td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'">取消</button></td><td width="10" nowrap>&nbsp;</td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap>&nbsp;</td></tr></table></div>';
s+='</div>';
s+='</div>';
s+=_getstyles();
@@ -637,7 +637,7 @@
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;color:#333333">'+js.ling(30)+'</div>');
$.ajax({
type:'get',dataType:'json',url:url,
success:function(ret){

View File

@@ -18,6 +18,7 @@
this.dushu = 0;
this.onloadsuccess=function(){};
this.init=function(){
if(get('imgview_main'))return;
for(var i in opts)this[i]=opts[i];
if(obj)this.url=obj.attr('src');
this.mheiht = document.body.scrollHeight,sed=$(window).height();
@@ -35,7 +36,7 @@
s+=' <div id="imgview_spanmask" style="position:absolute;z-index:1;left:0px;top:0px;background-color:rgba(0,0,0,0);width:100%;height:100%;cursor:move;user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;"></div>';
s+=' <img style="position:absolute;z-index:0;left:0px;top:0px" id="imgview_spanimg" width="100%" height="100%" src="images/mloading.gif" >';
s+='</div>';
s+='<div style="position:fixed;z-index:2;left:0px;bottom:0px;text-align:center;color:white;width:100%;font-size:20px;background-color:rgba(0,0,0,0.2);height:40px;line-height:40px;overflow:hidden"><i style="cursor:pointer" id="imgview_zoom-out" class="icon-zoom-out" title="缩小"></i> &nbsp; <span id="imgview_nowbili" style="font-size:14px">100%</span> &nbsp; <i style="cursor:pointer" class="icon-zoom-in" title="放大" id="imgview_zoom-in"></i>';
s+='<div style="position:fixed;z-index:2;left:0px;bottom:0px;text-align:center;color:white;width:100%;font-size:20px;background-color:rgba(0,0,0,0.2);height:40px;line-height:40px;overflow:hidden;user-select:none"><i style="cursor:pointer" id="imgview_zoom-out" class="icon-zoom-out" title="缩小"></i> &nbsp; <span id="imgview_nowbili" style="font-size:14px">100%</span> &nbsp; <i style="cursor:pointer" class="icon-zoom-in" title="放大" id="imgview_zoom-in"></i>';
s+=' &nbsp; <i style="cursor:pointer" class="icon-move" title="原始大小" id="imgview_zoom-move"></i>';
if(!this.ismobile && this.downbool)s+=' &nbsp; <a target="_blank" download="" style="color:white;font-size:20px" href="'+this.url+'"><i style="cursor:pointer" class="icon-download-alt" title="下载"></i></a>';
s+=' &nbsp; <i style="cursor:pointer" class="icon-refresh" title="旋转90度" id="imgview_zoom-refresh"></i>';
@@ -182,6 +183,10 @@
}
});
}
this.loadimg=function(){
return "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";
}
}

View File

@@ -8,7 +8,7 @@
<style>
body,html{padding:0px;margin:0px;font-size:14px}
.close{height:20px;width:20px;display:block;text-align:center;line-height:18px;cursor:pointer;font-size:16px}
.close:hover{background:#ff1118;color:white}
.close:hover{background:#ff1118;color:white;border-radius:10px}
table {
border-spacing: 0;
border-collapse: collapse;
@@ -17,7 +17,7 @@ table {
<script>
$(document).ready(function(){
winobj = nw.Window.get();
winobj.moveTo(screen.width-355,screen.height-170);
winobj.moveTo(screen.width-360,screen.height-150);
winobj.show();
var nr = localStorage.getItem('xinhuoa_notification');
if(nr){
@@ -39,25 +39,28 @@ function clickbody(){
}
</script>
</head>
<body style="overflow:hidden;cursor:pointer" >
<div style="position:absolute;right:2px;top:2px;-webkit-app-region:no-drag;z-index:5">
<span onclick="winclose();" title="关闭" class="close">×</span>
</div>
<div style="height:10px"></div>
<table border="0" style="margin:0px 8px" onclick="clickbody()">
<tr valign="top">
<td>
<div style="width:80px;height:80px;overflow:hidden;margin:5px" align="center">
<img src="../../../images/logo.png" id="logodiv" height="80px" width="80px">
</div>
</td>
<td style="padding-left:5px">
<div id="titlediv" style="font-size:16px;font-size:bold;line-height:20px;height:20px;overflow:hidden;margin-top:12px"></div>
<div id="messdiv" style="font-size:14px;color:gray;line-height:20px;height:40px;overflow:hidden;margin-top:8px"></div>
</td>
</tr>
</table>
<body style="overflow:hidden;cursor:pointer; " >
<div style="border-radius:10px;background:white;border:rgba(0,0,0,0.1) 0.5px solid;margin:1px;box-shadow:0px 5px 10px 1px rgba(0,0,0,0.05);margin:5px">
<div style="padding:8px">
<div style="position:absolute;right:8px;top:7px;-webkit-app-region:no-drag;z-index:5">
<span onclick="winclose();" class="close">×</span>
</div>
<table border="0" width="100%" onclick="clickbody()">
<tr valign="top">
<td width="60px">
<div style="width:70px;height:70px;overflow:hidden;margin:5px" align="center">
<img src="../../../images/logo.png" style="border-radius:10px;" id="logodiv" height="70px" width="70px">
</div>
</td>
<td style="padding-left:5px" align="left">
<div id="titlediv" style="font-size:16px;font-size:bold;line-height:20px;height:20px;overflow:hidden;margin-top:10px"></div>
<div id="messdiv" style="font-size:14px;color:gray;line-height:18px;height:40px;overflow:hidden;margin-top:5px"></div>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>

View File

@@ -22,6 +22,7 @@ function notifyClass(opts){
this.sounderr= '';
this.soundbo = true;
this.showbool= false;
this.macos = false;
this._init=function(){
if(opts)for(var o1 in opts)this[o1]=opts[o1];
var strsr = '';
@@ -32,6 +33,8 @@ function notifyClass(opts){
strsr = '<audio id="notify_sound_audio" src="web/res/sound/wu.mp3" autoplay="autoplay" hidden="true"></audio>';
}
if(this.sound)$('body').append(strsr);
var llq = navigator.userAgent.toLowerCase();
if(llq.indexOf('reimclient')>0)this.macos = true;
};
this.setsound = function(bo){
this.soundbo=bo;
@@ -76,7 +79,7 @@ function notifyClass(opts){
this.close();
var url =NOWURL+'web/res/js/notification.html?'+Math.random()+'';
localStorage.setItem('xinhuoa_notification', JSON.stringify({icon:can.icon,title:can.title,body:can.body}));
var canss={"frame": false,title:"消息提醒","width": 350,resizable:false,'always_on_top':true,show:false,"height": 110,"show_in_taskbar":false}
var canss={"frame": false,title:"消息提醒","width": 350,resizable:false,'always_on_top':true,show:false,"height": 110,"show_in_taskbar":false,"transparent":true}
nw.Window.open(url,canss,function(wis){
me.notification = wis;
wis.on('close',function(){
@@ -90,6 +93,13 @@ function notifyClass(opts){
me.notification=false;
});
});
}else if(this.macos){
rockclient.rockFun("Notification",{
title:can.title,
msg:can.body
}, function(ret){
});
}else{
var notification= new Notification(title, can);
notification.onclick = function(){

View File

@@ -193,7 +193,7 @@ var strformat = {
}
if(snr){
nr+= '<div><img src="'+snr+'" onclick="strformat.clickimg(this)" id="jietuimg_'+nuid+'" width="150"></div>';
nr+= '<div><a onclick="im.upbase64(\''+nuid+'\')" href="javascript:;">[发送截图]</a>';
nr+= '<div><a onclick="im.upbase64(\''+nuid+'\');$(this).remove();" href="javascript:;">[发送截图]</a>';
}
nr+= '<div class="progresscls"><div id="progresscls_'+nuid+'" class="progressclssse"></div><div class="progressclstext" id="progresstext_'+nuid+'">0%</div></div>';
nr+= '<div id="progcanter_'+nuid+'"><a href="javascript:;" onclick="strformat.cancelup(\''+nuid+'\')">取消</a></div>';
@@ -256,6 +256,7 @@ var strformat = {
var s='',slx,sttr;
if(!d)return s;
if(!d.fileid)d.fileid=d.id;
var type = d.type;if(!type)type='';//会话类型
if(js.isimg(d.fileext)){
sttr='';
if(d.thumbpath){
@@ -268,14 +269,14 @@ var strformat = {
}
s='<img src="'+d.filepath+'" onclick="strformat.clickimg(this)" '+sttr+' fid="'+d.fileid+'">';
}
}else if(d.fileext=='amr'){
s+='<i class="icon-volume-up"></i> '+(parseInt(d.filesize/1000))+'"';
s+='&nbsp;<a href="javascript:;" style="font-size:12px" onclick="js.fileopt('+d.fileid+',1)">下载</a>';
}else if(d.filename.indexOf('rockyuyin')==0 && d.fileext=='mp3'){
var miao= this.getmiao(d.filename);
if(!miao)miao = parseInt(d.filesize/1500);
s+='<div class="cursor" onclick="strformat.playmp3(\''+d.filepath+'\',0)"><i class="icon-volume-up"></i> '+miao+'"</div>';
}else{
slx = d.fileext;if(!lj)lj='';
if(js.fileall.indexOf(','+slx+',')<0)slx='wz';
//s=''+d.filename+'<br><a href="javascript:;" onclick="js.fileopt('+d.fileid+',1)">下载</a>&nbsp;&nbsp;<a href="javascript:;" onclick="js.fileopt('+d.fileid+',0)">预览</a>&nbsp;'+d.filesizecn+'';
s='<table><tr><td><div class="qipaofile">'+d.fileext.toUpperCase()+'</div></td><td>'+d.filename+'<br><span style="font-size:12px;color:#888888">('+d.filesizecn+')&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',1)">下载</a>&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',0)">预览</a></span></td></tr></table>';
s='<table><tr><td><div class="qipaofile">'+d.fileext.toUpperCase()+'</div></td><td>'+d.filename+'<br><span style="font-size:12px;color:#888888">('+d.filesizecn+')&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',1,\''+type+'\')">下载</a>&nbsp;&nbsp;<a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',0,\''+type+'\')">预览</a></span></td></tr></table>';
}
return s;
},
@@ -284,6 +285,17 @@ var strformat = {
},
clickimg:function(){
},
getmiao:function(name){
var arr = name.split('_')
if (!arr[1])return 0;
arr = arr[1].split('.')
return arr[0];
},
playmp3:function(path){
js.tanbody('play','播放', 300, 50, {
html:'<div style="padding:10px"><video src="'+path+'?'+js.getrand()+'" width="100%" height="60" controls autoplay></video></div>'
});
}
}
strformat.init();

View File

@@ -74,7 +74,7 @@
s+='<tr>';
for(var i=0;i<7;i++){
x++;
s+='<td align="'+can.align+'" height="'+(h/6)+'px" valign="'+can.valign+'" width="'+w+'%" class="tdtext" id="calcontabc'+x+'_'+id+'" temp="'+x+'"></td>';
s+='<td align="'+can.align+'" height="'+((h/6)-2)+'px" valign="'+can.valign+'" width="'+w+'%" class="tdtext" id="calcontabc'+x+'_'+id+'" temp="'+x+'"></td>';
}
s+='</tr>';
}
@@ -413,10 +413,10 @@
this.changemonth(a[0], a[1]);
}
}
if(typeof(bootsSelectColor)!='string')bootsSelectColor= 'rgba(0,0,0,0.1)';
$.fn.rockcalendar = function(options){
var defaultVal = {
height:400,selbgcolor:'#D3FFF6',month:'',
height:400,selbgcolor:bootsSelectColor,month:'',
fillot:true,renderer:function(){return ''},align:'left',valign:'top',
changemonth:function(){},boofan:true,onclick:function(){},jierixiuxi:'',jierishangban:'',headerbgcolor:'',
bordercolor:'',

View File

@@ -1,22 +1,28 @@
.rockmenu{ position:absolute;display:none; z-index:9999}
.rockmenuli{border:1px #eeeeee solid;
background-color:#ffffff; left:0px; top:0px; background:rgba(255,255,255,0.9);
box-shadow:0px 0px 5px rgba(0,0,0,0.3);color:#555555
.rockmenu{ position:absolute;display:none; z-index:9999;background:white;border-radius:5px}
.rockmenuli{
border:var(--border);left:0px; top:0px;
background:var(--main-bgcolor);
box-shadow:0px 0px 5px rgba(0,0,0,0.3);
box-shadow:0px 0px 5px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.3);
border-radius:5px;
}
.rockmenulijt{ padding:0px; text-align:center}
.rockmenu ul{padding:0px;margin:0px}
.rockmenu li{ list-style-type:none; padding:8px 12px; cursor:pointer; text-align:left; border-bottom:1px #eeeeee dotted;}
.rockmenu li.li01{ background-color:#eeeeee;}
.rockmenu li{ list-style-type:none; padding:10px 12px; cursor:pointer; text-align:left; border-bottom:var(--border);}
.rockmenu li.li01{
background-color:rgba(0,0,0,0.05);
background-color:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.05);
}
.rockmenu li span{ font-size:10px; }
.rockmenu li.li01 span{}
.rockmenuli li img.iconsa{ vertical-align:middle; width:16px; height:16px; margin-right:8px}
.rockmenu .arrow-up{
width: 0;
height: 0;
border-left: 10px solid transparent; /* 左边框的宽 */
border-right: 10px solid transparent; /* 右边框的宽 */
border-bottom: 10px solid #cccccc; /* 下边框的长度|高,以及背景色 */
font-size: 0;
line-height: 0;
width: 0;
height: 0;
border-left: 10px solid transparent; /* 左边框的宽 */
border-right: 10px solid transparent; /* 右边框的宽 */
border-bottom: 10px solid #cccccc; /* 下边框的长度|高,以及背景色 */
font-size: 0;
line-height: 0;
}

View File

@@ -44,8 +44,8 @@ var rockmenuobj = null;
}
var len = json.length;
var str = '<div class="rockmenu" id="rockmenu_'+rand+'">';
if(can.arrowup)str+='<div class="arrow-up"></div>';
str+='<div style="background:'+can.background+';" id="rockmenuli_'+rand+'" class="rockmenuli '+can.maincls+'"><ul>';
//if(can.arrowup)str+='<div class="arrow-up"></div>';
str+='<div id="rockmenuli_'+rand+'" class="rockmenuli '+can.maincls+'"><ul>';
var s = '',ys='',col,va;
for(var i=0; i<len; i++){
ys= '',
@@ -75,7 +75,7 @@ var rockmenuobj = null;
oac.find('li').mouseout(function(){this.className='';});
oac.find('li').click(function(){me.itemsclick(this);});
if(can.width!=0){
$('#rockmenuli_'+rand+'').css('width',''+can.width+'px');
oac.css('width',''+can.width+'px');
};
js.addbody(rand, 'remove', 'rockmenu_'+rand+'');
this.mdivobj = oac;

View File

@@ -1,10 +1,22 @@
*{font-family:,Verdana, Geneva, sans-serif;padding:0px;margin:0px;}
*{font-family:Verdana, Geneva, sans-serif;padding:0px;margin:0px;}
html{
font-family: sans-serif;
}
button,.cursor{cursor:pointer}
body{
font-size:14px; background-color:white;--main-color:#1389D3;--main-border:#888888
--main-color:#1389D3;
--font-size:14px;
--border:0.5px rgba(0,0,0,0.1) solid;
--main-bgcolor:white;
--main-hgcolor:white;
--main-border:rgba(0,0,0,0.1);
--rgb-r:0;
--rgb-g:0;
--rgb-b:0;
}
body{
font-size:var(--font-size);
background-color:white;
}
table {
border-spacing: 0;
@@ -71,14 +83,14 @@ a.white:link,a.white:visited{color:white;}
.box{box-shadow:0px 0px 5px rgba(0,0,0,0.3); border:1px var(--main-color) solid; }
.inputs{height:28px;line-height:24px; border:1px #cccccc solid;padding:0px 2px; overflow:hidden;}
.inputs{height:28px;line-height:24px; border:1px #cccccc solid;border:var(--border);padding:0px 2px; overflow:hidden;}
.btn{width:100%;height:44px;line-height:44px;opacity:0.8; background-color:#1389D3; background-color:var(--main-color);border:none;color:white;font-size:14px; cursor:pointer}
.btn:active,.btn:hover{opacity:1;color:white;TEXT-DECORATION:none;}
.btn:disabled{ background-color:#cccccc;color:#888888}
a.btn{padding:5px 8px}
.input{ height:34px; line-height:30px; border:1px #cccccc solid;padding:0px 5px; overflow:hidden; border-radius:0px}
.select{border-radius:0px; background-color:#ffffff;border:1px #cccccc solid; height:34px; line-height:30px}
.input{ height:34px; line-height:30px; border:1px #cccccc solid;border:var(--border);padding:0px 5px; overflow:hidden; border-radius:0px}
.select{border-radius:0px; background-color:#ffffff;border:1px #cccccc solid;border:var(--border); height:34px; line-height:30px}
.textarea{height:100px; width:97%;padding:5px;border-radius:0px; border:1px #cccccc solid;}
.input:hover,.inputs:hover,.textarea:hover,.select:hover,.input_hover,.textareas,.input:focus,.inputs:focus,.textarea:focus{box-shadow:0px 0px 5px rgba(0,0,0,0.3); border:1px #1389D3 solid; border:1px var(--main-color) solid; color:#000000}
@@ -102,4 +114,31 @@ a.webbtn:link,a.webbtn:visited,.webbtn{color:#ffffff; background-color:#1389D3;b
.r-tabs .r-tabs-item:not(:first-child):not(:last-child){border-radius:0}
.r-tabs .r-tabs-item.r-tabs-item.active{color:#1389D3;color:var(--main-color);}
.list-itemv:hover{color:var(--main-color);cursor:pointer}
.list-itemv:hover{color:var(--main-color);cursor:pointer}
.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;
}

View File

@@ -1,16 +1,30 @@
@charset "UTF-8";
*{font-family:,Verdana, Geneva, sans-serif;list-style-type:none;padding:0px;margin:0px;}
*{font-family:Verdana, Geneva, sans-serif;list-style-type:none;padding:0px;margin:0px;-webkit-tap-highlight-color: transparent;}
html{
font-family: sans-serif;
}
body{--main-color:#1389D3;color:#000000;margin:0px;border:0;font-size:14px; background-color:white}
body{
--main-color:#1389D3;
--font-size:14px;
--border:0.5px rgba(0,0,0,0.1) solid;
--main-bgcolor:white;
--main-hgcolor:rgba(0,0,0,0.15);
--main-vgcolor:rgba(0,0,0,0.1);
--main-border:rgba(0,0,0,0.1);
--rgb-r:0;
--rgb-g:0;
--rgb-b:0;
}
body{color:#000000;margin:0px;border:0;font-size:var(--font-size); background-color:white}
.mbody{background-color: #f1f1f1;}
td,button{ font-size:14px}
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:14px;}
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}
@@ -47,21 +61,22 @@ 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:30px;line-height:25px;background-color:white;padding:2px;width:95%;border:0.5px #dddddd solid;border-radius:2px}
.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:30px;line-height:20px;background-color:white;padding:2px;border:0.5px #cccccc solid;border-radius:2px}
.inputb:focus,.inputs:focus,.textarea:focus{border:0.5px var(--main-color) solid;box-shadow:0px 0px 5px rgba(0,0,0,0.3);}
.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;}
.title{height:40px;line-height:40px;overflow:hidden;font-size:18px;text-align:left;border-bottom:1px #cccccc solid;color:#55555;font-weight:bold; background-color:var(--main-color)}
.title{height:40px;line-height:40px;overflow:hidden;font-size:18px;text-align:left;border-bottom:var(--border);color:#55555;font-weight:bold; background-color:var(--main-color)}
.inputs[readonly]{ background-color:#f1f1f1;box-shadow:none}
.btn{width:100%;height:44px;line-height:44px;opacity:0.8; background-color:var(--main-color);border:none;color:white;font-size:14px; cursor:pointer}
.btn{width:100%;height:44px;line-height:44px;opacity:0.8; background-color:var(--main-color);border:none;color:white;font-size:var(--font-size); cursor:pointer}
.btn:active,.btn:hover{opacity:1;color:white;TEXT-DECORATION:none;}
.btn:disabled{ background-color:#cccccc;color:#888888}
a.btn{padding:5px 8px}
.header{height:50px; overflow:hidden;line-height:50px; text-align:center; border-bottom:0.5px #cccccc solid;font-size:18px; position:fixed;width:100%;top:0px;left:0px; background:white;z-index:8}
.header{height:50px; overflow:hidden;line-height:50px; text-align:center; border-bottom:var(--border);font-size:18px; position:fixed;width:100%;top:0px;left:0px; background:white;z-index:8}
.header .back{position:absolute;top:5px;left:5px}
.header .back img{height:24px;width:24px}
.header-back{width:50px;height:50px;display:block; background:url(../../images/back.png) no-repeat 7px 7px;position:absolute;left:0px;bottom:0px; cursor:default}
@@ -74,17 +89,64 @@ a.btn{padding:5px 8px}
.tdinpu{text-align:right;color:#555555;}
.tdinput{padding:8px 5px}
.inborder{border:1px #cccccc solid;}
.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:14px}
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:1px #cccccc solid;height:60px;overflow:hidden;float:left;margin-top:5px;margin-bottom:5px;margin-right:10px;cursor:pointer;position:relative}
.upload_items{border:var(--border);height:60px;overflow:hidden;float:left;margin-top:5px;margin-bottom:5px;margin-right:10px;cursor:pointer;position:relative}
.upload_items:active{border:1px var(--main-color) solid}
.upload_items img.imgs{width:50px;height:50px;margin:5px}
.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;
}

251
webmain/css/rock.css Normal file
View File

@@ -0,0 +1,251 @@
/**
* 最新版的css样式
* 开发者:雨中磐石
* 地址www.rockoa.com
* 日期2024-10-10
*/
*{font-family:Verdana, Geneva, sans-serif;padding:0px;margin:0px;-webkit-tap-highlight-color: transparent;list-style-type:none}
body{
--main-color:#1389D3;
--font-size:14px;
--border:0.5px rgba(0,0,0,0.1) solid;
--main-bgcolor:white;
--main-hgcolor:rgba(0,0,0,0.15);
--main-vgcolor:rgba(0,0,0,0.1);
--main-border:rgba(0,0,0,0.1);
--input-height:34px;
--btn-height:36px;
--rgb-r:0;
--rgb-g:0;
--rgb-b:0;
}
body{font-size:var(--font-size)}
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,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;}
.input,.inputs,.form-control{border:var(--border);padding:0px 5px;overflow:hidden;border-radius:5px;background:white;height:34px;height:var(--input-height)}
.textarea{line-height:20px; border:var(--border);padding:5px; border-radius:5px;overflow:auto}
.input:focus,.textarea:focus,.form-control:focus,.inputs:focus{border:.5px var(--main-color) solid;}
.input:disabled,.inputs:disabled,.textarea:disabled,.form-control:disabled{cursor:not-allowed;opacity:0.8}
.input[readonly],.inputs[readonly],.textarea[readonly],.form-control[readonly]{background-color:rgba(0,0,0,0.1);}
.webbtn,.webbtn:link,.webbtn:visited,.btn,.btn:link,.btn:visited{color:#ffffff;background-color:var(--main-color);padding:6px 10px;border:none; cursor:pointer;border-radius:5px;white-space:nowrap;height:36px;height:var(--btn-height)}
.webbtn:active,.webbtn:hover,.btn:hover{box-shadow:0px 0px 5px rgba(0,0,0,0.3);box-shadow:0px 0px 5px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.3);opacity:0.9;TEXT-DECORATION:none}
.webbtn:disabled,.btn:disabled{background-color:#dddddd;color:#888888;cursor:not-allowed}
.webbtn:disabled:hover,.btn:disabled:hover{background-color:none;box-shadow:none;opacity:1}
.webbtn-default,.webbtn-default:link,.webbtn-default:visited,.btn-default{background-color:white;color:black;border:var(--border);}
.webbtn-main,.webbtn-main:link,.webbtn-main:visited{background-color:white;color:black;border:.5px var(--main-color) solid;}
.btn-danger{background-color:#d9534f}
.form-control{width:98%}
textarea.form-control{overflow:auto;padding-top:5px;padding-bottom:5px}
.box{box-shadow:0px 0px 5px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.3);}
.hover:hover,.active{
background-color:rgba(0,0,0,0.1);
cursor:pointer;
}
.border{border:var(--border)}
.mainbody{background:var(--main-bgcolor);border:var(--border);}
.btn-xs,.btn-xs:link,.btn-xs:visited{padding:3px 5px;font-size:12px;height:26px}
.zhu{color:var(--main-color)}
.hui{color:#888888}
.blank10{height:10px;overflow:hidden}
.blank20{height:20px;overflow:hidden}
.blank30{height:30px;overflow:hidden}
.notsel{-moz-user-select: none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default;}
.btn-group,.flex{display: flex;align-items: center;}
.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),
.input-group :first-child:not(:last-child){
border-top-right-radius:0px;
border-bottom-right-radius:0px;
}
.btn-group :last-child:not(:first-child),
.input-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;
}
.input-group-btn{
display:flex;
}
.input-group-btn .btn:first-child{
border-top-left-radius:0px;
border-bottom-left-radius:0px;
border-left-width:0px;
}
.rock-loading {
display: inline-block;
vertical-align: middle;
height:16px;
width:16px;
-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;
opacity:0.2;
}
::-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;
}
.badge {
display: inline-block;min-width: 10px; padding: 3px 5px;font-size: 12px;line-height: 1;color: #fff;
text-align: center;white-space: nowrap;vertical-align: baseline;background-color:red;border-radius: 12px;
}
.badge:empty {display: none;}
.rock-table{
width:100%;
background:var(--main-bgcolor)
}
.rock-table .rock-table-th{
height:40px;
border:var(--border);
background:var(--main-hgcolor);
padding:3px;
}
.rock-table .rock-table-td{
height:36px;
border:var(--border);
padding:3px;
min-width:35px;
word-wrap:break-word;word-break:break-all;white-space:normal;
}
.rock-table thead{}
.rock-table .rock-table-tr{}
.rock-table .rock-table-tr:nth-child(odd){
background:rgba(0,0,0,0.03);
background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.03);
}
.rock-table .rock-table-tr:hover{
background:rgba(0,0,0,0.1);
background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.1);
}
.rock-table-edit{
border:var(--border);
background:var(--main-bgcolor);
padding:10px;
box-shadow:0px 0px 10px rgba(0,0,0,0.3);
box-shadow:0px 0px 10px rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.3);
border-radius:5px;
}
.rock-table-list{
padding:8px 10px;
border:var(--border);
border-radius:5px;
margin:10px;
background:white
}
.rock-table-list:active{
background:rgba(0,0,0,0.05);
background:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.05);
}
.jquery-calendar .tdtext{border:var(--border);padding:3px}
.jquery-calendar .tdtext:hover{background-color:rgba(0,0,0,0.1);background-color:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.1);}
.jquery-calendar .thtext{border:var(--border); background-color:rgba(0,0,0,0.1); background-color:rgba(var(--rgb-r),var(--rgb-g),var(--rgb-b),0.1);height:34px}
.list-group,.panel{background:var(--main-bgcolor);border:var(--border);margin-bottom:20px;border-radius:5px;}
.list-group-item{display:block;padding:12px;}
.list-group>a:hover{
background-color:rgba(0,0,0,0.1);
background-color:var(--main-vgcolor);
color:inherit;
}
.list-group .list-group-item:not(:last-child){
border-bottom:var(--border);
}
.list-group .list-group-item:first-child,.panel-heading{
padding:12px;
background:var(--main-hgcolor);
border-top-right-radius:5px;
border-top-left-radius:5px;
}
.nav{ display:flex}
.nav li{padding:10px 15px;}
.nav .active{background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1)}
.input-group{display: flex}
.floats{display: flex}
.floats30{flex:1;text-align:right}
.floats50{flex:0.5;}
.tishi{color:#888888;padding:10px 0px}
.tdinput{padding:5px 0px;text-align:left;padding-right:15px}
.inputtitle{line-height:34px;text-align:center;background-color:var(--main-hgcolor)}
.upload_items{border:var(--border);height:60px;overflow:hidden;float:left;margin-top:5px;margin-bottom:5px;margin-right:10px;cursor:pointer;position:relative}
.upload_items:active{border:1px var(--main-color) solid}
.upload_items img.imgs{width:50px;height:50px;margin:5px}
.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}
.bootstree ul{height:36px;overflow:hidden;border-top:var(--border)}
.bootstree ul li{height:35px;overflow:hidden;line-height:35px;float:left;border-right:var(--border)}
.bootstree ul li:last-child{border-right-width:0px}
.bootstree ul:nth-of-type(even) {background-color:rgba(0,0,0,0.03);background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.03);}
.bootstree ul:hover{background-color:rgba(0,0,0,0.1);background-color:rgba(var(--rgb-r), var(--rgb-g), var(--rgb-b), 0.1);}
.panel-footer{padding:10px;background-color:var(--main-bgcolor);border-top:var(--border)}
.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)}
.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);}
.label{border-radius:5px;padding:2px 3px}
.label-success{background:green;color:white}
.label-default{background:#aaaaaa;color:white}
.progress{border:var(--border);text-align:left;border-radius:5px;}
.progress-bar-success{background:green;color:white;font-size:12px;border-radius:5px;text-align:center}

6
webmain/css/rockmy.css Normal file
View File

@@ -0,0 +1,6 @@
/**
* 这个文件就自定义写文件,在线更新不会覆盖的
* 开发者:雨中磐石
* 地址www.rockoa.com
* 日期2024-10-10
*/

View File

@@ -171,4 +171,31 @@ a:link,a:visited{TEXT-DECORATION:none;color:var(--main-color)}
.webbtn{color:#ffffff;opacity:1; background-color:#336699;background-color:var(--main-color); padding:5px 10px; border:none; cursor:pointer;font-size:14px;border-radius:5px;white-space:nowrap;text-overflow:ellipsis;}
.webbtn:hover,.webbtn:active{box-shadow:0px 0px 5px rgba(0,0,0,0.3);opacity:0.8}
.input:focus{box-shadow:0px 0px 5px rgba(0,0,0,0.3); border:1px #0887CC solid;border:1px var(--main-color) solid; color:#000000}
.input:focus{box-shadow:0px 0px 5px rgba(0,0,0,0.3); border:1px #0887CC solid;border:1px var(--main-color) solid; color:#000000}
.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;
}

View File

@@ -1,12 +1,28 @@
*{font-family:,Verdana, Geneva, sans-serif;padding:0px;margin:0px;}
body{--main-color:#1389D3;color:#222222;margin:0px;border:0;font-size:14px;-webkit-overflow-scrolling:touch;overflow-scrolling:touch;}
body{
color:#222222;
margin:0px;border:0;
font-size:14px;
-webkit-overflow-scrolling:touch;
overflow-scrolling:touch;
--main-color:#1389D3;
--border:0.5px rgba(0,0,0,0.1) solid;
--main-bgcolor:white;
--main-hgcolor:white;
--font-size:14px;
--main-border:rgba(0,0,0,0.1);
--rgb-r:0;
--rgb-g:0;
--rgb-b:0;
}
td,button{ font-size:14px}
a,c,.cursor{cursor:pointer;}
p{text-indent:24pt;margin:10px 0px}
ul,li,a{ list-style-type:none;}
ul,li{padding:0px;margin:0px}
.relative{position:relative}
.zhu{ color:#ffffff}
.zhu{color:#1389D3;color:var(--main-color)}
img{border:0}
label{font-weight:normal}
@@ -24,7 +40,7 @@ a.blue:hover{TEXT-DECORATION:underline;color:red;}
a.red:link,a.red:visited{color:red;TEXT-DECORATION:underline;}
a.red:hover{TEXT-DECORATION:underline;color:red;}
.hover:hover{background-color:rgba(0,0,0,0.1);}
.tishi{color:#888888;padding:10px 0px}
.basetable td{padding:3px 5px; text-align:center}
@@ -193,4 +209,31 @@ a.webbtn-mini:link,a.webbtn-mini:visited,.webbtn-mini{font-size:12px;padding:3px
a.webbtn-red:link,a.webbtn-red:visited,.webbtn-red{background-color:#d9534f}
a.webbtn-white:link,a.webbtn-white:visited,.webbtn-white{background-color:white;border:1px #cccccc solid;color:black}
.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{box-shadow:0px 0px 5px rgba(0,0,0,0.3);opacity:0.8}
.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;
}

View File

@@ -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;
@@ -96,7 +96,7 @@ class inputAction extends Action
}
if($oldrs)$this->rs = $oldrs;
$uaarr = $farrs = array();
$lvls = array('text','textarea','ditumap');
$lvls = array('textnot','textarea','ditumap');
foreach($fieldsarr as $k=>$rs){
$fid = $rs['fields'];
$fi1 = substr($fid, 0, 5);
@@ -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,37 +784,46 @@ 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);
//20250722
if(substr($actstr,0,5)=='rmod:'){
return c('input')->modestore($actstr);
}
if(isempt($act)){
if($actstr){
$actstr1 = $this->jm->base64decode($actstr);
$rows = c('input')->sqlstore($actstr1);
$rows = c('input')->sqlstore($actstr);
}
return $rows;
}
//用:读取model上的数据
if(!isempt($act) && contain($act,':')){
$acta = explode(':', $act);
$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){
@@ -874,21 +905,25 @@ class inputAction extends Action
foreach($this->flow->fieldsarra as $k2=>$rs2){
if($rs2['fieldstype']=='uploadimg')$farrl[$rs2['fields']]=$rs2['fieldstype'];
}
if($rows)foreach($rows as $k1=>$rs1){
foreach($farrl as $fid=>$flx){
if(isset($rs1[$fid])){
$val = $rs1[$fid];
if($flx=='uploadimg'){
$val = $this->rock->gethttppath($val);
$rows[$k1][$fid] = $val;
//if($this->flow->modeid>92)$val='<img src="'.$val.'" height="60">';
$hjfields = arrvalue($this->flow->moders, 'hjfields');
if($rows){
if($farrl)foreach($rows as $k1=>$rs1){
foreach($farrl as $fid=>$flx){
if(isset($rs1[$fid])){
$val = $rs1[$fid];
if($flx=='uploadimg'){
$val = $this->rock->gethttppath($val);
$rows[$k1][$fid] = $val;
//if($this->flow->modeid>92)$val='<img src="'.$val.'" height="60">';
}
}
}
}
if(!isempt($hjfields))$rows[] = m('base')->hjfieldsRows($rows, $hjfields);
}
$barr['modeid'] = $this->modeid;
$barr['loadci'] = $this->loadci;
$barr['rows'] = $rows;
$scarr = $this->storeafter($table, $rows, $barr);
if(is_array($scarr))foreach($scarr as $k=>$v)$barr[$k]=$v;
@@ -941,41 +976,57 @@ class inputAction extends Action
$fields = substr($fields, 1);
if($fieldss!='')$fieldss = substr($fieldss,1);
$data = c('html')->importdata($fields, $fieldss); //获取提交过来要导入的数据库
if(!$data)return returnerror('没有可导入的数据,注意*是必填的哦');
$msgstr = '';
$hobj = c('html');
$data = $hobj->importdata($fields, $fieldss,'', 1); //获取提交过来要导入的数据库
$errdata= $hobj->importerrda();
if(!$data)return returnerror('没有可导入的数据,注意*是必填的哦',201, array('errdata'=>$errdata));
//保存前判断
if(method_exists($flow,'flowdaorubefore')){
$data = $flow->flowdaorubefore($data);
if(is_string($data))return returnerror($data);
$data = $flow->flowdaorubefore($data, $errdata);
if(is_string($data))return returnerror($data, 201, array('errdata'=>$errdata));
}
//判断是否有重复
$ldata = array();
foreach($data as $k=>$rs){
$bos = true;
foreach($onlyfield as $onid){
$val = arrvalue($rs, $onid);
if(!isempt($val)){
$tos = $flow->rows("`$onid`='$val'");
if($tos>0){
$bos = false;
$msgstr.='行'.($k+1).'的字段'.$onid.'存在重复;';
break;
if($onlyfield){
foreach($data as $k=>$rs){
$bos = true;
foreach($onlyfield as $onid){
$val = arrvalue($rs, $onid);
if(!isempt($val)){
$tos = $flow->rows("`$onid`='$val'");
if($tos>0){
$bos = false;
$errdata[$rs['drxu']] = '字段('.$onid.':'.$val.')存在重复';
break;
}
}
}
if($bos)$ldata[] = $rs;
}
if($bos)$ldata[] = $rs;
}else{
$ldata = $data;
}
if(!$ldata)return returnerror('没有可导入的数据'.$msgstr.'');
if(!$ldata)return returnerror('没有可导入的数据',201, array('errdata'=>$errdata));
$allfields = $this->db->getallfields('[Q]'.$flow->mtable.'');
$oi = 0;
$dorudat= array();
foreach($ldata as $k=>$rs){
$drerr = '';
$drxu = $rs['drxu'];
if(isset($rs['drerr'])){
$drerr = $rs['drerr'];
if($drerr){
$errdata[$drxu] = $drerr;
continue;
}
}
unset($rs['drxu']);
unset($rs['drerr']);
$id = (int)arrvalue($rs,'id','0');
$where = '';
if($id>0){
@@ -1019,20 +1070,22 @@ class inputAction extends Action
$na = ($isturn=='1') ? '提交' : '保存';
$flow->submit($na);
}
$errdata[$drxu] = 'ok';
}else{
$msgstr.='行'.($k+1).'保存数据库错误;';
$errdata[$drxu] = '数据库错误:'.$this->db->error().'';
}
}
if($oi==0)return returnerror('导入数据为0条'.$msgstr.'');
if($oi==0)return returnerror('导入数据为0条', 201, array('errdata'=>$errdata));
//保存后判断
if(method_exists($flow,'flowdaoruafter')){
$flow->flowdaoruafter($dorudat);
}
return returnsuccess('成功导入'.$oi.'条数据'.$msgstr.'');
$bcarr = returnsuccess('成功导入'.$oi.'条数据');
$bcarr['errdata'] = $errdata;
return $bcarr;
}
//读取导入的excel数据

View File

@@ -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;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+='&nbsp;<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:#eeeeee">总记录'+len+'条';
if(p>1)str+='&nbsp;<a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p-1)+')">&lt;上页</a>';
if(j==zl)str+='&nbsp;<a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p+1)+')">下页&gt;</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
});
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,75 @@
//流程模块【custprice.报价单】下录入页面自定义js页面,初始函数
function initbodys(){
//记录原来选择的
c.daossdts=[];
c.onselectdatabefore=function(){
this.daossdts = this.getsubdata(0);
}
//这个是很复杂的叠加关系,时间久了谁也不知道是干嘛用的
c.onselectdataall=function(fid,seld,sna,sid){
if(!seld || !sna)return;
var da = [];
if(!seld[0]){
da[0]=seld;
}else{
da = seld;
}
var nam = this.getxuandoi(fid),snua;
var dao=this.daossdts,i,j,bo,d,oi=parseFloat(nam[1]),oii=-1;
for(i=0;i<da.length;i++){
d = da[i];
bo = false;
for(j=0;j<dao.length;j++)if(dao[j].aid==d.value)bo=true;
oii++;
if(!bo){
if(oii>0){
snua= ''+nam[3]+''+nam[0]+'_'+(oi+oii)+'';
if(!form(snua) || form(snua).value!=''){
nam = this.insertrow(0,{},true);
}else{
nam[1]=parseFloat(nam[1])+1;
}
}
this.setrowdata(nam[0],nam[1],{
unit:d.unit,
price:d.price,
temp_aid:d.name,
aid:d.value
});
}else{
oii--;
if(i==0){
this.setrowdata(nam[0],nam[1],{
unit:'',
price:'0',
temp_aid:'',
aid:'0'
});
}
}
}
}
}
function changesubmit(){
if(get('tablesub0')){
var da = c.getsubdata(0),d1;
for(var i=0;i<da.length;i++){
d1 = da[i];
if(!d1.aid)return '行['+(i+1)+']必须选择物品';
if(d1.count<=0)return '行['+(i+1)+']数量必须大于0';
}
}
}
function eventaddsubrows(xu,oj){
c.setrowdata(xu,oj,{
aid:'0'
});
}

View File

@@ -22,6 +22,8 @@ function initbodys(){
$(form('fieldstype')).change(function(){
c.changetypes();
});
var s = '<button type="button" onclick="setdatabtn()" class="webbtn btn-danger btn-xs">设置数据源</button>';
$('#div_data').append(s);
}
c.onselectdatabefore=function(fid){
@@ -38,7 +40,10 @@ c.changetypes=function(){
function changesubmit(d){
if(d.fieldstype.indexOf('change')==0){
if(d.data=='' || d.data==d.fields)return '此字段元素类型时数据源必须填写用来存储选择来的Id请填写为'+d.fields+'id';
if(d.data=='' || d.data==d.fields){
form('data').value = ''+d.fields+'id';
return '此字段元素类型时数据源必须填写用来存储选择来的Id请填写为'+d.fields+'id';
}
}
if(d.islu=='1' && d.fields=='id')return 'id字段是不可以做录入项字段';
}
@@ -53,4 +58,119 @@ c.xuanchangs=function(){
}else{
js.msg('msg','元素类型不是选择人员部门的');
}
}
var cmode = false;
function setdatabtn(){
var lx = form('fieldstype').value;
var fid = form('fields').value;
if(!lx){
js.msg('msg','请先选择“字段元素类型”');
return;
}
if(lx.indexOf('change')==0){
if(!fid){
js.msg('msg','请先输入“对应字段”');
return;
}
form('data').value = ''+fid+'id';
return;
}
cmode = false;
var shjyx = ',text,select,selectdatafalse,selectdatatrue,radio,checkboxall,textarea,';
if(shjyx.indexOf(','+lx+',')==-1){
js.msg('msg','此字段类型,无需设置数据源,或者可直接输入');
return;
}
var s = '<div class="flex"><div style="width:100px" align="right">数据源模块:</div><input readonly onclick="xuanmode(this)" style="flex:1" placeholder="-请选择模块V-" class="input"></div>';
s+='<div class="flex" style="margin-top:15px"><div style="width:100px" align="right">数据源条件:</div><select id="modewhere" style="flex:1" class="input"><option value="">-选择条件-</option></select></div>';
s+='<div class="flex" style="margin-top:15px"><div style="width:100px" align="right">显示内容:</div><input style="flex:1" id="modeshowname" placeholder="如:{title}" class="input"></div>';
s+='<div class="flex"><div style="width:100px" align="right"></div><div style="flex:1" id="modeshownamediv"></div></div>';
s+='<div class="flex" style="margin-top:15px"><div style="width:100px" align="right">存储主键字段:</div><input style="flex:1" placeholder="默认的id不用去改" readonly ondblclick="this.readOnly=false" value="" class="input" id="modeshowval"></div>';
s+='<div class="flex" style="margin-top:15px"><div style="width:100px" align="right">子内容显示:</div><input style="flex:1" placeholder="留空就好了" value="" class="input" id="modeshownames" readonly ondblclick="this.readOnly=false"></div>';
js.tanbody('databody','使用模块数据做数据源',400,300,{
html:'<div style="overflow:auto;max-height:450px"><div style="padding:15px"><form autocomplete="off" name="dataform">'+s+'</form></div></div>',
btn:[{text:'确定选择'}]
});
$('#databody_btn0').click(function(){
setdatabtnok();
});
}
function setdatabtnok(){
if(!cmode)return;
var tj = get('modewhere').value;
if(!tj){
js.msg('msg','请选择数据源条件');
return;
}
var zd = get('modeshowname').value;
if(!zd){
js.msg('msg','请输入显示内容字段');
return;
}
var acta = form('data').value.split(',');
var vzd = get('modeshowval').value;
if(!vzd)vzd='id';
var s = 'rmod:'+cmode.num+'|'+tj+'|'+zd+'|'+vzd+'';
vzd = get('modeshownames').value;
if(vzd)s+='|'+vzd+'';
if(acta[1])s+=','+acta[1]+'';
form('data').value = s;
js.tanclose('databody');
}
function xuanmode(o1){
js.selectmode(o1, o1, function(sna,val,d){
cmode = d;
changeflowwhere(d.id);
});
}
function changeflowwhere(id1){
var o1 = get('modewhere');
o1.length = 1;
$('#modeshownamediv').html('');
js.ajax(geturlact('modewhere'),{modeid:id1},function(ret){
js.setselectdata(o1, ret.wheredata, 'num');
var farr = ret.fieldsarr,s='';
for(var i=0;i<farr.length;i++){
s+='<label><input type="checkbox" onclick="changeziduansv(this)" name="selfieldsabc" value="{'+farr[i].fields+'}">'+farr[i].name+'('+farr[i].fields+')</label>&nbsp;&nbsp;';
}
$('#modeshownamediv').html(s);
js.resizetan('databody');
}, 'get,json');
}
function changeziduansv(){
var val = js.getchecked('selfieldsabc');
val = val.replace(/[\,]/gi,'');
get('modeshowname').value = val;
}
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
});
}

View File

@@ -13,4 +13,8 @@ function changesubmit(d){
if(!d.rankings)len2=0;
if(len2!=len1)return '多部门和多职位的数量不一致';
}
js.setoption('userjson','');
js.setoption('deptjson','');
js.setoption('groupjson','');
}

View File

@@ -43,6 +43,7 @@ class mode_collectsClassAction extends inputAction{
return $arr;
}
private $zdarr,$zdobj;
public function collectstotal_before()
{
$mid = (int)$this->get('mid','0');

View File

@@ -1,6 +1,6 @@
<?php
/**
* 客户.款单
* 客户.款单
*/
class mode_custfinaClassAction extends inputAction{
@@ -147,7 +147,8 @@ class mode_custfinaClassAction extends inputAction{
protected function storeafter($table, $rows)
{
$money = 0;
if($rows){
$hjfields = arrvalue($this->flow->moders, 'hjfields');
if($rows && isempt($hjfields)){
foreach($rows as $k1=>$rs1){
$money+=floatval($rs1['money']);
}

View File

@@ -108,8 +108,9 @@ class mode_custfinbClassAction extends inputAction{
protected function storeafter($table, $rows)
{
$money = 0;
if($rows){
$money = 0;
$hjfields = arrvalue($this->flow->moders, 'hjfields');
if($rows && isempt($hjfields)){
foreach($rows as $k1=>$rs1){
$money+=floatval($rs1['money']);
}

View File

@@ -0,0 +1,48 @@
<?php
/**
* 此文件是流程模块【custxiao.销售】对应控制器接口文件。
*/
class mode_custpriceClassAction extends inputAction{
private $sssaid;
protected function savebefore($table, $arr, $id, $addbo){
$data = $this->getsubtabledata(0);
if(count($data)==0)return '至少要有一行记录';
$this->sssaid = '0';
foreach($data as $k=>$rs){
$this->sssaid.=','.$rs['aid'].'';
if(isset($rs['aid']))foreach($data as $k1=>$rs1){
if($k!=$k1){
if($rs['aid']==$rs1['aid'])
return '行'.($k1+1).'的物品已在行'.($k+1).'上填写,不要重复填写';
}
}
}
$rows['type'] = '6';//一定要是6不能去掉
return array(
'rows'=>$rows
);
}
protected function saveafter($table, $arr, $id, $addbo){
}
//读取物品
public function getgoodsdata()
{
return m('goods')->getgoodsdata(2);
}
//读取我的客户
public function getmycust()
{
$rows = m('crm')->getmycust($this->adminid, $this->rock->arrvalue($this->rs, 'custid'));
return $rows;
}
}

View File

@@ -1,7 +1,7 @@
<?php
class mode_dailyClassAction extends inputAction{
public $months;
public $months,$ztdt;
protected function savebefore($table, $arr, $id, $addbo){
$type = arrvalue($arr, 'type');

View File

@@ -87,7 +87,7 @@ class mode_flowelementClassAction extends inputAction{
return array(
'rows' => $rows,
'modearr' => m('mode')->getmodearr(),
//'modearr' => m('mode')->getmodearr(),
'mkrs' => $mkrs,
);
}
@@ -110,5 +110,17 @@ class mode_flowelementClassAction extends inputAction{
}
return $farrs;
}
public function modewhereAjax()
{
$modeid = (int)$this->get('modeid','0');
$rows = m('flow_where')->getall("`setid`=".$modeid." AND ifnull(`num`,'')<>''", 'num,name','`sort` asc');
$farr = m('flow_element')->getall("`mid`=".$modeid." and `iszb`=0", 'fields,name','`sort` asc');
return array(
'wheredata'=>$rows,
'fieldsarr'=> $farr
);
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -14,5 +14,10 @@ class mode_goodsClassAction extends inputAction{
}
public function reloadstockAjax()
{
m('goods')->setstock();
return 'ok';
}
}

View File

@@ -110,7 +110,8 @@ class mode_knowtraimClassAction extends inputAction{
$mdos = m('flow:knowtraim');
foreach($rows as $k=>$rs){
$zt = $mdos->getstatestr($rs['state']);
$rows[$k]['startdt'] = ''.substr($rs['startdt'],5,11).'至'.substr($rs['enddt'],5,11).'('.$zt.')';
//$rows[$k]['startdt'] = ''.substr($rs['startdt'],5,11).'至'.substr($rs['enddt'],5,11).'('.$zt.')';
$rows[$k]['startdt'] = ''.$rs['startdt'].'至'.$rs['enddt'].'('.$zt.')';
if($rs['fenshu']=='0' && $rs['isks']==0)$rows[$k]['fenshu']='';
if(!isempt($rs['ksedt']))$rows[$k]['ksedt'] = ''.substr($rs['kssdt'],5,11).'至'.substr($rs['ksedt'],5,11).'';
$strs = ($rs['isks']=='1') ? '<font color=green>已考试</font>' : '<font color=red>未考试</font>';

View File

@@ -4,6 +4,7 @@
*/
class mode_userClassAction extends inputAction{
private $depta;
protected function savebefore($table, $cans, $id, $addbo){
if(getconfig('systype')=='demo' && $id>0)return '演示请勿编辑';
@@ -89,7 +90,12 @@ class mode_userClassAction extends inputAction{
//组数据源
public function groupdata()
{
return m('sjoin')->getgrouparrs();
$data = m('sjoin')->getgrouparrs();
if(!$data)$data[] = array(
'value'=> '0',
'name' => '无组选择'
);
return $data;
}
//生成列表页,数据读取后处理

View File

@@ -5,18 +5,19 @@ $(document).ready(function(){
var modenum = params.modenum;
var c={
headers:'',
yscss:'style="border:var(--border);padding:3px 5px"',
yulan:function(){
var cont = mobjs.val(),s='',a,a1,i,j,oi=0;
s+='<table class="basetable" border="1">';
s+='<tr><td></td>'+this.headers+'</tr>';
s+='<table border="0">';
s+='<tr style="background:rgba(0,0,0,0.1)"><td '+this.yscss+'></td><td '+this.yscss+'>导入结果</td>'+this.headers+'</tr>';
a = cont.split('\n');
for(i=0;i<a.length;i++){
if(a[i]){
oi++;
a1 = a[i].split(' ');
s+='<tr>';
s+='<td>'+oi+'</td>';
for(j=0;j<a1.length;j++)s+='<td>'+a1[j]+'</td>';
s+='<td '+this.yscss+'>'+oi+'</td><td '+this.yscss+' id="runstate_'+modenum+'_'+oi+'"></td>';
for(j=0;j<a1.length;j++)s+='<td '+this.yscss+'>'+a1[j]+'</td>';
s+='</tr>';
}
}
@@ -37,12 +38,12 @@ $(document).ready(function(){
var i,len=ret.length,d;
for(i=0;i<len;i++){
d=ret[i];
this.headers+='<td>';
this.headers+='<td '+this.yscss+'>';
if(d.isbt=='1'){
this.bitian+=','+d.fields+'';
this.headers+='<font color=red>*</font>';
}
this.headers+=''+d.name+'</td>';
this.headers+=''+d.name+'('+d.fields+')</td>';
}
this.yulan();
},
@@ -68,11 +69,20 @@ $(document).ready(function(){
js.setmsg(ds.msg+'','red', vis);
o1.disabled=false;
}
if(ds.errdata)c.showerrdata(ds.errdata);
},'post,json',function(s){
js.setmsg(s,'red', vis);
o1.disabled=false;
});
},
showerrdata:function(ed){
var xu,str,col;
for(xu in ed){
str = ed[xu];
col = (str=='ok') ? 'green' : 'red';
$('#runstate_'+modenum+'_'+(parseFloat(xu)+1)+'').html('<font color='+col+'>'+str+'</font>');
}
},
downxz:function(){
var url = '?m=input&a=daoruexcel&d=flow&modenum='+modenum+'';
js.open(url);

View File

@@ -3,63 +3,60 @@
<head>
<meta charset="utf-8">
<title><?=$da['title']?></title>
<link rel="stylesheet" href="<?=$da['p']?>/css/css.css" />
<link rel="stylesheet" href="<?=$da['p']?>/css/rock.css" />
<link rel="stylesheet" type="text/css" href="mode/plugin/css/jquery-rockdatepicker.css"/>
<link rel="shortcut icon" href="favicon.ico" />
<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?<?=$nowtime?>"></script>
<script type="text/javascript" src="js/base64-min.js"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockdatepicker.js"></script>
<script type="text/javascript" src="<?=$da['p']?>/flow/input/inputjs/input.js?<?=$da['logintime']?>"></script>
<script type="text/javascript" src="web/res/js/jquery-changeuser.js"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockmodels.js"></script>
<script type="text/javascript" src="<?=$da['p']?>/flow/input/inputjs/input.js?<?=$nowtime?>"></script>
<script type="text/javascript" src="web/res/js/jquery-changeuser.js?<?=$nowtime?>"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockmodels.js?<?=$nowtime?>"></script>
<script type="text/javascript">
<?php
$maincolor = getconfig('apptheme','#1389D3');
?>
var editor,arr=<?=$da['fieldsjson']?>,moders=<?=json_encode($da['moders'])?>,gongsiarr=<?=json_encode($da['gongsiarr'])?>,subfielsa=<?=json_encode($da['subfielsa'])?>,zbnamearr=<?=json_encode($da['zbnamearr'])?>,isedit=0,mid='<?=$da['mid']?>',isinput=1,data={},maincolor='<?=$maincolor?>',tempdata='<?=$tempdata?>';
var editor,arr=<?=$da['fieldsjson']?>,moders=<?=json_encode($da['moders'])?>,gongsiarr=<?=json_encode($da['gongsiarr'])?>,subfielsa=<?=json_encode($da['subfielsa'])?>,zbnamearr=<?=json_encode($da['zbnamearr'])?>,isedit=0,mid='<?=$da['mid']?>',isinput=1,data={},tempdata='<?=$tempdata?>';
</script>
<?php
echo c('color')->getApptheme();
?>
<style>
<?php
$maincolora= c('image')->colorTorgb($maincolor);
$maincolors= ''.$maincolora[0].','.$maincolora[1].','.$maincolora[2].'';
echo 'body{--main-color:'.$maincolor.';--main-border:rgba('.$maincolors.',0.2)}';
$colarr = c('color')->getColor();
$maincolors= $colarr['colors'];
?>
.tdcont{padding:0px 0px;font-size:14px;}
.tdcont *{font-size:14px;}
.tdcont a{color:blue;}
.ys0{border:1px #888888 solid;border:1px var(--main-border) solid}
.ys1{padding:5px 5px;border:1px #888888 solid; border:1px var(--main-border) solid;color:#555555;}
.ys2{padding:5px 5px;border:1px #888888 solid;border:1px var(--main-border) solid;}
.ys1{padding:5px 5px;color:#666666}
.ys2{padding:5px 5px;}
.inputs{width:95%;font-size:14px;}
.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-bottom:1px var(--main-border) solid;border-right:1px var(--main-border) solid;}
.tablesub .inputs{border:none}
.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}
.btn-default{background-color:#1389D3;}
.btn-danger{background-color:#d9534f;}
.btn:hover{opacity:1;color:#ffffff}
.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 style="background:white">
<body>
<div align="center">
<div class="blank10"></div>
<div style="min-width:650px; position:relative;max-width:<?=$da['inputwidth']?>px;margin:0px 10px">
<div style="min-width:650px; position:relative;max-width:<?=$da['inputwidth']?>px;margin:0px 10px;">
<div onclick="$(this).remove()" class="status"></div>
<div style="padding-bottom:15px;"><span id="inputtitle" onclick="location.reload()" style="font-size:24px"><?=$da['title']?></span></div>
<div class="tdcont" align="left">
<div class="tdcont border" style="background:var(--main-bgcolor);padding:10px;border-radius:5px" align="left">
<form name="myform" autocomplete="off">
<input name="id" type="hidden" value="<?=$da['mid']?>">
<input name="sxuanfileid" type="hidden" value="">
@@ -100,8 +97,8 @@ echo 'body{--main-color:'.$maincolor.';--main-border:rgba('.$maincolors.',0.2)}'
$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;
}
@@ -127,15 +124,15 @@ echo 'body{--main-color:'.$maincolor.';--main-border:rgba('.$maincolors.',0.2)}'
</form>
</div>
<?php echo $coursestr;?>
<div style="height:60px; overflow:hidden"></div>
</div>
<div align="right" style="background:#eeeeee;border-top:1px #aaaaaa solid;padding:10px 0px; position:fixed;width:100%;bottom:0px;left:0px;z-index:10">
<div style="height:70px; overflow:hidden"></div>
<div align="right" style="background:var(--main-bgcolor);border-top:var(--border);padding:10px 0px; position:fixed;width:100%;bottom:0px;left:0px;z-index:10">
<span id="msgview"></span>&nbsp;
<span id="AltSspan" style="display:none" >
<?php
if($da['isflow']>0)echo '<label><input onclick="c.changeturn(this)" value="1" checked type="checkbox" id="sysisturn">直接提交</label>&nbsp;';
?>
<a class="hui" id="Altzhan" style="margin-right:10px;display:none" onclick="return c.savezhan()" href="javascript:;">暂存</a><input id="AltS" type="button" style="border-radius:5px" onclick="return c.save()" value="提交" class="webbtn"></span>&nbsp; &nbsp;
<a class="hui" id="Altzhan" style="margin-right:10px;display:none" onclick="return c.savezhan()" href="javascript:;">暂存</a><input id="AltS" type="button" onclick="return c.save()" value="提交" class="webbtn"></span>&nbsp; &nbsp;
</div>
</div>
<script>

View File

@@ -7,16 +7,16 @@
<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"></script>
<script type="text/javascript" src="js/js.js?<?=$nowtime?>"></script>
<script type="text/javascript" src="js/base64-min.js"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockdatepicker.js"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockdatepicker-mobile.js"></script>
<script type="text/javascript" src="web/res/js/jquery-rockupload.js"></script>
<script type="text/javascript" src="<?=$da['p']?>/flow/input/inputjs/input.js?<?=$da['logintime']?>"></script>
<script type="text/javascript" src="web/res/js/jquery-changeuser.js"></script>
<script type="text/javascript" src="<?=$da['p']?>/flow/input/inputjs/input.js?<?=$nowtime?>"></script>
<script type="text/javascript" src="web/res/js/jquery-changeuser.js?<?=$nowtime?>"></script>
<script type="text/javascript" src="web/res/js/jquery-imgview.js"></script>
<script type="text/javascript" src="mode/plugin/jquery-rockmodels.js"></script>
<script type="text/javascript">
@@ -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;
}

View File

@@ -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>

View File

@@ -0,0 +1 @@
<table width="100%" border="0" class="ke-zeroborder"><tbody><tr class="autoyijianview"><td height="34" width="15%" align="right" class="ys1">*^custname^</td><td width="35%" class="ys2">{custname}{custid}</td><td height="34" width="15%" align="right" class="ys1">*^applydt^</td><td width="35%" class="ys2">{applydt}</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" width="15%" align="right" class="ys1">^discount^</td><td width="35%" class="ys2">{discount}</td><td height="34" width="15%" align="right" class="ys1">^money^</td><td width="35%" class="ys2">{money}</td></tr><tr><td height="34" align="right" class="ys1">^explain^</td><td colspan="3" class="ys2">{explain}</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">^base_name^</td><td class="ys2">{base_name}</td><td align="right" class="ys1">^base_deptname^</td><td class="ys2">{base_deptname}</td></tr></tbody></table>

View File

@@ -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>

File diff suppressed because one or more lines are too long

View File

@@ -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}&nbsp;<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>

View File

@@ -1 +1 @@
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">名称</td><td class="ys2" width="32%">{title}</td><td align="right" class="ys1" width="18%">*适用对象</td><td class="ys2" width="32%">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*开始月份</td><td class="ys2">{startdt}</td><td class="ys1" align="right">*截止月份</td><td class="ys2">{enddt}</td></tr><tr><td height="34" align="right" class="ys1"></td><td class="ys2"></td><td class="ys1" align="right">状态</td><td class="ys2">{status}启用</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explian}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr></tbody></table><p><br /></p><p><strong>养老保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">养老保险基数</td><td class="ys2" width="32%">{yljishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">养老个人比例(%)</td><td class="ys2">{ylgeren}</td><td class="ys1" align="right">养老单位比例(%)</td><td class="ys2">{ylunit}</td></tr></tbody></table><p><br /></p><p><strong>失业保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">失业保险基数</td><td class="ys2" width="32%">{syjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">失业个人比例(%)</td><td class="ys2">{sygeren}</td><td class="ys1" align="right">失业个人比例(%)</td><td class="ys2">{syunit}</td></tr></tbody></table><p><br /></p><p><strong>工伤保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">工伤保险基数</td><td class="ys2" width="32%">{gsjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">工伤个人比例(%)</td><td class="ys2">{gsgeren}</td><td class="ys1" align="right">工伤单位比例(%)</td><td class="ys2">{gsunit}</td></tr></tbody></table><p><br /></p><p><strong>生育保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">生育保险基数</td><td class="ys2" width="32%">{syujishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">生育个人比例(%)</td><td class="ys2">{syugeren}</td><td class="ys1" align="right">生育单位比例(%)</td><td class="ys2">{syuunit}</td></tr></tbody></table><p><br /></p><p><strong>医疗保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">医疗保险基数</td><td class="ys2" width="32%">{yijishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">医疗个人比例(%)</td><td class="ys2">{yigeren}</td><td class="ys1" align="right">医疗单位比例(%)</td><td class="ys2">{yiunit}</td></tr></tbody></table><p><br /></p><p><strong>保险合计</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">大病个人(元)</td><td class="ys2" width="32%">{dbgeren}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">个人社保缴费(元)</td><td class="ys2">{shebaogeren}</td><td class="ys1" align="right">单位社保缴费(元)</td><td class="ys2">{shebaounit}</td></tr></tbody></table><p><br /></p><p><strong>公积金</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">公积金基数</td><td class="ys2" width="32%">{gongjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">公积金个人比例(%)</td><td class="ys2">{gjjgeren}</td><td class="ys1" align="right">公积金单位比例(%)</td><td class="ys2">{gjjunit}</td></tr><tr><td height="34" align="right" class="ys1">公积金个人(元)</td><td class="ys2">{gonggeren}</td><td class="ys1" align="right">公积金单位(元)</td><td class="ys2">{gongunit}</td></tr></tbody></table>
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">名称</td><td class="ys2" width="32%">{title}</td><td align="right" class="ys1" width="18%">*适用对象</td><td class="ys2" width="32%">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*开始月份</td><td class="ys2">{startdt}</td><td class="ys1" align="right">*截止月份</td><td class="ys2">{enddt}</td></tr><tr><td height="34" align="right" class="ys1"></td><td class="ys2"></td><td class="ys1" align="right">状态</td><td class="ys2">{status}启用</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explian}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr></tbody></table><p><br /></p><p><strong>养老保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">养老保险基数</td><td class="ys2" width="32%">{yljishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">养老个人比例(%)</td><td class="ys2">{ylgeren}</td><td class="ys1" align="right">养老单位比例(%)</td><td class="ys2">{ylunit}</td></tr></tbody></table><p><br /></p><p><strong>失业保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">失业保险基数</td><td class="ys2" width="32%">{syjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">^sygeren^</td><td class="ys2">{sygeren}</td><td class="ys1" align="right">^syunit^</td><td class="ys2">{syunit}</td></tr></tbody></table><p><br /></p><p><strong>工伤保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">工伤保险基数</td><td class="ys2" width="32%">{gsjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">工伤个人比例(%)</td><td class="ys2">{gsgeren}</td><td class="ys1" align="right">工伤单位比例(%)</td><td class="ys2">{gsunit}</td></tr></tbody></table><p><br /></p><p><strong>生育保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">生育保险基数</td><td class="ys2" width="32%">{syujishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">生育个人比例(%)</td><td class="ys2">{syugeren}</td><td class="ys1" align="right">生育单位比例(%)</td><td class="ys2">{syuunit}</td></tr></tbody></table><p><br /></p><p><strong>医疗保险</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">医疗保险基数</td><td class="ys2" width="32%">{yijishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">医疗个人比例(%)</td><td class="ys2">{yigeren}</td><td class="ys1" align="right">医疗单位比例(%)</td><td class="ys2">{yiunit}</td></tr></tbody></table><p><br /></p><p><strong>保险合计</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">大病个人(元)</td><td class="ys2" width="32%">{dbgeren}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">个人社保缴费(元)</td><td class="ys2">{shebaogeren}</td><td class="ys1" align="right">单位社保缴费(元)</td><td class="ys2">{shebaounit}</td></tr></tbody></table><p><br /></p><p><strong>公积金</strong> </p><table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="18%" align="right" class="ys1">公积金基数</td><td class="ys2" width="32%">{gongjishu}</td><td align="right" class="ys1" width="18%"></td><td class="ys2" width="32%"></td></tr><tr><td height="34" align="right" class="ys1">公积金个人比例(%)</td><td class="ys2">{gjjgeren}</td><td class="ys1" align="right">公积金单位比例(%)</td><td class="ys2">{gjjunit}</td></tr><tr><td height="34" align="right" class="ys1">公积金个人(元)</td><td class="ys2">{gonggeren}</td><td class="ys1" align="right">公积金单位(元)</td><td class="ys2">{gongunit}</td></tr></tbody></table>

View File

@@ -23,7 +23,7 @@ if(pnum=='all'){
bootparams.checked=true; //开启复选框
bootparams.autoLoad=false;
var shtm = '<table width="100%"><tr valign="top"><td><div style="border:1px #cccccc solid;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="view'+modenum+'_{rand}"></div></td></tr></table>';
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="view'+modenum+'_{rand}"></div></td></tr></table>';
$('#view'+modenum+'_{rand}').after(shtm).remove();
c.stable = 'assetm'; //模块的主表
c.optionview = 'optionview_{rand}';

View File

@@ -47,11 +47,11 @@ if(pnum=='' || pnum=='all'){
}
setTimeout(function(){js.getuser(cans);},10);
}
$('#tdright_{rand}').append('&nbsp; '+c.getbtnstr('客户转移','move'));
$('#tdright_{rand}').append('&nbsp;'+c.getbtnstr('客户转移','move'));
}
if(atype=='my'){
$('#tdright_{rand}').append('&nbsp; '+c.getbtnstr('共享','shates'));
$('#tdright_{rand}').append('&nbsp;'+c.getbtnstr('共享','shates'));
c.shates=function(){
var s= a.getchecked();
if(s==''){js.msg('msg','没有选择记录');return;}

View File

@@ -1,33 +1,23 @@
//<script>
c.optalign = 'left';
c.opttype = '<button type="button" class="btn btn-default" style="padding:3px 5px;font-size:12px">操作</button>';
c.opttype = '<button type="button" class="btn btn-default btn-xs" style="padding:3px 5px;font-size:12px">操作</button>';
var editarr = ['islu','isbt','iszs','islb','ispx','issou','isonly','isdr','istj'],mkid=0,mknum=modenum;
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('请先选择模块');
@@ -51,7 +45,7 @@ c.clickwin=function(o1,lx){
$('#tools'+modenum+'_{rand}').find('td[tdlx="sou"]').hide();
var strss = '<div class="btn-group" style="margin-right:10px">';
var strss = '<div class="btn-group">';
strss+='<button class="btn btn-default" click="inputs,0" type="button">PC端录入页布局</button>';
strss+='<button class="btn btn-default" click="zhanshi,0" type="button">PC端展示</button>';
strss+='<button class="btn btn-default" click="zhanshi,1" type="button">手机展示</button>';
@@ -61,7 +55,7 @@ strss+='<button class="btn btn-default" click="lulu,1" type="button">手机录
strss+='<button class="btn btn-default" click="changelieb" type="button">生成列表页</button>';
strss+='</div>';
$('#tdcenter_{rand}').prepend(''+strss+'');
$('#tdcenter_{rand}').before('<td style="padding-left:10px">'+strss+'</td>');
c.inputs=function(){
if(!this.xuanmoxbo())return;

View File

@@ -1,7 +1,7 @@
//<script>
c.optalign = 'left';
c.opttype = '<button type="button" class="btn btn-default" style="padding:3px 5px;font-size:12px">操作</button>';
c.opttype = '<button type="button" class="btn btn-default btn-xs" style="padding:3px 5px;font-size:12px">操作</button>';
bootparams.statuschange = true;
bootparams.checked = true;
var editarr = ['pctx','status','emtx','mctx','wxtx','ddtx','istxset','ispl','islu','isup','ishz'];
@@ -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);
}
});

View 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')+'&nbsp;&nbsp;');
$('#tdright_{rand}').prepend(c.getbtnstr('所有物品','allshow')+'&nbsp;&nbsp;');
$('#tdright_{rand}').prepend(c.getbtnstr('入库','rukuchu,0')+'&nbsp;&nbsp;');
$('#tdright_{rand}').prepend(c.getbtnstr('出库','rukuchu,1')+'&nbsp;&nbsp;');
$('#tdright_{rand}').prepend(c.getbtnstr('打印二维码','prinwem,1')+'&nbsp;&nbsp;');
$('#tdright_{rand}').prepend('<span id="megss{rand}"></span>&nbsp;&nbsp;');
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>&nbsp;&nbsp;&nbsp;</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-->

View File

@@ -70,6 +70,9 @@ $(document).ready(function(){
search:function(){
var s=get('key_{rand}').value;
a.setparams({key:s},true);
},
view:function(){
}
};
js.initbtn(c);

View File

@@ -54,7 +54,7 @@ $(document).ready(function(){
},{
text:'创建者',dataIndex:'optname'
},{
text:'创建时间',dataIndex:'optdt'
text:'时间',dataIndex:'optdt'
},{
text:'共享给',dataIndex:'shate'
},{
@@ -265,7 +265,7 @@ $(document).ready(function(){
<table width="100%">
<tr valign="top">
<td width="220">
<div style="border:1px #cccccc solid;width:220px">
<div style="border:var(--border);width:220px">
<div id="optionview_{rand}" style="height:400px;overflow:auto;"></div>
<div class="panel-footer">
<a href="javascript:" title="分区管理" click="openglfe" onclick="return false"><i class="icon-cog"></i></a>&nbsp; &nbsp;

View File

@@ -16,9 +16,9 @@ defined('HOST') or die ('not access');
<div class="list-group-item" style="padding:0">
<table width="100%">
<tr valign="top">
<td><div style="width:350px;height:290px" id="bianjian_view"></div></td>
<td><div style="width:350px;height:300px" id="bianjian_view"></div></td>
<td width="100%">
<div align="center" style="line-height:40px;background:#f1f1f1"><span id="bianjianmonth"></span></div>
<div align="center" style="line-height:40px;background:var(--main-bgcolor)"><span id="bianjianmonth"></span></div>
<div style="padding:5px" id="bianqianlists"></div>
<div style="color:#cccccc;margin-top:40px" id="bianqianlists22" align="center">无便笺内容</div>
@@ -54,7 +54,7 @@ homeobject.bianjian_init=function(){
}
this.bianjianobjmb = $('#bianjian_view').rockcalendar({
height:280,
height:250,
changemonth:function(y, m,o1){
$('#bianjianmonth').html('<font onclick="homeobject.bianjianobjmb.fanmonth(-1)"><i class="icon-double-angle-left"></i></font> <font onclick="homeobject.bianjianobjmb.nowmonth()">'+y+'年'+xy10(m)+'月</font> <font onclick="homeobject.bianjianobjmb.fanmonth(1)"><i class="icon-double-angle-right"></i></font>');
homeobject.bianjiangetdata(o1.dayobj[1].day,o1.dayobj[42].day);

View File

@@ -15,7 +15,7 @@ homeobject.showicons=function(a){
cols = a[i].color;
if(homestyle=='2')cols=maincolor;
s='';
s+='<div onclick="opentabsshowshwo('+i+')" align="center" style="cursor:pointer;width:135px;float:left;margin:10px 15px;background:'+cols+';border:none" onmouseover="this.style.opacity=0.8" onmouseout="this.style.opacity=1" class="thumbnail">';
s+='<div onclick="opentabsshowshwo('+i+')" align="center" style="cursor:pointer;width:135px;float:left;margin:10px 15px;background:'+cols+';border:none;border-radius:5px;" onmouseover="this.style.opacity=0.8" onmouseout="this.style.opacity=1" class="thumbnail">';
s+=' <div style="position:relative;padding:15px 0px">';
s+=' <div style="color:white;font-size:36px"><i class="icon-'+a[i].icons+'"></i></div>';
s+=' <a style="TEXT-DECORATION:none;color:white" id="'+a[i].num+'_text">'+a[i].name+'</a>';

View File

@@ -30,7 +30,7 @@ homeobject.clicknewstabs=function(oi,na){
o1.find('li[tab="'+oi+'"]').addClass('active');
var das = this.newsrows[oi];
if(typeof(das)=='undefined'){
$('#newstabs_{rand}').after('<div id="losnew{rand}" style="margin:10px" align="center"><img src="images/mloading.gif"></div>');
$('#newstabs_{rand}').after('<div id="losnew{rand}" style="margin:10px" align="center">'+js.ling(30)+'</div>');
js.ajax(publicmodeurl('news','getnews'),{typename:na},function(ret){
homeobject.newsrows[oi]=ret;
homeobject.shownewsss(ret);
@@ -62,6 +62,8 @@ homeobject.shownewsss=function(das){
}
</script>
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title"><i class="icon-globe"></i> <?=$itemnowname?>

View File

@@ -100,6 +100,11 @@ class indexClassAction extends Action{
}
}
public function oldAction()
{
$this->defaultAction();
}
public function newAction()
{
$this->homestylebool = true;
@@ -314,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);

View File

@@ -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
});
}

View File

@@ -24,9 +24,11 @@ function initbody(){
},{
name:'<i class="icon-picture"></i> 修改头像',num:'face','icon':'picture'
},{
name:'<i class="icon-laptop"></i> 新版首页1',num:'jiu','icon':'laptop'
name:'<i class="icon-adjust"></i> 切换主题',num:'theme','icon':'adjust'
},{
name:'<i class="icon-certificate"></i> 新版首页2',num:'jiu2','icon':'laptop'
name:'<i class="icon-certificate"></i> 背景首页',num:'jiu','icon':'laptop'
},{
name:'<i class="icon-list"></i> 列表首页',num:'jiu2','icon':'laptop'
},{
name:'<i class="icon-user"></i> 帐号('+adminuser+')',num:'user'
}];
@@ -53,6 +55,10 @@ function initbody(){
js.location('?a=new');
return;
}
if(d.num=='theme'){
changetheme();
return;
}
if(d.num=='user')return;
addtabs({num:d.num,url:d.url,name:d.names,icons:d.icon});
}
@@ -91,22 +97,27 @@ function initbody(){
});
}catch(e){}
/*
var o1 = $('#index-navbar-center');
var hei = $('#index-navbar-left').width()+$('#index-navbar-right').width();
var wid = winWb()-hei;
if(o1.width()>wid){
o1.css({width:''+(wid-30)+'px',height:''+$('#index-navbar-right').height()+'px'});
$('#index-navbar-right').prepend('<li><a href="javascript:;" onclick="openmobile()"><i class="icon-chevron-down"></i></a></li>');
}*/
}
function changetheme(){
var zys = ['#1389D3','#99cc66','#003366','#6666CC','#CC3333','#009966','#333333','#990066','#333300','#333366','#99CC99','#663366','#003399','#338899'];
var h = '<div style="padding:10px"><table height="20px" class="cursor"><tr>';
var nst = '';
for(var i=0;i<zys.length;i++){
nst = (zys[i]==maincolor) ? '✔':'&nbsp;';
h+='<td width="20px" style="color:white;font-size:12px" align="center" onclick="js.location(\'?apptheme='+zys[i].substr(1)+'\')" bgcolor="'+zys[i]+'">'+nst+'</td>';
}
h+='</tr></table></div>';
js.tanbody('color','切换主题',310,200,{
html:h
});
}
function _searchmenus(){
js.prompt('搜索菜单','请输入搜索菜单名:',function(jg,txt){
if(jg=='yes' && txt){
$('#menulisttop').html('搜索结果');
$('#menulist').html('<div style="padding:30px;" align="center"><img src="images/mloading.gif"></div>');
$('#menulist').html('<div style="padding:30px;" align="center">'+js.ling(30)+'</div>');
js.ajax(js.getajaxurl('getmenusou','index'),{key:txt}, function(da){
showmenula(da);
},'post,json');
@@ -123,7 +134,7 @@ function loadmenu(o){
if(ico)s1='<i class="icon-'+ico+'"></i> '+s1+'';
$('#menulisttop').html(s1);
showmenupid = id;
$('#menulist').html('<div style="padding:30px;" align="center"><img src="images/mloading.gif"></div>');
$('#menulist').html('<div style="padding:30px;" align="center">'+js.ling(30)+'</div>');
js.ajax(js.getajaxurl('getmenu','index'),{pid:id,loadci:loadmenuci}, function(da){
if(da.menutopid)menutopid=da.menutopid;
showmenula(da.menuarr);
@@ -135,30 +146,34 @@ function showmenula(a){
hongbadge={};
for(i=0; i<a.length; i++){
o = a[i];
css1='border-radius:0px;border-left:none;border-right:none;cursor:pointer;TEXT-DECORATION:none';
s+='<a class="list-group-item" onClick="clickmenu(this,'+i+',-1,-1)" style="'+css1+'"><i class="icon-'+o.icons+'"></i> '+o.name+'';
css1='cursor:pointer;TEXT-DECORATION:none;padding:15px 10px';
s+='<div class="hover" onClick="clickmenu(this,'+i+',-1,-1)" style="'+css1+'"><i class="icon-'+o.icons+'"></i> '+o.name+'';
if(o.bh && o.stotal==0)s+=' <span class="badge" badge="'+o.bh+'" style="float:none;display:none;background:red;color:white"></span>';
if(o.stotal>0)s+='<font color="red" id="hongdian_'+o.num+'" style="display:none">●</font><span style="float:right" id="menu_down_isons_'+o.num+'" class="icon-caret-down"></span>';
s+='</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+='<a downmenu="'+i+'_'+j+'" class="list-group-item" style="'+css1+';padding-left:30px;background:rgba(0,0,0,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>';
}
if(o.stotal>0)s+='<span style="float:right" id="menu_down_isons_'+o.num+'" class="icon-caret-down"></span>';
s+='</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+='<a downmenu="'+i+'_'+j+'_'+k+'" class="list-group-item" style="'+css1+';padding-left:60px;background:rgba(0,0,0,0.02);display:none" id="menu_list_'+o.num+'" onClick="clickmenu(this,'+i+','+j+','+k+')"><i class="icon-'+o.icons+'"></i> '+o.name+'</a>';
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>';
@@ -220,7 +235,7 @@ function resizewh(){
var h = winHb(),_ht=0;
if(get('topheaderid'))_ht=get('topheaderid').offsetHeight;
viewwidth = w;
viewheight = h-_ht-44;
viewheight = h-_ht-50;
$('#indexcontent').css({width:''+viewwidth+'px',height:''+(viewheight)+'px'});
$('#tabsindexm').css({width:''+viewwidth+'px'});
var nh = h-_ht;
@@ -256,15 +271,15 @@ function clickmenu(o, i, j,k){
$('#hongdian_'+a.num+'').hide();//隐藏红点
if(j>-1){
dxu+=''+j+'_';
$('a[downmenu^="'+dxu+'"]').toggle();
$('div[downmenu^="'+dxu+'"]').toggle();
}
var o1 = get('menu_down_isons_'+a.num+'');
if(o1.className.indexOf('down')>0){
o1.className='icon-caret-up';
if(j==-1)$('a[downmenu^="'+dxu+'"]').show();
if(j==-1)$('div[downmenu^="'+dxu+'"]').show();
}else{
o1.className='icon-caret-down';
if(j==-1)$('a[downmenu^="'+dxu+'"]').hide();
if(j==-1)$('div[downmenu^="'+dxu+'"]').hide();
}
}else{
addtabs(a);
@@ -415,7 +430,7 @@ function addtabs(a){
var s = '<td temp="tabs" oncontextmenu="tabsright(\''+num+'\',event);return false;"; nowrap onclick="changetabs(\''+num+'\',1)" id="tabs_'+num+'" class="active"><font>';
if(a.icons)s+='<i class="icon-'+a.icons+'"></i> ';
s+=a.name+'</font>';
if(!a.hideclose)s+='<span onclick="closetabs(\''+num+'\')"><img src="images/del.png" width="12" height="12"></span>';
if(!a.hideclose)s+='<span onclick="closetabs(\''+num+'\')">x</span>';
s+='</td>';
objtabs.append(s);
_changhhhsv(num);
@@ -438,10 +453,10 @@ function addtabs(a){
urlpms += ",'"+nus[0]+"':'"+nus[1]+"'";
}
if(urlpms!='')urlpms = urlpms.substr(1);
var bgs = '<div id="mainloaddiv" style="width:'+viewwidth+'px;height:'+viewheight+'px;overflow:hidden;background:#000000;color:white;filter:Alpha(opacity=20);opacity:0.2;z-index:3;position:absolute;left:0px;line-height:'+viewheight+'px;top:0px;" align="center"><img src="images/mloading.gif" align="absmiddle">&nbsp;加载中...</div>';
var bgs = '<div id="mainloaddiv" style="width:'+viewwidth+'px;height:'+viewheight+'px;overflow:hidden;background:#000000;color:white;filter:Alpha(opacity=20);opacity:0.2;z-index:3;position:absolute;left:0px;line-height:'+viewheight+'px;top:0px;" align="center">'+js.ling(30)+'&nbsp;加载中...</div>';
$('#indexcontent').append(bgs);
a.urlpath = url+'.php';
objcont.append('<div temp="content" id="content_'+num+'"></div>');
objcont.append('<div temp="content" style="margin:10px;" id="content_'+num+'"></div>');
$.ajax({
url:'?m=index&a=getshtml&surl='+jm.base64encode(url)+'&num='+num+'&menuname='+jm.base64encode(a.name)+'&urlpms='+jm.base64encode(urlpms)+'',
type:'get',
@@ -455,6 +470,7 @@ function addtabs(a){
s = s.replace(/\{dir\}/gi, dir);
s = s.replace(/\{params\}/gi, "var params={"+urlpms+"};");
var obja = $('#content_'+num+'');
if(num!='home')s='<div style="background:var(--main-bgcolor);overflow:auto;border-radius:5px"><div style="padding:10px">'+s+'</div></div>';
obja.html(s);
},
error:function(){

View File

@@ -3,24 +3,19 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?=$da['title']?></title>
<link rel="stylesheet" type="text/css" href="<?=$da['p']?>/css/webmain.css"/>
<link rel="stylesheet" type="text/css" id="mainstylecss" href="<?=$da['stylecss']?>"/>
<link rel="stylesheet" type="text/css" href="<?=$da['p']?>/css/rock.css?<?=$nowtime?>"/>
<link rel="stylesheet" type="text/css" href="web/res/fontawesome/css/font-awesome.min.css">
<!--[if IE 7 ]><link rel="stylesheet" type="text/css" href="web/res/fontawesome/css/font-awesome-ie7.min.css"><![endif]-->
<link rel="stylesheet" type="text/css" href="web/res/mode/menu/jquery-rockmenu.css"/>
<link rel="stylesheet" type="text/css" href="mode/plugin/css/jquery-rockdatepicker.css"/>
<link rel="shortcut icon" href="<?=$da['icon']?>" />
<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?<?=$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']?>script.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">
<?php
$maincolor = getconfig('apptheme','#1389D3');
?>
js.servernow = '<?=$da['now']?>';
PROJECT = '<?=$da['p']?>';
adminip = '<?=$da['ip']?>';
@@ -38,62 +33,66 @@ function globalbody(){
adminranking= '<?=$da['my']['ranking']?>';
}
datesss = 'background:url(mode/icons/date.png) no-repeat right';
js.winiframewidth = '<?=$da['tanwidth']?>';
maincolor = '<?=getconfig('apptheme','#1389D3')?>';
js.winiframewidth = '<?=arrvalue($da, 'tanwidth')?>';
homestyle = 0;
</script>
<style>
<?php
$maincolora= c('image')->colorTorgb($maincolor);
$maincolors= ''.$maincolora[0].','.$maincolora[1].','.$maincolora[2].'';
echo 'body{--main-color:'.$maincolor.'}';
$colobj = c('color');
echo $colobj->getApptheme(true, false, true);
$colorarr = $colobj->getColor();
$maincolor= $colorarr['color'];
$height = '60px';
?>
<style>
.meiheight{align-items:center;height:<?=$height?>;}
.tabsindex div:hover,.tabsindex td:hover{}
.tabsindex td{height:50px;overflow:hidden;line-height:50px;padding:0px 20px;cursor:pointer;position:relative;}
.tabsindex span{font-size:12px;color:#aaaaaa;position:absolute;top:2px;right:2px;display:inline-block;height:16px;width:16px;line-height:14px;text-align:center;}
.tabsindex span:hover{background-color:rgba(0,0,0,0.1);color:white;border-radius:50%}
.tabsindex .active{background-color:rgba(0,0,0,0.05);}
.jtcls{height:50px;line-height:50px;overflow:hidden;width:14px;text-align:center;position:absolute;z-index:8;top:50px; background-color:rgba(0,0,0,0.1);right:0px;font-size:12px;cursor:pointer;color:#888888;display:none;top:0px}
.jtcls:hover{background-color:rgba(0,0,0,0.2);}
.navindex li{padding:0px 10px;height:<?=$height?>;align-items:center;display:flex}
.navindex li:hover{background-color:rgba(0,0,0,0.05)}
#indexmenu .hover:hover{background:var(--main-vgcolor)}
.navindex a{color:white;TEXT-DECORATION:none;}
</style>
</head>
<body style="padding:0px;margin:0px; overflow:hidden;" scroll="no">
<body style="padding:0px;margin:0px;overflow:hidden;" scroll="no">
<?php if(isempt($da['homeurl'])){?>
<div id="topheaderid">
<nav class="navbar navbar-<?=$da['styledev']?> navbar-static-top" id="navtopheader" style="margin:0px;z-index:0">
<div>
<div class="navbar-header" id="index-navbar-left">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
<span class="sr-only">Toggle</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">
<img src="<?=$da['logo']?>" style="display:inline;" align="absmiddle" height="24" width="24"> <?=$da['title']?>
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<ul class="nav navbar-nav" id="index-navbar-center" style="overflow:hidden;">
<?php foreach($da['topmenu'] as $k=>$rs){
$str = '<li pmenuid="'.$rs['id'].'" title="'.lang($rs['name'],'menu').'" icon="'.$rs['icons'].'"><a>';
if($rs['icons'])$str.='<i class="icon-'.$rs['icons'].'"></i> ';
$str.=''.lang($rs['name'],'menu').'</a></li>';
echo $str;
}
?>
</ul>
<ul class="nav navbar-nav navbar-right" id="index-navbar-right">
<?php
if(getconfig('mobile_show',true))echo '<li><a href="javascript:;" onclick="openmobile()"><i class="icon-tablet"></i> '.lang('手机版').'</a></li>';
if(getconfig('reim_show', true))echo '<li><a href="javascript:;" onclick="openreim(this)"><span><i class="icon-comments-alt"></i> REIM <font class="badge red" id="reim_stotal" style="font-size:12px;background:red;color:white"></font></span></a></li>';
?>
<li id="indexuserl">
<a href="javascript:;">
<div style="padding-right:10px">
<img style="width:18px;height:18px;border-radius:50%" id="myface" src="<?=$da['face']?>" align="absmiddle">
<?=$da['adminname']?><span class="caret"></span>
</div>
</a>
</li>
</ul>
</div>
<div id="topheaderid" class="meiheight" style="background:<?=$maincolor?>;background:var(--main-color);color:white;display:flex;cursor:pointer">
<div onclick="js.reload()" style="padding:0px 10px;height:24px;overflow:hidden">
<img src="<?=$da['logo']?>" height="24" width="24">
</div>
</nav>
<div onclick="js.reload()" style="padding-right:15px;font-size:18px">
<?=$da['title']?>
</div>
<div style="flex:1">
<ul id="index-navbar-center" class="navindex" style="overflow:hidden;display:flex;">
<?php foreach($da['topmenu'] as $k=>$rs){
$str = '<li pmenuid="'.$rs['id'].'" title="'.lang($rs['name'],'menu').'" icon="'.$rs['icons'].'"><a>';
if($rs['icons'])$str.='<i class="icon-'.$rs['icons'].'"></i> ';
$str.=''.lang($rs['name'],'menu').'</a></li>';
echo $str;
}
?>
</ul>
</div>
<ul style="display:flex;align-items:center" class="navindex">
<?php
if(getconfig('mobile_show',true))echo '<li onclick="openmobile()"><i class="icon-tablet"></i>手机版</li>';
if(getconfig('reim_show', true))echo '<li onclick="openreim(this)"><span><i class="icon-comments-alt"></i>REIM <font class="badge red" id="reim_stotal" style="font-size:12px;background:red;color:white"></font></span></li>';
?>
<li id="indexuserl" >
<div>
<img style="width:18px;height:18px;border-radius:50%" id="myface" src="<?=$da['face']?>" align="absmiddle">
<?=$da['adminname']?> <i class="icon-caret-down"></i>
</div>
</li>
</ul>
</div>
<?php }?>
@@ -104,20 +103,19 @@ echo 'body{--main-color:'.$maincolor.'}';
<td >
<div id="indexmenu" style="width:200px;overflow:hidden;">
<ul class="list-group" style="margin:0">
<li style="border-radius:0px;border-left:none;border-right:none;border-top:none;cursor:pointer;border-bottom:0px" class="list-group-item list-group-item-info"><b id="menulisttop">基本</b>
<ul style="height:50px;line-height:50px;padding:0px 10px;background:var(--main-hgcolor)">
<li style="border-radius:0px;border-left:none;border-right:none;border-top:none;cursor:pointer;border-bottom:0px"><b id="menulisttop">基本</b>
<span style="float:right"><i id="indesearchmenu" class="icon-search"></i>&nbsp; &nbsp;<i id="reordershla" class="icon-reorder cursor"></i></span>
</li>
</ul>
<div style="overflow:auto;height:200px;" id="menulist">
<ul class="list-group" style="margin:0" id="menushow">
</ul>
<div style="overflow:auto;height:200px;background:var(--main-bgcolor)" id="menulist">
<div id="menushow"></div>
</div>
</div>
<div id="indexmenuss" style="display:none;background:rgba(0,0,0,0.3)" class="menulistbg cursor"><i class="icon-reorder"></i><br><br><br><br></div>
<div id="indexmenuss" style="display:none;background:rgba(0,0,0,0.1);text-align:center;padding:5px 2px" class="cursor"><i class="icon-reorder"></i><br><br><br><br></div>
</td>
<td>
<div id="indexsplit" style="overflow:hidden;width:5px;background:rgba(0,0,0,0.1)"></div>
<div id="indexsplit" style="overflow:hidden;width:5px;background:rgba(0,0,0,0.05)"></div>
</td>
<?php }?>
<td width="100%">
@@ -125,21 +123,21 @@ echo 'body{--main-color:'.$maincolor.'}';
<div class="jtcls" id="jtcls_left" onclick="_changesrcool(1)">&gt;</div>
<div class="jtcls" id="jtcls_right" onclick="_changesrcool(-1)" style="left:0px">&lt;</div>
<div class="panel panel-default" style="border:none;border-radius:0;margin-bottom:0">
<div id="tabsindexm" class="panel-heading tabsindex" style="border:none;border-radius:0;padding:0px;overflow:hidden;">
<table border="0" cellspacing="0" cellpadding="0"><tr id="tabs_title"></tr></table>
</div>
<div style="border:none;background:var(--main-hgcolor);height:50px;overflow:hidden">
<div id="tabsindexm" class="tabsindex" style="border:none;border-radius:0;padding:0px;overflow:hidden;">
<table border="0" cellspacing="0" cellpadding="0"><tr id="tabs_title"></tr></table>
</div>
</div>
<div id="indexcontent" style="overflow:auto;position:relative;">
<div id="content_allmainview" style="margin:10px;"></div>
<div id="content_allmainview"></div>
</div>
</div>
</td>
</tr>
</table>
<script src="mode/bootstrap3.3/bootstrap.min.js"></script>
<script type="text/javascript" src="mode/bootstrapplugin/jquery-bootstable.js"></script><!--插件-->
<script type="text/javascript" src="mode/bootstrapplugin/jquery-bootsform.js"></script><!--表单插件-->
<script type="text/javascript" src="mode/bootstrapplugin/jquery-bootstable.js?<?=$nowtime?>"></script><!--表格插件-->
<script type="text/javascript" src="mode/bootstrapplugin/jquery-bootsform.js?<?=$nowtime?>"></script><!--插件-->
<script type="text/javascript" src="mode/bootstrapplugin/jquery-bootstree.js"></script><!--表格树形插件-->
<script type="text/javascript" src="mode/plugin/jquery-rockdatepicker.js"></script><!--日期选择插件-->
<script type="text/javascript" src="web/res/js/jquery-imgview.js"></script><!--图片预览-->

File diff suppressed because it is too large Load Diff

View File

@@ -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');

Some files were not shown because too many files have changed in this diff Show More