panqiuyao 2 tahun lalu
induk
melakukan
2231cc7e3e
100 mengubah file dengan 10699 tambahan dan 0 penghapusan
  1. 5 0
      .idea/.gitignore
  2. 12 0
      .idea/hlm_mall.iml
  3. 8 0
      .idea/modules.xml
  4. 6 0
      .idea/vcs.xml
  5. 9 0
      app/home/view/default_back/base/base_buy.html
  6. 5 0
      app/home/view/default_back/base/base_home.html
  7. 109 0
      app/home/view/default_back/base/base_joinin.html
  8. 17 0
      app/home/view/default_back/base/base_member.html
  9. 17 0
      app/home/view/default_back/base/base_seller.html
  10. 5 0
      app/home/view/default_back/base/base_store.html
  11. 45 0
      app/home/view/default_back/base/dispatch_jump.html
  12. 22 0
      app/home/view/default_back/base/home/goods_class_area.html
  13. 103 0
      app/home/view/default_back/base/home/goods_squares.html
  14. 31 0
      app/home/view/default_back/base/mall_footer.html
  15. 230 0
      app/home/view/default_back/base/mall_header.html
  16. 37 0
      app/home/view/default_back/base/mall_server.html
  17. 253 0
      app/home/view/default_back/base/mall_top.html
  18. 231 0
      app/home/view/default_back/base/member_header.html
  19. 7 0
      app/home/view/default_back/base/member_items.html
  20. 18 0
      app/home/view/default_back/base/member_left.html
  21. 7 0
      app/home/view/default_back/base/seller_items.html
  22. 37 0
      app/home/view/default_back/base/seller_left.html
  23. 34 0
      app/home/view/default_back/base/seller_top.html
  24. 147 0
      app/home/view/default_back/base/store_header.html
  25. 25 0
      app/home/view/default_back/mall/activity/activity_index.html
  26. 47 0
      app/home/view/default_back/mall/activity/activity_show.html
  27. 84 0
      app/home/view/default_back/mall/article/article_list.html
  28. 90 0
      app/home/view/default_back/mall/article/article_show.html
  29. 119 0
      app/home/view/default_back/mall/brand/brand_goods.html
  30. 72 0
      app/home/view/default_back/mall/brand/index.html
  31. 31 0
      app/home/view/default_back/mall/category/goods_category.html
  32. 24 0
      app/home/view/default_back/mall/category/store_category.html
  33. 143 0
      app/home/view/default_back/mall/compare/compare.html
  34. 24 0
      app/home/view/default_back/mall/compare/compare_mini.html
  35. 170 0
      app/home/view/default_back/mall/connectqq/connect_register.html
  36. 170 0
      app/home/view/default_back/mall/connectsina/connect_register.html
  37. 16 0
      app/home/view/default_back/mall/connectwx/index.html
  38. 173 0
      app/home/view/default_back/mall/connectwx/register.html
  39. 20 0
      app/home/view/default_back/mall/document/index.html
  40. 223 0
      app/home/view/default_back/mall/flea/flea_index.html
  41. 301 0
      app/home/view/default_back/mall/fleaclass/flea_class.html
  42. 26 0
      app/home/view/default_back/mall/fleaclass/quality_inner.html
  43. 278 0
      app/home/view/default_back/mall/fleagoods/flea_goods.html
  44. 447 0
      app/home/view/default_back/mall/index/index.html
  45. 39 0
      app/home/view/default_back/mall/inviterpro/index.html
  46. 42 0
      app/home/view/default_back/mall/link/link.html
  47. 236 0
      app/home/view/default_back/mall/live/index.html
  48. 100 0
      app/home/view/default_back/mall/login/find_password.html
  49. 233 0
      app/home/view/default_back/mall/login/login.html
  50. 221 0
      app/home/view/default_back/mall/login/login_inajax.html
  51. 295 0
      app/home/view/default_back/mall/login/register.html
  52. 125 0
      app/home/view/default_back/mall/payment/wxpay.html
  53. 99 0
      app/home/view/default_back/mall/promotion/index.html
  54. 24 0
      app/home/view/default_back/mall/promotion/item.html
  55. 24 0
      app/home/view/default_back/mall/search/goods_booth.html
  56. 75 0
      app/home/view/default_back/mall/search/goods_guesslike.html
  57. 31 0
      app/home/view/default_back/mall/search/goods_hot.html
  58. 271 0
      app/home/view/default_back/mall/search/search.html
  59. 517 0
      app/home/view/default_back/mall/shopnearby/index.html
  60. 40 0
      app/home/view/default_back/mall/showbargain/index.html
  61. 232 0
      app/home/view/default_back/mall/showgroupbuy/groupbuy_detail.html
  62. 60 0
      app/home/view/default_back/mall/showgroupbuy/groupbuy_evaluate.html
  63. 106 0
      app/home/view/default_back/mall/showgroupbuy/groupbuy_list.html
  64. 45 0
      app/home/view/default_back/mall/showgroupbuy/groupbuy_order.html
  65. 98 0
      app/home/view/default_back/mall/showgroupbuy/groupbuy_vr_list.html
  66. 106 0
      app/home/view/default_back/mall/showgroupbuy/index.html
  67. 28 0
      app/home/view/default_back/mall/showhelp/store_help.html
  68. 54 0
      app/home/view/default_back/mall/showhelp/store_help_left.html
  69. 167 0
      app/home/view/default_back/mall/showjoinin/index.html
  70. 41 0
      app/home/view/default_back/mall/showpintuan/index.html
  71. 15 0
      app/home/view/default_back/mall/special/index.html
  72. 244 0
      app/home/view/default_back/mall/storelist/store_list.html
  73. 112 0
      app/home/view/default_back/member/buy/buy_address.html
  74. 290 0
      app/home/view/default_back/member/buy/buy_address_add.html
  75. 62 0
      app/home/view/default_back/member/buy/buy_address_load.html
  76. 37 0
      app/home/view/default_back/member/buy/buy_amount.html
  77. 42 0
      app/home/view/default_back/member/buy/buy_fcode.html
  78. 223 0
      app/home/view/default_back/member/buy/buy_goods_list.html
  79. 28 0
      app/home/view/default_back/member/buy/buy_invoice.html
  80. 314 0
      app/home/view/default_back/member/buy/buy_invoice_load.html
  81. 208 0
      app/home/view/default_back/member/buy/buy_payment.html
  82. 163 0
      app/home/view/default_back/member/buy/buy_step1.html
  83. 240 0
      app/home/view/default_back/member/buy/buy_step2.html
  84. 44 0
      app/home/view/default_back/member/buy/buy_step3.html
  85. 111 0
      app/home/view/default_back/member/buy/predeposit_pay.html
  86. 208 0
      app/home/view/default_back/member/buy/storejoinin_pay.html
  87. 122 0
      app/home/view/default_back/member/buyvirtual/buy_virtual_step1.html
  88. 212 0
      app/home/view/default_back/member/buyvirtual/buy_virtual_step2.html
  89. 175 0
      app/home/view/default_back/member/buyvirtual/buy_virtual_step3.html
  90. 23 0
      app/home/view/default_back/member/buyvirtual/buy_virtual_step4.html
  91. 184 0
      app/home/view/default_back/member/cart/cart.html
  92. 47 0
      app/home/view/default_back/member/cart/cart_empty.html
  93. 41 0
      app/home/view/default_back/member/cart/cart_mini.html
  94. 46 0
      app/home/view/default_back/member/fleaalbum/store_flea_sample.html
  95. 30 0
      app/home/view/default_back/member/fleaalbum/store_flea_sample_des.html
  96. 49 0
      app/home/view/default_back/member/member/goods_info.html
  97. 111 0
      app/home/view/default_back/member/member/index.html
  98. 39 0
      app/home/view/default_back/member/member/member_info.html
  99. 38 0
      app/home/view/default_back/member/member/order_info.html
  100. 54 0
      app/home/view/default_back/member/member/point_info.html

+ 5 - 0
.idea/.gitignore

@@ -0,0 +1,5 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/

+ 12 - 0
.idea/hlm_mall.iml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/temp" />
+      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/hlm_mall.iml" filepath="$PROJECT_DIR$/.idea/hlm_mall.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 9 - 0
app/home/view/default_back/base/base_buy.html

@@ -0,0 +1,9 @@
+{block name="mall_top"}{include file='default/base/mall_top'/}{/block}
+
+
+
+
+
+{block name="buy_main"}{/block}
+{block name="mall_server"}{include file='default/base/mall_server'/}{/block}
+{block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 5 - 0
app/home/view/default_back/base/base_home.html

@@ -0,0 +1,5 @@
+{block name="mall_top"}{include file='default/base/mall_top'/}{/block}
+{block name="mall_header"}{include file='default/base/mall_header'/}{/block}
+{block name="mall_main"}{/block}
+{block name="mall_server"}{include file='default/base/mall_server'/}{/block}
+{block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 109 - 0
app/home/view/default_back/base/base_joinin.html

@@ -0,0 +1,109 @@
+<!doctype html>
+<html>
+    <head>
+        <title> - {$Think.lang.tenants}</title>
+        <meta charset="utf-8">
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <meta name="keywords" content="" />
+        <meta name="description" content="" />
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/common.css">
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/seller_joinin.css">
+        <link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.css">
+        <script>
+            var BASESITEROOT = "{$Think.BASE_SITE_ROOT}";
+            var BASESITEURL = "{$Think.BASE_SITE_URL}";
+            var HOMESITEURL = "{$Think.HOME_SITE_URL}";
+        </script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery-2.1.4.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/common.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery.ui.datepicker-zh-CN.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery.validate.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/additional-methods.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/layer/layer.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
+    </head>
+    <div id="append_parent"></div>
+    <div id="ajaxwaitid"></div>
+    <div class="public-top">
+        <div class="w1200">
+            <span class="top-link">
+                {$Think.lang.welcome_to} <em>{$Think.config.ds_config.site_name}</em>
+            </span>
+            <ul class="login-regin">
+                {if session('member_id')}
+                <li class="line"> <a href="{:url('Member/index')}">{:session('member_nickname')}</a></li>
+                <li> <a href="{:url('Login/Logout')}">{$Think.lang.exit}</a></li>
+                {else}
+                <li class="line"> <a href="{:url('Login/login')}">{$Think.lang.please_log}</a></li>
+                {if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}
+                <li> <a href="{:url('Login/register')}">{$Think.lang.free_registration}</a></li>
+                {/if}
+                {/if}
+            </ul>
+            <ul class="quick_list">
+                <li>
+                    <span class="outline"></span>
+                    <span class="blank"></span>
+                    <a href="{:url('Seller/index')}">{$Think.lang.business_center}<b></b></a>
+                    <div class="dropdown-menu">
+                        <ol>
+                            <li><a href="{:url('Showjoinin/index')}">{$Think.lang.tenants}</a></li>
+                            <li><a href="{:url('Sellerlogin/login')}">{$Think.lang.merchant_login}</a></li>
+                        </ol>
+                    </div>
+                </li>
+                <li class="moblie-qrcode">
+                    <span class="outline"></span>
+                    <span class="blank"></span>
+                    <a href="javascript:void(0)">{$Think.lang.wechat_end}</a>
+                    <div class="dropdown-menu">
+                        <img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logowx)}" width="90" height="90" />
+                    </div>
+                </li>
+                <li class="app-qrcode">
+                    <span class="outline"></span>
+                    <span class="blank"></span>
+                    <a href="javascript:void(0)">APP</a>
+                    <div class="dropdown-menu">
+                        <img width="90" height="90" src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logowx)}" />
+                        <h3>{$Think.lang.scan_qr_code}</h3>
+                        <p>{$Think.lang.download_mobile_client}</p>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+    <div class="header">
+        <h2 class="header_logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </h2>
+        <span class="header_span">{$Think.lang.tenants}</span>
+    </div>
+    <div class="header_nav">
+        <ul class="header_menu w1200">
+            <li class="{if $Request.controller=='Showjoinin'}cur{/if}"><a href="{:url('Showjoinin/index')}">{$Think.lang.homepage}</a></li>
+            <li class="{if $Request.controller=='Sellerjoinin'}cur{/if}"><a href="{:url('Sellerjoinin/index')}">{$Think.lang.merchant_entry_application}</a></li>
+            <li class="{if $Request.controller=='Seller'}cur{/if}"><a href="{:url('Seller/index')}">{$Think.lang.business_management_center}</a></li>
+            <li class="{if $Request.controller=='Showhelp'}cur{/if}"><a href="{:url('Showhelp/index')}">{$Think.lang.business_showhelp_center}</a></li>
+        </ul>
+    </div>
+   <script type="text/javascript">
+    function show_list(t_id) {
+        var obj = $(".sidebar dl[show_id='" + t_id + "']");
+        var show_class = obj.find("dt i").attr('class');
+        if (show_class == 'right') {
+            obj.find("dd").show();
+            obj.find("dt i").attr('class', 'down');
+        } else {
+            obj.find("dd").hide();
+            obj.find("dt i").attr('class', 'right');
+        }
+    }
+</script>         
+        
+
+
+    {block name="joinin_main"}{/block}
+    {block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 17 - 0
app/home/view/default_back/base/base_member.html

@@ -0,0 +1,17 @@
+{block name="mall_top"}{include file='default/base/mall_top'/}{/block}
+{block name="member_header"}{include file='default/base/member_header'/}{/block}
+<div class="member_center_back">
+<div class="dsm-container">
+    {block name="member_left"}{include file='default/base/member_left'/}{/block}
+    <div class="right-layout">
+        <div class="tabmenu">
+            {block name="member_items"}{include file='default/base/member_items'/}{/block}
+            {block name="member_btn"}{/block}
+        </div>
+        {block name="member_main"}{/block}
+    </div>
+    <div class="clear"></div>
+</div>
+</div>
+{block name="mall_server"}{include file='default/base/mall_server'/}{/block}
+{block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 17 - 0
app/home/view/default_back/base/base_seller.html

@@ -0,0 +1,17 @@
+{block name="seller_top"}{include file='default/base/seller_top'/}{/block}
+<div class="seller_main">
+    {block name="seller_left"}{include file='default/base/seller_left'/}{/block}
+    <div class="seller_right">
+        <div class="seller_items">
+        {block name="seller_items"}{include file='default/base/seller_items'/}{/block}
+        {block name="seller_btn"}{/block}
+        </div>
+        <div class="p20">
+            {if isset($store_closed) && $store_closed}
+            <div class="alert mt10"> <strong>{$Think.lang.store_closed_reason}:{$store_closed}。</strong> {$Think.lang.please_contact_admin}!</div>
+            {/if}
+            {block name="seller_main"}{/block}
+        </div>
+    </div>
+</div>
+{block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 5 - 0
app/home/view/default_back/base/base_store.html

@@ -0,0 +1,5 @@
+{block name="mall_top"}{include file='default/base/mall_top'/}{/block}
+{block name="store_header"}{include file='default/base/store_header'/}{/block}
+{block name="store_main"}{/block}
+{block name="mall_server"}{include file='default/base/mall_server'/}{/block}
+{block name="mall_footer"}{include file='default/base/mall_footer'/}{/block}

+ 45 - 0
app/home/view/default_back/base/dispatch_jump.html

@@ -0,0 +1,45 @@
+{include file="default/base/mall_top" /}
+{include file="default/base/mall_header" /}
+
+<style type="text/css">
+    .system-message{ padding:120px 0;border: 1px solid #E6E6E6;margin-top:20px;}
+    .system-message p{margin-left:400px;}
+    .system-message .jump{ padding-top: 10px; }
+    .system-message .jump a{ color: #333; }
+    .system-message i{float: left;padding-right: 10px;width: 41px;height: 40px;background: url({$Think.HOME_SITE_ROOT}/images/pw-icon.gif) no-repeat;}
+    .system-message .success i{background-position: 0 -40px !important;}
+    .system-message .error i{background-position: 0 -85px !important;}
+    .system-message .success,.system-message .error{ line-height:40px; font-size:26px;}
+    .system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display: none; }
+</style>
+<div class="w1200">
+    <div class="system-message">
+        <?php switch ($code) {?>
+        <?php case 1:?>
+        <p class="success"><i></i><?php echo(strip_tags($msg));?></p>
+        <?php break;?>
+        <?php case 0:?>
+        <p class="error"><i></i><?php echo(strip_tags($msg));?></p>
+        <?php break;?>
+        <?php } ?>
+        <p class="detail"></p>
+        <p class="jump">
+            {$Think.lang.page_automatic} <a id="href" href="<?php echo($url);?>">{$Think.lang.jump}</a> {$Think.lang.waiting_time}: <b id="wait"><?php echo($wait);?></b>
+        </p>
+    </div>
+</div>
+    <script type="text/javascript">
+        (function(){
+            var wait = document.getElementById('wait'),
+                href = document.getElementById('href').href;
+            var interval = setInterval(function(){
+                var time = --(wait.innerHTML);
+                if(time <= 0) {
+                    location.href = href;
+                    clearInterval(interval);
+                };
+            }, 1000);
+        })();
+    </script>
+{include file="default/base/mall_server" /}
+{include file="default/base/mall_footer" /}

+ 22 - 0
app/home/view/default_back/base/home/goods_class_area.html

@@ -0,0 +1,22 @@
+<div class="filter-detailc" id="addressDraw">
+  
+  <dl class="location-all">
+    <dt>{$Think.lang.provinces}</dt>
+    <dd>
+      <ul class="clearfix">
+		{foreach name="province_array" item="province" key="k" }
+		<li>
+		  <p class="lt">{$k}</p>
+		  <p class="lc">
+		  {foreach name="province" item="item" }
+		   <span><a href="{:replaceParam(array('area_id' => $item.area_id))}">{$item.area_name}</a></span> 
+		  {/foreach}
+		  </p>
+		</li>
+		{/foreach}
+        
+      </ul>
+    </dd>
+  </dl>
+  <p class="oreder-default"><a href="{:dropParam(array('area_id'))}">{$Think.lang.goods_class_index_area}</a></p>
+</div>

+ 103 - 0
app/home/view/default_back/base/home/goods_squares.html

@@ -0,0 +1,103 @@
+<!--商品列表BEGIN-->     
+<style type="text/css">
+#box{background: #FFF;width: 238px;height: 410px;margin: -390px 0 0 0;display: block;border: solid 4px #D93600;position: absolute;z-index: 999;opacity: .5}
+.shopMenu{position: fixed;z-index: 1;right: 25%;top: 0;}
+</style>
+<div class="squares" ds_type="current_display_mode">
+    <input type="hidden" id="lockcompare" value="unlock" />
+  {notempty name="goods_list"}
+  <ul class="list_pic">
+    {foreach name="goods_list" item="value"}
+    <li class="item">
+      <div class="goods-content" dstype_goods=" {$value.goods_id}" dstype_store="{$value.store_id}">
+        <div class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_name}"><img class="lazyload" data-original="{:goods_thumb($value, 240)}" title="{$value.goods_name}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" alt="{$value.goods_name}" /></a></div>
+        {if (config('ds_config.groupbuy_allow') && $value['goods_promotion_type'] == 1)}
+        <div class="goods-promotion"><span>{$Think.lang.goods_class_index_groupbuy}</span></div>
+        {elseif (config('ds_config.promotion_allow') && $value['goods_promotion_type'] == 2)/}
+        <div class="goods-promotion"><span>{$Think.lang.goods_class_index_xianshi}</span></div>
+        {/if}
+        <div class="goods-info">
+          <div class="goods-pic-scroll-show">
+              <ul>
+                  {notempty name="$value.image"}
+                  {php}$i=1;{/php}
+                  {foreach name="$value.image" item="val" }
+                  <li {if $i==1}class="selected"{/if}><a href="javascript:void(0);"><img class="lazyload" data-original="{:goods_cthumb($val.goodsimage_url, 240)}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" /></a></li>
+                  {php}$i++;{/php}
+                  {/foreach}
+                  {else /}
+                  <li class="selected"><a href="javascript:void(0);"><img class="lazyload" data-original="{:goods_thumb($value, 240)}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" /></a></li>
+                  {/notempty}
+              </ul>
+          </div>
+            <div class="goods-price"> <em class="sale-price" title="{$Think.lang.goods_class_index_store_goods_price}{$Think.lang.ds_colon}{$Think.lang.currency}{$value.goods_promotion_price}">{:ds_price_format_forlist($value['goods_promotion_price'])}</em>  <span class='goods-sales'>{$Think.lang.sold}{$value.goods_salenum}{$Think.lang.piece}</span></div>
+            <div class="goods-name">
+                {if $value.is_virtual == 1}
+                {if $value.virtual_type == 0}
+                <span class="virtual" title="{$Think.lang.virtual_exchange}">{$Think.lang.virtual_exchange}</span>
+                {/if}
+                {if $value.virtual_type == 1}
+                <span class="virtual" title="卡券商品">卡券商品</span>
+                {/if}
+                {if $value.virtual_type == 2}
+                <span class="virtual" title="网盘商品">网盘商品</span>
+                {/if}
+                {if $value.virtual_type == 3}
+                <span class="virtual" title="下载商品">下载商品</span>
+                {/if}
+                {/if}
+                {if $value.is_goodsfcode == 1}
+                <span class="fcode" title="{$Think.lang.f_code_priority_buy_goods}">{$Think.lang.f_code_priority}</span>
+                {/if}
+                {if $value.is_have_gift == 1}
+                <span class="gift" title="{$Think.lang.bundling_freebies}">{$Think.lang.complimentary}</span>
+                {/if}
+                <a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_advword}">{$value.goods_name_highlight|raw}<em>{$value.goods_advword}</em></a>
+            </div>
+          <div class="goods-sub">
+            <span class="goods-compare" ds_type="compare_{$value.goods_id}" data-param='{"gid":"{$value.goods_id}"}'><i></i>{$Think.lang.comparison}</span>
+            <span onclick="collect_goods('{$value.goods_id}','count','goods_collect');"><i class='iconfont'>&#xe685;</i>{$Think.lang.collect}</span>
+            <span><i class='iconfont'>&#xe730;</i>{$value.evaluation_count}</span>
+
+          </div>
+          <div class="store"><a href="{:url('Store/index',['store_id'=>$value.store_id])}" title="{$value.store_name}" class="name">{$value.store_name}</a><em member_id="{$value.member_id}">&nbsp;</em> </div>
+          <div class="add-cart">
+              {if $value.goods_storage == 0}
+              {if $value.is_appoint == 1}
+              <a href="javascript:void(0);" onclick="{if (session('is_login') !== '1')}login_dialog();{else/}ajax_form('arrival_notice', '{$Think.lang.immediately_appointment}', '{:url('Goods/arrival_notice',['goods_id'=>$value.goods_id,'type'=>'2'])}', 350);{/if}"><i class="iconfont" title={$Think.lang.immediately_appointment}>&#xe70f;</i></a>
+              {else /}
+              <a href="javascript:void(0);" onclick="{if (session('is_login') !== '1')}login_dialog();{else/}ajax_form('arrival_notice', '{$Think.lang.receiving_notification}', '{:url('Goods/arrival_notice',['goods_id'=>$value.goods_id,'type'=>'2'])}', 350);{/if}"><i class="iconfont" title={$Think.lang.receiving_notification}>&#xe70f;</i></a>
+              {/if}
+              {else /}
+              {if (session('is_login') === '1')}
+              {if $value.is_virtual == 1 || $value.is_goodsfcode == 1 || $value.presell_info}
+              <a href="javascript:void(0);" dstype="buy_now" data-param="{goods_id:{$value.goods_id}}"><i class="iconfont" title="{if ($value['is_goodsfcode'] == 1)}{$Think.lang.f_code_buy}{else/}{$Think.lang.text_buy_now}{/if}">&#xe69a;</i></a>
+              {else /}
+              <a href="javascript:void(0);" dstype="add_cart" data-param="{goods_id:{$value.goods_id}}"><i class="iconfont" title='{$Think.lang.add_cart}'>&#xe69a;</i></a>
+              {/if}
+              {/if}
+              {/if}
+          </div>
+        </div>
+      </div>
+    </li>
+    {/foreach}
+    <div class="clear"></div>
+  </ul>
+  {else /}
+  <div class="no_results">{$Think.lang.index_no_record}</div>
+  {/notempty}
+</div>
+<form id="buynow_form" method="post" action="{:url('Buy/buy_step1')} ">
+  <input id="goods_id" name="cart_id[]" type="hidden"/>
+</form>
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/jquery.raty.min.js"></script>
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/compare.js"></script>
+<script type="text/javascript">
+    $(document).ready(function(){
+      	//初始化对比按钮
+        initCompare();
+    });
+</script> 
+<!--商品列表END-->     
+        

+ 31 - 0
app/home/view/default_back/base/mall_footer.html

@@ -0,0 +1,31 @@
+{if $Think.config.ds_config.instant_message_open eq '1' && !isset($wait) && request()->controller() != 'Payment' && request()->controller() != 'Showgroupbuy'}
+{:get_chat()}
+{/if}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.cookie.js"></script>
+<script src="{$Think.HOME_SITE_ROOT}/js/compare.js"></script>
+<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/perfect-scrollbar.min.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/perfect-scrollbar.min.js"></script>
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/js/qtip/jquery.qtip.min.js"></script>
+<link href="{$Think.PLUGINS_SITE_ROOT}/js/qtip/jquery.qtip.min.css" rel="stylesheet" type="text/css">
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/jquery.lazyload.min.js"></script>
+<script>
+    //懒加载
+    $("img.lazyload").lazyload({
+//        placeholder : "{$Think.HOME_SITE_ROOT}/images/loading.gif",
+        effect: "fadeIn",
+        skip_invisible : false,
+        threshold : 200,
+    });
+</script>
+<div class="footer-info">
+    <div class="links w1200">
+        {foreach $navs.footer as $nav}
+        <a href="{$nav.nav_url}" {if $nav.nav_new_open == 1}target="_blank"{/if}>{$nav.nav_title}</a>|
+        {/foreach}
+    </div>
+    <div class="copyright">
+        <p><a href="http://www.beian.gov.cn/portal/registerSystemInfo" target="_blank">{$Think.config.ds_config.wab_number}</a></p>
+        <p><a href="https://beian.miit.gov.cn" target="_blank">{$Think.config.ds_config.icp_number}</a></p>
+        <p>{$Think.config.ds_config.flow_static_code}</p>
+    </div>
+</div>

+ 230 - 0
app/home/view/default_back/base/mall_header.html

@@ -0,0 +1,230 @@
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
+<div class="header clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+        <div class="top_search">
+            <div class="top_search_box">
+                <div id="search">
+                    <ul class="tab" dstype="{$Request.controller}">
+                        <li class="current"><span>{$Think.lang.site_search_goods}</span><i class="arrow"></i></li>
+                           <li style="display: none;"><span>{$Think.lang.site_search_store}</span></li>
+                    </ul>
+                </div>
+                <div class="form_fields">
+                    <form class="search-form" id="search-form" method="get" action="{:url('Search/index')}">
+                        <input placeholder="{$Think.lang.search_merchandise_keywords}" name="keyword" id="keyword" type="text" class="keyword" value="{$Request.param.keyword}" maxlength="60" />
+                        <input type="submit" id="button" value="{$Think.lang.ds_common_search}" class="submit">
+                    </form>
+                </div>
+            </div>
+            <ul class="top_search_keywords">
+                {foreach name="hot_search" item="hot_keyword" key="hot_k" }
+                <li {if $hot_k==0}class="first"{/if}><a href="{$Think.HOME_SITE_URL}/Search/index.html?keyword={$hot_keyword}">{$hot_keyword}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+        <div class="user_menu">
+            <dl class="my-mall">
+                <dt><span class="ico iconfont">&#xe702;</span>{$Think.lang.ds_user_center}<i class="arrow"></i></dt>
+                <dd>
+                    <div class="sub-title">
+                        <h4></h4>
+                        <a href="{:url('Member/index')}" class="arrow">{$Think.lang.ds_my_user_center}<i></i></a>
+                    </div>
+                    <div class="user-centent-menu">
+                        <ul>
+                            <li><a href="{:url('Membermessage/message')}">{$Think.lang.ds_message}(<span>{if session('member_id')}{$message_num|default=0}{else}0{/if}</span>)</a></li>
+                            <li><a href="{:url('Memberorder/index')}" class="arrow">{$Think.lang.ds_my_order}<i></i></a></li>
+                            <li><a href="{:url('Memberconsult/index')}">{$Think.lang.ds_consulting_reply}(<span id="member_consult">0</span>)</a></li>
+                            <li><a href="{:url('Memberfavorites/fglist')}" class="arrow">{$Think.lang.ds_favorites}<i></i></a></li>
+                            <li><a href="{:url('Membervoucher/index')}">{$Think.lang.ds_vouchers}(<span id="member_voucher">0</span>)</a></li>
+                            <li><a href="{:url('Memberpoints/index')}" class="arrow">{$Think.lang.ds_my_points}<i></i></a></li>
+                        </ul>
+                    </div>
+                    <div class="browse-history">
+                        <div class="part-title">
+                            <h4>{$Think.lang.ds_recently_browsed_items}</h4>
+                            <span style="float:right;"><a href="{:url('Membergoodsbrowse/listinfo')}">{$Think.lang.ds_full_history}</a></span>
+                        </div>
+                        <ul>
+                            <li class="no-goods"><img class="loading" src="{$Think.HOME_SITE_ROOT}/images/loading.gif"></li>
+                        </ul>
+                    </div>
+                </dd>
+            </dl>
+            <dl class="my-cart">
+                <dt><span class="ico iconfont">&#xe69a;</span>{$Think.lang.ds_shopping_cart_settlement}<i class="arrow"></i></dt>
+                <dd>
+                    <div class="sub-title">
+                        <h4>{$Think.lang.ds_latest_additions}</h4>
+                    </div>
+                    <div class="incart-goods-box">
+                        <div class="incart-goods"><div class="no-order"><span>{$Think.lang.ds_shopping_cart_empty}</span></div></div>
+                    </div>
+                    <div class="checkout"> <span class="total-price"></span><a href="{:url('Cart/index')}" class="btn-cart">{$Think.lang.ds_checkout_cart}</a> </div>
+                </dd>
+                <div class="addcart-goods-num">{$cart_goods_num}</div>
+            </dl>
+        </div>
+    </div>
+</div>
+
+
+<div class="mall_nav">
+    <div class="w1200">
+        <div class="all_categorys">
+            <div class="mt">
+                <i></i>
+                <h3><a href="{:url('Category/goods')}">{$Think.lang.ds_all_commodity_classes}</a></h3>
+            </div>
+            <div class="mc">
+                <ul class="menu">
+                    {notempty name="header_categories"}
+                    {php}$i = 0;{/php}
+                    {foreach name="header_categories" item="val" key="key" }
+                    {php}$i++;{/php}
+                    <li cat_id="{$val.gc_id}" {if $i>11}style="display:none;"{/if}>
+                        <div class="class">
+                            <span class="arrow"></span>
+                            {notempty name="$val.gc_image"}
+                            <span class="ico"><img src="{:ds_get_pic(ATTACH_COMMON, $val.gc_image)}"></span>
+                            {else/}
+                            <span class="iconfont category-ico-{$i}"></span>
+                            {/notempty}
+                            <h4><a href="{:url('Search/index',['cate_id'=>$val.gc_id])}">{$val.gc_name}</a></h4>
+                        </div>
+                        <div class="sub-class" cat_menu_id="{$val.gc_id}">
+                            <div class="sub-class-content">
+                                <div class="recommend-class">
+                                    {notempty name="$val.cn_classs"}
+                                    {foreach name="$val.cn_classs" item="v" key="k" }
+                                    <span><a href="{:url('Search/index',['cate_id'=>$v.gc_id])}" title="{$v.gc_name}">{$v.gc_name}</a></span>
+                                    {/foreach}
+                                    {/notempty}
+                                </div>
+                                {notempty name="$val.class2"}
+                                {foreach name="$val.class2" item="v" key="k" }
+                                <dl>
+                                    <dt>
+                                    <h3><a href="{:url('Search/index',['cate_id'=>$v.gc_id])}">{$v.gc_name}</a></h3>
+                                    </dt>
+                                    <dd class="goods-class">
+                                        {notempty name="$v.class3"}
+                                        {foreach name="$v.class3" item="v3" key="k3" }
+                                        <a href="{:url('Search/index',['cate_id'=>$v3.gc_id])}">{$v3.gc_name}</a>
+                                        {/foreach}
+                                        {/notempty}
+                                    </dd>
+                                </dl>
+                                {/foreach}
+                                {/notempty}
+                            </div>
+                            <div class="sub-class-right">
+                                {notempty name="$val.cn_brands"}
+                                <div class="brands-list">
+                                    <ul>
+                                        {foreach name="$val.cn_brands" item="brand"}
+                                        <li>
+                                            <a href="{:url('Brand/brand_goods',['brand_id'=>$brand.brand_id])}" title="{$brand.brand_name}">{if ($brand['brand_pic'] != '')}<img src="{:brand_image($brand['brand_pic'])}"/>{/if}
+                                                <span>{$brand.brand_name}</span>
+                                            </a>
+                                        </li>
+                                       {/foreach}
+                                    </ul>
+                                </div>
+                                {/notempty}
+                                <div class="adv-promotions">
+                                    {if isset($val.goodscn_adv1) && $val.goodscn_adv1 != ''}
+                                    <a {if $val.goodscn_adv1_link == ''}href="javascript:;"{else/}target="_blank" href="{$val.goodscn_adv1_link}{/if}><img src="{$val.goodscn_adv1}" data-url="{$val.goodscn_adv1}" class="scrollLoading" /></a>
+                                    {/if}
+                                    {if isset($val.goodscn_adv2) && $val.goodscn_adv2 != ''}
+                                    <a {if $val.goodscn_adv2_link == ''}href="javascript:;"{else/}target="_blank" href="{$val.goodscn_adv2_link}{/if}><img src="{$val.goodscn_adv2}" data-url="{$val.goodscn_adv2}" class="scrollLoading" /></a>
+                                    {/if}
+                                </div>
+                            </div>
+                        </div>
+                    </li>
+                    {/foreach}
+                    {/notempty}
+                </ul>
+            </div>
+        </div>
+        <div class="nav_list">
+            <ul class="site_menu">
+                <li><a href="{:url('Index/index')}" class="current">{$Think.lang.ds_index}</a></li>
+                {foreach $navs.middle as $nav}
+                <li><a href="{$nav.nav_url}" {if $nav.nav_new_open == 1}target="_blank"{/if}>{$nav.nav_title}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+       
+    </div>
+</div>
+
+
+
+
+
+<!--面包屑导航 BEGIN-->
+{notempty name="nav_link_list"}
+<div class="dsh-breadcrumb-layout">
+    <div class="dsh-breadcrumb w1200"><i class="iconfont">&#xe6ff;</i>
+        {foreach $nav_link_list as $nav_link} 
+        {empty name="nav_link.link"}
+        <span>{$nav_link.title}</span>
+        {else /}
+        <span><a href="{$nav_link.link}">{$nav_link.title}</a></span><span class="arrow">></span>
+        {/empty}
+        {/foreach}
+    </div>
+</div>
+{/notempty}
+<!--面包屑导航 END-->
+
+
+<script>
+    $(function() {
+	//首页左侧分类菜单
+	$(".all_categorys ul.menu").find("li").each(
+		function() {
+			$(this).hover(
+				function() {
+				    var cat_id = $(this).attr("cat_id");
+					var menu = $(this).find("div[cat_menu_id='"+cat_id+"']");
+					menu.show();
+					$(this).addClass("hover");					
+					var menu_height = menu.height();
+					if (menu_height < 60) menu.height(80);
+					menu_height = menu.height();
+					var li_top = $(this).position().top;
+					$(menu).css("top",-li_top + 40);
+				},
+				function() {
+					$(this).removeClass("hover");
+				    var cat_id = $(this).attr("cat_id");
+					$(this).find("div[cat_menu_id='"+cat_id+"']").hide();
+				}
+			);
+		}
+	);
+
+        $(".user_menu dl").hover(function() {
+            $(this).addClass("hover");
+        }, function() {
+            $(this).removeClass("hover");
+        });
+        $('.user_menu .my-mall').mouseover(function() {
+            // 最近浏览的商品
+            load_history_information();
+            $(this).unbind('mouseover');
+        });
+        $('.user_menu .my-cart').mouseover(function() {
+            // 运行加载购物车
+            load_cart_information();
+            $(this).unbind('mouseover');
+        });
+    });
+    
+</script>

+ 37 - 0
app/home/view/default_back/base/mall_server.html

@@ -0,0 +1,37 @@
+<div class="server">
+    <div class="ensure">
+        <a href="#"></a>
+        <a href="#"></a>
+        <a href="#"></a>
+        <a href="#"></a>
+    </div>
+    <div class="mall_desc">
+        {notempty name="article_list"}
+        {foreach name="article_list" item="art" length='4'}
+        <dl> 
+            <dt>{$art.ac_name}</dt>
+            <dd>
+                {notempty name="art.list"}
+                {foreach name="art.list" item="list"}
+                <a href="{if $list.article_url !=''}{$list.article_url}{else /}{:url('Article/show',['article_id'=>$list.article_id])}{/if}">{$list.article_title}</a>
+                {/foreach}
+                {/notempty}
+            </dd>
+        </dl>
+        {/foreach}
+        {/notempty}
+        <dl class="mall_mobile">
+            <dt>{$Think.lang.ds_mobile_mall}</dt>
+            <dd>
+                <a href="#" class="join">
+                    <img src="{$Think.HOME_SITE_URL}/qrcode?url={$Think.config.ds_config.h5_site_url}" width="105" height="105" >
+                </a>
+            </dd> 
+        </dl>
+    </div>
+</div>
+
+
+
+
+

+ 253 - 0
app/home/view/default_back/base/mall_top.html

@@ -0,0 +1,253 @@
+<!doctype html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <title>{$html_title|default=$Think.config.ds_config.site_name}</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand" />
+        <meta name="keywords" content="{$seo_keywords|default=''}" />
+        <meta name="description" content="{$seo_description|default=''}" />
+        {:token_meta()}
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/common.css">
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_header.css">
+        <script>
+            var BASESITEROOT = "{$Think.BASE_SITE_ROOT}";
+            var HOMESITEROOT = "{$Think.HOME_SITE_ROOT}";
+            var BASESITEURL = "{$Think.BASE_SITE_URL}";
+            var HOMESITEURL = "{$Think.HOME_SITE_URL}";
+            var TIMESTAMP = "{$Think.TIMESTAMP}";
+        </script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery-2.1.4.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/common.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery.ui.datepicker-zh-CN.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery.validate.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/additional-methods.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/layer/layer.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
+    </head>
+    <body>
+        <div id="append_parent"></div>
+        <div id="ajaxwaitid"></div>
+        {if $adv_top}
+        <div style="background:{$adv_top.adv_bgcolor|default=''};">
+            <div class="w1200">
+                <a href="{:url('Advclick/Advclick',['adv_id'=>$adv_top['adv_id']])}" target="_blank" title="{$adv_top.adv_title}"><img src="{:ds_get_pic(ATTACH_ADV,$adv_top.adv_code)}" width="1200"/></a>
+            </div>
+        </div>
+        {/if}
+        <div class="public-top">
+            <div class="w1200">
+                <span class="top-link">
+                    {$Think.lang.welcome_to} <em>{$Think.config.ds_config.site_name}</em>
+                </span>
+                <ul class="login-regin">
+                    {if session('member_id')}
+                    <li class="line"> <a href="{:url('Member/index')}">{:session('member_nickname')}</a></li>
+                    <li> <a href="{:url('Login/Logout')}">{$Think.lang.exit}</a></li>
+                    {else}
+                    <li class="line"> <a href="{:url('Login/login')}">{$Think.lang.please_log}</a></li>
+                    {if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}
+                    <li> <a href="{:url('Login/register')}">{$Think.lang.free_registration}</a></li>
+                    {/if}
+                    {/if}
+                </ul>
+                <span class="top-link">
+                    <strong style="margin-left:30px;">{$Think.lang.ds_attention}<a href="http://www.csdeshang.com" target="_blank">www.csdeshang.com</a> {$Think.lang.ds_continuous_update}</strong>&nbsp;
+                    {$Think.lang.ds_purchase_authorization}:<a target="_blank" href="{$Think.HTTP_TYPE}wpa.qq.com/msgrd?v=3&uin=858761000&site=qq&menu=yes"><img border="0" src="{$Think.HTTP_TYPE}wpa.qq.com/pa?p=2:858761000:51" alt="{$Think.lang.click_here_send_message}" title="{$Think.lang.click_here_send_message}"/></a>
+                </span>
+                <ul class="quick_list">
+                    <li>
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="{:url('Member/index')}">{$Think.lang.ds_user_center}<b></b></a>
+                        <div class="dropdown-menu">
+                            <ol>
+                                <li><a href="{:url('Memberorder/index')}">{$Think.lang.ds_buying_goods}</a></li>
+                                <li><a href="{:url('Memberfavorites/fglist')}">{$Think.lang.ds_care_about}</a></li>
+                                <li><a href="{:url('Memberfavorites/fslist')}">{$Think.lang.ds_the_shop}</a></li>
+                            </ol>
+                        </div>
+                    </li>
+                    <li>
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="{:url('Seller/index')}">{$Think.lang.business_center}<b></b></a>
+                        <div class="dropdown-menu">
+                            <ol>
+                                {if session('seller_id')}
+                                <li><a href="{:url('Seller/index')}">{$Think.lang.ds_shop_overview}</a></li>
+                                <li><a href="{:url('Sellerorder/index')}">{$Think.lang.ds_member_path_store_order}</a></li>
+                                <li><a href="{:url('Sellergoodsonline/index')}">{$Think.lang.promotion_goods_manage}</a></li>
+                                {else /}
+                                {if $Think.config.ds_config.store_joinin_open!=0}
+                                <li><a href="{:url('Showjoinin/index')}">{$Think.lang.tenants}</a></li>
+                                {/if}
+                                <li><a href="{:url('Sellerlogin/login')}">{$Think.lang.merchant_login}</a></li>
+                                {/if}
+                            </ol>
+                        </div>
+                    </li>
+                    <li>
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="{:url('Memberfavorites/fglist')}">{$Think.lang.ds_favorites}<b></b></a>
+                        <div class="dropdown-menu">
+                            <ol>
+                                <li><a href="{:url('Memberfavorites/fglist')}">{$Think.lang.ds_merchandise_collection}</a></li>
+                                <li><a href="{:url('Memberfavorites/fslist')}">{$Think.lang.ds_store_collect}</a></li>
+                            </ol>
+                        </div>
+                    </li>
+                    <li>
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="javascript:void(0)">{$Think.lang.ds_fast_nav}<b></b></a>
+                        <div class="dropdown-menu">
+                            <ol>
+                                {foreach $navs.header as $nav}
+                                <li>
+                                    <a href="{$nav.nav_url}" {if $nav.nav_new_open == 1}target="_blank"{/if}>{$nav.nav_title}</a>
+                                </li>
+                                {/foreach}
+                            </ol>
+                        </div>
+                    </li>
+                    <li class="moblie-qrcode">
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="javascript:void(0)">{$Think.lang.wechat_end}</a>
+                        <div class="dropdown-menu">
+                            <img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logowx)}" width="90" height="90" />
+                        </div>
+                    </li>
+                    <!--
+                    <li class="app-qrcode">
+                        <span class="outline"></span>
+                        <span class="blank"></span>
+                        <a href="javascript:void(0)">APP</a>
+                        <div class="dropdown-menu">
+                            <img width="90" height="90" src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logowx)}" />
+                            <h3>扫描二维码</h3>
+                            <p>下载手机客户端</p>
+                        </div>
+                    </li>
+                    -->
+                </ul>
+            </div>
+        </div>
+        
+        
+        
+        <!--左侧导航栏-->
+<div class="ds-appbar">
+    <div class="ds-appbar-tabs" id="appBarTabs">
+        {if session('is_login')}
+        <div class="user" dstype="a-barUserInfo">
+            <div class="avatar"><img src="{:get_member_avatar(session('avatar'))}?{$Think.TIMESTAMP}"/></div>
+            <p>{$Think.lang.sns_me}</p>
+        </div>
+        <div class="user-info" dstype="barUserInfo" style="display:none;"><i class="arrow"></i>
+            <div class="avatar"><img src="{:get_member_avatar(session('avatar'))}?{$Think.TIMESTAMP}"/></div>
+            <dl>
+                <dt>Hi, {:session('member_nickname')}</dt>
+                <dd>{$Think.lang.ds_current_level}:<strong dstype="barMemberGrade">{:session('level_name')}</strong></dd>
+                <dd>{$Think.lang.ds_current_experience}:<strong dstype="barMemberExp">{:session('member_exppoints')}</strong></dd>
+            </dl>
+        </div>
+       {else /}
+        <div class="user TA_delay" dstype="a-barLoginBox">
+            <div class="avatar TA"><img src="{:get_member_avatar(session('avatar'))}?{$Think.TIMESTAMP}"/></div>
+            <p class="TA">{$Think.lang.login_notlogged}</p>
+        </div>
+        {/if}
+        <ul class="tools">
+            {if $Think.config.ds_config.instant_message_open eq '1'}
+            <li><a href="javascript:void(0);" id="chat_show_user" class="chat TA_delay"><span class="iconfont">&#xe71b;</span><span class="tit">{$Think.lang.ds_chat}</span><i id="new_msg" class="new_msg" style="display:none;"></i></a></li>
+            {/if}
+            <li><a href="javascript:void(0);" onclick="toglle_bar('rtoolbar_cart')" id="rtoolbar_cart" class="cart TA_delay"><span class="iconfont">&#xe69a;</span><span class="tit">{$Think.lang.ds_cart}</span><i id="rtoobar_cart_count" class="new_msg" style="display:none;"></i></a></li>
+            <li><a href="javascript:void(0);" onclick="toglle_bar('compare')" id="compare" class="compare TA_delay"><span class="iconfont">&#xe74a;</span><span class="tit">{$Think.lang.ds_comparison}</span></a></li>
+            <li>
+                <a href="javascript:void(0);" id="qrcode" class="qrcode TA_delay"><span class="iconfont">&#xe72d;</span>
+                    <span class="tit-box">
+                        {$Think.lang.ds_mobile_shopping_better}<br>
+                        <img src="{$Think.HOME_SITE_URL}/qrcode?url={$Think.config.ds_config.h5_site_url}" width="110" height="110" />
+                        <em class="tips_arrow"></em>
+                    </span>
+                </a>
+            </li>
+            <li><a href="javascript:void(0);" onclick="$('html,body').animate({scrollTop: '0px'}, 500)" id="gotop" class="gotop TA_delay" style="position: fixed;bottom: 0"><span class="iconfont">&#xe724;</span><span class="tit">{$Think.lang.ds_top}</span></a></li>
+        </ul>
+        <div class="content-box" id="content-compare">
+            <div class="top">
+                <h3>{$Think.lang.ds_comparison}</h3>
+                <a href="javascript:void(0);" class="close iconfont" title="{$Think.lang.ds_hidden}">&#xe73d;</a></div>
+            <div id="comparelist"></div>
+        </div>
+        <div class="content-box" id="content-cart">
+            <div class="top">
+                <h3>{$Think.lang.ds_my_shopping_cart}</h3>
+                <a href="javascript:void(0);" class="close iconfont" title="{$Think.lang.ds_hidden}">&#xe73d;</a></div>
+            <div id="rtoolbar_cartlist"></div>
+        </div>
+    </div>
+</div>
+        
+<script type="text/javascript">
+
+    //动画显示边条内容区域
+    $(function() {
+        $(".close").click(function(){
+            close_bar();
+        });
+        // 右侧bar用户信息
+        $('div[dstype="a-barUserInfo"]').click(function(){
+            $('div[dstype="barUserInfo"]').toggle();
+        });
+        // 右侧bar登录
+        $('div[dstype="a-barLoginBox"]').click(function(){
+            login_dialog();
+        });
+
+        {if $cart_goods_num > 0}
+            $('#rtoobar_cart_count').html({$cart_goods_num}).show();
+        {/if}
+    });
+    function toglle_bar(item){
+           var member_id = "{:session('member_id')}";
+              if(member_id == ''){
+                   login_dialog();
+                  return;
+              }
+        //判断侧边栏是否已拉出
+        if(parseInt($('.ds-appbar').css('width')) == 36){
+            $('.ds-appbar').css('width','306px');
+        }
+        //判断选中项是否已显示
+        if(!$("#"+item).hasClass('active')){
+            $('.tools li > a').removeClass('active');
+            $("#"+item).addClass('active');
+            $('.content-box').removeClass('active');
+            
+            switch(item){
+                case 'rtoolbar_cart':
+                    $("#rtoolbar_cartlist").load("{:url('Cart/ajax_load',['type'=>'html'])}");
+                    $("#content-cart").addClass('active');
+                    break;
+                case 'compare':   
+                    loadCompare(false);
+                    $("#content-compare").addClass('active');
+                    break;
+            }
+        }else{
+            //关闭
+            close_bar();
+            $(".chat-list").css("display",'none');
+        }
+        
+    }
+    function close_bar(){
+        $('.tools li > a').removeClass('active');
+        $('.content-box').removeClass('active');
+        $('.ds-appbar').css('width','36px');
+    }
+</script> 

+ 231 - 0
app/home/view/default_back/base/member_header.html

@@ -0,0 +1,231 @@
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/member.css">
+<script src="{$Think.HOME_SITE_ROOT}/js/member.js"></script>
+<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.css">
+<div class="header clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+        <div class="top_search">
+            <div class="top_search_box">
+                <div id="search">
+                    <ul class="tab" dstype="{$Request.controller}">
+                        <li class="current"><span>{$Think.lang.site_search_goods}</span><i class="arrow"></i></li>
+                        <li style="display: none;"><span>{$Think.lang.site_search_store}</span></li>
+                    </ul>
+                </div>
+                <div class="form_fields">
+                    <form class="search-form" id="search-form" method="get" action="{:url('Search/index')}">
+                        <input placeholder="{$Think.lang.search_merchandise_keywords}" name="keyword" id="keyword" type="text" class="keyword" value="{$Request.param.keyword}" maxlength="60" />
+                        <input type="submit" id="button" value="{$Think.lang.ds_common_search}" class="submit">
+                    </form>
+                </div>
+            </div>
+            <ul class="top_search_keywords">
+                {foreach name="hot_search" item="hot_keyword" key="hot_k" }
+                <li {if $hot_k==0}class="first"{/if}><a href="{$Think.HOME_SITE_URL}/Search/index.html?keyword={$hot_keyword}">{$hot_keyword}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+        <div class="user_menu">
+            <dl class="my-mall">
+                <dt><span class="ico iconfont">&#xe702;</span>{$Think.lang.ds_user_center}<i class="arrow"></i></dt>
+                <dd>
+                    <div class="sub-title">
+                        <h4></h4>
+                        <a href="{:url('Member/index')}" class="arrow">{$Think.lang.ds_my_user_center}<i></i></a>
+                    </div>
+                    <div class="user-centent-menu">
+                        <ul>
+                            <li><a href="{:url('Membermessage/message')}">{$Think.lang.ds_message}(<span>{$message_num}</span>)</a></li>
+                            <li><a href="{:url('Memberorder/index')}" class="arrow">{$Think.lang.ds_my_order}<i></i></a></li>
+                            <li><a href="{:url('Memberconsult/index')}">{$Think.lang.ds_consulting_reply}(<span id="member_consult">0</span>)</a></li>
+                            <li><a href="{:url('Memberfavorites/fglist')}" class="arrow">{$Think.lang.ds_favorites}<i></i></a></li>
+                            <li><a href="{:url('Membervoucher/index')}">{$Think.lang.ds_vouchers}(<span id="member_voucher">0</span>)</a></li>
+                            <li><a href="{:url('Memberpoints/index')}" class="arrow">{$Think.lang.ds_my_points}<i></i></a></li>
+                        </ul>
+                    </div>
+                    <div class="browse-history">
+                        <div class="part-title">
+                            <h4>{$Think.lang.ds_recently_browsed_items}</h4>
+                            <span style="float:right;"><a href="{:url('Membergoodsbrowse/listinfo')}">{$Think.lang.ds_full_history}</a></span>
+                        </div>
+                        <ul>
+                            <li class="no-goods"><img class="loading" src="{$Think.HOME_SITE_ROOT}/images/loading.gif"></li>
+                        </ul>
+                    </div>
+                </dd>
+            </dl>
+            <dl class="my-cart">
+                <dt><span class="ico iconfont">&#xe69a;</span>{$Think.lang.ds_shopping_cart_settlement}<i class="arrow"></i></dt>
+                <dd>
+                    <div class="sub-title">
+                        <h4>{$Think.lang.ds_latest_additions}</h4>
+                    </div>
+                    <div class="incart-goods-box">
+                        <div class="incart-goods"><div class="no-order"><span>{$Think.lang.ds_shopping_cart_empty}</span></div></div>
+                    </div>
+                    <div class="checkout"> <span class="total-price"></span><a href="{:url('Cart/index')}" class="btn-cart">{$Think.lang.ds_checkout_cart}</a> </div>
+                </dd>
+                <div class="addcart-goods-num">{$cart_goods_num}</div>
+            </dl>
+        </div>
+    </div>
+</div>
+
+
+<div class="mall_nav">
+    <div class="w1200">
+        <div class="all_categorys">
+            <div class="mt">
+                <i></i>
+                <h3><a href="{:url('Category/goods')}">{$Think.lang.ds_all_commodity_classes}</a></h3>
+            </div>
+            <div class="mc">
+                <ul class="menu">
+                    {notempty name="header_categories"}
+                    {php}$i = 0;{/php}
+                    {foreach name="header_categories" item="val" key="key" }
+                    {php}$i++;{/php}
+                    <li cat_id="{$val.gc_id}" {if $i>11}style="display:none;"{/if}>
+                        <div class="class">
+                            <span class="arrow"></span>
+                            {notempty name="$val.gc_image"}
+                            <span class="ico"><img src="{:ds_get_pic(ATTACH_COMMON, $val.gc_image)}"></span>
+                            {else/}
+                            <span class="iconfont category-ico-{$i}"></span>
+                            {/notempty}
+                            <h4><a href="{:url('Search/index',['cate_id'=>$val.gc_id])}">{$val.gc_name}</a></h4>
+                        </div>
+                        <div class="sub-class" cat_menu_id="{$val.gc_id}">
+                            <div class="sub-class-content">
+                                <div class="recommend-class">
+                                    {notempty name="$val.cn_classs"}
+                                    {foreach name="$val.cn_classs" item="v" key="k" }
+                                    <span><a href="{:url('Search/index',['cate_id'=>$v.gc_id])}" title="{$v.gc_name}">{$v.gc_name}</a></span>
+                                    {/foreach}
+                                    {/notempty}
+                                </div>
+                                {notempty name="$val.class2"}
+                                {foreach name="$val.class2" item="v" key="k" }
+                                <dl>
+                                    <dt>
+                                    <h3><a href="{:url('Search/index',['cate_id'=>$v.gc_id])}">{$v.gc_name}</a></h3>
+                                    </dt>
+                                    <dd class="goods-class">
+                                        {notempty name="$v.class3"}
+                                        {foreach name="$v.class3" item="v3" key="k3" }
+                                        <a href="{:url('Search/index',['cate_id'=>$v3.gc_id])}">{$v3.gc_name}</a>
+                                        {/foreach}
+                                        {/notempty}
+                                    </dd>
+                                </dl>
+                                {/foreach}
+                                {/notempty}
+                            </div>
+                            <div class="sub-class-right">
+                                {notempty name="$val.cn_brands"}
+                                <div class="brands-list">
+                                    <ul>
+                                        {foreach name="$val.cn_brands" item="brand"}
+                                        <li>
+                                            <a href="{:url('Brand/brand_goods',['brand_id'=>$brand.brand_id])}" title="{$brand.brand_name}">{if ($brand['brand_pic'] != '')}<img src="{:brand_image($brand['brand_pic'])}"/>{/if}
+                                                <span>{$brand.brand_name}</span>
+                                            </a>
+                                        </li>
+                                       {/foreach}
+                                    </ul>
+                                </div>
+                                {/notempty}
+                                <div class="adv-promotions">
+                                    {if isset($val.goodscn_adv1) && $val.goodscn_adv1 != ''}
+                                    <a {if $val.goodscn_adv1_link == ''}href="javascript:;"{else/}target="_blank" href="{$val.goodscn_adv1_link}{/if}><img src="{$val.goodscn_adv1}" data-url="{$val.goodscn_adv1}" class="scrollLoading" /></a>
+                                    {/if}
+                                    {if isset($val.goodscn_adv2) && $val.goodscn_adv2 != ''}
+                                    <a {if $val.goodscn_adv2_link == ''}href="javascript:;"{else/}target="_blank" href="{$val.goodscn_adv2_link}{/if}><img src="{$val.goodscn_adv2}" data-url="{$val.goodscn_adv2}" class="scrollLoading" /></a>
+                                    {/if}
+                                </div>
+                            </div>
+                        </div>
+                    </li>
+                    {/foreach}
+                    {/notempty}
+                </ul>
+            </div>
+        </div>
+        <div class="nav_list">
+            <ul class="site_menu">
+                <li><a href="{:url('Index/index')}" class="current">{$Think.lang.homepage}</a></li>
+                {foreach $navs.middle as $nav}
+                <li><a href="{$nav.nav_url}" {if $nav.nav_new_open == 1}target="_blank"{/if}>{$nav.nav_title}</a></li>
+                {/foreach}
+            </ul>
+        </div>
+    </div>
+</div>
+
+
+
+
+
+<!--面包屑导航 BEGIN-->
+{notempty name="nav_link_list"}
+<div class="dsh-breadcrumb-layout">
+    <div class="dsh-breadcrumb w1200"><i class="iconfont">&#xe6ff;</i>
+        {foreach $nav_link_list as $nav_link} 
+        {empty name="nav_link.link"}
+        <span>{$nav_link.title}</span>
+        {else /}
+        <span><a href="{$nav_link.link}">{$nav_link.title}</a></span><span class="arrow">></span>
+        {/empty}
+        {/foreach}
+    </div>
+</div>
+{/notempty}
+<!--面包屑导航 END-->
+
+
+<script>
+    $(function() {
+	//首页左侧分类菜单
+	$(".all_categorys ul.menu").find("li").each(
+		function() {
+			$(this).hover(
+				function() {
+				    var cat_id = $(this).attr("cat_id");
+					var menu = $(this).find("div[cat_menu_id='"+cat_id+"']");
+					menu.show();
+					$(this).addClass("hover");					
+					var menu_height = menu.height();
+					if (menu_height < 60) menu.height(80);
+					menu_height = menu.height();
+					var li_top = $(this).position().top;
+					$(menu).css("top",-li_top + 40);
+				},
+				function() {
+					$(this).removeClass("hover");
+				    var cat_id = $(this).attr("cat_id");
+					$(this).find("div[cat_menu_id='"+cat_id+"']").hide();
+				}
+			);
+		}
+	);
+
+        $(".user_menu dl").hover(function() {
+            $(this).addClass("hover");
+        }, function() {
+            $(this).removeClass("hover");
+        });
+        $('.user_menu .my-mall').mouseover(function() {
+            // 最近浏览的商品
+            load_history_information();
+            $(this).unbind('mouseover');
+        });
+        $('.user_menu .my-cart').mouseover(function() {
+            // 运行加载购物车
+            load_cart_information();
+            $(this).unbind('mouseover');
+        });
+    });
+    
+</script>

+ 7 - 0
app/home/view/default_back/base/member_items.html

@@ -0,0 +1,7 @@
+{if $member_item}
+<ul class="tab pngFix">
+    {foreach name="member_item" item="item" }
+    <li {if condition="$item.name eq $curitem"}class="active"{/if}><a href="{$item.url}">{$item.text}</a></li>
+    {/foreach}
+</ul>
+{/if}

+ 18 - 0
app/home/view/default_back/base/member_left.html

@@ -0,0 +1,18 @@
+<div class="left-layout">
+    <div class="dsm-sidebar">
+        {foreach name="member_menu" item="menu" }
+        <div class="dl">
+            <div class="dt">
+                <h3 key="{$menu.name}"><i class="iconfont">{$menu.ico|raw}</i>{$menu.text}</h3>
+            </div>
+            <div class="dd">
+                <ul>
+                    {foreach name="menu.submenu" item="submenu" }
+                    <li {if condition="$submenu.name eq $cursubmenu"}class="selected"{/if}><a href="{$submenu.url}">{$submenu.text}</a></li>
+                    {/foreach}
+                </ul>
+            </div>
+        </div>
+        {/foreach}
+    </div>
+</div>

+ 7 - 0
app/home/view/default_back/base/seller_items.html

@@ -0,0 +1,7 @@
+{notempty name="seller_item"}
+<ul>
+    {foreach name="seller_item" item="item" }
+    <li {if condition="$item.name eq $curitem"}class="current"{/if}><a href="{$item.url}">{$item.text}</a></li>
+    {/foreach}
+</ul>
+{/notempty}

+ 37 - 0
app/home/view/default_back/base/seller_left.html

@@ -0,0 +1,37 @@
+<div class="seller_left">
+    <div class="seller_left_1">
+        <div class="logo">
+            <a href="{:url('Seller/index')}">
+                <img src="{if $Think.config.ds_config.seller_center_logo == ''}{$Think.BASE_SITE_ROOT}/uploads/home/common/seller_center_logo.png{else}{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.seller_center_logo)}{/if}"/>
+            </a>
+        </div>
+        <div class="sidebar">
+            <a href="{:url('Store/index',['store_id'=>session('store_id')])}" target="_blank"><i class="iconfont">&#xe6da;</i>{$Think.lang.ds_mystroe}</a>
+            {if $Think.config.ds_config.instant_message_open eq '1'}
+            <a href="javascript:void(0);" id="chat_show_user"><i class="iconfont">&#xe71b;</i>{$Think.lang.ds_chat}</a>
+            {/if}
+            {foreach name="seller_menu" item="menu"  key="menu_key"}
+            <a href="{$menu.url}" {if $menu_key eq $curmenu}class="active"{/if}><i class="iconfont">{$menu.ico|raw}</i>{$menu.text}</a>
+            {/foreach}
+        </div>
+        <div class="mb">
+            <a href="{:url('Sellerlogin/logout')}">{$Think.lang.exit}</a>
+        </div>
+    </div>
+    <div class="seller_left_2">
+        <div class="mt">
+            {foreach name="seller_menu" item="menu"  key="menu_key"}
+            {if $menu_key eq $curmenu}{$menu.text}{/if}
+            {/foreach}
+        </div>
+        <div class="mc">
+            {foreach name="seller_menu" item="menu"  key="menu_key"}
+            {if $menu_key eq $curmenu}
+            {foreach name="menu.submenu" item="submenu" }
+            <a href="{$submenu.url}" {if condition="$submenu.name eq $cursubmenu"}class="active"{/if}>{$submenu.text}</a>
+            {/foreach}
+            {/if}
+            {/foreach}
+        </div>
+    </div>
+</div>

+ 34 - 0
app/home/view/default_back/base/seller_top.html

@@ -0,0 +1,34 @@
+<!doctype html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <title>{if isset($html_title) && $html_title}{$html_title}{else}{$Think.lang.store_callcenter}{/if}</title>
+        <meta name="renderer" content="webkit|ie-comp|ie-stand">
+        <meta name="keywords" content="{$seo_keywords|default=''}" />
+        <meta name="description" content="{$seo_description|default=''}" />
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/common.css">
+        <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/seller.css">
+        <link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.css">
+        <script>
+            var BASESITEROOT = "{$Think.BASE_SITE_ROOT}";
+            var HOMESITEROOT = "{$Think.HOME_SITE_ROOT}";
+            var BASESITEURL = "{$Think.BASE_SITE_URL}";
+            var HOMESITEURL = "{$Think.HOME_SITE_URL}";
+        </script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery-2.1.4.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery-ui.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui/jquery.ui.datepicker-zh-CN.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/common.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/jquery.validate.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/additional-methods.min.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/layer/layer.js"></script>
+        <script src="{$Think.HOME_SITE_ROOT}/js/member.js"></script>
+        <script src="{$Think.PLUGINS_SITE_ROOT}/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
+        <script>
+            jQuery.browser={};(function(){jQuery.browser.msie=false; jQuery.browser.version=0;if(navigator.userAgent.match(/MSIE ([0-9]+)./)){ jQuery.browser.msie=true;jQuery.browser.version=RegExp.$1;}})();
+        </script>
+    </head>
+    <body>
+        <div id="append_parent"></div>
+        <div id="ajaxwaitid"></div>
+        

+ 147 - 0
app/home/view/default_back/base/store_header.html

@@ -0,0 +1,147 @@
+        <link rel="stylesheet" href="{$Think.BASE_SITE_ROOT}/static/home/default/store/styles/default/css/base.css">
+        <link rel="stylesheet" href="{$Think.BASE_SITE_ROOT}/static/home/default/store/styles/default/css/shop.css">
+        <div class="header">
+            <div class="w1200">
+                    <div class="logo store_logo_wrap">
+                        <a href="{:url('Index/index')}">
+                            <img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/>
+                        </a>
+                        <a class="store_logo" href="{:url('Store/index',['store_id'=>$store_info.store_id])}">
+                            <img src="{:get_store_logo($store_info['store_avatar'],'store_avatar')}" alt="{$store_info.store_name}" title="{$store_info.store_name}" />
+                        </a>
+                        <div class="shop_info">
+                            <div class="shop_name">{$store_info.store_name}</div>
+                            <div class="shop_main">
+                                    <ul >
+                                        {notempty name="store_info.store_credit"}
+                                        {foreach name="store_info.store_credit" item="value"}
+                                        <li>
+                                            <p>{$value.text}</p><span class="credit">{$value.credit} {$Think.lang.credit_unit}</span>
+                                        </li>
+                                        {/foreach}
+                                        {/notempty}
+                                    </ul>
+                            </div>
+                            <div class="triangle"><i></i></div>
+                            <div class="extra-info clearfix">
+                                <div class="left">
+                                    <div class="shop-collect">
+                                        <div class="shop_logo"> <img src="{:get_store_logo($store_info['store_avatar'],'store_avatar')}" alt="{$store_info.store_name}" title="{$store_info.store_name}" /></div>
+                                        <a class="collect-btn" href="javascript:collect_store('{$store_info.store_id}','count','store_collect')" >{$Think.lang.ds_collect}</a>
+                                    </div>
+                                    <div class="shop-qr-code">
+                                        <img src="{$Think.HOME_SITE_URL}/qrcode?url={$Think.config.ds_config.h5_site_url}/home/storedetail?id={$store_info.store_id}">
+                                    </div>
+                                </div>
+                                <div class="right">
+                                    <div class="dss-detail-rate">
+                                        <h4>{$Think.lang.ds_dynamic_evaluation}</h4>
+                                        <ul>
+                                            {notempty name="store_info.store_credit"}
+                                            {foreach name="store_info.store_credit" item="value"}
+                                            <li> {$value.text}:<span class="credit">{$value.credit} {$Think.lang.credit_unit}</span>
+                                            {/foreach}
+                                            {/notempty}
+                                        </ul>
+                                    </div>
+                                    <div class="extend ">
+                                        <h4>{$Think.lang.shop_service}</h4>
+                                        <dl class="no-border">
+                                            <dt class="fl"><span class="t_adjust">{$Think.lang.seller_name}</span><span>:</span></dt>
+                                            <dd class="fl">{$store_info.seller_name}</dd>
+                                        </dl>
+                                        <dl class="no-border">
+                                            <dt class="fl"><span class="t_adjust">{$Think.lang.company_name}</span><span>:</span></dt>
+                                            <dd class="fl">{$store_info.store_company_name}</dd>
+                                        </dl>
+                                        <dl class="no-border">
+                                            <dt class="fl"><span class="t_adjust">{$Think.lang.ds_srore_location}</span><span>:</span></dt>
+                                            <dd class="fl">{$store_info.area_info}</dd>
+                                        </dl>
+                                        {notempty name="store_info.store_phone"}
+                                        <dl class="no-border">
+                                            <dt class="fl"><span class="t_adjust">{$Think.lang.phone_space}</span><span>:</span></dt>
+                                            <dd class="fl">{$store_info.store_phone}</dd>
+                                        </dl>
+                                        {/notempty}
+                                        <dl>
+                                            <dt class="fl"><span class="t_adjust">{$Think.lang.business_licence_number_electronic}</span><span>:</span></dt>
+                                            <dd class="fl">
+                                                {if !$store_info.is_platform_store}
+                                                {if $store_info.business_licence_number_electronic}
+                                                <a href="{$store_info.business_licence_number_electronic}" target="_blank">{$Think.lang.ds_view}</a>
+                                                {/if}
+                                                {else}
+                                                {if $Think.config.ds_config.business_licence}
+                                                <a href="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.business_licence)}" target="_blank">{$Think.lang.ds_view}</a>
+                                                {/if}
+                                                {/if}
+                                            </dd>
+                                        </dl>
+                                    </div>
+
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div id="search" class="head-search-bar">
+                        <form class="search-form" id="store_search_form" method="get" action="{:url('Store/goods_all')}">
+                            <input type="hidden" value="{$Request.param.store_id}" name="store_id">
+                            <input placeholder="{$Think.lang.search_merchandise_keywords}" name="inkeyword" id="keyword" type="text" class="input-text" value="{$Request.param.inkeyword}" maxlength="60" />
+                            <a href="javascript:$('#store_search_form').submit()" class="input-submit shop">{$Think.lang.search_shop}</a>
+                            <a href="javascript:void(0)" class="input-submit all">{$Think.lang.search_all}</a>
+                        </form>
+                    </div>
+            </div>
+        </div>
+        <div class="banner" style="background-image: url({if $store_info['store_banner']}{:get_store_logo($store_info['store_banner'],'store_banner')}{else}{$Think.BASE_SITE_ROOT}/static/home/default/store/styles/default/images/header.jpg{/if})">
+            <div class="w1200"></div>
+        </div>
+        <div class="dss-nav">
+            <div class="w1200">
+                <ul>
+                    <li><a href="{:url('Store/index',['store_id'=>$store_info.store_id])}"><span>{$Think.lang.ds_store_index}<i></i></span></a></li>
+                    <li><a href="{:url('Store/goods_all',['store_id'=>$store_info.store_id])}"><span>{$Think.lang.ds_whole_goods}<i></i></span></a></li>
+                    <li><a href="{:url('Storesnshome/index',['sid'=>$store_info.store_id])}"><span>{$Think.lang.ds_store_the_dynamic}<i></i></span></a></li>
+                    {notempty name="store_navigation_list"}
+                    {foreach name="store_navigation_list" item="value" }
+                    {if $value.storenav_url != ''}
+                    <li class=""><a href="{$value.storenav_url}"><span>{$value.storenav_title}<i></i></span></a></li>
+                    {else/}
+                    <li class=""><a href="{:url('Store/article',['store_id'=>$store_info.store_id,'storenav_id'=>$value.storenav_id])}"><span>{$value.storenav_title}<i></i></span></a></li>
+                    {/if}
+                    {/foreach}
+                    {/notempty}
+                </ul>
+            </div>
+        </div>
+        
+
+        
+        <!--面包屑导航 BEGIN-->
+        {notempty name="nav_link_list"}
+        <div class="dsh-breadcrumb-layout">
+            <div class="dsh-breadcrumb w1200"><i class="iconfont">&#xe6ff;</i>
+                {foreach $nav_link_list as $nav_link} 
+                {empty name="nav_link.link"}
+                <span>{$nav_link.title}</span>
+                {else /}
+                <span><a href="{$nav_link.link}">{$nav_link.title}</a></span><span class="arrow">></span>
+                {/empty}
+                {/foreach}
+            </div>
+        </div>
+        {/notempty}
+        <!--面包屑导航 END-->
+        <script>
+            $(".head-search-bar .all").click(function(){
+                var url = HOMESITEURL+"/Search/index";
+                $("#store_search_form").attr('action',url);
+                $("#store_search_form").submit();
+            })
+        </script>
+
+        
+
+
+

+ 25 - 0
app/home/view/default_back/mall/activity/activity_index.html

@@ -0,0 +1,25 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_activity.css">
+<div class="dsh-activity-banner"></div>
+<div class="dsh-activity-index w1200 mt20 mb20">
+    <ul class="activity-list">
+        {foreach name="activity_list" item="activity"}
+        <li>
+            <div class="p_img">
+                <a href="{:url('Activity/detail',['activity_id'=>$activity.activity_id])}">
+                    <img src="{:ds_get_pic(ATTACH_ACTIVITY,$activity.activity_banner)}"/>
+                </a>
+            </div>
+            <div class="p_info">
+                <span class="p_name">{$activity.activity_title}</span>
+                <span class="p_time"><i class="iconfont">&#xe736;</i>{$activity.activity_startdate|date='Y-m-d'} {$Think.lang.activity_to} {$activity.activity_enddate|date='Y-m-d'}</span>
+            </div>
+        </li>
+        {/foreach}
+    </ul>
+    {$show_page|raw}
+</div>
+
+
+{/block}

+ 47 - 0
app/home/view/default_back/mall/activity/activity_show.html

@@ -0,0 +1,47 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+{notpresent name='editable_page'}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_activity.css">
+<div class="dsh-activity">
+    <div class="activity_detail" style="background-image: url({:ds_get_pic(ATTACH_ACTIVITY,$activity.activity_banner)})">
+        <div class="p_info">
+            <p class="p_name">{$activity.activity_title}</p>
+            <p class="p_time">{$activity.activity_startdate|date='Y-m-d'} {$Think.lang.activity_to} {$activity.activity_enddate|date='Y-m-d'}</p>
+            <p class="p_desc">{$activity.activity_desc}</p>
+        </div>
+    </div>
+    <div class="activity_show" id="sale">
+        {notempty name="activitydetail_list"}
+        <ul class="list_pic">
+            {foreach name="activitydetail_list" item="v"}
+            <li>
+                <dl>
+                    <dt><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank"><img src="{:goods_thumb($v, 240);}"/></a></dt>
+                    <dd class="p_name"><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank" title="{$v.goods_name}">{$v.goods_name}</a></dd>
+                    <dd class="p_info">
+                        <span class="p_price">{:ds_price_format_forlist($v['goods_price'])}</span>
+                        <a class="p_buy" href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank">{$Think.lang.activity_buy_now}</a>
+                    </dd>
+                </dl>
+            </li>
+            {/foreach}
+        </ul>
+        {$show_page|raw}
+        {/notempty}
+    </div>
+</div>
+{else}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/editable_page.css">
+{foreach name='config_list' item='item' key='key'}
+<div data-type="html" data-id="{$key+1}">{$item.html|raw}</div>
+{/foreach}
+<script>
+    {foreach name='config_list' item='item' key='key'}
+    if(typeof(window['loadHtml{$item.val.editable_page_model_id}'])!='undefined'){
+        window['loadHtml{$item.val.editable_page_model_id}']($('*[data-type="html"][data-id={$key+1}]'))
+    }
+    {/foreach}
+</script>
+{/notpresent}
+{/block}

+ 84 - 0
app/home/view/default_back/mall/article/article_list.html

@@ -0,0 +1,84 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<div class="w1200">
+<div class="dsh-container wrapper">
+  <div class="left">
+    <div class="dsh-module dsh-module-style01">
+      <div class="title">
+        <h3>{$Think.lang.article_article_article_class}</h3>
+      </div>
+      <div class="content">
+        <ul id="files" class="tree">
+          {foreach name="sub_class_list" item="value"}
+          <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Article/index',['ac_id'=>$value.id])}" {if condition="$value.id eq $Request.param.ac_id"}class="selected"{/if}>{$value.value}</a>
+            {notempty name="$value.children"}
+            <ul>
+              {foreach name="$value.children" item="val"}
+              <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Article/index',['ac_id'=>$val.id])}" {if condition="$val.id eq $Request.param.ac_id"}class="selected"{/if}>{$val.value}</a>
+              </li>
+              {/foreach}
+            </ul>
+            {/notempty}
+          </li>
+          {/foreach}
+        </ul>
+      </div>
+    </div>
+    <div class="dsh-module dsh-module-style03">
+      <div class="title">
+        <h3>{$Think.lang.article_article_new_article}</h3>
+      </div>
+      <div class="content">
+        <ul class="dsh-sidebar-article-list">
+          {notempty name="new_article_list"}
+          {foreach name="new_article_list" item="v"}
+          <li><i class="iconfont">&#xe687;</i>
+            <a {if $v.article_url !=''}target="_blank"{/if}
+              href="{if $v.article_url != ''}{$v.article_url}{else /}{:url('Article/show',['article_id'=>$v.article_id])}{/if}">{$v.article_title}
+            </a>
+          </li>
+           {/foreach}
+            {else /}
+            <li>{$Think.lang.article_article_no_new_article}</li>
+            {/notempty}
+        </ul>
+      </div>
+    </div>
+  </div>
+  <div class="right">
+    <div class="dsh-article-con">
+      <div class="title-bar">
+        <h3>{$class_name}</h3>
+      </div>
+      {notempty name="article"}
+        <ul class="dsh-article-list">
+          {foreach name="article" item="article"}
+            <li><i></i>
+              <a {if $article.article_url !=""}target="_blank"{/if}
+                href="{if $article.article_url !=""}{$article.article_url}{else /}{:url('Article/show',['article_id'=>$article.article_id])}{/if} ">
+              {$article.article_title}
+              </a>
+                <time>{:date('Y-m-d H:i',$article.article_time)}</time>
+            </li>
+            {/foreach}
+      </ul>
+       {else /}
+        <div>{$Think.lang.article_article_not_found}</div>
+     {/notempty}
+    </div> <div class="tc mb20">  <div class="pagination"> {$show_page|raw} </div></div>
+  </div>
+</div>
+</div>
+
+<script src="{$Think.HOME_SITE_ROOT}/js/search_category_menu.js"></script>
+<script>
+$(function(){
+    $('#files').tree({
+        expanded: 'li:lt(2)'
+    });
+})  
+</script>
+
+{/block}

+ 90 - 0
app/home/view/default_back/mall/article/article_show.html

@@ -0,0 +1,90 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<div class="w1200">
+  <div class="dsh-container wrapper">
+  <div class="left">
+    <div class="dsh-module dsh-module-style01">
+      <div class="title">
+        <h3>{$Think.lang.article_article_article_class}</h3>
+      </div>
+      <div class="content">
+        <ul id="files" class="tree">
+          {foreach name="sub_class_list" item="value"}
+          <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Article/index',['ac_id'=>$value.id])}" {if condition="$value.id eq $Request.param.ac_id"}class="selected"{/if}>{$value.value}</a>
+            {notempty name="$value.children"}
+            <ul>
+              {foreach name="$value.children" item="val"}
+              <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Article/index',['ac_id'=>$val.id])}" {if condition="$val.id eq $Request.param.ac_id"}class="selected"{/if}>{$val.value}</a>
+              </li>
+              {/foreach}
+            </ul>
+            {/notempty}
+          </li>
+          {/foreach}
+        </ul>
+      </div>
+    </div>
+    <div class="dsh-module dsh-module-style03">
+      <div class="title">
+        <h3>{$Think.lang.article_article_new_article}</h3>
+      </div>
+      <div class="content">
+        <ul class="dsh-sidebar-article-list">
+          {notempty name="new_article_list"}
+          {foreach name="new_article_list" item="v"}
+          <li><i class="iconfont">&#xe687;</i>
+            <a {if $v.article_url !=""}target="_blank"{/if} href="{if $v.article_url != ''} {$v.article_url}{else /} {:url('Article/show',['article_id'=>$v.article_id])}{/if}">
+            {$v.article_title}
+            </a>
+          </li>
+         {/foreach}
+          {else /}
+          <li>{$Think.lang.article_article_no_new_article}</li>
+         {/notempty}
+        </ul>
+      </div>
+    </div>
+  </div>
+  <div class="right">
+    <div class="dsh-article-con">
+      <h1>{$article.article_title}</h1>
+      <h2>{:date('Y-m-d H:i',$article.article_time)}</h2>
+      <div class="default">
+        <p>{:htmlspecialchars_decode($article.article_content)}</p>
+      </div>
+      <div class="more_article">
+        <span class="fl">{$Think.lang.article_show_previous}:
+          {notempty name="pre_article"}
+        <a {if $pre_article.article_url !=""}target="_blank"{/if} href="{if $pre_article.article_url !=''}{$pre_article.article_url}{else /}{:url('Article/show',['article_id'=>$pre_article.article_id])}{/if}">
+          {$pre_article.article_title}
+          </a>
+          <time>{:date('Y-m-d H:i',$pre_article.article_time)}</time>
+        {else /}
+        {$Think.lang.article_article_not_found}
+       {/notempty}
+        </span> <span class="fr">{$Think.lang.article_show_next}:
+        {notempty name="next_article"}
+        <a {notempty name="next_article.article_url"}target="_blank"{/notempty} href="{notempty name="next_article.article_url"}{$next_article.article_url}{else /}{:url('Article/show',['article_id'=>$next_article.article_id])}{/notempty} ">{$next_article.article_title}</a>
+        <time>{:date('Y-m-d H:i',$next_article.article_time)}</time>
+        {else /}
+        {$Think.lang.article_article_not_found}
+        {/notempty}
+        </span>
+      </div>
+    </div>
+  </div>
+</div>
+</div>
+
+<script src="{$Think.HOME_SITE_ROOT}/js/search_category_menu.js"></script>
+<script>
+$(function(){
+    $('#files').tree({
+        expanded: 'li:lt(2)'
+    });
+})  
+</script>
+
+
+{/block}

+ 119 - 0
app/home/view/default_back/mall/brand/brand_goods.html

@@ -0,0 +1,119 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<script>
+var PURL = [{$purl|default=''}];
+</script>
+<script src="{$Think.HOME_SITE_ROOT}/js/search_goods.js"></script>
+
+<div class="dsh-container wrapper">
+  <div class="left">
+    <div class="dsh-module dsh-module-style01">
+      <div class="title">
+        <h3>{$Think.lang.brand_index_recommend_brand}</h3>
+      </div>
+      <div class="content">
+          {notempty name="brand_r"}
+          <ul class="dsh-sidebar-brand">
+              {foreach $brand_r as $brand} 
+              <li class="picture">
+                  <a href="{:url('Brand/brand_goods',['brand_id'=>$brand.brand_id])}" target="_blank">
+                      <span class="brand-logo"><img src="{:brand_image($brand.brand_pic)}" /></span> 
+                      <span class="brand-name">{$brand.brand_name}</span>
+                  </a>
+              </li>
+              {/foreach}
+          </ul>
+          {/notempty}
+      </div>
+    </div>
+    <!-- 浏览历史 -->
+    <div class="dsh-module dsh-module-style03">
+      <div class="title">
+        <h3>{$Think.lang.brand_index_viewed_goods}</h3>
+      </div>
+      <div class="content">
+        <div class="dsh-sidebar-viewed" id="dshSidebarViewed">
+          <ul>
+           {notempty name="viewed_goods"}
+           {foreach name="viewed_goods" item="v"}
+            <li>
+              <div class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}"><img  class="lazyload"  data-original="{:goods_thumb($v,240);}" title="{$v.goods_name}" alt="{$v.goods_name}" ></a></div>
+              <dl>
+                <dt><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}">{$v.goods_name}</a></dt>
+                <dd>{$Think.lang.currency}{$v.goods_promotion_price}</dd>
+              </dl>
+            </li>
+            {/foreach}
+          {/notempty}
+          </ul>
+        </div>
+        <a href="{:url('Membergoodsbrowse/listinfo')}" class="dsh-sidebar-all-viewed">{$Think.lang.brand_full_browsing_history}</a> </div>
+    </div>
+  </div>
+    
+  <div class="right">
+    <div class="shop_con_list" id="main-nav-holder">
+      <nav class="sort-bar" id="main-nav">
+        <div class="dsh-sortbar-array"> {$Think.lang.brand_sort_mode}
+            <ul>
+                <li {if $Request.param.key neq ''}class="selected"{/if}><a href="{:dropParam(array('order', 'key'))}"  class="nobg" title="{$Think.lang.brand_index_default_sort}">{$Think.lang.brand_index_default}</a></li>
+                <li {if $Request.param.key eq '1'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='1'}{:replaceParam(array('key' => '1', 'order' => '1'))}{else/}{:replaceParam(array('key' => '1', 'order' => '2'))}{/if}" {if $Request.param.key=='1'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.brand_index_sold}<i></i></a></li>
+                <li {if $Request.param.key eq '2'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='2'}{:replaceParam(array('key' => '2', 'order' => '1'))}{else/}{:replaceParam(array('key' => '2', 'order' => '2'))}{/if}" {if $Request.param.key=='2'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.brand_index_click}<i></i></a></li>
+                <li {if $Request.param.key eq '3'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='3'}{:replaceParam(array('key' => '3', 'order' => '1'))}{else/}{:replaceParam(array('key' => '3', 'order' => '2'))}{/if}" {if $Request.param.key=='3'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.brand_index_price}<i></i></a></li>
+            </ul>
+        </div>
+        <div class="dsh-sortbar-owner"><span><a href="{if $Request.param.type == 1}{:dropParam(array('type'))}{else/}{:replaceParam(array('type' => '1'))}{/if}" {if $Request.param.type ==1}class="selected"{/if}><i></i>{$Think.lang.brand_platform_proprietary}</a></span></div>
+        <div class="dsh-sortbar-owner"><span><a href="{if $Request.param.gift == 1}{:dropParam(array('gift'))}{else/}{:replaceParam(array('gift' => '1'))}{/if}" {if $Request.param.gift ==1}class="selected"{/if}><i></i>{$Think.lang.brand_giveaway}</a></span></div>
+        <div class="dsh-sortbar-location">{$Think.lang.brand_commodity_location}
+            <div class="select-layer">
+                <div class="holder"><em ds_type="area_name">{$Think.lang.brand_index_area}<!-- 所在地 --></em></div>
+                <div class="selected"><a ds_type="area_name">{$Think.lang.brand_index_area}<!-- 所在地 --></a></div>
+                <i class="direction"></i>
+                <ul class="options">
+                    {include file="default/base/home/goods_class_area" /}
+                </ul>
+            </div>
+        </div>
+      </nav>
+        
+        
+      <!-- 商品列表循环  -->
+      {include file="default/base/home/goods_squares" /}
+      
+      
+      <div class="tc mt20 mb20">
+        <div class="pagination">{$show_page|raw}</div>
+      </div>
+    </div>
+
+    <!-- 猜你喜欢 -->
+    <div id="guesslike_div" style="width:980px;"></div>
+  </div>
+</div>
+<script src="{$Think.HOME_SITE_ROOT}/js/waypoints.js"></script>
+<script>
+$(function(){
+ //浮动导航  waypoints.js
+    $('#main-nav-holder').waypoint(function(event, direction) {
+        $(this).parent().toggleClass('sticky', direction === "down");
+        event.stopPropagation();
+    });
+    //浏览历史处滚条
+	$('#dshSidebarViewed').perfectScrollbar();
+  	//猜你喜欢
+	$('#guesslike_div').load("{:url('Search/get_guesslike')}", function(){
+        $(this).show();
+    });
+});
+<?php if(intval(input('get.area_id')) > 0){?>
+$(function(){
+    // 选择地区后的地区显示
+    $('[ds_type="area_name"]').html('<?php echo $area_name; ?>');
+});
+<?php }?>
+</script>
+
+
+{/block}

+ 72 - 0
app/home/view/default_back/mall/brand/index.html

@@ -0,0 +1,72 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<div class="w1200">
+    
+    <div class="dsh-recommend-borand">
+        <h2 class='title'><p>{$Think.lang.brand_index_recommend_brand}</p></h2>
+        <div class="dsh-barnd-list">
+            <ul>
+                {foreach name="brand_r" item="brand"}
+                <li>
+                    <dl>
+                        <dt><a href="{:url('Brand/brand_goods',array('brand_id'=>$brand.brand_id))}"><img class="lazyload" data-original="{:brand_image($brand.brand_pic)}" alt="{$brand.brand_name}"/></a></dt>
+                        <dd><a href="{:url('Brand/brand_goods',array('brand_id'=>$brand.brand_id))}"></a>{$brand.brand_name}</dd>
+                    </dl>
+                </li>
+                {/foreach}
+            </ul>
+        </div>
+    </div>
+    <div class="dsh-brand-class">
+        <div class="dsh-brand-class-tab">
+            <ul class="tabs-nav">
+                {foreach name="brand_class" item="brand"}
+                <li class="{empty name='brand_index0'}tabs-selected{/empty}">
+                    <a title="{$brand.brand_class}" href="javascript:void(0)">{$brand.brand_class}</a>
+                </li>
+                {assign name="brand_index0" value="1" /}
+                {/foreach}
+            </ul>
+        </div>
+        {foreach name="brand_c" item="b_c"}
+        <div class="dsh-barnd-list tabs-panel {notempty name='brand_index'}tabs-hide{/notempty}">
+            <ul>
+                {notempty name="b_c.image"}
+                {foreach name="b_c.image" item="brand"}
+                <li>
+                    <dl>
+                        <dt><a href="{:url('Brand/brand_goods',array('brand_id'=>$brand.brand_id))}"><img class="lazyload" data-original="{:brand_image($brand.brand_pic)}"></a></dt>
+                        <dd><a href="{:url('Brand/brand_goods',array('brand_id'=>$brand.brand_id))}">{$brand.brand_name}</a></dd>
+                    </dl>
+                </li>
+                {/foreach}
+                {/notempty}
+            </ul>
+            {notempty name="b_c.text"}
+            <div class="dsh-barnd-list-text"><strong>{$Think.lang.brand_more_brands}:</strong>
+                {foreach name="b_c.text" item="brand"}
+                <a href="{:url('Brand/brand_goods',array('brand_id'=>$brand.brand_id))}">{$brand.brand_name}</a>
+                {/foreach}
+            </div>
+            {/notempty}
+        </div>
+        {assign name="brand_index" value="1" /}
+        {/foreach}
+    </div>
+</div>
+<script>
+    $(".tabs-nav > li > a").on('click', function() {
+            var tabs = $(this).parents('ul:first').children("li");
+            var panels = $(this).parents('.dsh-brand-class:first').children(".tabs-panel");
+            var index = $.inArray(this, $(this).parents('ul:first').find("a"));
+            if (panels.eq(index)[0]) {
+                tabs.removeClass("tabs-selected").eq(index).addClass("tabs-selected");
+                panels.addClass("tabs-hide").eq(index).removeClass("tabs-hide");
+            }
+    });
+</script>
+
+
+{/block}

+ 31 - 0
app/home/view/default_back/mall/category/goods_category.html

@@ -0,0 +1,31 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<div class="dsh-container wrapper">
+   
+    <div class="all-warpper">
+        {notempty name='header_categories'}  
+        {foreach $header_categories as $gc_list}  
+        <div class="all-category-floor" id='cate-{$gc_list.gc_id}'>
+            <div class="floor-top">
+                <div class="title"><a class="iconfont toggle" onclick='$(this).parents(".all-category-floor").find(".floor-bot").toggle();$(this).toggleClass("active")'>&#xe689;</a><a href="{:url('Search/index',['cate_id'=>$gc_list.gc_id])}">{$gc_list.gc_name}</a></div>
+            </div>
+            {notempty name='gc_list.class2'}  
+            <div class="floor-bot">
+                <div class="floor-category-list"> 
+                    {foreach $gc_list.class2 as $gc_list2}  
+                    <dl>
+                        <dt> <a href="{:url('Search/index',['cate_id'=>$gc_list2.gc_id])}" target="_blank"><i>{if $gc_list2.gc_image}<img src='{:ds_get_pic(ATTACH_COMMON,$gc_list2.gc_image)}'>{else}<span class="iconfont">&#xe709;</span>{/if}</i><p>{$gc_list2.gc_name}</p></a> </dt>
+                    </dl>
+                    {/foreach}
+                </div>
+            </div>
+            {/notempty}
+        </div>
+        {/foreach}
+        {/notempty}
+    </div>
+</div>
+
+{/block}
+

+ 24 - 0
app/home/view/default_back/mall/category/store_category.html

@@ -0,0 +1,24 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<div class="w1200">
+    
+    <div class="all-category-items">
+        <ul>
+            {notempty name='sc_list'}  
+            {foreach $sc_list as $sc}  
+            <li class="category-list"> <a href="{:url('Storelist/index',['cate_id'=>$sc.storeclass_id])}">{$sc.storeclass_name}</a> </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+    
+</div>
+
+
+
+{/block}
+
+
+

+ 143 - 0
app/home/view/default_back/mall/compare/compare.html

@@ -0,0 +1,143 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<div class="w1200">
+
+    <div class="dsh-container mt10 mb10">
+        <div class="dsh-compare-title">{$Think.lang.comparison_basic_information}</div>
+        {if $compare_list}
+        <table class="dsh-compare-table">
+            {foreach name="compare_list" item="v"}
+            <!-- 显示商品图片及名称 -->
+            {if $v.key == 'goodsinfo'}
+            <tr id="comparetr_{$key}" class="goods_tr">
+                <th>{$v.name}</th>
+                {for start="0" end="$maxnum"}
+                {if $v[$i]}
+                <td>
+                    <dl class="goods-info">
+                    <dt class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$v[$i]['goods_id']])}" target="_blank"><img src="{:goods_cthumb($v[$i]['goods_image'],240,$v[$i]['store_id'])}"></a></dt>
+                    <dd class="goods-name"><a href="{:url('Goods/index',['goods_id'=>$v[$i]['goods_id']])}" target="_blank">{$v[$i]['goods_name']}</a></dd>
+                    {if $i>0}
+                    <dd class="del" onclick="javascript:delCompare({$v[$i]['goods_id']},'info');"><i class="iconfont">&#xe725;</i>{$Think.lang.compare_delete}</dd>
+                    {/if}
+                </dl>
+                </td>
+                {else /}
+                <td><div class="no-compare">
+                    <h3>{$Think.lang.no_comparison_term}</h3>
+                    <a href="{:url('Search/index',['cate_id'=>$cate_id])}" title="" target="_blank">{$Think.lang.compare_add}</a></div></td>
+                {/if}
+                {/for}
+            </tr>
+            {/if}
+            <!-- 显示商品价格 -->
+            {if $v.key == 'goodsprice'}
+            <tr id="comparetr_{$key}">
+                <th>{$v.name}</th>
+                {for start="0" end="$maxnum"}
+                <td><div class="goods-price">{$v[$i]?$Think.lang.currency.$v[$i]:''}&nbsp;</div></td>
+                {/for}
+            </tr>
+            {/if}
+            <!-- 显示品牌 -->
+            {if $v.key == 'brand'}
+            <tr id="comparetr_{$key}">
+                <th>{$v.name}</th>
+                {for start="0" end="$maxnum"}
+                <td>{if is_array($v[$i])}{$v[$i]['brand_name']}{else/}{$v[$i]}{/if}&nbsp;</td>
+                {/for}
+            </tr>
+            {/if}
+            <!-- 显示普通文字项 -->
+            {if !$v.key}
+            <tr id="comparetr_{$key}">
+                <th>{$v.name}
+                    <input type="hidden" name="isdiff[]" value="{$key}|{$v.isdiff}" /></th>
+                {for start="0" end="$maxnum"}
+                <td>{$v[$i]}&nbsp;</td>
+                {/for}
+            </tr>
+            {/if}
+           {/foreach}
+        </table>
+        <div class="dsh-compare-bottom"> <a href="javascript:void(0);" ds_type="comparediff" data-param='{"type":"light"}'><i class="iconfont">&#xe748;</i>{$Think.lang.highlight_different_items}</a> <a href="javascript:void(0);" ds_type="comparediff" data-param='{"type":"cancel"}' style="display: none;"><i class="iconfont">&#xe789;</i>{$Think.lang.unhighlight_different_items}</a> <a href="javascript:void(0);" ds_type="comparesame" data-param='{"type":"hide"}'><i class="iconfont">&#xe749;</i>{$Think.lang.hide_same_item}</a> <a href="javascript:void(0);" ds_type="comparesame" data-param='{"type":"show"}' style="display: none;"><i class="iconfont">&#xe7b0;</i>{$Think.lang.show_same_item}</a> <a href="javascript:void(0);" class="delall" onclick="javascript:delCompare('all','info');"><i class="iconfont">&#xe699;</i>{$Think.lang.empty_contrast_bar}</a></div>
+       {else /}
+        <table class="dsh-compare-table">
+            <tbody>
+            <tr>
+                <td class="dsh-compare-null"><p> <i class="iconfont">&#xe718;</i>{$Think.lang.uncorrelated_goods}</p></td>
+            </tr>
+            </tbody>
+        </table>
+      {/if}
+    </div>
+</div>
+<script type="text/javascript">
+    /* 当鼠标移到表格上是,当前一行背景变色 */
+    $(document).ready(function(){
+        $(".dsh-compare-table tr td").mouseover(function(){
+            $(this).parent().find("td").css("background-color","#F5F5F5");
+            $(this).parent().find("th").css("background-color","#F5F5F5");
+        });
+    })
+    /* 当鼠标在表格上移动时,离开的那一行背景恢复 */
+    $(document).ready(function(){
+        $(".dsh-compare-table tr td").mouseout(function(){
+            var bgc = $(this).parent().attr("bg");
+            $(this).parent().find("td").css("background-color","#FFFFFF");
+            $(this).parent().find("th").css("background-color","#FFFFFF");
+        });
+    })
+
+    $(function(){
+        //高亮显示和取消高亮不同项
+        $("[ds_type='comparediff']").click(function(){
+            //处理参数
+            var data_str = '';
+            eval('data_str =' + $(this).attr('data-param'));
+            var type = data_str.type;
+            $("[ds_type='comparediff']").show();
+            $(this).hide();
+            $("[name='isdiff[]']").each(function(){
+                var itemval = $(this).val();
+                if(itemval){
+                    itemval = itemval.split("|");
+                    if(type == 'light'){
+                        itemval[1] == 1?$("#comparetr_"+itemval[0]).addClass('diffrow'):'';
+                    } else {
+                        itemval[1] == 1?$("#comparetr_"+itemval[0]).removeClass('diffrow'):'';
+                    }
+                }
+            });
+        });
+        //隐藏和显示相同项
+        $("[ds_type='comparesame']").click(function(){
+            //处理参数
+            var data_str = '';
+            eval('data_str =' + $(this).attr('data-param'));
+            var type = data_str.type;
+            $("[ds_type='comparesame']").show();
+            $(this).hide();
+            $("[name='isdiff[]']").each(function(){
+                var itemval = $(this).val();
+                if(itemval){
+                    itemval = itemval.split("|");
+                    if(type == 'show'){
+                        itemval[1] == 0?$("#comparetr_"+itemval[0]).show():'';
+                    } else {
+                        itemval[1] == 0?$("#comparetr_"+itemval[0]).hide():'';
+                    }
+                }
+            });
+        });
+    });
+</script>
+
+
+
+
+
+
+{/block}

+ 24 - 0
app/home/view/default_back/mall/compare/compare_mini.html

@@ -0,0 +1,24 @@
+<ul class="goods-list">
+    {if $compare_list}
+    {foreach name="compare_list" item="v"}
+    <li><dl class="goods-info">
+        <dt class="goods-pic"> <a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" title="{$v.goods_name}"> <img src="{:goods_cthumb($v.goods_image,240,$v.store_id)}" alt="{$v.goods_name}" title="{$v.goods_name}"/> </a> </dt>
+        <dd class="goods-opt"><span class="del" onclick="javascript:delCompare({$v.goods_id},'mini');">{$Think.lang.compare_delete}</span></dd> </dl>
+    </li>
+    {/foreach}
+    {/if}
+    {if $freemaxnum>0}
+    {for start="0" end="$freemaxnum"}
+    <li><div class="no-compare">{$Think.lang.no_comparison_term}</div></li>
+    {/for}
+    {/if}
+</ul>
+<div class="btn-box" style="text-align: right">
+    {if (count($compare_list)>1)}
+    <span style="background-color: #E74649; color: #FFFFFF; cursor: pointer; padding: 5px 10px;" onclick="javascript:window.open('{:url('Compare/index',['gids'=>$goodsid_str])}');">{$Think.lang.to_contrast}</span>
+    {else /}
+    <!--对比商品小于等于1件则对比按钮不可用-->
+    <span style=" background-color: #FFFFFF; border: 1px solid #DDDDDD; color: #CCCCCC; padding: 5px 10px; cursor: default;">{$Think.lang.to_contrast}</span>
+    {/if}
+    <span style="background-color: #E6E6E6; cursor: pointer; padding: 5px 10px;" onclick="javascript:delCompare('all','mini');">{$Think.lang.compare_empty}</span>
+</div>

+ 170 - 0
app/home/view/default_back/mall/connectqq/connect_register.html

@@ -0,0 +1,170 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/member_login.css">
+<div class="ds-login-layout">
+  <div class="openid">
+    <span class="avatar">
+      <img src="{$qquser_info.figureurl_qq_1}" />
+    </span>
+    <span class="notice">{$Think.lang.home_qq_prompt_1}<a>{$qquser_info.nickname}</a>{$Think.lang.home_qq_prompt_2}</span></div>
+  <div class="left-pic">
+    <img src="{$Think.HOME_SITE_ROOT}/images/login_openid.jpg" />
+  </div>
+  <div class="ds-login">
+    <div class="arrow"></div>
+    <div class="ds-qq-mode">
+      <ul class="tabs-nav">
+        <li><a href="#register">{$Think.lang.home_qqconnect_register_title}<i></i></a></li>
+      </ul>
+      <div id="tabs_container" class="tabs-container">
+        <div id="register" class="tabs-content">
+          <form name="register_form" id="register_form" class="ds-login-form" method="post" action="{:url('Connectqq/register')}">
+              
+            <dl>
+              <dt>{$Think.lang.login_register_bind}:</dt>
+              <dd>
+                <div class="tab-wrapper">
+                  <label><input type="radio" value="0" name="type">{$Think.lang.login_register_connect_now}</label>
+                  <label><input type="radio" value="1" name="type" checked>{$Think.lang.login_register_join_us}</label>
+                </div>  
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_username}:</dt>
+              <dd>
+                <input type="text" value="{:session('member_name')}" id="user" name="user" class="text"/>
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_pwd}:</dt>
+              <dd>
+                <input type="password" value="" id="password" name="password" class="text"/>
+              </dd>
+            </dl>
+            <dl class="input-register">
+              <dt>{$Think.lang.login_register_pwd2}:</dt>
+              <dd>
+                <input type="password" value="" id="password2" name="password2" class="text"/>
+              </dd>
+            </dl>  
+            <div class="submit-div">
+              <input type="submit" name="submit" value="{$Think.lang.login_register_enter_now}" class="submit"/>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script type="text/javascript">
+$(function(){
+    $('.tab-wrapper input').click(function(){
+        var rules={user: {
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+        },
+        password: {
+                minlength: 6,
+                maxlength: 20
+            }
+    }
+        if($(this).val()=='1'){
+            $('#user').rules("add",rules.user)
+            $('#password').rules("add",rules.password)
+            $('.input-register').show()
+            $('.input-register input').removeClass('ignore')
+        }else{
+            $('#user').rules("remove",'minlength maxlength remote')
+            $('#password').rules("remove",'minlength maxlength')
+            $('.input-register').hide()
+            $('.input-register input').addClass('ignore')
+        }
+    })
+    //注册表单验证
+    let vali=$('#register_form').validate({
+        errorPlacement: function(error, element){
+            var error_td = element.parent('dd');
+            error_td.append(error);
+            element.parents('dl:first').addClass('error');
+        },
+        success: function(label) {
+            label.parents('dl:first').removeClass('error').find('label').remove();
+        },
+        ignore: ".ignore",
+        rules: {
+            user: {
+                required: true,
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+            },
+            password: {
+                required: true,
+                minlength: 6,
+                maxlength: 20
+            },
+            password2: {
+                required: true,
+                equalTo: '#password',
+            },
+            email: {
+                required: true,
+                email: true,
+                remote: {
+                    url: "{:url('Login/check_email')}",
+                    type: 'get',
+                    data: {
+                        email: function() {
+                            return $('#email').val();
+                        }
+                    }
+                }
+            }
+        },
+        messages : {
+            user: {
+                required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_username}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_exists}'
+            },
+            password  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
+            },
+            password2  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password_again}',
+                equalTo: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_not_same}'
+            },
+            email : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_email}',
+                email    : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_invalid_email}',
+                remote	 : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_email_exists}'
+            }
+        }
+    });
+});
+</script>
+
+
+{/block}
+

+ 170 - 0
app/home/view/default_back/mall/connectsina/connect_register.html

@@ -0,0 +1,170 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/member_login.css">
+<div class="ds-login-layout">
+  <div class="openid">
+    <span class="avatar">
+      <img src="{$sinauser_info.avatar_large}" />
+    </span>
+    <span class="notice">{$Think.lang.home_sina_prompt_1}<a>{$sinauser_info.screen_name}</a>{$Think.lang.home_sina_prompt_2}</span></div>
+  <div class="left-pic">
+    <img src="{$Think.HOME_SITE_ROOT}/images/login_openid.jpg" />
+  </div>
+  <div class="ds-login">
+    <div class="arrow"></div>
+    <div class="ds-sina-mode">
+      <ul class="tabs-nav">
+        <li><a href="#register">{$Think.lang.home_sconnect_register_title}<i></i></a></li>
+      </ul>
+      <div id="tabs_container" class="tabs-container">
+        <div id="register" class="tabs-content">
+          <form name="register_form" id="register_form" class="ds-login-form" method="post" action="{:url('Connectsina/register')}">
+              
+            <dl>
+              <dt>{$Think.lang.login_register_bind}:</dt>
+              <dd>
+                <div class="tab-wrapper">
+                  <label><input type="radio" value="0" name="type">{$Think.lang.login_register_connect_now}</label>
+                  <label><input type="radio" value="1" name="type" checked>{$Think.lang.login_register_join_us}</label>
+                </div>  
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_username}:</dt>
+              <dd>
+                <input type="text" value="{:session('member_name')}" id="user" name="user" class="text"/>
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_pwd}:</dt>
+              <dd>
+                <input type="password" value="" id="password" name="password" class="text"/>
+              </dd>
+            </dl>
+            <dl class="input-register">
+              <dt>{$Think.lang.login_register_pwd2}:</dt>
+              <dd>
+                <input type="password" value="" id="password2" name="password2" class="text"/>
+              </dd>
+            </dl>  
+            <div class="submit-div">
+              <input type="submit" name="submit" value="{$Think.lang.login_register_enter_now}" class="submit"/>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script type="text/javascript">
+$(function(){
+    $('.tab-wrapper input').click(function(){
+        var rules={user: {
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+        },
+        password: {
+                minlength: 6,
+                maxlength: 20
+            }
+    }
+        if($(this).val()=='1'){
+            $('#user').rules("add",rules.user)
+            $('#password').rules("add",rules.password)
+            $('.input-register').show()
+            $('.input-register input').removeClass('ignore')
+        }else{
+            $('#user').rules("remove",'minlength maxlength remote')
+            $('#password').rules("remove",'minlength maxlength')
+            $('.input-register').hide()
+            $('.input-register input').addClass('ignore')
+        }
+    })
+    //注册表单验证
+    let vali=$('#register_form').validate({
+        errorPlacement: function(error, element){
+            var error_td = element.parent('dd');
+            error_td.append(error);
+            element.parents('dl:first').addClass('error');
+        },
+        success: function(label) {
+            label.parents('dl:first').removeClass('error').find('label').remove();
+        },
+        ignore: ".ignore",
+        rules: {
+            user: {
+                required: true,
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+            },
+            password: {
+                required: true,
+                minlength: 6,
+                maxlength: 20
+            },
+            password2: {
+                required: true,
+                equalTo: '#password',
+            },
+            email: {
+                required: true,
+                email: true,
+                remote: {
+                    url: "{:url('Login/check_email')}",
+                    type: 'get',
+                    data: {
+                        email: function() {
+                            return $('#email').val();
+                        }
+                    }
+                }
+            }
+        },
+        messages : {
+            user: {
+                required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_username}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_exists}'
+            },
+            password  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
+            },
+            password2  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password_again}',
+                equalTo: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_not_same}'
+            },
+            email : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_email}',
+                email    : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_invalid_email}',
+                remote	 : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_email_exists}'
+            }
+        }
+    });
+});
+</script>
+
+
+{/block}
+

+ 16 - 0
app/home/view/default_back/mall/connectwx/index.html

@@ -0,0 +1,16 @@
+<div class="ds-login-content tc" id="login_container"></div>
+<script>
+$(function(){
+    $.getScript("{$Think.HTTP_TYPE}res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js", function(){
+        var obj = new WxLogin({
+            id:"login_container",
+            appid: "{$Think.config.ds_config.weixin_appid}",
+            scope: "snsapi_login",
+            redirect_uri: "{:urlencode(HOME_SITE_URL.'/connectwx/get_info.html')}",
+            state: "",
+            style: "",
+            href: ""
+        });
+    });
+});
+</script>

+ 173 - 0
app/home/view/default_back/mall/connectwx/register.html

@@ -0,0 +1,173 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/member_login.css">
+<div class="ds-login-layout">
+  <div class="openid">
+    <span class="avatar">
+      <img src="{$headimgurl}" />
+    </span>
+    <span class="notice">{$Think.lang.home_wx_prompt_1}<a>{$wxuser_info.nickname}</a>{$Think.lang.home_wx_prompt_2}</span></div>
+  <div class="left-pic">
+    <img src="{$Think.HOME_SITE_ROOT}/images/login_openid.jpg" />
+  </div>
+  <div class="ds-login">
+    <div class="arrow"></div>
+    <div class="ds-wx-mode">
+      <ul class="tabs-nav">
+        <li><a href="#register">{$Think.lang.wechat_binding_register_title}<i></i></a></li>
+      </ul>
+      <div id="tabs_container" class="tabs-container">
+        <div id="register" class="tabs-content">
+          <form name="register_form" id="register_form" class="ds-login-form" method="post" action="{:url('Connectwx/edit_info')}">
+              
+            <dl>
+              <dt>{$Think.lang.login_register_bind}:</dt>
+              <dd>
+                <div class="tab-wrapper">
+                  <label><input type="radio" value="0" name="type">{$Think.lang.login_register_connect_now}</label>
+                  <label><input type="radio" value="1" name="type" checked>{$Think.lang.login_register_join_us}</label>
+                </div>  
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_username}:</dt>
+              <dd>
+                <input type="text" value="{:session('member_name')}" id="user" name="user" class="text"/>
+              </dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.login_register_pwd}:</dt>
+              <dd>
+                <input type="password" value="" id="password" name="password" class="text"/>
+              </dd>
+            </dl>
+            <dl class="input-register">
+              <dt>{$Think.lang.login_register_pwd2}:</dt>
+              <dd>
+                <input type="password" value="" id="password2" name="password2" class="text"/>
+              </dd>
+            </dl>  
+            <div class="submit-div">
+                <input type="hidden" name="headimgurl" value="{$headimgurl}"/>
+                <input type="hidden" name="unionid" value="{$wxuser_info.unionid}"/>
+                <input type="hidden" name="nickname" value="{$wxuser_info.nickname}"/>
+              <input type="submit" name="submit" value="{$Think.lang.login_register_enter_now}" class="submit"/>
+            </div>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script type="text/javascript">
+$(function(){
+    $('.tab-wrapper input').click(function(){
+        var rules={user: {
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+        },
+        password: {
+                minlength: 6,
+                maxlength: 20
+            }
+    }
+        if($(this).val()=='1'){
+            $('#user').rules("add",rules.user)
+            $('#password').rules("add",rules.password)
+            $('.input-register').show()
+            $('.input-register input').removeClass('ignore')
+        }else{
+            $('#user').rules("remove",'minlength maxlength remote')
+            $('#password').rules("remove",'minlength maxlength')
+            $('.input-register').hide()
+            $('.input-register input').addClass('ignore')
+        }
+    })
+    //注册表单验证
+    let vali=$('#register_form').validate({
+        errorPlacement: function(error, element){
+            var error_td = element.parent('dd');
+            error_td.append(error);
+            element.parents('dl:first').addClass('error');
+        },
+        success: function(label) {
+            label.parents('dl:first').removeClass('error').find('label').remove();
+        },
+        ignore: ".ignore",
+        rules: {
+            user: {
+                required: true,
+                minlength: 3,
+                maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            member_name: function () {
+                                return $('#user').val();
+                            }
+                        }
+                    }
+            },
+            password: {
+                required: true,
+                minlength: 6,
+                maxlength: 20
+            },
+            password2: {
+                required: true,
+                equalTo: '#password',
+            },
+            email: {
+                required: true,
+                email: true,
+                remote: {
+                    url: "{:url('Login/check_email')}",
+                    type: 'get',
+                    data: {
+                        email: function() {
+                            return $('#email').val();
+                        }
+                    }
+                }
+            }
+        },
+        messages : {
+            user: {
+                required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_username}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_exists}'
+            },
+            password  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
+                minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
+                maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
+            },
+            password2  : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password_again}',
+                equalTo: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_not_same}'
+            },
+            email : {
+                required : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_email}',
+                email    : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_invalid_email}',
+                remote	 : '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_email_exists}'
+            }
+        }
+    });
+});
+</script>
+
+
+{/block}
+

+ 20 - 0
app/home/view/default_back/mall/document/index.html

@@ -0,0 +1,20 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<div class="dsh-article-con" style="margin:0 auto 20px; width:1160px">
+  <h1>{$doc.document_title}</h1>
+  <h2>{$doc.document_time|date="Y-m-d H:i"}</h2>
+  <div class="default">
+    <p>{:htmlspecialchars_decode($doc['document_content']);}</p>
+  </div>
+</div>
+
+
+{/block}
+
+
+
+
+
+

+ 223 - 0
app/home/view/default_back/mall/flea/flea_index.html

@@ -0,0 +1,223 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<link href="{$Think.HOME_SITE_ROOT}/css/flea.css"  rel="stylesheet" type="text/css" />
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<script>
+	$(function(){
+		jQuery("#idContainer2").slide({titCell:"#btnlistID",mainCell:"#KSS_moveBox ul",autoPage:true,effect:"left",autoPlay:true});
+                jQuery(".scrolldoorFrame").slide({titCell:".scrollUl li",mainCell:".cont .cc",effect:"left",titOnClassName:"sd01"});
+	});
+</script>
+<div id="category">
+  <div class="content">
+    <ul>
+      <li>
+          <div class="items_pic"><i class="iconfont">&#xe60e;</i></div>
+        <div class="cat_list">
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$shuma.fcindex_id1}">{$shuma.fcindex_name1}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$shuma.fcindex_id2}">{$shuma.fcindex_name2}</a></p>
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$shuma.fcindex_id3}">{$shuma.fcindex_name3}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$shuma.fcindex_id4}">{$shuma.fcindex_name4}</a></p>
+        </div>
+      </li>
+      <li>
+        <div class="items_pic"><i class="iconfont">&#xe74b;</i></div>
+        <div class="cat_list">
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$zhuangban.fcindex_id1}">{$zhuangban.fcindex_name1}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$zhuangban.fcindex_id2}">{$zhuangban.fcindex_name2}</a></p>
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$zhuangban.fcindex_id3}">{$zhuangban.fcindex_name3}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$zhuangban.fcindex_id4}">{$zhuangban.fcindex_name4}</a></p>
+        </div>
+      </li>
+      <li>
+        <div class="items_pic"><i class="iconfont">&#xe60c;</i></div>
+        <div class="cat_list">
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$jujia.fcindex_id1}">{$jujia.fcindex_name1}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$jujia.fcindex_id2}">{$jujia.fcindex_name2}</a></p>
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$jujia.fcindex_id3}">{$jujia.fcindex_name3}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$jujia.fcindex_id4}">{$jujia.fcindex_name4}</a></p>
+        </div>
+      </li>
+      <li>
+        <div class="items_pic"><i class="iconfont">&#xe74c;</i></div>
+        <div class="cat_list">
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$xingqu.fcindex_id1}">{$xingqu.fcindex_name1}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$xingqu.fcindex_id2}">{$xingqu.fcindex_name2}</a></p>
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$xingqu.fcindex_id3}">{$xingqu.fcindex_name3}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$xingqu.fcindex_id4}">{$xingqu.fcindex_name4}</a></p>
+        </div>
+      </li>
+      <li>
+        <div class="items_pic"><i class="iconfont">&#xe6a2;</i></div>
+        <div class="cat_list">
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$muying.fcindex_id1}">{$muying.fcindex_name1}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$muying.fcindex_id2}">{$muying.fcindex_name2}</a></p>
+          <p><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$muying.fcindex_id3}">{$muying.fcindex_name3}</a><a target="_blank" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?cate_input={$muying.fcindex_id4}">{$muying.fcindex_name4}</a></p>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div>
+<div class="flea_goods content">
+  <div id="first_items">
+      <div id=idContainer2 class=container>
+          <div id="KinSlideshow" >
+              
+              {notempty name="loginpic"}
+              <div id='KSS_moveBox'>
+              <ul>
+              {foreach name="loginpic" item="val"}
+              <li><a href="{if ($val['url'] != '')}{$val.url}{else/}javascript:void(0);{/if}" target="_blank"><img src="{:ds_get_pic(ATTACH_PATH,$val.pic)}"></a></li>
+              {/foreach}
+              </ul>
+              </div>
+              <div class="KSS_titleBar" style="height: 30px; width: 100%; position: absolute; bottom: 0px; left: 0px; background: rgb(255, 255, 255); opacity: 0.5;"></div>
+              <div class="KSS_btnBox" style="position:absolute;right:10px;bottom:5px; z-index:100">
+                  <ul id="btnlistID" style="margin:0;padding:0; overflow:hidden">
+                      {foreach name="loginpic" item="val"}
+                      <li>{$key}</li>
+                      {/foreach}
+                  </ul>
+              </div>
+              {/notempty}
+          </div>
+      </div>
+      <div class="hotgoods">
+        <h2><strong class="head_title_1">{$Think.lang.flea_fresh_goods}</strong><i class="head_title_2">{$Think.lang.flea_prompt_words1}</i><a class="more gray2 fn-right" href="{$Think.HOME_SITE_URL}/Fleaclass/index/">{$Think.lang.flea_goods_more}</a></h2>
+        {notempty name="new_flea_goods"}
+        <div class="hotgoods_G">
+          <dl>
+            <dt class="fn-left">
+              <div class="pic">
+                <span class="thumb size100">
+                  <i></i>
+                  <a title="{$new_flea_goods.goods_name}" target="_blank" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$new_flea_goods.goods_id}"><img height="100" width="100" onload="javascript:ResizeImage(this,100,100);" src="{:flea_thumb($new_flea_goods['goods_image'])}" /></a>
+                </span>
+              </div>
+            </dt>
+            <dd class="fn-left">
+                {$Think.lang.flea_index_goods_1}{$new_flea_goods.flea_quality}{$Think.lang.flea_as_new}
+                {$Think.lang.flea_index_goods_2}{$new_flea_goods.goods_name}
+            </dd>
+            <dd class="fn-left"><span class="price orange">{$new_flea_goods.goods_store_price}</span>{$Think.lang.flea_index_rmbtransfer}</dd>
+            <dd class="fn-left"><span class="font-zr">{$Think.lang.flea_transfer}</span></dd>
+          </dl>
+        </div>
+        {/notempty}
+    </div>
+      <div class="sell">
+        	<div class="collect">
+              <h2><strong class="head_title_1">{$Think.lang.flea_love_collect}</strong><i class="head_title_2">{$Think.lang.flea_prompt_words2}</i></h2>
+              {notempty name="col_flea_goods"}
+              <div class="collect_goods">
+                <p class="collect_hot">{$Think.lang.flea_mostwell_goods}</p>
+                <div class="pic fn-left">
+                  <span class="thumb size76">
+                    <i></i>
+                    <a title="{$col_flea_goods.goods_name}" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$col_flea_goods.goods_id}" target="_blank"><img height="76" width="76" onload="javascript:ResizeImage(this,76,76);" src="{:flea_thumb($col_flea_goods['goods_image'])}" /></a>
+                  </span>
+                </div>
+                <div class="collect_info fn-left">
+                  <p class="details"><a class="blue2" target="_blank" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$col_flea_goods.goods_id}">{$col_flea_goods.goods_name}</a></p>
+                  <p>{$Think.lang.flea_all_count}<span>{$col_flea_goods.flea_collect_num}</span>{$Think.lang.flea_many_collect}</p>
+                  <p>{$Think.lang.flea_transfer_price}<span>{$col_flea_goods.goods_store_price}</span>{$Think.lang.flea_index_rmb}</p>
+                </div>
+              </div>
+              {/notempty}
+            </div>
+        <div id="buttonContainer"><a href="{$Think.HOME_SITE_URL}/Memberflea/add_goods" class="sell_btn2"><i class="iconfont">&#xe74e;</i>&nbsp;{$Think.lang.flea_sell_spare}</a></div>
+      </div>
+  </div>
+  <div id="fir_items" class="fn-left">
+    <h2><strong class="head_title_1">{$Think.lang.flea_popular_search}</strong><i class="head_title_2">{$Think.lang.flea_prompt_words3}</i><a href="{$Think.HOME_SITE_URL}/Fleaclass/index/" class="gray2">{$Think.lang.flea_more_hot_goods}</a></h2>
+    <ul>
+        {notempty name="new_flea_goods2"}
+        {php}$i=1;{/php}
+        {foreach name="new_flea_goods2" item="val" }
+        <li {if ($i==7||$i==14)}class="cn"{/if}>
+            <div class="pic">
+                <span class="thumb size120">
+                    <i></i>
+                    <a target="_blank" title="{$val.goods_name}" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}"><img height="120" width="120" onload="javascript:ResizeImage(this,120,120);" src="{:flea_thumb($val['goods_image'])}" /></a>
+                </span>
+            </div>
+            <p>{$val.flea_quality}{$Think.lang.flea_as_new}<span class="orange">{$val.goods_store_price}</span>{$Think.lang.flea_index_transfer}</p>
+        </li>
+        {php}$i++;{/php}
+        {/foreach}
+        {/notempty}
+    </ul>
+  </div>
+  <div class="fn-clear"></div>
+  <div class="ad">
+      {if $adv_slide}
+      {foreach name='adv_slide' item='v'}
+      <a href="{:url('Advclick/Advclick',['adv_id'=>$v['adv_left']['adv_id']])}" target="_blank" title="">
+          <img class="lazyload" data-original="{:ds_get_pic(ATTACH_ADV,$v.adv_code)}" style="{$v.adv_style|default=''}">
+      </a>
+      {/foreach}
+      {/if}
+  </div>
+  <div id="third_items" class="fn-left">
+    <h2><strong class="head_title_1">{$Think.lang.flea_onlookers_area}</strong><i class="head_title_2">{$Think.lang.flea_walk}</i><a class="gray2" href="{$Think.HOME_SITE_URL}/Fleaclass/index/">{$Think.lang.flea_more_flea_goods}</a></h2>
+    <div class="content">
+        <ul class="look_items">
+            {notempty name="new_flea_goods3"}
+            {foreach name="new_flea_goods3" item="val"}
+            <li class="fn-left">
+                <div class="pic">
+                    <span class="thumb size125">
+                        <i></i>
+                        <a target="_blank" title="{$val.goods_name}" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}"><img height="125" width="125" onload="javascript:ResizeImage(this,125,125);" src="{:flea_thumb($val['goods_image'])}" /></a>
+                    </span>
+                </div>
+                <p>{$val.flea_quality}{$Think.lang.flea_as_new}<span class="price orange">{$val.goods_store_price}</span>{$Think.lang.flea_index_transfer}</p>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+  </div>
+  <div class="fn-clear"></div>
+  <div id="fourth_items">
+    <h2><strong class="head_title_1">{$Think.lang.flea_shopping_theme}</strong><i class="head_title_2"></i></h2>
+    <ul>
+        {if !empty($adv_four)}
+        {foreach name='adv_four' item='v'}
+        <li class="fn-left">
+            <a href="{:url('Advclick/Advclick',['adv_id'=>$v['adv_left']['adv_id']])}" target="_blank" title="">
+                <img class="lazyload" data-original="{:ds_get_pic(ATTACH_ADV,$v.adv_code)}" style="{$v.adv_style|default=''}">
+            </a>
+        </li>
+        {/if}
+    </ul>
+  </div>
+  <div class="fn-clear"></div>
+  <div id="five_items">
+      <div class="scrolldoorFrame">
+          <h2><strong class="head_title_1">{$Think.lang.flea_classification_goods}</strong><i class="head_title_2"></i></h2>
+          <ul class="scrollUl">
+              {notempty name="show_flea_goods_class_list"}
+              {php}$i=1;{/php}
+              {foreach name="show_flea_goods_class_list" item="val" }
+              <li class="sd0{if $i==1}{$i}{else/}2{/if}" id="m0{php}echo $i++;{/php}"><span>{$val.class_name}</span></li>
+              {/foreach}
+              {/notempty}
+          </ul>
+          <div class="bor03 cont">
+              <div class="cc">
+                  {notempty name="show_flea_goods_class_list"}
+                  {php}$i=1;{/php}
+                  {foreach name="show_flea_goods_class_list" item="val" }
+                  {php}$i++;{/php}
+                  <ul>
+                      {foreach name="$val.goods" item="v"}
+                      <li>
+                          <div class="pic">
+                              <span class="thumb size120">
+                                  <i></i>
+                                  <a target="_blank" title="{$v.goods_name}" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$v.goods_id}"><img height="120" width="120" onload="javascript:ResizeImage(this,120,120);" src="{:flea_thumb($v['goods_image'])}" /></a></span></div>
+                          <p>{$v.flea_quality}{$Think.lang.flea_as_new}&nbsp;&nbsp;&nbsp;<span class="price orange">{:intval($v['goods_store_price'])}</span>{$Think.lang.flea_index_transfer}</p>
+                      </li>
+                      {/foreach}
+                  </ul> 
+                  {/foreach}
+                  {/notempty}
+              </div>
+          </div>
+      </div>
+  </div>
+</div>
+
+{/block}

+ 301 - 0
app/home/view/default_back/mall/fleaclass/flea_class.html

@@ -0,0 +1,301 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script> 
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/flea/jquery.flea_list.js"></script>
+<link href="{$Think.HOME_SITE_ROOT}/css/flea.css" rel="stylesheet" type="text/css">
+<script>
+    $(function(){
+            $('*[ds_type="dialog"]').click(function(){
+        var id = $(this).attr('dialog_id');
+        var title = $(this).attr('dialog_title') ? $(this).attr('dialog_title') : '';
+        var url = $(this).attr('uri');
+        var width = $(this).attr('dialog_width');
+        CUR_DIALOG = ajax_form(id, title, url, width,0);
+        return false;
+    });
+    })
+</script>
+<div class="content" style=" margin-top:10px;">
+  <!--检索表单	-->
+	<form id="condition" method="GET" action="{:url('Index')}">
+                {if $condition_out!=""}
+                        {foreach name="condition_out" item="val" key="key" }
+                                {if $val}
+					<input type="hidden" id="{$key}" name="{$key}" value="{$val}" />
+				{/if}
+			{/foreach}
+		{/if}
+	</form>
+  <!--检索表单	-->
+  <div class="size790 fn-left" style="margin-bottom:20px;">
+    <div id="flea_keyword">
+                {if $navigation}
+                        {foreach name="navigation" item="val" key="key" }
+				<a href="{$key}">{$val}</a>&nbsp;>
+			{/foreach}
+		{/if}
+		{$Think.lang.flea_index_find_goods}({:count($all_num)})	
+	</div>
+    <div id="cat_select">
+	  <p id="cat_num" style="display:none;">{:count($out_class)}</p>
+          {notempty name='out_class'}
+          <ul id="cate" class="cat_list">
+              {foreach name="out_class" item="val"}
+              <li class="fn-left">
+                  <a keycate="{$val.fleaclass_id}" class="blue" href="#" title="{$val.fleaclass_name}">{:str_cut($val['fleaclass_name'],13)}</a>
+              </li>
+              {/foreach}
+          </ul>
+          {/notempty}
+      <a id="j_moreCat" class="fold blue" href="#">{if (count($out_class)>10)}{$Think.lang.flea_show_more}{/if}</a>
+    </div>
+    <div id="filter">
+      <div class="fill_filter">
+          <dl >
+              <dt class="fn-left">{$Think.lang.flea_according_old}</dt>
+              <dd class="fn-left">
+                  <ul id="quality">
+                      <li class="fn-left {empty name='condition_out.quality_input'}current{/empty}">
+                          <a keyquality="" class="blue" href="#">{$Think.lang.flea_index_unlimit}</a>
+                      </li>
+                      <li><a keyquality="10" class="blue" href="#">{$Think.lang.flea_index_new}</a></li>
+                      <li><a keyquality="9" class="blue" href="#">{$Think.lang.flea_index_almost_new}</a></li>
+                      <li><a keyquality="8" class="blue" href="#">{$Think.lang.flea_index_gently_used}</a></li>
+                      <li><a keyquality="7" class="blue" href="#">{$Think.lang.flea_index_old}</a></li>
+                  </ul>
+              </dd>
+          </dl>
+      </div>
+      <div class="fill_filter">
+          <dl class="city fn-left" >
+              <dt class="fn-left">{$Think.lang.flea_according_price}</dt>
+              <dd class="fn-left">
+                  <ul id="price">
+                      <li class="fn-left {empty name='condition_out.price_input'}current{/empty}">
+                          <a keyprice="" class="blue" href="#">{$Think.lang.flea_index_unlimit}</a>
+                      </li>
+                      <li><a keyprice="35" class="blue">20-50{$Think.lang.flea_index_rmb}</a></li>
+                      <li><a keyprice="75" class="blue">50-100{$Think.lang.flea_index_rmb}</a></li>
+                      <li><a keyprice="150" class="blue">100-200{$Think.lang.flea_index_rmb}</a></li>
+                      <li><a keyprice="350" class="blue">200-500{$Think.lang.flea_index_rmb}</a></li>
+                      <li><a keyprice="750" class="blue">500-1000{$Think.lang.flea_index_rmb}</a></li>
+                      <li><a keyprice="1000" class="blue">1000{$Think.lang.flea_index_rmb}{$Think.lang.flea_index_on}</a></li>
+                  </ul>
+              </dd>
+          </dl>
+      </div>
+        <div class="fill_filter_c">
+            <dl class="city fn-left">
+                <dt class="fn-left">{$Think.lang.flea_according_area}</dt>
+
+                <dd class="fn-left search_city">
+                    <ul id="area">
+                        <li class="fn-left {empty name='condition_out.area_input'}current{/empty}">
+                            <a keyarea="" class="blue" href="#">{$Think.lang.flea_index_unlimit}</a>
+                        </li>
+                        {if isset($area_main)}
+                        <li>
+                            <a keyarea="{$area_main.fleaarea_id}" class="blue">
+                                {$area_main.fleaarea_name}
+                            </a>
+                        </li>
+                        {/if}
+                        {if $out_area}
+                        {foreach name="out_area" item="val"}
+                        <li>
+                            <a keyarea="{$val.fleaarea_id}" class="blue">
+                                {$val.fleaarea_name}
+                            </a>
+                        </li>
+                        {/foreach}
+                        {/if}
+                    </ul>
+                </dd>
+            </dl>
+        </div>   
+    </div>
+    <div id="rank">
+      <div class="rankbar">
+          <ul class="options fn-left">
+              <li id="rank_current" class="rank_default fn-left">
+                  <span><a href="#">{$Think.lang.flea_default_sort}</a></span>
+              </li>
+              <li id="rank_price" keyrank="{$condition_out.rank_input}" class="rank_default fn-left">
+                  <span>
+                      <a class="{eq name='condition_out.rank_input' value='2'}up{/eq}{eq name='condition_out.rank_input' value='1'}down{/eq}" href="#">
+                          {$Think.lang.flea_index_price}<i class="fn-right"></i>
+                      </a>
+                  </span>
+              </li>
+              <li id="float_price" class="rank_price_range fn-left">
+                  <input type="text" size="2" value="{$condition_out.start_input}"/>
+                  <span>-</span>
+                  <input type="text" size="2" value="{$condition_out.end_input}"/>
+              </li>
+              <!--浮动价格搜索-->
+              <li id="price_form">
+                  <input keystart="" name="start" id="start" type="text" size="2" value="{$condition_out.start_input}" />
+                  <span>-</span>
+                  <input keyend="" name="end" id="end" type="text" size="2" value="{$condition_out.end_input}" />
+                  <a id="price_submit" value=""/>{$Think.lang.flea_index_commit}</a>
+              </li>
+              <!--end-->
+              <li class="chack_box fn-left">
+                  <input id="picc" keypic="" {if $condition_out['pic_input']}checked value=""{else /}value="1"{/if}  name="pic_input" type="checkbox"  />
+                         <label for="support-img">
+                      <strong>{$Think.lang.flea_look_no_pic}</strong>
+                  </label>
+              </li>
+          </ul>
+        <div class="keywords fn-right">
+          <div class="key"><input id="key" keykey="" name="key" type="text" value="{$condition_out.key_input}"/></div>
+          <span><a id="search_key" href="#">{$Think.lang.flea_index_search}</a></span>        
+        </div>
+      </div>
+    </div>
+      <div id="list-content">
+          <ul id="seller">
+              {notempty name="listgoods"}
+              {foreach name="listgoods" item="val"}
+              <li class="seller_goods fn-left">
+                  <p class="pic fn-left">
+                      <span class="thumb size120">
+                          <i></i>
+                          <a class="user" href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}"><img height="120" width="120" onload="javascript:ResizeImage(this,120,120);" title="{$val.goods_name}" src="{:flea_thumb($val['goods_image'])}"/></a>                
+                      </span>
+                  </p>
+                  <div class="seller fn-left">
+                      <div class="pic fn-left">
+                          <span class="thumb size50">
+                              <i></i>
+                              <a href="{$Think.HOME_SITE_URL}/Fleaclass/index/?seller_input={$val['member_info']['member_id']}&pic_input=1"><img src="{:get_member_avatar_for_id($val['member_info']['member_id'])}" width="50px" height="50px"/></a>
+                          </span>
+                      </div>
+
+                      <div class="seller_num">
+                          <p class="seller_name">
+                              <a class="blue" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?seller_input={$val['member_info']['member_id']}">
+                                  {$val['member_info']['member_name']}
+                              </a>
+                          </p>
+                          <p class="gray">{if $val['member_info']['member_qq']}QQ:<span>{$val['member_info']['member_qq']}</span>{/if}</p>
+                          {$Think.lang.flea_index_goods}
+                          <a href="{$Think.HOME_SITE_URL}/Fleaclass/index/?seller_input={$val['member_info']['member_id']}" class="orange">{$val.member_info.num}</a>
+                          {$Think.lang.flea_index_a}
+                      </div>
+                  </div>
+                  <div class="list fn-left">
+                      <h2>
+                          <a href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}" title="{$val.goods_name}">
+                              {$Think.lang.flea_index_goods_1}{$val.quality}{$Think.lang.flea_index_goods_2}{:str_replace($condition_out['key_input'],"<font color='red'>".$condition_out['key_input']."</font>",str_cut($val['goods_name'],42))}
+                          </a>
+                      </h2>
+                      <p class="details"><strong><span style="font-size:12px;">{$Think.lang.currency}</span>{$val.goods_store_price}</strong></p>
+                      <p class="list_content gray">
+                          {if ($val['explain'])}{:str_cut($val['explain'],140)}{else/}{$Think.lang.flea_no_explain}{/if}
+                      </p>
+                      <p>
+                          <span class="gray fn-left">{$val.time}{$Think.lang.flea_index_front}</span>
+                          <span class="scan gray fn-right"><em class="blue2">{$val.flea_collect_num}</em>{$Think.lang.flea_goods_collect}</span>
+                          <span class="scan gray fn-right"><em class="blue2">{$val.flea_commentnum}</em>{$Think.lang.flea_goods_msg}</span>
+                          <span class="scan gray fn-right"><em class="blue2">{$val.goods_click}</em>{$Think.lang.flea_goods_view}</span>  
+                      </p>
+                  </div>
+
+              </li>
+              {/foreach}
+          </ul>
+          <div class="pagination">{$show_page|raw}</div>
+          {else/}
+          <strong class="nonegoods">
+              <h3>{$Think.lang.flea_no_finds}</h3>
+              <dl>
+                  <dt>{$Think.lang.fela_suggest_str}</dt>
+                  <dd>{$Think.lang.fela_suggest_str1}</dd>
+                  <dd>{$Think.lang.fela_suggest_str2}</dd>
+              </dl>
+          </strong>
+          {/notempty}
+      </div>
+  </div>
+  <div class="size200 fn-right">
+    <a class="sell_btn2" href="{$Think.HOME_SITE_URL}/Memberflea/add_goods">{$Think.lang.flea_want_to}<strong>{$Think.lang.flea_sell}</strong>{$Think.lang.flea_idle}</a>
+    <div class="sell_now">
+      <h2 class="sell_title">
+        <span class="head_title_red">{$Think.lang.flea_are_sold}...</span>
+      </h2>
+        <div class="slider">
+            <div id="slider">
+                <ul>
+                    {if $pre_sale}
+                    {foreach name="pre_sale" item="val"}
+                    <li class="sell_one">
+                        <div class='clearfix'>
+                            <p class="pic1">
+                                <span class="thumb size20">
+                                    <i></i>
+                                    <a href="{$Think.HOME_SITE_URL}/Fleaclass/index/?seller_input={$val.member_id}">
+                                        <img src="{:get_member_avatar_for_id($val['member_id'])}" width="25px" height="25px"/>
+                                    </a>              
+                                </span>
+                            </p>
+                            <span class="user_name fn-left">
+                                <a class="blue2" href="{$Think.HOME_SITE_URL}/Fleaclass/index/?seller_input={$val.member_id}">
+                                    {$val.member_name}
+                                </a>
+                            </span>
+                            {$Think.lang.flea_saling}             
+                        </div>
+
+                        <div class="items_info">
+                            <div class="pic2 fn-left">
+                                <span class="thumb size50">
+                                    <a href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}">
+                                        <img height="48" width="48" onload="javascript:ResizeImage(this,48,48);" title="{$val.goods_name}" src="{:flea_thumb($val['goods_image'])}" />
+                                    </a>
+                                </span>
+                            </div>
+                            <p>{:str_cut($val['goods_name'],40)}</p>
+                            <p>{$Think.lang.flea_transfer_price}<span class="orange">{$Think.lang.currency}{$val.goods_store_price}</span></p>
+                        </div>
+                    </li>
+                    {/foreach}
+                    {/if}
+                </ul>
+            </div>
+            <span id="prevBtn"><a href="javascript:void(0);"></a></span>
+            <span id="nextBtn"><a href="javascript:void(0);"></a></span>
+        </div>
+    </div>
+    <div class="look_for">
+      <h2 class="head_title_red">{$Think.lang.flea_preoccupation}...</h2>
+      <ul>
+          {if $attention}
+          {foreach name="attention" item="val"}
+          <li>
+              <div class="pic fn-left">
+                  <span class="thumb size60">
+                      <i></i>
+                      <a href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}">
+                          <img height="60" width="60" onload="javascript:ResizeImage(this,60,60);" title="{$val.goods_name}" src="{:flea_thumb($val['goods_image'])}" />
+                      </a>
+                  </span>
+              </div>
+              <h3 class="fn-right">
+                  <a href="{$Think.HOME_SITE_URL}/Fleagoods/index/?goods_id={$val.goods_id}" >{:str_cut($val['goods_name'],40)}</a>
+              </h3>
+              <p class="price orange fn-right">{$Think.lang.currency}{$val.goods_store_price}</p>
+              <div class="item-attrs blue2 fn-right">
+                  <span class="item_fav fn-right" title="{$Think.lang.flea_goods_collect}">{$val.flea_collect_num}</span>
+                  <span class="item_click fn-right" title="{$Think.lang.flea_goods_view}">{$val.goods_click}</span>
+                  <span class="item_scan fn-right" title="{$Think.lang.flea_goods_msg}">{$val.flea_commentnum}</span>
+              </div>
+          </li>
+          {/foreach}
+          {/if}
+      </ul>
+    </div>
+  </div>
+</div>
+{/block}

+ 26 - 0
app/home/view/default_back/mall/fleaclass/quality_inner.html

@@ -0,0 +1,26 @@
+<ul id="flea_dialog">
+  <li class="first_dialog">
+    <dl class="fn-clear">
+      <dt>{$Think.lang.flea_index_new}{$Think.lang.ds_colon}</dt>
+      <dd>{$Think.lang.flea_quality_1}</dd>
+    </dl>
+  </li>
+  <li>
+    <dl class="fn-clear">
+      <dt>{$Think.lang.flea_index_almost_new}{$Think.lang.ds_colon}</dt>
+      <dd>{$Think.lang.flea_quality_2}</dd>
+    </dl>
+  </li>
+  <li>
+    <dl class="fn-clear">
+      <dt>{$Think.lang.flea_index_gently_used}{$Think.lang.ds_colon}</dt>
+      <dd>{$Think.lang.flea_quality_3}</dd>
+    </dl>
+  </li>
+  <li>
+    <dl class="fn-clear">
+      <dt>{$Think.lang.flea_index_old}{$Think.lang.ds_colon}</dt>
+      <dd>{$Think.lang.flea_quality_4}</dd>
+    </dl>
+  </li>
+</ul>

+ 278 - 0
app/home/view/default_back/mall/fleagoods/flea_goods.html

@@ -0,0 +1,278 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<link href="{$Think.HOME_SITE_ROOT}/css/flea_info.css" rel="stylesheet" type="text/css">
+<!--放大镜BEGIN-->
+<script src="{$Think.BASE_SITE_ROOT}/static/home/default/store/styles/default/js/jquery.jqzoom.js"></script>
+<!--放大镜END-->
+<script charset="utf-8" type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/flea/goodsinfo.js"></script> 
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script> 
+<script>
+function collect_flea(fav_id){
+    if(!{if session('member_id')}{:session('member_id')}{else}0{/if}){
+        layer.msg('{$Think.lang.goods_please_login_first}');return;
+    }
+    var url = '{$Think.HOME_SITE_URL}/memberflea/addfavorites';
+    $.getJSON(url, {'fav_id':fav_id}, function(data){
+        if (data.done)
+        {
+            layer.msg(data.msg);
+            setTimeout(slideUp_fn, 5000);
+        }
+        else
+        {
+            layer.msg(data.msg);
+        }
+    });
+}
+function slideUp_fn()
+{
+    $('.ware_cen').slideUp('slow');
+}
+</script>
+<script type="text/javascript">
+function collect_goods(fav_id){
+    if(!{if session('member_id')}{:session('member_id')}{else}0{/if}){
+        layer.msg({$Think.lang.goods_please_login_first});return;
+    }
+    var url = '{$Think.HOME_SITE_URL}/member/addfavorites';
+    $.getJSON(url, {'fav_id':fav_id}, function(data){
+        if (data.done)
+        {
+            layer.msg(data.msg);
+            setTimeout(slideUp_fn, 5000);
+        }
+        else
+        {
+            layer.msg(data.msg);
+        }
+    });
+}
+
+$(document).ready(function(){
+
+    $('*[ds_type="dialog"]').click(function(){
+        var id = $(this).attr('dialog_id');
+        var title = $(this).attr('dialog_title') ? $(this).attr('dialog_title') : '';
+        var url = $(this).attr('uri');
+        var width = $(this).attr('dialog_width');
+        CUR_DIALOG = ajax_form(id, title, url, width,0);
+        return false;
+    });
+  $("#slider_high div").hover(
+  function () {
+    $(this).addClass("hightlight");
+  },
+  function () {
+    $(this).removeClass("hightlight");
+  }
+);
+});
+</script>
+
+<div class="content">
+  <div id="flea_info_slider">
+    <div id="slider" style="position:absolute; left:50px">
+        <ul id="slider_high">
+
+            {notempty name="goods_commend"}
+            {foreach name="goods_commend" item="comment_goods"}
+            <li class="sell_two">
+                <div class="pic fn-left {if $Request.param.goods_id == $comment_goods.goods_id} bor{/if}">
+                    <span class="thumb size76">
+                        <i></i>
+                        <a href="{$Think.HOME_SITE_URL}/fleagoods/index/?type=goods&goods_id={$comment_goods.goods_id}">
+                            <img height="76" width="76" onload="javascript:ResizeImage(this,76,76);" src="{:flea_thumb($comment_goods['goods_image'])}" title="{$comment_goods.goods_name}" />
+                        </a>
+                    </span>
+                </div>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+      <span id="prevBtn2"><a href="javascript:void(0);" class="iconfont">&#xe619;</a></span>
+      <span id="nextBtn2"><a href="javascript:void(0);" class="iconfont">&#xe618;</a></span>
+  </div>
+  <div class="flea_info_main">
+    <div class="content_780 fn-left" style="position: relative;" ds_type="jqzoom_relative">
+      
+      <div style=" float:left; width:302px;"> 
+      
+      <div class="ware_pic">
+          <div class="big_pic"><i><a href="javascript:void(0)">
+                      <span class="jqzoom">
+                          <div class="ico" style="display:none"></div>
+                          <img height="300" width="300" src="{if !isset($goods_image)}{:goods_thumb()}{else/}{$goods_image.thumb_small}{/if}"  onload="javascript:ResizeImage(this,300,300);" jqimg="{if !isset($goods_image)}{:goods_thumb()}{else/}{$goods_image.thumb_big}{/if}" />
+                          <div class='jqZoomPup'>&nbsp;</div>
+                      </span>
+                      <div class='zoomdiv' style='top:-9999em;'><img class='bigimg' src="{if !isset($goods_image)}{:goods_thumb()}{else/}{$goods_image.thumb_big}{/if}" /></div>
+                  </a></i>
+          </div>
+        <div class="bottom_btn">
+          <div class="ware_box">
+              <ul>
+                  {notempty name="desc_image"}
+                  {foreach name="desc_image" item="val" key="key" }
+                  <li {if $key == 0}class="ware_pic_hover"{/if} bigimg="{$val.thumb_big}">
+                      <span class="thumb size40"><i></i><img height="40" width="40" src="{$val.thumb_small}" onload="javascript:ResizeImage(this,40,40);" /></span>
+                  </li>
+                  {/foreach}
+                  {/notempty}
+              </ul>
+          </div>
+        </div>
+      </div>
+ 
+      </div>
+      <div class="ware_info">
+          <div id="property" class="fn-right">
+              <h1 class="ware_title">
+                  <strong class="fn-left">{$goods_title}</strong>
+              </h1>
+            <div class="flea_goods_right">{$Think.lang.goods_collection}<font color="red">{$goods.flea_collect_num}</font><span class="split">&nbsp;|&nbsp;</span>{$Think.lang.goods_page_views}<font color="red">{$goods.goods_click}</font></div>
+            <ul class="item_info">
+                <li class="price"><em class="flea_left_title">{$Think.lang.flea_transfer_price}</em><strong>{$goods.goods_store_price}</strong><em>{$Think.lang.flea_index_rmb}</em></li>
+                <li><em class="flea_left_title">{$Think.lang.flea_transfer_area}</em><a class="orange" href="{$Think.HOME_SITE_URL}/fleaclass/index/?area_input={$goods.fleaarea_id}">{$goods.fleaarea_name}</a></li>
+                <li class="rank_new">
+                    <em class="flea_left_title">{$Think.lang.flea_old_deep}</em>
+                    <span>{$goods.flea_quality}{$Think.lang.flea_as_new}</span>
+                    <span class="tb-tips">
+                        <s class="tb-tips-l"></s>
+                        {$Think.lang.flea_oldnew_choose}?
+                        <a class="ico3" style="text-decoration:none; cursor:pointer;" ds_type="dialog" dialog_id="friend_add" dialog_title="{$Think.lang.flea_oldnew_choose}" uri="{$Think.HOME_SITE_URL}/fleaclass/quality_inner" dialog_width="400">
+                            {$Think.lang.flea_look_fineness_division}
+                        </a>
+                    </span>          </li>
+                <li><em class="flea_left_title">{$Think.lang.goods_sellers}</em><a href="{$Think.HOME_SITE_URL}/Membermessage/sendmsg/?member_id={$flea_member_info.member_id}" target=_blank>{$flea_member_info.member_name}</a></li>
+                <li><em class="flea_left_title">{$Think.lang.goods_posted_on}</em><?php echo \app\home\controller\fleagoods::checkTime($goods['goods_addtime']) ;?>{$Think.lang.flea_index_front}</li>
+                <li>
+                    {notempty name='goods.goods_tag'}
+                    {foreach $goods.goods_tag as $val}
+                    {notempty name='val'}<a class="flea_keywords" href="{$Think.HOME_SITE_URL}/fleaclass/index/?key_input={:urlencode($val)}" target="_blank">{$val}</a>{/notempty}
+                    {/foreach}
+                    {/notempty}
+                </li>
+            </ul>
+            <div id="contact" class="grey-box">
+                <div class="bd">
+                    <ul class="fn-clear">
+                        <li>{$Think.lang.flea_contact_person}: {$goods.flea_pname}</li>
+                        <li>{$Think.lang.flea_contact_tel}: <img style="vertical-align: text-bottom;" src="{$Think.HOME_SITE_URL}/Pnum/index?pnum={$goods.flea_pphone}"></li>
+                    </ul>
+                    <p style="color:#a2a2a2">{$Think.lang.flea_explain_before_buy1}{$Think.lang.flea_explain_before_buy2}</p>
+                </div>
+            </div>
+            <div class="share">
+          <!-- Baidu Button BEGIN -->
+          <div id="bdshare" class="bdshare_t bds_tools get-codes-bdshare"> <span class="bds_more flea_btn" style="background:#f42424 !important">{$Think.lang.flea_share}</span>  </div>
+          <script type="text/javascript" id="bdshare_js" data="type=tools" ></script> 
+          <script type="text/javascript" id="bdshell_js"></script> 
+          <script type="text/javascript">
+	document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
+</script> 
+          <!-- Baidu Button END --> 
+   <span><a href="#" class="flea_btn" onclick="javascrit:collect_flea({$goods.goods_id});return false;">{$Think.lang.flea_goods_collect_goods}</a></span>    </div>  
+      </div>
+      </div>
+    </div>   
+      <div class="content_208 fn-right">
+          <div class="col-sub">
+              <a href="{$Think.HOME_SITE_URL}/Memberflea/add_goods">{$Think.lang.goods_transfer_unused_goods}</a>
+          </div>
+          <div id="seller_info" class="flea_gray mb10">
+              <h2 class="title">{$Think.lang.flea_other_info}</h2>
+              <div class="flea_wrap-inside">
+                  {notempty name="goods_commend3"}
+                  {foreach name="goods_commend3" item="val"}
+                  <div class="flea_goods clearfix">
+                      <div class="pic">
+                          <span class="thumb size60">
+                              <i></i>
+                              <a title="{$val.goods_name}" href="{$Think.HOME_SITE_URL}/fleagoods/index/?type=goods&goods_id={$val.goods_id}"><img height="60" width="60" src="{:flea_thumb($val['goods_image'])}" onload="javascript:ResizeImage(this,60,60);"></a>
+                          </span>
+                      </div>
+                      <dl>
+                          <dt><a href="{$Think.HOME_SITE_URL}/fleagoods/index/?type=goods&goods_id={$val.goods_id}">{$val.goods_name}</a></dt>
+                          <dd>{$Think.lang.currency}<a href="{$Think.HOME_SITE_URL}/fleagoods/index/?type=goods&goods_id={$val.goods_id}">{$val.goods_store_price}</a></dd>
+                      </dl>
+                  </div>
+                  {/foreach}
+                  {/notempty}
+              </div>
+          </div>
+      </div>
+    <div id="Tab1">
+<div class="Menubox">
+<ul>
+<li id="one1" onclick="setTab('one',1,2)" class="hover">{$Think.lang.flea_goods_info}</li>
+<li id="one2" onclick="setTab('one',2,2)">{$Think.lang.flea_buyer_msg}</li>
+</ul>
+</div>
+<div class="Contentbox">
+<div id="con_one_1" class="hover">
+<div>{:htmlspecialchars_decode($goods.goods_body)}</div>
+
+</div>
+<div id="con_one_2" style="display:none">
+  <div id="comments-content">
+     <div class="comment-edit">
+     <form method="post" id="save_consult_form2" action='{:url("Fleagoods/save_consult")}'>
+     <input type="hidden" name="goods_id" value="{$Request.param.goods_id}">
+     <input type="hidden" name="member_id" value="{:session('member_id')}">
+     <input type="hidden" name="email" value="{:session('member_email')}">
+     <input type="hidden" value="" name="type_name">
+       <div class="comment-user"><img src="{:get_member_avatar(session('avatar'))}"></div>
+       <div class="comment-add"><textarea name="content" type="text"></textarea></div>
+       <div class="comment-act"><input type="submit" class="btn" value="{$Think.lang.flea_index_commit}"></div>
+       </form>
+         <script type="text/javascript">
+             $(document).ready(function(){
+                 $('#save_consult_form2').validate({
+                     submitHandler:function(form){
+                         ds_ajaxpost('save_consult_form2');
+                     }
+                 });
+             });
+         </script>
+     </div> 
+      <ul class="comment-list">
+          {notempty name="consult_list"}
+          {foreach name="consult_list" item="val"}
+          <li>
+              <div class="comment-user"><img src="{:get_member_avatar($val.member_avatar)}"></div>
+              <p class="words"><span>{$val.fleaconsult_content}</span></p>
+              <p class="time"><span class="user_name">{$val.member_name}</span>{$Think.lang.goods_message}<?php echo \app\home\controller\fleagoods::checkTime($val['fleaconsult_addtime']) ;?>{$Think.lang.flea_index_front}</p>
+          </li>
+          {/foreach}
+          {/notempty}
+      </ul>
+  </div>
+</div>
+
+
+    
+</div>
+</div>
+    <div class="fn-clear"></div>
+
+</div>
+
+
+<script type="text/javascript">
+function setTab(name,cursel,n){
+for(i=1;i<=n;i++){
+var menu=document.getElementById(name+i);
+var con=document.getElementById("con_"+name+"_"+i);
+menu.className=i==cursel?"hover":"";
+con.style.display=i==cursel?"block":"none";
+}
+}
+</script>
+<script type="text/javascript">
+		$(function(){	
+			jQuery("#flea_info_slider").slide({prevCell:"#prevBtn2",nextCell:"#nextBtn2",mainCell:"#slider_high",autoPage:true,effect:"left",vis:11});
+		});	
+</script>
+
+{/block}

+ 447 - 0
app/home/view/default_back/mall/index/index.html

@@ -0,0 +1,447 @@
+{extend name="default/base/base_home" /}
+
+{block name="mall_main"}
+{notpresent name='editable_page'}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/index.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<style>
+    .mall_nav{border-bottom:none;}
+    .mall_nav .all_categorys .mc{display: block;}
+</style>
+<div class="clear"></div>
+<!-- HomeFocusLayout Begin-->
+<div class="home-focus-layout">
+    {if $adv_index_1}
+    <div class="bd">
+        <ul>
+            {foreach name='adv_index_1' item="v"}
+            <li style="background: url({:ds_get_pic(ATTACH_ADV,$v.adv_code)}) center top no-repeat rgb(35, 35, 35); display: none;background-color: {$v.adv_bgcolor|default=''}" style="{$v.adv_style|default=''}">
+                <a href="{:url('Advclick/Advclick',['adv_id'=>$v['adv_id']])}" target="_blank" title="{$v.adv_title}">&nbsp;</a>
+            </li>
+            {/foreach}
+        </ul>
+    </div>
+    <div class="hd">
+        <ul>
+            {foreach name='adv_index_1' item="v"}
+            <li class=""></li>
+            {/foreach}
+        </ul>
+    </div>
+    {/if}
+
+    <div class="right-sidebar">
+        <div class="mod_personal_center">
+            {if session('is_login')}
+            <div class="avata_pic_wrap">
+                <a id="index_account_icon_login" href="{:url('Member/index')}" target="_blank"><img class="lazyload"  data-original="{:get_member_avatar(session('avatar'))}?{$Think.TIMESTAMP}"></a>
+            </div>
+            <div class="info_wrap">
+                <div class="login_box">
+                    <div class="user_info clearfix">
+                        <em>Hi,{:session('member_nickname')}</em>
+                    </div>
+             
+                    <div class="clearfix treasure">
+                        <a href="{:url('Memberorder/index',['state_type'=>'state_new'])}" target="_blank" class="gold_coin">
+                            <em>{$member_order_info.order_nopay_count}</em>
+                            <p>{$Think.lang.pending_payment}</p>
+                        </a>
+                        <a href="{:url('Memberorder/index',['state_type'=>'state_send'])}" target="_blank" class="gold_coin">
+                            <em>{$member_order_info.order_noreceipt_count}</em>
+                            <p>{$Think.lang.pending_receipt}</p>
+                        </a>
+                        <a href="{:url('Memberorder/index',['state_type'=>'state_noeval'])}" target="_blank">
+                            <em>{$member_order_info.order_noeval_count}</em>
+                            <p>{$Think.lang.pending_comment}</p>
+                        </a>
+                    </div>
+                </div>
+            </div>
+            {else /}
+            <div class="avata_pic_wrap">
+                <a id="index_account_icon_unlogin" href="javascript:void(0)"><img class="lazyload"  data-original="{:get_member_avatar(session('avatar'))}?{$Think.TIMESTAMP}"></a>
+            </div>
+            <div class="info_wrap">
+                <div class="unlogin_box">
+                    <div class="title">Hi~{$Think.lang.hello}!</div>
+                    <div class="tips">
+                    </div>
+                    <div class="btn_wrap">
+                        <a href="{:url('Login/login')}" class="login_btn">{$Think.lang.login}</a>
+                        {if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}
+                        <a href="{:url('Login/register')}" class="regist_btn">{$Think.lang.login_index_regist_now_2}</a>
+                        {/if}
+                    </div>
+                </div>
+            </div>
+            {/if}
+            <div class="top_line">
+                <div class="vip_list">
+                    <a href="javascript:void(0)">
+                        <i class="iconfont" style="background:#ff9b1b">&#xe673;</i>
+                        <p class="vip_item_text">{$Think.lang.buyer_protection}</p>
+                    </a>
+                    <a href="javascript:void(0)">
+                        <i class="iconfont" style="background:#52a6ff">&#xe67e;</i>
+                        <p class="vip_item_text">{$Think.lang.merchant_authentication}</p>
+                    </a>
+                    <a href="javascript:void(0)">
+                        <i class="iconfont" style="background:#57c15b">&#xe74f;</i>
+                        <p class="vip_item_text">{$Think.lang.secure_transaction}</p>
+                    </a>
+                    <div class="clear"></div>
+                </div>
+            </div>
+            <div class="notice_list">
+                {foreach $index_articles as $i_a}
+                <a title="{$i_a.article_title}" href="{if $i_a.article_url !=''}{$i_a.article_url}{else /}{:url('Article/show',['article_id'=>$i_a.article_id])}{/if}" target="_blank">
+                    <span>{$i_a.article_title}</span>
+                </a>
+                {/foreach}
+            </div>
+        </div>
+    </div>
+</div>
+<!--HomeFocusLayout End-->
+{if $adv_index_2}
+<div class="home-scroll w1200 mt10">
+    <div class="bd">
+        <ul>
+            <li>
+                {foreach name='adv_index_2' item="v"}
+                <a href="{:url('Advclick/Advclick',['adv_id'=>$v['adv_id']])}" target="_blank" title="">
+                    <img class="lazyload" data-original="{:ds_get_pic(ATTACH_ADV,$v.adv_code)}" style="{$v.adv_style|default=''}">
+                </a>
+                {/foreach}
+            </li>
+        </ul>
+        <a class="ctrl prev" href="javascript:void(0)"><</a>
+        <a class="ctrl next" href="javascript:void(0)">></a>
+    </div>
+</div>
+{/if}
+
+
+
+<div class="home-sale-layout w1200 mt20">
+    <div class="hd">
+        <ul class="tabs-nav">
+            <li class="tabs-selected on"><i class="arrow"></i><h3>{$Think.lang.recommendation}</h3></li>
+            <li class=""><i class="arrow"></i><h3>{$Think.lang.discount}</h3></li>
+            <li class=""><i class="arrow"></i><h3>{$Think.lang.latest_hot_sale}</h3></li>
+            <li class=""><i class="arrow"></i><h3>{$Think.lang.shopping_frenzy}</h3></li>
+        </ul>
+    </div>
+    <div class="bd tabs-panel">
+        <ul style="display: block;">
+            {notempty name="recommend_list"}
+            {foreach name="recommend_list" item="goods"}
+            <li>
+                <dl>
+                    
+                    <dd class="goods-thumb">
+                        <a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}">
+                            <img class="lazyload" data-original="{:goods_cthumb($goods.goods_image)}" alt="{$goods.goods_name}">
+                        </a>
+                    </dd>
+                    <dt class="goods-name"><a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}" title="{$goods.goods_name}">{$goods.goods_name}</a></dt>
+                    <dd class="goods-price"><em>¥{$goods.goods_price}</em></dd>
+                </dl>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+        <ul style="display: none;">
+            {notempty name="promotion_list"}
+            {foreach name="promotion_list" item="goods"}
+            <li>
+                <dl>
+                    
+                    <dd class="goods-thumb">
+                        <a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}">
+                            <img class="lazyload" data-original="{:goods_cthumb($goods.goods_image)}" alt="{$goods.goods_name}">
+                        </a>
+                    </dd>
+                    <dt class="goods-name"><a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}" title="{$goods.goods_name}">{$goods.goods_name}</a></dt>
+                    <dd class="goods-price">{$Think.lang.shopping_mall_price}:<em>¥{$goods.xianshigoods_price}</em></dd>
+                </dl>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+        <ul style="display: none;">
+            {notempty name="new_list"}
+            {foreach name="new_list" item="goods"}
+            <li>
+                <dl>
+                    
+                    <dd class="goods-thumb">
+                        <a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}">
+                            <img class="lazyload" data-original="{:goods_cthumb($goods.goods_image)}" alt="{$goods.goods_name}">
+                        </a>
+                    </dd>
+                    <dt class="goods-name"><a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}" title="{$goods.goods_name}">{$goods.goods_name}</a></dt>
+                    <dd class="goods-price">{$Think.lang.shopping_mall_price}:<em>¥{$goods.goods_price}</em></dd>
+                </dl>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+        <ul style="display: none;">
+            {notempty name="groupbuy_list"}
+            {foreach name="groupbuy_list" item="goods"}
+            <li>
+                <dl>
+                    
+                    <dd class="goods-thumb">
+                        <a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}">
+                            <img class="lazyload" data-original="{:groupbuy_thumb($goods.groupbuy_image)}" alt="{$goods.goods_name}">
+                        </a>
+                    </dd>
+                    <dt class="goods-name"><a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}" title="{$goods.goods_name}">{$goods.goods_name}</a></dt>
+                    <dd class="goods-price">{$Think.lang.shopping_mall_price}:<em>¥{$goods.groupbuy_price}</em></dd>
+                </dl>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+</div>
+<div class="floor_wrap">
+    <div class="floor floor0 w1200" style="height:0"></div>
+{foreach name="floor_block" item="vo" key="k" }
+<div class="{if $k>4}style2{/if} floor floor{php}echo $k+1;{/php} w1200">
+    <div class="floor-left">
+        <div class="title">
+            <h2 title="{$vo.gc_name}">{$vo.gc_name}</h2>
+        </div>
+        {if $k<5}
+        <div class="left-ads">
+            {if $k<5 && $vo.adv_left}
+            <a href="{:url('Advclick/Advclick',['adv_id'=>$vo['adv_left']['adv_id']])}" target="_blank" title="">
+                <img class="lazyload" data-original="{:ds_get_pic(ATTACH_ADV,$vo.adv_left.adv_code)}" style="{$vo.adv_left.adv_style|default=''}">
+            </a>
+            {/if}
+        </div>
+        {/if}
+    </div>
+    <div class="floor-right">
+        <ul class="tabs-nav hd">
+            {foreach name="vo.goods_list" item="list"  key="list_key"}
+            <li {if condition="$list_key eq '0'"}class="on"{/if}><h3>{$list.gc_name}</h3></li>
+            {/foreach}
+        </ul>
+        <div class="goods-list bd">
+            {foreach name="vo.goods_list" item="list" key="list_key"}
+            <ul class="clearfix"  {if condition="$list_key eq '0'"}style="display:block"{/if}>
+                {notempty name="list.gc_list"}
+                {foreach name="list.gc_list" key="goods_key" item="goods"}
+                {if ($k<5 && $goods_key<8) || $k>4}
+                <li>
+                    <dl>
+                        
+                        <dd class="goods-thumb">
+                            <a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}">
+                                <img class="lazyload" data-original="{:goods_cthumb($goods.goods_image)}" alt="{$goods.goods_name}"/>
+                            </a>
+                        </dd>
+                        <dt class="goods-name"><a target="_blank" href="{:url('Goods/index',['goods_id'=>$goods.goods_id])}" title="{$goods.goods_name}">{$goods.goods_name}</a></dt>
+                        <dd class="goods-price">
+                            <em>{$goods.goods_price}{$Think.lang.ds_yuan}</em>
+                            {if $goods.goods_marketprice > 0}
+                            <span class="original">{$goods.goods_marketprice}{$Think.lang.ds_yuan}</span>
+                            {/if}
+                        </dd>
+                    </dl>
+                </li>
+                {/if}
+                {/foreach}
+                {/notempty}
+            </ul>
+            {/foreach}
+        </div>
+    </div>
+</div>
+
+<div class="w1200 floor-banner">
+    {if $k<5 && $vo.adv_bottom}
+    <a href="{:url('Advclick/Advclick',['adv_id'=>$vo['adv_bottom']['adv_id']])}" target="_blank" title="">
+        <img class="lazyload" data-original="{:ds_get_pic(ATTACH_ADV,$vo.adv_bottom.adv_code)}" style="{$vo.adv_bottom.adv_style|default=''}">
+    </a>
+    {/if}
+</div>
+<script>
+    jQuery(".floor{php}echo $k+1;{/php} .floor-right").slide({mainCell: ".bd", autoPlay: false, interTime: 5000});
+</script>
+{/foreach}
+</div>
+
+<div class="wrapper mt10"></div>
+<div class="index-link wrapper">
+    <dl class="website">
+        <dt>{$Think.lang.cooperative_partner} | {$Think.lang.friendship_link}<b></b></dt>
+        <dd>
+            {notempty name="link_list"}
+            {foreach name="link_list" item="val"}
+            <a href="{$val.link_url}" target="_blank" title="{$val.link_title}">{:str_cut($val.link_title,15)}</a>
+            {/foreach}
+            {/notempty}
+        </dd>
+    </dl>
+</div>
+<div class="footer-line"></div>
+<!--首页底部保障开始-->
+
+<!--首页底部保障结束-->
+<!--StandardLayout Begin-->
+
+<!--StandardLayout End-->
+
+
+
+
+
+
+<style>
+.fsFixedTopContent{display:none;overflow:visible;width:50px;height:auto;position:fixed;left:50%;top:40%;margin:-150px 0 0 -675px;z-index:3333;}
+.fsFixedTop{width:50px;height:auto;background:#fdfdfd;box-shadow: 0 0 4px rgba(0,0,0,.2);-webkit-transform:scale(1.2);-moz-transform:scale(1.2);transform:scale(1.2);opacity:0;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease;position:absolute;left:0;top:0}
+.fsFixedTop a{width:36px;height:36px;line-height:36px;display:block;position:relative;cursor:pointer;text-decoration:none;padding:7px;border-top: 1px solid #D4D4D4;}
+.fsFixedTop b{width:36px;height:36px;color:#333;font-size:13px;font-weight:600;text-align:center;display:block;}
+.fsFixedTop .fs-name{width:36px;height:36px;line-height:18px;color:#ff4040;text-align:center;display:none;overflow:hidden;font-size:13px;letter-spacing: 1px;word-wrap:break-word;}
+.fsFixedTop a.active{background:#ff4040 }
+.fsFixedTop a.active .fs-name{color:#fff;display:block;}
+.fsFixedTop a.active .fs {display: none}
+.fsFixedTop a.active .fs-name:hover {background:#ff4040;text-decoration:none}
+.fsFixedTop a:hover{background:#ff4040}
+.fsFixedTop a:hover .fs-name {display: block;color: #fff}
+.fsFixedTop a:hover b {display: none}
+</style>
+<div class="fsFixedTopContent" style="visibility: hidden; display: block;">
+    <div class="fsFixedTop" style="opacity: 0;"> 
+        {foreach name="floor_block" item="vo" key="k" }
+        <a class="smooth active" href="javascript:;"> <b class="fs">{$k+1}F</b> <em class="fs-name">{$vo.gc_name}</em> </a> 
+        {/foreach}
+    </div>
+    </div>		
+<script>
+    $(function () {
+        $(window).scroll(function () {
+            var scrt = $(window).scrollTop();
+            if (scrt > 1000) {
+                $(".fsFixedTopContent").show("fast", function () {
+                    $(".fsFixedTop").css({
+                        "-webkit-transform": "scale(1)",
+                        "-moz-transform": "scale(1)",
+                        "transform": "scale(1)",
+                        "opacity": "1"
+                    })
+                }).css({
+                    "visibility": "visible"
+                })
+            } else {
+                $(".fsFixedTop").css({
+                    "-webkit-transform": "scale(1.2)",
+                    "-moz-transform": "scale(1.2)",
+                    "transform": "scale(1.2)",
+                    "opacity": "0"
+                });
+                $(".fsFixedTopContent").css({
+                    "visibility": "hidden"
+                })
+            }
+            setTab()
+        });
+        var arr = [],fsOffset = 0;
+        for (var i = 1; i < $(".floor").length; i++) {
+            arr.push(parseInt($(".floor").eq(i).offset().top) + 30)
+        }
+        $(".fsFixedTop a.smooth").on("click", function () {
+            var _th = $(this);
+            _th.blur();
+            var index = $(".fsFixedTop a.smooth").index(this);
+            if (index > 0) {
+                fsOffset =index* 100-50;
+            }else{
+                fsOffset =-50;
+            }
+            var hh = arr[index];
+            var clickheight = hh+fsOffset;
+            $("html,body").stop().animate({
+                scrollTop:clickheight+ "px"
+            }, 400)
+        });
+        $(".fsFixedTop a.fsbacktotop").click(function () {
+            $("html,body").stop().animate({
+                scrollTop: 0
+            }, 400)
+        })
+
+        function setTab() {
+            var Objs = $(".floor:gt(0)");
+            var textSt = $(window).scrollTop();
+            for (var i = Objs.length - 1; i >= 0; i--) {
+                if (textSt >= $(Objs[i]).offset().top - 50) {
+                    $(".fsFixedTop a").eq(i).addClass("active").siblings().removeClass("active");
+                    return;
+                }
+            }
+        }
+    });
+</script>
+
+
+
+<script>
+    //轮播
+    jQuery(".home-focus-layout").slide({mainCell: ".bd ul", autoPlay: true, delayTime: 500, interTime: 5000});
+    jQuery(".home-scroll").slide({mainCell: ".bd li", autoPage: true,autoPlay: true, delayTime: 1000, effect: "left", interTime: 5000, vis: 5});
+    jQuery(".home-sale-layout").slide({autoPlay: false, });
+</script>
+
+{else}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/editable_page.css">
+{foreach name='config_list' item='item' key='key'}
+<div data-type="html" data-id="{$key+1}">{$item.html|raw}</div>
+{/foreach}
+<script>
+    {foreach name='config_list' item='item' key='key'}
+    if(typeof(window['loadHtml{$item.val.editable_page_model_id}'])!='undefined'){
+        window['loadHtml{$item.val.editable_page_model_id}']($('*[data-type="html"][data-id={$key+1}]'))
+    }
+    {/foreach}
+</script>
+{/notpresent}
+<!--首页悬浮弹窗BEGIN-->
+{if $Think.config.ds_config.fixed_suspension_state}
+<div class="fixed-suspension-layer" style="display: none;">
+    <div class="fixed-suspension-con">
+        <a href="{$Think.config.ds_config.fixed_suspension_url}" class="fixed-suspension-img">
+		<img class="lazy" src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.fixed_suspension_img)}">
+        </a>
+        <div class="close-fixed-suspension"></div>
+	</div>
+</div>
+<style>
+/*首页悬浮窗-BEGIN*/
+.fixed-suspension-layer{ position: fixed; top: 0; left: 0;right: 0; bottom: 0; z-index:100000; background: rgba(0,0,0,.5); text-align: center;}
+.fixed-suspension-layer .fixed-suspension-con{ width: 800px; height: 500px; margin: 0 auto; position: absolute; left: 50%; top: 50%; margin-left: -400px; margin-top: -250px;}
+.fixed-suspension-layer .fixed-suspension-con .fixed-suspension-img{ display: block; text-align: center; max-width: 800px; max-height: 500px;}
+.fixed-suspension-layer .fixed-suspension-con .fixed-suspension-img img{ max-width: 100%; max-height: 100%;}
+.close-fixed-suspension{ position: absolute; width: 36px; height: 36px; top: -40px; z-index: 2; background: url({$Think.HOME_SITE_ROOT}/images/close-fixed-suspension.png); background-size: cover; right: -40px; cursor: pointer;}
+/*首页悬浮窗-END*/
+</style>
+<script type="text/javascript">
+if(!localStorage.fixed_ad_layer){
+        $('.fixed-suspension-layer').show();
+}
+//悬浮广告弹出层
+$('body').on('click','.close-fixed-suspension',function(){
+        localStorage.fixed_ad_layer = true;
+        $('.fixed-suspension-layer').hide();
+});
+</script>
+{/if}
+<!--首页悬浮弹窗END-->
+{/block}

+ 39 - 0
app/home/view/default_back/mall/inviterpro/index.html

@@ -0,0 +1,39 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<div class="dsh-inviterpro w1200">
+    <div class="filter-box mb20">
+        <dl class="clearfix">
+            <dt>{$Think.lang.classification}</dt>
+            <dd><a href="{:url('inviterpro/index')}" {if condition="!$Request.param.cate_id"}class="selected"{/if}>{$Think.lang.ds_all}</a></dd>
+            {foreach name="goods_class_array" item="value"}
+            <dd>
+                <a href="{:url('inviterpro/index',['cate_id'=>$value.gc_id,'keyword'=>$Request.param.keyword])}" {if condition="$value.gc_id eq $Request.param.cate_id"}class="selected"{/if}>{$value.gc_name}</a>
+            </dd>
+            {/foreach}
+        </dl>
+    </div>
+    {notempty name="goods_list"}
+    <div class="goods-list clearfix">
+
+        <ul>
+            {foreach name="goods_list" item="value"}
+            <li>
+                <div class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_name}"><img class="lazyload" data-original="{:goods_thumb($value, 240)}" title="{$value.goods_name}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" alt="{$value.goods_name}" /></a></div>
+                <div class="goods-name">
+                    <a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_advword}">{$value.goods_name}</a>
+                </div>
+                <div class="goods-info">
+                    <span class="goods-price" title="{$Think.lang.goods_class_index_store_goods_price}{$Think.lang.ds_colon}{$Think.lang.currency}{$value.goods_price}">{:ds_price_format_forlist($value['goods_price'])}</span>
+                    <span class="inviter_amount">{if $value.inviter_amount>0}{$Think.lang.inviterpro_most_inviter_amount}&nbsp;<em>{:ds_price_format_forlist($value['inviter_amount'])}</em>{/if}</span>
+                </div>
+            </li>
+            {/foreach}
+        </ul>
+    </div>
+    <div class="pagination">{$show_page|raw}</div>
+    {else /}
+    <div class="no_results">{$Think.lang.inviterpro_no_record}</div>
+    {/notempty}
+    
+</div>
+{/block}

+ 42 - 0
app/home/view/default_back/mall/link/link.html

@@ -0,0 +1,42 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<style type="text/css">
+.full_module {margin-top:20px; min-height:288px; margin-bottom:20px; background:#fff;}
+.full_module h2 {margin-bottom: 2px; height: 50px; line-height: 50px; background: none repeat scroll 0% 0% #c43d7e; color: #fff; font-size: 20px; padding-left: 14px; font-family: Arial, "microsoft yahei"; font-weight: normal; }
+.full_module h2 span { float:right; font-size:12px; font-weight:normal}
+.full_module h2 b{font-weight: normal}
+.shop_plink span { width: 119px;height: 112px;line-height: 112px;float: left;overflow: hidden;text-align: center;margin: -1px -1px 0 0;position: relative;cursor: default;display:block;background:#fff;border:1px solid #f5f5f5 }
+.shop_plink span img{max-width:119px;max-height: 112px; }
+.shop_plink span i{display:block;position:absolute;left:0;top:0;color:#fff;width:100%;height: 100%;text-align: center;background-color: #333;background-color: rgba(0,0,0,.8);transition: all .3s ease-out;opacity: 0;filter: alpha(opacity=0);}
+.shop_plink span:hover i{opacity: 1;filter: alpha(opacity=100);}
+.shop_plink span i em{padding:5px 10px;z-index: 2;line-height: 20px;border-radius: 30px;position:relative;top:10px;background:rgb(255, 0, 54);white-space: nowrap;overflow: hidden;text-overflow:ellipsis;display: inline-block;box-sizing: border-box;max-width: 100%;height: 30px;}
+.shop_tlink { clear: both; margin: 0 auto; background:#fff; padding: 10px; border-top:1px dashed #ddd; }
+.shop_tlink a { margin-right: 20px; color: #222; }
+.shop_txt { padding-bottom: 10px; color: #666; margin-top:5px; }
+.shop_txt i { color:#ff3c00; font-weight:600 }
+</style>
+<div class="w1200">
+<div class="clear"></div>
+<div class="full_module wrapper">
+  <h2><span>{$Think.lang.link_prompt_words_1}:{$Think.config.ds_config.site_email}{$Think.lang.link_prompt_words_2}</span><b>{$Think.lang.link}</b></h2>
+  <div class="shop_plink clearfix">
+    {notempty name="link_list"}
+   {foreach name="link_list" item="val"}
+    {if $val.link_pic !=''}
+    <span>
+      <a href="{$val.link_url}" target="_blank">
+        <img src="{$val.link_pic}">
+        <i><em title="{$val.link_title}">{$val.link_title}</em></i>
+      </a>
+    </span>
+    {/if}
+    {/foreach}
+    {/notempty}
+    <div class="clear"></div>
+  </div>
+  
+</div>
+</div>
+
+{/block}

+ 236 - 0
app/home/view/default_back/mall/live/index.html

@@ -0,0 +1,236 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/live_list.css">
+<div id="pclive-top"> 
+    <div class="w1200"> 
+        <img width="1190" height="207" src="{$Think.HOME_SITE_ROOT}/images/live/58b9654aN2be569d9.jpg" alt="" /> 
+    </div> 
+</div> 
+<div class="pclive-content"> 
+    <div class="w1200"> 
+        <div class="ui-ceilinglamp-8" style="height:75px;">
+            <ul id="ceilinglamp" class="title-tab"> 
+                <li class="fore0 curr-layout" onclick="changeTab(0)"><a href="javascript:void(0)"><i></i>{$Think.lang.hot_live}</a></li> 
+                <li class="fore1" onclick="changeTab(1)"><a href="javascript:void(0)"><i></i>{$Think.lang.live_preview}</a></li> 
+                <li class="fore2" onclick="changeTab(2)"><a href="javascript:void(0)"><i></i>{$Think.lang.live_replay}</a></li> 
+            </ul>
+        </div> 
+    </div> 
+    <ul class="w1200 content-layout"> 
+        <!--热门直播 start--> 
+        <li id="pc-hotlive" class="w1200 channel-comfloor hotlive-20170124 curr-layout"> 
+            <div class="m"> 
+                <div class="mc"> 
+                    <ul class="list"> 
+                        <li class='no-record'><p style="height:30px;line-height:30px;text-align:center;">{$Think.lang.ds_common_result_null}</p></li>
+                    </ul> 
+                </div> 
+                <div class="mb"> 
+
+                </div> 
+            </div> </li> 
+        <!--热门直播 end--> 
+        <!--直播预告 start--> 
+        <li id="foreshow" class="w1200 channel-comfloor hotlive-20170124"> 
+            <div class="m"> 
+                <div class="mc"> 
+                    <ul class="list">
+                        <li class='no-record'><p style="height:30px;line-height:30px;text-align:center;">{$Think.lang.ds_common_result_null}</p></li>
+                    </ul> 
+                </div> 
+                <div class="mb"> 
+
+                </div> 
+            </div> </li> 
+        <!--精彩回放 end--> 
+        <li id="playback" class="w1200 channel-comfloor hotlive-20170124"> 
+            <div class="m"> 
+                <div class="mc"> 
+                    <div class="anchor-list"> 
+                        <ul class="list">
+                            <li class='no-record'><p style="height:30px;line-height:30px;text-align:center;">{$Think.lang.ds_common_result_null}</p></li>
+                        </ul> 
+                    </div> 
+                </div> 
+            </div> 
+            <div class="mb"> 
+
+            </div> </li> 
+        <!--精彩回放 end--> 
+    </ul> 
+</div>
+<script id="goods_template" type="text/html">
+    <li class="c-live J-tips1"> 
+        <div class="anchor"> 
+            <%=store_name%> 
+        </div> 
+        <div class="player-box"> 
+            <div class="player"></div> 
+            <div class="player-img" style="<%if(!live_apply_cover_video){%>background-image:url(<%=live_apply_cover_image_url%>)<%}else{%>background-color:#000<%}%>"> 
+                <%if(live_apply_cover_video){%>
+                <video style='width:100%;height:100%' src="<%=live_apply_cover_video_url%>" muted="muted" autoplay="autoplay" loop="loop" />
+                <%}%>
+            </div> 
+            <div class="player-info"> 
+                <div class="p-static"> 
+                    <i></i>
+                    <%if(state==1){%>
+                    {$Think.lang.live_on}
+                    <%}%>
+                    <%if(state==2){%>
+                    {$Think.lang.live_wait}
+                    <%}%>
+                    <%if(state==3){%>
+                    {$Think.lang.live_end}
+                    <%}%>
+                </div> 
+                <a class="player-btn" href="{:url('MemberLive/index')}?live_apply_id=<%=live_apply_id%>"> <span></span> </a> 
+                <div class="zan-btn"> 
+                    <i></i> 
+                    <span></span> 
+                </div> 
+            </div> 
+            <div class="player-title"> 
+                <div class="p-tips1">
+                    <%if(state==2){%>
+                    <%=live_apply_play_time_text%>{$Think.lang.go_to_play}
+                    <%}%>
+                </div> 
+                <div class="p-tips2">
+                    <%=live_apply_name%>
+                </div> 
+            </div> 
+
+        </div> 
+        <div class="anchor-products"> 
+            <%if(!goods_list.length){%>
+            <div class="noshare-tips"> 
+                <i></i> 
+                <p>{$Think.lang.no_goods_share}</p> 
+                <p>{$Think.lang.play_with_video_user}</p> 
+            </div>
+            <%}else{%>
+            <dl class="live-products"> 
+                <dt>
+                </dt> 
+                <dd style="position: relative;"> 
+                    <ul style="left:0;width:<%=goods_list.length*162%>px"> 
+                        <%for(var i in goods_list){%>
+                        <li class="fore0 J-list"> 
+                            <div class="p-img"> 
+                                <a href="{:url('MemberLive/index')}?live_apply_id=<%=live_apply_id%>"> <img width="152" height="152" src="<%=goods_list[i].goods_image%>" /> </a> 
+
+                            </div> 
+                            <div class="p-name">
+                                <%=goods_list[i].goods_name%>
+                            </div> 
+                            <div class="p-price"> 
+                                <span class="J-p-63213282503"><strong>&yen;</strong><%=goods_list[i].goods_price%></span> 
+                                <del class="J-m-63213282503">
+                                    &yen;<%=goods_list[i].goods_marketprice%>
+                                </del> 
+                            </div>  </li> 
+                        <%}%>
+                    </ul> 
+                    <div class="page-box"> 
+                        <a onclick="goSlide($(this).parent().prev(), 0)" class="page-prev page-btn" href="javascript:void(0);">&lt;</a> 
+                        <a onclick="goSlide($(this).parent().prev(), 1)" class="page-next page-btn" href="javascript:void(0);">&gt;</a> 
+                    </div> 
+                </dd> 
+            </dl> 
+            <%}%>
+        </div> </li> 
+</script>    
+<script src="{$Think.PLUGINS_SITE_ROOT}/template.min.js"></script>
+<script>
+$(function(){
+    loadMore()
+})    
+function changeTab(index) {
+    $('#ceilinglamp li').removeClass('curr-layout')
+    $('.content-layout li').removeClass('curr-layout')
+    switch (index) {
+        case 0:
+            $('.fore0').addClass('curr-layout')
+            $('#pc-hotlive').addClass('curr-layout')
+            break;
+        case 1:
+            $('.fore1').addClass('curr-layout')
+            $('#foreshow').addClass('curr-layout')
+            break;
+        case 2:
+            $('.fore2').addClass('curr-layout')
+            $('#playback').addClass('curr-layout')
+            break;
+    }
+    loadMore()
+}
+function goSlide(obj, dir) {
+    var left = obj.position().left;
+    if (dir) {
+        //向右
+        if (-left >= (Math.ceil(obj.find('li').length / 3) - 1) * 162) {
+            return
+        }
+        obj.css('left', (left - (162 * 3)) + 'px')
+    } else {
+        if (left >= 0) {
+            return
+        }
+        obj.css('left', (left + (162 * 3)) + 'px')
+    }
+}
+$(window).on("scroll", function () {
+
+    var windowHeight = $(window).height();//当前窗口的高度             
+    var scrollTop = $(window).scrollTop();//当前滚动条从上往下滚动的距离            
+    var docHeight = $(document).height(); //当前文档的高度 
+    //当 滚动条距底部的距离 + 滚动条滚动的距离 >= 文档的高度 - 窗口的高度  
+    //换句话说:(滚动条滚动的距离 + 窗口的高度 = 文档的高度)  这个是基本的公式  
+    if (scrollTop + windowHeight + 500 >= docHeight) {
+        loadMore()
+    }
+});
+var page = new Array(0, 0, 0);
+var no_more = new Array(false, false, false);
+
+function loadMore() {
+    var index
+    var state
+    var obj
+    
+    index = 0
+    state = 1
+    obj='pc-hotlive'
+    if ($('.fore0').hasClass('curr-layout')) {
+        
+    } else if ($('.fore1').hasClass('curr-layout')) {
+        index = 1
+        state = 2
+        obj='foreshow'
+    } else if ($('.fore2').hasClass('curr-layout')) {
+        index = 2
+        state = 3
+        obj='playback'
+    }
+    if (no_more[index]) {
+        return
+    }
+    page[index]++
+    $.getJSON(HOMESITEURL + '/Live/get_live_list', {state: state, page: page[index]}, function (res) {
+        if (!res.result.hasmore) {
+            no_more[index] = true
+        }
+        if(res.result.live_apply_list.length){
+            $('#'+obj+' .no-record').hide()
+        }
+        for(var i in res.result.live_apply_list){
+            var item = template.render('goods_template', res.result.live_apply_list[i]);
+            $('#'+obj+' .list').append(item);
+        }
+        
+    })
+}
+</script>
+{/block}

+ 100 - 0
app/home/view/default_back/mall/login/find_password.html

@@ -0,0 +1,100 @@
+{include file='default/base/mall_top'/}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
+<div class="header-login clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+    </div>
+</div>
+<div class="page_register clearfix">
+     <div class="w1200">
+        <div class="r_icon1"></div>
+        <div class="r_icon2"></div>
+        <div class="r_icon3"></div>
+        <div class="r_icon4"></div>
+        <div class="r_icon5"></div>
+        <form method="post" id="post_form" action="{:url('Connectsms/find_password')}">
+            <div class="register_form">
+                <div class="mt">{$Think.lang.login_retrieve_password}</div>
+                <div class="item clearfix">
+                    <div class="label">{$Think.lang.login_mobile_phone}</div>
+                    <div class="item-text">
+                        <input type="text" id="sms_mobile" name="sms_mobile" class="text" tabindex="1" placeholder="{$Think.lang.login_registered_phone_number}" maxlength="11" />
+                        <span class="find_the_password_help">{$Think.lang.find_the_password_help}</span>
+                    </div>
+                </div>
+                <div class="item clearfix">
+                    <div class="label">{$Think.lang.login_mobile_verification_code}</div>
+                    <div class="item-text">
+                        <input type="text" id="sms_captcha" name="sms_captcha" class="text" tabindex="1" placeholder="{$Think.lang.login_enter_verification_code}" maxlength="6" style="width:120px;" />
+                        <a class="send_code" id="btn_sms_captcha" ds_type="3">{$Think.lang.login_get_verification_code}</a>
+                    </div>
+                </div>
+                <div class="item clearfix">
+                    <div class="label">{$Think.lang.login_set_password}</div>
+                    <div class="item-text">
+                        <input type="password" id="member_password" name="member_password" class="text" tabindex="1" placeholder="{$Think.lang.login_modified_password}"  />
+                    </div>
+                </div>
+                <div class="item">
+                    <input type="submit" class="btn login-btn" value="{$Think.lang.login_confirm_reset}" />
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script> 
+<script>
+                            $(function () {
+                                $("#post_form").validate({
+                                    errorPlacement: function (error, element) {
+                                        var error_td = element.parent('.item-text');
+                                        error_td.append(error);
+                                        element.parents('.item:first').addClass('error');
+                                    },
+                                    success: function (label) {
+                                        label.parents('.item:first').removeClass('error').find('label').remove();
+                                    },
+                                    submitHandler: function (form) {
+                                        ds_ajaxpost('post_form','url',"{:url('Member/index')}");
+                                    },
+                                    rules: {
+                                        sms_mobile: {
+                                            required: true,
+                                            rangelength : [11, 11],
+                                            digits: true
+                                        },
+                                        sms_captcha: {
+                                            required: true,
+                                            minlength: 6
+                                        },
+                                        member_password: {
+                                            required: true,
+                                            minlength: 6,
+                                            maxlength: 20
+                                        }
+                                    },
+                                    messages: {
+                                        sms_mobile: {
+                                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                                            rangelength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                                            digits: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
+                                        },
+                                        sms_captcha: {
+                                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
+                                            minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
+                                        },
+                                        member_password: {
+                                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
+                                            minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
+                                            maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
+                                        }
+                                    }
+                                });
+                            });
+</script>
+
+
+
+{include file='default/base/mall_footer'/}

+ 233 - 0
app/home/view/default_back/mall/login/login.html

@@ -0,0 +1,233 @@
+{include file='default/base/mall_top'/}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
+<div class="header-login clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+    </div>
+</div>
+
+
+<div class="page_login clearfix" style="background-image: url('{$Think.HOME_SITE_ROOT}/images/login/login-bg.jpg');background-position: center center;">
+    <div class="w1000">
+        <div class="login_form">
+            <div class="mt">
+                <a href="javascript:void(0)" class="on"><span>{$Think.lang.login_account}</span><i></i></a>
+                {if $Think.config.ds_config.sms_login == 1}
+                <a href="javascript:void(0)" ><span>{$Think.lang.login_mobile}</span><i></i></a>
+                {/if}
+            </div>
+            <div class="mc">
+                <form id="login_normal_form" method="post" action="{:url('Login/login')}">
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe702;</div>
+                            <input type="text" id="member_name" name="member_name" class="text" placeholder="{$Think.lang.login_type}" tabindex="1"/>
+                        </div>
+                    </div>
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="password" id="member_password" name="member_password" autocomplete="new-password" class="text" placeholder="{$Think.lang.login_password}" tabindex="2"/>
+                        </div>
+                    </div>
+                    {if $Think.config.ds_config.captcha_status_login == '1'}
+                     <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="text" id="captcha_normal" name="captcha_normal" class="text" style="width:130px;float:left" placeholder="{$Think.lang.login_register_code}" tabindex="2" maxlength="4"/>
+                            <span class="span">
+                           <img style="position: absolute;top: 0;height:46px;" src="{:url('Seccode/makecode')}" title="{$Think.lang.login_index_change_checkcode}" id="codeimage">
+                                <a class="makecode" href="javascript:void(0);" onclick="javascript:document.getElementById('codeimage').src='{:url('Seccode/makecode')}'+'?'+(new Date().getTime());">{$Think.lang.login_password_change_code}</a>
+                            </span>
+                        </div>
+                    </div>
+                    {/if}
+                    <div class="item">
+                        <a href="{:url('Login/forget_password')}">{$Think.lang.login_index_find_password}?</a>
+                        {if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}
+                        <a href="{:url('Login/register')}" title="{$Think.lang.login_register_login_now_4}">{$Think.lang.new_user_registration}</a>
+                        {/if}
+                    </div>
+                    <div class="item">
+                        <input type="submit" class="btn login-btn" value="{$Think.lang.login_register_login_now_2}"/>
+                    </div>    
+                </form>
+                {if $Think.config.ds_config.sms_login == 1}
+                <form id="login_mobile_form" method="post" action="{:url('Connectsms/login')}" style="display:none">
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe702;</div>
+                            <input type="text" id="sms_mobile" name="sms_mobile" class="text" placeholder="{$Think.lang.login_mobile_phone}" oninput = "value=value.replace(/[^\d]/g,'')" maxlength="11"  tabindex="1"/>
+                        </div>
+                    </div>
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="text" oninput="value=value.replace(/[^\d]/g,'')"  id="sms_captcha" name="sms_captcha" class="text" placeholder="{$Think.lang.login_mobile_verification_code}" tabindex="2" style="width:130px;float:left" maxlength="6"/>
+                            <a class="send_code valid" id="btn_sms_captcha" ds_type="2" >{$Think.lang.login_get_verification_code}</a>
+                        </div>
+                    </div>
+
+                    <div class="item">
+                        <a href="{:url('Login/forget_password')}">{$Think.lang.login_index_find_password}?</a>
+                        {if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}
+                        <a href="{:url('Login/register')}" title="{$Think.lang.login_register_login_now_4}">{$Think.lang.new_user_registration}</a>
+                        {/if}
+                    </div>
+                    <div class="item">
+                        <input type="hidden" value="{$ref_url}" name="ref_url">
+                        <input type="submit" class="btn login-btn" value="{$Think.lang.login_register_login_now_2}"/>
+                    </div>    
+                </form>
+                {/if}
+            </div>
+            {if $Think.config.ds_config.qq_isuse =='1' || $Think.config.ds_config.sina_isuse =='1' || $Think.config.ds_config.weixin_isuse =='1'}
+            <div class="partner-login clearfix">
+                <h3>{$Think.lang.partner_account_login}</h3>
+                <p>
+                    {if $Think.config.ds_config.qq_isuse == '1'}
+                    <a class="login_ico ico_qq" href="{:url('Api/oa_qq')}"></a>
+                    {/if}
+                    {if $Think.config.ds_config.sina_isuse == '1'}
+                    <a class="login_ico ico_weibo" href="{:url('Api/oa_sina')}"></a>
+                    {/if}
+                    {if $Think.config.ds_config.weixin_isuse == '1'}
+                    <a class="login_ico ico_weixin" onclick="ajax_form('weixin_form', '{$Think.lang.wechat_account_login}', '{:url('Connectwx/index')}', 360);" title="{$Think.lang.wechat_account_login}"></a>
+                    {/if}
+                </p>
+            </div>
+            {/if}
+        </div>
+    </div>
+</div>
+<script>
+$(function () {
+    $(".login_form .mt a").click(function(){
+        var index=$(this).index();
+        $(this).parent().next().find("form").hide().eq(index).show();
+        $(this).addClass("on").siblings().removeClass("on");
+    });
+    
+    $("#login_normal_form").validate({
+        errorPlacement: function (error, element) {
+            var error_td = element.parent('.text-area');
+            error_td.append(error);
+            element.parents('.text-area:first').addClass('error');
+        },
+        success: function (label) {
+            label.parents('.text-area:first').removeClass('error').find('label').remove();
+        },
+        submitHandler:function(form){
+            ds_ajaxpost('login_normal_form','url','{if $ref_url}{$ref_url}{else/}{:url("Member/index")}{/if}');
+        },
+        onkeyup: false,
+        rules: {
+            member_name: "required",
+            member_password: "required"
+            {if $Think.config.ds_config.captcha_status_login == '1'},
+            captcha_normal: {
+                required: true,
+                remote: {
+                    url: "{:url('Seccode/check',['reset'=>'false'])}",
+                    type: 'get',
+                    data: {
+                        captcha: function () {
+                            return $('#captcha_normal').val();
+                        }
+                    },
+                    complete: function (data) {
+                        if (data.responseText == 'false') {
+                            document.getElementById('codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
+                        }
+                    }
+                }
+            }
+            {/if}
+        },
+        messages: {
+            member_name: "<i class='iconfont'>&#xe64c;</i>{$Think.lang.please_enter_registered_name}",
+            member_password: "<i class='iconfont'>&#xe64c;</i>{$Think.lang.login_index_input_password}"
+            {if $Think.config.ds_config.captcha_status_login == '1'},
+            captcha_normal: {
+                required: '<i class="iconfont" title="{$Think.lang.login_index_input_checkcode}">&#xe64c;</i>{$Think.lang.login_index_input_checkcode}',
+                remote: '<i class="iconfont" title="{$Think.lang.login_index_wrong_checkcode}">&#xe64c;</i>{$Think.lang.login_index_wrong_checkcode}'
+            }
+            {/if}
+        }
+    });
+});
+</script>
+{if $Think.config.ds_config.sms_login == 1}
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script>
+<script>
+            $(function () {
+                $("#login_mobile_form").validate({
+                    errorPlacement: function (error, element) {
+                        var error_td = element.parent('.text-area');
+                        error_td.append(error);
+                        element.parents('.text-area:first').addClass('error');
+                    },
+                    success: function (label) {
+                        label.parents('.text-area:first').removeClass('error').find('label').remove();
+                    },
+                    submitHandler:function(form){
+                        ds_ajaxpost('login_mobile_form','url','{if $ref_url}{$ref_url}{else/}{:url("Member/index")}{/if}');
+                    },
+                    onkeyup: false,
+                    rules: {
+                        sms_mobile: {
+                            required: true,
+                            number:true,
+                            rangelength:[11,11]
+                        },
+                        sms_captcha: {
+                            required: true,
+                            rangelength:[6,6]
+                        }
+                        {if $Think.config.ds_config.captcha_status_login == '1'},
+                        captcha_mobile: {
+                            required: true,
+                            minlength: 4,
+                            remote: {
+                                url: "{:url('Seccode/check',['reset'=>'false'])}",
+                                type: 'get',
+                                data: {
+                                    captcha: function () {
+                                        return $('#captcha_mobile').val();
+                                    }
+                                },
+                                complete: function (data) {
+                                    if (data.responseText == 'false') {
+                                        document.getElementById('sms_codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
+                                    }
+                                }
+                            }
+                        }
+                        {/if}
+                    },
+                    messages: {
+                        sms_mobile: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                            number: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                            rangelength:'<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
+                        },
+                        sms_captcha: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
+                            rangelength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
+                        }
+                        {if $Think.config.ds_config.captcha_status_login == '1'},
+                        captcha_mobile: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
+                            minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
+                            remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}'
+                        }
+                        {/if}
+                    }
+                });
+            });
+</script>
+{/if}
+
+{include file='default/base/mall_footer'/}

+ 221 - 0
app/home/view/default_back/mall/login/login_inajax.html

@@ -0,0 +1,221 @@
+<div class="quick-login">
+    <div class="mt">
+        <ul>
+            <li class="on">{$Think.lang.normal_login}</li>
+            {if $Think.config.ds_config.sms_login == 1}
+            <li>{$Think.lang.dynamic_verification_code}</li>
+            {/if}
+        </ul>
+    </div>
+    <div class="mc">
+        <form id="login_normal_inajax" action="{:url('Login/login')}" method="post" class="bg" >
+            <dl>
+                <dt></dt>
+                <dd>
+                    <i class="iconfont icon">&#xe702;</i>
+                    <input type="text" class="text"  name="member_name" id="member_name" value="" placeholder={$Think.lang.login_way} >
+                </dd>
+            </dl>
+            <dl>
+                <dt></dt>
+                <dd>
+                    <i class="iconfont icon">&#xe67b;</i>
+                    <input type="password" class="text" name="member_password" id="member_password" value="" placeholder={$Think.lang.login_password}>
+                </dd>
+            </dl>
+            {if $Think.config.ds_config.captcha_status_login == '1'}
+            <dl>
+                <dt></dt>
+                <dd class="clearfix">
+                    <i class="iconfont icon">&#xe67b;</i>
+                    <input type="text" name="captcha_normal" class="text fl" style="width:96px;" id="captcha_normal_inajax" maxlength="4" size="10" />
+                    <img class="fl ml10" height="38" src="{:url('Seccode/makecode')}" title="{$Think.lang.login_index_change_checkcode}" border="0" id="codeimage_inajax" onclick="this.src = '{:url('Seccode/makecode')}'+'?'+(new Date().getTime());">
+                </dd>
+            </dl>
+            {/if}
+            <ul>
+                <li>{if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}<a href="{:url('Login/register')}" class="register">{$Think.lang.quick_login_register}</a>{/if}<a href="{:url('Login/forget_password')}" class="forget">{$Think.lang.quick_login_forget}</a></li>
+            </ul>
+            <div class="enter">
+                <input type="submit" class="submit" value={$Think.lang.login_immediately} name="Submit">
+            </div>
+            <input type="hidden" value="{$Request.param.ref_url}" name="ref_url">
+        </form>
+        <form id="login_mobile_inajax" style="display:none" action="{:url('Connectsms/login')}" method="post" class="bg" >
+            <dl>
+                <dt></dt>
+                <dd>
+                    <i class="iconfont icon">&#xe702;</i>
+                    <input type="text" class="text"  name="sms_mobile" id="sms_mobile" value="" placeholder={$Think.lang.registered_mobile_number} >
+                </dd>
+            </dl>
+            <dl>
+                <dt></dt>
+                <dd class="mobile">
+                    <i class="iconfont icon">&#xe67b;</i>
+                    <input type="password" class="text sms_captcha" name="sms_captcha" id="sms_captcha" value="" placeholder={$Think.lang.login_mobile_verification_code}>
+                    <a href="javascript:void(0)" class="send_code" id="btn_sms_captcha" ds_type="2">{$Think.lang.login_get_verification_code}</a>
+                </dd>
+            </dl>
+            {if $Think.config.ds_config.captcha_status_login == '1'}
+            <dl>
+                <dt></dt>
+                <dd class="clearfix">
+                    <i class="iconfont icon">&#xe67b;</i>
+                    <input type="text" name="captcha_mobile" class="text fl" style="width:96px;" id="captcha_mobile_inajax" maxlength="4" size="10" />
+                    <img class="fl ml10" height="38" src="{:url('Seccode/makecode')}" title="{$Think.lang.login_index_change_checkcode}" border="0" id="sms_codeimage_inajax" onclick="this.src = '{:url('Seccode/makecode')}'+'?'+(new Date().getTime());">
+                </dd>
+            </dl>
+            {/if}
+            <ul>
+                <li>{if $Think.config.ds_config.member_normal_register==1 || $Think.config.ds_config.sms_register==1}<a href="{:url('Login/register')}" class="register">{$Think.lang.quick_login_register}</a>{/if}<a href="{:url('Login/forget_password')}" class="forget">{$Think.lang.quick_login_forget}</a></li>
+            </ul>
+            <div class="enter">
+                <input type="submit" class="submit" value={$Think.lang.login_immediately} name="Submit">
+            </div>
+            <input type="hidden" value="{$Request.param.ref_url}" name="ref_url">
+        </form>
+        {if $Think.config.ds_config.qq_isuse =='1' || $Think.config.ds_config.sina_isuse =='1' || $Think.config.ds_config.weixin_isuse =='1'}
+        <div class="partner-login clearfix">
+            <h3>{$Think.lang.partner_account_login}</h3>
+            <p>
+                {if $Think.config.ds_config.qq_isuse == '1'}
+                <a class="login_ico ico_qq" href="{:url('Api/oa_qq')}"></a>
+                {/if}
+                {if $Think.config.ds_config.sina_isuse == '1'}
+                <a class="login_ico ico_weibo" href="{:url('Api/oa_sina')}"></a>
+                {/if}
+                {if $Think.config.ds_config.weixin_isuse == '1'}
+                <a class="login_ico ico_weixin" onclick="ajax_form('weixin_form', '{$Think.lang.wechat_account_login}', '{:url('Connectwx/index')}', 360);" title={$Think.lang.wechat_account_login}></a>
+                {/if}
+            </p>
+        </div>
+        {/if}
+    </div>
+</div>
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script> 
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.validate.min.js"></script>
+<script>
+            $(document).ready(function() {
+                $(".quick-login .mt li").click(function(){
+                    var index = $(this).index();
+                    $(this).parent().parent().next().find("form").hide().eq(index).show();
+                    $(this).addClass("on").siblings().removeClass("on");
+                });
+                $("#login_normal_inajax").validate({
+                    errorPlacement: function(error, element) {
+                        var error_dd = element.parent('dd'), error_dt = element.parent().parent().find('dt');
+                        error_dt.append(error);
+                        error_dd.addClass('error');
+                    },
+                    onkeyup: false,
+                    submitHandler: function(form) {
+                        ds_ajaxpost('login_normal_inajax');
+                    },
+                    rules: {
+                        member_name: "required",
+                        member_password: "required",
+                        {if $Think.config.ds_config.captcha_status_login == '1'}
+                        captcha_normal: {
+                            required: true,
+                            remote: {
+                                url: "{:url('Seccode/check',['reset'=>'false'])}",
+                                type: 'get',
+                                data: {
+                                    captcha: function() {
+                                        return $('#captcha_normal_inajax').val();
+                                    }
+                                },
+                                complete: function(data) {
+                                    if (data.responseText == 'false') {
+                                        document.getElementById('codeimage_inajax').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
+                                    }
+                                }
+                            }
+                        }
+                        {/if}
+                    },
+                    messages: {
+                        member_name: '<i class="iconfont">&#xe73b;</i>{$Think.lang.user_name_required}',
+                        member_password: '<i class="iconfont">&#xe73b;</i>{$Think.lang.password_required}',
+                        {if $Think.config.ds_config.captcha_status_login == '1'}
+                        captcha_normal: {
+                            required: '<i class="iconfont">&#xe73b;</i>{$Think.lang.verification_code_required}',
+                            remote: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_usersave_wrong_code}'
+                        }
+                        {/if}
+                    }
+                });
+            });
+</script>
+
+{if $Think.config.ds_config.sms_login == 1}
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script>
+<script>
+            $(function () {
+                $("#login_mobile_inajax").validate({
+                    errorPlacement: function (error, element) {
+                        var error_dd = element.parent('dd'), error_dt = element.parent().parent().find('dt');
+                        error_dt.append(error);
+                        error_dd.addClass('error');
+                    },
+                    success: function (label) {
+                        label.parents('.text-area:first').removeClass('error').find('label').remove();
+                    },
+                    submitHandler:function(form){
+                        ds_ajaxpost('login_mobile_inajax');
+                    },
+                    onkeyup: false,
+                    rules: {
+                        sms_mobile: {
+                            required: true,
+                            number:true,
+                            rangelength:[11,11]
+                        },
+                        sms_captcha: {
+                            required: true,
+                            rangelength:[6,6]
+                        }
+                        {if $Think.config.ds_config.captcha_status_login == '1'},
+                        captcha_mobile: {
+                            required: true,
+                            remote: {
+                                url: "{:url('Seccode/check',['reset'=>'false'])}",
+                                type: 'get',
+                                data: {
+                                    captcha: function () {
+                                        return $('#captcha_mobile_inajax').val();
+                                    }
+                                },
+                                complete: function (data) {
+                                    if (data.responseText == 'false') {
+                                        document.getElementById('sms_codeimage_inajax').src = "{:url('Seccode/makecode')}" +"?" + new Date().getTime();
+                                    }
+                                }
+                            }
+                        }
+                        {/if}
+                    },
+                    messages: {
+                        sms_mobile: {
+                            required: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_correct_phone}',
+                            number: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_correct_phone}',
+                            rangelength:'<i class="iconfont">&#xe73b;</i>{$Think.lang.login_correct_phone}'
+                        },
+                        sms_captcha: {
+                            required: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_sms_dynamic_code}',
+                            rangelength: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_sms_dynamic_code}'
+                        }
+                        {if $Think.config.ds_config.captcha_status_login == '1'},
+                        captcha_mobile: {
+                            required: '<i class="iconfont">&#xe73b;</i>{$Think.lang.verification_code_required}',
+                            remote: '<i class="iconfont">&#xe73b;</i>{$Think.lang.login_usersave_wrong_code}'
+                        }
+                        {/if}
+                    }
+                });
+            });
+</script>
+{/if}
+
+

+ 295 - 0
app/home/view/default_back/mall/login/register.html

@@ -0,0 +1,295 @@
+{include file='default/base/mall_top'/}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
+<div class="header-login clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+    </div>
+</div>
+
+
+<div class="page_login clearfix" style="background-image: url('{$Think.HOME_SITE_ROOT}/images/login/login-bg.jpg');background-position: center center;">
+    <div class="w1000">
+        <div class="login_form">
+            <div class="mt">
+                {if $Think.config.ds_config.member_normal_register == 1}
+                <a href="javascript:void(0)" class="on"><span>{$Think.lang.register_account}</span><i></i></a>
+                {/if}
+                {if $Think.config.ds_config.sms_register == 1}
+                <a href="javascript:void(0)" {if $Think.config.ds_config.member_normal_register == 0}class="on"{/if}><span>{$Think.lang.register_mobile}</span><i></i></a>
+                {/if}
+            </div>
+            <div class="mc">
+                <form id="login_normal_form" method="post" action="{:url('Login/register')}">
+                {if $member && $member.member_id}
+                <div class="item" style="margin:0">
+                    <div class="text-area">{$Think.lang.recommender}<input name='inviter_id' type='hidden' value='{$member.member_id}'><span>{$member.member_name}</span></div>
+                </div>
+                {/if}
+                {if $Think.config.ds_config.member_normal_register == 1}
+                <div class="form">
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe702;</div>
+                            <input type="text" id="member_name" name="member_name" class="text" placeholder="{$Think.lang.login_register_username_to_login}" tabindex="1"/>
+                        </div>
+                    </div>
+                    {if $Think.config.ds_config.captcha_status_register == '1'}
+                     <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="text" id="captcha_normal" name="captcha_normal" class="text" style="width:130px;float:left" placeholder="{$Think.lang.login_register_code}" tabindex="2" maxlength="4"/>
+                            <span class="span">
+                           <img style="position: absolute;top: 0;height:46px;" src="{:url('Seccode/makecode')}" title="{$Think.lang.login_index_change_checkcode}" id="codeimage">
+                                <a class="makecode" href="javascript:void(0);" onclick="javascript:document.getElementById('codeimage').src='{:url('Seccode/makecode')}'+'?'+(new Date().getTime());">{$Think.lang.login_password_change_code}</a>
+                            </span>
+                        </div>
+                    </div>
+                    {/if}
+                </div>
+                {/if}
+                {if $Think.config.ds_config.sms_register == 1}
+                <div class="form" {if $Think.config.ds_config.member_normal_register == 1}style="display:none"{/if}>
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe702;</div>
+                            <input type="text" id="sms_mobile" name="sms_mobile" class="text" placeholder="{$Think.lang.login_mobile_phone}" oninput = "value=value.replace(/[^\d]/g,'')" maxlength="11" tabindex="1"/>
+                        </div>
+                    </div>
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="text" oninput="value=value.replace(/[^\d]/g,'')"  id="sms_captcha" name="sms_captcha" class="text" placeholder="{$Think.lang.login_mobile_verification_code}" tabindex="2" style="width:130px;float:left" maxlength="6"/>
+                            <a class="send_code valid" id="btn_sms_captcha" ds_type="1" >{$Think.lang.login_get_verification_code}</a>
+                        </div>
+                    </div>
+                </div>
+                {/if}
+                
+                
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="password" id="member_password" name="member_password" autocomplete="new-password" class="text" placeholder="{$Think.lang.login_password}" tabindex="2"/>
+                        </div>
+                    </div>
+                    <div class="item">
+                        <div class="text-area">
+                            <div class="iconfont ico">&#xe67b;</div>
+                            <input type="password" id="member_password_confirm" name="member_password_confirm" class="text" placeholder="{$Think.lang.login_register_ensure_password}" tabindex="2"/>
+                        </div>
+                    </div>
+                    <div class="item">
+                        {$Think.lang.agree_upon_registration}<a href='{:url("Document/index",["code"=>"agreement"])}' target='_blank'>{$Think.lang.user_registration_protocol}</a>
+                    </div>
+                    <div class="item">
+                        <input type="hidden" value="{$Request.param.ref_url}" name="ref_url">
+                        <input type="hidden" value="0" id="register_type" name="register_type">
+                        <input type="submit" class="btn login-btn" value="{$Think.lang.login_register_login_now_2}"/>
+                    </div>    
+                </form>
+            </div>
+
+        </div>
+    </div>
+</div>
+<script>
+    var can_submit=true
+$(function () {
+    $(".login_form .mt a").click(function(){
+        var index=$(this).index();
+        $('#register_type').val(index)
+        $(this).parent().next().find(".form").hide().eq(index).show();
+        $(this).addClass("on").siblings().removeClass("on");
+    });
+    
+    $("#login_normal_form").validate({
+        errorPlacement: function (error, element) {
+            var error_td = element.parent('.text-area');
+            error_td.append(error);
+            element.parents('.text-area:first').addClass('error');
+        },
+        success: function (label) {
+            label.parents('.text-area:first').removeClass('error').find('label').remove();
+        },
+        submitHandler:function(form){
+            if(!can_submit){
+                return
+            }
+            can_submit=false
+            ds_ajaxpost('login_normal_form','url','{if $Request.param.ref_url}{$Request.param.ref_url}{else/}{:url("Member/index")}{/if}',1000,()=>{
+                can_submit=true
+            });
+        },
+        onkeyup: false,
+        rules: {
+                member_name: {
+                    required: true,
+                    minlength: 3,
+                    maxlength: 15,
+                    remote: {
+                        url: HOMESITEURL + '/Login/check_member.html',
+                        type: 'get',
+                        data: {
+                            user_name: function () {
+                                return $('#member_name').val();
+                            }
+                        }
+                    }
+                },
+                member_password: {
+                    required: true,
+                    minlength: 6,
+                    maxlength: 20
+                },
+                member_password_confirm: {
+                    required: true,
+                    equalTo: '#member_password'
+                },
+                {if $Think.config.ds_config.sms_register == '1'}
+                sms_mobile: {
+                    required: true,
+                    minlength: 11,
+                    maxlength: 11
+                },
+                sms_captcha: {
+                    required: true,
+                    minlength: 6
+                },
+                {/if}
+            {if $Think.config.ds_config.captcha_status_register == '1'}
+            captcha_normal: {
+                required: true,
+                remote: {
+                    url: "{:url('Seccode/check',['reset'=>'false'])}",
+                    type: 'get',
+                    data: {
+                        captcha: function () {
+                            return $('#captcha_normal').val();
+                        }
+                    },
+                    complete: function (data) {
+                        if (data.responseText == 'false') {
+                            document.getElementById('codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
+                        }
+                    }
+                }
+            }
+            {/if}
+        },
+        messages: {
+                member_name: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_username}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                    maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
+                    remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_exists}'
+                },
+                member_password: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
+                    maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
+                },
+                member_password_confirm: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password_again}',
+                    equalTo: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_not_same}'
+                },
+                {if $Think.config.ds_config.sms_register == '1'}
+                sms_mobile: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                    maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
+                },
+                sms_captcha: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
+                },
+                {/if}
+            {if $Think.config.ds_config.captcha_status_register == '1'}
+            captcha_normal: {
+                required: '<i class="iconfont" title="{$Think.lang.login_index_input_checkcode}">&#xe64c;</i>{$Think.lang.login_index_input_checkcode}',
+                remote: '<i class="iconfont" title="{$Think.lang.login_index_wrong_checkcode}">&#xe64c;</i>{$Think.lang.login_index_wrong_checkcode}'
+            }
+            {/if}
+        }
+    });
+});
+</script>
+{if $Think.config.ds_config.sms_register == 1}
+<script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script>
+<script>
+            $(function () {
+                $("#login_mobile_form").validate({
+                    errorPlacement: function (error, element) {
+                        var error_td = element.parent('.text-area');
+                        error_td.append(error);
+                        element.parents('.text-area:first').addClass('error');
+                    },
+                    success: function (label) {
+                        label.parents('.text-area:first').removeClass('error').find('label').remove();
+                    },
+                    submitHandler:function(form){
+                        if(!can_submit){
+                            return
+                        }
+                        can_submit=false
+                        ds_ajaxpost('login_mobile_form','url','{if $Request.param.ref_url}{$Request.param.ref_url}{else/}{:url("Member/index")}{/if}',1000,()=>{
+                            can_submit=true
+                        });
+                    },
+                    onkeyup: false,
+                    rules: {
+                        sms_mobile: {
+                            required: true,
+                            number:true,
+                            rangelength:[11,11]
+                        },
+                        sms_captcha: {
+                            required: true,
+                            rangelength:[6,6]
+                        }
+                        {if $Think.config.ds_config.captcha_status_register == '1'},
+                        captcha_mobile: {
+                            required: true,
+                            minlength: 4,
+                            remote: {
+                                url: "{:url('Seccode/check',['reset'=>'false'])}",
+                                type: 'get',
+                                data: {
+                                    captcha: function () {
+                                        return $('#captcha_mobile').val();
+                                    }
+                                },
+                                complete: function (data) {
+                                    if (data.responseText == 'false') {
+                                        document.getElementById('sms_codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
+                                    }
+                                }
+                            }
+                        }
+                        {/if}
+                    },
+                    messages: {
+                        sms_mobile: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                            number: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
+                            rangelength:'<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
+                        },
+                        sms_captcha: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
+                            rangelength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
+                        }
+                        {if $Think.config.ds_config.captcha_status_register == '1'},
+                        captcha_mobile: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
+                            minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
+                            remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}'
+                        }
+                        {/if}
+                    }
+                });
+            });
+</script>
+{/if}
+
+{include file='default/base/mall_footer'/}

+ 125 - 0
app/home/view/default_back/mall/payment/wxpay.html

@@ -0,0 +1,125 @@
+{include file='default/base/mall_top'/}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
+<style>
+    .wxpayment { border-top: 2px solid #4b5b78; padding: 12px 30px 0; border: 1px solid #eee; color: #777; }
+    .p-w-bd::after,
+    .pay-weixin::after { clear: both; content: ""; display: table; }
+    .p-w-hd { font-family: "Microsoft Yahei"; font-size: 18px; margin-bottom: 20px; }
+    .p-w-bd { margin-bottom: 30px; padding-left: 130px; }
+    .pw-box-hd img { border: 1px solid #ddd; }
+    .p-w-box { float: left; width: 300px; }
+    .payment-change .pc-wrap { display: block; height: 56px; line-height: 56px; padding: 0 20px; transition: all 0.1s ease 0s; }
+    .payment-change .pc-wrap .pc-w-arrow-left { float: left; margin-right: 15px; }
+    .payment-change .pc-wrap .pc-w-arrow-left,
+    .payment-change .pc-wrap .pc-w-arrow-right { color: #2fa1dd; float: right; font-family: "{$Think.lang.song_typeface}"; font-size: 22px; font-style: normal; text-align: center; width: 20px; }
+    .pw-box-ft { background: url("{$Think.HOME_SITE_ROOT}/images/payment/icon-red.png") no-repeat scroll 50px 8px #ff7674; height: 44px; padding: 8px 0 8px 125px; }
+    .p-w-sidebar { background: url("{$Think.HOME_SITE_ROOT}/images/payment/phone-bg.png") no-repeat scroll 50px 0 rgba(0, 0, 0, 0); float: left; height: 421px; margin-top: -20px; padding-left: 50px; width: 379px; }
+    .pw-box-ft p { color: #fff; font-size: 14px; font-weight: 700; line-height: 22px; margin: 0; }
+    .payment-change .pc-wrap .pc-w-arrow-left { float: left; margin-right: 15px; }
+    .payment-change .pc-wrap strong { color: #2ea7e7; cursor: pointer; float: left; font-size: 14px; margin-right: 30px; }
+</style>
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<div class="header-login clearfix">
+    <div class="w1200">
+        <div class="logo">
+            <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+        </div>
+    </div>
+</div>
+
+<div class="dsc-main">
+    <div class="dsc-title">
+        <h3>{$Think.lang.cart_index_payment}</h3>
+        <h5>{$Think.lang.order_details_can_viewed}<a href="{:url('Memberorder/index')}" target="_blank">{$Think.lang.my_order}</a>{$Think.lang.carry_out_check}。</h5>
+    </div>
+    <div class="dsc-receipt-info">
+        <div class="dsc-receipt-info-title">
+            <h3> {$Think.lang.order_submitted_successfully}:<strong>{:ds_price_format($api_pay_amount)}</strong>{$Think.lang.ds_yuan} </h3>
+        </div>
+    </div>
+    <table class="dsc-table-style">
+        <thead>
+        <tr>
+            <th class="w50"></th>
+            <th class="w200 tl">{$Think.lang.order_number}</th>
+            <th class="tl">{$Think.lang.amount_of}</th>
+        </tr>
+        </thead>
+        <tbody>
+        {if count($order_list) > 1}
+        <tr>
+            <th colspan="20">{$Think.lang.different_businesses}{:count($order_list)}{$Think.lang.different_suborder_deliveries}!</th>
+        </tr>
+        {/if}
+       {foreach name="order_list" item="order_info" key="key" }
+        {if $order_info.order_type=='pd_order'}
+         <tr>
+            <td></td>
+            <td class="tl">{$order_info.pdr_sn}</td>
+            <td class="tl">{$order_info.pdr_amount}</td>
+        </tr>
+        {else /}
+        <tr>
+            <td></td>
+            <td class="tl">{$order_info.order_sn}</td>
+            <td class="tl">{$order_info.order_amount}</td>
+        </tr>
+        {/if}
+       {/foreach}
+        </tbody>
+    </table>
+    <div class="wxpayment">
+        <!-- 微信支付 -->
+        <div class="pay-weixin">
+            <div class="p-w-hd">{:sprintf($Think.lang.micro_letter_to_pay,$pay_method)}</div>
+            <div class="p-w-bd">
+                <div class="p-w-box">
+                    <div class="pw-box-hd"> <img width="298" src="{$Think.HOME_SITE_URL}/payment/qrcode?data={:urlencode($pay_url)}"> </div>
+                    <div class="pw-box-ft">
+                        <p>{:sprintf($Think.lang.wechat_scan,$pay_method)}</p>
+                        <p>{$Think.lang.qr_code_payment}</p>
+                    </div>
+                </div>
+                <div class="p-w-sidebar"></div>
+            </div>
+        </div>
+        <!-- 微信支付 end -->
+        <!-- payment-change 变更支付方式 -->
+        <div class="payment-change"> <a href="javascript:history.back(-1)" id="reChooseUrl" class="pc-wrap"> <i class="pc-w-arrow-left">&lt;</i> <strong>{$Think.lang.other_payment_methods}</strong> </a> </div>
+        <!-- payment-change 变更支付方式 end -->
+    </div>
+</div>
+
+<script>
+    $(document).ready(function(){
+        setInterval(queryOrderState, 3000);
+    });
+
+    function queryOrderState(){
+        $.ajax({
+            type: "GET",
+            url: "{$Think.HOME_SITE_URL}/payment/query_state?{$args|raw}",
+            data: "",
+            dataType: "json",
+            timeout: 4000,
+            async:false,
+            success: function(result) {
+                if(result.state==1){
+                    //此处待修改
+                    if (result.type == 'real_order') {
+                        window.location.href = "{:url('Memberorder/index')}";
+                    }
+                    if(result.type == 'vr_order') {
+                        window.location.href = "{:url('Membervrorder/index')}";
+                    }
+                    if(result.type == 'pd_order') {
+                        window.location.href = "{:url('Predeposit/index')}";
+                    }
+                }
+            }
+        });
+    }
+</script>
+
+
+{include file='default/base/mall_footer'/}

+ 99 - 0
app/home/view/default_back/mall/promotion/index.html

@@ -0,0 +1,99 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<style type="text/css">
+#box { background: #FFF; width: 238px; height: 410px; margin: -390px 0 0 0; display: block; border: solid 4px #D93600; position: absolute; z-index: 999; opacity: .5 }
+#infscr-loading { display: none; }
+</style>
+<script src="{$Think.HOME_SITE_ROOT}/js/search_goods.js"></script>
+
+<div class="dsh-container wrapper">
+  <div class="dsp-category">
+    <ul>
+      <input type="hidden" id="storeclass_id" value="{$Request.param.gc_id}"/>
+      <li><a class="" href="{:url('Promotion/index')}">{$Think.lang.ds_all_goods_class}</a></li>
+      {foreach name="goods_class" item="v" key="k" }
+      <li><a class="{if condition="$Request.param.gc_id eq $v.gc_id"}selected{/if}" href="{:url('Promotion/index',['gc_id'=>$v.gc_id])}"}'>{$v.gc_name}</a></li>
+      {/foreach}
+    </ul>
+  </div>
+    {notempty name="goods_list"}
+  <div id="promotionGoods">
+      {foreach name="goods_list" item="goods_info"}
+      <div class="item">
+          <div class="scope">
+              <dl class="goods">
+                  <dt class="goods-thumb"> <a title="{$goods_info.goods_name}" target="_blank" href="{$goods_info.goods_url}"><img src="{$goods_info.image_url_240}" /></a> </dt>
+                  <dd class="goods-name"><span><strong>{$goods_info.xianshi_title}</strong></span> <a target="_blank" href="{$goods_info.goods_url}">{$goods_info.goods_name}</a></dd>
+              </dl>
+              <div class="goods-price"><span class="sale">{$Think.lang.sale_price}<em>{:ds_price_format_forlist($goods_info['xianshigoods_price'])}</em>{$Think.lang.ds_yuan}</span><span class="depreciate"><i class="iconfont">&#xe689;</i>{$Think.lang.direct_fall}:¥{$goods_info.down_price}</span></div>
+              {if (session('is_login') === '1')}
+              <div class="goods-buy"><a href="javascript:void(0);" dstype="add_cart" data-param="{goods_id:{$goods_info.goods_id}}" class="btn">{$Think.lang.immediate_rush}</a> <span class="raty" data-score="{$goods_info.evaluation_good_star}" style="width: 100px;"></span> <span class="mt5"><a href="{:url('Store/index',['store_id'=>$goods_info.store_id])}">{$goods_info.store_name}</a></span> </div>
+              {/if}
+              <ul class="goodseval">
+                  {notempty name="$goodsevallist[$goods_info['goods_id']]"}
+                  {foreach name="$goodsevallist[$goods_info['goods_id']]" item="v" key="k" }
+                  <li>
+                      <div class="user-avatar"> <img src="{:get_member_avatar_for_id($v['geval_frommemberid'])}">  </div>
+                      <div class="eval"><i class="iconfont">&#xe752;</i>{$v.geval_content}<i class="iconfont">&#xe751;</i></div>
+                  </li>
+                  {/foreach}
+                  {/notempty}
+              </ul>
+          </div>
+      </div>
+      {/foreach}
+  </div>
+   {else /}
+  <div class="no_results">{$Think.lang.index_no_record}</div>
+  {/notempty}
+</div>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.masonry.js"></script>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.infinitescroll.js"></script>
+<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/jquery.raty.min.js"></script>
+<script>
+var $container = $('#promotionGoods');
+$container.masonry({
+    columnWidth: 305,
+    itemSelector: '.item'
+});
+$(function(){
+    $container.infinitescroll({
+        navSelector : '#page-more',
+        nextSelector : '#page-more a',
+        itemSelector : '.item',
+        loading: {
+            selector:'#page-nav',
+            img: '{$Think.HOME_SITE_ROOT}/images/loading.gif',
+            msgText:{$Think.lang.promotion_prompt_words1},
+            maxPage : '{$total_page}',
+            finishedMsg : {$Think.lang.promotion_prompt_words2},
+        finished : function() {
+        $('.raty').raty({
+            path: "{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/img",
+            readOnly: true,
+            width: 100,
+            score: function() {
+                return $(this).attr('data-score');
+            }
+        });
+    }
+}
+},function(newElements){
+        var $newElems = $(newElements);
+        $container.masonry('appended', $newElems, true);
+    });
+
+    $('.raty').raty({
+        path: "{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/img",
+        readOnly: true,
+        width: 100,
+        score: function() {
+            return $(this).attr('data-score');
+        }
+    });
+});
+</script>
+
+{/block}
+

+ 24 - 0
app/home/view/default_back/mall/promotion/item.html

@@ -0,0 +1,24 @@
+{foreach name="goods_list" item="goods_info"}
+<div class="item">
+    <div class="scope">
+        <dl class="goods">
+            <dt class="goods-thumb"> <a title="{$goods_info.goods_name}" target="_blank" href="{$goods_info.goods_url}"><img src="{$goods_info.image_url_240}" /></a> </dt>
+            <dd class="goods-name"><span><strong>{$goods_info.xianshi_title}</strong></span> <a target="_blank" href="{$goods_info.goods_url}">{$goods_info.goods_name}</a></dd>
+        </dl>
+        <div class="goods-price"><span class="sale">{$Think.lang.sale_price}<em>{:ds_price_format_forlist($goods_info['xianshigoods_price'])}</em>{$Think.lang.ds_yuan}</span><span class="depreciate"><i class="iconfont">&#xe689;</i>{$Think.lang.direct_fall}:¥{$goods_info.down_price}</span></div>
+        {if (session('is_login') === '1')}
+        <div class="goods-buy"><a href="javascript:void(0);" dstype="add_cart" data-param="{goods_id:{$goods_info.goods_id}}" class="btn">{$Think.lang.immediate_rush}</a> <span class="raty" data-score="{$goods_info.evaluation_good_star}" style="width: 100px;"></span> <span class="mt5"><a href="{:url('Store/index',['store_id'=>$goods_info.store_id])}">{$goods_info.store_name}</a></span> </div>
+        {/if}
+        <ul class="goodseval">
+            {notempty name="$goodsevallist[$goods_info['goods_id']]"}
+            {foreach name="$goodsevallist[$goods_info['goods_id']]" item="v" key="k" }
+            <li>
+                <div class="user-avatar"> <a target="_blank" data-param="{'id':{$v.geval_frommemberid}}" dstype="mcard"{/if}> <img src="{:get_member_avatar_for_id($v['geval_frommemberid'])}"> </a> </div>
+                <div class="eval"><i class="iconfont">&#xe752;</i>{$v.geval_content}<i class="iconfont">&#xe751;</i></div>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+</div>
+{/foreach}

+ 24 - 0
app/home/view/default_back/mall/search/goods_booth.html

@@ -0,0 +1,24 @@
+<div class="title">
+    <h3>{$Think.lang.promotion_goods}</h3></div>
+<div class="content" ds_type="current_display_mode">
+    {notempty name="goods_list"}
+    <ul class="dsh-booth-list squares">
+        {foreach name="goods_list" item="value"}
+        <li dstype_goods="{$value.goods_id}" dstype_store="{$value.store_id}">
+            <div class="goods-pic">
+                <a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_name}">
+                    <img src="{:goods_thumb($value)}" title="{$value.goods_name}" alt="{$value.goods_name}" />
+                </a>
+            </div>
+            {if config('ds_config.groupbuy_allow') && $value['goods_promotion_type'] == 1}
+            <div class="goods-promotion"><span>{$Think.lang.snap_up_goods}</span></div>
+            {elseif config('ds_config.promotion_allow') && $value['goods_promotion_type'] == 2 /}
+            <div class="goods-promotion"><span>{$Think.lang.limited_time_discount}</span></div>
+            {/if}
+            <div class="goods-name"><a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank" title="{$value.goods_advword}">{$value.goods_name}</a></div>
+            <div class="goods-price" title="{$Think.lang.commodity_prices}{$Think.lang.ds_colon}{$Think.lang.currency}{$value.goods_promotion_price}">{$Think.lang.currency}{$value.goods_promotion_price}</div>
+        </li>
+        {/foreach}
+    </ul>
+    {/notempty}
+</div>

+ 75 - 0
app/home/view/default_back/mall/search/goods_guesslike.html

@@ -0,0 +1,75 @@
+<style type="text/css">
+.goods-guess-like { border: solid 1px #EEE; margin: 0 auto 20px auto;}
+.goods-guess-like .title {  font: bold 14px/20px "microsoft yahei"; color: #666; padding: 8px 19px; border-bottom: solid 1px #EEE;}
+.goods-guess-like .content{position: relative;overflow: hidden}
+.goods-guess-like .content li{width:25%;float:left;position:relative}
+.goods-guess-like .goods-pic { width: 200px; height: 200px; margin: 15px auto 0 auto;}
+.goods-guess-like .goods-pic a { line-height: 0; text-align: center; vertical-align: middle; display: table-cell; *display: block; width: 200px; height: 200px; padding: 0; overflow: hidden;}
+.goods-guess-like .goods-pic a img { max-width: 200px; max-height: 200px; margin-top:expression(200-this.height/2); *margin-top:expression(100-this.height/2)/*IE6,7*/;}
+.goods-guess-like .goods-info { width: 200px; margin: 5px auto 15px auto;}
+.goods-guess-like .goods-info dt { line-height: 18px; height: 36px; overflow: hidden;}
+.goods-guess-like .goods-info dd { font: bold 12px/20px Verdana; color: #C00;}
+.goods-guess-like .goods-info dd em { font-size: 14px; font-weight: 600; margin: 0 4px;}
+.goods-guess-like .goods-promotion { color: #FFFFFF;text-align: center; width: 35px; height: 35px; padding-top: 10px;padding-right: 17px; position: absolute; top: 5px; right: 5px; z-index: 2;background: #f42424;border-bottom-left-radius: 50%;}
+.goods-guess-like .goods-promotion span{position:relative;z-index:2;font-weight:700;height:35px;line-height:35px;display:block;}
+.goods-guess-like .noguess { color: #AAA; text-align: center; padding: 50px 0;}
+
+
+/* 图片滚动
+-------------------------------------------*/
+.ds-carousel-prev-horizontal,
+.ds-carousel-next-horizontal {font-size: 16px;color:#ddd; width: 9px; height: 16px; padding: 10px 13px; position: absolute; z-index: 9; top: 40%; cursor: pointer;}
+.ds-carousel-prev-horizontal { left: 0; }
+.ds-carousel-prev-horizontal:hover,
+.ds-carousel-prev-horizontal:focus,
+.ds-carousel-prev-horizontal:active { color: #C00;}
+.ds-carousel-next-horizontal { right: 0; }
+.ds-carousel-next-horizontal:hover,
+.ds-carousel-next-horizontal:focus,
+.ds-carousel-next-horizontal:active { color: #C00}
+
+
+</style>
+<div class="goods-guess-like">
+  <div class="title">{$Think.lang.guess_your_favorite_baby}</div>
+  <div class="content">
+    {notempty name="goodslist"}
+    <ul id="mycarousel" class="ds-carousel-skin">
+      {foreach name="goodslist" item="v"}
+      <li>
+        <div class="goods-pic">
+          <a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank">
+          <img src="{:goods_cthumb($v.goods_image)}">
+          </a>
+        </div>
+        {if $v.goods_promotion_type == 1}
+        <div class="goods-promotion"><span>{$Think.lang.snap_up_goods}</span></div>
+        {elseif $v.goods_promotion_type == 2}
+        <div class="goods-promotion"><span>{$Think.lang.limited_time_discount}</span></div>
+        {/if}
+        <dl class="goods-info">
+          <dt><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" title="{$v.goods_name}" target="_blank">{$v.goods_name}</a></dt>
+          <dd>
+            <div>¥<em>{:ds_price_format($v.goods_promotion_price)}</em></div>
+          </dd>
+        </dl>
+      </li>
+      {/foreach}
+    </ul>
+    <div class="ds-carousel-prev ds-carousel-prev-horizontal iconfont" style="display: block;">&#xe619;</div>
+    <div class="ds-carousel-next ds-carousel-next-horizontal iconfont" style="display: block;">&#xe618;</div>
+   {else /}
+    <div class="noguess">{$Think.lang.no_goods_recommended}</div>
+    {/notempty}
+  </div>
+</div>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<script type="text/javascript">
+
+
+$(function(){
+    jQuery(".goods-guess-like").slide({mainCell:".content ul",prevCell:".ds-carousel-prev",nextCell:".ds-carousel-next",effect:"left",autoPlay:true,vis:4});
+
+});
+
+</script>

+ 31 - 0
app/home/view/default_back/mall/search/goods_hot.html

@@ -0,0 +1,31 @@
+<div class="dsh-module dsh-module-style01">
+    <div class="title">
+        <h3>{$Think.lang.hot_recommendations}</h3>
+    </div>
+    <div class="content">
+        {notempty name="goods_list"}
+        <ul class="v_module_recommend">
+            {foreach name="goods_list" item="value"}
+            <li>
+                <div class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank"><img alt="{$value.goods_name}"  src="{:goods_thumb($value)}"></a> </div>
+                <dl class="goods-info">
+                    <dt>
+                    <a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" title="{$value.goods_name}" target="_blank">
+                        {if config('ds_config.groupbuy_allow') && $value['goods_promotion_type'] == 1}
+                        <span>{$Think.lang.snap_up_goods}</span>
+                        {elseif config('ds_config.promotion_allow') && $value['goods_promotion_type'] == 2 /}
+                        <span>{$Think.lang.limited_time_discount}</span>
+                        {/if}
+
+                        {$value.goods_name}
+                    </a>
+                    </dt>
+                    <dd class="goods-price">{$Think.lang.goods_class_index_store_goods_price}:<em>{$Think.lang.currency}{$value.goods_promotion_price}</em></dd>
+                    <dd class="buy-btn"><a href="{:url('Goods/index',['goods_id'=>$value.goods_id])}" target="_blank">{$Think.lang.snap_up_immediately}</a></dd>
+                </dl>
+            </li>
+            {/foreach}
+        </ul>
+        {/notempty}
+    </div>
+</div>

+ 271 - 0
app/home/view/default_back/mall/search/search.html

@@ -0,0 +1,271 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<script src="{$Think.HOME_SITE_ROOT}/js/search_goods.js"></script>
+<div class="dsh-container wrapper" >
+  <div class="left">
+    {notempty name="goods_class_array"}
+    <div class="dsh-module dsh-module-style02">
+      <div class="title">
+        <h3>{$Think.lang.category_filtering}</h3>
+      </div>
+      <div class="content">
+        <ul id="files" class="tree">
+          {foreach name="goods_class_array" item="value"}
+          <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Search/index',['cate_id'=>$value.gc_id,'keyword'=>$Request.param.keyword])}" {if condition="$value.gc_id eq $Request.param.cate_id"}class="selected"{/if}>{$value.gc_name}</a>
+            {notempty name="$value.class2"}
+            <ul>
+              {foreach name="$value.class2" item="val"}
+              <li><i class="tree-parent tree-parent-collapsed"></i><a href="{:url('Search/index',['cate_id'=>$val.gc_id,'keyword'=>$Request.param.keyword])}" {if condition="$val.gc_id eq $Request.param.cate_id"}class="selected"{/if}>{$val.gc_name}</a>
+                {notempty name="$val.class3"}
+                <ul>
+                  {foreach name="$val.class3" item="v"}
+                  <li class="tree-parent tree-parent-collapsed"><i></i><a href="{:url('Search/index',['cate_id'=>$v.gc_id,'keyword'=>$Request.param.keyword])}" {if condition="$v.gc_id eq $Request.param.cate_id"}class="selected"{/if}>{$v.gc_name}</a></li>
+                  {/foreach}
+                </ul>
+                {/notempty}
+              </li>
+              {/foreach}
+            </ul>
+            {/notempty}
+          </li>
+          {/foreach}
+        </ul>
+      </div>
+    </div>
+    {/notempty}
+    <!-- S 推荐展位 -->
+    <div dstype="booth_goods" class="dsh-module" style="display:none;"> </div>
+    <!-- F 同类排行 -->
+    <div stype="listhot_goods" style="display:none;"></div>
+    <!-- E 推荐展位 -->
+    <!-- 最近浏览 -->
+    <div class="dsh-module dsh-module-style03">
+      <div class="title">
+        <h3>{$Think.lang.goods_class_viewed_goods}</h3>
+      </div>
+      <div class="content">
+        <div class="dsh-sidebar-viewed" id="dshSidebarViewed">
+          <ul>
+            {notempty name="viewed_goods"}
+            {foreach name="viewed_goods" item="v" key="k" }
+            <li class="dsh-sidebar-bowers">
+              <div class="goods-pic"><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank"><img  class="lazyload" data-original="{:goods_thumb($v, 240);}" title="{$v.goods_name}" alt="{$v.goods_name}" ></a></div>
+              <dl>
+                <dt><a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank">{$v.goods_name}</a></dt>
+                <dd>{$Think.lang.currency}{$v.goods_promotion_price}</dd>
+              </dl>
+            </li>
+            {/foreach}
+            {/notempty}
+          </ul>
+        </div>
+        <a href="{:url('Membergoodsbrowse/listinfo')}" class="dsh-sidebar-all-viewed">{$Think.lang.full_browsing_history}</a></div>
+    </div>
+
+  </div>
+  <div class="right">
+    <div id="gc_goods_recommend_div" style="width:980px;"></div>
+    <?php if(!isset($goods_class_array['child']) && empty($goods_class_array['child']) && !empty($goods_class_array)){?>
+    <?php $dl=1;  //dl标记?>
+    <?php if((!empty($brand_array) && is_array($brand_array)) || (!empty($attr_array) && is_array($attr_array))){?>
+    <div class="dsh-module dsh-module-style01">
+      <div class="title">
+        <h3>
+          {notempty name="show_keyword"}
+          <em>{$show_keyword}</em> -
+          {/notempty}
+          {$Think.lang.product_screening}</h3>
+      </div>
+      <div class="content">
+        <div class="dsh-module-filter">
+            {if (isset($checked_brand) && is_array($checked_brand)) || (isset($checked_attr) && is_array($checked_attr))}
+            <dl ds_type="ul_filter">
+                <dt>{$Think.lang.goods_class_index_selected}{$Think.lang.ds_colon}</dt>
+                <dd class="list">
+                    {notempty name="checked_brand"}
+                    {foreach name="checked_brand" item="val" key="key" }
+                    <span class="selected" dstype="span_filter">{$Think.lang.goods_class_index_brand}:<em>{$val.brand_name}</em><i data-uri="{:removeParam(array('b_id' => $key))}">X</i></span>
+                    {/foreach}
+                    {/notempty}
+                    {notempty name="checked_attr"}
+                    {foreach name="checked_attr" item="val"}
+                    <span class="selected" dstype="span_filter">{$val.attr_name}:<em>{$val.attrvalue_name}</em><i data-uri="{:removeParam(array('a_id' => $val['attrvalue_id']))}">X</i></span>
+                    {/foreach}
+                    {/notempty}
+                </dd>
+            </dl>
+            {/if}
+          {notempty name="brand_array"}
+          <dl>
+              <dt>{$Think.lang.goods_class_index_brand}{$Think.lang.ds_colon}</dt>
+              <dd class="list">
+                  <ul class="dsh-brand-tab" dstype="ul_initial" style="display:none;">
+                      <li data-initial="all"><a href="javascript:void(0);">{$Think.lang.all_brands}<i class="arrow"></i></a></li>
+                      {notempty name="initial_array"}
+                      {foreach name="initial_array" item="val" }
+                      <li data-initial="{$val}"><a href="javascript:void(0);">{$val}<i class="arrow"></i></a></li>
+                      {/foreach}
+                      {/notempty}
+                  </ul>
+                  <div id="dsBrandlist">
+                      <ul class="dsh-brand-con" dstype="ul_brand">
+                          {php}$i = 0;{/php}
+                          {foreach name="brand_array" item="v" key="k" }
+                          {php}$i++;{/php}
+                          <li data-initial="{$v.brand_initial}" {if $i > 14}style="display:none;"{/if}>
+                              <a href="{:replaceParam(array('b_id' => $k))}">
+                                  {if $v.brand_showtype == 0}
+                                  <img  class="lazyload" data-original="{:brand_image($v['brand_pic'])}" alt="{$v.brand_name}" /> <span>{$v.brand_name}</span>
+                                  {else/}
+                                  {$v.brand_name}
+                                  {/if}
+                              </a>
+                          </li>
+                          {/foreach}
+                      </ul>
+                  </div>
+              </dd>
+              {if count($brand_array) > 16}
+              <dd class="all"><span dstype="brand_show"><i class="iconfont">&#xe689;</i>{$Think.lang.goods_class_index_more}</span></dd>
+              {/if}
+          </dl>
+          {php}$dl++;{/php}
+          {/notempty}
+          {notempty name="attr_array"}
+          {php}$j = 0;{/php}
+          {foreach name="attr_array" item="val" key="key" }
+          {php}$j++;{/php}
+          {if !isset($checked_attr[$key]) && !empty($val['value']) && is_array($val['value'])}
+          <dl>
+            <dt>{$val.name}{$Think.lang.ds_colon}</dt>
+            <dd class="list">
+              <ul>
+                {php}$i = 0;{/php}
+                {foreach name="$val.value" item="v" key="k" }
+                {php}$i++;{/php}
+                <li {if $i>10}style="display:none" ds_type="none"{/if}><a href="<?php $a_id = ((input('param.a_id')!= '' && input('param.a_id')!= 0)?input('param.a_id').'_'.$k:$k); echo replaceParam(array('a_id' => $a_id));?>">{$v.attrvalue_name}</a></li>
+                {/foreach}
+              </ul>
+            </dd>
+            {if count($val['value']) > 10}
+            <dd class="all"><span ds_type="show"><i class="iconfont">&#xe689;</i>{$Think.lang.goods_class_index_more}</span></dd>
+            {/if}
+          </dl>
+          {/if}
+          {php}$dl++;{/php}
+          {/foreach}
+          {/notempty}
+        </div>
+      </div>
+    </div>
+    <?php } ?>
+    <div class="shop_con_list" id="main-nav-holder">
+      <nav class="sort-bar" id="main-nav">
+        <div class="pagination"></div>
+        <div class="dsh-sortbar-array"> {$Think.lang.sort}:
+          <ul>
+            <li {if $Request.param.key eq '0'}class="selected"{/if}><a href="{:dropParam(array('order', 'key'))}"  title="{$Think.lang.goods_class_index_default_sort}">{$Think.lang.goods_class_index_default}</a></li>
+            <li {if $Request.param.key eq '1'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='1'}{:replaceParam(array('key' => '1', 'order' => '1'))}{else/}{:replaceParam(array('key' => '1', 'order' => '2'))}{/if}" {if $Request.param.key=='1'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.goods_class_index_sold}<i></i></a></li>
+            <li {if $Request.param.key eq '2'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='2'}{:replaceParam(array('key' => '2', 'order' => '1'))}{else/}{:replaceParam(array('key' => '2', 'order' => '2'))}{/if}" {if $Request.param.key=='2'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.goods_class_index_click}<i></i></a></li>
+            <li {if $Request.param.key eq '3'}class="selected"{/if}><a href="{if $Request.param.order=='2' && $Request.param.key=='3'}{:replaceParam(array('key' => '3', 'order' => '1'))}{else/}{:replaceParam(array('key' => '3', 'order' => '2'))}{/if}" {if $Request.param.key=='3'}class="{if $Request.param.order==1}asc{else/}desc{/if}"{/if} >{$Think.lang.goods_class_index_price}<i></i></a></li>
+            <li><div><input id="priceMin" title={$Think.lang.lowest_price} value="{$Request.param.priceMin}" maxlength="6" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" class="input-txt"><em>-</em><input id="priceMax" title={$Think.lang.highest_price} value="{$Request.param.priceMax}" maxlength="6" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" class="input-txt"><a id="priceBtn" class="priceBtn">{$Think.lang.ds_ok}</a></div></li>
+          </ul>
+        </div>
+        <div class="dsh-sortbar-owner"><span><a href="{if $Request.param.type == '1'}{:dropParam(array('type'))}{else/}{:replaceParam(array('type' => '1'))}{/if}" {if $Request.param.type == '1'}class="selected"{/if}><i></i>{$Think.lang.platform_proprietary}</a></span></div>
+        <div class="dsh-sortbar-owner"><span><a href="{if $Request.param.gift == '1'}{:dropParam(array('gift'))}{else/}{:replaceParam(array('gift' => '1'))}{/if}" {if $Request.param.gift == '1'}class="selected"{/if}><i></i>{$Think.lang.complimentary}</a></span></div>
+        <div class="dsh-sortbar-location">{$Think.lang.location_goods}:
+          <span class="area-wrapper">
+            <input type="hidden" id="goods_area" value="{$Request.param.area_id}" />
+            <input type="hidden" id="_area" />
+            <input onclick="change_area()" type="button" class="input-btn" value="{$Think.lang.ds_ok}" />
+          </span>
+        </div>
+      </nav>
+      <!-- 商品列表循环  -->
+
+      <div>
+          
+          {include file="default/base/home/goods_squares" /}
+        
+      </div>
+      <div class="tc mt20 mb20">
+        <div class="pagination">{$show_page|raw}</div>
+      </div>
+    </div>
+
+    <!-- 猜你喜欢 -->
+    <div id="guesslike_div" style="width:980px;"></div>
+  </div>
+  <div class="clear"></div>
+</div>
+<script src="{$Think.HOME_SITE_ROOT}/js/waypoints.js"></script>
+<script src="{$Think.HOME_SITE_ROOT}/js/search_category_menu.js"></script>
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/jquery.query.js" charset="utf-8"></script>
+<script type="text/javascript">
+var defaultSmallGoodsImage = '{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.default_goods_image)}';
+var defaultTinyGoodsImage = '{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.default_goods_image)}';
+function change_area(){
+  if($.query.get('area_id')!=$('#_area').val()){
+    location.assign($.query.set('area_id', $('#_area').val()));
+  }
+}
+$(function(){
+    $('#goods_area').ds_region();
+    $('#files').tree({
+        expanded: 'li:lt(2)'
+    });
+	//品牌索引过长滚条
+    $('#dsBrandlist').perfectScrollbar({suppressScrollX:true});
+    //浮动导航  waypoints.js
+    $('#main-nav-holder').waypoint(function(event, direction) {
+        $(this).parent().toggleClass('sticky', direction === "down");
+        event.stopPropagation();
+    });
+	// 单行显示更多
+	$('span[ds_type="show"]').click(function(){
+		s = $(this).parents('dd').prev().find('li[ds_type="none"]');
+		if(s.css('display') == 'none'){
+			s.show();
+			$(this).html('<i class="iconfont">&#xe688;</i>{$Think.lang.goods_class_index_retract}');
+		}else{
+			s.hide();
+			$(this).html('<i class="iconfont">&#xe689;</i>{$Think.lang.goods_class_index_more}');
+		}
+	});
+
+
+
+        {if $Request.param.cate_id > 0}
+    $('div[dstype="booth_goods"]').load("{:url('Search/get_booth_goods',['cate_id'=>$Request.param.cate_id])}", function(){
+        $(this).show();
+    });
+	{/if}
+        {if $Request.param.cate_id > 0}
+
+    $('div[id="gc_goods_recommend_div"]').load("{:url('Search/get_hot_goods',['cate_id'=>$Request.param.cate_id])}", function(){
+        $(this).show();
+    });
+	{/if}
+	//浏览历史处滚条
+	$('#dshSidebarViewed').perfectScrollbar({suppressScrollX:true});
+
+	//猜你喜欢
+	$('#guesslike_div').load("{:url('Search/get_guesslike')}", function(){
+        $(this).show();
+    });
+    $('#priceBtn').click(function(){
+        var priceMin = $('#priceMin').val();
+        var priceMax = $('#priceMax').val();
+        location.assign($.query.set('priceMin', priceMin).set('priceMax', priceMax));
+    });
+});
+</script>
+
+
+
+
+
+
+{/block}

+ 517 - 0
app/home/view/default_back/mall/shopnearby/index.html

@@ -0,0 +1,517 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/shopnearby.css">
+<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/swiper/swiper.min.css">
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/swiper/swiper.min.js"></script> 
+<!--{if $Think.config.ds_config.mapak_type eq '1'}-->
+<script type="text/javascript">
+        window._AMapSecurityConfig = {
+            securityJsCode:"{$Think.config.ds_config.gaode_jscode}",
+        }
+</script>
+<script type="text/javascript" src="//webapi.amap.com/maps?v=2.0&key={$Think.config.ds_config.gaode_ak}"></script>
+<!--{else}-->
+<script type="text/javascript" src="{$Think.HTTP_TYPE}api.map.baidu.com/api?v=2.0&ak={$Think.config.ds_config.baidu_ak}"></script>
+<!--{/if}-->
+
+<!--[if lte IE 9]>
+<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/swiper/idangerous.swiper2.7.6.css">
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/swiper/idangerous.swiper2.7.6.min.js"></script>
+<![endif]-->
+<script>
+    var local;
+    var map;
+    var the_sc_id = 0;
+    var page = 1;
+    var lock = 1;
+    $(function () {
+        $(window).bind("scroll", function () {
+            var sTop = $(window).scrollTop();
+            sTop = parseInt(sTop);
+
+            if ((sTop + 500) > $('#get_more').offset().top) {
+                more_store();
+                //console.log($('#get_more').offset().top);
+                //console.log(sTop);
+            }
+        })
+
+        mySwiper=new Swiper('.swiper-container', {
+            slidesPerView: 9,
+            paginationClickable: true,
+            spaceBetween: 0,
+            // 如果需要前进后退按钮
+            nextButton: '.swiper-button-next',
+            prevButton: '.swiper-button-prev',
+
+        })
+
+  $('.swiper-button-prev').on('click', function(e){
+    
+	if(mySwiper.hasOwnProperty('swipePrev')){
+		e.preventDefault()
+		mySwiper.swipePrev()
+	}
+    
+  })
+  $('.swiper-button-next').on('click', function(e){
+  if(mySwiper.hasOwnProperty('swipeNext')){
+    e.preventDefault()
+    mySwiper.swipeNext()
+	}
+  })
+		if ({$Think.config.ds_config.mapak_type} == '1'){
+			map = new AMap.Map("nearby_map", {
+			    resizeEnable: true,
+				zoom:15
+			});
+			var lng = getCookie("longitude");
+			var lat = getCookie("latitude");
+			//搜索定位
+			AMap.plugin(['AMap.PlaceSearch','AMap.AutoComplete'], function(){
+			    var auto = new AMap.AutoComplete({input:"keywords"});
+			    var placeSearch = new AMap.PlaceSearch({
+			        map: map
+			    });  //构造地点查询类
+			    auto.on("select", select);//注册监听,当选中某条记录时会触发
+			    function select(e) {
+			        placeSearch.setCity(e.poi.adcode);
+			        placeSearch.search(e.poi.name);  //关键字查询查询
+			    }
+			});
+			if(!lng && !lat){
+				map = new AMap.Map("nearby_map", {
+				    resizeEnable: true,
+					zoom:15
+				});
+				//获取用户所在城市信息
+				AMap.plugin("AMap.CitySearch", function () {
+					var citySearch = new AMap.CitySearch();
+					citySearch.getLocalCity(function (status, result) {
+					  if (status === "complete" && result.info === "OK") {
+						// 查询成功,result即为当前所在城市信息
+						AMap.plugin("AMap.Geocoder", function () {
+						  var geocoder = new AMap.Geocoder({
+							// city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
+							city: result.adcode,
+						  });
+						  geocoder.getLocation(result.city, function(status1, result1) {
+							  var location = result1.geocodes[0].location;
+							  var addComp = result1.geocodes[0].addressComponent;
+							  var province = addComp.province;//获取省份
+							  var city = addComp.city;//获取城市
+							  var district = '';//区
+								var lng = location.lng;
+								var lat = location.lat;
+								
+								//初始化定位
+								var marker = new AMap.Marker({
+								    position: new AMap.LngLat(lng, lat),
+								    icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+									zoom: 15
+								});
+								map.add(marker);
+								map.panTo([lng, lat]);
+								
+								setCookie('pos_city', city, 30);
+								setCookie('pos_district', district, 30);
+								$("#pos_city").text(city);
+								$("#pos_district").text(district);
+								setCookie('longitude', lng, 30);
+								setCookie('latitude', lat, 30);
+								get_store(lng, lat);
+							});
+						});
+					  }
+					});
+				  });
+			}else{
+				map.panTo([lng, lat]);
+				//初始化定位
+				var marker = new AMap.Marker({
+				    position: new AMap.LngLat(lng, lat),
+				    icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+					zoom: 15
+				});
+				map.add(marker);
+				setCookie('longitude', lng, 30);
+				setCookie('latitude', lat, 30);
+				get_store(lng, lat);
+				var pos_city = getCookie("pos_city");
+				var pos_district = getCookie("pos_district");
+				$("#pos_city").text(pos_city);
+				$("#pos_district").text(pos_district);
+			}
+		}else{
+			map = new BMap.Map('nearby_map');
+			        map.enableScrollWheelZoom();
+			        map.enableContinuousZoom();
+			        //绑定地图单击事件
+			        //map.addEventListener("click", clickMap);
+			        var lng = getCookie("longitude");
+			        var lat = getCookie("latitude");
+			        if (!lng && !lat) {
+			            var geolocation = new BMap.Geolocation();
+			            geolocation.getCurrentPosition(function (r) {
+			                if (this.getStatus() == BMAP_STATUS_SUCCESS) {
+			                    var lng = r.point.lng;
+			                    var lat = r.point.lat;
+			
+			                    change_center(lng, lat);
+			                    var gc = new BMap.Geocoder();  //初始化,Geocoder类
+			
+			                    gc.getLocation(r.point, function (rs) {
+			                        var addComp = rs.addressComponents;
+			                        var province = addComp.province;//获取省份
+			                        var city = addComp.city;//获取城市
+			                        var district = addComp.district;//区
+			                        var street = addComp.street;//街
+			                        setCookie('pos_city', city, 30);
+			                        setCookie('pos_district', district, 30);
+			                        $("#pos_city").text(city);
+			                        $("#pos_district").text(district);
+			                    });
+			                } else {
+			                    layer.msg('failed' + this.getStatus());
+			                }
+			            }, {enableHighAccuracy: true})
+			        } else {
+			            change_center(lng, lat);
+			        }
+			        var options = {
+			            onSearchComplete: function (results) {
+			                // 判断状态是否正确
+			                if (local.getStatus() == BMAP_STATUS_SUCCESS) {
+			//                            var s = [];
+			//                            for (var i = 0; i < results.getCurrentNumPois(); i ++){
+			//                                    s.push('<p class="address_list_wrap" onclick="change_center('+results.getPoi(i).point.lng+','+results.getPoi(i).point.lat+')"><span class="address_mt">'+results.getPoi(i).title + "</span><br><span class='address_mc'> " + results.getPoi(i).address+'</span></p>');
+			//                            }
+			//                            document.getElementById("r-result").innerHTML = s.join("");
+			                    if (results.getCurrentNumPois() > 0) {
+			                        change_center(results.getPoi(0).point.lng, results.getPoi(0).point.lat);
+			                    }
+			
+			                }
+			            }
+			        };
+			        local = new BMap.LocalSearch(map, options);
+			        var pos_city = getCookie("pos_city");
+			        var pos_district = getCookie("pos_district");
+			        $("#pos_city").text(pos_city);
+			        $("#pos_district").text(pos_district);
+		}
+        
+
+    });
+    function clickMap(event) {
+
+        pinLng = event.point.lng;
+        pinLat = event.point.lat;
+        change_center(pinLng, pinLat);
+    }
+    function change_center(lng, lat) {
+        map.clearOverlays();  //清除标注  或者可以把market 放入数组
+        var point = new BMap.Point(lng, lat);
+        var marker = new BMap.Marker(point);
+        map.centerAndZoom(point, 16);
+        map.addOverlay(marker);
+        marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
+
+        setCookie('longitude', lng, 30);
+        setCookie('latitude', lat, 30);
+        get_store(lng, lat);
+    }
+    function more_store() {
+        if (lock) {
+            return;
+        }
+        lock = 1;
+        var lng = getCookie("longitude");
+        var lat = getCookie("latitude");
+        $.getJSON(HOMESITEURL + "/Shopnearby/get_Own_Store_List?longitude=" + lng + "&latitude=" + lat + "&storeclass_id=" + the_sc_id + '&page=' + page, function (data) {
+            var store_list = data
+            if (store_list) {
+                $('.store_list').show();
+                $('.ds-no-content').hide();
+                var html = '';
+                for (var k in store_list) {
+                    var goods_html = '';
+                    for (var j in store_list[k].goods_list) {
+                        var goods = store_list[k].goods_list[j];
+                        goods_html += '<img src="' + goods.goods_image + '">';
+                    }
+                    html += '<a href="' + HOMESITEURL + "/Store/index/store_id/" + store_list[k].store_id + '">' +
+                            '<div class="category_store">' +
+                            '<div class="shop_banner"></div>' +
+                            '<div class="store_info">' +
+                            '<img class="store_info_img" src="' + store_list[k].store_avatar + '">' +
+                            '<div class="store_msg">' +
+                            '<div class="store_name_wrap">' +
+                            '<div class="store_name">' + store_list[k].store_name + '</div>' +
+                            (store_list[k].is_platform_store ? ('<p class="self">{$Think.lang.proprietary}</p>') : '') +
+                            '</div>' +
+                            '<div class="announcement">' +
+                            '<div class="business_time">' +
+                            '<span>' + store_list[k].area_info + '</span>' +
+                            '</div>' +
+                            '<div class="advertisement">' +
+                            '<div class="goods-price">' + store_list[k].store_address + '</div>' +
+                            '<div class="goods-price">' + store_list[k].distance + 'm</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '<div class="goods_list">' +
+                            goods_html +
+                            '</div>' +
+                            '</div>' +
+                            '</a>';
+							if({$Think.config.ds_config.mapak_type} == '1'){
+								if(store_list[k].store_longitude != '' || store_list[k].store_latitude != ''){
+									var infoWindow = new AMap.InfoWindow({});
+									var marker = new AMap.Marker({
+									    position: new AMap.LngLat(store_list[k].store_longitude, store_list[k].store_latitude),
+									    icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+										zoom: 15
+									});
+									marker.content = '<h2 style="color:orangered;font-size:16px">'+store_list[k].store_name+'</h2><p style="font-size:14px">{$Think.lang.address}:' + store_list[k].store_address + '</p><p style="font-size:14px">{$Think.lang.the_phone}:' + store_list[k].store_phone + '</p>';
+									marker.on('click', markerClick);
+									map.add(marker);
+									 function markerClick(e) {
+										infoWindow.setContent(e.target.content);
+										infoWindow.open(map, e.target.getPosition());
+									}
+								}
+							}else{
+								var marker = new BMap.Marker(new BMap.Point(store_list[k].store_longitude,store_list[k].store_latitude));  // 创建标注
+								map.addOverlay(marker);
+								var content = '<h2 style="color:orangered;font-size:16px">'+store_list[k].store_name+'</h2><p style="font-size:14px">{$Think.lang.address}:' + store_list[k].store_address + '</p><p style="font-size:14px">{$Think.lang.the_phone}:' + store_list[k].store_phone + '</p>';
+								// 将标注添加到地图中
+								addClickHandler(content,marker);
+							}
+                }
+                $('.store_list').append(html);
+                page++;
+                lock = 0;
+            }
+        })
+    }
+	function addClickHandler(content,marker){
+		marker.addEventListener("click",function(e){
+			openInfo(content,e)}
+		);
+	}
+	function openInfo(content,e){
+	var opts = {
+		width : 250,     // 信息窗口宽度
+		height: 80,     // 信息窗口高度
+		};
+		var p = e.target;
+		var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
+		var infoWindow = new BMap.InfoWindow(content,opts);  // 创建信息窗口对象 
+		map.openInfoWindow(infoWindow,point); //开启信息窗口
+	}
+    function get_store(lng, lat) {
+        lock = 1;
+        page = 1;
+        $('.content-container').text('{$Think.lang.in_the_search}');
+        $.getJSON(HOMESITEURL + "/Shopnearby/get_Own_Store_List?longitude=" + lng + "&latitude=" + lat + "&storeclass_id=" + the_sc_id, function (data) {
+            var store_list = data
+            if (store_list) {
+                $('.store_list').show();
+                $('.ds-no-content').hide();
+                var html = '';
+                for (var k in store_list) {
+                    var goods_html = '';
+                    for (var j in store_list[k].goods_list) {
+                        var goods = store_list[k].goods_list[j];
+                        goods_html += '<img src="' + goods.goods_image + '">';
+                    }
+                    html += '<a href="' + HOMESITEURL + "/Store/index/store_id/" + store_list[k].store_id + '">' +
+                            '<div class="category_store">' +
+                            '<div class="shop_banner"></div>' +
+                            '<div class="store_info">' +
+                            '<img class="store_info_img" src="' + store_list[k].store_avatar + '">' +
+                            '<div class="store_msg">' +
+                            '<div class="store_name_wrap">' +
+                            '<div class="store_name">' + store_list[k].store_name + '</div>' +
+                            (store_list[k].is_platform_store ? ('<p class="self">{$Think.lang.proprietary}</p>') : '') +
+                            '</div>' +
+                            '<div class="announcement">' +
+                            '<div class="business_time">' +
+                            '<span>' + store_list[k].area_info + '</span>' +
+                            '</div>' +
+                            '<div class="advertisement">' +
+                            '<div class="goods-price">' + store_list[k].store_address + '</div>' +
+                            '<div class="goods-price">' + store_list[k].distance + 'm</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '</div>' +
+                            '<div class="goods_list">' +
+                            goods_html +
+                            '</div>' +
+                            '</div>' +
+                            '</a>';
+							if({$Think.config.ds_config.mapak_type} == '1'){
+								if(store_list[k].store_longitude != '' || store_list[k].store_latitude != ''){
+									var infoWindow = new AMap.InfoWindow({});
+									var marker = new AMap.Marker({
+									    position: new AMap.LngLat(store_list[k].store_longitude, store_list[k].store_latitude),
+									    icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+										zoom: 15
+									});
+									marker.content = '<h2 style="color:orangered;font-size:16px">'+store_list[k].store_name+'</h2><p style="font-size:14px">{$Think.lang.address}:' + store_list[k].store_address + '</p><p style="font-size:14px">{$Think.lang.the_phone}:' + store_list[k].store_phone + '</p>';
+									marker.on('click', markerClick);
+									map.add(marker);
+									 function markerClick(e) {
+										infoWindow.setContent(e.target.content);
+										infoWindow.open(map, e.target.getPosition());
+									}
+								}
+							}else{
+								var marker = new BMap.Marker(new BMap.Point(store_list[k].store_longitude,store_list[k].store_latitude));  // 创建标注
+								var content = '<h2 style="color:orangered;font-size:16px">'+store_list[k].store_name+'</h2><p style="font-size:14px">{$Think.lang.address}:' + store_list[k].store_address + '</p><p style="font-size:14px">{$Think.lang.the_phone}:' + store_list[k].store_phone + '</p>';
+								map.addOverlay(marker);               // 将标注添加到地图中
+								addClickHandler(content,marker);
+							}
+                }
+                $('.store_list').html(html);
+                page++;
+                lock = 0;
+            } else {
+                $('.store_list').hide();
+                $('.ds-no-content').show();
+                $('.content-container').text('{$Think.lang.no_shops}');
+            }
+        })
+    }
+    function change_map(name) {
+		if({$Think.config.ds_config.mapak_type} == '1' ){
+			if (name != '') {
+				var map = new AMap.Map("nearby_map", {
+				    resizeEnable: true,
+					zoom:15
+				});
+				AMap.plugin('AMap.Geocoder', function () {
+				      var geocoder = new AMap.Geocoder();
+				      geocoder.getLocation(name, function (status, result) {
+						  var lng = result.geocodes[0].location.lng
+						  var lat = result.geocodes[0].location.lat
+						  map.panTo([lng, lat]);
+				      });
+				});
+				$('#pos_city').text(name);
+				setCookie('pos_city', name, 30);
+			}
+		}else{
+			if (name != '') {
+			    map.centerAndZoom(name, 16);
+			    map.setCurrentCity(name);
+			    local.search(name);
+			    $('#pos_city').text(name);
+			    setCookie('pos_city', name, 30);
+			}
+		}
+        
+    }
+
+//    function city_click(type, name) {
+//        $("#pos_" + type).text(name);
+//        setCookie('pos_' + type, name, 30);
+//        change_map(name);
+//    }
+    function select_sc(storeclass_id) {
+        the_sc_id = storeclass_id;
+
+        $('.category_name .text').removeClass('green');
+        $('[data-id=' + storeclass_id + ']').parent().addClass('green');
+
+        var lng = getCookie("longitude");
+        var lat = getCookie("latitude");
+        get_store(lng, lat);
+    }
+</script>
+<div class="main_content">
+    <div class="choose-city-div" style="display: none; ">
+        <div class="city-content">
+            <div class="header">
+                <div class="title">{$Think.lang.your_city}</div>
+                <span class="close_div" onclick="$('.choose-city-div').hide();$('.choose-city-overlay').hide();">X</span>
+            </div>
+            <div class="content">
+                <div class="content-bottom">
+                    {foreach name='city_list' item='city'}
+                    <div>
+                    <div class="title">{$city.region}</div>
+                    <div class="position-list">
+                        {foreach name='city.child' item='c'}
+                        <li class="position-li " onclick="change_map('{$c.area_name}');$('.position-list li').removeClass('active');$(this).addClass('active')" >{$c.area_name}</li>
+                        {/foreach}
+                    </div>
+                    </div>
+                    {/foreach}
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="choose-city-overlay" style="display: none;"></div>
+    <div class="ds-header fixed">
+        <div class="ds-content">
+                <div class="select-location">
+                    <i class="iconfont" onclick="$('.choose-city-div').show();$('.choose-city-overlay').show();">&#xe720;</i>
+                    <span class="current-position" id="pos_city">{$Think.lang.in_the_location}...</span>
+                    <span class="choose-city" id="pos_district" style="display:none"></span>
+                </div>
+            <div class="ds-fl search" data-url="http://install.dev/index.php?m=main&c=index&a=search">
+                <input type="text" placeholder="{$Think.lang.office_building}" name="keywords" value="" id="keywords" />
+                <!--{if $Think.config.ds_config.mapak_type eq '2'}--><button class="button search-button" onclick="local.search($('#keywords').val())"><i class="iconfont">&#xe718;</i></button><!--{/if}-->
+                <ul class="shelper"></ul>
+            </div>
+            
+        </div>
+    </div>
+
+    <div class="category w1200">
+	<div class="nearby_map" id="nearby_map">
+
+        </div>
+        <div class="ds-content">
+            <div class="category_list">
+                <div class="ds-category-swiper">
+                    <div id="category-swiper-web" class="swiper-container">
+                        <div class="swiper-wrapper">
+                            <div class="category_name category_all swiper-slide my-active" onclick="select_sc(0)">
+                                <p class="text green"><a href='javascript:volid(0)' data-id="0">{$Think.lang.all_categories}</a></p>
+                            </div>
+                            {foreach name="storeclass_list" item="sc"}
+                            <div class="category_name swiper-slide " onclick="select_sc({$sc.storeclass_id})">
+                                <p class="text "><a href='javascript:volid(0)' data-id="{$sc.storeclass_id}">{$sc.storeclass_name}</a></p>
+                            </div>
+                            {/foreach}
+                        </div>
+                    </div>
+                    <div class="swiper-button-prev swiper-button-white"></div>
+                    <div class="swiper-button-next swiper-button-white"></div>
+                </div>
+            </div>
+        </div>
+
+        <div class="store_list" style="display:none">
+
+        </div>
+    </div>
+    <div id="get_more"></div>
+    <div class="ds-no-content">
+        <div class="content">
+            <div class="content-container">
+                <p>{$Think.lang.in_the_search}...</p>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+
+{/block}

+ 40 - 0
app/home/view/default_back/mall/showbargain/index.html

@@ -0,0 +1,40 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.countdown.js"></script>
+<div class="dsh-bargain w1200">
+    {notempty name="bargain_list"}
+    <div class="goods-list clearfix">
+        <ul>
+            {foreach name="bargain_list" item="value"}
+            <li>
+                <div class="goods-pic">
+                    <img class="lazyload item-img" data-original="{$value.bargain_goods_image_url}" title="{$value.bargain_goods_name}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" alt="{$value.bargain_goods_name}" />
+                    <span class="item-shadow"><img src="{$Think.HOME_SITE_URL}/qrcode?url={$value.bargain_url}"> 扫我砍价</span>
+                </div>
+                <div class="goods-name">{$value.bargain_goods_name}</div>
+                <p>
+                    <span class="bargain_time"><i class="iconfont">&#xe701;</i>{$value.bargain_time}小时有效</span>最多购{$value.bargain_limit}件
+                </p>
+                <p>
+                    <em class="bargain_floorprice">{:ds_price_format_forlist($value['bargain_floorprice'])}</em>
+                    <em class="bargain_goods_price">{:ds_price_format_forlist($value['bargain_goods_price'])}</em>
+                    <em class="countdown" data-time="{$value.bargain_endtime|date='Y-m-d H:i:s'}">
+                        距结束<span class="days">00</span>天&nbsp;<span class="hours">01</span>:<span class="minutes">56</span>:<span class="seconds">23</span>
+                    </em>
+                </p>
+            </li>
+            {/foreach}
+        </ul>
+    </div>
+    <div class="pagination">{$show_page|raw}</div>
+    {else /}
+    <div class="no_results">{$Think.lang.bargain_no_record}</div>
+    {/notempty}
+</div>
+<script type="text/javascript">
+        //倒计时JS
+        $(".countdown").each(function(){
+                $(this).countdown();
+        });
+</script>
+{/block}

+ 232 - 0
app/home/view/default_back/mall/showgroupbuy/groupbuy_detail.html

@@ -0,0 +1,232 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_group.css">
+<div class="w1200">
+  <div class="dsh-breadcrumb-layout" style="display: block;">
+  <div class="dsh-breadcrumb wrapper"> <i class="iconfont">&#xe6ff;</i> <span> <a href="{:url('Index/index')}">{$Think.lang.homepage}</a> </span> <span class="arrow">></span>
+    {if $groupbuy_info['groupbuy_is_vr']}
+    <span><a href="{:url('Showgroupbuy/vr_groupbuy_list')}">{$Think.lang.virtual_grab}</a></span>
+    {else/}
+    <span><a href="{:url('Showgroupbuy/groupbuy_list')}">{$Think.lang.online_grab}</a></span>
+    {/if}
+    <span class="arrow">></span> <span>{$groupbuy_info.groupbuy_name}</span> </div>
+</div>
+<div class="dsg-container wrapper">
+    <div class="dsg-main {$groupbuy_info.state_flag}">
+      <div class="dsg-group">
+        
+        <div class="dsg-item">
+          <div class="pic"><img src="{:groupbuy_thumb($groupbuy_info['groupbuy_image'],'max')}" alt=""></div>
+          <div class="info" id="main-nav-holder">
+            <h2>{$groupbuy_info.groupbuy_name}</h2>
+            <h3>{$groupbuy_info.groupbuy_remark}</h3>
+            <div class="button"><span><em>{$Think.lang.currency}{$groupbuy_info.groupbuy_price}</em><del>{$Think.lang.currency}{$groupbuy_info.goods_price}</del></span><a href="{$groupbuy_info.goods_url}" target="_blank">{$groupbuy_info.button_text}&nbsp;&nbsp;&nbsp;&nbsp;<i class="iconfont">&#xe687;</i></a></div>
+
+            <div class="require">
+              <h4>{gt name='buy_limit' value='0'}{$Think.lang.maximum_purchase_per_person}<em>{$buy_limit}</em>{$Think.lang.piece},{else/}{$Think.lang.limited_quantity}{/gt}<em>{php}echo $groupbuy_info['virtual_quantity']+$groupbuy_info['groupbuy_buy_quantity'];{/php}</em>{$Think.lang.people_have_been_robbed}</h4>
+            </div>
+            <div class="time">
+              {notempty name="groupbuy_info.count_down"}
+              <!-- 倒计时 距离本期结束 -->
+              <i class="iconfont">&#xe736;</i>{$Think.lang.remaining_time}:<span id="d1">0</span><strong>{$Think.lang.text_tian}</strong><span id="h1">0</span><strong>{$Think.lang.text_hour}</strong><span id="m1">0</span><strong>{$Think.lang.text_minute}</strong><span id="s1">0</span><strong>{$Think.lang.text_second}</strong>
+              <script type="text/javascript">
+                    var tms = [];
+                    var day = [];
+                    var hour = [];
+                    var minute = [];
+                    var second = [];
+
+                    tms[tms.length] = "{$groupbuy_info.count_down}";
+                    day[day.length] = "d1";
+                    hour[hour.length] = "h1";
+                    minute[minute.length] = "m1";
+                    second[second.length] = "s1";
+                    function groupbuyTakeCount() {
+                        for (var i = 0, j = tms.length; i < j; i++) {
+                            tms[i] -= 1;
+                            //计算天、时、分、秒、
+                            var days = Math.floor(tms[i] / (1 * 60 * 60 * 24));
+                            var hours = Math.floor(tms[i] / (1 * 60 * 60)) % 24;
+                            var minutes = Math.floor(tms[i] / (1 * 60)) % 60;
+                            var seconds = Math.floor(tms[i] / 1) % 60;
+                            if (days < 0)
+                                days = 0;
+                            if (hours < 0)
+                                hours = 0;
+                            if (minutes < 0)
+                                minutes = 0;
+                            if (seconds < 0)
+                                seconds = 0;
+                            //将天、时、分、秒插入到html中
+                            document.getElementById(day[i]).innerHTML = days;
+                            document.getElementById(hour[i]).innerHTML = hours;
+                            document.getElementById(minute[i]).innerHTML = minutes;
+                            document.getElementById(second[i]).innerHTML = seconds;
+                        }
+                    }
+                    setInterval(groupbuyTakeCount, 1000);
+              </script>
+              {/notempty}
+            </div>
+          </div>
+          <div class="clear"></div>
+        </div>
+        
+      </div>
+    </div>
+  <div class="dsg-layout-l">
+    
+    <div class="dsg-title-bar">
+      <ul class="tabs-nav">
+        <li class="tabs-selected"><a href="javascript:void(0);">{$Think.lang.goods_info}</a></li>
+        <li><a href="javascript:void(0);">{$Think.lang.buyer_list}</a></li>
+        <li><a href="javascript:void(0);">{$Think.lang.product_evaluation}({$evaluate_info.all})</a></li>
+      </ul>
+    </div>
+      <div class="dsg-detail-content">
+          {if $groupbuy_info['groupbuy_is_vr']}
+          <div class="dsg-instructions">
+              <h4>{$Think.lang.use_statement}</h4>
+              <ul>
+                  <li>
+                      {$Think.lang.explanatory_text1}
+                      <time>{$groupbuy_info.groupbuy_endtime|date="Y-m-d H:i:s"}</time>
+                      {if $goods_info['virtual_indate'] > 0}
+                      {$Think.lang.explanatory_text2}<time>{$goods_info.virtual_indate|date="Y-m-d H:i"}</time>
+                      {$Think.lang.explanatory_text3}
+                      {/if}
+                      。
+                  </li>
+                  <li>{$Think.lang.explanatory_text4}</li>
+                  {if $buy_limit > 0}
+                  <li>{$Think.lang.explanatory_text5}<strong>{$buy_limit}</strong>{$Think.lang.explanatory_text6}</li>
+                  {/if}
+              </ul>
+          </div>
+          {/if}
+          <div class="dsg-intro">{:htmlspecialchars_decode($groupbuy_info.groupbuy_intro)}</div>
+      </div>
+    <div id="groupbuy_order" class="dsg-detail-content hide"></div>
+    <div class="dsg-detail-content hide">
+      <div class="dsg-evaluate">
+        <div class="top">
+          <div class="rate">
+            <p><strong>{$evaluate_info.good_percent}</strong><sub>%</sub>{$Think.lang.praise}</p>
+            <span>{$Think.lang.common}{$evaluate_info.all}{$Think.lang.people_participation_score}</span></div>
+          <div class="percent">
+            <dl>
+              <dt>{$Think.lang.praise}<em>({$evaluate_info.good_percent}%)</em></dt>
+              <dd><i style="width: {$evaluate_info.good_percent}%"></i></dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.medium_rating}<em>({$evaluate_info.normal_percent}%)</em></dt>
+              <dd><i style="width: {$evaluate_info.normal_percent}%"></i></dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.poor_rating}<em>({$evaluate_info.bad_percent}%)</em></dt>
+              <dd><i style="width: {$evaluate_info.bad_percent}%"></i></dd>
+            </dl>
+          </div>
+          <div class="btns"><span>{$Think.lang.goods_evaluated}</span>
+            <p><a href="{if $groupbuy_info['groupbuy_is_vr']}{:url('Membervrorder/index')}{else/}{:url('Memberorder/index')}{/if}" class="dsg-btn dsg-btn-orange" target="_blank"><i class="iconfont">&#xe71b;</i>{$Think.lang.evaluation_goods}</a></p>
+          </div>
+        </div>
+        <!-- 商品评价内容部分 -->
+        <div id="groupbuy_evaluate" class="dsg-evaluate-main"></div>
+      </div>
+    </div>
+  </div>
+  <div class="dsg-layout-r">
+
+      {if !$store_info['is_platform_store'] || $groupbuy_info['groupbuy_is_vr']}
+      <div class="dsg-store">
+          <div class="title">{$Think.lang.store_info}</div>
+          <div class="content">
+              <div class="dsg-store-info">
+                  <dl class="name">
+                      <dt>{$Think.lang.captions_merchants|raw}:</dt>
+                      <dd> {$groupbuy_info.store_name}</dd>
+                  </dl>
+                  {if !$store_info['is_platform_store']}
+                  <dl class="all-rate">
+                      <dt>{$Think.lang.composite_score}:</dt>
+                      <dd>
+                          <div class="rating"><span style=" width:{$store_info.store_credit_percent}%"></span></div>
+                          <em>{$store_info.store_credit_average}</em>{$Think.lang.credit_unit} </dd>
+                  </dl>
+                  <div class="detail-rate">
+                      <h5><strong>{$Think.lang.store_dynamic_score}</strong>{$Think.lang.compared_with_industry}</h5>
+                      <ul class="rate">
+                          {foreach name="$store_info.store_credit" item="value" }
+                          <li> {$value.text}<span class="credit">{$value.credit} {$Think.lang.credit_unit}</span> <span class="{$value.percent_class|default=''}"><i></i>{$value.percent_text|default=''}<em>{$value.percent|default=''}</em></span> </li>
+                          {/foreach}
+                      </ul>
+                  </div>
+                  {/if}
+                  <dl class="messenger">
+                      <dt>{$Think.lang.online_customer_service}:</dt>
+                      <dd member_id="{$store_info.member_id}">
+                          {notempty name="$store_info.store_qq"}
+                          <a target="_blank" href="{$Think.HTTP_TYPE}wpa.qq.com/msgrd?v=3&uin={$store_info.store_qq}&site=qq&menu=yes" title="QQ: {$store_info.store_qq}"><img border="0" src="{$Think.HTTP_TYPE}wpa.qq.com/pa?p=2:{$store_info.store_qq}:52" style=" vertical-align: middle;"/></a>
+                          {/notempty}
+                          {notempty name="store_info.store_ww"}
+                          <a target="_blank" href="http://amos.im.alisoft.com/msg.aw?v=2&amp;uid={$store_info.store_ww}&site=cntaobao&s=1; ?>" ><img border="0" src="http://amos.im.alisoft.com/online.aw?v=2&uid={$store_info.store_ww}&site=cntaobao&s=2;?>" alt="{$Think.lang.ds_message_me}" style=" vertical-align: middle;"/></a>
+                          {/notempty}
+                      </dd>
+                  </dl>
+                  <div class="goto"> <a href="{:url('Store/index',['store_id'=>$groupbuy_info.store_id])}" >{$Think.lang.enter_stores}</a></div>
+              </div>
+          </div>
+      </div>
+      {/if}
+
+    <div class="dsg-module-sidebar">
+      <div class="title">{$Think.lang.current_hot}</div>
+      <div class="content">
+        <div class="dsg-group-command">
+          {php}$hot_groupbuy_count = 1;{/php}
+          {notempty name="commended_groupbuy_list"}
+          {foreach name="commended_groupbuy_list" item="hot_groupbuy" }
+          <dl {if $hot_groupbuy_count === 1}style="border:none"{/if}{php}$hot_groupbuy_count++;{/php} >
+            <dt class="name"><a href="{$hot_groupbuy.groupbuy_url}" target="_blank">{$hot_groupbuy.groupbuy_name}</a></dt>
+            <dd class="pic-thumb"><a href="{$hot_groupbuy.groupbuy_url}" target="_blank"><img src="{:groupbuy_thumb($hot_groupbuy['groupbuy_image1'],'max')}"></a></dd>
+            <dd class="item"><a href="{$hot_groupbuy.groupbuy_url}" target="_blank">{$Think.lang.to_see}</a> <span class="price">{$Think.lang.currency}{$hot_groupbuy.groupbuy_price}</span>  </dd>
+          </dl>
+          {/foreach}
+          {/notempty}
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.ajaxContent.pack.js" type="text/javascript"></script>
+<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/jquery.raty.min.js"></script>
+<script>
+$(function(){
+    
+    //首页Tab标签卡滑门切换
+    $(".tabs-nav > li > a").on('mouseover', (function(e) {
+        if (e.target == this) {
+            var tabs = $(this).parent().parent().children("li");
+            var panels = $(this).parent().parent().parent().parent().children(".dsg-detail-content");
+            var index = $.inArray(this, $(this).parent().parent().find("a"));
+            if (panels.eq(index)[0]) {
+                tabs.removeClass("tabs-selected").eq(index).addClass("tabs-selected");
+                panels.addClass("hide").eq(index).removeClass("hide");
+            }
+        }
+    }));
+
+    $("#groupbuy_order").load("{:url('Showgroupbuy/groupbuy_order',['group_id'=>$groupbuy_info.groupbuy_id,'is_vr'=>$groupbuy_info.groupbuy_is_vr])}");
+    $("#groupbuy_evaluate").load("{:url('Showgroupbuy/groupbuy_evaluate',['commonid'=>$groupbuy_info.goods_commonid])}");
+});
+</script>
+
+</div>
+
+
+
+{/block}
+

+ 60 - 0
app/home/view/default_back/mall/showgroupbuy/groupbuy_evaluate.html

@@ -0,0 +1,60 @@
+{notempty name="goodsevallist"}
+{foreach name="goodsevallist" item="v" key="k" }
+<div id="t" class="dsg-evaluate-floor">
+  <div class="user-avatar"> <img src="{:get_member_avatar_for_id($v['geval_frommemberid'])}">  </div>
+  <dl class="detail">
+      <dt> 
+      <span class="user-name">
+          {if $v.geval_isanonymous == 1}
+          {:str_cut($v['geval_frommembername'],2)}***
+          {else /}
+          {$v.geval_frommembername}
+          {/if}
+      </span>
+      <time pubdate="pubdate">[<?php echo @date('Y-m-d',$v['geval_addtime']);?>]</time>
+    </dt>
+    <dd>{$Think.lang.user_rating}:<span class="raty" data-score="{$v.geval_scores}"></span></dd>
+    <dd class="content">{$Think.lang.evaluation_details}:<span>{$v.geval_content}</span></dd>
+      {notempty name="$v.geval_explain"}
+      <dd class="explain">{$Think.lang.explanation}:<span>{$v.geval_explain}</span></dd>
+      {/notempty}
+      {notempty name="$v.geval_image"}
+      <dd> {$Think.lang.photo_posting}:
+      <ul class="photos-thumb">
+          {php}$image_array = explode(',', $v['geval_image']);{/php}
+          {foreach name="image_array" item="value" }
+          <li><a data-lightbox="lightbox-image"  href="{:sns_thumb($value, 1024)}"> <img src="{:sns_thumb($value)}"> </a></li>
+          {/foreach}
+      </ul>
+    </dd>
+    {/notempty}
+  </dl>
+</div>
+{/foreach}
+<div class="tc pr5 pb5 pr">
+  <div class="pagination"> {$show_page|raw}</div>
+</div>
+{else /}
+<div class="no-buyer">{$Think.lang.no_record}</div>
+{/notempty}
+<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/js/jquery.lightbox/css/lightbox.min.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery.lightbox/js/lightbox.min.js"></script>
+<script type="text/javascript">
+$(document).ready(function(){
+    $('.raty').raty({
+        path: "{$Think.PLUGINS_SITE_ROOT}/js/jquery.raty/img",
+        readOnly: true,
+        score: function() {
+            return $(this).attr('data-score');
+        }
+    });
+
+
+    $('#groupbuy_evaluate').find('.demo').ajaxContent({
+        event:'click', //mouseover
+        loaderType:"img",
+        loadingMsg:"{$Think.HOME_SITE_ROOT}/images/treetable/transparent.gif",
+        target:'#groupbuy_evaluate'
+    });
+});
+</script>

+ 106 - 0
app/home/view/default_back/mall/showgroupbuy/groupbuy_list.html

@@ -0,0 +1,106 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_group.css">
+<div class="w1200">
+  <form id="search_form">
+  <input id="groupbuy_class" name="groupbuy_class" type="hidden" value="{$Request.param.groupbuy_class}"/>
+  <input id="groupbuy_price" name="groupbuy_price" type="hidden" value="{$Request.param.groupbuy_price}"/>
+  <input id="groupbuy_order_key" name="groupbuy_order_key" type="hidden" value="{$Request.param.groupbuy_order_key}"/>
+  <input id="groupbuy_order" name="groupbuy_order" type="hidden" value="{$Request.param.groupbuy_order}"/>
+</form>
+<div class="dsh-breadcrumb-layout" style="display: block;">
+  <div class="dsh-breadcrumb wrapper"> <i class="iconfont">&#xe6ff;</i> <span> <a href="{:url('Index/index')}">{$Think.lang.homepage}</a> </span> <span class="arrow">></span> <span>{$Think.lang.online_grab}</span></div>
+</div>
+
+<div class="dsg-container">
+  
+
+  <div>
+    
+
+    <div class="dsg-screen">
+
+        {notempty name="$groupbuy_classes.children.0"}
+      <!-- 分类过滤列表 -->
+      <dl>
+        <dt>{$Think.lang.text_class}:</dt>
+        <dd class="nobg<?php if (!($hasChildren = !empty(input('class')))) echo ' selected'; ?>"><a href="{:dropParam(array('class', 's_class'))}">{$Think.lang.text_no_limit}</a></dd>
+        <?php $names = $groupbuy_classes['name']; foreach ($groupbuy_classes['children'][0] as $v) { ?>
+        <dd<?php if ($hasChildren && input('get.class') == $v) echo ' class="selected"'; ?>><a href="{:replaceAndDropParam(array('class' => $v), array('s_class'))}">{$names[$v]}</a></dd>
+        <?php } ?>
+        <?php if ($hasChildren && !empty($groupbuy_classes['children'][input('param.class')])) { ?>
+        <ul>
+        <?php foreach ($groupbuy_classes['children'][input('class')] as $v) { ?>
+          <li {if $Request.param.s_class == $v}class="selected"{/if}><a href="{:replaceParam(array('s_class' => $v))}">{$names[$v]}</a></li>
+          <?php } ?>
+        </ul>
+        <?php } ?>
+      </dl>
+      {/notempty}
+
+      <!-- 价格过滤列表 -->
+      <dl>
+        <dt>{$Think.lang.text_price}:</dt>
+        <dd class="{if $Request.param.groupbuy_price==''}selected{/if}"><a href="{:dropParam(array('groupbuy_price'))}">{$Think.lang.text_no_limit}</a></dd>
+        {notempty name="price_list"}
+        {foreach name="price_list" item="groupbuy_price" }
+        <dd {if $Request.param.groupbuy_price == $groupbuy_price.gprange_id}class='selected'{/if}> <a href="{:replaceParam(array('groupbuy_price' => $groupbuy_price['gprange_id']))}">{$groupbuy_price.gprange_name}</a> </dd>
+       {/foreach}
+       {/notempty}
+      </dl>
+      <dl class="dsg-sortord">
+        <dt>{$Think.lang.ds_sort}:</dt>
+        <dd class="{if $Request.param.groupbuy_order_key==''}selected{/if}"><a href="{:dropParam(array('groupbuy_order_key', 'groupbuy_order'))}">{$Think.lang.text_default}<i></i></a></dd>
+        <dd {if $Request.param.groupbuy_order_key=='1'}class='selected'{/if}><a <?php echo input('groupbuy_order_key') == '1'?"class='". (input('groupbuy_order') == 1 ? 'asc' : 'desc') ."'":'';?> href="<?php echo (input('groupbuy_order_key') == '1' && input('groupbuy_order') == '2' ? replaceParam(array('groupbuy_order_key' => '1', 'groupbuy_order' => '1')) : replaceParam(array('groupbuy_order_key' => '1', 'groupbuy_order' => '2')));?>">{$Think.lang.text_price}<i></i></a></dd>
+        <dd {if $Request.param.groupbuy_order_key=='2'}class='selected'{/if}><a <?php echo input('groupbuy_order_key') == '2'?"class='". (input('groupbuy_order') == 1 ? 'asc' : 'desc') ."'":'';?> href="<?php echo (input('groupbuy_order_key') == '2' && input('groupbuy_order') == '2' ? replaceParam(array('groupbuy_order_key' => '2', 'groupbuy_order' => '1')) : replaceParam(array('groupbuy_order_key' => '2', 'groupbuy_order' => '2')));?>">{$Think.lang.text_rebate}<i></i></a></dd>
+        <dd {if $Request.param.groupbuy_order_key=='3'}class='selected'{/if}><a <?php echo input('groupbuy_order_key') == '3'?"class='". (input('groupbuy_order') == 1 ? 'asc' : 'desc') ."'":'';?> href="<?php echo (input('groupbuy_order_key') == '3' && input('groupbuy_order') == '2' ? replaceParam(array('groupbuy_order_key' => '3', 'groupbuy_order' => '1')) : replaceParam(array('groupbuy_order_key' => '3', 'groupbuy_order' => '2')));?>">{$Think.lang.text_sale}<i></i></a></dd>
+      </dl>
+    </div>
+      <div class="dsg-nav">
+      <ul>
+        <li {if $current == 'online'}class="current"{/if}><a href="{:url('Showgroupbuy/groupbuy_list')}">{$Think.lang.ongoing}</a></li>
+        <li {if $current == 'soon'}class="current"{/if}><a href="{:url('Showgroupbuy/groupbuy_soon')}">{$Think.lang.about_to_start}</a></li>
+        <li {if $current == 'history'}class="current"{/if}><a href="{:url('Showgroupbuy/groupbuy_history')}">{$Think.lang.finished}</a></li>
+      </ul>
+    </div>
+    {notempty name="groupbuy_list"}
+    <!-- 抢购活动列表 -->
+    <div class="group-list">
+      <ul>
+        {foreach name="groupbuy_list" item="groupbuy" }
+        <li class="{$current}">
+          <div class="dsg-list-content">
+              <a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" class="pic-thumb" target="_blank">
+                  <img class="lazyload" data-original="{:groupbuy_thumb($groupbuy['groupbuy_image'],'normal')}" alt="">
+              </a>
+            <h3 class="title"><a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" target="_blank">{$groupbuy.groupbuy_name}</a></h3>
+            <?php list($integer_part, $decimal_part) = explode('.', $groupbuy['groupbuy_price']);?>
+            <div class="item-prices"> <span class="price"><i>{$Think.lang.currency}</i>{$integer_part}<em>.{$decimal_part}</em></span>
+              <div class="dock"><span class="limit-num">{$groupbuy.groupbuy_rebate}&nbsp;{$Think.lang.text_zhe}</span> <del class="orig-price">{$Think.lang.currency}{$groupbuy.goods_price}</del></div>
+              <span class="sold-num"><em><?php echo $groupbuy['groupbuy_buy_quantity']+$groupbuy['virtual_quantity'];?></em>{$Think.lang.text_piece}{$Think.lang.text_buy}</span>
+              <a href="{$groupbuy.groupbuy_url}" target="_blank" class="buy-button">{$buy_button}</a>
+            </div>
+          </div>
+        </li>
+        {/foreach}
+      </ul>
+    </div>
+    <div class="tc mt20 mb20">
+      <div class="pagination">{$show_page|raw}</div>
+    </div>
+    {else /}
+    <div class="no-content">{$Think.lang.no_groupbuy_info}</div>
+    {/notempty}
+  </div>
+</div>
+  </div>
+
+
+
+
+
+{/block}

+ 45 - 0
app/home/view/default_back/mall/showgroupbuy/groupbuy_order.html

@@ -0,0 +1,45 @@
+<table width="100%" border="0" cellspacing="0" cellpadding="0" class="dsg-buyer">
+    <thead>
+        <tr>
+            <th width="25%">{$Think.lang.text_buyer}</th>
+            <th width="15%">{$Think.lang.text_buy_count}</th>
+            <th width="15%">{$Think.lang.text_unit_price}</th>
+            <th>{$Think.lang.text_buy_time}</th>
+        </tr>
+    </thead>
+    {notempty name="order_goods_list"}
+    <tbody>
+        {foreach name="order_goods_list" item="order" }
+        <tr>
+            <td>
+                {if $order.buyer_name}{$order.buyer_name}{else/}{$order_list[$order['order_id']]['buyer_name']}{/if}
+            </td>
+            <td>{$order.goods_num}</td>
+            <td>{$Think.lang.currency}{$order.goods_price}</td>
+            <td>{php}echo $order['add_time'] ? date('Y-m-d H:i:s', $order['add_time']) : date('Y-m-d H:i:s', $order_list[$order['order_id']]['add_time']);{/php}</td>
+        </tr>
+        {/foreach}
+    </tbody>
+    <tfoot>
+        <tr>
+            <td colspan="10">
+                <div class="pagination"> {$show_page|raw}</div>
+            </td>
+        </tr>
+    </tfoot>
+    {else /}
+    <tbody>
+        <tr><td colspan="20"><p class="no-buyer">{$Think.lang.no_purchase}</p></td></tr>
+    </tbody>
+    {/notempty}
+</table>
+<script type="text/javascript">
+$(document).ready(function(){
+    $('#groupbuy_order').find('ul.pagination li a').ajaxContent({
+        event:'click',
+        loaderType:"img",
+        loadingMsg:"{$Think.HOME_SITE_ROOT}/images/treetable/transparent.gif",
+        target:'#groupbuy_order'
+    });
+});
+</script>

+ 98 - 0
app/home/view/default_back/mall/showgroupbuy/groupbuy_vr_list.html

@@ -0,0 +1,98 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_group.css">
+<div class="w1200">
+
+  <div class="dsh-breadcrumb-layout" style="display: block;">
+  <div class="dsh-breadcrumb wrapper"> <i class="iconfont">&#xe6ff;</i> <span> <a href="{:url('Index/index')}">{$Think.lang.homepage}</a> </span> <span class="arrow">></span> <span>{$Think.lang.virtual_grab}</span></div>
+</div>
+
+<div class="dsg-container">
+  
+  <div>
+    
+
+    <div class="dsg-screen">
+        {notempty name="groupbuy_vr_classes"}
+        {if $groupbuy_vr_classes['children'][0]}
+        <!-- 分类过滤列表 -->
+        <dl>
+            <dt>{$Think.lang.text_class}:</dt>
+            <dd class="nobg<?php if (!($hasChildren = !empty(input('vr_class')))) echo ' selected'; ?>"><a href="{:dropParam(array('vr_class', 'vr_s_class'))}">{$Think.lang.text_no_limit}</a></dd>
+            <?php $names = $groupbuy_vr_classes['name']; foreach ($groupbuy_vr_classes['children'][0] as $v) { ?>
+            <dd<?php if ($hasChildren && input('vr_class') == $v) echo ' class="selected"'; ?>><a href="{:replaceAndDropParam(array('vr_class' => $v), array('vr_s_class'))}">{$names[$v]}</a></dd>
+            <?php } ?>
+            <?php if ($hasChildren && isset($groupbuy_vr_classes['children'][input('vr_class')])) { ?>
+            <ul>
+                <?php foreach ($groupbuy_vr_classes['children'][input('vr_class')] as $v) { ?>
+                <li<?php if (input('vr_s_class') == $v) echo ' class="selected"'; ?>><a href="{:replaceParam(array('vr_s_class' => $v))}">{$names[$v]}</a></li>
+                <?php } ?>
+            </ul>
+            <?php } ?>
+        </dl>
+        {/if}
+        {/notempty}
+
+       <!-- 价格过滤列表 -->
+      <dl>
+        <dt>{$Think.lang.text_price}:</dt>
+        <dd class="{if $Request.param.groupbuy_price==''}selected{/if}"><a href="{:dropParam(array('groupbuy_price'))}">{$Think.lang.text_no_limit}</a></dd>
+         {notempty name="price_list"}
+         {foreach name="price_list" item="groupbuy_price"}
+         <dd class="{if $Request.param.groupbuy_price == $groupbuy_price.gprange_id}selected{/if}"> <a href="{:replaceParam(array('groupbuy_price' => $groupbuy_price['gprange_id']))}">{$groupbuy_price.gprange_name}</a> </dd>
+         {/foreach}
+         {/notempty}
+      </dl>
+
+       <dl class="dsg-sortord">
+           <dt>{$Think.lang.ds_sort}:</dt>
+           <dd class="{if $Request.param.groupbuy_order_key==''}selected{/if}"><a href="{:dropParam(array('groupbuy_order_key', 'groupbuy_order'))}">{$Think.lang.text_default}<i></i></a></dd>
+           <dd class="{if $Request.param.groupbuy_order_key == '1'}selected{/if}"><a class="{if $Request.param.groupbuy_order_key == '1'}{if $Request.param.groupbuy_order == 1}asc{else/}desc{/if}{/if}" href="{if $Request.param.groupbuy_order_key == '1'}{if $Request.param.groupbuy_order == 2}{:replaceParam(array('groupbuy_order_key' => '1', 'groupbuy_order' => '1'))}{else/}{:replaceParam(array('groupbuy_order_key' => '1', 'groupbuy_order' => '2'))}{/if}{/if}">{$Think.lang.text_price}<i></i></a></dd>
+           <dd class="{if $Request.param.groupbuy_order_key == '2'}selected{/if}"><a class="{if $Request.param.groupbuy_order_key == '2'}{if $Request.param.groupbuy_order == 1}asc{else/}desc{/if}{/if}" href="{if $Request.param.groupbuy_order_key == '2'}{if $Request.param.groupbuy_order == 2}{:replaceParam(array('groupbuy_order_key' => '2', 'groupbuy_order' => '1'))}{else/}{:replaceParam(array('groupbuy_order_key' => '2', 'groupbuy_order' => '2'))}{/if}{/if}">{$Think.lang.text_rebate}<i></i></a></dd>
+           <dd class="{if $Request.param.groupbuy_order_key == '3'}selected{/if}"><a class="{if $Request.param.groupbuy_order_key == '3'}{if $Request.param.groupbuy_order == 1}asc{else/}desc{/if}{/if}" href="{if $Request.param.groupbuy_order_key == '3'}{if $Request.param.groupbuy_order == 2}{:replaceParam(array('groupbuy_order_key' => '3', 'groupbuy_order' => '1'))}{else/}{:replaceParam(array('groupbuy_order_key' => '3', 'groupbuy_order' => '2'))}{/if}{/if}">{$Think.lang.text_sale}<i></i></a></dd>
+       </dl>
+    </div>
+      <div class="dsg-nav">
+          <ul>
+              <li {if $current == 'online'}class="current"{/if}><a href="{:url('Showgroupbuy/vr_groupbuy_list')}">{$Think.lang.ongoing}</a></li>
+              <li {if $current == 'soon'}class="current"{/if}><a href="{:url('Showgroupbuy/vr_groupbuy_soon')}">{$Think.lang.about_to_start}</a></li>
+              <li {if $current == 'history'}class="current"{/if}><a href="{:url('Showgroupbuy/vr_groupbuy_history')}">{$Think.lang.finished}</a></li>
+          </ul>
+      </div>
+     {notempty name="groupbuy_list"}
+     <!-- 抢购活动列表 -->
+    <div class="group-list">
+      <ul>
+        {foreach name="groupbuy_list" item="groupbuy" }
+         <li class="{$current}">
+          <div class="dsg-list-content"> <a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" class="pic-thumb" target="_blank"><img  class="lazyload" data-original="{:groupbuy_thumb($groupbuy['groupbuy_image'],'normal')}" alt=""></a>
+            <h3 class="title"><a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" target="_blank">{$groupbuy.groupbuy_name}</a></h3>
+             <?php list($integer_part, $decimal_part) = explode('.', $groupbuy['groupbuy_price']);?>
+             <div class="item-prices"> <span class="price"><i>{$Think.lang.currency}</i>{$integer_part}<em>.{$decimal_part}</em></span>
+              <div class="dock"><span class="limit-num">{$groupbuy.groupbuy_rebate}&nbsp;{$Think.lang.text_zhe}</span> <del class="orig-price">{$Think.lang.currency}{$groupbuy.goods_price}</del></div>
+              <span class="sold-num"><em><?php echo $groupbuy['groupbuy_buy_quantity']+$groupbuy['virtual_quantity'];?></em>{$Think.lang.text_piece}{$Think.lang.text_buy}</span><a href="{$groupbuy.groupbuy_url}" target="_blank" class="buy-button">{$buy_button}</a></div>
+          </div>
+        </li>
+        {/foreach}
+      </ul>
+    </div>
+    <div class="tc mt20 mb20">
+      <div class="pagination">{$show_page|raw}</div>
+    </div>
+     {else /}
+     <div class="no-content">{$Think.lang.no_groupbuy_info}</div>
+    {/notempty}
+
+  </div>
+</div>
+   </div>
+
+
+
+
+
+
+{/block}

+ 106 - 0
app/home/view/default_back/mall/showgroupbuy/index.html

@@ -0,0 +1,106 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_group.css">
+<div class="w1200">
+    <div class="dsh-breadcrumb-layout" style="display: block;">
+  <div class="dsh-breadcrumb wrapper"> <i class="iconfont">&#xe6ff;</i> <span> <a href="{:url('Index')}">{$Think.lang.homepage}</a> </span> <span class="arrow">></span> <span>{$Think.lang.text_groupbuy}</span></div>
+</div>
+
+<div class="dsg-container clearfix">
+  <div class="dsg-category" id="dsgCategory">
+    <h3>{$Think.lang.online_grab}</h3>
+    <ul>
+        {notempty name="$groupbuy_classes.name"}
+        <?php $i = 0; $names = $groupbuy_classes['name']; foreach ((array) $groupbuy_classes['children'][0] as $v) { if (++$i > 6) break; ?>
+        <li><a href="{:url('Showgroupbuy/groupbuy_list',['class'=>$v])}">{$names[$v]}</a></li>
+        <?php } ?>
+        {/notempty}
+    </ul>
+    <h3>{$Think.lang.virtual_grab}</h3>
+    <ul>
+        {notempty name="$groupbuy_vr_classes.name"}
+        <?php $i = 0; $names = $groupbuy_vr_classes['name']; foreach ((array) $groupbuy_vr_classes['children'][0] as $v) { if (++$i > 6) break; ?>
+        <li><a href="{:url('Showgroupbuy/vr_groupbuy_list',['vr_class'=>$v])}">{$names[$v]}</a></li>
+        <?php } ?>
+        {/notempty}
+    </ul>
+  </div>
+
+    {notempty name="picArr"}
+    <div class="dsg-slides-banner">
+        <ul class="bd">
+            {foreach name="picArr" item="p" }
+            <li><a href="{$p.1}" target="_blank"><img class="lazyload" data-original="{:ds_get_pic('home/groupbuy/slider',$p.0)}" style="height: 300px"></a></li>
+            {/foreach}
+        </ul>
+        <ul class="hd">
+            {foreach $picArr as $p}
+            <li></li>
+            {/foreach}
+        </ul>
+        <a class="ctrl prev" href="javascript:void(0)">&lt;</a>
+        <a class="ctrl next" href="javascript:void(0)">&gt;</a>
+    </div>
+    {/notempty}
+</div>
+    
+<div class="group-list mt20">
+      <div class="dsg-recommend-title">
+        <h3>{$Think.lang.online_snap_up_recommendations}</h3>
+        <a href="{:url('Showgroupbuy/groupbuy_list')}" class="more">{$Think.lang.check_out_more}</a></div>
+          {notempty name="groupbuy"}
+          <ul>
+              {foreach name="groupbuy" item="groupbuy" }
+              <li class="{$current}">
+                  <div class="dsg-list-content"> <a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" class="pic-thumb" target="_blank"><img  class="lazyload" data-original="{:groupbuy_thumb($groupbuy['groupbuy_image'],'normal')}" alt=""></a>
+                      <h3 class="title"><a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" target="_blank">{$groupbuy.groupbuy_name}</a></h3>
+                      <?php list($integer_part, $decimal_part) = explode('.', $groupbuy['groupbuy_price']);?>
+                      <div class="item-prices"> <span class="price"><i>{$Think.lang.currency}</i>{$integer_part}<em>.{$decimal_part}</em></span>
+                          <div class="dock"><span class="limit-num">{$groupbuy.groupbuy_rebate}&nbsp;{$Think.lang.text_zhe}</span> <del class="orig-price">{$Think.lang.currency}{$groupbuy.goods_price}</del></div>
+                          <span class="sold-num"><em><?php echo $groupbuy['groupbuy_buy_quantity']+$groupbuy['virtual_quantity'];?></em>{$Think.lang.text_piece}{$Think.lang.text_buy}</span><a href="{$groupbuy.groupbuy_url}" target="_blank" class="buy-button">{$Think.lang.groupbuy_buy}</a></div>
+                  </div>
+              </li>
+              {/foreach}
+          </ul>
+          {else /}
+          <div class="norecommend">{$Think.lang.snap_up_recommendations_wirelessly}</div>
+          {/notempty}
+    </div>
+    <div class="group-list mt30">
+      <div class="dsg-recommend-title">
+        <h3>{$Think.lang.virtual_panic_buying_recommendation}</h3>
+        <a href="{:url('Showgroupbuy/vr_groupbuy_list')}" class="more">{$Think.lang.check_out_more}</a></div>
+        {notempty name="vr_groupbuy"}
+        <ul>
+        {foreach name="vr_groupbuy" item="groupbuy" }
+            <li class="{$current}">
+          <div class="dsg-list-content"> <a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" class="pic-thumb" target="_blank"><img class="lazyload" data-original="{:groupbuy_thumb($groupbuy['groupbuy_image'],'normal')}" alt=""></a>
+            <h3 class="title"><a title="{$groupbuy.groupbuy_name}" href="{$groupbuy.groupbuy_url}" target="_blank">{$groupbuy.groupbuy_name}</a></h3>
+              <?php list($integer_part, $decimal_part) = explode('.', $groupbuy['groupbuy_price']);?>
+              <div class="item-prices"> <span class="price"><i>{$Think.lang.currency}</i>{$integer_part}<em>.{$decimal_part}</em></span>
+              <div class="dock"><span class="limit-num">{$groupbuy.groupbuy_rebate}&nbsp;{$Think.lang.text_zhe}</span> <del class="orig-price">{$Think.lang.currency}{$groupbuy.goods_price}</del></div>
+              <span class="sold-num"><em><?php echo $groupbuy['groupbuy_buy_quantity']+$groupbuy['virtual_quantity'];?></em>{$Think.lang.text_piece}{$Think.lang.text_buy}</span><a href="{$groupbuy.groupbuy_url}" target="_blank" class="buy-button">{$Think.lang.groupbuy_buy}</a></div>
+          </div>
+        </li>
+            {/foreach}
+      </ul>
+        {else /}
+        <div class="norecommend">{$Think.lang.no_virtual_panic_buying_recommendation}</div>
+        {/notempty}
+    </div>
+</div>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<script>
+    //轮播
+    jQuery(".dsg-slides-banner").slide({mainCell: "ul", autoPlay: true, delayTime: 500,interTime: 5000});
+</script>
+
+
+
+
+
+
+{/block}

+ 28 - 0
app/home/view/default_back/mall/showhelp/store_help.html

@@ -0,0 +1,28 @@
+{extend name="default/base/base_joinin" /}
+{block name="joinin_main"}
+
+
+<div class="breadcrumb">
+    <span class="iconfont">&#xe6ff;</span>
+    <span><a href="{$Think.HOME_SITE_URL}">{$Think.lang.homepage}</a></span>
+    <span class="arrow">></span>
+    <span>{$Think.lang.business_management_center}</span></div>
+<div class="main">
+    <div class="sidebar">
+        <div class="title">
+            <h3>{$Think.lang.business_management_center}</h3>
+        </div>
+        {include file="default/mall/showhelp/store_help_left" /}
+    </div>
+    <div class="right-layout">
+        <div class="article-con">
+            <h1>{$help.help_title}</h1>
+            <h2>{$Think.lang.update_time} {:date('Y-m-d',$help.help_updatetime)}</h2>
+            <div class="default">
+                <p>{:htmlspecialchars_decode($help.help_info)}</p>
+            </div>
+        </div>
+    </div>
+</div>
+
+{/block}

+ 54 - 0
app/home/view/default_back/mall/showhelp/store_help_left.html

@@ -0,0 +1,54 @@
+<div class="content">
+  {notempty name="help_list"}
+      {foreach name="help_list" item="val"}
+      <dl show_id="{$val.helptype_id}">
+        <dt onclick="show_list('{$val.helptype_id}');">
+            <i class="iconfont {$val.helptype_id == $helptype_id ? 'down':'right'}"></i>{$val.helptype_name}
+        </dt>
+        <dd style="display: {$val.helptype_id == $helptype_id ? 'block':'none'};">
+            <ul>
+                {notempty name="val.help_list"}
+                {foreach name="val.help_list" item="v"}
+                <li class="{$v.help_id == $help_id ? 'curren' : ''}">
+                    <i class="iconfont">&#xe6dc;</i>
+                    {empty name="v.help_url"}
+                    <a href="{:url('Showhelp/index',['t_id'=>$v.helptype_id,'help_id'=>$v.help_id])}">{$v.help_title}</a>
+                    {else /}
+                    <a href="{$v.help_url}">{$v.help_title}</a>
+                    {/empty}
+                </li>
+                {/foreach}
+                {/notempty}
+            </ul>
+        </dd>
+      </dl>
+  {/foreach}
+  {/notempty}
+    </div>
+    <div class="title">
+      <h3>{$Think.lang.platform_contact}</h3>
+    </div>
+    <div class="content">
+        <ul>
+          {notempty name="phone_array"}
+          {foreach name="phone_array" item="val"}
+          <li>{$Think.lang.phone}{$val}</li>
+         {/foreach}
+          {/notempty}
+          <li>{$Think.lang.email}{$Think.lang.ds_colon}{$Think.config.ds_config.site_email}</li>
+        </ul>
+    </div>
+
+<script type="text/javascript">
+    function show_list(t_id) {
+        var obj = $(".sidebar dl[show_id='" + t_id + "']");
+        var show_class = obj.find("dt i").attr('class');
+        if (show_class == 'right') {
+            obj.find("dd").show();
+            obj.find("dt i").attr('class', 'down');
+        } else {
+            obj.find("dd").hide();
+            obj.find("dt i").attr('class', 'right');
+        }
+    }
+</script>

+ 167 - 0
app/home/view/default_back/mall/showjoinin/index.html

@@ -0,0 +1,167 @@
+{extend name="default/base/base_joinin" /}
+{block name="joinin_main"}
+
+
+<div class="join_banner">
+    <div class="bd">
+        <ul>
+            {notempty name="pic_list"}
+            {php}$pic_n = 0;{/php}
+            {foreach name="pic_list" item="val" key="key" }
+            {if !empty($val)}
+            {php}$pic_n++;{/php}
+            <li style="background-image: url({:ds_get_pic('admin/Storejion',$val)})" ></li>
+            {/if}
+            {/foreach}
+            {/notempty}
+        </ul>
+    </div>
+    {gt name='pic_n' value='1'}
+    <div class="hd">
+        <ul>
+            {for start='0' end="$pic_n"}
+            <li><i></i></li>
+            {/for}
+        </ul>
+    </div>
+    <a class="prev" href="javascript:void(0)"></a>
+    <a class="next" href="javascript:void(0)"></a>
+    <script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+    <script>
+        jQuery(".join_banner").slide({mainCell: ".bd ul", autoPlay: true, interTime: 4000});
+    </script>
+    {/gt}
+</div>
+
+<div class="indextip">
+    <div class="container"> <span class="title"><i class="iconfont">&#xe651;</i>
+    <h3>{$Think.lang.prompt}</h3>
+    </span>
+        <span class="content">{$show_txt}</span>
+    </div>
+</div>
+
+<div class="index-notice-box">
+    <ul class="index-notice clearfix">
+        <li>
+            <h1>{$Think.lang.application_for_entry}</h1>
+            <p>{$Think.lang.fill_in_entry_information}</p>
+            <a href="{if session('is_login') eq '1'}{if $joinin_detail.store_type eq 0}{:url('Sellerjoinin/index')}{else}{:url('Sellerjoininc2c/index')}{/if}{else/}javascript:login_dialog();{/if}" class="index-notice-btn setUpShop">{$Think.lang.my_settled_in}</a>
+        </li>
+        <li>
+            <h1>{$Think.lang.settled_in_progress}</h1>
+            <p>{$Think.lang.understanding_store_opening_condition}</p>
+            <a href="{if session('is_login') eq '1'}{if $joinin_detail.store_type eq 0}{:url('Sellerjoinin/index')}{else}{:url('Sellerjoininc2c/index')}{/if}{else/}javascript:login_dialog();{/if}" class="index-notice-btn merchantsSettled">{$Think.lang.check_your_progress}</a>
+        </li>
+        <li class="index-notice-last"><h1>{$Think.lang.information_announcement}</h1>
+            <ul class="index-list">
+                {foreach $index_articles as $i_a}
+                <li>
+                    <a target="_blank" title="{$i_a.article_title}" href="{if $i_a.article_url !=''}{$i_a.article_url}{else /}{:url('Article/show',['article_id'=>$i_a.article_id])}{/if}">
+                        {$i_a.article_title}
+                    </a>
+                    <em>{$Think.lang.important}</em>
+                </li>
+                {/foreach}
+            </ul>
+        </li>
+    </ul>
+</div>
+
+<div class="con-floor-3 tenants-con-floor-3">
+    <div class="con-topic">{$Think.lang.in_the_process}</div>
+    <div class="w1190">
+        <div class="con-floor-3-single">
+            <i class="iconfont">&#xe672;</i>
+            <div>
+                <h2>{$Think.lang.submit_entry_information}</h2>
+                <em>{$Think.lang.about}2{$Think.lang.hours}</em>
+                <ul>
+                    <li>{$Think.lang.fill_enterprise_information}</li>
+                    <li>{$Think.lang.select_store_type}</li>
+                    <li>{$Think.lang.fill_brand_information}</li>
+                    <li>{$Think.lang.member_map_store_name}</li>
+                    <li>{$Think.lang.confirm_the_contract}</li>
+                </ul>
+            </div>
+        </div>
+        <i class="con-floor-3-arrow"></i>
+        <div class="con-floor-3-single">
+            <i class="iconfont">&#xe736;</i>
+            <div>
+                <h2>{$Think.lang.merchants_waiting_review}</h2>
+                <em>3-6{$Think.lang.working_days}</em>
+                <ul>
+                    <li>{$Think.lang.qualification_audit}</li>
+                    <li>{$Think.lang.brand_audit}</li>
+                </ul>
+            </div>
+        </div>
+        <i class="con-floor-3-arrow"></i>
+        <div class="con-floor-3-single">
+            <i class="iconfont">&#xe65c;</i>
+            <div>
+                <h2>{$Think.lang.pay_fee}</h2>
+                <em>{$Think.lang.about}10{$Think.lang.minutes}</em>
+                <ul>
+                    <li>{$Think.lang.real_name_authentication}</li>
+                    <li>{$Think.lang.sign_agency_agreement}</li>
+                    <li>{$Think.lang.payment_fee}</li>
+                </ul>
+            </div>
+        </div>
+        <i class="con-floor-3-arrow"></i>
+        <div class="con-floor-3-single">
+            <i class="iconfont">&#xe74f;</i>
+            <div>
+                <h2>{$Think.lang.store_launch}</h2>
+                <em>{$Think.lang.about}20{$Think.lang.minutes}</em>
+                <ul>
+                    <li>{$Think.lang.release_of_goods}</li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="main mt30">
+    <h2 class="index-title">{$Think.lang.entry_guide}</h2>
+    <div class="joinin-info">
+        <ul class="tabs-nav">
+            {notempty name="help_list"}
+            {php}$i = 0;{/php}
+            {foreach name="help_list" item="val" key="key" }
+            {php}$i++;{/php}
+            <li class="{if $i==1}tabs-selected{/if}">
+                <h3>{$val.help_title}</h3>
+            </li>
+            {/foreach}
+            {/notempty}
+        </ul>
+        {notempty name="help_list"}
+        {php}$i = 0;{/php}
+        {foreach name="help_list" item="val" key="key" }
+        {php}$i++;{/php}
+        <div class="tabs-panel {if $i!=1}tabs-hide{/if}">{:htmlspecialchars_decode($val.help_info)}</div>
+        {/foreach}
+        {/notempty}
+    </div>
+</div>
+
+<script>
+$(document).ready(function(){
+    $(".tabs-nav > li > h3").bind('mouseover', (function(e) {
+    	if (e.target == this) {
+    		var tabs = $(this).parent().parent().children("li");
+    		var panels = $(this).parent().parent().parent().children(".tabs-panel");
+    		var index = $.inArray(this, $(this).parent().parent().find("h3"));
+    		if (panels.eq(index)[0]) {
+    			tabs.removeClass("tabs-selected").eq(index).addClass("tabs-selected");
+    			panels.addClass("tabs-hide").eq(index).removeClass("tabs-hide");
+    		}
+    	}
+    }));
+});
+</script>
+
+
+{/block}

+ 41 - 0
app/home/view/default_back/mall/showpintuan/index.html

@@ -0,0 +1,41 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.countdown.js"></script>
+<div class="dsh-pintuan w1200">
+    {notempty name="pintuan_list"}
+    <div class="goods-list clearfix">
+        <ul>
+            {foreach name="pintuan_list" item="value"}
+            <li>
+                <div class="goods-pic">
+                    <img class="lazyload item-img" data-original="{$value.pintuan_image}" title="{$value.pintuan_goods_name}" src="{$Think.HOME_SITE_ROOT}/images/loading.gif" alt="{$value.pintuan_goods_name}" />
+                    <span class="item-shadow"><img src="{$Think.HOME_SITE_URL}/qrcode?url={$value.pintuan_url}"> 扫我拼团</span>
+                </div>
+                <div class="goods-name">{$value.pintuan_goods_name}</div>
+                <p>
+                    <span class="limit-num"><i class="iconfont">&#xe701;</i>{$value.pintuan_limit_number}人团</span>已组团{$value.pintuan_count}件
+                </p>
+                <p>
+                    <em class="goods-price">{:ds_price_format_forlist($value['pintuan_zhe_price'])}</em>
+                    <em class="zhe-price">{:ds_price_format_forlist($value['pintuan_goods_price'])}</em>
+                    <em class="countdown" data-time="{$value.pintuan_end_time|date='Y-m-d H:i:s'}">
+                        距结束<span class="days">00</span>天&nbsp;<span class="hours">01</span>:<span class="minutes">56</span>:<span class="seconds">23</span>
+                    </em>
+                </p>
+            </li>
+            {/foreach}
+        </ul>
+    </div>
+    <div class="pagination">{$show_page|raw}</div>
+    {else /}
+    <div class="no_results">{$Think.lang.pintuan_no_record}</div>
+    {/notempty}
+</div>
+<script type="text/javascript">
+        //倒计时JS
+        $(".countdown").each(function(){
+                $(this).countdown();
+        });
+</script>
+
+{/block}

+ 15 - 0
app/home/view/default_back/mall/special/index.html

@@ -0,0 +1,15 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/editable_page.css">
+{foreach name='config_list' item='item' key='key'}
+<div data-type="html" data-id="{$key+1}">{$item.html|raw}</div>
+{/foreach}
+<script>
+    {foreach name='config_list' item='item' key='key'}
+    if(typeof(window['loadHtml{$item.val.editable_page_model_id}'])!='undefined'){
+        window['loadHtml{$item.val.editable_page_model_id}']($('*[data-type="html"][data-id={$key+1}]'))
+    }
+    {/foreach}
+</script>
+{/block}

+ 244 - 0
app/home/view/default_back/mall/storelist/store_list.html

@@ -0,0 +1,244 @@
+{extend name="default/base/base_home" /}
+{block name="mall_main"}
+
+
+
+<script>
+var PURL = '{$purl}';
+
+$(document).ready(function(){
+    $('#area_info').ds_region();
+});
+</script>
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/store_list.css">
+
+<style type="text/css">
+.ds-carousel-skin .ds-carousel-clip-horizontal { width: 1000px !important; height: 225px !important;}
+.ds-carousel-skin .ds-carousel-item { height: 225px !important;}
+.ds-carousel-skin .ds-carousel-container-horizontal { width: 1000px !important;}
+</style>
+
+<script type="text/javascript" src="{$Think.PLUGINS_SITE_ROOT}/jquery.query.js" charset="utf-8"></script>
+<script type="text/javascript">
+//<!CDATA[
+/* 替换参数 */
+function ss_replaceParam(key, value)
+{
+    location.assign($.query.set('key', key).set('order', value));
+}
+
+/* 替换参数 */
+function ss_dropParam(key1, key2)
+{
+	location.assign($.query.REMOVE(key1).REMOVE(key2));
+}
+
+/* 替换参数 */
+function ss_dropParam2(key1)
+{
+	location.assign($.query.REMOVE(key1));
+}
+
+/* 替换参数 */
+function ss_replaceParam2(key, value)
+{
+    location.assign($.query.set(key, value, value));
+}
+
+$(function (){
+    var order = '{$Request.param.order}';
+    var arrow = '';
+    var class_val = 'sort_desc';
+
+    switch (order){
+        case 'store_credit desc' : order = 'store_credit asc';  class_val = 'sort_desc'; break;
+        case 'store_credit asc'  : order = 'store_credit desc'; class_val = 'sort_asc' ; break;
+        default : order = 'store_credit asc';
+    }
+    $('#credit_grade').addClass(class_val);
+    $('#credit_grade').click(function(){query('order', order);return false;});
+}
+);
+
+function query(name, value){
+    $("input[name='"+name+"']").val(value);
+    $('#searchStore').submit();
+}
+
+//]]>
+</script>
+
+<div class="w1200">
+{notempty name='class_list'}    
+    <div class="cate_attr clearfix">
+        <div class="nav-tag">
+            <h5 class="filter-label-ab">{$Think.lang.classification}</h5>
+            <div class="cate_attr_con">
+                <div class="filter-all-ab">
+                    <a class="{empty name='Request.param.cate_id'}selected{/empty}" href="{:url('Storelist/index')}"><span>{$Think.lang.ds_all}</span></a>
+                </div>
+                <div class="district-tab">
+                    {foreach $class_list as $v}
+                    <a href="{:url('Storelist/index',['cate_id'=>$v.storeclass_id])}" class="{eq name='Request.param.cate_id' value='$v.storeclass_id'}selected{/eq}"><span>{$v.storeclass_name}</span></a>
+                    {/foreach}
+                </div>
+            </div>
+        </div>
+    </div>
+{/notempty}
+<div>
+  <div class="shop_con_list" id="main-nav-holder">
+    <nav class="ds-gl-sort-bar" id="main-nav">
+      <form id="store_list" method="GET" action="{:url('Storelist/index')}">
+        <input type="hidden" name="order" value="{$Request.param.order}"/>
+        <input type="hidden" name="cate_id" value="{$Request.param.cate_id}"/>
+        <div class="sort-bar"><!-- 排序方式S -->
+            <ul class="array">
+                <!-- 默认 -->
+                <li {if condition="$Request.param.key eq ''"}class="selected"{/if}><a href="javascript:void(0)" class="nobg" onclick="javascript:ss_dropParam('key','order');" title="{$Think.lang.goods_class_index_default_sort}">{$Think.lang.store_class_index_default}</a></li>
+                <!-- 销量 -->
+                <li {if condition="$Request.param.key eq 'store_sales'"}class="selected"{/if}><a href="javascript:void(0)" {if condition="$Request.param.key eq 'store_sales'"}{$Request.param.order}{/if} onclick="javascript:ss_replaceParam('store_sales','{if $Request.param.order=='desc' && $Request.param.key=='store_sales'}asc{else/}desc{/if}');" >{$Think.lang.store_class_index_sold}</a></li>
+                <!-- 信用 -->
+                <li {if condition="$Request.param.key eq 'store_credit'"}class="selected"{/if}><a href="javascript:void(0)" {if condition="$Request.param.key eq 'store_credit'"}{$Request.param.order}{/if} onclick="javascript:ss_replaceParam('store_credit','{if $Request.param.order=='desc' && $Request.param.key=='store_credit'}asc{else/}desc{/if}');" >{$Think.lang.store_class_index_credit}</a></li>
+            </ul>
+            <!-- 排序方式E -->
+            <div class="sidebox">
+                <h5 class="title">{$Think.lang.member_map_store_name}{$Think.lang.ds_colon}</h5>
+                <div class="selectbox">
+                    <input class="text" type="text" name="keyword" value="{$Request.param.keyword}" style=" width:150px;"/>
+                </div>
+            </div>
+            <div class="sidebox">
+                <h5><label for="area_info">{$Think.lang.store_store_location}{$Think.lang.ds_colon}</label></h5>
+                <div class="selectbox">
+                    <input id="area_info" name="area_info" type="hidden" value="{$Request.param.area_info}"/>
+                </div>
+            </div>
+            <div class="sidebox width5" style=" background-image: none">
+                <div class="selectbox">
+                    <input class="btn" type="submit" value="{$Think.lang.ds_search}" />
+                </div>
+            </div>
+        </div>
+      </form>
+    </nav>
+  </div>
+</div>
+
+{notempty name='store_list'}  
+<div class="shop-list-wall">
+    {foreach name="store_list" item="store" key="skey"}
+    <div class="shop">
+        <div class="shop-info">
+            <div class="shop-tit">
+                <a href="{:url('Store/index',['store_id'=>$store.store_id])}" target="_blank">
+                    <img src="{:get_store_logo($store.store_avatar)}" class="shop-logo">
+                </a>
+                <div class="detail">
+                    <a href="{:url('Store/index',['store_id'=>$store.store_id])}" target="_blank">
+                        <p class="shop-name">{$store.store_name}</p>
+                    </a>
+
+                    <p class="shop-rank">
+                        {empty name='store.store_credit_average'}
+                        {$Think.lang.ds_common_credit_null}
+                        {else/}
+                        {for start="0" end="$store.store_credit_average"}
+                        <span class='iconfont'>&#xe6a9;</span>
+                        {/for}
+                        {/empty}
+                    </p>
+
+                    <p class="shop-extend">
+                        <label>{$Think.lang.store_seller}:</label>
+                    </p><div class="extend-right">
+                        <a target="_blank" href="{:url('Membermessage/sendmsg',['member_id'=>$store.member_id])}">
+                            <span class="btn-link">{$store.member_name}</span>
+                        </a>
+                        {notempty name='store.store_ww'}
+                        <span class="ww-light">
+                            <a target="_blank" href="http://amos.alicdn.com/getcid.aw?v=2&amp;uid={$store.store_ww}&amp;site=cntaobao&amp;s=2&amp;groupid=0&amp;charset=utf-8">
+                                <img border="0" src="http://amos.alicdn.com/online.aw?v=2&amp;uid={$store.store_ww}&amp;site=cntaobao&amp;s=2&amp;charset=utf-8">
+                                <span></span>
+                            </a>
+                        </span>
+                        {/notempty}
+                        {notempty name='store.store_qq'}
+                        <span class="ww-light">
+                            <a target="_blank" href="{$Think.HTTP_TYPE}wpa.qq.com/msgrd?v=3&uin={$store.store_qq}&site=qq&menu=yes">
+                                <img border="0" src="{$Think.HTTP_TYPE}wpa.qq.com/pa?p=2:{$store.store_qq}:52">
+                                <span></span>
+                            </a>
+                        </span>
+                        {/notempty}
+                    </div>
+                    <p></p>
+                    <p class="like">
+                        <span>{$Think.lang.store_close_order}:<span class="num">{present name="store.num_sales_jq"}{$store.num_sales_jq}{else/}0{/present}</span></span>
+                        <span>{$Think.lang.ds_goods_num_one}<span class="num">{present name="store.goods_count"}{$store.goods_count}{else/}0{/present}</span>{$Think.lang.store_piece}</span>
+                    </p>
+                    <div class="evaluate">
+                        <label>{$Think.lang.store_class_index_praise_rate}:</label>
+                        <span>{present name="store.store_credit_percent"}{$store.store_credit_percent}%{else/}{$Think.lang.ds_common_rate_null}{/present}</span>
+                        <div class="item-icons">
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <ul class="assess">
+                {foreach name="store.store_credit" item="value"}
+                <li>
+                    <p class="assess-name">{$value.text}</p>
+                    <p class="assess-score ">
+                        <span class="average">{$value.credit}</span>
+                    </p>
+                </li>
+                {/foreach}
+            </ul>
+
+        </div>
+        <ul class="goods-wall">
+            {notempty name='store.search_list_goods'}
+            {foreach name="store.search_list_goods" item="v" key='k'}
+            <li>
+                <a href="{:url('Goods/index',['goods_id'=>$v.goods_id])}" target="_blank" title="{$v.goods_name}">
+                    <img class="goods-pic" src="{:goods_thumb($v,'240')}">
+                    <div class="mask">
+                        <span class="price">¥{$v.goods_price}</span>
+                        <span class="sell">{$Think.lang.store_class_index_sold}{$v.goods_salenum}</span>
+                    </div>
+                </a>
+            </li>
+            {/foreach}
+            {/notempty}
+
+        </ul>
+    </div>
+    {/foreach}
+</div>
+{else/}
+<div class="no_results">{$Think.lang.store_class_index_no_record}</div>
+{/notempty}
+
+<div class="pagination">{$show_page|raw} </div>
+</div>
+<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js"></script>
+<script type="text/javascript">
+$(function(){
+    jQuery('.shop-list-wall .shop').slide({mainCell:".goods-wall",autoPlay:true,effect:"leftMarquee",vis:4,interTime:50,trigger:"click"});
+
+});
+</script>
+
+
+
+
+
+
+{/block}
+
+
+

+ 112 - 0
app/home/view/default_back/member/buy/buy_address.html

@@ -0,0 +1,112 @@
+<div class="dsc-receipt-info">
+    <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.consignee_information}</h3>
+        <a href="javascript:void(0)" ds_type="buy_edit" id="edit_reciver">[{$Think.lang.modification}]</a></div>
+    <div id="addr_list" class="dsc-candidate-items">
+        <ul>
+            <li>
+                <span class="true-name">{$address_info.address_realname}</span>
+                <span class="address">{if $address_info.cityerror}<span style="color: #ff4040;vertical-align: revert;">{$Think.lang.cart_step1_city_fail}</span>{/if}{if condition="$address_info.chain_id"}[{$Think.lang.self_service_station}]{/if}{$address_info.area_info}{$address_info.address_detail}</span>
+                <span class="phone"><i class="iconfont">&#xe60e;</i>{if condition="$address_info.address_mob_phone"}{$address_info.address_mob_phone}{else}{$address_info.address_tel_phone}{/if}</span>
+            </li>
+        </ul>
+    </div>
+</div>
+
+<script type="text/javascript">
+//隐藏收货地址列表
+    function hideAddrList(addr_id, true_name, address, phone,cityerror) {
+        $('#edit_reciver').show();
+        $("#address_id").val(addr_id);
+        $("#addr_list").html('<ul><li><span style="color: #ff4040;">'+cityerror+'</span><span class="true-name">' + true_name + '</span><span class="address">' + address + '</span><span class="phone"><i class="iconfont">&#xe60e;</i>' + phone + '</span></li></ul>');
+        $('.current_box').removeClass('current_box');
+        ableOtherEdit();
+        $('#edit_payment').click();
+    }
+//加载收货地址列表
+    $('#edit_reciver').on('click', function() {
+        $(this).hide();
+        disableOtherEdit('{$Think.lang.save_consignee_information} ');
+        $(this).parent().parent().addClass('current_box');
+        var url = HOMESITEURL + '/Buy/load_addr.html';
+        $('#addr_list').load(url);
+    });
+    
+//异步显示每个店铺运费 city_id计算运费area_id计算是否支持货到付款 goods判断是否支持配送到收货地区
+    function showShippingPrice(city_id, area_id) {
+        $('#buy_city_id').val('');
+        $('#buy_city_id').val(city_id);
+        var url = HOMESITEURL + '/Buy/change_addr.html';
+        var goods = '';
+        $('*[ds_goods]').each(function(){
+            goods=$(this).attr('ds_goods');
+            
+        })
+        $.post(url, {'freight_hash': '{$freight_hash}',city_id: city_id, 'area_id': area_id,'goods':goods}, function(data) {
+            if (data.state == 'success') {
+                $('#buy_city_id').val(city_id);
+                $('#allow_offpay').val(data.allow_offpay);
+                if (data.allow_offpay_batch) {
+                    var arr = new Array();
+                    $.each(data.allow_offpay_batch, function(k, v) {
+                        arr.push('' + k + ':' + (v ? 1 : 0));
+                    });
+                    $('#allow_offpay_batch').val(arr.join(";"));
+                }
+                $('#offpay_hash').val(data.offpay_hash);
+                $('#offpay_hash_batch').val(data.offpay_hash_batch);
+                var content = data.content;
+                var amount = 0;
+                for (var i in content) {
+                    $('#eachStoreFreight_' + i).attr('data-freight',content[i])
+                    amount = amount + parseFloat(content[i]);
+                }
+                calcOrder();
+                
+                $(".dsc-bottom").html("<a href='javascript:void(0)' class='dsc-btn dsc-btn-acidblue fr'>{$Think.lang.cart_index_submit_order}</a>")
+                $('.limit').remove();
+            }else{
+                $('.limit').remove();
+                if (data.limitidarray) {
+                    $.each(data.limitidarray, function(k, v) {
+                        $(".goodsid_"+v).append('<dd class="limit"> <span  style="color:#ff4040">{$Think.lang.cart_step1_goods_fail}</span></dd>')
+                    });
+                }
+                $(".dsc-bottom").html("<span class='fr' style='color:#ff4040;margin-right:20px;font-size:18px'>{$Think.lang.cart_step1_address_fail}</span>")
+            }
+
+        }, 'json');
+    }
+    //异步获取商品自提点
+    function showChainList(area_id){
+        $('*[ds_goods]').each(function(){
+            var goods=$(this).attr('ds_goods');
+            var url = HOMESITEURL + '/Buy/change_chain.html';
+            var obj=$(this)
+            obj.find('select').val(0)
+            $.post(url, {goods: goods, 'area_id': area_id}, function(data) {
+                var chain_list=data.result.chain_list
+                if(data.code==10000 && chain_list.length){
+                    var html='<option value="0">{$Think.lang.option_chain}</option>'
+                    for(var i in chain_list){
+                        html+='<option value="'+chain_list[i].chain_id+'">'+chain_list[i].chain_addressname+'('+chain_list[i].chain_area_info+chain_list[i].chain_address+')'+'</option>'
+                    }
+                    obj.find('select').html(html)
+                    
+                    obj.show()
+                }else{
+                    obj.hide()
+                }
+            }, 'json');
+        })
+    }
+    $(function() {
+        {notempty name="$address_info.address_id"}
+            showShippingPrice({$address_info.city_id},{$address_info.area_id});
+            showChainList({$address_info.area_id})
+        {else /}
+            $('#edit_reciver').click();
+        {/notempty}
+    });
+    
+</script>

+ 290 - 0
app/home/view/default_back/member/buy/buy_address_add.html

@@ -0,0 +1,290 @@
+
+<script>
+    var local;
+    var map;
+    var lst_name='';
+    function change_map(){
+    	var name=$("#area_info").val();
+    	
+            if(name!='' && lst_name!=name){
+                lst_name=name;
+                map.setCurrentCity(name);
+                map.centerAndZoom(name,16);
+                map.clearOverlays();
+                local.search(name);
+            }
+            
+    }
+    $(function(){
+        
+		if ({$Think.config.ds_config.mapak_type} == '1'){
+		map = new AMap.Map("allmap", {
+			resizeEnable: true,
+			zoom:15
+		});
+		//获取用户所在城市信息
+			AMap.plugin("AMap.CitySearch", function () {
+				var citySearch = new AMap.CitySearch();
+				citySearch.getLocalCity(function (status, result) {
+				  if (status === "complete" && result.info === "OK") {
+					// 查询成功,result即为当前所在城市信息
+					AMap.plugin("AMap.Geocoder", function () {
+					  var geocoder = new AMap.Geocoder({
+						// city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
+						city: result.adcode,
+					  });
+					  geocoder.getLocation(result.city, function(status1, result1) {
+						  var location = result1.geocodes[0].location;
+							var lng = location.lng;
+							var lat = location.lat;
+							
+							//初始化定位
+							var marker = new AMap.Marker({
+								position: new AMap.LngLat(lng, lat),
+								icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+								zoom: 15
+							});
+							map.add(marker);
+							document.getElementById("longitude").value = lng;
+							document.getElementById("latitude").value = lat;
+							map.panTo([lng, lat]);
+							
+							//搜索定位
+							AMap.plugin(['AMap.PlaceSearch','AMap.AutoComplete'], function(){
+								var auto = new AMap.AutoComplete({input:"address"});
+								var placeSearch = new AMap.PlaceSearch({
+									map: map
+								});  //构造地点查询类
+								auto.on("select", select);//注册监听,当选中某条记录时会触发
+								function select(e) {
+									placeSearch.setCity(e.poi.adcode);
+									placeSearch.search(e.poi.name);  //关键字查询查询
+								}
+							});
+							
+							//点击定位
+							map.on('click', function(e) {
+								document.getElementById("longitude").value = e.lnglat.getLng();
+								document.getElementById("latitude").value = e.lnglat.getLat();
+								if(marker){
+									map.remove(marker);
+								}
+								marker = new AMap.Marker({
+									position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()),
+									icon: '//api.map.baidu.com/images/marker_red_sprite.png',
+									anchor: 'bottom-center',
+									zoom: 15
+								});
+								map.add(marker);
+							});
+						});
+					  
+					});
+					
+				  }
+				});
+			  });
+		}else{
+			map = new BMap.Map("allmap");
+			var lng = '';
+			var lat = '';
+			if(!lng && !lat){
+			var geolocation = new BMap.Geolocation();
+			geolocation.getCurrentPosition(function (r) {
+				if (this.getStatus() == BMAP_STATUS_SUCCESS) {
+					var lng = r.point.lng;
+					var lat = r.point.lat;
+					var point = new BMap.Point(lng, lat);
+					map.centerAndZoom(point, 16);
+					map.addControl(new BMap.NavigationControl());
+					map.enableScrollWheelZoom();    
+					var marker = new BMap.Marker(point);  // 创建标注
+					map.addOverlay(marker);              // 将标注添加到地图中
+					marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
+					document.getElementById("longitude").value = lng;
+					document.getElementById("latitude").value = lat;
+	
+				} else {
+					layer.msg('failed' + this.getStatus());
+				}
+			}, {enableHighAccuracy: true})
+			}else{
+				var point = new BMap.Point(lng, lat);
+					map.centerAndZoom(point, 16);
+					map.addControl(new BMap.NavigationControl());
+					map.enableScrollWheelZoom();    
+					var marker = new BMap.Marker(point);  // 创建标注
+					map.addOverlay(marker);              // 将标注添加到地图中
+					marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
+			}    
+			var options = {
+				onSearchComplete: function(results){
+					// 判断状态是否正确
+					if (local.getStatus() == BMAP_STATUS_SUCCESS){
+						if(results.getCurrentNumPois()>0){
+			
+							map.clearOverlays();  //清除标注  或者可以把market 放入数组
+							var point = new BMap.Point(results.getPoi(0).point.lng , results.getPoi(0).point.lat);
+							var marker = new BMap.Marker(point);
+							map.centerAndZoom(point, 16);
+							map.addOverlay(marker);
+							marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
+							
+							document.getElementById("longitude").value = results.getPoi(0).point.lng;
+							document.getElementById("latitude").value = results.getPoi(0).point.lat;
+							
+						}
+					}
+				}
+			};
+			local = new BMap.LocalSearch(map, options);
+			map.addEventListener("click", function(e){
+//                    alert(e.point.lng + ", " + e.point.lat);
+				map.clearOverlays();  //清除标注  或者可以把market 放入数组
+				var point = new BMap.Point(e.point.lng , e.point.lat);
+				var marker = new BMap.Marker(point);
+				map.addOverlay(marker);
+				marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
+				
+				document.getElementById("longitude").value = e.point.lng;
+				document.getElementById("latitude").value = e.point.lat;
+			});
+		}
+        
+    })
+</script>
+<div class="dsc-form-default">
+    <form method="POST" id="addr_form" action="{:url('Buy/add_inv')}">
+        <dl>
+            <dt><i class="required">*</i>{$Think.lang.cart_step1_receiver_name}</dt>
+            <dd>
+                <input type="text" class="text w100" name="true_name" maxlength="20" id="true_name" value=""/>
+            </dd>
+        </dl>
+        <dl>
+            <dt><i class="required">*</i>{$Think.lang.cart_step1_area}</dt>
+            <dd>
+                <div id="region" {if $Think.config.ds_config.mapak_type eq '2'}onclick="change_map()"{/if}>
+                    <select class="w110">
+                    </select>
+                    <input type="hidden" value="" name="city_id" id="city_id">
+                    <input type="hidden" name="area_id" id="area_id" class="area_ids"/>
+                    <input type="hidden" name="area_info" id="area_info" class="area_names"/>
+                </div>
+            </dd>
+        </dl>
+        <dl>
+            <dt><i class="required">*</i>{$Think.lang.cart_step1_whole_address}</dt>
+            <dd>
+                <input type="text" class="text w500" name="address" id="address" maxlength="80" value="" {if $Think.config.ds_config.mapak_type eq '2'}onkeyup="local.search($(this).val());"{/if}/>
+                <p class="hint">{$Think.lang.cart_step1_true_address}</p>
+            </dd>
+        </dl>
+        <dl>
+            <dt>{$Think.lang.location_map}:</dt>
+            <dd>
+                <input name="longitude" id="longitude" value="" type="hidden" />
+                <input name="latitude" id="latitude" value="" type="hidden" />
+                <div id="allmap" style="width:530px;height: 350px;margin-top: 20px"></div>
+            </dd>
+        </dl>
+        <dl>
+            <dt> <i class="required">*</i>{$Think.lang.cart_step1_mobile_num}</dt>
+            <dd>
+                <input type="text" class="text w200" name="mob_phone" id="mob_phone" maxlength="15" value=""/>
+                &nbsp;&nbsp;({$Think.lang.ds_or})
+                &nbsp;{$Think.lang.cart_step1_phone_num}
+                <input type="text" class="text w200" id="tel_phone" name="tel_phone" maxlength="20" value=""/>
+            </dd>
+        </dl>
+    </form>
+</div>
+
+<script type="text/javascript">
+    $(document).ready(function() {
+        regionInit("region");
+        $('#addr_form').validate({
+            rules: {
+                true_name: {
+                    required: true
+                },
+                area_id: {
+                    required: true,
+                    min: 1,
+                    checkarea: true
+                },
+                address: {
+                    required: true
+                },
+                mob_phone: {
+                    required: checkPhone,
+                    minlength: 11,
+                    maxlength: 11,
+                    digits: true
+                },
+                tel_phone: {
+                    required: checkPhone,
+                    minlength: 6,
+                    maxlength: 20
+                }
+            },
+            messages: {
+                true_name: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_input_receiver}'
+                },
+                area_id: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_choose_area}',
+                    min: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_choose_area}',
+                    checkarea: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_choose_area}'
+                },
+                address: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_input_address}'
+                },
+                mob_phone: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_telphoneormobile}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_mobile_num_error}',
+                    maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_mobile_num_error}',
+                    digits: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_mobile_num_error}'
+                },
+                tel_phone: {
+                    required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.cart_step1_telphoneormobile}',
+                    minlength: '<i class="iconfont">&#xe64c;</i>',
+                    maxlength: '<i class="iconfont">&#xe64c;</i>'
+                }
+            },
+            groups: {
+                phone: 'mob_phone tel_phone'
+            }
+        });
+    });
+    function checkPhone() {
+        return ($('input[name="mob_phone"]').val() == '' && $('input[name="tel_phone"]').val() == '');
+    }
+    function submitAddAddr() {
+        if ($('#addr_form').valid()) {
+            $('#buy_city_id').val($('#region').find('select').eq(1).val());
+            $('#city_id').val($('#region').find('select').eq(1).val());
+            if(isNaN($('#region').find('select').eq(1).val())){
+                layer.msg('{$Think.lang.location_area_last_level}');return;
+            }
+            var datas = $('#addr_form').serialize();
+            $.post("{:url('Buy/add_addr')}", datas, function(data) {
+                if (data.state) {
+                    var true_name = $.trim($("#true_name").val());
+                    var tel_phone = $.trim($("#tel_phone").val());
+                    var mob_phone = $.trim($("#mob_phone").val());
+                    var area_info = $.trim($("#area_info").val());
+                    var address = $.trim($("#address").val());
+                    var cityerror = '';
+                    showShippingPrice($('#city_id').val(), $('#area_id').val());
+                    showChainList($('#area_id').val())
+                    hideAddrList(data.addr_id, true_name, area_info + '&nbsp;&nbsp;' + address, (mob_phone != '' ? mob_phone : tel_phone),cityerror);
+                } else {
+                    layer.msg(data.msg);
+                }
+            }, 'json');
+        } else {
+            return false;
+        }
+    }
+</script>

+ 62 - 0
app/home/view/default_back/member/buy/buy_address_load.html

@@ -0,0 +1,62 @@
+<ul>
+    {foreach name="address_list" item="val" key="k" }
+    <li class="receive_add address_item {if $k == 0}dsc-selected-item{/if}">
+        <input address="{if $val.chain_id}[{$Think.lang.self_service_station}]{/if} {$val.area_info}&nbsp;{$val.address_detail}" true_name="{$val.address_realname}" cityerror="{$val.cityerror}" id="addr_{$val.address_id}" ds_type="addr" type="radio" class="radio" city_id="{$val.city_id}" area_id={$val.area_id} name="addr" value="{$val.address_id}" phone="{if $val.address_mob_phone}{$val.address_mob_phone}{else/}{$val.address_tel_phone}{/if}" {if $val.address_is_default == '1'}checked{/if} />
+               <label for="addr_{$val.address_id}"><span class="true-name">{$val.address_realname}</span>{if $val.cityerror != ''}<span style='color: #ff4040;'>{$val.cityerror}</span>{/if}<span class="address">{if $val.chain_id}[{$Think.lang.self_service_station}]{/if}{$val.area_info}&nbsp;{$val.address_detail}</span><span class="phone"><i class="iconfont">&#xe60e;</i>{$val.address_mob_phone}</span></label>
+        <a href="javascript:void(0);" onclick="delAddr({$val.address_id});" class="del">[ {$Think.lang.cart_index_del} ]</a>
+    </li>
+    {/foreach}
+    <li class="receive_add addr_item">
+        <input value="0" ds_type="addr" id="add_addr" type="radio" name="addr">
+        <label for="add_addr">{$Think.lang.cart_step1_new_address}</label>
+    </li>
+    <div id="add_addr_box"><!-- 存放新增地址表单 --></div>
+</ul>
+<div class="hr16"> <a id="hide_addr_list" class="dsc-btn dsc-btn-red" href="javascript:void(0);">{$Think.lang.save_shipping_address}</a></div>
+<script type="text/javascript">
+        function delAddr(id) {
+            var url = HOMESITEURL +'/Buy/load_addr/id/'+id+'.html';
+            $('#addr_list').load(url);
+        }
+        $(function() {
+            function addAddr() {
+                var url = HOMESITEURL+'/Buy/add_addr.html';
+                $('#add_addr_box').load(url);
+            }
+            $('input[ds_type="addr"]').on('click', function() {
+                if ($(this).val() == '0') {
+                    $('.address_item').removeClass('dsc-selected-item');
+                    var url = HOMESITEURL+'/Buy/add_addr.html';
+                    $('#add_addr_box').load(url);
+                } else {
+                    $('.address_item').removeClass('dsc-selected-item');
+                    $(this).parent().addClass('dsc-selected-item');
+                    $('#add_addr_box').html('');
+                }
+            });
+            $('#hide_addr_list').on('click', function() {
+                if ($('input[ds_type="addr"]:checked').val() == '0') {
+                    submitAddAddr();
+                } else {
+                    if ($('input[ds_type="addr"]:checked').size() == 0) {
+                        return false;
+                    }
+                    var city_id = $('input[name="addr"]:checked').attr('city_id');
+                    var area_id = $('input[name="addr"]:checked').attr('area_id');
+                    var cityerror = $('input[name="addr"]:checked').attr('cityerror');
+                    console.log(cityerror)
+                    var addr_id = $('input[name="addr"]:checked').val();
+                    var true_name = $('input[name="addr"]:checked').attr('true_name');
+                    var address = $('input[name="addr"]:checked').attr('address');
+                    var phone = $('input[name="addr"]:checked').attr('phone');
+                    showShippingPrice(city_id, area_id);
+                    showChainList(area_id)
+                    hideAddrList(addr_id, true_name, address, phone,cityerror);
+                }
+            });
+            if ($('input[ds_type="addr"]').size() == 1) {
+                $('#add_addr').prop('checked', true);
+                addAddr();
+            }
+        });
+</script>

+ 37 - 0
app/home/view/default_back/member/buy/buy_amount.html

@@ -0,0 +1,37 @@
+<div class="dsc-bottom" id='submitOrder'> <a href="javascript:void(0)"  class="dsc-btn dsc-btn-acidblue fr">{$Think.lang.cart_index_submit_order}</a> </div>
+<script>
+    function submitNext() {
+        if (!SUBMIT_FORM)
+            return;
+        if ($('input[name="cart_id[]"]').size() == 0) {
+            layer.msg('{$Think.lang.commodity_is_invalid}');
+            return;
+        }
+        if ($('#address_id').val() == '') {
+            layer.msg('{$Think.lang.cart_step1_please_set_address}');
+                    return;
+        }
+        if ($('#buy_city_id').val() == '') {
+            layer.msg('{$Think.lang.reselect_the_item}');
+            return;
+        }
+        if ($('input[name="fcode"]').size() == 1 && $('#fcode_callback').val() != '1') {
+            layer.alert('{$Think.lang.enter_f_code}');
+            return;
+	}
+        SUBMIT_FORM = false;
+        $('#order_form').submit();
+    }
+    $(function() {
+        $(document).keydown(function(e) {
+            if (e.keyCode == 13) {
+                submitNext();
+                return false;
+            }
+        });
+        $('#submitOrder').on('click', function() {
+            submitNext()
+        });
+        calcOrder();
+    });
+</script>

+ 42 - 0
app/home/view/default_back/member/buy/buy_fcode.html

@@ -0,0 +1,42 @@
+
+<!-- S fcode -->
+{if isset($store_cart_list[key($store_cart_list)][0]['is_goodsfcode'])&&$store_cart_list[key($store_cart_list)][0]['is_goodsfcode'] == 1}
+
+<div class="dsc-main">
+  <div class="dsc-title">
+    <h3>{$Think.lang.f_code_goods_purchase}</h3>
+    <h5>{$Think.lang.verify_pre_emption_rights}</h5>
+  </div>
+  <div class="dsc-receipt-info">
+    <div class="fcode-form ">
+      <input name="fcode" type="text" class="text" id="fcode" placeholder="{$Think.lang.please_enter_f_code}" autocomplete="off" maxlength="20" />
+      <input type="button" value="{$Think.lang.using_f_code}" id="fcode_submit" class="button" />
+      <input value="" type="hidden" name="fcode_callback" id="fcode_callback">
+      <input type="hidden" id="goods_commonid" name="goods_commonid" value="{php}echo $store_cart_list[key($store_cart_list)][0]['goods_commonid'];{/php}">
+    </div>
+    <div class="fcode-hint" id="fcode_showmsg"></div>
+  </div>
+</div>
+<!-- E fcode --> 
+<script>
+$(function(){
+    $('#fcode_submit').on('click',function(){
+        if ($('#fcode').val() == '') {
+            layer.alert('{$Think.lang.using_f_code}');return false;
+        }
+        $('#fcode_callback').val('');
+		$.get("{:url('Buy/check_fcode')}", {'fcode':$('#fcode').val(),'goods_commonid':$('#goods_commonid').val()}, function(data){
+            if (data == '1') {
+            	$('#fcode_callback').val('1');
+            	$('#fcode_submit').hide();
+            	$('#fcode').hide();
+            	$('#fcode_showmsg').append('<i class="icon-ok-circle"></i>'+$('#fcode').val()+'{$Think.lang.complete_the_purchase_order}');
+            } else {
+                layer.alert('{$Think.lang.f_code_error}');
+            }
+        });
+    });
+
+});
+</script>
+{/if}

+ 223 - 0
app/home/view/default_back/member/buy/buy_goods_list.html

@@ -0,0 +1,223 @@
+<style>
+.dsc-table-style tbody tr.item_disabled td{background: none repeat scroll 0 0 #F9F9F9;height: 30px;padding: 10px 0;text-align: center;}
+</style>
+<div class="dsc-receipt-info">
+  <div class="dsc-receipt-info-title">
+    <h3>{$Think.lang.list_of_items}</h3>
+    {notempty name="ifcart"}
+    <a href="{:url('Cart/index')}">{$Think.lang.cart_step1_back_to_cart}</a>
+    {/notempty}
+  </div>
+  <table class="dsc-table-style">
+    <thead>
+      <tr>
+        <th class="w20"></th>
+        <th></th>
+        <th>{$Think.lang.cart_index_store_goods}</th>
+        <th class="w120">{$Think.lang.cart_index_price}({$Think.lang.ds_yuan})</th>
+        <th class="w120">{$Think.lang.cart_index_amount}</th>
+        <th class="w120">{$Think.lang.cart_index_sum}({$Think.lang.ds_yuan})</th>
+      </tr>
+    </thead>
+    <?php foreach($store_cart_list as $store_id => $cart_list) {?>
+    <tbody>
+      <tr>
+        <th colspan="6"><strong>{$Think.lang.cart_step1_store}:<a href="{:url('Store/index',['store_id'=>$store_id])}">{$cart_list[0]['store_name']}</a></strong><span member_id="{$store_list[$store_id]['member_id']}"></span>
+          <div class="store-sale">
+            {if !empty($cancel_calc_sid_list[$store_id])}
+            <em><i class="iconfont">&#xe753;</i>{$Think.lang.ore_activities_free_freight}</em>{$cancel_calc_sid_list[$store_id]['desc']}
+            {/if}
+            {if !empty($store_mansong_rule_list[$store_id])}
+            <em><i class="iconfont">&#xe753;</i>{$Think.lang.store_activities_free_demand}</em>{$store_mansong_rule_list[$store_id]['desc']|raw}
+            {if isset($store_premiums_list[$store_id])}
+            <?php foreach ($store_premiums_list[$store_id] as $goods_info) { ?>
+            <a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank" class="dsc-store-gift" title="{$goods_info.goods_name}"><img src="{:goods_thumb($goods_info,240)}" alt="{$goods_info.goods_name}" /></a>
+            <?php } ?>
+            {/if}
+            {/if}
+          </div></th>
+      </tr>
+      <?php foreach($cart_list as $cart_info) {?>
+      <tr id="cart_item_{$cart_info.cart_id}" class="shop-list {if $cart_info.state && $cart_info.storage_state}{else/}item_disabled{/if}">
+          <td>
+              {if $cart_info['state'] && $cart_info['storage_state']}
+              <input type="hidden" value="{$cart_info.cart_id}|{$cart_info.goods_num}" name="cart_id[]">
+              {/if}
+          </td>
+          {if $cart_info['bl_id'] == '0'}
+          <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$cart_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img src="{:goods_thumb($cart_info,240)}" alt="{$cart_info.goods_name}" /></a></td>
+          {/if}
+        <td class="tl" {if $cart_info.bl_id != '0'}colspan="2"{/if}><dl class="dsc-goods-info goodsid_{$cart_info.goods_id}" >
+            <dt>
+                <a href="{:url('Goods/index',['goods_id'=>$cart_info.goods_id])}" target="_blank">{$cart_info.goods_name}</a>
+            </dt>
+            {notempty name="$cart_info.xianshi_info"}
+            <dd> <span class="xianshi">{$Think.lang.ds_mansong_flag}<strong>{$cart_info.xianshi_info.xianshigoods_lower_limit}</strong>{$Think.lang.unit_price_down}<em>¥{$cart_info.xianshi_info.down_price}</em></span> </dd>
+            {/notempty}
+            {if isset($cart_info['ifgroupbuy'])}
+            <dd> <span class="groupbuy">{$Think.lang.ds_groupbuy}</span></dd>
+            {/if}
+            {if $cart_info['bl_id'] != '0'}
+            <dd> <span class="buldling">{$Think.lang.single_set_vertical_drop}<em>¥{$cart_info.down_price}</em></span></dd>
+            {/if}
+            {notempty name="$cart_info.gift_list"}
+            <dd><span class="dsc-goods-gift">{$Think.lang.a_gift}</span>
+              <ul class="dsc-goods-gift-list">
+                {foreach name="$cart_info.gift_list" item="goods_info"  }
+                <li ds_group="{$cart_info.cart_id}"><a href="{:url('Goods/index',['goods_id'=>$goods_info.gift_goodsid])}" target="_blank" class="thumb" ><img src="{:goods_cthumb($goods_info['gift_goodsimage'],240,$store_id)}" alt="{$goods_info.gift_goodsname}"/></a> </li>
+                {/foreach}
+              </ul>
+            </dd>
+            {/notempty}
+          </dl></td>
+          <td class="w120">
+              <em>{$cart_info.goods_price}</em>
+              <!--{if $cart_info.goods_price<$cart_info.goods_original_price}-->
+              <div><del>{$cart_info.goods_original_price}</del></div>
+              <!--{/if}-->
+          </td>
+        <td class="w60">{if $cart_info.state}{$cart_info.goods_num}{/if}</td>
+        <td class="w120">
+          {if $cart_info['state'] && $cart_info['storage_state']}
+          <em id="item{$cart_info.cart_id}_subtotal" ds_type="eachGoodsTotal">{$cart_info.goods_total}</em>
+          {elseif !$cart_info['storage_state'] /}
+          <span style="color: #F00;">{$Think.lang.cart_add_too_much}</span>
+          {elseif !$cart_info['state'] /}
+          <span style="color: #F00;">{$Think.lang.has_been_off_shelves}</span>
+          {/if}
+        </td>
+      </tr>
+
+      <!-- S bundling goods list -->
+      {notempty name="$cart_info.bl_goods_list"}
+      {foreach name="$cart_info.bl_goods_list" item="goods_info"  }
+      <tr class="shop-list {if $cart_info.state && $cart_info.storage_state}{else/}item_disabled{/if}">
+        <td></td>
+        <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img src="{:goods_thumb($goods_info,240)}" alt="{$goods_info.goods_name}" /></a></td>
+        <td class="tl"><dl class="dsc-goods-info">
+            <dt>
+                <a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank">{$goods_info.goods_name}</a> 
+            </dt>
+          </dl>
+        </td>
+        <td>
+            <em>{$goods_info.blgoods_price}</em>
+            <!--{if $goods_info.blgoods_price<$cart_info.goods_original_price}-->
+              <div><del>{$goods_info.goods_original_price}</del></div>
+            <!--{/if}-->
+        </td>
+        <td></td>
+        <td></td>
+      </tr>
+      {/foreach}
+      {/notempty}
+      <!-- E bundling goods list -->
+
+      <?php } ?>
+      <tr>
+        <td class="w10"></td>
+        <td class="tl" colspan="2">{$Think.lang.buyer_message}:
+          <textarea  name="pay_message[{$store_id}]" class="dsc-msg-textarea" placeholder="{$Think.lang.transaction_statement}" title="{$Think.lang.transaction_statement}"  maxlength="150"></textarea></td>
+        <td class="tl" colspan="3"><div class="dsc-form-default"> </div></td>
+      </tr>
+      <tr>
+        <td class="tr" colspan="6"><div class="dsc-store-account">
+            <dl class="chain">
+                <dt>
+                    <div ds_goods='{$chaingoods_list[$store_id]}' style="display:none">
+                        <select name="chain_goods[{$store_id}]" onchange="calcOrder()" id="chain_{$store_id}">
+                            <option value="0">{$Think.lang.option_chain}</option>
+                        </select>
+                    </div>
+                </dt>
+            </dl>
+            
+            <dl class="freight">
+              <dt>{$Think.lang.cart_index_freight}:</dt>
+              <dd><em id="eachStoreFreight_{$store_id}">0.00</em>{$Think.lang.ds_yuan}</dd>
+            </dl>
+            <dl>
+              <dt>{$Think.lang.amount_of_goods}:</dt>
+              <dd><em>{$store_goods_original_total[$store_id]}</em><em id="eachStoreGoodsTotal_{$store_id}" style="display: none">{$store_goods_total[$store_id]}</em>{$Think.lang.ds_yuan}</dd>
+            </dl>
+            <!--{if $store_goods_discount_total[$store_id]>0}-->    
+            <dl class="mansong">
+              <dt>{$Think.lang.amount_of_discount}:</dt>
+              <dd><em>{$store_goods_discount_total[$store_id]}</em>{$Think.lang.ds_yuan}</dd>
+            </dl>  
+            <!--{/if}-->    
+                {if !empty($store_mansong_rule_list[$store_id]['discount'])}
+                <dl class="mansong">
+                    <dt>{$Think.lang.ds_mansong}-{$store_mansong_rule_list[$store_id]['desc']|raw}:</dt>
+                    <dd><em id="eachStoreManSong_{$store_id}">-{$store_mansong_rule_list[$store_id]['discount']}</em>{$Think.lang.ds_yuan}</dd>
+                </dl>
+                {/if}
+
+            <!-- S voucher list -->
+            {notempty name="$store_voucher_list[$store_id]"}
+            <dl class="voucher">
+              <dt>
+                <select dstype="voucher" name="voucher[{$store_id}]">
+                  <option value="{$voucher.vouchertemplate_id|default=''}|{$store_id}|0.00">{$Think.lang.cart_step1_select_voucher}</option>
+                  {foreach name="$store_voucher_list[$store_id]" item="voucher" }
+                  <option value="{$voucher.vouchertemplate_id}|{$store_id}|{$voucher.voucher_price}">{$voucher.desc}</option>
+                  {/foreach}
+                </select>:
+              </dt>
+              <dd><em id="eachStoreVoucher_{$store_id}">-0.00</em>{$Think.lang.ds_yuan}</dd>
+            </dl>
+            {/notempty}
+
+            <!-- E voucher list -->
+
+            <dl class="total">
+              <dt>{$Think.lang.our_total}:</dt>
+              <dd><em store_id="{$store_id}" ds_type="eachStoreTotal"></em>{$Think.lang.ds_yuan}</dd>
+            </dl>
+          </div></td>
+      </tr>
+      <?php }?>
+          
+      <!-- S mallvoucher list -->
+      {notempty name="$mall_voucher_list"}
+      <tr>
+          <td colspan="6">
+              <div class="dsc-store-account">
+                  <dl class="mallvoucher fr">
+                      <dt>
+                          <select dstype="mallvoucher" name="mallvoucher">
+                              <option value="{$mallvoucher.mallvouchertemplate_id|default=''}|0.00">{$Think.lang.cart_step1_select_mallvoucher}</option>
+                              {foreach name="$mall_voucher_list" item="mallvoucher" }
+                              <option value="{$mallvoucher.mallvouchertemplate_id}|{$mallvoucher.mallvoucheruser_price}">{$mallvoucher.desc}</option>
+                              {/foreach}
+                          </select>:
+                      </dt>
+                      <dd><em id="MallVoucher">-0.00</em>{$Think.lang.ds_yuan}</dd>
+                  </dl>
+              </div>
+          </td>
+      </tr>
+      {/notempty}
+      <!-- E mallvoucher list -->
+
+
+
+    </tbody>
+    <tfoot>
+      <tr>
+        <td colspan="6"><div class="dsc-all-account">{$Think.lang.total_order_amount}:<em id="orderTotal"></em>{$Think.lang.ds_yuan}{if $if_presell}{:sprintf($Think.lang.cart_index_presell_desc,$presell_deposit_amount)}{/if}</div></td>
+      </tr>
+      {if $if_presell}
+      <tr>
+          <td colspan="6">
+              <div style='margin-right: 20px'>
+                <label><input type='radio' name='presell_pay' value='1' checked="">{$Think.lang.cart_index_presell_pay_type_1}</label>
+                <label><input type='radio' name='presell_pay' value='2'>{$Think.lang.cart_index_presell_pay_type_2}</label>
+                <div><span>{$Think.lang.cart_index_presell_tips}</span></div>
+              </div>
+          </td>
+      </tr>
+      {/if}
+    </tfoot>
+  </table>
+</div>

+ 28 - 0
app/home/view/default_back/member/buy/buy_invoice.html

@@ -0,0 +1,28 @@
+<div class="dsc-receipt-info"><div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.invoice_information}</h3>
+        <a href="javascript:void(0)" ds_type="buy_edit" id="edit_invoice">[{$Think.lang.modification}]</a></div>
+    <div id="invoice_list" class="dsc-candidate-items">
+        <ul>
+            <li>{$inv_info.content}</li>
+        </ul>
+    </div>
+</div>
+<script type="text/javascript">
+//隐藏发票列表
+    function hideInvList(content) {
+        $('#edit_invoice').show();
+        $("#invoice_list").html('<ul><li>' + content + '</li></ul>');
+        $('.current_box').removeClass('current_box');
+        ableOtherEdit();
+        //重新定位到顶部
+        $("html, body").animate({scrollTop: 0}, 0);
+    }
+//加载发票列表
+    $('#edit_invoice').on('click', function() {
+        $(this).hide();
+        disableOtherEdit('{$Think.lang.save_invoice_information}');
+        $(this).parent().parent().addClass('current_box');
+        var url = HOMESITEURL + '/Buy/load_inv.html';
+        $('#invoice_list').load(url);
+    });
+</script>

+ 314 - 0
app/home/view/default_back/member/buy/buy_invoice_load.html

@@ -0,0 +1,314 @@
+<ul>
+    {foreach name="inv_list" item="val" key="k" }
+    <li class="inv_item {if $k=='0'}dsc-selected-item{/if}">
+        <input content="{$val.content}" id="inv_{$val.invoice_id}" ds_type="inv" type="radio" name="inv" value="{$val.invoice_id}" {if $k=='0'}checked{/if}/>
+               <label for="inv_{$val.invoice_id}">&nbsp;&nbsp;{$val.content}</label>
+        &emsp;&emsp;&emsp;<a href="javascript:void(0);" onclick="delInv({$val.invoice_id});" class="del">[{$Think.lang.ds_delete}]</a>
+    </li>
+    {/foreach}
+    <li class="inv_item">
+        {if count($inv_list) < 10}
+        <input value="0" ds_type="inv" id="add_inv" type="radio" name="inv">
+        <label for="add_inv">&nbsp;&nbsp;{$Think.lang.new_invoice_information}</label>
+        {else/}
+        {$Think.lang.remove_unusual_invoice_additions}
+        {/if}
+    </li>
+    <div id="add_inv_box" style="display:none">
+        <form method="POST" id="inv_form" action="{:url('Buy/add_addr')}">
+            <div class="dsc-form-default">
+                <dl>
+                    <dt>{$Think.lang.invoice_type}:</dt>
+                    <dd>
+                        <label><input type="radio" checked name="invoice_type" value="1">{$Think.lang.commercial_invoice}</label>
+                        &emsp;&emsp;
+                        <label><input type="radio" name="invoice_type" value="2">{$Think.lang.vat_invoice}</label>
+                    </dd>
+                </dl>
+            </div>
+            <div id="invoice_panel" class="dsc-form-default">
+                <dl>
+                    <dt>{$Think.lang.invoice_title}:</dt>
+                    <dd>
+<!--                        <select name="invoice_title_select">
+                            <option value="person">{$Think.lang.individual}</option>
+                            <option value="company">{$Think.lang.unit}</option>
+                        </select>-->
+                        <input class="text w200" name="invoice_title" id="invoice_title" value="">
+                    </dd>
+                </dl>
+                <dl id="invoice_code_dl">
+                    <dt>{$Think.lang.taxpayer_identification_number}</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_code" id="invoice_code" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt>{$Think.lang.invoice_content}:</dt>
+                    <dd>
+<!--                        <select id="invoice_content" name="invoice_content">
+                            <option selected value="{$Think.lang.details}">{$Think.lang.details}</option>
+                            <option value="{$Think.lang.wine}">{$Think.lang.wine}</option>
+                            <option value="{$Think.lang.food}">{$Think.lang.food}</option>
+                            <option value="{$Think.lang.drink}">{$Think.lang.drink}</option>
+                            <option value="{$Think.lang.toys}">{$Think.lang.toys}</option>
+                            <option value="{$Think.lang.daily_necessities}">{$Think.lang.daily_necessities}</option>
+                            <option value="{$Think.lang.decoration_materials}">{$Think.lang.decoration_materials}</option>
+                            <option value="{$Think.lang.cosmetics}">{$Think.lang.cosmetics}</option>
+                            <option value="{$Think.lang.office_supplies}">{$Think.lang.office_supplies}</option>
+                            <option value="{$Think.lang.student_supplies}">{$Think.lang.student_supplies}</option>
+                            <option value="{$Think.lang.household_goods}">{$Think.lang.household_goods}</option>
+                            <option value="{$Think.lang.accessories}">{$Think.lang.accessories}</option>
+                            <option value="{$Think.lang.clothing}">{$Think.lang.clothing}</option>
+                            <option value="{$Think.lang.luggage}">{$Think.lang.luggage}</option>
+                            <option value="{$Think.lang.boutique}">{$Think.lang.boutique}</option>
+                            <option value="{$Think.lang.home_appliances}">{$Think.lang.home_appliances}</option>
+                            <option value="{$Think.lang.labor_protection_products}">{$Think.lang.labor_protection_products}</option>
+                            <option value="{$Think.lang.consumables}">{$Think.lang.consumables}</option>
+                            <option value="{$Think.lang.computer_accessories}">{$Think.lang.computer_accessories}</option>
+                        </select>-->
+                        <input type="text" class="text w200" maxlength="50" name="invoice_content" id="invoice_content" value="">
+                    </dd>
+                </dl>
+            </div>
+            <div id="vat_invoice_panel" class="dsc-form-default" style="display:none">
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.company_name}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_company" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.taxpayer_identification_number}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_company_code" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.registered_address}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_reg_addr" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.registered_phone}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_reg_phone" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.bank_account}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_reg_bname" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.bank_accounts}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_reg_baccount" value="">
+                    </dd>
+                </dl>
+<!--                <dl>
+                    <dt></dt>
+                    <dd>{$Think.lang.open_information}</dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.invoice_content}:</dt>
+                    <dd>{$Think.lang.details}</dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.name_of_bearer}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_rec_name" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.ticket_collector_number}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_rec_mobphone" value="">
+                    </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.drawee_province}:</dt>
+                    <dd id="region">
+            <select>
+            </select>
+            <input type="hidden" value="" name="city_id" id="city_id">
+            <input type="hidden" name="area_id" id="area_id" class="area_ids"/>
+            <input type="hidden" name="area_info" id="area_info" class="area_names"/>
+          </dd>
+                </dl>
+                <dl>
+                    <dt><i class="required">*</i>{$Think.lang.ticket_delivery_address}:</dt>
+                    <dd>
+                        <input type="text" class="text w200" maxlength="50" name="invoice_goto_addr" value="">
+                    </dd>
+                </dl>-->
+            </div>
+        </form>
+    </div>
+</ul>
+<div class="hr16"> <a id="hide_invoice_list" class="dsc-btn dsc-btn-red" href="javascript:void(0);">{$Think.lang.cart_step1_invoice_submit}</a> <a id="cancel_invoice" class="dsc-btn ml10" href="javascript:void(0);">{$Think.lang.no_invoice_required}</a></div>
+<script>
+            var postResult = false;
+            function delInv(id) {
+                var url = HOMESITEURL+'/Buy/load_inv/id/'+id+'.html';
+                $('#invoice_list').load(url);
+            }
+            $(function() {
+                $.ajaxSetup({async: false});
+                //不需要发票
+                $('#cancel_invoice').on('click', function() {
+                    $('#invoice_id').val('');
+                    hideInvList('{$Think.lang.no_invoice_required}');
+                });
+                //使用新的发票信息
+                $('input[ds_type="inv"]').on('click', function() {
+                    regionInit("region");
+                    if ($(this).val() == '0') {
+                        $('.inv_item').removeClass('dsc-selected-item');
+                        $('#add_inv_box').show();
+                    } else {
+                        $('.inv_item').removeClass('dsc-selected-item');
+                        $(this).parent().addClass('dsc-selected-item');
+                        $('#add_inv_box').hide();
+                    }
+                });
+                //保存发票信息
+                $('#hide_invoice_list').on('click', function() {
+                    var content = '';
+                    if ($('input[name="inv"]:checked').size() == 0) {
+                        $('#cancel_invoice').click();
+                        return false;
+                    }
+                    if ($('input[name="inv"]:checked').val() != '0') {
+                        //如果选择已保存过的发票信息
+                        content = $('input[name="inv"]:checked').attr('content');
+                        $('#invoice_id').val($('input[name="inv"]:checked').val());
+                        hideInvList(content);
+                        return false;
+                    }
+                    //如果是新增发票信息
+                    if ($('input[name="invoice_type"]:checked').val() == 1) {
+                        //如果选择普通发票
+                        if ($('select[name="invoice_title_select"]').val() == 'person') {
+                            content = '{$Think.lang.ordinary_invoice_individual}' + $('select[name="invoice_content"]').val();
+                        } else if ($.trim($('#invoice_title').val()) == '' || $.trim($('#invoice_title').val()) == '{$Think.lang.company_name}') {
+                            layer.alert('{$Think.lang.fill_in_company_name}');
+                            return false;
+                        } else {
+                            content = '{$Think.lang.commercial_invoice} ' + $.trim($('#invoice_title').val()) + ' ' + $('#invoice_code').val() + ' ' + $('#invoice_content').val();
+                        }
+                    } else {
+                        content = '{$Think.lang.vat_invoice} ' + $.trim($('input[name="invoice_company"]').val()) + ' ' + $.trim($('input[name="invoice_company_code"]').val()) + ' ' + $.trim($('input[name="invoice_reg_addr"]').val());
+                        //验证增值税发票表单
+                        if (!$('#inv_form').valid()) {
+                            return false;
+                        }
+                    }
+                    var datas = $('#inv_form').serialize();
+
+                    $.post("{:url('Buy/add_inv')}", datas, function(data) {
+                        if (data.state == 'success') {
+                            $('#invoice_id').val(data.id);
+                            postResult = true;
+                        } else {
+                            layer.alert(data.msg);
+                            postResult = false;
+                        }
+                    }, 'json');
+                    if (postResult) {
+                        hideInvList(content);
+                    }
+                });
+                $('input[name="invoice_type"]').on('click', function() {
+                    if ($(this).val() == 1) {
+                        $('#invoice_panel').show();
+                        $('#vat_invoice_panel').hide();
+                    } else {
+                        $('#invoice_panel').hide();
+                        $('#vat_invoice_panel').show();
+                    }
+                });
+                $('select[name="invoice_title_select"]').on('change', function() {
+                    if ($(this).val() == 'company') {
+                        $('#invoice_title').show();
+                        $('#invoice_code_dl').show();
+                    } else {
+                        $('#invoice_title').hide();
+                        $('#invoice_code_dl').hide();
+                    }
+                });
+
+                $('#inv_form').validate({
+                    rules: {
+                        invoice_company: {
+                            required: true
+                        },
+                        invoice_company_code: {
+                            required: true
+                        },
+                        invoice_reg_addr: {
+                            required: true
+                        },
+                        invoice_reg_phone: {
+                            required: true
+                        },
+                        invoice_reg_bname: {
+                            required: true
+                        },
+                        invoice_reg_baccount: {
+                            required: true
+                        },
+                        invoice_rec_name: {
+                            required: true
+                        },
+                        invoice_rec_mobphone: {
+                            required: true
+                        },
+                        area_id: {
+                            required: true,
+                            min: 1,
+                            checkarea: true
+                        },
+                        invoice_goto_addr: {
+                            required: true
+                        }
+                    },
+                    messages: {
+                        invoice_company: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.unit_name_cannot_empty}'
+                        },
+                        invoice_company_code: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.taxpayer_identification_number_cannot_empty}'
+                        },
+                        invoice_reg_addr: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.registered_address_cannot_empty}'
+                        },
+                        invoice_reg_phone: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.registered_phone_cannot_empty}'
+                        },
+                        invoice_reg_bname: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.opening_bank_cannot_empty}'
+                        },
+                        invoice_reg_baccount: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.bank_accounts_cannot_empty}'
+                        },
+                        invoice_rec_name: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.ticket_collector_name_empty}'
+                        },
+                        invoice_rec_mobphone: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.ticket_collector_phone_empty}'
+                        },
+                        area_id: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.please_select_region}',
+                            min: '<i class="iconfont">&#xe64c;</i>{$Think.lang.please_select_region}',
+                            checkarea: '<i class="iconfont">&#xe64c;</i>{$Think.lang.please_select_region}'
+                        },
+                        invoice_goto_addr: {
+                            required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.ticket_delivery_address_empty}'
+                        }
+                    }
+                });
+            });
+</script>

+ 208 - 0
app/home/view/default_back/member/buy/buy_payment.html

@@ -0,0 +1,208 @@
+<div class="dsc-receipt-info" id="paymentCon">
+    <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.payment_method}</h3>
+        {if !$deny_edit_payment}
+        <a href="javascript:void(0)" ds_type="buy_edit" id="edit_payment">[{$Think.lang.modification}]</a>
+        {/if}
+    </div>
+    <div class="dsc-candidate-items">
+        <ul>
+            <li>{$Think.lang.cart_step2_online_pay}</li>
+        </ul>
+    </div>
+    <div id="payment_list" class="dsc-candidate-items" style="display:none">
+        <ul>
+            <li>
+                <input type="radio" value="online" name="payment_type" id="payment_type_online">
+                <label for="payment_type_online">{$Think.lang.cart_step2_online_pay}</label>
+            </li>
+            {notempty name="pay_goods_list.offline"}
+            <li>
+                <input type="radio" value="offline" name="payment_type" id="payment_type_offline">
+                <label for="payment_type_offline">{$Think.lang.cart_step2_arrival_pay}</label>
+                <a id="show_goods_list" style="display: none" class="dsc-payment-showgoods" href="javascript:void(0);">
+                    <i class="iconfont">&#xe6f1;</i>{$Think.lang.cart_step2_arrival_pay} (<span data-cod-nums="offline">{:count($pay_goods_list.offline)}</span>{$Think.lang.type_goods}) + <i class="iconfont">&#xe64f;</i>{$Think.lang.cart_step2_online_pay} {present name="pay_goods_list.online"}(<span data-cod-nums="online">{:count($pay_goods_list.online)}</span>{$Think.lang.type_goods}){/present}</a>
+            </li>
+            {/notempty}
+        </ul>
+        <div class="hr16"> <a href="javascript:void(0);" class="dsc-btn dsc-btn-red" id="hide_payment_list">{$Think.lang.save_payment_method}</a></div>
+    </div>
+    <div id="dsc-payment-showgoods-list" class="dsc-payment-showgoods-list">
+        <dl>
+            {notempty name="pay_goods_list.offline"}
+            <dt data-hideshow="offline">{$Think.lang.cart_step2_arrival_pay}</dt>
+            <dd data-hideshow="offline" data-cod2-type="offline">
+                {foreach name="pay_goods_list.offline" item="value"}
+                <div class="goods-thumb" data-cod2-store="{$value.store_id}"><span><img src="{:goods_thumb($value)}"></span></div>
+                {/foreach}
+            </dd>
+            {/notempty}
+            <dt data-hideshow="online">{$Think.lang.cart_step2_online_pay}</dt>
+            <dd data-hideshow="online" data-cod2-type="online">
+                {present name="pay_goods_list.online"}
+                {foreach name="pay_goods_list.online" item="value"}
+                <div class="goods-thumb" data-cod2-store="{$value.store_id}"><span><img src="{:goods_thumb($value)}"></span></div>
+                {/foreach}
+                {/present}
+            </dd>
+        </dl>
+    </div>
+</div>
+
+<!-- 在线支付和货到付款组合时,显示弹出确认层内容 -->
+<div id="confirm_offpay_goods_list" style="display: none;">
+    <dl class="dsc-offpay-list" data-hideshow="offline">
+        <dt>{$Think.lang.following_commodity_support}<strong>{$Think.lang.cart_step2_arrival_pay}</strong></dt>
+        <dd>
+            {notempty name="pay_goods_list.offline"}
+            <ul data-cod-type="offline">
+                {foreach name="pay_goods_list.offline" item="value"}
+                <li data-cod-store="{$value.store_id}"><span title="{$value.goods_name}"><img src="{:goods_thumb($value)}"></span></li>
+                {/foreach}
+            </ul>
+            {/notempty}
+            <label>
+                <input type="radio" value="" checked="checked">
+                {$Think.lang.cart_step2_arrival_pay}
+            </label>
+        </dd>
+    </dl>
+    <dl class="dsc-offpay-list" data-hideshow="online">
+        <dt>{$Think.lang.following_commodity_support}<strong>{$Think.lang.cart_step2_online_pay}</strong></dt>
+        <dd>
+            <ul data-cod-type="online">
+                {present name="pay_goods_list.online"}
+                {foreach name="pay_goods_list.online" item="value"}
+                <li data-cod-store="{$value.store_id}"><span title="{$value.goods_name}"><img src="{:goods_thumb($value)}"></span></li>
+                {/foreach}
+                {/present}
+            </ul>
+            <label>
+                <input type="radio" value="" checked="checked">
+                {$Think.lang.cart_step2_online_pay}
+            </label>
+        </dd>
+    </dl>
+
+    <div class="tc mt10 mb10"><a href="javascript:void(0);" class="dsc-btn dsc-btn-orange" id="close_confirm_button">{$Think.lang.confirm_payment_method}</a></div>
+</div>
+<script type="text/javascript">
+    $(function(){
+
+        var hybrid = {if $ifshow_offpay === true && isset($pay_goods_list['online'])}1{else/}0{/if};
+
+        var failInPage = false;
+
+// 重新调整在线支付/到付的商品展示
+        var setCodGoodsShow = function() {
+            var j = $('#allow_offpay_batch').val();
+            var arr = {};
+            if (j) {
+                $.each(j.split(';'), function(k, v) {
+                    vv = v.split(':');
+                    arr[vv[0]] = vv[1] == '1' ? true : false;
+                });
+            }
+
+            $.each(arr, function(k, v) {
+                //console.log(''+k+':'+v);
+                if (v) {
+                    $("[data-cod-type='online'] [data-cod-store='"+k+"']").appendTo("[data-cod-type='offline']");
+                    $("[data-cod-type='online'] [data-cod-store='"+k+"']").remove();
+
+                    $("[data-cod2-type='online'] [data-cod2-store='"+k+"']").appendTo("[data-cod2-type='offline']");
+                    $("[data-cod2-type='online'] [data-cod2-store='"+k+"']").remove();
+                } else {
+                    $("[data-cod-type='offline'] [data-cod-store='"+k+"']").appendTo("[data-cod-type='online']");
+                    $("[data-cod-type='offline'] [data-cod-store='"+k+"']").remove();
+
+                    $("[data-cod2-type='offline'] [data-cod2-store='"+k+"']").appendTo("[data-cod2-type='online']");
+                    $("[data-cod2-type='offline'] [data-cod2-store='"+k+"']").remove();
+                }
+            });
+
+            var off = $("[data-cod2-type='offline'] [data-cod2-store]").length;
+            var on = $("[data-cod2-type='online'] [data-cod2-store]").length;
+
+            $("[data-hideshow='offline']")[off ? 'show' : 'hide']();
+            $("[data-hideshow='online']")[on ? 'show' : 'hide']();
+
+            $("span[data-cod-nums='offline']").html(off);
+            $("span[data-cod-nums='online']").html(on);
+
+            failInPage = ! off;
+            hybrid = off && on;
+
+        };
+
+        //点击修改支付方式
+        $('#edit_payment').on('click',function(){
+            $('#edit_payment').parent().next().remove();
+            $(this).hide();
+            $('#paymentCon').addClass('current_box');
+            $('#payment_list').show();
+            disableOtherEdit('{$Think.lang.save_first_payment_method}');
+        });
+        //保存支付方式
+        $('#hide_payment_list').on('click',function(){
+            var payment_type = $('input[name="payment_type"]:checked').val();
+            if ($('input[name="payment_type"]:checked').size() == 0) return;
+
+            setCodGoodsShow();
+
+            //判断该地区(县ID)是否能货到付款
+            if (payment_type == 'offline' && ($('#allow_offpay').val() == '0' || failInPage)) {
+                layer.alert('{$Think.lang.area_not_supported_delivery}');return;
+            }
+            $('#payment_list').hide();
+            $('#edit_payment').show();
+            $('.current_box').removeClass('current_box');
+            var content = (payment_type == 'online' ? '{$Think.lang.cart_step2_online_pay}' : '{$Think.lang.cart_step2_arrival_pay}');
+            $('#pay_name').val(payment_type);
+
+            if (payment_type == 'offline'){
+                //如果混合支付(在线+货到付款)
+                if (hybrid) {
+                    content = $('#show_goods_list').clone().html();
+                    $('#edit_payment').parent().after('<div class="dsc-candidate-items"><ul><li>{$Think.lang.payment_options}<br/><a href="javsacript:void(0);" id="show_goods_list" class="dsc-payment-showgoods">'+content+'</a></li></ul></div>');
+                    $('#show_goods_list').hover(function(){showPayGoodsList(this)},function(){$('#dsc-payment-showgoods-list').fadeOut()});
+                } else {
+                    $('#edit_payment').parent().after('<div class="dsc-candidate-items"><ul><li>'+content+'</li></ul></div>');
+                    $('#pd_panel').hide();
+                }
+            }else{
+                $('#edit_payment').parent().after('<div class="dsc-candidate-items"><ul><li>'+content+'</li></ul></div>');
+                $('#pd_panel').show();
+            }
+            ableOtherEdit();
+        });
+        $('#show_goods_list').hover(function(){showPayGoodsList(this)},function(){$('#dsc-payment-showgoods-list').fadeOut()});
+        function showPayGoodsList(item){
+            var pos = $(item).position();
+            var pos_x = pos.left+0;
+            var pos_y = pos.top+25;
+            $("#dsc-payment-showgoods-list").css({'left' : pos_x, 'top' : pos_y,'position' : 'absolute','display' : 'block'});
+            $('#dsc-payment-showgoods-list').addClass('dsc-payment-showgoods-list').fadeIn();
+        }
+        $('input[name="payment_type"]').on('change',function(){
+            if ($(this).val() == 'online'){
+                $('#show_goods_list').hide();
+            } else {
+
+                setCodGoodsShow();
+
+                //判断该地区(县ID)是否能货到付款
+                if (($('#allow_offpay').val() == '0') || failInPage) {
+                    $('#payment_type_online').prop('checked',true);
+                    layer.alert('{$Think.lang.area_not_supported_delivery}');return;
+                }
+                html_form('confirm_pay_type', '{$Think.lang.please_confirm_payment_method}', $('#confirm_offpay_goods_list').html(), 500,1);
+                $('#show_goods_list').show();
+            }
+        });
+
+        $('body').on('click','#close_confirm_button',function(){
+            DialogManager.close('confirm_pay_type');
+        });
+    })
+</script>

+ 163 - 0
app/home/view/default_back/member/buy/buy_step1.html

@@ -0,0 +1,163 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/mlselection.js"></script>
+<!--{if $Think.config.ds_config.mapak_type eq '1'}-->
+<script type="text/javascript">
+        window._AMapSecurityConfig = {
+            securityJsCode:"{$Think.config.ds_config.gaode_jscode}",
+        }
+</script>
+<script type="text/javascript" src="//webapi.amap.com/maps?v=2.0&key={$Think.config.ds_config.gaode_ak}"></script>
+<!--{else}-->
+<script type="text/javascript" src="{$Think.HTTP_TYPE}api.map.baidu.com/api?v=2.0&ak={$Think.config.ds_config.baidu_ak}"></script>
+<!--{/if}-->
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class=""><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class="current"><i class=" iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+<form method="post" id="order_form" name="order_form" action="{:url('Buy/buy_step2')}">
+    {include file="default/member/buy/buy_fcode" /} 
+    <div class="dsc-main">
+        <div class="dsc-title">
+            <h3>{$Think.lang.cart_index_ensure_info}</h3>
+            <h5>{$Think.lang.check_information}</h5>
+        </div>
+        {include file="default/member/buy/buy_address" /}
+        {include file="default/member/buy/buy_payment" /}
+        {include file="default/member/buy/buy_invoice" /}
+        {include file="default/member/buy/buy_goods_list" /}
+        {include file="default/member/buy/buy_amount" /}
+        <!-- 订单来源1为PC 2为手机 -->
+        <input value="1" type="hidden" name="order_from">
+        <!-- 来源于购物车标志 -->
+        <input value="{$ifcart}" type="hidden" name="ifcart">
+        <!-- offline/online -->
+        <input value="online" name="pay_name" id="pay_name" type="hidden">
+        <!-- 是否保存增值税发票判断标志 -->
+        <input value="{$vat_hash}" name="vat_hash" type="hidden">
+        <!-- 收货地址ID -->
+        <input value="{$address_info.address_id}" name="address_id" id="address_id" type="hidden">
+        <!-- 城市ID(运费) -->
+        <input value="" name="buy_city_id" id="buy_city_id" type="hidden">
+        
+        <!-- 记录所选地区是否支持货到付款 第一个前端JS判断 第二个后端PHP判断 -->
+        <input value="" id="allow_offpay" name="allow_offpay" type="hidden">
+        <input value="" id="allow_offpay_batch" name="allow_offpay_batch" type="hidden">
+        <input value="" id="offpay_hash" name="offpay_hash" type="hidden">
+        <input value="" id="offpay_hash_batch" name="offpay_hash_batch" type="hidden">
+
+        <input value="{present name='inv_info.invoice_id'}{$inv_info.invoice_id}{/present}" name="invoice_id" id="invoice_id" type="hidden">
+    </div>
+</form>
+
+
+<script>
+var SUBMIT_FORM = true;
+//计算总运费和每个店铺小计
+function calcOrder() {
+    var allTotal = 0;
+    $('em[ds_type="eachStoreTotal"]').each(function(){
+        store_id = $(this).attr('store_id');
+        var eachTotal = 0;
+        if ($('#eachStoreFreight_'+store_id).length > 0) {
+            if($('#chain_'+store_id).val()>0){
+                $('#eachStoreFreight_' + store_id).html('0.00');
+            }else{
+                $('#eachStoreFreight_' + store_id).html(number_format($('#eachStoreFreight_' + store_id).attr('data-freight'), 2));
+            }
+        	eachTotal += parseFloat($('#eachStoreFreight_'+store_id).html());
+	    }
+        if ($('#eachStoreGoodsTotal_'+store_id).length > 0) {
+        	eachTotal += parseFloat($('#eachStoreGoodsTotal_'+store_id).html());
+	    }
+        if ($('#eachStoreManSong_'+store_id).length > 0) {
+        	eachTotal += parseFloat($('#eachStoreManSong_'+store_id).html());
+	    }
+        if ($('#eachStoreVoucher_'+store_id).length > 0) {
+        	eachTotal += parseFloat($('#eachStoreVoucher_'+store_id).html());
+        }
+        
+        $(this).html(number_format(eachTotal,2));
+        allTotal += eachTotal;
+    });
+    
+    //计算平台代金券
+    if ($('#MallVoucher').length > 0) {
+            var mallvoucharTotal = parseFloat($('#MallVoucher').html());
+            allTotal += mallvoucharTotal;
+    }
+    $('#orderTotal').html(number_format(allTotal,2));
+}
+$(function(){
+    $.ajaxSetup({
+        async : false
+    });
+    $('select[dstype="voucher"]').on('change',function(){
+        if ($(this).val() == '') {
+        	$('#eachStoreVoucher_'+items[1]).html('-0.00');
+        } else {
+            var items = $(this).val().split('|');
+            $('#eachStoreVoucher_'+items[1]).html('-'+number_format(items[2],2));
+        }
+        calcOrder();
+    });
+    $('select[dstype="mallvoucher"]').on('change',function(){
+        if ($(this).val() == '') {
+            $('#MallVoucher').html('-0.00');
+        } else {
+            var items = $(this).val().split('|');
+            $('#MallVoucher').html('-'+number_format(items[1],2));
+        }
+        calcOrder();
+    });
+
+
+});
+    function disableOtherEdit(showText) {
+        $('a[ds_type="buy_edit"]').each(function() {
+            if ($(this).css('display') != 'none') {
+                $(this).after('<font color="#B0B0B0">' + showText + '</font>');
+                $(this).hide();
+            }
+        });
+        disableSubmitOrder();
+    }
+    function ableOtherEdit() {
+        $('a[ds_type="buy_edit"]').show().next('font').remove();
+        ableSubmitOrder();
+    }
+    function ableSubmitOrder() {
+        $('#submitOrder').on('click', function() {
+            submitNext()
+        }).css('cursor', '').addClass('dsc-btn-acidblue');
+    }
+    function disableSubmitOrder() {
+        $('#submitOrder').unbind('click').css('cursor', 'not-allowed').removeClass('dsc-btn-acidblue');
+    }
+</script>
+{include file="default/base/mall_footer" /}

+ 240 - 0
app/home/view/default_back/member/buy/buy_step2.html

@@ -0,0 +1,240 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/mlselection.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class=""><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class="current"><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+  <div class="dsc-title">
+    <h3>{$Think.lang.cart_index_payment}</h3>
+    <h5>{$Think.lang.order_details_can_viewed}<a href="{:url('Memberorder/index')}" target="_blank">{$Think.lang.my_order}</a>{$Think.lang.carry_out_check}。</h5>
+  </div>
+  <form action="{:url('Payment/real_order')}" method="POST" id="buy_form">
+    <input type="hidden" name="pay_sn" value="{$pay_info.pay_sn}">
+    <input type="hidden" id="payment_code" name="payment_code" value="">
+    <div class="dsc-receipt-info">
+      <div class="dsc-receipt-info-title">
+        <h3>
+            {$order_remind}
+            {if condition="$pay_amount_online gt 0"}
+            {$Think.lang.online_payment_amount}:<strong>¥{$pay_amount_online}</strong>
+            {/if}
+          </h3>
+      </div>
+      <table class="dsc-table-style">
+        <thead>
+          <tr>
+            <th class="w50"></th>
+            <th class="w200 tl">{$Think.lang.order_number}</th>
+            <th class="tl w150">{$Think.lang.payment_method}</th>
+            <th class="tl">{$Think.lang.amount_of}</th>
+            <th class="w150">{$Think.lang.logistics}</th>
+          </tr>
+        </thead>
+        <tbody>
+          {if count($order_list)>1}
+          <tr>
+            <th colspan="20">{$Think.lang.different_businesses}{:count($order_list)}{$Think.lang.different_suborder_deliveries}</th>
+          </tr>
+          {/if}
+          {foreach name="order_list" item="order" key="key" }
+          <tr>
+            <td></td>
+            <td class="tl">{$order.order_sn}</td>
+            <td class="tl">{$order.payment_state}</td>
+            <td class="tl">¥{$order.order_amount}</td>
+            <td>{$Think.lang.courier}</td>
+          </tr>
+          {/foreach}
+        </tbody>
+      </table>
+    </div>
+    
+      <!-- S 预存款 & 充值卡 -->
+      {if $pay_amount_online>0 && (!empty($available_pd_amount) || !empty($available_rcb_amount))}
+      <div id="pd_panel">
+          <div class="pd-account" colspan="6"><div class="dsc-pd-account">
+                  {notempty name="available_rcb_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="rcb_pay">
+                          {$Think.lang.use_top_up_cards}:<em>{$available_rcb_amount}</em>{$Think.lang.ds_yuan}
+                      </label>
+                  </div>
+                  {/notempty}
+                  {notempty name="available_pd_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="pd_pay">
+                          {$Think.lang.pre_deposit}:<em>{$available_pd_amount}</em>{$Think.lang.ds_yuan})</label>
+                  </div>
+                  {/notempty}
+                  {if !empty($available_pd_amount) && !empty($available_rcb_amount)}
+                  <div class="mt5 mb5">{$Think.lang.system_priority}&nbsp;&nbsp;</div>
+                  {/if}
+                  <div id="pd_password" style="display: none">{$Think.lang.pay_the_password}({$Think.lang.pay_the_password_tips}):
+                      <input type="password" class="text w120" value="" name="password" id="pay-password" maxlength="35" autocomplete="off">
+                      <input type="hidden" value="" name="password_callback" id="password_callback">
+                      <a class="dsc-btn-mini dsc-btn-orange" id="pd_pay_submit" href="javascript:void(0)">{$Think.lang.use}</a>
+                      {if !$member_paypwd}
+                      {$Think.lang.no_payment_password_set},<a href="{:url('Membersecurity/auth',['type'=>'modify_paypwd'])}" target="_blank">{$Think.lang.set_up_immediately}</a>
+                      {/if}
+                  </div>
+              </div>
+          </div>
+      </div>
+      {/if}
+      <!-- E 预存款 -->
+    <div class="dsc-receipt-info">
+      {notempty name="payment_list"}
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.choose_online_payment}</h3>
+      </div>
+      <ul class="dsc-payment-list">
+        {foreach name="payment_list" item="val"}
+        {if $val.payment_code=='allinpay'}
+          {php}$sub_payment_list=array('W01','A01','Q01','U01');{/php}
+          <input type="hidden" id="{$val.payment_code}_sub_payment_code" name="paytype" value="">
+          {else}
+          {php}$sub_payment_list=array('');{/php}
+          {/if}
+        {foreach name="sub_payment_list" item="sub"}  
+        <li payment_code="{$val.payment_code}" sub_payment_code="{$sub}">
+          <label for="pay_{$val.payment_code}">
+          <i></i>
+          <div class="logo" for="pay_{$val.payment_code}"> <img src="{$Think.HOME_SITE_ROOT}/images/payment/{$val.payment_code}{notempty name='sub'}_{$sub}{/notempty}_logo.gif" /> </div>
+          </label>
+        </li>
+				{/foreach}
+        {/foreach}
+      </ul>
+      {else /}
+      {if $pay_amount_online>0}
+      <div class="nopay">{$Think.lang.satisfy_condition_means_payment}</div>
+      {/if}
+      {/notempty}
+    </div>
+    {if $pay_amount_online > 0}
+    <div class="dsc-bottom tc mb50"><a href="javascript:void(0);" id="next_button" class="dsc-btn dsc-btn-green"><i class="iconfont">&#xe6f0;</i>{$Think.lang.confirm_submit_payment}</a></div>
+    {/if}
+  </form>
+</div>
+<script type="text/javascript">
+$(function(){
+    var ifSubmit=false
+    $('.dsc-payment-list > li').on('click',function(){
+    	$('.dsc-payment-list > li').removeClass('using');
+        $(this).addClass('using');
+        $('#payment_code').val($(this).attr('payment_code'));
+        if($(this).attr('sub_payment_code')!=''){
+            $('#'+$(this).attr('payment_code')+'_sub_payment_code').val($(this).attr('sub_payment_code'));
+        }
+    });
+    $('.dsc-payment-list > li:eq(0)').click()
+    $('#next_button').on('click',function(){
+        if ($('#payment_code').val() == '') {
+            layer.alert('{$Think.lang.cart_step2_choose_pay_method}');return false;
+        }
+        if (($('input[name="pd_pay"]').prop('checked') || $('input[name="rcb_pay"]').prop('checked')) && $('#password_callback').val()==''){
+            ifSubmit=true
+            $('#pd_pay_submit').click()
+            return false;
+        }
+        $('#buy_form').submit();
+    });
+    
+    {if !empty($available_pd_amount) || !empty($available_rcb_amount)}
+    function showPaySubmit() {
+        if ($('input[name="pd_pay"]').prop('checked') || $('input[name="rcb_pay"]').prop('checked')) {
+        	$('#pay-password').val('');
+        	$('#password_callback').val('');
+        	$('#pd_password').show();
+        } else {
+        	$('#pd_password').hide();
+        }
+    }
+
+    $('#pd_pay_submit').on('click',function(){
+        if ($('#pay-password').val() == '') {
+            ifSubmit=false
+            layer.alert('{$Think.lang.enter_payment_password}');return;
+        }
+        $('#password_callback').val('');
+        var url = HOMESITEURL+'/Buy/check_pd_pwd.html'
+	   $.post(url, {'password':$('#pay-password').val()}, function(data){
+            if (data == '1') {
+            	$('#password_callback').val('1');
+            	$('#pd_password').hide();
+                if(ifSubmit){
+                    $('#buy_form').submit();
+                }
+            } else {
+                ifSubmit=false
+            	$('#pay-password').val('');
+                layer.alert('{$Think.lang.payment_password_error}');return;
+            }
+        });
+    });
+    {/if}
+
+    {if !empty($available_rcb_amount)}
+    $('input[name="rcb_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="pd_pay"]').prop('checked')) {
+        	if ({$available_rcb_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="pd_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="pd_pay"]').prop('disabled',false);
+    	}
+    });
+    {/if}
+
+    {if !empty($available_pd_amount)}
+    $('input[name="pd_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="rcb_pay"]').prop('checked')) {
+        	if ({$available_pd_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="rcb_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="rcb_pay"]').prop('disabled',false);
+    	}    	
+    });
+    {/if}
+});
+</script>
+
+
+<style>
+    .pd-account { background-color: #FFAA01; padding: 2px;}
+
+</style>
+
+{include file="default/base/mall_footer" /}

+ 44 - 0
app/home/view/default_back/member/buy/buy_step3.html

@@ -0,0 +1,44 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/mlselection.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class=""><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class="current"><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+    <div class="dsc-title">
+        <h3>{$Think.lang.cart_index_buy_finish}</h3>
+        <h5>{$Think.lang.order_has_been_paid}</h5>
+    </div>
+    <div class="dsc-receipt-info mb30">
+        <div class="dsc-finish-a"><i></i>{$Think.lang.order_payment_success}<em>¥{$Request.param.pay_amount}</em>。</div>
+        <div class="dsc-finish-b">{$Think.lang.available_through_user_center}<a href="{:url('Memberorder/index')}">{$Think.lang.purchased_goods}</a>{$Think.lang.view_order_status}</div>
+        <div class="dsc-finish-c mb30"><a href="{:url('Index/index')}" class="dsc-btn-mini dsc-btn-green mr15"><i class="iconfont">&#xe69a;</i>{$Think.lang.cart_index_continue_shopping}</a><a href="{:url('Memberorder/index')}" class="dsc-btn-mini dsc-btn-acidblue"><i class="iconfont">&#xe71f;</i>{$Think.lang.view_order}</a></div>
+    </div>
+</div>
+{include file="default/base/mall_footer" /}

+ 111 - 0
app/home/view/default_back/member/buy/predeposit_pay.html

@@ -0,0 +1,111 @@
+{include file="default/base/mall_top" /} 
+<style>
+    .w1200{width:1000px;}
+</style>
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/mlselection.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class=""><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class="current"><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+
+
+
+<div class="dsc-main">
+  <div class="dsc-title">
+    <h3>{$Think.lang.cart_index_payment}</h3>
+    <h5>{$Think.lang.recharge_record_through}<a href="{:url('Predeposit/index')}" target="_blank">{$Think.lang.my_recharge_list} </a>{$Think.lang.view_order_details}</h5>
+  </div>
+  <form action="{:url('Payment/pd_order')}" method="POST" id="buy_form">
+    <input type="hidden" name="pdr_sn" value="{$pdr_info.pdr_sn}">
+    <input type="hidden" id="payment_code" name="payment_code" value="">
+    <div class="dsc-receipt-info">
+    <div>{$Think.lang.prepaid_phone_number} : {$pdr_info.pdr_sn}</div>
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.immediate_online_payment}
+          {$Think.lang.recharge_amount}:<strong>¥{$pdr_info.pdr_amount}</strong> </h3>
+      </div>
+    </div>
+    <div class="dsc-receipt-info">
+        {notempty name="payment_list"}
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.payment_option}</h3>
+      </div>
+      <ul class="dsc-payment-list">
+          {foreach name="payment_list" item="val"}
+          {if $val.payment_code=='allinpay'}
+          {php}$sub_payment_list=array('W01','A01','Q01','U01');{/php}
+          <input type="hidden" id="{$val.payment_code}_sub_payment_code" name="paytype" value="">
+          {else}
+          {php}$sub_payment_list=array('');{/php}
+          {/if}
+        {foreach name="sub_payment_list" item="sub"}  
+        <li payment_code="{$val.payment_code}" sub_payment_code="{$sub}">
+          <label for="pay_{$val.payment_code}">
+          <i></i>
+          <div class="logo" for="pay_{$val.payment_code}"> <img src="{$Think.HOME_SITE_ROOT}/images/payment/{$val.payment_code}{notempty name='sub'}_{$sub}{/notempty}_logo.gif" /> </div>
+          <div class="predeposit" ds_type="predeposit" style="display:none">
+              {if $val.payment_code == 'predeposit'}
+               {if $available_predeposit}
+                <p>{$Think.lang.current_prepaid_balance}<br/>¥{$available_predeposit}<br/>{$Think.lang.insufficient_pay_order}<br/><a href="{:url('Predeposit/index')}">{$Think.lang.recharge_immediately}</a></p>
+               {else /}
+                <input type="password" class="text w120" name="password" maxlength="40" id="password" value="">
+                <p>{$Think.lang.enter_login_password}</p>
+               {/if}
+           {/if}
+          </div>
+          </label>
+        </li>
+        {/foreach}
+       {/foreach}
+      </ul>
+     {/notempty}
+    </div>
+    <div class="dsc-bottom tc mb50">
+        <a href="javascript:void(0);" id="next_button" class="dsc-btn dsc-btn-green"><i class="iconfont">&#xe6f0;</i>{$Think.lang.confirm_submit_payment}</a>
+    </div>
+  </form>
+</div>
+<script type="text/javascript">
+$(function(){
+    $('.dsc-payment-list > li').on('click',function(){
+    	$('.dsc-payment-list > li').removeClass('using');
+        $(this).addClass('using');
+        $('#payment_code').val($(this).attr('payment_code'));
+        if($(this).attr('sub_payment_code')!=''){
+            $('#'+$(this).attr('payment_code')+'_sub_payment_code').val($(this).attr('sub_payment_code'));
+        }
+    });
+    $('#next_button').on('click',function(){
+        if ($('#payment_code').val() != '') {
+            $('#buy_form').submit();
+        }
+    });
+});
+</script>
+
+{include file="default/base/mall_footer" /}

+ 208 - 0
app/home/view/default_back/member/buy/storejoinin_pay.html

@@ -0,0 +1,208 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.PLUGINS_SITE_ROOT}/mlselection.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class=""><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class="current"><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+  <div class="dsc-title">
+    <h3>{$Think.lang.cart_index_payment}</h3>
+    <h5>开店详情可以通过<a href="{:url('Sellerjoinin/index')}" target="_blank">查看入驻进度 </a>{$Think.lang.view_order_details}</h5>
+  </div>
+  <form action="{:url('Payment/sj_order')}" method="POST" id="buy_form">
+    <input type="hidden" id="payment_code" name="payment_code" value="">
+    <div class="dsc-receipt-info">
+    <div>店铺名称 : {$store_name}</div>
+      <div class="dsc-receipt-info-title">
+        <h3>您已申请店铺入驻,请立即在线支付!
+          {$Think.lang.online_payment_amount}:<strong>¥{$pay_amount_online}</strong> </h3>
+      </div>
+    </div>
+      <!-- S 预存款 & 充值卡 -->
+      {if $pay_amount_online>0 && (!empty($available_pd_amount) || !empty($available_rcb_amount))}
+      <div id="pd_panel">
+          <div class="pd-account" colspan="6"><div class="dsc-pd-account">
+                  {notempty name="available_rcb_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="rcb_pay">
+                          {$Think.lang.use_top_up_cards}:<em>{$available_rcb_amount}</em>{$Think.lang.ds_yuan}
+                      </label>
+                  </div>
+                  {/notempty}
+                  {notempty name="available_pd_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="pd_pay">
+                          {$Think.lang.pre_deposit}:<em>{$available_pd_amount}</em>{$Think.lang.ds_yuan})</label>
+                  </div>
+                  {/notempty}
+                  {if !empty($available_pd_amount) && !empty($available_rcb_amount)}
+                  <div class="mt5 mb5">{$Think.lang.system_priority}&nbsp;&nbsp;</div>
+                  {/if}
+                  <div id="pd_password" style="display: none">{$Think.lang.pay_the_password}({$Think.lang.pay_the_password_tips}):
+                      <input type="password" class="text w120" value="" name="password" id="pay-password" maxlength="35" autocomplete="off">
+                      <input type="hidden" value="" name="password_callback" id="password_callback">
+                      <a class="dsc-btn-mini dsc-btn-orange" id="pd_pay_submit" href="javascript:void(0)">{$Think.lang.use}</a>
+                      {if !$member_paypwd}
+                      {$Think.lang.no_payment_password_set},<a href="{:url('Membersecurity/auth',['type'=>'modify_paypwd'])}" target="_blank">{$Think.lang.set_up_immediately}</a>
+                      {/if}
+                  </div>
+              </div>
+          </div>
+      </div>
+      {/if}
+      <!-- E 预存款 -->
+    <div class="dsc-receipt-info">
+      {notempty name="payment_list"}
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.choose_online_payment}</h3>
+      </div>
+      <ul class="dsc-payment-list">
+        {foreach name="payment_list" item="val"}
+        {if $val.payment_code=='allinpay'}
+          {php}$sub_payment_list=array('W01','A01','Q01','U01');{/php}
+          <input type="hidden" id="{$val.payment_code}_sub_payment_code" name="paytype" value="">
+          {else}
+          {php}$sub_payment_list=array('');{/php}
+          {/if}
+        {foreach name="sub_payment_list" item="sub"}  
+        <li payment_code="{$val.payment_code}" sub_payment_code="{$sub}">
+          <label for="pay_{$val.payment_code}">
+          <i></i>
+          <div class="logo" for="pay_{$val.payment_code}"> <img src="{$Think.HOME_SITE_ROOT}/images/payment/{$val.payment_code}{notempty name='sub'}_{$sub}{/notempty}_logo.gif" /> </div>
+          </label>
+        </li>
+				{/foreach}
+        {/foreach}
+      </ul>
+      {else /}
+      {if $pay_amount_online>0}
+      <div class="nopay">{$Think.lang.satisfy_condition_means_payment}</div>
+      {/if}
+      {/notempty}
+    </div>
+    {if $pay_amount_online > 0}
+    <div class="dsc-bottom tc mb50"><a href="javascript:void(0);" id="next_button" class="dsc-btn dsc-btn-green"><i class="iconfont">&#xe6f0;</i>{$Think.lang.confirm_submit_payment}</a></div>
+    {/if}
+  </form>
+</div>
+<script type="text/javascript">
+$(function(){
+    var ifSubmit=false
+    $('.dsc-payment-list > li').on('click',function(){
+    	$('.dsc-payment-list > li').removeClass('using');
+        $(this).addClass('using');
+        $('#payment_code').val($(this).attr('payment_code'));
+        if($(this).attr('sub_payment_code')!=''){
+            $('#'+$(this).attr('payment_code')+'_sub_payment_code').val($(this).attr('sub_payment_code'));
+        }
+    });
+    $('.dsc-payment-list > li:eq(0)').click()
+    $('#next_button').on('click',function(){
+        if ($('#payment_code').val() == '') {
+            layer.alert('{$Think.lang.cart_step2_choose_pay_method}');return false;
+        }
+        if (($('input[name="pd_pay"]').prop('checked') || $('input[name="rcb_pay"]').prop('checked')) && $('#password_callback').val()==''){
+            ifSubmit=true
+            $('#pd_pay_submit').click()
+            return false;
+        }
+        $('#buy_form').submit();
+    });
+    
+    {if !empty($available_pd_amount) || !empty($available_rcb_amount)}
+    function showPaySubmit() {
+        if ($('input[name="pd_pay"]').prop('checked') || $('input[name="rcb_pay"]').prop('checked')) {
+        	$('#pay-password').val('');
+        	$('#password_callback').val('');
+        	$('#pd_password').show();
+        } else {
+        	$('#pd_password').hide();
+        }
+    }
+
+    $('#pd_pay_submit').on('click',function(){
+        if ($('#pay-password').val() == '') {
+            ifSubmit=false
+            layer.alert('{$Think.lang.enter_payment_password}');return;
+        }
+        $('#password_callback').val('');
+        var url = HOMESITEURL+'/Buy/check_pd_pwd.html'
+	   $.post(url, {'password':$('#pay-password').val()}, function(data){
+            if (data == '1') {
+            	$('#password_callback').val('1');
+            	$('#pd_password').hide();
+                if(ifSubmit){
+                    $('#buy_form').submit();
+                }
+            } else {
+                ifSubmit=false
+            	$('#pay-password').val('');
+                layer.alert('{$Think.lang.payment_password_error}');return;
+            }
+        });
+    });
+    {/if}
+
+    {if !empty($available_rcb_amount)}
+    $('input[name="rcb_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="pd_pay"]').prop('checked')) {
+        	if ({$available_rcb_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="pd_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="pd_pay"]').prop('disabled',false);
+    	}
+    });
+    {/if}
+
+    {if !empty($available_pd_amount)}
+    $('input[name="pd_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="rcb_pay"]').prop('checked')) {
+        	if ({$available_pd_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="rcb_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="rcb_pay"]').prop('disabled',false);
+    	}    	
+    });
+    {/if}
+});
+</script>
+
+
+<style>
+    .pd-account { background-color: #FFAA01; padding: 2px;}
+
+</style>
+
+{include file="default/base/mall_footer" /}

+ 122 - 0
app/home/view/default_back/member/buyvirtual/buy_virtual_step1.html

@@ -0,0 +1,122 @@
+{include file="default/base/mall_top" /}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+ <div class="dsc-title">
+    <h3>{$Think.lang.purchase_exchange_code}</h3>
+    <h5>{$Think.lang.set_purchase_quantity}</h5>
+ </div>
+  <form action="{:url('Buyvirtual/buy_step2')}" method="POST" id="form_buy" name="form_buy">
+  <input type="hidden" name="goods_id" value="{$goods_info.goods_id}">
+    <table class="dsc-table-style" ds_type="table_cart">
+      <thead>
+        <tr>
+          <th colspan="3">{$Think.lang.cart_index_store_goods}</th>
+          <th class="w120">{$Think.lang.cart_index_price}({$Think.lang.ds_yuan})</th>
+          <th class="w120">{$Think.lang.cart_index_amount}</th>
+          <th class="w120">{$Think.lang.cart_index_sum}({$Think.lang.ds_yuan})</th>
+          <th class="w80">{$Think.lang.cart_index_handle}</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <th colspan="20"><i class="iconfont">&#xe6ff;</i><a href="{:url('Store/index',['store_id'=>$store_info.store_id])}">{$store_info.store_name}</a> <span member_id="{$store_info.member_id}"></span>
+          </th>
+        </tr>
+
+        <tr class="shop-list">
+          <td class="w10"></td>
+          <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img src="{:goods_thumb($goods_info)}" alt="{$goods_info.goods_name}" /></a></td>
+          <td class="tl"><dl class="dsc-goods-info">
+              <dt><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank">
+                {$goods_info.goods_name}
+                </a></dt>
+              <dd>
+                {present name="goods_info.ifgroupbuy"}
+                <span class="groupbuy">{$Think.lang.snap_up}</span>
+                {/present}
+                {$Think.lang.buy_up}{$goods_info.virtual_limit}{$Think.lang.individual}</dd>
+            </dl></td>
+          <td class="w120"><em id="item_price">{$goods_info.goods_price}</em></td>
+          <td class="w120 ws0"><a href="JavaScript:void(0);" onclick="decrease_quantity();" class="add-substract-key ">-</a>
+            <input id="quantity" name="quantity" value="{$goods_info.quantity}" maxvalue="{$goods_info.virtual_limit}" price="{$goods_info.goods_price}" onkeyup="change_quantity(this);" type="text" class="text w20"/>
+            <a href="JavaScript:void(0);" title="{$Think.lang.buy_up}{$goods_info.virtual_limit}{$Think.lang.individual}" onclick="add_quantity();" class="add-substract-key tip" >+</a></td>
+          <td class="w120"><em id="item_subtotal">{$goods_info.goods_total}</em></td>
+          <td class="w80">
+            <a href="javascript:void(0)" onclick="collect_goods('{$goods_info.goods_id}');">{$Think.lang.cart_index_favorite}</a>
+          </td>
+        </tr>
+      </tbody>
+      <tfoot>
+        <tr>
+          <td colspan="20"><div class="dsc-all-account">{$Think.lang.total_price}¥<em id="cartTotal">{$goods_info.goods_total}</em>{$Think.lang.ds_yuan}</div></td>
+        </tr>
+      </tfoot>
+    </table>
+  </form>
+  <div class="dsc-bottom"><a id="next_submit" href="javascript:void(0)" class="dsc-btn dsc-btn-acidblue fr">{$Think.lang.cart_index_input_next}</a></div>
+
+</div>
+<script>
+$(document).ready(function(){
+    $('#next_submit').on('click',function(){
+        $('#form_buy').submit();
+    });
+});
+/**
+ * 更改数量
+ */
+function change_quantity(input){
+    var value = Number($(input).val());
+    var maxvalue = Number($(input).attr('maxvalue'));
+    if (value > maxvalue) {
+        $(input).val($(input).attr('maxvalue'));
+    }else if (value <= 0) {
+        $(input).val(1);
+    }
+
+    calc_price();
+}
+
+/**
+ * 减少商品数量
+ */
+function decrease_quantity(){
+    var input = $('#quantity');
+    var orig = Number(input.val());
+    if(orig > 1){
+        input.val(orig - 1);
+        input.keyup();
+    }
+    calc_price();
+}
+
+/**
+ * 增加商品数量
+ */
+function add_quantity(){
+    var input = $('#quantity');
+    var orig = Number(input.val());
+    input.val(orig + 1);
+    input.keyup();
+    calc_price();
+}
+
+/**
+ * 价格计算
+ */
+function calc_price() {
+    var input = $('#quantity');
+    var total = $(input).val()*$(input).attr('price');
+    $('#item_subtotal').html(number_format(total,2));
+    $('#cartTotal').html(number_format(total,2));
+}
+</script>
+
+
+{include file="default/base/mall_footer" /}

+ 212 - 0
app/home/view/default_back/member/buyvirtual/buy_virtual_step2.html

@@ -0,0 +1,212 @@
+{include file="default/base/mall_top" /}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+</div>
+<div class="dsc-line"></div>
+
+<div class="dsc-main">
+ <div class="dsc-title">
+    <h3>{$Think.lang.cart_index_ensure_info}</h3>
+    {if $goods_info.virtual_type==0}
+    <h5>{$Think.lang.exchange_code_send_phone}</h5>
+    {/if}
+ </div>
+  <form action="{:url('Buyvirtual/buy_step3')}" method="POST" id="form_buy" name="form_buy">
+  <input type="hidden" name="goods_id" value="{$goods_info.goods_id}">
+  <input type="hidden" name="quantity" value="{$goods_info.quantity}">
+  {if $goods_info.virtual_type==0}
+    <div class="dsc-receipt-info">
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.electronic_exchange_code}</h3></div>
+      <div id="invoice_list" class="dsc-candidate-items">
+        <ul style="overflow: visible;">
+          <li>{$Think.lang.cart_step1_mobile_num}:
+            <div class="parentCls"><input name="buyer_phone" class="text" autocomplete = "off"  type="text" id="buyer_phone" value="{:encrypt_show($member_info.member_mobile,4,4)}" maxlength="11" onfocus="clearMobile(this)"></div>
+          </li>
+        </ul>
+        <p><i class="iconfont">&#xe73b;</i>{$Think.lang.exchange_code_instructions}</p>
+      </div>
+    </div>
+  {/if}
+  <div class="dsc-receipt-info"><div class="dsc-receipt-info-title">
+      <h3>{$Think.lang.virtual_service_goods_list}</h3><a href="{:url('Buyvirtual/buy_step1',['goods_id'=>$Request.post.goods_id,'quantity'=>$Request.post.quantity])}">{$Think.lang.back_up}</a></div>
+    <table class="dsc-table-style" ds_type="table_cart">
+      <thead>
+        <tr>
+          <th colspan="3">{$Think.lang.cart_index_store_goods}</th>
+          <th class="w150">{$Think.lang.cart_index_price}({$Think.lang.ds_yuan})</th>
+          <th class="w80">{$Think.lang.cart_index_amount}</th>
+          <th class="w150">{$Think.lang.cart_index_sum}({$Think.lang.ds_yuan})</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <th colspan="20">{$Think.lang.cart_step1_store}:<a href="{:url('Store/index',['store_id'=>$store_info.store_id])}">{$store_info.store_name}</a> <span member_id="{$store_info.member_id}"></span>
+          </th>
+        </tr>
+
+        <tr class="shop-list">
+          <td class="w10"></td>
+          <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img src="{:goods_thumb($goods_info)}" alt="{$goods_info.goods_name}" /></a></td>
+          <td class="tl"><dl class="dsc-goods-info">
+              <dt><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank">{$goods_info.goods_name}</a></dt>
+                <dd>
+                    {present name="goods_info.ifgroupbuy"}
+                  <span class="groupbuy">{$Think.lang.snap_up}</span>
+                  {/present}
+                </dd>
+            </dl></td>
+            <td class="w120">
+                <em id="item_price">{$goods_info.goods_price}</em>
+                <!--{if $goods_info.goods_price<$goods_info.goods_original_price}-->
+                <div><del>{$goods_info.goods_original_price}</del></div>
+                <!--{/if}-->
+            </td>
+          <td class="w120">{$goods_info.quantity}</td>
+          <td><em id="item_subtotal">{$goods_info.goods_total}</em></td>
+        </tr>
+
+        <!-- S 留言 -->
+		<tr>
+			<td class="w10"></td>
+			<td class="tl" colspan="2">{$Think.lang.buyer_message}:
+				<textarea name="buyer_msg" class="dsc-msg-textarea" maxlength="150" placeholder="{$Think.lang.trade_show}" title="{$Think.lang.trade_show}"></textarea></td>
+			<td class="tl" colspan="10"></td>
+		</tr>
+        <!-- E 留言 -->
+
+
+            
+        <!-- S voucher list -->
+        {notempty name="store_voucher_list"}
+        <tr>
+        <td class="tr" colspan="20"><div class="dsc-store-account">
+            <!--{if $goods_info.goods_discount_total>0}-->    
+            <dl>
+              <dt>{$Think.lang.amount_of_goods}:</dt>
+              <dd><em>{$goods_info.goods_original_total}</em>{$Think.lang.ds_yuan}</dd>
+            </dl>
+            
+            <dl class="mansong">
+              <dt>{$Think.lang.amount_of_discount}:</dt>
+              <dd><em>{$goods_info.goods_discount_total}</em>{$Think.lang.ds_yuan}</dd>
+            </dl>  
+            <!--{/if}-->   
+            <dl class="voucher">
+              <dt>
+                <select dstype="voucher" name="voucher">
+                  <option value="">{$Think.lang.cart_step1_select_voucher}</option>
+                    {foreach name="store_voucher_list" item="voucher"}
+                  <option value="{$voucher.vouchertemplate_id}|{$store_info.store_id}|{$voucher.voucher_price}">{$voucher.desc}</option>
+                 {/foreach}
+                </select>
+              <dd>¥<em id="storeVoucher">-0.00</em></dd>
+            </dl>
+          </div></td>
+      </tr>
+        {/notempty}
+        <!-- E voucher list -->
+        
+        <!-- S mallvoucher list -->
+        {notempty name="$mall_voucher_list"}
+        <tr>
+            <td class="tr" colspan="20"><div class="dsc-store-account">
+                    <dl class="mallvoucher">
+                        <dt>
+                            <select dstype="mallvoucher" name="mallvoucher">
+                                <option value="">{$Think.lang.cart_step1_select_mallvoucher}</option>
+                                {foreach name="$mall_voucher_list" item="mallvoucher" }
+                                <option value="{$mallvoucher.mallvouchertemplate_id}|{$mallvoucher.mallvoucheruser_price}">{$mallvoucher.desc}</option>
+                                {/foreach}
+                            </select>:
+                        </dt>
+                        <dd>¥<em id="mallVoucher">-0.00</em></dd>
+                    </dl>
+                </div>
+            </td>
+        </tr>
+        {/notempty}
+
+        <!-- E mallvoucher list -->
+        
+      </tbody>
+      <tfoot>
+        <tr>
+          <td colspan="20"><div class="dsc-all-account">{$Think.lang.total_price}<em id="orderTotal">{$goods_info.goods_total}</em>{$Think.lang.ds_yuan}</div></td>
+        </tr>
+      </tfoot>
+    </table>
+
+</div></form>
+  <div class="dsc-bottom"><a id="submitOrder" href="javascript:void(0)" class="dsc-btn dsc-btn-acidblue fr">{$Think.lang.cart_index_submit_order}</a></div>
+
+<script>
+
+//计算应支付金额计算
+function calcOrder() {
+    var allTotal = parseFloat($('#item_subtotal').html());
+    if ($('#storeVoucher').length > 0) {
+        allTotal += parseFloat($('#storeVoucher').html());
+    }
+    if ($('#mallVoucher').length > 0) {
+        allTotal += parseFloat($('#mallVoucher').html());
+    }
+    $('#orderTotal').html(number_format(allTotal,2));
+}
+
+$(document).ready(function(){
+
+    $('select[dstype="voucher"]').on('change',function(){
+        if ($(this).val() == '') {
+            $('#storeVoucher').html('-0.00');
+        } else {
+            var items = $(this).val().split('|');
+            $('#storeVoucher').html('-'+number_format(items[2],2));
+        }
+        calcOrder();
+    });
+    $('select[dstype="mallvoucher"]').on('change',function(){
+        if ($(this).val() == '') {
+            $('#mallVoucher').html('-0.00');
+        } else {
+            var items = $(this).val().split('|');
+            $('#mallVoucher').html('-'+number_format(items[1],2));
+        }
+        calcOrder();
+    });
+
+
+    var SUBMIT_FORM = true;
+    $('#submitOrder').on('click',function(){
+        if (!$("#form_buy").valid()) return;
+        if (!SUBMIT_FORM) return;
+        SUBMIT_FORM = false;
+        $('#form_buy').submit();
+    });
+
+    $("#form_buy").validate({
+        onkeyup: false,
+        rules: {
+            buyer_phone : {
+                required : true,
+                minlength : 11
+            }
+        },
+        messages: {
+            buyer_phone : {
+                required : "{$Think.lang.write_mobile_number}",
+                minlength : "{$Think.lang.write_correct_mobile_number}",
+            }
+        }
+    });
+});
+function clearMobile(obj){
+    if($(obj).val()=='{:encrypt_show($member_info.member_mobile,4,4)}'){
+        $(obj).val('')
+    }
+}
+</script>
+{include file="default/base/mall_footer" /}

+ 175 - 0
app/home/view/default_back/member/buyvirtual/buy_virtual_step3.html

@@ -0,0 +1,175 @@
+{include file="default/base/mall_top" /}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+  <div class="dsc-title">
+    <h3>{$Think.lang.cart_step2_online_pay}</h3>
+    <h5><a href="{:url('Membervrorder/show_order',['order_id'=>$order_info.order_id])}" target="_blank">{$Think.lang.view_order_details}</a></h5>
+  </div>
+  <form action="{:url('Payment/vr_order')}" method="POST" id="buy_form">
+    <input type="hidden" name="order_sn" value="{$order_info.order_sn}">
+    <input type="hidden" id="payment_code" name="payment_code" value="">
+    <div class="dsc-receipt-info">
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.please_pay_time}<strong>¥{$diff_pay_amount}</strong></h3>
+      </div>
+      <table class="dsc-table-style">
+        <thead>
+          <tr>
+            <th class="w50"></th>
+            <th class="w150 tc">{$Think.lang.order_number}</th>
+            <th class="w250 tc">{$Think.lang.cart_index_store_goods}</th>
+            <th class="tc">{$Think.lang.cart_index_price}</th>
+            <th class="w150 tc">{$Think.lang.cart_index_amount}</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr>
+            <td></td>
+            <td class="tc">{$order_info.order_sn}</td>
+            <td class="tc">{$order_info.goods_name}</td>
+            <td class="tc">¥{$order_info.goods_price}</td>
+            <td class="tc">{$order_info.goods_num}</td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+    
+      <!-- S 预存款 & 充值卡 -->
+      {if !empty($available_pd_amount) || !empty($available_rcb_amount)}
+      <div id="pd_panel">
+          <div class="pd-account" colspan="6"><div class="dsc-pd-account">
+                  {notempty name="available_rcb_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="rcb_pay">
+                          {$Think.lang.use_top_up_cards}:<em>{$available_rcb_amount}</em>{$Think.lang.ds_yuan}
+                      </label>
+                  </div>
+                  {/notempty}
+                  {notempty name="available_pd_amount"}
+                  <div class="mt5 mb5">
+                      <label>
+                          <input type="checkbox" class="vm mr5" value="1" name="pd_pay">
+                          {$Think.lang.pre_deposit}:<em>{$available_pd_amount}</em>{$Think.lang.ds_yuan})</label>
+                  </div>
+                  {/notempty}
+                  {if !empty($available_pd_amount) && !empty($available_rcb_amount)}
+                  <div class="mt5 mb5">{$Think.lang.system_priority}&nbsp;&nbsp;</div>
+                  {/if}
+                  <div id="pd_password" style="display: none">{$Think.lang.pay_the_password}({$Think.lang.pay_the_password_tips}):
+                      <input type="password" class="text w120" value="" name="password" id="pay-password" maxlength="35" autocomplete="off">
+                      <input type="hidden" value="" name="password_callback" id="password_callback">
+                      <a class="dsc-btn-mini dsc-btn-orange" id="pd_pay_submit" href="javascript:void(0)">{$Think.lang.use}</a>
+                      {if !$member_paypwd}
+                      {$Think.lang.no_payment_password_set},<a href="{:url('Membersecurity/auth',['type'=>'modify_paypwd'])}" target="_blank">{$Think.lang.set_up_immediately}</a>
+                      {/if}
+                  </div>
+              </div>
+          </div>
+      </div>
+      {/if}
+      <!-- E 预存款 -->
+    <div class="dsc-receipt-info">
+        {empty name="payment_list"}
+      <div class="nopay">{$Think.lang.cart_step2_paymentnull_1} <a href="{:url('Membermessage/sendmsg',['member_id'=>$order.seller_id])}">{$Think.lang.cart_step2_paymentnull_2}</a> {$Think.lang.cart_step2_paymentnull_3}</div>
+      {else /}
+      <div class="dsc-receipt-info-title">
+        <h3>{$Think.lang.payment_option}</h3>
+      </div>
+      <ul class="dsc-payment-list">
+          {foreach name="payment_list" item="val"}
+        <li payment_code="{$val.payment_code}">
+          <label for="pay_{$val.payment_code}">
+          <i></i>
+          <div class="logo" for="pay_{$val.payment_code}"> <img src="{$Think.HOME_SITE_ROOT}/images/payment/{$val.payment_code}_logo.gif" /> </div>
+          </label>
+        </li>
+       {/foreach}
+      </ul>
+      {/empty}
+    </div>
+    <div class="dsc-bottom tc mb50"><a href="javascript:void(0);" id="next_button" class="dsc-btn dsc-btn-green"><i class="iconfont">&#xe6f0;</i>{$Think.lang.cart_step2_ensure_pay}</a></div>
+  </form>
+</div>
+{include file="default/base/mall_footer" /}
+<script type="text/javascript">
+$(function(){
+    $('.dsc-payment-list > li').on('click',function(){
+        $('.dsc-payment-list > li').removeClass('using');
+        $(this).addClass('using');
+        $('#payment_code').val($(this).attr('payment_code'));
+    });
+    $('#next_button').on('click',function(){
+        if ($('#payment_code').val() == '') {
+            layer.alert('{$Think.lang.cart_step2_choose_pay_method}');return false;
+        }
+        $('#buy_form').submit();
+    });
+    
+    {if !empty($available_pd_amount) || !empty($available_rcb_amount)}
+    function showPaySubmit() {
+        if ($('input[name="pd_pay"]').prop('checked') || $('input[name="rcb_pay"]').prop('checked')) {
+        	$('#pay-password').val('');
+        	$('#password_callback').val('');
+        	$('#pd_password').show();
+        } else {
+        	$('#pd_password').hide();
+        }
+    }
+
+    $('#pd_pay_submit').on('click',function(){
+        if ($('#pay-password').val() == '') {
+                layer.alert('{$Think.lang.enter_payment_password}');return;
+        }
+        $('#password_callback').val('');
+        var url = HOMESITEURL+'/Buy/check_pd_pwd.html'
+	   $.post(url, {'password':$('#pay-password').val()}, function(data){
+            if (data == '1') {
+            	$('#password_callback').val('1');
+            	$('#pd_password').hide();
+            } else {
+            	$('#pay-password').val('');
+                layer.alert('{$Think.lang.payment_password_error}');return;
+            }
+        });
+    });
+    {/if}
+
+    {if !empty($available_rcb_amount)}
+    $('input[name="rcb_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="pd_pay"]').prop('checked')) {
+        	if ({$available_rcb_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="pd_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="pd_pay"]').prop('disabled',false);
+    	}
+    });
+    {/if}
+
+    {if !empty($available_pd_amount)}
+    $('input[name="pd_pay"]').on('change',function(){
+    	showPaySubmit();
+    	if ($(this).prop('checked') && !$('input[name="rcb_pay"]').prop('checked')) {
+        	if ({$available_pd_amount} >= parseFloat($('#orderTotal').html())) {
+            	$('input[name="rcb_pay"]').prop('checked',false).prop('disabled',true);
+        	}
+    	} else {
+    		$('input[name="rcb_pay"]').prop('disabled',false);
+    	}    	
+    });
+    {/if}
+});
+</script>
+
+<style>
+    .pd-account { background-color: #FFAA01; padding: 2px;}
+
+</style>

+ 23 - 0
app/home/view/default_back/member/buyvirtual/buy_virtual_step4.html

@@ -0,0 +1,23 @@
+{include file="default/base/mall_top" /}
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+</div>
+<div class="dsc-line"></div>
+<div class="dsc-main">
+    <div class="dsc-title">
+        <h3>{$Think.lang.cart_index_buy_finish}</h3>
+        <h5>{$Think.lang.order_has_been_paid}</h5>
+    </div>
+    <div class="dsc-receipt-info mb30">
+        <div class="dsc-finish-a"><i></i>{$Think.lang.order_payment_success}<em>¥{$Request.param.order_amount}</em>,{$Think.lang.cart_step2_order_sn}:{$Request.param.order_sn}。</div>
+        <div class="dsc-finish-b"><a href="{$Think.HOME_SITE_URL}/Membervrorder/index.html?order_sn={$Request.param.order_sn}">{$Think.lang.view_order_details}</a></div>
+        <div class="dsc-finish-c mb30"><a href="{$Think.HOME_SITE_URL}" class="dsc-btn-mini dsc-btn-green mr15"><i class="iconfont">&#xe69a;</i>{$Think.lang.cart_index_continue_shopping}</a><a href="{:url('Membervrorder/index')}" class="dsc-btn-mini dsc-btn-acidblue"><i class="iconfont">&#xe71f;</i>{$Think.lang.check_my_order}</a></div>
+    </div>
+</div>
+
+
+{include file="default/base/mall_footer" /}

+ 184 - 0
app/home/view/default_back/member/cart/cart.html

@@ -0,0 +1,184 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.HOME_SITE_ROOT}/js/goods_cart.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class="current"><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+
+
+<div class="dsc-main">
+    <div class="dsc-title">
+        <h3>{$Think.lang.cart_index_ensure_order}</h3>
+        <h5>{$Think.lang.look_shopping_cart_list}</h5>
+    </div>
+    <form action="{:url('Buy/buy_step1')}" method="POST" id="form_buy" name="form_buy">
+    <input type="hidden" value="1" name="ifcart">
+    <table class="dsc-table-style" ds_type="table_cart">
+      <thead>
+        <tr>
+          <th class="w50"><label>
+              <input type="checkbox" checked value="1" id="selectAll">
+              {$Think.lang.ds_select_all}</label></th>
+          <th></th>
+          <th>{$Think.lang.cart_index_store_goods}</th>
+          <th class="w120">{$Think.lang.cart_index_price}({$Think.lang.ds_yuan})</th>
+          <th class="w120">{$Think.lang.cart_index_amount}</th>
+          <th class="w120">{$Think.lang.cart_index_sum}({$Think.lang.ds_yuan})</th>
+          <th class="w80">{$Think.lang.cart_index_handle}</th>
+        </tr>
+      </thead>
+      <?php foreach($store_cart_list as $store_id => $cart_list) {?>
+      <tbody>
+        <tr>
+          <th colspan="7"><strong>{$Think.lang.cart_step1_store}:<a href="{:url('Store/index',['store_id'=>$store_id])}">{$cart_list[0]['store_name']}</a></strong> <span member_id="{$store_list[$store_id]['member_id']}"></span>
+            {notempty name="$free_freight_list[$store_id]"}
+            <div class="store-sale"><em><i class="iconfont">&#xe753;</i>{$Think.lang.cart_step1_transport_fee}</em>{$free_freight_list[$store_id]}&emsp;</div>
+            {/notempty}
+          </th>
+        </tr>
+
+        <!-- S one store list -->
+        <?php foreach($cart_list as $cart_info) {?>
+        <tr id="cart_item_{$cart_info.cart_id}" ds_group="{$cart_info.cart_id}" class="shop-list {if $cart_info.state}{else/}item_disabled{/if}">
+          <td><input type="checkbox" {if $cart_info.state}checked{else/}disabled{/if} ds_type="eachGoodsCheckBox" value="{$cart_info.cart_id}|{$cart_info.goods_num}" id="cart_id{$cart_info.cart_id}" name="cart_id[]"></td>
+          {if $cart_info.bl_id == '0'}
+          <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$cart_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img class="lazyload" data-original="{:goods_thumb($cart_info,240)}" alt="{$cart_info.goods_name}" /></a></td>
+          {/if}
+          <td class="tl" {if $cart_info.bl_id != '0'}colspan="2"{/if}><dl class="dsc-goods-info">
+              <dt><a href="{:url('Goods/index',['goods_id'=>$cart_info.goods_id])}" target="_blank">{$cart_info.goods_name}</a></dt>
+              {notempty name="$cart_info.ifxianshi"}
+              <dd> <span class="xianshi">{$Think.lang.ds_mansong_flag}<strong>{$cart_info['xianshi_info']['xianshigoods_lower_limit']}</strong>{$Think.lang.unit_price_drop}<em>¥{$cart_info['xianshi_info']['down_price']}</em></span> </dd>
+              {/notempty}
+              {if isset($cart_info.ifgroupbuy)}
+              <dd> <span class="groupbuy">{$Think.lang.ds_groupbuy}{if $cart_info.upper_limit},{$Think.lang.maximum_limit_purchase}<strong>{$cart_info.upper_limit}</strong>{$Think.lang.piece}{/if}</span></dd>
+              {/if}
+              {if $cart_info.bl_id != '0'}
+              <dd><span class="buldling">{$Think.lang.single_set_drop}<em>¥{$cart_info.down_price}</em></span></dd>
+              {/if}
+              {notempty name="$cart_info.ifmgdiscount"}
+              <dd><span class="mgdiscount">{$cart_info.mgdiscount_desc}</span></dd>
+              {/notempty}
+
+              <!-- S gift list -->
+              {notempty name="$cart_info.gift_list"}
+              <dd><span class="dsc-goods-gift">{$Think.lang.gift}</span>
+                <ul class="dsc-goods-gift-list">
+                  {foreach name="$cart_info.gift_list" item="goods_info"}
+                  <li ds_group="{$cart_info.cart_id}"><a href="{:url('Goods/index',['goods_id'=>$goods_info.gift_goodsid])}" target="_blank" class="thumb" ><img src="{:goods_cthumb($goods_info['gift_goodsimage'],240,$store_id)}" alt="{$goods_info.gift_goodsname}" /></a>
+                    {/foreach}
+                  </li>
+                </ul>
+              </dd>
+              {/notempty}
+              <!-- E gift list -->
+            </dl></td>
+          <td class="w120"><em id="item{$cart_info.cart_id}_price">{$cart_info.goods_price}</em></td>
+          {if $cart_info.state}
+          <td class="w120 ws0"><a href="JavaScript:void(0);" onclick="decrease_quantity({$cart_info.cart_id});" title="{$Think.lang.cart_index_reduse}" class="add-substract-key tip">-</a>
+            <input id="input_item_{$cart_info.cart_id}" value="{$cart_info.goods_num}" orig="{$cart_info.goods_num}" changed="{$cart_info.goods_num}" onkeyup="change_quantity({$cart_info.cart_id}, this);" type="text" class="text w20"/>
+            <a href="JavaScript:void(0);" onclick="add_quantity({$cart_info.cart_id});" title="{$Think.lang.cart_index_increase}" class="add-substract-key tip" >+</a></td>
+          {else/}
+          <td class="w120">{$Think.lang.invalid}
+            <input type="hidden" value="{$cart_info.cart_id}" name="invalid_cart[]"></td>
+          {/if}
+          <td class="w120">
+              {if $cart_info.state}
+              <em id="item{$cart_info.cart_id}_subtotal" ds_type="eachGoodsTotal">{$cart_info.goods_total}</em>
+              {/if}
+          </td>
+          <td class="w80">
+              {if $cart_info.bl_id == '0'}
+              <a href="javascript:void(0)" onclick="collect_goods('{$cart_info.goods_id}');">{$Think.lang.cart_index_favorite}</a><br/>
+              {/if}
+            <a href="javascript:void(0)" onclick="drop_cart_item({$cart_info.cart_id});">{$Think.lang.cart_index_del}</a></td>
+        </tr>
+
+        <!-- S bundling goods list -->
+        {notempty name="$cart_info.bl_goods_list"}
+        {foreach name="$cart_info.bl_goods_list" item="goods_info" }
+        <tr class="shop-list {if !$cart_info['state']}item_disabled{/if}" ds_group="{$cart_info.cart_id}">
+          <td></td>
+          <td class="w60"><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank" class="dsc-goods-thumb"><img src="{:goods_cthumb($goods_info['goods_image'],240,$store_id)}" alt="{$goods_info.goods_name}" /></a></td>
+          <td class="tl"><dl class="dsc-goods-info">
+              <dt><a href="{:url('Goods/index',['goods_id'=>$goods_info.goods_id])}" target="_blank">{$goods_info.goods_name}</a> </dt>
+            </dl></td>
+          <td><em>{$goods_info.blgoods_price}</em></td>
+          <td>{if !$cart_info['state']}{$Think.lang.invalid}{/if}</td>
+          <td></td>
+          <td><a href="javascript:void(0)" onclick="collect_goods('{$goods_info.goods_id}');">{$Think.lang.cart_index_favorite}</a><br/></td>
+        </tr>
+        {/foreach}
+        {/notempty}
+        <!-- E bundling goods list -->
+
+        <?php } ?>
+        <!-- E one store list -->
+
+        <!-- S mansong list -->
+        {notempty name="$mansong_rule_list[$store_id]"}
+        <tr ds_group="{$cart_info.cart_id}">
+          <td></td>
+          <td class="tl" colspan="10"><div class="store-sale"><em> <i class="iconfont">&#xe753;</i> {$Think.lang.ds_mansong} </em>{:implode('<br/>', $mansong_rule_list[$store_id])}</div></td>
+        </tr>
+        {/notempty}
+        <!-- E mansong list -->
+
+        <tr>
+          <td class="tr" colspan="7"><div class="dsc-store-account">
+              <dl>
+                <dt>{$Think.lang.total_store}:</dt>
+                <dd><em ds_type="eachStoreTotal"></em>{$Think.lang.ds_yuan}</dd>
+              </dl>
+            </div></td>
+        </tr>
+        <?php }?>
+      </tbody>
+      <tfoot>
+        <tr>
+          <td colspan="7"><div class="dsc-all-account">{$Think.lang.cart_index_goods_sumary}<em id="cartTotal">{$cart_totals|default=0}</em>{$Think.lang.ds_yuan}</div></td>
+        </tr>
+      </tfoot>
+    </table>
+  </form>
+    <div class="dsc-bottom"><a id="next_submit" href="javascript:void(0)" class="dsc-btn dsc-btn-acidblue fr"><i class="iconfont">&#xe731;</i>{$Think.lang.next_fillcheck_shopping_information}</a></div>
+  <!-- 猜你喜欢 -->
+  <div id="guesslike_div"></div>
+  
+  
+</div>
+
+<script type="text/javascript">
+$(function(){
+	//猜你喜欢
+	$('#guesslike_div').load("{:url('Search/get_guesslike')}", function(){
+        $(this).show();
+    });
+});
+</script>
+{include file="default/base/mall_footer" /}

+ 47 - 0
app/home/view/default_back/member/cart/cart_empty.html

@@ -0,0 +1,47 @@
+{include file="default/base/mall_top" /} 
+
+<link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home_cart.css">
+<script src="{$Think.HOME_SITE_ROOT}/js/goods_cart.js"></script>
+<div class="dsc-header">
+    <div class="logo">
+        <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
+    </div>
+    <ul class="dsc-flow">
+        <li class="current"><i class="iconfont">&#xe69a;</i>
+            <p>{$Think.lang.cart_index_ensure_order}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe731;</i>
+            <p>{$Think.lang.cart_index_ensure_info}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe64f;</i>
+            <p>{$Think.lang.cart_index_payment}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+        <li class=""><i class="iconfont">&#xe67e;</i>
+            <p>{$Think.lang.cart_index_buy_finish}</p>
+            <sub></sub>
+            <div class="hr"></div>
+        </li>
+    </ul>
+</div>
+<div class="dsc-line"></div>
+
+<div class="dsc-main">
+    <div class="dsc-null-shopping">
+        <i class="ico"></i>
+        <div class="fl">
+            <h4>{$Think.lang.cart_index_no_goods_in_cart}</h4>
+            <p>
+                <a href="{$Think.HOME_SITE_URL}" class="bg-blue"><i class="iconfont">&#xe74e;</i>回首页</a>
+                <a href="{:url('Search/index')}" class="bg-green10"><i class="iconfont">&#xe732;</i>去购物</a>
+            </p>
+        </div>
+    </div>
+</div>
+
+{include file="default/base/mall_footer" /}

+ 41 - 0
app/home/view/default_back/member/cart/cart_mini.html

@@ -0,0 +1,41 @@
+<ul class="cart-list">
+    {notempty name="cart_list.list"}
+    {foreach name="cart_list.list" item="v" length='9'}
+    <li ds_type="cart_item_{$v.cart_id}">
+        <div class="goods-pic"><a href="{$v.goods_url}" title="{$v.goods_name}" target="_blank";>
+            <img src="{$v.goods_image}" alt="{$v.goods_name}"/></a></div>
+        <dl>
+            <dt class="goods-name"><a href="{$v.goods_url}" title="{$v.goods_name}" target="_blank";>{$v.goods_name}</a></dt>
+            <dd><em class="goods-price">{$Think.lang.currency}{$v.goods_price}</em>×{$v.goods_num}</dd>
+        </dl>
+        <a href="javascript:drop_topcart_item({$v.cart_id});" class="del" title="{$Think.lang.ds_delete}">X</a>
+    </li>
+    {/foreach}
+    <script>
+        $(function(){
+            $('.head-user-menu .my-cart').append('<div class="addcart-goods-num">{$cart_list.cart_goods_num}</div>');
+            $('#rtoobar_cart_count').html({$cart_list.cart_goods_num}).show();
+        });
+    </script>
+    {else /}
+    <li>
+        <dl><dd style="text-align: center; font-size: 12px">{$Think.lang.ds_common_goods_null}</dd></dl>
+    </li>
+    <script>
+        $(function(){
+            $('.addcart-goods-num').remove();
+            $('#rtoobar_cart_count').html('').hide();
+        });
+    </script>
+   {/notempty}
+</ul>
+<div class="btn-box">
+    {present name="cart_list.list"}
+    
+    <div dstype="rtoolbar_total_price" class="total-price">
+        <p>{$Think.lang.ds_goods_num_one}<em class="goods-price" style="margin-left: 5px">{$cart_list.cart_goods_num}</em>{$Think.lang.goods}</p>
+        <p>{$Think.lang.total}:<em class="goods-price">¥{$cart_list.cart_all_price}</em></p>
+    </div>
+    <a href="javascript:void(0);" onclick="javascript:window.location.href='{:url('Cart/index')}'">{$Think.lang.shopping_cart_settlement}</a>
+    {/present}
+</div>

+ 46 - 0
app/home/view/default_back/member/fleaalbum/store_flea_sample.html

@@ -0,0 +1,46 @@
+
+<div class="goods-gallery"> <a class='sample_demo' id="select_submit" href="fleaalbum/pic_list/item/goods" style="display:none;">{$Think.lang.ds_submit}</a>
+  <div class="nav"><span class="l">{$Think.lang.store_goods_album_users} >
+    {notempty name="class_name"}
+    {$class_name}
+    {else/}
+    {$Think.lang.store_goods_album_all_photo}
+    {/notempty}
+    </span><span class="r">
+    <select name="jumpMenu" id="jumpMenu" style="width:100px;">
+      <option value="0" style="width:80px;">{$Think.lang.ds_please_choose}</option>
+      {foreach name="class_list" item="val"}
+      <option style="width:80px;" value="{$val.aclass_id}" {if $Request.get.id == $val.aclass_id}selected{/if}>{$val.aclass_name}</option>
+      {/foreach}
+    </select>
+    </span></div>
+  <ul class="list">
+    {foreach $pic_list as $v} 
+    <li onclick="insert_img('{:flea_thumb($v['fleafile_name'])}');"><a href="JavaScript:void(0);"><span class="thumb size90"><i></i>
+                <img src="{:flea_thumb($v['fleafile_name'])}" onload="javascript:ResizeImage(this,90,90);" onerror="this.src='{:goods_thumb()}'" title='{$v.apic_name}'/></span></a></li>
+    {/foreach}
+  </ul>
+  <div class="clear" style="padding-top:10px;"></div>
+  <div class="pagination">{$show_page|raw}</div>
+  <div class="clear" style="padding-bottom:20px;"></div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){
+	$('.demo').ajaxContent({
+		event:'click', //mouseover
+		loaderType:'img',
+		loadingMsg:'{$Think.HOME_SITE_ROOT}/images/loading.gif',
+		target:'#demo'
+	});
+	$('#jumpMenu').change(function(){
+		$('#select_submit').attr('href',$('#select_submit').attr('href')+"&id="+$('#jumpMenu').val());
+		$('.sample_demo').ajaxContent({
+			event:'click', //mouseover
+			loaderType:'img',
+			loadingMsg:'{$Think.HOME_SITE_ROOT}/images/loading.gif',
+			target:'#demo'
+		});
+		$('#select_submit').click();
+	});
+});
+</script>

+ 30 - 0
app/home/view/default_back/member/fleaalbum/store_flea_sample_des.html

@@ -0,0 +1,30 @@
+
+<div class="goods-gallery"> <a class='sample_demo' id="select_s" href="fleaalbum/pic_list/item/des" style="display:none;">{$Think.lang.ds_submit}</a>
+    <ul class="list">
+        {foreach $pic_list as $v} 
+        <li onclick="insert_editor('{:flea_thumb($v['fleafile_name'])}');"> <a href="JavaScript:void(0);"> <span class="thumb size90"> <i></i> <img src="{:flea_thumb($v['fleafile_name'])}" onload="javascript:ResizeImage(this, 90, 90);" title='{$v.fleafile_name}'/> </span> </a> </li>
+        {/foreach}
+    </ul>
+    <div class='clear'></div>
+    <div class="pagination">{$show_page|raw}</div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){
+	$('.demo').ajaxContent({
+		event:'click', //mouseover
+		loaderType:'img',
+		loadingMsg:'{$Think.HOME_SITE_ROOT}/images/loading.gif',
+		target:'#des_demo'
+	});
+	$('#jump_menu').change(function(){
+		$('#select_s').attr('href',$('#select_s').attr('href')+"&id="+$('#jump_menu').val());
+		$('.sample_demo').ajaxContent({
+			event:'click', //mouseover
+			loaderType:'img',
+			loadingMsg:'{$Think.HOME_SITE_ROOT}/images/loading.gif',
+			target:'#des_demo'
+		});
+		$('#select_s').click();
+	});
+});
+</script>

+ 49 - 0
app/home/view/default_back/member/member/goods_info.html

@@ -0,0 +1,49 @@
+<div class="pt20">
+        <div class="mc-title">
+            <h3>{$Think.lang.ds_merchandise_collection}</h3>
+        </div>
+        <div class="mc-list">
+            {notempty name="favorites_list"}
+            {foreach name="favorites_list" item="favorites" }
+            <div class="mc-item">
+                <a href='{:url('Goods/index',['goods_id'=>$favorites.goods.goods_id])}' target='_blank' title="{$favorites.goods.goods_name}">
+                <img src="{:goods_thumb($favorites['goods'], 240)}">
+                </a>
+            </div>
+            {/foreach}
+            {else /}
+            <dl class="null-tip pb10">
+                <dt class="iconfont">&#xe732;</dt>
+              <dd>
+                <h4>{$Think.lang.have_no_collections_yet}</h4>
+                <h5>{$Think.lang.new_promotions_price_cuts}</h5>
+              </dd>
+            </dl>
+            {/notempty}
+        </div>
+    </div>
+    <div class="pt20">
+        <div class="mc-title">
+            <h3>{$Think.lang.store_collections}</h3>
+        </div>
+        <div class="mc-list">
+            {notempty name="favorites_store_list"}
+            {foreach name="favorites_store_list" item="favorites" }
+            <div class="mc-item">
+                <a href='{:url('Store/index',['store_id'=>$favorites.store.store_id])}' target='_blank' title="{$favorites.store.store_name}">
+                <img src="{:get_store_logo($favorites['store']['store_avatar'])}">
+                </a>    
+            </div>
+            {/foreach}
+            {else /}
+            <dl class="null-tip pb10">
+                <dt class="iconfont">&#xe737;</dt>
+              <dd>
+                <h4>{$Think.lang.no_collection_shop}</h4>
+                <h5>{$Think.lang.stores_latest_merchandise_promotions}</h5>
+              </dd>
+            </dl>
+            {/notempty}
+        </div>
+    </div>
+

+ 111 - 0
app/home/view/default_back/member/member/index.html

@@ -0,0 +1,111 @@
+{extend name="default/base/base_member" /}
+
+{block name="member_main"}
+<style>
+    .dsm-container .right-layout{background: none;padding:0}
+    .tabmenu{display: none}
+</style>
+<div class="mc-left">
+    <div class='mc-user'>
+        <div class="mc-user-card fl">
+            <div class="circle-top"></div>
+            <div class="circle-bottom"></div>
+            <div class="user-head fl">
+                <div class="user-canvas "> 
+                    <a href="{:url('Pointgrade/index')}" class="level_name">{$home_member_info.level_name}</a>
+                    <div class="canvas-bg">
+                        <div class="canvas-left"><div></div></div><!--起始度数-121deg为0%,增加度数到0deg时半圈结束-->
+                        <div class="canvas-right"><div></div></div><!--起始度数为为-180deg,增加度数到-59deg时为100%半圈结束-->
+                    </div>
+                </div>
+                <p class="user-img">
+                    <img src="{:get_member_avatar($home_member_info.member_avatar)}?{$Think.TIMESTAMP}">
+                </p>
+            </div>
+            <div class="mc-user-info fl ">
+                <div class="name">{$home_member_info.member_nickname}</div>
+                <a href="{:url('membermessage/message')}" class="link">{$Think.lang.ds_view}{$Think.lang.ds_my_news}&nbsp;&gt;</a>
+                <a href="{:url('memberinformation/index')}" class="mc-user-btn">{$Think.lang.ds_account_information}</a>
+            </div>
+        </div>
+
+        <div class="mc-user-huaban fl">
+            <ul>
+                <li>
+                    <a href="{:url('memberpoints/index')}" class="p-icon bg-blue iconfont">&#xe6b7;</a>
+                    <p class="p-dec">{$Think.lang.points_unit}</p>
+                    <p class="p-price"><span class="">{$home_member_info.member_points}</span>{$Think.lang.credit_unit}</p>
+                </li>
+                <li>
+                    <a href="{:url('membervoucher/index')}" class="p-icon bg-green3 iconfont">&#xe668;</a>
+                    <p class="p-dec">{$Think.lang.ds_vouchers}</p>
+                    <p class="p-price"><span>{$home_member_info.voucher_count}</span>{$Think.lang.ds_zhang}</p>
+                </li>
+                <li>
+                    <a href="{:url('predeposit/pd_log_list')}" class="p-icon bg-red13 iconfont f20">&#xe64f;</a>
+                    <p class="p-dec">{$Think.lang.ds_member_path_predeposit_title}</p>
+                    <p class="p-price"><span class="">{$home_member_info.available_predeposit}</span>{$Think.lang.ds_yuan}</p>
+                </li>
+            </ul>
+        </div>
+    </div>
+
+    <div class="mc-order-portal">
+        <ul>
+            <li class="portal-icon-1">
+                <a href="{:url('Memberorder/index',['state_type'=>'state_new'])}"><span class="iconfont">&#xe6a1;{if $home_order_info.order_nopay_count}<b>{$home_order_info.order_nopay_count}</b>{/if}</span>{$Think.lang.order_nopay}</a>
+            </li>
+            <li class="portal-icon-5">
+                <a href="{:url('Memberorder/index',['state_type'=>'state_pay'])}"><span class="iconfont">&#xe6ef;{if $home_order_info.order_noship_count}<b>{$home_order_info.order_noship_count}</b>{/if}</span>{$Think.lang.order_noship}</a>
+            </li>
+            <li class="portal-icon-2">
+                <a href="{:url('Memberorder/index',['state_type'=>'state_send'])}"><span class="iconfont">&#xe6f1;{if $home_order_info.order_noreceipt_count}<b>{$home_order_info.order_noreceipt_count}</b>{/if}</span>{$Think.lang.order_noreceipt}</a>
+            </li>
+            <li class="portal-icon-3">
+                <a href="{:url('Memberorder/index',['state_type'=>'state_noeval'])}"><span class="iconfont">&#xe730;{if $home_order_info.order_noeval_count}<b>{$home_order_info.order_noeval_count}</b>{/if}</span>{$Think.lang.order_noeval}</a>
+            </li>
+            <li class="portal-icon-4">
+                <a href="{:url('memberrefund/index')}"><span class="iconfont">&#xe717;{if $home_order_info.order_refund_count}<b>{$home_order_info.order_refund_count}</b>{/if}</span>{$Think.lang.order_refund}</a>
+            </li>
+            
+        </ul>
+    </div>
+</div>    
+<div class="mc-right">
+    <div class="mc-security">
+        <div class="title">{$Think.lang.account_security}</div>
+        <div class="content">{if $home_member_info.security_level>2}{$Think.lang.high}{elseif $home_member_info.security_level>1}{$Think.lang.medium}{else}{$Think.lang.low}{/if}</div>
+        <div class="detail"><span class="iconfont bg-orange2">&#xe60e;</span>{$Think.lang.bind_mobile_phone}<span class="state fr {if $home_member_info.member_mobilebind == 1}active{/if}">{if $home_member_info.member_mobilebind == 1}{$Think.lang.bound}{else}{$Think.lang.unbound}{/if}</span></div>
+        <div class="detail"><span class="iconfont bg-purple3 f14">&#xe75a;</span>{$Think.lang.bind_mailbox}<span class="state fr {if $home_member_info.member_emailbind == 1}active{/if}">{if $home_member_info.member_emailbind == 1}{$Think.lang.bound}{else}{$Think.lang.unbound}{/if}</span></div>
+    </div>
+</div>   
+<div class="mc-left append"></div>
+<div class="mc-right append"></div>
+<div class="right-layout">
+        <div id="member_center_box" class="dsm-index-container">
+        </div>
+        <script type="text/javascript">
+            $(function() {
+                var INFO_TYPE = ['goods_info', 'sns_info','order_info'/*, 'point_info'*/];
+                function _ajax_load(type) {
+                    $.ajax({
+                        url: HOMESITEURL+'/Member/ajax_load_' + type,
+                        success: function(html) {
+                            INFO_TYPE.shift();
+                            if (INFO_TYPE[0]) {
+                                _ajax_load(INFO_TYPE[0]);
+                            }
+                            var container='.mc-left.append';
+                            switch(type){
+                                case "goods_info":
+                                    container=".mc-right.append"
+                            }
+                            $(container).append(html);
+                        }
+                    });
+                }
+                _ajax_load(INFO_TYPE[0])
+            });
+        </script>
+    </div>
+{/block}

+ 39 - 0
app/home/view/default_back/member/member/member_info.html

@@ -0,0 +1,39 @@
+  <div id="account" class="double">
+    <div class="outline">
+      <div class="user-account">
+        <ul>
+          <li id="pre-deposit"><a href="{:url('Predeposit/pd_log_list')}" title="{$Think.lang.check_my_balance}">
+            <h5>{$Think.lang.ds_predepositnum}</h5>
+            <span class="icon iconfont">&#xe6f5;</span> <span class="value">¥<em>{$member_info.available_predeposit}</em></span></a> </li>
+          <li id="voucher"><a href="{:url('Membervoucher/index')}" title="{$Think.lang.check_my_voucher}">
+            <h5>{$Think.lang.ds_vouchers}</h5>
+            <span class="icon iconfont">&#xe64f;</span> <span class="value"><em>{$home_member_info.voucher_count|default='0'}</em>{$Think.lang.ds_zhang}</span></a> </li>
+          <li id="points"><a href="{:url('Memberpoints/index')}" title="{$Think.lang.check_my_points}">
+            <h5>{$Think.lang.ds_pointsnum}</h5>
+            <span class="icon iconfont">&#xe757;</span> <span class="value"><em>{$member_info.member_points}</em>{$Think.lang.credit_unit}</span></a> </li>
+        </ul>
+      </div>
+    </div>
+  </div>
+  <div id="security" class="normal">
+    <div class="outline">
+        <div class="SAM">
+            <h5>{$Think.lang.account_security}</h5>
+            {if $home_member_info['security_level'] <= 1}
+            <div id="low" class="SAM-info"><strong>{$Think.lang.low}</strong><i><span><em></em></span></i>
+                {elseif $home_member_info['security_level'] == 2 /}
+                <div id="normal" class="SAM-info"><strong>{$Think.lang.medium}</strong><i><span><em></em></span></i>
+                    {else/}
+                    <div id="high" class="SAM-info"><strong>{$Think.lang.high}</strong><i><span><em></em></span></i>
+                        {/if}
+                        {if $home_member_info['security_level'] < 3}
+                        <a href="{:url('Membersecurity/index')}" title="{$Think.lang.security_settings}">{$Think.lang.promotion}></a>
+                        {/if}
+                    </div>
+                    <div class="SAM-handle">
+                        <span><i class="iconfont mobile">&#xe60e;</i>{$Think.lang.mobile_phone}:{if $home_member_info['member_mobilebind'] == 1}<em>{$Think.lang.bound}</em>{else/}<a href="{:url('Membersecurity/auth',['type'=>'modify_mobile'])}" title="{$Think.lang.bind_mobile_phone}">{$Think.lang.unbound}</a>{/if}</span>
+                        <span><i class="mail iconfont">&#xe75a;</i>{$Think.lang.email}:{if $home_member_info['member_emailbind'] == 1}<em>{$Think.lang.bound}</em>{else/}<a href="{:url('Membersecurity/auth',['type'=>'modify_email'])}" title="{$Think.lang.bind_mailbox}">{$Think.lang.unbound}</a>{/if}</span>
+                    </div>
+                </div>
+            </div>
+        </div>

+ 38 - 0
app/home/view/default_back/member/member/order_info.html

@@ -0,0 +1,38 @@
+<div class="pt20">
+        <div class="mc-title">
+            <h3>{$Think.lang.shopping_cart}</h3>
+        </div>
+        <div class="goods-rolling relative" id="mc-rolling-history">
+            {notempty name="cart_list"}
+            <ul class="grid-list clearfix">
+                {foreach name="cart_list" item="cart_info" }
+                <li class="grid-items">
+                    <a class="thumb" target="_blank" href="{:url('Goods/index',['goods_id'=>$cart_info.goods_id])}" title="{$cart_info.goods_name}">
+                        <p class="grid-img">
+                            <img src="{:goods_thumb($cart_info,240)}" alt="{$cart_info.goods_name}"></p>
+                        <h3 class="grid-title"><span>{$cart_info.goods_name}</span></h3>
+                    </a>
+                </li>
+                {/foreach}
+            </ul>
+            <div class="grid-btn btn-prev"><span class="iconfont">&#xe686;</span></div>
+            <div class="grid-btn btn-next"><span class="iconfont">&#xe687;</span></div>
+            {else /}
+            <dl class="null-tip pt20 pb20">
+                <dt class="iconfont">&#xe69a;</dt>
+              <dd>
+                <h4>{$Think.lang.shopping_cart_still_empty}</h4>
+                <h5>{$Think.lang.with_settlement}</h5>
+              </dd>
+            </dl>
+            {/notempty}
+        </div>
+    </div>
+{notempty name="cart_list"}
+<script>
+//信息轮换
+    $.getScript("{$Think.PLUGINS_SITE_ROOT}/jquery.SuperSlide.2.1.1.js", function() {
+        jQuery('#mc-rolling-history').slide({mainCell:"ul",effect:"left",prevCell:".btn-prev",nextCell:".btn-next",autoPlay:true,vis:4});
+    });
+</script>
+{/notempty}

+ 54 - 0
app/home/view/default_back/member/member/point_info.html

@@ -0,0 +1,54 @@
+<div class="double">
+    <div class="outline">
+        <div class="title">
+            <h3>{$Think.lang.point_exchange}</h3>
+        </div>
+        {if !empty($recommend_voucher) && !empty($recommend_pointsprod)}
+        <div class="dsm-favorites-goods">
+            <ul class="ds-carousel-skin">
+                {foreach name="recommend_voucher" item="v" }
+                <li style='width: 155px;float:left'>
+                    <div class="dsm-goods-thumb-120"><a target="_blank" href="javascript:void(0);" ds_type="exchangebtn" data-param='{"vid":"{$v.vouchertemplate_id}"}'><img src="{$v.vouchertemplate_customimg}" onerror="this.src='{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.default_goods_image)}'"></a>
+                        <div class="dsm-goods-price"><em>{$v.vouchertemplate_points}{$Think.lang.points_unit}</em></div>
+                    </div>
+                    <div class="dsm-goods-name"><a target="_blank" href="javascript:void(0);" ds_type="exchangebtn" data-param='{"vid":"{$v.vouchertemplate_id}"}' title="{$Think.lang.currency}{$v.vouchertemplate_price}{$Think.lang.ds_vouchers}">{$Think.lang.currency}{$v.vouchertemplate_price}{$Think.lang.ds_vouchers}</a></div>
+                </li>
+                {/foreach}
+                {foreach name="recommend_pointsprod" item="v"  }
+                <li style='width: 155px;float:left'>
+                    <div class="dsm-goods-thumb-120"><a href="{:url('Pointprod/pinfo',['id'=>$v.pgoods_id])}" target="_blank" tile="{$v.pgoods_name}"><img src="{$v.pgoods_image}"></a>
+                        <div class="dsm-goods-price"><em>{$v.pgoods_points}{$Think.lang.points_unit}</em></div>
+                    </div>
+                    <div class="dsm-goods-name"><a href="{:url('Pointprod/pinfo',['id'=>$v.pgoods_id])}" target="_blank" tile="{$v.pgoods_name}">{$v.pgoods_name}</a></div>
+                </li>
+                {/foreach}
+            </ul>
+            <div class="more"><a target="_blank" href="{:url('Pointshop/index')}">{$Think.lang.enter_points_mall}</a></div>
+        </div>
+        {else/}
+        <dl class="null-tip">
+            <dt class="iconfont" style="font-size: 38px;color: #ccc">&#xe6e5;</dt>
+            <dd>
+                <h4>{$Think.lang.points_exchange_voucher}</h4>
+                <h5>{$Think.lang.show_points_redeem_vouchers}</h5>
+            </dd>
+        </dl>
+        {/if}
+    </div>
+</div>
+
+<script>
+$(function(){
+	//代金券兑换功能
+    $("[ds_type='exchangebtn']").on('click',function(){
+    	var data_str = $(this).attr('data-param');
+	    eval( "data_str = "+data_str);
+            {if session('is_login') != '1'}
+            login_dialog();
+            {else}
+            ajax_form('vexchange', '{$Think.lang.home_voucher_exchangtitle}', "{:url('Pointvoucher/voucherexchange')}?vid="+data_str.vid, 550);
+            {/if}
+	    return false;
+    });
+});
+</script>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini