Compare commits
1 Commits
21
UPDATE.md
21
UPDATE.md
@@ -1,20 +1,17 @@
|
|||||||
## PicHome beta3.1 更新说明
|
## PicHome beta3.2 更新说明
|
||||||
|
|
||||||
### 1.增加billfish库文件导入支持
|
### 1.修复windows文件上传至linux服务器,由于编码问题导致的库导入没有文件问题
|
||||||
|
|
||||||
### 2.库设置内容更改,显示当前库连接状态,断开为不可用;增加普通目录文件缩略图生成数量显示,
|
### 2.库设置内容更改,当库状态为断开时,可以重新设置库的路径(即目录位置移动之后,库读取不到,可以设置为新目录所在位置)
|
||||||
整体优化库设置在未导入之前也可对库进行管理操作
|
|
||||||
|
|
||||||
### 3.修复系统设置界面因二级域名导致的白页问题
|
### 3.优化普通目录文件缩略图生成逻辑,以修复瀑布流展示时页面问题(此项对已生成过缩略图的不生效,需重新导入库生成)
|
||||||
|
|
||||||
### 4.修复标签分类等数据显示异常问题;不可用状态的库将不在列表页展示其内容
|
### 4.优化导入逻辑,当库在导入状态时,将会自动执行导入文件,直至导入完成为止
|
||||||
|
|
||||||
### 5.修复下载时提示文件不存在的bug
|
### 5.修复eagle库注释显示html标签问题
|
||||||
|
|
||||||
### 6.优化删除逻辑,将更快清理冗余数据
|
### 6.修复billfish库导入链接丢失问题
|
||||||
|
|
||||||
### 7.优化导入逻辑
|
### 7.优化删除逻辑
|
||||||
|
|
||||||
### 8.优化访问效率
|
### 8.其他已知bug修复
|
||||||
|
|
||||||
### 9.其他已知bug修复
|
|
||||||
@@ -245,6 +245,11 @@ class image {
|
|||||||
$w = ceil($y_ratio * $this->imginfo['width']);
|
$w = ceil($y_ratio * $this->imginfo['width']);
|
||||||
$h = $this->param['thumbheight'];
|
$h = $this->param['thumbheight'];
|
||||||
}
|
}
|
||||||
|
if($w < 242){
|
||||||
|
$w = $this->param['thumbwidth'] = 242;
|
||||||
|
$x_ratio = $this->param['thumbwidth'] / $this->imginfo['width'];
|
||||||
|
$h = ceil($x_ratio*$this->imginfo['height']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return array($x, $y, $w, $h);
|
return array($x, $y, $w, $h);
|
||||||
}
|
}
|
||||||
@@ -356,6 +361,10 @@ class image {
|
|||||||
}else{
|
}else{
|
||||||
|
|
||||||
$width=ceil($height*$or);
|
$width=ceil($height*$or);
|
||||||
|
if($width < 242){
|
||||||
|
$width = 242;
|
||||||
|
$height = ceil($width/$or);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
@@ -364,6 +373,11 @@ class image {
|
|||||||
$width=$owidth;
|
$width=$owidth;
|
||||||
}else{
|
}else{
|
||||||
$height=ceil($width/$or);
|
$height=ceil($width/$or);
|
||||||
|
$width = ceil($height*$or);
|
||||||
|
if($width < 242){
|
||||||
|
$width = 242;
|
||||||
|
$height = ceil($width/$or);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
432
core/class/table/table_pichome_collectlist.php
Normal file
432
core/class/table/table_pichome_collectlist.php
Normal file
@@ -0,0 +1,432 @@
|
|||||||
|
<?php
|
||||||
|
if (!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
class table_pichome_collectlist extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_collectlist';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'pichome_collectlist';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
//添加收藏
|
||||||
|
public function add_collect($data){
|
||||||
|
$perm = C::t('pichome_collectuser')->get_perm_by_clid($data['clid']);
|
||||||
|
if($perm < 2){
|
||||||
|
return array('error'=>'no_perm');
|
||||||
|
}
|
||||||
|
if(empty($data['rid'])) return true;
|
||||||
|
$existsdata = DB::fetch_all("select rid from %t where rid in(%n) and clid = %d and cid = %d",array($this->_table,$data['rid'],$data['clid'],$data['cid']));
|
||||||
|
$existsrids = [];
|
||||||
|
foreach($existsdata as $v){
|
||||||
|
$existsrids[] = $v['rid'];
|
||||||
|
}
|
||||||
|
$totalcount = count($data['rid']);
|
||||||
|
$data['rid'] = array_diff($data['rid'],$existsrids);
|
||||||
|
if(empty($data['rid'])) return true;
|
||||||
|
//记录加入收藏个数
|
||||||
|
$counti = 0;
|
||||||
|
$namesarr = [];
|
||||||
|
foreach(DB::fetch_all("select appid,rid,name from %t where rid in(%n)",array('pichome_resources',$data['rid'])) as $v){
|
||||||
|
$setarr = [
|
||||||
|
'rid'=>$v['rid'],
|
||||||
|
'cid'=>$data['cid'],
|
||||||
|
'clid'=>$data['clid'],
|
||||||
|
'uid'=>$data['uid'],
|
||||||
|
'username'=>$data['username'],
|
||||||
|
'dateline'=>$data['dateline'],
|
||||||
|
'appid'=>$v['appid'],
|
||||||
|
];
|
||||||
|
$namesarr[] = $v['name'];
|
||||||
|
if(parent::insert($setarr,1)) $counti += 1;
|
||||||
|
}
|
||||||
|
if($counti){
|
||||||
|
$filenamearr = array_slice($namesarr,0,5);
|
||||||
|
$filename = implode(',',$filenamearr).'等'.$totalcount.'个文件';
|
||||||
|
//如果收藏有分类增加该分类下文件数
|
||||||
|
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$data['clid']));
|
||||||
|
if($data['cid']){
|
||||||
|
C::t('pichome_collectcat')->add_filenum_by_cid($data['cid'],$counti);
|
||||||
|
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$data['cid']));
|
||||||
|
$pathkey = str_replace('_','',$pathkey);
|
||||||
|
$patharr = explode('-',$pathkey);
|
||||||
|
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
|
||||||
|
$position .= '/'.$v['catname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
C::t('pichome_collect')->add_filenum_by_clid($data['clid'],$counti);
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rids'=> $data['rid']];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'collectfile' ,
|
||||||
|
'uid' => getglobal('uid'),
|
||||||
|
'username' => getglobal('username'),
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$data['clid'],
|
||||||
|
'cid' =>($data['cid']) ? $data['cid']:0,
|
||||||
|
'do' => 'collect_file',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
}
|
||||||
|
$this->update_collect_thumb($data['clid']);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($id){
|
||||||
|
if(!is_array($id)) $id = (array)$id;
|
||||||
|
if(parent::delete($id)){
|
||||||
|
//删除对应分享
|
||||||
|
if(!empty($id))DB::delete('pichome_share','filepath in('.dimplode($id).') and stype = 1');
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消收藏
|
||||||
|
public function cancle_filecollect($lids,$clid,$cid = 0){
|
||||||
|
$perm = C::t('pichome_collectuser')->get_perm_by_clid($clid);
|
||||||
|
if($perm < 2){
|
||||||
|
return array('error'=>'no_perm');
|
||||||
|
}
|
||||||
|
if(!is_array($lids)) $lids = (array)$lids;
|
||||||
|
if(empty($lids)) return true;
|
||||||
|
$counti = 0;
|
||||||
|
$rids = [];
|
||||||
|
foreach(DB::fetch_all("select rid,id,cid,clid from %t where id in(%n)",array($this->_table,$lids)) as $v){
|
||||||
|
$rids[] = $v['rid'];
|
||||||
|
if($this->delete($v['id'])){
|
||||||
|
$counti += 1;
|
||||||
|
C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
|
||||||
|
C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
|
||||||
|
if($cid){
|
||||||
|
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
|
||||||
|
$pathkey = str_replace('_','',$pathkey);
|
||||||
|
$patharr = explode('-',$pathkey);
|
||||||
|
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
|
||||||
|
$position .= '/'.$v['catname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$namesarr = [];
|
||||||
|
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
|
||||||
|
$namesarr[] = $v['name'];
|
||||||
|
}
|
||||||
|
$filename = implode(',',$namesarr).'等'.$counti.'个文件';
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rid'=>$rids];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'canclecollectfile' ,
|
||||||
|
'uid' => getglobal('uid'),
|
||||||
|
'username' => getglobal('username'),
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$clid,
|
||||||
|
'cid' =>($cid) ? $cid:0,
|
||||||
|
'do' => 'cancle_collectfile',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
$this->update_collect_thumb($clid);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//更新收藏夹缩略图
|
||||||
|
public function update_collect_thumb($clid){
|
||||||
|
$first = false;
|
||||||
|
$collectdata = C::t('pichome_collect')->fetch($clid);
|
||||||
|
if(!C::t('pichome_collectlist')->fetch($collectdata['lid'])){
|
||||||
|
$first = true;
|
||||||
|
}else{
|
||||||
|
$first = false;
|
||||||
|
}
|
||||||
|
$setarr = [];
|
||||||
|
if($first){
|
||||||
|
//取得第一张图
|
||||||
|
$firstdata = DB::fetch_first("select * from %t where clid = %d order by id asc",array($this->_table,$clid));
|
||||||
|
if($firstdata){
|
||||||
|
$icondatas = C::t('pichome_resources')->geticondata_by_rid($firstdata['rid']);
|
||||||
|
$setarr['covert'] = $icondatas['icondata'];
|
||||||
|
$setarr['lid'] = $firstdata['id'];
|
||||||
|
}else{
|
||||||
|
$setarr['covert'] = '';
|
||||||
|
$setarr['lid'] = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//取得最新两张图
|
||||||
|
$i = 2;
|
||||||
|
$coverdata = DB::fetch_all("select rid,id from %t where clid = %d order by id desc limit 0,2",array($this->_table,$clid));
|
||||||
|
$count = count($coverdata);
|
||||||
|
if($count == 0){
|
||||||
|
$setarr['covert1'] = '';
|
||||||
|
$setarr['covert2'] = '';
|
||||||
|
$setarr['lid1'] = 0;
|
||||||
|
$setarr['lid2'] = 0;
|
||||||
|
}elseif($count ==1) {
|
||||||
|
foreach ($coverdata as $v) {
|
||||||
|
$icondatas = C::t('pichome_resources')->geticondata_by_rid($v['rid']);
|
||||||
|
$setarr['covert' . $i] = $icondatas['icondata'];
|
||||||
|
$setarr['lid' . $i] = $v['id'];
|
||||||
|
$i--;
|
||||||
|
}
|
||||||
|
$setarr['covert2'] = '';
|
||||||
|
$setarr['lid2'] = 0;
|
||||||
|
}else{
|
||||||
|
foreach($coverdata as $v){
|
||||||
|
$icondatas = C::t('pichome_resources')->geticondata_by_rid($v['rid']);
|
||||||
|
$setarr['covert'.$i] = $icondatas['icondata'];
|
||||||
|
$setarr['lid'.$i] = $v['id'];
|
||||||
|
$i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
C::t('pichome_collect')->update($clid,$setarr);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//删除收藏夹所有文件
|
||||||
|
public function delete_by_clid($clid){
|
||||||
|
return DB::delete($this->_table,array('clid'=>$clid));
|
||||||
|
}
|
||||||
|
|
||||||
|
//移动文件到某收藏
|
||||||
|
public function move_collectfile($lids,$oclid,$ocid=0){
|
||||||
|
|
||||||
|
if(!is_array($lids)) $lids = (array)$lids;
|
||||||
|
if(empty($lids)) return true;
|
||||||
|
|
||||||
|
$total = count($lids);
|
||||||
|
$cids = [];
|
||||||
|
$clid = 0;
|
||||||
|
$counti = 0;
|
||||||
|
$rids=[];
|
||||||
|
foreach(DB::fetch_all("select * from %t where id in(%n)",array('pichome_collectlist',$lids)) as $v){
|
||||||
|
$cids[] = $v['cid'];
|
||||||
|
$clid = $v['clid'];
|
||||||
|
//如果收藏位置相同则不做任何处理
|
||||||
|
if($v['clid'] == $oclid && $v['cid'] == $ocid){
|
||||||
|
/* if(parent::delete($v['id'])){
|
||||||
|
//收藏夹文件数和分类数减1
|
||||||
|
if($v['cid']) C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
|
||||||
|
if($v['clid'])C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
|
||||||
|
}*/
|
||||||
|
continue;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
//如果该收藏文件在目标位置已经存在则删除原收藏位置文件
|
||||||
|
if($id = DB::result_first("select id from %t where rid = %s and clid = %d and cid = %d",
|
||||||
|
array($this->_table,$v['rird'],$oclid,$ocid))){
|
||||||
|
$this->delete($id);
|
||||||
|
C::t('pichome_collect')->add_filenum_by_clid($clid,-1);
|
||||||
|
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
|
||||||
|
}else{
|
||||||
|
$setarr = [
|
||||||
|
'uid'=>getglobal('uid'),
|
||||||
|
'username'=>getglobal('username'),
|
||||||
|
'clid'=>$oclid,
|
||||||
|
'cid'=>$ocid
|
||||||
|
];
|
||||||
|
/* echo $ocid;
|
||||||
|
print_r($v);die;*/
|
||||||
|
//更新数据
|
||||||
|
if(parent::update($v['id'],$setarr)){
|
||||||
|
|
||||||
|
//如果移动位置不在一个收藏夹
|
||||||
|
if($v['clid'] != $oclid){
|
||||||
|
//增加移入收藏夹文件数
|
||||||
|
C::t('pichome_collect')->add_filenum_by_clid($oclid,1);
|
||||||
|
if($v['clid']) C::t('pichome_collect')->add_filenum_by_clid($clid,-1);
|
||||||
|
}
|
||||||
|
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
|
||||||
|
$counti++;
|
||||||
|
//增加移入分类文件数
|
||||||
|
if($ocid)C::t('pichome_collectcat')->add_filenum_by_cid($ocid,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
$rids[] = $v['rid'];
|
||||||
|
}
|
||||||
|
//如果移动文件位置cid为多个则不记入动态
|
||||||
|
$cids = array_unique($cids);
|
||||||
|
if(count($cids) == 1) $cid = $cids[0];
|
||||||
|
else $cid = 0;
|
||||||
|
|
||||||
|
$namesarr = [];
|
||||||
|
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
|
||||||
|
$namesarr[] = $v['name'];
|
||||||
|
}
|
||||||
|
$filename = implode(',',$namesarr).'等'.$total.'个文件';
|
||||||
|
|
||||||
|
$oposition = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$oclid));
|
||||||
|
if($ocid){
|
||||||
|
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$ocid));
|
||||||
|
$pathkey = str_replace('_','',$pathkey);
|
||||||
|
$patharr = explode('-',$pathkey);
|
||||||
|
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
|
||||||
|
$oposition .= '/'.$v['catname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//更新移出收藏文件数
|
||||||
|
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
|
||||||
|
if($cid){
|
||||||
|
|
||||||
|
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
|
||||||
|
$pathkey = str_replace('_','',$pathkey);
|
||||||
|
$patharr = explode('-',$pathkey);
|
||||||
|
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
|
||||||
|
$position .= '/'.$v['catname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//移入动态
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'newcolletname'=>$oposition,'rid'=>$rids];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'movecollectfileto' ,
|
||||||
|
'uid' => getglobal('uid'),
|
||||||
|
'username' => getglobal('username'),
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$oclid,
|
||||||
|
'cid' =>($ocid) ? $ocid:0,
|
||||||
|
'do' => 'move_collectfileto',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
//更新移入文件收藏缩略图
|
||||||
|
if($oclid != $clid) $this->update_collect_thumb($oclid);
|
||||||
|
|
||||||
|
//移出动态
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'newcolletname'=>$oposition,'rid'=>$rids];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'delcollectfilefrom' ,
|
||||||
|
'uid' => getglobal('uid'),
|
||||||
|
'username' => getglobal('username'),
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$clid,
|
||||||
|
'cid' =>($cid) ? $cid:0,
|
||||||
|
'do' => 'del_collectfilefrom',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
//更新移出文件收藏缩略图
|
||||||
|
if($clid && $oclid != $clid) $this->update_collect_thumb($oclid);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
//收藏已收藏文件到指定收藏
|
||||||
|
public function collect_by_lid($lids,$clid,$cid=0){
|
||||||
|
$perm = C::t('pichome_collectuser')->get_perm_by_clid($clid);
|
||||||
|
if($perm < 2){
|
||||||
|
return array('error'=>'no_perm');
|
||||||
|
}
|
||||||
|
if(!is_array($lids)) $lids = (array)$lids;
|
||||||
|
if(empty($lids)) return true;
|
||||||
|
$rids = [];
|
||||||
|
foreach(DB::fetch_all("select rid,id from %t where id in(%n)",array($this->_table,$lids)) as $v){
|
||||||
|
$rids[] = $v['rid'];
|
||||||
|
}
|
||||||
|
$existsrids = [];
|
||||||
|
foreach(DB::fetch_all("select rid from %t where rid in(%n) and clid = %d and cid = %d",array($this->_table,$rids,$clid,$cid)) as $v){
|
||||||
|
$existsrids[] = $v['rid'];
|
||||||
|
}
|
||||||
|
$totalcount = count($rids);
|
||||||
|
$insertrids = array_diff($rids,$existsrids);
|
||||||
|
//记录加入收藏个数
|
||||||
|
$counti = 0;
|
||||||
|
$namesarr = [];
|
||||||
|
foreach(DB::fetch_all("select appid,rid,name from %t where rid in(%n)",array('pichome_resources',$insertrids)) as $v){
|
||||||
|
$setarr = [
|
||||||
|
'rid'=>$v['rid'],
|
||||||
|
'cid'=>$cid,
|
||||||
|
'clid'=>$clid,
|
||||||
|
'uid'=>getglobal('uid'),
|
||||||
|
'username'=>getglobal('username'),
|
||||||
|
'dateline'=>TIMESTAMP,
|
||||||
|
'appid'=>$v['appid'],
|
||||||
|
];
|
||||||
|
$namesarr[] = $v['name'];
|
||||||
|
if(parent::insert($setarr,1)) $counti += 1;
|
||||||
|
}
|
||||||
|
if($counti){
|
||||||
|
$filenamearr = array_slice($namesarr,0,5);
|
||||||
|
$filename = implode(',',$filenamearr).'等'.$totalcount.'个文件';
|
||||||
|
//如果收藏有分类增加该分类下文件数
|
||||||
|
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
|
||||||
|
if($cid){
|
||||||
|
C::t('pichome_collectcat')->add_filenum_by_cid($cid,$counti);
|
||||||
|
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
|
||||||
|
$pathkey = str_replace('_','',$pathkey);
|
||||||
|
$patharr = explode('-',$pathkey);
|
||||||
|
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
|
||||||
|
$position .= '/'.$v['catname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
C::t('pichome_collect')->add_filenum_by_clid($clid,$counti);
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rids'=>$rids];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'collectfile' ,
|
||||||
|
'uid' => getglobal('uid'),
|
||||||
|
'username' => getglobal('username'),
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$clid,
|
||||||
|
'cid' =>$cid ? $cid:0,
|
||||||
|
'do' => 'collect_file',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
}
|
||||||
|
$this->update_collect_thumb($clid);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete_by_rids($rids,$uid,$username){
|
||||||
|
if(!$rids) $rids = (array)$rids;
|
||||||
|
if(empty($rids)) return true;
|
||||||
|
$clids = [];
|
||||||
|
foreach(DB::fetch_all("select * from %t where rid in(%n)",array($this->_table,$rids)) as $v){
|
||||||
|
$clids[$v['clid']][] = $v['id'];
|
||||||
|
}
|
||||||
|
foreach ($clids as $k=>$val){
|
||||||
|
$clid = $k;
|
||||||
|
$counti = 0;
|
||||||
|
$rids = [];
|
||||||
|
foreach(DB::fetch_all("select rid,id,cid,clid from %t where id in(%n)",array($this->_table,$val)) as $v){
|
||||||
|
$rids[] = $v['rid'];
|
||||||
|
if($this->delete($v['id'])){
|
||||||
|
$counti += 1;
|
||||||
|
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
|
||||||
|
if($v['clid'])C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
|
||||||
|
$namesarr = [];
|
||||||
|
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
|
||||||
|
$namesarr[] = $v['name'];
|
||||||
|
}
|
||||||
|
$filename = implode(',',$namesarr).'等'.$counti.'个文件';
|
||||||
|
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rid'=>$rids];
|
||||||
|
$enventdata = [
|
||||||
|
'eventbody' =>'canclecollectfile' ,
|
||||||
|
'uid' => $uid,
|
||||||
|
'username' => $username,
|
||||||
|
'bodydata' => json_encode($enventbodydata),
|
||||||
|
'clid' =>$clid,
|
||||||
|
'cid' =>0,
|
||||||
|
'do' => 'cancle_collectfile',
|
||||||
|
'do_obj' =>$filename,
|
||||||
|
'dateline'=>TIMESTAMP
|
||||||
|
];
|
||||||
|
C::t('pichome_collectevent')->insert($enventdata);
|
||||||
|
$this->update_collect_thumb($clid);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,12 +29,13 @@ class table_pichome_resources extends dzz_table
|
|||||||
|
|
||||||
public function delete_by_appid($appid)
|
public function delete_by_appid($appid)
|
||||||
{
|
{
|
||||||
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
//$i = 0;
|
//$i = 0;
|
||||||
$rids = [];
|
$rids = [];
|
||||||
foreach (DB::fetch_all("select rid from %t where appid = %s limit 0,1000", array($this->_table, $appid)) as $v) {
|
foreach (DB::fetch_all("select rid from %t where appid = %s limit 0,100", array($this->_table, $appid)) as $v) {
|
||||||
$rids[] = $v['rid'];
|
$rids[] = $v['rid'];
|
||||||
}
|
}
|
||||||
if ($rids) $this->delete_by_rid($rids);
|
if ($rids) $this->delete_by_rid($rids,$data['deluid'],$data['delusername']);
|
||||||
//return $i;
|
//return $i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ class table_pichome_resources extends dzz_table
|
|||||||
return DB::result_first("select * from %t where path = %s", array($this->_table, $path));
|
return DB::result_first("select * from %t where path = %s", array($this->_table, $path));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete_by_rid($rids)
|
public function delete_by_rid($rids,$uid=0,$username='')
|
||||||
{
|
{
|
||||||
if (!is_array($rids)) $rids = (array)$rids;
|
if (!is_array($rids)) $rids = (array)$rids;
|
||||||
C::t('pichome_resources_attr')->delete_by_rid($rids);
|
C::t('pichome_resources_attr')->delete_by_rid($rids);
|
||||||
@@ -55,6 +56,9 @@ class table_pichome_resources extends dzz_table
|
|||||||
C::t('pichome_share')->delete_by_rid($rids);
|
C::t('pichome_share')->delete_by_rid($rids);
|
||||||
C::t('pichome_ffmpeg_record')->delete($rids);
|
C::t('pichome_ffmpeg_record')->delete($rids);
|
||||||
C::t('pichome_imagickrecord')->delete($rids);
|
C::t('pichome_imagickrecord')->delete($rids);
|
||||||
|
//$deldata = ['rids'=>$rids,'deluid'=>$uid,'delusername'=>$username];
|
||||||
|
//Hook::listen('pichomedatadeleteafter',$deldata);
|
||||||
|
|
||||||
return $this->delete($rids);
|
return $this->delete($rids);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,7 +125,40 @@ class table_pichome_resources extends dzz_table
|
|||||||
$resourcesdata['realpath'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
|
$resourcesdata['realpath'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
|
||||||
return $resourcesdata;
|
return $resourcesdata;
|
||||||
}
|
}
|
||||||
|
/*public function getdatabyrid($rid){
|
||||||
|
global $Opentype;
|
||||||
|
$data = parent::fetch($rid);
|
||||||
|
$data['fsize'] = formatsize($data['size']);
|
||||||
|
$data['mtime'] = dgmdate(round($data['mtime'] / 1000), 'Y/m/d H:i');
|
||||||
|
$data['dateline'] = dgmdate(round($data['dateline'] / 1000), 'Y/m/d H:i');
|
||||||
|
$data['name'] = str_replace(strrchr($data['name'], "."), "", $data['name']);
|
||||||
|
$data['btime'] = dgmdate(round($data['btime'] / 1000), 'Y/m/d H:i');
|
||||||
|
$data['dpath'] = dzzencode($data['rid'], '', 0, 0);
|
||||||
|
if (in_array($data['ext'], $Opentype['video'])) {
|
||||||
|
$data['opentype'] = 'video';
|
||||||
|
} elseif (in_array($data['ext'], $Opentype['text'])) {
|
||||||
|
$data['opentype'] = 'text';
|
||||||
|
} elseif (in_array($data['ext'], $Opentype['pdf'])) {
|
||||||
|
$data['opentype'] = 'pdf';
|
||||||
|
} elseif (in_array($data['ext'], $Opentype['image'])) {
|
||||||
|
$data['opentype'] = 'image';
|
||||||
|
} else {
|
||||||
|
$data['opentype'] = 'other';
|
||||||
|
}
|
||||||
|
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
||||||
|
$data = array_merge($data,$attrdata);
|
||||||
|
$colordata = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
|
||||||
|
foreach ($colordata as $cv) {
|
||||||
|
$colorsarr[] = $cv;
|
||||||
|
}
|
||||||
|
$data['color'] = $colorsarr[0];
|
||||||
|
|
||||||
|
//array_multisort($datas, 'rid', SORT_ASC, $rids);
|
||||||
|
foreach (C::t('pichome_resourcestag')->fetch_all_tag_by_rids($rids) as $k => $v) {
|
||||||
|
$datas[$k]['tags'] = $v;
|
||||||
|
// $datas[$k]['tags'] = '•'.implode('•',$v);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
public function fetch_by_rid($rid)
|
public function fetch_by_rid($rid)
|
||||||
{
|
{
|
||||||
global $Opentype;
|
global $Opentype;
|
||||||
@@ -130,6 +167,7 @@ class table_pichome_resources extends dzz_table
|
|||||||
//获取所有库分享和下载权限
|
//获取所有库分享和下载权限
|
||||||
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
||||||
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
||||||
|
if($attrdata['desc']) $attrdata['desc'] = strip_tags($attrdata['desc']);
|
||||||
$resourcesdata = array_merge($resourcesdata, $attrdata);
|
$resourcesdata = array_merge($resourcesdata, $attrdata);
|
||||||
$resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
|
$resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
|
||||||
$resourcesdata['ext'] = strtolower($resourcesdata['ext']);
|
$resourcesdata['ext'] = strtolower($resourcesdata['ext']);
|
||||||
@@ -234,7 +272,7 @@ class table_pichome_resources extends dzz_table
|
|||||||
$resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid);
|
$resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid);
|
||||||
$resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid);
|
$resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid);
|
||||||
$resourcesdata['dpath'] = dzzencode($rid, '', 0, 0);
|
$resourcesdata['dpath'] = dzzencode($rid, '', 0, 0);
|
||||||
//print_r($resourcesdata);die;
|
|
||||||
|
|
||||||
return $resourcesdata;
|
return $resourcesdata;
|
||||||
}
|
}
|
||||||
@@ -306,6 +344,11 @@ class table_pichome_resources extends dzz_table
|
|||||||
$v['height'] = 128;
|
$v['height'] = 128;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$thumbwidth = getglobal('config/pichomethumbwidth') ? getglobal('config/pichomethumbwidth') : 900;
|
||||||
|
$thumbheight = getglobal('config/pichomethumbheight') ? getglobal('config/pichomethumbheight') : 900;
|
||||||
|
$thumsizearr = $this->getImageThumbsize($v['width'],$v['height'],$thumbwidth,$thumbheight);
|
||||||
|
$v['thumbwidth'] = $thumsizearr[0];
|
||||||
|
$v['thumbheight'] = $thumsizearr[1];
|
||||||
//文件真实地址
|
//文件真实地址
|
||||||
if ($downshare[$v['appid']]['iswebsitefile']) {
|
if ($downshare[$v['appid']]['iswebsitefile']) {
|
||||||
$originalimg = str_replace(DZZ_ROOT, '', $downshare[$v['appid']]['path'] . BS . $v['path']);
|
$originalimg = str_replace(DZZ_ROOT, '', $downshare[$v['appid']]['path'] . BS . $v['path']);
|
||||||
@@ -316,13 +359,50 @@ class table_pichome_resources extends dzz_table
|
|||||||
$v['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0);
|
$v['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unset($v['path']);
|
unset($v['path']);
|
||||||
$returndata[] = $v;
|
$returndata[] = $v;
|
||||||
}
|
}
|
||||||
return $returndata;
|
return $returndata;
|
||||||
}
|
}
|
||||||
|
public function getImageThumbsize($owidth,$oheight,$width,$height){
|
||||||
|
if($owidth>$width || $oheight>$height){
|
||||||
|
$or=$owidth/$oheight;
|
||||||
|
$r=$width/$height;
|
||||||
|
if($r>$or){
|
||||||
|
if($oheight<$height){
|
||||||
|
$height=$oheight;
|
||||||
|
$width=$owidth;
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$width=ceil($height*$or);
|
||||||
|
if($width < 242){
|
||||||
|
$width = 242;
|
||||||
|
$height = ceil($width/$or);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
if($owidth<$width){
|
||||||
|
$height=$oheight;
|
||||||
|
$width=$owidth;
|
||||||
|
}else{
|
||||||
|
$height=ceil($width/$or);
|
||||||
|
$width = ceil($height*$or);
|
||||||
|
if($width < 242){
|
||||||
|
$width = 242;
|
||||||
|
$height = ceil($width/$or);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$width=$owidth;
|
||||||
|
$height=$oheight;
|
||||||
|
}
|
||||||
|
//Return the results
|
||||||
|
return array($width,$height);
|
||||||
|
|
||||||
|
}
|
||||||
public function geticondata_by_rid($rid)
|
public function geticondata_by_rid($rid)
|
||||||
{
|
{
|
||||||
$resourcesdata = DB::fetch_first("select r.rid,r.appid,r.hasthumb,r.ext,r.type,ra.path as fpath,
|
$resourcesdata = DB::fetch_first("select r.rid,r.appid,r.hasthumb,r.ext,r.type,ra.path as fpath,
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ if(!defined('IN_OAOOA')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!defined('CORE_VERSION')) {
|
if(!defined('CORE_VERSION')) {
|
||||||
define('CORE_VERSION', 'beta3.1');
|
define('CORE_VERSION', 'beta3.2');
|
||||||
define('CORE_VERSION_LEVEL', 'Pichome');
|
define('CORE_VERSION_LEVEL', 'Pichome');
|
||||||
define('CORE_RELEASE', '20211220');
|
define('CORE_RELEASE', '20220128');
|
||||||
define('CORE_FIXBUG' , '03100000');
|
define('CORE_FIXBUG' , '03200000');
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ class billfishxport
|
|||||||
//修改导入状态为1
|
//修改导入状态为1
|
||||||
C::t('pichome_vapp')->update($this->appid, array('state' => 1));
|
C::t('pichome_vapp')->update($this->appid, array('state' => 1));
|
||||||
//查询res_join_tag是否有文件id索引
|
//查询res_join_tag是否有文件id索引
|
||||||
$fecthsql = "SELECT * FROM sqlite_master WHERE type = 'index';";
|
$fecthsql = "SELECT * FROM sqlite_master WHERE type = 'index'";
|
||||||
$indexdata = $this->fetch_all($fecthsql);
|
$indexdata = $this->fetch_all($fecthsql);
|
||||||
$indexarr = array_column($indexdata,'name');
|
$indexarr = array_column($indexdata,'name');
|
||||||
//如果标签表iid没有索引创建res_join_tag_iid_idx索引
|
//如果标签表iid没有索引创建res_join_tag_iid_idx索引
|
||||||
@@ -109,6 +109,23 @@ class billfishxport
|
|||||||
return array('success' => true);
|
return array('success' => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取文件可访问的真实地址
|
||||||
|
public function getFileRealFileName($filepath,$filename){
|
||||||
|
$charsetarr = ['GBK','GB18030'];
|
||||||
|
$returnname = $filename;
|
||||||
|
if(!is_file($filepath.BS.$filename)){
|
||||||
|
foreach ($charsetarr as $v){
|
||||||
|
$filemetadataname = diconv($filename, CHARSET, $v);
|
||||||
|
if(is_file($filepath.BS.$filemetadataname)){
|
||||||
|
$returnname = $filemetadataname;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $returnname;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function execExport($force = false)
|
public function execExport($force = false)
|
||||||
{
|
{
|
||||||
//开始页数
|
//开始页数
|
||||||
@@ -168,8 +185,9 @@ class billfishxport
|
|||||||
//定义属性表变量
|
//定义属性表变量
|
||||||
$attrdata = [];
|
$attrdata = [];
|
||||||
$attrdata['desc'] = $v['note'];
|
$attrdata['desc'] = $v['note'];
|
||||||
|
$attrdata['link'] = $v['origin'];
|
||||||
//将名字记入搜索字段
|
//将名字记入搜索字段
|
||||||
$attrdata['searchval'] = $setarr['name'].$attrdata['desc'];
|
$attrdata['searchval'] = $setarr['name'].$attrdata['desc'].$attrdata['link'];
|
||||||
//处理目录数据
|
//处理目录数据
|
||||||
if ($v['fid']) {
|
if ($v['fid']) {
|
||||||
$folderdata = $this->getFolderfid($v['fid']);
|
$folderdata = $this->getFolderfid($v['fid']);
|
||||||
@@ -186,9 +204,11 @@ class billfishxport
|
|||||||
$attrdata['path'] = $setarr['name'];
|
$attrdata['path'] = $setarr['name'];
|
||||||
}
|
}
|
||||||
//目录数据处理完成
|
//目录数据处理完成
|
||||||
|
$attrdata['path'] = $this->getFileRealFileName($this->path,$attrdata['path']);
|
||||||
//转码路径 记入属性表
|
//转码路径 记入属性表
|
||||||
if (CHARSET != $this->charset) $attrdata['path'] = diconv($attrdata['path'],CHARSET, $this->charset);;
|
//$p = new Encode_Core();
|
||||||
|
//$this->charset = $p->get_encoding($attrdata['path']);
|
||||||
|
//if (CHARSET != $this->charset) $attrdata['path'] = diconv($attrdata['path'],CHARSET, $this->charset);;
|
||||||
|
|
||||||
//标签数据开始
|
//标签数据开始
|
||||||
|
|
||||||
|
|||||||
@@ -1,118 +1,118 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
|
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
|
||||||
* @license https://www.oaooa.com/licenses/
|
* @license https://www.oaooa.com/licenses/
|
||||||
*
|
*
|
||||||
* @link https://www.oaooa.com
|
* @link https://www.oaooa.com
|
||||||
* @author zyx(zyx@oaooa.com)
|
* @author zyx(zyx@oaooa.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define ('UTF32_BIG_ENDIAN_BOM' , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
|
define ('UTF32_BIG_ENDIAN_BOM' , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
|
||||||
|
|
||||||
define ('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
|
define ('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
|
||||||
|
|
||||||
define ('UTF16_BIG_ENDIAN_BOM' , chr(0xFE) . chr(0xFF));
|
define ('UTF16_BIG_ENDIAN_BOM' , chr(0xFE) . chr(0xFF));
|
||||||
|
|
||||||
define ('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
|
define ('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
|
||||||
|
|
||||||
define ('UTF8_BOM' , chr(0xEF) . chr(0xBB) . chr(0xBF));
|
define ('UTF8_BOM' , chr(0xEF) . chr(0xBB) . chr(0xBF));
|
||||||
class Encode_Core {
|
class Encode_Core {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件分析方法来检查UNICODE文件,ANSI文件没有文件头,此处不分析
|
* 文件分析方法来检查UNICODE文件,ANSI文件没有文件头,此处不分析
|
||||||
*/
|
*/
|
||||||
private function detect_utf_encoding($text) {
|
private function detect_utf_encoding($text) {
|
||||||
$first2 = substr($text, 0, 2);
|
$first2 = substr($text, 0, 2);
|
||||||
$first3 = substr($text, 0, 3);
|
$first3 = substr($text, 0, 3);
|
||||||
$first4 = substr($text, 0, 3);
|
$first4 = substr($text, 0, 3);
|
||||||
if ($first3 == UTF8_BOM) return 'UTF-8';
|
if ($first3 == UTF8_BOM) return 'UTF-8';
|
||||||
|
|
||||||
elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';
|
elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';
|
||||||
|
|
||||||
elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';
|
elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';
|
||||||
|
|
||||||
elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';
|
elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';
|
||||||
|
|
||||||
elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';
|
elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 检测是否GB2312编码
|
* 检测是否GB2312编码
|
||||||
* @param string $str
|
* @param string $str
|
||||||
* @since 2012-03-20
|
* @since 2012-03-20
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
private function is_gb2312($str) {
|
private function is_gb2312($str) {
|
||||||
for($i=0; $i<strlen($str); $i++) {
|
for($i=0; $i<strlen($str); $i++) {
|
||||||
$v = ord( $str[$i] );
|
$v = ord( $str[$i] );
|
||||||
if( $v > 127) {
|
if( $v > 127) {
|
||||||
if( ($v >= 228) && ($v <= 233) ){
|
if( ($v >= 228) && ($v <= 233) ){
|
||||||
if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters
|
if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters
|
||||||
$v1 = ord( $str[$i+1] );
|
$v1 = ord( $str[$i+1] );
|
||||||
$v2 = ord( $str[$i+2] );
|
$v2 = ord( $str[$i+2] );
|
||||||
if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) )
|
if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) )
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
return true; //GB编码
|
return true; //GB编码
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function is_GBK($str){
|
private function is_GBK($str){
|
||||||
$s1 = iconv('gbk','utf-8',$str);
|
$s1 = iconv('gbk','utf-8',$str);
|
||||||
$s0 = iconv('utf-8','gbk',$s1);
|
$s0 = iconv('utf-8','gbk',$s1);
|
||||||
if($s0 == $str){
|
if($s0 == $str){
|
||||||
return true;
|
return true;
|
||||||
}else{
|
}else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 取得编码
|
* 取得编码
|
||||||
* @param string $str
|
* @param string $str
|
||||||
* @return string $encoding
|
* @return string $encoding
|
||||||
*/
|
*/
|
||||||
public static function get_encoding($str){
|
public static function get_encoding($str){
|
||||||
$ary = array();
|
$ary = array();
|
||||||
|
|
||||||
//$ary[] = "ASCII";
|
//$ary[] = "ASCII";
|
||||||
$ary[] = "UTF-8";
|
$ary[] = "UTF-8";
|
||||||
$ary[] = "GB18030";//简体码
|
$ary[] = "GB18030";//简体码
|
||||||
$ary[] = "BIG-5";//繁体码
|
$ary[] = "BIG-5";//繁体码
|
||||||
$ary[] = "EUC-CN";
|
$ary[] = "EUC-CN";
|
||||||
$ary[] = "JIS";//日文编码
|
$ary[] = "JIS";//日文编码
|
||||||
$ary[] = "EUC-JP";//日文编码
|
$ary[] = "EUC-JP";//日文编码
|
||||||
$encoding= self::detect_utf_encoding($str);
|
$encoding= self::detect_utf_encoding($str);
|
||||||
if(empty($encoding) && self::is_gb2312($str)) return 'GBK';
|
//if(empty($encoding) && self::is_GBK($str)) return 'GBK';
|
||||||
if(empty($encoding)){
|
if(empty($encoding)){
|
||||||
$encoding=mb_detect_encoding($str,$ary);
|
$encoding=mb_detect_encoding($str,$ary);
|
||||||
}
|
}
|
||||||
if($encoding=='ASCII') $encoding='UTF-8';
|
if($encoding=='ASCII') $encoding='UTF-8';
|
||||||
return $encoding;
|
return $encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function utf16_to_utf8($str) {
|
public function utf16_to_utf8($str) {
|
||||||
|
|
||||||
$len = strlen($str);
|
$len = strlen($str);
|
||||||
$dec = '';
|
$dec = '';
|
||||||
for ($i = 0; $i < $len; $i += 2) {
|
for ($i = 0; $i < $len; $i += 2) {
|
||||||
$c = ($be) ? ord($str[$i]) << 8 | ord($str[$i + 1]) :
|
$c = ($be) ? ord($str[$i]) << 8 | ord($str[$i + 1]) :
|
||||||
ord($str[$i + 1]) << 8 | ord($str[$i]);
|
ord($str[$i + 1]) << 8 | ord($str[$i]);
|
||||||
if ($c >= 0x0001 && $c <= 0x007F) {
|
if ($c >= 0x0001 && $c <= 0x007F) {
|
||||||
$dec .= chr($c);
|
$dec .= chr($c);
|
||||||
} else if ($c > 0x07FF) {
|
} else if ($c > 0x07FF) {
|
||||||
$dec .= chr(0xE0 | (($c >> 12) & 0x0F));
|
$dec .= chr(0xE0 | (($c >> 12) & 0x0F));
|
||||||
$dec .= chr(0x80 | (($c >> 6) & 0x3F));
|
$dec .= chr(0x80 | (($c >> 6) & 0x3F));
|
||||||
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
|
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
|
||||||
} else {
|
} else {
|
||||||
$dec .= chr(0xC0 | (($c >> 6) & 0x1F));
|
$dec .= chr(0xC0 | (($c >> 6) & 0x1F));
|
||||||
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
|
$dec .= chr(0x80 | (($c >> 0) & 0x3F));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $dec;
|
return $dec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -1497,4 +1497,35 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
|
|||||||
C::t('user_setting')->update_by_skey('pichomeimageexpanded',$pichomeimageexpanded);
|
C::t('user_setting')->update_by_skey('pichomeimageexpanded',$pichomeimageexpanded);
|
||||||
exit(json_encode(array('success' => true)));
|
exit(json_encode(array('success' => true)));
|
||||||
}
|
}
|
||||||
|
}elseif($operation == 'gethostip'){
|
||||||
|
$iphost = [];
|
||||||
|
$os = PHP_OS;
|
||||||
|
if(preg_match('/^WIN(.+?)/i',$os)){
|
||||||
|
$host= gethostname();
|
||||||
|
}else{
|
||||||
|
$host = $_SERVER['SERVER_NAME'];
|
||||||
|
}
|
||||||
|
$host = $_SERVER['SERVER_NAME'];
|
||||||
|
|
||||||
|
$ip = gethostbyname($host);
|
||||||
|
$ip = filter_var($ip,FILTER_VALIDATE_IP);
|
||||||
|
if(!$ip || strpos($ip,'127') === 0){
|
||||||
|
if(preg_match('/^WIN(.+?)/i',$os)){
|
||||||
|
$host= gethostname();
|
||||||
|
}else{
|
||||||
|
$host = $_SERVER['SERVER_NAME'];
|
||||||
|
}
|
||||||
|
$ip = gethostbyname($host);
|
||||||
|
}
|
||||||
|
if($_SERVER['SERVER_PORT'] == 443){
|
||||||
|
$siteurl = 'https://'.$_SERVER['SERVER_NAME'];
|
||||||
|
} elseif($_SERVER["SERVER_PORT"] == 80) {
|
||||||
|
$siteurl = 'http://'.$_SERVER['SERVER_NAME'];
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$ip = $ip . ':' . $_SERVER["SERVER_PORT"];
|
||||||
|
$siteurl = 'http://'.$_SERVER['SERVER_NAME'] . ':' . $_SERVER["SERVER_PORT"];
|
||||||
|
}
|
||||||
|
$iphost = ['ip'=>$ip,'siteurl'=>$siteurl];
|
||||||
|
exit(json_encode($iphost));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,7 +144,22 @@ class eagleexport
|
|||||||
return array('success' => true);
|
return array('success' => true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取文件可访问的真实地址
|
||||||
|
public function getFileRealFileName($filepath,$filename,$ext){
|
||||||
|
$charsetarr = ['GBK','GB18030'];
|
||||||
|
$returnname = $filename;
|
||||||
|
if(!is_file($filepath.BS.$filename.'.'.$ext)){
|
||||||
|
foreach ($charsetarr as $v){
|
||||||
|
$filemetadataname = diconv($filename, CHARSET, $v);
|
||||||
|
if(is_file($filepath.BS.$filemetadataname.'.'.$ext)){
|
||||||
|
$returnname = $filemetadataname;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $returnname;
|
||||||
|
|
||||||
|
}
|
||||||
public function execExport($force = false)
|
public function execExport($force = false)
|
||||||
{
|
{
|
||||||
$filedir = $this->path . BS.'images';
|
$filedir = $this->path . BS.'images';
|
||||||
@@ -199,9 +214,7 @@ class eagleexport
|
|||||||
C::t('pichome_resources')->delete_by_rid($rid);
|
C::t('pichome_resources')->delete_by_rid($rid);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$p = new Encode_Core();
|
$filemetadataname = $this->getFileRealFileName($tmppath,$filemetadata['name'],$filemetadata['ext']);
|
||||||
$charset = $p->get_encoding($tmppath);
|
|
||||||
if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset);
|
|
||||||
//文件名称
|
//文件名称
|
||||||
$filename = $filemetadataname . '.' . $filemetadata['ext'];
|
$filename = $filemetadataname . '.' . $filemetadata['ext'];
|
||||||
//缩略图名称
|
//缩略图名称
|
||||||
@@ -339,10 +352,8 @@ class eagleexport
|
|||||||
$haspassword = C::t('pichome_folder')->check_haspasswrod($filemetadata['folders'], $this->appid);
|
$haspassword = C::t('pichome_folder')->check_haspasswrod($filemetadata['folders'], $this->appid);
|
||||||
|
|
||||||
if (!$haspassword){
|
if (!$haspassword){
|
||||||
$p = new Encode_Core();
|
$filemetadataname = $this->getFileRealFileName($tmppath,$filemetadata['name'],$filemetadata['ext']);
|
||||||
$charset = $p->get_encoding($tmppath);
|
//echo $filemetadataname;die;
|
||||||
if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset);
|
|
||||||
|
|
||||||
$filename = $filemetadataname . '.' . $filemetadata['ext'];
|
$filename = $filemetadataname . '.' . $filemetadata['ext'];
|
||||||
$thumbname = $filemetadataname . '_thumbnail.png';
|
$thumbname = $filemetadataname . '_thumbnail.png';
|
||||||
//echo $i.'middle:'.memory_get_usage()/1024 . '<br>';
|
//echo $i.'middle:'.memory_get_usage()/1024 . '<br>';
|
||||||
|
|||||||
@@ -175,36 +175,45 @@ class localexport
|
|||||||
$file = trim($file);
|
$file = trim($file);
|
||||||
$file = str_replace(array('/', './', '\\'), BS, $file);
|
$file = str_replace(array('/', './', '\\'), BS, $file);
|
||||||
$filearr = explode("\t", $file);
|
$filearr = explode("\t", $file);
|
||||||
$filepath = $filearr[0];
|
$filerelativepath = $filearr[0];
|
||||||
|
$filepath = str_replace($filedir . BS, '', $filerelativepath);
|
||||||
|
$p = new Encode_Core();
|
||||||
|
$this->charset = $p->get_encoding($filepath);
|
||||||
//如果是目录直接执行目录导入
|
//如果是目录直接执行目录导入
|
||||||
if (isset($filearr[1]) && $filearr[1] == 'folder') {
|
if (isset($filearr[1]) && $filearr[1] == 'folder') {
|
||||||
$filepath = str_replace($filedir . BS, '', $filepath);
|
|
||||||
if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET);
|
if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET);
|
||||||
|
|
||||||
$fid = $this->createfolerbypath($filepath);
|
$fid = $this->createfolerbypath($filepath);
|
||||||
|
|
||||||
$spl_object->next();
|
$spl_object->next();
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
//生成rid
|
$hasrid = 0;
|
||||||
$rid = md5($filepath.$this->appid);
|
if($rid = DB::result_first("select rid from %t where path = %s and appid = %s",
|
||||||
|
array('pichome_resources_attr',$filepath,$this->appid))){
|
||||||
|
$hasrid = 1;
|
||||||
|
}else{
|
||||||
|
//生成rid
|
||||||
|
$rid = $this->createRid();
|
||||||
|
}
|
||||||
|
$realfilepath = $filedir.BS.$filepath;
|
||||||
//如果文件不存在则删除记录
|
//如果文件不存在则删除记录
|
||||||
if (!is_file($filepath)) {
|
if (!is_file($realfilepath)) {
|
||||||
C::t('pichome_resources')->delete_by_rid($rid);
|
if($hasrid)C::t('pichome_resources')->delete_by_rid($rid);
|
||||||
$this->filenum -= 1;
|
$this->filenum -= 1;
|
||||||
} else {
|
} else {
|
||||||
|
//修改时间
|
||||||
$mtime = filemtime($filepath);
|
$mtime = filemtime($realfilepath);
|
||||||
$ctime = filectime($filepath);
|
//创建时间
|
||||||
|
$ctime = filectime($realfilepath);
|
||||||
//获取文件后缀
|
//获取文件后缀
|
||||||
$ext = substr(strrchr($filepath, '.'), 1);
|
$ext = substr(strrchr($realfilepath, '.'), 1);
|
||||||
$ext = strtolower($ext);
|
$ext = strtolower($ext);
|
||||||
//获取文件类型
|
//获取文件类型
|
||||||
$type = getTypeByExt($ext);
|
$type = getTypeByExt($ext);
|
||||||
//获取文件大小
|
//获取文件大小
|
||||||
$size = filesize($filepath);
|
$size = filesize($realfilepath);
|
||||||
//获取图片信息,以取得宽高
|
//获取图片信息,以取得宽高
|
||||||
$imginfo = @getimagesize($filepath);
|
$imginfo = @getimagesize($realfilepath);
|
||||||
//保存路径,用于之后获取文件使用
|
//保存路径,用于之后获取文件使用
|
||||||
$savepath = str_replace(array('/', './', '\\'), '/', $filearr[0]);
|
$savepath = str_replace(array('/', './', '\\'), '/', $filearr[0]);
|
||||||
$savepath = str_replace($this->path . '/', '', $savepath);
|
$savepath = str_replace($this->path . '/', '', $savepath);
|
||||||
@@ -321,7 +330,17 @@ class localexport
|
|||||||
return array('success' => true);
|
return array('success' => true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//生成rid
|
||||||
|
public function createRid(){
|
||||||
|
|
||||||
|
//订单年月
|
||||||
|
$ridmd = strtoupper(dechex(date('m'))) . date('d');
|
||||||
|
//订单时间戳
|
||||||
|
$ridms = substr(time(), -5) . substr(microtime(), 2, 5);
|
||||||
|
//订单号
|
||||||
|
$rid = md5($ridmd.$ridms. sprintf('%02d', rand(0, 99)).$this->appid);
|
||||||
|
return $rid;
|
||||||
|
}
|
||||||
//根据路径创建目录
|
//根据路径创建目录
|
||||||
public function createfolerbypath($path, $pfid = '')
|
public function createfolerbypath($path, $pfid = '')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,6 +26,29 @@ html,body,#dzzoffice{
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
.bs-main-container{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.pic-container{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
}
|
||||||
|
.pic-container .pic-container-scroll{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
padding-top: 46px;
|
||||||
|
}
|
||||||
|
.pic-container .img-container{
|
||||||
|
min-height: 100% ;
|
||||||
|
position: relative;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
input::-webkit-input-placeholder { /* WebKit, Blink, Edge */
|
input::-webkit-input-placeholder { /* WebKit, Blink, Edge */
|
||||||
color : var(--tip-color);
|
color : var(--tip-color);
|
||||||
}
|
}
|
||||||
@@ -45,10 +68,83 @@ input:-ms-input-placeholder { /* Internet Explorer 10-11 */
|
|||||||
input::-ms-input-placeholder { /* Microsoft Edge */
|
input::-ms-input-placeholder { /* Microsoft Edge */
|
||||||
color : var(--tip-color);
|
color : var(--tip-color);
|
||||||
}
|
}
|
||||||
|
[v-cloak] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-popup{
|
||||||
|
background: var(--bg-content) !important;
|
||||||
|
}
|
||||||
|
.van-action-sheet__cancel, .van-action-sheet__item{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.van-action-sheet__gap,
|
||||||
|
.van-action-sheet__cancel:active,
|
||||||
|
.van-action-sheet__item:active{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
}
|
||||||
|
.van-action-sheet__cancel{
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
.custom-image.van-empty{
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
top: 0;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
.img-circle{
|
||||||
|
width: 2.1875rem;
|
||||||
|
height: 2.1875rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.Topcarousel{
|
||||||
|
border-radius: 50%;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1rem;
|
||||||
|
width: 2.1875rem;
|
||||||
|
height: 2.1875rem;
|
||||||
|
line-height: 2.1875rem;
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
#dzzoffice{
|
||||||
|
position: relative;
|
||||||
|
background: var(--bg-content);
|
||||||
|
}
|
||||||
|
.pic-logo{
|
||||||
|
height: 40px;
|
||||||
|
padding: 5px 0;
|
||||||
|
}
|
||||||
|
.pic-logo .h-left{
|
||||||
|
height: 30px;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: var(--header-text);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.pic-logo .h-left img{
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.van-nav-bar__title{
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
.van-nav-bar__content{
|
.van-nav-bar__content{
|
||||||
/* 46px */
|
/* 46px */
|
||||||
height: 46px;
|
height: 46px;
|
||||||
}
|
}
|
||||||
|
.van-nav-bar .van-icon{
|
||||||
|
color: var(--content-textHover);
|
||||||
|
}
|
||||||
|
.van-nav-bar__content .van-nav-bar__text{
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
.van-popup.van-notify.van-notify--warning{
|
.van-popup.van-notify.van-notify--warning{
|
||||||
background-color: #ff976a;
|
background-color: #ff976a;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -169,7 +265,9 @@ ul{
|
|||||||
.van-cell::after{
|
.van-cell::after{
|
||||||
border-color: var(--border-color-base);
|
border-color: var(--border-color-base);
|
||||||
}
|
}
|
||||||
|
.van-cell--clickable:active{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
}
|
||||||
.van-search{
|
.van-search{
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
@@ -189,6 +287,9 @@ ul{
|
|||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: var(--header-text);
|
color: var(--header-text);
|
||||||
}
|
}
|
||||||
|
.van-sidebar-item.van-sidebar-item--disabled{
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
.van-sidebar-item--select{
|
.van-sidebar-item--select{
|
||||||
color: var(--header-active);
|
color: var(--header-active);
|
||||||
}
|
}
|
||||||
@@ -267,4 +368,173 @@ ul{
|
|||||||
to {
|
to {
|
||||||
transform: rotate(359deg)
|
transform: rotate(359deg)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
.van-cell-group{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.about-popup,
|
||||||
|
.my-popup{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: var(--bg-content);
|
||||||
|
color: var(--content-textHover);
|
||||||
|
overflow: hidden;
|
||||||
|
padding-top: 46px;
|
||||||
|
}
|
||||||
|
.about-popup .van-nav-bar,
|
||||||
|
.my-popup .van-nav-bar{
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.about-popup .scroll-box,
|
||||||
|
.my-popup .scroll-box{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
padding-top: 0.9375rem;
|
||||||
|
}
|
||||||
|
.my-popup .scroll-box .van-cell-group{
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.my-popup .scroll-box .van-cell {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.my-popup .scroll-box .van-cell::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.my-popup .scroll-box .van-cell .van-cell__right-icon{
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
|
||||||
|
.about-popup .aboutlogo{
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 3.125rem;
|
||||||
|
padding-bottom: 1.875rem;
|
||||||
|
}
|
||||||
|
.about-popup .aboutmessage{
|
||||||
|
padding: 0 2.1875rem;
|
||||||
|
}
|
||||||
|
.about-popup .aboutmessage .aboutlist{
|
||||||
|
margin-bottom: 1.25rem;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
.about-popup .aboutmessage .aboutlist .title{
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.about-popup .aboutmessage .aboutlist .address{
|
||||||
|
color: var(--color-primary);
|
||||||
|
font-size: 1rem;
|
||||||
|
vertical-align: sub;
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.about-popup .aboutmessage{
|
||||||
|
padding: 0 6.25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pic-toolbar{
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
padding: 0 8%;
|
||||||
|
transition: all .3s;
|
||||||
|
transition:all .3s;
|
||||||
|
-moz-transition:all .3s; /* Firefox 4 */
|
||||||
|
-webkit-transition:all .3s; /* Safari and Chrome */
|
||||||
|
-o-transition:all .3s; /* Opera */
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
.pic-toolbar.footershow{
|
||||||
|
bottom: 3%;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
.pic-toolbar.footerhide{
|
||||||
|
bottom: -2.9375rem;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
.pic-toolbar .tabbar{
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
border-radius: 39px;
|
||||||
|
background: var(--bg-poper);
|
||||||
|
padding: 0.375rem 0;
|
||||||
|
color: var(--header-text);
|
||||||
|
/* box-shadow: 0px 0px 5px 1px var(--bg-poperHover); */
|
||||||
|
}
|
||||||
|
.pic-toolbar .tab-item{
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex: 1;
|
||||||
|
flex: 1;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.pic-toolbar .tab-item .icon{
|
||||||
|
font-size: var(--font-32);
|
||||||
|
}
|
||||||
|
.pic-toolbar .tab-item img{
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 2.1875rem;
|
||||||
|
height: 2.1875rem;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-popup{
|
||||||
|
overflow: unset;
|
||||||
|
}
|
||||||
|
.van-popup .vam-popup-title{
|
||||||
|
height: 40px;
|
||||||
|
font-weight: 700;
|
||||||
|
position: absolute;
|
||||||
|
top: -40px;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 12px;
|
||||||
|
font-size: 18px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.footer-popup{
|
||||||
|
padding-bottom: 70px;
|
||||||
|
}
|
||||||
|
.footer-popup .btn-bottom{
|
||||||
|
padding: 10px;
|
||||||
|
height: 70px;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.footer-popup .btn-bottom .van-button{
|
||||||
|
width: auto;
|
||||||
|
padding: 15px 20px;
|
||||||
|
}
|
||||||
|
.footer-popup .popup-search-input .van-field__right-icon{
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.footer-popup .popup-search-input .van-field__right-icon .van-icon{
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: var(--header-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-popup .van-search-box{
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.footer-popup .van-search-box .van-field{
|
||||||
|
border: 0;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
.van-notify--success {
|
||||||
|
background-color: #07c160;
|
||||||
|
}
|
||||||
|
.van-notify--danger {
|
||||||
|
background-color: #ee0a24;
|
||||||
|
}
|
||||||
|
.van-notify--warning {
|
||||||
|
background-color: #ff976a;
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
[v-cloak] {
|
[v-cloak] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#dzzoffice {
|
#dzzoffice {
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
}
|
}
|
||||||
.detail-popup {
|
.detail-popup {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding-top: 46px;
|
padding-top: 46px;
|
||||||
padding-bottom: 60px;
|
padding-bottom: 60px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
color: var(--content-textHover);
|
color: var(--content-textHover);
|
||||||
}
|
}
|
||||||
.detail-popup.full{
|
.detail-popup.full{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background: #000000;
|
background: #000000;
|
||||||
}
|
}
|
||||||
.detail-popup.NotFooter{
|
.detail-popup.NotFooter{
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
.header-top {
|
.header-top {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -33,256 +33,252 @@
|
|||||||
-webkit-transition: all .3s;
|
-webkit-transition: all .3s;
|
||||||
-o-transition: all .3s;
|
-o-transition: all .3s;
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
}
|
}
|
||||||
.detail-popup.full .header-top{
|
.detail-popup.full .header-top{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.van-nav-bar .van-nav-bar__title,
|
|
||||||
.van-nav-bar .van-icon {
|
.detail-popup .detail-popup-translate{
|
||||||
color: var(--content-textHover);
|
position: relative;
|
||||||
}
|
height: 100%;
|
||||||
|
}
|
||||||
.detail-popup .detail-popup-translate{
|
|
||||||
position: relative;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.detail-popup .detail-popup-content {
|
.detail-popup .detail-popup-content {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
color: var(--content-textHover);
|
color: var(--content-textHover);
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content.opacity {
|
.detail-popup .detail-popup-content.opacity {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content.prev {
|
.detail-popup .detail-popup-content.prev {
|
||||||
right: 100%;
|
right: 100%;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content.next {
|
.detail-popup .detail-popup-content.next {
|
||||||
left: 100%;
|
left: 100%;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .detail-popup-img {
|
.detail-popup .detail-popup-content .detail-popup-img {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .video-box{
|
.detail-popup .detail-popup-content .video-box{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .img-box {
|
.detail-popup .detail-popup-content .img-box {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .image-viewer__img {
|
.detail-popup .detail-popup-content .image-viewer__img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
transform-origin: 0 0;
|
transform-origin: 0 0;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-popup .detail-popup-content .image-viewer__img {
|
.detail-popup .detail-popup-content .image-viewer__img {
|
||||||
-webkit-user-drag: none;
|
-webkit-user-drag: none;
|
||||||
-moz-user-drag: none;
|
-moz-user-drag: none;
|
||||||
-ms-user-drag: none;
|
-ms-user-drag: none;
|
||||||
user-drag: none;
|
user-drag: none;
|
||||||
}
|
}
|
||||||
.pinch-zoom-container{
|
.pinch-zoom-container{
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
height: 100% !important;
|
height: 100% !important;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .image-viewer__img.opacity{
|
.detail-popup .detail-popup-content .image-viewer__img.opacity{
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
.detail-popup .detail-popup-content .image-viewer__img.thumbnail{
|
.detail-popup .detail-popup-content .image-viewer__img.thumbnail{
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
}
|
}
|
||||||
.detail-popup .footer-tabbar{
|
.detail-popup .footer-tabbar{
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
line-height: 60px;
|
line-height: 60px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 1.75rem;
|
font-size: 1.75rem;
|
||||||
/* border-top: 1px solid var(--border-color-base); */
|
/* border-top: 1px solid var(--border-color-base); */
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -webkit-flex;
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
z-index: 10000;
|
z-index: 10000;
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
}
|
}
|
||||||
.detail-popup.full .footer-tabbar{
|
.detail-popup.full .footer-tabbar{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.detail-popup .footer-tabbar .footer-tabbar-item {
|
.detail-popup .footer-tabbar .footer-tabbar-item {
|
||||||
-webkit-box-flex: 1;
|
-webkit-box-flex: 1;
|
||||||
-webkit-flex: 1;
|
-webkit-flex: 1;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.detail-popup-message{
|
.detail-popup-message{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: var(--content-textHover);
|
color: var(--content-textHover);
|
||||||
padding-bottom: 60px;
|
padding-bottom: 60px;
|
||||||
}
|
}
|
||||||
.detail-popup-message.noPadding{
|
.detail-popup-message.noPadding{
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-popup-message .DetailPopup-content{
|
.detail-popup-message .DetailPopup-content{
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.detail-popup-message .name{
|
.detail-popup-message .name{
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 16px 0;
|
padding: 16px 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block{
|
.detail-popup-message .block{
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .title{
|
.detail-popup-message .block .title{
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
margin-bottom: 0.625rem;
|
margin-bottom: 0.625rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.colors{
|
.detail-popup-message .block .block-item.colors{
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -webkit-flex;
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-left: -0.1875rem;
|
margin-left: -0.1875rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.colors .colors{
|
.detail-popup-message .block .block-item.colors .colors{
|
||||||
-webkit-box-flex: 1;
|
-webkit-box-flex: 1;
|
||||||
-webkit-flex: 1;
|
-webkit-flex: 1;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding-left: 0.1875rem;
|
padding-left: 0.1875rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.colors .colors>div{
|
.detail-popup-message .block .block-item.colors .colors>div{
|
||||||
position: relative;
|
position: relative;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
border: 1px solid var(--border-color-base);
|
border: 1px solid var(--border-color-base);
|
||||||
}
|
}
|
||||||
@media screen and (max-width: 768px) {
|
@media screen and (max-width: 768px) {
|
||||||
.detail-popup-message .name{
|
.detail-popup-message .name{
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .title{
|
.detail-popup-message .block .title{
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.colors .colors>div{
|
.detail-popup-message .block .block-item.colors .colors>div{
|
||||||
height: 1.5625rem;
|
height: 1.5625rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.tag .tag{
|
.detail-popup-message .block .block-item.tag .tag{
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
padding:0 0.5rem;
|
padding:0 0.5rem;
|
||||||
|
height: 1.875rem;
|
||||||
|
line-height: 1.875rem;
|
||||||
|
}
|
||||||
|
.detail-popup-message .block .block-item.link{
|
||||||
|
font-size: 0.875rem;
|
||||||
|
height: 1.25rem;
|
||||||
|
line-height: 1.25rem;
|
||||||
|
}
|
||||||
|
.detail-popup-message .block .block-item.link i{
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
.detail-popup-message .block .block-item .basic{
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.detail-popup-message .name{
|
||||||
|
font-size:1.25rem;
|
||||||
|
}
|
||||||
|
.detail-popup-message .block .title{
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
.detail-popup-message .block .block-item.colors .colors>div{
|
||||||
height: 1.875rem;
|
height: 1.875rem;
|
||||||
line-height: 1.875rem;
|
}
|
||||||
}
|
.detail-popup-message .block .block-item.tag .tag{
|
||||||
.detail-popup-message .block .block-item.link{
|
font-size: 1rem;
|
||||||
font-size: 0.875rem;
|
padding:0 0.625rem;
|
||||||
height: 1.25rem;
|
height: 2.5rem;
|
||||||
line-height: 1.25rem;
|
line-height:2.5rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.link i{
|
.detail-popup-message .block .block-item.link{
|
||||||
font-size: 1.125rem;
|
font-size: 1rem;
|
||||||
}
|
height: 1.875rem;
|
||||||
.detail-popup-message .block .block-item .basic{
|
line-height:1.875rem;
|
||||||
font-size: 0.875rem;
|
}
|
||||||
}
|
.detail-popup-message .block .block-item.link i{
|
||||||
|
font-size: 1.75rem;
|
||||||
}
|
}
|
||||||
@media screen and (min-width: 768px) {
|
.detail-popup-message .block .block-item .basic{
|
||||||
.detail-popup-message .name{
|
font-size: 1rem;
|
||||||
font-size:1.25rem;
|
}
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .title{
|
.detail-popup-message .block .block-item.tag{
|
||||||
font-size: 1.125rem;
|
overflow: hidden;
|
||||||
}
|
margin-left: -0.625rem;
|
||||||
.detail-popup-message .block .block-item.colors .colors>div{
|
}
|
||||||
height: 1.875rem;
|
.detail-popup-message .block .block-item.tag .tag{
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item.tag .tag{
|
|
||||||
font-size: 1rem;
|
|
||||||
padding:0 0.625rem;
|
|
||||||
height: 2.5rem;
|
|
||||||
line-height:2.5rem;
|
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item.link{
|
|
||||||
font-size: 1rem;
|
|
||||||
height: 1.875rem;
|
|
||||||
line-height:1.875rem;
|
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item.link i{
|
|
||||||
font-size: 1.75rem;
|
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item .basic{
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item.tag{
|
|
||||||
overflow: hidden;
|
|
||||||
margin-left: -0.625rem;
|
|
||||||
}
|
|
||||||
.detail-popup-message .block .block-item.tag .tag{
|
|
||||||
float: left;
|
float: left;
|
||||||
min-width: 2.8125rem;
|
min-width: 2.8125rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border: 1px solid var(--border-color-base);
|
border: 1px solid var(--border-color-base);
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
margin-left: 0.625rem;
|
margin-left: 0.625rem;
|
||||||
color: var(--content-text);
|
color: var(--content-text);
|
||||||
margin-bottom: 0.3125rem;
|
margin-bottom: 0.3125rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.link{
|
.detail-popup-message .block .block-item.link{
|
||||||
color: var(--content-text);
|
color: var(--content-text);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-right: 1.5625rem;
|
padding-right: 1.5625rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item.link i{
|
.detail-popup-message .block .block-item.link i{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item .basic{
|
.detail-popup-message .block .block-item .basic{
|
||||||
color: var(--content-text);
|
color: var(--content-text);
|
||||||
margin-bottom: 0.625rem;
|
margin-bottom: 0.625rem;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item .basic .record{
|
.detail-popup-message .block .block-item .basic .record{
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item .basic .record .star{
|
.detail-popup-message .block .block-item .basic .record .star{
|
||||||
color: var(--stars);
|
color: var(--stars);
|
||||||
}
|
}
|
||||||
.detail-popup-message .block .block-item .basic .record .star.active{
|
.detail-popup-message .block .block-item .basic .record .star.active{
|
||||||
color: var(--starsActive);
|
color: var(--starsActive);
|
||||||
}
|
}
|
||||||
342
dzz/pichome/css/mobile/image.css
Normal file
342
dzz/pichome/css/mobile/image.css
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
#imgContainer .imgitem .imgchecked{
|
||||||
|
z-index: 5;
|
||||||
|
position: absolute;
|
||||||
|
left: 5%;
|
||||||
|
top: 3%;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgchecked .van-checkbox__icon{
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgchecked .van-checkbox__icon .van-icon{
|
||||||
|
font-size: 20px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgchecked .van-checkbox__icon.van-checkbox__icon--checked .van-icon{
|
||||||
|
background-color: var(--color-primary);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message{
|
||||||
|
text-align: center;
|
||||||
|
color: var(--content-text);
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: 65px;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .name {
|
||||||
|
max-height: 45px;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .name .text{
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
margin-top: 10px;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .name .circulars{
|
||||||
|
color: var(--content-text);
|
||||||
|
font-size: 16px;
|
||||||
|
min-width: 45px;
|
||||||
|
height: 35px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 35px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .other {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
height: 21px;
|
||||||
|
padding-top: 5px;
|
||||||
|
color: var(--content-textMessage);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .other .score{
|
||||||
|
color: var(--stars);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .bottom-img-message .other .score.active{
|
||||||
|
color: var(--starsActive);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .annotation{
|
||||||
|
position: absolute;
|
||||||
|
right: 5px;
|
||||||
|
top: 5px;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
border: 2px solid #FFFFFF;
|
||||||
|
border-radius: 50%;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 20px;
|
||||||
|
background: var(--color-primary);
|
||||||
|
}
|
||||||
|
#imgContainer{
|
||||||
|
position: relative;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem{
|
||||||
|
position: absolute;
|
||||||
|
/* transition:all .2s; */
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox {
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-right: 4px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: zoom-in;
|
||||||
|
/* min-height: 120px; */
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border.radius{
|
||||||
|
border-radius: 18px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .bck{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: none;
|
||||||
|
background: var(--bg-poper);
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
border-radius: 18px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .img.opacity{
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box{
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box .circular-item{
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
border-radius: 50%;
|
||||||
|
color: #333;
|
||||||
|
z-index: 100;
|
||||||
|
font-size: 21px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 45px;
|
||||||
|
background: #ffffff;
|
||||||
|
position: absolute;
|
||||||
|
transition: top .3s ease-in-out,left .3s ease-in-out;
|
||||||
|
/* transition: all .3s ease-in-out; */
|
||||||
|
top: -22.5px;
|
||||||
|
left: -22.5px;
|
||||||
|
transform-origin: 0px;
|
||||||
|
/* transition-delay: 0.02s; */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed{
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .bck{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .img{
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
max-width: inherit;
|
||||||
|
max-height: inherit;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .round{
|
||||||
|
position: absolute;
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: transparent;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
border: 3px solid var(--bg-poper);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box{
|
||||||
|
position: absolute;
|
||||||
|
left: -67.5px;
|
||||||
|
top: -67.5px;
|
||||||
|
border: 90px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.first{
|
||||||
|
top: -22.5px;
|
||||||
|
left: -22.5px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.two{
|
||||||
|
top: 0px;
|
||||||
|
left: -80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.three{
|
||||||
|
top: -22.5px;
|
||||||
|
left: -138.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box .icon{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.first{
|
||||||
|
transform: rotate(0deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two{
|
||||||
|
transform: rotate(45deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two .icon{
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three{
|
||||||
|
transform: rotate(90deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three .icon{
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.first{
|
||||||
|
top: -80.5px;
|
||||||
|
left: 1px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.two{
|
||||||
|
top: -22.5px;
|
||||||
|
left: -22.5px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.three{
|
||||||
|
top: 0px;
|
||||||
|
left: -80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first{
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first .icon{
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two{
|
||||||
|
transform: rotate(0deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two .icon{
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three{
|
||||||
|
transform: rotate(45deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three .icon{
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.first{
|
||||||
|
top: 0px;
|
||||||
|
left: -80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.two{
|
||||||
|
top: -22.5px;
|
||||||
|
left: -136.5px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.three{
|
||||||
|
left: -160px;
|
||||||
|
top: -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first{
|
||||||
|
transform: rotate(45deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first .icon{
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two{
|
||||||
|
transform: rotate(90deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two .icon{
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three{
|
||||||
|
transform: rotate(135deg);
|
||||||
|
top: -80px;
|
||||||
|
left: -80px;
|
||||||
|
transform-origin: 80px 80px;
|
||||||
|
}
|
||||||
|
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three .icon{
|
||||||
|
transform: rotate(-135deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.#imgContainer .imgitem {
|
||||||
|
width: 33.3333%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 992px) {
|
||||||
|
.#imgContainer .imgitem {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1024px) {
|
||||||
|
.#imgContainer .imgitem {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
289
dzz/pichome/css/mobile/screen.css
Normal file
289
dzz/pichome/css/mobile/screen.css
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
.notScreen{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.notScreen>div{
|
||||||
|
height: 80px;
|
||||||
|
text-align: center;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
font-size: var(--font-14);
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
.notScreen>div img{
|
||||||
|
width: 3.125rem;
|
||||||
|
height: 3.125rem;
|
||||||
|
}
|
||||||
|
.sort-popup .van-popup__close-icon--top-right,
|
||||||
|
.screen-popup .van-popup__close-icon--top-right {
|
||||||
|
top: 10px;
|
||||||
|
right: 10px;
|
||||||
|
}
|
||||||
|
/* .sort-popup .van-tree-select{
|
||||||
|
height: calc(100% - 41px) !important;
|
||||||
|
height: -moz-calc(100% - 41px) !important;
|
||||||
|
height: -webkit-calc(100% - 41px) !important;
|
||||||
|
} */
|
||||||
|
.screen-popup .van-tree-select{
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select .van-sidebar{
|
||||||
|
width: 6rem;
|
||||||
|
-webkit-box-flex: initial;
|
||||||
|
-webkit-flex: initial;
|
||||||
|
flex: initial;
|
||||||
|
}
|
||||||
|
.sort-popup .van-tree-select__content,
|
||||||
|
.screen-popup .van-tree-select__content{
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item-box{
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-top: 56px;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item .screen-item-option-box{
|
||||||
|
padding: 0px 8px;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option{
|
||||||
|
padding: 10px 16px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option.active{
|
||||||
|
background: var(--bg-poperHover);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item{
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 0px 10px;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .swip-row{
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
border-radius: 18px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .swip-row .swip{
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: var(--bg-input);
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .swip-row .swip.active{
|
||||||
|
background: var(--color-primary);
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag{
|
||||||
|
margin-bottom: 6px;
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag.active{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
}
|
||||||
|
.sort-popup .van-tree-select__content .screen-item .van-cell-group,
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .van-cell-group{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.sort-popup .van-tree-select__content .screen-item .van-cell-group .van-cell,
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .van-cell-group .van-cell{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-calendar__day--end, .van-calendar__day--multiple-middle, .van-calendar__day--multiple-selected, .van-calendar__day--start, .van-calendar__day--start-end{
|
||||||
|
background-color: var(--color-primary);
|
||||||
|
}
|
||||||
|
.screen-popup .van-hairline--top-bottom::after, .screen-popup .van-hairline-unset--top-bottom::after {
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
.sort-popup .van-hairline--top-bottom::after, .sort-popup .van-hairline-unset--top-bottom::after {
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick{
|
||||||
|
overflow: hidden;
|
||||||
|
/* margin-left: -10px; */
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list-box{
|
||||||
|
width: 20%;
|
||||||
|
margin-bottom: 0.1875rem;
|
||||||
|
padding: 0 0.1875rem;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list{
|
||||||
|
/* float: left;
|
||||||
|
height: calc(20% / 2);
|
||||||
|
width: 20%;
|
||||||
|
height: 2.5rem;
|
||||||
|
width: 2.5rem;
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-bottom: 0.625rem;
|
||||||
|
margin-left: 0.625rem;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
position: relative; */
|
||||||
|
height: 0;
|
||||||
|
padding: 25% 0;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
|
||||||
|
position: absolute;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin: auto;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
|
||||||
|
font-size: 18px;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
|
||||||
|
font-size: 30px;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input{
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 0.9375rem;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field{
|
||||||
|
/* padding: 0; */
|
||||||
|
/* height: 35px; */
|
||||||
|
padding-left: 35px;
|
||||||
|
/* height: 35px; */
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show{
|
||||||
|
position: absolute;
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 8px;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show.border{
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button{
|
||||||
|
padding-left: 8px;
|
||||||
|
line-height: 35px;
|
||||||
|
padding-right: 8px;
|
||||||
|
border-left: 1px solid var(--border-color-base);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button img{
|
||||||
|
vertical-align: sub;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .screen-item .color-box .color-slider{
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 15px 0;
|
||||||
|
}
|
||||||
|
.screen-popup .van-calendar__popup .van-button--danger{
|
||||||
|
background-color: var(--color-primary);
|
||||||
|
border-color: var(--color-primary);
|
||||||
|
}
|
||||||
|
.screen-popup .van-calendar__popup .van-calendar__month-mark{
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs{
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs--line .van-tabs__wrap{
|
||||||
|
/* border-bottom: 1px solid var(--slider-line); */
|
||||||
|
padding-right: 8px;
|
||||||
|
padding-left: 8px;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content{
|
||||||
|
height: calc(100% - 44px);
|
||||||
|
height: -moz-calc(100% - 44px);
|
||||||
|
height: -webkit-calc(100% - 44px);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content .van-tab__pane{
|
||||||
|
height: 100%;
|
||||||
|
padding-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs__nav{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab{
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab.van-tab--active{
|
||||||
|
color: var(--header-active);
|
||||||
|
}
|
||||||
|
.screen-popup .van-tree-select__content .van-cell .num{
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
.sort-popup .van-tree-select__content .van-cell::after,
|
||||||
|
.screen-popup .van-tree-select__content .van-cell::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screen-popup .screen-classify-collapse .van-cell{
|
||||||
|
background-color: transparent;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.screen-popup .screen-classify-collapse .van-collapse-item.active>.van-cell{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
border-radius: 999px;
|
||||||
|
}
|
||||||
|
.screen-popup .screen-classify-collapse .van-hairline--top-bottom::after,
|
||||||
|
.screen-popup .screen-classify-collapse .van-collapse-item--border::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.screen-popup .screen-classify-collapse .van-collapse-item__content{
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 0;
|
||||||
|
padding-left: 1rem;
|
||||||
|
}
|
||||||
|
.screen-popup .screen-classify-collapse .van-cell__value{
|
||||||
|
flex: none;
|
||||||
|
}
|
||||||
|
.van-calendar__day--middle{
|
||||||
|
color: var(--header-active);
|
||||||
|
}
|
||||||
|
.van-calendar__day--start{
|
||||||
|
border-radius: 16px 0 0 16px;
|
||||||
|
}
|
||||||
|
.van-calendar__day--end{
|
||||||
|
border-radius: 0 16px 16px 0;
|
||||||
|
}
|
||||||
|
.screen-cell-input{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.screen-cell-input::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.screen-cell-input .van-field{
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
108
dzz/pichome/css/pc/AddcollectionDialog.css
Normal file
108
dzz/pichome/css/pc/AddcollectionDialog.css
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
.collection-dialog{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content{
|
||||||
|
width: 360px;
|
||||||
|
height: 460px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .header{
|
||||||
|
padding: 12px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content{
|
||||||
|
padding: 12px 0;
|
||||||
|
height: 358px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .el-tree-node__content{
|
||||||
|
height: 64px;
|
||||||
|
padding-right: 8px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .el-tree-node__content .el-tree-node__expand-icon{
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node{
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 55px;
|
||||||
|
height: 100%;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collection-dialog-content .content .custom-tree-node .img{
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 3px;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .img img{
|
||||||
|
object-fit: cover;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .name{
|
||||||
|
width: 100%;
|
||||||
|
padding-right: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .btn{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node:hover .btn{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar{
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar>li{
|
||||||
|
margin-left: -8px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar>li:first-child{
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar .img-circle{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
vertical-align: text-top;
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node:hover .avatar{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer{
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
font-size: 18px;
|
||||||
|
border-top: 1px solid var(--border-color-base);
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer:hover{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer i{
|
||||||
|
font-size: 23px;
|
||||||
|
margin-right: 8px;
|
||||||
|
color: var(--starsActive);
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
@@ -31,6 +31,26 @@ body,
|
|||||||
body{
|
body{
|
||||||
background-color: var(--bg-content);
|
background-color: var(--bg-content);
|
||||||
}
|
}
|
||||||
|
.el-page-header__left{
|
||||||
|
z-index: 100;
|
||||||
|
color: var(--header-text);
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
.el-page-header__left:hover{
|
||||||
|
color: var(--header-active);
|
||||||
|
}
|
||||||
|
.el-page-header__left .el-icon-back{
|
||||||
|
font-size: 21px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.el-page-header__left .el-page-header__title{
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.el-page-header__left::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
.tipTxt{
|
.tipTxt{
|
||||||
color: var(--tip-color);
|
color: var(--tip-color);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@@ -120,6 +140,9 @@ body{
|
|||||||
.el-progress-bar__outer{
|
.el-progress-bar__outer{
|
||||||
background-color: var(--bg-input);
|
background-color: var(--bg-input);
|
||||||
}
|
}
|
||||||
|
.el-dropdown-menu{
|
||||||
|
min-width: 165px;
|
||||||
|
}
|
||||||
.el-dropdown-menu__item--divided{
|
.el-dropdown-menu__item--divided{
|
||||||
border-color: var(--border-color-base);
|
border-color: var(--border-color-base);
|
||||||
}
|
}
|
||||||
@@ -302,9 +325,15 @@ body{
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
.page-component__scroll>.el-scrollbar__wrap {
|
.el-scrollbar__wrap {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
#copyInput{
|
||||||
|
opacity: 0;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
.Topcarousel{
|
.Topcarousel{
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -314,17 +343,27 @@ body{
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
}
|
}
|
||||||
#copyInput{
|
|
||||||
opacity: 0;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
.img-circle{
|
.img-circle{
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.img-circle,.Topcarousel{
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
.small .img-circle,.small .Topcarousel{
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
line-height: 35px;
|
||||||
|
}
|
||||||
|
.mini .img-circle,.mini .Topcarousel{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
.hide{
|
.hide{
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
@@ -414,7 +453,7 @@ ul{
|
|||||||
justify-content: left;
|
justify-content: left;
|
||||||
background: var(--bg-header);
|
background: var(--bg-header);
|
||||||
margin-left: -20px;
|
margin-left: -20px;
|
||||||
|
min-width: 150px;
|
||||||
}
|
}
|
||||||
#top_header .header-content .h-left>a{
|
#top_header .header-content .h-left>a{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -422,6 +461,7 @@ ul{
|
|||||||
padding-left: 41px;
|
padding-left: 41px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container2 #top_header .header-content .h-left>a{
|
.container2 #top_header .header-content .h-left>a{
|
||||||
width: calc(100% - 45px);
|
width: calc(100% - 45px);
|
||||||
}
|
}
|
||||||
|
|||||||
33
dzz/pichome/css/pc/components/addcollect.css
Normal file
33
dzz/pichome/css/pc/components/addcollect.css
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
.addcollection-dialog .el-checkbox{
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 50px;
|
||||||
|
margin: 0;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.addcollection-dialog .el-checkbox .el-checkbox__input{
|
||||||
|
float: right;
|
||||||
|
line-height: 50px;
|
||||||
|
}
|
||||||
|
.addcollection-dialog .el-checkbox .el-checkbox__label{
|
||||||
|
float: left;
|
||||||
|
line-height: 50px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.addcollection-dialog .el-checkbox .el-checkbox__label .img-circle{
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin-top: 9px;
|
||||||
|
vertical-align: top;
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
|
.addcollection-dialog .el-checkbox .el-checkbox__label .Topcarousel{
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin-top: 9px;
|
||||||
|
margin-right: 6px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 32px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
132
dzz/pichome/css/pc/components/collect.css
Normal file
132
dzz/pichome/css/pc/components/collect.css
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
.collection-dialog{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog .el-dialog__body{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog.el-dialog .collection-dialog-content{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.collection-dialog-content{
|
||||||
|
width: 360px;
|
||||||
|
height: 460px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .header{
|
||||||
|
padding: 12px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content{
|
||||||
|
padding: 12px 0;
|
||||||
|
height: 358px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content.notadd{
|
||||||
|
height: 408px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .el-tree-node__content{
|
||||||
|
height: 64px;
|
||||||
|
padding-right: 8px;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .el-tree-node__content .el-tree-node__expand-icon{
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node{
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 55px;
|
||||||
|
height: 100%;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node.notpadding{
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .img{
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
border-radius: 3px;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-bottom: auto;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background: var(--content-imgbg);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .img img{
|
||||||
|
object-fit: cover;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .name{
|
||||||
|
width: 100%;
|
||||||
|
padding-right: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .btn{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node:hover .btn{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar{
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar>li{
|
||||||
|
margin-left: -8px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar>li:first-child{
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar .img-circle{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
vertical-align: text-top;
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node .avatar .Topcarousel{
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
text-align: center;
|
||||||
|
line-height: 24px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .content .custom-tree-node:hover .avatar{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer{
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
font-size: 18px;
|
||||||
|
border-top: 1px solid var(--border-color-base);
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
color: var(--header-text);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer:hover{
|
||||||
|
background-color: var(--bg-poperHover);
|
||||||
|
color: var(--header-active);
|
||||||
|
}
|
||||||
|
.collection-dialog-content .footer i{
|
||||||
|
font-size: 23px;
|
||||||
|
margin-right: 8px;
|
||||||
|
color: var(--starsActive);
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
@@ -1,3 +1,11 @@
|
|||||||
|
#Details_Iframe{
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
#container_scroll .el-loading-mask{
|
#container_scroll .el-loading-mask{
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
@@ -21,6 +29,11 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
#container_scroll .container-not.center{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
.image-container{
|
.image-container{
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -34,12 +47,21 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside{
|
.image-container .image-wrapper .image-item .image-inside{
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single{
|
.image-container .image-wrapper .image-item .image-inside .image-single{
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--bg-content);
|
background: var(--bg-content);
|
||||||
|
border: 1px solid transparent;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item.checked .image-inside .image-single{
|
||||||
|
border: 1px solid var(--border-color-base);
|
||||||
|
border-radius: 18px;
|
||||||
|
}
|
||||||
|
.container2 .image-container .image-wrapper .image-item.checked .image-inside .image-single{
|
||||||
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single.radius{
|
.image-container .image-wrapper .image-item .image-inside .image-single.radius{
|
||||||
border-radius: 18px;
|
border-radius: 18px;
|
||||||
@@ -108,14 +130,54 @@
|
|||||||
.image-container .image-wrapper .image-item .image-inside .message{
|
.image-container .image-wrapper .image-item .image-inside .message{
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .topFlex{
|
|
||||||
|
.image-container .image-wrapper .image-item .image-inside .el-button-group{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 8px;
|
z-index: 10;
|
||||||
|
left: 12px;
|
||||||
|
top: 8px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .image-inside:hover .el-button-group{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .image-inside .el-button-group .reference{
|
||||||
|
margin-right: -1px;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
float: left;
|
||||||
|
border-left: 0;
|
||||||
|
border-top-left-radius: 18px;
|
||||||
|
border-bottom-left-radius: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group .reference{
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group.border .reference{
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: #f56c6c;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .image-inside .el-button-group .el-dropdown__caret-button{
|
||||||
|
height: 36px;
|
||||||
|
padding: 0px 3px;
|
||||||
|
border-top-right-radius: 18px;
|
||||||
|
border-bottom-right-radius: 18px;
|
||||||
|
width: 30px;
|
||||||
|
}
|
||||||
|
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group .el-dropdown__caret-button{
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .image-inside .topFlex{
|
||||||
|
position: absolute;
|
||||||
|
right: 8px;
|
||||||
top: 8px;
|
top: 8px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .circulars{
|
.image-container .image-wrapper .image-item .image-inside .circulars{
|
||||||
background-color: var(--content-imgbg-btn);
|
background-color: var(--content-imgbg-btn);
|
||||||
color: var(--content-imgbg-txt);
|
color: var(--content-imgbg-txt);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
@@ -130,17 +192,17 @@
|
|||||||
display: none;
|
display: none;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single.showoperation .circulars{
|
.image-container .image-wrapper .image-item .image-inside:hover .circulars{
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .circulars:first-child{
|
.image-container .image-wrapper .image-item .image-inside .circulars:first-child{
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .circulars:hover{
|
.image-container .image-wrapper .image-item .image-inside .circulars:hover{
|
||||||
color: var(--content-imgbg-txtHover);
|
color: var(--content-imgbg-txtHover);
|
||||||
background-color: var(--content-imgbg-btnHover);
|
background-color: var(--content-imgbg-btnHover);
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .circulars.link{
|
.image-container .image-wrapper .image-item .image-inside .circulars.link{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 8px;
|
bottom: 8px;
|
||||||
left: 8px;
|
left: 8px;
|
||||||
@@ -151,13 +213,13 @@
|
|||||||
z-index: 2;
|
z-index: 2;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .circulars.link .el-link--inner{
|
.image-container .image-wrapper .image-item .image-inside .circulars.link .el-link--inner{
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box{
|
.image-container .image-wrapper .image-item .image-inside .image-playurl .movies-box{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -181,10 +243,13 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice{
|
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
right: 46px;
|
||||||
|
top: 7px;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl.exhibit .movies-box .voice{
|
||||||
right: 8px;
|
right: 8px;
|
||||||
top: 8px;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.yes .no,
|
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.yes .no,
|
||||||
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.no .yes{
|
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.no .yes{
|
||||||
@@ -277,4 +342,55 @@
|
|||||||
}
|
}
|
||||||
.image-container .image-wrapper .image-item .image-inside .message .other .score.active{
|
.image-container .image-wrapper .image-item .image-inside .message .other .score.active{
|
||||||
color: var(--starsActive);
|
color: var(--starsActive);
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .collect-checkeds{
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 20;
|
||||||
|
display: none;
|
||||||
|
cursor: pointer;
|
||||||
|
/* border: 2px solid var(--border-color-base); */
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item.checked .collect-checkeds{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.image-container .image-wrapper .image-item .collect-checkeds .check{
|
||||||
|
position: absolute;
|
||||||
|
left: 12px;
|
||||||
|
top: 8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #000;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 24px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
#imagelayout .collects-move-btn-box{
|
||||||
|
position: fixed;
|
||||||
|
bottom: 30px;
|
||||||
|
left: 0;
|
||||||
|
z-index: 100;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#imagelayout .collects-move-btn-box .item{
|
||||||
|
width: 58px;
|
||||||
|
height: 58px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 58px;
|
||||||
|
font-size: 22px;
|
||||||
|
background: var(--header-textHover);
|
||||||
|
border-radius: 50%;
|
||||||
|
color: var(--header-text);
|
||||||
|
display: inline-block;
|
||||||
|
box-shadow: rgb(0,0,0,0.1) 0px 0px 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
#imagelayout .collects-move-btn-box .item:hover{
|
||||||
|
background: var(--header-textHover);
|
||||||
|
color: var(--header-iconHover);
|
||||||
}
|
}
|
||||||
@@ -86,9 +86,6 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
#container_scroll .el-scrollbar__wrap{
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
#container_scroll .el-scrollbar__wrap .el-scrollbar__view{
|
#container_scroll .el-scrollbar__wrap .el-scrollbar__view{
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -99,14 +96,6 @@
|
|||||||
#container_scroll .el-scrollbar__bar.is-vertical{
|
#container_scroll .el-scrollbar__bar.is-vertical{
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
#Details_Iframe{
|
|
||||||
position: fixed;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 1000;
|
|
||||||
}
|
|
||||||
.container2 .el-header{
|
.container2 .el-header{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#C9405A;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#C9405A;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#1E1E1E;/* 内容背景色 */
|
--bg-content:#1E1E1E;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(30,30,30,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#BCBCBC;/* 内容文字颜色 */
|
--content-text:#BCBCBC;/* 内容文字颜色 */
|
||||||
--content-textHover:#F4F4F4;/* 内容文字hover颜色 */
|
--content-textHover:#F4F4F4;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#161616;/* 图片背景色 */
|
--content-imgbg:#161616;/* 图片背景色 */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#C33A54;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#C33A54;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#383838;/* 内容背景色 */
|
--bg-content:#383838;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(56,56,56,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#C4C4C4;/* 内容文字颜色 */
|
--content-text:#C4C4C4;/* 内容文字颜色 */
|
||||||
--content-textHover:#F6F6F6;/* 内容文字hover颜色 */
|
--content-textHover:#F6F6F6;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#303030;/* 图片背景色 */
|
--content-imgbg:#303030;/* 图片背景色 */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#F66E88;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#F66E88;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#E2E4E5;/* 内容背景色 */
|
--bg-content:#E2E4E5;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(226,228,229,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#26292A;/* 内容文字颜色 */
|
--content-text:#26292A;/* 内容文字颜色 */
|
||||||
--content-textHover:#121516;/* 内容文字hover颜色 */
|
--content-textHover:#121516;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#FFFFFF;/* 图片背景色 */
|
--content-imgbg:#FFFFFF;/* 图片背景色 */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#CD4562;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#CD4562;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#303342;/* 内容背景色 */
|
--bg-content:#303342;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(48,51,66,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#C1C2C7;/* 内容文字颜色 */
|
--content-text:#C1C2C7;/* 内容文字颜色 */
|
||||||
--content-textHover:#F2F2F3;/* 内容文字hover颜色 */
|
--content-textHover:#F2F2F3;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#2A2C39;/* 图片背景色 */
|
--content-imgbg:#2A2C39;/* 图片背景色 */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#CE4462;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#CE4462;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#343141;/* 内容背景色 */
|
--bg-content:#343141;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(52,49,65,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#C2C2C6;/* 内容文字颜色 */
|
--content-text:#C2C2C6;/* 内容文字颜色 */
|
||||||
--content-textHover:#FFFFFF;/* 内容文字hover颜色 */
|
--content-textHover:#FFFFFF;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#2D2A38;/* 图片背景色 */
|
--content-imgbg:#2D2A38;/* 图片背景色 */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
--header-screenDel:#F46B85;/* 头部清除筛选的 × 背景色 */
|
--header-screenDel:#F46B85;/* 头部清除筛选的 × 背景色 */
|
||||||
|
|
||||||
--bg-content:#F8F8F8;/* 内容背景色 */
|
--bg-content:#F8F8F8;/* 内容背景色 */
|
||||||
|
--bg-contentopacity:rgb(248,248,248,0.6);/* 内容背景色透明 */
|
||||||
--content-text:#272727;/* 内容文字颜色 */
|
--content-text:#272727;/* 内容文字颜色 */
|
||||||
--content-textHover:#111111;/* 内容文字hover颜色 */
|
--content-textHover:#111111;/* 内容文字hover颜色 */
|
||||||
--content-imgbg:#FFFFFF;/* 图片背景色 */
|
--content-imgbg:#FFFFFF;/* 图片背景色 */
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ $attach = DB::fetch_first("select path,appid from %t where rid = %s",array('pich
|
|||||||
$librarydata = DB::fetch_first("select path,iswebsitefile from %t where appid = %s",array('pichome_vapp',$attach['appid']));
|
$librarydata = DB::fetch_first("select path,iswebsitefile from %t where appid = %s",array('pichome_vapp',$attach['appid']));
|
||||||
|
|
||||||
$attachurl = $librarydata['path'].BS.$attach['path'];
|
$attachurl = $librarydata['path'].BS.$attach['path'];
|
||||||
|
|
||||||
$d = new FileDownload();
|
$d = new FileDownload();
|
||||||
$d->download($attachurl, $resourcesdata['name'], $resourcesdata['size'], 0, true);
|
$d->download($attachurl, $resourcesdata['name'], $resourcesdata['size'], 0, true);
|
||||||
exit();
|
exit();
|
||||||
@@ -3,16 +3,16 @@
|
|||||||
if (!defined('IN_OAOOA')) {
|
if (!defined('IN_OAOOA')) {
|
||||||
exit('Access Denied');
|
exit('Access Denied');
|
||||||
}
|
}
|
||||||
|
@ignore_user_abort(true);
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
ini_set('memory_limit', -1);
|
@ini_set('memory_limit', -1);
|
||||||
@ini_set('max_execution_time', 0);
|
@ini_set('max_execution_time', 0);
|
||||||
|
|
||||||
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
|
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
|
||||||
$processname = 'DZZ_EXPORTFILE_LOCK_'.$appid;
|
$processname = 'DZZ_EXPORTFILE_LOCK_'.$appid;
|
||||||
// dzz_process::unlock($processname);
|
//dzz_process::unlock($processname);
|
||||||
$locked = true;
|
$locked = true;
|
||||||
if (!dzz_process::islocked($processname, 60*5)) {
|
if (!dzz_process::islocked($processname, 60*60*24)) {
|
||||||
$locked=false;
|
$locked=false;
|
||||||
}
|
}
|
||||||
if ($locked) {
|
if ($locked) {
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
$force = isset($_GET['force']) ? intval($_GET['force']):0;
|
$force = isset($_GET['force']) ? intval($_GET['force']):0;
|
||||||
$data = C::t('pichome_vapp')->fetch($appid);
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
if(!$data) exit(json_encode(array('error'=>'no data')));
|
if(!$data) exit(json_encode(array('error'=>'no data')));
|
||||||
if($data['state'] != 2 || $data['isdelete'] != 0) exit(json_encode(array('error'=>'is deleted or state is not allow')));
|
if($data['state'] != 2 && $data['isdelete'] != 0) exit(json_encode(array('error'=>'is deleted or state is not allow')));
|
||||||
if($data['type'] == 0){
|
if($data['type'] == 0){
|
||||||
include_once dzz_libfile('eagleexport');
|
include_once dzz_libfile('eagleexport');
|
||||||
$eagleexport = new eagleexport($data);
|
$eagleexport = new eagleexport($data);
|
||||||
@@ -38,5 +38,11 @@
|
|||||||
$return = $billfishxport->execExport();
|
$return = $billfishxport->execExport();
|
||||||
}
|
}
|
||||||
dzz_process::unlock($processname);
|
dzz_process::unlock($processname);
|
||||||
exit('success');
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
|
if($data['state'] == 2){
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}elseif($data['state'] == 3){
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}
|
||||||
|
// exit('success');
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ $appid = isset($_GET['appid']) ? trim($_GET['appid']) : 0;
|
|||||||
$processname = 'DZZ_EXPORTCHECKFILE_LOCK_' . $appid;
|
$processname = 'DZZ_EXPORTCHECKFILE_LOCK_' . $appid;
|
||||||
//dzz_process::unlock($processname);
|
//dzz_process::unlock($processname);
|
||||||
$locked = true;
|
$locked = true;
|
||||||
if (!dzz_process::islocked($processname, 60 * 5)) {
|
if (!dzz_process::islocked($processname, 60*60*24)) {
|
||||||
$locked = false;
|
$locked = false;
|
||||||
}
|
}
|
||||||
if ($locked) {
|
if ($locked) {
|
||||||
@@ -21,7 +21,7 @@ if ($locked) {
|
|||||||
$force = isset($_GET['force']) ? intval($_GET['force']) : 0;
|
$force = isset($_GET['force']) ? intval($_GET['force']) : 0;
|
||||||
$data = C::t('pichome_vapp')->fetch($appid);
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
if (!$data) exit(json_encode(array('error' => 'no data')));
|
if (!$data) exit(json_encode(array('error' => 'no data')));
|
||||||
if ($data['state'] != 3 || $data['isdelete'] != 0) exit(json_encode(array('error' => 'is deleted or state is not allow')));
|
if ($data['state'] != 3 && $data['isdelete'] != 0) exit(json_encode(array('error' => 'is deleted or state is not allow')));
|
||||||
if ($data['type'] == 0) {
|
if ($data['type'] == 0) {
|
||||||
include_once dzz_libfile('eagleexport');
|
include_once dzz_libfile('eagleexport');
|
||||||
$eagleexport = new eagleexport($data);
|
$eagleexport = new eagleexport($data);
|
||||||
@@ -36,4 +36,8 @@ if ($data['type'] == 0) {
|
|||||||
$return = $billfishxport->execCheckFile();
|
$return = $billfishxport->execCheckFile();
|
||||||
}
|
}
|
||||||
dzz_process::unlock($processname);
|
dzz_process::unlock($processname);
|
||||||
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
|
if($data['state'] == 3){
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}
|
||||||
|
|
||||||
BIN
dzz/pichome/image/flashlight.png
Normal file
BIN
dzz/pichome/image/flashlight.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 453 B |
@@ -2,9 +2,10 @@
|
|||||||
if (!defined('IN_OAOOA')) {
|
if (!defined('IN_OAOOA')) {
|
||||||
exit('Access Denied');
|
exit('Access Denied');
|
||||||
}
|
}
|
||||||
@set_time_limit(0);
|
@ignore_user_abort(true);
|
||||||
@ini_set('memory_limit', -1);
|
@set_time_limit(0);
|
||||||
@ini_set('max_execution_time', 0);
|
@ini_set('memory_limit', -1);
|
||||||
|
@ini_set('max_execution_time', 0);
|
||||||
|
|
||||||
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
|
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
|
||||||
$force = isset($_GET['force']) ? intval($_GET['force']):0;
|
$force = isset($_GET['force']) ? intval($_GET['force']):0;
|
||||||
@@ -24,5 +25,9 @@
|
|||||||
$billfishxport = new billfishxport($data);
|
$billfishxport = new billfishxport($data);
|
||||||
$return = $billfishxport->initExport();
|
$return = $billfishxport->initExport();
|
||||||
}
|
}
|
||||||
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
|
if($data['state'] == 2){
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}
|
||||||
exit(json_encode(array('success'=>true)));
|
exit(json_encode(array('success'=>true)));
|
||||||
|
|
||||||
@@ -1,76 +1,73 @@
|
|||||||
jQuery(document).ready(function() {
|
function debounce(fun, delay) {
|
||||||
|
var time;
|
||||||
|
return function(args) {
|
||||||
|
var that = this;
|
||||||
|
var _args = args;
|
||||||
|
if (time) clearTimeout(time);
|
||||||
|
time = setTimeout(function() {
|
||||||
|
fun.call(that, _args)
|
||||||
|
}, delay)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
function URLdecode(str) {
|
||||||
|
var ret = "";
|
||||||
|
for(var i=0;i<str.length;i++) {
|
||||||
|
var chr = str.charAt(i);
|
||||||
|
if(chr == "+") {
|
||||||
|
ret += " ";
|
||||||
|
}else if(chr=="%") {
|
||||||
|
var asc = str.substring(i+1,i+3);
|
||||||
|
if(parseInt("0x"+asc)>0x7f) {
|
||||||
|
ret += decodeURI("%"+ str.substring(i+1,i+9));
|
||||||
|
i += 8;
|
||||||
|
}else {
|
||||||
|
ret += String.fromCharCode(parseInt("0x"+asc));
|
||||||
|
i += 2;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
ret += chr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
});
|
function GetDateVal(type){
|
||||||
function debounce(fun, delay) {
|
var str = '';
|
||||||
var time;
|
var start = new Date();
|
||||||
return function(args) {
|
var end = new Date();
|
||||||
var that = this;
|
switch(type){
|
||||||
var _args = args;
|
case '今日':
|
||||||
if (time) clearTimeout(time);
|
break;
|
||||||
time = setTimeout(function() {
|
case '昨日':
|
||||||
fun.call(that, _args)
|
end.setTime(end.getTime() - 3600 * 1000 * 24);
|
||||||
}, delay)
|
start.setTime(start.getTime() - 3600 * 1000 * 24);
|
||||||
}
|
break;
|
||||||
};
|
case '最近7日':
|
||||||
function URLdecode(str) {
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
|
||||||
var ret = "";
|
break;
|
||||||
for(var i=0;i<str.length;i++) {
|
case '最近30日':
|
||||||
var chr = str.charAt(i);
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 29);
|
||||||
if(chr == "+") {
|
break;
|
||||||
ret += " ";
|
case '最近90日':
|
||||||
}else if(chr=="%") {
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 89);
|
||||||
var asc = str.substring(i+1,i+3);
|
break;
|
||||||
if(parseInt("0x"+asc)>0x7f) {
|
case '最近365日':
|
||||||
ret += decodeURI("%"+ str.substring(i+1,i+9));
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 364);
|
||||||
i += 8;
|
break;
|
||||||
}else {
|
}
|
||||||
ret += String.fromCharCode(parseInt("0x"+asc));
|
str = start.getFullYear()+'-'+(start.getMonth()+1)+'-'+start.getDate()+'_'+end.getFullYear()+'-'+(end.getMonth()+1)+'-'+end.getDate();
|
||||||
i += 2;
|
return str;
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
ret += chr;
|
function CopyTxt(item,text){
|
||||||
}
|
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
|
||||||
}
|
input.setAttribute('value', text);
|
||||||
return ret;
|
document.getElementsByTagName('body')[0].appendChild(input);
|
||||||
};
|
document.getElementById('copyInput').select();
|
||||||
|
document.execCommand('copy')
|
||||||
function GetDateVal(type){
|
item.$message({
|
||||||
var str = '';
|
message: '成功复制到剪切板',
|
||||||
var start = new Date();
|
type: 'success'
|
||||||
var end = new Date();
|
});
|
||||||
switch(type){
|
document.getElementById('copyInput').remove();
|
||||||
case '今日':
|
|
||||||
break;
|
|
||||||
case '昨日':
|
|
||||||
end.setTime(end.getTime() - 3600 * 1000 * 24);
|
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24);
|
|
||||||
break;
|
|
||||||
case '最近7日':
|
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
|
|
||||||
break;
|
|
||||||
case '最近30日':
|
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 29);
|
|
||||||
break;
|
|
||||||
case '最近90日':
|
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 89);
|
|
||||||
break;
|
|
||||||
case '最近365日':
|
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 364);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
str = start.getFullYear()+'-'+(start.getMonth()+1)+'-'+start.getDate()+'_'+end.getFullYear()+'-'+(end.getMonth()+1)+'-'+end.getDate();
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
function CopyTxt(item,text){
|
|
||||||
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
|
|
||||||
input.setAttribute('value', text);
|
|
||||||
document.getElementsByTagName('body')[0].appendChild(input);
|
|
||||||
document.getElementById('copyInput').select();
|
|
||||||
document.execCommand('copy')
|
|
||||||
item.$message({
|
|
||||||
message: '成功复制到剪切板',
|
|
||||||
type: 'success'
|
|
||||||
});
|
|
||||||
document.getElementById('copyInput').remove();
|
|
||||||
};
|
};
|
||||||
142
dzz/pichome/js/pc/components/addcollect.js
Normal file
142
dzz/pichome/js/pc/components/addcollect.js
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
Vue.component('add-star-tree', {
|
||||||
|
props:['rids','dialogvisible'],
|
||||||
|
template: `<el-dialog
|
||||||
|
title="创建收藏夹"
|
||||||
|
custom-class="addcollection-dialog"
|
||||||
|
@opened="PopoverShow"
|
||||||
|
@closed="PopoverHide"
|
||||||
|
:visible.sync="dialogvisible">
|
||||||
|
<el-form ref="form" :model="formdata" label-position="top">
|
||||||
|
<el-form-item label="名称" required>
|
||||||
|
<el-input v-model.trim="formdata.name" placeholder="请输入名称"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="用户权限">
|
||||||
|
<el-radio-group v-model="formdata.perm">
|
||||||
|
<el-radio :label="1">观察员</el-radio>
|
||||||
|
<el-radio :label="2">协作成员</el-radio>
|
||||||
|
<el-radio :label="3">管理员</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="添加合作用户">
|
||||||
|
<el-input v-model.trim="Userkeyword" @input="UserKeywordInput" placeholder="姓名搜索" clearable></el-input>
|
||||||
|
<div style="padding: 12px 24px 0 24px;">
|
||||||
|
<template v-if="user.loading">
|
||||||
|
<div style="position: relative;width: 100%;height: 100px;">
|
||||||
|
<div class="img-loading center">
|
||||||
|
<span class="el-icon-loading"></span>加载中...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-checkbox-group v-model="formdata.user">
|
||||||
|
<el-checkbox v-for="item in user.data" :label="item.uid">
|
||||||
|
<div>
|
||||||
|
<div style="display:inline-block" v-html="item.icon"></div>
|
||||||
|
{{item.username}}
|
||||||
|
</div>
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogvisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="handleSubmit" :disabled="formdata.name?false:true">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>`,
|
||||||
|
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
user:{
|
||||||
|
data:[],
|
||||||
|
loading:true
|
||||||
|
},
|
||||||
|
Userkeyword:'',
|
||||||
|
formdata:{
|
||||||
|
name:'',
|
||||||
|
perm:1,
|
||||||
|
user:[],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
UserKeywordInput:debounce(function(val){//输入
|
||||||
|
this.GetUsers();
|
||||||
|
},800),
|
||||||
|
PopoverShow(){
|
||||||
|
this.GetUsers();
|
||||||
|
},
|
||||||
|
PopoverHide(){
|
||||||
|
var self = this;
|
||||||
|
self.user.loading = true;
|
||||||
|
self.Userkeyword = '';
|
||||||
|
self.formdata = {
|
||||||
|
name:'',
|
||||||
|
perm:1,
|
||||||
|
user:[],
|
||||||
|
};
|
||||||
|
self.$emit('closeaddcollectdialog');
|
||||||
|
},
|
||||||
|
handleSubmit(){
|
||||||
|
var self = this;
|
||||||
|
var param = {
|
||||||
|
name:self.formdata.name,
|
||||||
|
perm:self.formdata.perm,
|
||||||
|
uids:self.formdata.user.join(','),
|
||||||
|
};
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=addcollect',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
self.addCollect(json.success.clid);
|
||||||
|
}else{
|
||||||
|
self.$message.error(json.error);
|
||||||
|
}
|
||||||
|
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
addCollect(clid){
|
||||||
|
var self = this;
|
||||||
|
var param = {
|
||||||
|
rids:this.rids.join(','),
|
||||||
|
clid:clid
|
||||||
|
};
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=addfilecollect',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
self.$message({
|
||||||
|
type:'success',
|
||||||
|
message:'收藏夹创建成功'
|
||||||
|
});
|
||||||
|
self.$message({
|
||||||
|
type:'success',
|
||||||
|
message:'文件收藏成功'
|
||||||
|
});
|
||||||
|
self.PopoverHide();
|
||||||
|
}else{
|
||||||
|
self.$message.error(json.error);
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
GetUsers(){
|
||||||
|
var self = this;
|
||||||
|
self.user.loading = true;
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=getuser',{
|
||||||
|
keyword:self.Userkeyword
|
||||||
|
},function(json){
|
||||||
|
var data = [];
|
||||||
|
self.user.data = json.success;
|
||||||
|
self.user.loading = false;
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeRouteLeave() {
|
||||||
|
},
|
||||||
|
});
|
||||||
262
dzz/pichome/js/pc/components/collect.js
Normal file
262
dzz/pichome/js/pc/components/collect.js
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
|
||||||
|
Vue.component('star-tree', {
|
||||||
|
template: `<el-popover
|
||||||
|
popper-class="collection-dialog"
|
||||||
|
@show="PopoverShow"
|
||||||
|
@hide="PopoverHide"
|
||||||
|
placement="bottom"
|
||||||
|
ref="refcollectiondialog"
|
||||||
|
trigger="click">
|
||||||
|
<div class="collection-dialog-content">
|
||||||
|
<div class="header">
|
||||||
|
<el-input
|
||||||
|
clearable
|
||||||
|
v-model.trim="filterText"
|
||||||
|
placeholder="请输入关键字"></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div v-if="loading" style="background: var(--bg-header);position: absolute;width: 100%;height: 100%;z-index: 10;">
|
||||||
|
<div class="img-loading center">
|
||||||
|
<span class="el-icon-loading"></span>加载中...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-scrollbar style="height:100%;">
|
||||||
|
<div style="padding:0 12px;">
|
||||||
|
<el-tree
|
||||||
|
v-if="NodeShow"
|
||||||
|
ref="lefttree"
|
||||||
|
:load="GetTreeData"
|
||||||
|
node-key="cid"
|
||||||
|
lazy
|
||||||
|
:props="defaultProps"
|
||||||
|
:filter-node-method="TreeDataFilterNode"
|
||||||
|
:default-expanded-keys="ExpandedNodeKeys">
|
||||||
|
<div class="custom-tree-node" slot-scope="{ node, data }">
|
||||||
|
<div class="img">
|
||||||
|
<img v-if="data.covert" :src="data.covert" />
|
||||||
|
</div>
|
||||||
|
<div class="name" v-cloak>{{ data.catname }}</div>
|
||||||
|
<ul class="avatar">
|
||||||
|
<li v-for="item in data.uids" v-html="item.icon"></li>
|
||||||
|
</ul>
|
||||||
|
<el-button class="btn" @click.stop.prevent="handleSubmit(data.cid,data.clid,data.parent)" type="primary" size="medium">收藏</el-button>
|
||||||
|
</div>
|
||||||
|
</el-tree>
|
||||||
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
|
</div>
|
||||||
|
<div class="footer" @click="handleOpenAdd">
|
||||||
|
<i class="el-icon-circle-plus"></i>创建收藏夹
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button slot="reference" type="button" class="el-button el-button--danger reference el-button--medium">
|
||||||
|
<span>收藏</span>
|
||||||
|
</button>
|
||||||
|
</el-popover>`,
|
||||||
|
props:['rids'],
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
filterText:'',
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'catname'
|
||||||
|
},
|
||||||
|
loading:true,
|
||||||
|
NodeShow:false,
|
||||||
|
ExpandedNodeKeys:[],
|
||||||
|
alreadyExpandedNodeKeys:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
filterText:debounce(function(val){
|
||||||
|
var self = this;
|
||||||
|
if(val){
|
||||||
|
self.alreadyExpandedNodeKeys = [];
|
||||||
|
self.ExpandedNodeKeys = [];
|
||||||
|
self.loading = true;
|
||||||
|
this.NodeShow = false;
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=searchcollect',{
|
||||||
|
keyword:val
|
||||||
|
},function(json){
|
||||||
|
var data = [];
|
||||||
|
for(var i in json.clid){
|
||||||
|
var id = json.clid[i];
|
||||||
|
if(data.indexOf('p'+id)<0){
|
||||||
|
data.push('p'+id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var x in json.cids){
|
||||||
|
var id = json.cids[x];
|
||||||
|
if(data.indexOf(parseInt(id))<0){
|
||||||
|
data.push(parseInt(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.ExpandedNodeKeys = data;
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.NodeShow = true;
|
||||||
|
});
|
||||||
|
},'json');
|
||||||
|
}else{
|
||||||
|
this.filterTextclear();
|
||||||
|
}
|
||||||
|
},800)
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
filterTextclear(){
|
||||||
|
var self = this;
|
||||||
|
self.alreadyExpandedNodeKeys = [];
|
||||||
|
self.ExpandedNodeKeys = [];
|
||||||
|
self.loading = true;
|
||||||
|
self.NodeShow = false;
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.NodeShow = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
GetTreeData(node,resolve){
|
||||||
|
var self = this;
|
||||||
|
var param = {};
|
||||||
|
if(node.level == 1){
|
||||||
|
param = {
|
||||||
|
clid:node.data.cid.replace('p','')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(node.level > 1){
|
||||||
|
param = {
|
||||||
|
cid:node.data.cid,
|
||||||
|
clid:node.data.clid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=collectlist',param,function(json){
|
||||||
|
var data = [];
|
||||||
|
for(var i in json.success){
|
||||||
|
var item = json.success[i];
|
||||||
|
if(node.level == 0){
|
||||||
|
item['cid'] = 'p'+item.clid;
|
||||||
|
item['catname'] = item.name;
|
||||||
|
item['parent'] = true;
|
||||||
|
self.alreadyExpandedNodeKeys.push(item['cid']);
|
||||||
|
}else{
|
||||||
|
item['cid'] = parseInt(item.cid);
|
||||||
|
item['parent'] = false;
|
||||||
|
self.alreadyExpandedNodeKeys.push(parseInt(item['cid']));
|
||||||
|
}
|
||||||
|
|
||||||
|
data.push(item)
|
||||||
|
}
|
||||||
|
resolve(data);
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.LeftGetTreeDataFinish();
|
||||||
|
})
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
LeftGetTreeDataFinish(){
|
||||||
|
var self = this;
|
||||||
|
var finish = false;
|
||||||
|
if(self.ExpandedNodeKeys.length){
|
||||||
|
for(var i in self.ExpandedNodeKeys){
|
||||||
|
var id = self.ExpandedNodeKeys[i];
|
||||||
|
if(self.alreadyExpandedNodeKeys.indexOf(id)>-1){
|
||||||
|
finish = true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(finish){
|
||||||
|
if(self.filterText){
|
||||||
|
self.$refs['lefttree'].filter(self.filterText);
|
||||||
|
}
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(self.filterText){
|
||||||
|
self.$refs['lefttree'].filter(self.filterText);
|
||||||
|
}
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
PopoverShow(){
|
||||||
|
var self = this;
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
var keys = collectkey.key.split('-');
|
||||||
|
if(keys.length>1){
|
||||||
|
keys.pop();
|
||||||
|
}
|
||||||
|
var newkeys = [];
|
||||||
|
for(var i in keys){
|
||||||
|
if(keys[i].indexOf('p')>-1){
|
||||||
|
newkeys.push(keys[i]);
|
||||||
|
}else{
|
||||||
|
newkeys.push(parseInt(keys[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ExpandedNodeKeys = newkeys;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NodeShow = true;
|
||||||
|
},
|
||||||
|
PopoverHide(){
|
||||||
|
this.NodeShow = false;
|
||||||
|
},
|
||||||
|
handleSubmit(cid,clid,parent){
|
||||||
|
var param = {}
|
||||||
|
var self = this;
|
||||||
|
if(parent){
|
||||||
|
param = {
|
||||||
|
rids:this.rids,
|
||||||
|
clid:cid.replace('p','')
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
param = {
|
||||||
|
rids:this.rids,
|
||||||
|
cid:cid,
|
||||||
|
clid:clid
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=addfilecollect',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
var node = self.$refs['lefttree'].getNode(cid);
|
||||||
|
if(parent){
|
||||||
|
var collect = {
|
||||||
|
name:node.data.catname,
|
||||||
|
key:cid
|
||||||
|
};
|
||||||
|
}else{
|
||||||
|
var collectkey = clid+'-'+node.data.pathkey;
|
||||||
|
var collect = {
|
||||||
|
name:node.data.catname,
|
||||||
|
key:'p'+clid+'-'+node.data.pathkey
|
||||||
|
};
|
||||||
|
}
|
||||||
|
localStorage.setItem('collectkey', JSON.stringify(collect));
|
||||||
|
self.$message({
|
||||||
|
type:'success',
|
||||||
|
message:'收藏成功'
|
||||||
|
});
|
||||||
|
self.$emit('addcollectsuccess');
|
||||||
|
self.$refs['refcollectiondialog'].doClose();
|
||||||
|
}else{
|
||||||
|
self.$message.error(json.error);
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
handleOpenAdd(){
|
||||||
|
var self = this;
|
||||||
|
self.$refs['refcollectiondialog'].doClose();
|
||||||
|
self.$emit('openaddcollect',this.rids);
|
||||||
|
},
|
||||||
|
TreeDataFilterNode(value, data) {
|
||||||
|
if (!value) return true;
|
||||||
|
return data.catname.indexOf(value) !== -1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
var self = this;
|
||||||
|
},
|
||||||
|
beforeRouteLeave() {
|
||||||
|
},
|
||||||
|
});
|
||||||
256
dzz/pichome/js/pc/components/collectdialog.js
Normal file
256
dzz/pichome/js/pc/components/collectdialog.js
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
|
||||||
|
Vue.component('star-tree-dialog', {
|
||||||
|
props:['rids','dialogvisible'],
|
||||||
|
template: `<el-dialog
|
||||||
|
title="选择收藏夹"
|
||||||
|
custom-class="collection-dialog"
|
||||||
|
@open="PopoverShow"
|
||||||
|
@close="PopoverHide"
|
||||||
|
:visible.sync="dialogvisible">
|
||||||
|
<div class="collection-dialog-content">
|
||||||
|
<div class="header">
|
||||||
|
<el-input
|
||||||
|
clearable
|
||||||
|
v-model.trim="filterText"
|
||||||
|
placeholder="请输入关键字"></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<el-scrollbar style="height:100%;">
|
||||||
|
<div style="padding:0 12px;">
|
||||||
|
<el-tree
|
||||||
|
v-if="NodeShow"
|
||||||
|
ref="lefttree"
|
||||||
|
:load="GetTreeData"
|
||||||
|
node-key="cid"
|
||||||
|
lazy
|
||||||
|
:props="defaultProps"
|
||||||
|
:filter-node-method="TreeDataFilterNode"
|
||||||
|
:default-expanded-keys="ExpandedNodeKeys">
|
||||||
|
<div class="custom-tree-node" :class="{notpadding:!data.parent}" slot-scope="{ node, data }">
|
||||||
|
<div class="img" v-if="data.parent">
|
||||||
|
<img v-if="data.covert" :src="data.covert" />
|
||||||
|
</div>
|
||||||
|
<div class="name" v-cloak>{{ data.catname }}</div>
|
||||||
|
<ul class="avatar">
|
||||||
|
<li v-for="item in data.uids" v-html="item.icon"></li>
|
||||||
|
</ul>
|
||||||
|
<el-button class="btn" @click.stop.prevent="handleSubmit(data.cid,data.clid,data.parent)" type="primary" size="medium">收藏</el-button>
|
||||||
|
</div>
|
||||||
|
</el-tree>
|
||||||
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
|
</div>
|
||||||
|
<div class="footer" @click="handleOpenAdd">
|
||||||
|
<i class="el-icon-circle-plus"></i>创建收藏夹
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>`,
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
filterText:'',
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'catname'
|
||||||
|
},
|
||||||
|
loading:true,
|
||||||
|
NodeShow:false,
|
||||||
|
ExpandedNodeKeys:[],
|
||||||
|
alreadyExpandedNodeKeys:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
filterText:debounce(function(val){
|
||||||
|
var self = this;
|
||||||
|
if(val){
|
||||||
|
self.alreadyExpandedNodeKeys = [];
|
||||||
|
self.ExpandedNodeKeys = [];
|
||||||
|
self.loading = true;
|
||||||
|
this.NodeShow = false;
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=searchcollect',{
|
||||||
|
keyword:val
|
||||||
|
},function(json){
|
||||||
|
var data = [];
|
||||||
|
for(var i in json.clid){
|
||||||
|
var id = json.clid[i];
|
||||||
|
if(data.indexOf('p'+id)<0){
|
||||||
|
data.push('p'+id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(var x in json.cids){
|
||||||
|
var id = json.cids[x];
|
||||||
|
if(data.indexOf(parseInt(id))<0){
|
||||||
|
data.push(parseInt(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.ExpandedNodeKeys = data;
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.NodeShow = true;
|
||||||
|
});
|
||||||
|
},'json');
|
||||||
|
}else{
|
||||||
|
self.filterTextclear();
|
||||||
|
}
|
||||||
|
},800)
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// console.log(this.tabindex)
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
filterTextclear(){
|
||||||
|
var self = this;
|
||||||
|
self.alreadyExpandedNodeKeys = [];
|
||||||
|
self.ExpandedNodeKeys = [];
|
||||||
|
self.loading = true;
|
||||||
|
self.NodeShow = false;
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.NodeShow = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
GetTreeData(node,resolve){
|
||||||
|
var self = this;
|
||||||
|
var param = {};
|
||||||
|
if(node.level == 1){
|
||||||
|
param = {
|
||||||
|
clid:node.data.cid.replace('p','')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(node.level > 1){
|
||||||
|
param = {
|
||||||
|
cid:node.data.cid,
|
||||||
|
clid:node.data.clid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=collectlist',param,function(json){
|
||||||
|
var data = [];
|
||||||
|
for(var i in json.success){
|
||||||
|
var item = json.success[i];
|
||||||
|
if(node.level == 0){
|
||||||
|
item['cid'] = 'p'+item.clid;
|
||||||
|
item['catname'] = item.name;
|
||||||
|
item['parent'] = true;
|
||||||
|
self.alreadyExpandedNodeKeys.push(item['cid']);
|
||||||
|
}else{
|
||||||
|
item['cid'] = parseInt(item.cid);
|
||||||
|
item['parent'] = false;
|
||||||
|
self.alreadyExpandedNodeKeys.push(parseInt(item['cid']));
|
||||||
|
}
|
||||||
|
|
||||||
|
data.push(item)
|
||||||
|
}
|
||||||
|
resolve(data);
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.GetTreeDataFinish();
|
||||||
|
})
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
GetTreeDataFinish(){
|
||||||
|
var self = this;
|
||||||
|
var finish = false;
|
||||||
|
if(self.ExpandedNodeKeys.length){
|
||||||
|
for(var i in self.ExpandedNodeKeys){
|
||||||
|
var id = self.ExpandedNodeKeys[i];
|
||||||
|
if(self.alreadyExpandedNodeKeys.indexOf(id)>-1){
|
||||||
|
finish = true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(finish){
|
||||||
|
if(self.filterText){
|
||||||
|
self.$refs['lefttree'].filter(self.filterText);
|
||||||
|
}
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(self.filterText){
|
||||||
|
self.$refs['lefttree'].filter(self.filterText);
|
||||||
|
}
|
||||||
|
self.loading = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSubmit(cid,clid,parent){
|
||||||
|
var param = {}
|
||||||
|
var self = this;
|
||||||
|
if(parent){
|
||||||
|
param = {
|
||||||
|
rids:this.rids.join(','),
|
||||||
|
clid:cid.replace('p','')
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
param = {
|
||||||
|
rids:this.rids.join(','),
|
||||||
|
cid:cid,
|
||||||
|
clid:clid,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=addfilecollect',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
var node = self.$refs['lefttree'].getNode(cid);
|
||||||
|
if(parent){
|
||||||
|
var collect = {
|
||||||
|
name:node.data.catname,
|
||||||
|
key:cid
|
||||||
|
};
|
||||||
|
}else{
|
||||||
|
// var collectkey = clid+'-'+node.data.pathkey;
|
||||||
|
var collect = {
|
||||||
|
name:node.data.catname,
|
||||||
|
key:'p'+clid+'-'+node.data.pathkey.replaceAll('_','')
|
||||||
|
};
|
||||||
|
}
|
||||||
|
localStorage.setItem('collectkey', JSON.stringify(collect));
|
||||||
|
self.$message({
|
||||||
|
type:'success',
|
||||||
|
message:'文件收藏成功'
|
||||||
|
});
|
||||||
|
self.$emit('addcollectsuccess');
|
||||||
|
self.PopoverHide();
|
||||||
|
}else{
|
||||||
|
self.$message.error(json.error);
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
PopoverShow(){
|
||||||
|
var self = this;
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
var keys = collectkey.key.split('-');
|
||||||
|
if(keys.length>1){
|
||||||
|
keys.pop();
|
||||||
|
}
|
||||||
|
var newkeys = [];
|
||||||
|
for(var i in keys){
|
||||||
|
if(keys[i].indexOf('p')>-1){
|
||||||
|
newkeys.push(keys[i]);
|
||||||
|
}else{
|
||||||
|
newkeys.push(parseInt(keys[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ExpandedNodeKeys = newkeys;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.NodeShow = true;
|
||||||
|
},
|
||||||
|
PopoverHide(){
|
||||||
|
var self = this;
|
||||||
|
self.NodeShow = false;
|
||||||
|
self.filterText = '';
|
||||||
|
self.alreadyExpandedNodeKeys = [];
|
||||||
|
self.$emit('closecollectdialog');
|
||||||
|
},
|
||||||
|
handleOpenAdd(){
|
||||||
|
var self = this;
|
||||||
|
self.$emit('openaddcollect',this.rids);
|
||||||
|
},
|
||||||
|
TreeDataFilterNode(value, data) {
|
||||||
|
if (!value) return true;
|
||||||
|
return data.catname.indexOf(value) !== -1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeRouteLeave() {
|
||||||
|
},
|
||||||
|
});
|
||||||
File diff suppressed because one or more lines are too long
@@ -28,6 +28,8 @@ if ($operation == 'fetch') {
|
|||||||
exit(json_encode(array('success' => true)));
|
exit(json_encode(array('success' => true)));
|
||||||
} else {
|
} else {
|
||||||
if ($data = DB::fetch_first("select * from %t where appid=%s and isdelete = 0 ", array('pichome_vapp', $appid))) {
|
if ($data = DB::fetch_first("select * from %t where appid=%s and isdelete = 0 ", array('pichome_vapp', $appid))) {
|
||||||
|
if($data['charset'] != CHARSET)$data['convertpath'] = diconv($data['path'],$data['charset'],CHARSET);
|
||||||
|
else $data['convertpath'] = $data['path'];
|
||||||
$data['path'] = urlencode($data['path']);
|
$data['path'] = urlencode($data['path']);
|
||||||
$data['filter'] = unserialize($data['filter']);
|
$data['filter'] = unserialize($data['filter']);
|
||||||
$getinfonum = 0;
|
$getinfonum = 0;
|
||||||
@@ -36,20 +38,37 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
array('pichome_resources_attr','pichome_ffmpeg_record','pichome_imagickrecord',$appid));
|
array('pichome_resources_attr','pichome_ffmpeg_record','pichome_imagickrecord',$appid));
|
||||||
$catdata = C::t('pichome_taggroup')->fetch_by_appid($appid);
|
$catdata = C::t('pichome_taggroup')->fetch_by_appid($appid);
|
||||||
if (($data['state'] == 2)) {
|
if (($data['state'] == 2)) {
|
||||||
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid, 0, '', '', false, '', 1);
|
$processname = 'DZZ_PAGEEXPORTFILE_LOCK_' . $appid;
|
||||||
|
$locked = true;
|
||||||
|
if (!dzz_process::islocked($processname, 60 * 5)) {
|
||||||
|
$locked = false;
|
||||||
|
}
|
||||||
|
if ($locked) {
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}
|
||||||
|
|
||||||
} elseif ($data['state'] == 3) {
|
} elseif ($data['state'] == 3) {
|
||||||
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
|
$processname = 'DZZ_PAGEEXPORTCHECKFILE_LOCK_' . $appid;
|
||||||
|
$locked = true;
|
||||||
|
if (!dzz_process::islocked($processname, 60 * 5)) {
|
||||||
|
$locked = false;
|
||||||
|
}
|
||||||
|
if ($locked) {
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exit(json_encode(array('success' => true, 'data' => $data, 'catdata' => $catdata)));
|
exit(json_encode(array('success' => true, 'data' => $data, 'catdata' => $catdata)));
|
||||||
} else {
|
} else {
|
||||||
exit(json_encode(array('error' => true)));
|
exit(json_encode(array('error' => true)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($operation == 'getdata') {
|
}
|
||||||
|
elseif ($operation == 'getdata') {
|
||||||
$data = array();
|
$data = array();
|
||||||
foreach (DB::fetch_all("select * from %t where isdelete = 0 order by disp", array('pichome_vapp')) as $val) {
|
foreach (DB::fetch_all("select * from %t where isdelete = 0 order by disp", array('pichome_vapp')) as $val) {
|
||||||
$val['connect'] = (is_dir($val['path'])) ? 1:0;
|
$val['connect'] = (is_dir($val['path'])) ? 1:0;
|
||||||
if($val['charset'] != CHARSET){
|
if($val['charset'] != CHARSET){
|
||||||
|
//echo $val['path'];die;
|
||||||
$val['path'] = diconv($val['path'], $val['charset'], CHARSET);
|
$val['path'] = diconv($val['path'], $val['charset'], CHARSET);
|
||||||
}
|
}
|
||||||
$data[] = $val;
|
$data[] = $val;
|
||||||
@@ -66,7 +85,8 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
$returndata['appid'] = $getinfonum;
|
$returndata['appid'] = $getinfonum;
|
||||||
}
|
}
|
||||||
exit(json_encode(array('data' => $returndata)));
|
exit(json_encode(array('data' => $returndata)));
|
||||||
}elseif ($operation == 'addlibrary') {
|
}
|
||||||
|
elseif ($operation == 'addlibrary') {
|
||||||
//接收路径
|
//接收路径
|
||||||
$path = isset($_GET['path']) ? trim($_GET['path']) : '';
|
$path = isset($_GET['path']) ? trim($_GET['path']) : '';
|
||||||
//接收编码
|
//接收编码
|
||||||
@@ -124,7 +144,6 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
'allowext'=>getglobal('setting/pichomeimportallowext'),
|
'allowext'=>getglobal('setting/pichomeimportallowext'),
|
||||||
'filter' => 'a:13:{i:0;a:3:{s:3:"key";s:8:"classify";s:4:"text";s:6:"分类";s:7:"checked";s:1:"1";}i:1;a:4:{s:3:"key";s:3:"tag";s:4:"text";s:6:"标签";s:7:"checked";s:1:"1";s:8:"showtype";s:1:"0";}i:2;a:3:{s:3:"key";s:5:"color";s:4:"text";s:6:"颜色";s:7:"checked";s:1:"1";}i:3;a:3:{s:3:"key";s:4:"link";s:4:"text";s:6:"链接";s:7:"checked";s:1:"1";}i:4;a:3:{s:3:"key";s:4:"desc";s:4:"text";s:6:"注释";s:7:"checked";s:1:"1";}i:5;a:3:{s:3:"key";s:8:"duration";s:4:"text";s:6:"时长";s:7:"checked";s:1:"1";}i:6;a:3:{s:3:"key";s:4:"size";s:4:"text";s:6:"尺寸";s:7:"checked";s:1:"1";}i:7;a:3:{s:3:"key";s:3:"ext";s:4:"text";s:6:"类型";s:7:"checked";s:1:"1";}i:8;a:3:{s:3:"key";s:5:"shape";s:4:"text";s:6:"形状";s:7:"checked";s:1:"1";}i:9;a:3:{s:3:"key";s:5:"grade";s:4:"text";s:6:"评分";s:7:"checked";s:1:"1";}i:10;a:3:{s:3:"key";s:5:"btime";s:4:"text";s:12:"添加时间";s:7:"checked";s:1:"1";}i:11;a:3:{s:3:"key";s:8:"dateline";s:4:"text";s:12:"修改日期";s:7:"checked";s:1:"1";}i:12;a:3:{s:3:"key";s:5:"mtime";s:4:"text";s:12:"创建日期";s:7:"checked";s:1:"1";}}'
|
'filter' => 'a:13:{i:0;a:3:{s:3:"key";s:8:"classify";s:4:"text";s:6:"分类";s:7:"checked";s:1:"1";}i:1;a:4:{s:3:"key";s:3:"tag";s:4:"text";s:6:"标签";s:7:"checked";s:1:"1";s:8:"showtype";s:1:"0";}i:2;a:3:{s:3:"key";s:5:"color";s:4:"text";s:6:"颜色";s:7:"checked";s:1:"1";}i:3;a:3:{s:3:"key";s:4:"link";s:4:"text";s:6:"链接";s:7:"checked";s:1:"1";}i:4;a:3:{s:3:"key";s:4:"desc";s:4:"text";s:6:"注释";s:7:"checked";s:1:"1";}i:5;a:3:{s:3:"key";s:8:"duration";s:4:"text";s:6:"时长";s:7:"checked";s:1:"1";}i:6;a:3:{s:3:"key";s:4:"size";s:4:"text";s:6:"尺寸";s:7:"checked";s:1:"1";}i:7;a:3:{s:3:"key";s:3:"ext";s:4:"text";s:6:"类型";s:7:"checked";s:1:"1";}i:8;a:3:{s:3:"key";s:5:"shape";s:4:"text";s:6:"形状";s:7:"checked";s:1:"1";}i:9;a:3:{s:3:"key";s:5:"grade";s:4:"text";s:6:"评分";s:7:"checked";s:1:"1";}i:10;a:3:{s:3:"key";s:5:"btime";s:4:"text";s:12:"添加时间";s:7:"checked";s:1:"1";}i:11;a:3:{s:3:"key";s:8:"dateline";s:4:"text";s:12:"修改日期";s:7:"checked";s:1:"1";}i:12;a:3:{s:3:"key";s:5:"mtime";s:4:"text";s:12:"创建日期";s:7:"checked";s:1:"1";}}'
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($type == 1) $appattr['allowext'] = $Defaultallowext;
|
if ($type == 1) $appattr['allowext'] = $Defaultallowext;
|
||||||
$path = str_replace(array('/', './', '\\'), BS, $path);
|
$path = str_replace(array('/', './', '\\'), BS, $path);
|
||||||
if (strpos($path, DZZ_ROOT) !== 0) $appattr['iswebsitefile'] = 0;
|
if (strpos($path, DZZ_ROOT) !== 0) $appattr['iswebsitefile'] = 0;
|
||||||
@@ -137,15 +156,57 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
exit(json_encode(array('error' => 'create failer')));
|
exit(json_encode(array('error' => 'create failer')));
|
||||||
}
|
}
|
||||||
|
|
||||||
} elseif ($operation == 'dellibrary') {
|
}
|
||||||
|
elseif($operation == 'changePath'){
|
||||||
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
|
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
|
||||||
|
$path = isset($_GET['path']) ? trim($_GET['path']):'';
|
||||||
|
//接收编码
|
||||||
|
$charset = isset($_GET['charset']) ? trim($_GET['charset']) : 'utf8';
|
||||||
|
//转换路径
|
||||||
|
$path = str_replace('/', BS, $path);
|
||||||
|
//转换编码,防止路径找不到(linux下中文乱码,前端展示为正常编码,依据前端传递编码转换出原路径存储)
|
||||||
|
if (CHARSET != $charset) $path = diconv($path, CHARSET, $charset);
|
||||||
|
//存在相同路径的不允许重复添加
|
||||||
|
if (DB::result_first("select appid from %t where path = %s and isdelete = 0", array('pichome_vapp', $path))) {
|
||||||
|
exit(json_encode(array('tips' => '路径对应库已存在,不允许修改')));
|
||||||
|
}else{
|
||||||
|
$appdata = C::t('pichome_vapp')->fetch($appid);
|
||||||
|
}
|
||||||
|
if(!$appdata) exit(json_encode(array('tips' => '库不存在或已被删除,不允许修改')));
|
||||||
|
$type = $appdata['type'];
|
||||||
|
if ($type == 0) {
|
||||||
|
$metajsonfile = $path . BS . 'metadata.json';
|
||||||
|
if (!is_file($metajsonfile)) {
|
||||||
|
exit(json_encode(array('error' => '系统检测该库不已符合eagle库标准,修改失败')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($type == 2) {
|
||||||
|
$dbfile = $path . BS . '.bf'.BS.'billfish.db';
|
||||||
|
if (!is_file($dbfile)) {
|
||||||
|
exit(json_encode(array('tips' => '系统检测该库已不符合billfish库标准,修改失败')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//if(!is_dir($path)) exit(json_encode(array('tips' => '系统检测该库准,修改失败')));
|
||||||
|
if (strpos($path, DZZ_ROOT) !== 0) $iswebsitefile = 0;
|
||||||
|
else $iswebsitefile = 1;
|
||||||
|
if (C::t('pichome_vapp')->update($appid, array('path' => $path,'iswebsitefile'=>$iswebsitefile))) {
|
||||||
|
//dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=initexport&appid='.$appid, 0, '', '', false, '', 0.1);
|
||||||
|
exit(json_encode(array('success' => true)));
|
||||||
|
} else {
|
||||||
|
exit(json_encode(array('error' => true)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif ($operation == 'dellibrary') {
|
||||||
|
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
|
||||||
|
//if (C::t('pichome_vapp')->update($appid, array('isdelete' => 1,'deluid'=>getglobal('uid'),'delusername'=>getglobal('username')))) {
|
||||||
if (C::t('pichome_vapp')->update($appid, array('isdelete' => 1))) {
|
if (C::t('pichome_vapp')->update($appid, array('isdelete' => 1))) {
|
||||||
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=delete', 0, '', '', false, '', 0.1);
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=delete', 0, '', '', false, '', 0.1);
|
||||||
exit(json_encode(array('success' => true)));
|
exit(json_encode(array('success' => true)));
|
||||||
} else {
|
} else {
|
||||||
exit(json_encode(array('error' => true)));
|
exit(json_encode(array('error' => true)));
|
||||||
}
|
}
|
||||||
} elseif ($operation == 'getpath') {
|
}
|
||||||
|
elseif ($operation == 'getpath') {
|
||||||
require_once(DZZ_ROOT . './dzz/class/class_encode.php');
|
require_once(DZZ_ROOT . './dzz/class/class_encode.php');
|
||||||
$path = isset($_GET['path']) ? trim($_GET['path']) : '';
|
$path = isset($_GET['path']) ? trim($_GET['path']) : '';
|
||||||
$gettype = isset($_GET['gettype']) ? intval($_GET['gettype']) : 0;
|
$gettype = isset($_GET['gettype']) ? intval($_GET['gettype']) : 0;
|
||||||
@@ -176,10 +237,11 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
if ($dh = @opendir($path)) {
|
if ($dh = @opendir($path)) {
|
||||||
while (($file = readdir($dh)) !== false) {
|
while (($file = readdir($dh)) !== false) {
|
||||||
if ($file != '.' && $file != '..' && is_dir($path . BS . $file) && !preg_match('/^(' . $notallowdir . ')$/i', $file)) {
|
if ($file != '.' && $file != '..' && is_dir($path . BS . $file) && !preg_match('/^(' . $notallowdir . ')$/i', $file)) {
|
||||||
$returnfile = $file;
|
|
||||||
|
$returnfile = trim($file);
|
||||||
$p = new Encode_Core();
|
$p = new Encode_Core();
|
||||||
$charset = $p->get_encoding($file);
|
$charset = $p->get_encoding($file);
|
||||||
if (CHARSET != $charset) $returnfile = diconv($returnfile, $charset, CHARSET);
|
$returnfile = diconv($returnfile, $charset, CHARSET);
|
||||||
$datas[] = ['path' => $returnfile, 'charset' => $charset];
|
$datas[] = ['path' => $returnfile, 'charset' => $charset];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -194,7 +256,7 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
$returnfile = $path . $file;
|
$returnfile = $path . $file;
|
||||||
$p = new Encode_Core();
|
$p = new Encode_Core();
|
||||||
$charset = $p->get_encoding($file);
|
$charset = $p->get_encoding($file);
|
||||||
if (CHARSET != $charset) $returnfile = diconv($returnfile, $charset, CHARSET);
|
$returnfile = diconv($returnfile, $charset, CHARSET);
|
||||||
$datas[] = ['path' => $returnfile, 'charset' => $charset];
|
$datas[] = ['path' => $returnfile, 'charset' => $charset];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -209,7 +271,8 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
|
|
||||||
}
|
}
|
||||||
exit(json_encode(array('data' => $datas)));
|
exit(json_encode(array('data' => $datas)));
|
||||||
} elseif ($operation == 'sort') {
|
}
|
||||||
|
elseif ($operation == 'sort') {
|
||||||
$appids = isset($_GET['appids']) ? trim($_GET['appids']) : '';
|
$appids = isset($_GET['appids']) ? trim($_GET['appids']) : '';
|
||||||
if (submitcheck('settingsubmit')) {
|
if (submitcheck('settingsubmit')) {
|
||||||
if (!$appids) exit(json_encode(array('error' => true)));
|
if (!$appids) exit(json_encode(array('error' => true)));
|
||||||
@@ -221,7 +284,7 @@ where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or
|
|||||||
}
|
}
|
||||||
exit(json_encode(array('success' => true)));
|
exit(json_encode(array('success' => true)));
|
||||||
}
|
}
|
||||||
} else {
|
}else {
|
||||||
$theme = GetThemeColor();
|
$theme = GetThemeColor();
|
||||||
include template('pc/page/library');
|
include template('pc/page/library');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sid = isset($_GET['sid']) ? dzzdecode($_GET['sid'],'',0):'';
|
$sid = isset($_GET['sid']) ? dzzdecode($_GET['sid'],'',0):'';
|
||||||
$sharedata = C::t('pichome_share')->fetch_by_id($sid);
|
$sharedata = C::t('pichome_share')->fetch_by_idandtype($sid);
|
||||||
$resourcesdata = $sharedata['resourcesdata'];
|
$resourcesdata = $sharedata['resourcesdata'];
|
||||||
$resourcesdata['share'] = 0;
|
$resourcesdata['share'] = 0;
|
||||||
$colors = array();
|
$colors = array();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
var CommonJs = {
|
var CommonJs = {
|
||||||
CommonLibrary(){
|
CommonLibrary(){
|
||||||
if(this.ParamLibrary.data.length==0){
|
if(this.ParamLibrary.data.length==0){
|
||||||
|
this.ParamImages.loading = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.ParamLibrary.fdata = [{
|
this.ParamLibrary.fdata = [{
|
||||||
|
|||||||
@@ -1,81 +1,78 @@
|
|||||||
<div class="pic-container-scroll">
|
<div class="pic-container-scroll">
|
||||||
<div class="img-container">
|
<div class="img-container">
|
||||||
<div id="imgContainer" :class="ParamSort.layout.value=='imageList'?'imagelist':''">
|
<div id="imgContainer" :class="ParamSort.layout.value=='imageList'?'imagelist':''">
|
||||||
<div
|
<van-checkbox-group v-model="ParamImages.operation.rids">
|
||||||
class="imgitem"
|
<div
|
||||||
v-for="item in ParamImages.Newdatas"
|
class="imgitem"
|
||||||
:style="{top:item.ptop+'px',left:item.pleft+'px',width:item.pwidth+'px'}"
|
v-for="item in ParamImages.Newdatas"
|
||||||
:key="item.rid"
|
:style="{top:item.ptop+'px',left:item.pleft+'px',width:item.pwidth+'px'}"
|
||||||
:rid="item.rid"
|
:key="item.rid"
|
||||||
@click="ImagesDetailClick(item.rid,item.index)">
|
:rid="item.rid"
|
||||||
<div class="imgbox">
|
@click="ImagesDetailClick(item.rid,item.index)">
|
||||||
<div
|
<van-checkbox v-if="ParamImages.checked" class="imgchecked" icon-size="20px" :name="item.rid" disabled></van-checkbox>
|
||||||
class="imgbox-border radius"
|
<div class="imgbox">
|
||||||
:style="{height: item.pheight+'px',width: (item.pwidth-8)+'px',background:'#'+item.color}"
|
<div
|
||||||
v-bind:class="item.opentype=='video'||item.opentype=='audio'?'border':''">
|
class="imgbox-border radius"
|
||||||
<div class="div-black" :data-rid="item.rid">
|
:style="{height: item.pheight+'px',width: (item.pwidth-8)+'px',background:'#'+item.color}"
|
||||||
<div class="bck"></div>
|
v-bind:class="item.opentype=='video'||item.opentype=='audio'?'border':''">
|
||||||
<img
|
<div class="div-black" :data-rid="item.rid">
|
||||||
class="img el-image__inner opacity"
|
<div class="bck"></div>
|
||||||
:ref="'ref_'+item.rid"
|
<img
|
||||||
@load="ImagesImgload(item.rid)"
|
|
||||||
:src="item.icondata"
|
|
||||||
alt="" />
|
|
||||||
<!-- <img
|
|
||||||
class="img el-image__inner opacity"
|
class="img el-image__inner opacity"
|
||||||
:ref="'ref_'+item.rid"
|
:ref="'ref_'+item.rid"
|
||||||
@load="ImagesImgload(item.rid)"
|
@load="ImagesImgload(item.rid)"
|
||||||
:src="item.icondata"
|
:src="item.icondata"
|
||||||
@touchevent="ImagesTouchEvent"
|
alt="" />
|
||||||
@touchstart="ImagesTouchStart"
|
<div class="circular-box">
|
||||||
@touchmove="ImagesTouchMove"
|
<div class="circular-item-box">
|
||||||
@touchend="ImagesTouchEnd"
|
<div class="circular-item first"><i class="ri-file-search-line icon"></i></div>
|
||||||
alt="" /> -->
|
<div class="circular-item two"><i class="ri-share-line icon"></i></div>
|
||||||
<div class="circular-box">
|
<div class="circular-item three"><i class="ri-download-2-line icon"></i></div>
|
||||||
<div class="circular-item-box">
|
</div>
|
||||||
<div class="circular-item first"><i class="ri-file-search-line icon"></i></div>
|
<div class="round"></div>
|
||||||
<div class="circular-item two"><i class="ri-share-line icon"></i></div>
|
<div></div>
|
||||||
<div class="circular-item three"><i class="ri-download-2-line icon"></i></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="round"></div>
|
|
||||||
<div></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="ParamSort.showinformation.value.indexOf('tagging')>-1&&parseInt(item.annonationnum)>0" class="annotation">{{item.annonationnum}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bottom-img-message">
|
||||||
<div v-if="ParamSort.showinformation.value.indexOf('tagging')>-1&&parseInt(item.annonationnum)>0" class="annotation">{{item.annonationnum}}</div>
|
<div class="name">
|
||||||
</div>
|
<div class="text" v-if="ParamSort.showinformation.value.indexOf('name')>-1||ParamSort.showinformation.value.indexOf('extension')>-1">
|
||||||
<div class="bottom-img-message">
|
<template v-if="ParamSort.showinformation.value.indexOf('name')>-1" v-cloak>{{item.name}}</template><template v-if="ParamSort.showinformation.value.indexOf('extension')>-1" v-cloak>.{{item.ext}}</template>
|
||||||
<div class="name" v-if="ParamSort.showinformation.value.indexOf('name')>-1 || ParamSort.showinformation.value.indexOf('extension')>-1">
|
</div>
|
||||||
<span v-if="ParamSort.showinformation.value.indexOf('name')>-1" v-cloak>{{item.name}}</span>
|
<div v-if="!ParamImages.checked" class="circulars" @click.stop="ImagesMoreClick(item.rid,item.dpath)">
|
||||||
<span v-if="ParamSort.showinformation.value.indexOf('extension')>-1" class="suffix" v-cloak>.{{item.ext}}</span>
|
<i class="ri-more-fill"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<template v-if="ParamSort.showinformation.value.indexOf('other')>-1">
|
||||||
|
<div class="other" v-if="ParamSort.otherinformation.value=='size'">
|
||||||
|
<span>{{item.width}} × {{item.height}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='filesize'">
|
||||||
|
<span>{{item.fsize}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='tag'">
|
||||||
|
<span v-if="!item.tags" class="label">-</span>
|
||||||
|
<span v-else class="label" v-for="tg in item.tags">•{{tg}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='grade'">
|
||||||
|
<van-icon v-for="item in parseInt(item.grade)" class="score active" name="star"></van-icon><van-icon v-for="item in 5-parseInt(item.grade)" class="score" name="star"></van-icon>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='btime'">
|
||||||
|
<span>{{item.btime}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='dateline'">
|
||||||
|
<span>{{item.dateline}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="other" v-else-if="ParamSort.otherinformation.value=='mtime'">
|
||||||
|
<span>{{item.mtime}}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="ParamSort.showinformation.value.indexOf('other')>-1">
|
|
||||||
<div class="other" v-if="ParamSort.otherinformation.value=='size'">
|
|
||||||
<span>{{item.width}} × {{item.height}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='filesize'">
|
|
||||||
<span>{{item.fsize}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='tag'">
|
|
||||||
<span v-if="!item.tags" class="label">-</span>
|
|
||||||
<span v-else class="label" v-for="tg in item.tags">•{{tg}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='grade'">
|
|
||||||
<van-icon v-for="item in parseInt(item.grade)" class="score active" name="star"></van-icon><van-icon v-for="item in 5-parseInt(item.grade)" class="score" name="star"></van-icon>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='btime'">
|
|
||||||
<span>{{item.btime}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='dateline'">
|
|
||||||
<span>{{item.dateline}}</span>
|
|
||||||
</div>
|
|
||||||
<div class="other" v-else-if="ParamSort.otherinformation.value=='mtime'">
|
|
||||||
<span>{{item.mtime}}</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</van-checkbox-group>
|
||||||
<template v-if="ParamImages.data.length&&ParamBasic.page>=ParamBasic.totalpage&&!ParamImages.loading&&!ParamImages.valloading">
|
<template v-if="ParamImages.data.length&&ParamBasic.page>=ParamBasic.totalpage&&!ParamImages.loading&&!ParamImages.valloading">
|
||||||
<div style="position: absolute;bottom: 0;left: 0;width: 100%;line-height: 40px;text-align: center;color: var(--content-text);font-size: 14px;">没有更多了</div>
|
<div style="position: absolute;bottom: 0;left: 0;width: 100%;line-height: 40px;text-align: center;color: var(--content-text);font-size: 14px;">没有更多了</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -99,36 +96,18 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<van-overlay :show="ParamImages.loading" :z-index="5000" />
|
<van-overlay :show="ParamImages.loading" :z-index="5000" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var ImagesData = {
|
var ImagesData = $.extend({},{
|
||||||
ParamImages:{
|
ParamImages:{
|
||||||
resize:0,
|
resize:0,
|
||||||
data:[],
|
data:[],
|
||||||
Newdatas:{},
|
Newdatas:{},
|
||||||
type:'refresh',
|
type:'refresh',
|
||||||
|
checked:false,
|
||||||
operation:{
|
operation:{
|
||||||
time:'',
|
type:'',
|
||||||
istouch:false,
|
rids:[]
|
||||||
target:'',
|
|
||||||
click:true,
|
|
||||||
details:{
|
|
||||||
touchMinw:0,
|
|
||||||
touchMaxw:0,
|
|
||||||
touchMinh:0,
|
|
||||||
touchMaxh:0,
|
|
||||||
},
|
|
||||||
share:{
|
|
||||||
touchMinw:0,
|
|
||||||
touchMaxw:0,
|
|
||||||
touchMinh:0,
|
|
||||||
touchMaxh:0,
|
|
||||||
},
|
|
||||||
down:{
|
|
||||||
touchMinw:0,
|
|
||||||
touchMaxw:0,
|
|
||||||
touchMinh:0,
|
|
||||||
touchMaxh:0,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
imageList:{
|
imageList:{
|
||||||
maxNewtop:0,
|
maxNewtop:0,
|
||||||
@@ -170,7 +149,7 @@
|
|||||||
loading:true,
|
loading:true,
|
||||||
valloading:false
|
valloading:false
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
var ImagesWatchJs = {
|
var ImagesWatchJs = {
|
||||||
'ParamImages.resize':debounce(function(val){
|
'ParamImages.resize':debounce(function(val){
|
||||||
var self = this;
|
var self = this;
|
||||||
@@ -189,6 +168,31 @@
|
|||||||
deep:true,
|
deep:true,
|
||||||
// immediate:true
|
// immediate:true
|
||||||
},
|
},
|
||||||
|
'ParamImages.checked':{
|
||||||
|
handler(val){
|
||||||
|
if(val){
|
||||||
|
this.ParamFooter.data.clear.show = false;
|
||||||
|
this.ParamFooter.data.search.show = false;
|
||||||
|
this.ParamFooter.data.screen.show = false;
|
||||||
|
this.ParamFooter.data.sort.show = false;
|
||||||
|
this.ParamFooter.data.user.show = false;
|
||||||
|
this.ParamFooter.data.collectcheck.show = true;
|
||||||
|
this.ParamFooter.data.outcheck.show = true;
|
||||||
|
}else{
|
||||||
|
this.CommonSetFooterBadge();
|
||||||
|
this.ParamFooter.data.search.show = true;
|
||||||
|
this.ParamFooter.data.screen.show = true;
|
||||||
|
this.ParamFooter.data.sort.show = true;
|
||||||
|
this.ParamFooter.data.user.show = true;
|
||||||
|
this.ParamFooter.data.collectcheck.show = false;
|
||||||
|
this.ParamFooter.data.outcheck.show = false;
|
||||||
|
}
|
||||||
|
this.ParamImages.type = 'refresh';
|
||||||
|
this.ImagesLayoutInit();
|
||||||
|
},
|
||||||
|
deep:true,
|
||||||
|
// immediate:true
|
||||||
|
},
|
||||||
'ParamImages.loading':{
|
'ParamImages.loading':{
|
||||||
handler(val){
|
handler(val){
|
||||||
var self = this;
|
var self = this;
|
||||||
@@ -208,107 +212,31 @@
|
|||||||
immediate:true
|
immediate:true
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var ImagesJs = {
|
var ImagesJs = $.extend({},{
|
||||||
ImagesTouchEvent(){
|
ImagesMoreClick(rid,dpath){
|
||||||
},
|
this.ParamImages.operation.rids = [rid];
|
||||||
ImagesTouchStart(e){
|
this.ImagesMore.dpath = dpath;
|
||||||
// var self = this;
|
this.ImagesMore.visible = true;
|
||||||
// self.ParamImages.operation.click = false;
|
|
||||||
// self.ParamImages.operation.time = setTimeout(function(){
|
|
||||||
// self.asdfasdfdsf(e);
|
|
||||||
// },600);
|
|
||||||
},
|
|
||||||
ImagesTouchStartLongpress(e){
|
|
||||||
var self = this;
|
|
||||||
var img = $(e.target);
|
|
||||||
self.ParamImages.operation.target = img.closest('.div-black');
|
|
||||||
var circular = img.siblings('.circular-box');
|
|
||||||
var style = {
|
|
||||||
width:img.width()+'px',
|
|
||||||
height:img.height()+'px',
|
|
||||||
top:img.offset().top+'px',
|
|
||||||
left:img.offset().left+'px',
|
|
||||||
}
|
|
||||||
var box = $(document).width();
|
|
||||||
|
|
||||||
var touch = e.touches[0];
|
|
||||||
var pageR = touch.pageX+22.5+62;
|
|
||||||
var pageT = 22.5+70;
|
|
||||||
var pageL = 62+22.5;
|
|
||||||
var pageB = touch.pageX+22.5+62;
|
|
||||||
circular.addClass('top');
|
|
||||||
if(pageR>box){
|
|
||||||
circular.addClass('right')
|
|
||||||
}
|
|
||||||
if(pageL>touch.pageX){
|
|
||||||
circular.addClass('left')
|
|
||||||
}
|
|
||||||
self.ParamImages.operation.istouch = true;
|
|
||||||
circular.css({
|
|
||||||
top:touch.pageY-((circular.width()+6)/2),
|
|
||||||
left:touch.pageX-((circular.height()+6)/2),
|
|
||||||
});
|
|
||||||
img.css(style);
|
|
||||||
img.closest('.div-black').addClass('fixed');
|
|
||||||
|
|
||||||
setTimeout(function(){
|
|
||||||
var first = circular.find('.circular-item.first');
|
|
||||||
self.ParamImages.operation.details = {
|
|
||||||
touchMinw:first.offset().left,
|
|
||||||
touchMaxw:first.offset().left+45,
|
|
||||||
touchMinh:first.offset().top,
|
|
||||||
touchMaxh:first.offset().top+45,
|
|
||||||
};
|
|
||||||
var two = circular.find('.circular-item.two');
|
|
||||||
self.ParamImages.operation.share = {
|
|
||||||
touchMinw:two.offset().left,
|
|
||||||
touchMaxw:two.offset().left+45,
|
|
||||||
touchMinh:two.offset().top,
|
|
||||||
touchMaxh:two.offset().top+45,
|
|
||||||
};
|
|
||||||
var three = circular.find('.circular-item.three');
|
|
||||||
self.ParamImages.operation.share = {
|
|
||||||
touchMinw:three.offset().left,
|
|
||||||
touchMaxw:three.offset().left+45,
|
|
||||||
touchMinh:three.offset().top,
|
|
||||||
touchMaxh:three.offset().top+45,
|
|
||||||
};
|
|
||||||
},500)
|
|
||||||
|
|
||||||
},
|
|
||||||
ImagesTouchMove(e){
|
|
||||||
var self = this;
|
|
||||||
var touch = e.touches[0];
|
|
||||||
var x = touch.pageX;
|
|
||||||
var y = touch.pageY;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
ImagesTouchEnd(e){
|
|
||||||
var self = this;
|
|
||||||
// e.preventDefault();
|
|
||||||
clearTimeout(self.ParamImages.operation.time);
|
|
||||||
self.ParamImages.operation.click = true;
|
|
||||||
if(self.ParamImages.operation.istouch){
|
|
||||||
self.ParamImages.operation.target.removeClass('fixed');
|
|
||||||
self.ParamImages.operation.target.find('.circular-box').removeClass('top left right');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
ImagesDetailClick(rid,index){
|
ImagesDetailClick(rid,index){
|
||||||
var self = this;
|
var self = this;
|
||||||
// this.ParamDetail.ridIndex = index;
|
if(self.ParamImages.checked){
|
||||||
// this.ParamDetail.rid = rid;
|
var index = self.ParamImages.operation.rids.indexOf(rid);
|
||||||
// this.ParamDetail.PopupVisible = true;
|
if(index > -1){
|
||||||
|
self.ParamImages.operation.rids.splice(index,1);
|
||||||
var arr = [];
|
}else{
|
||||||
for(var i in self.ParamImages.data){
|
self.ParamImages.operation.rids.push(rid);
|
||||||
arr.push(self.ParamImages.data[i].rid);
|
}
|
||||||
|
}else{
|
||||||
|
var arr = [];
|
||||||
|
for(var i in self.ParamImages.data){
|
||||||
|
arr.push(self.ParamImages.data[i].rid);
|
||||||
|
}
|
||||||
|
arr = arr.join(',');
|
||||||
|
window.localStorage.setItem('imgs',arr);
|
||||||
|
window.location.href = SITEURL+MOD_URL+'&op=details#rid='+rid;
|
||||||
}
|
}
|
||||||
arr = arr.join(',');
|
|
||||||
window.localStorage.setItem('imgs',arr);
|
|
||||||
window.location.href = SITEURL+MOD_URL+'&op=details#rid='+rid;
|
|
||||||
},
|
},
|
||||||
ImagesMounted(){
|
ImagesMounted(){
|
||||||
var self = this;
|
var self = this;
|
||||||
@@ -317,7 +245,13 @@
|
|||||||
$('.pic-container-scroll').scroll(function(e){
|
$('.pic-container-scroll').scroll(function(e){
|
||||||
var afterScrollTop = $(this).scrollTop(),
|
var afterScrollTop = $(this).scrollTop(),
|
||||||
updown = afterScrollTop - beforeScrollTop;
|
updown = afterScrollTop - beforeScrollTop;
|
||||||
if( updown === 0 ) return false;
|
if(afterScrollTop == 0){
|
||||||
|
self.ParamFooter.IsShow = 'up';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if( updown === 0 ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
beforeScrollTop = afterScrollTop;
|
beforeScrollTop = afterScrollTop;
|
||||||
self.ParamFooter.IsShow = updown > 0 ? "down" : "up"; //判断往上还是往下
|
self.ParamFooter.IsShow = updown > 0 ? "down" : "up"; //判断往上还是往下
|
||||||
self.ImagesLayoutScrollShow();
|
self.ImagesLayoutScrollShow();
|
||||||
@@ -339,35 +273,6 @@
|
|||||||
var item = $(self.$refs['ref_'+rid]);
|
var item = $(self.$refs['ref_'+rid]);
|
||||||
item.removeClass('opacity');
|
item.removeClass('opacity');
|
||||||
item.parents('.imgbox-border').css('background','').removeClass('radius');
|
item.parents('.imgbox-border').css('background','').removeClass('radius');
|
||||||
self.ParamImages.operation.click = 0;
|
|
||||||
// item[0].addEventListener("touchstart",function(e){
|
|
||||||
// var touch = e.touches[0];
|
|
||||||
// self.ParamImages.operation.click = touch.clientY;
|
|
||||||
// self.ParamImages.operation.time = setTimeout(function(){
|
|
||||||
// self.ParamImages.operation.click = true;
|
|
||||||
// self.ImagesTouchStartLongpress(e);
|
|
||||||
// },600);
|
|
||||||
|
|
||||||
|
|
||||||
// },false);
|
|
||||||
|
|
||||||
// item[0].addEventListener("touchmove",function(e){
|
|
||||||
// var touch = e.touches[0];
|
|
||||||
// console.log(Math.abs(touch.clientY - self.ParamImages.operation.click))
|
|
||||||
// if(Math.abs(touch.clientY - self.ParamImages.operation.click) < 10){
|
|
||||||
// e.preventDefault();
|
|
||||||
// }
|
|
||||||
// clearTimeout(self.ParamImages.operation.time);
|
|
||||||
|
|
||||||
// },false);
|
|
||||||
// item[0].addEventListener("touchend",function(e){
|
|
||||||
// clearTimeout(self.ParamImages.operation.time);
|
|
||||||
// // if(self.ParamImages.operation.istouch){
|
|
||||||
// self.ParamImages.operation.target.removeClass('fixed');
|
|
||||||
// self.ParamImages.operation.target.find('.circular-box').removeClass('top left right');
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// },false)
|
|
||||||
},
|
},
|
||||||
ImagesLayoutInit(){
|
ImagesLayoutInit(){
|
||||||
var self = this;
|
var self = this;
|
||||||
@@ -396,9 +301,12 @@
|
|||||||
$('#imgContainer').height(0);
|
$('#imgContainer').height(0);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var OtherHeight = 0
|
var OtherHeight = 0;
|
||||||
|
if(!self.ParamImages.checked){
|
||||||
|
OtherHeight = 30;
|
||||||
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
||||||
OtherHeight += 45;
|
OtherHeight = 45;
|
||||||
}
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
||||||
OtherHeight += 20;
|
OtherHeight += 20;
|
||||||
@@ -585,9 +493,12 @@
|
|||||||
self.ParamImages.imageList.newWidth = (boxWidth-(columns*self.ParamImages.imageList.Margin-self.ParamImages.imageList.Margin)) / columns;
|
self.ParamImages.imageList.newWidth = (boxWidth-(columns*self.ParamImages.imageList.Margin-self.ParamImages.imageList.Margin)) / columns;
|
||||||
self.ParamImages.imageList.newHeight = 2 / 3 * self.ParamImages.imageList.newWidth;
|
self.ParamImages.imageList.newHeight = 2 / 3 * self.ParamImages.imageList.newWidth;
|
||||||
|
|
||||||
var OtherHeight = 0
|
var OtherHeight = 0;
|
||||||
|
if(!self.ParamImages.checked){
|
||||||
|
OtherHeight = 30;
|
||||||
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
||||||
OtherHeight += 45;
|
OtherHeight = 45;
|
||||||
}
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
||||||
OtherHeight += 20;
|
OtherHeight += 20;
|
||||||
@@ -654,9 +565,12 @@
|
|||||||
self.ParamImages.imgageWaterfall.imgWidth = 252;
|
self.ParamImages.imgageWaterfall.imgWidth = 252;
|
||||||
self.ParamImages.imgageWaterfall.columns = parseInt(boxWidth/self.ParamImages.imgageWaterfall.imgWidth);
|
self.ParamImages.imgageWaterfall.columns = parseInt(boxWidth/self.ParamImages.imgageWaterfall.imgWidth);
|
||||||
}
|
}
|
||||||
var OtherHeight = 0
|
var OtherHeight = 0;
|
||||||
|
if(!self.ParamImages.checked){
|
||||||
|
OtherHeight = 30;
|
||||||
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('name')>-1 || self.ParamSort.showinformation.value.indexOf('extension')>-1){
|
||||||
OtherHeight += 45;
|
OtherHeight = 45;
|
||||||
}
|
}
|
||||||
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
if(self.ParamSort.showinformation.value.indexOf('other')>-1){
|
||||||
OtherHeight += 20;
|
OtherHeight += 20;
|
||||||
@@ -751,5 +665,5 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #right>
|
<template #right>
|
||||||
<van-dropdown-menu>
|
<van-dropdown-menu v-if="ParamLibrary.data.length">
|
||||||
<van-dropdown-item @change="ChangeLibrary" v-model="ParamLibrary.activeId" :options="ParamLibrary.fdata" />
|
<van-dropdown-item @change="ChangeLibrary" v-model="ParamLibrary.activeId" :options="ParamLibrary.fdata" />
|
||||||
</van-dropdown-menu>
|
</van-dropdown-menu>
|
||||||
|
<!-- <van-icon style="display: block;margin-left: 18px;" name="setting-o" @click="ParamImages.checked=true" size="18" /> -->
|
||||||
</template>
|
</template>
|
||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
<div class="pic-container">
|
<div class="pic-container">
|
||||||
@@ -51,11 +51,13 @@
|
|||||||
<!--{template mobile/components/index/JsSort}-->
|
<!--{template mobile/components/index/JsSort}-->
|
||||||
<!--{template mobile/components/index/JsScreen}-->
|
<!--{template mobile/components/index/JsScreen}-->
|
||||||
<!--{template mobile/components/index/JsMy}-->
|
<!--{template mobile/components/index/JsMy}-->
|
||||||
|
<!--{template mobile/components/index/image/more}-->
|
||||||
|
<!--{template mobile/components/index/image/classify}-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#dzzoffice',
|
el: '#dzzoffice',
|
||||||
data: function() {
|
data: function() {
|
||||||
return $.extend({},MyData,SearchData,SortData,ImagesData,ScreenData,{
|
return $.extend({},MyData,SearchData,SortData,ImagesData,ScreenData,ImagesMoreData,ImagesClassifyData,{
|
||||||
ParamFooter:{
|
ParamFooter:{
|
||||||
IsShow:'up',
|
IsShow:'up',
|
||||||
data:{
|
data:{
|
||||||
@@ -63,7 +65,9 @@
|
|||||||
search:{type:'search',icon:'icon ri-search-line',show:true},
|
search:{type:'search',icon:'icon ri-search-line',show:true},
|
||||||
screen:{type:'screen',icon:'icon ri-filter-2-fill',show:false},
|
screen:{type:'screen',icon:'icon ri-filter-2-fill',show:false},
|
||||||
sort:{type:'sort',icon:'icon ri-arrow-up-down-fill',show:true},
|
sort:{type:'sort',icon:'icon ri-arrow-up-down-fill',show:true},
|
||||||
user:{type:'user',icon:'',show:true}
|
user:{type:'user',icon:'',show:true},
|
||||||
|
collectcheck:{type:'collectcheck',icon:'icon ri-star-fill',show:false},
|
||||||
|
outcheck:{type:'outcheck',icon:'icon ri-close-fill',show:false}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ParamDataInit:{
|
ParamDataInit:{
|
||||||
@@ -166,7 +170,7 @@
|
|||||||
}
|
}
|
||||||
this.StartData();
|
this.StartData();
|
||||||
},
|
},
|
||||||
methods:$.extend({},CommonJs,SearchJs,MyJs,ScreenJs,SortJs,ImagesJs,{
|
methods:$.extend({},CommonJs,SearchJs,MyJs,ScreenJs,SortJs,ImagesJs,ImagesMoreMethods,ImagesClassifyMethods,{
|
||||||
StartData(){
|
StartData(){
|
||||||
this.CommonLibrary();
|
this.CommonLibrary();
|
||||||
},
|
},
|
||||||
@@ -179,6 +183,7 @@
|
|||||||
window.location.reload();
|
window.location.reload();
|
||||||
},
|
},
|
||||||
handleFooterClick(type){
|
handleFooterClick(type){
|
||||||
|
var self = this;
|
||||||
if(type == 'search'){
|
if(type == 'search'){
|
||||||
this.ParamSearch.PopupVisible = true;
|
this.ParamSearch.PopupVisible = true;
|
||||||
}else if(type == 'screen'){
|
}else if(type == 'screen'){
|
||||||
@@ -190,6 +195,16 @@
|
|||||||
this.ScreenReset();
|
this.ScreenReset();
|
||||||
this.CommonSetFooterBadge();
|
this.CommonSetFooterBadge();
|
||||||
this.CommonhandleHash();
|
this.CommonhandleHash();
|
||||||
|
}else if(type == 'outcheck'){
|
||||||
|
this.ParamImages.operation.rids = [];
|
||||||
|
this.ParamImages.checked = false;
|
||||||
|
}else if(type == 'collectcheck'){
|
||||||
|
if(!self.ParamImages.operation.rids.length){
|
||||||
|
self.$notify({ type: 'warning', message: '请先选择文件' });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.ParamImages.operation.type = 'collect';
|
||||||
|
this.ImagesClassify.PopupVisible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,100 +1,98 @@
|
|||||||
<van-popup v-model="MyPopupVisible" class="my-popup" position="right">
|
<van-popup v-model="MyPopupVisible" class="my-popup" position="right">
|
||||||
<van-nav-bar title="我的设置" left-arrow @click-left="MyNavbarLeftClick"></van-nav-bar>
|
<van-nav-bar title="我的设置" left-arrow @click-left="MyNavbarLeftClick"></van-nav-bar>
|
||||||
<div class="scroll-box">
|
<div class="scroll-box">
|
||||||
<van-cell-group>
|
<van-cell-group>
|
||||||
<!--{if $_G[uid]}-->
|
<!--{if $_G[uid]}-->
|
||||||
<van-cell clickable title="个人设置" is-link @click="MyClick('person')"></van-cell>
|
<van-cell clickable title="个人设置" is-link @click="MyClick('person')"></van-cell>
|
||||||
<!--{/if}-->
|
<!--{/if}-->
|
||||||
<van-cell clickable title="帮助文档" @click="MyClick('help')">
|
<van-cell clickable title="帮助文档" @click="MyClick('help')">
|
||||||
<template #right-icon>
|
<template #right-icon>
|
||||||
<i class="ri-arrow-right-up-line"></i>
|
<i class="ri-arrow-right-up-line"></i>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell clickable title="问题反馈" @click="MyClick('question')">
|
<van-cell clickable title="问题反馈" @click="MyClick('question')">
|
||||||
<template #right-icon>
|
<template #right-icon>
|
||||||
<i class="ri-arrow-right-up-line"></i>
|
<i class="ri-arrow-right-up-line"></i>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell clickable title="关于PicHome" is-link @click="MyClick('about')"></van-cell>
|
<van-cell clickable title="关于PicHome" is-link @click="MyClick('about')"></van-cell>
|
||||||
<!--{if $_G[uid]}-->
|
<!--{if $_G[uid]}-->
|
||||||
<van-cell clickable title="退出登录" @click="MyClick('out')">
|
<van-cell clickable title="退出登录" @click="MyClick('out')">
|
||||||
<template #right-icon>
|
<template #right-icon>
|
||||||
<i class="ri-logout-box-r-line"></i>
|
<i class="ri-logout-box-r-line"></i>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<!--{else}-->
|
<!--{else}-->
|
||||||
<van-cell clickable title="登录PicHome" @click="MyClick('login')" is-link></van-cell>
|
<van-cell clickable title="登录PicHome" @click="MyClick('login')" is-link></van-cell>
|
||||||
<!--{/if}-->
|
<!--{/if}-->
|
||||||
|
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
</div>
|
</div>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
<van-popup v-model="AboutPopupVisible" class="about-popup" position="right">
|
<van-popup v-model="AboutPopupVisible" class="about-popup" position="right">
|
||||||
<van-nav-bar title="关于PicHome" left-arrow @click-left="AboutNavbarLeftClick"></van-nav-bar>
|
<van-nav-bar title="关于PicHome" left-arrow @click-left="AboutNavbarLeftClick"></van-nav-bar>
|
||||||
<div class="scroll-box">
|
<div class="scroll-box">
|
||||||
<div class="aboutlogo">
|
<div class="aboutlogo">
|
||||||
<img src="dzz/pichome/image/phlogo.png" alt="">
|
<img src="dzz/pichome/image/phlogo.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="aboutmessage">
|
<div class="aboutmessage">
|
||||||
<div class="aboutlist">
|
<div class="aboutlist">
|
||||||
<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>
|
<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="aboutlist">
|
<div class="aboutlist">
|
||||||
<span class="title">版本信息:</span><span class="mes">$_G[setting][version]</span>
|
<span class="title">版本信息:</span><span class="mes">$_G[setting][version]</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="aboutlist">
|
<div class="aboutlist">
|
||||||
<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2021 欧奥图文</span>
|
<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2021 欧奥图文</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="aboutlist">
|
<div class="aboutlist">
|
||||||
<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>
|
<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var MyData = {
|
var MyData = {
|
||||||
MyPopupVisible:false,
|
MyPopupVisible:false,
|
||||||
AboutPopupVisible:false,
|
AboutPopupVisible:false,
|
||||||
};
|
};
|
||||||
var MyJs = {
|
var MyJs = {
|
||||||
MyNavbarLeftClick(){
|
MyNavbarLeftClick(){
|
||||||
this.MyPopupVisible = false;
|
this.MyPopupVisible = false;
|
||||||
},
|
},
|
||||||
AboutNavbarLeftClick(){
|
AboutNavbarLeftClick(){
|
||||||
this.AboutPopupVisible = false;
|
this.AboutPopupVisible = false;
|
||||||
},
|
},
|
||||||
MyClick(type){
|
MyClick(type){
|
||||||
var self = this;
|
var self = this;
|
||||||
switch(type){
|
switch(type){
|
||||||
case 'person':
|
case 'person':
|
||||||
window.location.href = MOD_URL + '&op=user&do=personal';
|
window.location.href = MOD_URL + '&op=user&do=personal';
|
||||||
break;
|
break;
|
||||||
case 'help':
|
case 'help':
|
||||||
window.location.href = "https://www.yuque.com/pichome";
|
window.location.href = "https://www.yuque.com/pichome";
|
||||||
break;
|
break;
|
||||||
case 'question':
|
case 'question':
|
||||||
window.location.href = "https://support.qq.com/products/340252";
|
window.location.href = "https://support.qq.com/products/340252";
|
||||||
break;
|
break;
|
||||||
case 'about':
|
case 'about':
|
||||||
this.AboutPopupVisible = true;
|
this.AboutPopupVisible = true;
|
||||||
break;
|
break;
|
||||||
case 'out':
|
case 'out':
|
||||||
self.$dialog.confirm({
|
self.$dialog.confirm({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
message: '您确定要注销登录?',
|
message: '您确定要注销登录?',
|
||||||
}).then(() => {
|
}).then(function(){
|
||||||
// on confirm
|
// on confirm
|
||||||
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
});
|
||||||
// on cancel
|
break;
|
||||||
});
|
case 'login':
|
||||||
break;
|
window.location.href = SITEURL+'user.php?mod=login';
|
||||||
case 'login':
|
break;
|
||||||
window.location.href = SITEURL+'user.php?mod=login';
|
}
|
||||||
break;
|
}
|
||||||
}
|
};
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
162
dzz/pichome/template/mobile/components/index/image/JsCollect.htm
Normal file
162
dzz/pichome/template/mobile/components/index/image/JsCollect.htm
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
<script type="text/javascript">
|
||||||
|
Vue.component('collect-all', {
|
||||||
|
template: `<van-collapse v-model="parammodel.active" :border="false">
|
||||||
|
<van-collapse-item v-for="item in paramdata" :key="item.cid" :name="item.cid" :class="{'active':parammodel.checkedvalue.indexOf(item.cid)>-1}" :ref="'collapse_'+item.cid">
|
||||||
|
<template #title>
|
||||||
|
<div @click.stop.self.prevent="select(item)">
|
||||||
|
{{item.catname}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #right-icon>
|
||||||
|
<template v-if="!item.leaf">
|
||||||
|
<i @click.stop="toggle(item)" class="van-icon van-icon-arrow van-cell__right-icon"></i>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div style="width: 20px;"></div>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<div class="van-cell" v-if="item.loading">
|
||||||
|
<van-loading type="spinner" size="24px" />
|
||||||
|
</div>
|
||||||
|
<template v-if="item.children && item.children.length">
|
||||||
|
<collect-all
|
||||||
|
:parammodel="parammodel"
|
||||||
|
:paramdata="item.children"
|
||||||
|
@select="select"
|
||||||
|
:expandedkeys="expandedkeys"
|
||||||
|
:keyword="keyword"
|
||||||
|
@append="append"
|
||||||
|
:issearch="issearch"
|
||||||
|
:level="parseInt(level)+1"></collect-all>
|
||||||
|
</template>
|
||||||
|
</van-collapse-item>
|
||||||
|
</van-collapse>`,
|
||||||
|
props:['paramdata','parammodel','expandedkeys','keyword','level','issearch'],
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
getnum:0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if(this.level == 0){
|
||||||
|
this.getdata();
|
||||||
|
}else{
|
||||||
|
this.openChild(this.paramdata);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
toggle(item){
|
||||||
|
var self = this;
|
||||||
|
var cid = item.cid;
|
||||||
|
if(self.$refs['collapse_'+cid] && self.$refs['collapse_'+cid].length){
|
||||||
|
var expanded = self.$refs['collapse_'+cid][0].expanded;
|
||||||
|
if(!item.loaded){
|
||||||
|
self.getdata(item);
|
||||||
|
}
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.$refs['collapse_'+cid][0].toggle(!expanded);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
append(data){
|
||||||
|
var self = this;
|
||||||
|
self.$emit('append',data);
|
||||||
|
},
|
||||||
|
select(data){
|
||||||
|
var self = this;
|
||||||
|
self.$emit('select',data);
|
||||||
|
},
|
||||||
|
getdata(data){
|
||||||
|
var self = this;
|
||||||
|
var param = {};
|
||||||
|
if(data){
|
||||||
|
data.loading = true;
|
||||||
|
if(data.parent){
|
||||||
|
param['clid'] = data.clid;
|
||||||
|
}else{
|
||||||
|
param['clid'] = data.clid;
|
||||||
|
param['cid'] = data.cid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$.post('index.php?mod=collection&op=collect&do=collectlist',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
var arr = [];
|
||||||
|
for(var i in json.success){
|
||||||
|
var item = json.success[i];
|
||||||
|
if(data){
|
||||||
|
item['cid'] = parseInt(item['cid']);
|
||||||
|
item['parent'] = false;
|
||||||
|
}else{
|
||||||
|
item['cid'] = 'p'+item['clid'];
|
||||||
|
item['catname'] = item['name'];
|
||||||
|
item['parent'] = true;
|
||||||
|
}
|
||||||
|
item['children'] = [];
|
||||||
|
item['loaded'] = false;
|
||||||
|
item['loading'] = false;
|
||||||
|
item['leaf'] = false;
|
||||||
|
if(self.issearch){
|
||||||
|
if(self.expandedkeys.indexOf(item.cid)>-1){
|
||||||
|
arr.push(item);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
arr.push(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(data){
|
||||||
|
if(arr.length){
|
||||||
|
self.append({
|
||||||
|
data:data,
|
||||||
|
val:arr
|
||||||
|
});
|
||||||
|
data.leaf = false;
|
||||||
|
}else{
|
||||||
|
data.leaf = true;
|
||||||
|
}
|
||||||
|
data.loading = false;
|
||||||
|
data.loaded = true;
|
||||||
|
}else{
|
||||||
|
self.append({
|
||||||
|
type:'parent',
|
||||||
|
val:arr
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(self.getnum == 0){
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.getnum = 1;
|
||||||
|
self.openChild(arr);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
},
|
||||||
|
openChild(data){
|
||||||
|
if(this.expandedkeys.length){
|
||||||
|
for(var i in data){
|
||||||
|
var item = data[i];
|
||||||
|
if(parseInt(this.level) == 0){
|
||||||
|
if(this.expandedkeys.indexOf(item.cid)>-1){
|
||||||
|
this.getdata(item);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(this.expandedkeys.indexOf(parseInt(item.cid))>-1){
|
||||||
|
this.getdata(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
216
dzz/pichome/template/mobile/components/index/image/classify.htm
Normal file
216
dzz/pichome/template/mobile/components/index/image/classify.htm
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
<van-popup class="screen-popup page-popup" v-model="ImagesClassify.PopupVisible" position="right" style="width: 100%;height: 100%;" @open="ImagesClassifyPopupOpen" @closed="ImagesClassifyPopupClosed">
|
||||||
|
<van-nav-bar left-arrow @click-left="ImagesClassify.PopupVisible=false" title="选择收藏夹"></van-nav-bar>
|
||||||
|
<div class="scroll-box" style="padding: 0px 4px;height: 100%;overflow: auto;padding-bottom: 35%;">
|
||||||
|
<div class="screen-classify-collapse">
|
||||||
|
<collect-all
|
||||||
|
v-if="ImagesClassify.isshowloading"
|
||||||
|
:parammodel="ImagesClassify"
|
||||||
|
:paramdata="ImagesClassify.data"
|
||||||
|
@select="ImagesClassifyselect"
|
||||||
|
:expandedkeys="ImagesClassify.expandedkeys"
|
||||||
|
:keyword="ImagesClassify.search.name"
|
||||||
|
@append="ImagesClassifyAppenddata"
|
||||||
|
:issearch="ImagesClassify.issearch"
|
||||||
|
:level="0"></collect-all>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="pic-toolbar footershow">
|
||||||
|
<div class="tabbar">
|
||||||
|
<template v-for="item in ImagesClassify.Footer">
|
||||||
|
<template v-if="item.show">
|
||||||
|
<div class="tab-item" @click="ImagesClassifyFooterClick(item)">
|
||||||
|
<i :class="item.icon"></i>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</van-popup>
|
||||||
|
<van-popup class="seasrch-popup footer-popup" v-model="ImagesClassify.search.PopupVisible" round position="bottom" :style="{ height: '90%' }" @open="ImagesClassifySearchPopupOpen" @close="ImagesClassifySearchPopupClose">
|
||||||
|
<div class="vam-popup-title" @click="ImagesClassify.search.PopupVisible=false">搜索</div>
|
||||||
|
<div class="van-search-box">
|
||||||
|
<van-search class="popup-search-input" v-model.trim="ImagesClassify.search.name" shape="round" placeholder="输入关键词" maxlength="50" :clearable="false">
|
||||||
|
<template #right-icon>
|
||||||
|
<van-icon v-show="ImagesClassify.search.name" @click="ImagesClassify.search.name=''" name="cross" />
|
||||||
|
</template>
|
||||||
|
</van-search>
|
||||||
|
</div>
|
||||||
|
<div class="btn-bottom">
|
||||||
|
<van-row gutter="20">
|
||||||
|
<van-col span="24" style="text-align: center;">
|
||||||
|
<van-button round type="info" size="large" @click="ImagesClassify.search.PopupVisible=false">确定</van-button>
|
||||||
|
</van-col>
|
||||||
|
</van-row>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</van-popup>
|
||||||
|
<!--{template mobile/components/index/image/JsCollect}-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var ImagesClassifyData = {
|
||||||
|
ImagesClassify:{
|
||||||
|
PopupVisible:false,
|
||||||
|
data:[],
|
||||||
|
expandedkeys:[],
|
||||||
|
active:[],
|
||||||
|
value:'',
|
||||||
|
node:'',
|
||||||
|
checkedvalue:[],
|
||||||
|
loading:false,
|
||||||
|
isshowloading:false,
|
||||||
|
issearch:false,
|
||||||
|
Footer:{
|
||||||
|
search:{type:'search',icon:'icon ri-search-line',show:true},
|
||||||
|
collect:{type:'collect',icon:'icon ri-star-fill',show:true},
|
||||||
|
},
|
||||||
|
search:{
|
||||||
|
PopupVisible:false,
|
||||||
|
name:'',
|
||||||
|
realname:'',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var ImagesClassifyMethods = {
|
||||||
|
ImagesClassifyAppenddata(data){
|
||||||
|
if(data.type == 'parent'){
|
||||||
|
this.ImagesClassify.data = data.val;
|
||||||
|
}else{
|
||||||
|
data.data.children = data.val;
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ImagesClassifySearchPopupClose(){
|
||||||
|
var self = this;
|
||||||
|
if(this.ImagesClassify.search.realname != this.ImagesClassify.search.name){
|
||||||
|
self.ImagesClassify.isshowloading = false;
|
||||||
|
self.ImagesClassify.expandedkeys = [];
|
||||||
|
self.ImagesClassify.data = [];
|
||||||
|
if(this.ImagesClassify.search.name){
|
||||||
|
self.ImagesClassify.issearch = true;
|
||||||
|
$.post(MOD_URL+'&op=collect&do=searchcollect',{
|
||||||
|
keyword:self.ImagesClassify.search.name
|
||||||
|
},function(json){
|
||||||
|
for(var i in json.clid){
|
||||||
|
self.ImagesClassify.expandedkeys.push('p'+json.clid[i]);
|
||||||
|
self.ImagesClassify.active.push('p'+json.clid[i]);
|
||||||
|
}
|
||||||
|
for(var x in json.cids){
|
||||||
|
self.ImagesClassify.expandedkeys.push(parseInt(json.cids[x]));
|
||||||
|
self.ImagesClassify.active.push(parseInt(json.cids[x]));
|
||||||
|
}
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.ImagesClassify.isshowloading = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
},'json');
|
||||||
|
}else{
|
||||||
|
self.ImagesClassify.issearch = false;
|
||||||
|
self.$nextTick(function(){
|
||||||
|
self.ImagesClassify.isshowloading = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ImagesClassifyFooterClick(data){
|
||||||
|
var self = this;
|
||||||
|
switch(data.type){
|
||||||
|
case 'search':
|
||||||
|
self.ImagesClassify.search.PopupVisible = true;
|
||||||
|
break;
|
||||||
|
case 'collect':
|
||||||
|
if(!self.ParamImages.operation.rids.length){
|
||||||
|
self.$notify({ type: 'warning', message: '请先选择文件' });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!this.ImagesClassify.value){
|
||||||
|
self.$notify({ type: 'warning', message: '请选择分类' });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var param = {};
|
||||||
|
if(self.ImagesClassify.node.parent){
|
||||||
|
param = {
|
||||||
|
rids:self.ParamImages.operation.rids.join(','),
|
||||||
|
clid:self.ImagesClassify.node.clid
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
param = {
|
||||||
|
rids:self.ParamImages.operation.rids.join(','),
|
||||||
|
clid:self.ImagesClassify.node.clid,
|
||||||
|
cid:self.ImagesClassify.node.cid
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var url = 'index.php?mod=collection&op=collect&do=addfilecollect';
|
||||||
|
$.post(url,param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
if(self.ImagesClassify.node.parent){
|
||||||
|
var collect = {
|
||||||
|
name:self.ImagesClassify.node.catname,
|
||||||
|
key:self.ImagesClassify.node.cid
|
||||||
|
};
|
||||||
|
}else{
|
||||||
|
var collect = {
|
||||||
|
name:self.ImagesClassify.node.catname,
|
||||||
|
key:'p'+self.ImagesClassify.node.clid+'-'+self.ImagesClassify.node.pathkey.replaceAll('_','')
|
||||||
|
};
|
||||||
|
}
|
||||||
|
localStorage.setItem('collectkey', JSON.stringify(collect));
|
||||||
|
self.$notify({ type: 'success', message: '文件收藏成功' });
|
||||||
|
}else{
|
||||||
|
self.$notify({ type: 'warning', message: json.error });
|
||||||
|
}
|
||||||
|
self.ImagesClassify.PopupVisible = false;
|
||||||
|
},'json')
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ImagesClassifyselect(data){
|
||||||
|
if(this.ImagesClassify.value == data.cid){
|
||||||
|
this.ImagesClassify.value = '';
|
||||||
|
this.ImagesClassify.node = '';
|
||||||
|
this.ImagesClassify.checkedvalue = [];
|
||||||
|
}else{
|
||||||
|
this.ImagesClassify.node = JSON.parse(JSON.stringify(data));
|
||||||
|
this.ImagesClassify.value = data.cid;
|
||||||
|
this.ImagesClassify.checkedvalue = [data.cid];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ImagesClassifySearchPopupOpen(){
|
||||||
|
var self = this;
|
||||||
|
this.ImagesClassify.search.realname = JSON.parse(JSON.stringify(this.ImagesClassify.search.name));
|
||||||
|
},
|
||||||
|
ImagesClassifyPopupOpen(){
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
var keys = collectkey.key.split('-');
|
||||||
|
if(keys.length>1){
|
||||||
|
keys.pop();
|
||||||
|
}
|
||||||
|
var newkeys = [];
|
||||||
|
for(var i in keys){
|
||||||
|
if(keys[i].indexOf('p')>-1){
|
||||||
|
newkeys.push(keys[i]);
|
||||||
|
}else{
|
||||||
|
newkeys.push(parseInt(keys[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ImagesClassify.expandedkeys = newkeys;
|
||||||
|
this.ImagesClassify.active = newkeys;
|
||||||
|
}
|
||||||
|
this.ImagesClassify.isshowloading = true;
|
||||||
|
},
|
||||||
|
ImagesClassifyPopupClosed(){
|
||||||
|
var self = this;
|
||||||
|
this.ImagesClassify.loading = false;
|
||||||
|
this.ImagesClassify.isshowloading = false;
|
||||||
|
this.ImagesClassify.data = [];
|
||||||
|
this.ImagesClassify.active = [];
|
||||||
|
this.ImagesClassify.value = '';
|
||||||
|
this.ImagesClassify.node = '';
|
||||||
|
this.ImagesClassify.checkedvalue = [];
|
||||||
|
this.ImagesClassify.search.name = '';
|
||||||
|
this.ImagesClassify.search.realname = '';
|
||||||
|
this.ParamImages.operation.rids = [];
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
54
dzz/pichome/template/mobile/components/index/image/more.htm
Normal file
54
dzz/pichome/template/mobile/components/index/image/more.htm
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<van-action-sheet
|
||||||
|
style="padding-top: 10px;"
|
||||||
|
v-model="ImagesMore.visible"
|
||||||
|
:actions="ImagesMore.data"
|
||||||
|
cancel-text="取消"
|
||||||
|
@select="ImagesMoreSheetChange"
|
||||||
|
close-on-click-action>
|
||||||
|
</van-action-sheet>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var ImagesMoreData = {
|
||||||
|
ImagesMore:{
|
||||||
|
visible:false,
|
||||||
|
dpath:'',
|
||||||
|
data:[
|
||||||
|
{ name: '收藏',type:'collect' },
|
||||||
|
{ name: '分享',type:'share' },
|
||||||
|
{ name: '下载',type:'down' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var ImagesMoreMethods = {
|
||||||
|
ImagesMoreSheetChange(data){
|
||||||
|
var self = this;
|
||||||
|
switch(data.type){
|
||||||
|
case 'share':
|
||||||
|
$.post('{MOD_URL}&op=ajax&operation=createshare',{
|
||||||
|
rid:self.ParamImages.operation.rids.join(',')
|
||||||
|
},function(data){
|
||||||
|
if(data.success){
|
||||||
|
self.$dialog.confirm({
|
||||||
|
title: '',
|
||||||
|
confirmButtonText:'复制地址',
|
||||||
|
message: data.success,
|
||||||
|
}).then(function(){
|
||||||
|
self.CommonCopyTxt(data.success)
|
||||||
|
}).catch(function(){
|
||||||
|
// on cancel
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
self.$toast.fail('分享地址获取失败');
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
break;
|
||||||
|
case 'down':
|
||||||
|
window.open(SITEURL+MOD_URL+'&op=download&dpath='+self.ImagesMore.dpath);
|
||||||
|
break;
|
||||||
|
case 'collect':
|
||||||
|
self.ParamImages.operation.type = data.type;
|
||||||
|
self.ImagesClassify.PopupVisible = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,9 @@
|
|||||||
<!--{template mobile/frame/header_simple_start}-->
|
<!--{template mobile/frame/header_simple_start}-->
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/index.css?{VERHASH}" />
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/index.css?{VERHASH}" />
|
||||||
<!--{template mobile/frame/header_simple_end}-->
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/image.css?{VERHASH}" />
|
||||||
<div id="dzzoffice">
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/screen.css?{VERHASH}" />
|
||||||
<!--{template mobile/components/index/JsIndex}-->
|
<!--{template mobile/frame/header_simple_end}-->
|
||||||
</div>
|
<div id="dzzoffice">
|
||||||
|
<!--{template mobile/components/index/JsIndex}-->
|
||||||
|
</div>
|
||||||
<!--{template mobile/frame/footer_simple}-->
|
<!--{template mobile/frame/footer_simple}-->
|
||||||
|
|||||||
@@ -1,315 +1,315 @@
|
|||||||
<!--{template mobile/frame/header_simple_start}-->
|
<!--{template mobile/frame/header_simple_start}-->
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/share.css?{VERHASH}" />
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/mobile/share.css?{VERHASH}" />
|
||||||
<!--{template mobile/frame/header_simple_end}-->
|
<!--{template mobile/frame/header_simple_end}-->
|
||||||
<div id="dzzoffice">
|
<div id="dzzoffice">
|
||||||
<div
|
<div
|
||||||
id="DetailPopup"
|
id="DetailPopup"
|
||||||
class="detail-popup-box"
|
class="detail-popup-box"
|
||||||
:class="imagesData.footer?'':'NotFooter'">
|
:class="imagesData.footer?'':'NotFooter'">
|
||||||
<van-nav-bar>
|
<van-nav-bar>
|
||||||
<template #left>
|
<template #left>
|
||||||
<div class="pic-logo" slot="left">
|
<div class="pic-logo" slot="left">
|
||||||
<a class="h-left" href="{MOD_URL}">
|
<a class="h-left" href="{MOD_URL}">
|
||||||
<img src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" alt="">
|
<img src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" alt="">
|
||||||
<span class="text">$_G['setting'][sitename]</span>
|
<span class="text">$_G['setting'][sitename]</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #right>
|
<template #right>
|
||||||
<div style="width: 25px;text-align: center;height: 25px;line-height: 25px;" @click.stop="PopupInformation=true">
|
<div style="width: 25px;text-align: center;height: 25px;line-height: 25px;" @click.stop="PopupInformation=true">
|
||||||
<van-icon name="warning-o" size="18" />
|
<van-icon name="warning-o" size="18" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
<div class="detail-popup-translate">
|
<div class="detail-popup-translate">
|
||||||
<div class="detail-popup-content">
|
<div class="detail-popup-content">
|
||||||
<div class="detail-popup-img">
|
<div class="detail-popup-img">
|
||||||
<div class="detail-between">
|
<div class="detail-between">
|
||||||
<template v-if="imagesData.opentype=='video'">
|
<template v-if="imagesData.opentype=='video'">
|
||||||
<div class="video-box" :style="{'height':imagesData.videoH+'px'}">
|
<div class="video-box" :style="{'height':imagesData.videoH+'px'}">
|
||||||
<iframe
|
<iframe
|
||||||
style="border: 0px;"
|
style="border: 0px;"
|
||||||
:src="'index.php?mod=xgplayer&src='+imagesData.realpath"
|
:src="'index.php?mod=xgplayer&src='+imagesData.realpath"
|
||||||
width="100%"
|
width="100%"
|
||||||
height="100%"></iframe>
|
height="100%"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="imagesData.opentype=='pdf'">
|
<template v-else-if="imagesData.opentype=='pdf'">
|
||||||
<iframe
|
<iframe
|
||||||
style="border: 0px;"
|
style="border: 0px;"
|
||||||
:src="'index.php?mod=pdf&src='+imagesData.realpath"
|
:src="'index.php?mod=pdf&src='+imagesData.realpath"
|
||||||
width="100%"
|
width="100%"
|
||||||
height="100%"></iframe>
|
height="100%"></iframe>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="imagesData.opentype=='text'">
|
<template v-else-if="imagesData.opentype=='text'">
|
||||||
<div style="padding: 10px;height: 100%;">
|
<div style="padding: 10px;height: 100%;">
|
||||||
<iframe
|
<iframe
|
||||||
style="border: 0px;border-radius: 18px;"
|
style="border: 0px;border-radius: 18px;"
|
||||||
:src="'index.php?mod=textviewer&src='+imagesData.realpath"
|
:src="'index.php?mod=textviewer&src='+imagesData.realpath"
|
||||||
width="100%"
|
width="100%"
|
||||||
height="100%"></iframe>
|
height="100%"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="imagesData.opentype=='other'">
|
<template v-else-if="imagesData.opentype=='other'">
|
||||||
<div class="img-box">
|
<div class="img-box">
|
||||||
<img
|
<img
|
||||||
@load="DetailImgload"
|
@load="DetailImgload"
|
||||||
:src="imagesData.icondata"
|
:src="imagesData.icondata"
|
||||||
class="image-viewer__img opacity" />
|
class="image-viewer__img opacity" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="img-box">
|
<div class="img-box">
|
||||||
<img :src="imagesData.icondata" class="image-viewer__img thumbnail" />
|
<img :src="imagesData.icondata" class="image-viewer__img thumbnail" />
|
||||||
<img
|
<img
|
||||||
@load="DetailImgload"
|
@load="DetailImgload"
|
||||||
:src="imagesData.realpath"
|
:src="imagesData.realpath"
|
||||||
class="image-viewer__img opacity" />
|
class="image-viewer__img opacity" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer-tabbar" v-if="imagesData.footer">
|
<div class="footer-tabbar" v-if="imagesData.footer">
|
||||||
<div class="footer-tabbar-item" v-if="imagesData.link" @click="DetailFooterClick('link')">
|
<div class="footer-tabbar-item" v-if="imagesData.link" @click="DetailFooterClick('link')">
|
||||||
<i class="ri-links-line"></i>
|
<i class="ri-links-line"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer-tabbar-item" v-if="imagesData.download" @click="DetailFooterClick('download')">
|
<div class="footer-tabbar-item" v-if="imagesData.download" @click="DetailFooterClick('download')">
|
||||||
<i class="ri-download-2-line"></i>
|
<i class="ri-download-2-line"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer-tabbar-item" v-if="imagesData.share" @click="DetailFooterClick('share')">
|
<div class="footer-tabbar-item" v-if="imagesData.share" @click="DetailFooterClick('share')">
|
||||||
<i class="ri-share-line"></i>
|
<i class="ri-share-line"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<van-popup
|
<van-popup
|
||||||
v-model="PopupInformation"
|
v-model="PopupInformation"
|
||||||
class="detail-popup-message"
|
class="detail-popup-message"
|
||||||
:class="imagesData.footer?'':'NotFooter'"
|
:class="imagesData.footer?'':'NotFooter'"
|
||||||
position="right"
|
position="right"
|
||||||
:overlay="false"
|
:overlay="false"
|
||||||
get-container="#DetailPopup">
|
get-container="#DetailPopup">
|
||||||
<div style="position: relative;height: 100%;background: var(--bg-content);padding-top: 2.875rem;">
|
<div style="position: relative;height: 100%;background: var(--bg-content);padding-top: 2.875rem;">
|
||||||
<van-nav-bar title="详情信息" left-arrow @click-left="PopupInformation=false"></van-nav-bar>
|
<van-nav-bar title="详情信息" left-arrow @click-left="PopupInformation=false"></van-nav-bar>
|
||||||
<div class="DetailPopup-content" style="padding: 0 16px;">
|
<div class="DetailPopup-content" style="padding: 0 16px;">
|
||||||
<div class="name">{{imagesData.name}}.{{imagesData.ext}}</div>
|
<div class="name">{{imagesData.name}}.{{imagesData.ext}}</div>
|
||||||
<div class="block" v-if="imagesData.colors && imagesData.colors.length">
|
<div class="block" v-if="imagesData.colors && imagesData.colors.length">
|
||||||
<div class="title">颜色</div>
|
<div class="title">颜色</div>
|
||||||
<div class="block-item colors">
|
<div class="block-item colors">
|
||||||
<div class="colors" v-for="item in imagesData.colors">
|
<div class="colors" v-for="item in imagesData.colors">
|
||||||
<div :style="{background: '#'+item}"></div>
|
<div :style="{background: '#'+item}"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block" v-if="imagesData.tag && imagesData.tag.length">
|
<div class="block" v-if="imagesData.tag && imagesData.tag.length">
|
||||||
<div class="title">标签</div>
|
<div class="title">标签</div>
|
||||||
<div class="block-item tag">
|
<div class="block-item tag">
|
||||||
<div class="tag" v-for="item in imagesData.tag">{{item}}</div>
|
<div class="tag" v-for="item in imagesData.tag">{{item}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block" v-if="imagesData.link">
|
<div class="block" v-if="imagesData.link">
|
||||||
<div class="title">链接</div>
|
<div class="title">链接</div>
|
||||||
<div class="block-item link">
|
<div class="block-item link">
|
||||||
<span>{{imagesData.link}}</span>
|
<span>{{imagesData.link}}</span>
|
||||||
<i class="ri-file-copy-line" @click="CommonCopyTxt(imagesData.link)"></i>
|
<i class="ri-file-copy-line" @click="CommonCopyTxt(imagesData.link)"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block" v-if="imagesData.foldernames && imagesData.foldernames.length">
|
<div class="block" v-if="imagesData.foldernames && imagesData.foldernames.length">
|
||||||
<div class="title">分类</div>
|
<div class="title">分类</div>
|
||||||
<div class="block-item tag">
|
<div class="block-item tag">
|
||||||
<div class="tag" v-for="item in imagesData.foldernames">{{item}}</div>
|
<div class="tag" v-for="item in imagesData.foldernames">{{item}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<div class="title">基本信息</div>
|
<div class="title">基本信息</div>
|
||||||
<div class="block-item">
|
<div class="block-item">
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">评分</div>
|
<div class="label">评分</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">
|
<div class="record">
|
||||||
<van-icon v-for="item in imagesData.grade" name="star" class="star active"></van-icon><van-icon v-for="item in imagesData.fgrade" name="star" class="star"></van-icon>
|
<van-icon v-for="item in imagesData.grade" name="star" class="star active"></van-icon><van-icon v-for="item in imagesData.fgrade" name="star" class="star"></van-icon>
|
||||||
</div>
|
</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">尺寸</div>
|
<div class="label">尺寸</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.width}}×{{imagesData.height}}</div>
|
<div class="record">{{imagesData.width}}×{{imagesData.height}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">文件大小</div>
|
<div class="label">文件大小</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.fsize}}</div>
|
<div class="record">{{imagesData.fsize}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">类型</div>
|
<div class="label">类型</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.ext}}</div>
|
<div class="record">{{imagesData.ext}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">创建时间</div>
|
<div class="label">创建时间</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.mtime}}</div>
|
<div class="record">{{imagesData.mtime}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">添加时间</div>
|
<div class="label">添加时间</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.btime}}</div>
|
<div class="record">{{imagesData.btime}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
<van-row class="basic">
|
<van-row class="basic">
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="label">修改时间</div>
|
<div class="label">修改时间</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
<van-col span="12">
|
<van-col span="12">
|
||||||
<div class="record">{{imagesData.dateline}}</div>
|
<div class="record">{{imagesData.dateline}}</div>
|
||||||
</van-col>
|
</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#dzzoffice',
|
el: '#dzzoffice',
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
imagesData: {
|
imagesData: {
|
||||||
rid : '$resourcesdata[rid]',
|
rid : '$resourcesdata[rid]',
|
||||||
appid : '$resourcesdata[appid]',
|
appid : '$resourcesdata[appid]',
|
||||||
name : '$resourcesdata[name]',
|
name : '$resourcesdata[name]',
|
||||||
type : '$resourcesdata[type]',
|
type : '$resourcesdata[type]',
|
||||||
ext : '$resourcesdata[ext]',
|
ext : '$resourcesdata[ext]',
|
||||||
height : $resourcesdata[height],
|
height : $resourcesdata[height],
|
||||||
width : $resourcesdata[width],
|
width : $resourcesdata[width],
|
||||||
dateline : '$resourcesdata[dateline]',
|
dateline : '$resourcesdata[dateline]',
|
||||||
grade : $resourcesdata[grade],
|
grade : $resourcesdata[grade],
|
||||||
mtime : '$resourcesdata[mtime]',
|
mtime : '$resourcesdata[mtime]',
|
||||||
btime : '$resourcesdata[btime]',
|
btime : '$resourcesdata[btime]',
|
||||||
colors : $resourcesdata[colors],
|
colors : $resourcesdata[colors],
|
||||||
desc : '$resourcesdata[desc]',
|
desc : '$resourcesdata[desc]',
|
||||||
link : '$resourcesdata[link]',
|
link : '$resourcesdata[link]',
|
||||||
tag :$resourcesdata[tag],
|
tag :$resourcesdata[tag],
|
||||||
opentype : '$resourcesdata[opentype]',
|
opentype : '$resourcesdata[opentype]',
|
||||||
icondata:'$resourcesdata[icondata]',
|
icondata:'$resourcesdata[icondata]',
|
||||||
iconwidth : $resourcesdata[iconwidth],
|
iconwidth : $resourcesdata[iconwidth],
|
||||||
iconheight : $resourcesdata[iconheight],
|
iconheight : $resourcesdata[iconheight],
|
||||||
share : $resourcesdata[share],
|
share : $resourcesdata[share],
|
||||||
download : $resourcesdata[download],
|
download : $resourcesdata[download],
|
||||||
originalimg : '$resourcesdata[originalimg]',
|
originalimg : '$resourcesdata[originalimg]',
|
||||||
realpath : '$resourcesdata[realpath]',
|
realpath : '$resourcesdata[realpath]',
|
||||||
fsize : '$resourcesdata[fsize]',
|
fsize : '$resourcesdata[fsize]',
|
||||||
foldernames :$resourcesdata[foldernames],
|
foldernames :$resourcesdata[foldernames],
|
||||||
dpath:'$resourcesdata[dpath]',
|
dpath:'$resourcesdata[dpath]',
|
||||||
footer:false
|
footer:false
|
||||||
},
|
},
|
||||||
PopupInformation:false
|
PopupInformation:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
if(this.imagesData.link ||this.imagesData.share || this.imagesData.download){
|
if(this.imagesData.link ||this.imagesData.share || this.imagesData.download){
|
||||||
this.imagesData['footer'] = true;
|
this.imagesData['footer'] = true;
|
||||||
}else{
|
}else{
|
||||||
this.imagesData['footer'] = false;
|
this.imagesData['footer'] = false;
|
||||||
}
|
}
|
||||||
if(this.imagesData.opentype=='video'){
|
if(this.imagesData.opentype=='video'){
|
||||||
var ratio = parseFloat(this.imagesData.width)/document.body.clientWidth;
|
var ratio = parseFloat(this.imagesData.width)/document.body.clientWidth;
|
||||||
var h = parseFloat(this.imagesData.height)/ratio;
|
var h = parseFloat(this.imagesData.height)/ratio;
|
||||||
this.imagesData['videoH'] = h;
|
this.imagesData['videoH'] = h;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
DetailImgload(event){
|
DetailImgload(event){
|
||||||
$(event.target).removeClass('opacity').siblings('.thumbnail').remove();
|
$(event.target).removeClass('opacity').siblings('.thumbnail').remove();
|
||||||
},
|
},
|
||||||
DetailFooterClick(type){
|
DetailFooterClick(type){
|
||||||
var self = this;
|
var self = this;
|
||||||
var rid = self.imagesData.rid;
|
var rid = self.imagesData.rid;
|
||||||
if(type == 'link'){
|
if(type == 'link'){
|
||||||
window.open(self.imagesData.link);
|
window.open(self.imagesData.link);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(type == 'download'){
|
if(type == 'download'){
|
||||||
if (self.imagesData.dpath) {
|
if (self.imagesData.dpath) {
|
||||||
window.open(SITEURL + MOD_URL + '&op=download&dpath=' + self.imagesData.dpath)
|
window.open(SITEURL + MOD_URL + '&op=download&dpath=' + self.imagesData.dpath)
|
||||||
} else {
|
} else {
|
||||||
self.$toast({
|
self.$toast({
|
||||||
message: '数据错误',
|
message: '数据错误',
|
||||||
icon: 'cross',
|
icon: 'cross',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(type == 'share'){
|
if(type == 'share'){
|
||||||
if (self.imagesData.rid) {
|
if (self.imagesData.rid) {
|
||||||
$.post('{MOD_URL}&op=ajax&operation=createshare', {
|
$.post('{MOD_URL}&op=ajax&operation=createshare', {
|
||||||
rid: self.imagesData.rid
|
rid: self.imagesData.rid
|
||||||
}, function(data) {
|
}, function(data) {
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
self.$dialog.confirm({
|
self.$dialog.confirm({
|
||||||
title: '分享成功',
|
title: '分享成功',
|
||||||
message: data.success,
|
message: data.success,
|
||||||
confirmButtonText:'复制地址',
|
confirmButtonText:'复制地址',
|
||||||
cancelButtonText:'关闭'
|
cancelButtonText:'关闭'
|
||||||
}).then(() => {
|
}).then(function() {
|
||||||
self.CommonCopyTxt(data.success);
|
self.CommonCopyTxt(data.success);
|
||||||
}).catch(() => {
|
}).catch(function() {
|
||||||
// on cancel
|
// on cancel
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
self.$toast({
|
self.$toast({
|
||||||
message: '分享失败',
|
message: '分享失败',
|
||||||
icon: 'cross',
|
icon: 'cross',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, 'json')
|
}, 'json')
|
||||||
} else {
|
} else {
|
||||||
self.$toast({
|
self.$toast({
|
||||||
message: '数据错误',
|
message: '数据错误',
|
||||||
icon: 'cross',
|
icon: 'cross',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CommonCopyTxt(text){
|
CommonCopyTxt(text){
|
||||||
var self = this;
|
var self = this;
|
||||||
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
|
var input = document.createElement('input'); input.setAttribute('id', 'copyInput');
|
||||||
input.setAttribute('value', text);
|
input.setAttribute('value', text);
|
||||||
document.getElementsByTagName('body')[0].appendChild(input);
|
document.getElementsByTagName('body')[0].appendChild(input);
|
||||||
document.getElementById('copyInput').select();
|
document.getElementById('copyInput').select();
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
document.getElementById('copyInput').remove();
|
document.getElementById('copyInput').remove();
|
||||||
self.$toast.success('复制成功');
|
self.$toast.success('复制成功');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<!--{template mobile/frame/footer_simple}-->
|
<!--{template mobile/frame/footer_simple}-->
|
||||||
|
|||||||
@@ -2,11 +2,19 @@
|
|||||||
<div>
|
<div>
|
||||||
<div id="top_header" style="padding: 4px 16px;">
|
<div id="top_header" style="padding: 4px 16px;">
|
||||||
<div class="header-content">
|
<div class="header-content">
|
||||||
<div class="h-left">
|
<!-- <div class="h-left">
|
||||||
<a href="{MOD_URL}">
|
<a href="{MOD_URL}">
|
||||||
<el-image src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain"></el-image>
|
<el-image src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain"></el-image>
|
||||||
<span class="text">$_G['setting'][sitename]</span>
|
<span class="text">$_G['setting'][sitename]</span>
|
||||||
</a>
|
</a>
|
||||||
|
</div> -->
|
||||||
|
<div class="h-left">
|
||||||
|
<div class="el-page-header__left" @click="goBack">
|
||||||
|
<i class="el-icon-back"></i>
|
||||||
|
</div>
|
||||||
|
<span class="text" >
|
||||||
|
<span v-cloak>$_G['setting'][sitename]</span>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="h-center">
|
<div class="h-center">
|
||||||
</div>
|
</div>
|
||||||
@@ -97,11 +105,11 @@
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(function() {
|
||||||
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
}).catch(function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@@ -111,6 +119,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
goBack(){
|
||||||
|
window.location.href=MOD_URL;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
ImageAudioPlayMouseenter(tage){
|
ImageAudioPlayMouseenter(tage){
|
||||||
var find = tage.find('.image-playurl');
|
var find = tage.find('.image-playurl');
|
||||||
|
|
||||||
tage.addClass('showoperation');
|
tage.closest('.image-inside').addClass('showoperation');
|
||||||
var status = find.data('status');
|
var status = find.data('status');
|
||||||
var type = find.data('type');
|
var type = find.data('type');
|
||||||
if(type == 'video' || type == 'audio'){
|
if(type == 'video' || type == 'audio'){
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
ImageAudioPlayMouseleave(tage){
|
ImageAudioPlayMouseleave(tage){
|
||||||
tage.removeClass('showoperation');
|
tage.closest('.image-inside').removeClass('showoperation');
|
||||||
tage.find('.image-playurl').removeClass('show');
|
tage.find('.image-playurl').removeClass('show');
|
||||||
},
|
},
|
||||||
ImageAudioPlayVideo(box){
|
ImageAudioPlayVideo(box){
|
||||||
|
|||||||
@@ -52,8 +52,8 @@
|
|||||||
var str = JSON.parse(JSON.stringify(self.ImageDataList[findex]));
|
var str = JSON.parse(JSON.stringify(self.ImageDataList[findex]));
|
||||||
var rid = str.rid;
|
var rid = str.rid;
|
||||||
arr[rid] = str;
|
arr[rid] = str;
|
||||||
var w = parseInt(arr[rid]['width']);
|
var w = parseInt(arr[rid]['thumbwidth']);
|
||||||
var h = parseInt(arr[rid]['height']);
|
var h = parseInt(arr[rid]['thumbheight']);
|
||||||
var r = w / h;
|
var r = w / h;
|
||||||
var r1 = h / w;
|
var r1 = h / w;
|
||||||
if (h > 360) {
|
if (h > 360) {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
}else{
|
}else{
|
||||||
arr[i]['pwidth'] = pwidth;
|
arr[i]['pwidth'] = pwidth;
|
||||||
}
|
}
|
||||||
var h = ppwidth/parseFloat(arr[i].width)*parseInt(arr[i].height)>120?ppwidth/parseFloat(arr[i].width)*parseInt(arr[i].height):120;
|
var h = ppwidth/parseFloat(arr[i].thumbwidth)*parseInt(arr[i].thumbheight)>120?ppwidth/parseFloat(arr[i].thumbwidth)*parseInt(arr[i].thumbheight):120;
|
||||||
arr[i]['pheight'] = h;
|
arr[i]['pheight'] = h;
|
||||||
if (index < self.ImageWaterfall.columns) {
|
if (index < self.ImageWaterfall.columns) {
|
||||||
arr[i]['ptop'] = 0;
|
arr[i]['ptop'] = 0;
|
||||||
|
|||||||
@@ -2,44 +2,96 @@
|
|||||||
<div class="image-top-message">
|
<div class="image-top-message">
|
||||||
<!-- <div class="left" v-cloak>找到文件 {{ImageParams.counttotal}} 个</div> -->
|
<!-- <div class="left" v-cloak>找到文件 {{ImageParams.counttotal}} 个</div> -->
|
||||||
<div class="right" v-if="DocumentTemplate==2 && ImageDataIsExpanded"><el-checkbox v-model="ImageParams.expanded" @change="ImageExpandedChange">显示子分类内容</el-checkbox></div>
|
<div class="right" v-if="DocumentTemplate==2 && ImageDataIsExpanded"><el-checkbox v-model="ImageParams.expanded" @change="ImageExpandedChange">显示子分类内容</el-checkbox></div>
|
||||||
|
</div>
|
||||||
|
<div class="collects-move-btn-box" v-if="ImageCollect.show" :style="{'padding-left':DocumentLeftWidth+'px'}">
|
||||||
|
<el-tooltip class="item" effect="dark" content="收藏" placement="top">
|
||||||
|
<div class="item" @click="ImageCollect.dialogVisible=true">
|
||||||
|
<i class="ri-star-fill"></i>
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip class="item" effect="dark" content="取消选中" placement="top">
|
||||||
|
<div class="item" @click="ImageCollectCancelChecked">
|
||||||
|
<i class="ri-close-circle-fill"></i>
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container">
|
<div class="image-container">
|
||||||
<div class="image-wrapper">
|
<div class="image-wrapper">
|
||||||
<template v-for="item in ImageDataListShow">
|
<template v-for="item in ImageDataListShow">
|
||||||
<div class="image-item" :key="item.rid" :style="{top:item.ptop+'px',left:item.pleft+'px',width:item.pwidth+'px'}" >
|
<div
|
||||||
|
class="image-item"
|
||||||
|
:class="{checked:ImageCollect.show&&ImageCollect.rids.indexOf(item.rid)>-1}"
|
||||||
|
:key="item.rid"
|
||||||
|
:data-rid="item.rid"
|
||||||
|
:style="{top:item.ptop+'px',left:item.pleft+'px',width:item.pwidth+'px'}"
|
||||||
|
@click="ImageCtrlClick(item.rid)">
|
||||||
|
<div class="collect-checkeds" @click="ImageCtrlClick(item.rid,'1')">
|
||||||
|
<div class="check">
|
||||||
|
<i class="el-icon-check"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="image-inside">
|
<div class="image-inside">
|
||||||
|
<!--{if $_G[uid]}-->
|
||||||
|
<!-- <div class="el-button-group" :class="{border:!ImageCollect.quick}" v-if="!ImageDocumentCtrl">
|
||||||
|
<button type="button" class="el-button el-button--danger reference el-button--medium" @click.stop="ImageQuickChangeCollect(item.rid)">
|
||||||
|
<span>收藏</span>
|
||||||
|
</button>
|
||||||
|
<el-tooltip v-if="ImageCollect.quick" class="item" effect="dark" :content="ImageCollect.name?'收藏到:'+ImageCollect.name:''" placement="top">
|
||||||
|
<button type="button" class="el-button el-button--danger el-dropdown__caret-button el-button--medium" style="padding: 0;" @click.stop="ImageQuickAddCollect(item.rid)">
|
||||||
|
<img style="height: 20px;" src="dzz/pichome/image/flashlight.png" alt="">
|
||||||
|
</button>
|
||||||
|
</el-tooltip>
|
||||||
|
</div> -->
|
||||||
|
<!--{/if}-->
|
||||||
|
|
||||||
|
<div class="topFlex" v-if="!ImageDocumentCtrl">
|
||||||
|
<!-- <div v-if="parseInt(item.share)" class="circulars" @click.stop="ImageOperation('share',item.rid)">
|
||||||
|
<i class="ri-share-line"></i>
|
||||||
|
</div> -->
|
||||||
|
<!-- <div v-if="parseInt(item.download)" class="circulars" @click.stop="ImageOperation('down',item.dpath)">
|
||||||
|
<i class="ri-download-2-line"></i>
|
||||||
|
</div> -->
|
||||||
|
<el-dropdown trigger="click" @command="ImageOperation" placement="bottom" v-if="parseInt(item.share) || parseInt(item.download)">
|
||||||
|
<div class="circulars">
|
||||||
|
<i class="ri-more-2-fill"></i>
|
||||||
|
</div>
|
||||||
|
<el-dropdown-menu slot="dropdown" style="width: 165px;">
|
||||||
|
<el-dropdown-item v-if="parseInt(item.share)" :command="ImageOperationVal('share',item.rid)">
|
||||||
|
<i class="ri-share-line" style="vertical-align: bottom;font-size: 16px;"></i>
|
||||||
|
分享
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item v-if="parseInt(item.download)" :command="ImageOperationVal('down',item.dpath)" class="circulars">
|
||||||
|
<i class="ri-download-2-line" style="vertical-align: bottom;font-size: 16px;"></i>
|
||||||
|
下载
|
||||||
|
</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="image-single radius"
|
class="image-single radius"
|
||||||
:class="[{'border':item.opentype=='video'||item.opentype=='audio'},ImageType]"
|
:class="[{'border':item.opentype=='video'||item.opentype=='audio'},ImageType]"
|
||||||
:style="{height: item.pheight+'px',width: (item.pwidth-8)+'px',background:'#'+item.color}"
|
:style="{height: item.pheight+'px',width: (item.pwidth-8)+'px',background:'#'+item.color}"
|
||||||
@mouseenter="ImageMouseenter"
|
@mouseenter="ImageMouseenter"
|
||||||
@mouseleave="ImageMouseleave"
|
@mouseleave="ImageMouseleave"
|
||||||
@click="item.type!='audio'&&ImageDetails(item.rid)">
|
@click="item.type!='audio'&&!ImageDocumentCtrl&&ImageDetails(item.rid)">
|
||||||
<div class="image-storage">
|
<div class="image-storage">
|
||||||
<img class="img thumbnail" :src="item.icondata" alt="">
|
<img class="img thumbnail" :src="item.icondata" alt="">
|
||||||
<img class="img opacity" :src="item.icondata" alt="" @load="Imageload(item.rid)" :ref="'img_'+item.rid" />
|
<img class="img opacity" :src="item.icondata" alt="" @load="Imageload(item.rid)" :ref="'img_'+item.rid" />
|
||||||
</div>
|
</div>
|
||||||
<div class="topFlex" v-if="parseInt(item.download)||parseInt(item.share)">
|
|
||||||
<div v-if="parseInt(item.share)" class="circulars" @click.stop="ImageOperation('share',item.rid)">
|
|
||||||
<i class="ri-share-line"></i>
|
|
||||||
</div>
|
|
||||||
<div v-if="parseInt(item.download)" class="circulars" @click.stop="ImageOperation('down',item.dpath)">
|
|
||||||
<i class="ri-download-2-line"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<template v-if="item.type=='audio'">
|
<template v-if="item.type=='audio'">
|
||||||
<div @click.stop="ImageDetails(item.rid)" class="circulars link">
|
<div v-if="!ImageDocumentCtrl" @click.stop="ImageDetails(item.rid)" class="circulars link">
|
||||||
<i class="ri-search-line"></i>
|
<i class="ri-search-line"></i>
|
||||||
<span class="el-link--inner">详情</span>
|
<span class="el-link--inner">详情</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div v-if="item.link" @click.stop="ImageLink(item.link)" class="circulars link">
|
<div v-if="item.link&&!ImageDocumentCtrl" @click.stop="ImageLink(item.link)" class="circulars link">
|
||||||
<i class="ri-link"></i>
|
<i class="ri-link"></i>
|
||||||
<span class="el-link--inner">链接</span>
|
<span class="el-link--inner">链接</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div v-if="item.type=='audio'||item.type=='video'" class="image-playurl" data-status="true" :data-type="item.type" :data-playurl="item.realpath">
|
<div v-if="!ImageDocumentCtrl && (item.type=='audio'||item.type=='video')" class="image-playurl" data-status="true" :data-type="item.type" :data-playurl="item.realpath" :class="{exhibit:!parseInt(item.share)&&!parseInt(item.download)}">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -103,6 +155,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<add-star-tree :rids="ImageCollect.rids" :dialogvisible="ImageCollect.AdddialogVisible" @closeaddcollectdialog="ImageCloseAddcollectdialog"></add-star-tree>
|
||||||
|
<star-tree-dialog
|
||||||
|
:rids="ImageCollect.rids"
|
||||||
|
:dialogvisible="ImageCollect.dialogVisible"
|
||||||
|
@closecollectdialog="ImageClosecollectdialog"
|
||||||
|
@openaddcollect="ImageOpenAddCollect"
|
||||||
|
@addcollectsuccess="ImageOpenAddCollectsuccess"></star-tree-dialog>
|
||||||
<!--{template pc/components/image/ImageWaterfall}-->
|
<!--{template pc/components/image/ImageWaterfall}-->
|
||||||
<!--{template pc/components/image/ImageRowGrid}-->
|
<!--{template pc/components/image/ImageRowGrid}-->
|
||||||
<!--{template pc/components/image/ImageList}-->
|
<!--{template pc/components/image/ImageList}-->
|
||||||
@@ -141,6 +200,7 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
var JsImageData = $.extend({},JsImageWaterfallData,JsImageRowGridData,JsImageListData,ImageAudioPlayData,{
|
var JsImageData = $.extend({},JsImageWaterfallData,JsImageRowGridData,JsImageListData,ImageAudioPlayData,{
|
||||||
|
ImageDocumentCtrl:false,
|
||||||
ImageDataIsExpanded:false,
|
ImageDataIsExpanded:false,
|
||||||
ImageDataList:[],
|
ImageDataList:[],
|
||||||
ImageDataListShow:{},
|
ImageDataListShow:{},
|
||||||
@@ -158,10 +218,24 @@
|
|||||||
Height:0,
|
Height:0,
|
||||||
Videovoice:true,
|
Videovoice:true,
|
||||||
Musicovoice:false
|
Musicovoice:false
|
||||||
|
},
|
||||||
|
ImageCollect:{
|
||||||
|
show:false,
|
||||||
|
name:'',
|
||||||
|
dialogVisible:false,
|
||||||
|
AdddialogVisible:false,
|
||||||
|
rids:[],
|
||||||
|
quick:false
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var JsImageMethods = $.extend({},JsImageWaterfallMethods,JsImageRowGridMethods,JsImageListMethods,ImageAudioPlayMethods,{
|
var JsImageMethods = $.extend({},JsImageWaterfallMethods,JsImageRowGridMethods,JsImageListMethods,ImageAudioPlayMethods,{
|
||||||
|
|
||||||
ImageCreate(){
|
ImageCreate(){
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
this.ImageCollect.name = collectkey.name;
|
||||||
|
this.ImageCollect.quick = true;
|
||||||
|
}
|
||||||
var pagesetting = $pagesetting;
|
var pagesetting = $pagesetting;
|
||||||
var layout = 'waterFall';
|
var layout = 'waterFall';
|
||||||
var imageexpanded = false;
|
var imageexpanded = false;
|
||||||
@@ -196,6 +270,77 @@
|
|||||||
this.ImageParams.expanded = imageexpanded;
|
this.ImageParams.expanded = imageexpanded;
|
||||||
this.ImageType = layout;
|
this.ImageType = layout;
|
||||||
},
|
},
|
||||||
|
ImageCloseAddcollectdialog(){
|
||||||
|
this.ImageCollect.AdddialogVisible = false;
|
||||||
|
},
|
||||||
|
ImageClosecollectdialog(){
|
||||||
|
this.ImageCollect.dialogVisible = false;
|
||||||
|
},
|
||||||
|
ImageCtrlClick(rid,type){
|
||||||
|
var self = this;
|
||||||
|
if(!self.ImageDocumentCtrl && !type){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var index = self.ImageCollect.rids.indexOf(rid);
|
||||||
|
if(index>-1){
|
||||||
|
self.ImageCollect.rids.splice(index,1);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
self.ImageCollect.rids.push(rid);
|
||||||
|
}
|
||||||
|
if(self.ImageCollect.rids.length){
|
||||||
|
self.ImageCollect.show = true;
|
||||||
|
}else{
|
||||||
|
self.ImageCollect.show = false;
|
||||||
|
self.ImageDocumentCtrl = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ImageCollectCancelChecked(){
|
||||||
|
this.ImageCollect.show = false;
|
||||||
|
this.ImageCollect.rids = [];
|
||||||
|
},
|
||||||
|
ImageOpenAddCollect(val){
|
||||||
|
this.ImageCollect.rids = [val];
|
||||||
|
this.ImageCollect.dialogVisible = false;
|
||||||
|
this.ImageCollect.AdddialogVisible = true;
|
||||||
|
},
|
||||||
|
ImageOpenAddCollectsuccess(){
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
this.ImageCollect.name = collectkey.name;
|
||||||
|
this.ImageCollect.quick = true;
|
||||||
|
}
|
||||||
|
this.ImageCollect.show = false;
|
||||||
|
this.ImageCollect.rids = [];
|
||||||
|
},
|
||||||
|
ImageQuickChangeCollect(rid){
|
||||||
|
this.ImageCollect.rids = [rid];
|
||||||
|
this.ImageCollect.dialogVisible = true;
|
||||||
|
},
|
||||||
|
ImageQuickAddCollect(rid){
|
||||||
|
var self = this;
|
||||||
|
var collectkey = JSON.parse(localStorage.getItem('collectkey'));
|
||||||
|
if(collectkey){
|
||||||
|
var keys = collectkey.key.split('-');
|
||||||
|
var param = {
|
||||||
|
rids:rid,
|
||||||
|
clid:keys[0].replace('p','')
|
||||||
|
}
|
||||||
|
if(keys.length>1){
|
||||||
|
param['cid'] = keys.pop()
|
||||||
|
}
|
||||||
|
$.post(SITEURL+DZZSCRIPT+'?mod=collection&op=collect&do=addfilecollect',param,function(json){
|
||||||
|
if(json.success){
|
||||||
|
self.$message({
|
||||||
|
type:'success',
|
||||||
|
message:'收藏成功'
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
self.$message.error(json.error);
|
||||||
|
}
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
},
|
||||||
ImageInit(){
|
ImageInit(){
|
||||||
var IsRefresh = true;
|
var IsRefresh = true;
|
||||||
if(this.ImageParams.scroll){
|
if(this.ImageParams.scroll){
|
||||||
@@ -268,7 +413,15 @@
|
|||||||
item.removeClass('opacity').siblings('.img').remove();
|
item.removeClass('opacity').siblings('.img').remove();
|
||||||
|
|
||||||
},
|
},
|
||||||
ImageOperation(type,val){
|
ImageOperationVal(type,val){
|
||||||
|
return {
|
||||||
|
type:type,
|
||||||
|
val:val
|
||||||
|
};
|
||||||
|
},
|
||||||
|
ImageOperation(command){
|
||||||
|
var type = command.type;
|
||||||
|
var val = command.val;
|
||||||
if(type == 'share'){
|
if(type == 'share'){
|
||||||
var self = this;
|
var self = this;
|
||||||
$.post('{MOD_URL}&op=ajax&operation=createshare',{
|
$.post('{MOD_URL}&op=ajax&operation=createshare',{
|
||||||
@@ -314,6 +467,19 @@
|
|||||||
sessionStorage.setItem('imageexpanded',status?1:0);
|
sessionStorage.setItem('imageexpanded',status?1:0);
|
||||||
<!--{/if}-->
|
<!--{/if}-->
|
||||||
this.CommonGetImageData();
|
this.CommonGetImageData();
|
||||||
|
},
|
||||||
|
ImageMounted(){
|
||||||
|
var self = this;
|
||||||
|
// $(document).keydown(function(e){
|
||||||
|
// if (e.which === 17 && !self.ImageDocumentCtrl){
|
||||||
|
// self.ImageDocumentCtrl = true;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }).keyup(function(e){
|
||||||
|
// if (e.which === 17 && self.ImageDocumentCtrl){
|
||||||
|
// self.ImageDocumentCtrl = false;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -61,6 +61,8 @@
|
|||||||
this.HeaderKeyword=value.slice(0,100)
|
this.HeaderKeyword=value.slice(0,100)
|
||||||
}
|
}
|
||||||
this.HdeaderSearchInputKeyword(1);
|
this.HdeaderSearchInputKeyword(1);
|
||||||
|
}else{
|
||||||
|
this.HdeaderSearchInputSubmit();
|
||||||
}
|
}
|
||||||
},300),
|
},300),
|
||||||
HeaderKeywordInputKeyup(){
|
HeaderKeywordInputKeyup(){
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<el-dropdown trigger="click" @command="HeaderRightAvatar" v-cloak>
|
<el-dropdown trigger="click" @command="HeaderRightAvatar" v-cloak>
|
||||||
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
|
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
|
||||||
<el-dropdown-menu slot="dropdown" style="width: 165px;">
|
<el-dropdown-menu slot="dropdown" style="width: 165px;">
|
||||||
|
<!-- <el-dropdown-item command="collection">收藏夹</el-dropdown-item> -->
|
||||||
<el-dropdown-item command="personal">个人设置</el-dropdown-item>
|
<el-dropdown-item command="personal">个人设置</el-dropdown-item>
|
||||||
<el-dropdown-item command="help">帮助文档</el-dropdown-item>
|
<el-dropdown-item command="help">帮助文档</el-dropdown-item>
|
||||||
<el-dropdown-item command="problem">问题反馈</el-dropdown-item>
|
<el-dropdown-item command="problem">问题反馈</el-dropdown-item>
|
||||||
@@ -29,6 +30,9 @@
|
|||||||
HeaderRightAvatar(type){
|
HeaderRightAvatar(type){
|
||||||
var self = this;
|
var self = this;
|
||||||
switch(type){
|
switch(type){
|
||||||
|
case 'collection':
|
||||||
|
window.location.href = DZZSCRIPT + '?mod=collection';
|
||||||
|
break;
|
||||||
case 'personal':
|
case 'personal':
|
||||||
window.location.href = MOD_URL + '&op=user&do=personal';
|
window.location.href = MOD_URL + '&op=user&do=personal';
|
||||||
break;
|
break;
|
||||||
@@ -77,11 +81,11 @@
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(function() {
|
||||||
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
}).catch(function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -16,6 +16,18 @@
|
|||||||
<el-scrollbar class="page-component__scroll">
|
<el-scrollbar class="page-component__scroll">
|
||||||
<div class="content" style="padding: 16px 25px;">
|
<div class="content" style="padding: 16px 25px;">
|
||||||
<el-form ref="form" :model="formdata" label-width="200px">
|
<el-form ref="form" :model="formdata" label-width="200px">
|
||||||
|
<!-- <el-form-item label="本机地址:">
|
||||||
|
<el-input class="maxWidth" v-model="formdata.sitename"></el-input>
|
||||||
|
<p class="tipTxt">用于服务器本机访问</p>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="网络地址:">
|
||||||
|
<el-input class="maxWidth" v-model="formdata.sitename"></el-input>
|
||||||
|
<p class="tipTxt">用于内网其它电脑、手机、平板访问</p>
|
||||||
|
</el-form-item> -->
|
||||||
|
<!-- <el-form-item label="设备号:">
|
||||||
|
<el-input class="maxWidth" v-model="formdata.sitename"></el-input>
|
||||||
|
<p class="tipTxt">服务器识别码,用于与商业功能绑定</p>
|
||||||
|
</el-form-item> -->
|
||||||
<el-form-item label="站点LOGO:">
|
<el-form-item label="站点LOGO:">
|
||||||
<el-upload
|
<el-upload
|
||||||
class="avatar-uploader"
|
class="avatar-uploader"
|
||||||
|
|||||||
@@ -1,257 +1,259 @@
|
|||||||
<!--{template pc/frame/header_simple_start}-->
|
<!--{template pc/frame/header_simple_start}-->
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}" />
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/admin.css?{VERHASH}" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.tipTxt{
|
.tipTxt{
|
||||||
margin-left: 6px;
|
margin-left: 6px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.avatarstatus{
|
.avatarstatus{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.avatarstatus .img-circle{
|
.avatarstatus .img-circle{
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
width: 100%;
|
||||||
.page-content .Topcarousel{
|
height: 100%;
|
||||||
line-height: 148px;
|
}
|
||||||
}
|
.page-content .Topcarousel{
|
||||||
</style>
|
line-height: 148px;
|
||||||
<!--{template pc/frame/header_simple_end}-->
|
}
|
||||||
<div id="dzzoffice">
|
</style>
|
||||||
<el-container>
|
<!--{template pc/frame/header_simple_end}-->
|
||||||
<el-header height="auto" style="padding: 0;z-index: 10;">
|
<div id="dzzoffice">
|
||||||
<page-header :isscreenshow="false"></page-header>
|
<el-container>
|
||||||
</el-header>
|
<el-header height="auto" style="padding: 0;z-index: 10;">
|
||||||
<el-main>
|
<page-header :isscreenshow="false"></page-header>
|
||||||
<div class="page-content">
|
</el-header>
|
||||||
<el-scrollbar class="page-component__scroll">
|
<el-main>
|
||||||
<div class="content" style="padding: 16px 25px;">
|
<div class="page-content">
|
||||||
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="200px">
|
<el-scrollbar class="page-component__scroll">
|
||||||
<el-form-item label="头像:">
|
<div class="content" style="padding: 16px 25px;">
|
||||||
<el-upload
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="200px">
|
||||||
class="avatar-uploader"
|
<el-form-item label="头像:">
|
||||||
action="{MOD_URL}&op=user&do=uploadimg"
|
<el-upload
|
||||||
name="file"
|
class="avatar-uploader"
|
||||||
accept="image/png,image/jpg,image/jpeg,image/gif"
|
action="{MOD_URL}&op=user&do=uploadimg"
|
||||||
:on-success="handleLogoSuccess"
|
name="file"
|
||||||
:on-progress="handleLogoProgress"
|
accept="image/png,image/jpg,image/jpeg,image/gif"
|
||||||
:before-upload="beforeLogoUpload"
|
:on-success="handleLogoSuccess"
|
||||||
:show-file-list="false">
|
:on-progress="handleLogoProgress"
|
||||||
<el-progress v-show="ispercentage" type="circle" :width="148" :percentage="percentage"></el-progress>
|
:before-upload="beforeLogoUpload"
|
||||||
<template v-if="ruleForm.imgpath||avatarstatus=='1'">
|
:show-file-list="false">
|
||||||
<template v-if="ruleForm.imgpath">
|
<el-progress v-show="ispercentage" type="circle" :width="148" :percentage="percentage"></el-progress>
|
||||||
<el-image class="avatarimg" fit="contain" :src="ruleForm.imgpath"></el-image>
|
<template v-if="ruleForm.imgpath||avatarstatus=='1'">
|
||||||
</template>
|
<template v-if="ruleForm.imgpath">
|
||||||
<template v-else>
|
<el-image class="avatarimg" fit="contain" :src="ruleForm.imgpath"></el-image>
|
||||||
<div class="avatarstatus">
|
</template>
|
||||||
<img :src="'avatar.php?uid=1&random='+Math.ceil(Math.random()*100)" title="admin" class="img-circle special_avatar_class">
|
<template v-else>
|
||||||
</div>
|
<div class="avatarstatus">
|
||||||
</template>
|
<img :src="'avatar.php?uid=1&random='+Math.ceil(Math.random()*100)" title="admin" class="img-circle special_avatar_class">
|
||||||
</template>
|
</div>
|
||||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
</template>
|
||||||
</el-upload>
|
</template>
|
||||||
</el-form-item>
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
<el-form-item label="邮箱:" prop="email">
|
</el-upload>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.email"></el-input>
|
</el-form-item>
|
||||||
<p class="tipTxt">用于登录</p>
|
<el-form-item label="邮箱:" prop="email">
|
||||||
</el-form-item>
|
<el-input class="maxWidth" v-model.trim="ruleForm.email"></el-input>
|
||||||
<el-form-item label="用户名:" prop="nickname">
|
<p class="tipTxt">用于登录</p>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.nickname"></el-input>
|
</el-form-item>
|
||||||
<p class="tipTxt">用于登录,站点中不显示</p>
|
<el-form-item label="用户名:" prop="nickname">
|
||||||
</el-form-item>
|
<el-input class="maxWidth" v-model.trim="ruleForm.nickname"></el-input>
|
||||||
<el-form-item label="姓名:" prop="username">
|
<p class="tipTxt">用于登录,站点中不显示</p>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.username"></el-input>
|
</el-form-item>
|
||||||
<p class="tipTxt">用户界面中显示,不能用于登录</p>
|
<el-form-item label="姓名:" prop="username">
|
||||||
</el-form-item>
|
<el-input class="maxWidth" v-model.trim="ruleForm.username"></el-input>
|
||||||
<el-form-item label="手机号:" prop="phone">
|
<p class="tipTxt">用户界面中显示,不能用于登录</p>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.phone"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="手机号:" prop="phone">
|
||||||
<el-form-item label="微信号:" prop="weixinid">
|
<el-input class="maxWidth" v-model.trim="ruleForm.phone"></el-input>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.weixinid"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="微信号:" prop="weixinid">
|
||||||
<el-form-item label="新密码:" prop="password">
|
<el-input class="maxWidth" v-model.trim="ruleForm.weixinid"></el-input>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.password"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="新密码:" prop="password">
|
||||||
<el-form-item label="确认新密码:" prop="password2">
|
<el-input class="maxWidth" v-model.trim="ruleForm.password"></el-input>
|
||||||
<el-input class="maxWidth" v-model.trim="ruleForm.password2"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="确认新密码:" prop="password2">
|
||||||
<el-form-item label="主题色:" prop="themecolor">
|
<el-input class="maxWidth" v-model.trim="ruleForm.password2"></el-input>
|
||||||
<div class="theme-block" v-for="item in themes" @click="handleColor(item.val)">
|
</el-form-item>
|
||||||
<el-tooltip class="item" effect="dark" :content="item.txt" placement="bottom">
|
<el-form-item label="主题色:" prop="themecolor">
|
||||||
<div class="bg" :class="item.val==ruleForm.themecolor?'active':''" :style="item.color">
|
<div class="theme-block" v-for="item in themes" @click="handleColor(item.val)">
|
||||||
<div class="triangle"></div>
|
<el-tooltip class="item" effect="dark" :content="item.txt" placement="bottom">
|
||||||
<i class="icon el-icon-check"></i>
|
<div class="bg" :class="item.val==ruleForm.themecolor?'active':''" :style="item.color">
|
||||||
</div>
|
<div class="triangle"></div>
|
||||||
</el-tooltip>
|
<i class="icon el-icon-check"></i>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-tooltip>
|
||||||
<el-form-item>
|
</div>
|
||||||
<el-button type="primary" @click="handleSubmit" :loading="btnloading">保存更改</el-button>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item>
|
||||||
</el-form>
|
<el-button type="primary" @click="handleSubmit" :loading="btnloading">保存更改</el-button>
|
||||||
</div>
|
</el-form-item>
|
||||||
</el-scrollbar>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
</el-main>
|
</div>
|
||||||
</el-container>
|
|
||||||
</div>
|
</el-main>
|
||||||
<!--{template pc/components/headerAdmin/index}-->
|
</el-container>
|
||||||
<script type="text/javascript">
|
</div>
|
||||||
new Vue({
|
<!--{template pc/components/headerAdmin/index}-->
|
||||||
el: '#dzzoffice',
|
<script type="text/javascript">
|
||||||
data() {
|
new Vue({
|
||||||
var self = this;
|
el: '#dzzoffice',
|
||||||
var inputpassword = function(rule, value, callback){
|
data() {
|
||||||
if (value) {
|
var self = this;
|
||||||
if (self.ruleForm.password2 !== '') {
|
var inputpassword = function(rule, value, callback){
|
||||||
self.$refs.ruleForm.validateField('password2');
|
if (value) {
|
||||||
}
|
if (self.ruleForm.password2 !== '') {
|
||||||
callback();
|
self.$refs.ruleForm.validateField('password2');
|
||||||
}else{
|
}
|
||||||
callback();
|
callback();
|
||||||
}
|
}else{
|
||||||
};
|
callback();
|
||||||
var inputpassword2 = function(rule, value, callback){
|
}
|
||||||
if (value !== self.ruleForm.password) {
|
};
|
||||||
callback(new Error('两次输入密码不一致!'));
|
var inputpassword2 = function(rule, value, callback){
|
||||||
} else {
|
if (value !== self.ruleForm.password) {
|
||||||
callback();
|
callback(new Error('两次输入密码不一致!'));
|
||||||
}
|
} else {
|
||||||
};
|
callback();
|
||||||
return {
|
}
|
||||||
percentage:0,
|
};
|
||||||
ispercentage:false,
|
return {
|
||||||
btnloading:false,
|
percentage:0,
|
||||||
avatarstatus:'$userdata[avatarstatus]',
|
ispercentage:false,
|
||||||
ruleForm: {
|
btnloading:false,
|
||||||
imgpath:'',
|
avatarstatus:'$userdata[avatarstatus]',
|
||||||
email:'$userdata[email]',
|
ruleForm: {
|
||||||
nickname:'$userdata[nickname]',
|
imgpath:'',
|
||||||
username:'$userdata[username]',
|
email:'$userdata[email]',
|
||||||
phone:'$userdata[phone]',
|
nickname:'$userdata[nickname]',
|
||||||
weixinid:'$userdata[weixinid]',
|
username:'$userdata[username]',
|
||||||
password:'',
|
phone:'$userdata[phone]',
|
||||||
password2:'',
|
weixinid:'$userdata[weixinid]',
|
||||||
themecolor:'$theme'
|
password:'',
|
||||||
},
|
password2:'',
|
||||||
rules: {
|
themecolor:'$theme'
|
||||||
email: [
|
},
|
||||||
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
rules: {
|
||||||
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
|
email: [
|
||||||
],
|
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
||||||
nickname: [
|
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
|
||||||
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
],
|
||||||
{ min: 1, max: 10, message: '长度在 1 到 10 个字符', trigger: ['blur', 'change'] }
|
nickname: [
|
||||||
],
|
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
||||||
username: [
|
{ min: 1, max: 10, message: '长度在 1 到 10 个字符', trigger: ['blur', 'change'] }
|
||||||
{ required: true, message: '请输入姓名', trigger: 'blur' },
|
],
|
||||||
{ min: 1, max: 10, message: '长度在 1 到 10 个字符', trigger: ['blur', 'change'] }
|
username: [
|
||||||
],
|
{ required: true, message: '请输入姓名', trigger: 'blur' },
|
||||||
phone: [
|
{ min: 1, max: 10, message: '长度在 1 到 10 个字符', trigger: ['blur', 'change'] }
|
||||||
{ required: false, message: '请输入手机号'}
|
],
|
||||||
],
|
phone: [
|
||||||
weixinid: [
|
{ required: false, message: '请输入手机号'}
|
||||||
{ required: false, message: '请输入微信' },
|
],
|
||||||
],
|
weixinid: [
|
||||||
password: [
|
{ required: false, message: '请输入微信' },
|
||||||
{ validator: inputpassword, trigger: ['blur', 'change'] }
|
],
|
||||||
],
|
password: [
|
||||||
password2: [
|
{ validator: inputpassword, trigger: ['blur', 'change'] }
|
||||||
{ validator: inputpassword2, trigger: ['blur', 'change'] }
|
],
|
||||||
]
|
password2: [
|
||||||
},
|
{ validator: inputpassword2, trigger: ['blur', 'change'] }
|
||||||
themes:[
|
]
|
||||||
{txt:'自动(依系统设置)',color:'',val:''},
|
},
|
||||||
{txt:'白色',color:'background:#D0D0D0',val:'white'},
|
themes:[
|
||||||
{txt:'浅灰色',color:'background:#808080',val:'lightgrey'},
|
{txt:'自动(依系统设置)',color:'',val:''},
|
||||||
{txt:'深灰色',color:'background:#444444',val:'darkgrey'},
|
{txt:'白色',color:'background:#D0D0D0',val:'white'},
|
||||||
{txt:'黑色',color:'background:#333333',val:'black'},
|
{txt:'浅灰色',color:'background:#808080',val:'lightgrey'},
|
||||||
{txt:'深蓝色',color:'background:#2A356D',val:'navyblue'},
|
{txt:'深灰色',color:'background:#444444',val:'darkgrey'},
|
||||||
{txt:'紫色',color:'background:#463275',val:'purple'},
|
{txt:'黑色',color:'background:#333333',val:'black'},
|
||||||
],
|
{txt:'深蓝色',color:'background:#2A356D',val:'navyblue'},
|
||||||
}
|
{txt:'紫色',color:'background:#463275',val:'purple'},
|
||||||
},
|
],
|
||||||
created() {
|
}
|
||||||
// console.log(11111)
|
},
|
||||||
// var avatarstatus =
|
created() {
|
||||||
|
// console.log(11111)
|
||||||
},
|
// var avatarstatus =
|
||||||
methods: {
|
|
||||||
handleColor(val){
|
},
|
||||||
this.ruleForm.themecolor = val;
|
methods: {
|
||||||
},
|
handleColor(val){
|
||||||
beforeLogoUpload(file){
|
this.ruleForm.themecolor = val;
|
||||||
var self = this;
|
},
|
||||||
var isJPG = ['image/png','image/jpeg','image/jpg','image/gif'];
|
beforeLogoUpload(file){
|
||||||
var isLt2M = file.size / 1024 / 1024 < 2;
|
var self = this;
|
||||||
if (isJPG.indexOf(file.type)<0) {
|
var isJPG = ['image/png','image/jpeg','image/jpg','image/gif'];
|
||||||
self.$message.error('图片格式错误');
|
var isLt2M = file.size / 1024 / 1024 < 2;
|
||||||
}
|
if (isJPG.indexOf(file.type)<0) {
|
||||||
if (!isLt2M) {
|
self.$message.error('图片格式错误');
|
||||||
self.$message.error('图片大小不能超过 2MB!');
|
}
|
||||||
}
|
if (!isLt2M) {
|
||||||
return isJPG && isLt2M;
|
self.$message.error('图片大小不能超过 2MB!');
|
||||||
|
}
|
||||||
self.ispercentage = true;
|
return isJPG && isLt2M;
|
||||||
},
|
|
||||||
handleLogoSuccess(res, file){
|
self.ispercentage = true;
|
||||||
if(res.error){
|
},
|
||||||
var self = this;
|
handleLogoSuccess(res, file){
|
||||||
self.$message.error(res.error);
|
if(res.error){
|
||||||
}else{
|
var self = this;
|
||||||
this.ruleForm.imgpath = res.path;
|
self.$message.error(res.error);
|
||||||
}
|
}else{
|
||||||
},
|
this.ruleForm.imgpath = res.path;
|
||||||
handleLogoProgress(event, file, fileList) {
|
}
|
||||||
var percent = parseInt(event.percent);
|
},
|
||||||
this.percentage = percent;
|
handleLogoProgress(event, file, fileList) {
|
||||||
if(percent == 100){
|
var percent = parseInt(event.percent);
|
||||||
this.ispercentage = false;
|
this.percentage = percent;
|
||||||
this.percentage = 0
|
if(percent == 100){
|
||||||
}
|
this.ispercentage = false;
|
||||||
},
|
this.percentage = 0
|
||||||
handleSubmit(){
|
}
|
||||||
var self = this;
|
},
|
||||||
self.$refs.ruleForm.validate(function(valid){
|
handleSubmit(){
|
||||||
if (valid) {
|
var self = this;
|
||||||
var params = {
|
self.$refs.ruleForm.validate(function(valid){
|
||||||
'accountedit':true,
|
if (valid) {
|
||||||
'formhash':'{FORMHASH}',
|
var params = {
|
||||||
'uid':'$uid',
|
'accountedit':true,
|
||||||
'email':self.ruleForm.email,
|
'formhash':'{FORMHASH}',
|
||||||
'nickname':self.ruleForm.nickname,
|
'uid':'$uid',
|
||||||
'username':self.ruleForm.username,
|
'email':self.ruleForm.email,
|
||||||
'phone':self.ruleForm.phone,
|
'nickname':self.ruleForm.nickname,
|
||||||
'weixinid':self.ruleForm.weixinid,
|
'username':self.ruleForm.username,
|
||||||
'password':self.ruleForm.password,
|
'phone':self.ruleForm.phone,
|
||||||
'password2':self.ruleForm.password2,
|
'weixinid':self.ruleForm.weixinid,
|
||||||
'themecolor':self.ruleForm.themecolor,
|
'password':self.ruleForm.password,
|
||||||
};
|
'password2':self.ruleForm.password2,
|
||||||
if(self.ruleForm.imgpath){
|
'themecolor':self.ruleForm.themecolor,
|
||||||
params['imgpath'] = self.ruleForm.imgpath;
|
};
|
||||||
}
|
if(self.ruleForm.imgpath){
|
||||||
$.post(MOD_URL+"&op=user&do=personal",params,function(res){
|
params['imgpath'] = self.ruleForm.imgpath;
|
||||||
if(res.success){
|
}
|
||||||
// self.$message({
|
$.post(MOD_URL+"&op=user&do=personal",params,function(res){
|
||||||
// message: '保存成功',
|
if(res.success){
|
||||||
// type: 'success'
|
// self.$message({
|
||||||
// });
|
// message: '保存成功',
|
||||||
window.location.reload();
|
// type: 'success'
|
||||||
}else{
|
// });
|
||||||
self.$message.error(res.msg);
|
window.location.reload();
|
||||||
}
|
}else{
|
||||||
},'json');
|
self.$message.error(res.msg);
|
||||||
|
}
|
||||||
} else {
|
},'json');
|
||||||
self.$message.error('验证失败');
|
|
||||||
return false;
|
} else {
|
||||||
}
|
self.$message.error('验证失败');
|
||||||
});
|
return false;
|
||||||
}
|
}
|
||||||
},
|
});
|
||||||
mounted() {}
|
}
|
||||||
})
|
},
|
||||||
</script>
|
mounted() {}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
<!--{template pc/frame/footer_simple}-->
|
<!--{template pc/frame/footer_simple}-->
|
||||||
|
|||||||
@@ -1044,11 +1044,11 @@
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(function() {
|
||||||
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
}).catch(function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2,13 +2,19 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/index.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/index.css?{VERHASH}"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/screen.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/screen.css?{VERHASH}"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/image.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/image.css?{VERHASH}"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/components/collect.css?{VERHASH}"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/components/addcollect.css?{VERHASH}"/>
|
||||||
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/wavesurfer.js?{VERHASH}"></script>
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/wavesurfer.js?{VERHASH}"></script>
|
||||||
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/DomResize.js?{VERHASH}"></script>
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/DomResize.js?{VERHASH}"></script>
|
||||||
|
<!-- <script type="text/javascript" src="{MOD_PATH}/js/pc/components/collect.js?{VERHASH}"></script> -->
|
||||||
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/components/collectdialog.js?{VERHASH}"></script>
|
||||||
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/components/addcollect.js?{VERHASH}"></script>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.el-header{
|
.el-header{
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<!--{template mobile/components/classify}-->
|
||||||
<!--{template pc/frame/header_simple_end}-->
|
<!--{template pc/frame/header_simple_end}-->
|
||||||
<div id="dzzoffice">
|
<div id="dzzoffice">
|
||||||
<el-scrollbar id="container_scroll">
|
<el-scrollbar id="container_scroll">
|
||||||
@@ -41,6 +47,7 @@
|
|||||||
el: '#dzzoffice',
|
el: '#dzzoffice',
|
||||||
data: function() {
|
data: function() {
|
||||||
return $.extend({},JsCommonData,JsHeaderData,JsImageData,{
|
return $.extend({},JsCommonData,JsHeaderData,JsImageData,{
|
||||||
|
DocumentLeftWidth:0,
|
||||||
DocumentResize:0,
|
DocumentResize:0,
|
||||||
DocumentTemplate:1,
|
DocumentTemplate:1,
|
||||||
OpenDetailType:'new',
|
OpenDetailType:'new',
|
||||||
@@ -122,6 +129,7 @@
|
|||||||
mounted() {
|
mounted() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.HeaderPopoverSearchMounted();
|
this.HeaderPopoverSearchMounted();
|
||||||
|
this.ImageMounted();
|
||||||
window.onresize = function(){
|
window.onresize = function(){
|
||||||
self.LayoutStructure();
|
self.LayoutStructure();
|
||||||
if(!self.ImageParams.loading){
|
if(!self.ImageParams.loading){
|
||||||
|
|||||||
@@ -2,8 +2,13 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/index.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/index.css?{VERHASH}"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/screen.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/screen.css?{VERHASH}"/>
|
||||||
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/image.css?{VERHASH}"/>
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/image.css?{VERHASH}"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/components/collect.css?{VERHASH}"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{MOD_PATH}/css/pc/components/addcollect.css?{VERHASH}"/>
|
||||||
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/wavesurfer.js?{VERHASH}"></script>
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/wavesurfer.js?{VERHASH}"></script>
|
||||||
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/DomResize.js?{VERHASH}"></script>
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/plug/DomResize.js?{VERHASH}"></script>
|
||||||
|
<!-- <script type="text/javascript" src="{MOD_PATH}/js/pc/components/collect.js?{VERHASH}"></script> -->
|
||||||
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/components/collectdialog.js?{VERHASH}"></script>
|
||||||
|
<script type="text/javascript" src="{MOD_PATH}/js/pc/components/addcollect.js?{VERHASH}"></script>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.el-header{
|
.el-header{
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
@@ -173,6 +178,7 @@
|
|||||||
mounted() {
|
mounted() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.HeaderPopoverSearchMounted();
|
this.HeaderPopoverSearchMounted();
|
||||||
|
this.ImageMounted();
|
||||||
$(document).resize(function(){
|
$(document).resize(function(){
|
||||||
self.LayoutStructure();
|
self.LayoutStructure();
|
||||||
self.DocumentResize += 1;
|
self.DocumentResize += 1;
|
||||||
|
|||||||
@@ -91,10 +91,10 @@
|
|||||||
<div class="h-center">
|
<div class="h-center">
|
||||||
</div>
|
</div>
|
||||||
<div class="h-right" style="overflow: hidden;">
|
<div class="h-right" style="overflow: hidden;">
|
||||||
<el-button type="primary" style="float: left;" size="small" icon="el-icon-circle-plus-outline" @click="catalogue.dialogVisible = true">新建库</el-button>
|
<el-button type="primary" style="float: left;" size="small" icon="el-icon-circle-plus-outline" @click="CreateNewLubrary">新建库</el-button>
|
||||||
<div class="r-option" style="float: left;margin-left: 8px;">
|
<div class="r-option" style="float: left;margin-left: 8px;">
|
||||||
<el-dropdown v-cloak trigger="click" @command="handleavatar">
|
<el-dropdown v-cloak trigger="click" @command="handleavatar">
|
||||||
<div id="dzz_avatar_img">{eval echo avatar_block($_G[uid]);} </div>
|
<div id="dzz_avatar_img" class="small">{eval echo avatar_block($_G[uid]);} </div>
|
||||||
<el-dropdown-menu slot="dropdown" style="width: 165px;">
|
<el-dropdown-menu slot="dropdown" style="width: 165px;">
|
||||||
<el-dropdown-item command="personal">个人设置</el-dropdown-item>
|
<el-dropdown-item command="personal">个人设置</el-dropdown-item>
|
||||||
<el-dropdown-item command="help">帮助文档</el-dropdown-item>
|
<el-dropdown-item command="help">帮助文档</el-dropdown-item>
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
<div class="operation">
|
<div class="operation">
|
||||||
<template>
|
<template>
|
||||||
<el-tooltip :enterable="false" effect="dark" content="更新" placement="top" v-if="parseInt(scope.row.connect) == 1">
|
<el-tooltip :enterable="false" effect="dark" content="更新" placement="top" v-if="parseInt(scope.row.connect) == 1">
|
||||||
<i class="icon el-icon-refresh" @click="handleRefresh(scope.row.appid)" :class="{loading:parseInt(scope.row.state)==1||parseInt(scope.row.state)==2||parseInt(scope.row.state)==3}"></i>
|
<i class="icon ri-refresh-line" style="vertical-align: sub;" @click="handleRefresh(scope.row.appid)" :class="{loading:parseInt(scope.row.state)==1||parseInt(scope.row.state)==2||parseInt(scope.row.state)==3}"></i>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip :enterable="false" effect="dark" content="设置" placement="top">
|
<el-tooltip :enterable="false" effect="dark" content="设置" placement="top">
|
||||||
<i class="icon el-icon-setting" @click="handleSetting(scope.row.appid,scope.row.appname)"></i>
|
<i class="icon el-icon-setting" @click="handleSetting(scope.row.appid,scope.row.appname)"></i>
|
||||||
@@ -299,7 +299,7 @@
|
|||||||
<div class="block">
|
<div class="block">
|
||||||
<div class="text">连接状态:</div>
|
<div class="text">连接状态:</div>
|
||||||
|
|
||||||
<div class="message">当连接状态为<span style="color: #e6a23c;">连接中断</span>时,库内容将不会在页面中显示。可能原因为库目录被移动或者删除,如果是移动了库目录位置,可以先删除掉库,然后重新添加。</div>
|
<div class="message">当连接状态为<span style="color: #e6a23c;">连接中断</span>时,库内容将不会在页面中显示。可能原因为库目录被移动或者删除,如果是移动了库目录位置,可以在设置中修改库目录位置。</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<div class="text">转缩略图:</div>
|
<div class="text">转缩略图:</div>
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
@open="cataloguedialogOpen">
|
@open="cataloguedialogOpen">
|
||||||
<div style="padding-bottom:16px">
|
<div style="padding-bottom:16px">
|
||||||
<span style="color: var(--header-text);">库类型:</span>
|
<span style="color: var(--header-text);">库类型:</span>
|
||||||
<el-radio-group v-model="catalogue.type">
|
<el-radio-group v-model="catalogue.type" :disabled="catalogue.dialogtype=='add'?false:true">
|
||||||
<el-radio label="0">Eagle库</el-radio>
|
<el-radio label="0">Eagle库</el-radio>
|
||||||
<el-radio label="2">billfish</el-radio>
|
<el-radio label="2">billfish</el-radio>
|
||||||
<el-radio label="1">普通目录</el-radio>
|
<el-radio label="1">普通目录</el-radio>
|
||||||
@@ -386,13 +386,18 @@
|
|||||||
<el-radio :label="1">私有</el-radio>
|
<el-radio :label="1">私有</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
|
<el-form-item label="库位置:">
|
||||||
|
<el-input v-model="formdta.path" readonly style="border: 0;">
|
||||||
|
<i slot="suffix" style="cursor: pointer;" class="el-input__icon el-icon-edit" @click="FormdtaPathClick"></i>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="开放分享:">
|
<el-form-item label="开放分享:">
|
||||||
<el-switch v-model="formdta.share" active-value="1" inactive-value="0"></el-switch>
|
<el-switch v-model="formdta.share" active-value="1" inactive-value="0"></el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="开放下载:">
|
<el-form-item label="开放下载:">
|
||||||
<el-switch v-model="formdta.download" active-value="1" inactive-value="0"></el-switch>
|
<el-switch v-model="formdta.download" active-value="1" inactive-value="0"></el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<template v-if="formdta.eagle">
|
<template v-if="parseInt(formdta.eagle)==1">
|
||||||
<el-form-item label="允许导入文件:">
|
<el-form-item label="允许导入文件:">
|
||||||
<el-input type="textarea" v-model="formdta.allowext"></el-input>
|
<el-input type="textarea" v-model="formdta.allowext"></el-input>
|
||||||
<p class="tipTxt">多个使用英文 " , " 隔开。1、"*.png" 代表所有png文件,2、"风景*.jpg"代表所有风景开头的png文件</p>
|
<p class="tipTxt">多个使用英文 " , " 隔开。1、"*.png" 代表所有png文件,2、"风景*.jpg"代表所有风景开头的png文件</p>
|
||||||
@@ -452,6 +457,7 @@
|
|||||||
},
|
},
|
||||||
formdta:{
|
formdta:{
|
||||||
appid:'',
|
appid:'',
|
||||||
|
path:'',
|
||||||
share:'0',
|
share:'0',
|
||||||
getinfo:'0',
|
getinfo:'0',
|
||||||
download:'0',
|
download:'0',
|
||||||
@@ -461,10 +467,13 @@
|
|||||||
eagle:0,
|
eagle:0,
|
||||||
allowext:'',
|
allowext:'',
|
||||||
notallowext:'',
|
notallowext:'',
|
||||||
|
charset:''
|
||||||
},
|
},
|
||||||
newscreens:[],
|
newscreens:[],
|
||||||
newClassfiy:[],
|
newClassfiy:[],
|
||||||
catalogue:{
|
catalogue:{
|
||||||
|
appid:'',
|
||||||
|
dialogtype:'',
|
||||||
search:'',
|
search:'',
|
||||||
defaultsearch:'',
|
defaultsearch:'',
|
||||||
searchStatus:false,
|
searchStatus:false,
|
||||||
@@ -492,6 +501,26 @@
|
|||||||
this.GetCatalogueSelect();
|
this.GetCatalogueSelect();
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
FormdtaPathClick(){
|
||||||
|
this.catalogue.dialogtype = 'setting';
|
||||||
|
this.catalogue.type = this.formdta.type;
|
||||||
|
this.catalogue.appid = this.formdta.appid;
|
||||||
|
var showVal = this.formdta.path;
|
||||||
|
showVal = showVal.split('/');
|
||||||
|
showVal.pop();
|
||||||
|
var newshowVal = showVal.join('/');
|
||||||
|
this.catalogue.showVal = '';
|
||||||
|
this.catalogue.search = newshowVal;
|
||||||
|
this.catalogue.defaultsearch = newshowVal;
|
||||||
|
this.catalogue.searchStatus = true;
|
||||||
|
this.catalogue.charset = this.formdta.charset;
|
||||||
|
this.dialog.Visible = false;
|
||||||
|
this.catalogue.dialogVisible = true;
|
||||||
|
},
|
||||||
|
CreateNewLubrary(){
|
||||||
|
this.catalogue.dialogtype = 'add';
|
||||||
|
this.catalogue.dialogVisible = true;
|
||||||
|
},
|
||||||
TableSortable(){
|
TableSortable(){
|
||||||
var _this = this;
|
var _this = this;
|
||||||
var tbody = document.querySelector('.el-table__body-wrapper tbody');
|
var tbody = document.querySelector('.el-table__body-wrapper tbody');
|
||||||
@@ -593,63 +622,67 @@
|
|||||||
var fclassif = [];
|
var fclassif = [];
|
||||||
var fclassif1 = [];
|
var fclassif1 = [];
|
||||||
var ftype = 0;
|
var ftype = 0;
|
||||||
if(data.data.filter){
|
// if(data.data.filter){
|
||||||
for(var fi in data.data.filter){
|
// for(var fi in data.data.filter){
|
||||||
var fiitem = data.data.filter[fi];
|
// var fiitem = data.data.filter[fi];
|
||||||
var fstr = {
|
// var fstr = {
|
||||||
key:fiitem.key,
|
// key:fiitem.key,
|
||||||
text:fiitem.text,
|
// text:fiitem.text,
|
||||||
checked:parseInt(fiitem.checked),
|
// checked:parseInt(fiitem.checked),
|
||||||
};
|
// };
|
||||||
if(fstr.checked){
|
// if(fstr.checked){
|
||||||
fscreen.push(fstr.key)
|
// fscreen.push(fstr.key)
|
||||||
}
|
// }
|
||||||
if(fstr.key=='tag'){
|
// if(fstr.key=='tag'){
|
||||||
self.formdta.type = parseInt(fstr.showtype);
|
// self.formdta.type = parseInt(fstr.showtype);
|
||||||
if(fstr.checked&&fiitem.group){
|
// console.log(self.formdta.type)
|
||||||
ftype = 1;
|
// if(fstr.checked&&fiitem.group){
|
||||||
for(var b in fiitem.group){
|
// ftype = 1;
|
||||||
var bitem = fiitem.group[b];
|
// for(var b in fiitem.group){
|
||||||
for(var n in data.catdata){
|
// var bitem = fiitem.group[b];
|
||||||
var nitem = data.catdata[n];
|
// for(var n in data.catdata){
|
||||||
if(bitem.cid == nitem.cid){
|
// var nitem = data.catdata[n];
|
||||||
if(parseInt(bitem.checked)){
|
// if(bitem.cid == nitem.cid){
|
||||||
fclassif.push(nitem.cid);
|
// if(parseInt(bitem.checked)){
|
||||||
}
|
// fclassif.push(nitem.cid);
|
||||||
self.newClassfiy.push(nitem);
|
// }
|
||||||
fclassif1.push(nitem.cid);
|
// self.newClassfiy.push(nitem);
|
||||||
}
|
// fclassif1.push(nitem.cid);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if(data.catdata.length>fclassif1.length){
|
// }
|
||||||
for(var n in data.catdata){
|
// if(data.catdata.length>fclassif1.length){
|
||||||
var nitem = data.catdata[n];
|
// for(var n in data.catdata){
|
||||||
if(fclassif1.indexOf(nitem.cid)<0){
|
// var nitem = data.catdata[n];
|
||||||
self.newClassfiy.push(nitem);
|
// if(fclassif1.indexOf(nitem.cid)<0){
|
||||||
}
|
// self.newClassfiy.push(nitem);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}else{
|
// }
|
||||||
self.newClassfiy = data.catdata;
|
// }else{
|
||||||
}
|
// self.newClassfiy = data.catdata;
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
self.newscreens.push(fstr);
|
// self.newscreens.push(fstr);
|
||||||
}
|
// }
|
||||||
}else{
|
// }else{
|
||||||
self.newClassfiy = data.catdata;
|
// self.newClassfiy = data.catdata;
|
||||||
self.newscreens = self.screens;
|
// self.newscreens = self.screens;
|
||||||
}
|
// }
|
||||||
|
var showVal = data.data.convertpath.replace(/\\/g,"/");
|
||||||
self.dialog.Visible = true;
|
self.dialog.Visible = true;
|
||||||
self.formdta = {
|
self.formdta = {
|
||||||
appid:appid,
|
appid:appid,
|
||||||
|
path:showVal,
|
||||||
|
type:data.data.type,
|
||||||
getinfo:data.data.getinfo,
|
getinfo:data.data.getinfo,
|
||||||
share:data.data.share,
|
share:data.data.share,
|
||||||
download:data.data.download,
|
download:data.data.download,
|
||||||
screen:fscreen,
|
screen:fscreen,
|
||||||
classif:fclassif,
|
classif:fclassif,
|
||||||
type:ftype,
|
charset:data.data.charset,
|
||||||
|
// type:ftype,
|
||||||
eagle:parseInt(data.data.type),
|
eagle:parseInt(data.data.type),
|
||||||
allowext:data.data.allowext,
|
allowext:data.data.allowext,
|
||||||
notallowext:data.data.notallowext,
|
notallowext:data.data.notallowext,
|
||||||
@@ -660,6 +693,9 @@
|
|||||||
},'json');
|
},'json');
|
||||||
},
|
},
|
||||||
cataloguedialogOpen(){
|
cataloguedialogOpen(){
|
||||||
|
if(this.catalogue.dialogtype == 'setting'){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var dzzroot = '$dzzroot';
|
var dzzroot = '$dzzroot';
|
||||||
var defaultVal = [];
|
var defaultVal = [];
|
||||||
var showVal = '';
|
var showVal = '';
|
||||||
@@ -668,6 +704,7 @@
|
|||||||
defaultVal = str.split('/');
|
defaultVal = str.split('/');
|
||||||
showVal = defaultVal.join('/');
|
showVal = defaultVal.join('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.catalogue.search = '';
|
this.catalogue.search = '';
|
||||||
this.catalogue.defaultsearch = '';
|
this.catalogue.defaultsearch = '';
|
||||||
this.catalogue.searchStatus = '';
|
this.catalogue.searchStatus = '';
|
||||||
@@ -675,14 +712,14 @@
|
|||||||
this.catalogue.type = '0';
|
this.catalogue.type = '0';
|
||||||
this.catalogue.nodeId = 0;
|
this.catalogue.nodeId = 0;
|
||||||
this.catalogue.parent = [];
|
this.catalogue.parent = [];
|
||||||
|
this.catalogue.showVal = '';
|
||||||
this.catalogue.showVal = showVal;
|
|
||||||
this.catalogue.charset = 'utf8';
|
this.catalogue.charset = 'utf8';
|
||||||
this.catalogue.force = 0;
|
this.catalogue.force = 0;
|
||||||
if(this.catalogue.parentnode){
|
if(this.catalogue.parentnode){
|
||||||
this.catalogue.parentnode.childNodes = []
|
this.catalogue.parentnode.childNodes = []
|
||||||
this.LoadNodeTree(this.catalogue.parentnode,this.catalogue.parentresolve);
|
this.LoadNodeTree(this.catalogue.parentnode,this.catalogue.parentresolve);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
ImportDataDialogClick(type){
|
ImportDataDialogClick(type){
|
||||||
if(type == 'eagle'){
|
if(type == 'eagle'){
|
||||||
@@ -837,15 +874,27 @@
|
|||||||
self.$message.error('请选择路径');
|
self.$message.error('请选择路径');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var param = {
|
var url = MOD_URL+'&op=library&operation=addlibrary';
|
||||||
path:self.catalogue.showVal,
|
if(this.catalogue.dialogtype == 'setting'){
|
||||||
type:self.catalogue.type,
|
url = MOD_URL+'&op=library&operation=changePath';
|
||||||
charset:self.catalogue.charset
|
var param = {
|
||||||
|
appid:self.catalogue.appid,
|
||||||
|
path:self.catalogue.showVal,
|
||||||
|
type:self.catalogue.type,
|
||||||
|
charset:self.catalogue.charset
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
var param = {
|
||||||
|
path:self.catalogue.showVal,
|
||||||
|
type:self.catalogue.type,
|
||||||
|
charset:self.catalogue.charset
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(self.catalogue.type == 1 && self.catalogue.force){
|
|
||||||
|
if(parseInt(self.catalogue.type) == 1 && self.catalogue.force){
|
||||||
param['force'] = 1;
|
param['force'] = 1;
|
||||||
}
|
}
|
||||||
$.post(MOD_URL+'&op=library&operation=addlibrary',param,function(data){
|
$.post(url,param,function(data){
|
||||||
if(data.tips){
|
if(data.tips){
|
||||||
self.ImportDataVisible = true;
|
self.ImportDataVisible = true;
|
||||||
return false;
|
return false;
|
||||||
@@ -853,16 +902,31 @@
|
|||||||
if(data.error){
|
if(data.error){
|
||||||
self.$message.error(data.error);
|
self.$message.error(data.error);
|
||||||
}else{
|
}else{
|
||||||
self.$message({
|
if(self.catalogue.dialogtype == 'setting'){
|
||||||
message: '添加成功',
|
// for(var a in self.tableData){
|
||||||
type: 'success'
|
// if(self.tableData[a].appid == param.appid){
|
||||||
});
|
// self.tableData[a].path = param.path;
|
||||||
var fdata = data.data;
|
// }
|
||||||
fdata['state'] = 0;
|
// }
|
||||||
fdata['filenum'] = 0;
|
// self.$message({
|
||||||
fdata['percent'] = 0;
|
// message: '修改成功',
|
||||||
fdata['connect'] = 1;
|
// type: 'success'
|
||||||
self.tableData.push(fdata);
|
// });
|
||||||
|
window.location.reload();
|
||||||
|
}else{
|
||||||
|
self.$message({
|
||||||
|
message: '添加成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
var fdata = data.data;
|
||||||
|
fdata['state'] = 0;
|
||||||
|
fdata['filenum'] = 0;
|
||||||
|
fdata['percent'] = 0;
|
||||||
|
fdata['connect'] = 1;
|
||||||
|
fdata['type'] = self.catalogue.type;
|
||||||
|
self.tableData.push(fdata);
|
||||||
|
}
|
||||||
|
|
||||||
self.catalogue.dialogVisible = false;
|
self.catalogue.dialogVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1100,11 +1164,11 @@
|
|||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(function() {
|
||||||
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
jQuery.get('user.php?mod=login&op=logging&action=logout&formhash={FORMHASH}&t='+new Date().getTime(),function(data){
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
}).catch(function() {
|
||||||
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user