Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60f759a90c | ||
|
|
69f5376af9 | ||
|
|
5cec56526e | ||
|
|
d0c604e040 | ||
|
|
16829278ae | ||
|
|
d41bd27082 | ||
|
|
0701e2a8b4 | ||
|
|
f0ffadf926 | ||
|
|
ac79e13876 | ||
|
|
502a817f7a | ||
|
|
5581737630 | ||
|
|
559c388ea0 |
@@ -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
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
//版本2.6.5,2024-08-01的版本
|
||||
return '2.6.5';
|
||||
//版本20251224的
|
||||
return '2.7.1';
|
||||
@@ -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()
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
@@ -197,6 +197,7 @@ class dateChajian extends Chajian
|
||||
|
||||
public function cnweek($date)
|
||||
{
|
||||
if(isempt($date))return '';
|
||||
$arr = array('日','一','二','三','四','五','六');
|
||||
return $arr[date('w', strtotime($date))];
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.' ';
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -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);//另存为
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
class imapChajian extends Chajian
|
||||
{
|
||||
private $supportbool = true;
|
||||
private $supportbool = true,$marubox,$struck_tearr;
|
||||
|
||||
protected function initChajian()
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建签名图片生成的
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建文件夹
|
||||
*/
|
||||
|
||||
@@ -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).'';
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
62
include/chajian/rockkefuChajian.php
Normal file
62
include/chajian/rockkefuChajian.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
131
include/chajian/rockwxqyChajian.php
Normal file
131
include/chajian/rockwxqyChajian.php
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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("'",''', $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{
|
||||
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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,'');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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])){
|
||||
|
||||
101
js/dingwei.js
101
js/dingwei.js
@@ -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
|
||||
});
|
||||
}
|
||||
96
js/js.js
96
js/js.js
@@ -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);
|
||||
}
|
||||
108
js/jswx.js
108
js/jswx.js
@@ -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>';
|
||||
}
|
||||
164
js/reim_xina.js
164
js/reim_xina.js
@@ -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"> '+ty+'</div>';
|
||||
s+='<div style="color:#aaaaaa;padding-left:20px;margin-bottom:10px;padding:5px;border-bottom-width:'+sodd+'px;border-bottom:var(--border)"> '+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) ? '✔':' ';
|
||||
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> <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> <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> <label><input onclick="reim.setchatlistw(230)" type="radio" name="chatlistw">宽点</label> <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> <button type="button" class="cursor" onclick="reim.kaijistart(1)">删除</button> <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> <button type="button" class="cursor" onclick="reim.kaijistart(1)">删除</button> <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"> 加载人员...</div></div>';
|
||||
var s = '<div id="showuserlist" style="height:250px;overflow:hidden;position:relative"><div align="center" style="padding:10px;">'+js.ling()+' 加载人员...</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
263
js/reim_xina_kefu.js
Normal file
@@ -0,0 +1,263 @@
|
||||
/**
|
||||
* 信呼在线客服使用
|
||||
* caratename:雨中磐石(rainrock)
|
||||
* caratetime:2021-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> ';
|
||||
}
|
||||
$('#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);
|
||||
});
|
||||
}
|
||||
}
|
||||
2
mode/bootstrapplugin/jquery-bootsform.js
vendored
2
mode/bootstrapplugin/jquery-bootsform.js
vendored
@@ -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> ';
|
||||
s+='<div style="padding:8px 10px;background:rgba(0,0,0,0.05);line-height:30px" align="right"><span id="msgview_'+rand+'"></span> ';
|
||||
s+=' <button type="button" class="btn btn-'+can.saveCls+'" disabled id="save_'+rand+'"><i class="icon-save"></i> '+can.saveText+'</button>';
|
||||
if(can.cancelbtn)s+=' <button type="button" class="btn btn-default" id="cancel_'+rand+'"><i class="icon-remove"></i> 取消</button>';
|
||||
s+='</div>';
|
||||
|
||||
63
mode/bootstrapplugin/jquery-bootstable.js
vendored
63
mode/bootstrapplugin/jquery-bootstable.js
vendored
@@ -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> ';
|
||||
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> <b>'+b.text+'</b>: <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"> 加载中...</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)+' 加载中...</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">«</button>'+
|
||||
'<button id="shang_'+rand+'" data-toggle="tooltip" data-placement="top" title="上一页" type="button" disabled class="btn btn-default"><</button>'+
|
||||
@@ -781,13 +792,13 @@
|
||||
'<button id="next_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="下一页" disabled class="btn btn-default">></button>'+
|
||||
'<button id="lastye_'+rand+'" type="button" data-toggle="tooltip" data-placement="top" title="尾页" disabled class="btn btn-default">»</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> '+
|
||||
'每页<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">条 '+
|
||||
'每页<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)">条 '+
|
||||
'</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:[], //表头
|
||||
|
||||
10
mode/bootstrapplugin/jquery-bootstree.js
vendored
10
mode/bootstrapplugin/jquery-bootstree.js
vendored
@@ -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(){}
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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}
|
||||
|
||||
28
mode/plugin/jquery-rockdatepicker.js
vendored
28
mode/plugin/jquery-rockdatepicker.js
vendored
@@ -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"> <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"> 选择:<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> ';
|
||||
s+=' <a href="javascript:;" class="a" id="rockdatepicker_now'+rand+'">现在</a> ';
|
||||
s+=' <a href="javascript:;" class="a" id="rockdatepicker_queding'+rand+'">确定</a> ';
|
||||
@@ -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> 年份 <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> 年份 <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"> <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"> 选择:<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();
|
||||
});
|
||||
|
||||
2
mode/plugin/jquery-rockdoupull.js
vendored
2
mode/plugin/jquery-rockdoupull.js
vendored
@@ -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{
|
||||
|
||||
4
mode/plugin/jquery-rockmodels.js
vendored
4
mode/plugin/jquery-rockmodels.js
vendored
@@ -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
77
mode/plugin/jquery-rockoffice.js
vendored
Normal 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
199
mode/plugin/jquery-rockselect.js
vendored
Normal file
@@ -0,0 +1,199 @@
|
||||
/**
|
||||
edittable 单击选择插件
|
||||
caratename:chenxihu
|
||||
caratetime:214-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+=' <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+=' <span class="zhu cursor" onclick="'+this.clickstr('pageload',''+zl+','+(p-1)+'')+'"><上页</span>';
|
||||
if(j==zl && ds[p*zl])str1+=' <span class="zhu cursor" onclick="'+this.clickstr('pageload',''+zl+','+(p+1)+'')+'">下页></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
1
mode/plugin/trtc.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
24
web/res/js/jquery-changeuser.js
vendored
24
web/res/js/jquery-changeuser.js
vendored
@@ -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> </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> </td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'" >取消</button></td><td width="10" nowrap> </td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap> </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> </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> </td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'" >取消</button></td><td width="10" nowrap> </td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap> </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+'>ype=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;"> '+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;"> '+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> </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> </td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'">取消</button></td><td width="10" nowrap> </td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap> </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> </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> </td><td><button class="changeuserbotton" type="button" id="changecancl_'+rand+'">取消</button></td><td width="10" nowrap> </td><td height="50"><button style="background:'+cold+';" id="changeok_'+rand+'" type="button" class="changeuserbotton">确定</button></td><td width="10" nowrap> </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){
|
||||
|
||||
7
web/res/js/jquery-imgview.js
vendored
7
web/res/js/jquery-imgview.js
vendored
@@ -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> <span id="imgview_nowbili" style="font-size:14px">100%</span> <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> <span id="imgview_nowbili" style="font-size:14px">100%</span> <i style="cursor:pointer" class="icon-zoom-in" title="放大" id="imgview_zoom-in"></i>';
|
||||
s+=' <i style="cursor:pointer" class="icon-move" title="原始大小" id="imgview_zoom-move"></i>';
|
||||
if(!this.ismobile && this.downbool)s+=' <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+=' <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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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(){
|
||||
|
||||
@@ -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+=' <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> <a href="javascript:;" onclick="js.fileopt('+d.fileid+',0)">预览</a> '+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+') <a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',1)">下载</a> <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+') <a href="javascript:;" onclick="strformat.clickfile(\''+d.fileid+'\',1,\''+type+'\')">下载</a> <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();
|
||||
6
web/res/mode/calendar/jquery-rockcalendar.js
vendored
6
web/res/mode/calendar/jquery-rockcalendar.js
vendored
@@ -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:'',
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
6
web/res/mode/menu/jquery-rockmenu.js
vendored
6
web/res/mode/menu/jquery-rockmenu.js
vendored
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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
251
webmain/css/rock.css
Normal 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
6
webmain/css/rockmy.css
Normal file
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* 这个文件就自定义写文件,在线更新不会覆盖的
|
||||
* 开发者:雨中磐石
|
||||
* 地址:www.rockoa.com
|
||||
* 日期:2024-10-10
|
||||
*/
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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数据
|
||||
|
||||
@@ -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+=' <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+=' <a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p-1)+')"><上页</a>';
|
||||
if(j==zl)str+=' <a href="javascript:;" class="zhu" onclick="c.autocompleteshows(\''+zl+'\','+(p+1)+')">下页></a>';
|
||||
str+='</div>';
|
||||
}
|
||||
setTimeout(function(){$('#completelist').html(str)},10);
|
||||
},
|
||||
autocompleteclick:function(i){
|
||||
var d = this.autodata[i],o1=this.autocompletea[0];
|
||||
o1.value=d.name;
|
||||
var a1 = this.autocompletea[1].split(',');
|
||||
if(a1[1]){
|
||||
if(form(a1[1]))form(a1[1]).value = d.value;
|
||||
}
|
||||
this.onselectdataall(o1.name,d);
|
||||
$('#completelist').remove();
|
||||
var url = geturlact('getselectdata', gcan);
|
||||
js.chajian('rockselect', {
|
||||
viewobj:o1,num:o1.name,limit:10,url:url,zb:zb,strsss:s1,
|
||||
onitemclick:function(sna,val, d){
|
||||
var fid= this.nameobj.name;
|
||||
var a1 = this.strsss.split(',');
|
||||
if(a1[1])if(form(a1[1]))form(a1[1]).value = val
|
||||
c.onselectdataall(fid,d);
|
||||
},
|
||||
nameobj:o1
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,9 @@ c.onselectmap=function(sna,res){
|
||||
var info = res.addressinfo;
|
||||
if(form('sheng'))form('sheng').value = info.province;
|
||||
if(form('shi'))form('shi').value = info.city;
|
||||
var dz = info.town;
|
||||
dz+=(info.streetNumber)?info.streetNumber:info.street;
|
||||
form(sna).value=dz;
|
||||
if(!res.address){
|
||||
var dz = info.town;
|
||||
dz+=(info.streetNumber)?info.streetNumber:info.street;
|
||||
form(sna).value=dz;
|
||||
}
|
||||
}
|
||||
75
webmain/flow/input/inputjs/mode_custprice.js
Normal file
75
webmain/flow/input/inputjs/mode_custprice.js
Normal 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'
|
||||
});
|
||||
}
|
||||
@@ -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> ';
|
||||
}
|
||||
$('#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
|
||||
});
|
||||
}
|
||||
@@ -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','');
|
||||
}
|
||||
@@ -43,6 +43,7 @@ class mode_collectsClassAction extends inputAction{
|
||||
return $arr;
|
||||
}
|
||||
|
||||
private $zdarr,$zdobj;
|
||||
public function collectstotal_before()
|
||||
{
|
||||
$mid = (int)$this->get('mid','0');
|
||||
|
||||
@@ -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']);
|
||||
}
|
||||
|
||||
@@ -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']);
|
||||
}
|
||||
|
||||
48
webmain/flow/input/mode_custpriceAction.php
Normal file
48
webmain/flow/input/mode_custpriceAction.php
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ class mode_flowmenuClassAction extends inputAction{
|
||||
public $alldata = array();
|
||||
protected function storeafter($table, $rows)
|
||||
{
|
||||
$this->db->update('[Q]menu', '`status`=1' , '`id` in(1,2) and `status`=0');//总有一些人把系统菜单给停用了
|
||||
$pid = (int)$this->post('pid','0');
|
||||
if($pid>0){
|
||||
$this->showgetmenu($rows,0,1,1);
|
||||
|
||||
@@ -6,6 +6,9 @@ class mode_flowsetClassAction extends inputAction{
|
||||
|
||||
public $pobj;
|
||||
protected function savebefore($table, $arr, $id, $addbo){
|
||||
if(!in_array('filelx', $this->mallfields)){
|
||||
$this->db->addFields('[Q]'.$table.'','filelx','tinyint(1)','0','录入页相应文件0选上传,1必须上传');
|
||||
}
|
||||
include_once('webmain/main/flow/flowAction.php');
|
||||
$this->pobj = new flowClassAction();
|
||||
return $this->pobj->flowsetsavebefore($table, $arr);
|
||||
|
||||
@@ -14,5 +14,10 @@ class mode_goodsClassAction extends inputAction{
|
||||
}
|
||||
|
||||
|
||||
public function reloadstockAjax()
|
||||
{
|
||||
m('goods')->setstock();
|
||||
return 'ok';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
//生成列表页,数据读取后处理
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
<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> ';
|
||||
?>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">*申请日期</td><td class="ys2" width="35%">{applydt}{type}</td><td align="right" class="ys1" width="15%">*供应商</td><td class="ys2" width="35%">{custname}{custid}</td></tr><tr><td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>采购物品</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*物品</td><td>*采购数量</td><td>单位</td><td>单价</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[temp_aid0,0][aid0,0]</td><td>[count0,0]</td><td>[unit0,0]</td><td>[price0,0]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr><tr><td height="34" align="right" class="ys1">优惠价格</td><td class="ys2">{discount}</td><td class="ys1" align="right">*采购金额</td><td class="ys2">{money}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" width="15%" align="right" class="ys1">*申请日期</td><td class="ys2" width="35%">{applydt}{type}</td><td align="right" class="ys1" width="15%">*供应商</td><td class="ys2" width="35%">{custname}{custid}</td></tr><tr><td class="ys2 zbtitle" colspan="4"><strong>采购物品</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*物品</td><td>*采购数量</td><td>单位</td><td>单价</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[temp_aid0,0][aid0,0]</td><td>[count0,0]</td><td>[unit0,0]</td><td>[price0,0]</td><td>{删,0}</td></tr></tbody></table><div class="addys">{新增,0}</div></td></tr><tr><td height="34" align="right" class="ys1">优惠价格</td><td class="ys2">{discount}</td><td class="ys1" align="right">*采购金额</td><td class="ys2">{money}</td></tr><tr><td height="34" align="right" class="ys1">说明</td><td colspan="3" class="ys2">{explain}</td></tr><tr><td height="34" align="right" class="ys1">相关文件</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">申请人</td><td class="ys2">{base_name}</td><td class="ys1" align="right">申请人部门</td><td class="ys2">{base_deptname}</td></tr></tbody></table>
|
||||
1
webmain/flow/page/input_custprice.html
Normal file
1
webmain/flow/page/input_custprice.html
Normal 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>
|
||||
@@ -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
@@ -1 +1 @@
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" align="right" class="ys1">*^title^</td><td class="ys2" colspan="3">{title}</td></tr><tr><td height="34" align="right" class="ys1">^fengmian^</td><td class="ys2" colspan="3">{fengmian}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^typename^</td><td width="35%" class="ys2">{typename}</td><td align="right" width="15%" class="ys1">^issms^</td><td width="35%" class="ys2">{issms} <label>{appxs}</label></td></tr><tr><td height="34" align="right" class="ys1">^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*^content^</td><td colspan="3" class="ys2">{content}</td></tr><tr><td height="34" align="right" class="ys1">^file_content^</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">^url^</td><td colspan="3" class="ys2">{url}</td></tr><tr><td height="34" align="right" class="ys1">*^zuozhe^</td><td class="ys2">{zuozhe}</td><td align="right" class="ys1">*^indate^</td><td class="ys2">{indate}</td></tr><tr><td height="34" align="right" class="ys1">^zstart^</td><td class="ys2">{zstart}</td><td align="right" class="ys1">^zsend^</td><td class="ys2">{zsend}</td></tr><tr><td height="34" align="right" class="ys1">^mintou^</td><td class="ys2">{mintou}</td><td align="right" class="ys1">^maxtou^</td><td class="ys2">{maxtou}</td></tr><tr><td height="34" align="right" class="ys1">^startdt^</td><td class="ys2">{startdt}</td><td align="right" class="ys1">^enddt^</td><td class="ys2">{enddt}</td></tr><tr id="subtitletou"><td class="ys2" style="background-color:#CCCCCC;" colspan="4"><strong>投票选项</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*投票选项</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[touitems0,0]</td><td>{删,0}</td></tr><tr><td>[xuhao0,1]</td><td>[touitems0,1]</td><td>{删,0}</td></tr></tbody></table><div style="background-color:#F1F1F1;">{新增,0}</div></td></tr></tbody></table>
|
||||
<table width="100%" bordercolor="#000000" border="0" class="ke-zeroborder"><tbody><tr><td height="34" align="right" class="ys1">*^title^</td><td class="ys2" colspan="3">{title}</td></tr><tr><td height="34" align="right" class="ys1">^fengmian^</td><td class="ys2" colspan="3">{fengmian}</td></tr><tr><td height="34" width="15%" align="right" class="ys1">*^typename^</td><td width="35%" class="ys2">{typename}</td><td align="right" width="15%" class="ys1">^issms^</td><td width="35%" class="ys2">{issms}{appxs}</td></tr><tr><td height="34" align="right" class="ys1">^recename^</td><td colspan="3" class="ys2">{recename}</td></tr><tr><td height="34" align="right" class="ys1">*^content^</td><td colspan="3" class="ys2">{content}</td></tr><tr><td height="34" align="right" class="ys1">^file_content^</td><td colspan="3" class="ys2">{file_content}</td></tr><tr><td height="34" align="right" class="ys1">^url^</td><td colspan="3" class="ys2">{url}</td></tr><tr><td height="34" align="right" class="ys1">*^zuozhe^</td><td class="ys2">{zuozhe}</td><td align="right" class="ys1">*^indate^</td><td class="ys2">{indate}</td></tr><tr><td height="34" align="right" class="ys1">^zstart^</td><td class="ys2">{zstart}</td><td align="right" class="ys1">^zsend^</td><td class="ys2">{zsend}</td></tr><tr><td height="34" align="right" class="ys1">^mintou^</td><td class="ys2">{mintou}</td><td align="right" class="ys1">^maxtou^</td><td class="ys2">{maxtou}</td></tr><tr><td height="34" align="right" class="ys1">^startdt^</td><td class="ys2">{startdt}</td><td align="right" class="ys1">^enddt^</td><td class="ys2">{enddt}</td></tr><tr id="subtitletou"><td class="ys2" colspan="4"><strong>投票选项</strong> </td></tr><tr><td class="ys0" colspan="4"><table class="tablesub ke-zeroborder" id="tablesub0" style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tbody><tr><td width="10%">序号</td><td>*投票选项</td><td width="5%">操作</td></tr><tr><td>[xuhao0,0]</td><td>[touitems0,0]</td><td>{删,0}</td></tr><tr><td>[xuhao0,1]</td><td>[touitems0,1]</td><td>{删,0}</td></tr></tbody></table><div class="addys">{新增,0}</div></td></tr></tbody></table>
|
||||
@@ -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>
|
||||
@@ -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}';
|
||||
|
||||
@@ -47,11 +47,11 @@ if(pnum=='' || pnum=='all'){
|
||||
}
|
||||
setTimeout(function(){js.getuser(cans);},10);
|
||||
}
|
||||
$('#tdright_{rand}').append(' '+c.getbtnstr('客户转移','move'));
|
||||
$('#tdright_{rand}').append(' '+c.getbtnstr('客户转移','move'));
|
||||
}
|
||||
|
||||
if(atype=='my'){
|
||||
$('#tdright_{rand}').append(' '+c.getbtnstr('共享','shates'));
|
||||
$('#tdright_{rand}').append(' '+c.getbtnstr('共享','shates'));
|
||||
c.shates=function(){
|
||||
var s= a.getchecked();
|
||||
if(s==''){js.msg('msg','没有选择记录');return;}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
104
webmain/flow/page/rock_page_goods.php
Normal file
104
webmain/flow/page/rock_page_goods.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* 模块:goods.物品
|
||||
* 说明:自定义区域内可写你想要的代码
|
||||
* 来源:流程模块→表单元素管理→[模块.物品]→生成列表页
|
||||
*/
|
||||
defined('HOST') or die ('not access');
|
||||
?>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
{params}
|
||||
var modenum = 'goods',modename='物品',isflow=0,modeid='9',atype = params.atype,pnum=params.pnum,modenames='',listname='Z29vZHM:';
|
||||
if(!atype)atype='';if(!pnum)pnum='';
|
||||
var fieldsarr = [],fieldsselarr= [],chufarr= {"stock":"\u603b\u5e93\u5b58","stock_1":"\u9ed8\u8ba4\u4ed3\u5e93","stock_3":"\u6cc9\u5dde\u4ed3\u5e93","stock_2":"\u4ed3\u5e932"};
|
||||
|
||||
<?php
|
||||
include_once('webmain/flow/page/rock_page.php');
|
||||
?>
|
||||
|
||||
//[自定义区域start]
|
||||
|
||||
if(pnum=='all'){
|
||||
bootparams.checked=true;
|
||||
bootparams.autoLoad=false;
|
||||
bootparams.celleditor=true;
|
||||
|
||||
var shtm = '<table width="100%"><tr valign="top"><td><div style="border:var(--border);width:220px"><div id="optionview_{rand}" style="height:400px;overflow:auto;"></div></div></td><td width="8" nowrap><div style="width:8px;overflow:hidden"></div></td><td width="95%"><div id="viewgoods_{rand}"></div></td></tr></table>';
|
||||
$('#viewgoods_{rand}').after(shtm).remove();
|
||||
c.stable = 'goods';
|
||||
c.optionview = 'optionview_{rand}';
|
||||
c.optionnum = 'goodstype';
|
||||
c.title = '物品分类';
|
||||
c.rand = '{rand}';
|
||||
|
||||
var c = new optionclass(c);
|
||||
|
||||
$('#'+c.optionview+'').css('height',''+(viewheight-130)+'px');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('刷新库存','kuncus')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('所有物品','allshow')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('入库','rukuchu,0')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('出库','rukuchu,1')+' ');
|
||||
$('#tdright_{rand}').prepend(c.getbtnstr('打印二维码','prinwem,1')+' ');
|
||||
$('#tdright_{rand}').prepend('<span id="megss{rand}"></span> ');
|
||||
setTimeout(function(){c.mobj=a},5);//延迟设置,不然不能双击分类搜索
|
||||
|
||||
c.rukuchu=function(o1, lx){
|
||||
var s='物品入库';
|
||||
if(lx==1)s='物品出库';
|
||||
addtabs({num:'rukuchugood'+lx+'',url:'main,goods,churuku,type='+lx+'',icons:'plus',name:s});
|
||||
}
|
||||
|
||||
c.prinwem=function(){
|
||||
var sid = a.getchecked();
|
||||
if(sid==''){
|
||||
js.msg('msg','没有选中记录');
|
||||
return;
|
||||
}
|
||||
var url = '?a=printewm&m=goods&d=main&sid='+sid+'';
|
||||
window.open(url);
|
||||
}
|
||||
}
|
||||
|
||||
c.kuncus=function(){
|
||||
js.ajax(publicmodeurl('goods','reloadstock'),{},function(){
|
||||
a.reload();
|
||||
},'get','','刷新中...,刷新完成');
|
||||
}
|
||||
|
||||
//[自定义区域end]
|
||||
c.initpagebefore();
|
||||
js.initbtn(c);
|
||||
var a = $('#view'+modenum+'_{rand}').bootstable(bootparams);
|
||||
c.init();
|
||||
|
||||
});
|
||||
</script>
|
||||
<!--SCRIPTend-->
|
||||
<!--HTMLstart-->
|
||||
<div>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td style="padding-right:10px;" id="tdleft_{rand}" nowrap><button id="addbtn_{rand}" class="btn btn-primary" click="clickwin,0" disabled type="button"><i class="icon-plus"></i> <?=lang('新增')?></button></td>
|
||||
|
||||
<td><select class="form-control" style="width:110px;border-top-right-radius:0;border-bottom-right-radius:0;padding:0 2px" id="fields_{rand}"></select></td>
|
||||
<td><select class="form-control" style="width:60px;border-radius:0px;border-left:0;padding:0 2px" id="like_{rand}"><option value="0"><?=lang('包含')?></option><option value="1"><?=lang('等于')?></option><option value="2"><?=lang('大于')?><?=lang('等于')?></option><option value="3"><?=lang('小于')?><?=lang('等于')?></option><option value="4"><?=lang('不包含')?></option></select></td>
|
||||
<td><select class="form-control" style="width:130px;border-radius:0;border-left:0;display:none;padding:0 5px" id="selkey_{rand}"><option value="">-<?=lang('请选择')?>-</option></select><input class="form-control" style="width:130px;border-radius:0;border-left:0;padding:0 5px" id="keygj_{rand}" placeholder="<?=lang('关键字')?>"><input class="form-control" style="width:130px;border-radius:0;border-left:0;padding:0 5px;display:none;" id="key_{rand}" placeholder="<?=lang('关键字')?>">
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div style="white-space:nowrap">
|
||||
<button style="border-right:0;border-radius:0;border-left:0" class="btn btn-default" click="searchbtn" type="button"><?=lang('搜索')?></button><button class="btn btn-default" id="downbtn_{rand}" type="button" style="padding-left:8px;padding-right:8px;border-top-left-radius:0;border-bottom-left-radius:0"><i class="icon-angle-down"></i></button>
|
||||
</div>
|
||||
</td>
|
||||
<td width="90%" style="padding-left:10px"><div id="changatype{rand}" class="btn-group"></div></td>
|
||||
|
||||
<td align="right" id="tdright_{rand}" nowrap>
|
||||
<span style="display:none" id="daoruspan_{rand}"><button class="btn btn-default" click="daoru,1" type="button"><?=lang('导入')?></button> </span><button class="btn btn-default" style="display:none" id="daobtn_{rand}" disabled click="daochu" type="button"><?=lang('导出')?> <i class="icon-angle-down"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="blank10"></div>
|
||||
<div id="viewgoods_{rand}"></div>
|
||||
<!--HTMLend-->
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -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?>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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) ? '✔':' ';
|
||||
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"> 加载中...</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)+' 加载中...</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(){
|
||||
|
||||
@@ -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> <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)">></div>
|
||||
<div class="jtcls" id="jtcls_right" onclick="_changesrcool(-1)" style="left:0px"><</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
@@ -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
Reference in New Issue
Block a user