提交 2a690119 编写于 作者: G gongfuxiang

游客购买

上级 886d34ff
......@@ -112,6 +112,7 @@ class Pluginsadmin extends Common
$this->assign('params', $params);
// 获取数据
$data = [];
if(!empty($params['id']))
{
// 获取数据
......@@ -120,10 +121,11 @@ class Pluginsadmin extends Common
'n' => 1,
'where' => ['id' => intval($params['id'])],
);
$data = PluginsAdminService::PluginsList($data_params);
$this->assign('data', $data['data'][0]);
$params['plugins'] = $data['data'][0]['plugins'];
$ret = PluginsAdminService::PluginsList($data_params);
$data = $ret['data'][0];
$params['plugins'] = $ret['data'][0]['plugins'];
}
$this->assign('data', $data);
// 标记为空或等于view 并且 编辑数据为空则走第一步
if((empty($params['plugins']) || $params['plugins'] == 'view') && empty($data['data'][0]))
......
......@@ -100,7 +100,19 @@ class Common extends Controller
$this->assign('plugins_view_common_bottom_data', Hook::listen('plugins_view_common_bottom', ['hook_name'=>'plugins_view_common_bottom', 'is_backend'=>false, 'user'=>$this->user]));
// 公共顶部小导航钩子-左侧
$this->assign('plugins_service_header_navigation_top_left_data', Hook::listen('plugins_service_header_navigation_top_left', ['hook_name'=>'plugins_service_header_navigation_top_left', 'is_backend'=>false, 'user'=>$this->user]));
$this->assign('plugins_view_header_navigation_top_left_data', Hook::listen('plugins_view_header_navigation_top_left', ['hook_name'=>'plugins_view_header_navigation_top_left', 'is_backend'=>false, 'user'=>$this->user]));
// 用户登录页面顶部钩子
$this->assign('plugins_view_user_login_info_top_data', Hook::listen('plugins_view_user_login_info_top', ['hook_name'=>'plugins_view_user_login_info_top', 'is_backend'=>false, 'user'=>$this->user]));
// 用户注册页面钩子
$this->assign('plugins_view_user_reg_info_data', Hook::listen('plugins_view_user_reg_info', ['hook_name'=>'plugins_view_user_reg_info', 'is_backend'=>false, 'user'=>$this->user]));
// 用户注册短信页面钩子
$this->assign('plugins_view_user_sms_reg_info_data', Hook::listen('plugins_view_user_sms_reg_info', ['hook_name'=>'plugins_view_user_sms_reg_info', 'is_backend'=>false, 'user'=>$this->user]));
// 用户注册邮箱页面钩子
$this->assign('plugins_view_user_email_reg_info_data', Hook::listen('plugins_view_user_email_reg_info', ['hook_name'=>'plugins_view_user_email_reg_info', 'is_backend'=>false, 'user'=>$this->user]));
}
/**
......
......@@ -137,7 +137,7 @@ class Order extends Common
} else {
$this->assign('msg', '没有相关数据');
return $this->fetch('public/tips_error');
}
}
}
/**
......
......@@ -41,21 +41,21 @@
<tr>
<td class="time">
<span>时间:</span>
<span class="am-form-group">
<span>
<input type="text" autocomplete="off" name="time_start" class="am-form-field am-input-sm am-radius Wdate" placeholder="起始时间" value="{{if !empty($params.time_start)}}{{$params.time_start}}{{/if}}" data-validation-message="日期格式有误" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" /><i class="am-icon-calendar"></i>
</span>
<em class="text-grey">~</em>
<span class="am-form-group">
<span>
<input type="text" autocomplete="off" name="time_end" class="am-form-field am-input-sm am-radius Wdate" placeholder="结束时间" value="{{if !empty($params.time_end)}}{{$params.time_end}}{{/if}}" pattern="^[0-9]{4}-[0-9]{2}-[0-9]{2}$" data-validation-message="日期格式有误" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" /><i class="am-icon-calendar"></i>
</span>
</td>
<td class="price">
<span>价格:</span>
<span class="am-form-group">
<span>
<input type="text" autocomplete="off" name="price_start" class="am-form-field am-input-sm am-radius" placeholder="最小价格" pattern="^([0-9]{1}\d{0,6})(\.\d{1,2})?$" data-validation-message="价格0~9之间的数字" value="{{if !empty($params.price_start)}}{{$params.price_start}}{{/if}}" />
</span>
<em class="text-grey">~</em>
<span class="am-form-group">
<span>
<input type="text" autocomplete="off" name="price_end" class="am-form-field am-input-sm am-radius" placeholder="最大价格" pattern="^([0-9]{1}\d{0,6})(\.\d{1,2})?$" data-validation-message="价格0~9之间的数字" value="{{if !empty($params.price_end)}}{{$params.price_end}}{{/if}}" />
</span>
</td>
......
......@@ -20,11 +20,11 @@
<!-- 公共顶部小导航钩子-左侧 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_service_header_navigation_top_left</span>
<span>plugins_view_header_navigation_top_left</span>
</div>
{{/if}}
{{if !empty($plugins_service_header_navigation_top_left_data) and is_array($plugins_service_header_navigation_top_left_data) and (!isset($is_footer) or $is_footer eq 1)}}
{{foreach $plugins_service_header_navigation_top_left_data as $hook}}
{{if !empty($plugins_view_header_navigation_top_left_data) and is_array($plugins_view_header_navigation_top_left_data) and (!isset($is_footer) or $is_footer eq 1)}}
{{foreach $plugins_view_header_navigation_top_left_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
......
......@@ -23,8 +23,23 @@
<a href="{{:MyUrl('index/user/logininfo')}}">
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius">立即登录</button>
</a>
<hr />
{{/if}}
<!-- 用户注册邮箱页面钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_view_user_email_reg_info</span>
</div>
{{/if}}
{{if !empty($plugins_view_user_email_reg_info_data) and is_array($plugins_view_user_email_reg_info_data)}}
{{foreach $plugins_view_user_email_reg_info_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<hr />
<div class="am-form-group am-form-group-refreshing">
<label>电子邮箱
{{if in_array('sms', MyC('home_user_reg_state'))}}
......
......@@ -21,9 +21,23 @@
{{if in_array('sms', MyC('home_user_reg_state')) or in_array('email', MyC('home_user_reg_state'))}}
<span class="">还没有帐号?</span>
<a href="{{:MyUrl('index/user/reginfo')}}" class="am-btn am-btn-secondary am-btn-xs am-radius">立即注册</a>
<hr />
{{/if}}
<!-- 用户登录页面顶部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_view_user_login_info_top</span>
</div>
{{/if}}
{{if !empty($plugins_view_user_login_info_top_data) and is_array($plugins_view_user_login_info_top_data)}}
{{foreach $plugins_view_user_login_info_top_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<hr />
<div class="am-form-group am-form-group-refreshing">
<label>手机/邮箱</label>
<input type="text" name="accounts" class="am-radius" minlength="1" placeholder="手机/邮箱" data-validation-message="手机/邮箱格式有误" required />
......
......@@ -9,9 +9,23 @@
{{if in_array('sms', MyC('home_user_reg_state')) or in_array('email', MyC('home_user_reg_state'))}}
<span class="">还没有帐号?</span>
<a href="{{:MyUrl('index/user/reginfo')}}" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius">立即注册</a>
<hr />
{{/if}}
<!-- 用户登录页面顶部钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_view_user_login_info_top</span>
</div>
{{/if}}
{{if !empty($plugins_view_user_login_info_top_data) and is_array($plugins_view_user_login_info_top_data)}}
{{foreach $plugins_view_user_login_info_top_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<hr />
<div class="am-form-group am-form-group-refreshing">
<label>手机/邮箱</label>
<input type="text" name="accounts" class="am-radius" minlength="1" placeholder="手机/邮箱" data-validation-message="手机/邮箱格式有误" required />
......
......@@ -26,6 +26,20 @@
{{else /}}
<a class="am-btn am-btn-danger am-disabled" href="javascript:;"><i class="am-icon-envelope-o am-icon-sm"></i> 暂时关闭邮箱注册</a>
{{/if}}
<!-- 用户注册页面钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_view_user_reg_info</span>
</div>
{{/if}}
{{if !empty($plugins_view_user_reg_info_data) and is_array($plugins_view_user_reg_info_data)}}
{{foreach $plugins_view_user_reg_info_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
</div>
</div>
</div>
......
......@@ -23,8 +23,23 @@
<a href="{{:MyUrl('index/user/logininfo')}}">
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius">立即登录</button>
</a>
<hr />
{{/if}}
<!-- 用户注册短信页面钩子 -->
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
<div class="plugins-tag">
<span>plugins_view_user_sms_reg_info</span>
</div>
{{/if}}
{{if !empty($plugins_view_user_sms_reg_info_data) and is_array($plugins_view_user_sms_reg_info_data)}}
{{foreach $plugins_view_user_sms_reg_info_data as $hook}}
{{if is_string($hook) or is_int($hook)}}
{{$hook|raw}}
{{/if}}
{{/foreach}}
{{/if}}
<hr />
<div class="am-form-group am-form-group-refreshing">
<label>手机号码
{{if in_array('email', MyC('home_user_reg_state'))}}
......
......@@ -34,7 +34,7 @@ class Hook
break;
// 顶部登录入口/登录信息
case 'plugins_service_header_navigation_top_left' :
case 'plugins_view_header_navigation_top_left' :
$ret = $this->LoginNavTopHtml($params);
break;
......
......@@ -22,7 +22,7 @@
"plugins_service_user_login_end":[
"app\\plugins\\shopoauth\\Hook"
],
"plugins_service_header_navigation_top_left":[
"plugins_view_header_navigation_top_left":[
"app\\plugins\\shopoauth\\Hook"
],
"plugins_service_users_personal_show_field_list_handle":[
......
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\touristbuy;
use think\Controller;
use app\service\PluginsService;
/**
* 游客购买 - 管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Admin extends Controller
{
/**
* 首页
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
$ret = PluginsService::PluginsData('touristbuy');
if($ret['code'] == 0)
{
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/touristbuy/admin/index');
} else {
return $ret['msg'];
}
}
/**
* 编辑页面
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function saveinfo($params = [])
{
$ret = PluginsService::PluginsData('touristbuy');
if($ret['code'] == 0)
{
// 是否
$is_whether_list = [
0 => array('id' => 0, 'name' => '否', 'checked' => true),
1 => array('id' => 1, 'name' => '是'),
];
$this->assign('is_whether_list', $is_whether_list);
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/touristbuy/admin/saveinfo');
} else {
return $ret['msg'];
}
}
/**
* 数据保存
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-07T08:21:54+0800
* @param [array] $params [输入参数]
*/
public function save($params = [])
{
return PluginsService::PluginsDataSave(['plugins'=>'touristbuy', 'data'=>$params]);
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\touristbuy;
use think\Controller;
use app\service\PluginsService;
use app\service\UserService;
/**
* 游客购买 - 钩子入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Hook extends Controller
{
/**
* 钩子入口
* @author Guoguo
* @blog http://gadmin.cojz8.com
* @version 1.0.0
* @datetime 2019年3月14日
*/
public function run($params = [])
{
// 是否后端钩子
if(!empty($params['hook_name']))
{
switch($params['hook_name'])
{
// 顶部登录入口/登录信息
case 'plugins_view_header_navigation_top_left' :
$ret = $this->LoginNavTopHtml($params);
break;
// 用户登录页面顶部
case 'plugins_view_user_login_info_top' :
case 'plugins_view_user_sms_reg_info' :
case 'plugins_view_user_email_reg_info' :
$ret = $this->UserLoginInfoHtml($params);
break;
// header代码
case 'plugins_common_header' :
$ret = $this->Style($params);
break;
// 导航链接
case 'plugins_service_navigation_header_handle' :
$ret = $this->NavTitle($params);
break;
default :
$ret = DataReturn('无需处理', 0);
}
return $ret;
// 默认返回视图
} else {
return '';
}
}
/**
* css
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-06T16:16:34+0800
* @param [array] $params [输入参数]
*/
public function NavTitle($params = [])
{
if(!empty($params['header']) && is_array($params['header']))
{
// 获取应用数据
$ret = PluginsService::PluginsData('touristbuy');
$ret['data']['application_name'] = '订单查询';
if($ret['code'] == 0 && !empty($ret['data']['application_name']))
{
$params['header'][] = [
'id' => 0,
'pid' => 0,
'name' => $ret['data']['application_name'],
'url' => PluginsHomeUrl('touristbuy', 'index', 'index'),
'data_type' => 'custom',
'is_show' => 1,
'is_new_window_open' => 0,
'items' => [],
];
}
}
}
/**
* css
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-06T16:16:34+0800
* @param [array] $params [输入参数]
*/
public function Style($params = [])
{
return '<style type="text/css">
.plugins-touristbuy-nav-top, .plugins-touristbuy-login-info-btn { margin-left: 10px; }
.plugins-touristbuy-nav-top { color: #FF5722; }
.plugins-touristbuy-index { margin-top: 5%; }
.plugins-touristbuy-index form.am-form { margin-top: 20px; }
.plugins-touristbuy-index form.am-form .am-form-group { padding: 0 !important; }
</style>';
}
/**
* 前端顶部小导航展示登入
* @author Guoguo
* @blog http://gadmin.cojz8.com
* @version 1.0.0
* @datetime 2019年3月14日
* @param [array] $params [输入参数]
*/
public function UserLoginInfoHtml($params = [])
{
// html
$html = '';
// 获取已登录用户信息,已登录则不展示入口
$user = UserService::LoginUserInfo();
if(empty($user))
{
// 获取插件信息
$ret = PluginsService::PluginsData('touristbuy');
$html = '<a href="'.PluginsHomeUrl('touristbuy', 'index', 'login').'" target="_blank" class="am-btn am-btn-secondary am-btn-xs am-radius plugins-touristbuy-login-info-btn">游客登录</a>';
}
return $html;
}
/**
* 前端顶部小导航展示登入
* @author Guoguo
* @blog http://gadmin.cojz8.com
* @version 1.0.0
* @datetime 2019年3月14日
* @param [array] $params [输入参数]
*/
public function LoginNavTopHtml($params = [])
{
// html
$html = '';
// 获取已登录用户信息,已登录则不展示入口
$user = UserService::LoginUserInfo();
if(empty($user))
{
// 获取插件信息
$ret = PluginsService::PluginsData('touristbuy');
$html = '<a href="'.PluginsHomeUrl('touristbuy', 'index', 'login').'" class="plugins-touristbuy-nav-top">游客登录</a>';
}
return $html;
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\touristbuy;
use think\Controller;
use app\plugins\touristbuy\Service;
use app\service\SeoService;
use app\service\OrderService;
/**
* 游客购买 - 前端独立页面入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Index extends Controller
{
/**
* 订单查询入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function index($params = [])
{
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('订单查询', 1));
return $this->fetch('../../../plugins/view/touristbuy/index/index');
}
/**
* 订单详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T23:51:50+0800
* @param [array] $params [输入参数]
*/
public function detail($params = [])
{
// 请求参数
$p = [
[
'checked_type' => 'empty',
'key_name' => 'order_no',
'error_msg' => '请输入订单号',
],
[
'checked_type' => 'empty',
'key_name' => 'name',
'error_msg' => '请输入收件人姓名',
],
[
'checked_type' => 'empty',
'key_name' => 'tel',
'error_msg' => '请输入收件人电话',
],
];
$ret = ParamsChecked($params, $p);
if($ret !== true)
{
$this->assign('msg', $ret);
return $this->fetch('public/tips_error');
}
// 参数
$params['user_type'] = 'user';
// 条件
$where = OrderService::OrderListWhere($params);
$where[] = ['order_no', '=', $params['order_no']];
$where[] = ['receive_name', '=', $params['name']];
$where[] = ['receive_tel', '=', $params['tel']];
// 获取列表
$data_params = array(
'm' => 0,
'n' => 1,
'where' => $where,
);
$data = OrderService::OrderList($data_params);
if(!empty($data['data'][0]))
{
$this->assign('data', $data['data'][0]);
$this->assign('home_seo_site_title', SeoService::BrowserSeoTitle('订单详情', 1));
// 参数
$this->assign('params', $params);
return $this->fetch('../../../plugins/view/touristbuy/index/detail');
} else {
$this->assign('msg', '没有相关数据');
return $this->fetch('public/tips_error');
}
}
/**
* 游客登录
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-03-15T22:31:29+0800
* @param [array] $params [输入参数]
*/
public function login($params = [])
{
$ret = Service::TouristReg();
if($ret['code'] == 0)
{
return $this->redirect(__MY_URL__);
} else {
$this->assign('msg', $ret['msg']);
return $this->fetch('public/error');
}
}
}
?>
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\touristbuy;
use think\Db;
use app\service\UserService;
/**
* 问答系统服务层
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Service
{
/**
* 游客注册
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-12-03
* @desc description
* @param [array] $params [输入参数]
*/
public static function TouristReg($params = [])
{
// 获取登录用户
$user = UserService::LoginUserInfo();
if(!empty($user))
{
return DataReturn('已登录,请先退出', -1);
}
// 是否重复注册
$tourist_user_id = session('tourist_user_id');
if(!empty($tourist_user_id))
{
// 用户登录session纪录
if(UserService::UserLoginRecord($tourist_user_id))
{
return DataReturn('游客登录成功', 0);
} else {
session('tourist_user_id', null);
}
}
// 游客数据
$data = [
'username' => '游客',
'nickname' => '游客',
'status' => 0,
'add_time' => time(),
'upd_time' => time(),
];
// 数据添加
$user_id = Db::name('User')->insertGetId($data);
if($user_id > 0)
{
// 单独存储用户id
session('tourist_user_id', $user_id);
// 用户登录session纪录
if(UserService::UserLoginRecord($user_id))
{
return DataReturn('游客登录成功', 0);
}
}
return DataReturn('游客登录失败', -100);
}
}
?>
\ No newline at end of file
{
"base":{
"plugins":"touristbuy",
"name":"游客购买",
"logo":"\/static\/upload\/images\/plugins_touristbuy\/2019\/03\/15\/1552656656517586.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"无需登录实现游客购物,在线支付,订单查询",
"apply_terminal":[
"pc",
"h5"
],
"apply_version":[
"1.4.0"
],
"is_home":true
},
"hook":{
"plugins_common_header":[
"app\\plugins\\touristbuy\\Hook"
],
"plugins_view_header_navigation_top_left":[
"app\\plugins\\touristbuy\\Hook"
],
"plugins_view_user_login_info_top":[
"app\\plugins\\touristbuy\\Hook"
],
"plugins_view_user_sms_reg_info":[
"app\\plugins\\touristbuy\\Hook"
],
"plugins_view_user_email_reg_info":[
"app\\plugins\\touristbuy\\Hook"
],
"plugins_service_navigation_header_handle":[
"app\\plugins\\touristbuy\\Hook"
]
}
}
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<legend>
<span class="fs-16">游客购买</span>
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="touristbuy-content">
<div class="items">
<label>公告内容</label>
<div>
{{if !empty($data['content'])}}
{{$data.content}}
{{else /}}
{{/if}}
</div>
</div>
<div class="items">
<label>是否全局</label>
<div>
{{if isset($data['is_overall']) and $data['is_overall'] eq 1}}
{{else /}}
{{/if}}
</div>
</div>
<div class="items">
<label>有效时间</label>
<div>
{{if !empty($data['time_start']) and !empty($data['time_end'])}}
{{$data.time_start}} ~ {{$data.time_end}}
{{elseif !empty($data['time_start']) and empty($data['time_end'])}}
{{$data.time_start}} ~ 长期有效
{{elseif empty($data['time_start']) and !empty($data['time_end'])}}
立即生效 ~ {{$data.time_end}}
{{else /}}
无限制
{{/if}}
</div>
</div>
<a href="{{:PluginsAdminUrl('touristbuy', 'admin', 'saveinfo')}}" class="am-btn am-btn-secondary am-radius btn-loading-example am-btn-sm am-btn-block edit-submit">编辑</a>
</div>
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:PluginsAdminUrl('touristbuy', 'admin', 'save')}}" method="POST" request-type="ajax-url" request-value="{{:PluginsAdminUrl('touristbuy', 'admin', 'index')}}" enctype="multipart/form-data">
<legend>
<span class="fs-16">游客购买</span>
<a href="{{:PluginsAdminUrl('touristbuy', 'admin', 'index')}}" class="fr fs-14 m-t-5 am-icon-mail-reply"> 返回</a>
</legend>
<div class="am-form-group am-form-file">
<label class="block">公告内容<span class="am-form-group-label-tips">空则不显示</span></label>
<textarea rows="3" name="content" class="am-radius am-field-valid" placeholder="公告内容" data-validation-message="请填写公告内容">{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
</div>
<div class="am-form-group">
<label>是否全局<span class="am-form-group-label-tips">默认首页</span></label>
<div>
{{foreach $is_whether_list as $v}}
<label class="am-radio-inline m-r-10">
<input type="radio" name="is_overall" value="{{$v.id}}" {{if isset($data['is_overall']) and $data['is_overall'] eq $v['id']}}checked="checked"{{else /}}{{if !isset($data['is_overall']) and isset($v['checked']) and $v['checked'] eq true}}checked="checked"{{/if}}{{/if}} data-am-ucheck /> {{$v.name}}
</label>
{{/foreach}}
</div>
</div>
<div class="am-form-group">
<label>有效时间<span class="am-form-group-label-tips">留空则不限制</span></label>
<div class="form-date">
<input type="text" autocomplete="off" name="time_start" class="Wdate am-radius" placeholder="起始时间" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if !empty($data['time_start'])}}value="{{$data.time_start}}"{{/if}}/>
<span>~</span>
<input type="text" autocomplete="off" class="Wdate am-radius" placeholder="结束时间" name="time_end" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd HH:mm:ss'})" {{if !empty($data['time_end'])}}value="{{$data.time_end}}"{{/if}}/>
</div>
</div>
<div class="am-form-group am-form-group-refreshing">
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm w100" data-am-loading="{loadingText:'处理中...'}">保存</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content -->
<div class="am-container user-main">
<!-- content start -->
<div class="user-content">
<div class="user-content-body">
<!-- 进度环节 -->
{{if !in_array($data['status'], [5,6])}}
<ul class="progress">
<li class="steps-success {{if $data['status'] LT 2}} current{{/if}}">
<p class="digital">
<i class="am-icon-check"></i>
</p>
<div class="base">
<p class="title">拍下商品</p>
{{if !empty($data.add_time)}}
<p class="date">{{$data.add_time}}</p>
{{/if}}
</div>
</li>
<li class="{{if $data['status'] GT 1}}steps-success{{/if}} {{if $data['status'] EQ 2}} current{{/if}}">
<i class="step"></i>
<p class="digital">
{{if $data['status'] GT 1}}<i class="am-icon-check"></i>{{else /}}2{{/if}}
</p>
<div class="base">
<p class="title">付款</p>
{{if !empty($data.pay_time)}}
<p class="date">{{$data.pay_time}}</p>
{{/if}}
</div>
</li>
<li class="{{if $data['status'] GT 2}}steps-success{{/if}} {{if $data['status'] EQ 3}} current{{/if}}">
<i class="step"></i>
<p class="digital">
{{if $data['status'] GT 2}}<i class="am-icon-check"></i>{{else /}}3{{/if}}
</p>
<div class="base">
<p class="title">卖家发货</p>
{{if !empty($data.delivery_time)}}
<p class="date">{{$data.delivery_time}}</p>
{{/if}}
</div>
</li>
<li class="{{if $data['status'] GT 3}}steps-success{{/if}} {{if $data['status'] EQ 4}} current{{/if}}">
<i class="step"></i>
<p class="digital">
{{if $data['status'] GT 3}}<i class="am-icon-check"></i>{{else /}}4{{/if}}
</p>
<div class="base">
<p class="title">确认收货</p>
{{if !empty($data.collect_time)}}
<p class="date">{{$data.collect_time}}</p>
{{/if}}
</div>
</li>
<li class="{{if $data['user_is_comments'] GT 0}}steps-success{{/if}} {{if $data['user_is_comments'] GT 0}} current{{/if}}">
<i class="step"></i>
<p class="digital">
{{if $data['user_is_comments'] GT 0}}<i class="am-icon-check"></i>{{else /}}5{{/if}}
</p>
<div class="base">
<p class="title">评价</p>
{{if !empty($data.user_is_comments_time)}}
<p class="date">{{$data.user_is_comments_time}}</p>
{{/if}}
</div>
</li>
</ul>
{{/if}}
<!-- 基础信息 -->
<div class="order-base">
<div class="base-left">
<div class="am-panel am-panel-default">
<div class="am-panel-hd">订单信息</div>
<div class="am-panel-bd">
<div class="items">
<div class="items-title am-fl">收货地址:</div>
<div class="items-detail am-fl">{{$data.receive_name}}, {{$data.receive_tel}}, {{$data.receive_province_name}} {{$data.receive_city_name}} {{$data.receive_county_name}} {{$data.receive_address}}</div>
</div>
<div class="items">
<div class="items-title am-fl">订单编号:</div>
<div class="items-detail am-fl">{{$data.order_no}}</div>
</div>
{{if !empty($data.status_name)}}
<div class="items">
<div class="items-title am-fl">订单状态:</div>
<div class="items-detail am-fl">{{$data.status_name}}</div>
</div>
{{/if}}
{{if !empty($data.pay_status_name)}}
<div class="items">
<div class="items-title am-fl">支付状态:</div>
<div class="items-detail am-fl">{{$data.pay_status_name}}</div>
</div>
{{/if}}
{{if !empty($data.payment_name)}}
<div class="items">
<div class="items-title am-fl">支付方式:</div>
<div class="items-detail am-fl">{{$data.payment_name}}</div>
</div>
{{/if}}
{{if !empty($data.user_note)}}
<div class="items">
<div class="items-title am-fl">用户留言:</div>
<div class="items-detail am-fl">{{$data.user_note}}</div>
</div>
{{/if}}
{{if !empty($data.add_time)}}
<div class="items">
<div class="items-title am-fl">下单时间:</div>
<div class="items-detail am-fl">{{$data.add_time}}</div>
</div>
{{/if}}
{{if !empty($data.confirm_time)}}
<div class="items">
<div class="items-title am-fl">确认时间:</div>
<div class="items-detail am-fl">{{$data.confirm_time}}</div>
</div>
{{/if}}
{{if !empty($data.pay_time)}}
<div class="items">
<div class="items-title am-fl">付款时间:</div>
<div class="items-detail am-fl">{{$data.pay_time}}</div>
</div>
{{/if}}
{{if !empty($data.delivery_time)}}
<div class="items">
<div class="items-title am-fl">发货时间:</div>
<div class="items-detail am-fl">{{$data.delivery_time}}</div>
</div>
{{/if}}
{{if !empty($data.collect_time)}}
<div class="items">
<div class="items-title am-fl">收货时间:</div>
<div class="items-detail am-fl">{{$data.collect_time}}</div>
</div>
{{/if}}
{{if !empty($data.user_is_comments_time)}}
<div class="items">
<div class="items-title am-fl">评论时间:</div>
<div class="items-detail am-fl">{{$data.user_is_comments_time}}</div>
</div>
{{/if}}
{{if in_array($data['status'], [5]) and !empty($data['cancel_time'])}}
<div class="items">
<div class="items-title am-fl">取消时间:</div>
<div class="items-detail am-fl">{{$data.cancel_time}}</div>
</div>
{{/if}}
{{if in_array($data['status'], [6]) and !empty($data['close_time'])}}
<div class="items">
<div class="items-title am-fl">关闭时间:</div>
<div class="items-detail am-fl">{{$data.close_time}}</div>
</div>
{{/if}}
</div>
</div>
</div>
<div class="base-right">
<div class="status">
{{if $data['status'] EQ 4}}
<i class="am-icon-check-circle icon-success am-fl"></i>
{{else /}}
<i class="am-icon-info-circle icon-tips am-fl"></i>
{{/if}}
<p class="status-name am-fl">{{$data.status_name}}</p>
</div>
<div class="operation">
<!-- 0待确认, 1已确认/待支付, 2已支付/待发货, 3已发货/待收货, 4已完成, 5已取消, 6已关闭 -->
</div>
{{if in_array($data['status'], [3,4])}}
<div class="logistics">
<div class="items">
<div class="items-title am-fl">快递公司:</div>
<div class="items-detail am-fl">
{{if !empty($data.express_name)}}{{$data.express_name}}{{/if}}
</div>
</div>
{{if !empty($data.express_number)}}
<div class="items">
<div class="items-title am-fl">快递单号:</div>
<div class="items-detail am-fl">{{$data.express_number}}</div>
</div>
{{/if}}
</div>
{{/if}}
</div>
</div>
<!-- 商品列表 -->
{{if !empty($data.items)}}
<div class="order-goods">
<table class="am-table">
<thead>
<tr>
<th>商品信息</th>
<th class="am-hide-sm-only">单价</th>
<th class="am-hide-sm-only">数量</th>
<th class="am-hide-sm-only">金额</th>
</tr>
</thead>
<tbody>
{{foreach $data.items as $goods}}
<tr id="data-list-{{$goods.id}}" data-id="{{$goods.id}}" data-goods-id="{{$goods.goods_id}}">
<td class="base">
<div class="goods-detail">
<a href="{{$goods.goods_url}}" target="_blank">
<img src="{{$goods.images}}" />
</a>
<div class="goods-base">
<a href="{{$goods.goods_url}}" target="_blank" class="goods-title">{{$goods.title}}</a>
{{if !empty($goods.spec)}}
<ul class="goods-attr">
{{foreach $goods.spec as $spec}}
<li>{{$spec.type}}:{{$spec.value}}</li>
{{/foreach}}
</ul>
{{/if}}
</div>
</div>
<div class="wap-base am-show-sm-only">
{{if $goods['original_price'] gt 0}}
<span class="original-price">¥{{$goods.original_price}}</span>
{{/if}}
<strong class="total-price-content">¥{{$goods.price}}</strong>
<span class="wap-number">x{{$goods.buy_number}}</span>
</div>
</td>
<td class="price am-hide-sm-only">
{{if $goods['original_price'] gt 0}}
<p class="original-price">¥{{$goods.original_price}}</p>
{{/if}}
<p class="line-price">¥{{$goods.price}}</p>
</td>
<td class="number am-hide-sm-only">
x{{$goods.buy_number}}
</td>
<td class="total-price am-hide-sm-only">
<strong class="total-price-content">¥{{$goods.total_price}}</strong>
</td>
</tr>
{{/foreach}}
</tbody>
</table>
</div>
<div class="am-alert am-alert-secondary">
{{if !empty($data.price)}}
<div class="items">
<div class="items-title am-fl">商品总价:</div>
<div class="items-detail am-fl">¥{{$data.price}}</div>
</div>
{{/if}}
{{if !empty($data.preferential_price)}}
<div class="items">
<div class="items-title am-fl">优惠金额:</div>
<div class="items-detail am-fl">-¥{{$data.preferential_price}}</div>
</div>
{{/if}}
{{if !empty($data.total_price)}}
<div class="items">
<div class="items-title am-fl">订单总价:</div>
<div class="items-detail am-fl line-price">¥{{$data.total_price}}</div>
</div>
{{/if}}
{{if !empty($data.pay_price)}}
<div class="items">
<div class="items-title am-fl">支付金额:</div>
<div class="items-detail am-fl">
<strong class="total-price-content">¥{{$data.pay_price}}</strong>
</div>
</div>
{{/if}}
</div>
{{/if}}
</div>
</div>
<!-- content end -->
</div>
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
{{include file="public/header" /}}
<!-- nav start -->
{{include file="public/nav" /}}
<!-- nav end -->
<!-- header top nav -->
{{include file="public/header_top_nav" /}}
<!-- search -->
{{include file="public/nav_search" /}}
<!-- header nav -->
{{include file="public/header_nav" /}}
<!-- goods category -->
{{include file="public/goods_category" /}}
<!-- content start -->
<div class="am-g my-content">
<div class="am-u-md-6 am-u-sm-centered plugins-touristbuy-index">
<div class="am-alert am-alert-warning" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p>请输入订单号,收件人姓名,收件人电话即可查看订单详情</p>
</div>
<!-- form start -->
<form class="am-form form-validation" method="post" action="{{:PluginsHomeUrl('touristbuy', 'index', 'detail')}}" request-type="form">
<div class="am-form-group am-form-group-refreshing">
<label>订单号</label>
<input type="text" name="order_no" class="am-radius" minlength="1" placeholder="订单号" data-validation-message="请输入订单号" required />
</div>
<div class="am-form-group am-form-group-refreshing">
<label>收件人-姓名</label>
<input type="text" name="name" class="am-radius" minlength="1" placeholder="订单号" data-validation-message="请输入收件人姓名" required />
</div>
<div class="am-form-group am-form-group-refreshing">
<label>收件人-电话</label>
<input type="text" name="tel" class="am-radius" minlength="1" placeholder="订单号" data-validation-message="请输入收件人电话" required />
</div>
<div class="am-form-group am-form-group-refreshing">
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-sm btn-loading-example" data-am-loading="{loadingText: '处理中...'}">查询</button>
</div>
</form>
<!-- form end -->
</div>
</div>
<!-- content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
......@@ -44,7 +44,6 @@ return array (
'plugins_service_user_login_end' =>
array (
0 => 'app\\plugins\\userloginrewardintegral\\Hook',
1 => 'app\\plugins\\shopoauth\\Hook',
),
'plugins_css' =>
array (
......@@ -73,6 +72,7 @@ return array (
'plugins_service_navigation_header_handle' =>
array (
0 => 'app\\plugins\\answers\\Hook',
1 => 'app\\plugins\\touristbuy\\Hook',
),
'plugins_admin_view_common_bottom' =>
array (
......@@ -89,7 +89,7 @@ return array (
'plugins_common_header' =>
array (
0 => 'app\\plugins\\expressforkdn\\Hook',
1 => 'app\\plugins\\shopoauth\\Hook',
1 => 'app\\plugins\\touristbuy\\Hook',
),
'plugins_admin_common_header' =>
array (
......@@ -99,13 +99,21 @@ return array (
array (
0 => 'app\\plugins\\expressforkdn\\Hook',
),
'plugins_service_header_navigation_top_left' =>
'plugins_view_header_navigation_top_left' =>
array (
0 => 'app\\plugins\\shopoauth\\Hook',
0 => 'app\\plugins\\touristbuy\\Hook',
),
'plugins_service_users_personal_show_field_list_handle' =>
'plugins_view_user_login_info_top' =>
array (
0 => 'app\\plugins\\shopoauth\\Hook',
0 => 'app\\plugins\\touristbuy\\Hook',
),
'plugins_view_user_sms_reg_info' =>
array (
0 => 'app\\plugins\\touristbuy\\Hook',
),
'plugins_view_user_email_reg_info' =>
array (
0 => 'app\\plugins\\touristbuy\\Hook',
),
);
?>
\ No newline at end of file
/**
* 首页
*/
.touristbuy-content .items {
margin: 10px 0 20px 0;
border-bottom: 1px dashed #f1f1f1;
padding-bottom: 20px;
}
.touristbuy-content .edit-submit {
margin-bottom: 20px;
}
\ No newline at end of file
h1 {
font-size: 60px;
}
.msg {
font-size: 68px;
color: #4CAF50;
}
\ No newline at end of file
/**
* 进度
*/
ul.progress {
margin: 20px 0;
}
ul.progress li {
position: relative;
}
ul.progress li i.step {
display: block;
background-color: #e1e1e1;
}
ul.progress li .digital {
background-color: #f7f7f7;
border-radius: 50px;
width: 36px;
height: 36px;
line-height: 26px;
text-align: center;
color: #e1e1e1;
font-weight: 700;
border: 6px solid #e1e1e1;
}
ul.progress li .base .title {
font-weight: 500;
color: #666;
}
ul.progress li .base .date {
color: #999;
}
ul.progress li.steps-success .digital {
border: 6px solid #4CAF50;
color: #fff;
}
ul.progress li.steps-success .digital {
background-color: #82cc85;
}
ul.progress li.steps-success i.step {
background-color: #4CAF50;
}
ul.progress li.current .title {
color: #4CAF50;
}
.base-right .icon-tips, .base-right .icon-success {
font-size: 50px;
}
.base-right .icon-tips {
color: #6980d0;
}
.base-right .icon-success {
color: #28801c;
}
@media only screen and (min-width: 641px) {
ul.progress {
overflow: hidden;
}
ul.progress li {
float: left;
width: 20%;
text-align: center;
}
ul.progress li i.step {
display: block;
height: 6px;
width: 100%;
position: absolute;
margin: 15px 0 0 -50%;
z-index: 1;
}
ul.progress li .digital {
position: absolute;
margin-left: calc(50% - 18px);
z-index: 2;
}
ul.progress li .base {
margin-top: 50px;
}
}
@media only screen and (max-width: 641px) {
ul.progress li i.step {
height: 60px;
width: 6px;
margin-left: 15px;
}
ul.progress li .base {
position: absolute;
left: 50px;
top: 0;
}
ul.progress li:not(:first-child) .base {
margin-top: 70px;
}
}
/**
* 文本列表
*/
.items {
padding: 3px 0;
overflow: hidden;
}
.items-detail {
width: calc(100% - 62px);
color: #666;
}
/**
* 订单详情基础
*/
.order-base .am-panel {
-webkit-box-shadow: none;
box-shadow: none;
}
.order-base .am-panel-bd, .order-base .base-right {
padding: 5px 10px;
}
.order-base, .order-base .status {
overflow: hidden;
}
.order-base .status-name {
line-height: 80px;
}
.order-base .operation .am-btn {
margin-left: 15px;
}
.order-base .logistics {
margin-top: 10px;
}
.order-base .am-btn-block {
width: auto;
padding-left: 1em;
padding-right: 1em;
}
@media only screen and (min-width: 641px) {
.order-base .base-left, .order-base .base-right {
width: 50%;
float: left;
}
.order-base {
border: 1px solid #ddd;
}
.order-base .am-panel-default {
border-color: #fff;
}
.order-base .am-panel {
border: 0;
margin: 0;
}
.order-base .base-left {
border-right: 1px solid #ddd;
}
.order-base .base-right {
padding-top: 0;
}
}
@media only screen and (max-width: 641px) {
.order-base .base-right {
border: 1px solid #ddd;
}
}
/**
* 支付弹窗
*/
.business-item h3 { border-bottom: 3px solid #e3e3e3; margin-top:5px; font-size: 14px;font-weight: 700; }
.business-item ul { padding: 10px 3px 5px 5px; overflow: hidden; }
.business-item ul li { border:1px solid transparent ;overflow: hidden; float: left; cursor: pointer; padding: 5px; border: 1px solid #eee; margin: 0 10px 10px 0; }
.business-item ul li img { width: 36px; height: 36px; }
.business-item ul li.selected { border-color: #d2364c ; position: relative; }
.business-item ul li.selected i.icon-active { position: absolute; width: 10px; height: 10px; font-size: 0; line-height: 0; right: 0px; bottom: 0px; background: url(../images/sys_item_selected.gif) no-repeat right bottom; }
@media only screen and (min-width:640px) {
.business-item ul li {width:calc(33% - 5px); }
.business-item ul li:nth-child(3n) { margin-right: 0; }
}
@media only screen and (max-width:640px) {
.business-item ul li { width: calc(50% - 5px); }
.business-item ul li:nth-child(2n) { margin-right: 0; }
}
/**
* 商品列表
*/
.order-goods { margin-top: 20px; }
.goods-detail img { width: 80px; height: 80px; position: absolute; }
.goods-detail { position: relative; min-height: 80px; }
.goods-title { display: block; max-height: 36px; overflow: hidden; text-overflow: ellipsis; }
.goods-title:hover { text-decoration: underline; }
.goods-base { float: left; top: 0; margin-left: 85px; }
.goods-attr { margin-top: 5px; }
.goods-attr li { color: #888; line-height: 16px; }
.original-price, .line-price { font-family: Verdana,Tahoma,arial; }
.original-price { color: #9c9c9c; text-decoration: line-through; }
.line-price { color: #3c3c3c; }
.line-price, strong.total-price-content, strong.total-price-content { font-weight: 700; font-family: Verdana,Tahoma,arial; }
strong.total-price-content { color: #d2364c; font-size: 16px; }
.am-table { margin-bottom: 10px; }
.am-table > tbody > tr > td { border-top: 1px solid #F5F5F5; }
.am-table > thead > tr > th { border-bottom: 1px solid #f7f7f7; }
@media only screen and (min-width:640px) {
.cart-content table tr .base { width: 40%; }
.cart-content table tr .price { width: 20%; }
.cart-content table tr .number { width: 20%; }
.cart-content table tr .total-price { width: 20%; }
.cart-content { margin-top: 20px; }
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册