20 changed files with 6551 additions and 809 deletions
-
116app/Common/OSS.php
-
22app/Common/Sms.php
-
4app/Common/Token.php
-
13app/Http/Controllers/Api/GoodsController.php
-
6app/Http/Controllers/Api/ImageController.php
-
117app/Http/Controllers/Api/WechatAuthController.php
-
6app/Http/Kernel.php
-
4app/Http/Middleware/TokenAuth.php
-
11app/Http/Model/Goods.php
-
184public/css/bxslider.css
-
2972public/css/frozen.css
-
300public/css/language-selector.css
-
218public/css/lanrenzhijia.css
-
BINpublic/fonts/iconfont-full.ttf
-
BINpublic/fonts/iconfont.ttf
-
10public/js/bxslider.min.js
-
1527public/js/frozen.js
-
70public/js/online.js
-
1773public/js/zepto.min.js
-
5routes/web.php
@ -0,0 +1,116 @@ |
|||||
|
<?php |
||||
|
namespace App\Common; |
||||
|
|
||||
|
use JohnLui\AliyunOSS; |
||||
|
|
||||
|
class OSS |
||||
|
{ |
||||
|
|
||||
|
private $ossClient; |
||||
|
|
||||
|
public function __construct($isInternal = false) |
||||
|
{ |
||||
|
$serverAddress = $isInternal ? config('app.ossServerInternal') : config('app.ossServer'); |
||||
|
$this->ossClient = AliyunOSS::boot( |
||||
|
$serverAddress, |
||||
|
config('app.AccessKeyId'), |
||||
|
config('app.AccessKeySecret') |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public static function upload($ossKey, $filePath, $bucket = '') |
||||
|
{ |
||||
|
$isInternal = config('app.isInternal'); |
||||
|
!$bucket && $bucket = config('app.ossBucket'); |
||||
|
$oss = new OSS($isInternal); // 上传文件使用内网,免流量费
|
||||
|
$oss->ossClient->setBucket($bucket); |
||||
|
$oss->ossClient->uploadFile($ossKey, $filePath); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 直接把变量内容上传到oss |
||||
|
* |
||||
|
* @param $osskey |
||||
|
* @param $content |
||||
|
* @param string $bucket |
||||
|
*/ |
||||
|
public static function uploadContent($osskey, $content, $bucket = '') |
||||
|
{ |
||||
|
$isInternal = config('app.isInternal'); |
||||
|
!$bucket && $bucket = config('app.ossBucket'); |
||||
|
$oss = new OSS($isInternal); // 上传文件使用内网,免流量费
|
||||
|
$oss->ossClient->setBucket($bucket); |
||||
|
$oss->ossClient->uploadContent($osskey, $content); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除存储在oss中的文件 |
||||
|
* |
||||
|
* @param string $ossKey 存储的key(文件路径和文件名) |
||||
|
* @param string $bucket |
||||
|
* |
||||
|
* @return bool |
||||
|
*/ |
||||
|
public static function deleteObject($ossKey, $bucket = '') |
||||
|
{ |
||||
|
$isInternal = config('app.isInternal'); |
||||
|
!$bucket && $bucket = config('app.ossBucket'); |
||||
|
$oss = new OSS($isInternal); // 上传文件使用内网,免流量费
|
||||
|
return $oss->ossClient->deleteObject($bucket, $ossKey); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 复制存储在阿里云OSS中的Object |
||||
|
* |
||||
|
* @param string $sourceBuckt 复制的源Bucket |
||||
|
* @param string $sourceKey - 复制的的源Object的Key |
||||
|
* @param string $destBucket - 复制的目的Bucket |
||||
|
* @param string $destKey - 复制的目的Object的Key |
||||
|
* |
||||
|
* @return Models\CopyObjectResult |
||||
|
*/ |
||||
|
public function copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey) |
||||
|
{ |
||||
|
$oss = new OSS(true); // 上传文件使用内网,免流量费
|
||||
|
|
||||
|
return $oss->ossClient->copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 移动存储在阿里云OSS中的Object |
||||
|
* |
||||
|
* @param string $sourceBuckt 复制的源Bucket |
||||
|
* @param string $sourceKey - 复制的的源Object的Key |
||||
|
* @param string $destBucket - 复制的目的Bucket |
||||
|
* @param string $destKey - 复制的目的Object的Key |
||||
|
* |
||||
|
* @return Models\CopyObjectResult |
||||
|
*/ |
||||
|
public function moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey) |
||||
|
{ |
||||
|
$oss = new OSS(true); // 上传文件使用内网,免流量费
|
||||
|
|
||||
|
return $oss->ossClient->moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey); |
||||
|
} |
||||
|
|
||||
|
public static function getUrl($ossKey, $bucket = '') |
||||
|
{ |
||||
|
!$bucket && $bucket = config('app.ossBucket'); |
||||
|
$oss = new OSS(); |
||||
|
$oss->ossClient->setBucket($bucket); |
||||
|
return $oss->ossClient->getUrl($ossKey, new \DateTime("+1 day")); |
||||
|
} |
||||
|
|
||||
|
public static function createBucket($bucketName) |
||||
|
{ |
||||
|
$oss = new OSS(); |
||||
|
return $oss->ossClient->createBucket($bucketName); |
||||
|
} |
||||
|
|
||||
|
public static function getAllObjectKey($bucketName) |
||||
|
{ |
||||
|
$oss = new OSS(); |
||||
|
return $oss->ossClient->getAllObjectKey($bucketName); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,117 @@ |
|||||
|
<?php |
||||
|
namespace App\Http\Controllers\Api; |
||||
|
|
||||
|
use App\Http\Controllers\Api\CommonController; |
||||
|
|
||||
|
//微信auth2.0 受权
|
||||
|
class WechatAuthController extends CommonController |
||||
|
{ |
||||
|
public $appid = 'wxba09d9f0fed4b84b'; //微信APPID,公众平台获取
|
||||
|
public $appsecret = '332c2b1fc1eb282c0136b73723db4237'; //微信APPSECREC,公众平台获取
|
||||
|
public $redirect_uri = "http://www.你的域名.cn/项目目录/index.php?m=分组&c=控制器&a=方法"; //微信回调地址,要跟公众平台的配置域名相同
|
||||
|
public $code; |
||||
|
public $openid; |
||||
|
public $state = 123; //重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
|
||||
|
|
||||
|
public function auth(Request $request) |
||||
|
{ |
||||
|
//如果$_SESSION中没有openid,说明用户刚刚登陆,就执行getCode、getOpenId、getUserInfo获取他的信息
|
||||
|
if (!isset($_SESSION['openid'])) |
||||
|
{ |
||||
|
$this->code = $this->getCode(); |
||||
|
$this->access_token = $this->getOpenId(); |
||||
|
$userInfo = $this->getUserInfo(); |
||||
|
|
||||
|
//把用户的微信信息存到数据库中
|
||||
|
/* if ($userInfo) |
||||
|
{ |
||||
|
$ins = M('Wechat_user_info'); |
||||
|
$map['openid'] = $userInfo['openid']; |
||||
|
$result = $ins->where($map)->find(); //根据OPENID查找数据库中是否有这个用户,如果没有就写数据库。继承该类的其他类,用户都写入了数据库中。
|
||||
|
|
||||
|
if (!$result) |
||||
|
{ |
||||
|
$ins->add($userInfo); |
||||
|
} |
||||
|
|
||||
|
$_SESSION['openid'] = $userInfo['openid']; //写到$_SESSION中。微信缓存很坑爹,调试时请及时清除缓存再试。
|
||||
|
} */ |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @explain |
||||
|
* 获取code,用于获取openid和access_token |
||||
|
* @remark |
||||
|
* code只能使用一次,当获取到之后code失效,再次获取需要重新进入 |
||||
|
* 不会弹出授权页面,适用于关注公众号后自定义菜单跳转等,如果不关注,那么只能获取openid |
||||
|
**/ |
||||
|
public function getCode() |
||||
|
{ |
||||
|
if (isset($_REQUEST["code"])) |
||||
|
{ |
||||
|
return $_REQUEST["code"]; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
$str = "location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $this->appid . "&redirect_uri=" . $this->redirect_uri . "&response_type=code&scope=snsapi_userinfo&state=". $this->state ."#wechat_redirect"; |
||||
|
header($str); |
||||
|
exit; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @explain |
||||
|
* 用于获取用户openid |
||||
|
**/ |
||||
|
public function getOpenId() |
||||
|
{ |
||||
|
$access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $this->appid . "&secret=" . $this->appsecret . "&code=" . $this->code . "&grant_type=authorization_code"; |
||||
|
$access_token_json = $this->https_request($access_token_url); |
||||
|
$access_token_array = json_decode($access_token_json, TRUE); |
||||
|
|
||||
|
return $access_token_array; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @explain |
||||
|
* 通过code获取用户openid以及用户的微信号信息 |
||||
|
* @return |
||||
|
* @remark |
||||
|
* 获取到用户的openid之后可以判断用户是否有数据,可以直接跳过获取access_token,也可以继续获取access_token |
||||
|
* access_token每日获取次数是有限制的,access_token有时间限制,可以存储到数据库7200s. 7200s后access_token失效 |
||||
|
**/ |
||||
|
public function getUserInfo() |
||||
|
{ |
||||
|
$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$this->access_token['access_token'] ."&openid=" . $this->access_token['openid']."&lang=zh_CN"; |
||||
|
$userinfo_json = $this->https_request($userinfo_url); |
||||
|
$userinfo_array = json_decode($userinfo_json, TRUE); |
||||
|
|
||||
|
return $userinfo_array; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* @explain |
||||
|
* 发送http请求,并返回数据 |
||||
|
**/ |
||||
|
public function https_request($url, $data = null) |
||||
|
{ |
||||
|
$curl = curl_init(); |
||||
|
curl_setopt($curl, CURLOPT_URL, $url); |
||||
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); |
||||
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); |
||||
|
|
||||
|
if (!empty($data)) |
||||
|
{ |
||||
|
curl_setopt($curl, CURLOPT_POST, 1); |
||||
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); |
||||
|
} |
||||
|
|
||||
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); |
||||
|
$output = curl_exec($curl); |
||||
|
curl_close($curl); |
||||
|
|
||||
|
return $output; |
||||
|
} |
||||
|
} |
@ -1,184 +0,0 @@ |
|||||
/* AB模版网 做最好的织梦整站模板下载网站 */ |
|
||||
/* 网址:Www.AdminBuy.Cn */ |
|
||||
/* 图标大全:Sc.AdminBuy.Cn 专业建站素材网站 */ |
|
||||
/* QQ:9490489 */ |
|
||||
/** |
|
||||
* BxSlider v4.1.2 - Fully loaded, responsive content slider |
|
||||
* /bxslider.com |
|
||||
* |
|
||||
* Written by: Steven Wanderski, 2014 |
|
||||
* /stevenwanderski.com |
|
||||
* (while drinking Belgian ales and listening to jazz) |
|
||||
* |
|
||||
* CEO and founder of bxCreative, LTD |
|
||||
* /bxcreative.com |
|
||||
*/ |
|
||||
|
|
||||
|
|
||||
/** RESET AND LAYOUT |
|
||||
===================================*/ |
|
||||
|
|
||||
|
|
||||
.bx-wrapper { |
|
||||
position: relative; |
|
||||
/*margin: 0 auto 60px;*/ |
|
||||
margin: 0 auto 0px; |
|
||||
padding: 0; |
|
||||
*zoom: 1; |
|
||||
} |
|
||||
.bx-wrapper img { |
|
||||
max-width: 100%; |
|
||||
display: block; |
|
||||
} |
|
||||
/** THEME |
|
||||
===================================*/ |
|
||||
|
|
||||
.bx-wrapper .bx-viewport { |
|
||||
/* -moz-box-shadow: 0 0 5px #ccc; |
|
||||
-webkit-box-shadow: 0 0 5px #ccc; |
|
||||
box-shadow: 0 0 5px #ccc; |
|
||||
border: 5px solid #fff; |
|
||||
left: -5px; |
|
||||
background: #fff;*/ |
|
||||
|
|
||||
/*fix other elements on the page moving (on Chrome)*/ |
|
||||
-webkit-transform: translatez(0); |
|
||||
-moz-transform: translatez(0); |
|
||||
-ms-transform: translatez(0); |
|
||||
-o-transform: translatez(0); |
|
||||
transform: translatez(0); |
|
||||
} |
|
||||
.bx-wrapper .bx-pager, .bx-wrapper .bx-controls-auto { |
|
||||
position: absolute; |
|
||||
bottom: -30px; |
|
||||
width: 100%; |
|
||||
} |
|
||||
/* LOADER */ |
|
||||
|
|
||||
.bx-wrapper .bx-loading { |
|
||||
min-height: 50px; |
|
||||
background: url(../images/bx_loader.gif) center center no-repeat #fff; |
|
||||
height: 100%; |
|
||||
width: 100%; |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
z-index: 2000; |
|
||||
} |
|
||||
/* PAGER */ |
|
||||
|
|
||||
.bx-wrapper .bx-pager { |
|
||||
text-align: center; |
|
||||
font-size: .85em; |
|
||||
font-family: Arial; |
|
||||
font-weight: bold; |
|
||||
color: #666; |
|
||||
padding-top: 20px; |
|
||||
} |
|
||||
.bx-wrapper .bx-pager .bx-pager-item, .bx-wrapper .bx-controls-auto .bx-controls-auto-item { |
|
||||
display: inline-block; |
|
||||
*zoom: 1; |
|
||||
*display: inline; |
|
||||
} |
|
||||
.bx-wrapper .bx-pager.bx-default-pager a { |
|
||||
/*background: #303c4b;*/ |
|
||||
border: 1px solid #fff; |
|
||||
text-indent: -9999px; |
|
||||
display: block; |
|
||||
width: 15px; |
|
||||
height: 15px; |
|
||||
margin: 0 3px; |
|
||||
outline: 0; |
|
||||
-moz-border-radius: 10px; |
|
||||
-webkit-border-radius: 10px; |
|
||||
border-radius: 10px; |
|
||||
} |
|
||||
.bx-wrapper .bx-pager.bx-default-pager a:hover, .bx-wrapper .bx-pager.bx-default-pager a.active { |
|
||||
background: #fff; |
|
||||
border: 1px solid #fff; |
|
||||
} |
|
||||
/* DIRECTION CONTROLS (NEXT / PREV) */ |
|
||||
|
|
||||
.bx-wrapper .bx-prev { |
|
||||
left: 10px; |
|
||||
background: url(../images/controls.png) no-repeat 0 -32px; |
|
||||
} |
|
||||
.bx-wrapper .bx-next { |
|
||||
right: 10px; |
|
||||
background: url(../images/controls.png) no-repeat -43px -32px; |
|
||||
} |
|
||||
.bx-wrapper .bx-prev:hover { |
|
||||
background-position: 0 0; |
|
||||
} |
|
||||
.bx-wrapper .bx-next:hover { |
|
||||
background-position: -43px 0; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-direction a { |
|
||||
position: absolute; |
|
||||
top: 50%; |
|
||||
margin-top: -16px; |
|
||||
outline: 0; |
|
||||
width: 32px; |
|
||||
height: 32px; |
|
||||
text-indent: -9999px; |
|
||||
z-index: 999; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-direction a.disabled { |
|
||||
display: none; |
|
||||
} |
|
||||
/* AUTO CONTROLS (START / STOP) */ |
|
||||
|
|
||||
.bx-wrapper .bx-controls-auto { |
|
||||
text-align: center; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-auto .bx-start { |
|
||||
display: block; |
|
||||
text-indent: -9999px; |
|
||||
width: 10px; |
|
||||
height: 11px; |
|
||||
outline: 0; |
|
||||
background: url(../images/controls.png) -86px -11px no-repeat; |
|
||||
margin: 0 3px; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-auto .bx-start:hover, .bx-wrapper .bx-controls-auto .bx-start.active { |
|
||||
background-position: -86px 0; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-auto .bx-stop { |
|
||||
display: block; |
|
||||
text-indent: -9999px; |
|
||||
width: 9px; |
|
||||
height: 11px; |
|
||||
outline: 0; |
|
||||
background: url(../images/controls.png) -86px -44px no-repeat; |
|
||||
margin: 0 3px; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls-auto .bx-stop:hover, .bx-wrapper .bx-controls-auto .bx-stop.active { |
|
||||
background-position: -86px -33px; |
|
||||
} |
|
||||
/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ |
|
||||
|
|
||||
.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { |
|
||||
text-align: left; |
|
||||
width: 80%; |
|
||||
} |
|
||||
.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { |
|
||||
right: 0; |
|
||||
width: 35px; |
|
||||
} |
|
||||
/* IMAGE CAPTIONS */ |
|
||||
|
|
||||
.bx-wrapper .bx-caption { |
|
||||
position: absolute; |
|
||||
bottom: 0; |
|
||||
left: 0; |
|
||||
background: #666\9; |
|
||||
background: rgba(80, 80, 80, 0.75); |
|
||||
width: 100%; |
|
||||
} |
|
||||
.bx-wrapper .bx-caption span { |
|
||||
color: #fff; |
|
||||
font-family: Arial; |
|
||||
display: block; |
|
||||
font-size: .85em; |
|
||||
padding: 10px; |
|
||||
} |
|
2972
public/css/frozen.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,300 +0,0 @@ |
|||||
/* IE5.5 hacks */ |
|
||||
* html #lang_sel, |
|
||||
* html #lang_sel_list { |
|
||||
width: 12em; |
|
||||
} |
|
||||
* html #lang_sel a, |
|
||||
* html #lang_sel_list a { |
|
||||
width: 149px; |
|
||||
} |
|
||||
* html #lang_sel a:visited, |
|
||||
* html #lang_sel_list a:visited { |
|
||||
width: 149px; |
|
||||
} |
|
||||
* html #lang_sel ul ul, |
|
||||
* html #lang_sel_list ul { |
|
||||
top: 18px; |
|
||||
} |
|
||||
* html #lang_sel ul ul a, |
|
||||
* html #lang_sel_list ul a { |
|
||||
width: 150px; |
|
||||
} |
|
||||
* html #lang_sel ul ul a:visited, |
|
||||
* html #lang_sel_list ul a:visited { |
|
||||
width: 150px; |
|
||||
} |
|
||||
|
|
||||
/* remove all the bullets, borders and padding from the default list styling */ |
|
||||
#lang_sel { |
|
||||
height: 32px; |
|
||||
position: relative; |
|
||||
font-family: verdana, arial, sans-serif; |
|
||||
display: inline-block; |
|
||||
/* style the table so that it takes no part in the layout - required for IE to work */ |
|
||||
/* style the top level hover */ |
|
||||
} |
|
||||
#lang_sel ul { |
|
||||
padding: 0 !important; |
|
||||
margin: 0 !important; |
|
||||
list-style-type: none !important; |
|
||||
/* hide the sub levels and give them a positon absolute so that they take up no room */ |
|
||||
} |
|
||||
#lang_sel ul li:hover ul, #lang_sel ul a:hover ul { |
|
||||
visibility: visible; |
|
||||
} |
|
||||
#lang_sel ul ul { |
|
||||
|
|
||||
visibility: hidden; |
|
||||
position: absolute; |
|
||||
height: 0; |
|
||||
top: 25px; |
|
||||
left: 0; |
|
||||
border-top: 1px solid #cdcdcd; |
|
||||
} |
|
||||
#lang_sel ul ul a { |
|
||||
background: #ffffff; |
|
||||
color: #444444; |
|
||||
height: auto; |
|
||||
line-height: 1em; |
|
||||
padding: 5px 10px; |
|
||||
border-width: 0 1px 1px 1px; |
|
||||
} |
|
||||
#lang_sel ul ul a:visited { |
|
||||
background: #ffffff; |
|
||||
color: #444444; |
|
||||
height: auto; |
|
||||
line-height: 1em; |
|
||||
padding: 5px 10px; |
|
||||
border-width: 0 1px 1px 1px; |
|
||||
} |
|
||||
#lang_sel li { |
|
||||
float: left; |
|
||||
width: 95px; |
|
||||
position: relative; |
|
||||
padding: 0 !important; |
|
||||
margin: 0 !important; |
|
||||
list-style-type: none !important; |
|
||||
} |
|
||||
#lang_sel li:before { |
|
||||
content: '' !important; |
|
||||
} |
|
||||
#lang_sel a { |
|
||||
display: block; |
|
||||
font-size: 11px; |
|
||||
text-decoration: none !important; |
|
||||
color: #444444; |
|
||||
border: 1px solid #cdcdcd; |
|
||||
background: #fff; |
|
||||
padding-left: 10px; |
|
||||
line-height: 24px; |
|
||||
} |
|
||||
#lang_sel a:visited { |
|
||||
display: block; |
|
||||
font-size: 11px; |
|
||||
text-decoration: none !important; |
|
||||
color: #444444; |
|
||||
border: 1px solid #cdcdcd; |
|
||||
background: #fff; |
|
||||
padding-left: 10px; |
|
||||
line-height: 24px; |
|
||||
} |
|
||||
#lang_sel a.lang_sel_sel { |
|
||||
background: url(../img/nav-arrow-down.png) #fff right no-repeat; |
|
||||
color: #444; |
|
||||
} |
|
||||
#lang_sel a.lang_sel_sel:hover { |
|
||||
text-decoration: none; |
|
||||
color: #000; |
|
||||
} |
|
||||
#lang_sel table { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
border-collapse: collapse; |
|
||||
} |
|
||||
#lang_sel a:hover, #lang_sel ul ul a:hover, #lang_sel :hover > a, #lang_sel ul ul :hover > a { |
|
||||
color: #000; |
|
||||
background: #eee; |
|
||||
} |
|
||||
#lang_sel img.iclflag { |
|
||||
width: 18px; |
|
||||
height: 12px; |
|
||||
position: relative; |
|
||||
top: 1px; |
|
||||
display:inline; |
|
||||
float:none; |
|
||||
vertical-align: middle; |
|
||||
} |
|
||||
#lang_sel.icl_rtl { |
|
||||
text-align: right; |
|
||||
direction: rtl; |
|
||||
} |
|
||||
#lang_sel.icl_rtl .lang_sel_sel { |
|
||||
padding-right: 14px; |
|
||||
} |
|
||||
|
|
||||
/* make the second level visible when hover on first level list OR link */ |
|
||||
#lang_sel_footer { |
|
||||
margin: 0; |
|
||||
padding: 7px; |
|
||||
text-align: center; |
|
||||
font: 11px Verdana, sans-serif; |
|
||||
min-height: 15px; |
|
||||
clear: both; |
|
||||
background-color: #fff; |
|
||||
border: 1px solid #cdcdcd; |
|
||||
} |
|
||||
#lang_sel_footer ul { |
|
||||
list-style: none; |
|
||||
margin: 0; |
|
||||
padding: 0; |
|
||||
} |
|
||||
#lang_sel_footer ul li { |
|
||||
display: inline; |
|
||||
margin: 0 1px 0 0; |
|
||||
padding: 0; |
|
||||
white-space: nowrap; |
|
||||
line-height: 25px; |
|
||||
} |
|
||||
#lang_sel_footer ul li img { |
|
||||
position: relative; |
|
||||
top: 1px; |
|
||||
width: 18px; |
|
||||
height: 12px; |
|
||||
|
|
||||
} |
|
||||
#lang_sel_footer ul li a { |
|
||||
text-decoration: none; |
|
||||
padding: 5px 10px; |
|
||||
} |
|
||||
#lang_sel_footer ul li a:visited { |
|
||||
text-decoration: none; |
|
||||
padding: 5px 10px; |
|
||||
} |
|
||||
|
|
||||
#wpml_credit_footer { |
|
||||
width: 100%; |
|
||||
margin: 10px 0; |
|
||||
padding: 0; |
|
||||
text-align: center; |
|
||||
font-size: 11px; |
|
||||
} |
|
||||
|
|
||||
/* remove all the bullets, borders and padding from the default list styling */ |
|
||||
#lang_sel_list { |
|
||||
height: 32px; |
|
||||
position: relative; |
|
||||
z-index: 99; |
|
||||
font-family: verdana, arial, sans-serif; |
|
||||
/* style the table so that it takes no ppart in the layout - required for IE to work */ |
|
||||
} |
|
||||
#lang_sel_list ul { |
|
||||
padding: 0 !important; |
|
||||
margin: 0 !important; |
|
||||
list-style-type: none !important; |
|
||||
} |
|
||||
#lang_sel_list ul li:hover ul, #lang_sel_list ul a:hover ul { |
|
||||
visibility: visible; |
|
||||
} |
|
||||
#lang_sel_list ul.lang_sel_list_vertical { |
|
||||
width: 149px; |
|
||||
} |
|
||||
#lang_sel_list ul a { |
|
||||
background: #ffffff; |
|
||||
color: #444444; |
|
||||
height: auto; |
|
||||
line-height: 1em; |
|
||||
} |
|
||||
#lang_sel_list li { |
|
||||
float: left; |
|
||||
position: relative; |
|
||||
padding: 0 !important; |
|
||||
margin: 0 !important; |
|
||||
list-style-type: none !important; |
|
||||
} |
|
||||
#lang_sel_list li:before { |
|
||||
content: '' !important; |
|
||||
} |
|
||||
#lang_sel_list a { |
|
||||
display: block; |
|
||||
font-size: 11px; |
|
||||
text-decoration: none !important; |
|
||||
color: #444444; |
|
||||
background: #fff; |
|
||||
line-height: 18px; |
|
||||
padding-left: 5px; |
|
||||
} |
|
||||
#lang_sel_list a:visited { |
|
||||
display: block; |
|
||||
font-size: 11px; |
|
||||
text-decoration: none !important; |
|
||||
color: #444444; |
|
||||
background: #fff; |
|
||||
line-height: 18px; |
|
||||
padding-left: 5px; |
|
||||
} |
|
||||
#lang_sel_list a.lang_sel_sel { |
|
||||
background-image: none; |
|
||||
color: #444; |
|
||||
} |
|
||||
#lang_sel_list a.lang_sel_sel:hover { |
|
||||
text-decoration: none; |
|
||||
color: #000; |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical { |
|
||||
width: 149px; |
|
||||
/* hide the sub levels and give them a positon absolute so that they take up no room */ |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical ul { |
|
||||
/*visibility:hidden;position:absolute;*/ |
|
||||
height: 0; |
|
||||
top: 19px; |
|
||||
left: 0; |
|
||||
border-top: 1px solid #cdcdcd; |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical ul a { |
|
||||
padding: 3px 10px; |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical li { |
|
||||
width: 149px; |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical a { |
|
||||
border: 1px solid #cdcdcd; |
|
||||
border-top-width: 0; |
|
||||
padding-left: 10px; |
|
||||
} |
|
||||
#lang_sel_list.lang_sel_list_vertical a:visited { |
|
||||
border: 1px solid #cdcdcd; |
|
||||
border-top-width: 0; |
|
||||
padding-left: 10px; |
|
||||
} |
|
||||
#lang_sel_list table { |
|
||||
position: absolute; |
|
||||
top: 0; |
|
||||
left: 0; |
|
||||
border-collapse: collapse; |
|
||||
} |
|
||||
#lang_sel_list img.iclflag { |
|
||||
width: 18px; |
|
||||
height: 12px; |
|
||||
position: relative; |
|
||||
top: 1px; |
|
||||
display:inline; |
|
||||
} |
|
||||
|
|
||||
/* style the second level links */ |
|
||||
#lang_sel_list_list ul a:visited { |
|
||||
background: #ffffff; |
|
||||
color: #444444; |
|
||||
height: auto; |
|
||||
line-height: 1em; |
|
||||
padding: 3px 10px; |
|
||||
} |
|
||||
|
|
||||
/* reset menu img definitions */ |
|
||||
.menu-item-language img.iclflag { |
|
||||
height: 12px !important; |
|
||||
width: 18px !important; |
|
||||
margin-bottom: 0 !important; |
|
||||
margin-right: 4px; |
|
||||
} |
|
@ -1,218 +0,0 @@ |
|||||
/* 代码整理:懒人之家 www.lanrenzhijia.com */ |
|
||||
body { |
|
||||
font-family:"microsoft Yahei"; |
|
||||
color:#666; |
|
||||
margin:0; |
|
||||
} |
|
||||
table, td { |
|
||||
font:12px/180% Arial, Helvetica, sans-serif, Verdana; |
|
||||
color:#666; |
|
||||
} |
|
||||
table { |
|
||||
border-collapse2:collapse2; |
|
||||
border-spacing:0; |
|
||||
empty-cells:show; |
|
||||
} |
|
||||
th, td { |
|
||||
border-collapse2:collapse2; |
|
||||
} |
|
||||
A:link { |
|
||||
text-decoration:none; |
|
||||
|
|
||||
} |
|
||||
A:visited { |
|
||||
text-decoration:none; |
|
||||
|
|
||||
} |
|
||||
A:hover { |
|
||||
text-decoration:none; |
|
||||
|
|
||||
} |
|
||||
img { |
|
||||
border:0; |
|
||||
} |
|
||||
div, p, img, ul, li, form, input, label, span, dl, dt, dd { |
|
||||
margin:0; |
|
||||
padding:0; |
|
||||
font-family:microsoft yahei, Helvetica, sans-serif; |
|
||||
} |
|
||||
ol, ul, li { |
|
||||
list-style-type:none; |
|
||||
} |
|
||||
.overh { |
|
||||
overflow:auto; |
|
||||
zoom:1; |
|
||||
overflow-x:hidden; |
|
||||
overflow-y:hidden; |
|
||||
} |
|
||||
html { |
|
||||
-webkit-text-size-adjust:none; |
|
||||
} |
|
||||
input[type="submit"]::-moz-focus-inner { |
|
||||
border:none; |
|
||||
padding:0; |
|
||||
} |
|
||||
a { |
|
||||
blr:expression(this.onFocus=this.blur()) |
|
||||
} /*for IE*/ |
|
||||
a { |
|
||||
outline:none; |
|
||||
} /*for Firefox*/ |
|
||||
h2 { |
|
||||
font-family:'Microsoft yahei'; |
|
||||
font-weight:normal; |
|
||||
} |
|
||||
.overz { |
|
||||
font-size:12px; |
|
||||
overflow:auto; |
|
||||
zoom:1; |
|
||||
overflow-x:hidden; |
|
||||
overflow-y:hidden; |
|
||||
} |
|
||||
.overz A{ color:#666666;} |
|
||||
.overz h2{margin:0; |
|
||||
padding:0; |
|
||||
font-family:microsoft yahei, Helvetica, sans-serif;} |
|
||||
.mn_12 { |
|
||||
margin-bottom:12px; |
|
||||
} |
|
||||
/* 代码整理:懒人之家 www.lanrenzhijia.com */ |
|
||||
.online_icon { |
|
||||
width:36px; |
|
||||
height:156px; |
|
||||
overflow:hidden; |
|
||||
font-family:'宋体'; |
|
||||
} |
|
||||
.online_icon a { |
|
||||
display:block; |
|
||||
width:36px; |
|
||||
height:156px; |
|
||||
background:url(../images/online_bg.png) no-repeat; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat; |
|
||||
} |
|
||||
.online_windows { |
|
||||
width:144px; |
|
||||
} |
|
||||
.online_w_top { |
|
||||
background:url(../images/online_bg.png) no-repeat -36px 0; |
|
||||
height:10px; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat -36px 0; |
|
||||
_margin-bottom:-7px; |
|
||||
} |
|
||||
.online_w_c { |
|
||||
background:url(../images/online_bg.png) repeat-y 0 -185px; |
|
||||
padding:0 5px; |
|
||||
_background:url(../images/online_bg_ie6.png) repeat-y 0 -185px |
|
||||
} |
|
||||
.online_w_bottom { |
|
||||
background:url(../images/online_bg.png) repeat-y -36px -35px; |
|
||||
height:29px; |
|
||||
_background:url(../images/online_bg_ie6.png) repeat-y -36px -35px; |
|
||||
} |
|
||||
.online_content { |
|
||||
background:url(../images/online_bg.png) no-repeat -147px -185px; |
|
||||
padding-top:11px; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat -147px -185px; |
|
||||
} |
|
||||
.online_content a.qq_icon { |
|
||||
background:url(../images/online_bg.png) no-repeat -37px -130px; |
|
||||
width:121px; |
|
||||
height:25px; |
|
||||
display:block; |
|
||||
margin:0 auto; |
|
||||
text-indent:30px; |
|
||||
line-height:23px; |
|
||||
cursor:pointer; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat -37px -130px; |
|
||||
} |
|
||||
.online_content a.qq_icon:hover { |
|
||||
background-position:-159px -130px; |
|
||||
color:#FFF; |
|
||||
} |
|
||||
.online_content a.ww_icon { |
|
||||
background:url(../images/w1.png) no-repeat; |
|
||||
width:121px; |
|
||||
height:25px; |
|
||||
display:block; |
|
||||
margin:0 auto; |
|
||||
text-indent:30px; |
|
||||
line-height:23px; |
|
||||
cursor:pointer; |
|
||||
_background:url(../images/w1.png) no-repeat; |
|
||||
} |
|
||||
.online_content a.ww_icon:hover { |
|
||||
background:url(../images/w2.png) no-repeat; |
|
||||
color:#FFF; |
|
||||
} |
|
||||
.online_bar h2 { |
|
||||
background:url(../images/online_bg.png) repeat-x 0 -156px; |
|
||||
height:29px; |
|
||||
line-height:27px; |
|
||||
font-size:12px; |
|
||||
color:#666; |
|
||||
text-align:left; |
|
||||
_background:url(../images/online_bg_ie6.png) repeat-x 0 -156px; |
|
||||
} |
|
||||
.online_bar h2 a { |
|
||||
display:block; |
|
||||
padding-left:14px; |
|
||||
margin-left:6px; |
|
||||
cursor:pointer; |
|
||||
} |
|
||||
.expand h2 a { |
|
||||
background:url(../images/online_bg.png) no-repeat -36px -69px; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat -36px -69px; |
|
||||
} |
|
||||
.collapse2 h2 a { |
|
||||
color:#666666; |
|
||||
background:url(../images/online_bg.png) no-repeat -36px -96px; |
|
||||
_background:url(../images/online_bg_ie6.png) no-repeat -36px -96px; |
|
||||
} |
|
||||
.expand h2 a:hover, .collapse2 h2 a:hover { |
|
||||
text-decoration:none; |
|
||||
color:#c81d04; |
|
||||
} |
|
||||
.online_content { |
|
||||
text-align:center; |
|
||||
border-bottom:1px solid #d0d0d0; |
|
||||
margin-bottom:1px; |
|
||||
} |
|
||||
.online_content ul li { |
|
||||
height:24px; |
|
||||
line-height:24px; |
|
||||
margin-bottom:4px; |
|
||||
font-family:'宋体'; |
|
||||
} |
|
||||
.online_content ul li a:hover { |
|
||||
color:#c81d04; |
|
||||
} |
|
||||
/* 代码整理:懒人之家 www.lanrenzhijia.com */ |
|
||||
#online_qq_layer { |
|
||||
position:fixed; |
|
||||
right:0px; |
|
||||
top:150px; |
|
||||
_position:absolute; |
|
||||
} |
|
||||
* html, * html body { |
|
||||
_background-attachment:fixed; |
|
||||
} |
|
||||
* html #online_qq_layer { |
|
||||
_bottom:auto; |
|
||||
_top:expression(eval(document.documentElement.scrollTop + 150)); |
|
||||
} |
|
||||
#online_qq_tab { |
|
||||
float:left; |
|
||||
margin-top: 50px; |
|
||||
} |
|
||||
#onlineService { |
|
||||
float:left; |
|
||||
margin-left:-3px; |
|
||||
display:none; |
|
||||
} |
|
||||
#onlineType1, #onlineType2, #onlineType3, #onlineType4, #onlineType5, #onlineType6 { |
|
||||
display:none; |
|
||||
} |
|
||||
#onlineType1 { |
|
||||
display:block; |
|
||||
} |
|
||||
/* 代码整理:懒人之家 www.lanrenzhijia.com */ |
|
Binary file not shown.
Binary file not shown.
10
public/js/bxslider.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
1527
public/js/frozen.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,70 +0,0 @@ |
|||||
$(function(){ |
|
||||
// cms客服浮动面板
|
|
||||
if($("#cmsFloatPanel")) |
|
||||
{ |
|
||||
$("#cmsFloatPanel > .ctrolPanel > a.arrow").click(function(){$("html,body").animate({scrollTop :0}, 800);return false;}); |
|
||||
var objServicePanel = $("#cmsFloatPanel > .servicePanel"); |
|
||||
var objMessagePanel = $("#cmsFloatPanel > .messagePanel"); |
|
||||
var objQrcodePanel = $("#cmsFloatPanel > .qrcodePanel"); |
|
||||
var w_s = objServicePanel.outerWidth(); |
|
||||
var w_m = objMessagePanel.outerWidth(); |
|
||||
var w_q = objQrcodePanel.outerWidth(); |
|
||||
$("#cmsFloatPanel .ctrolPanel > a.service").bind({ |
|
||||
click : function(){return false;}, |
|
||||
mouseover : function(){ |
|
||||
objMessagePanel.stop().hide();objQrcodePanel.stop().hide(); |
|
||||
if(objServicePanel.css("display") == "none"){ |
|
||||
objServicePanel.css("width","0px").show(); |
|
||||
objServicePanel.animate({"width" : w_s + "px"},600); |
|
||||
} |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
$(".servicePanel-inner > .serviceMsgPanel > .serviceMsgPanel-hd > a",objServicePanel).bind({ |
|
||||
click : function(){ |
|
||||
objServicePanel.animate({"width" : "0px"},600,function(){ |
|
||||
objServicePanel.hide(); |
|
||||
}); |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
$("#cmsFloatPanel > .ctrolPanel > a.message").bind({ |
|
||||
click : function(){return false;}, |
|
||||
mouseover : function(){ |
|
||||
objServicePanel.stop().hide();objQrcodePanel.stop().hide(); |
|
||||
if(objMessagePanel.css("display") == "none"){ |
|
||||
objMessagePanel.css("width","0px").show(); |
|
||||
objMessagePanel.animate({"width" : w_m + "px"},600); |
|
||||
} |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
$(".messagePanel-inner > .formPanel > .formPanel-bd > a",objMessagePanel).bind({ |
|
||||
click : function(){ |
|
||||
objMessagePanel.animate({"width" : "0px"},600,function(){ |
|
||||
objMessagePanel.stop().hide(); |
|
||||
}); |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
$("#cmsFloatPanel > .ctrolPanel > a.qrcode").bind({ |
|
||||
click : function(){return false;}, |
|
||||
mouseover : function(){ |
|
||||
objServicePanel.stop().hide();objMessagePanel.stop().hide(); |
|
||||
if(objQrcodePanel.css("display") == "none"){ |
|
||||
objQrcodePanel.css("width","0px").show(); |
|
||||
objQrcodePanel.animate({"width" : w_q + "px"},600); |
|
||||
} |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
$(".qrcodePanel-inner > .codePanel > .codePanel-hd > a",objQrcodePanel).bind({ |
|
||||
click : function(){ |
|
||||
objQrcodePanel.animate({"width" : "0px"},600,function(){ |
|
||||
objQrcodePanel.stop().hide(); |
|
||||
}); |
|
||||
return false; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
}); |
|
1773
public/js/zepto.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue