作者 景龙
1 个管道 的构建 通过 耗费 1 秒

渲染登录注册,等详情页

@@ -27,7 +27,7 @@ class CommonController extends HomeBaseController @@ -27,7 +27,7 @@ class CommonController extends HomeBaseController
27 * 发送手机验证码 27 * 发送手机验证码
28 */ 28 */
29 public function sendMobileCode(){ 29 public function sendMobileCode(){
30 - Db::startTrans(); 30 +// Db::startTrans();
31 $mobile = $this->request->param('mobile',''); 31 $mobile = $this->request->param('mobile','');
32 $mc = new MobileCodeModel(); 32 $mc = new MobileCodeModel();
33 $search = '/^0?1[3|4|5|6|7|8][0-9]\d{8}$/'; 33 $search = '/^0?1[3|4|5|6|7|8][0-9]\d{8}$/';
@@ -64,16 +64,18 @@ class CommonController extends HomeBaseController @@ -64,16 +64,18 @@ class CommonController extends HomeBaseController
64 'create_date' => date('Y-m-d') 64 'create_date' => date('Y-m-d')
65 ]); 65 ]);
66 } 66 }
67 - if($res){ 67 + if($res) {
68 //发送验证码 68 //发送验证码
69 - $is_ok = $this->sendCode($mobile,$mobile_code);  
70 - $is_ok = json_decode($is_ok,true);  
71 - if($is_ok['code'] != 200){  
72 - Db::rollback();  
73 - $this->apiResponse(0,$is_ok['msg']);  
74 - }  
75 - Db::commit();  
76 - $this->apiResponse(1,'发送成功'); 69 + $this->sendCode($mobile, $mobile_code);
  70 +// $is_ok = json_decode($is_ok, true);
  71 +// if ($is_ok['code'] != 200) {
  72 +// Db::rollback();
  73 +// $this->apiResponse(0, $is_ok['msg']);
  74 +// } else {
  75 +// Db::commit();
  76 +// $this->apiResponse(1, '验证码发送成功,请注意查收!');
  77 +// }
  78 + $this->apiResponse(1, '验证码发送成功,请注意查收!');
77 } 79 }
78 } 80 }
79 81
@@ -81,10 +83,14 @@ class CommonController extends HomeBaseController @@ -81,10 +83,14 @@ class CommonController extends HomeBaseController
81 * 验证手机验证码 83 * 验证手机验证码
82 */ 84 */
83 public function validateMobileCode($post){ 85 public function validateMobileCode($post){
  86 + $check = '/^1[3-9]\d{9}$/';
84 $mc = new MobileCodeModel(); 87 $mc = new MobileCodeModel();
85 if(empty($post['mobile'])){ 88 if(empty($post['mobile'])){
86 $this->apiResponse(0,'手机号不能为空!'); 89 $this->apiResponse(0,'手机号不能为空!');
87 } 90 }
  91 + if (!preg_match($check, $post['mobile'])) {
  92 + $this->apiResponse(0,'请输入正确的手机号!');
  93 + }
88 if(empty($post['mobile_code'])){ 94 if(empty($post['mobile_code'])){
89 $this->apiResponse(0,'验证码不能为空!'); 95 $this->apiResponse(0,'验证码不能为空!');
90 } 96 }
@@ -77,7 +77,7 @@ class IndexController extends HomeBaseController @@ -77,7 +77,7 @@ class IndexController extends HomeBaseController
77 77
78 //星探推荐 78 //星探推荐
79 $position = CityCategoryModel::xttj; 79 $position = CityCategoryModel::xttj;
80 - $field = 'id,post_title,price,thumbnail'; 80 + $field = 'id,post_title,price,thumbnail,place';
81 $res_xttj = $this->getParentArticle($position,$field,16); 81 $res_xttj = $this->getParentArticle($position,$field,16);
82 $this->assign('res_xttj',$res_xttj); 82 $this->assign('res_xttj',$res_xttj);
83 83
@@ -16,37 +16,14 @@ use think\Config; @@ -16,37 +16,14 @@ use think\Config;
16 class LoginController extends HomeBaseController 16 class LoginController extends HomeBaseController
17 { 17 {
18 private $config; 18 private $config;
19 - /**  
20 - * 登录,注册页面  
21 - */ 19 +
  20 + //登录页面
22 public function login(){ 21 public function login(){
23 -// $login_type = $this->request->param('login_type','1','intval');  
24 -// //1->登录 2->注册  
25 -// if($login_type == 1){  
26 -// $login_title = '登录';  
27 -// }elseif($login_type == 2){  
28 -// $login_title = '注册';  
29 -// }else{  
30 -// $this->redirect(url('index/index'));  
31 -// }  
32 -// $user_login_info = Cookie::get('user_login_info');  
33 -// if($user_login_info){  
34 -// $mobile = $user_login_info['mobile'];  
35 -// $password = $user_login_info['password'];  
36 -// $is_remember_password = 1;  
37 -// }  
38 -// $this->assign('login_type',$login_type);  
39 -// $this->assign('login_title',$login_title);  
40 -// $this->assign('mobile',isset($mobile)?$mobile:'');  
41 -// $this->assign('password',isset($password)?$password:'');  
42 -// $this->assign('is_remember_password',isset($is_remember_password)?$is_remember_password:'0');  
43 return $this->fetch(); 22 return $this->fetch();
44 } 23 }
45 24
46 - /**  
47 - * 手机号登录  
48 - */  
49 - public function ajax_login(){ 25 + //登录提交
  26 + public function loginCommit(){
50 //提交参数手机号(mobile),密码(user_pass) 27 //提交参数手机号(mobile),密码(user_pass)
51 $param = $this->request->param(); 28 $param = $this->request->param();
52 $validate = new UsersValidate(); 29 $validate = new UsersValidate();
@@ -80,10 +57,18 @@ class LoginController extends HomeBaseController @@ -80,10 +57,18 @@ class LoginController extends HomeBaseController
80 $this->apiResponse(0,'未知错误'); 57 $this->apiResponse(0,'未知错误');
81 } 58 }
82 59
83 - /**  
84 - * 注册  
85 - */  
86 - public function ajax_register(){ 60 + //第三方登录页面
  61 + public function thirdLogin(){
  62 + return $this->fetch();
  63 + }
  64 +
  65 + //注册页面
  66 + public function register(){
  67 + return $this->fetch();
  68 + }
  69 +
  70 + //注册提交
  71 + public function registerCommit(){
87 //提交参数手机号(mobile),验证码(mobile_code),密码(user_pass) 72 //提交参数手机号(mobile),验证码(mobile_code),密码(user_pass)
88 $param = $this->request->param(); 73 $param = $this->request->param();
89 //验证验证码是否正确 74 //验证验证码是否正确
@@ -70,7 +70,7 @@ class ScoutController extends HomeBaseController @@ -70,7 +70,7 @@ class ScoutController extends HomeBaseController
70 //旅游路线详情 70 //旅游路线详情
71 public function getTravelDetail(){ 71 public function getTravelDetail(){
72 $id = $this->request->param('id',0,'intval'); 72 $id = $this->request->param('id',0,'intval');
73 - $field = 'id,thumbnail,notice,place,project,price,pay_url,post_title,post_excerpt,create_time,more'; 73 + $field = 'id,thumbnail,notice,place,project,price,pay_url,post_title,post_excerpt,create_time,more,post_content';
74 $starModel = new StarController(); 74 $starModel = new StarController();
75 $res = $starModel->getDetail($id,$field); 75 $res = $starModel->getDetail($id,$field);
76 if($res){ 76 if($res){
@@ -78,12 +78,13 @@ class ScoutController extends HomeBaseController @@ -78,12 +78,13 @@ class ScoutController extends HomeBaseController
78 $res['image_url'] = isset($more['photos']) && !empty($more['photos'])?$more['photos']:''; 78 $res['image_url'] = isset($more['photos']) && !empty($more['photos'])?$more['photos']:'';
79 } 79 }
80 $this->assign('res',$res); 80 $this->assign('res',$res);
  81 + return $this->fetch();
81 } 82 }
82 83
83 //地道风物,创意设计,悦己悦人详情 84 //地道风物,创意设计,悦己悦人详情
84 public function getSceneryDetail(){ 85 public function getSceneryDetail(){
85 $id = $this->request->param('id',0,'intval'); 86 $id = $this->request->param('id',0,'intval');
86 - $field = 'id,thumbnail,price,pay_url,post_title,post_excerpt,create_time,more'; 87 + $field = 'id,thumbnail,price,pay_url,post_title,post_excerpt,create_time,more,post_content';
87 $starModel = new StarController(); 88 $starModel = new StarController();
88 $res = $starModel->getDetail($id,$field); 89 $res = $starModel->getDetail($id,$field);
89 if($res){ 90 if($res){
@@ -91,5 +92,6 @@ class ScoutController extends HomeBaseController @@ -91,5 +92,6 @@ class ScoutController extends HomeBaseController
91 $res['image_url'] = isset($more['photos']) && !empty($more['photos'])?$more['photos']:''; 92 $res['image_url'] = isset($more['photos']) && !empty($more['photos'])?$more['photos']:'';
92 } 93 }
93 $this->assign('res',$res); 94 $this->assign('res',$res);
  95 + return $this->fetch(':scenery_detail');
94 } 96 }
95 } 97 }
@@ -650,6 +650,12 @@ @@ -650,6 +650,12 @@
650 <ul class="swiper-wrapper"> 650 <ul class="swiper-wrapper">
651 <volist name="res_xttj" id="vo"> 651 <volist name="res_xttj" id="vo">
652 <li class="swiper-slide scout_box"> 652 <li class="swiper-slide scout_box">
  653 + <empty name="vo.place">
  654 + <a href="/portal/scout/getSceneryDetail?id={$vo.id}">
  655 + <else />
  656 + <a href="/portal/scout/getTravelDetail?id={$vo.id}">
  657 + </empty>
  658 +
653 <div class="scout_image"> 659 <div class="scout_image">
654 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt=""> 660 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt="">
655 </div> 661 </div>
@@ -657,6 +663,7 @@ @@ -657,6 +663,7 @@
657 {$vo.post_title} 663 {$vo.post_title}
658 </h1> 664 </h1>
659 <p>¥{$vo.price}</p> 665 <p>¥{$vo.price}</p>
  666 + </a>
660 </li> 667 </li>
661 </volist> 668 </volist>
662 </ul> 669 </ul>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8 + <title>登陆</title>
  9 + <link rel="stylesheet" href="__TMPL__/public/assets/css/login.css">
  10 + <link rel="stylesheet" href="__TMPL__/public/assets/css/mask.css">
  11 +</head>
  12 +
  13 +<body>
  14 + <!--头部 -->
  15 + <include file="public@header"/>
  16 + <main>
  17 + <!--彈出框-->
  18 + <div class="mask">
  19 +
  20 + </div>
  21 + <div class="container">
  22 + <div class="login">
  23 + <div class="login_left">
  24 + <img src="__TMPL__/public/assets/starImg/aicon_88.png" alt="">
  25 + </div>
  26 + <div class="login_right">
  27 + <!--登陆方式-->
  28 + <div class="login_right_nav clearfix">
  29 + <!-- third 第三方登陆-->
  30 + <div class="login_right_nav_third">
  31 + <a href="/portal/login/thirdLogin">其他登录方式</a>
  32 + </div>
  33 + <!--手机号登陆-->
  34 + <div class="login_right_nav_phone login_nav_active">
  35 + <a href="/portal/login/login">手机号登录</a>
  36 + </div>
  37 + </div>
  38 + <!--登陆-->
  39 + <div class="login_right_main">
  40 + <form action="">
  41 + <!--手机号-->
  42 + <div class="login_right_main_phone">
  43 + <input type="tel" placeholder="请输入手机号" id="mobile">
  44 + </div>
  45 + <!--密码-->
  46 + <div class="login_right_main_pswd">
  47 + <input type="password" placeholder="请输入密码" id="password">
  48 + </div>
  49 + <!--注册-->
  50 + <div class="login_right_main_reg">
  51 + 没有账号?
  52 + <a href="/portal/login/register">
  53 + 立即注册
  54 + </a>
  55 + </div>
  56 + <!--登陆-->
  57 + <button class="logging" type="button">登录</button>
  58 + </form>
  59 + </div>
  60 + </div>
  61 + </div>
  62 +
  63 + </div>
  64 + </main>
  65 + <div class="Keep">
  66 + Copyright © 2004-2019 独角星球 版权所有
  67 + </div>
  68 + <script src="__TMPL__/public/assets/js/jquery-3.2.1.min.js"></script>
  69 + <script src="__TMPL__/public/assets/js/public.js"></script>
  70 + <script>
  71 + $('.logging').click(function(){
  72 + var phone_number = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  73 + var mobile = $("#mobile").val();
  74 + var password = $.trim($('#password').val());
  75 + if (!phone_number.test(mobile)){
  76 + mask("手机号格式有误");
  77 + return false;
  78 + }
  79 + if(password == '') {
  80 + mask("密码不能为空");
  81 + return false;
  82 + }
  83 + $.ajax({
  84 + type: 'POST',
  85 + url: "/portal/login/loginCommit",
  86 + data: {
  87 + 'mobile': mobile,
  88 + 'user_pass': password
  89 + },
  90 + dataType: 'json',
  91 + success: function (data) {
  92 + if (data.code == 1) {
  93 + mask(data.msg);
  94 +// window.location.href = '/';
  95 + } else {
  96 + mask(data.msg);
  97 + }
  98 + }
  99 + });
  100 + });
  101 + </script>
  102 +</body>
  103 +
  104 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8 + <title>注册</title>
  9 + <link rel="stylesheet" href="__TMPL__/public/assets/css/login.css">
  10 + <link rel="stylesheet" href="__TMPL__/public/assets/css/register.css">
  11 + <link rel="stylesheet" href="__TMPL__/public/assets/css/mask.css">
  12 +</head>
  13 +
  14 +<body>
  15 +<!--头部 -->
  16 +<include file="public@header"/>
  17 +<main>
  18 + <!--彈出框-->
  19 + <div class="mask">
  20 +
  21 + </div>
  22 + <div class="container">
  23 + <div class="login">
  24 + <div class="login_left">
  25 + <img src="__TMPL__/public/assets/starImg/aicon_88.png" alt="">
  26 + </div>
  27 + <div class="login_right">
  28 + <!--賬號註冊-->
  29 + <div class="login_right_nav clearfix">
  30 + 账号注册
  31 + </div>
  32 + <!--登陆-->
  33 + <div class="login_right_main">
  34 + <form action="">
  35 + <!--手机号-->
  36 + <div class="login_right_main_phone">
  37 + <input required type="tel" placeholder="请输入手机号" id="mobile">
  38 + </div>
  39 + <!--密码-->
  40 + <div class="login_right_main_pswd">
  41 + <input required type="password" placeholder="请输入密码" id="password">
  42 + </div>
  43 + <!--验证码-->
  44 + <div class="login_right_main_code">
  45 + <input type="text" required placeholder="请输入验证码" id="mobile_code">
  46 + <input type="button" onclick="sendCode(this)" value="获取验证码" class="ver_codebtn" />
  47 + </div>
  48 + <!--已有账号,立即登录-->
  49 + <div class="logged_in">
  50 + 已有账号?<a href="/portal/login/login">
  51 + 立即登录
  52 + </a>
  53 + </div>
  54 + <button type="button" id="zhuce">注册</button>
  55 + </form>
  56 + </div>
  57 + </div>
  58 + </div>
  59 + </div>
  60 +</main>
  61 +<div class="Keep">
  62 + Copyright © 2004-2019 独角星球 版权所有
  63 +</div>
  64 +</body>
  65 +</html>
  66 +<script src="__TMPL__/public/assets/js/jquery-3.2.1.min.js"></script>
  67 +<script src="__TMPL__/public/assets/js/public.js"></script>
  68 +<script>
  69 + $(function(){
  70 + //提交注册
  71 + $('#zhuce').click(function () {
  72 + var mobile_code = $.trim($('#mobile_code').val());
  73 + var password = $.trim($('#password').val());
  74 + var phone_number = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  75 + var mobile = $("#mobile").val();
  76 + if (!phone_number.test(mobile)){
  77 + mask("手机号格式有误");
  78 + return false;
  79 + }
  80 + if(password == '') {
  81 + mask("密码不能为空");
  82 + return false;
  83 + }
  84 + if(mobile_code == '') {
  85 + mask("验证码不能为空");
  86 + return false;
  87 + }
  88 + $.ajax({
  89 + type: 'POST',
  90 + url: "/portal/login/registerCommit",
  91 + data: {
  92 + 'mobile': mobile,
  93 + 'mobile_code': mobile_code,
  94 + 'user_pass': password
  95 + },
  96 + dataType: 'json',
  97 + success: function (data) {
  98 + if (data.code == 1) {
  99 + mask('注册成功!');
  100 + window.location.href = '/portal/login/login';
  101 + } else {
  102 + mask(data.msg);
  103 + }
  104 + }
  105 + });
  106 + });
  107 + });
  108 + //注册发送验证码
  109 + function sendCode(val){
  110 + var phone_number = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  111 + var mobile = $("#mobile").val();
  112 + if (!phone_number.test(mobile)){
  113 + mask("手机号格式有误");
  114 + }else {
  115 + $.ajax({
  116 + type: 'POST',
  117 + url: "/portal/common/sendMobileCode",
  118 + data: {
  119 + 'mobile': mobile
  120 + },
  121 + dataType: 'json',
  122 + success: function (data) {
  123 + console.log(data);
  124 + if (data.code == 1) {
  125 + var countdown = 60;
  126 + settime(val, countdown);
  127 + mask(data.msg);
  128 + } else {
  129 + mask(data.msg);
  130 + }
  131 + }
  132 + });
  133 + }
  134 + }
  135 + //倒计时
  136 + function settime(val,countdown) {
  137 + if (countdown == 0) {
  138 + val.removeAttribute("disabled");
  139 + val.value="获取验证码";
  140 + countdown = 60;
  141 + } else {
  142 + val.setAttribute("disabled", true);
  143 + val.value= countdown +"s";
  144 + countdown--;
  145 + setTimeout(function() {
  146 + settime(val,countdown)
  147 + },1000)
  148 + }
  149 + }
  150 +</script>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8 + <title>第三方登录</title>
  9 + <link rel="stylesheet" href="__TMPL__/public/assets/css/login.css">
  10 + <link rel="stylesheet" href="__TMPL__/public/assets/css/login_third.css">
  11 +</head>
  12 +
  13 +<body>
  14 + <!--头部 -->
  15 + <include file="public@header"/>
  16 + <main>
  17 + <div class="container">
  18 + <div class="login">
  19 + <div class="login_left">
  20 + <img src="__TMPL__/public/assets/starImg/aicon_88.png" alt="">
  21 + </div>
  22 + <div class="login_right">
  23 + <!--登陆方式-->
  24 + <div class="login_right_nav clearfix">
  25 + <!-- third 第三方登陆-->
  26 + <div class="login_right_nav_third login_nav_active">
  27 + <a href="/portal/login/thirdLogin">其他登录方式</a>
  28 + </div>
  29 + <!--手机号登陆-->
  30 + <div class="login_right_nav_phone">
  31 + <a href="/portal/login/login">手机号登录</a>
  32 + </div>
  33 + </div>
  34 + <!--登陆-->
  35 + <div class="login_right_main clearfix">
  36 + <div class="WeChat">
  37 + <a href=""><img src="__TMPL__/public/assets/starImg/aicon_89.png" alt=""></a>
  38 + </div>
  39 + <div class="Sina">
  40 + <a href=""><img src="__TMPL__/public/assets/starImg/aicon_90.png" alt=""></a>
  41 + </div>
  42 + </div>
  43 + </div>
  44 + </div>
  45 +
  46 + </div>
  47 + </main>
  48 + <div class="Keep">
  49 + Copyright © 2004-2019 独角星球 版权所有
  50 + </div>
  51 +</body>
  52 +
  53 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <title>星探推荐</title>
  7 + <link rel="stylesheet" href="__TMPL__/public/assets/css/enjoyment.css">
  8 + <link rel="stylesheet" href="__TMPL__/public/assets/js/swiper4/swiper.min.css">
  9 + <link rel="stylesheet" href="__TMPL__/public/assets/css/activity_wares.css">
  10 +</head>
  11 +
  12 +<body>
  13 + <include file="public@header"/>
  14 + <main>
  15 + <div class="container">
  16 + <div class="wares clearfix">
  17 + <div class="wares_left fl">
  18 + <img src="{:cmf_get_image_url($res.thumbnail)}" alt="">
  19 + </div>
  20 + <div class="wares_right fr">
  21 + <div class="wares_right_title">{$res.post_title}</div>
  22 + <div class="wares_right_price">
  23 + <h2>商品售价:<p><span>{$res.price}</span></p>
  24 + </h2>
  25 + </div>
  26 + <div class="wares_right_text">
  27 + <p>
  28 + {$res.post_excerpt}
  29 + </p>
  30 + </div>
  31 + <a href="{$res.pay_url}">
  32 + <div class="wares_right_pay">
  33 + 立即前往购买
  34 + </div>
  35 + </a>
  36 + </div>
  37 + </div>
  38 + </div>
  39 + </main>
  40 + <include file="public@footer"/>
  41 + <script src="__TMPL__/public/assets/js/jquery-3.2.1.min.js"></script>
  42 + <script src="__TMPL__/public/assets/js/swiper4/swiper.min.js"></script>
  43 + <script src="__TMPL__/public/assets/js/public.js"></script>
  44 +</body>
  45 +
  46 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <title>旅游路线详情</title>
  7 + <link rel="stylesheet" href="__TMPL__/public/assets/css/enjoyment.css">
  8 + <link rel="stylesheet" href="__TMPL__/public/assets/js/swiper4/swiper.min.css">
  9 + <link rel="stylesheet" href="__TMPL__/public/assets/css/activity_Travel.css">
  10 +</head>
  11 +
  12 +<>
  13 + <include file="public@header"/>
  14 + <main>
  15 + <div class="container">
  16 + <div class="Travel clearfix">
  17 + <div class="Travel_left fl">
  18 + <div class="swiper-container">
  19 + <div class="swiper-wrapper">
  20 + <volist name="res.image_url" id="vo">
  21 + <div class="swiper-slide"><img src="{:cmf_get_image_url($vo.url)}" alt=""></div>
  22 + </volist>
  23 + </div>
  24 + <!-- Add Arrows -->
  25 + <div class="swiper-button-next"></div>
  26 + <div class="swiper-button-prev"></div>
  27 + </div>
  28 +
  29 + </div>
  30 + <div class="Travel_right fr">
  31 + <div class="Travel_right_title">
  32 + {$res.post_title}
  33 + </div>
  34 + <div class="Travel_right_spec">
  35 + <div class="Travel_right_spec_Book clearfix">
  36 + <div class="Travel_right_spec_Book_left fl">
  37 + 预订须知
  38 + </div>
  39 + <div class="Travel_right_spec_Book_right fl">
  40 + {$res.notice}
  41 + </div>
  42 + </div>
  43 + <div class="Travel_right_spec_Set clearfix">
  44 + <div class="Travel_right_spec_Set_left fl">出发地点</div>
  45 + <div class="Travel_right_spec_Set_right fl">{$res.place}</div>
  46 + </div>
  47 + <div class="Travel_right_spec_Contain clearfix">
  48 + <div class="Travel_right_spec_Contain_left fl">包含项目</div>
  49 + <div class="Travel_right_spec_Contain_right fl">{$res.project}</div>
  50 + </div>
  51 + <a href="{$res.pay_url}">
  52 + <div class="Travel_right_spec_pay">
  53 + 立即前往购买
  54 + </div>
  55 + </a>
  56 + </div>
  57 + <div class="Travel_right_price">
  58 + <h2>商品售价:<p><span>{$res.price}</span></p>
  59 + </h2>
  60 + </div>
  61 + <div class="Travel_right_price_text">
  62 + <p>
  63 + {$res.post_excerpt}
  64 + </p>
  65 + </div>
  66 + </div>
  67 + </div>
  68 + </div>
  69 + </main>
  70 + <include file="public@footer"/>
  71 + <script src="__TMPL__/public/assets/js/jquery-3.2.1.min.js"></script>
  72 + <script src="__TMPL__/public/assets/js/swiper4/swiper.min.js"></script>
  73 + <script src="__TMPL__/public/assets/js/public.js"></script>
  74 + <script>
  75 + var swiper = new Swiper('.swiper-container', {
  76 + pagination: {
  77 + el: '.swiper-pagination',
  78 + type: 'progressbar',
  79 + },
  80 + navigation: {
  81 + nextEl: '.swiper-button-next',
  82 + prevEl: '.swiper-button-prev',
  83 + },
  84 + });
  85 +
  86 + </script>
  87 +
  88 +</body>
  89 +
  90 +</html>
@@ -40,12 +40,14 @@ @@ -40,12 +40,14 @@
40 <volist name="res_lylx" id="vo"> 40 <volist name="res_lylx" id="vo">
41 <div class="swiper-slide"> 41 <div class="swiper-slide">
42 <div class="Product_item"> 42 <div class="Product_item">
  43 + <a href="/portal/scout/getTravelDetail?id={$vo.id}">
43 <div class="Product_item_img"> 44 <div class="Product_item_img">
44 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt=""> 45 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt="">
45 </div> 46 </div>
46 <div class="Product_item_Route"> 47 <div class="Product_item_Route">
47 {$vo.post_title} 48 {$vo.post_title}
48 </div> 49 </div>
  50 + </a>
49 </div> 51 </div>
50 </div> 52 </div>
51 </volist> 53 </volist>
@@ -80,6 +82,7 @@ @@ -80,6 +82,7 @@
80 <volist name="res_ddfw" id="vo"> 82 <volist name="res_ddfw" id="vo">
81 <div class="swiper-slide"> 83 <div class="swiper-slide">
82 <div class="Specialty_item"> 84 <div class="Specialty_item">
  85 + <a href="/portal/scout/getSceneryDetail?id={$vo.id}">
83 <div class="Specialty_item_img"> 86 <div class="Specialty_item_img">
84 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt=""> 87 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt="">
85 </div> 88 </div>
@@ -87,6 +90,7 @@ @@ -87,6 +90,7 @@
87 {$vo.post_title} 90 {$vo.post_title}
88 </div> 91 </div>
89 <div class="Specialty_item_price">¥{$vo.price}</div> 92 <div class="Specialty_item_price">¥{$vo.price}</div>
  93 + </a>
90 </div> 94 </div>
91 </div> 95 </div>
92 </volist> 96 </volist>
@@ -121,6 +125,7 @@ @@ -121,6 +125,7 @@
121 <volist name="res_cysj" id="vo"> 125 <volist name="res_cysj" id="vo">
122 <div class="swiper-slide"> 126 <div class="swiper-slide">
123 <div class="Specialty_item"> 127 <div class="Specialty_item">
  128 + <a href="/portal/scout/getSceneryDetail?id={$vo.id}">
124 <div class="Specialty_item_img"> 129 <div class="Specialty_item_img">
125 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt=""> 130 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt="">
126 </div> 131 </div>
@@ -128,6 +133,7 @@ @@ -128,6 +133,7 @@
128 {$vo.post_title} 133 {$vo.post_title}
129 </div> 134 </div>
130 <div class="Specialty_item_price">¥{$vo.price}</div> 135 <div class="Specialty_item_price">¥{$vo.price}</div>
  136 + </a>
131 </div> 137 </div>
132 </div> 138 </div>
133 </volist> 139 </volist>
@@ -161,6 +167,7 @@ @@ -161,6 +167,7 @@
161 <volist name="res_yjyr" id="vo"> 167 <volist name="res_yjyr" id="vo">
162 <div class="swiper-slide"> 168 <div class="swiper-slide">
163 <div class="Lifestyle_item"> 169 <div class="Lifestyle_item">
  170 + <a href="/portal/scout/getSceneryDetail?id={$vo.id}">
164 <div class="Lifestyle_item_img"> 171 <div class="Lifestyle_item_img">
165 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt=""> 172 <img src="{:cmf_get_image_url($vo.thumbnail)}" alt="">
166 </div> 173 </div>
@@ -168,6 +175,7 @@ @@ -168,6 +175,7 @@
168 {$vo.post_title} 175 {$vo.post_title}
169 </div> 176 </div>
170 <div class="Lifestyle_item_price">¥{$vo.price}</div> 177 <div class="Lifestyle_item_price">¥{$vo.price}</div>
  178 + </a>
171 </div> 179 </div>
172 </div> 180 </div>
173 </volist> 181 </volist>
  1 +main {
  2 + padding-top: 78px;
  3 + padding-bottom: 100px;
  4 +}
  5 +
  6 +.Travel {
  7 + width: 100%;
  8 + box-sizing: border-box;
  9 + padding: 44px 35px;
  10 + background: #fff;
  11 +}
  12 +
  13 +.Travel_left {
  14 + width: 590px;
  15 +}
  16 +
  17 +.Travel_left img {
  18 + width: 590px;
  19 + height: 463px;
  20 +}
  21 +
  22 +.swiper-button-next,
  23 +.swiper-button-prev {
  24 + width: 34px !important;
  25 + height: 34px !important;
  26 + background-size: cover !important;
  27 +}
  28 +
  29 +.swiper-button-next {
  30 + background-image: url(../starImg/aicon_07.png) !important;
  31 +}
  32 +
  33 +.swiper-button-prev {
  34 + background-image: url(../starImg/aicon_08.png) !important;
  35 +}
  36 +
  37 +.swiper-button-prev.swiper-button-disabled {
  38 + background-image: url(../starImg/aicon_10.png) !important;
  39 + opacity: 1 !important;
  40 +}
  41 +
  42 +.swiper-button-next.swiper-button-disabled {
  43 + background-image: url(../starImg/aicon_09.png) !important;
  44 + opacity: 1 !important;
  45 +}
  46 +
  47 +.Travel_right {
  48 + width: 500px;
  49 +}
  50 +
  51 +.Travel_right_title {
  52 + font-size: 28px;
  53 + color: #1A1A1A;
  54 + font-weight: bold;
  55 + box-sizing: border-box;
  56 + padding-top: 10px;
  57 +}
  58 +
  59 +.Travel_right_spec {
  60 + padding-bottom: 30px;
  61 + position: relative;
  62 + border-bottom: 1px solid #E6E6E6
  63 +}
  64 +
  65 +.Travel_right_spec_pay {
  66 + position: absolute;
  67 + right: 0;
  68 + bottom: 50px;
  69 + width: 134px;
  70 + height: 50px;
  71 + background: rgba(9, 255, 142, 1);
  72 + border-radius: 25px;
  73 + text-align: center;
  74 + font-size: 16px;
  75 + color: #1A1A1A;
  76 + line-height: 50px;
  77 + cursor: pointer;
  78 +}
  79 +
  80 +.Travel_right_spec_Book {
  81 + margin-top: 34px;
  82 + font-size: 14px;
  83 +}
  84 +
  85 +.Travel_right_spec_Book_left {
  86 + height: 28px;
  87 + line-height: 28px;
  88 +}
  89 +
  90 +.Travel_right_spec_Book_right {
  91 +
  92 + margin-left: 23px;
  93 + box-sizing: border-box;
  94 + padding: 3px 7px;
  95 + background: #3C3C94;
  96 + color: #fff;
  97 + color: #fff;
  98 +}
  99 +
  100 +.Travel_right_spec_Set,
  101 +.Travel_right_spec_Contain {
  102 + margin-top: 15px;
  103 + font-size: 14px
  104 +}
  105 +
  106 +.Travel_right_spec_Set_right,
  107 +.Travel_right_spec_Contain_right {
  108 + margin-left: 23px;
  109 +}
  110 +.Travel_right_price{
  111 + padding: 20px 0;
  112 + color: #00D774;
  113 + border-bottom: 1px solid #E6E6E6
  114 +}
  115 +.Travel_right_price h2{
  116 + font-size: 14px;
  117 +}
  118 +.Travel_right_price h2 p{
  119 + font-size: 16px;
  120 + display: inline-block;
  121 +}
  122 +.Travel_right_price h2 p span{
  123 + font-size: 30px;
  124 +}
  125 +.Travel_right_price_text{
  126 + box-sizing: border-box;
  127 + padding-top: 10px;
  128 +}
  129 +.Travel_right_price_text p{
  130 + font-size: 16px;
  131 + color: #666;
  132 + margin-bottom: 15px;
  133 +}
  134 +.Travel_right_price_text p:nth-child(1){
  135 + display: -webkit-box;
  136 +-webkit-box-orient: vertical;
  137 +-webkit-line-clamp: 5;
  138 +overflow: hidden;
  139 +}
  140 +.Travel_right_price_text p:nth-child(2){
  141 + display: -webkit-box;
  142 +-webkit-box-orient: vertical;
  143 +-webkit-line-clamp: 2;
  144 +overflow: hidden;
  145 +}
  1 +main {
  2 + padding-top: 78px;
  3 + padding-bottom: 100px;
  4 +}
  5 +
  6 +.wares {
  7 + box-sizing: border-box;
  8 + padding: 44px 34px;
  9 + background: #fff;
  10 +}
  11 +
  12 +.wares_left {
  13 + width: 460px;
  14 +}
  15 +
  16 +.wares_left img {
  17 + width: 460px;
  18 + height: 460px;
  19 +}
  20 +
  21 +.wares_right {
  22 + width: 625px;
  23 +}
  24 +
  25 +.wares_right_title {
  26 + box-sizing: border-box;
  27 + padding-top: 10px;
  28 + font-size: 28px;
  29 + color: #1A1A1A;
  30 + font-weight: bold;
  31 + padding-bottom: 30px;
  32 + border-bottom: 1px solid #E6E6E6;
  33 + overflow: hidden;
  34 + text-overflow: ellipsis;
  35 + white-space: nowrap;
  36 +}
  37 +
  38 +.wares_right_price {
  39 + padding: 20px 0;
  40 + color: #00D774;
  41 + border-bottom: 1px solid #E6E6E6
  42 +}
  43 +
  44 +.wares_right_price h2 {
  45 + font-size: 14px;
  46 +}
  47 +
  48 +.wares_right_price h2 p {
  49 + font-size: 16px;
  50 + display: inline-block;
  51 +}
  52 +
  53 +.wares_right_price h2 p span {
  54 + font-size: 30px;
  55 +}
  56 +
  57 +.wares_right_text {
  58 + box-sizing: border-box;
  59 + padding: 40px 0;
  60 + height:247px;
  61 +}
  62 +
  63 +.wares_right_text p {
  64 + font-size: 16px;
  65 + color: #666;
  66 +}
  67 +
  68 +.wares_right_text p:nth-child(1) {
  69 + display: -webkit-box;
  70 + -webkit-box-orient: vertical;
  71 + -webkit-line-clamp: 5;
  72 + overflow: hidden;
  73 + margin-bottom: 25px;
  74 +}
  75 +
  76 +.wares_right_text p:nth-child(2) {
  77 + display: -webkit-box;
  78 + -webkit-box-orient: vertical;
  79 + -webkit-line-clamp: 2;
  80 + overflow: hidden;
  81 +}
  82 +.wares_right_pay{
  83 + width:134px;
  84 +height:50px;
  85 +background:rgba(9,255,142,1);
  86 +border-radius:25px;
  87 + line-height: 50px;
  88 + text-align: center;
  89 + font-size: 16px;
  90 + color: #1a1a1a;
  91 + cursor: pointer;
  92 +}
@@ -167,13 +167,17 @@ @@ -167,13 +167,17 @@
167 167
168 /* 注册按钮 */ 168 /* 注册按钮 */
169 169
170 -#header .home_login span p:first-child {  
171 - width: 78px;  
172 - height: 40px;  
173 - background: rgba(18, 237, 136, 1);  
174 - border-radius: 20px;  
175 - color: rgba(255, 255, 255, 1);  
176 - line-height: 40px;  
177 - text-align: center;  
178 - margin-top: 20px 170 +/*#header .home_login span p:first-child {*/
  171 + /*width: 78px;*/
  172 + /*height: 40px;*/
  173 + /*background: rgba(18, 237, 136, 1);*/
  174 + /*border-radius: 20px;*/
  175 + /*color: rgba(255, 255, 255, 1);*/
  176 + /*line-height: 40px;*/
  177 + /*text-align: center;*/
  178 + /*margin-top: 20px*/
  179 +/*}*/
  180 +
  181 +#register,#login{
  182 + cursor: pointer;
179 } 183 }
  1 +body,
  2 +ol,
  3 +ul,
  4 +h1,
  5 +h2,
  6 +h3,
  7 +h4,
  8 +h5,
  9 +h6,
  10 +p,
  11 +th,
  12 +td,
  13 +dl,
  14 +dd,
  15 +form,
  16 +fieldset,
  17 +legend,
  18 +input,
  19 +textarea,
  20 +select {
  21 + margin: 0;
  22 + padding: 0
  23 +}
  24 +
  25 +body {
  26 + font: 12px "微软雅黑", "MicrosoftYaHei", HELVETICA;
  27 + background: #fff;
  28 + -webkit-text-size-adjust: 100%;
  29 +}
  30 +
  31 +a {
  32 + color: #2d374b;
  33 + text-decoration: none
  34 +}
  35 +
  36 +em,
  37 +i {
  38 + font-style: normal
  39 +}
  40 +
  41 +li {
  42 + list-style: none
  43 +}
  44 +
  45 +img {
  46 + border: 0;
  47 + vertical-align: middle
  48 +}
  49 +
  50 +table {
  51 + border-collapse: collapse;
  52 + border-spacing: 0
  53 +}
  54 +
  55 +p {
  56 + word-wrap: break-word
  57 +}
  58 +
  59 +body {
  60 + background: #3C3C94;
  61 +}
  62 +
  63 +/*清除浮动*/
  64 +.clearfix::after {
  65 + content: ".";
  66 + clear: both;
  67 + display: block;
  68 + overflow: hidden;
  69 + font-size: 0;
  70 + height: 0;
  71 +}
  72 +
  73 +.clearfix {
  74 + zoom: 1;
  75 +}
  76 +
  77 +.container {
  78 + width: 1200px;
  79 + margin: 0 auto;
  80 +}
  81 +
  82 +main {
  83 + padding-top: 140px;
  84 + padding-bottom: 100px;
  85 +}
  86 +
  87 +.login {
  88 + height: 460px;
  89 +}
  90 +
  91 +/*登陆左边背景*/
  92 +.login_left {
  93 + width: 740px;
  94 + float: left;
  95 +}
  96 +
  97 +/*登陆方式*/
  98 +.login_right {
  99 + width: 460px;
  100 + height: 460px;
  101 + background: #fff;
  102 + float: left;
  103 +}
  104 +
  105 +.login_right_nav {
  106 + padding: 59px 84px 36px 84px;
  107 + border-bottom: 1px solid #EBEBEB;
  108 +}
  109 +
  110 +.login_right_nav_third {
  111 + float: left;
  112 +}
  113 +
  114 +.login_right_nav_phone {
  115 + float: right;
  116 +}
  117 +
  118 +.login_right_nav a {
  119 + font-size: 20px;
  120 + color: #999;
  121 +}
  122 +
  123 +/*登陆方式选中状态*/
  124 +.login_right_nav .login_nav_active {
  125 + position: relative;
  126 +}
  127 +
  128 +.login_right_nav .login_nav_active:after {
  129 + content: '';
  130 + display: block;
  131 + width: 48px;
  132 + height: 2px;
  133 + background: #28EF94;
  134 + position: absolute;
  135 + left: 0;
  136 + right: 0;
  137 + margin: 12px auto;
  138 +}
  139 +
  140 +.login_right_nav .login_nav_active a {
  141 + color: #28EF94;
  142 + font-weight: bold;
  143 +}
  144 +
  145 +/*登陆*/
  146 +.login_right_main {
  147 + padding: 0 60px;
  148 + padding-top: 34px;
  149 +}
  150 +
  151 +.login_right_main input {
  152 + width: 100%;
  153 + height: 56px;
  154 + padding: 0 24px;
  155 + box-sizing: border-box;
  156 + outline: none;
  157 + margin-bottom: 24px;
  158 + background: rgba(241, 241, 241, 1);
  159 + border-radius: 2px;
  160 + border: 0;
  161 + font-size: 16px;
  162 +}
  163 +
  164 +.login_right_main input::placeholder {
  165 + color: #999;
  166 +}
  167 +
  168 +/*忘记密码*/
  169 +.login_right_main_reg{
  170 + text-align: center;
  171 + margin-top: 14px;
  172 +}
  173 +
  174 +.login_right_main_reg a,.logged_in a {
  175 + color: #28EF94;
  176 +}
  177 +
  178 +/*登陆*/
  179 +.login_right_main form>button {
  180 + width: 100%;
  181 + height: 56px;
  182 + background: rgba(40, 239, 148, 1);
  183 + border-radius: 28px;
  184 + color: #fff;
  185 + font-size: 20px;
  186 + border: 0;
  187 + outline: none;
  188 + margin-top: 19px;
  189 + cursor: pointer;
  190 +}
  191 +
  192 +/*网站备案*/
  193 +.Keep {
  194 + text-align: center;
  195 + color: #FFFEFE;
  196 + font-synthesis: 16px;
  197 +}
  1 +.login_right_main{
  2 + padding: 0 109px;
  3 + padding-top: 83px;
  4 +}
  5 +.WeChat{
  6 + float: left;
  7 +}
  8 +.Sina{
  9 + float: right;
  10 +}
  1 +.mask{
  2 + position:fixed;
  3 + left: 44%;
  4 + display: none;
  5 + top: 300px;
  6 + padding: 24px 32px;
  7 + box-sizing:border-box;
  8 + background:rgba(0,0,0,0.6);
  9 + border-radius:10px;
  10 + font-size:18px;
  11 + color:rgba(255,255,255,1);
  12 +}
  1 +.login_right_nav {
  2 + padding-top: 40px;
  3 + padding-bottom: 22px;
  4 + text-align: center;
  5 + font-size: 20px;
  6 + color: #1a1a1a;
  7 + font-weight: bold;
  8 +}
  9 +
  10 +.login_right_main {
  11 + padding-top: 24px;
  12 +}
  13 +
  14 +.login_right_main_code {
  15 + position: relative;
  16 +}
  17 +
  18 +.login_right_main_code .ver_codebtn {
  19 + position: absolute;
  20 + width: 100px;
  21 + height: 40px;
  22 + background: rgba(255, 255, 255, 1);
  23 + border: 1px solid rgba(40, 239, 148, 1);
  24 + border-radius: 20px;
  25 + cursor: pointer;
  26 + outline: none;
  27 + top: 8px;
  28 + right: 20px;
  29 + color: #28EF94;
  30 + padding: 0;
  31 +}
  32 +.logged_in{
  33 + text-align: center;
  34 +}
@@ -59,4 +59,25 @@ $(function(){ @@ -59,4 +59,25 @@ $(function(){
59 //改变分页图标 59 //改变分页图标
60 $('.page-item').eq(0).children().text('<'); 60 $('.page-item').eq(0).children().text('<');
61 $('.page-item:last').children().text('>'); 61 $('.page-item:last').children().text('>');
  62 +
  63 + //注册页面
  64 + $('#register').click(function(){
  65 + window.location.href = '/portal/login/register';
  66 + });
  67 +
  68 + //登录页面
  69 + $('#login').click(function(){
  70 + window.location.href = '/portal/login/login';
  71 + });
  72 +
62 }); 73 });
  74 +
  75 +//弹框
  76 +function mask(msg) {
  77 + $('.mask').text(msg);
  78 + $('.mask').show();
  79 + setTimeout(function(){
  80 + $('.mask').hide();
  81 + $('.mask').text('');
  82 + },4000);
  83 +}
@@ -44,8 +44,8 @@ @@ -44,8 +44,8 @@
44 <!-- 登录注册 --> 44 <!-- 登录注册 -->
45 <section class="home_login"> 45 <section class="home_login">
46 <span> 46 <span>
47 - <p>注册</p>  
48 - <p>登录</p> 47 + <p id="register">注册</p>
  48 + <p id="login">登录</p>
49 </span> 49 </span>
50 </section> 50 </section>
51 </div> 51 </div>